@servicetitan/anvil2 2.2.0 → 2.4.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.
- package/CHANGELOG.md +36 -0
- package/dist/{Alert-DXoEusod.js → Alert-D9mBPs6z.js} +2 -2
- package/dist/{Alert-DXoEusod.js.map → Alert-D9mBPs6z.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-SAypScAu.js → Announcement-B34cD6BC.js} +2 -2
- package/dist/{Announcement-SAypScAu.js.map → Announcement-B34cD6BC.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Button-l7pTJdPc.js → Button-DrNDkO2f.js} +2 -2
- package/dist/{Button-l7pTJdPc.js.map → Button-DrNDkO2f.js.map} +1 -1
- package/dist/Button.css +50 -50
- package/dist/Button.js +1 -1
- package/dist/Button.module-DwCq9XU0.js +26 -0
- package/dist/Button.module-DwCq9XU0.js.map +1 -0
- package/dist/{ButtonCompound-CX2kHgWe.js → ButtonCompound-D9VTKcL4.js} +2 -2
- package/dist/{ButtonCompound-CX2kHgWe.js.map → ButtonCompound-D9VTKcL4.js.map} +1 -1
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-CRlyK750.js → ButtonLink-DDtrmbVM.js} +3 -2
- package/dist/ButtonLink-DDtrmbVM.js.map +1 -0
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-BOVP_jEN.js → ButtonToggle-DrFewgOG.js} +3 -3
- package/dist/{ButtonToggle-BOVP_jEN.js.map → ButtonToggle-DrFewgOG.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-oNlBgZKB.js → Calendar-CkgpKD7Q.js} +2 -2
- package/dist/{Calendar-oNlBgZKB.js.map → Calendar-CkgpKD7Q.js.map} +1 -1
- package/dist/{Calendar-D0CczOpQ.js → Calendar-CtkL4zYU.js} +3 -3
- package/dist/{Calendar-D0CczOpQ.js.map → Calendar-CtkL4zYU.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-DuzAqrE7.js → Checkbox-CFgjreAl.js} +2 -2
- package/dist/{Checkbox-DuzAqrE7.js.map → Checkbox-CFgjreAl.js.map} +1 -1
- package/dist/{Checkbox-DIY-6agd.js → Checkbox-CxjZpzPp.js} +3 -3
- package/dist/{Checkbox-DIY-6agd.js.map → Checkbox-CxjZpzPp.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Combobox-CSGn20KQ.js → Combobox-Drqb3GVU.js} +4 -4
- package/dist/{Combobox-CSGn20KQ.js.map → Combobox-Drqb3GVU.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-D30sE1Xt.js → DataTable-BLuJ4FtH.js} +311 -51
- package/dist/DataTable-BLuJ4FtH.js.map +1 -0
- package/dist/DataTable.css +9 -5
- package/dist/{DateFieldRange-DBOiqaML.js → DateFieldRange-CvlOeE4v.js} +4 -4
- package/dist/{DateFieldRange-DBOiqaML.js.map → DateFieldRange-CvlOeE4v.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-C4hU55MP.js → DateFieldSingle-9UHxIxIA.js} +4 -4
- package/dist/{DateFieldSingle-C4hU55MP.js.map → DateFieldSingle-9UHxIxIA.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BXkUiHIR.js → DateFieldYearless-HNydELvO.js} +4 -4
- package/dist/{DateFieldYearless-BXkUiHIR.js.map → DateFieldYearless-HNydELvO.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-CGffFnVT.js → DateFieldYearlessRange-COb8v2CG.js} +4 -4
- package/dist/{DateFieldYearlessRange-CGffFnVT.js.map → DateFieldYearlessRange-COb8v2CG.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-DJEDopC9.js → DaysOfTheWeek-D-WPj18i.js} +3 -3
- package/dist/{DaysOfTheWeek-DJEDopC9.js.map → DaysOfTheWeek-D-WPj18i.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-BbsZMnCA.js → Dialog-DEAR058v.js} +3 -3
- package/dist/{Dialog-BbsZMnCA.js.map → Dialog-DEAR058v.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-GuN5lgR-.js → DialogCancelButton-BfI9K4a4.js} +2 -2
- package/dist/{DialogCancelButton-GuN5lgR-.js.map → DialogCancelButton-BfI9K4a4.js.map} +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.js +2 -2
- package/dist/{Drawer-Dhq76ot3.js → Drawer-CnMskBQl.js} +3 -3
- package/dist/{Drawer-Dhq76ot3.js.map → Drawer-CnMskBQl.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-DAiE-Hsc.js → EditCard-CH-JE4ba.js} +2 -2
- package/dist/{EditCard-DAiE-Hsc.js.map → EditCard-CH-JE4ba.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldDialog-CAuhkCZY.js → FieldDialog-C5mwMjrr.js} +120 -35
- package/dist/FieldDialog-C5mwMjrr.js.map +1 -0
- package/dist/FieldMessage-OeP_xSUE.js +132 -0
- package/dist/FieldMessage-OeP_xSUE.js.map +1 -0
- package/dist/FieldMessage.js +1 -1
- package/dist/{Helper-PNGm_U2X.js → Helper-B2UrgJvr.js} +2 -2
- package/dist/{Helper-PNGm_U2X.js.map → Helper-B2UrgJvr.js.map} +1 -1
- package/dist/{InputMask-Ds0W2fKy.js → InputMask-B7ZnJoR5.js} +2 -2
- package/dist/{InputMask-Ds0W2fKy.js.map → InputMask-B7ZnJoR5.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-MMmJDM--.js → ListView-CN8zu-cq.js} +2 -2
- package/dist/{ListView-MMmJDM--.js.map → ListView-CN8zu-cq.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Menu-3LIfRdTk.js → Menu-CpRnsr0v.js} +2 -2
- package/dist/{Menu-3LIfRdTk.js.map → Menu-CpRnsr0v.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-Bey99LzJ.js → MultiSelectFieldSync-BnPzYM72.js} +876 -255
- package/dist/MultiSelectFieldSync-BnPzYM72.js.map +1 -0
- package/dist/{NumberField-CDkEUfXW.js → NumberField-ecubQsaf.js} +4 -4
- package/dist/{NumberField-CDkEUfXW.js.map → NumberField-ecubQsaf.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-BVxybI-j.js → Page-qOkG6psI.js} +7 -7
- package/dist/{Page-BVxybI-j.js.map → Page-qOkG6psI.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DIatYUXX.js → Pagination-BuiyhZlJ.js} +14 -7
- package/dist/Pagination-BuiyhZlJ.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-4C5IVk8T.js → Popover-CYWYCj7l.js} +2 -2
- package/dist/{Popover-4C5IVk8T.js.map → Popover-CYWYCj7l.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-BGwp-qnf.js → ProgressBar-CBhVZIzK.js} +2 -2
- package/dist/{ProgressBar-BGwp-qnf.js.map → ProgressBar-CBhVZIzK.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-D7hNws2b.js → Radio-BMFwnzyz.js} +2 -2
- package/dist/{Radio-D7hNws2b.js.map → Radio-BMFwnzyz.js.map} +1 -1
- package/dist/{Radio-BRcpSu-d.js → Radio-DtYoRq3m.js} +3 -3
- package/dist/{Radio-BRcpSu-d.js.map → Radio-DtYoRq3m.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{SearchField-CoeaOip5.js → SearchField-CtdtcrVV.js} +12 -4
- package/dist/SearchField-CtdtcrVV.js.map +1 -0
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-Bag44PmE.js → SelectCard-yWBNnm7t.js} +32 -8
- package/dist/SelectCard-yWBNnm7t.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/SelectFieldSync-DCrafdbx.js +1248 -0
- package/dist/SelectFieldSync-DCrafdbx.js.map +1 -0
- package/dist/{SelectTrigger-DgsvUfyl.js → SelectTrigger-Cs5CGc4D.js} +2 -2
- package/dist/{SelectTrigger-DgsvUfyl.js.map → SelectTrigger-Cs5CGc4D.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-OxfNqdIq.js → SelectTriggerBase-Cs827tDp.js} +3 -3
- package/dist/{SelectTriggerBase-OxfNqdIq.js.map → SelectTriggerBase-Cs827tDp.js.map} +1 -1
- package/dist/{Stepper-D8lkCP8Y.js → Stepper-CzVKDg-N.js} +2 -2
- package/dist/{Stepper-D8lkCP8Y.js.map → Stepper-CzVKDg-N.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-D0zwZCg4.js → Switch-CEmjmSiL.js} +2 -2
- package/dist/{Switch-D0zwZCg4.js.map → Switch-CEmjmSiL.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/{Tab-CeXt6A_D.js → Tab-DXivEqur.js} +47 -6
- package/dist/Tab-DXivEqur.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{TextField-Dfzn2HeL.js → TextField-D9VWORek.js} +2 -2
- package/dist/{TextField-Dfzn2HeL.js.map → TextField-D9VWORek.js.map} +1 -1
- package/dist/{TextField-BycenT6H.js → TextField-atI4M79b.js} +3 -3
- package/dist/{TextField-BycenT6H.js.map → TextField-atI4M79b.js.map} +1 -1
- package/dist/TextField.css +29 -25
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-BP-hDP5m.js +22 -0
- package/dist/TextField.module-BP-hDP5m.js.map +1 -0
- package/dist/{Textarea-BwbwJP6z.js → Textarea-D-kPIsIN.js} +2 -2
- package/dist/{Textarea-BwbwJP6z.js.map → Textarea-D-kPIsIN.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-B0WSzSfJ.js → TimeField-DREFzFkw.js} +3 -3
- package/dist/{TimeField-B0WSzSfJ.js.map → TimeField-DREFzFkw.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-9Q_yaKGu.js → Toaster-B652KIzq.js} +4 -4
- package/dist/{Toaster-9Q_yaKGu.js.map → Toaster-B652KIzq.js.map} +1 -1
- package/dist/{Toaster-DHo8dnWH.js → Toaster-Bisc1mlh.js} +2 -2
- package/dist/{Toaster-DHo8dnWH.js.map → Toaster-Bisc1mlh.js.map} +1 -1
- package/dist/{Toolbar-CVOenuCF.js → Toolbar-jfZ-CupZ.js} +77 -63
- package/dist/Toolbar-jfZ-CupZ.js.map +1 -0
- package/dist/Toolbar.css +37 -55
- package/dist/Toolbar.js +1 -1
- package/dist/{YearlessDateInputWithPicker-ztozRk-X.js → YearlessDateInputWithPicker-mW5KykHZ.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-ztozRk-X.js.map → YearlessDateInputWithPicker-mW5KykHZ.js.map} +1 -1
- package/dist/beta/components/MultiSelectField/MultiSelectField.d.ts +1 -10
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +5 -0
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +0 -2
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +3 -7
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +6 -0
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +30 -0
- package/dist/beta/components/MultiSelectField/internal/types.d.ts +67 -0
- package/dist/beta/components/MultiSelectField/internal/useChipLayout.d.ts +19 -0
- package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +1 -2
- package/dist/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +40 -0
- package/dist/beta/components/MultiSelectField/internal/useToggleSelection.d.ts +21 -0
- package/dist/beta/components/MultiSelectField/types.d.ts +7 -0
- package/dist/beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts +1 -1
- package/dist/beta/components/SelectField/internal/FieldListBase.d.ts +3 -4
- package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +6 -0
- package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +0 -2
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -3
- package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +3 -7
- package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +2 -4
- package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +6 -0
- package/dist/beta/components/SelectField/internal/SelectFieldTrigger.d.ts +27 -0
- package/dist/beta/components/SelectField/internal/buildDownshiftItems.d.ts +22 -0
- package/dist/beta/components/SelectField/internal/types.d.ts +57 -0
- package/dist/beta/components/SelectField/internal/useCombo.d.ts +1 -5
- package/dist/beta/components/SelectField/internal/useProcessedOptions.d.ts +19 -0
- package/dist/beta/components/SelectField/internal/useSelectMode.d.ts +34 -0
- package/dist/beta/components/SelectField/types.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +21 -2
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableBooleanCell.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +4 -0
- package/dist/beta/components/Table/DataTable/types.d.ts +20 -0
- package/dist/beta/components/Table/createColumnHelper.d.ts +18 -7
- package/dist/beta/components/Table/types.d.ts +44 -3
- package/dist/beta/components/Toolbar/Toolbar.d.ts +17 -7
- package/dist/beta/components/Toolbar/ToolbarButton.d.ts +0 -1
- package/dist/beta/components/Toolbar/ToolbarButtonLink.d.ts +0 -1
- package/dist/beta/components/Toolbar/ToolbarButtonToggle.d.ts +0 -1
- package/dist/beta/components/Toolbar/ToolbarSearchField.d.ts +2 -3
- package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +0 -1
- package/dist/beta/components/Toolbar/internal/{ToolbarOverflowContext.d.ts → ToolbarContext.d.ts} +14 -5
- package/dist/beta/components/Toolbar/internal/utils/test.d.ts +5 -3
- package/dist/beta/components/Toolbar/types.d.ts +5 -1
- package/dist/beta.js +7 -7
- package/dist/components/ButtonLink/ButtonLink.d.ts +3 -3
- package/dist/components/Pagination/Pagination.d.ts +3 -0
- package/dist/components/Pagination/internal/PaginationItemsPerPageMenu.d.ts +5 -0
- package/dist/components/SearchField/SearchField.d.ts +8 -26
- package/dist/components/SearchField/internal/SearchField.d.ts +73 -0
- package/dist/components/Tab/Tab.d.ts +41 -2
- package/dist/components/Tab/internal/TabContext.d.ts +1 -1
- package/dist/components/Toolbar/Toolbar.d.ts +11 -5
- package/dist/components/Toolbar/ToolbarButton.d.ts +0 -1
- package/dist/components/Toolbar/ToolbarButtonLink.d.ts +0 -1
- package/dist/components/Toolbar/ToolbarButtonToggle.d.ts +0 -1
- package/dist/components/Toolbar/ToolbarSelect.d.ts +0 -1
- package/dist/components/Toolbar/internal/{ToolbarOverflowContext.d.ts → ToolbarContext.d.ts} +14 -5
- package/dist/components/Toolbar/internal/utils/test.d.ts +5 -3
- package/dist/components/Toolbar/types.d.ts +5 -1
- package/dist/{index-DFvIVS57.js → index-ClUtwV8V.js} +2 -2
- package/dist/{index-DFvIVS57.js.map → index-ClUtwV8V.js.map} +1 -1
- package/dist/index.js +81 -70
- package/dist/index.js.map +1 -1
- package/dist/index2.css +17 -23
- package/dist/internal/components/ManualTestLayout/ManualTestLayout.d.ts +16 -0
- package/dist/internal/components/ManualTestLayout/index.d.ts +1 -0
- package/dist/internal/components/index.d.ts +1 -0
- package/dist/{match-sorter.esm-B3vwg1-X.js → match-sorter.esm-adzV1NDp.js} +2 -2
- package/dist/{match-sorter.esm-B3vwg1-X.js.map → match-sorter.esm-adzV1NDp.js.map} +1 -1
- package/dist/{useDrilldown-jbU4Cs5l.js → useDrilldown-hUxMOdnz.js} +2 -2
- package/dist/{useDrilldown-jbU4Cs5l.js.map → useDrilldown-hUxMOdnz.js.map} +1 -1
- package/package.json +5 -4
- package/dist/Button.module-Ck7VrMqw.js +0 -26
- package/dist/Button.module-Ck7VrMqw.js.map +0 -1
- package/dist/ButtonLink-CRlyK750.js.map +0 -1
- package/dist/DataTable-D30sE1Xt.js.map +0 -1
- package/dist/FieldDialog-CAuhkCZY.js.map +0 -1
- package/dist/FieldMessage-DS0COrjp.js +0 -132
- package/dist/FieldMessage-DS0COrjp.js.map +0 -1
- package/dist/MultiSelectFieldSync-Bey99LzJ.js.map +0 -1
- package/dist/Pagination-DIatYUXX.js.map +0 -1
- package/dist/SearchField-CoeaOip5.js.map +0 -1
- package/dist/SelectCard-Bag44PmE.js.map +0 -1
- package/dist/SelectFieldSync-CigqXq3T.js +0 -763
- package/dist/SelectFieldSync-CigqXq3T.js.map +0 -1
- package/dist/Tab-CeXt6A_D.js.map +0 -1
- package/dist/TextField.module-pD1felN8.js +0 -20
- package/dist/TextField.module-pD1felN8.js.map +0 -1
- package/dist/Toolbar-CVOenuCF.js.map +0 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { DataTrackingId, LayoutUtilProps, Size } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the SearchField component
|
|
5
|
+
* @extends Omit<ComponentPropsWithoutRef<"input">, "size" | "prefix" | "required" | "children">
|
|
6
|
+
* @extends LayoutUtilProps
|
|
7
|
+
*/
|
|
8
|
+
export type SearchFieldProps = Omit<ComponentPropsWithoutRef<"input">, "size" | "prefix" | "required" | "children"> & LayoutUtilProps & {
|
|
9
|
+
/**
|
|
10
|
+
* Size of the search field
|
|
11
|
+
* @default "medium"
|
|
12
|
+
*/
|
|
13
|
+
size?: Extract<Size, "xsmall" | "small" | "medium" | "large">;
|
|
14
|
+
/**
|
|
15
|
+
* Whether the search field is disabled
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Callback when the clear button is clicked or activated via keyboard (Enter/Space)
|
|
21
|
+
*/
|
|
22
|
+
onClear?: () => void;
|
|
23
|
+
} & DataTrackingId;
|
|
24
|
+
/**
|
|
25
|
+
* SearchField component for text input with search functionality.
|
|
26
|
+
*
|
|
27
|
+
* Features:
|
|
28
|
+
* - Search icon prefix for visual clarity
|
|
29
|
+
* - Clear button that appears when input has value
|
|
30
|
+
* - Arrow key navigation between input and clear button (Right arrow to clear button, Left arrow back to input)
|
|
31
|
+
* - Clear button activated with Enter/Space keys
|
|
32
|
+
* - Focus returns to input after clearing
|
|
33
|
+
* - Multiple size variants (xsmall, small, medium, large)
|
|
34
|
+
* - Controlled and uncontrolled modes
|
|
35
|
+
* - Disabled and read-only states
|
|
36
|
+
* - Accessibility support with proper ARIA attributes
|
|
37
|
+
* - Layout utility props for positioning and spacing
|
|
38
|
+
* - Automatic value detection for clear button visibility
|
|
39
|
+
* - Search-specific input type and autocomplete settings
|
|
40
|
+
* - Screen reader support with placeholder announcements
|
|
41
|
+
* - Automatic tracking ID generation for analytics
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* <SearchField
|
|
45
|
+
* placeholder="Search users..."
|
|
46
|
+
* onChange={(e) => setSearchTerm(e.target.value)}
|
|
47
|
+
* onClear={() => setSearchTerm("")}
|
|
48
|
+
* />
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* <SearchField
|
|
52
|
+
* size="large"
|
|
53
|
+
* value={searchValue}
|
|
54
|
+
* onChange={(e) => setSearchValue(e.target.value)}
|
|
55
|
+
* disabled={isLoading}
|
|
56
|
+
* />
|
|
57
|
+
*/
|
|
58
|
+
export declare const SearchField: import('react').ForwardRefExoticComponent<Omit<Omit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "size" | "children" | "prefix" | "required"> & LayoutUtilProps & {
|
|
59
|
+
/**
|
|
60
|
+
* Size of the search field
|
|
61
|
+
* @default "medium"
|
|
62
|
+
*/
|
|
63
|
+
size?: Extract<Size, "xsmall" | "small" | "medium" | "large">;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the search field is disabled
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Callback when the clear button is clicked or activated via keyboard (Enter/Space)
|
|
71
|
+
*/
|
|
72
|
+
onClear?: () => void;
|
|
73
|
+
} & DataTrackingId & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -8,8 +8,21 @@ import { LayoutUtilProps } from '../../types';
|
|
|
8
8
|
export type TabProps = Omit<ComponentPropsWithoutRef<"div">, "onAnimationStart" | "onDragStart" | "onDragEnd" | "onDrag"> & LayoutUtilProps & {
|
|
9
9
|
/**
|
|
10
10
|
* The index of the tab that should be active by default.
|
|
11
|
+
* Use for uncontrolled usage. For controlled usage, use `index` instead.
|
|
12
|
+
* @default 0
|
|
11
13
|
*/
|
|
12
|
-
defaultIndex
|
|
14
|
+
defaultIndex?: number;
|
|
15
|
+
/**
|
|
16
|
+
* The index of the currently active tab.
|
|
17
|
+
* Use for controlled usage. For uncontrolled usage, use `defaultIndex` instead.
|
|
18
|
+
*/
|
|
19
|
+
index?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Callback fired when the active tab changes.
|
|
22
|
+
* Use with `index` for controlled usage.
|
|
23
|
+
* @param index The index of the newly active tab
|
|
24
|
+
*/
|
|
25
|
+
onIndexChange?: (index: number) => void;
|
|
13
26
|
/**
|
|
14
27
|
* Whether the tabs should fill the available width.
|
|
15
28
|
* @default false
|
|
@@ -27,9 +40,11 @@ export type TabProps = Omit<ComponentPropsWithoutRef<"div">, "onAnimationStart"
|
|
|
27
40
|
* - Automatic focus management
|
|
28
41
|
* - Scroll behavior for overflow tabs
|
|
29
42
|
* - Compound component pattern with Tab.Button, Tab.List, and Tab.Panel
|
|
43
|
+
* - Supports controlled state via `index` and `onIndexChange` props
|
|
30
44
|
* - Supports layout utilities for positioning and spacing
|
|
31
45
|
*
|
|
32
46
|
* @example
|
|
47
|
+
* // Uncontrolled
|
|
33
48
|
* <Tab defaultIndex={0}>
|
|
34
49
|
* <Tab.List>
|
|
35
50
|
* <Tab.Button id="tab1" controls="panel1">First Tab</Tab.Button>
|
|
@@ -38,12 +53,36 @@ export type TabProps = Omit<ComponentPropsWithoutRef<"div">, "onAnimationStart"
|
|
|
38
53
|
* <Tab.Panel id="panel1">Content for first tab</Tab.Panel>
|
|
39
54
|
* <Tab.Panel id="panel2">Content for second tab</Tab.Panel>
|
|
40
55
|
* </Tab>
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // Controlled
|
|
59
|
+
* <Tab index={activeIndex} onIndexChange={setActiveIndex}>
|
|
60
|
+
* <Tab.List>
|
|
61
|
+
* <Tab.Button id="tab1" controls="panel1">First Tab</Tab.Button>
|
|
62
|
+
* <Tab.Button id="tab2" controls="panel2">Second Tab</Tab.Button>
|
|
63
|
+
* </Tab.List>
|
|
64
|
+
* <Tab.Panel id="panel1">Content for first tab</Tab.Panel>
|
|
65
|
+
* <Tab.Panel id="panel2">Content for second tab</Tab.Panel>
|
|
66
|
+
* </Tab>
|
|
41
67
|
*/
|
|
42
68
|
export declare const Tab: import('react').ForwardRefExoticComponent<Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onDrag" | "onDragEnd" | "onDragStart" | "onAnimationStart"> & LayoutUtilProps & {
|
|
43
69
|
/**
|
|
44
70
|
* The index of the tab that should be active by default.
|
|
71
|
+
* Use for uncontrolled usage. For controlled usage, use `index` instead.
|
|
72
|
+
* @default 0
|
|
73
|
+
*/
|
|
74
|
+
defaultIndex?: number;
|
|
75
|
+
/**
|
|
76
|
+
* The index of the currently active tab.
|
|
77
|
+
* Use for controlled usage. For uncontrolled usage, use `defaultIndex` instead.
|
|
78
|
+
*/
|
|
79
|
+
index?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Callback fired when the active tab changes.
|
|
82
|
+
* Use with `index` for controlled usage.
|
|
83
|
+
* @param index The index of the newly active tab
|
|
45
84
|
*/
|
|
46
|
-
|
|
85
|
+
onIndexChange?: (index: number) => void;
|
|
47
86
|
/**
|
|
48
87
|
* Whether the tabs should fill the available width.
|
|
49
88
|
* @default false
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Dispatch, KeyboardEvent, SetStateAction } from 'react';
|
|
2
2
|
type TabContextProps = {
|
|
3
3
|
current: number;
|
|
4
|
-
setCurrent?: Dispatch<SetStateAction<number>>;
|
|
4
|
+
setCurrent?: Dispatch<SetStateAction<number | undefined>>;
|
|
5
5
|
focus: number;
|
|
6
6
|
setFocus?: Dispatch<SetStateAction<number>>;
|
|
7
7
|
items?: NodeListOf<HTMLElement>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ToolbarOverflowTypes } from './types';
|
|
1
|
+
import { ToolbarOverflowTypes, ToolbarSize } from './types';
|
|
2
2
|
import { ComponentPropsWithoutRef, ReactElement } from 'react';
|
|
3
3
|
import { LayoutUtilProps } from '../../types';
|
|
4
4
|
/**
|
|
@@ -25,6 +25,11 @@ export type ToolbarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
|
|
|
25
25
|
* Additional items to display in the overflow menu
|
|
26
26
|
*/
|
|
27
27
|
additionalItems?: ReactElement[];
|
|
28
|
+
/**
|
|
29
|
+
* Size of toolbar items
|
|
30
|
+
* @default xsmall
|
|
31
|
+
*/
|
|
32
|
+
size?: ToolbarSize;
|
|
28
33
|
};
|
|
29
34
|
/**
|
|
30
35
|
* Toolbar component for grouping related interactive elements.
|
|
@@ -69,6 +74,11 @@ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<imp
|
|
|
69
74
|
* Additional items to display in the overflow menu
|
|
70
75
|
*/
|
|
71
76
|
additionalItems?: ReactElement[];
|
|
77
|
+
/**
|
|
78
|
+
* Size of toolbar items
|
|
79
|
+
* @default xsmall
|
|
80
|
+
*/
|
|
81
|
+
size?: ToolbarSize;
|
|
72
82
|
} & import('react').RefAttributes<HTMLDivElement>> & {
|
|
73
83
|
/**
|
|
74
84
|
* ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.
|
|
@@ -79,7 +89,6 @@ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<imp
|
|
|
79
89
|
* - Automatic tooltip for icon-only buttons
|
|
80
90
|
* - Overflow menu support
|
|
81
91
|
* - Accessibility enforcement for aria-labels
|
|
82
|
-
* - Small size optimized for toolbar layout
|
|
83
92
|
* - Ghost and primary appearance options
|
|
84
93
|
* - Automatic tracking ID generation for analytics
|
|
85
94
|
*
|
|
@@ -101,7 +110,6 @@ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<imp
|
|
|
101
110
|
* - Consistent styling with other toolbar items
|
|
102
111
|
* - Overflow menu support
|
|
103
112
|
* - Accessibility enforcement for aria-labels
|
|
104
|
-
* - Small size optimized for toolbar layout
|
|
105
113
|
* - Ghost and primary appearance options
|
|
106
114
|
* - Automatic tracking ID generation for analytics
|
|
107
115
|
*
|
|
@@ -118,7 +126,6 @@ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<imp
|
|
|
118
126
|
* - Consistent styling with other toolbar items
|
|
119
127
|
* - Overflow menu support
|
|
120
128
|
* - Accessibility enforcement for aria-labels
|
|
121
|
-
* - Small size optimized for toolbar layout
|
|
122
129
|
* - Ghost and primary appearance options
|
|
123
130
|
* - Automatic tracking ID generation for analytics
|
|
124
131
|
*
|
|
@@ -136,7 +143,6 @@ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<imp
|
|
|
136
143
|
* - Controlled and uncontrolled usage patterns
|
|
137
144
|
* - Automatic overflow menu integration
|
|
138
145
|
* - Accessibility support with proper ARIA labels
|
|
139
|
-
* - Small size optimized for toolbar layout
|
|
140
146
|
* - Ghost and primary appearance options
|
|
141
147
|
* - Dropdown arrow icon indicator
|
|
142
148
|
* - Listbox integration for keyboard navigation
|
|
@@ -30,7 +30,6 @@ export type ToolbarButtonProps = WithAriaLabelEnforcement<ToolbarButtonBaseProps
|
|
|
30
30
|
* - Automatic tooltip for icon-only buttons
|
|
31
31
|
* - Overflow menu support
|
|
32
32
|
* - Accessibility enforcement for aria-labels
|
|
33
|
-
* - Small size optimized for toolbar layout
|
|
34
33
|
* - Ghost and primary appearance options
|
|
35
34
|
*
|
|
36
35
|
* @example
|
|
@@ -27,7 +27,6 @@ export type ToolbarButtonLinkProps = WithAriaLabelEnforcement<ToolbarButtonLinkB
|
|
|
27
27
|
* - Automatic tooltip for icon-only links
|
|
28
28
|
* - Overflow menu support
|
|
29
29
|
* - Accessibility enforcement for aria-labels
|
|
30
|
-
* - Small size optimized for toolbar layout
|
|
31
30
|
* - Ghost and primary appearance options
|
|
32
31
|
* - Proper anchor element semantics
|
|
33
32
|
*
|
|
@@ -21,7 +21,6 @@ export type ToolbarButtonToggleProps = WithAriaLabelEnforcement<ToolbarButtonTog
|
|
|
21
21
|
* - Automatic tooltip for icon-only toggles
|
|
22
22
|
* - Overflow menu support
|
|
23
23
|
* - Accessibility enforcement for aria-labels
|
|
24
|
-
* - Small size optimized for toolbar layout
|
|
25
24
|
* - Visual feedback for toggle state
|
|
26
25
|
* - Proper ARIA attributes for toggle semantics
|
|
27
26
|
*
|
|
@@ -44,7 +44,6 @@ export type ToolbarSelectProps<T = Record<string, unknown>> = Omit<React.Compone
|
|
|
44
44
|
* - Controlled and uncontrolled usage patterns
|
|
45
45
|
* - Automatic overflow menu integration
|
|
46
46
|
* - Accessibility support with proper ARIA labels
|
|
47
|
-
* - Small size optimized for toolbar layout
|
|
48
47
|
* - Ghost and primary appearance options
|
|
49
48
|
* - Dropdown arrow icon indicator
|
|
50
49
|
* - Listbox integration for keyboard navigation
|
package/dist/components/Toolbar/internal/{ToolbarOverflowContext.d.ts → ToolbarContext.d.ts}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
-
import { ToolbarItemProps, ToolbarOverflowTypes } from '../types';
|
|
2
|
+
import { ToolbarItemProps, ToolbarOverflowTypes, ToolbarSize } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
* Context for sharing toolbar state with child components
|
|
4
|
+
* Context for sharing toolbar state with child components
|
|
5
5
|
*/
|
|
6
|
-
export type
|
|
6
|
+
export type ToolbarContextProps = {
|
|
7
7
|
/**
|
|
8
8
|
* Array of toolbar items that should appear in the overflow menu
|
|
9
9
|
*/
|
|
@@ -28,8 +28,17 @@ export type ToolbarOverFlowContextProps = {
|
|
|
28
28
|
* Overflow behavior type (wrap or collapse)
|
|
29
29
|
*/
|
|
30
30
|
overflow: ToolbarOverflowTypes;
|
|
31
|
+
/**
|
|
32
|
+
* Size of toolbar child components
|
|
33
|
+
*/
|
|
34
|
+
size: ToolbarSize;
|
|
31
35
|
};
|
|
32
36
|
/**
|
|
33
|
-
* Context for managing toolbar overflow
|
|
37
|
+
* Context for managing toolbar state including overflow and size
|
|
38
|
+
*/
|
|
39
|
+
export declare const ToolbarContext: import('react').Context<ToolbarContextProps>;
|
|
40
|
+
/**
|
|
41
|
+
* Hook to access the toolbar size from context
|
|
42
|
+
* @returns The current toolbar size
|
|
34
43
|
*/
|
|
35
|
-
export declare const
|
|
44
|
+
export declare const useToolbarSize: () => ToolbarSize;
|
|
@@ -3,7 +3,7 @@ import { ToolbarOverflowTypes } from '../../types';
|
|
|
3
3
|
export declare const withOverflowItemContext: (children: ReactNode, isInOverflowMenu?: boolean) => import('react').FunctionComponentElement<import('react').ProviderProps<{
|
|
4
4
|
isInOverflowMenu: boolean;
|
|
5
5
|
}>>;
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const createMockToolbarContext: (overrides?: {}) => {
|
|
7
7
|
overflowItems: never[];
|
|
8
8
|
orderedIds: never[];
|
|
9
9
|
addItem: import('vitest').Mock<(...args: any[]) => any>;
|
|
@@ -12,8 +12,9 @@ export declare const createMockOverflowContext: (overrides?: {}) => {
|
|
|
12
12
|
current: HTMLDivElement;
|
|
13
13
|
};
|
|
14
14
|
overflow: ToolbarOverflowTypes;
|
|
15
|
+
size: "xsmall";
|
|
15
16
|
};
|
|
16
|
-
export declare const
|
|
17
|
+
export declare const withToolbarContext: (children: ReactNode, contextValue?: {
|
|
17
18
|
overflowItems: never[];
|
|
18
19
|
orderedIds: never[];
|
|
19
20
|
addItem: import('vitest').Mock<(...args: any[]) => any>;
|
|
@@ -22,7 +23,8 @@ export declare const withToolbarOverflowContext: (children: ReactNode, contextVa
|
|
|
22
23
|
current: HTMLDivElement;
|
|
23
24
|
};
|
|
24
25
|
overflow: ToolbarOverflowTypes;
|
|
25
|
-
|
|
26
|
+
size: "xsmall";
|
|
27
|
+
}) => import('react').FunctionComponentElement<import('react').ProviderProps<import('../ToolbarContext').ToolbarContextProps>>;
|
|
26
28
|
export declare const mockIntersectionObserver: import('vitest').Mock<(...args: any[]) => any>;
|
|
27
29
|
export declare const observerMap: Map<any, any>;
|
|
28
30
|
export declare const createIntersectionEntry: (element: Element, isIntersecting: boolean) => IntersectionObserverEntry;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { ButtonAppearance } from '../../types';
|
|
1
|
+
import { ButtonAppearance, Size } from '../../types';
|
|
2
2
|
import { IconProps } from '../Icon';
|
|
3
3
|
import { ToolbarButtonProps } from './ToolbarButton';
|
|
4
4
|
import { ToolbarButtonLinkProps } from './ToolbarButtonLink';
|
|
5
5
|
import { ToolbarButtonToggleProps } from './ToolbarButtonToggle';
|
|
6
6
|
import { ToolbarSelectProps } from './ToolbarSelect';
|
|
7
|
+
/**
|
|
8
|
+
* Toolbar size options
|
|
9
|
+
*/
|
|
10
|
+
export type ToolbarSize = Extract<Size, "xsmall" | "small" | "medium" | "large">;
|
|
7
11
|
/**
|
|
8
12
|
* Toolbar overflow options
|
|
9
13
|
*/
|
|
@@ -3,7 +3,7 @@ import { I as Icon } from './Icon-Bcil6aBo.js';
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
5
|
import { c as cx } from './index-SvGbrGuT.js';
|
|
6
|
-
import { B as ButtonCompound } from './ButtonCompound-
|
|
6
|
+
import { B as ButtonCompound } from './ButtonCompound-D9VTKcL4.js';
|
|
7
7
|
|
|
8
8
|
import './index.css';const SvgDragIndicator = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" }));
|
|
9
9
|
|
|
@@ -104,4 +104,4 @@ const Dnd = {
|
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
export { Dnd as D, DndSortLine as a, DndHandleButton as b, DndHandle as c, styles as s };
|
|
107
|
-
//# sourceMappingURL=index-
|
|
107
|
+
//# sourceMappingURL=index-ClUtwV8V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-DFvIVS57.js","sources":["../../hammer-icon/mdi/round/drag_indicator.svg","../src/components/Dnd/DndHandle.tsx","../src/components/Dnd/DndHandleButton.tsx","../src/components/Dnd/DndSortLine.tsx","../src/components/Dnd/DndZone.tsx","../src/components/Dnd/index.ts"],"sourcesContent":["import * as React from \"react\";\nconst SvgDragIndicator = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" }));\nexport default SvgDragIndicator;\n","import { Icon } from \"../Icon\";\nimport DragIndicator from \"@servicetitan/hammer-icon/mdi/round/drag_indicator.svg\";\nimport styles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\n\n/**\n * Props for the DndHandle component\n */\nexport type DndHandleProps = {\n /**\n * Additional CSS class names to apply to the drag handle.\n */\n className?: string;\n};\n\n/**\n * A reusable drag handle icon component for drag and drop interactions.\n *\n * Features:\n * - Standardized drag indicator icon\n * - Accessible with proper ARIA attributes\n * - Customizable styling through className prop\n * - Consistent visual appearance across applications\n * - Lightweight and performant\n * - Supports all standard HTML element props\n *\n * @example\n * <DndHandle className=\"custom-drag-handle\" />\n */\nexport function DndHandle({ className }: { className?: string }) {\n const handleClasses = cx(styles.handle, className);\n return (\n <Icon svg={DragIndicator} className={handleClasses} role=\"presentation\" />\n );\n}\n","import { ButtonCompound } from \"../ButtonCompound\";\nimport handleStyles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { DndHandle } from \"./DndHandle\";\n\n/**\n * Props for the DndHandleButton component\n * @extends React.ComponentPropsWithoutRef<typeof ButtonCompound>\n */\nexport interface DndHandleButtonProps\n extends React.ComponentPropsWithoutRef<typeof ButtonCompound> {\n /**\n * Indicates whether the handle is currently being dragged.\n * @default false\n */\n isActive?: boolean;\n}\n\n/**\n * A reusable drag handle button component for drag and drop functionality.\n *\n * Features:\n * - Interactive button with drag handle icon\n * - Visual feedback for active drag state\n * - Accessible with proper ARIA attributes (defaults to \"Drag handle\")\n * - Extends ButtonCompound functionality\n * - Customizable styling through className prop\n * - Supports all standard button props\n * - Consistent visual appearance across applications\n *\n * @example\n * <DndHandleButton\n * isActive={isDragging}\n * aria-label=\"Drag task item\"\n * className=\"custom-handle-button\"\n * onClick={handleClick}\n * />\n */\nexport const DndHandleButton = forwardRef<\n HTMLButtonElement,\n DndHandleButtonProps\n>(({ isActive = false, className, ...props }, ref) => {\n const handleButtonClasses = cx(className, handleStyles[\"handle-button\"], {\n [handleStyles[\"active\"]]: isActive,\n });\n\n return (\n <ButtonCompound\n ref={ref}\n className={handleButtonClasses}\n type=\"button\"\n shape=\"rounded\"\n aria-label=\"Drag handle\"\n {...props}\n >\n <DndHandle />\n </ButtonCompound>\n );\n});\n\nDndHandleButton.displayName = \"DndHandleButton\";\n","import cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\nimport { CSSProperties } from \"react\";\n\n/**\n * Props for the DndSortLine component\n * @extends React.ComponentPropsWithoutRef<\"div\">\n */\nexport type SortLineProps = React.ComponentPropsWithoutRef<\"div\"> & {\n /**\n * The offset of the line from the item. This is a CSS value, typically negative.\n */\n offset: string;\n /**\n * The orientation of the sort - Note this may be counterintuitive, as the line is rendered perpendicular to the sort.\n */\n orientation: \"horizontal\" | \"vertical\";\n /**\n * The position of the line relative to a target item.\n */\n position: \"before\" | \"after\";\n};\n\n/**\n * A visual indicator line that shows where an item will be dropped during drag and drop operations.\n *\n * Features:\n * - Visual feedback for drop positioning\n * - Configurable orientation (horizontal/vertical)\n * - Adjustable positioning (before/after)\n * - Customizable offset for precise placement\n * - Accessible with proper ARIA attributes\n * - Automatic CSS class management\n * - Supports all standard HTML div props\n *\n * @example\n * <DndSortLine\n * offset=\"-10px\"\n * orientation=\"vertical\"\n * position=\"after\"\n * className=\"custom-drop-line\"\n * />\n */\nexport const DndSortLine = ({\n offset,\n orientation,\n position,\n ...rest\n}: SortLineProps) => {\n const classes = cx(\n styles[\"drop-line\"],\n styles[`orientation-${orientation}`],\n styles[`position-${position}`],\n );\n\n return (\n <div\n aria-hidden\n className={classes}\n style={{ \"--drop-line-offset\": offset } as CSSProperties}\n {...rest}\n />\n );\n};\n","import { ElementType, forwardRef, ReactNode } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\n\n/**\n * Props for the DndZone component\n * @extends Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">\n */\nexport type DndZoneProps<T extends ElementType = \"div\"> = {\n /**\n * The HTML element type to render. Can be any valid HTML element or React component.\n * @default \"div\"\n */\n el?: T;\n /**\n * The content to be rendered inside the drop zone.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names to apply to the drop zone.\n */\n className?: string;\n /**\n * Indicates whether a draggable item is currently over this drop zone.\n */\n isOver: boolean;\n /**\n * Indicates whether the current drag operation is valid for this drop zone.\n */\n isValid: boolean;\n /**\n * Indicates whether any item is currently being dragged.\n */\n isDragging: boolean;\n} & Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">;\n\n/**\n * Base styling component for drop zones that handles visual states and styling.\n *\n * Features:\n * - Configurable HTML element rendering with the 'el' prop\n * - Visual feedback for drag states (over, valid, dragging)\n * - Automatic CSS class management based on drag state\n * - Supports all standard HTML element props\n * - Accessible with proper ARIA attributes\n * - Flexible styling through className prop\n * - Responsive design that adapts to container\n *\n * @example\n * <DndZone\n * isOver={isOver}\n * isValid={isValid}\n * isDragging={isDragging}\n * className=\"custom-drop-zone\"\n * >\n * Drop items here\n * </DndZone>\n */\nexport const DndZone = forwardRef<HTMLDivElement, DndZoneProps<ElementType>>(\n (\n {\n el: Component = \"div\" as ElementType,\n children,\n className,\n isDragging,\n isOver,\n isValid,\n ...rest\n },\n ref,\n ) => {\n const classes = cx(className, {\n [styles[\"drop-zone\"]]: true,\n [styles[\"over-valid\"]]: isDragging && isOver && isValid,\n [styles[\"over-invalid\"]]: isDragging && isOver && !isValid,\n [styles[\"active-not-over\"]]: isDragging && !isOver,\n });\n\n return (\n <Component ref={ref} className={classes} {...rest}>\n {children}\n </Component>\n );\n },\n);\n\nDndZone.displayName = \"DndZoneBase\";\n","import { DndHandle } from \"./DndHandle\";\nimport { DndHandleButton } from \"./DndHandleButton\";\nimport { DndSortLine } from \"./DndSortLine\";\nimport { DndZone } from \"./DndZone\";\n\nexport const Dnd = {\n Handle: DndHandle,\n HandleButton: DndHandleButton,\n SortLine: DndSortLine,\n Zone: DndZone,\n};\n"],"names":["styles","DragIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-ClUtwV8V.js","sources":["../../hammer-icon/mdi/round/drag_indicator.svg","../src/components/Dnd/DndHandle.tsx","../src/components/Dnd/DndHandleButton.tsx","../src/components/Dnd/DndSortLine.tsx","../src/components/Dnd/DndZone.tsx","../src/components/Dnd/index.ts"],"sourcesContent":["import * as React from \"react\";\nconst SvgDragIndicator = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" }));\nexport default SvgDragIndicator;\n","import { Icon } from \"../Icon\";\nimport DragIndicator from \"@servicetitan/hammer-icon/mdi/round/drag_indicator.svg\";\nimport styles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\n\n/**\n * Props for the DndHandle component\n */\nexport type DndHandleProps = {\n /**\n * Additional CSS class names to apply to the drag handle.\n */\n className?: string;\n};\n\n/**\n * A reusable drag handle icon component for drag and drop interactions.\n *\n * Features:\n * - Standardized drag indicator icon\n * - Accessible with proper ARIA attributes\n * - Customizable styling through className prop\n * - Consistent visual appearance across applications\n * - Lightweight and performant\n * - Supports all standard HTML element props\n *\n * @example\n * <DndHandle className=\"custom-drag-handle\" />\n */\nexport function DndHandle({ className }: { className?: string }) {\n const handleClasses = cx(styles.handle, className);\n return (\n <Icon svg={DragIndicator} className={handleClasses} role=\"presentation\" />\n );\n}\n","import { ButtonCompound } from \"../ButtonCompound\";\nimport handleStyles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { DndHandle } from \"./DndHandle\";\n\n/**\n * Props for the DndHandleButton component\n * @extends React.ComponentPropsWithoutRef<typeof ButtonCompound>\n */\nexport interface DndHandleButtonProps\n extends React.ComponentPropsWithoutRef<typeof ButtonCompound> {\n /**\n * Indicates whether the handle is currently being dragged.\n * @default false\n */\n isActive?: boolean;\n}\n\n/**\n * A reusable drag handle button component for drag and drop functionality.\n *\n * Features:\n * - Interactive button with drag handle icon\n * - Visual feedback for active drag state\n * - Accessible with proper ARIA attributes (defaults to \"Drag handle\")\n * - Extends ButtonCompound functionality\n * - Customizable styling through className prop\n * - Supports all standard button props\n * - Consistent visual appearance across applications\n *\n * @example\n * <DndHandleButton\n * isActive={isDragging}\n * aria-label=\"Drag task item\"\n * className=\"custom-handle-button\"\n * onClick={handleClick}\n * />\n */\nexport const DndHandleButton = forwardRef<\n HTMLButtonElement,\n DndHandleButtonProps\n>(({ isActive = false, className, ...props }, ref) => {\n const handleButtonClasses = cx(className, handleStyles[\"handle-button\"], {\n [handleStyles[\"active\"]]: isActive,\n });\n\n return (\n <ButtonCompound\n ref={ref}\n className={handleButtonClasses}\n type=\"button\"\n shape=\"rounded\"\n aria-label=\"Drag handle\"\n {...props}\n >\n <DndHandle />\n </ButtonCompound>\n );\n});\n\nDndHandleButton.displayName = \"DndHandleButton\";\n","import cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\nimport { CSSProperties } from \"react\";\n\n/**\n * Props for the DndSortLine component\n * @extends React.ComponentPropsWithoutRef<\"div\">\n */\nexport type SortLineProps = React.ComponentPropsWithoutRef<\"div\"> & {\n /**\n * The offset of the line from the item. This is a CSS value, typically negative.\n */\n offset: string;\n /**\n * The orientation of the sort - Note this may be counterintuitive, as the line is rendered perpendicular to the sort.\n */\n orientation: \"horizontal\" | \"vertical\";\n /**\n * The position of the line relative to a target item.\n */\n position: \"before\" | \"after\";\n};\n\n/**\n * A visual indicator line that shows where an item will be dropped during drag and drop operations.\n *\n * Features:\n * - Visual feedback for drop positioning\n * - Configurable orientation (horizontal/vertical)\n * - Adjustable positioning (before/after)\n * - Customizable offset for precise placement\n * - Accessible with proper ARIA attributes\n * - Automatic CSS class management\n * - Supports all standard HTML div props\n *\n * @example\n * <DndSortLine\n * offset=\"-10px\"\n * orientation=\"vertical\"\n * position=\"after\"\n * className=\"custom-drop-line\"\n * />\n */\nexport const DndSortLine = ({\n offset,\n orientation,\n position,\n ...rest\n}: SortLineProps) => {\n const classes = cx(\n styles[\"drop-line\"],\n styles[`orientation-${orientation}`],\n styles[`position-${position}`],\n );\n\n return (\n <div\n aria-hidden\n className={classes}\n style={{ \"--drop-line-offset\": offset } as CSSProperties}\n {...rest}\n />\n );\n};\n","import { ElementType, forwardRef, ReactNode } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\n\n/**\n * Props for the DndZone component\n * @extends Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">\n */\nexport type DndZoneProps<T extends ElementType = \"div\"> = {\n /**\n * The HTML element type to render. Can be any valid HTML element or React component.\n * @default \"div\"\n */\n el?: T;\n /**\n * The content to be rendered inside the drop zone.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names to apply to the drop zone.\n */\n className?: string;\n /**\n * Indicates whether a draggable item is currently over this drop zone.\n */\n isOver: boolean;\n /**\n * Indicates whether the current drag operation is valid for this drop zone.\n */\n isValid: boolean;\n /**\n * Indicates whether any item is currently being dragged.\n */\n isDragging: boolean;\n} & Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">;\n\n/**\n * Base styling component for drop zones that handles visual states and styling.\n *\n * Features:\n * - Configurable HTML element rendering with the 'el' prop\n * - Visual feedback for drag states (over, valid, dragging)\n * - Automatic CSS class management based on drag state\n * - Supports all standard HTML element props\n * - Accessible with proper ARIA attributes\n * - Flexible styling through className prop\n * - Responsive design that adapts to container\n *\n * @example\n * <DndZone\n * isOver={isOver}\n * isValid={isValid}\n * isDragging={isDragging}\n * className=\"custom-drop-zone\"\n * >\n * Drop items here\n * </DndZone>\n */\nexport const DndZone = forwardRef<HTMLDivElement, DndZoneProps<ElementType>>(\n (\n {\n el: Component = \"div\" as ElementType,\n children,\n className,\n isDragging,\n isOver,\n isValid,\n ...rest\n },\n ref,\n ) => {\n const classes = cx(className, {\n [styles[\"drop-zone\"]]: true,\n [styles[\"over-valid\"]]: isDragging && isOver && isValid,\n [styles[\"over-invalid\"]]: isDragging && isOver && !isValid,\n [styles[\"active-not-over\"]]: isDragging && !isOver,\n });\n\n return (\n <Component ref={ref} className={classes} {...rest}>\n {children}\n </Component>\n );\n },\n);\n\nDndZone.displayName = \"DndZoneBase\";\n","import { DndHandle } from \"./DndHandle\";\nimport { DndHandleButton } from \"./DndHandleButton\";\nimport { DndSortLine } from \"./DndSortLine\";\nimport { DndZone } from \"./DndZone\";\n\nexport const Dnd = {\n Handle: DndHandle,\n HandleButton: DndHandleButton,\n SortLine: DndSortLine,\n Zone: DndZone,\n};\n"],"names":["styles","DragIndicator"],"mappings":";;;;;;;AACA,MAAM,gBAAgB,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,qSAAqS,EAAE,CAAC,CAAC;;;;;;;;;;AC4BxgB,SAAS,SAAA,CAAU,EAAE,SAAA,EAAU,EAA2B;AAC/D,EAAA,MAAM,aAAA,GAAgB,EAAA,CAAGA,YAAA,CAAO,MAAA,EAAQ,SAAS,CAAA;AACjD,EAAA,2BACG,IAAA,EAAA,EAAK,GAAA,EAAKC,kBAAe,SAAA,EAAW,aAAA,EAAe,MAAK,cAAA,EAAe,CAAA;AAE5E;;ACKO,MAAM,eAAA,GAAkB,UAAA,CAG7B,CAAC,EAAE,QAAA,GAAW,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpD,EAAA,MAAM,mBAAA,GAAsB,EAAA,CAAG,SAAA,EAAW,YAAA,CAAa,eAAe,CAAA,EAAG;AAAA,IACvE,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG;AAAA,GAC3B,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,mBAAA;AAAA,MACX,IAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAM,SAAA;AAAA,MACN,YAAA,EAAW,aAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEJ,8BAAC,SAAA,EAAA,EAAU;AAAA;AAAA,GACb;AAEJ,CAAC;AAED,eAAA,CAAgB,WAAA,GAAc,iBAAA;;;;;;;;;;;;;;;;ACjBvB,MAAM,cAAc,CAAC;AAAA,EAC1B,MAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAqB;AACnB,EAAA,MAAM,OAAA,GAAU,EAAA;AAAA,IACd,OAAO,WAAW,CAAA;AAAA,IAClB,MAAA,CAAO,CAAA,YAAA,EAAe,WAAW,CAAA,CAAE,CAAA;AAAA,IACnC,MAAA,CAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAE;AAAA,GAC/B;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,OAAA;AAAA,MACX,KAAA,EAAO,EAAE,oBAAA,EAAsB,MAAA,EAAO;AAAA,MACrC,GAAG;AAAA;AAAA,GACN;AAEJ;;ACLO,MAAM,OAAA,GAAU,UAAA;AAAA,EACrB,CACE;AAAA,IACE,IAAI,SAAA,GAAY,KAAA;AAAA,IAChB,QAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAU,GAAG,SAAA,EAAW;AAAA,MAC5B,CAAC,MAAA,CAAO,WAAW,CAAC,GAAG,IAAA;AAAA,MACvB,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,cAAc,MAAA,IAAU,OAAA;AAAA,MAChD,CAAC,MAAA,CAAO,cAAc,CAAC,GAAG,UAAA,IAAc,UAAU,CAAC,OAAA;AAAA,MACnD,CAAC,MAAA,CAAO,iBAAiB,CAAC,GAAG,cAAc,CAAC;AAAA,KAC7C,CAAA;AAED,IAAA,2BACG,SAAA,EAAA,EAAU,GAAA,EAAU,WAAW,OAAA,EAAU,GAAG,MAC1C,QAAA,EACH,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,OAAA,CAAQ,WAAA,GAAc,aAAA;;AClFf,MAAM,GAAA,GAAM;AAAA,EACjB,MAAA,EAAQ,SAAA;AAAA,EACR,YAAA,EAAc,eAAA;AAAA,EACd,QAAA,EAAU,WAAA;AAAA,EACV,IAAA,EAAM;AACR;;;;"}
|