@epam/ai-dial-ui-kit 0.15.0-dev.5 → 0.15.0-dev.50

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 (251) hide show
  1. package/README.md +194 -1
  2. package/dist/CHANGELOG.md +86 -0
  3. package/dist/{DateCellRenderer-BVM-Q8yx.cjs → DateCellRenderer-CZNa4jVJ.cjs} +31 -31
  4. package/dist/DateCellRenderer-X6vXPDIG.cjs +1 -0
  5. package/dist/IconButton-DHOFapLo.cjs +1 -0
  6. package/dist/JsonEditor-Bxui5wJH.cjs +1 -0
  7. package/dist/{MarkdownEditor-C9-ZMRVi.cjs → MarkdownEditor-BKtFs714.cjs} +1 -1
  8. package/dist/MarkdownEditor-Bapd1ycU.cjs +1 -0
  9. package/dist/MarkdownEditorContainer-B5aHwoYF.cjs +1 -0
  10. package/dist/{Switch-CUKClcEz.cjs → Switch-DE6MrcqJ.cjs} +1 -1
  11. package/dist/components/Button/constants.js +9 -8
  12. package/dist/components/Dropdown/Dropdown.js +70 -65
  13. package/dist/components/Dropdown/DropdownSubMenuItem.js +63 -55
  14. package/dist/components/Dropdown/constants.js +16 -14
  15. package/dist/components/DropdownIcon/DropdownIcon.js +43 -32
  16. package/dist/components/FileManager/FileManager.js +373 -372
  17. package/dist/components/FileManager/FileManagerProvider.js +266 -264
  18. package/dist/components/FileManager/hooks/use-grid-context-menu.js +59 -59
  19. package/dist/components/MarkdownEditor/MarkdownEditor.js +23 -21
  20. package/dist/components/MarkdownEditor/MarkdownEditorContainer.js +27 -27
  21. package/dist/components/New/Accordion/Accordion.js +87 -71
  22. package/dist/components/New/AutocompleteTagInput/AutocompleteTagInput.js +207 -0
  23. package/dist/components/New/AutocompleteTagInput/utils.js +11 -0
  24. package/dist/components/New/Avatar/Avatar.js +70 -0
  25. package/dist/components/New/Badge/Badge.js +45 -0
  26. package/dist/components/New/BottomSheet/BottomSheet.js +128 -0
  27. package/dist/components/New/Breadcrumbs/Breadcrumbs.js +159 -0
  28. package/dist/components/New/Breadcrumbs/constants.js +41 -0
  29. package/dist/components/New/Button/Button.js +32 -32
  30. package/dist/components/New/Button/ButtonWrappers.js +103 -37
  31. package/dist/components/New/Button/constants.js +3 -0
  32. package/dist/components/New/Button/utils.js +18 -8
  33. package/dist/components/New/ButtonDropdown/ButtonDropdown.js +26 -16
  34. package/dist/components/New/Calendar/Calendar.js +253 -222
  35. package/dist/components/New/Calendar/constants.js +5 -5
  36. package/dist/components/New/CaptionText/CaptionText.js +18 -15
  37. package/dist/components/New/CardShell/CardShell.js +5 -3
  38. package/dist/components/New/Checkbox/Checkbox.js +67 -56
  39. package/dist/components/New/Checkbox/CheckboxBox.js +5 -3
  40. package/dist/components/New/CloseButton/CloseButton.js +18 -16
  41. package/dist/components/New/CollapsibleSidebar/CollapsibleSidebar.js +39 -34
  42. package/dist/components/New/ConfirmationPopup/ConfirmationPopup.js +38 -37
  43. package/dist/components/New/ConfirmationPopup/constants.js +8 -11
  44. package/dist/components/New/Dropdown/Dropdown.js +112 -105
  45. package/dist/components/New/Dropdown/DropdownSubMenuItem.js +17 -17
  46. package/dist/components/New/Dropdown/constants.js +22 -17
  47. package/dist/components/New/EllipsisTooltip/EllipsisTooltip.js +20 -18
  48. package/dist/components/New/EntityIdentity/EntityIdentity.js +135 -0
  49. package/dist/components/New/FileDropzone/FileDropzone.js +27 -25
  50. package/dist/components/New/FileIcon/FileIcon.js +55 -0
  51. package/dist/components/New/FileIcon/constants.js +134 -0
  52. package/dist/components/New/FileIcon/icons/FileGlyph.js +150 -0
  53. package/dist/components/New/FileIcon/icons/FolderGlyph.js +50 -0
  54. package/dist/components/New/FileName/FileName.js +78 -0
  55. package/dist/components/New/FilterChips/FilterChips.js +43 -0
  56. package/dist/components/New/FilterChips/constants.js +5 -0
  57. package/dist/components/New/FolderName/FolderName.js +16 -0
  58. package/dist/components/New/FolderPath/FolderPath.js +29 -28
  59. package/dist/components/New/Highlight/Highlight.js +23 -30
  60. package/dist/components/New/IconButton/IconButton.js +30 -28
  61. package/dist/components/New/InfoButton/InfoButton.js +13 -11
  62. package/dist/components/New/InlineSelect/InlineSelect.js +74 -56
  63. package/dist/components/New/InteractiveTooltip/InteractiveTooltip.js +41 -39
  64. package/dist/components/New/InteractiveTooltip/constants.js +2 -2
  65. package/dist/components/New/Label/Label.js +13 -8
  66. package/dist/components/New/MarkdownEditor/MarkdownEditor.js +29 -27
  67. package/dist/components/New/MenuItem/MenuItem.js +29 -27
  68. package/dist/components/New/MenuItem/constants.js +9 -8
  69. package/dist/components/New/NoDataContent/NoDataContent.js +21 -19
  70. package/dist/components/New/Notification/Notification.js +33 -29
  71. package/dist/components/New/NumberInput/NumberInput.js +42 -33
  72. package/dist/components/New/PasswordInput/PasswordInput.js +41 -35
  73. package/dist/components/New/Popup/Popup.js +46 -44
  74. package/dist/components/New/Popup/constants.js +3 -3
  75. package/dist/components/New/Radio/Radio.js +75 -64
  76. package/dist/components/New/RadioGroup/RadioGroup.js +76 -65
  77. package/dist/components/New/RadioGroupPopupField/RadioGroupPopupField.js +117 -106
  78. package/dist/components/New/ResizableContainer/ResizableContainer.js +42 -40
  79. package/dist/components/New/SchemaRenderer/SchemaRenderer.js +164 -0
  80. package/dist/components/New/SchemaRenderer/components/SchemaAnyOfEditor.js +65 -0
  81. package/dist/components/New/SchemaRenderer/components/SchemaArrayEditor.js +109 -0
  82. package/dist/components/New/SchemaRenderer/components/SchemaField.js +83 -0
  83. package/dist/components/New/SchemaRenderer/components/SchemaFieldContent.js +72 -0
  84. package/dist/components/New/SchemaRenderer/components/SchemaJsonEditor.js +41 -0
  85. package/dist/components/New/SchemaRenderer/components/SchemaKeyValueEditor.js +250 -0
  86. package/dist/components/New/SchemaRenderer/components/SchemaObjectEditor.js +36 -0
  87. package/dist/components/New/SchemaRenderer/components/SchemaOneOfEditor.js +163 -0
  88. package/dist/components/New/SchemaRenderer/components/SchemaPrimitiveField.js +150 -0
  89. package/dist/components/New/SchemaRenderer/components/SchemaSection.js +135 -0
  90. package/dist/components/New/SchemaRenderer/context.js +17 -0
  91. package/dist/components/New/Search/Search.js +29 -27
  92. package/dist/components/New/SegmentedControl/SegmentedControl.js +29 -23
  93. package/dist/components/New/Select/CollapsedSelectTags.js +127 -0
  94. package/dist/components/New/Select/MultiSelectTags.js +18 -15
  95. package/dist/components/New/Select/Select.js +219 -197
  96. package/dist/components/New/Select/constants.js +23 -20
  97. package/dist/components/New/SharedEntityIndicator/SharedEntityIndicator.js +34 -0
  98. package/dist/components/New/SideDrawer/SideDrawer.js +148 -0
  99. package/dist/components/New/Slider/Slider.js +151 -90
  100. package/dist/components/New/Slider/utils.js +12 -0
  101. package/dist/components/New/Switch/Switch.js +69 -58
  102. package/dist/components/New/Tabs/Tabs.js +125 -61
  103. package/dist/components/New/Tag/Tag.js +42 -40
  104. package/dist/components/New/TagInput/TagInput.js +48 -44
  105. package/dist/components/New/Textarea/Textarea.js +21 -20
  106. package/dist/components/New/ToggleIconButton/ToggleIconButton.js +26 -24
  107. package/dist/components/New/Tooltip/TooltipContent.js +11 -9
  108. package/dist/components/New/Tooltip/constants.js +1 -1
  109. package/dist/components/New/TransferQueue/TransferQueue.js +124 -0
  110. package/dist/components/New/TransferQueue/TransferQueueHeader.js +71 -0
  111. package/dist/components/New/TransferQueue/TransferQueueRow.js +119 -0
  112. package/dist/components/New/TransferQueue/constants.js +24 -0
  113. package/dist/components/New/constants/overlay.js +17 -9
  114. package/dist/components/Popup/constants.js +8 -8
  115. package/dist/components/ProgressBar/ProgressBar.js +45 -33
  116. package/dist/components/SchemaRenderer/SchemaRenderer.js +16 -15
  117. package/dist/components/SchemaRenderer/components/SchemaAdditionalPropertiesEditor.js +46 -31
  118. package/dist/components/SchemaRenderer/components/SchemaAnyOfEditor.js +2 -2
  119. package/dist/components/SchemaRenderer/components/SchemaArrayEditor.js +1 -1
  120. package/dist/components/SchemaRenderer/components/SchemaField.js +23 -23
  121. package/dist/components/SchemaRenderer/components/SchemaFieldContent.js +19 -19
  122. package/dist/components/SchemaRenderer/components/SchemaKeyValueEditor.js +223 -135
  123. package/dist/components/SchemaRenderer/components/SchemaObjectEditor.js +1 -1
  124. package/dist/components/SchemaRenderer/components/SchemaOneOfEditor.js +13 -13
  125. package/dist/components/SchemaRenderer/components/SchemaPrimitiveField.js +5 -5
  126. package/dist/components/Skeleton/Skeleton.js +25 -19
  127. package/dist/components/Spinner/Spinner.js +7 -5
  128. package/dist/components/Tooltip/TooltipContent.js +11 -11
  129. package/dist/components-manifest.json +1837 -84
  130. package/dist/constants/public-class-names.js +218 -0
  131. package/dist/constants/schema-renderer.js +33 -0
  132. package/dist/dial-ui-kit.cjs +2 -2
  133. package/dist/dial-ui-kit.js +356 -307
  134. package/dist/editors.cjs +1 -1
  135. package/dist/file-manager.cjs +1 -1
  136. package/dist/grid.cjs +1 -1
  137. package/dist/index.css +2 -2
  138. package/dist/lazy-_W6FYhKg.cjs +1 -0
  139. package/dist/merge-classes-BEJXjzkx.cjs +1 -0
  140. package/dist/migration-guides/0.15.0/legacy-theme-variable-fallbacks-removal.md +69 -0
  141. package/dist/migration-guides/0.15.0/slider-redesign.md +110 -0
  142. package/dist/migration-guides/README.md +2 -0
  143. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +419 -399
  144. package/dist/src/components/FileManager/FileManager.d.ts +2 -0
  145. package/dist/src/components/FileManager/FileManagerContext.d.ts +1 -0
  146. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +2 -1
  147. package/dist/src/components/MarkdownEditor/MarkdownEditor.d.ts +2 -0
  148. package/dist/src/components/MarkdownEditor/MarkdownEditorContainer.d.ts +2 -0
  149. package/dist/src/components/New/Accordion/Accordion.d.ts +6 -1
  150. package/dist/src/components/New/AutocompleteTagInput/AutocompleteTagInput.d.ts +97 -0
  151. package/dist/src/components/New/AutocompleteTagInput/utils.d.ts +17 -0
  152. package/dist/src/components/New/AutocompleteTagInput/utils.spec.d.ts +1 -0
  153. package/dist/src/components/New/Avatar/Avatar.d.ts +55 -0
  154. package/dist/src/components/New/Badge/Badge.d.ts +47 -0
  155. package/dist/src/components/New/BottomSheet/BottomSheet.d.ts +84 -0
  156. package/dist/src/components/New/Breadcrumbs/Breadcrumbs.d.ts +94 -0
  157. package/dist/src/components/New/Breadcrumbs/constants.d.ts +60 -0
  158. package/dist/src/components/New/Button/Button.d.ts +4 -1
  159. package/dist/src/components/New/Button/ButtonWrappers.d.ts +21 -0
  160. package/dist/src/components/New/Button/utils.d.ts +15 -0
  161. package/dist/src/components/New/ButtonDropdown/ButtonDropdown.d.ts +4 -0
  162. package/dist/src/components/New/Calendar/constants.d.ts +1 -1
  163. package/dist/src/components/New/ConfirmationPopup/constants.d.ts +0 -1
  164. package/dist/src/components/New/Dropdown/Dropdown.d.ts +9 -1
  165. package/dist/src/components/New/Dropdown/constants.d.ts +3 -0
  166. package/dist/src/components/New/EntityIdentity/EntityIdentity.d.ts +85 -0
  167. package/dist/src/components/New/FileIcon/FileIcon.d.ts +61 -0
  168. package/dist/src/components/New/FileIcon/constants.d.ts +16 -0
  169. package/dist/src/components/New/FileIcon/icons/FileGlyph.d.ts +18 -0
  170. package/dist/src/components/New/FileIcon/icons/FolderGlyph.d.ts +17 -0
  171. package/dist/src/components/New/FileName/FileName.d.ts +79 -0
  172. package/dist/src/components/New/FilterChips/FilterChips.d.ts +69 -0
  173. package/dist/src/components/New/FilterChips/constants.d.ts +13 -0
  174. package/dist/src/components/New/FolderName/FolderName.d.ts +37 -0
  175. package/dist/src/components/New/InlineSelect/InlineSelect.d.ts +16 -1
  176. package/dist/src/components/New/InteractiveTooltip/constants.d.ts +5 -4
  177. package/dist/src/components/New/MarkdownEditor/MarkdownEditor.d.ts +3 -0
  178. package/dist/src/components/New/Notification/Notification.d.ts +18 -0
  179. package/dist/src/components/New/Popup/constants.d.ts +1 -1
  180. package/dist/src/components/New/SchemaRenderer/SchemaRenderer.d.ts +38 -0
  181. package/dist/src/components/New/SchemaRenderer/components/SchemaAnyOfEditor.d.ts +37 -0
  182. package/dist/src/components/New/SchemaRenderer/components/SchemaArrayEditor.d.ts +35 -0
  183. package/dist/src/components/New/SchemaRenderer/components/SchemaField.d.ts +33 -0
  184. package/dist/src/components/New/SchemaRenderer/components/SchemaFieldContent.d.ts +30 -0
  185. package/dist/src/components/New/SchemaRenderer/components/SchemaJsonEditor.d.ts +29 -0
  186. package/dist/src/components/New/SchemaRenderer/components/SchemaKeyValueEditor.d.ts +37 -0
  187. package/dist/src/components/New/SchemaRenderer/components/SchemaObjectEditor.d.ts +32 -0
  188. package/dist/src/components/New/SchemaRenderer/components/SchemaOneOfEditor.d.ts +39 -0
  189. package/dist/src/components/New/SchemaRenderer/components/SchemaPrimitiveField.d.ts +38 -0
  190. package/dist/src/components/New/SchemaRenderer/components/SchemaSection.d.ts +39 -0
  191. package/dist/src/components/New/SchemaRenderer/context.d.ts +8 -0
  192. package/dist/src/components/New/SchemaRenderer/types.d.ts +76 -0
  193. package/dist/src/components/New/Select/CollapsedSelectTags.d.ts +22 -0
  194. package/dist/src/components/New/Select/MultiSelectTags.d.ts +5 -0
  195. package/dist/src/components/New/Select/Select.d.ts +9 -0
  196. package/dist/src/components/New/Select/constants.d.ts +3 -2
  197. package/dist/src/components/New/SharedEntityIndicator/SharedEntityIndicator.d.ts +35 -0
  198. package/dist/src/components/New/SideDrawer/SideDrawer.d.ts +100 -0
  199. package/dist/src/components/New/Slider/Slider.d.ts +20 -1
  200. package/dist/src/components/New/Slider/utils.d.ts +6 -0
  201. package/dist/src/components/New/Slider/utils.spec.d.ts +1 -0
  202. package/dist/src/components/New/Tabs/Tabs.d.ts +54 -6
  203. package/dist/src/components/New/Tooltip/constants.d.ts +5 -3
  204. package/dist/src/components/New/TransferQueue/TransferQueue.d.ts +139 -0
  205. package/dist/src/components/New/TransferQueue/TransferQueueHeader.d.ts +16 -0
  206. package/dist/src/components/New/TransferQueue/TransferQueueRow.d.ts +10 -0
  207. package/dist/src/components/New/TransferQueue/constants.d.ts +6 -0
  208. package/dist/src/components/New/constants/overlay.d.ts +13 -0
  209. package/dist/src/components/Popup/constants.d.ts +1 -1
  210. package/dist/src/components/SchemaRenderer/types.d.ts +5 -82
  211. package/dist/src/components/SchemaRenderer/utils.d.ts +1 -13
  212. package/dist/src/constants/public-class-names.d.ts +209 -0
  213. package/dist/src/constants/schema-renderer.d.ts +2 -0
  214. package/dist/src/index.d.ts +39 -2
  215. package/dist/src/models/json-schema.d.ts +71 -0
  216. package/dist/src/types/accordion.d.ts +7 -0
  217. package/dist/src/types/avatar.d.ts +7 -0
  218. package/dist/src/types/badge.d.ts +16 -0
  219. package/dist/src/types/breadcrumbs.d.ts +9 -0
  220. package/dist/src/types/button.d.ts +1 -0
  221. package/dist/src/types/entity-type.d.ts +9 -0
  222. package/dist/src/types/json-schema.d.ts +22 -0
  223. package/dist/src/types/transfer-queue.d.ts +10 -0
  224. package/dist/src/utils/__tests__/avatar.spec.d.ts +1 -0
  225. package/dist/src/utils/avatar.d.ts +12 -0
  226. package/dist/src/utils/json-schema.d.ts +23 -0
  227. package/dist/src/utils/sub-menu-floating.d.ts +7 -4
  228. package/dist/types/accordion.js +4 -0
  229. package/dist/types/avatar.js +4 -0
  230. package/dist/types/badge.js +5 -0
  231. package/dist/types/breadcrumbs.js +4 -0
  232. package/dist/types/button.js +3 -3
  233. package/dist/types/entity-type.js +4 -0
  234. package/dist/types/json-schema.js +7 -0
  235. package/dist/types/transfer-queue.js +4 -0
  236. package/dist/use-file-manager-tabs-Bzzwwcgk.cjs +3 -0
  237. package/dist/utils/avatar.js +22 -0
  238. package/dist/{components/SchemaRenderer/utils.js → utils/json-schema.js} +122 -95
  239. package/dist/utils/merge-classes.js +12 -5
  240. package/dist/utils/sub-menu-floating.js +99 -54
  241. package/package.json +4 -9
  242. package/dist/DateCellRenderer-ssp7eaZY.cjs +0 -1
  243. package/dist/IconButton-DWqoaBWf.cjs +0 -1
  244. package/dist/JsonEditor-D2jSlRFi.cjs +0 -1
  245. package/dist/MarkdownEditor-BzEbdj7R.cjs +0 -1
  246. package/dist/MarkdownEditorContainer-BvwJjkiZ.cjs +0 -1
  247. package/dist/components/SchemaRenderer/types.js +0 -27
  248. package/dist/editor-_174x-qy.cjs +0 -1
  249. package/dist/lazy-DM-7dL0Y.cjs +0 -1
  250. package/dist/merge-classes-Dipy1Ih1.cjs +0 -1
  251. package/dist/use-file-manager-tabs-DjdR_mYM.cjs +0 -3
@@ -0,0 +1,37 @@
1
+ import { FC } from 'react';
2
+ import { JsonSchemaDef } from '../../../../models/json-schema';
3
+ export interface SchemaAnyOfEditorProps {
4
+ schema: JsonSchemaDef;
5
+ value: unknown;
6
+ onChange: (value: unknown) => void;
7
+ path: string[];
8
+ level: number;
9
+ ariaLabel?: string;
10
+ }
11
+ /**
12
+ * Renders an `anyOf` schema field as a type select with the selected variant's editor.
13
+ * aliases: AnyOfSchemaEditor|SchemaUnionEditor
14
+ * Design system 2.0
15
+ *
16
+ * A `null` variant has no editor, so selecting it clears the value.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <SchemaAnyOfEditor
21
+ * schema={{ anyOf: [{ type: 'null' }, { type: 'string' }] }}
22
+ * value={null}
23
+ * onChange={(v) => console.log(v)}
24
+ * path={['field']}
25
+ * level={1}
26
+ * ariaLabel="Field"
27
+ * />
28
+ * ```
29
+ *
30
+ * @param schema - The JSON Schema definition containing an `anyOf` array
31
+ * @param value - Current field value
32
+ * @param onChange - Called with the new value when the type or sub-value changes
33
+ * @param path - Field path segments used for validation error tracking
34
+ * @param level - Nesting depth passed to child field components
35
+ * @param [ariaLabel] - Accessible name of the type select and the variant's control
36
+ */
37
+ export declare const SchemaAnyOfEditor: FC<SchemaAnyOfEditorProps>;
@@ -0,0 +1,35 @@
1
+ import { FC } from 'react';
2
+ import { JsonSchemaDef } from '../../../../models/json-schema';
3
+ export interface SchemaArrayEditorProps {
4
+ schema: JsonSchemaDef;
5
+ value: unknown;
6
+ onChange: (value: unknown) => void;
7
+ path: string[];
8
+ level: number;
9
+ }
10
+ /**
11
+ * Renders a JSON Schema array as a list of collapsible items with add and remove controls.
12
+ * aliases: ArraySchemaEditor|SchemaListEditor
13
+ * Design system 2.0
14
+ *
15
+ * An item schema with a `discriminator` adds a type select next to the add
16
+ * button; the new item gets that variant's defaults.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <SchemaArrayEditor
21
+ * schema={{ type: 'array', items: { type: 'string' } }}
22
+ * value={['foo', 'bar']}
23
+ * onChange={(v) => console.log(v)}
24
+ * path={['tags']}
25
+ * level={1}
26
+ * />
27
+ * ```
28
+ *
29
+ * @param schema - The JSON Schema array definition (must include an `items` sub-schema)
30
+ * @param value - Current array value
31
+ * @param onChange - Called with the updated array when items are added, removed, or changed
32
+ * @param path - Field path segments used for validation error tracking
33
+ * @param level - Nesting depth passed to child section components
34
+ */
35
+ export declare const SchemaArrayEditor: FC<SchemaArrayEditorProps>;
@@ -0,0 +1,33 @@
1
+ import { FC } from 'react';
2
+ import { SchemaFieldProps } from '../types';
3
+ /**
4
+ * Renders a single schema property: a labelled field for a primitive, or a
5
+ * collapsible section for an object or an array.
6
+ * aliases: SchemaPropertyField|SchemaFormField
7
+ * Design system 2.0
8
+ *
9
+ * The label and the required error sit outside {@link SchemaFieldContent}, so
10
+ * a `renderField` override replaces the control and keeps both.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * <SchemaField
15
+ * schema={{ type: 'string' }}
16
+ * value="hello"
17
+ * onChange={(v) => console.log(v)}
18
+ * path={['name']}
19
+ * level={1}
20
+ * required
21
+ * label="Name"
22
+ * />
23
+ * ```
24
+ *
25
+ * @param schema - The JSON Schema definition for this field
26
+ * @param value - Current field value
27
+ * @param onChange - Called with the updated value when the field changes
28
+ * @param path - Field path segments used for validation error tracking
29
+ * @param [level=0] - Nesting depth; object/array fields render as collapsible sections
30
+ * @param [required] - Whether the field is required (shows error when empty)
31
+ * @param [label] - Display label; falls back to schema title or path segment
32
+ */
33
+ export declare const SchemaField: FC<SchemaFieldProps>;
@@ -0,0 +1,30 @@
1
+ import { FC } from 'react';
2
+ import { SchemaFieldContentProps } from '../types';
3
+ /**
4
+ * Routes a resolved schema to the editor that renders it.
5
+ * aliases: SchemaEditorRouter|SchemaContentDispatcher
6
+ * Design system 2.0
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <SchemaFieldContent
11
+ * schema={{ type: 'string' }}
12
+ * value="hello"
13
+ * onChange={(v) => console.log(v)}
14
+ * path={['name']}
15
+ * level={1}
16
+ * ariaLabel="Name"
17
+ * />
18
+ * ```
19
+ *
20
+ * @param schema - The JSON Schema definition to render
21
+ * @param value - Current field value
22
+ * @param onChange - Called with the updated value when the field changes
23
+ * @param path - Field path segments used for validation error tracking
24
+ * @param level - Nesting depth passed to child editor components
25
+ * @param [required] - Whether the field is required (passed to primitive fields for error styling)
26
+ * @param [suppressInlineError=false] - Leaves the required error to the caller, which renders it under its own label
27
+ * @param [fieldId] - Id given to a primitive control, for a visible label to point at
28
+ * @param [ariaLabel] - Accessible name of the control
29
+ */
30
+ export declare const SchemaFieldContent: FC<SchemaFieldContentProps>;
@@ -0,0 +1,29 @@
1
+ import { FC } from 'react';
2
+ export interface SchemaJsonEditorProps {
3
+ value: unknown;
4
+ onChange: (value: unknown) => void;
5
+ id?: string;
6
+ ariaLabel?: string;
7
+ }
8
+ /**
9
+ * Edits a value the schema does not describe as raw JSON text: a key absent
10
+ * from the schema's `properties`, an object with no fixed properties, or a
11
+ * key-value entry switched to the object or array type.
12
+ * aliases: SchemaRawJsonEditor|SchemaUnknownPropertyEditor
13
+ * Design system 2.0
14
+ *
15
+ * A plain monospace {@link Textarea} rather than a code editor, so the form
16
+ * pulls in no editor bundle. The draft text is kept locally and `onChange`
17
+ * fires only once it parses.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <SchemaJsonEditor value={{ retries: 3 }} onChange={setValue} />
22
+ * ```
23
+ *
24
+ * @param value - The current value (any JSON type)
25
+ * @param onChange - Called with the parsed value whenever the edited text is valid JSON
26
+ * @param [id] - Id of the textarea, for a visible label to point at
27
+ * @param [ariaLabel] - Accessible name of the textarea
28
+ */
29
+ export declare const SchemaJsonEditor: FC<SchemaJsonEditorProps>;
@@ -0,0 +1,37 @@
1
+ import { FC } from 'react';
2
+ import { JsonSchemaDef } from '../../../../models/json-schema';
3
+ export interface SchemaKeyValueEditorProps {
4
+ schema: JsonSchemaDef;
5
+ value: unknown;
6
+ onChange: (value: unknown) => void;
7
+ path: string[];
8
+ level: number;
9
+ }
10
+ /**
11
+ * Renders an `additionalProperties` object schema as an editable key-value list.
12
+ * aliases: KeyValueSchemaEditor|AdditionalPropertiesEditor
13
+ * Design system 2.0
14
+ *
15
+ * Primitive values render inline; object, `oneOf` and array values render as a
16
+ * collapsible section recursing back into `SchemaFieldContent`. With
17
+ * `additionalProperties: true` each entry also gets a type select, and an
18
+ * object or array entry is edited as raw JSON.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <SchemaKeyValueEditor
23
+ * schema={{ type: 'object', additionalProperties: { type: 'string' } }}
24
+ * value={{ foo: 'bar' }}
25
+ * onChange={(v) => console.log(v)}
26
+ * path={['metadata']}
27
+ * level={1}
28
+ * />
29
+ * ```
30
+ *
31
+ * @param schema - The JSON Schema object definition with `additionalProperties`
32
+ * @param value - Current object value (treated as a key-value map)
33
+ * @param onChange - Called with the updated object when pairs are added, removed, or changed
34
+ * @param path - Field path segments used for validation error tracking
35
+ * @param level - Nesting depth passed to child section components
36
+ */
37
+ export declare const SchemaKeyValueEditor: FC<SchemaKeyValueEditorProps>;
@@ -0,0 +1,32 @@
1
+ import { FC } from 'react';
2
+ import { JsonSchemaDef } from '../../../../models/json-schema';
3
+ export interface SchemaObjectEditorProps {
4
+ schema: JsonSchemaDef;
5
+ value: unknown;
6
+ onChange: (value: unknown) => void;
7
+ path: string[];
8
+ level: number;
9
+ }
10
+ /**
11
+ * Renders the properties of a JSON Schema object as labelled form fields.
12
+ * aliases: ObjectSchemaEditor|SchemaPropertiesEditor
13
+ * Design system 2.0
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <SchemaObjectEditor
18
+ * schema={{ type: 'object', properties: { name: { type: 'string' } } }}
19
+ * value={{ name: 'Alice' }}
20
+ * onChange={(v) => console.log(v)}
21
+ * path={['config']}
22
+ * level={1}
23
+ * />
24
+ * ```
25
+ *
26
+ * @param schema - The JSON Schema object definition
27
+ * @param value - Current object value
28
+ * @param onChange - Called with the updated object when any property changes
29
+ * @param path - Field path segments used for validation error tracking
30
+ * @param level - Nesting depth passed to child SchemaField instances
31
+ */
32
+ export declare const SchemaObjectEditor: FC<SchemaObjectEditorProps>;
@@ -0,0 +1,39 @@
1
+ import { FC } from 'react';
2
+ import { JsonSchemaDef } from '../../../../models/json-schema';
3
+ export interface SchemaOneOfEditorProps {
4
+ schema: JsonSchemaDef;
5
+ value: unknown;
6
+ onChange: (value: unknown) => void;
7
+ path: string[];
8
+ level: number;
9
+ ariaLabel?: string;
10
+ }
11
+ /**
12
+ * Renders a `oneOf` schema field as a type selector with the selected variant's editor.
13
+ * aliases: OneOfSchemaEditor|SchemaDiscriminatorEditor
14
+ * Design system 2.0
15
+ *
16
+ * The selector is a select by default, or a radio group with
17
+ * `discriminatorDisplay: 'radio'`. A column radio group reveals the variant's
18
+ * editor under its own option; a row one shows it below the whole row.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <SchemaOneOfEditor
23
+ * schema={{ oneOf: [...], discriminator: { propertyName: 'type', mapping: {...} } }}
24
+ * value={{ type: 'foo' }}
25
+ * onChange={(v) => console.log(v)}
26
+ * path={['config']}
27
+ * level={1}
28
+ * ariaLabel="Provider"
29
+ * />
30
+ * ```
31
+ *
32
+ * @param schema - The JSON Schema definition containing a `oneOf` array and optional `discriminator`
33
+ * @param value - Current field value
34
+ * @param onChange - Called with the new value when the selected type or sub-value changes
35
+ * @param path - Field path segments used for validation error tracking
36
+ * @param level - Nesting depth passed to child editor components
37
+ * @param [ariaLabel] - Accessible name of the type selector; defaults to the select-type placeholder
38
+ */
39
+ export declare const SchemaOneOfEditor: FC<SchemaOneOfEditorProps>;
@@ -0,0 +1,38 @@
1
+ import { FC } from 'react';
2
+ import { JsonSchemaDef } from '../../../../models/json-schema';
3
+ export interface SchemaPrimitiveFieldProps {
4
+ schema: JsonSchemaDef;
5
+ value: unknown;
6
+ onChange: (value: unknown) => void;
7
+ invalid?: boolean;
8
+ id?: string;
9
+ ariaLabel?: string;
10
+ }
11
+ /**
12
+ * Renders a single primitive schema field: string, integer, number, boolean, enum, or const.
13
+ * - `dial:resource` with `acceptableResourceTypes` → select over the live resource options
14
+ * - `isProtected: true` → masked password input
15
+ * - `enum` + `enumDisplay: 'radio'` → radio group (`enumOrientation: 'row'` lays it out horizontally)
16
+ * - `enum` without `enumDisplay` → select
17
+ * - `const` → disabled read-only input
18
+ * aliases: SchemaInputField|PrimitiveSchemaField
19
+ * Design system 2.0
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <SchemaPrimitiveField
24
+ * schema={{ type: 'string', enum: ['a', 'b'], enumDisplay: 'radio', enumOrientation: 'row' }}
25
+ * value="a"
26
+ * onChange={(v) => console.log(v)}
27
+ * ariaLabel="Mode"
28
+ * />
29
+ * ```
30
+ *
31
+ * @param schema - The resolved JSON Schema definition; supports `isProtected`, `enumDisplay`, `enumOrientation`
32
+ * @param value - Current field value
33
+ * @param onChange - Called with the new value when the field changes
34
+ * @param [invalid] - Whether the field has a validation error (applies error styling)
35
+ * @param [id] - Id of the control, for a visible label to point at
36
+ * @param [ariaLabel] - Accessible name of the control
37
+ */
38
+ export declare const SchemaPrimitiveField: FC<SchemaPrimitiveFieldProps>;
@@ -0,0 +1,39 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface SchemaSectionProps {
3
+ title: string;
4
+ description?: string;
5
+ summary?: string;
6
+ errorCount?: number;
7
+ level?: number;
8
+ children?: ReactNode;
9
+ onRemove?: () => void;
10
+ defaultExpanded?: boolean;
11
+ removeItemAriaLabel?: string;
12
+ }
13
+ /**
14
+ * A collapsible card wrapping a group of schema properties.
15
+ * aliases: CollapsibleSchemaSection|SchemaCard
16
+ * Design system 2.0
17
+ *
18
+ * Only the chevron and the title sit inside the toggle button. The info button
19
+ * and the remove button are its siblings, since a button nested in a button is
20
+ * invalid and its clicks would toggle the section too.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * <SchemaSection title="Settings" level={0} summary="3/4 fields" errorCount={1}>
25
+ * <p>Content</p>
26
+ * </SchemaSection>
27
+ * ```
28
+ *
29
+ * @param title - Section header title
30
+ * @param [description] - Explanatory text, exposed through an info button in the header
31
+ * @param [summary] - Short summary text shown in the header (e.g. "3/4 fields", "2 items")
32
+ * @param [errorCount=0] - Number of validation errors; shows an error count when > 0
33
+ * @param [level=0] - Nesting depth; 0 is the top-level card, 1+ the nested one
34
+ * @param [children] - Section body, mounted only while expanded
35
+ * @param [onRemove] - If provided, shows a remove button in the header
36
+ * @param [defaultExpanded=true] - Whether the section starts expanded
37
+ * @param [removeItemAriaLabel='Remove item'] - Accessible name of the remove button
38
+ */
39
+ export declare const SchemaSection: FC<SchemaSectionProps>;
@@ -0,0 +1,8 @@
1
+ import { SchemaRendererContextValue } from './types';
2
+ export declare const SchemaRendererContext: import('react').Context<SchemaRendererContextValue | null>;
3
+ export declare const useSchemaContext: () => SchemaRendererContextValue;
4
+ /**
5
+ * Whether a path, or any path under it, has been touched. Every field counts as
6
+ * touched while `skipUntouched` is off, so errors show from the first render.
7
+ */
8
+ export declare const isPathTouched: (path: string, touchedPaths?: ReadonlySet<string>, skipUntouched?: boolean, includeDescendants?: boolean) => boolean;
@@ -0,0 +1,76 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { JsonSchema, JsonSchemaDef, SchemaRendererTexts } from '../../../models/json-schema';
3
+ import { SchemaRendererVariant } from '../../../types/json-schema';
4
+ export type SchemaRenderField = (path: string[], schema: JsonSchemaDef, defaultElement: ReactElement) => ReactNode;
5
+ export interface SchemaRendererProps {
6
+ schema: JsonSchema;
7
+ defaultValue?: Record<string, unknown>;
8
+ texts?: Partial<SchemaRendererTexts>;
9
+ className?: string;
10
+ readonly?: boolean;
11
+ defaultExpanded?: boolean;
12
+ /** Additional classes for the container of every text, number and select field. */
13
+ inputClassName?: string;
14
+ /**
15
+ * `Sections` (default) — every top-level property is a collapsible section card.
16
+ * `Flat` — primitive top-level properties render as labelled fields; object and
17
+ * array properties still use collapsible sections.
18
+ * `FlatSections` — every top-level property renders under a plain heading.
19
+ */
20
+ variant?: SchemaRendererVariant;
21
+ /**
22
+ * When `true`, required-field errors are only shown after the user has interacted
23
+ * with a field. When `false` (default), all unfilled required fields are highlighted immediately.
24
+ */
25
+ skipUntouched?: boolean;
26
+ /**
27
+ * Live resource options for schema properties flagged with `dial:resource: true`.
28
+ * Keyed by the resource type name referenced in a property's `acceptableResourceTypes`
29
+ * array; each value provides the selectable entries for that resource type (a string
30
+ * array for string-typed properties).
31
+ */
32
+ acceptableResourceTypes?: Record<string, unknown>;
33
+ onChange?: (value: Record<string, unknown>) => void;
34
+ onPropertyChange?: (path: string, value: unknown) => void;
35
+ onDefaultValues?: (value: Record<string, unknown>) => void;
36
+ /**
37
+ * Override the rendered element for any field by path. The field's label and
38
+ * error stay outside the element, so an override replaces the control only.
39
+ * Return `defaultElement` to fall back to the built-in renderer.
40
+ * @param path - Array of schema property keys leading to this field (e.g. ['connection', 'token'])
41
+ * @param schema - The resolved JSON Schema definition for this field
42
+ * @param defaultElement - The element that would be rendered without customization
43
+ */
44
+ renderField?: SchemaRenderField;
45
+ }
46
+ export interface SchemaFieldContentProps {
47
+ schema: JsonSchemaDef;
48
+ value: unknown;
49
+ onChange: (value: unknown) => void;
50
+ path: string[];
51
+ level: number;
52
+ required?: boolean;
53
+ suppressInlineError?: boolean;
54
+ /** The id given to a primitive control, so a visible label can point at it. */
55
+ fieldId?: string;
56
+ /**
57
+ * Accessible name for the control. Sections, array items and key-value rows
58
+ * have no visible label next to their control, so this is what names it.
59
+ */
60
+ ariaLabel?: string;
61
+ }
62
+ export interface SchemaFieldProps extends Omit<SchemaFieldContentProps, 'fieldId' | 'ariaLabel' | 'suppressInlineError'> {
63
+ label?: string;
64
+ }
65
+ export interface SchemaRendererContextValue {
66
+ rootSchema: JsonSchema;
67
+ texts: SchemaRendererTexts;
68
+ readonly?: boolean;
69
+ defaultExpanded?: boolean;
70
+ inputClassName?: string;
71
+ acceptableResourceTypes?: Record<string, unknown>;
72
+ renderField?: SchemaRenderField;
73
+ touchedPaths?: ReadonlySet<string>;
74
+ markTouched?: (path: string) => void;
75
+ skipUntouched?: boolean;
76
+ }
@@ -0,0 +1,22 @@
1
+ import { FC, MouseEvent } from 'react';
2
+ import { SelectOption } from '../../../models/select';
3
+ export interface CollapsedSelectTagsProps {
4
+ options: SelectOption[];
5
+ selectedValues: string[];
6
+ handleRemoveTag: (event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>, val: string) => void;
7
+ }
8
+ /**
9
+ * The selected tags of a multi-select on a single row. The tags that do not fit
10
+ * the width of the field collapse into a `+N` counter whose hover panel lists
11
+ * them, each still removable.
12
+ * Design system 2.0
13
+ *
14
+ * The count follows the width the field has, not the number of tags: every tag
15
+ * is measured in a hidden copy of the row, so the tags that stay visible are
16
+ * the ones that fit beside the counter, and the count follows a resize.
17
+ *
18
+ * @param options - All available options, used to resolve labels and icons
19
+ * @param selectedValues - Values currently selected
20
+ * @param handleRemoveTag - Called with the value whose tag was removed
21
+ */
22
+ export declare const CollapsedSelectTags: FC<CollapsedSelectTagsProps>;
@@ -1,9 +1,13 @@
1
1
  import { FC, MouseEvent } from 'react';
2
2
  import { SelectOption } from '../../../models/select';
3
+ /** Geometry shared by every tag of a multi-select field, and its `+N` counter. */
4
+ export declare const selectTagClassName = "h-[24px] max-w-full rounded-md border border-secondary bg-layer-sunken px-2";
3
5
  export interface MultiSelectTagsProps {
4
6
  options: SelectOption[];
5
7
  selectedValues: string[];
6
8
  handleRemoveTag?: (event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>, val: string) => void;
9
+ /** Additional classes for every tag. */
10
+ tagClassName?: string;
7
11
  }
8
12
  /**
9
13
  * The selected values of a multi-select, rendered as removable tags inside the
@@ -13,5 +17,6 @@ export interface MultiSelectTagsProps {
13
17
  * @param options - All available options, used to resolve labels and icons
14
18
  * @param selectedValues - Values currently selected
15
19
  * @param [handleRemoveTag] - Called with the value whose tag was removed; when omitted the tags are not removable
20
+ * @param [tagClassName] - Additional classes for every tag
16
21
  */
17
22
  export declare const MultiSelectTags: FC<MultiSelectTagsProps>;
@@ -22,6 +22,14 @@ export interface SelectProps {
22
22
  searchPlaceholder?: string;
23
23
  selectAll?: boolean;
24
24
  selectAllLabel?: string;
25
+ /**
26
+ * Keeps a multi-select's tags on one row, folding the ones that do not fit
27
+ * into a `+N` counter whose hover panel lists them (as `TagInput` does with
28
+ * the same prop). Without it the tags wrap and the field grows.
29
+ * Ignored with `customMultiSelectTagsRenderer`, and on a mobile screen, where
30
+ * the hover panel is unavailable and the tags wrap instead.
31
+ */
32
+ collapseTagOverflow?: boolean;
25
33
  /**
26
34
  * How the chosen option is marked in single mode. The design tints the row
27
35
  * (`Tint`, the default); `Check` puts a trailing check on it instead, the
@@ -98,6 +106,7 @@ export interface SelectProps {
98
106
  * @param [searchPlaceholder] - Placeholder for the overlay search input.
99
107
  * @param [selectAll=false] - Show a "Select All" checkbox in multiple mode.
100
108
  * @param [selectAllLabel="Select all"] - Label for the "Select All" checkbox.
109
+ * @param [collapseTagOverflow=false] - Keep a multi-select's tags on one row, folding those that do not fit into a `+N` counter by the width available; the hover panel lists them and removes them.
101
110
  * @param [selectedOptionMark=MenuItemMark.Tint] - How the chosen option is marked in single mode.
102
111
  * @param [emptyStateTitle="No options available"] - Title text when there are no options.
103
112
  * @param [emptyStateDescription] - Description text when there are no options.
@@ -20,9 +20,10 @@ export declare const selectListWidthClassName = "!max-w-[var(--reference-width)]
20
20
  * 344px — not the panel around them, so the search row and Select All stay
21
21
  * put while the list moves under them. The panel keeps its own cap on the
22
22
  * available viewport height, which takes over on a screen too short for this
23
- * one.
23
+ * one. `py-1` matches the Dropdown menu's list inset, so the first and last
24
+ * rows (and their focus ring) do not sit flush against the panel edge.
24
25
  */
25
- export declare const selectOptionsScrollClassName = "max-h-[344px] overflow-y-auto";
26
+ export declare const selectOptionsScrollClassName: string;
26
27
  export declare const selectSubMenuGap = 4;
27
28
  export declare const selectSubMenuClassName: string;
28
29
  /** Marks an option that opens a nested list. Matches the dropdown's caret. */
@@ -0,0 +1,35 @@
1
+ import { FC, ReactNode } from 'react';
2
+ /** Props for `SharedEntityIndicator`. */
3
+ export interface SharedEntityIndicatorProps {
4
+ /** Accessible name of the badge. */
5
+ label?: string;
6
+ /** Tooltip shown while the badge is hovered. */
7
+ tooltip?: ReactNode;
8
+ /** Arrow size in px. */
9
+ size?: number;
10
+ /** Additional CSS classes for the badge, e.g. to position it over an icon. */
11
+ className?: string;
12
+ }
13
+ /**
14
+ * A small arrow badge marking an entity as shared.
15
+ * aliases: SharedIcon|AccessIndicator
16
+ * Design system 2.0
17
+ *
18
+ * A `role="img"` named by `label`, so it can stand on its own. Placed inside a
19
+ * larger `role="img"` — as `FileIcon` does — its name is folded into the
20
+ * parent's, which is why `FileIcon` names the shared state itself. The tooltip
21
+ * is a pointer-only hint: the badge is not focusable, and the tooltip never
22
+ * reaches assistive technology, so `label` is what carries the meaning.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <SharedEntityIndicator />
27
+ * <SharedEntityIndicator tooltip="Shared with 3 people" className="absolute -bottom-0.5 -left-0.5" />
28
+ * ```
29
+ *
30
+ * @param [label='Shared'] - Accessible name of the badge
31
+ * @param [tooltip='Shared'] - Tooltip shown while the badge is hovered
32
+ * @param [size=12] - Arrow size in px
33
+ * @param [className] - Additional CSS classes for the badge
34
+ */
35
+ export declare const SharedEntityIndicator: FC<SharedEntityIndicatorProps>;
@@ -0,0 +1,100 @@
1
+ import { CSSProperties, FC, ReactNode } from 'react';
2
+ /** Props for `SideDrawer`. */
3
+ export interface SideDrawerProps {
4
+ /** Whether the drawer is open. */
5
+ open: boolean;
6
+ /** Called when the drawer asks to close: the close button, Escape, or a press on the backdrop. */
7
+ onClose: () => void;
8
+ /** Header title. A string also names the dialog; a node needs `ariaLabel`. */
9
+ header?: ReactNode;
10
+ /** Accessible name of the drawer when `header` is not a string. */
11
+ ariaLabel?: string;
12
+ /** Controls placed in the header between the title and the close button. */
13
+ headerActions?: ReactNode;
14
+ /** Shows a back button at the start of the header when set. */
15
+ onBack?: () => void;
16
+ /** Accessible name of the back button. */
17
+ backAriaLabel?: string;
18
+ /** Whether the back button is disabled. */
19
+ backDisabled?: boolean;
20
+ /** Accessible name of the close button. */
21
+ closeAriaLabel?: string;
22
+ /** Whether the close button is disabled, e.g. while a submission is in flight. */
23
+ closeDisabled?: boolean;
24
+ /** Whether the header's close button is left out. */
25
+ hideClose?: boolean;
26
+ /** Whether a press on the backdrop closes the drawer. */
27
+ closeOnOutsideClick?: boolean;
28
+ /** Content of the drawer, scrolled when it is taller than the viewport. */
29
+ children?: ReactNode;
30
+ /** Additional CSS classes for the drawer panel, e.g. a different desktop width. */
31
+ className?: string;
32
+ /** Additional CSS classes for the backdrop. */
33
+ overlayClassName?: string;
34
+ /** Additional CSS classes for the header row. */
35
+ headerClassName?: string;
36
+ /**
37
+ * Inline style for the panel. It renders in a portal, so this is how custom
38
+ * properties reach the panel and its content.
39
+ */
40
+ style?: CSSProperties;
41
+ /** Inline style for the backdrop, merged after its own positioning. */
42
+ overlayStyle?: CSSProperties;
43
+ /** Additional CSS classes for the scrolling body. */
44
+ bodyClassName?: string;
45
+ /** Type-scale class for a string title, replacing its own. */
46
+ titleClassName?: string;
47
+ /** Id of the element to portal into, instead of the end of `<body>`. */
48
+ portalId?: string;
49
+ }
50
+ /**
51
+ * A full-height panel that slides in from the inline end over a dimmed page.
52
+ * aliases: Drawer|SidePanel|SideSheet|DetailsPanel
53
+ * Design system 2.0
54
+ *
55
+ * It is a modal dialog while open: focus moves to the panel and stays inside,
56
+ * returns to where it came from on close, and the page behind it does not
57
+ * scroll. Escape, the close button and a press on the backdrop all call
58
+ * `onClose`; the drawer stays controlled by `open`.
59
+ *
60
+ * The panel stays mounted while closed, so it can slide out as well as in and
61
+ * keep the state of whatever it holds. Closed, it is `inert` — out of both
62
+ * the tab order and the accessibility tree — and the backdrop lets pointer
63
+ * events through. On desktop the drawer is 540px wide with a rounded,
64
+ * bordered leading edge; on mobile it takes the full width. It slides from
65
+ * the end in either direction, and not at all under `prefers-reduced-motion`.
66
+ *
67
+ * The header follows `Popup`: an optional back button, the title,
68
+ * `headerActions`, and the close button. A string `header` renders an `<h2>`
69
+ * that names the dialog; for a node, pass `ariaLabel`.
70
+ *
71
+ * @example
72
+ * ```tsx
73
+ * <SideDrawer open={isOpen} header="Publish" onClose={() => setIsOpen(false)}>
74
+ * <PublishForm />
75
+ * </SideDrawer>
76
+ * ```
77
+ *
78
+ * @param open - Whether the drawer is open
79
+ * @param onClose - Called when the drawer asks to close
80
+ * @param [header] - Header title; a string also names the dialog
81
+ * @param [ariaLabel] - Accessible name when `header` is not a string
82
+ * @param [headerActions] - Controls between the title and the close button
83
+ * @param [onBack] - Shows a back button at the start of the header
84
+ * @param [backAriaLabel='Back'] - Accessible name of the back button
85
+ * @param [backDisabled=false] - Whether the back button is disabled
86
+ * @param [closeAriaLabel='Close'] - Accessible name of the close button
87
+ * @param [closeDisabled=false] - Whether the close button is disabled
88
+ * @param [hideClose=false] - Whether the close button is left out
89
+ * @param [closeOnOutsideClick=true] - Whether a press on the backdrop closes the drawer
90
+ * @param [children] - Content of the drawer
91
+ * @param [className] - Additional CSS classes for the drawer panel
92
+ * @param [overlayClassName] - Additional CSS classes for the backdrop
93
+ * @param [headerClassName] - Additional CSS classes for the header row
94
+ * @param [style] - Inline style for the panel, e.g. custom properties
95
+ * @param [overlayStyle] - Inline style for the backdrop
96
+ * @param [bodyClassName] - Additional CSS classes for the scrolling body
97
+ * @param [titleClassName] - Type-scale class for a string title
98
+ * @param [portalId] - Id of the element to portal into
99
+ */
100
+ export declare const SideDrawer: FC<SideDrawerProps>;