@servicetitan/anvil2 2.2.0 → 2.3.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 +18 -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-B6saoDAP.js} +4 -4
- package/dist/{Combobox-CSGn20KQ.js.map → Combobox-B6saoDAP.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-D30sE1Xt.js → DataTable-NzX8SCYT.js} +42 -12
- package/dist/{DataTable-D30sE1Xt.js.map → DataTable-NzX8SCYT.js.map} +1 -1
- package/dist/DataTable.css +9 -5
- package/dist/{DateFieldRange-DBOiqaML.js → DateFieldRange-DgGgNSzN.js} +4 -4
- package/dist/{DateFieldRange-DBOiqaML.js.map → DateFieldRange-DgGgNSzN.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-C4hU55MP.js → DateFieldSingle-BR4nJNVl.js} +4 -4
- package/dist/{DateFieldSingle-C4hU55MP.js.map → DateFieldSingle-BR4nJNVl.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BXkUiHIR.js → DateFieldYearless-mqvM2uVP.js} +4 -4
- package/dist/{DateFieldYearless-BXkUiHIR.js.map → DateFieldYearless-mqvM2uVP.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-CGffFnVT.js → DateFieldYearlessRange-CLuyUoGF.js} +4 -4
- package/dist/{DateFieldYearlessRange-CGffFnVT.js.map → DateFieldYearlessRange-CLuyUoGF.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-yA2jYtgv.js} +4 -4
- package/dist/{Dialog-BbsZMnCA.js.map → Dialog-yA2jYtgv.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-Dt4dqAxQ.js} +4 -4
- package/dist/{Drawer-Dhq76ot3.js.map → Drawer-Dt4dqAxQ.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-BghhsL2B.js} +121 -36
- package/dist/FieldDialog-BghhsL2B.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-ChDuxvhE.js} +876 -255
- package/dist/MultiSelectFieldSync-ChDuxvhE.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-CkcnGPPK.js} +8 -8
- package/dist/{Page-BVxybI-j.js.map → Page-CkcnGPPK.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DIatYUXX.js → Pagination-DO9NORlw.js} +4 -4
- package/dist/{Pagination-DIatYUXX.js.map → Pagination-DO9NORlw.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-4C5IVk8T.js → Popover-D_BmwIOW.js} +3 -3
- package/dist/{Popover-4C5IVk8T.js.map → Popover-D_BmwIOW.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-DfP3eETZ.js +1248 -0
- package/dist/SelectFieldSync-DfP3eETZ.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/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-CbdxhawY.js} +3 -3
- package/dist/{TimeField-B0WSzSfJ.js.map → TimeField-CbdxhawY.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-4VdevLJd.js} +78 -64
- package/dist/Toolbar-4VdevLJd.js.map +1 -0
- package/dist/Toolbar.css +37 -55
- package/dist/Toolbar.js +1 -1
- package/dist/{YearlessDateInputWithPicker-ztozRk-X.js → YearlessDateInputWithPicker-BADNBDmy.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-ztozRk-X.js.map → YearlessDateInputWithPicker-BADNBDmy.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 +9 -2
- package/dist/beta/components/Table/DataTable/types.d.ts +20 -0
- 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/SearchField/SearchField.d.ts +8 -26
- package/dist/components/SearchField/internal/SearchField.d.ts +73 -0
- 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.esm-K9kxJhLx.js → index.esm-BZV0wNKZ.js} +1 -2
- package/dist/{index.esm-K9kxJhLx.js.map → index.esm-BZV0wNKZ.js.map} +1 -1
- package/dist/index.js +80 -69
- package/dist/index.js.map +1 -1
- package/dist/index2.css +17 -23
- 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-C8TRwNE9.js} +3 -3
- package/dist/{useDrilldown-jbU4Cs5l.js.map → useDrilldown-C8TRwNE9.js.map} +1 -1
- package/dist/{useInitialFocus-BRRbylek.js → useInitialFocus-CdoVwSbr.js} +2 -2
- package/dist/{useInitialFocus-BRRbylek.js.map → useInitialFocus-CdoVwSbr.js.map} +1 -1
- package/package.json +3 -2
- 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/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/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/TextField.module-pD1felN8.js +0 -20
- package/dist/TextField.module-pD1felN8.js.map +0 -1
- package/dist/Toolbar-CVOenuCF.js.map +0 -1
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { forwardRef, useState, useId, useRef, useEffect } from 'react';
|
|
4
4
|
import { c as cx } from './index-SvGbrGuT.js';
|
|
5
|
-
import { t as textFieldStyles } from './TextField.module-
|
|
5
|
+
import { t as textFieldStyles } from './TextField.module-BP-hDP5m.js';
|
|
6
6
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
7
7
|
import { S as SrOnly } from './SrOnly-CrdBTl6E.js';
|
|
8
8
|
import { I as Icon } from './Icon-Bcil6aBo.js';
|
|
@@ -23,7 +23,7 @@ const styles = {
|
|
|
23
23
|
"input--has-value": "_input--has-value_12ckm_21"
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
const SearchField = forwardRef(
|
|
26
|
+
const SearchField$1 = forwardRef(
|
|
27
27
|
function SearchField2(props, ref) {
|
|
28
28
|
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
29
29
|
const {
|
|
@@ -129,6 +129,7 @@ const SearchField = forwardRef(
|
|
|
129
129
|
textFieldStyles["input-wrapper"],
|
|
130
130
|
styles["input-wrapper"],
|
|
131
131
|
{
|
|
132
|
+
[textFieldStyles["xsmall"]]: size === "xsmall",
|
|
132
133
|
[textFieldStyles["small"]]: size === "small",
|
|
133
134
|
[textFieldStyles["large"]]: size === "large"
|
|
134
135
|
}
|
|
@@ -182,5 +183,12 @@ const SearchField = forwardRef(
|
|
|
182
183
|
}
|
|
183
184
|
);
|
|
184
185
|
|
|
185
|
-
|
|
186
|
-
|
|
186
|
+
const SearchField = forwardRef(
|
|
187
|
+
(props, ref) => {
|
|
188
|
+
return /* @__PURE__ */ jsx(SearchField$1, { ref, ...props });
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
SearchField.displayName = "SearchField";
|
|
192
|
+
|
|
193
|
+
export { SearchField as S, SvgSearch as a, SearchField$1 as b };
|
|
194
|
+
//# sourceMappingURL=SearchField-CtdtcrVV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchField-CtdtcrVV.js","sources":["../../hammer-icon/mdi/round/search.svg","../src/components/SearchField/internal/SearchField.tsx","../src/components/SearchField/SearchField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgSearch = (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: \"M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" }));\nexport default SvgSearch;\n","import {\n forwardRef,\n ComponentPropsWithoutRef,\n useId,\n useRef,\n ChangeEvent,\n KeyboardEvent,\n useState,\n useEffect,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport textfieldStyles from \"../../TextField/TextField.module.scss\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport Search from \"@servicetitan/hammer-icon/mdi/round/search.svg\";\nimport styles from \"../SearchField.module.scss\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport { SrOnly } from \"../../SrOnly\";\nimport { Icon } from \"../../Icon\";\nimport { useTrackingId, useMergeRefs } from \"../../../hooks\";\nimport { DataTrackingId, LayoutUtilProps, Size } from \"../../../types\";\n\n/**\n * Props for the SearchField component\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"required\" | \"children\">\n * @extends LayoutUtilProps\n */\nexport type SearchFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n \"size\" | \"prefix\" | \"required\" | \"children\"\n> &\n LayoutUtilProps & {\n /**\n * Size of the search field\n * @default \"medium\"\n */\n size?: Extract<Size, \"xsmall\" | \"small\" | \"medium\" | \"large\">;\n /**\n * Whether the search field is disabled\n * @default false\n */\n disabled?: boolean;\n /**\n * Callback when the clear button is clicked or activated via keyboard (Enter/Space)\n */\n onClear?: () => void;\n } & DataTrackingId;\n\n/**\n * SearchField component for text input with search functionality.\n *\n * Features:\n * - Search icon prefix for visual clarity\n * - Clear button that appears when input has value\n * - Arrow key navigation between input and clear button (Right arrow to clear button, Left arrow back to input)\n * - Clear button activated with Enter/Space keys\n * - Focus returns to input after clearing\n * - Multiple size variants (xsmall, small, medium, large)\n * - Controlled and uncontrolled modes\n * - Disabled and read-only states\n * - Accessibility support with proper ARIA attributes\n * - Layout utility props for positioning and spacing\n * - Automatic value detection for clear button visibility\n * - Search-specific input type and autocomplete settings\n * - Screen reader support with placeholder announcements\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SearchField\n * placeholder=\"Search users...\"\n * onChange={(e) => setSearchTerm(e.target.value)}\n * onClear={() => setSearchTerm(\"\")}\n * />\n *\n * @example\n * <SearchField\n * size=\"large\"\n * value={searchValue}\n * onChange={(e) => setSearchValue(e.target.value)}\n * disabled={isLoading}\n * />\n */\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n function SearchField(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n size,\n onChange,\n onClear,\n id: idProp,\n disabled,\n style,\n value,\n placeholder = \"Search...\",\n autoComplete = \"off\",\n ...rest\n } = componentProps;\n\n const [hasValue, setHasValue] = useState(\n rest.defaultValue || value ? true : false,\n );\n const placeholderUid = useId();\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const handleOnChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.value) {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n onChange?.(e);\n };\n\n useEffect(() => {\n if (typeof value === \"undefined\") return;\n if (value === \"\" || !value) {\n setHasValue(false);\n } else {\n setHasValue(true);\n }\n }, [value]);\n\n const handleClear = () => {\n if (!inputRef.current) return;\n if (disabled || rest.readOnly) return;\n onClear?.();\n if (value) {\n inputRef.current.focus();\n return;\n }\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\",\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\n setHasValue(false);\n inputRef.current.focus();\n };\n\n const handleClearKeyDown = (e: KeyboardEvent<HTMLSpanElement>) => {\n if (e.code === \"Enter\" || e.code === \"Space\") {\n e.preventDefault();\n handleClear();\n } else if (e.code === \"ArrowLeft\") {\n e.preventDefault();\n inputRef.current?.focus();\n }\n };\n\n const handleInputKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.code === \"ArrowRight\" && hasValue) {\n const input = e.currentTarget;\n if (input.selectionStart === input.value.length) {\n e.preventDefault();\n const clearButton = input.parentElement?.querySelector(\n '[role=\"button\"]',\n ) as HTMLElement;\n clearButton?.focus();\n }\n }\n };\n\n const data = {\n value: props.value,\n defaultValue: props.defaultValue,\n disabled: props.disabled,\n readOnly: props.readOnly,\n size: props.size,\n };\n\n const trackingId = useTrackingId({\n name: \"SearchField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(\n textfieldStyles[\"textfield\"],\n styles[\"searchfield\"],\n className,\n )}\n data-anv=\"SearchField\"\n style={styleCombined}\n >\n <div\n className={cx(\n textfieldStyles[\"input-wrapper\"],\n styles[\"input-wrapper\"],\n {\n [textfieldStyles[\"xsmall\"]]: size === \"xsmall\",\n [textfieldStyles[\"small\"]]: size === \"small\",\n [textfieldStyles[\"large\"]]: size === \"large\",\n },\n )}\n role=\"presentation\"\n onClick={() => inputRef.current?.focus()}\n >\n <div aria-hidden className={textfieldStyles[\"prefix\"]}>\n <Icon aria-label=\"search\" svg={Search} />\n </div>\n <input\n className={cx(textfieldStyles[\"input\"], styles[\"input\"], {\n [styles[\"input--has-value\"]]: hasValue,\n })}\n ref={useMergeRefs([ref, inputRef])}\n onChange={handleOnChange}\n onKeyDown={handleInputKeyDown}\n placeholder={placeholder}\n value={value}\n type=\"search\"\n autoComplete={autoComplete}\n disabled={disabled}\n aria-labelledby={placeholderUid}\n data-tracking-id={trackingId}\n {...rest}\n />\n <Icon\n aria-label=\"Clear search\"\n svg={Close}\n role=\"button\"\n onClick={handleClear}\n onKeyDown={handleClearKeyDown}\n tabIndex={-1}\n className={styles[\"clear\"]}\n aria-disabled={disabled}\n style={{\n visibility: hasValue ? \"visible\" : \"hidden\",\n }}\n />\n </div>\n <SrOnly id={placeholderUid}>{placeholder}</SrOnly>\n </div>\n );\n },\n);\n","import {\n SearchField as CoreSearchField,\n SearchFieldProps as CoreSearchFieldProps,\n} from \"./internal/SearchField\";\nimport { forwardRef } from \"react\";\nimport { DistributiveOmit } from \"../../types\";\n\n/**\n * Props for the SearchField component\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"required\" | \"children\">\n * @extends LayoutUtilProps\n */\nexport type SearchFieldProps = DistributiveOmit<\n CoreSearchFieldProps,\n \"size\"\n> & {\n /**\n * Size of the search field\n * @default \"medium\"\n */\n size?: Extract<CoreSearchFieldProps[\"size\"], \"small\" | \"medium\" | \"large\">;\n};\n\n/**\n * SearchField component for text input with search functionality.\n *\n * Features:\n * - Search icon prefix for visual clarity\n * - Clear button that appears when input has value\n * - Arrow key navigation between input and clear button (Right arrow to clear button, Left arrow back to input)\n * - Clear button activated with Enter/Space keys\n * - Focus returns to input after clearing\n * - Multiple size variants (small, medium, large)\n * - Controlled and uncontrolled modes\n * - Disabled and read-only states\n * - Accessibility support with proper ARIA attributes\n * - Layout utility props for positioning and spacing\n * - Automatic value detection for clear button visibility\n * - Search-specific input type and autocomplete settings\n * - Screen reader support with placeholder announcements\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SearchField\n * placeholder=\"Search users...\"\n * onChange={(e) => setSearchTerm(e.target.value)}\n * onClear={() => setSearchTerm(\"\")}\n * />\n *\n * @example\n * <SearchField\n * size=\"large\"\n * value={searchValue}\n * onChange={(e) => setSearchValue(e.target.value)}\n * disabled={isLoading}\n * />\n */\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (props, ref) => {\n return <CoreSearchField ref={ref} {...props} />;\n },\n);\nSearchField.displayName = \"SearchField\";\n"],"names":["SearchField","textfieldStyles","Search","Close","CoreSearchField"],"mappings":"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"}
|
package/dist/SearchField.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SearchField } from './SearchField-
|
|
1
|
+
export { S as SearchField } from './SearchField-CtdtcrVV.js';
|
|
2
2
|
//# sourceMappingURL=SearchField.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { useContext, createContext, useState, useId, forwardRef, useLayoutEffect } from 'react';
|
|
2
|
+
import { useContext, createContext, useState, useId, forwardRef, useLayoutEffect, useRef } from 'react';
|
|
3
3
|
import { c as cx } from './index-SvGbrGuT.js';
|
|
4
|
-
import { C as CheckboxGroup, a as Checkbox } from './Checkbox-
|
|
5
|
-
import { R as RadioGroup, a as Radio, S as SvgRadioButtonUnchecked, b as SvgRadioButtonChecked } from './Radio-
|
|
4
|
+
import { C as CheckboxGroup, a as Checkbox } from './Checkbox-CxjZpzPp.js';
|
|
5
|
+
import { R as RadioGroup, a as Radio, S as SvgRadioButtonUnchecked, b as SvgRadioButtonChecked } from './Radio-DtYoRq3m.js';
|
|
6
6
|
import { C as Card } from './Card-DDH7gI8m.js';
|
|
7
7
|
import { I as Icon } from './Icon-Bcil6aBo.js';
|
|
8
8
|
import { a as SvgCheckBox, b as SvgCheckBoxOutlineBlank } from './indeterminate_check_box-B4zobNlt.js';
|
|
@@ -133,20 +133,42 @@ const SelectCardElement = forwardRef(
|
|
|
133
133
|
onChange
|
|
134
134
|
});
|
|
135
135
|
const context = useSelectCardContext();
|
|
136
|
+
const isControlled = checkedProp !== void 0;
|
|
136
137
|
const [_, setForceRenderCount] = useState(0);
|
|
137
138
|
useLayoutEffect(() => {
|
|
138
|
-
|
|
139
|
+
const initialChecked = checkedProp ?? defaultCheckedProp;
|
|
140
|
+
if (initialChecked) {
|
|
139
141
|
context?.onChange?.(
|
|
140
142
|
void 0,
|
|
141
143
|
{
|
|
142
144
|
id,
|
|
143
|
-
checked:
|
|
145
|
+
checked: initialChecked
|
|
144
146
|
},
|
|
145
147
|
{ internal: true }
|
|
146
148
|
);
|
|
147
149
|
setForceRenderCount((prev) => prev + 1);
|
|
148
150
|
}
|
|
149
151
|
}, []);
|
|
152
|
+
const isFirstRender = useRef(true);
|
|
153
|
+
useLayoutEffect(() => {
|
|
154
|
+
if (isFirstRender.current) {
|
|
155
|
+
isFirstRender.current = false;
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (isControlled && context) {
|
|
159
|
+
if (context.selectionMode === "single" && !checkedProp) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
context.onChange?.(
|
|
163
|
+
void 0,
|
|
164
|
+
{
|
|
165
|
+
id,
|
|
166
|
+
checked: checkedProp
|
|
167
|
+
},
|
|
168
|
+
{ internal: true }
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
}, [checkedProp]);
|
|
150
172
|
const handleChange = (event) => {
|
|
151
173
|
const newChecked = event ? event.target.checked : false;
|
|
152
174
|
setChecked(newChecked);
|
|
@@ -169,7 +191,8 @@ const SelectCardElement = forwardRef(
|
|
|
169
191
|
Checkbox,
|
|
170
192
|
{
|
|
171
193
|
...checkboxProps,
|
|
172
|
-
|
|
194
|
+
checked: isControlled ? checkedProp : void 0,
|
|
195
|
+
defaultChecked: isControlled ? void 0 : defaultCheckedProp,
|
|
173
196
|
onChange: handleChange,
|
|
174
197
|
disabled,
|
|
175
198
|
ref,
|
|
@@ -211,7 +234,8 @@ const SelectCardElement = forwardRef(
|
|
|
211
234
|
Radio,
|
|
212
235
|
{
|
|
213
236
|
...radioProps,
|
|
214
|
-
|
|
237
|
+
checked: isControlled ? checkedProp : void 0,
|
|
238
|
+
defaultChecked: isControlled ? void 0 : defaultCheckedProp,
|
|
215
239
|
onChange: handleChange,
|
|
216
240
|
disabled,
|
|
217
241
|
ref,
|
|
@@ -284,4 +308,4 @@ const SelectCard = Object.assign(SelectCardElement, {
|
|
|
284
308
|
});
|
|
285
309
|
|
|
286
310
|
export { SelectCard as S };
|
|
287
|
-
//# sourceMappingURL=SelectCard-
|
|
311
|
+
//# sourceMappingURL=SelectCard-yWBNnm7t.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCard-yWBNnm7t.js","sources":["../src/components/SelectCard/internal/SelectCardContext.tsx","../src/components/SelectCard/internal/SelectCardProvider.tsx","../src/components/SelectCard/SelectCardGroup.tsx","../src/components/SelectCard/SelectCard.tsx"],"sourcesContent":["import { ChangeEvent, createContext, useContext } from \"react\";\n\n/**\n * Interface for the select card state\n */\nexport interface ISelectCardState {\n /**\n * When `true`, adds the item to the selected state holder.\n */\n checked: boolean;\n\n /**\n * Gives an explicit id to each item in the set.\n */\n id?: string | number;\n}\n\n/**\n * Interface for the select card onChange options\n */\nexport interface ISelectCardOnChangeOptions {\n /**\n * When `true`, doesn't fire the user's `onChange`\n */\n internal?: boolean;\n}\n\n/**\n * Interface for the select card context\n */\nexport interface ISelectCardContext {\n /**\n * Callback function that is triggered when the selection state changes.\n *\n * @callback OnChangeCallback\n * @param {ChangeEvent<HTMLInputElement>} [e] - The native HTML input change event.\n * @param {ISelectCardState} [state] - The current state of the select card component after the change.\n * @returns {void}\n */\n onChange?: (\n e?: ChangeEvent<HTMLInputElement>,\n state?: ISelectCardState,\n options?: ISelectCardOnChangeOptions,\n ) => void;\n\n /**\n * Sets how many cards the user can select, either 'single' (radio buttons) or 'multiple' (checkboxes)\n */\n selectionMode: \"single\" | \"multiple\";\n\n /**\n * Used internally to create a UUID for the HTML `name` property on radios.\n */\n radioName: string;\n\n /**\n * Creates a set of ids that are selected.\n */\n selection: Set<string | number>;\n\n /**\n * When `true`, displays a checkbox or radio indicator in a separate column on the left side of the card.\n * The indicator type (checkbox or radio) is automatically determined by the selection mode from SelectCard.Group context.\n * @default false\n */\n showSelectIndicator?: boolean;\n}\n\nexport const SelectCardContext = createContext<ISelectCardContext | null>(null);\n\n/**\n * Custom hook for accessing the SelectCard context.\n * @returns The SelectCard context or null if not within a SelectCardProvider\n */\nexport const useSelectCardContext = () => useContext(SelectCardContext);\n","import { ChangeEvent, ReactNode, useId, useState } from \"react\";\nimport {\n ISelectCardContext,\n ISelectCardOnChangeOptions,\n ISelectCardState,\n SelectCardContext,\n} from \"./SelectCardContext\";\n\n/**\n * Props for the SelectCardProvider component\n * @extends Omit<ISelectCardContext, \"radioName\" | \"selection\">\n */\ninterface ISelectCardProviderProps extends Omit<\n ISelectCardContext,\n \"radioName\" | \"selection\"\n> {\n children: ReactNode;\n}\n\n/**\n * SelectCardProvider component for managing selection state across SelectCard components.\n *\n * Features:\n * - Provides context for SelectCard components to share selection state\n * - Manages selection mode (single vs multiple)\n * - Handles selection state updates and callbacks\n * - Generates unique radio button names for single selection mode\n * - Maintains a set of selected card IDs\n * - Integrates with SelectCardGroup for automatic context provision\n *\n * @example\n * <SelectCardProvider\n * selectionMode=\"multiple\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"1\" onChange={() => {}}>Option 1</SelectCard>\n * <SelectCard id=\"2\" onChange={() => {}}>Option 2</SelectCard>\n * </SelectCardProvider>\n */\nexport const SelectCardProvider = ({\n children,\n onChange,\n selectionMode,\n showSelectIndicator,\n}: ISelectCardProviderProps) => {\n const [selection, setSelection] = useState<Set<string | number>>(new Set());\n\n const radioName = useId();\n\n const handleChange = (\n e?: ChangeEvent<HTMLInputElement>,\n state?: ISelectCardState,\n options?: ISelectCardOnChangeOptions,\n ) => {\n if (!state || !state.id) {\n if (!options?.internal) {\n onChange?.(e, state);\n }\n\n return;\n }\n\n // Set internal selection\n if (selectionMode === \"single\") {\n if (state.checked) {\n setSelection(new Set([state.id]));\n } else {\n setSelection(new Set());\n }\n } else {\n if (state.checked) {\n setSelection(selection.add(state.id));\n } else {\n selection.delete(state.id);\n setSelection(selection);\n }\n }\n\n if (!options?.internal) {\n onChange?.(e, state);\n }\n };\n\n const context = {\n selectionMode,\n onChange: handleChange,\n radioName,\n selection,\n showSelectIndicator,\n };\n\n return (\n <SelectCardContext.Provider value={context}>\n {children}\n </SelectCardContext.Provider>\n );\n};\n","import { forwardRef, ReactNode } from \"react\";\nimport { CheckboxGroup, CheckboxGroupProps } from \"../Checkbox/CheckboxGroup\";\nimport { RadioGroup } from \"../Radio/RadioGroup\";\nimport { SelectCardProvider } from \"./internal/SelectCardProvider\";\nimport { ISelectCardContext } from \"./internal/SelectCardContext\";\n\n/**\n * Props for the SelectCardGroup component\n * @extends Omit<ISelectCardContext, \"radioName\" | \"selection\">\n */\nexport interface SelectCardGroupProps extends Omit<\n ISelectCardContext,\n \"radioName\" | \"selection\"\n> {\n /**\n * Associates the legend with content below.\n */\n ariaLabelledBy?: string;\n\n children?: ReactNode;\n\n /**\n * Sets the legend on the group.\n */\n legend: CheckboxGroupProps[\"legend\"];\n\n /**\n * When `true`, sets \"required\" text in label.\n * @accessibility This does not enforce error when nothing is selected.\n * @default false\n */\n required?: boolean;\n\n /**\n * When `true`, displays a checkbox or radio indicator in a separate column on the left side of the card.\n * The indicator type (checkbox or radio) is automatically determined by the `selectionMode` setting.\n * @default false\n */\n showSelectIndicator?: boolean;\n}\n\n/**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n * - Integrates with CheckboxGroup and RadioGroup for proper form semantics\n *\n * @example\n * <SelectCardGroup\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\" el=\"h3\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\" el=\"h3\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCardGroup>\n */\nexport const SelectCardGroup = forwardRef<\n HTMLInputElement,\n SelectCardGroupProps\n>((props, _ref) => {\n const {\n ariaLabelledBy,\n children,\n legend,\n onChange,\n required = false,\n selectionMode,\n showSelectIndicator = false,\n ...rest\n } = props;\n\n return (\n <SelectCardProvider\n onChange={onChange}\n selectionMode={selectionMode}\n showSelectIndicator={showSelectIndicator}\n >\n {selectionMode === \"multiple\" && (\n <CheckboxGroup\n aria-labelledby={ariaLabelledBy}\n legend={legend}\n required={required}\n {...rest}\n >\n {children}\n </CheckboxGroup>\n )}\n {selectionMode === \"single\" && (\n <RadioGroup\n aria-labelledby={ariaLabelledBy}\n legend={legend}\n required={required}\n {...rest}\n >\n {children}\n </RadioGroup>\n )}\n </SelectCardProvider>\n );\n});\n\nSelectCardGroup.displayName = \"SelectCardGroup\";\n","import {\n useLayoutEffect,\n useState,\n useRef,\n forwardRef,\n type ChangeEvent,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport { SelectCardGroup } from \"./SelectCardGroup\";\nimport { Card, CardProps } from \"../Card\";\nimport { Radio, RadioProps } from \"../Radio/internal/Radio\";\nimport { Checkbox, CheckboxProps } from \"../Checkbox/internal/Checkbox\";\nimport { useOptionallyControlledState } from \"../../internal/hooks\";\nimport { useSelectCardContext } from \"./internal/SelectCardContext\";\nimport { Icon } from \"../Icon\";\n\nimport CheckboxOutline from \"@servicetitan/hammer-icon/mdi/round/check_box_outline_blank.svg\";\nimport CheckboxChecked from \"@servicetitan/hammer-icon/mdi/round/check_box.svg\";\nimport RadioOutline from \"@servicetitan/hammer-icon/mdi/two-tone/radio_button_unchecked.svg\";\nimport RadioChecked from \"@servicetitan/hammer-icon/mdi/two-tone/radio_button_checked.svg\";\n\nimport styles from \"./SelectCard.module.scss\";\n\n/**\n * Props for the SelectCard component\n * @extends Omit<CardProps, \"onChange\" | \"id\">\n */\nexport interface SelectCardProps extends Omit<CardProps, \"onChange\" | \"id\"> {\n /**\n * Passes props to the underlying `<Checkbox />` component.\n */\n checkboxProps?: Omit<CheckboxProps, \"label\">;\n\n /**\n * Controlled state. When provided, the component becomes controlled.\n */\n checked?: boolean;\n\n /**\n * Uncontrolled state.\n */\n defaultChecked?: boolean;\n\n /**\n * When `true`, disables the card.\n */\n disabled?: boolean;\n\n /**\n * When `true`, sets error styling on the card.\n */\n errored?: boolean;\n\n /**\n * A unique identifier for the card, used to track the selection state.\n */\n id: string | number;\n\n /**\n * Function called on selection state change.\n */\n onChange?: (value: boolean) => void;\n\n /**\n * Passes props to the underlying `<Radio />` component.\n */\n radioProps?: Omit<RadioProps, \"label\">;\n\n /**\n * Removes the drop shadow effect on the card.\n */\n removeDropShadow?: boolean;\n\n /**\n * When `true`, displays a checkbox or radio indicator in a separate column on the left side of the card.\n * The indicator type (checkbox or radio) is automatically determined by the `selectionMode` prop on the\n * `SelectCard.Group`, and defaults to checkbox if no `SelectCard.Group` is used.\n * @default false\n */\n showSelectIndicator?: boolean;\n}\n\nconst SelectCardElement = forwardRef<HTMLInputElement, SelectCardProps>(\n (props, ref) => {\n const {\n checkboxProps,\n children,\n checked: checkedProp,\n className,\n defaultChecked: defaultCheckedProp,\n disabled,\n errored,\n radioProps,\n onChange,\n removeDropShadow,\n showSelectIndicator = false,\n id,\n ...rest\n } = props;\n\n const [checked, setChecked] = useOptionallyControlledState<boolean>({\n controlledValue: checkedProp,\n defaultValue: defaultCheckedProp || false,\n onChange,\n });\n\n const context = useSelectCardContext();\n const isControlled = checkedProp !== undefined;\n\n // we need to re-render after setting the initial selection state on context\n const [_, setForceRenderCount] = useState(0);\n useLayoutEffect(() => {\n // Sync initial checked state to context (for both controlled and uncontrolled modes)\n const initialChecked = checkedProp ?? defaultCheckedProp;\n if (initialChecked) {\n context?.onChange?.(\n undefined,\n {\n id,\n checked: initialChecked,\n },\n { internal: true },\n );\n\n setForceRenderCount((prev) => prev + 1);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Sync controlled state changes to context (skip initial mount - handled by above effect)\n const isFirstRender = useRef(true);\n useLayoutEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (isControlled && context) {\n // In single selection mode, only sync when checked is true.\n // Unchecking is implicit when another card becomes checked.\n // Syncing checked=false would clear the entire selection.\n if (context.selectionMode === \"single\" && !checkedProp) {\n return;\n }\n context.onChange?.(\n undefined,\n {\n id,\n checked: checkedProp,\n },\n { internal: true },\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkedProp]);\n\n const handleChange = (event?: ChangeEvent<HTMLInputElement>) => {\n const newChecked = event ? event.target.checked : false;\n setChecked(newChecked);\n context?.onChange?.(event, {\n id,\n checked: newChecked,\n });\n };\n\n // A selection in the group context supersedes the normal checked state of the card\n const isChecked = context ? context.selection.has(id) : checked;\n const showIndicator = context?.showSelectIndicator || showSelectIndicator;\n\n const contentClassName = cx(styles[\"select-card\"], className, {\n [styles[\"select-card--remove-drop-shadow\"]]: removeDropShadow,\n [styles[\"select-card--checked\"]]: isChecked,\n [styles[\"select-card--selected\"]]: isChecked && !errored,\n [styles[\"select-card--errored\"]]: errored,\n [styles[\"select-card--disabled\"]]: disabled,\n });\n\n return (\n <>\n {(!context || context?.selectionMode === \"multiple\") && (\n <Checkbox\n {...checkboxProps}\n checked={isControlled ? checkedProp : undefined}\n defaultChecked={isControlled ? undefined : defaultCheckedProp}\n onChange={handleChange}\n disabled={disabled}\n ref={ref}\n label={\n <Card\n {...rest}\n className={contentClassName}\n flex={showIndicator ? \"1\" : undefined}\n gap={showIndicator ? \"2\" : undefined}\n alignItems={showIndicator ? \"flex-start\" : undefined}\n >\n {showIndicator ? (\n <>\n <span className={styles[\"icon-wrapper\"]} aria-hidden>\n <Icon\n size=\"large\"\n svg={CheckboxChecked}\n className={styles[\"icon-checked\"]}\n />\n\n <Icon\n size=\"large\"\n svg={CheckboxOutline}\n className={styles[\"icon-unchecked\"]}\n />\n </span>\n {children}\n </>\n ) : (\n children\n )}\n </Card>\n }\n hideCheckbox\n />\n )}\n {context?.selectionMode === \"single\" && (\n <Radio\n {...radioProps}\n checked={isControlled ? checkedProp : undefined}\n defaultChecked={isControlled ? undefined : defaultCheckedProp}\n onChange={handleChange}\n disabled={disabled}\n ref={ref}\n name={context.radioName}\n label={\n <Card\n {...rest}\n className={contentClassName}\n flex={showIndicator ? \"1\" : undefined}\n gap={showIndicator ? \"2\" : undefined}\n alignItems={showIndicator ? \"flex-start\" : undefined}\n >\n {showIndicator ? (\n <>\n <span className={styles[\"icon-wrapper\"]} aria-hidden>\n <Icon\n size=\"large\"\n svg={RadioOutline}\n className={styles[\"icon-unchecked\"]}\n />\n\n <Icon\n size=\"large\"\n svg={RadioChecked}\n className={styles[\"icon-checked\"]}\n />\n </span>\n {children}\n </>\n ) : (\n children\n )}\n </Card>\n }\n hideRadio\n />\n )}\n </>\n );\n },\n);\n\nSelectCardElement.displayName = \"SelectCard\";\n\n/**\n * SelectCard component for creating interactive card-based selection interfaces.\n *\n * Features:\n * - Supports both single selection (radio) and multiple selection (checkbox) modes\n * - Automatic context detection for selection behavior\n * - Visual feedback for selected, disabled, and error states\n * - Accessible with proper ARIA roles and keyboard navigation\n * - Customizable styling through Card component props\n * - Hover and focus states with smooth transitions\n * - Integration with SelectCardGroup for grouped selection\n *\n * @example\n * <SelectCard\n * id=\"option-1\"\n * onChange={(checked) => console.log('Selected:', checked)}\n * >\n * <Text variant=\"headline\" size=\"small\">Option 1</Text>\n * <Text>Description of option 1</Text>\n * </SelectCard>\n */\nexport const SelectCard = Object.assign(SelectCardElement, {\n /**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n *\n * @example\n * <SelectCard.Group\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCard.Group>\n */\n Group: SelectCardGroup,\n});\n"],"names":["CheckboxChecked","CheckboxOutline","RadioOutline","RadioChecked"],"mappings":"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"}
|
package/dist/SelectCard.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SelectCard, S as default } from './SelectCard-
|
|
1
|
+
export { S as SelectCard, S as default } from './SelectCard-yWBNnm7t.js';
|
|
2
2
|
//# sourceMappingURL=SelectCard.js.map
|
package/dist/SelectField.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-
|
|
1
|
+
export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-DfP3eETZ.js';
|
|
2
2
|
//# sourceMappingURL=SelectField.js.map
|