@servicetitan/anvil2 3.9.0 → 3.10.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 (168) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/Combobox.js +1 -1
  3. package/dist/{DataTable-CRzQKN_P.js → DataTable-D-SKKt5w.js} +53 -16
  4. package/dist/DataTable-D-SKKt5w.js.map +1 -0
  5. package/dist/{DateFieldRange-CHbrYgsD.js → DateFieldRange-DUFfyknZ.js} +51 -31
  6. package/dist/DateFieldRange-DUFfyknZ.js.map +1 -0
  7. package/dist/DateFieldRange.js +1 -1
  8. package/dist/{DateFieldSingle-D-KZ3NL0.js → DateFieldSingle-BZjlO0hX.js} +49 -28
  9. package/dist/DateFieldSingle-BZjlO0hX.js.map +1 -0
  10. package/dist/DateFieldSingle.js +1 -1
  11. package/dist/{DateFieldYearless-DouEX24o.js → DateFieldYearless-TcKb9jE2.js} +4 -2
  12. package/dist/DateFieldYearless-TcKb9jE2.js.map +1 -0
  13. package/dist/DateFieldYearless.js +1 -1
  14. package/dist/{DateFieldYearlessRange-B_bImgyn.js → DateFieldYearlessRange-D9XtRNWi.js} +16 -4
  15. package/dist/DateFieldYearlessRange-D9XtRNWi.js.map +1 -0
  16. package/dist/DateFieldYearlessRange.js +1 -1
  17. package/dist/DrillDown.js +1 -1
  18. package/dist/{FilterBar-CBTAkEri.js → FilterBar-luqnJzAK.js} +27 -6
  19. package/dist/FilterBar-luqnJzAK.js.map +1 -0
  20. package/dist/FilterBar.js +1 -1
  21. package/dist/{MenuFooter-BXcNxNnX.js → MenuFooter--lBF8OjJ.js} +5 -1
  22. package/dist/MenuFooter--lBF8OjJ.js.map +1 -0
  23. package/dist/MultiSelectField.js +1 -1
  24. package/dist/{MultiSelectFieldSync-CpfsWecG.js → MultiSelectFieldSync-HhFKGtQM.js} +60 -15
  25. package/dist/MultiSelectFieldSync-HhFKGtQM.js.map +1 -0
  26. package/dist/MultiSelectMenu.js +1 -1
  27. package/dist/{MultiSelectMenuSync-CtyLYyDE.js → MultiSelectMenuSync-C3Y7jnJQ.js} +22 -8
  28. package/dist/MultiSelectMenuSync-C3Y7jnJQ.js.map +1 -0
  29. package/dist/{Page-B6E3Gbji.js → Page-Pk0-Sxf_.js} +11 -10
  30. package/dist/Page-Pk0-Sxf_.js.map +1 -0
  31. package/dist/Page.js +1 -1
  32. package/dist/{Pagination-DF7iMeJe.js → Pagination-Bx_u6Uea.js} +32 -6
  33. package/dist/Pagination-Bx_u6Uea.js.map +1 -0
  34. package/dist/Pagination.js +1 -1
  35. package/dist/{RichTextEditor-CLo8yoUP.js → RichTextEditor-CTIGe6xA.js} +3 -3
  36. package/dist/{RichTextEditor-CLo8yoUP.js.map → RichTextEditor-CTIGe6xA.js.map} +1 -1
  37. package/dist/RichTextEditor.js +1 -1
  38. package/dist/{SavedFiltersButton-FcYVncxU.js → SavedFiltersButton-CpnoAIrw.js} +250 -164
  39. package/dist/SavedFiltersButton-CpnoAIrw.js.map +1 -0
  40. package/dist/SavedFiltersButton.js +1 -1
  41. package/dist/SelectField.js +1 -1
  42. package/dist/{SelectFieldSync-Bi8HsMYP.js → SelectFieldSync-Dyug8Fgk.js} +35 -7
  43. package/dist/SelectFieldSync-Dyug8Fgk.js.map +1 -0
  44. package/dist/SelectMenu.js +1 -1
  45. package/dist/{SelectMenuSync-DKg4g5nN.js → SelectMenuSync-BkC0FD5P.js} +22 -8
  46. package/dist/SelectMenuSync-BkC0FD5P.js.map +1 -0
  47. package/dist/{SelectOptions-DszNAjxB.js → SelectOptions-B3Vmtb_k.js} +2 -2
  48. package/dist/{SelectOptions-DszNAjxB.js.map → SelectOptions-B3Vmtb_k.js.map} +1 -1
  49. package/dist/{SelectTrigger-DNIc5ttg.js → SelectTrigger-Do1puyA_.js} +2 -2
  50. package/dist/{SelectTrigger-DNIc5ttg.js.map → SelectTrigger-Do1puyA_.js.map} +1 -1
  51. package/dist/SelectTrigger.js +1 -1
  52. package/dist/{SelectTriggerBase-1Cc6EUBw.js → SelectTriggerBase-rxHXMSb4.js} +3 -1
  53. package/dist/SelectTriggerBase-rxHXMSb4.js.map +1 -0
  54. package/dist/Table.js +1 -1
  55. package/dist/{Toolbar-2VQIjU5b.js → Toolbar-BOgHhw7K.js} +12 -3
  56. package/dist/Toolbar-BOgHhw7K.js.map +1 -0
  57. package/dist/{Toolbar-BbImThIu.js → Toolbar-DDWUuQm_.js} +24 -2
  58. package/dist/Toolbar-DDWUuQm_.js.map +1 -0
  59. package/dist/Toolbar.js +2 -2
  60. package/dist/{ToolbarButtonToggle-Bc0XvCM9.js → ToolbarButtonToggle-BbtKfezH.js} +18 -2
  61. package/dist/ToolbarButtonToggle-BbtKfezH.js.map +1 -0
  62. package/dist/TreeSelectField.js +1 -1
  63. package/dist/{TreeSelectFieldSync-DUHVmOQa.js → TreeSelectFieldSync-Cd87uR6b.js} +35 -12
  64. package/dist/TreeSelectFieldSync-Cd87uR6b.js.map +1 -0
  65. package/dist/TreeSelectMenu.js +1 -1
  66. package/dist/{TreeSelectMenuSync-DVoYUG7F.js → TreeSelectMenuSync-88q0ydo5.js} +18 -6
  67. package/dist/TreeSelectMenuSync-88q0ydo5.js.map +1 -0
  68. package/dist/{YearlessDateInputWithPicker-CM9mmz8s.js → YearlessDateInputWithPicker-BquY4bCd.js} +19 -5
  69. package/dist/YearlessDateInputWithPicker-BquY4bCd.js.map +1 -0
  70. package/dist/anvParts-BGg5dgfl.js +43 -0
  71. package/dist/anvParts-BGg5dgfl.js.map +1 -0
  72. package/dist/beta.js +13 -13
  73. package/dist/{bulkActionTypes-BnZNAru6.js → bulkActionTypes-CWcUhKFS.js} +2 -2
  74. package/dist/{bulkActionTypes-BnZNAru6.js.map → bulkActionTypes-CWcUhKFS.js.map} +1 -1
  75. package/dist/{filter-state-XmqhkURU.js → filter-state-BQOX7_rO.js} +152 -80
  76. package/dist/filter-state-BQOX7_rO.js.map +1 -0
  77. package/dist/{index-BwNeldDw.js → index-DjirBR0l.js} +2 -2
  78. package/dist/{index-BwNeldDw.js.map → index-DjirBR0l.js.map} +1 -1
  79. package/dist/index.js +14 -14
  80. package/dist/src/beta/components/FilterBar/FilterBar.d.ts +3 -3
  81. package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +17 -3
  82. package/dist/src/beta/components/FilterBar/parts.d.ts +38 -0
  83. package/dist/src/beta/components/SavedFiltersButton/parts.d.ts +37 -0
  84. package/dist/src/beta/components/SavedFiltersButton/types.d.ts +2 -1
  85. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +3 -2
  86. package/dist/src/beta/components/Table/DataTable/parts.d.ts +30 -0
  87. package/dist/src/beta/components/Table/internal/ResizeHandle.d.ts +3 -2
  88. package/dist/src/beta/components/Toolbar/Toolbar.d.ts +4 -4
  89. package/dist/src/beta/components/Toolbar/parts.d.ts +19 -0
  90. package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +6 -5
  91. package/dist/src/beta/components/TreeSelectField/parts.d.ts +23 -0
  92. package/dist/src/beta/components/TreeSelectField/types.d.ts +11 -4
  93. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +33 -2
  94. package/dist/src/beta/components/TreeSelectMenu/parts.d.ts +12 -0
  95. package/dist/src/beta/components/TreeSelectMenu/types.d.ts +3 -2
  96. package/dist/src/components/Combobox/ComboboxTypes.d.ts +2 -2
  97. package/dist/src/components/Combobox/parts.d.ts +19 -0
  98. package/dist/src/components/DateFieldRange/DateFieldRange.d.ts +2 -2
  99. package/dist/src/components/DateFieldRange/parts.d.ts +16 -0
  100. package/dist/src/components/DateFieldSingle/DateFieldSingle.d.ts +2 -2
  101. package/dist/src/components/DateFieldSingle/parts.d.ts +16 -0
  102. package/dist/src/components/DateFieldYearless/DateFieldYearless.d.ts +2 -2
  103. package/dist/src/components/DateFieldYearless/parts.d.ts +15 -0
  104. package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +2 -2
  105. package/dist/src/components/DateFieldYearlessRange/parts.d.ts +12 -0
  106. package/dist/src/components/DrillDown/DrillDown.d.ts +11 -0
  107. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  108. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  109. package/dist/src/components/MultiSelectField/internal/types.d.ts +3 -1
  110. package/dist/src/components/MultiSelectField/parts.d.ts +20 -0
  111. package/dist/src/components/MultiSelectField/types.d.ts +2 -2
  112. package/dist/src/components/MultiSelectMenu/parts.d.ts +12 -0
  113. package/dist/src/components/MultiSelectMenu/types.d.ts +3 -2
  114. package/dist/src/components/Pagination/Pagination.d.ts +4 -3
  115. package/dist/src/components/Pagination/parts.d.ts +28 -0
  116. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  117. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  118. package/dist/src/components/SelectField/parts.d.ts +18 -0
  119. package/dist/src/components/SelectField/types.d.ts +7 -2
  120. package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +8 -6
  121. package/dist/src/components/SelectMenu/parts.d.ts +12 -0
  122. package/dist/src/components/SelectMenu/types.d.ts +3 -2
  123. package/dist/src/components/SelectTrigger/internal/SelectTriggerBase.d.ts +6 -5
  124. package/dist/src/components/Toolbar/Toolbar.d.ts +3 -3
  125. package/dist/src/components/Toolbar/parts.d.ts +18 -0
  126. package/dist/src/internal/constants/anvParts.d.ts +81 -0
  127. package/dist/src/internal/testing/anvPartsContract.d.ts +24 -0
  128. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +3 -1
  129. package/dist/{syncFilterUtils-UVNoFsDr.js → syncFilterUtils-YB6gRuuR.js} +11 -4
  130. package/dist/syncFilterUtils-YB6gRuuR.js.map +1 -0
  131. package/dist/{treeSync-CiU5d6rF.js → treeSync-DOen59wP.js} +24 -4
  132. package/dist/treeSync-DOen59wP.js.map +1 -0
  133. package/dist/{useAdaptiveView-C_WvM4-P.js → useAdaptiveView-DmhhcX-B.js} +3 -1
  134. package/dist/useAdaptiveView-DmhhcX-B.js.map +1 -0
  135. package/dist/{useDrilldown-D7DKSs7E.js → useDrilldown-UAm0-l1l.js} +10 -3
  136. package/dist/{useDrilldown-D7DKSs7E.js.map → useDrilldown-UAm0-l1l.js.map} +1 -1
  137. package/dist/{useInfiniteCombobox-COJTJxCZ.js → useInfiniteCombobox-V94SoOiU.js} +70 -23
  138. package/dist/useInfiniteCombobox-V94SoOiU.js.map +1 -0
  139. package/dist/{useMenuInteraction-AgrXU8kv.js → useMenuInteraction-nNF1dsrp.js} +7 -4
  140. package/dist/useMenuInteraction-nNF1dsrp.js.map +1 -0
  141. package/package.json +7 -5
  142. package/dist/DataTable-CRzQKN_P.js.map +0 -1
  143. package/dist/DateFieldRange-CHbrYgsD.js.map +0 -1
  144. package/dist/DateFieldSingle-D-KZ3NL0.js.map +0 -1
  145. package/dist/DateFieldYearless-DouEX24o.js.map +0 -1
  146. package/dist/DateFieldYearlessRange-B_bImgyn.js.map +0 -1
  147. package/dist/FilterBar-CBTAkEri.js.map +0 -1
  148. package/dist/MenuFooter-BXcNxNnX.js.map +0 -1
  149. package/dist/MultiSelectFieldSync-CpfsWecG.js.map +0 -1
  150. package/dist/MultiSelectMenuSync-CtyLYyDE.js.map +0 -1
  151. package/dist/Page-B6E3Gbji.js.map +0 -1
  152. package/dist/Pagination-DF7iMeJe.js.map +0 -1
  153. package/dist/SavedFiltersButton-FcYVncxU.js.map +0 -1
  154. package/dist/SelectFieldSync-Bi8HsMYP.js.map +0 -1
  155. package/dist/SelectMenuSync-DKg4g5nN.js.map +0 -1
  156. package/dist/SelectTriggerBase-1Cc6EUBw.js.map +0 -1
  157. package/dist/Toolbar-2VQIjU5b.js.map +0 -1
  158. package/dist/Toolbar-BbImThIu.js.map +0 -1
  159. package/dist/ToolbarButtonToggle-Bc0XvCM9.js.map +0 -1
  160. package/dist/TreeSelectFieldSync-DUHVmOQa.js.map +0 -1
  161. package/dist/TreeSelectMenuSync-DVoYUG7F.js.map +0 -1
  162. package/dist/YearlessDateInputWithPicker-CM9mmz8s.js.map +0 -1
  163. package/dist/filter-state-XmqhkURU.js.map +0 -1
  164. package/dist/syncFilterUtils-UVNoFsDr.js.map +0 -1
  165. package/dist/treeSync-CiU5d6rF.js.map +0 -1
  166. package/dist/useAdaptiveView-C_WvM4-P.js.map +0 -1
  167. package/dist/useInfiniteCombobox-COJTJxCZ.js.map +0 -1
  168. package/dist/useMenuInteraction-AgrXU8kv.js.map +0 -1
package/dist/index.js CHANGED
@@ -14,18 +14,18 @@ export { a as Calendar, g as CalendarMonth, f as CalendarMonthButton, e as Calen
14
14
  export { C as Card } from './Card-Bt0F6RTq.js';
15
15
  export { C as Checkbox } from './Checkbox-4wRmrann.js';
16
16
  export { C as Chip } from './Chip-D6Q0J0Xe.js';
17
- export { C as Combobox, a as ComboboxElement, c as ComboboxList, b as ComboboxSelect, u as useInfiniteCombobox } from './useInfiniteCombobox-COJTJxCZ.js';
18
- export { D as DateFieldRange } from './DateFieldRange-CHbrYgsD.js';
19
- export { D as DateFieldSingle } from './DateFieldSingle-D-KZ3NL0.js';
20
- export { D as DateFieldYearless } from './DateFieldYearless-DouEX24o.js';
21
- export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-B_bImgyn.js';
17
+ export { C as Combobox, a as ComboboxElement, c as ComboboxList, b as ComboboxSelect, u as useInfiniteCombobox } from './useInfiniteCombobox-V94SoOiU.js';
18
+ export { D as DateFieldRange } from './DateFieldRange-DUFfyknZ.js';
19
+ export { D as DateFieldSingle } from './DateFieldSingle-BZjlO0hX.js';
20
+ export { D as DateFieldYearless } from './DateFieldYearless-TcKb9jE2.js';
21
+ export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-D9XtRNWi.js';
22
22
  export { D as DaysOfTheWeek } from './DaysOfTheWeek--FBi44iw.js';
23
23
  export { D as Details } from './Details-CVA5zbrR.js';
24
24
  export { D as Dialog } from './Dialog-Clh3jaX8.js';
25
25
  export { D as Divider } from './Divider-C7fp5Xb6.js';
26
26
  export { D as Dnd } from './index-BwV_Pz7v.js';
27
27
  export { D as Drawer } from './Drawer-h2Mut1lB.js';
28
- export { D as DrillDown, b as DrillDownContent, c as DrillDownFooter, a as DrillDownHeader, d as DrillDownNextButton, e as DrillDownPrevButton, u as useDrillDown } from './useDrilldown-D7DKSs7E.js';
28
+ export { D as DrillDown, b as DrillDownContent, c as DrillDownFooter, a as DrillDownHeader, d as DrillDownNextButton, e as DrillDownPrevButton, u as useDrillDown } from './useDrilldown-UAm0-l1l.js';
29
29
  export { E as EditCard } from './EditCard-QohYSylF.js';
30
30
  export { F as FieldLabel } from './FieldLabel-SzH61hCb.js';
31
31
  export { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
@@ -43,19 +43,19 @@ export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './L
43
43
  export { M as Menu } from './Menu-DNOOmDQC.js';
44
44
  export { N as NumberField } from './NumberField-B1761jkf.js';
45
45
  export { Overflow, OverflowText } from './Overflow.js';
46
- export { P as Page } from './Page-B6E3Gbji.js';
47
- export { P as Pagination } from './Pagination-DF7iMeJe.js';
46
+ export { P as Page } from './Page-Pk0-Sxf_.js';
47
+ export { P as Pagination } from './Pagination-Bx_u6Uea.js';
48
48
  export { P as Popover } from './Popover-CjsE5FG0.js';
49
49
  export { P as ProgressBar } from './ProgressBar-Coh2nTJ1.js';
50
50
  export { R as Radio } from './Radio-BxSL1PoP.js';
51
51
  export { S as SearchField } from './SearchField-ChoNtw8w.js';
52
52
  export { S as SegmentedControl, a as SegmentedControlSegment } from './SegmentedControl-CQ6DrbDc.js';
53
53
  export { S as SelectCard } from './SelectCard-BTfhPyHH.js';
54
- export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-Bi8HsMYP.js';
55
- export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-CpfsWecG.js';
56
- export { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-DKg4g5nN.js';
57
- export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-CtyLYyDE.js';
58
- export { S as SelectTrigger } from './SelectTrigger-DNIc5ttg.js';
54
+ export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-Dyug8Fgk.js';
55
+ export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-HhFKGtQM.js';
56
+ export { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-BkC0FD5P.js';
57
+ export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-C3Y7jnJQ.js';
58
+ export { S as SelectTrigger } from './SelectTrigger-Do1puyA_.js';
59
59
  export { S as SideNav } from './SideNav-DZRXOYHs.js';
60
60
  export { Skeleton, SkeletonCircle, SkeletonPill, SkeletonRectangle, SkeletonText } from './Skeleton.js';
61
61
  export { S as Spinner } from './Spinner-B7tTWcP6.js';
@@ -69,7 +69,7 @@ export { T as TextField } from './TextField-D3sRS5q1.js';
69
69
  export { T as TimeField } from './TimeField-L9B_X6-H.js';
70
70
  export { T as Toaster } from './Toaster-DZxf0N9g.js';
71
71
  export { t as toast } from './Toaster-CAI7tX8q.js';
72
- export { T as Toolbar } from './Toolbar-BbImThIu.js';
72
+ export { T as Toolbar } from './Toolbar-DDWUuQm_.js';
73
73
  export { T as Tooltip } from './Tooltip-BC8lnFhe.js';
74
74
  export { u as useAccessibleColor } from './useAccessibleColor-BYKjkGRg.js';
75
75
  export { u as useBreakpoint } from './useBreakpoint-BBNRlMGZ.js';
@@ -1,6 +1,6 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
2
  import { Filter } from './internal/types';
3
- import { LayoutUtilProps } from '../../../types';
3
+ import { DataAttributes, LayoutUtilProps } from '../../../types';
4
4
  import { ToolbarSize } from '../Toolbar/types';
5
5
  /**
6
6
  * Props for the FilterBar component
@@ -8,7 +8,7 @@ import { ToolbarSize } from '../Toolbar/types';
8
8
  * @extends ComponentPropsWithoutRef<"div">
9
9
  * @extends LayoutUtilProps
10
10
  */
11
- export type FilterBarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
11
+ export type FilterBarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & DataAttributes & {
12
12
  /** Array of filter objects */
13
13
  filters: Filter[];
14
14
  /** Description of the content this filter bar is associated with, used for accessibility */
@@ -66,7 +66,7 @@ export type FilterBarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps &
66
66
  * />
67
67
  * </Flex>
68
68
  */
69
- export declare const FilterBar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
69
+ export declare const FilterBar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & DataAttributes & {
70
70
  /** Array of filter objects */
71
71
  filters: Filter[];
72
72
  /** Description of the content this filter bar is associated with, used for accessibility */
@@ -23,9 +23,9 @@ export declare const getVisibleDateListDefaultOptions: (filter: Pick<DateListFil
23
23
  /** True when the library option opens a date-range dialog. */
24
24
  export declare const isDateListRangeLibraryId: (id: DateListLibraryOptionId) => boolean;
25
25
  /**
26
- * Build the display label for a committed dateList selection. Used by both
27
- * the toolbar `FilterTriggerButton` and the FilterDrawer `SelectField` so the
28
- * two surfaces stay in sync.
26
+ * Build the display label for a committed dateList selection, without the
27
+ * filter's own label. Used by the FilterDrawer `SelectField`, which renders
28
+ * the filter label separately as the field label.
29
29
  *
30
30
  * - Selection with `value: null` (e.g. "Any day") → option label only.
31
31
  * - Custom Range library option → just the formatted range (label omitted
@@ -33,3 +33,17 @@ export declare const isDateListRangeLibraryId: (id: DateListLibraryOptionId) =>
33
33
  * - Other library or consumer options → `"<label>: <formatted>"`.
34
34
  */
35
35
  export declare const formatDateListSelectionLabel: (selection: DateListOption) => string;
36
+ /**
37
+ * Build the toolbar `FilterTriggerButton` label for a committed dateList
38
+ * selection. Unlike the drawer, the trigger has no separate label slot, so the
39
+ * filter's label is retained and the selection appended — matching every other
40
+ * filter adapter (e.g. "Owner: Alice").
41
+ *
42
+ * - Selection with `value: null` (e.g. "Any day") → filter label, or the option label when the filter label is empty.
43
+ * - Custom Range → `"<filter>: <formatted>"`; the option name adds nothing
44
+ * over the range itself.
45
+ * - Other options → `"<filter>: <option> (<formatted>)"`, e.g.
46
+ * "Start Date: Last 7 Days (Aug 6 – Aug 11, 2026)". Parentheses avoid the
47
+ * double colon that `"<filter>: <option>: <formatted>"` would produce.
48
+ */
49
+ export declare const formatDateListTriggerLabel: (filterLabel: string, selection: DateListOption) => string;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `data-anv-part` names for FilterBar's interactive sub-elements.
3
+ *
4
+ * Scope a query by the consumer's `data-cy` on the FilterBar root, or by a
5
+ * filter's `data-id` for a specific filter:
6
+ * `[data-cy="x"] [data-id="amount"] [data-anv-part="trigger"]`.
7
+ *
8
+ * Common roles are re-exported from `COMMON_PART` so their string values stay
9
+ * identical across the suite; FilterBar-specific roles are defined here.
10
+ */
11
+ export declare const PARTS: {
12
+ readonly trigger: "trigger";
13
+ readonly input: "input";
14
+ readonly dialog: "dialog";
15
+ readonly applyButton: "apply-button";
16
+ readonly cancelButton: "cancel-button";
17
+ /** Clears text in a search/text field — not the whole bar. */
18
+ readonly clearButton: "clear-button";
19
+ readonly drawer: "drawer";
20
+ readonly dateInput: "date-input";
21
+ readonly dateCalendar: "date-calendar";
22
+ /** Trigger that opens the filter drawer (collapsed mode). */
23
+ readonly drawerTrigger: "drawer-trigger";
24
+ /** Lower-bound input of a numeric range filter. */
25
+ readonly minInput: "min-input";
26
+ /** Upper-bound input of a numeric range filter. */
27
+ readonly maxInput: "max-input";
28
+ /**
29
+ * Clears all active filters (inline "Clear Filters" and drawer
30
+ * "Clear All Filters"). Distinct from `clear-button` on search fields.
31
+ */
32
+ readonly clearFiltersButton: "clear-filters-button";
33
+ /**
34
+ * Numeric count badge on a filter trigger / drawer trigger (not a
35
+ * selected-value chip).
36
+ */
37
+ readonly countBadge: "count-badge";
38
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `data-anv-part` names for SavedFiltersButton's interactive sub-elements.
3
+ *
4
+ * The trigger is stamped by FilterTriggerButton (`FilterBar` PARTS.trigger) —
5
+ * do not redeclare `trigger` here. Popover / menu / option parts come from
6
+ * shared OptionsPopover / OptionsPanel internals.
7
+ *
8
+ * Scope in-wrapper queries by the consumer's `data-cy` on the trigger.
9
+ * Drawers and their contents render in the top layer — target those parts
10
+ * by attribute directly. Edit-row buttons also carry `data-id={preset.id}`.
11
+ */
12
+ export declare const PARTS: {
13
+ readonly input: "input";
14
+ readonly cancelButton: "cancel-button";
15
+ readonly applyButton: "apply-button";
16
+ /** Popover footer CTA that opens the Save Current Filter drawer. */
17
+ readonly saveCurrentButton: "save-current-button";
18
+ /** Popover footer CTA that opens the Edit Saved Filters drawer. */
19
+ readonly manageButton: "manage-button";
20
+ /** Save Current Filter drawer shell. */
21
+ readonly addDrawer: "add-drawer";
22
+ /** Edit Saved Filters drawer shell. */
23
+ readonly editDrawer: "edit-drawer";
24
+ /**
25
+ * Per-preset edit drilldown screen inside the Edit drawer (visible after
26
+ * clicking an edit-row-button).
27
+ */
28
+ readonly drilldown: "drilldown";
29
+ /** Per-preset Edit affordance in the Edit drawer list (use with `data-id`). */
30
+ readonly editRowButton: "edit-row-button";
31
+ /** Drilldown Delete Filter action. */
32
+ readonly deleteButton: "delete-button";
33
+ /** Drilldown Update Filter action. */
34
+ readonly updateButton: "update-button";
35
+ /** Edit drawer list-view Close action. */
36
+ readonly closeButton: "close-button";
37
+ };
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { DataAttributes } from '../../../types';
2
3
  import { Filter } from '../FilterBar/internal/types';
3
4
  /**
4
5
  * A consumer-owned preset of filter values. The component never mutates these
@@ -50,7 +51,7 @@ export type SavedFiltersAlertText = {
50
51
  */
51
52
  reorderError?: string;
52
53
  };
53
- export type SavedFiltersButtonProps = {
54
+ export type SavedFiltersButtonProps = DataAttributes & {
54
55
  /** The presets to list. Consumer owns the storage. */
55
56
  savedFilters: SavedFilter[];
56
57
  /**
@@ -1,5 +1,5 @@
1
1
  import { ComponentPropsWithoutRef, forwardRef, Ref, ReactNode } from 'react';
2
- import { LayoutUtilProps } from '../../../../types';
2
+ import { DataAttributes, LayoutUtilProps } from '../../../../types';
3
3
  import { ColumnDef, CustomTableFooterCellProps, TableRow } from '../types';
4
4
  import { DataTableCacheOptions, DataTableEmptyState, DataTablePaginationConfig, DataTableRef, SortedColumn } from './types';
5
5
  export type { DataTableCacheOptions, DataTableRef, DataTableEmptyState, SortedColumn, };
@@ -8,8 +8,9 @@ export type DataTableRowData = object;
8
8
  * Props for the DataTable component
9
9
  * @extends LayoutUtilProps
10
10
  * @extends ComponentPropsWithoutRef<"div">
11
+ * @extends DataAttributes
11
12
  */
12
- export type DataTableProps<T extends DataTableRowData> = LayoutUtilProps & ComponentPropsWithoutRef<"div"> & {
13
+ export type DataTableProps<T extends DataTableRowData> = LayoutUtilProps & ComponentPropsWithoutRef<"div"> & DataAttributes & {
13
14
  /**
14
15
  * The columns for the table, created with the `createColumnHelper` factory function.
15
16
  */
@@ -0,0 +1,30 @@
1
+ /**
2
+ * `data-anv-part` names for DataTable's interactive sub-elements.
3
+ *
4
+ * Scope a query by the consumer's `data-cy` on the DataTable root, then
5
+ * narrow with existing discriminators:
6
+ * - rows: `data-row-id`
7
+ * - columns: `data-anv-column-id`
8
+ *
9
+ * Example: `[data-cy="orders"] [data-row-id="row-1"] [data-anv-part="select-checkbox"]`
10
+ */
11
+ export declare const PARTS: {
12
+ /** Body row container (`role="row"`). */
13
+ readonly row: "row";
14
+ /** Body cell (`role="gridcell"`). */
15
+ readonly cell: "cell";
16
+ /** Sortable header cell (click target for column sort). */
17
+ readonly sortToggle: "sort-toggle";
18
+ /** Per-row selection checkbox input. */
19
+ readonly selectCheckbox: "select-checkbox";
20
+ /** Header select-all checkbox input. */
21
+ readonly selectAllCheckbox: "select-all-checkbox";
22
+ /** Per-row expand/collapse button. */
23
+ readonly expandButton: "expand-button";
24
+ /** Header expand-all button. */
25
+ readonly expandAllButton: "expand-all-button";
26
+ /** Column resize handle. */
27
+ readonly resizeHandle: "resize-handle";
28
+ /** Active text/number editor inside an editable cell. */
29
+ readonly editableInput: "editable-input";
30
+ };
@@ -1,4 +1,5 @@
1
1
  import { Header } from '@tanstack/react-table';
2
+ import { ComponentPropsWithoutRef } from 'react';
2
3
  /**
3
4
  * Props for the ResizeHandle component
4
5
  * @property {Header<T, unknown>} header - The header instance from TanStack Table
@@ -8,11 +9,11 @@ export type ResizeHandleProps<T> = {
8
9
  header: Header<T, unknown>;
9
10
  onResizeStart?: () => void;
10
11
  onResizeEnd?: () => void;
11
- };
12
+ } & Omit<ComponentPropsWithoutRef<"div">, "role" | "children" | "onMouseDown" | "onTouchStart" | "onMouseUp" | "onTouchEnd" | "onDoubleClick">;
12
13
  /**
13
14
  * Resize handle component resizing table columns
14
15
  * @param props - The props for the ResizeHandle component
15
16
  * @param props.header - The header of the ResizeHandle component
16
17
  * @param props.onResizeStart - Optional callback fired before resize begins
17
18
  */
18
- export declare function ResizeHandle<T>({ header, onResizeStart, onResizeEnd, }: ResizeHandleProps<T>): import("react/jsx-runtime").JSX.Element;
19
+ export declare function ResizeHandle<T>({ header, onResizeStart, onResizeEnd, className, ...rest }: ResizeHandleProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,12 @@
1
1
  import { ToolbarOverflowTypes, ToolbarSize } from './types';
2
2
  import { ComponentPropsWithoutRef, ReactElement } from 'react';
3
- import { LayoutUtilProps } from '../../../types';
3
+ import { DataAttributes, LayoutUtilProps } from '../../../types';
4
4
  /**
5
5
  * Props for the Toolbar component
6
6
  * @extends ComponentPropsWithoutRef<"div">
7
7
  * @extends LayoutUtilProps
8
8
  */
9
- export type ToolbarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
9
+ export type ToolbarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & DataAttributes & {
10
10
  /**
11
11
  * Description of the content this toolbar is associated with, used for accessibility
12
12
  */
@@ -57,7 +57,7 @@ export type ToolbarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
57
57
  * />
58
58
  * </Toolbar>
59
59
  */
60
- export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
60
+ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & DataAttributes & {
61
61
  /**
62
62
  * Description of the content this toolbar is associated with, used for accessibility
63
63
  */
@@ -222,7 +222,7 @@ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<imp
222
222
  */
223
223
  Search: import('react').ForwardRefExoticComponent<import('./ToolbarSearchField').ToolbarSearchFieldProps & import('react').RefAttributes<HTMLInputElement>>;
224
224
  };
225
- export declare const ToolbarElement: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
225
+ export declare const ToolbarElement: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & DataAttributes & {
226
226
  /**
227
227
  * Description of the content this toolbar is associated with, used for accessibility
228
228
  */
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `data-anv-part` names for Toolbar's interactive sub-elements.
3
+ *
4
+ * Scope in-wrapper parts by the consumer's `data-cy` on the Toolbar root.
5
+ * Overflow menu/items render in the popover top layer — target them by part
6
+ * attribute directly.
7
+ */
8
+ export declare const PARTS: {
9
+ readonly trigger: "trigger";
10
+ readonly menu: "menu";
11
+ readonly overflowItem: "overflow-item";
12
+ readonly input: "input";
13
+ /**
14
+ * A leaf toolbar control (`Toolbar.Button` / `Toolbar.ButtonToggle`).
15
+ * Discriminate with `aria-label`, `id`, or a consumer `data-*`. Callers may
16
+ * override this (e.g. FilterBar stamps `trigger` on boolean toggles).
17
+ */
18
+ readonly item: "item";
19
+ };
@@ -1,4 +1,5 @@
1
- import { TreeSelectFieldHandle, TreeSelectFieldNode } from './types';
1
+ import { TreeSelectFieldHandle, TreeSelectFieldNode, TreeSelectFieldValue } from './types';
2
+ import { DataAttributes } from '../../../types';
2
3
  /**
3
4
  * TreeSelectField component for selecting one or more nodes from a hierarchical tree structure.
4
5
  *
@@ -51,10 +52,10 @@ export declare const TreeSelectField: import('react').ForwardRefExoticComponent<
51
52
  onSearchChange?: (v: string) => void;
52
53
  singleRow?: boolean;
53
54
  maxChips?: number;
54
- getChipProps?: (value: import('./types').TreeSelectFieldValue) => import('./types').TreeSelectFieldChipProps;
55
+ getChipProps?: (value: TreeSelectFieldValue) => import('./types').TreeSelectFieldChipProps;
55
56
  virtualize?: boolean;
56
- value: import('./types').TreeSelectFieldValue[];
57
- onSelectedOptionsChange: (nodes: import('./types').TreeSelectFieldValue[]) => void;
57
+ value: TreeSelectFieldValue[];
58
+ onSelectedOptionsChange: (nodes: TreeSelectFieldValue[]) => void;
58
59
  selectionMode?: "single" | "independent" | "linked";
59
60
  valueConsistsOf?: import('./types').TreeSelectFieldValueConsistsOf;
60
61
  defaultExpandLevel?: number;
@@ -66,4 +67,4 @@ export declare const TreeSelectField: import('react').ForwardRefExoticComponent<
66
67
  maxSize?: number;
67
68
  };
68
69
  initialLoad?: "auto" | "immediate" | "open";
69
- } & import('../../..').LayoutUtilProps & import('react').RefAttributes<TreeSelectFieldHandle>>;
70
+ } & import('../../..').LayoutUtilProps & DataAttributes & import('react').RefAttributes<TreeSelectFieldHandle>>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `data-anv-part` names for TreeSelectField's interactive sub-elements.
3
+ *
4
+ * Scope a query by the consumer's `data-cy` on the field root
5
+ * (`[data-cy="x"] [data-anv-part="input"]`). Portaled tree parts
6
+ * (`menu`, `option`, `popover`, `dialog`) render in the top layer — target
7
+ * them by part attribute or the field's `#{id}-popover` / `#{id}-dialog`.
8
+ * Repeated options also carry `data-id={node.id}`.
9
+ *
10
+ * Tree rows are not SelectOption — `option` / `menu` / `expand-toggle` are
11
+ * stamped on TreePanel / TreeRow. Shared OptionsPopover / OptionsDialog
12
+ * already provide `popover` / `dialog`.
13
+ */
14
+ export declare const PARTS: {
15
+ readonly input: "input";
16
+ readonly chip: "chip";
17
+ readonly overflowChip: "overflow-chip";
18
+ readonly toggleButton: "toggle-button";
19
+ readonly menu: "menu";
20
+ readonly option: "option";
21
+ /** Branch expand/collapse control within a tree row. */
22
+ readonly expandToggle: "expand-toggle";
23
+ };
@@ -1,11 +1,12 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { AiMarkWithTooltipOrPopoverProps, LayoutUtilProps, Size } from '../../../types';
2
+ import { AiMarkWithTooltipOrPopoverProps, DataAttributes, LayoutUtilProps, Size } from '../../../types';
3
3
  import { OptionContent } from '../../../internal/types/optionContent';
4
4
  import { MultiSelectFieldChipProps } from '../../../components/MultiSelectField/types';
5
5
  /**
6
6
  * Partial chip props that can be returned from the TreeSelectField `getChipProps` callback.
7
7
  * Supports `icon` or `avatar` (mutually exclusive) and all other chip props as optional overrides.
8
8
  * Core props (`label`, `onClose`, `className`, `title`, `size`) are managed by the component.
9
+ * Selected values with `disabled: true` omit `onClose` so the chip is locked.
9
10
  */
10
11
  export type TreeSelectFieldChipProps = MultiSelectFieldChipProps;
11
12
  /**
@@ -18,7 +19,9 @@ export type TreeSelectFieldOptionContent = OptionContent;
18
19
  * @property id - Unique identifier for the node.
19
20
  * @property label - Display text for the node.
20
21
  * @property searchText - Additional text to match during search, beyond label.
21
- * @property disabled - Whether the node is disabled for selection.
22
+ * @property disabled - Whether the node is disabled for selection. When a
23
+ * disabled node is already in the field `value`, its chip is locked (no close
24
+ * control) and backspace skips it — same as MultiSelectField.
22
25
  * @property extra - Pass-through data for consumer convenience.
23
26
  * @property children - Child nodes. undefined=leaf, []=empty branch, [...]=branch, null=unloaded (lazy).
24
27
  * @property childCount - Server-provided count, optionally displayed on branch nodes.
@@ -47,8 +50,11 @@ export type TreeSelectFieldNode = {
47
50
  * @property label - The node's display text.
48
51
  * @property extra - Pass-through data from the node.
49
52
  * @property path - Optional ancestor ids, root→parent. See {@link TreeSelectFieldNode.path}.
53
+ * @property disabled - When true, the chip is locked (no close control; backspace
54
+ * skips it). Emitted from the tree when the matching node is disabled; can
55
+ * also be set on controlled values to lock a selection.
50
56
  */
51
- export type TreeSelectFieldValue = Pick<TreeSelectFieldNode, "id" | "label" | "extra" | "path">;
57
+ export type TreeSelectFieldValue = Pick<TreeSelectFieldNode, "id" | "label" | "extra" | "path" | "disabled">;
52
58
  /**
53
59
  * Controls which nodes are selectable and how the value array is shaped.
54
60
  * - "ALL" — any node selectable, all checked nodes in value
@@ -118,6 +124,7 @@ export type TreeSelectFieldProps = {
118
124
  * Callback to customize chip props for each selected option.
119
125
  * Allows customizing chip appearance (color, icon, avatar, etc.) per option.
120
126
  * Core props (label, onClose, className, title, size) are managed by the component and excluded from this type.
127
+ * Selected values with `disabled: true` omit onClose so the chip is locked.
121
128
  * @param value - The selected value the chip represents
122
129
  * @returns Partial chip props to merge onto the chip
123
130
  */
@@ -136,4 +143,4 @@ export type TreeSelectFieldProps = {
136
143
  maxSize?: number;
137
144
  };
138
145
  initialLoad?: "auto" | "immediate" | "open";
139
- } & LayoutUtilProps;
146
+ } & LayoutUtilProps & DataAttributes;
@@ -1,4 +1,6 @@
1
- import { TreeSelectMenuProps } from './types';
1
+ import { KeyboardEvent } from 'react';
2
+ import { TreeSelectFieldNode, TreeSelectFieldValue } from '../TreeSelectField/types';
3
+ import { DataAttributes } from '../../../types';
2
4
  /**
3
5
  * TreeSelectMenu component for selecting tree nodes from a dropdown triggered by any element.
4
6
  *
@@ -26,4 +28,33 @@ import { TreeSelectMenuProps } from './types';
26
28
  * loadOptions={async (search) => fetchCategories(search)}
27
29
  * />
28
30
  */
29
- export declare const TreeSelectMenu: import('react').ForwardRefExoticComponent<TreeSelectMenuProps & import('react').RefAttributes<import('..').TreeSelectFieldHandle>>;
31
+ export declare const TreeSelectMenu: import('react').ForwardRefExoticComponent<{
32
+ id?: string;
33
+ trigger: (props: import('./types').TreeSelectMenuTriggerProps) => import('react').ReactElement;
34
+ onMenuKeyDown?: (e: KeyboardEvent) => void;
35
+ onImplicitClose?: () => void;
36
+ onExplicitClose?: () => void;
37
+ label: string;
38
+ searchPlaceholder?: string;
39
+ displayMenuAs?: "auto" | "popover" | "dialog";
40
+ virtualize?: boolean;
41
+ disableSearch?: boolean;
42
+ popoverWidth?: "reference" | number | string;
43
+ debounceMs?: number;
44
+ onSearchChange?: (v: string) => void;
45
+ value: TreeSelectFieldValue[];
46
+ onSelectedOptionsChange: (nodes: TreeSelectFieldValue[]) => void;
47
+ selectionMode?: "single" | "independent" | "linked";
48
+ valueConsistsOf?: import('./types').TreeSelectMenuValueConsistsOf;
49
+ defaultExpandLevel?: number;
50
+ expandedIds?: Set<string | number>;
51
+ onExpandedIdsChange?: (ids: Set<string | number>) => void;
52
+ loadOptions: (searchValue: string, parentNode?: TreeSelectFieldNode) => TreeSelectFieldNode[] | Promise<TreeSelectFieldNode[]>;
53
+ cache?: {
54
+ enabled?: boolean;
55
+ maxSize?: number;
56
+ };
57
+ initialLoad?: "auto" | "immediate" | "open";
58
+ confirmation?: import('../../../internal/types/confirmationTypes').ConfirmationProp;
59
+ clear?: import('./types').TreeSelectMenuClearConfig;
60
+ } & DataAttributes & import('react').RefAttributes<import('..').TreeSelectFieldHandle>>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `data-anv-part` names for TreeSelectMenu interactive sub-elements.
3
+ *
4
+ * Only trigger chrome is owned here. Tree `menu` / `option` / `expand-toggle`
5
+ * come from TreeSelectField internals; `popover` / `dialog` / footer buttons
6
+ * from shared option shells. Consumer `data-*` merges into the trigger
7
+ * render-prop bag (no wrapper root).
8
+ */
9
+ export declare const PARTS: {
10
+ readonly trigger: "trigger";
11
+ readonly input: "input";
12
+ };
@@ -1,4 +1,5 @@
1
1
  import { KeyboardEvent, ReactElement, RefObject } from 'react';
2
+ import { DataAttributes } from '../../../types';
2
3
  import { ConfirmationProp } from '../../../internal/types/confirmationTypes';
3
4
  import { TreeSelectFieldNode as TreeSelectMenuNode, TreeSelectFieldValue as TreeSelectMenuValue, TreeSelectFieldValueConsistsOf as TreeSelectMenuValueConsistsOf, TreeSelectFieldHandle, TreeSelectFieldOptionContent as TreeSelectMenuOptionContent } from '../TreeSelectField/types';
4
5
  /**
@@ -42,7 +43,7 @@ export type TreeSelectMenuTriggerProps = {
42
43
  "aria-controls": string;
43
44
  "aria-expanded": boolean;
44
45
  "data-state": "open" | "close";
45
- };
46
+ } & DataAttributes;
46
47
  /**
47
48
  * Props for the TreeSelectMenu component.
48
49
  * @property id - Optional id for the menu; an internal id is generated when omitted.
@@ -100,4 +101,4 @@ export type TreeSelectMenuProps = {
100
101
  initialLoad?: "auto" | "immediate" | "open";
101
102
  confirmation?: ConfirmationProp;
102
103
  clear?: TreeSelectMenuClearConfig;
103
- };
104
+ } & DataAttributes;
@@ -1,5 +1,5 @@
1
1
  import { UseComboboxProps as UseDownshiftComboboxProps, UseMultipleSelectionProps as UseDownshiftMultipleSelectionProps, UseComboboxReturnValue as UseDownshiftComboboxReturnValue, UseComboboxState as UseDownshiftComboboxState, UseMultipleSelectionState as UseDownshiftMultipleSelectionState, UseSelectProps as UseDownshiftSelectProps, UseSelectReturnValue as UseDownshiftSelectReturnValue, UseSelectState as UseDownshiftSelectState, UseMultipleSelectionReturnValue as UseDownshiftMultipleSelectionReturnValue } from 'downshift';
2
- import { DataTrackingId, DistributiveOmit, LayoutUtilProps } from '../../types';
2
+ import { DataAttributes, DataTrackingId, DistributiveOmit, LayoutUtilProps } from '../../types';
3
3
  import { CSSProperties, ComponentPropsWithoutRef, Dispatch, MutableRefObject, ReactNode, SetStateAction } from 'react';
4
4
  import { ComboboxGroupByValue } from './internal/ComboboxGroupContext';
5
5
  import { MatchSorterOptions } from 'match-sorter';
@@ -108,7 +108,7 @@ export type ComboboxContextProps<Item = any> = Required<Pick<UseDownshiftCombobo
108
108
  * @extends LayoutUtilProps
109
109
  * @extends Pick<ComponentPropsWithoutRef<"div">, "className" | "style">
110
110
  */
111
- type SharedProps<Item> = LayoutUtilProps & Pick<ComponentPropsWithoutRef<"div">, "className" | "style"> & {
111
+ type SharedProps<Item> = LayoutUtilProps & DataAttributes & Pick<ComponentPropsWithoutRef<"div">, "className" | "style"> & {
112
112
  children?: ReactNode;
113
113
  /**
114
114
  * @default false
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `data-anv-part` names for Combobox / Combobox.Select interactive sub-elements.
3
+ *
4
+ * Scope a query by the consumer's `data-cy` on the Combobox root
5
+ * (`[data-cy="x"] [data-anv-part="input"]`). Portaled menu parts
6
+ * (`menu`, `option`, `popover`) render in the top layer — target them by
7
+ * part attribute directly. Repeated options also carry `data-id` from
8
+ * `itemToKey(item)`.
9
+ */
10
+ export declare const PARTS: {
11
+ readonly input: "input";
12
+ readonly trigger: "trigger";
13
+ readonly clearButton: "clear-button";
14
+ readonly toggleButton: "toggle-button";
15
+ readonly chip: "chip";
16
+ readonly menu: "menu";
17
+ readonly option: "option";
18
+ readonly popover: "popover";
19
+ };
@@ -1,4 +1,4 @@
1
- import { DataTrackingId, IanaZone } from '../../types';
1
+ import { DataAttributes, DataTrackingId, IanaZone } from '../../types';
2
2
  import { MaskedDateRangeInputProps } from './internal/MaskedDateRangeInput';
3
3
  import { DateMode } from '../DateFieldSingle/types';
4
4
  export type DateFieldRangeChange = {
@@ -61,7 +61,7 @@ export type DateFieldRangeProps = Omit<MaskedDateRangeInputProps, "onChange" | "
61
61
  * @example "America/Los_Angeles"
62
62
  */
63
63
  timezone?: IanaZone;
64
- } & DataTrackingId;
64
+ } & DataTrackingId & DataAttributes;
65
65
  /**
66
66
  * DateFieldRange component for entering a start and end date via a masked
67
67
  * text input, with an optional popover calendar for picking the range
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `data-anv-part` names for DateFieldRange's interactive sub-elements.
3
+ *
4
+ * Consumer `data-*` (e.g. `data-cy`) is forwarded to the masked text input —
5
+ * the one element present in every mode (including `disableCalendar`). The
6
+ * calendar and its popover render in the top layer, outside the input's
7
+ * subtree, so target them by part attribute directly or by the popover's
8
+ * `data-testid="calendar-popover"`.
9
+ *
10
+ * Every role is a shared one, so values come from `COMMON_PART`.
11
+ */
12
+ export declare const PARTS: {
13
+ readonly input: "date-input";
14
+ readonly popover: "popover";
15
+ readonly calendar: "date-calendar";
16
+ };
@@ -1,4 +1,4 @@
1
- import { DataTrackingId, IanaZone } from '../../types';
1
+ import { DataAttributes, DataTrackingId, IanaZone } from '../../types';
2
2
  import { MaskedDateInputProps } from './internal/MaskedDateInput';
3
3
  import { DateMode } from './types';
4
4
  export type DateFieldSingleProps = Omit<MaskedDateInputProps, "onChange" | "value" | "autoComplete" | "onClick" | "onKeyDown" | "ref" | "lastValidDate" | "setLastValidDate" | "required" | "onFocus" | "onBlur"> & {
@@ -32,7 +32,7 @@ export type DateFieldSingleProps = Omit<MaskedDateInputProps, "onChange" | "valu
32
32
  * @example "America/Los_Angeles"
33
33
  */
34
34
  timezone?: IanaZone;
35
- } & DataTrackingId;
35
+ } & DataTrackingId & DataAttributes;
36
36
  export type DateFieldSingleChange = {
37
37
  /**
38
38
  * The date in ISO 8601 format.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `data-anv-part` names for DateFieldSingle's interactive sub-elements.
3
+ *
4
+ * Consumer `data-*` (e.g. `data-cy`) is forwarded to the masked text input —
5
+ * the one element present in every mode (including `disableCalendar`). The
6
+ * calendar and its popover render in the top layer, outside the input's
7
+ * subtree, so target them by part attribute directly or by the popover's
8
+ * `data-testid="calendar-popover"`.
9
+ *
10
+ * Every role is a shared one, so values come from `COMMON_PART`.
11
+ */
12
+ export declare const PARTS: {
13
+ readonly input: "date-input";
14
+ readonly popover: "popover";
15
+ readonly calendar: "date-calendar";
16
+ };