@olddevs/ui 0.0.0-stage → 4.0.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 (1553) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +100 -0
  4. package/README.md +145 -2
  5. package/README.ru.md +146 -0
  6. package/dist/color.d.ts +22 -0
  7. package/dist/color.d.ts.map +1 -0
  8. package/dist/color.js +2 -0
  9. package/dist/color.js.map +1 -0
  10. package/dist/components/actions/Alert.d.ts +46 -0
  11. package/dist/components/actions/Alert.d.ts.map +1 -0
  12. package/dist/components/actions/Alert.js +20 -0
  13. package/dist/components/actions/Alert.js.map +1 -0
  14. package/dist/components/actions/Banner.d.ts +58 -0
  15. package/dist/components/actions/Banner.d.ts.map +1 -0
  16. package/dist/components/actions/Banner.js +20 -0
  17. package/dist/components/actions/Banner.js.map +1 -0
  18. package/dist/components/actions/Button.d.ts +79 -0
  19. package/dist/components/actions/Button.d.ts.map +1 -0
  20. package/dist/components/actions/Button.js +29 -0
  21. package/dist/components/actions/Button.js.map +1 -0
  22. package/dist/components/actions/ButtonGroup.d.ts +32 -0
  23. package/dist/components/actions/ButtonGroup.d.ts.map +1 -0
  24. package/dist/components/actions/ButtonGroup.js +10 -0
  25. package/dist/components/actions/ButtonGroup.js.map +1 -0
  26. package/dist/components/actions/Chip.d.ts +36 -0
  27. package/dist/components/actions/Chip.d.ts.map +1 -0
  28. package/dist/components/actions/Chip.js +16 -0
  29. package/dist/components/actions/Chip.js.map +1 -0
  30. package/dist/components/actions/CopyButton.d.ts +32 -0
  31. package/dist/components/actions/CopyButton.d.ts.map +1 -0
  32. package/dist/components/actions/CopyButton.js +41 -0
  33. package/dist/components/actions/CopyButton.js.map +1 -0
  34. package/dist/components/actions/Progress.d.ts +36 -0
  35. package/dist/components/actions/Progress.d.ts.map +1 -0
  36. package/dist/components/actions/Progress.js +14 -0
  37. package/dist/components/actions/Progress.js.map +1 -0
  38. package/dist/components/actions/Segmented.d.ts +64 -0
  39. package/dist/components/actions/Segmented.d.ts.map +1 -0
  40. package/dist/components/actions/Segmented.js +14 -0
  41. package/dist/components/actions/Segmented.js.map +1 -0
  42. package/dist/components/actions/Spinner.d.ts +46 -0
  43. package/dist/components/actions/Spinner.d.ts.map +1 -0
  44. package/dist/components/actions/Spinner.js +17 -0
  45. package/dist/components/actions/Spinner.js.map +1 -0
  46. package/dist/components/actions/SplitButton.d.ts +92 -0
  47. package/dist/components/actions/SplitButton.d.ts.map +1 -0
  48. package/dist/components/actions/SplitButton.js +21 -0
  49. package/dist/components/actions/SplitButton.js.map +1 -0
  50. package/dist/components/actions/StatusBadge.d.ts +26 -0
  51. package/dist/components/actions/StatusBadge.d.ts.map +1 -0
  52. package/dist/components/actions/StatusBadge.js +14 -0
  53. package/dist/components/actions/StatusBadge.js.map +1 -0
  54. package/dist/components/actions/Toaster.d.ts +83 -0
  55. package/dist/components/actions/Toaster.d.ts.map +1 -0
  56. package/dist/components/actions/Toaster.js +38 -0
  57. package/dist/components/actions/Toaster.js.map +1 -0
  58. package/dist/components/actions/Toggle.d.ts +75 -0
  59. package/dist/components/actions/Toggle.d.ts.map +1 -0
  60. package/dist/components/actions/Toggle.js +39 -0
  61. package/dist/components/actions/Toggle.js.map +1 -0
  62. package/dist/components/actions/ToggleGroup.d.ts +63 -0
  63. package/dist/components/actions/ToggleGroup.d.ts.map +1 -0
  64. package/dist/components/actions/ToggleGroup.js +30 -0
  65. package/dist/components/actions/ToggleGroup.js.map +1 -0
  66. package/dist/components/actions/Toolbar.d.ts +52 -0
  67. package/dist/components/actions/Toolbar.d.ts.map +1 -0
  68. package/dist/components/actions/Toolbar.js +98 -0
  69. package/dist/components/actions/Toolbar.js.map +1 -0
  70. package/dist/components/actions/Truncate.d.ts +31 -0
  71. package/dist/components/actions/Truncate.d.ts.map +1 -0
  72. package/dist/components/actions/Truncate.js +32 -0
  73. package/dist/components/actions/Truncate.js.map +1 -0
  74. package/dist/components/app-shell/AppShell.d.ts +106 -0
  75. package/dist/components/app-shell/AppShell.d.ts.map +1 -0
  76. package/dist/components/app-shell/AppShell.js +29 -0
  77. package/dist/components/app-shell/AppShell.js.map +1 -0
  78. package/dist/components/app-shell/MobileTabBar.d.ts +130 -0
  79. package/dist/components/app-shell/MobileTabBar.d.ts.map +1 -0
  80. package/dist/components/app-shell/MobileTabBar.js +50 -0
  81. package/dist/components/app-shell/MobileTabBar.js.map +1 -0
  82. package/dist/components/app-shell/NavItem.d.ts +72 -0
  83. package/dist/components/app-shell/NavItem.d.ts.map +1 -0
  84. package/dist/components/app-shell/NavItem.js +22 -0
  85. package/dist/components/app-shell/NavItem.js.map +1 -0
  86. package/dist/components/app-shell/SideNav.d.ts +65 -0
  87. package/dist/components/app-shell/SideNav.d.ts.map +1 -0
  88. package/dist/components/app-shell/SideNav.js +31 -0
  89. package/dist/components/app-shell/SideNav.js.map +1 -0
  90. package/dist/components/app-shell/SplitPanel.d.ts +121 -0
  91. package/dist/components/app-shell/SplitPanel.d.ts.map +1 -0
  92. package/dist/components/app-shell/SplitPanel.js +88 -0
  93. package/dist/components/app-shell/SplitPanel.js.map +1 -0
  94. package/dist/components/app-shell/TopBar.d.ts +43 -0
  95. package/dist/components/app-shell/TopBar.d.ts.map +1 -0
  96. package/dist/components/app-shell/TopBar.js +24 -0
  97. package/dist/components/app-shell/TopBar.js.map +1 -0
  98. package/dist/components/content/AspectRatio.d.ts +25 -0
  99. package/dist/components/content/AspectRatio.d.ts.map +1 -0
  100. package/dist/components/content/AspectRatio.js +7 -0
  101. package/dist/components/content/AspectRatio.js.map +1 -0
  102. package/dist/components/content/Avatar.d.ts +22 -0
  103. package/dist/components/content/Avatar.d.ts.map +1 -0
  104. package/dist/components/content/Avatar.js +23 -0
  105. package/dist/components/content/Avatar.js.map +1 -0
  106. package/dist/components/content/AvatarGroup.d.ts +42 -0
  107. package/dist/components/content/AvatarGroup.d.ts.map +1 -0
  108. package/dist/components/content/AvatarGroup.js +11 -0
  109. package/dist/components/content/AvatarGroup.js.map +1 -0
  110. package/dist/components/content/Badge.d.ts +41 -0
  111. package/dist/components/content/Badge.d.ts.map +1 -0
  112. package/dist/components/content/Badge.js +13 -0
  113. package/dist/components/content/Badge.js.map +1 -0
  114. package/dist/components/content/Card.d.ts +59 -0
  115. package/dist/components/content/Card.d.ts.map +1 -0
  116. package/dist/components/content/Card.js +20 -0
  117. package/dist/components/content/Card.js.map +1 -0
  118. package/dist/components/content/Carousel.d.ts +79 -0
  119. package/dist/components/content/Carousel.d.ts.map +1 -0
  120. package/dist/components/content/Carousel.js +172 -0
  121. package/dist/components/content/Carousel.js.map +1 -0
  122. package/dist/components/content/CodeView.d.ts +76 -0
  123. package/dist/components/content/CodeView.d.ts.map +1 -0
  124. package/dist/components/content/CodeView.js +12 -0
  125. package/dist/components/content/CodeView.js.map +1 -0
  126. package/dist/components/content/DescriptionList.d.ts +31 -0
  127. package/dist/components/content/DescriptionList.d.ts.map +1 -0
  128. package/dist/components/content/DescriptionList.js +10 -0
  129. package/dist/components/content/DescriptionList.js.map +1 -0
  130. package/dist/components/content/EditableList.d.ts +162 -0
  131. package/dist/components/content/EditableList.d.ts.map +1 -0
  132. package/dist/components/content/EditableList.js +241 -0
  133. package/dist/components/content/EditableList.js.map +1 -0
  134. package/dist/components/content/EmptyState.d.ts +31 -0
  135. package/dist/components/content/EmptyState.d.ts.map +1 -0
  136. package/dist/components/content/EmptyState.js +9 -0
  137. package/dist/components/content/EmptyState.js.map +1 -0
  138. package/dist/components/content/ErrorState.d.ts +52 -0
  139. package/dist/components/content/ErrorState.d.ts.map +1 -0
  140. package/dist/components/content/ErrorState.js +16 -0
  141. package/dist/components/content/ErrorState.js.map +1 -0
  142. package/dist/components/content/Grid.d.ts +57 -0
  143. package/dist/components/content/Grid.d.ts.map +1 -0
  144. package/dist/components/content/Grid.js +85 -0
  145. package/dist/components/content/Grid.js.map +1 -0
  146. package/dist/components/content/Heading.d.ts +43 -0
  147. package/dist/components/content/Heading.d.ts.map +1 -0
  148. package/dist/components/content/Heading.js +21 -0
  149. package/dist/components/content/Heading.js.map +1 -0
  150. package/dist/components/content/Image.d.ts +94 -0
  151. package/dist/components/content/Image.d.ts.map +1 -0
  152. package/dist/components/content/Image.js +41 -0
  153. package/dist/components/content/Image.js.map +1 -0
  154. package/dist/components/content/Kbd.d.ts +31 -0
  155. package/dist/components/content/Kbd.d.ts.map +1 -0
  156. package/dist/components/content/Kbd.js +13 -0
  157. package/dist/components/content/Kbd.js.map +1 -0
  158. package/dist/components/content/Keyboard.d.ts +32 -0
  159. package/dist/components/content/Keyboard.d.ts.map +1 -0
  160. package/dist/components/content/Keyboard.js +381 -0
  161. package/dist/components/content/Keyboard.js.map +1 -0
  162. package/dist/components/content/Link.d.ts +46 -0
  163. package/dist/components/content/Link.d.ts.map +1 -0
  164. package/dist/components/content/Link.js +38 -0
  165. package/dist/components/content/Link.js.map +1 -0
  166. package/dist/components/content/MediaCard.d.ts +56 -0
  167. package/dist/components/content/MediaCard.d.ts.map +1 -0
  168. package/dist/components/content/MediaCard.js +15 -0
  169. package/dist/components/content/MediaCard.js.map +1 -0
  170. package/dist/components/content/NotificationCenter.d.ts +68 -0
  171. package/dist/components/content/NotificationCenter.d.ts.map +1 -0
  172. package/dist/components/content/NotificationCenter.js +14 -0
  173. package/dist/components/content/NotificationCenter.js.map +1 -0
  174. package/dist/components/content/NotificationList.d.ts +111 -0
  175. package/dist/components/content/NotificationList.d.ts.map +1 -0
  176. package/dist/components/content/NotificationList.js +48 -0
  177. package/dist/components/content/NotificationList.js.map +1 -0
  178. package/dist/components/content/ScrollArea.d.ts +30 -0
  179. package/dist/components/content/ScrollArea.d.ts.map +1 -0
  180. package/dist/components/content/ScrollArea.js +7 -0
  181. package/dist/components/content/ScrollArea.js.map +1 -0
  182. package/dist/components/content/Separator.d.ts +19 -0
  183. package/dist/components/content/Separator.d.ts.map +1 -0
  184. package/dist/components/content/Separator.js +14 -0
  185. package/dist/components/content/Separator.js.map +1 -0
  186. package/dist/components/content/Skeleton.d.ts +24 -0
  187. package/dist/components/content/Skeleton.d.ts.map +1 -0
  188. package/dist/components/content/Skeleton.js +8 -0
  189. package/dist/components/content/Skeleton.js.map +1 -0
  190. package/dist/components/content/SortableList.d.ts +98 -0
  191. package/dist/components/content/SortableList.d.ts.map +1 -0
  192. package/dist/components/content/SortableList.js +46 -0
  193. package/dist/components/content/SortableList.js.map +1 -0
  194. package/dist/components/content/Stat.d.ts +46 -0
  195. package/dist/components/content/Stat.d.ts.map +1 -0
  196. package/dist/components/content/Stat.js +12 -0
  197. package/dist/components/content/Stat.js.map +1 -0
  198. package/dist/components/content/Table.d.ts +110 -0
  199. package/dist/components/content/Table.d.ts.map +1 -0
  200. package/dist/components/content/Table.js +66 -0
  201. package/dist/components/content/Table.js.map +1 -0
  202. package/dist/components/content/TagGroup.d.ts +120 -0
  203. package/dist/components/content/TagGroup.d.ts.map +1 -0
  204. package/dist/components/content/TagGroup.js +20 -0
  205. package/dist/components/content/TagGroup.js.map +1 -0
  206. package/dist/components/content/Text.d.ts +55 -0
  207. package/dist/components/content/Text.d.ts.map +1 -0
  208. package/dist/components/content/Text.js +27 -0
  209. package/dist/components/content/Text.js.map +1 -0
  210. package/dist/components/content/Timeline.d.ts +50 -0
  211. package/dist/components/content/Timeline.d.ts.map +1 -0
  212. package/dist/components/content/Timeline.js +15 -0
  213. package/dist/components/content/Timeline.js.map +1 -0
  214. package/dist/components/content/VirtualGrid.d.ts +171 -0
  215. package/dist/components/content/VirtualGrid.d.ts.map +1 -0
  216. package/dist/components/content/VirtualGrid.js +267 -0
  217. package/dist/components/content/VirtualGrid.js.map +1 -0
  218. package/dist/components/content/VisuallyHidden.d.ts +24 -0
  219. package/dist/components/content/VisuallyHidden.d.ts.map +1 -0
  220. package/dist/components/content/VisuallyHidden.js +3 -0
  221. package/dist/components/content/VisuallyHidden.js.map +1 -0
  222. package/dist/components/content/keyboardEditing.d.ts +15 -0
  223. package/dist/components/content/keyboardEditing.d.ts.map +1 -0
  224. package/dist/components/content/keyboardEditing.js +28 -0
  225. package/dist/components/content/keyboardEditing.js.map +1 -0
  226. package/dist/components/content/useDragToSelect.d.ts +41 -0
  227. package/dist/components/content/useDragToSelect.d.ts.map +1 -0
  228. package/dist/components/content/useDragToSelect.js +190 -0
  229. package/dist/components/content/useDragToSelect.js.map +1 -0
  230. package/dist/components/date-time/Calendar.d.ts +67 -0
  231. package/dist/components/date-time/Calendar.d.ts.map +1 -0
  232. package/dist/components/date-time/Calendar.js +28 -0
  233. package/dist/components/date-time/Calendar.js.map +1 -0
  234. package/dist/components/date-time/DatePicker.d.ts +57 -0
  235. package/dist/components/date-time/DatePicker.d.ts.map +1 -0
  236. package/dist/components/date-time/DatePicker.js +37 -0
  237. package/dist/components/date-time/DatePicker.js.map +1 -0
  238. package/dist/components/date-time/DateRangePicker.d.ts +91 -0
  239. package/dist/components/date-time/DateRangePicker.d.ts.map +1 -0
  240. package/dist/components/date-time/DateRangePicker.js +72 -0
  241. package/dist/components/date-time/DateRangePicker.js.map +1 -0
  242. package/dist/components/date-time/DateTimePicker.d.ts +55 -0
  243. package/dist/components/date-time/DateTimePicker.d.ts.map +1 -0
  244. package/dist/components/date-time/DateTimePicker.js +9 -0
  245. package/dist/components/date-time/DateTimePicker.js.map +1 -0
  246. package/dist/components/date-time/RangeCalendar.d.ts +50 -0
  247. package/dist/components/date-time/RangeCalendar.d.ts.map +1 -0
  248. package/dist/components/date-time/RangeCalendar.js +17 -0
  249. package/dist/components/date-time/RangeCalendar.js.map +1 -0
  250. package/dist/components/date-time/TimePicker.d.ts +47 -0
  251. package/dist/components/date-time/TimePicker.d.ts.map +1 -0
  252. package/dist/components/date-time/TimePicker.js +148 -0
  253. package/dist/components/date-time/TimePicker.js.map +1 -0
  254. package/dist/components/inputs/Checkbox.d.ts +140 -0
  255. package/dist/components/inputs/Checkbox.d.ts.map +1 -0
  256. package/dist/components/inputs/Checkbox.js +29 -0
  257. package/dist/components/inputs/Checkbox.js.map +1 -0
  258. package/dist/components/inputs/CheckboxCard.d.ts +17 -0
  259. package/dist/components/inputs/CheckboxCard.d.ts.map +1 -0
  260. package/dist/components/inputs/CheckboxCard.js +25 -0
  261. package/dist/components/inputs/CheckboxCard.js.map +1 -0
  262. package/dist/components/inputs/CheckboxGroup.d.ts +68 -0
  263. package/dist/components/inputs/CheckboxGroup.d.ts.map +1 -0
  264. package/dist/components/inputs/CheckboxGroup.js +14 -0
  265. package/dist/components/inputs/CheckboxGroup.js.map +1 -0
  266. package/dist/components/inputs/ChoiceCardBody.d.ts +16 -0
  267. package/dist/components/inputs/ChoiceCardBody.d.ts.map +1 -0
  268. package/dist/components/inputs/ChoiceCardBody.js +10 -0
  269. package/dist/components/inputs/ChoiceCardBody.js.map +1 -0
  270. package/dist/components/inputs/ColorPicker.d.ts +71 -0
  271. package/dist/components/inputs/ColorPicker.d.ts.map +1 -0
  272. package/dist/components/inputs/ColorPicker.js +30 -0
  273. package/dist/components/inputs/ColorPicker.js.map +1 -0
  274. package/dist/components/inputs/Combobox.d.ts +41 -0
  275. package/dist/components/inputs/Combobox.d.ts.map +1 -0
  276. package/dist/components/inputs/Combobox.js +16 -0
  277. package/dist/components/inputs/Combobox.js.map +1 -0
  278. package/dist/components/inputs/FileDropzone.d.ts +51 -0
  279. package/dist/components/inputs/FileDropzone.d.ts.map +1 -0
  280. package/dist/components/inputs/FileDropzone.js +75 -0
  281. package/dist/components/inputs/FileDropzone.js.map +1 -0
  282. package/dist/components/inputs/Form.d.ts +50 -0
  283. package/dist/components/inputs/Form.d.ts.map +1 -0
  284. package/dist/components/inputs/Form.js +14 -0
  285. package/dist/components/inputs/Form.js.map +1 -0
  286. package/dist/components/inputs/FormField.d.ts +89 -0
  287. package/dist/components/inputs/FormField.d.ts.map +1 -0
  288. package/dist/components/inputs/FormField.js +24 -0
  289. package/dist/components/inputs/FormField.js.map +1 -0
  290. package/dist/components/inputs/FormLayout.d.ts +47 -0
  291. package/dist/components/inputs/FormLayout.d.ts.map +1 -0
  292. package/dist/components/inputs/FormLayout.js +12 -0
  293. package/dist/components/inputs/FormLayout.js.map +1 -0
  294. package/dist/components/inputs/InlineEdit.d.ts +50 -0
  295. package/dist/components/inputs/InlineEdit.d.ts.map +1 -0
  296. package/dist/components/inputs/InlineEdit.js +70 -0
  297. package/dist/components/inputs/InlineEdit.js.map +1 -0
  298. package/dist/components/inputs/MaskedInput.d.ts +66 -0
  299. package/dist/components/inputs/MaskedInput.d.ts.map +1 -0
  300. package/dist/components/inputs/MaskedInput.js +73 -0
  301. package/dist/components/inputs/MaskedInput.js.map +1 -0
  302. package/dist/components/inputs/NumberInput.d.ts +53 -0
  303. package/dist/components/inputs/NumberInput.d.ts.map +1 -0
  304. package/dist/components/inputs/NumberInput.js +17 -0
  305. package/dist/components/inputs/NumberInput.js.map +1 -0
  306. package/dist/components/inputs/PasswordInput.d.ts +49 -0
  307. package/dist/components/inputs/PasswordInput.d.ts.map +1 -0
  308. package/dist/components/inputs/PasswordInput.js +49 -0
  309. package/dist/components/inputs/PasswordInput.js.map +1 -0
  310. package/dist/components/inputs/PhoneInput.d.ts +35 -0
  311. package/dist/components/inputs/PhoneInput.d.ts.map +1 -0
  312. package/dist/components/inputs/PhoneInput.js +9 -0
  313. package/dist/components/inputs/PhoneInput.js.map +1 -0
  314. package/dist/components/inputs/PinInput.d.ts +50 -0
  315. package/dist/components/inputs/PinInput.d.ts.map +1 -0
  316. package/dist/components/inputs/PinInput.js +67 -0
  317. package/dist/components/inputs/PinInput.js.map +1 -0
  318. package/dist/components/inputs/RadioGroup.d.ts +86 -0
  319. package/dist/components/inputs/RadioGroup.d.ts.map +1 -0
  320. package/dist/components/inputs/RadioGroup.js +51 -0
  321. package/dist/components/inputs/RadioGroup.js.map +1 -0
  322. package/dist/components/inputs/Rating.d.ts +69 -0
  323. package/dist/components/inputs/Rating.d.ts.map +1 -0
  324. package/dist/components/inputs/Rating.js +51 -0
  325. package/dist/components/inputs/Rating.js.map +1 -0
  326. package/dist/components/inputs/SearchControl.d.ts +85 -0
  327. package/dist/components/inputs/SearchControl.d.ts.map +1 -0
  328. package/dist/components/inputs/SearchControl.js +62 -0
  329. package/dist/components/inputs/SearchControl.js.map +1 -0
  330. package/dist/components/inputs/Select.d.ts +205 -0
  331. package/dist/components/inputs/Select.d.ts.map +1 -0
  332. package/dist/components/inputs/Select.js +136 -0
  333. package/dist/components/inputs/Select.js.map +1 -0
  334. package/dist/components/inputs/Slider.d.ts +59 -0
  335. package/dist/components/inputs/Slider.d.ts.map +1 -0
  336. package/dist/components/inputs/Slider.js +153 -0
  337. package/dist/components/inputs/Slider.js.map +1 -0
  338. package/dist/components/inputs/SwatchGroup.d.ts +101 -0
  339. package/dist/components/inputs/SwatchGroup.d.ts.map +1 -0
  340. package/dist/components/inputs/SwatchGroup.js +57 -0
  341. package/dist/components/inputs/SwatchGroup.js.map +1 -0
  342. package/dist/components/inputs/TagInput.d.ts +45 -0
  343. package/dist/components/inputs/TagInput.d.ts.map +1 -0
  344. package/dist/components/inputs/TagInput.js +56 -0
  345. package/dist/components/inputs/TagInput.js.map +1 -0
  346. package/dist/components/inputs/TextControl.d.ts +101 -0
  347. package/dist/components/inputs/TextControl.d.ts.map +1 -0
  348. package/dist/components/inputs/TextControl.js +31 -0
  349. package/dist/components/inputs/TextControl.js.map +1 -0
  350. package/dist/components/inputs/Transfer.d.ts +84 -0
  351. package/dist/components/inputs/Transfer.d.ts.map +1 -0
  352. package/dist/components/inputs/Transfer.js +112 -0
  353. package/dist/components/inputs/Transfer.js.map +1 -0
  354. package/dist/components/inputs/TreeSelect.d.ts +73 -0
  355. package/dist/components/inputs/TreeSelect.d.ts.map +1 -0
  356. package/dist/components/inputs/TreeSelect.js +60 -0
  357. package/dist/components/inputs/TreeSelect.js.map +1 -0
  358. package/dist/components/inputs/UploadQueue.d.ts +84 -0
  359. package/dist/components/inputs/UploadQueue.d.ts.map +1 -0
  360. package/dist/components/inputs/UploadQueue.js +30 -0
  361. package/dist/components/inputs/UploadQueue.js.map +1 -0
  362. package/dist/components/navigation/Accordion.d.ts +44 -0
  363. package/dist/components/navigation/Accordion.d.ts.map +1 -0
  364. package/dist/components/navigation/Accordion.js +12 -0
  365. package/dist/components/navigation/Accordion.js.map +1 -0
  366. package/dist/components/navigation/Breadcrumbs.d.ts +35 -0
  367. package/dist/components/navigation/Breadcrumbs.d.ts.map +1 -0
  368. package/dist/components/navigation/Breadcrumbs.js +17 -0
  369. package/dist/components/navigation/Breadcrumbs.js.map +1 -0
  370. package/dist/components/navigation/ContextualSaveBar.d.ts +90 -0
  371. package/dist/components/navigation/ContextualSaveBar.d.ts.map +1 -0
  372. package/dist/components/navigation/ContextualSaveBar.js +20 -0
  373. package/dist/components/navigation/ContextualSaveBar.js.map +1 -0
  374. package/dist/components/navigation/PageHeader.d.ts +17 -0
  375. package/dist/components/navigation/PageHeader.d.ts.map +1 -0
  376. package/dist/components/navigation/PageHeader.js +8 -0
  377. package/dist/components/navigation/PageHeader.js.map +1 -0
  378. package/dist/components/navigation/Pagination.d.ts +44 -0
  379. package/dist/components/navigation/Pagination.d.ts.map +1 -0
  380. package/dist/components/navigation/Pagination.js +57 -0
  381. package/dist/components/navigation/Pagination.js.map +1 -0
  382. package/dist/components/navigation/SectionHeader.d.ts +32 -0
  383. package/dist/components/navigation/SectionHeader.d.ts.map +1 -0
  384. package/dist/components/navigation/SectionHeader.js +13 -0
  385. package/dist/components/navigation/SectionHeader.js.map +1 -0
  386. package/dist/components/navigation/SelectionBar.d.ts +65 -0
  387. package/dist/components/navigation/SelectionBar.d.ts.map +1 -0
  388. package/dist/components/navigation/SelectionBar.js +24 -0
  389. package/dist/components/navigation/SelectionBar.js.map +1 -0
  390. package/dist/components/navigation/Stepper.d.ts +45 -0
  391. package/dist/components/navigation/Stepper.d.ts.map +1 -0
  392. package/dist/components/navigation/Stepper.js +16 -0
  393. package/dist/components/navigation/Stepper.js.map +1 -0
  394. package/dist/components/navigation/Tabs.d.ts +45 -0
  395. package/dist/components/navigation/Tabs.d.ts.map +1 -0
  396. package/dist/components/navigation/Tabs.js +51 -0
  397. package/dist/components/navigation/Tabs.js.map +1 -0
  398. package/dist/components/navigation/TreeView.d.ts +101 -0
  399. package/dist/components/navigation/TreeView.d.ts.map +1 -0
  400. package/dist/components/navigation/TreeView.js +27 -0
  401. package/dist/components/navigation/TreeView.js.map +1 -0
  402. package/dist/components/overlays/CommandPalette.d.ts +115 -0
  403. package/dist/components/overlays/CommandPalette.d.ts.map +1 -0
  404. package/dist/components/overlays/CommandPalette.js +43 -0
  405. package/dist/components/overlays/CommandPalette.js.map +1 -0
  406. package/dist/components/overlays/ConfirmDialog.d.ts +67 -0
  407. package/dist/components/overlays/ConfirmDialog.d.ts.map +1 -0
  408. package/dist/components/overlays/ConfirmDialog.js +47 -0
  409. package/dist/components/overlays/ConfirmDialog.js.map +1 -0
  410. package/dist/components/overlays/ContextMenu.d.ts +122 -0
  411. package/dist/components/overlays/ContextMenu.d.ts.map +1 -0
  412. package/dist/components/overlays/ContextMenu.js +39 -0
  413. package/dist/components/overlays/ContextMenu.js.map +1 -0
  414. package/dist/components/overlays/Dialog.d.ts +113 -0
  415. package/dist/components/overlays/Dialog.d.ts.map +1 -0
  416. package/dist/components/overlays/Dialog.js +43 -0
  417. package/dist/components/overlays/Dialog.js.map +1 -0
  418. package/dist/components/overlays/Drawer.d.ts +53 -0
  419. package/dist/components/overlays/Drawer.d.ts.map +1 -0
  420. package/dist/components/overlays/Drawer.js +32 -0
  421. package/dist/components/overlays/Drawer.js.map +1 -0
  422. package/dist/components/overlays/HelpTooltip.d.ts +41 -0
  423. package/dist/components/overlays/HelpTooltip.d.ts.map +1 -0
  424. package/dist/components/overlays/HelpTooltip.js +10 -0
  425. package/dist/components/overlays/HelpTooltip.js.map +1 -0
  426. package/dist/components/overlays/HoverCard.d.ts +62 -0
  427. package/dist/components/overlays/HoverCard.d.ts.map +1 -0
  428. package/dist/components/overlays/HoverCard.js +175 -0
  429. package/dist/components/overlays/HoverCard.js.map +1 -0
  430. package/dist/components/overlays/Menu.d.ts +113 -0
  431. package/dist/components/overlays/Menu.d.ts.map +1 -0
  432. package/dist/components/overlays/Menu.js +26 -0
  433. package/dist/components/overlays/Menu.js.map +1 -0
  434. package/dist/components/overlays/ModalHeader.d.ts +77 -0
  435. package/dist/components/overlays/ModalHeader.d.ts.map +1 -0
  436. package/dist/components/overlays/ModalHeader.js +11 -0
  437. package/dist/components/overlays/ModalHeader.js.map +1 -0
  438. package/dist/components/overlays/ModalOverlay.d.ts +45 -0
  439. package/dist/components/overlays/ModalOverlay.d.ts.map +1 -0
  440. package/dist/components/overlays/ModalOverlay.js +29 -0
  441. package/dist/components/overlays/ModalOverlay.js.map +1 -0
  442. package/dist/components/overlays/Popover.d.ts +56 -0
  443. package/dist/components/overlays/Popover.d.ts.map +1 -0
  444. package/dist/components/overlays/Popover.js +16 -0
  445. package/dist/components/overlays/Popover.js.map +1 -0
  446. package/dist/components/overlays/ShortcutsHelp.d.ts +70 -0
  447. package/dist/components/overlays/ShortcutsHelp.d.ts.map +1 -0
  448. package/dist/components/overlays/ShortcutsHelp.js +20 -0
  449. package/dist/components/overlays/ShortcutsHelp.js.map +1 -0
  450. package/dist/components/overlays/Tooltip.d.ts +35 -0
  451. package/dist/components/overlays/Tooltip.d.ts.map +1 -0
  452. package/dist/components/overlays/Tooltip.js +18 -0
  453. package/dist/components/overlays/Tooltip.js.map +1 -0
  454. package/dist/components/table/DataTable.d.ts +60 -0
  455. package/dist/components/table/DataTable.d.ts.map +1 -0
  456. package/dist/components/table/DataTable.js +20 -0
  457. package/dist/components/table/DataTable.js.map +1 -0
  458. package/dist/components/table/FilterBar.d.ts +35 -0
  459. package/dist/components/table/FilterBar.d.ts.map +1 -0
  460. package/dist/components/table/FilterBar.js +17 -0
  461. package/dist/components/table/FilterBar.js.map +1 -0
  462. package/dist/components/table/FilterBarAdd.d.ts +57 -0
  463. package/dist/components/table/FilterBarAdd.d.ts.map +1 -0
  464. package/dist/components/table/FilterBarAdd.js +83 -0
  465. package/dist/components/table/FilterBarAdd.js.map +1 -0
  466. package/dist/components/table/SavedViews.d.ts +83 -0
  467. package/dist/components/table/SavedViews.d.ts.map +1 -0
  468. package/dist/components/table/SavedViews.js +12 -0
  469. package/dist/components/table/SavedViews.js.map +1 -0
  470. package/dist/components/table/TablePreferences.d.ts +45 -0
  471. package/dist/components/table/TablePreferences.d.ts.map +1 -0
  472. package/dist/components/table/TablePreferences.js +41 -0
  473. package/dist/components/table/TablePreferences.js.map +1 -0
  474. package/dist/components/table/TableToolbar.d.ts +38 -0
  475. package/dist/components/table/TableToolbar.d.ts.map +1 -0
  476. package/dist/components/table/TableToolbar.js +11 -0
  477. package/dist/components/table/TableToolbar.js.map +1 -0
  478. package/dist/editor/RichTextEditor.d.ts +274 -0
  479. package/dist/editor/RichTextEditor.d.ts.map +1 -0
  480. package/dist/editor/RichTextEditor.js +671 -0
  481. package/dist/editor/RichTextEditor.js.map +1 -0
  482. package/dist/editor/RichTextView.d.ts +70 -0
  483. package/dist/editor/RichTextView.d.ts.map +1 -0
  484. package/dist/editor/RichTextView.js +24 -0
  485. package/dist/editor/RichTextView.js.map +1 -0
  486. package/dist/editor/core/atomText.d.ts +21 -0
  487. package/dist/editor/core/atomText.d.ts.map +1 -0
  488. package/dist/editor/core/atomText.js +77 -0
  489. package/dist/editor/core/atomText.js.map +1 -0
  490. package/dist/editor/core/blockCommands.d.ts +94 -0
  491. package/dist/editor/core/blockCommands.d.ts.map +1 -0
  492. package/dist/editor/core/blockCommands.js +188 -0
  493. package/dist/editor/core/blockCommands.js.map +1 -0
  494. package/dist/editor/core/blockTypes.d.ts +89 -0
  495. package/dist/editor/core/blockTypes.d.ts.map +1 -0
  496. package/dist/editor/core/blockTypes.js +121 -0
  497. package/dist/editor/core/blockTypes.js.map +1 -0
  498. package/dist/editor/core/containers.d.ts +43 -0
  499. package/dist/editor/core/containers.d.ts.map +1 -0
  500. package/dist/editor/core/containers.js +52 -0
  501. package/dist/editor/core/containers.js.map +1 -0
  502. package/dist/editor/core/customMarkdown.d.ts +8 -0
  503. package/dist/editor/core/customMarkdown.d.ts.map +1 -0
  504. package/dist/editor/core/customMarkdown.js +34 -0
  505. package/dist/editor/core/customMarkdown.js.map +1 -0
  506. package/dist/editor/core/customTool.d.ts +407 -0
  507. package/dist/editor/core/customTool.d.ts.map +1 -0
  508. package/dist/editor/core/customTool.js +31 -0
  509. package/dist/editor/core/customTool.js.map +1 -0
  510. package/dist/editor/core/customToolEngine.d.ts +31 -0
  511. package/dist/editor/core/customToolEngine.d.ts.map +1 -0
  512. package/dist/editor/core/customToolEngine.js +324 -0
  513. package/dist/editor/core/customToolEngine.js.map +1 -0
  514. package/dist/editor/core/document.d.ts +17 -0
  515. package/dist/editor/core/document.d.ts.map +1 -0
  516. package/dist/editor/core/document.js +11 -0
  517. package/dist/editor/core/document.js.map +1 -0
  518. package/dist/editor/core/emptiness.d.ts +18 -0
  519. package/dist/editor/core/emptiness.d.ts.map +1 -0
  520. package/dist/editor/core/emptiness.js +14 -0
  521. package/dist/editor/core/emptiness.js.map +1 -0
  522. package/dist/editor/core/extensions.d.ts +78 -0
  523. package/dist/editor/core/extensions.d.ts.map +1 -0
  524. package/dist/editor/core/extensions.js +134 -0
  525. package/dist/editor/core/extensions.js.map +1 -0
  526. package/dist/editor/core/fieldNotice.d.ts +48 -0
  527. package/dist/editor/core/fieldNotice.d.ts.map +1 -0
  528. package/dist/editor/core/fieldNotice.js +18 -0
  529. package/dist/editor/core/fieldNotice.js.map +1 -0
  530. package/dist/editor/core/handle.d.ts +110 -0
  531. package/dist/editor/core/handle.d.ts.map +1 -0
  532. package/dist/editor/core/handle.js +149 -0
  533. package/dist/editor/core/handle.js.map +1 -0
  534. package/dist/editor/core/insertItems.d.ts +147 -0
  535. package/dist/editor/core/insertItems.d.ts.map +1 -0
  536. package/dist/editor/core/insertItems.js +215 -0
  537. package/dist/editor/core/insertItems.js.map +1 -0
  538. package/dist/editor/core/jsonDocument.d.ts +42 -0
  539. package/dist/editor/core/jsonDocument.d.ts.map +1 -0
  540. package/dist/editor/core/jsonDocument.js +44 -0
  541. package/dist/editor/core/jsonDocument.js.map +1 -0
  542. package/dist/editor/core/markdown.d.ts +47 -0
  543. package/dist/editor/core/markdown.d.ts.map +1 -0
  544. package/dist/editor/core/markdown.js +169 -0
  545. package/dist/editor/core/markdown.js.map +1 -0
  546. package/dist/editor/core/maxLength.d.ts +43 -0
  547. package/dist/editor/core/maxLength.d.ts.map +1 -0
  548. package/dist/editor/core/maxLength.js +45 -0
  549. package/dist/editor/core/maxLength.js.map +1 -0
  550. package/dist/editor/core/pasteTrim.d.ts +8 -0
  551. package/dist/editor/core/pasteTrim.d.ts.map +1 -0
  552. package/dist/editor/core/pasteTrim.js +61 -0
  553. package/dist/editor/core/pasteTrim.js.map +1 -0
  554. package/dist/editor/core/schema.d.ts +479 -0
  555. package/dist/editor/core/schema.d.ts.map +1 -0
  556. package/dist/editor/core/schema.js +371 -0
  557. package/dist/editor/core/schema.js.map +1 -0
  558. package/dist/editor/core/schemaConform.d.ts +30 -0
  559. package/dist/editor/core/schemaConform.d.ts.map +1 -0
  560. package/dist/editor/core/schemaConform.js +72 -0
  561. package/dist/editor/core/schemaConform.js.map +1 -0
  562. package/dist/editor/core/shortcuts.d.ts +110 -0
  563. package/dist/editor/core/shortcuts.d.ts.map +1 -0
  564. package/dist/editor/core/shortcuts.js +299 -0
  565. package/dist/editor/core/shortcuts.js.map +1 -0
  566. package/dist/editor/core/skeleton.d.ts +11 -0
  567. package/dist/editor/core/skeleton.d.ts.map +1 -0
  568. package/dist/editor/core/skeleton.js +48 -0
  569. package/dist/editor/core/skeleton.js.map +1 -0
  570. package/dist/editor/core/slashCommand.d.ts +46 -0
  571. package/dist/editor/core/slashCommand.d.ts.map +1 -0
  572. package/dist/editor/core/slashCommand.js +67 -0
  573. package/dist/editor/core/slashCommand.js.map +1 -0
  574. package/dist/editor/core/sourceFormat.d.ts +30 -0
  575. package/dist/editor/core/sourceFormat.d.ts.map +1 -0
  576. package/dist/editor/core/sourceFormat.js +136 -0
  577. package/dist/editor/core/sourceFormat.js.map +1 -0
  578. package/dist/editor/core/toolButtons.d.ts +58 -0
  579. package/dist/editor/core/toolButtons.d.ts.map +1 -0
  580. package/dist/editor/core/toolButtons.js +64 -0
  581. package/dist/editor/core/toolButtons.js.map +1 -0
  582. package/dist/editor/core/toolDescriptor.d.ts +304 -0
  583. package/dist/editor/core/toolDescriptor.d.ts.map +1 -0
  584. package/dist/editor/core/toolDescriptor.js +29 -0
  585. package/dist/editor/core/toolDescriptor.js.map +1 -0
  586. package/dist/editor/core/toolEntryShortcuts.d.ts +20 -0
  587. package/dist/editor/core/toolEntryShortcuts.d.ts.map +1 -0
  588. package/dist/editor/core/toolEntryShortcuts.js +46 -0
  589. package/dist/editor/core/toolEntryShortcuts.js.map +1 -0
  590. package/dist/editor/core/toolLoader.d.ts +14 -0
  591. package/dist/editor/core/toolLoader.d.ts.map +1 -0
  592. package/dist/editor/core/toolLoader.js +20 -0
  593. package/dist/editor/core/toolLoader.js.map +1 -0
  594. package/dist/editor/core/tools.d.ts +90 -0
  595. package/dist/editor/core/tools.d.ts.map +1 -0
  596. package/dist/editor/core/tools.js +56 -0
  597. package/dist/editor/core/tools.js.map +1 -0
  598. package/dist/editor/core/viewIsland.d.ts +17 -0
  599. package/dist/editor/core/viewIsland.d.ts.map +1 -0
  600. package/dist/editor/core/viewIsland.js +4 -0
  601. package/dist/editor/core/viewIsland.js.map +1 -0
  602. package/dist/editor/features/builtins.d.ts +25 -0
  603. package/dist/editor/features/builtins.d.ts.map +1 -0
  604. package/dist/editor/features/builtins.js +88 -0
  605. package/dist/editor/features/builtins.js.map +1 -0
  606. package/dist/editor/features/code/CodeBlockView.d.ts +38 -0
  607. package/dist/editor/features/code/CodeBlockView.d.ts.map +1 -0
  608. package/dist/editor/features/code/CodeBlockView.js +98 -0
  609. package/dist/editor/features/code/CodeBlockView.js.map +1 -0
  610. package/dist/editor/features/code/CodeCopyButton.d.ts +20 -0
  611. package/dist/editor/features/code/CodeCopyButton.d.ts.map +1 -0
  612. package/dist/editor/features/code/CodeCopyButton.js +29 -0
  613. package/dist/editor/features/code/CodeCopyButton.js.map +1 -0
  614. package/dist/editor/features/code/CodeCopyIsland.d.ts +37 -0
  615. package/dist/editor/features/code/CodeCopyIsland.d.ts.map +1 -0
  616. package/dist/editor/features/code/CodeCopyIsland.js +21 -0
  617. package/dist/editor/features/code/CodeCopyIsland.js.map +1 -0
  618. package/dist/editor/features/code/codeBlock.d.ts +25 -0
  619. package/dist/editor/features/code/codeBlock.d.ts.map +1 -0
  620. package/dist/editor/features/code/codeBlock.js +116 -0
  621. package/dist/editor/features/code/codeBlock.js.map +1 -0
  622. package/dist/editor/features/code/codeBlockTool.d.ts +24 -0
  623. package/dist/editor/features/code/codeBlockTool.d.ts.map +1 -0
  624. package/dist/editor/features/code/codeBlockTool.js +66 -0
  625. package/dist/editor/features/code/codeBlockTool.js.map +1 -0
  626. package/dist/editor/features/code/codeHeader.d.ts +41 -0
  627. package/dist/editor/features/code/codeHeader.d.ts.map +1 -0
  628. package/dist/editor/features/code/codeHeader.js +25 -0
  629. package/dist/editor/features/code/codeHeader.js.map +1 -0
  630. package/dist/editor/features/code/codeLanguages.d.ts +76 -0
  631. package/dist/editor/features/code/codeLanguages.d.ts.map +1 -0
  632. package/dist/editor/features/code/codeLanguages.js +24 -0
  633. package/dist/editor/features/code/codeLanguages.js.map +1 -0
  634. package/dist/editor/features/code/highlight.d.ts +20 -0
  635. package/dist/editor/features/code/highlight.d.ts.map +1 -0
  636. package/dist/editor/features/code/highlight.js +51 -0
  637. package/dist/editor/features/code/highlight.js.map +1 -0
  638. package/dist/editor/features/code/highlightNodes.d.ts +31 -0
  639. package/dist/editor/features/code/highlightNodes.d.ts.map +1 -0
  640. package/dist/editor/features/code/highlightNodes.js +25 -0
  641. package/dist/editor/features/code/highlightNodes.js.map +1 -0
  642. package/dist/editor/features/code/lowlight.d.ts +20 -0
  643. package/dist/editor/features/code/lowlight.d.ts.map +1 -0
  644. package/dist/editor/features/code/lowlight.js +26 -0
  645. package/dist/editor/features/code/lowlight.js.map +1 -0
  646. package/dist/editor/features/color/CustomColorPopover.d.ts +40 -0
  647. package/dist/editor/features/color/CustomColorPopover.d.ts.map +1 -0
  648. package/dist/editor/features/color/CustomColorPopover.js +70 -0
  649. package/dist/editor/features/color/CustomColorPopover.js.map +1 -0
  650. package/dist/editor/features/color/contrast.d.ts +26 -0
  651. package/dist/editor/features/color/contrast.d.ts.map +1 -0
  652. package/dist/editor/features/color/contrast.js +27 -0
  653. package/dist/editor/features/color/contrast.js.map +1 -0
  654. package/dist/editor/features/color/customColor.d.ts +65 -0
  655. package/dist/editor/features/color/customColor.d.ts.map +1 -0
  656. package/dist/editor/features/color/customColor.js +29 -0
  657. package/dist/editor/features/color/customColor.js.map +1 -0
  658. package/dist/editor/features/color/styleExtensions.d.ts +28 -0
  659. package/dist/editor/features/color/styleExtensions.d.ts.map +1 -0
  660. package/dist/editor/features/color/styleExtensions.js +172 -0
  661. package/dist/editor/features/color/styleExtensions.js.map +1 -0
  662. package/dist/editor/features/emoji/EmojiGrid.d.ts +34 -0
  663. package/dist/editor/features/emoji/EmojiGrid.d.ts.map +1 -0
  664. package/dist/editor/features/emoji/EmojiGrid.js +71 -0
  665. package/dist/editor/features/emoji/EmojiGrid.js.map +1 -0
  666. package/dist/editor/features/emoji/emoji.d.ts +47 -0
  667. package/dist/editor/features/emoji/emoji.d.ts.map +1 -0
  668. package/dist/editor/features/emoji/emoji.js +108 -0
  669. package/dist/editor/features/emoji/emoji.js.map +1 -0
  670. package/dist/editor/features/emoji/emojiTool.d.ts +32 -0
  671. package/dist/editor/features/emoji/emojiTool.d.ts.map +1 -0
  672. package/dist/editor/features/emoji/emojiTool.js +34 -0
  673. package/dist/editor/features/emoji/emojiTool.js.map +1 -0
  674. package/dist/editor/features/image/ImagePopover.d.ts +29 -0
  675. package/dist/editor/features/image/ImagePopover.d.ts.map +1 -0
  676. package/dist/editor/features/image/ImagePopover.js +89 -0
  677. package/dist/editor/features/image/ImagePopover.js.map +1 -0
  678. package/dist/editor/features/image/ImageToolbar.d.ts +25 -0
  679. package/dist/editor/features/image/ImageToolbar.d.ts.map +1 -0
  680. package/dist/editor/features/image/ImageToolbar.js +49 -0
  681. package/dist/editor/features/image/ImageToolbar.js.map +1 -0
  682. package/dist/editor/features/image/image.d.ts +115 -0
  683. package/dist/editor/features/image/image.d.ts.map +1 -0
  684. package/dist/editor/features/image/image.js +539 -0
  685. package/dist/editor/features/image/image.js.map +1 -0
  686. package/dist/editor/features/image/imageNotice.d.ts +6 -0
  687. package/dist/editor/features/image/imageNotice.d.ts.map +1 -0
  688. package/dist/editor/features/image/imageNotice.js +16 -0
  689. package/dist/editor/features/image/imageNotice.js.map +1 -0
  690. package/dist/editor/features/layout/columnLayouts.d.ts +36 -0
  691. package/dist/editor/features/layout/columnLayouts.d.ts.map +1 -0
  692. package/dist/editor/features/layout/columnLayouts.js +33 -0
  693. package/dist/editor/features/layout/columnLayouts.js.map +1 -0
  694. package/dist/editor/features/layout/layout.d.ts +81 -0
  695. package/dist/editor/features/layout/layout.d.ts.map +1 -0
  696. package/dist/editor/features/layout/layout.js +318 -0
  697. package/dist/editor/features/layout/layout.js.map +1 -0
  698. package/dist/editor/features/link/LinkPopover.d.ts +21 -0
  699. package/dist/editor/features/link/LinkPopover.d.ts.map +1 -0
  700. package/dist/editor/features/link/LinkPopover.js +54 -0
  701. package/dist/editor/features/link/LinkPopover.js.map +1 -0
  702. package/dist/editor/features/link/link.d.ts +41 -0
  703. package/dist/editor/features/link/link.d.ts.map +1 -0
  704. package/dist/editor/features/link/link.js +66 -0
  705. package/dist/editor/features/link/link.js.map +1 -0
  706. package/dist/editor/features/link/linkTool.d.ts +13 -0
  707. package/dist/editor/features/link/linkTool.d.ts.map +1 -0
  708. package/dist/editor/features/link/linkTool.js +25 -0
  709. package/dist/editor/features/link/linkTool.js.map +1 -0
  710. package/dist/editor/features/search/SearchPanel.d.ts +31 -0
  711. package/dist/editor/features/search/SearchPanel.d.ts.map +1 -0
  712. package/dist/editor/features/search/SearchPanel.js +101 -0
  713. package/dist/editor/features/search/SearchPanel.js.map +1 -0
  714. package/dist/editor/features/search/revealMatch.d.ts +25 -0
  715. package/dist/editor/features/search/revealMatch.d.ts.map +1 -0
  716. package/dist/editor/features/search/revealMatch.js +41 -0
  717. package/dist/editor/features/search/revealMatch.js.map +1 -0
  718. package/dist/editor/features/search/searchMatch.d.ts +53 -0
  719. package/dist/editor/features/search/searchMatch.d.ts.map +1 -0
  720. package/dist/editor/features/search/searchMatch.js +67 -0
  721. package/dist/editor/features/search/searchMatch.js.map +1 -0
  722. package/dist/editor/features/search/searchPlugin.d.ts +48 -0
  723. package/dist/editor/features/search/searchPlugin.d.ts.map +1 -0
  724. package/dist/editor/features/search/searchPlugin.js +151 -0
  725. package/dist/editor/features/search/searchPlugin.js.map +1 -0
  726. package/dist/editor/features/search/searchTool.d.ts +13 -0
  727. package/dist/editor/features/search/searchTool.d.ts.map +1 -0
  728. package/dist/editor/features/search/searchTool.js +18 -0
  729. package/dist/editor/features/search/searchTool.js.map +1 -0
  730. package/dist/editor/features/table/TableInsertDialog.d.ts +29 -0
  731. package/dist/editor/features/table/TableInsertDialog.d.ts.map +1 -0
  732. package/dist/editor/features/table/TableInsertDialog.js +37 -0
  733. package/dist/editor/features/table/TableInsertDialog.js.map +1 -0
  734. package/dist/editor/features/table/TableMenuButton.d.ts +40 -0
  735. package/dist/editor/features/table/TableMenuButton.d.ts.map +1 -0
  736. package/dist/editor/features/table/TableMenuButton.js +97 -0
  737. package/dist/editor/features/table/TableMenuButton.js.map +1 -0
  738. package/dist/editor/features/table/TableSizeGrid.d.ts +60 -0
  739. package/dist/editor/features/table/TableSizeGrid.d.ts.map +1 -0
  740. package/dist/editor/features/table/TableSizeGrid.js +88 -0
  741. package/dist/editor/features/table/TableSizeGrid.js.map +1 -0
  742. package/dist/editor/features/table/tableActions.d.ts +110 -0
  743. package/dist/editor/features/table/tableActions.d.ts.map +1 -0
  744. package/dist/editor/features/table/tableActions.js +254 -0
  745. package/dist/editor/features/table/tableActions.js.map +1 -0
  746. package/dist/editor/features/table/tableCells.d.ts +41 -0
  747. package/dist/editor/features/table/tableCells.d.ts.map +1 -0
  748. package/dist/editor/features/table/tableCells.js +38 -0
  749. package/dist/editor/features/table/tableCells.js.map +1 -0
  750. package/dist/editor/features/table/tableChunk.d.ts +4 -0
  751. package/dist/editor/features/table/tableChunk.d.ts.map +1 -0
  752. package/dist/editor/features/table/tableChunk.js +5 -0
  753. package/dist/editor/features/table/tableChunk.js.map +1 -0
  754. package/dist/editor/features/table/tableTool.d.ts +22 -0
  755. package/dist/editor/features/table/tableTool.d.ts.map +1 -0
  756. package/dist/editor/features/table/tableTool.js +42 -0
  757. package/dist/editor/features/table/tableTool.js.map +1 -0
  758. package/dist/editor/features/table/tables.d.ts +79 -0
  759. package/dist/editor/features/table/tables.d.ts.map +1 -0
  760. package/dist/editor/features/table/tables.js +118 -0
  761. package/dist/editor/features/table/tables.js.map +1 -0
  762. package/dist/editor/features/wrapper/wrapper.d.ts +73 -0
  763. package/dist/editor/features/wrapper/wrapper.d.ts.map +1 -0
  764. package/dist/editor/features/wrapper/wrapper.js +198 -0
  765. package/dist/editor/features/wrapper/wrapper.js.map +1 -0
  766. package/dist/editor/features/wrapper/wrapperTones.d.ts +39 -0
  767. package/dist/editor/features/wrapper/wrapperTones.d.ts.map +1 -0
  768. package/dist/editor/features/wrapper/wrapperTones.js +19 -0
  769. package/dist/editor/features/wrapper/wrapperTones.js.map +1 -0
  770. package/dist/editor/highlight-entry.d.ts +24 -0
  771. package/dist/editor/highlight-entry.d.ts.map +1 -0
  772. package/dist/editor/highlight-entry.js +3 -0
  773. package/dist/editor/highlight-entry.js.map +1 -0
  774. package/dist/editor/hooks/useChangeThrottle.d.ts +24 -0
  775. package/dist/editor/hooks/useChangeThrottle.d.ts.map +1 -0
  776. package/dist/editor/hooks/useChangeThrottle.js +35 -0
  777. package/dist/editor/hooks/useChangeThrottle.js.map +1 -0
  778. package/dist/editor/hooks/useCoarsePointer.d.ts +17 -0
  779. package/dist/editor/hooks/useCoarsePointer.d.ts.map +1 -0
  780. package/dist/editor/hooks/useCoarsePointer.js +19 -0
  781. package/dist/editor/hooks/useCoarsePointer.js.map +1 -0
  782. package/dist/editor/hooks/useFieldsetDisabled.d.ts +22 -0
  783. package/dist/editor/hooks/useFieldsetDisabled.d.ts.map +1 -0
  784. package/dist/editor/hooks/useFieldsetDisabled.js +29 -0
  785. package/dist/editor/hooks/useFieldsetDisabled.js.map +1 -0
  786. package/dist/editor/hooks/useRichTextEditorState.d.ts +25 -0
  787. package/dist/editor/hooks/useRichTextEditorState.d.ts.map +1 -0
  788. package/dist/editor/hooks/useRichTextEditorState.js +17 -0
  789. package/dist/editor/hooks/useRichTextEditorState.js.map +1 -0
  790. package/dist/editor/hooks/useSubmenuPlacement.d.ts +19 -0
  791. package/dist/editor/hooks/useSubmenuPlacement.d.ts.map +1 -0
  792. package/dist/editor/hooks/useSubmenuPlacement.js +20 -0
  793. package/dist/editor/hooks/useSubmenuPlacement.js.map +1 -0
  794. package/dist/editor/index.d.ts +32 -0
  795. package/dist/editor/index.d.ts.map +1 -0
  796. package/dist/editor/index.js +7 -0
  797. package/dist/editor/index.js.map +1 -0
  798. package/dist/editor/schema-entry.d.ts +29 -0
  799. package/dist/editor/schema-entry.d.ts.map +1 -0
  800. package/dist/editor/schema-entry.js +3 -0
  801. package/dist/editor/schema-entry.js.map +1 -0
  802. package/dist/editor/styles/codeTheme.d.ts +49 -0
  803. package/dist/editor/styles/codeTheme.d.ts.map +1 -0
  804. package/dist/editor/styles/codeTheme.js +11 -0
  805. package/dist/editor/styles/codeTheme.js.map +1 -0
  806. package/dist/editor/styles/glass.d.ts +40 -0
  807. package/dist/editor/styles/glass.d.ts.map +1 -0
  808. package/dist/editor/styles/glass.js +15 -0
  809. package/dist/editor/styles/glass.js.map +1 -0
  810. package/dist/editor/styles/palette.d.ts +181 -0
  811. package/dist/editor/styles/palette.d.ts.map +1 -0
  812. package/dist/editor/styles/palette.js +57 -0
  813. package/dist/editor/styles/palette.js.map +1 -0
  814. package/dist/editor/styles/prose.d.ts +56 -0
  815. package/dist/editor/styles/prose.d.ts.map +1 -0
  816. package/dist/editor/styles/prose.js +154 -0
  817. package/dist/editor/styles/prose.js.map +1 -0
  818. package/dist/editor/styles/surface.d.ts +22 -0
  819. package/dist/editor/styles/surface.d.ts.map +1 -0
  820. package/dist/editor/styles/surface.js +4 -0
  821. package/dist/editor/styles/surface.js.map +1 -0
  822. package/dist/editor/styles/tokens.d.ts +136 -0
  823. package/dist/editor/styles/tokens.d.ts.map +1 -0
  824. package/dist/editor/styles/tokens.js +38 -0
  825. package/dist/editor/styles/tokens.js.map +1 -0
  826. package/dist/editor/ui/BlockHandle.d.ts +40 -0
  827. package/dist/editor/ui/BlockHandle.d.ts.map +1 -0
  828. package/dist/editor/ui/BlockHandle.js +394 -0
  829. package/dist/editor/ui/BlockHandle.js.map +1 -0
  830. package/dist/editor/ui/BlockIsland.d.ts +3 -0
  831. package/dist/editor/ui/BlockIsland.d.ts.map +1 -0
  832. package/dist/editor/ui/BlockIsland.js +8 -0
  833. package/dist/editor/ui/BlockIsland.js.map +1 -0
  834. package/dist/editor/ui/BlockIslandSlots.d.ts +31 -0
  835. package/dist/editor/ui/BlockIslandSlots.d.ts.map +1 -0
  836. package/dist/editor/ui/BlockIslandSlots.js +61 -0
  837. package/dist/editor/ui/BlockIslandSlots.js.map +1 -0
  838. package/dist/editor/ui/ColorMenus.d.ts +18 -0
  839. package/dist/editor/ui/ColorMenus.d.ts.map +1 -0
  840. package/dist/editor/ui/ColorMenus.js +281 -0
  841. package/dist/editor/ui/ColorMenus.js.map +1 -0
  842. package/dist/editor/ui/EditorToolbar.d.ts +71 -0
  843. package/dist/editor/ui/EditorToolbar.d.ts.map +1 -0
  844. package/dist/editor/ui/EditorToolbar.js +197 -0
  845. package/dist/editor/ui/EditorToolbar.js.map +1 -0
  846. package/dist/editor/ui/FieldResizer.d.ts +22 -0
  847. package/dist/editor/ui/FieldResizer.d.ts.map +1 -0
  848. package/dist/editor/ui/FieldResizer.js +75 -0
  849. package/dist/editor/ui/FieldResizer.js.map +1 -0
  850. package/dist/editor/ui/FieldStatus.d.ts +32 -0
  851. package/dist/editor/ui/FieldStatus.d.ts.map +1 -0
  852. package/dist/editor/ui/FieldStatus.js +15 -0
  853. package/dist/editor/ui/FieldStatus.js.map +1 -0
  854. package/dist/editor/ui/FloatingToolbar.d.ts +32 -0
  855. package/dist/editor/ui/FloatingToolbar.d.ts.map +1 -0
  856. package/dist/editor/ui/FloatingToolbar.js +17 -0
  857. package/dist/editor/ui/FloatingToolbar.js.map +1 -0
  858. package/dist/editor/ui/FormatMenus.d.ts +210 -0
  859. package/dist/editor/ui/FormatMenus.d.ts.map +1 -0
  860. package/dist/editor/ui/FormatMenus.js +296 -0
  861. package/dist/editor/ui/FormatMenus.js.map +1 -0
  862. package/dist/editor/ui/InsertMenuButton.d.ts +25 -0
  863. package/dist/editor/ui/InsertMenuButton.d.ts.map +1 -0
  864. package/dist/editor/ui/InsertMenuButton.js +28 -0
  865. package/dist/editor/ui/InsertMenuButton.js.map +1 -0
  866. package/dist/editor/ui/SelectionBubble.d.ts +46 -0
  867. package/dist/editor/ui/SelectionBubble.d.ts.map +1 -0
  868. package/dist/editor/ui/SelectionBubble.js +90 -0
  869. package/dist/editor/ui/SelectionBubble.js.map +1 -0
  870. package/dist/editor/ui/ShortcutsButton.d.ts +29 -0
  871. package/dist/editor/ui/ShortcutsButton.d.ts.map +1 -0
  872. package/dist/editor/ui/ShortcutsButton.js +34 -0
  873. package/dist/editor/ui/ShortcutsButton.js.map +1 -0
  874. package/dist/editor/ui/SlashMenu.d.ts +42 -0
  875. package/dist/editor/ui/SlashMenu.d.ts.map +1 -0
  876. package/dist/editor/ui/SlashMenu.js +114 -0
  877. package/dist/editor/ui/SlashMenu.js.map +1 -0
  878. package/dist/editor/ui/SuggestionList.d.ts +60 -0
  879. package/dist/editor/ui/SuggestionList.d.ts.map +1 -0
  880. package/dist/editor/ui/SuggestionList.js +61 -0
  881. package/dist/editor/ui/SuggestionList.js.map +1 -0
  882. package/dist/editor/ui/TextCard.d.ts +20 -0
  883. package/dist/editor/ui/TextCard.d.ts.map +1 -0
  884. package/dist/editor/ui/TextCard.js +192 -0
  885. package/dist/editor/ui/TextCard.js.map +1 -0
  886. package/dist/editor/ui/ToolButtonView.d.ts +58 -0
  887. package/dist/editor/ui/ToolButtonView.d.ts.map +1 -0
  888. package/dist/editor/ui/ToolButtonView.js +86 -0
  889. package/dist/editor/ui/ToolButtonView.js.map +1 -0
  890. package/dist/editor/ui/TriggerMenu.d.ts +25 -0
  891. package/dist/editor/ui/TriggerMenu.d.ts.map +1 -0
  892. package/dist/editor/ui/TriggerMenu.js +180 -0
  893. package/dist/editor/ui/TriggerMenu.js.map +1 -0
  894. package/dist/editor/ui/focusWithin.d.ts +22 -0
  895. package/dist/editor/ui/focusWithin.d.ts.map +1 -0
  896. package/dist/editor/ui/focusWithin.js +5 -0
  897. package/dist/editor/ui/focusWithin.js.map +1 -0
  898. package/dist/editor/ui/lockableMenu.d.ts +28 -0
  899. package/dist/editor/ui/lockableMenu.d.ts.map +1 -0
  900. package/dist/editor/ui/lockableMenu.js +17 -0
  901. package/dist/editor/ui/lockableMenu.js.map +1 -0
  902. package/dist/editor/ui/rowMarks.d.ts +21 -0
  903. package/dist/editor/ui/rowMarks.d.ts.map +1 -0
  904. package/dist/editor/ui/rowMarks.js +35 -0
  905. package/dist/editor/ui/rowMarks.js.map +1 -0
  906. package/dist/editor/ui/selectionMenu.d.ts +61 -0
  907. package/dist/editor/ui/selectionMenu.d.ts.map +1 -0
  908. package/dist/editor/ui/selectionMenu.js +32 -0
  909. package/dist/editor/ui/selectionMenu.js.map +1 -0
  910. package/dist/hooks/useFieldDescription.d.ts +45 -0
  911. package/dist/hooks/useFieldDescription.d.ts.map +1 -0
  912. package/dist/hooks/useFieldDescription.js +23 -0
  913. package/dist/hooks/useFieldDescription.js.map +1 -0
  914. package/dist/hooks/useMediaQuery.d.ts +25 -0
  915. package/dist/hooks/useMediaQuery.d.ts.map +1 -0
  916. package/dist/hooks/useMediaQuery.js +14 -0
  917. package/dist/hooks/useMediaQuery.js.map +1 -0
  918. package/dist/hooks/useOpenerFocus.d.ts +10 -0
  919. package/dist/hooks/useOpenerFocus.d.ts.map +1 -0
  920. package/dist/hooks/useOpenerFocus.js +35 -0
  921. package/dist/hooks/useOpenerFocus.js.map +1 -0
  922. package/dist/hooks/useOverlayLayer.d.ts +23 -0
  923. package/dist/hooks/useOverlayLayer.d.ts.map +1 -0
  924. package/dist/hooks/useOverlayLayer.js +19 -0
  925. package/dist/hooks/useOverlayLayer.js.map +1 -0
  926. package/dist/hooks/useScrollLock.d.ts +3 -0
  927. package/dist/hooks/useScrollLock.d.ts.map +1 -0
  928. package/dist/hooks/useScrollLock.js +52 -0
  929. package/dist/hooks/useScrollLock.js.map +1 -0
  930. package/dist/hooks/useStickyOffset.d.ts +53 -0
  931. package/dist/hooks/useStickyOffset.d.ts.map +1 -0
  932. package/dist/hooks/useStickyOffset.js +91 -0
  933. package/dist/hooks/useStickyOffset.js.map +1 -0
  934. package/dist/hooks/useTableState.d.ts +35 -0
  935. package/dist/hooks/useTableState.d.ts.map +1 -0
  936. package/dist/hooks/useTableState.js +23 -0
  937. package/dist/hooks/useTableState.js.map +1 -0
  938. package/dist/i18n/UiProvider.d.ts +53 -0
  939. package/dist/i18n/UiProvider.d.ts.map +1 -0
  940. package/dist/i18n/UiProvider.js +63 -0
  941. package/dist/i18n/UiProvider.js.map +1 -0
  942. package/dist/i18n/context.d.ts +26 -0
  943. package/dist/i18n/context.d.ts.map +1 -0
  944. package/dist/i18n/context.js +4 -0
  945. package/dist/i18n/context.js.map +1 -0
  946. package/dist/i18n/defaults.d.ts +19 -0
  947. package/dist/i18n/defaults.d.ts.map +1 -0
  948. package/dist/i18n/defaults.js +574 -0
  949. package/dist/i18n/defaults.js.map +1 -0
  950. package/dist/i18n/messages.d.ts +1178 -0
  951. package/dist/i18n/messages.d.ts.map +1 -0
  952. package/dist/i18n/messages.js +2 -0
  953. package/dist/i18n/messages.js.map +1 -0
  954. package/dist/i18n/useMessages.d.ts +26 -0
  955. package/dist/i18n/useMessages.d.ts.map +1 -0
  956. package/dist/i18n/useMessages.js +22 -0
  957. package/dist/i18n/useMessages.js.map +1 -0
  958. package/dist/icons.d.ts +437 -0
  959. package/dist/icons.d.ts.map +1 -0
  960. package/dist/icons.js +2 -0
  961. package/dist/icons.js.map +1 -0
  962. package/dist/index.d.ts +250 -0
  963. package/dist/index.d.ts.map +1 -0
  964. package/dist/index.js +128 -0
  965. package/dist/index.js.map +1 -0
  966. package/dist/lib/accessible-name.d.ts +34 -0
  967. package/dist/lib/accessible-name.d.ts.map +1 -0
  968. package/dist/lib/accessible-name.js +2 -0
  969. package/dist/lib/accessible-name.js.map +1 -0
  970. package/dist/lib/bottom-bar-slot.d.ts +24 -0
  971. package/dist/lib/bottom-bar-slot.d.ts.map +1 -0
  972. package/dist/lib/bottom-bar-slot.js +4 -0
  973. package/dist/lib/bottom-bar-slot.js.map +1 -0
  974. package/dist/lib/button.d.ts +36 -0
  975. package/dist/lib/button.d.ts.map +1 -0
  976. package/dist/lib/button.js +35 -0
  977. package/dist/lib/button.js.map +1 -0
  978. package/dist/lib/choice-card.d.ts +64 -0
  979. package/dist/lib/choice-card.d.ts.map +1 -0
  980. package/dist/lib/choice-card.js +15 -0
  981. package/dist/lib/choice-card.js.map +1 -0
  982. package/dist/lib/clamp.d.ts +17 -0
  983. package/dist/lib/clamp.d.ts.map +1 -0
  984. package/dist/lib/clamp.js +4 -0
  985. package/dist/lib/clamp.js.map +1 -0
  986. package/dist/lib/cn.d.ts +12 -0
  987. package/dist/lib/cn.d.ts.map +1 -0
  988. package/dist/lib/cn.js +14 -0
  989. package/dist/lib/cn.js.map +1 -0
  990. package/dist/lib/date.d.ts +61 -0
  991. package/dist/lib/date.d.ts.map +1 -0
  992. package/dist/lib/date.js +30 -0
  993. package/dist/lib/date.js.map +1 -0
  994. package/dist/lib/dev-warn.d.ts +26 -0
  995. package/dist/lib/dev-warn.d.ts.map +1 -0
  996. package/dist/lib/dev-warn.js +28 -0
  997. package/dist/lib/dev-warn.js.map +1 -0
  998. package/dist/lib/empty.d.ts +35 -0
  999. package/dist/lib/empty.d.ts.map +1 -0
  1000. package/dist/lib/empty.js +11 -0
  1001. package/dist/lib/empty.js.map +1 -0
  1002. package/dist/lib/field.d.ts +105 -0
  1003. package/dist/lib/field.d.ts.map +1 -0
  1004. package/dist/lib/field.js +18 -0
  1005. package/dist/lib/field.js.map +1 -0
  1006. package/dist/lib/filter-range.d.ts +24 -0
  1007. package/dist/lib/filter-range.d.ts.map +1 -0
  1008. package/dist/lib/filter-range.js +27 -0
  1009. package/dist/lib/filter-range.js.map +1 -0
  1010. package/dist/lib/interaction-modality.d.ts +40 -0
  1011. package/dist/lib/interaction-modality.d.ts.map +1 -0
  1012. package/dist/lib/interaction-modality.js +60 -0
  1013. package/dist/lib/interaction-modality.js.map +1 -0
  1014. package/dist/lib/mask.d.ts +94 -0
  1015. package/dist/lib/mask.d.ts.map +1 -0
  1016. package/dist/lib/mask.js +114 -0
  1017. package/dist/lib/mask.js.map +1 -0
  1018. package/dist/lib/menu.d.ts +85 -0
  1019. package/dist/lib/menu.d.ts.map +1 -0
  1020. package/dist/lib/menu.js +33 -0
  1021. package/dist/lib/menu.js.map +1 -0
  1022. package/dist/lib/overlay-layer.d.ts +101 -0
  1023. package/dist/lib/overlay-layer.d.ts.map +1 -0
  1024. package/dist/lib/overlay-layer.js +40 -0
  1025. package/dist/lib/overlay-layer.js.map +1 -0
  1026. package/dist/lib/period.d.ts +82 -0
  1027. package/dist/lib/period.d.ts.map +1 -0
  1028. package/dist/lib/period.js +58 -0
  1029. package/dist/lib/period.js.map +1 -0
  1030. package/dist/lib/progress-status.d.ts +38 -0
  1031. package/dist/lib/progress-status.d.ts.map +1 -0
  1032. package/dist/lib/progress-status.js +7 -0
  1033. package/dist/lib/progress-status.js.map +1 -0
  1034. package/dist/lib/published-height.d.ts +16 -0
  1035. package/dist/lib/published-height.d.ts.map +1 -0
  1036. package/dist/lib/published-height.js +72 -0
  1037. package/dist/lib/published-height.js.map +1 -0
  1038. package/dist/lib/reorder.d.ts +44 -0
  1039. package/dist/lib/reorder.d.ts.map +1 -0
  1040. package/dist/lib/reorder.js +22 -0
  1041. package/dist/lib/reorder.js.map +1 -0
  1042. package/dist/lib/responsive.d.ts +51 -0
  1043. package/dist/lib/responsive.d.ts.map +1 -0
  1044. package/dist/lib/responsive.js +12 -0
  1045. package/dist/lib/responsive.js.map +1 -0
  1046. package/dist/lib/state.d.ts +25 -0
  1047. package/dist/lib/state.d.ts.map +1 -0
  1048. package/dist/lib/state.js +21 -0
  1049. package/dist/lib/state.js.map +1 -0
  1050. package/dist/lib/table-state.d.ts +105 -0
  1051. package/dist/lib/table-state.d.ts.map +1 -0
  1052. package/dist/lib/table-state.js +121 -0
  1053. package/dist/lib/table-state.js.map +1 -0
  1054. package/dist/lib/tag.d.ts +25 -0
  1055. package/dist/lib/tag.d.ts.map +1 -0
  1056. package/dist/lib/tag.js +6 -0
  1057. package/dist/lib/tag.js.map +1 -0
  1058. package/dist/lib/themes.d.ts +54 -0
  1059. package/dist/lib/themes.d.ts.map +1 -0
  1060. package/dist/lib/themes.js +40 -0
  1061. package/dist/lib/themes.js.map +1 -0
  1062. package/dist/lib/time.d.ts +35 -0
  1063. package/dist/lib/time.d.ts.map +1 -0
  1064. package/dist/lib/time.js +68 -0
  1065. package/dist/lib/time.js.map +1 -0
  1066. package/dist/lib/toolbar-axis.d.ts +17 -0
  1067. package/dist/lib/toolbar-axis.d.ts.map +1 -0
  1068. package/dist/lib/toolbar-axis.js +10 -0
  1069. package/dist/lib/toolbar-axis.js.map +1 -0
  1070. package/dist/lib/touch.d.ts +16 -0
  1071. package/dist/lib/touch.d.ts.map +1 -0
  1072. package/dist/lib/touch.js +2 -0
  1073. package/dist/lib/touch.js.map +1 -0
  1074. package/dist/lib/variants.d.ts +204 -0
  1075. package/dist/lib/variants.d.ts.map +1 -0
  1076. package/dist/lib/variants.js +127 -0
  1077. package/dist/lib/variants.js.map +1 -0
  1078. package/dist/locales/en.d.ts +11 -0
  1079. package/dist/locales/en.d.ts.map +1 -0
  1080. package/dist/locales/en.js +3 -0
  1081. package/dist/locales/en.js.map +1 -0
  1082. package/dist/locales/ru.d.ts +5 -0
  1083. package/dist/locales/ru.d.ts.map +1 -0
  1084. package/dist/locales/ru.js +591 -0
  1085. package/dist/locales/ru.js.map +1 -0
  1086. package/docs/accessibility.en.md +79 -0
  1087. package/docs/accessibility.md +73 -0
  1088. package/docs/api/editor-extension.en.md +309 -0
  1089. package/docs/api/editor-extension.md +308 -0
  1090. package/docs/api/messages.md +750 -0
  1091. package/docs/api/migration-notes.en.md +885 -0
  1092. package/docs/api/migration-notes.md +890 -0
  1093. package/docs/api/utilities.md +252 -0
  1094. package/docs/component-selection.en.md +48 -0
  1095. package/docs/component-selection.md +44 -0
  1096. package/docs/components/actions/button.en.md +59 -0
  1097. package/docs/components/actions/button.md +58 -0
  1098. package/docs/components/actions/chip.en.md +47 -0
  1099. package/docs/components/actions/chip.md +46 -0
  1100. package/docs/components/actions/copy-and-truncate.en.md +98 -0
  1101. package/docs/components/actions/copy-and-truncate.md +96 -0
  1102. package/docs/components/actions/feedback.en.md +69 -0
  1103. package/docs/components/actions/feedback.md +68 -0
  1104. package/docs/components/actions/split-button.en.md +76 -0
  1105. package/docs/components/actions/split-button.md +75 -0
  1106. package/docs/components/actions/toggles.en.md +139 -0
  1107. package/docs/components/actions/toggles.md +136 -0
  1108. package/docs/components/actions/toolbar.en.md +197 -0
  1109. package/docs/components/actions/toolbar.md +192 -0
  1110. package/docs/components/app-shell/app-shell.en.md +172 -0
  1111. package/docs/components/app-shell/app-shell.md +172 -0
  1112. package/docs/components/app-shell/mobile-tab-bar.en.md +207 -0
  1113. package/docs/components/app-shell/mobile-tab-bar.md +210 -0
  1114. package/docs/components/app-shell/side-nav.en.md +153 -0
  1115. package/docs/components/app-shell/side-nav.md +152 -0
  1116. package/docs/components/app-shell/split-panel.en.md +148 -0
  1117. package/docs/components/app-shell/split-panel.md +147 -0
  1118. package/docs/components/app-shell/top-bar.en.md +103 -0
  1119. package/docs/components/app-shell/top-bar.md +100 -0
  1120. package/docs/components/content/avatar.en.md +123 -0
  1121. package/docs/components/content/avatar.md +119 -0
  1122. package/docs/components/content/card.en.md +123 -0
  1123. package/docs/components/content/card.md +122 -0
  1124. package/docs/components/content/carousel.en.md +236 -0
  1125. package/docs/components/content/carousel.md +227 -0
  1126. package/docs/components/content/code-view.en.md +177 -0
  1127. package/docs/components/content/code-view.md +172 -0
  1128. package/docs/components/content/data-display.en.md +205 -0
  1129. package/docs/components/content/data-display.md +212 -0
  1130. package/docs/components/content/editable-list.en.md +437 -0
  1131. package/docs/components/content/editable-list.md +418 -0
  1132. package/docs/components/content/empty-and-loading.en.md +149 -0
  1133. package/docs/components/content/empty-and-loading.md +149 -0
  1134. package/docs/components/content/grid.en.md +148 -0
  1135. package/docs/components/content/grid.md +142 -0
  1136. package/docs/components/content/image.en.md +115 -0
  1137. package/docs/components/content/image.md +114 -0
  1138. package/docs/components/content/keyboard.en.md +129 -0
  1139. package/docs/components/content/keyboard.md +129 -0
  1140. package/docs/components/content/layout-primitives.en.md +105 -0
  1141. package/docs/components/content/layout-primitives.md +104 -0
  1142. package/docs/components/content/media-card.en.md +137 -0
  1143. package/docs/components/content/media-card.md +132 -0
  1144. package/docs/components/content/notifications.en.md +216 -0
  1145. package/docs/components/content/notifications.md +207 -0
  1146. package/docs/components/content/rich-text-view.en.md +325 -0
  1147. package/docs/components/content/rich-text-view.md +324 -0
  1148. package/docs/components/content/sortable-list.en.md +212 -0
  1149. package/docs/components/content/sortable-list.md +206 -0
  1150. package/docs/components/content/tag-group.en.md +158 -0
  1151. package/docs/components/content/tag-group.md +151 -0
  1152. package/docs/components/content/timeline.en.md +77 -0
  1153. package/docs/components/content/timeline.md +76 -0
  1154. package/docs/components/content/typography.en.md +152 -0
  1155. package/docs/components/content/typography.md +146 -0
  1156. package/docs/components/content/virtual-grid.en.md +305 -0
  1157. package/docs/components/content/virtual-grid.md +315 -0
  1158. package/docs/components/date-time/calendar.en.md +47 -0
  1159. package/docs/components/date-time/calendar.md +46 -0
  1160. package/docs/components/date-time/date-picker.en.md +52 -0
  1161. package/docs/components/date-time/date-picker.md +50 -0
  1162. package/docs/components/date-time/date-range-picker.en.md +58 -0
  1163. package/docs/components/date-time/date-range-picker.md +57 -0
  1164. package/docs/components/date-time/date-time-picker.en.md +44 -0
  1165. package/docs/components/date-time/date-time-picker.md +43 -0
  1166. package/docs/components/date-time/range-calendar.en.md +47 -0
  1167. package/docs/components/date-time/range-calendar.md +46 -0
  1168. package/docs/components/date-time/time-picker.en.md +47 -0
  1169. package/docs/components/date-time/time-picker.md +51 -0
  1170. package/docs/components/index.en.md +155 -0
  1171. package/docs/components/index.md +150 -0
  1172. package/docs/components/inputs/choice-controls.en.md +118 -0
  1173. package/docs/components/inputs/choice-controls.md +112 -0
  1174. package/docs/components/inputs/color-picker.en.md +126 -0
  1175. package/docs/components/inputs/color-picker.md +122 -0
  1176. package/docs/components/inputs/combobox.en.md +62 -0
  1177. package/docs/components/inputs/combobox.md +58 -0
  1178. package/docs/components/inputs/file-dropzone.en.md +51 -0
  1179. package/docs/components/inputs/file-dropzone.md +50 -0
  1180. package/docs/components/inputs/form-layout.en.md +99 -0
  1181. package/docs/components/inputs/form-layout.md +97 -0
  1182. package/docs/components/inputs/form.en.md +87 -0
  1183. package/docs/components/inputs/form.md +86 -0
  1184. package/docs/components/inputs/inline-edit.en.md +93 -0
  1185. package/docs/components/inputs/inline-edit.md +94 -0
  1186. package/docs/components/inputs/masked-input.en.md +149 -0
  1187. package/docs/components/inputs/masked-input.md +147 -0
  1188. package/docs/components/inputs/number-input.en.md +81 -0
  1189. package/docs/components/inputs/number-input.md +80 -0
  1190. package/docs/components/inputs/password-input.en.md +101 -0
  1191. package/docs/components/inputs/password-input.md +97 -0
  1192. package/docs/components/inputs/phone-input.en.md +78 -0
  1193. package/docs/components/inputs/phone-input.md +76 -0
  1194. package/docs/components/inputs/pin-input.en.md +109 -0
  1195. package/docs/components/inputs/pin-input.md +108 -0
  1196. package/docs/components/inputs/rating.en.md +100 -0
  1197. package/docs/components/inputs/rating.md +99 -0
  1198. package/docs/components/inputs/rich-text-editor.en.md +1539 -0
  1199. package/docs/components/inputs/rich-text-editor.md +1538 -0
  1200. package/docs/components/inputs/search-control.en.md +60 -0
  1201. package/docs/components/inputs/search-control.md +58 -0
  1202. package/docs/components/inputs/select.en.md +68 -0
  1203. package/docs/components/inputs/select.md +65 -0
  1204. package/docs/components/inputs/slider.en.md +60 -0
  1205. package/docs/components/inputs/slider.md +59 -0
  1206. package/docs/components/inputs/swatch-group.en.md +181 -0
  1207. package/docs/components/inputs/swatch-group.md +177 -0
  1208. package/docs/components/inputs/tag-input.en.md +50 -0
  1209. package/docs/components/inputs/tag-input.md +48 -0
  1210. package/docs/components/inputs/text-control.en.md +76 -0
  1211. package/docs/components/inputs/text-control.md +74 -0
  1212. package/docs/components/inputs/transfer.en.md +118 -0
  1213. package/docs/components/inputs/transfer.md +114 -0
  1214. package/docs/components/inputs/tree-select.en.md +91 -0
  1215. package/docs/components/inputs/tree-select.md +89 -0
  1216. package/docs/components/inputs/upload-queue.en.md +160 -0
  1217. package/docs/components/inputs/upload-queue.md +158 -0
  1218. package/docs/components/navigation/accordion.en.md +76 -0
  1219. package/docs/components/navigation/accordion.md +75 -0
  1220. package/docs/components/navigation/breadcrumbs.en.md +73 -0
  1221. package/docs/components/navigation/breadcrumbs.md +72 -0
  1222. package/docs/components/navigation/contextual-save-bar.en.md +104 -0
  1223. package/docs/components/navigation/contextual-save-bar.md +103 -0
  1224. package/docs/components/navigation/page-header.en.md +71 -0
  1225. package/docs/components/navigation/page-header.md +70 -0
  1226. package/docs/components/navigation/pagination.en.md +69 -0
  1227. package/docs/components/navigation/pagination.md +69 -0
  1228. package/docs/components/navigation/section-header.en.md +67 -0
  1229. package/docs/components/navigation/section-header.md +66 -0
  1230. package/docs/components/navigation/selection-bar.en.md +83 -0
  1231. package/docs/components/navigation/selection-bar.md +83 -0
  1232. package/docs/components/navigation/stepper.en.md +78 -0
  1233. package/docs/components/navigation/stepper.md +77 -0
  1234. package/docs/components/navigation/tabs.en.md +71 -0
  1235. package/docs/components/navigation/tabs.md +70 -0
  1236. package/docs/components/navigation/tree-view.en.md +173 -0
  1237. package/docs/components/navigation/tree-view.md +172 -0
  1238. package/docs/components/overlays/command-palette.en.md +153 -0
  1239. package/docs/components/overlays/command-palette.md +147 -0
  1240. package/docs/components/overlays/confirm-dialog.en.md +134 -0
  1241. package/docs/components/overlays/confirm-dialog.md +127 -0
  1242. package/docs/components/overlays/context-menu.en.md +115 -0
  1243. package/docs/components/overlays/context-menu.md +113 -0
  1244. package/docs/components/overlays/dialog.en.md +120 -0
  1245. package/docs/components/overlays/dialog.md +117 -0
  1246. package/docs/components/overlays/drawer.en.md +87 -0
  1247. package/docs/components/overlays/drawer.md +88 -0
  1248. package/docs/components/overlays/hover-card.en.md +179 -0
  1249. package/docs/components/overlays/hover-card.md +175 -0
  1250. package/docs/components/overlays/menu.en.md +103 -0
  1251. package/docs/components/overlays/menu.md +100 -0
  1252. package/docs/components/overlays/popover.en.md +78 -0
  1253. package/docs/components/overlays/popover.md +77 -0
  1254. package/docs/components/overlays/shortcuts-help.en.md +190 -0
  1255. package/docs/components/overlays/shortcuts-help.md +186 -0
  1256. package/docs/components/overlays/tooltip.en.md +78 -0
  1257. package/docs/components/overlays/tooltip.md +77 -0
  1258. package/docs/components/table/data-table.en.md +137 -0
  1259. package/docs/components/table/data-table.md +133 -0
  1260. package/docs/components/table/filter-bar.en.md +161 -0
  1261. package/docs/components/table/filter-bar.md +155 -0
  1262. package/docs/components/table/saved-views.en.md +117 -0
  1263. package/docs/components/table/saved-views.md +115 -0
  1264. package/docs/components/table/toolbar.en.md +100 -0
  1265. package/docs/components/table/toolbar.md +97 -0
  1266. package/docs/conventions.md +358 -0
  1267. package/docs/getting-started.en.md +382 -0
  1268. package/docs/getting-started.md +381 -0
  1269. package/docs/glossary.en.md +179 -0
  1270. package/docs/glossary.md +174 -0
  1271. package/docs/i18n.en.md +147 -0
  1272. package/docs/i18n.md +143 -0
  1273. package/docs/icons.en.md +252 -0
  1274. package/docs/icons.md +251 -0
  1275. package/docs/index.md +62 -0
  1276. package/docs/palette.en.md +400 -0
  1277. package/docs/palette.md +396 -0
  1278. package/docs/theming.en.md +522 -0
  1279. package/docs/theming.md +518 -0
  1280. package/llms.txt +144 -0
  1281. package/package.json +173 -4
  1282. package/src/color.ts +21 -0
  1283. package/src/components/actions/Alert.tsx +121 -0
  1284. package/src/components/actions/Banner.tsx +120 -0
  1285. package/src/components/actions/Button.tsx +241 -0
  1286. package/src/components/actions/ButtonGroup.tsx +65 -0
  1287. package/src/components/actions/Chip.tsx +113 -0
  1288. package/src/components/actions/CopyButton.tsx +112 -0
  1289. package/src/components/actions/Progress.tsx +103 -0
  1290. package/src/components/actions/Segmented.tsx +162 -0
  1291. package/src/components/actions/Spinner.tsx +80 -0
  1292. package/src/components/actions/SplitButton.tsx +164 -0
  1293. package/src/components/actions/StatusBadge.tsx +61 -0
  1294. package/src/components/actions/Toaster.tsx +148 -0
  1295. package/src/components/actions/Toggle.tsx +224 -0
  1296. package/src/components/actions/ToggleGroup.tsx +147 -0
  1297. package/src/components/actions/Toolbar.tsx +223 -0
  1298. package/src/components/actions/Truncate.tsx +96 -0
  1299. package/src/components/app-shell/AppShell.tsx +268 -0
  1300. package/src/components/app-shell/MobileTabBar.tsx +305 -0
  1301. package/src/components/app-shell/NavItem.tsx +149 -0
  1302. package/src/components/app-shell/SideNav.tsx +217 -0
  1303. package/src/components/app-shell/SplitPanel.tsx +381 -0
  1304. package/src/components/app-shell/TopBar.tsx +115 -0
  1305. package/src/components/content/AspectRatio.tsx +45 -0
  1306. package/src/components/content/Avatar.tsx +132 -0
  1307. package/src/components/content/AvatarGroup.tsx +92 -0
  1308. package/src/components/content/Badge.tsx +78 -0
  1309. package/src/components/content/Card.tsx +117 -0
  1310. package/src/components/content/Carousel.tsx +427 -0
  1311. package/src/components/content/CodeView.tsx +178 -0
  1312. package/src/components/content/DescriptionList.tsx +64 -0
  1313. package/src/components/content/EditableList.tsx +879 -0
  1314. package/src/components/content/EmptyState.tsx +65 -0
  1315. package/src/components/content/ErrorState.tsx +100 -0
  1316. package/src/components/content/Grid.tsx +208 -0
  1317. package/src/components/content/Heading.tsx +81 -0
  1318. package/src/components/content/Image.tsx +235 -0
  1319. package/src/components/content/Kbd.tsx +67 -0
  1320. package/src/components/content/Keyboard.tsx +634 -0
  1321. package/src/components/content/Link.tsx +199 -0
  1322. package/src/components/content/MediaCard.tsx +167 -0
  1323. package/src/components/content/NotificationCenter.tsx +168 -0
  1324. package/src/components/content/NotificationList.tsx +329 -0
  1325. package/src/components/content/ScrollArea.tsx +69 -0
  1326. package/src/components/content/Separator.tsx +62 -0
  1327. package/src/components/content/Skeleton.tsx +40 -0
  1328. package/src/components/content/SortableList.tsx +249 -0
  1329. package/src/components/content/Stat.tsx +75 -0
  1330. package/src/components/content/Table.tsx +500 -0
  1331. package/src/components/content/TagGroup.tsx +222 -0
  1332. package/src/components/content/Text.tsx +127 -0
  1333. package/src/components/content/Timeline.tsx +126 -0
  1334. package/src/components/content/VirtualGrid.tsx +726 -0
  1335. package/src/components/content/VisuallyHidden.tsx +25 -0
  1336. package/src/components/content/keyboardEditing.ts +51 -0
  1337. package/src/components/content/useDragToSelect.ts +255 -0
  1338. package/src/components/date-time/Calendar.tsx +181 -0
  1339. package/src/components/date-time/DatePicker.tsx +143 -0
  1340. package/src/components/date-time/DateRangePicker.tsx +349 -0
  1341. package/src/components/date-time/DateTimePicker.tsx +92 -0
  1342. package/src/components/date-time/RangeCalendar.tsx +156 -0
  1343. package/src/components/date-time/TimePicker.tsx +377 -0
  1344. package/src/components/inputs/Checkbox.tsx +284 -0
  1345. package/src/components/inputs/CheckboxCard.tsx +132 -0
  1346. package/src/components/inputs/CheckboxGroup.tsx +140 -0
  1347. package/src/components/inputs/ChoiceCardBody.tsx +53 -0
  1348. package/src/components/inputs/ColorPicker.tsx +221 -0
  1349. package/src/components/inputs/Combobox.tsx +156 -0
  1350. package/src/components/inputs/FileDropzone.tsx +253 -0
  1351. package/src/components/inputs/Form.tsx +77 -0
  1352. package/src/components/inputs/FormField.tsx +235 -0
  1353. package/src/components/inputs/FormLayout.tsx +80 -0
  1354. package/src/components/inputs/InlineEdit.tsx +205 -0
  1355. package/src/components/inputs/MaskedInput.tsx +288 -0
  1356. package/src/components/inputs/NumberInput.tsx +138 -0
  1357. package/src/components/inputs/PasswordInput.tsx +166 -0
  1358. package/src/components/inputs/PhoneInput.tsx +55 -0
  1359. package/src/components/inputs/PinInput.tsx +197 -0
  1360. package/src/components/inputs/RadioGroup.tsx +322 -0
  1361. package/src/components/inputs/Rating.tsx +224 -0
  1362. package/src/components/inputs/SearchControl.tsx +278 -0
  1363. package/src/components/inputs/Select.tsx +741 -0
  1364. package/src/components/inputs/Slider.tsx +436 -0
  1365. package/src/components/inputs/SwatchGroup.tsx +342 -0
  1366. package/src/components/inputs/TagInput.tsx +221 -0
  1367. package/src/components/inputs/TextControl.tsx +335 -0
  1368. package/src/components/inputs/Transfer.tsx +368 -0
  1369. package/src/components/inputs/TreeSelect.tsx +275 -0
  1370. package/src/components/inputs/UploadQueue.tsx +240 -0
  1371. package/src/components/navigation/Accordion.tsx +118 -0
  1372. package/src/components/navigation/Breadcrumbs.tsx +112 -0
  1373. package/src/components/navigation/ContextualSaveBar.tsx +174 -0
  1374. package/src/components/navigation/PageHeader.tsx +41 -0
  1375. package/src/components/navigation/Pagination.tsx +184 -0
  1376. package/src/components/navigation/SectionHeader.tsx +54 -0
  1377. package/src/components/navigation/SelectionBar.tsx +151 -0
  1378. package/src/components/navigation/Stepper.tsx +153 -0
  1379. package/src/components/navigation/Tabs.tsx +130 -0
  1380. package/src/components/navigation/TreeView.tsx +246 -0
  1381. package/src/components/overlays/CommandPalette.tsx +343 -0
  1382. package/src/components/overlays/ConfirmDialog.tsx +272 -0
  1383. package/src/components/overlays/ContextMenu.tsx +284 -0
  1384. package/src/components/overlays/Dialog.tsx +283 -0
  1385. package/src/components/overlays/Drawer.tsx +193 -0
  1386. package/src/components/overlays/HelpTooltip.tsx +96 -0
  1387. package/src/components/overlays/HoverCard.tsx +404 -0
  1388. package/src/components/overlays/Menu.tsx +243 -0
  1389. package/src/components/overlays/ModalHeader.tsx +125 -0
  1390. package/src/components/overlays/ModalOverlay.tsx +108 -0
  1391. package/src/components/overlays/Popover.tsx +120 -0
  1392. package/src/components/overlays/ShortcutsHelp.tsx +147 -0
  1393. package/src/components/overlays/Tooltip.tsx +89 -0
  1394. package/src/components/table/DataTable.tsx +164 -0
  1395. package/src/components/table/FilterBar.tsx +114 -0
  1396. package/src/components/table/FilterBarAdd.tsx +268 -0
  1397. package/src/components/table/SavedViews.tsx +122 -0
  1398. package/src/components/table/TablePreferences.tsx +173 -0
  1399. package/src/components/table/TableToolbar.tsx +74 -0
  1400. package/src/editor/RichTextEditor.tsx +1747 -0
  1401. package/src/editor/RichTextView.tsx +119 -0
  1402. package/src/editor/core/atomText.ts +140 -0
  1403. package/src/editor/core/blockCommands.ts +329 -0
  1404. package/src/editor/core/blockTypes.ts +252 -0
  1405. package/src/editor/core/containers.ts +100 -0
  1406. package/src/editor/core/customMarkdown.ts +74 -0
  1407. package/src/editor/core/customTool.ts +472 -0
  1408. package/src/editor/core/customToolEngine.ts +442 -0
  1409. package/src/editor/core/document.ts +27 -0
  1410. package/src/editor/core/emptiness.ts +31 -0
  1411. package/src/editor/core/extensions.ts +295 -0
  1412. package/src/editor/core/fieldNotice.ts +75 -0
  1413. package/src/editor/core/handle.ts +311 -0
  1414. package/src/editor/core/insertItems.ts +434 -0
  1415. package/src/editor/core/jsonDocument.ts +99 -0
  1416. package/src/editor/core/markdown.ts +313 -0
  1417. package/src/editor/core/maxLength.ts +99 -0
  1418. package/src/editor/core/pasteTrim.ts +85 -0
  1419. package/src/editor/core/schema.ts +986 -0
  1420. package/src/editor/core/schemaConform.ts +122 -0
  1421. package/src/editor/core/shortcuts.ts +435 -0
  1422. package/src/editor/core/skeleton.ts +108 -0
  1423. package/src/editor/core/slashCommand.ts +143 -0
  1424. package/src/editor/core/sourceFormat.ts +194 -0
  1425. package/src/editor/core/toolButtons.ts +133 -0
  1426. package/src/editor/core/toolDescriptor.ts +359 -0
  1427. package/src/editor/core/toolEntryShortcuts.ts +66 -0
  1428. package/src/editor/core/toolLoader.ts +50 -0
  1429. package/src/editor/core/tools.ts +150 -0
  1430. package/src/editor/core/viewIsland.ts +35 -0
  1431. package/src/editor/features/builtins.ts +145 -0
  1432. package/src/editor/features/code/CodeBlockView.tsx +240 -0
  1433. package/src/editor/features/code/CodeCopyButton.tsx +76 -0
  1434. package/src/editor/features/code/CodeCopyIsland.tsx +71 -0
  1435. package/src/editor/features/code/codeBlock.ts +188 -0
  1436. package/src/editor/features/code/codeBlockTool.ts +107 -0
  1437. package/src/editor/features/code/codeHeader.ts +97 -0
  1438. package/src/editor/features/code/codeLanguages.ts +62 -0
  1439. package/src/editor/features/code/highlight.ts +109 -0
  1440. package/src/editor/features/code/highlightNodes.ts +65 -0
  1441. package/src/editor/features/code/lowlight.ts +45 -0
  1442. package/src/editor/features/color/CustomColorPopover.tsx +180 -0
  1443. package/src/editor/features/color/contrast.ts +52 -0
  1444. package/src/editor/features/color/customColor.ts +91 -0
  1445. package/src/editor/features/color/styleExtensions.ts +316 -0
  1446. package/src/editor/features/emoji/EmojiGrid.tsx +160 -0
  1447. package/src/editor/features/emoji/emoji.ts +156 -0
  1448. package/src/editor/features/emoji/emojiTool.tsx +67 -0
  1449. package/src/editor/features/image/ImagePopover.tsx +254 -0
  1450. package/src/editor/features/image/ImageToolbar.tsx +147 -0
  1451. package/src/editor/features/image/image.ts +821 -0
  1452. package/src/editor/features/image/imageNotice.ts +27 -0
  1453. package/src/editor/features/layout/columnLayouts.ts +71 -0
  1454. package/src/editor/features/layout/layout.ts +537 -0
  1455. package/src/editor/features/link/LinkPopover.tsx +114 -0
  1456. package/src/editor/features/link/link.ts +112 -0
  1457. package/src/editor/features/link/linkTool.tsx +36 -0
  1458. package/src/editor/features/search/SearchPanel.tsx +264 -0
  1459. package/src/editor/features/search/revealMatch.ts +69 -0
  1460. package/src/editor/features/search/searchMatch.ts +129 -0
  1461. package/src/editor/features/search/searchPlugin.ts +254 -0
  1462. package/src/editor/features/search/searchTool.ts +30 -0
  1463. package/src/editor/features/table/TableInsertDialog.tsx +129 -0
  1464. package/src/editor/features/table/TableMenuButton.tsx +503 -0
  1465. package/src/editor/features/table/TableSizeGrid.tsx +265 -0
  1466. package/src/editor/features/table/tableActions.ts +380 -0
  1467. package/src/editor/features/table/tableCells.ts +63 -0
  1468. package/src/editor/features/table/tableChunk.ts +11 -0
  1469. package/src/editor/features/table/tableTool.ts +74 -0
  1470. package/src/editor/features/table/tables.ts +220 -0
  1471. package/src/editor/features/wrapper/wrapper.ts +350 -0
  1472. package/src/editor/features/wrapper/wrapperTones.ts +51 -0
  1473. package/src/editor/highlight-entry.ts +23 -0
  1474. package/src/editor/highlight-grammars.d.ts +12 -0
  1475. package/src/editor/hooks/useChangeThrottle.ts +62 -0
  1476. package/src/editor/hooks/useCoarsePointer.ts +36 -0
  1477. package/src/editor/hooks/useFieldsetDisabled.ts +53 -0
  1478. package/src/editor/hooks/useRichTextEditorState.ts +51 -0
  1479. package/src/editor/hooks/useSubmenuPlacement.ts +40 -0
  1480. package/src/editor/index.ts +59 -0
  1481. package/src/editor/schema-entry.ts +40 -0
  1482. package/src/editor/styles/codeTheme.ts +66 -0
  1483. package/src/editor/styles/glass.ts +66 -0
  1484. package/src/editor/styles/palette.ts +191 -0
  1485. package/src/editor/styles/prose.ts +429 -0
  1486. package/src/editor/styles/surface.ts +24 -0
  1487. package/src/editor/styles/tokens.ts +173 -0
  1488. package/src/editor/ui/BlockHandle.tsx +601 -0
  1489. package/src/editor/ui/BlockIsland.tsx +23 -0
  1490. package/src/editor/ui/BlockIslandSlots.tsx +114 -0
  1491. package/src/editor/ui/ColorMenus.tsx +613 -0
  1492. package/src/editor/ui/EditorToolbar.tsx +630 -0
  1493. package/src/editor/ui/FieldResizer.tsx +155 -0
  1494. package/src/editor/ui/FieldStatus.tsx +85 -0
  1495. package/src/editor/ui/FloatingToolbar.tsx +77 -0
  1496. package/src/editor/ui/FormatMenus.tsx +706 -0
  1497. package/src/editor/ui/InsertMenuButton.tsx +104 -0
  1498. package/src/editor/ui/SelectionBubble.tsx +317 -0
  1499. package/src/editor/ui/ShortcutsButton.tsx +128 -0
  1500. package/src/editor/ui/SlashMenu.tsx +199 -0
  1501. package/src/editor/ui/SuggestionList.tsx +217 -0
  1502. package/src/editor/ui/TextCard.tsx +312 -0
  1503. package/src/editor/ui/ToolButtonView.tsx +242 -0
  1504. package/src/editor/ui/TriggerMenu.tsx +255 -0
  1505. package/src/editor/ui/focusWithin.ts +26 -0
  1506. package/src/editor/ui/lockableMenu.ts +37 -0
  1507. package/src/editor/ui/rowMarks.ts +66 -0
  1508. package/src/editor/ui/selectionMenu.ts +97 -0
  1509. package/src/hooks/useFieldDescription.ts +126 -0
  1510. package/src/hooks/useMediaQuery.ts +46 -0
  1511. package/src/hooks/useOpenerFocus.ts +118 -0
  1512. package/src/hooks/useOverlayLayer.ts +42 -0
  1513. package/src/hooks/useScrollLock.ts +92 -0
  1514. package/src/hooks/useStickyOffset.ts +228 -0
  1515. package/src/hooks/useTableState.ts +76 -0
  1516. package/src/i18n/UiProvider.tsx +152 -0
  1517. package/src/i18n/context.ts +30 -0
  1518. package/src/i18n/defaults.ts +657 -0
  1519. package/src/i18n/messages.ts +1183 -0
  1520. package/src/i18n/useMessages.ts +47 -0
  1521. package/src/icons.ts +566 -0
  1522. package/src/index.ts +502 -0
  1523. package/src/lib/accessible-name.ts +35 -0
  1524. package/src/lib/bottom-bar-slot.ts +27 -0
  1525. package/src/lib/button.ts +158 -0
  1526. package/src/lib/choice-card.ts +79 -0
  1527. package/src/lib/clamp.ts +18 -0
  1528. package/src/lib/cn.ts +48 -0
  1529. package/src/lib/date.ts +87 -0
  1530. package/src/lib/dev-warn.ts +82 -0
  1531. package/src/lib/empty.ts +43 -0
  1532. package/src/lib/field.ts +125 -0
  1533. package/src/lib/filter-range.ts +48 -0
  1534. package/src/lib/interaction-modality.ts +134 -0
  1535. package/src/lib/mask.ts +226 -0
  1536. package/src/lib/menu.ts +196 -0
  1537. package/src/lib/overlay-layer.ts +163 -0
  1538. package/src/lib/period.ts +167 -0
  1539. package/src/lib/progress-status.ts +44 -0
  1540. package/src/lib/published-height.ts +147 -0
  1541. package/src/lib/reorder.ts +65 -0
  1542. package/src/lib/responsive.ts +71 -0
  1543. package/src/lib/state.ts +39 -0
  1544. package/src/lib/table-state.ts +264 -0
  1545. package/src/lib/tag.ts +31 -0
  1546. package/src/lib/themes.ts +144 -0
  1547. package/src/lib/time.ts +107 -0
  1548. package/src/lib/toolbar-axis.tsx +31 -0
  1549. package/src/lib/touch.ts +15 -0
  1550. package/src/lib/variants.ts +342 -0
  1551. package/src/locales/en.ts +10 -0
  1552. package/src/locales/ru.ts +695 -0
  1553. package/styles.css +1650 -0
@@ -0,0 +1,324 @@
1
+ ---
2
+ component: RichTextView
3
+ exports:
4
+ [
5
+ RichTextView,
6
+ RichTextViewProps,
7
+ sanitizeRichText,
8
+ RichTextPurifier,
9
+ RichTextAttributeHookEvent,
10
+ richTextSanitizeConfig,
11
+ RichTextSanitizeConfig,
12
+ richTextSchema,
13
+ RichTextSchema,
14
+ RichTextCustomBlockRules,
15
+ RichTextCustomMarkRules,
16
+ highlightCodeBlocks,
17
+ ]
18
+ category: content
19
+ status: stable
20
+ source: src/editor/RichTextView.tsx
21
+ story: src/editor/RichTextView.stories.tsx
22
+ ---
23
+
24
+ # RichTextView
25
+
26
+ ## Кратко для AI
27
+
28
+ `RichTextView` — показ сохранённого HTML `RichTextEditor` с той же типографикой, что внутри Редактора. **Движка нет**: в графе модулей ни Tiptap, ни lowlight — компонент рендерится в серверном компоненте и сам не содержит `"use client"`; клиентских частей в графе две, обе — Острова: кнопка «Копировать» у блоков кода и (только при пропе `tools` и своём Блоке в Документе) Остров своего Блока (раздел «Остров своего Блока»). **Он не санитизирует HTML**: `html` должен прийти от сервера уже очищенным по белому списку Схемы — `sanitizeRichText(html, DOMPurify)` из `@olddevs/ui/editor/schema` (раздел «Санитизация»). Живёт во входе `@olddevs/ui/editor`, не в barrel. **Подсветку блоков кода не делает сам**: HTML подсвечивает на сервере `highlightCodeBlocks(html)` из `@olddevs/ui/editor/highlight` после очистки, а `RichTextView` красит готовые токены темой GitHub Light/Dark. У каждого блока кода есть шапка с языком слева и кнопкой «Копировать» справа (раздел «Кнопка „Копировать“ и шапка»).
29
+
30
+ ```tsx
31
+ import { RichTextView } from "@olddevs/ui/editor";
32
+ ```
33
+
34
+ ## Когда использовать
35
+
36
+ - Страница показывает Документ, который сохранил `RichTextEditor`: статью, описание, регламент.
37
+ - Компонент нужен в серверном компоненте или там, где тащить Tiptap ради чтения нельзя.
38
+
39
+ ## Когда не использовать
40
+
41
+ - HTML пришёл от пользователя и сервер его не очищал — сначала очистка (раздел «Санитизация»), потом показ. Компонент положит в страницу всё, что получит.
42
+ - Нужна правка — `RichTextEditor`. Его `readOnly` держит движок живым ради текста, который не меняется; для страницы, которая только показывает Документ, берите `RichTextView`.
43
+ - Произвольный HTML вне Схемы (`style` вне цвета автора, `thead`, `caption`, картинки без `figure`): типографика рассчитана на теги Схемы, остальное будет выглядеть как у браузера по умолчанию.
44
+ - Короткий однострочный текст — `Text`.
45
+
46
+ ## Минимальный пример
47
+
48
+ В Next.js вход `@olddevs/ui/editor` должен стоять в `optimizePackageImports` своей строкой ([getting-started.md](../../getting-started.md#пакет-в-серверных-компонентах)): иначе вместе с Просмотром в браузер уедет весь Редактор с движком — 435 кБ `First Load JS` вместо 137 кБ.
49
+
50
+ ```tsx
51
+ // Серверный компонент: директива не нужна.
52
+ import { RichTextView } from "@olddevs/ui/editor";
53
+
54
+ export default async function ArticlePage({ id }: { id: string }) {
55
+ const article = await loadArticle(id); // article.html очищен при сохранении
56
+ return <RichTextView html={article.html} className="max-w-prose" />;
57
+ }
58
+ ```
59
+
60
+ ## Public API
61
+
62
+ - `html` — сохранённый Документ, HTML-строка. **Не санитизируется**: кладётся в разметку через `dangerouslySetInnerHTML`, как есть. Пустая строка даёт пустой контейнер.
63
+ - `className` — добавляется **после** классов типографики и может их переопределять.
64
+ - `surface` — `"theme"` (по умолчанию) или `"paper"`: светлый Лист в любой теме, см. «Поверхность». Тип — `RichTextSurface`.
65
+ - `tools` — свои Инструменты Документа, тот же массив, что у `RichTextEditor` и `sanitizeRichText`. Просмотр читает из него только Острова своих Блоков (`blocks[имя].island`, тип `CustomIslandProps`); без `tools` Просмотр прежний (раздел «Остров своего Блока»).
66
+ - Остальное — обычные пропсы `div`: `id`, `aria-*`, `data-*`, `ref`. `children` и `dangerouslySetInnerHTML` не принимаются.
67
+ - `highlightCodeBlocks(html)` — серверная подсветка блоков кода, вход `@olddevs/ui/editor/highlight` (раздел «Подсветка блоков кода»). Пропа для этого у `RichTextView` нет намеренно.
68
+ - `sanitizeRichText(html, purify, tools?)` — очистка HTML по Схеме экземпляром DOMPurify, который передаёт потребитель; ставит хуки Схемы на время вызова. Тип экземпляра — структурный `RichTextPurifier` (событие хука — `RichTextAttributeHookEvent`). Третий аргумент — тот же массив `tools`, что у Редактора: с ним проходят свои Блоки и Метки по их правилам (раздел «Свои Инструменты: третий аргумент»); без него очистка прежняя. Безопасный путь по умолчанию (раздел «Санитизация»).
69
+ - `richTextSchema(tools?)` — Схема данными для набора `tools`: поля `RICH_TEXT_SCHEMA` плюс `customBlocks` и `customMarks` — правила своих Блоков и Меток (`RichTextCustomBlockRules`, `RichTextCustomMarkRules`). Тип — `RichTextSchema`. Сама константа `RICH_TEXT_SCHEMA` — по-прежнему Схема кита.
70
+ - `richTextSanitizeConfig()` — закрытый конфиг очистки для DOMPurify без хуков: безопасен сам по себе, но часть разметки Редактора теряет. Тип — `RichTextSanitizeConfig`.
71
+ - `sanitizeRichText`, `richTextSchema` и `richTextSanitizeConfig` — только данные и функции, без зависимостей; в серверном модуле безопасны. Лёгкий вход — `@olddevs/ui/editor/schema`, из `@olddevs/ui/editor` доступны тоже.
72
+
73
+ Типографика — тот же модуль `src/editor/styles/prose.ts`, что вешает классы на содержимое Редактора: текст в Редакторе и на странице выглядит одинаково. Классы лежат на контейнере и находят теги по имени, поэтому в HTML Документа классов и `style` нет. Цвета берутся из токенов кита, и темы `dark`, `light`, `dim` переключаются сами. Отдельный `@source` для Tailwind не нужен: строка из [getting-started.md](../../getting-started.md) покрывает классы.
74
+
75
+ ## Лист: `surface`
76
+
77
+ `surface="paper"` — светлый Лист в любой теме приложения, как у [`RichTextEditor`](../inputs/rich-text-editor.md#лист-surface): текст, ссылки, палитры, маркеры, таблицы, подписи и блоки кода (GitHub Light) выглядят как в светлой теме, а Лист отделён от страницы рамкой и тенью темы приложения. По умолчанию (`"theme"`) Документ следует теме приложения и фона не красит.
78
+
79
+ ```tsx
80
+ <RichTextView html={cleanHtml} surface="paper" />
81
+ ```
82
+
83
+ **Когда брать Лист:** предпросмотр печати и PDF, показ письма или документа, который уйдёт из приложения светлым. Документ, который читают только в приложении, остаётся на `"theme"`. Всё вокруг Листа — заголовки страницы, кнопки, меню — в теме приложения: Лист покрывает только контейнер `RichTextView`.
84
+
85
+ Компонент остаётся серверным: Лист — это классы и атрибуты контейнера (`data-theme="light"`, `data-surface="paper"`), без `style` и без клиентского кода. Один и тот же Документ на Листе выглядит одинаково в Редакторе и здесь — это сверяет тест.
86
+
87
+ ## Схема и безопасность
88
+
89
+ Схема — единственный источник допустимой разметки Редактора: всё, чего в ней нет, он отбрасывает и при загрузке, и при вставке. `RichTextView` Схему **не проверяет**: показ идёт без разбора HTML.
90
+
91
+ Белый список тегов и атрибутов (таблица повторяет `src/editor/core/schema.ts` и проверяется тестом; список растёт вместе с набором Блоков и Меток):
92
+
93
+ <!-- allow-list -->
94
+
95
+ | Что | Разрешено |
96
+ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
97
+ | Блоки | `p`, `h1`, `h2`, `h3`, `h4`, `ul`, `ol`, `li`, `blockquote`, `hr`, `pre`, `table`, `tbody`, `tr`, `th`, `td`; `label`, `input`, `span` — только внутри пункта чек-листа; `div` — там же, а ещё Раскладка и её колонки (Раскладка — только на верхнем уровне, колонка — только прямо в ней) и Обёртка (на верхнем уровне и прямо в колонке, не в другой Обёртке); `figure` — картинка, внутри неё `img` и необязательная `figcaption` (вне `figure` их нет) |
98
+ | Метки | `strong`, `em`, `u`, `s`, `code`, `sup`, `sub`, `mark` (только с цветом), `br`, `a` |
99
+ | Атрибуты | `ol[start]` — только когда нумерация не с 1; `ul[data-type]`, `li[data-type]`, `li[data-checked]` — чек-лист; `input[type]`, `input[checked]` — его флажок; `code[class]` — язык блока кода, только «language-python», «language-typescript», «language-javascript», «language-go», «language-html», «language-json», «language-yaml» или «language-markdown» (без языка класса нет); `span[data-color]`, `mark[data-color]` — цвет текста и маркер, только имена палитры этого тега: на `span` цвета текста, на `mark` маркера; `span[style]`, `mark[style]` — произвольный цвет автора, только «color:#rrggbb» и «background-color:#rrggbb», и не вместе с «data-color»; `p[data-align]`, `h1[data-align]`, `h2[data-align]`, `h3[data-align]`, `h4[data-align]` — выравнивание Блока, по центру или справа; `th[colspan]`, `td[colspan]` — слияние по горизонтали, целое от 2 до 20; `th[rowspan]`, `td[rowspan]` — по вертикали, от 2 до 50; `th[data-align]`, `td[data-align]` — выравнивание столбца, по центру или справа, на каждой его ячейке; `a[href]` — только «http», «https» или «mailto»; `a[rel]` — всегда «noopener noreferrer»; `img[src]` — только абсолютный «http» или «https», без «data:» и «blob:»; `img[alt]` — всегда, пустой у картинки без описания; `img[data-width]` — 50, 75 или 100; `div[data-block]` — Раскладка («layout»), её колонка («column») и Обёртка («wrapper»); `div[data-layout]` — вариант Раскладки, доли колонок в процентах: «100», «50-50», «33-33-33», «25-25-25-25», «60-40» или «40-60»; `div[data-tone]` — тон Обёртки, только на ней: «neutral», «accent», «success», «warning» или «danger» (без тона атрибута нет) |
100
+
101
+ Пункт чек-листа Tiptap пишет так: `<li data-type="taskItem" data-checked="true"><label><input type="checkbox" checked><span></span></label><div><p>…</p></div></li>`. `sanitizeRichText` пускает `input`, `label`, `span` и `div` только внутри такого пункта, а `input` — только с `type="checkbox"`.
102
+
103
+ Таблицу Редактор пишет так: `<table><tbody><tr><th><p>…</p></th></tr><tr><td colspan="2" data-align="center"><p>…</p></td></tr></tbody></table>`. Строка-заголовок — первая строка из `th`, а у ячейки бывают только три атрибута: `colspan` и `rowspan` (слияние, целое от 2 до `RICH_TEXT_SCHEMA.tableSpans`: 20 по горизонтали и 50 по вертикали; 1 не пишется) и `data-align` (выравнивание столбца, `center` или `right`, на каждой ячейке столбца). Строка, целиком накрытая слиянием сверху, остаётся пустой `<tr></tr>`. `thead`, `tfoot`, `colgroup`, `caption` в Схеме нет, и **DOMPurify по умолчанию вместе с `thead` и `colgroup` убирает и их содержимое**: заголовок таблицы, пришедшей не из Редактора, записанный в `thead`, пропадёт. Редактор `thead` не пишет, так что для его HTML это не потеря. `tbody`, `tr`, `th` и `td` вне таблицы парсер HTML выбрасывает до очистки (текст остаётся), `style` и `colwidth` не проходят, а `colspan` и `rowspan` пропускает только хук `sanitizeRichText`: на `th` и `td` и только цифрами в пределах Схемы; голый конфиг их не знает вовсе. Без такой проверки `colspan="10000"` из HTML не от Редактора развернётся в 10 тыс. пустых ячеек у каждого, кто откроет Документ.
104
+
105
+ Других классов, `style` (кроме произвольного цвета, см. ниже), `aria-*` и `data-*` (кроме восьми имён Схемы: `data-type` и `data-checked` чек-листа, `data-color` цвета, `data-align` выравнивания, `data-width` ширины картинки, `data-block` и `data-layout` Раскладки и `data-tone` Обёртки) в отдаваемом HTML нет. `h1` в Документе бывает только у Редактора с Инструментом `heading1` (по умолчанию в `full`); экран, у которого H1 стоит над Редактором, этот Инструмент выключает.
106
+
107
+ **Картинку** Редактор пишет так: `<figure><img src="https://…" alt="…" data-width="50"><figcaption>…</figcaption></figure>`. `figcaption` есть, только когда подпись не пуста, `data-width` есть только у картинки с заданной шириной (`50`, `75` или `100` процентов ширины Документа, `RICH_TEXT_SCHEMA.imageWidths`; без него размер у картинки свой, не шире Документа), `alt` есть всегда и пуст у картинки без описания. Адрес может быть только абсолютным `http` или `https` (`RICH_TEXT_SCHEMA.imageProtocols`): `data:` (base64) и `blob:` Редактор не пишет никогда, а `style`, `width`, `height` и `class` у картинки не бывает ни у `img`, ни у `figure`. Голый `<img>` вне `figure` Редактор не отдаёт; `sanitizeRichText` его удаляет.
108
+
109
+ **Цвет и выравнивание — имена, а не значения CSS.** `data-color` принимает только имена палитры Редактора, и палитр две, по одной на тег. На `span` (цвет текста) допустимы `accent`, `success`, `warning`, `danger`, `lime`, `muted` (`RICH_TEXT_SCHEMA.textColors`), на `mark` (маркер) — `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`, `pink`, `red` (`RICH_TEXT_SCHEMA.markerColors`): яркие `yellow`, `green`, `pink` предлагает меню Редактора, остальные шесть остаются читаемыми и красятся прежними значениями; имя из палитры другого тега на теге не проходит. Документы, сохранённые до палитры маркера, содержат на `mark` шесть старых имён; они переводятся (`RICH_TEXT_SCHEMA.legacyMarkerColors`, таблица в [документации Редактора](../inputs/rich-text-editor.md#цвет-маркер-и-выравнивание)): `sanitizeRichText` делает это хуком, а сам `RichTextView` красит старое имя тем же цветом, в который оно переводится. `data-align` — `center` или `right` (`left` Редактор не пишет, а читает как отсутствие атрибута; `RICH_TEXT_SCHEMA.alignments`). Конкретные цвета подставляет тема, поэтому один и тот же сохранённый текст читается в `dark`, `light` и `dim`: `RichTextView` и Редактор красят `data-color` теми же классами (`prose.ts`). DOMPurify значений атрибутов не проверяет — это делают хуки `sanitizeRichText`.
110
+
111
+ **Порядок Меток у маркера.** Редактор пишет маркер самой внешней Меткой после цвета текста (`<span data-color><mark><sup>…`), и полоса не смещается на индексах и не рвётся на ссылке. `RichTextView` HTML не перестраивает: Документ, сохранённый раньше как `<sup><mark>…</mark></sup>`, показывается в старом порядке, и часть маркера на индексе поднимается вместе с ним. Порядок выправляется, когда Документ один раз открывают и сохраняют в Редакторе.
112
+
113
+ **Произвольный цвет — единственное исключение из «`style` нет».** Кроме цветов палитры автор может выбрать любой в `ColorPicker` («Свой цвет…» в меню цвета Редактора). У такого цвета нет имени, а значение в HTML хранит `style`, поэтому в Документ он пишется строго так: `<span style="color:#ff0000">` для текста и `<mark style="background-color:#ffee00">` для маркера. Правило узкое и записано в Схеме (`RICH_TEXT_SCHEMA.customColor.styles`, регулярные выражения строкой): строчные буквы, ровно шесть цифр, без пробелов и `;`, одно объявление на тег, и никогда вместе с `data-color` на одном элементе. Любой другой `style` (`#f00`, `rgb(…)`, `red`, второе объявление рядом, `style` на другом теге) Редактор отбрасывает при загрузке и вставке, и `sanitizeRichText` снимает его так же: хук сверяет тег и значение с теми же выражениями. В голом `richTextSanitizeConfig()` `style` нет вовсе: `ALLOWED_ATTR` у DOMPurify общий на все теги, и без хука он пропустил бы любой CSS.
114
+
115
+ **Цвет автора не меняется вместе с темой.** Цвета палитры — токены, и один сохранённый текст читается в `dark`, `light` и `dim`. `#ff0000` — значение: в каждой теме он одинаков, и пара «цвет — фон» может не держать контраст там, где автор её не видел. Редактор предупреждает об этом при выборе (контраст 4,5:1 с фоном текущей темы; для маркера проверяется основной текст на нём), но не запрещает и не пересчитывает цвет при смене темы. Если Документ показывается в нескольких темах, пользуйтесь палитрой.
116
+
117
+ Ссылку Редактор пишет так: `<a href="https://…" rel="noopener noreferrer">…</a>`. Адрес может быть только абсолютным, с протоколом `http`, `https` или `mailto`: относительные адреса и прочие протоколы (`javascript:`, `data:`, `ftp:`) Редактор не принимает ни из `value`, ни из вставки. `target` он не пишет: открывать ли ссылки в новой вкладке, решает страница показа, а не Документ.
118
+
119
+ ### Санитизация — на сервере потребителя
120
+
121
+ Клиентская очистка от XSS не защищает: запрос в обход интерфейса принесёт что угодно. Очищайте HTML **на сервере при сохранении** (а лучше и при выдаче, если в базе лежат старые записи). DOMPurify в зависимости кита не входит — ставите сами, а политику Схемы приносит кит хелпером `sanitizeRichText`:
122
+
123
+ ```bash
124
+ npm install dompurify jsdom # или isomorphic-dompurify
125
+ ```
126
+
127
+ ```ts
128
+ import { JSDOM } from "jsdom";
129
+ import createDOMPurify from "dompurify";
130
+ import { sanitizeRichText } from "@olddevs/ui/editor/schema";
131
+
132
+ const DOMPurify = createDOMPurify(new JSDOM("").window);
133
+
134
+ export function sanitizeDocument(html: string): string {
135
+ return sanitizeRichText(html, DOMPurify);
136
+ }
137
+ ```
138
+
139
+ `sanitizeRichText(html, purify)` берёт экземпляр DOMPurify аргументом — кит его не импортирует, тип экземпляра структурный (`RichTextPurifier`), и `dompurify` с jsdom или `isomorphic-dompurify` подходят без приведений. На время одного вызова хелпер ставит на экземпляр хуки Схемы и снимает их после вызова: экземпляр у вас общий (комментарии, письма), и правила Редактора не срабатывают в очистке другого кода на этом экземпляре, а ваши хуки остаются на месте. Разметка Редактора проходит **байт в байт**; всё остальное хуки снимают: текст из снятого тега остаётся, как и в Редакторе. Что они проверяют:
140
+
141
+ - `label`, `input`, `span` и `div` — только разметка пункта чек-листа; `input` — только `type="checkbox"`; `ul[data-type]`, `li[data-type]`, `li[data-checked]` — только значения чек-листа;
142
+ - `ol[start]` — только на `ol`;
143
+ - `code[class]` — только канонический `language-<имя>` из `RICH_TEXT_SCHEMA.codeLanguages`: псевдоним (`language-py`), неизвестный язык, второй класс и класс на другом теге снимаются, токены `hljs-*` — тоже;
144
+ - `span[data-color]` и `mark[data-color]` — только имена палитры этого тега; старые имена маркера переводятся (`legacyMarkerColors`); `mark` без цвета снимается;
145
+ - `style` — только `color:#rrggbb` на `span` и `background-color:#rrggbb` на `mark` (`RICH_TEXT_SCHEMA.customColor.styles`) и никогда вместе с `data-color`;
146
+ - `data-align` — `center` или `right` на `p`, `h1`–`h4`, `th`, `td`;
147
+ - `colspan` и `rowspan` — только на `th` и `td`, целое не больше `RICH_TEXT_SCHEMA.tableSpans`;
148
+ - ссылка — `href` только `http`, `https` или `mailto`, `rel` всегда `noopener noreferrer`, посторонний `target` снимается, ссылка без годного адреса становится текстом;
149
+ - картинка — `img` с абсолютным `http`/`https` прямо внутри `figure` (без `data:` и `blob:`), `data-width` — пресет, `alt` есть всегда; `img` вне `figure` удаляется, `figcaption` вне `figure` теряет свой тег.
150
+
151
+ Проверено настоящим DOMPurify 3.4.16 на jsdom в `tests/editor-sanitize.test.tsx`: Документ со всеми Блоками и Метками Редактора проходит без изменений, а подделки — классы Tailwind (`class="fixed inset-0"`), `style` на `p`, картинка `data:`, ссылка `javascript:`, имя из другой палитры, `label` вне пункта, `colspan="10000"` и другие — снимаются.
152
+
153
+ #### Свои Инструменты: третий аргумент
154
+
155
+ Если Редактор работает со своими Инструментами ([RichTextEditor, «Свой Инструмент»](../inputs/rich-text-editor.md#свой-инструмент)), сервер передаёт очистке **тот же массив `tools`**. Описание своего Инструмента — данные, и модуль с ним импортируется на сервере: очистка читает только правила Схемы (`blocks`, `marks`), Часть для движка не трогает. Чтобы в графе сервера не оказался и Tiptap, держите описание в модуле без импорта расширений — Часть для движка тогда подаётся Загрузчиком ([RichTextEditor, «Загрузчик Части для движка»](../inputs/rich-text-editor.md#загрузчик-части-для-движка)) или собирается рядом с Редактором.
156
+
157
+ ```ts
158
+ import { sanitizeRichText } from "@olddevs/ui/editor/schema";
159
+ import { EDITOR_TOOLS } from "./editor-tools"; // тот же массив, что в `tools` Редактора
160
+
161
+ export function sanitizeDocument(html: string): string {
162
+ return sanitizeRichText(html, DOMPurify, EDITOR_TOOLS);
163
+ }
164
+ ```
165
+
166
+ - **Свой Блок** проходит как `div[data-block="<имя>"]`, строчный Атом — как `span[data-block="<имя>"]`, своя Метка — как `span[data-mark="<имя>"]`. Блок другого вида (Атом в `div`, блочный Блок в `span`) и неизвестное имя теряют свой тег, текст остаётся.
167
+ - **Свои атрибуты** `data-<имя>` — только на своём элементе и только со значением по правилу: из списка, по шаблону или адрес по политике ссылки (абсолютный `http`, `https`, `mailto`). Значение с разметкой (`<`) не проходит никогда. Недопустимое значение снимается вместе с атрибутом, сам элемент остаётся — так же поступает Редактор.
168
+ - **Лишнее на элементе своего Блока** — `class`, `style`, `data-color`, обработчики, атрибут другого Блока — снимается.
169
+ - **Место `top`** — только верхний уровень Документа: вложенный Блок (в цитату, Обёртку, другой Блок) теряет свой тег, как Раскладка.
170
+ - **Имена Инструментов кита белый список не сужают.** `["bold", acmeCard]` очищает так же, как `[...RICH_TEXT_PRESETS.full, acmeCard]`: экраны с разными наборами пишут один Документ, и сервер не вправе срезать таблицу, которую записал экран с `full`. Правила с именем без Префикса потребителя сервер не читает: такой набор Редактор отвергает ошибкой поля, а на сервере он не должен открыть обход правил кита.
171
+ - **Без третьего аргумента** очистка та же, что была до своих Инструментов: свои Блоки снимаются, как любой HTML не из Редактора.
172
+
173
+ `richTextSchema(tools)` отдаёт те же правила данными — для своего санитайзера или проверки на стороне базы: `customBlocks` (вид, место, атрибуты — с заполненными умолчаниями) и `customMarks`. Признаков Блока (`container`, `turnInto`, `plainAtom`) там нет: это поведение Редактора, а не то, что приходит в HTML. Проверено в `tests/editor-sanitize-tools.test.tsx`: Документ Редактора со своими Блоками, Атомом и Меткой проходит очистку байт в байт, а подделки снимаются так же, как их снимает Редактор.
174
+
175
+ **`richTextSanitizeConfig()` — закрытый по умолчанию.** Это конфиг для того, кто передаёт его DOMPurify напрямую, без хуков. В общий `ALLOWED_ATTR` у DOMPurify (один список на все теги, значений он не проверяет) попадает только безвредное на любом теге и с любым значением: `data-type`, `data-checked`, `data-color`, `data-align`, `data-width`, `data-block`, `data-layout`, `data-tone`, `start`, `alt`, `rel` и `href`. `style`, `class`, `src`, `colspan`, `rowspan`, `type`, `checked` и теги `input` и `img` разрешает только `sanitizeRichText`, сверив тег и значение: без проверки они пропустили бы любой CSS и класс, base64-картинку и 10 тыс. пустых ячеек. Голый конфиг поэтому безопасен, но теряет часть разметки Редактора — цвет автора, язык блока кода, слияние ячеек, флажки и картинки. `ALLOW_DATA_ATTR` и `ALLOW_ARIA_ATTR` выключены: по умолчанию DOMPurify пропускает любые `data-*` и `aria-*`. Каждый вызов отдаёт новые массивы.
176
+
177
+ Адрес ссылки конфиг проверяет сам: `ALLOWED_URI_REGEXP` пускает только `http:`, `https:` и `mailto:` — ту же политику, что Редактор. DOMPurify сверяет с этим выражением каждый разрешённый атрибут, кроме «безопасных для URI», и строгое выражение срезало бы `start="3"` или `data-color="danger"`; поэтому все атрибуты, кроме адресов, конфиг объявляет безопасными (`ADD_URI_SAFE_ATTR`). Адрес картинки выражением не закрыть: `data:` в `src` у `<img>` DOMPurify пропускает в обход `ALLOWED_URI_REGEXP` — поэтому `src` разрешает только хук.
178
+
179
+ Хелперы очистки и Схема берутся из отдельного лёгкого входа `@olddevs/ui/editor/schema`: в нём Схема данными (`RICH_TEXT_SCHEMA`, `richTextSchema`), `sanitizeRichText`, `richTextSanitizeConfig()`, их типы и помощник Карточки у текста `markRange` для описания своего Инструмента. React и Tiptap в нём нет, поэтому серверу, у которого Редактора нет, движок ставить не нужно. Те же имена по-прежнему отдаёт `@olddevs/ui/editor`, но этот вход на сервере без сборщика загрузит весь Редактор вместе с движком.
180
+
181
+ ## Подсветка блоков кода
182
+
183
+ В Документе у блока кода только язык — `<pre><code class="language-python">…</code></pre>`; токенов подсветки в нём нет (ADR-0051). Подсвечивает сохранённый HTML серверный хелпер:
184
+
185
+ ```tsx
186
+ // Серверный компонент.
187
+ import { RichTextView } from "@olddevs/ui/editor";
188
+ import { highlightCodeBlocks } from "@olddevs/ui/editor/highlight";
189
+
190
+ export default async function ArticlePage({ id }: { id: string }) {
191
+ const article = await loadArticle(id); // article.html очищен при сохранении
192
+ return <RichTextView html={highlightCodeBlocks(article.html)} />;
193
+ }
194
+ ```
195
+
196
+ - **Что делает.** В каждом `<pre><code class="language-…">` на языке Редактора (`RICH_TEXT_SCHEMA.codeLanguages`, псевдонимы тоже) текст заменяется токенами `<span class="hljs-…">`, разобранными lowlight той же грамматикой, что в Редакторе, а класс Блока пишется каноническим именем Схемы: `language-py` и `language-PY` выходят `language-python`, `language-js` — `language-javascript`. Остальной HTML не меняется ни на байт. Блок без языка, на неизвестном языке и Блок, внутри которого уже есть разметка, остаются как были — поэтому повторный вызов ничего не меняет.
197
+ - **Экранирование.** Хелпер не разбирает HTML, а ищет Блоки выражением: внутри Блока Схема допускает только текст. Текст раскрывается из сущностей (`&lt;`, `&amp;`, `&quot;`, `&#39;`, `&nbsp;`, числовые) и после подсветки снова экранируется: `<script>` в коде остаётся текстом `&lt;script&gt;`. Блок с другой именованной сущностью (`&copy;`) не подсвечивается — лучше без цвета, чем с другим текстом. На выходе только `span` с `class="hljs-…"`, без `style`.
198
+ - **Порядок — очистка, потом подсветка.** Хелпер рассчитан на разметку Схемы, которую отдаёт санитайзер, а токенов `hljs-*` в Схеме нет — `sanitizeRichText` их снимает. Подсвечивайте после очистки: при выдаче страницы или сразу после очистки при сохранении. Если в базе лежит подсвеченный HTML, повторная очистка при выдаче вернёт Блок к голому тексту, а `highlightCodeBlocks` подсветит его заново; Редактор, получив такой HTML в `value`, токены отбросит сам.
199
+ - **Тема.** Цвета токенов — GitHub Light в теме `light`, GitHub Dark в `dark` и `dim`, как в Редакторе: правила `.hljs-*` — классы на контейнере `RichTextView` (`src/editor/styles/codeTheme.ts`), цвета — переменные в `styles.css` на элементах с `data-theme`. Блок кода берёт тему ближайшего предка с `data-theme`, поэтому `RichTextView` во вложенном `data-theme="light"` внутри тёмного приложения показывает GitHub Light. Ни `style`, ни отдельный CSS не нужны.
200
+ - **Цена.** Вход `@olddevs/ui/editor/highlight` — хелпер, lowlight, ядро highlight.js и восемь грамматик, 22,6 кБ gzip; Tiptap в его графе нет, и Node без сборщика его загружает. Из peer-зависимостей кита в графе только `react`: он нужен второму хелперу входа, `highlightCodeNodes` для [`CodeView`](code-view.md#подсветка-кита) (ADR-0052). `RichTextView` его не импортирует и остаётся на 12,0 кБ gzip (с Островом «Копировать»), поэтому подсветка не проп компонента: флаг не убрал бы подсветчик из графа, а платил бы за него каждый показ. Для входа ставьте только `lowlight` и `highlight.js` (пакеты движка Редактора, в манифесте кита их нет).
201
+
202
+ ## Кнопка «Копировать» и шапка
203
+
204
+ У **каждого** Блока `pre > code` над кодом стоит шапка: слева название языка, справа кнопка «Копировать» — `CopyButton` кита с подсказкой «Copy code» → «Copied». Кнопка есть всегда, пропа для отключения нет (решение владельца): шапка — часть вида Блока, и в Редакторе она такая же ([RichTextEditor](../inputs/rich-text-editor.md#блок-кода)). Обе части видны без наведения, на десктопе и на сенсорных экранах; код начинается под шапкой, и кнопка его не перекрывает.
205
+
206
+ **Как это устроено и почему компонент остаётся серверным.** `RichTextView` не получает обработчиков и состояния — он по-прежнему строка в разметку:
207
+
208
+ 1. Рядом с `dangerouslySetInnerHTML` он оборачивает каждый Блок `<pre><code>` в шапку **строка в строку** (`withCodeHeaders`, `src/editor/features/code/codeHeader.ts`): в шапку входят подпись языка (из списка языков Редактора по приведённому имени; класс из Документа в разметку не попадает: `language-py` даёт «Python», `language-rust` — пустую подпись) и пустое гнездо для кнопки. Это разметка компонента, собранная **после** очистки, поэтому санитайзеру ничего разрешать не нужно.
209
+ 2. Если в Документе есть хотя бы один блок кода, рядом с контейнером он рисует Остров `CodeCopyIsland` (`src/editor/features/code/CodeCopyIsland.tsx`, свой `"use client"`). У Документа без кода Острова нет вовсе: ни разметки, ни эффекта. После монтирования Остров находит гнёзда **своего** Просмотра и порталом вставляет в каждое `CodeCopyButton`. На сервере и при гидрации Остров рисует только пустой инертный опорный `<template>`, который отмечает место Острова. Порталов ещё нет, поэтому разметка сервера и первый клиентский проход совпадают, а страница без JS читается так же: подпись языка и код на месте, кнопки нет.
210
+ 3. Связь Острова с гнёздами задаёт его место в дереве. Контейнер ссылкой не передать: у серверного компонента её нет. Поэтому Остров берёт соседа слева от своего опорного `<template>`, то есть контейнер своего Просмотра, и ищет гнёзда только в нём, а не по глобальному `document`: Просмотр в теневом корне или в `iframe` получает кнопки так же, а обход не идёт по всей странице. Гнездо дополнительно сверяется с идентификатором `useId` Просмотра (хуков у Просмотра два, `useId` и `useMemo`, и оба разрешены серверным компонентам). Короткий отпечаток HTML сообщает Острову о смене Документа, и тогда он ищет гнёзда заново. Два Просмотра на странице кнопок не путают.
211
+
212
+ Граница клиента проходит по файлу Острова, а не по `RichTextView`: `tests/rich-text-view.test.tsx` требует два таких файла в графе, `CodeCopyIsland.tsx` и `ui/BlockIsland.tsx` (и то, что они тянут — кнопку и подсказку кита, `react-dom`, иконки и каталог сообщений), а `@tiptap/*`, `lowlight` и `highlight.js` по-прежнему запрещает; `tests/rsc-gate.test.ts` сверяет, что в самом `RichTextView.tsx` директивы нет. Остров в серверном компоненте Next.js работает без обёртки.
213
+
214
+ **Что копируется.** `textContent` элемента `code` — исходный код строкой. И для Блока без подсветки, и для HTML после `highlightCodeBlocks` это один и тот же текст: токены `span` текста не добавляют. Это правило ADR-0039: копируется текст, а не DOM — иначе в буфер уехали бы границы токенов подсветки. Отказ буфера кнопка показывает («Could not copy»).
215
+
216
+ **Подписи у Блока без языка нет.** Подписи нет, потому что строка «Обычный текст» берётся из каталога сообщений, а его у серверного компонента нет; английская подпись у потребителя с русским интерфейсом была бы ошибкой. Шапка у такого Блока — одна кнопка справа; в Редакторе в режимах `readOnly` и `disabled` то же самое.
217
+
218
+ **Клавиатура.** Кнопка в обычном порядке Tab: её тут единственный путь с клавиатуры. Подсказка по фокусу и наведению, `Enter` и `Space` копируют.
219
+
220
+ **Цена.** Остров тянет кнопку и подсказку кита, `react-dom` для портала и `react-aria-components` ради `useLocale` в каталоге сообщений; `@radix-ui/react-tooltip` и `lucide-react` — обязательные peer-зависимости кита, ставить новых не нужно. Замер `editorView` (`RichTextView` из `@olddevs/ui/editor`, движок в замер включён) при первом замере вырос с 1,7 до 8,4 кБ gzip: это цена Острова, а не типографики. С тех пор Просмотр и общий каталог сообщений подросли, и сейчас замер 12,0 кБ при бюджете 12,3 кБ (ADR-0030). Замер статический (граф модулей входа), поэтому то, что Документу без блоков кода Остров не рисуется, числа не меняет: файл Острова в графе остаётся. Экономия приходится на клиент: ни опорного `<template>` в разметке, ни эффекта, ни обхода контейнера. Так же и у Next.js: клиентский граф страницы строится по импортам, а не по тому, что отрисовано.
221
+
222
+ ## Таблицы
223
+
224
+ Редактор пишет `table > tbody > tr > th|td`; у ячейки только слияние (`colspan`, `rowspan`) и выравнивание столбца (`data-align`), подробнее в разделе «Таблицы» страницы [RichTextEditor](../inputs/rich-text-editor.md#таблицы). Оформление (границы, отступы ячеек, подложка строки-заголовка, выравнивание текста в ячейке по `data-align`) компонент берёт из `prose.ts` на контейнере, поэтому в Редакторе и в `RichTextView` таблица выглядит одинаково. Слитая ячейка — обычная ячейка браузерной таблицы с `colspan`/`rowspan`, своего стиля у неё нет.
225
+
226
+ **Прокрутка на узком экране — на самой `<table>`.** `display: block; max-width: 100%; overflow-x: auto`: таблица шире блока прокручивается внутри себя и не раздвигает страницу, минимальная ширина столбца — 6 rem (`min-w-24`), поэтому таблица из пяти столбцов на экране в 375 px прокручивается, а не сжимается в узкие колонки. Контейнера вокруг таблицы нет намеренно: `RichTextView` кладёт сохранённый HTML как есть, а Схема не знает ни `div` вокруг таблицы, ни `tabindex`.
227
+
228
+ Цена этого выбора:
229
+
230
+ - **Табличная семантика.** На `table` с `display: block` часть скринридеров теряет строки и столбцы. В Chrome и Firefox это давно исправлено, в Safari с VoiceOver зависит от версии; проверяйте в ручном прогоне на своих версиях. Альтернатива — `table-layout: fixed` без прокрутки — оставляет семантику, но делает все столбцы равными и узкими и рвёт длинные слова, на телефоне это хуже.
231
+ - **Фокус на прокручиваемой области.** Правило axe `scrollable-region-focusable` требует, чтобы прокручиваемый блок можно было достичь с клавиатуры. В Редакторе в каждой ячейке есть каретка, а в `RichTextView` фокусируемого содержимого нет: правило срабатывает на таблице, которая шире экрана. Закрыть это можно только контейнером с `tabindex="0"`, а его в сохранённый HTML не положить. Если на вашем экране такие таблицы бывают, оберните `RichTextView` своим контейнером с `overflow-x: auto` и `tabindex="0"` или держите таблицы узкими.
232
+
233
+ ## Раскладка
234
+
235
+ Раскладка Редактора (`div[data-block="layout"]` с вариантом в `data-layout` и колонками `div[data-block="column"]`, раздел «Раскладка» страницы [RichTextEditor](../inputs/rich-text-editor.md#раскладка)) рисуется той же сеткой, что в Редакторе: классами `prose.ts` на контейнере, без `style` в разметке. Рамок у колонок нет: пунктир — ориентир автору в Редакторе, читателю граница не нужна. Колонки стоят рядом, когда широк сам Документ (две — от 30 rem, три — от 40 rem, четыре — от 48 rem), а в более узком Документе — столбцом в порядке чтения, слева направо. Порог — контейнерный запрос по ширине Документа: корень `RichTextView` с Раскладкой становится контейнером (`container-type: inline-size`), поэтому в сжимающем контексте (элемент flex-ряда без ширины) дайте ему ширину. На Листе `surface="paper"` — та же сетка.
236
+
237
+ `sanitizeRichText` держит Раскладку там, где её пишет Редактор: только на верхнем уровне, с вариантом из `RICH_TEXT_SCHEMA.layouts`, колонки — только прямо в ней; иначе обёртки снимаются, Блоки остаются подряд.
238
+
239
+ ## Обёртка
240
+
241
+ Обёртка Редактора (`div[data-block="wrapper"]` с Блоками внутри, раздел «Обёртка» страницы [RichTextEditor](../inputs/rich-text-editor.md#обёртка)) без тона в показе не видна: рамки нет, отступы между её Блоками — те же, что между Блоками Документа, и текст читается так, будто Обёртки нет. Пунктир — ориентир автору в Редакторе. ARIA-роли у Обёртки нет.
242
+
243
+ **Обёртка с тоном** (`data-tone`: `accent`, `success`, `neutral`, `warning` или `danger`) видна и читателю — **тем же видом, что в Редакторе**: мягкая подложка тона и полоса 3 px слева, текст — обычный текст Документа, внутренний отступ, как у `Alert`. Цвета — роли `--rte-tone-*` классов `prose.ts`, без `style` в разметке; на Листе `surface="paper"` — значения светлой темы. ARIA-роли и `aria-*` тон не добавляет: смысл заметки несёт слово в её тексте («Внимание: …»), а не цвет. Тон вне этих пяти имён `RichTextView` не красит — `sanitizeRichText` снимает его на сервере. Палитра, контраст и Markdown — раздел [«Обёртка», «Тон»](../inputs/rich-text-editor.md#тон).
244
+
245
+ `sanitizeRichText` держит Обёртку там, где её пишет Редактор: на верхнем уровне и прямо в колонке Раскладки, не в другой Обёртке, списке, цитате и таблице; иначе Обёртка снимается, Блоки остаются подряд. Раскладка внутри Обёртки разворачивается в Блоки.
246
+
247
+ ## Свой Блок
248
+
249
+ Свой Блок потребителя (`div[data-block="acme_card"]`, раздел «Свой Инструмент» страницы [RichTextEditor](../inputs/rich-text-editor.md#свой-инструмент)) `RichTextView` показывает очищенным HTML и даёт ему **тот же вертикальный ритм, что у абзаца, и больше ничего**: отступ до следующего Блока такой же, как у абзаца на том же месте (в Документе, цитате, ячейке, колонке). Блоки внутри своего Блока-контейнера стоят с ритмом Документа, как в Обёртке; строчное содержимое (текст, Атомы, Метки) отступов не получает. На Листе `surface="paper"` — то же.
250
+
251
+ Вид — CSS потребителя по селектору `data-block` и токенам кита; полей стилей в описании Инструмента нет. Пишите стили на переменных темы — тогда Блок одинаков в Редакторе, в `RichTextView` и на Листе `paper`, который переключает токены сам:
252
+
253
+ ```css
254
+ [data-block="acme_card"] {
255
+ border: 1px solid var(--line);
256
+ border-radius: var(--r-sm);
257
+ padding: 0.75rem;
258
+ }
259
+ ```
260
+
261
+ Вид узла из Части для движка (React-вид) в `RichTextView` не используется: движка здесь нет. Строчный Атом показывается тем, что лежит в HTML: пустой `span` без текста не виден; оживить Блок в показе можно Островом (раздел ниже). Ритм сверяет `tests/rich-text-paper-css.test.tsx` на настоящем каскаде.
262
+
263
+ ## Остров своего Блока
264
+
265
+ Свой Блок можно оживить в `RichTextView` клиентским компонентом (кнопкой, плеером, раскрывающимся блоком); его кладёт в поле `island` Блока описание Инструмента. Остров нужен не всякому Блоку: без него Блок остаётся очищенным HTML ([«Свой Блок»](#свой-блок)).
266
+
267
+ ```tsx
268
+ // acme-player.tsx — модуль с директивой: сервер получит лишь ссылку на компонент
269
+ "use client";
270
+ import type { CustomIslandProps } from "@olddevs/ui/editor";
271
+
272
+ export function AcmePlayer({ attributes, text }: CustomIslandProps) {
273
+ return <audio controls src={attributes.acme_src} aria-label={text} />;
274
+ }
275
+ ```
276
+
277
+ ```tsx
278
+ // acme-tool.ts — описание Инструмента, общее у Редактора, очистки и Просмотра
279
+ import { AcmePlayer } from "./acme-player";
280
+
281
+ export const acmePlayer: CustomTool = {
282
+ name: "acme_player",
283
+ engine: [AcmePlayerNode],
284
+ blocks: {
285
+ acme_player: { kind: "block", attributes: { acme_src: { kind: "url" } }, island: AcmePlayer },
286
+ },
287
+ };
288
+
289
+ // страница — серверный компонент
290
+ <RichTextView html={safeHtml} tools={[acmePlayer]} />;
291
+ ```
292
+
293
+ **Что получает компонент** (`CustomIslandProps`): `block` — имя Блока, `attributes` — объявленные в `attributes` Блока атрибуты, которые есть в HTML, по именам без `data-` (`acme_src`; необъявленный атрибут компонент не видит), `text` — `textContent` Блока из серверного HTML. Значения — строки из очищенного HTML Документа: проверку по виду значения на сервере делает `sanitizeRichText(html, DOMPurify, tools)`, и без неё Остров получит то, что лежит в `html`.
294
+
295
+ **Как это устроено и почему `RichTextView` остаётся серверным.** Так же, как у «Копировать» (раздел выше): сам компонент без состояния, клиентский кусок — отдельный файл со своей директивой.
296
+
297
+ 1. Описание Инструмента целиком (Часть для движка, функции) через границу RSC не пройдёт, поэтому `RichTextView` выбирает из `tools` только Острова, причём только тех Блоков, чей `data-block="<имя>"` есть в Документе (`islandsFor`, `src/editor/core/viewIsland.ts`), и отдаёт Острову ссылки на клиентские компоненты и имена атрибутов. Если нет `tools`, нет `island` у Блока или самого Блока в Документе, Острова нет вовсе: ни опорного `<template>` в разметке, ни эффекта, ни загрузки кода Острова потребителя (сервер сериализует ссылку на клиентский компонент, только когда Блок есть). `island` обязан быть компонентом из модуля с `"use client"`: серверный компонент или функция с динамическим импортом в клиентский Остров не передаются.
298
+ 2. Серверный HTML Блока приходит всегда. До гидрации, до загрузки Острова и без JS читатель видит его — то есть содержимое Блока как оно сохранено.
299
+ 3. После монтирования Остров (`src/editor/ui/BlockIsland.tsx` и тело `BlockIslandSlots.tsx`, свой `"use client"`) находит Блоки **своего** Просмотра так же, как «Копировать» находит гнёзда: от своего опорного `<template>` влево, а не по глобальному `document` — Просмотр в теневом корне или `iframe` работает. В каждом вхождении Блока содержимое заменяется Островом; при смене `tools` (Остров пропал) или уходе Блока содержимое возвращается. Если Блок с Островом стоит внутри другого Блока с Островом, оживает внешний: компонент получает его текст целиком, а внутренний остаётся его содержимым.
300
+ 4. Состояние Острова не сбрасывается перерисовкой родителя: Остров ищет Блоки заново только когда сменился Документ, а не `tools` (инлайновый литерал массива у родителя не перемонтирует Остров). Для этого `RichTextView` держит объект `dangerouslySetInnerHTML` стабильным (`useMemo` по Документу): новый объект на каждой перерисовке заставил бы React переписать разметку вместе со вставленными Островами и кнопками «Копировать».
301
+
302
+ **Остров — отдельный компонент**, а не React-вид Части для движка; Редактор поле `island` не читает.
303
+
304
+ **Цена.** Тело Острова (`BlockIslandSlots.tsx`) подключается лениво (`React.lazy`) и в первую загрузку Просмотра не входит: пока чанк идёт, виден серверный HTML Блока. В статический замер `editorView` попадает только оболочка и выбор Островов — около 0,2 кБ gzip; Tiptap в графе Просмотра по-прежнему нет, это проверяет `tests/rich-text-view.test.tsx`.
305
+
306
+ ## Доступность
307
+
308
+ Компонент не добавляет ролей: это обычный `div` с семантическим HTML внутри — заголовки, списки, цитата. Заголовки Документа начинаются с H2, если Редактор работал без `heading1`: страница сама держит H1. Документ с `heading1` содержит собственный `h1`, и тогда страница своего второго не ставит. H1 в `RichTextView` рисуется той же типографикой, что в Редакторе. Если Документ — отдельная область страницы, дайте контейнеру имя через `aria-label` и `role="region"`.
309
+
310
+ ## Антипаттерны
311
+
312
+ - Класть в `html` строку, не прошедшую серверную очистку;
313
+ - очищать только в браузере перед отправкой: сервер этого не увидит;
314
+ - брать `RichTextEditor readOnly` для страницы, которая только показывает Документ: движок на 295–339 кБ gzip ради текста ([таблица размеров](../../getting-started.md#размер-импорта));
315
+ - добавлять `"use client"` в файл, где `RichTextView` стоит один: он не нужен и уводит соседей в клиентский граф (Остров с кнопкой «Копировать» — отдельный файл со своей директивой, он у `RichTextView` уже есть);
316
+ - передавать в `island` серверный компонент или функцию с динамическим импортом: через границу RSC проходит только ссылка на клиентский компонент из модуля с `"use client"`;
317
+ - заводить свою кнопку копирования поверх `RichTextView` или читать текст из DOM Блока: шапка и кнопка уже есть, а копируется `textContent` кода, не разметка.
318
+
319
+ ## Ссылки
320
+
321
+ - Исходник: `src/editor/RichTextView.tsx`; шапка и кнопка — `src/editor/features/code/codeHeader.ts` (разметка шапки), `src/editor/features/code/CodeCopyIsland.tsx` (клиентский Остров), `src/editor/features/code/CodeCopyButton.tsx`; Остров своего Блока — `src/editor/core/viewIsland.ts` (выбор Островов по Документу), `src/editor/ui/BlockIsland.tsx` и `src/editor/ui/BlockIslandSlots.tsx` (клиентский Остров); Лист `surface="paper"` — `src/editor/styles/surface.ts` и `src/editor/styles/tokens.ts`; типографика — `src/editor/styles/prose.ts`, тема подсветки — `src/editor/styles/codeTheme.ts`; серверная подсветка — `src/editor/features/code/highlight.ts`, вход — `src/editor/highlight-entry.ts`; Схема данными, `sanitizeRichText` и конфиг очистки — `src/editor/core/schema.ts`, лёгкий вход — `src/editor/schema-entry.ts`.
322
+ - Тесты: `tests/rich-text-view.test.tsx` (в нём же граф модулей и сверка таблицы со Схемой), `tests/rich-text-view-code-copy.test.tsx` (шапка, Остров, копирование), `tests/rich-text-view-island.test.tsx` (Остров своего Блока), `tests/rich-text-paper.test.tsx` и `tests/rich-text-paper-css.test.tsx` (Лист `surface="paper"`), `tests/editor-highlight-entry.test.ts` (хелпер подсветки, экранирование, граф входа), `tests/editor-sanitize.test.tsx` (очистка настоящим DOMPurify: разметка Редактора без изменений, подделки, голый конфиг), `tests/editor-sanitize-tools.test.tsx` (очистка и `richTextSchema` со своими Инструментами), `tests/rsc-gate.test.ts`.
323
+ - Storybook: `Content/RichTextView`.
324
+ - Редактор — [RichTextEditor](../inputs/rich-text-editor.md); свои Инструменты, Остров и граница semver — [API расширения Редактора](../../api/editor-extension.md); решения — ADR-0050, подсветка — ADR-0051, расширение — ADR-0058.