@salilvnair/dui 1.0.7 → 1.0.8

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 (152) hide show
  1. package/dist/assets/DuiShowcase-C18KoqHP.css +1 -0
  2. package/dist/assets/{DuiShowcase-CSkP-vdJ.js → DuiShowcase-DwihGCxO.js} +1377 -1359
  3. package/dist/assets/{index-DQdlwLhi.js → index-D9rPjVPP.js} +2 -2
  4. package/dist/chunks/{daakia-icons-BpwUOdSO.js → daakia-icons-DYLRx0Yi.js} +1096 -1053
  5. package/dist/chunks/daakia-icons-DYLRx0Yi.js.map +1 -0
  6. package/dist/chunks/doc-path-D2_JUEIe.js +695 -0
  7. package/dist/chunks/doc-path-D2_JUEIe.js.map +1 -0
  8. package/dist/icons/daakia-icons.d.ts +24 -0
  9. package/dist/index.html +1 -1
  10. package/dist/index.js +20939 -17293
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/components/button/AIButtonView.d.ts +10 -1
  13. package/dist/lib/components/button/ActionButtonView.d.ts +42 -0
  14. package/dist/lib/components/button/BookmarkButtonView.d.ts +10 -1
  15. package/dist/lib/components/button/FabView.d.ts +10 -1
  16. package/dist/lib/components/button/FollowButtonView.d.ts +10 -1
  17. package/dist/lib/components/button/HoldToConfirmView.d.ts +10 -1
  18. package/dist/lib/components/button/LikeButtonView.d.ts +10 -1
  19. package/dist/lib/components/button/MorphingIconButtonView.d.ts +10 -1
  20. package/dist/lib/components/button/SegmentedView.d.ts +10 -1
  21. package/dist/lib/components/button/ThemeToggleView.d.ts +10 -1
  22. package/dist/lib/components/button/VoteWidgetView.d.ts +10 -1
  23. package/dist/lib/components/chips/ChipView.d.ts +32 -1
  24. package/dist/lib/components/chips/CommandChipView.d.ts +10 -1
  25. package/dist/lib/components/display/BadgeChipView.d.ts +25 -0
  26. package/dist/lib/components/display/DonutView.d.ts +35 -0
  27. package/dist/lib/components/display/EmptyStateView.d.ts +33 -1
  28. package/dist/lib/components/display/FileBrowserView.d.ts +143 -0
  29. package/dist/lib/components/display/FileBrowserView.test.d.ts +1 -0
  30. package/dist/lib/components/display/FindingCardView.d.ts +36 -0
  31. package/dist/lib/components/display/FlameGraphView.d.ts +32 -0
  32. package/dist/lib/components/display/GroupHeaderView.d.ts +28 -0
  33. package/dist/lib/components/display/IssueCardSkeletonView.d.ts +28 -0
  34. package/dist/lib/components/display/IssueCardView.d.ts +40 -0
  35. package/dist/lib/components/display/LaneChartView.d.ts +46 -0
  36. package/dist/lib/components/display/LineDiffView.d.ts +25 -0
  37. package/dist/lib/components/display/PriorityMarkView.d.ts +20 -0
  38. package/dist/lib/components/display/SetupOptionView.d.ts +56 -0
  39. package/dist/lib/components/display/SunburstView.d.ts +32 -0
  40. package/dist/lib/components/display/SwimlaneChartView.d.ts +48 -0
  41. package/dist/lib/components/display/TableSkeletonView.d.ts +34 -0
  42. package/dist/lib/components/display/hierarchy-layout.d.ts +114 -0
  43. package/dist/lib/components/display/hierarchy-layout.test.d.ts +1 -0
  44. package/dist/lib/components/display/lane-scale.d.ts +67 -0
  45. package/dist/lib/components/display/lane-scale.test.d.ts +1 -0
  46. package/dist/lib/components/display/line-diff.d.ts +42 -0
  47. package/dist/lib/components/input/AvatarUploadView.d.ts +10 -1
  48. package/dist/lib/components/input/CalendarView.d.ts +10 -1
  49. package/dist/lib/components/input/CascaderView.d.ts +10 -1
  50. package/dist/lib/components/input/ChatInputView.d.ts +10 -1
  51. package/dist/lib/components/input/CheckboxView.d.ts +10 -1
  52. package/dist/lib/components/input/ChecklistView.d.ts +10 -1
  53. package/dist/lib/components/input/ColorPickerView.d.ts +10 -1
  54. package/dist/lib/components/input/ComboBoxView.d.ts +10 -1
  55. package/dist/lib/components/input/DateInputView.d.ts +10 -1
  56. package/dist/lib/components/input/DateRangePickerView.d.ts +10 -1
  57. package/dist/lib/components/input/DateTimeInputView.d.ts +10 -1
  58. package/dist/lib/components/input/DialKnobInputView.d.ts +10 -1
  59. package/dist/lib/components/input/DurationInputView.d.ts +10 -1
  60. package/dist/lib/components/input/EditorView.d.ts +8 -0
  61. package/dist/lib/components/input/EditorView.shell.d.ts +9 -1
  62. package/dist/lib/components/input/EmojiPickerView.d.ts +10 -1
  63. package/dist/lib/components/input/FeedbackWidgetView.d.ts +10 -1
  64. package/dist/lib/components/input/FileDropzoneView.d.ts +10 -1
  65. package/dist/lib/components/input/FilterInputView.d.ts +25 -0
  66. package/dist/lib/components/input/FloatingLabelInputView.d.ts +10 -1
  67. package/dist/lib/components/input/FormDataTableView.d.ts +10 -1
  68. package/dist/lib/components/input/GhostTypingPlaceholderView.d.ts +10 -1
  69. package/dist/lib/components/input/HiddenKeyValueItemView.d.ts +10 -1
  70. package/dist/lib/components/input/HighlightedInputView.d.ts +12 -1
  71. package/dist/lib/components/input/IconPickerView.d.ts +10 -1
  72. package/dist/lib/components/input/InlineEditTextView.d.ts +10 -1
  73. package/dist/lib/components/input/InviteInputView.d.ts +10 -1
  74. package/dist/lib/components/input/KeyValueTableRowView.d.ts +10 -1
  75. package/dist/lib/components/input/KeyValueTableView.d.ts +10 -1
  76. package/dist/lib/components/input/MarkdownEditorView.d.ts +30 -0
  77. package/dist/lib/components/input/MaskedInputView.d.ts +10 -1
  78. package/dist/lib/components/input/MentionInputView.d.ts +10 -1
  79. package/dist/lib/components/input/MergedInputView.d.ts +10 -1
  80. package/dist/lib/components/input/NpsSurveyView.d.ts +10 -1
  81. package/dist/lib/components/input/OtpInputView.d.ts +10 -1
  82. package/dist/lib/components/input/PhoneInputView.d.ts +10 -1
  83. package/dist/lib/components/input/PickerView.d.ts +10 -1
  84. package/dist/lib/components/input/PriorityPickerView.d.ts +10 -1
  85. package/dist/lib/components/input/RadioCardView.d.ts +10 -1
  86. package/dist/lib/components/input/RadioGroupView.d.ts +10 -1
  87. package/dist/lib/components/input/RangeSliderView.d.ts +10 -1
  88. package/dist/lib/components/input/RatingView.d.ts +10 -1
  89. package/dist/lib/components/input/RichTextToolbarView.d.ts +10 -1
  90. package/dist/lib/components/input/RoleSelectView.d.ts +10 -1
  91. package/dist/lib/components/input/SearchFieldView.d.ts +33 -0
  92. package/dist/lib/components/input/SegmentedControlView.d.ts +20 -1
  93. package/dist/lib/components/input/SelectInputView.d.ts +32 -1
  94. package/dist/lib/components/input/SelectTextInputView.d.ts +12 -1
  95. package/dist/lib/components/input/ShortcutRecorderView.d.ts +10 -1
  96. package/dist/lib/components/input/SliderView.d.ts +10 -1
  97. package/dist/lib/components/input/SpectrumSliderView.d.ts +10 -1
  98. package/dist/lib/components/input/StepperInputView.d.ts +10 -1
  99. package/dist/lib/components/input/SwatchPickerView.d.ts +38 -0
  100. package/dist/lib/components/input/SwitchGroupView.d.ts +10 -1
  101. package/dist/lib/components/input/TabView.d.ts +10 -1
  102. package/dist/lib/components/input/TagInputView.d.ts +10 -1
  103. package/dist/lib/components/input/TextInputView.d.ts +9 -0
  104. package/dist/lib/components/input/ThemeCardSelectorView.d.ts +10 -1
  105. package/dist/lib/components/input/TimeWheelView.d.ts +10 -1
  106. package/dist/lib/components/input/TimeZoneSelectView.d.ts +40 -0
  107. package/dist/lib/components/input/TimeZoneSelectView.test.d.ts +1 -0
  108. package/dist/lib/components/input/TogglePillView.d.ts +51 -0
  109. package/dist/lib/components/input/ToggleSwitchView.d.ts +10 -1
  110. package/dist/lib/components/input/TransferListView.d.ts +10 -1
  111. package/dist/lib/components/input/TreeSelectView.d.ts +10 -1
  112. package/dist/lib/components/input/WizardStepperView.d.ts +10 -1
  113. package/dist/lib/components/input/doc-path.d.ts +52 -0
  114. package/dist/lib/components/input/doc-path.test.d.ts +1 -0
  115. package/dist/lib/components/input/markdown-serialise.d.ts +23 -0
  116. package/dist/lib/components/input/select-position.test.d.ts +1 -0
  117. package/dist/lib/components/layout/PathBreadcrumbView.d.ts +67 -0
  118. package/dist/lib/components/layout/PathBreadcrumbView.test.d.ts +1 -0
  119. package/dist/lib/components/layout/SplitPanelView.d.ts +26 -1
  120. package/dist/lib/components/modal/ActionSheetView.d.ts +10 -1
  121. package/dist/lib/components/modal/AlertDialogView.d.ts +10 -1
  122. package/dist/lib/components/modal/BottomSheetView.d.ts +10 -1
  123. package/dist/lib/components/modal/CommandPaletteView.d.ts +10 -1
  124. package/dist/lib/components/modal/ContextMenuView.d.ts +19 -1
  125. package/dist/lib/components/modal/DrawerView.d.ts +10 -1
  126. package/dist/lib/components/modal/InfoPopupView.d.ts +13 -1
  127. package/dist/lib/components/modal/ModalView.d.ts +19 -3
  128. package/dist/lib/components/modal/NotificationCenterView.d.ts +10 -1
  129. package/dist/lib/components/modal/PopoverView.d.ts +10 -1
  130. package/dist/lib/components/modal/SheetView.d.ts +31 -0
  131. package/dist/lib/components/modal/SpotlightTourView.d.ts +10 -1
  132. package/dist/lib/components/modal/StackedToastDeckView.d.ts +10 -1
  133. package/dist/lib/components/modal/sheet-drag.d.ts +60 -0
  134. package/dist/lib/components/modal/sheet-drag.test.d.ts +1 -0
  135. package/dist/lib/components/tabs/PilledTabView.d.ts +10 -1
  136. package/dist/lib/components/tabs/TabBarView.d.ts +10 -1
  137. package/dist/lib/components/tabs/UnderlineTabsView.d.ts +41 -0
  138. package/dist/lib/components/testid.test.d.ts +1 -0
  139. package/dist/lib/core/IconSize.d.ts +37 -0
  140. package/dist/lib/core/TerminalPalette.d.ts +81 -0
  141. package/dist/lib/core/TerminalPaletteFile.d.ts +61 -0
  142. package/dist/lib/core/TerminalPaletteFile.test.d.ts +1 -0
  143. package/dist/lib/index.d.ts +65 -0
  144. package/dist/monaco-setup.js +589 -493
  145. package/dist/monaco-setup.js.map +1 -1
  146. package/dist/style.css +1 -1
  147. package/dist/theme/editor.js +1 -1
  148. package/package.json +5 -3
  149. package/dist/assets/DuiShowcase-CRLG9S4N.css +0 -1
  150. package/dist/chunks/EditorView.shell-DWGMOgiy.js +0 -510
  151. package/dist/chunks/EditorView.shell-DWGMOgiy.js.map +0 -1
  152. package/dist/chunks/daakia-icons-BpwUOdSO.js.map +0 -1
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiRadius } from '../../core/DuiTypes';
3
3
  export interface ChatInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: string;
5
14
  onChange: (value: string) => void;
6
15
  onSend: () => void;
@@ -14,4 +23,4 @@ export interface ChatInputViewProps {
14
23
  style?: CSSProperties;
15
24
  }
16
25
  /** Message composer — auto-growing textarea + attach + send. */
17
- export declare function ChatInputView({ value, onChange, onSend, onAttach, placeholder, disabled, size, borderRadius, color, className, style, }: ChatInputViewProps): import("react").JSX.Element;
26
+ export declare function ChatInputView({ testId, value, onChange, onSend, onAttach, placeholder, disabled, size, borderRadius, color, className, style, }: ChatInputViewProps): import("react").JSX.Element;
@@ -2,6 +2,15 @@ import { DuiSize } from '../../core/DuiTypes';
2
2
  /** @deprecated Use `DuiSize` directly. */
3
3
  export type CheckboxSize = DuiSize;
4
4
  export interface CheckboxViewProps {
5
+ /**
6
+ * A stable hook for tests and automation.
7
+ *
8
+ * Lands on this component's root element as `data-testid`. Worth setting on
9
+ * anything a test drives: several dui inputs render a `contenteditable` div
10
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
11
+ * `getByRole` reliably finds.
12
+ */
13
+ testId?: string;
5
14
  checked: boolean;
6
15
  onChange?: (checked: boolean) => void;
7
16
  disabled?: boolean;
@@ -12,4 +21,4 @@ export interface CheckboxViewProps {
12
21
  label?: string;
13
22
  className?: string;
14
23
  }
15
- export declare function CheckboxView({ checked, onChange, disabled, indeterminate, size, accentColor, label, className, }: CheckboxViewProps): import("react").JSX.Element;
24
+ export declare function CheckboxView({ testId, checked, onChange, disabled, indeterminate, size, accentColor, label, className, }: CheckboxViewProps): import("react").JSX.Element;
@@ -6,6 +6,15 @@ export interface ChecklistItem {
6
6
  checked: boolean;
7
7
  }
8
8
  export interface ChecklistViewProps {
9
+ /**
10
+ * A stable hook for tests and automation.
11
+ *
12
+ * Lands on this component's root element as `data-testid`. Worth setting on
13
+ * anything a test drives: several dui inputs render a `contenteditable` div
14
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
15
+ * `getByRole` reliably finds.
16
+ */
17
+ testId?: string;
9
18
  items: ChecklistItem[];
10
19
  onToggle: (id: string) => void;
11
20
  size?: DuiSize;
@@ -14,4 +23,4 @@ export interface ChecklistViewProps {
14
23
  style?: CSSProperties;
15
24
  }
16
25
  /** Todo-style checklist — strikethrough + faded once complete. */
17
- export declare function ChecklistView({ items, onToggle, size, accentColor, className, style, }: ChecklistViewProps): import("react").JSX.Element;
26
+ export declare function ChecklistView({ testId, items, onToggle, size, accentColor, className, style, }: ChecklistViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiRadius, DuiWidth } from '../../core/DuiTypes';
3
3
  export interface ColorPickerViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: string;
5
14
  onChange: (value: string) => void;
6
15
  swatches?: string[];
@@ -11,4 +20,4 @@ export interface ColorPickerViewProps {
11
20
  className?: string;
12
21
  style?: CSSProperties;
13
22
  }
14
- export declare function ColorPickerView({ value, onChange, swatches, disabled, size, width, borderRadius, className, style, }: ColorPickerViewProps): import("react").JSX.Element;
23
+ export declare function ColorPickerView({ testId, value, onChange, swatches, disabled, size, width, borderRadius, className, style, }: ColorPickerViewProps): import("react").JSX.Element;
@@ -5,6 +5,15 @@ export interface ComboBoxOption {
5
5
  label: string;
6
6
  }
7
7
  export interface ComboBoxViewProps {
8
+ /**
9
+ * A stable hook for tests and automation.
10
+ *
11
+ * Lands on this component's root element as `data-testid`. Worth setting on
12
+ * anything a test drives: several dui inputs render a `contenteditable` div
13
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
14
+ * `getByRole` reliably finds.
15
+ */
16
+ testId?: string;
8
17
  options: ComboBoxOption[];
9
18
  value: string;
10
19
  onChange: (value: string) => void;
@@ -20,4 +29,4 @@ export interface ComboBoxViewProps {
20
29
  style?: CSSProperties;
21
30
  }
22
31
  /** Free-text input with a filtered dropdown of matching suggestions — autocomplete pattern. */
23
- export declare function ComboBoxView({ options, value, onChange, placeholder, disabled, freeSolo, size, width, borderRadius, color, className, style, }: ComboBoxViewProps): import("react").JSX.Element;
32
+ export declare function ComboBoxView({ testId, options, value, onChange, placeholder, disabled, freeSolo, size, width, borderRadius, color, className, style, }: ComboBoxViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { DuiSize, DuiRadius, DuiWidth } from '../../core/DuiTypes';
2
2
  import { IsoDate } from './CalendarView';
3
3
  export interface DateInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: IsoDate | null;
5
14
  onChange: (value: IsoDate) => void;
6
15
  placeholder?: string;
@@ -14,4 +23,4 @@ export interface DateInputViewProps {
14
23
  className?: string;
15
24
  style?: React.CSSProperties;
16
25
  }
17
- export declare function DateInputView({ value, onChange, placeholder, minDate, maxDate, size, width, borderRadius, color, disabled, className, style, }: DateInputViewProps): import("react").JSX.Element;
26
+ export declare function DateInputView({ testId, value, onChange, placeholder, minDate, maxDate, size, width, borderRadius, color, disabled, className, style, }: DateInputViewProps): import("react").JSX.Element;
@@ -7,6 +7,15 @@ export interface DateRangePreset {
7
7
  /** `panel` (default) = presets sidebar beside the calendar, one bordered box. `single` = one unified box, presets as a chip row above the calendar. */
8
8
  export type DateRangePickerVariant = 'panel' | 'single';
9
9
  export interface DateRangePickerViewProps {
10
+ /**
11
+ * A stable hook for tests and automation.
12
+ *
13
+ * Lands on this component's root element as `data-testid`. Worth setting on
14
+ * anything a test drives: several dui inputs render a `contenteditable` div
15
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
16
+ * `getByRole` reliably finds.
17
+ */
18
+ testId?: string;
10
19
  value: [IsoDate | null, IsoDate | null];
11
20
  onChange: (value: [IsoDate | null, IsoDate | null]) => void;
12
21
  presets?: DateRangePreset[];
@@ -23,4 +32,4 @@ export interface DateRangePickerViewProps {
23
32
  style?: React.CSSProperties;
24
33
  }
25
34
  export declare const DEFAULT_DATE_RANGE_PRESETS: DateRangePreset[];
26
- export declare function DateRangePickerView({ value, onChange, presets, variant, rangeStyle, minDate, maxDate, size, width, borderRadius, color, className, style, }: DateRangePickerViewProps): import("react").JSX.Element;
35
+ export declare function DateRangePickerView({ testId, value, onChange, presets, variant, rangeStyle, minDate, maxDate, size, width, borderRadius, color, className, style, }: DateRangePickerViewProps): import("react").JSX.Element;
@@ -4,6 +4,15 @@ import { IsoDate } from './CalendarView';
4
4
  * `<input type="datetime-local">` produces, so it's a drop-in replacement. */
5
5
  export type IsoDateTime = string;
6
6
  export interface DateTimeInputViewProps {
7
+ /**
8
+ * A stable hook for tests and automation.
9
+ *
10
+ * Lands on this component's root element as `data-testid`. Worth setting on
11
+ * anything a test drives: several dui inputs render a `contenteditable` div
12
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
13
+ * `getByRole` reliably finds.
14
+ */
15
+ testId?: string;
7
16
  value: IsoDateTime | null;
8
17
  onChange: (value: IsoDateTime) => void;
9
18
  placeholder?: string;
@@ -27,4 +36,4 @@ export interface DateTimeInputViewProps {
27
36
  * wheels) side by side in one popover — same trigger-button + portal pattern
28
37
  * as `DateInputView`, just with a second pane.
29
38
  */
30
- export declare function DateTimeInputView({ value, onChange, placeholder, minDate, maxDate, use24Hour, minuteStep, size, width, borderRadius, color, disabled, className, style, }: DateTimeInputViewProps): import("react").JSX.Element;
39
+ export declare function DateTimeInputView({ testId, value, onChange, placeholder, minDate, maxDate, use24Hour, minuteStep, size, width, borderRadius, color, disabled, className, style, }: DateTimeInputViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize } from '../../core/DuiTypes';
3
3
  export interface DialKnobInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: number;
5
14
  min?: number;
6
15
  max?: number;
@@ -14,4 +23,4 @@ export interface DialKnobInputViewProps {
14
23
  style?: CSSProperties;
15
24
  }
16
25
  /** Rotary analog knob (drag in a circle) with snap-ticks and a haptic-style micro-bounce at each notch. */
17
- export declare function DialKnobInputView({ value, min, max, ticks, onChange, label, size, color, className, style, }: DialKnobInputViewProps): import("react").JSX.Element;
26
+ export declare function DialKnobInputView({ testId, value, min, max, ticks, onChange, label, size, color, className, style, }: DialKnobInputViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { DuiSize } from '../../core/DuiTypes';
2
2
  export type DurationUnit = 'ms' | 's' | 'm' | 'hr';
3
3
  export interface DurationInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  /** Current value in milliseconds */
5
14
  value: number;
6
15
  /** Called with new value in milliseconds */
@@ -12,4 +21,4 @@ export interface DurationInputViewProps {
12
21
  width?: number;
13
22
  className?: string;
14
23
  }
15
- export declare function DurationInputView({ value, onChange, placeholder, size, width, className, }: DurationInputViewProps): import("react").JSX.Element;
24
+ export declare function DurationInputView({ testId, value, onChange, placeholder, size, width, className, }: DurationInputViewProps): import("react").JSX.Element;
@@ -113,6 +113,14 @@ export interface EditorOptions {
113
113
  cursorBlinking?: EditorCursorBlinking;
114
114
  tabSize?: number;
115
115
  wordWrap?: EditorWordWrap;
116
+ /**
117
+ * Close brackets, quotes and XML tags as you type. Default `true`.
118
+ *
119
+ * Set `false` when something other than a person is typing — a test, a
120
+ * recorder, anything replaying keystrokes — so that a typed `}` lands as a
121
+ * `}` rather than on top of one the editor has already put there.
122
+ */
123
+ autoClosing?: boolean;
116
124
  formatOnPaste?: boolean;
117
125
  formatOnType?: boolean;
118
126
  autoIndent?: EditorAutoIndent;
@@ -3,11 +3,19 @@ import { ContextMenuItem } from '../modal/ContextMenuView';
3
3
  * Shared render shell for both the Monaco-backed and fallback editor
4
4
  * implementations — pure DUI chrome, no editor-engine dependency either way.
5
5
  */
6
- export declare function EditorShell({ bordered, containerHeight, children, contextMenuMode, contextMenuItems, accentColor, }: {
6
+ export declare function EditorShell({ bordered, containerHeight, children, contextMenuMode, contextMenuItems, itemsAt, accentColor, }: {
7
7
  bordered: boolean;
8
8
  containerHeight: string;
9
9
  children: React.ReactNode;
10
10
  contextMenuMode?: 'native' | 'dui' | 'none';
11
11
  contextMenuItems?: ContextMenuItem[];
12
+ /**
13
+ * Items that depend on where the click landed, asked for at right-click.
14
+ *
15
+ * A path menu cannot be built ahead of time: which key or tag you are on is
16
+ * the whole question, and it is only answered by the coordinates of the
17
+ * click. Static `contextMenuItems` follow whatever this returns.
18
+ */
19
+ itemsAt?: (x: number, y: number) => ContextMenuItem[];
12
20
  accentColor?: string;
13
21
  }): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiRadius, DuiWidth } from '../../core/DuiTypes';
3
3
  export interface EmojiPickerViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: string | null;
5
14
  onChange: (emoji: string) => void;
6
15
  disabled?: boolean;
@@ -11,4 +20,4 @@ export interface EmojiPickerViewProps {
11
20
  className?: string;
12
21
  style?: CSSProperties;
13
22
  }
14
- export declare function EmojiPickerView({ value, onChange, disabled, size, width, borderRadius, color, className, style, }: EmojiPickerViewProps): import("react").JSX.Element;
23
+ export declare function EmojiPickerView({ testId, value, onChange, disabled, size, width, borderRadius, color, className, style, }: EmojiPickerViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize } from '../../core/DuiTypes';
3
3
  export interface FeedbackWidgetViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  question?: string;
5
14
  vote: 'up' | 'down' | null;
6
15
  onVote: (vote: 'up' | 'down') => void;
@@ -13,4 +22,4 @@ export interface FeedbackWidgetViewProps {
13
22
  style?: CSSProperties;
14
23
  }
15
24
  /** Thumbs up/down + optional comment micro-survey. */
16
- export declare function FeedbackWidgetView({ question, vote, onVote, comment, onCommentChange, onSubmit, size, color, className, style, }: FeedbackWidgetViewProps): import("react").JSX.Element;
25
+ export declare function FeedbackWidgetView({ testId, question, vote, onVote, comment, onCommentChange, onSubmit, size, color, className, style, }: FeedbackWidgetViewProps): import("react").JSX.Element;
@@ -7,6 +7,15 @@ export interface FileDropzoneEntry {
7
7
  error?: string;
8
8
  }
9
9
  export interface FileDropzoneViewProps {
10
+ /**
11
+ * A stable hook for tests and automation.
12
+ *
13
+ * Lands on this component's root element as `data-testid`. Worth setting on
14
+ * anything a test drives: several dui inputs render a `contenteditable` div
15
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
16
+ * `getByRole` reliably finds.
17
+ */
18
+ testId?: string;
10
19
  files: FileDropzoneEntry[];
11
20
  onFilesAdded: (files: File[]) => void;
12
21
  onRemove: (index: number) => void;
@@ -20,4 +29,4 @@ export interface FileDropzoneViewProps {
20
29
  className?: string;
21
30
  style?: CSSProperties;
22
31
  }
23
- export declare function FileDropzoneView({ files, onFilesAdded, onRemove, accept, multiple, disabled, size, width, borderRadius, color, className, style, }: FileDropzoneViewProps): import("react").JSX.Element;
32
+ export declare function FileDropzoneView({ testId, files, onFilesAdded, onRemove, accept, multiple, disabled, size, width, borderRadius, color, className, style, }: FileDropzoneViewProps): import("react").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ import { DuiSize } from '../../core/DuiTypes';
3
+ export interface FilterInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
13
+ value: string;
14
+ onChange: (value: string) => void;
15
+ placeholder?: string;
16
+ size?: DuiSize;
17
+ width?: string | number;
18
+ /** Colour the icon takes once the filter is doing something. */
19
+ accentColor?: string;
20
+ /** Replaces the clear button, for a caller that needs its own control. */
21
+ suffix?: ReactNode;
22
+ onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
23
+ autoFocus?: boolean;
24
+ }
25
+ export declare function FilterInputView({ testId, value, onChange, placeholder, size, width, accentColor, suffix, onKeyDown, autoFocus, }: FilterInputViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiWidth, DuiRadius } from '../../core/DuiTypes';
3
3
  export interface FloatingLabelInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  label: string;
5
14
  value: string;
6
15
  onChange: (value: string) => void;
@@ -14,4 +23,4 @@ export interface FloatingLabelInputViewProps {
14
23
  style?: CSSProperties;
15
24
  }
16
25
  /** Floating-label input, distinct from TextInputView's static placeholder. */
17
- export declare function FloatingLabelInputView({ label, value, onChange, type, disabled, size, width, borderRadius, color, className, style, }: FloatingLabelInputViewProps): import("react").JSX.Element;
26
+ export declare function FloatingLabelInputView({ testId, label, value, onChange, type, disabled, size, width, borderRadius, color, className, style, }: FloatingLabelInputViewProps): import("react").JSX.Element;
@@ -9,6 +9,15 @@ export interface FormDataRow {
9
9
  fileMimeTypes?: string[];
10
10
  }
11
11
  export interface FormDataTableViewProps {
12
+ /**
13
+ * A stable hook for tests and automation.
14
+ *
15
+ * Lands on this component's root element as `data-testid`. Worth setting on
16
+ * anything a test drives: several dui inputs render a `contenteditable` div
17
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
18
+ * `getByRole` reliably finds.
19
+ */
20
+ testId?: string;
12
21
  rows: FormDataRow[];
13
22
  onChange: (rows: FormDataRow[]) => void;
14
23
  /** Called when a file row's picker resolves. Pass undefined to handle file reads externally. */
@@ -19,4 +28,4 @@ export interface FormDataTableViewProps {
19
28
  className?: string;
20
29
  style?: React.CSSProperties;
21
30
  }
22
- export declare function FormDataTableView({ rows, onChange, onFileSelect, accentColor, label, hideToolbar, className, style, }: FormDataTableViewProps): import("react").JSX.Element;
31
+ export declare function FormDataTableView({ testId, rows, onChange, onFileSelect, accentColor, label, hideToolbar, className, style, }: FormDataTableViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiWidth, DuiRadius } from '../../core/DuiTypes';
3
3
  export interface GhostTypingPlaceholderViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: string;
5
14
  onChange: (value: string) => void;
6
15
  /** Rotating example queries typed/backspaced into the placeholder slot. */
@@ -16,4 +25,4 @@ export interface GhostTypingPlaceholderViewProps {
16
25
  style?: CSSProperties;
17
26
  }
18
27
  /** An input placeholder that types out rotating example queries, pauses, then backspaces into the next one. */
19
- export declare function GhostTypingPlaceholderView({ value, onChange, examples, speed, pause, size, width, borderRadius, color, className, style, }: GhostTypingPlaceholderViewProps): import("react").JSX.Element;
28
+ export declare function GhostTypingPlaceholderView({ testId, value, onChange, examples, speed, pause, size, width, borderRadius, color, className, style, }: GhostTypingPlaceholderViewProps): import("react").JSX.Element;
@@ -1,4 +1,13 @@
1
1
  export interface HiddenKeyValueItemViewProps {
2
+ /**
3
+ * A stable hook for tests and automation.
4
+ *
5
+ * Lands on this component's root element as `data-testid`. Worth setting on
6
+ * anything a test drives: several dui inputs render a `contenteditable` div
7
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
8
+ * `getByRole` reliably finds.
9
+ */
10
+ testId?: string;
2
11
  keyValue: string;
3
12
  value: string;
4
13
  /** Small colored pill badge on the key — e.g. "auth", "cookie" */
@@ -19,4 +28,4 @@ export interface HiddenKeyValueItemViewProps {
19
28
  * Ditto the lock-icon + dashed-border pattern from ComputedHeaderList —
20
29
  * "Hidden" describes system-managed/locked fields; Daakia's visual style is kept.
21
30
  */
22
- export declare function HiddenKeyValueItemView({ keyValue, value, badge, badgeColor, icon, masked, onDelete, deleteTitle, showDescription, className, }: HiddenKeyValueItemViewProps): import("react").JSX.Element;
31
+ export declare function HiddenKeyValueItemView({ testId, keyValue, value, badge, badgeColor, icon, masked, onDelete, deleteTitle, showDescription, className, }: HiddenKeyValueItemViewProps): import("react").JSX.Element;
@@ -4,6 +4,17 @@ export interface MockServerSuggestion {
4
4
  name: string;
5
5
  }
6
6
  export interface HighlightedInputViewProps {
7
+ /**
8
+ * A stable hook for tests and the demo recorder.
9
+ *
10
+ * Lands on the element somebody actually types into — which, for this
11
+ * component, is a `contenteditable` div whose placeholder is a decorative
12
+ * `<span>`. Playwright's `getByPlaceholder` therefore never finds it, and a
13
+ * recorder that assumed it would spent a whole take typing into nothing.
14
+ * Give it a `testId` and it can be addressed by contract instead of by
15
+ * guessing at dui's internals.
16
+ */
17
+ testId?: string;
7
18
  value: string;
8
19
  onChange: (value: string) => void;
9
20
  onKeyDown?: (e: React.KeyboardEvent) => void;
@@ -23,4 +34,4 @@ export interface HighlightedInputViewProps {
23
34
  style?: React.CSSProperties;
24
35
  className?: string;
25
36
  }
26
- export declare function HighlightedInputView({ value, onChange, onKeyDown, onBlur, placeholder, suggestions, mockServers, disabled, accentColor, size, height, borderRadius, style, className, }: HighlightedInputViewProps): import("react").JSX.Element;
37
+ export declare function HighlightedInputView({ testId, value, onChange, onKeyDown, onBlur, placeholder, suggestions, mockServers, disabled, accentColor, size, height, borderRadius, style, className, }: HighlightedInputViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiRadius, DuiWidth } from '../../core/DuiTypes';
3
3
  export interface IconPickerViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  value: string | null;
5
14
  onChange: (iconName: string) => void;
6
15
  disabled?: boolean;
@@ -11,4 +20,4 @@ export interface IconPickerViewProps {
11
20
  className?: string;
12
21
  style?: CSSProperties;
13
22
  }
14
- export declare function IconPickerView({ value, onChange, disabled, size, width, borderRadius, color, className, style, }: IconPickerViewProps): import("react").JSX.Element;
23
+ export declare function IconPickerView({ testId, value, onChange, disabled, size, width, borderRadius, color, className, style, }: IconPickerViewProps): import("react").JSX.Element;
@@ -1,5 +1,14 @@
1
1
  import { CSSProperties } from 'react';
2
2
  export interface InlineEditTextViewProps {
3
+ /**
4
+ * A stable hook for tests and automation.
5
+ *
6
+ * Lands on this component's root element as `data-testid`. Worth setting on
7
+ * anything a test drives: several dui inputs render a `contenteditable` div
8
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
9
+ * `getByRole` reliably finds.
10
+ */
11
+ testId?: string;
3
12
  /** Current committed value. */
4
13
  value: string;
5
14
  /** Shown (dimmed by the consumer's CSS) when value is empty, and as the edit box placeholder. */
@@ -27,4 +36,4 @@ export interface InlineEditTextViewProps {
27
36
  *
28
37
  * Enter saves (Shift+Enter = newline when multiline), Escape cancels, blur saves.
29
38
  */
30
- export declare function InlineEditTextView({ value, placeholder, onSave, multiline, disabled, className, accentColor, tooltip, style, }: InlineEditTextViewProps): import("react").JSX.Element;
39
+ export declare function InlineEditTextView({ testId, value, placeholder, onSave, multiline, disabled, className, accentColor, tooltip, style, }: InlineEditTextViewProps): import("react").JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { DuiSize, DuiRadius } from '../../core/DuiTypes';
3
3
  export interface InviteInputViewProps {
4
+ /**
5
+ * A stable hook for tests and automation.
6
+ *
7
+ * Lands on this component's root element as `data-testid`. Worth setting on
8
+ * anything a test drives: several dui inputs render a `contenteditable` div
9
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
10
+ * `getByRole` reliably finds.
11
+ */
12
+ testId?: string;
4
13
  emails: string[];
5
14
  onChange: (emails: string[]) => void;
6
15
  placeholder?: string;
@@ -12,4 +21,4 @@ export interface InviteInputViewProps {
12
21
  style?: CSSProperties;
13
22
  }
14
23
  /** Email-chip input specialized for multi-invite forms — validates each entry before adding. */
15
- export declare function InviteInputView({ emails, onChange, placeholder, disabled, size, borderRadius, color, className, style, }: InviteInputViewProps): import("react").JSX.Element;
24
+ export declare function InviteInputView({ testId, emails, onChange, placeholder, disabled, size, borderRadius, color, className, style, }: InviteInputViewProps): import("react").JSX.Element;
@@ -1,5 +1,14 @@
1
1
  import { DuiSize } from '../../core/DuiTypes';
2
2
  export interface KeyValueTableRowViewProps {
3
+ /**
4
+ * A stable hook for tests and automation.
5
+ *
6
+ * Lands on this component's root element as `data-testid`. Worth setting on
7
+ * anything a test drives: several dui inputs render a `contenteditable` div
8
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
9
+ * `getByRole` reliably finds.
10
+ */
11
+ testId?: string;
3
12
  rowKey: string;
4
13
  value: string;
5
14
  description?: string;
@@ -28,4 +37,4 @@ export interface KeyValueTableRowViewProps {
28
37
  onEnabledChange?: (enabled: boolean) => void;
29
38
  onRemove?: () => void;
30
39
  }
31
- export declare function KeyValueTableRowView({ rowKey, value, description, enabled, readOnly, masked, maskSensitive, deletable, showDescription, placeholder, autocompleteKeys, size, onKeyChange, onValueChange, onDescriptionChange, onEnabledChange, onRemove, }: KeyValueTableRowViewProps): import("react").JSX.Element;
40
+ export declare function KeyValueTableRowView({ testId, rowKey, value, description, enabled, readOnly, masked, maskSensitive, deletable, showDescription, placeholder, autocompleteKeys, size, onKeyChange, onValueChange, onDescriptionChange, onEnabledChange, onRemove, }: KeyValueTableRowViewProps): import("react").JSX.Element;
@@ -24,6 +24,15 @@ export interface PinnedKeyValueRow {
24
24
  masked?: boolean;
25
25
  }
26
26
  export interface KeyValueTableViewProps {
27
+ /**
28
+ * A stable hook for tests and automation.
29
+ *
30
+ * Lands on this component's root element as `data-testid`. Worth setting on
31
+ * anything a test drives: several dui inputs render a `contenteditable` div
32
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
33
+ * `getByRole` reliably finds.
34
+ */
35
+ testId?: string;
27
36
  rows: KeyValueTableRow[];
28
37
  onChange: (rows: KeyValueTableRow[]) => void;
29
38
  showDescription?: boolean;
@@ -56,4 +65,4 @@ export interface KeyValueTableViewProps {
56
65
  /** Called when a deletable pinned row is removed */
57
66
  onPinnedRemove?: (id: string) => void;
58
67
  }
59
- export declare function KeyValueTableView({ rows, onChange, showDescription, placeholder, className, autocompleteKeys, maskSensitive, hideToolbar, label, accentColor, toolbarExtra, size, bordered, pinnedTopRows, onPinnedRemove, }: KeyValueTableViewProps): import("react").JSX.Element;
68
+ export declare function KeyValueTableView({ testId, rows, onChange, showDescription, placeholder, className, autocompleteKeys, maskSensitive, hideToolbar, label, accentColor, toolbarExtra, size, bordered, pinnedTopRows, onPinnedRemove, }: KeyValueTableViewProps): import("react").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { CSSProperties } from 'react';
2
+ import { DuiSize } from '../../core/DuiTypes';
3
+ export type MarkdownEditorMode = 'rich' | 'markdown';
4
+ export interface MarkdownEditorViewProps {
5
+ /**
6
+ * A stable hook for tests and automation.
7
+ *
8
+ * Lands on this component's root element as `data-testid`. Worth setting on
9
+ * anything a test drives: several dui inputs render a `contenteditable` div
10
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
11
+ * `getByRole` reliably finds.
12
+ */
13
+ testId?: string;
14
+ value: string;
15
+ onChange: (markdown: string) => void;
16
+ /** Controlled view. Left uncontrolled, the editor keeps its own. */
17
+ mode?: MarkdownEditorMode;
18
+ onModeChange?: (mode: MarkdownEditorMode) => void;
19
+ placeholder?: string;
20
+ /** Hides the Rich Text / Markdown switch when the caller draws its own. */
21
+ showModeToggle?: boolean;
22
+ /** Extra controls in the toolbar's right-hand end — a Save button, say. */
23
+ toolbarRight?: React.ReactNode;
24
+ readOnly?: boolean;
25
+ size?: DuiSize;
26
+ accentColor?: string;
27
+ className?: string;
28
+ style?: CSSProperties;
29
+ }
30
+ export declare function MarkdownEditorView({ testId, value, onChange, mode: modeProp, onModeChange, placeholder, showModeToggle, toolbarRight, readOnly, size, accentColor, className, style, }: MarkdownEditorViewProps): import("react").JSX.Element;
@@ -5,6 +5,15 @@ import { DuiSize, DuiRadius, DuiWidth } from '../../core/DuiTypes';
5
5
  * Any other character in the mask is a literal separator, auto-inserted.
6
6
  */
7
7
  export interface MaskedInputViewProps {
8
+ /**
9
+ * A stable hook for tests and automation.
10
+ *
11
+ * Lands on this component's root element as `data-testid`. Worth setting on
12
+ * anything a test drives: several dui inputs render a `contenteditable` div
13
+ * with a decorative placeholder span, which neither `getByPlaceholder` nor
14
+ * `getByRole` reliably finds.
15
+ */
16
+ testId?: string;
8
17
  value: string;
9
18
  onChange: (value: string) => void;
10
19
  mask: string;
@@ -18,4 +27,4 @@ export interface MaskedInputViewProps {
18
27
  style?: CSSProperties;
19
28
  }
20
29
  export declare function applyMask(mask: string, raw: string): string;
21
- export declare function MaskedInputView({ value, onChange, mask, placeholder, disabled, size, width, borderRadius, color, className, style, }: MaskedInputViewProps): import("react").JSX.Element;
30
+ export declare function MaskedInputView({ testId, value, onChange, mask, placeholder, disabled, size, width, borderRadius, color, className, style, }: MaskedInputViewProps): import("react").JSX.Element;