@servicetitan/anvil2 3.1.0 → 3.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 +32 -0
- package/dist/{AiMark-m-sG_BrY.js → AiMark-D6ScGfyP.js} +3 -3
- package/dist/{AiMark-m-sG_BrY.js.map → AiMark-D6ScGfyP.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-DYmBt7Yo.js → Alert-Dgq96HR4.js} +2 -2
- package/dist/{Alert-DYmBt7Yo.js.map → Alert-Dgq96HR4.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{AnvilProvider-Cw_zTBqJ.js → AnvilProvider-CwAHiQ_0.js} +29 -1
- package/dist/AnvilProvider-CwAHiQ_0.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Breadcrumbs-D1X1M_ej.js → Breadcrumbs-CklKFLSl.js} +2 -2
- package/dist/{Breadcrumbs-D1X1M_ej.js.map → Breadcrumbs-CklKFLSl.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-BvHvJOHb.js → Calendar-DWyW5gvQ.js} +2 -2
- package/dist/{Calendar-BvHvJOHb.js.map → Calendar-DWyW5gvQ.js.map} +1 -1
- package/dist/{Calendar-BTen4c8H.js → Calendar-Qlnpl3zR.js} +2 -2
- package/dist/{Calendar-BTen4c8H.js.map → Calendar-Qlnpl3zR.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-DqncM7th.js → Checkbox-BE8Jmz3t.js} +2 -2
- package/dist/{Checkbox-DqncM7th.js.map → Checkbox-BE8Jmz3t.js.map} +1 -1
- package/dist/{Checkbox-BcfY3iwE.js → Checkbox-QIaS16gS.js} +3 -3
- package/dist/{Checkbox-BcfY3iwE.js.map → Checkbox-QIaS16gS.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-B6LaPxtL.js → Chip-BYK1b3lZ.js} +2 -2
- package/dist/{Chip-B6LaPxtL.js.map → Chip-BYK1b3lZ.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-B_GYRuR1.js → DataTable-CnRkAUpI.js} +16 -15
- package/dist/DataTable-CnRkAUpI.js.map +1 -0
- package/dist/DataTable.css +10 -6
- package/dist/{DateFieldRange-DGjw3kTB.js → DateFieldRange-OiVF8sye.js} +4 -4
- package/dist/{DateFieldRange-DGjw3kTB.js.map → DateFieldRange-OiVF8sye.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-dB13x4lS.js → DateFieldSingle-CSCcHt9Z.js} +4 -4
- package/dist/{DateFieldSingle-dB13x4lS.js.map → DateFieldSingle-CSCcHt9Z.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BJ_1HLfi.js → DateFieldYearless-DU9No74i.js} +5 -5
- package/dist/{DateFieldYearless-BJ_1HLfi.js.map → DateFieldYearless-DU9No74i.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BXnvkTXC.js → DateFieldYearlessRange-BkXIgh59.js} +4 -4
- package/dist/{DateFieldYearlessRange-BXnvkTXC.js.map → DateFieldYearlessRange-BkXIgh59.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-C78qSYxI.js → DaysOfTheWeek-BYw91Qr-.js} +3 -3
- package/dist/{DaysOfTheWeek-C78qSYxI.js.map → DaysOfTheWeek-BYw91Qr-.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-DK6ceYhs.js → Details-Xb49PJ-r.js} +8 -8
- package/dist/{Details-DK6ceYhs.js.map → Details-Xb49PJ-r.js.map} +1 -1
- package/dist/Details.css +16 -15
- package/dist/Details.js +1 -1
- package/dist/{Dialog-DuGX-ngX.js → Dialog-DMR_uvde.js} +3 -3
- package/dist/{Dialog-DuGX-ngX.js.map → Dialog-DMR_uvde.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-9_HfTi3J.js → Drawer-vxmKqraS.js} +3 -3
- package/dist/{Drawer-9_HfTi3J.js.map → Drawer-vxmKqraS.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-DeB4rQVo.js → EditCard-h7sDGB-x.js} +2 -2
- package/dist/{EditCard-DeB4rQVo.js.map → EditCard-h7sDGB-x.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-CtvpqdG9.js → FieldLabel-tFSfJ7OJ.js} +3 -3
- package/dist/{FieldLabel-CtvpqdG9.js.map → FieldLabel-tFSfJ7OJ.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-D0iRUjOy.js → FilterBar-l8aCxO9c.js} +5 -5
- package/dist/{FilterBar-D0iRUjOy.js.map → FilterBar-l8aCxO9c.js.map} +1 -1
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-CZ57VFJA.js → InputMask-r8vH_Gh3.js} +3 -3
- package/dist/{InputMask-CZ57VFJA.js.map → InputMask-r8vH_Gh3.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-Ngeqpgna.js → ListView-D_xAfZD-.js} +2 -2
- package/dist/{ListView-Ngeqpgna.js.map → ListView-D_xAfZD-.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-3ChcLAyg.js → Listbox-iUUghImt.js} +2 -2
- package/dist/{Listbox-3ChcLAyg.js.map → Listbox-iUUghImt.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BUIAooVS.js → Menu-qcHhgf-t.js} +14 -24
- package/dist/{Menu-BUIAooVS.js.map → Menu-qcHhgf-t.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/Menu.module-CoyI86tZ.js +13 -0
- package/dist/Menu.module-CoyI86tZ.js.map +1 -0
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-jb57hWBG.js → MultiSelectFieldSync-DNJ1TBf8.js} +44 -28
- package/dist/MultiSelectFieldSync-DNJ1TBf8.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +65 -63
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-D6NI4Z2h.js → MultiSelectMenuSync-LD931FAV.js} +6 -5
- package/dist/MultiSelectMenuSync-LD931FAV.js.map +1 -0
- package/dist/{NumberField-C_UAdOsK.js → NumberField-CFYbODNe.js} +6 -4
- package/dist/NumberField-CFYbODNe.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/{Page--5QCoYX4.js → Page-DgSimS7u.js} +9 -9
- package/dist/{Page--5QCoYX4.js.map → Page-DgSimS7u.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Dtgyk0Xr.js → Pagination-DQ2fjkmT.js} +3 -3
- package/dist/{Pagination-Dtgyk0Xr.js.map → Pagination-DQ2fjkmT.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-B1_842BG.js → Popover-DeBxKuqc.js} +2 -2
- package/dist/{Popover-B1_842BG.js.map → Popover-DeBxKuqc.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-B87CdCEB.js → ProgressBar-BFvc2jm3.js} +2 -2
- package/dist/{ProgressBar-B87CdCEB.js.map → ProgressBar-BFvc2jm3.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-CrGhNc6t.js → Radio-BV4SflBA.js} +3 -3
- package/dist/{Radio-CrGhNc6t.js.map → Radio-BV4SflBA.js.map} +1 -1
- package/dist/{Radio-K8VUbkMe.js → Radio-v3lT3AoB.js} +2 -2
- package/dist/{Radio-K8VUbkMe.js.map → Radio-v3lT3AoB.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-DiOWlG-j.js → RichTextEditor-Cm29o9RK.js} +9 -9
- package/dist/{RichTextEditor-DiOWlG-j.js.map → RichTextEditor-Cm29o9RK.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-BpjGgsnS.js → SavedFiltersButton-3VadkBsA.js} +9 -9
- package/dist/SavedFiltersButton-3VadkBsA.js.map +1 -0
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SearchField-CWucSMdv.js → SearchField-BfOMhmIc.js} +2 -2
- package/dist/{SearchField-CWucSMdv.js.map → SearchField-BfOMhmIc.js.map} +1 -1
- package/dist/{SearchField-CD64ELrq.js → SearchField-D9ZMOcbo.js} +2 -2
- package/dist/{SearchField-CD64ELrq.js.map → SearchField-D9ZMOcbo.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-YwnN2K4B.js → SelectCard-CkZEENl6.js} +3 -3
- package/dist/{SelectCard-YwnN2K4B.js.map → SelectCard-CkZEENl6.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-BopPrWWy.js → SelectFieldLabel-CvJhwy_6.js} +2 -2
- package/dist/SelectFieldLabel-CvJhwy_6.js.map +1 -0
- package/dist/{SelectFieldSync-B30iR0EX.js → SelectFieldSync-z_kyrBvL.js} +22 -8
- package/dist/SelectFieldSync-z_kyrBvL.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-BoxEMqcv.js → SelectMenuSync-BD8oedGs.js} +6 -5
- package/dist/SelectMenuSync-BD8oedGs.js.map +1 -0
- package/dist/{SelectOptions-kx_udzjX.js → SelectOptions-CBSsSyFd.js} +2 -2
- package/dist/SelectOptions-CBSsSyFd.js.map +1 -0
- package/dist/{SelectTrigger-BjMduiax.js → SelectTrigger-CtiLCoHx.js} +2 -2
- package/dist/{SelectTrigger-BjMduiax.js.map → SelectTrigger-CtiLCoHx.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-CL9Zpbxn.js → SelectTriggerBase-aE_iVDpL.js} +8 -6
- package/dist/SelectTriggerBase-aE_iVDpL.js.map +1 -0
- package/dist/SelectTriggerBase.css +48 -46
- package/dist/SelectTriggerBase.module-Brmw1nYG.js +39 -0
- package/dist/SelectTriggerBase.module-Brmw1nYG.js.map +1 -0
- package/dist/{Switch-Crcn7ffO.js → Switch-DibokoJL.js} +2 -2
- package/dist/{Switch-Crcn7ffO.js.map → Switch-DibokoJL.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-CK1TI4Gz.js → Text-BTCfqeSr.js} +2 -2
- package/dist/{Text-CK1TI4Gz.js.map → Text-BTCfqeSr.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-CFRhRDXu.js → TextField-CqJ9s4SG.js} +2 -2
- package/dist/{TextField-CFRhRDXu.js.map → TextField-CqJ9s4SG.js.map} +1 -1
- package/dist/{TextField-Dn2pwnKf.js → TextField-KZkRXCbH.js} +7 -5
- package/dist/TextField-KZkRXCbH.js.map +1 -0
- package/dist/TextField.css +24 -22
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-DklyLNKz.js +25 -0
- package/dist/TextField.module-DklyLNKz.js.map +1 -0
- package/dist/{Textarea-DPRvsIhS.js → Textarea-DlvbIRKO.js} +3 -3
- package/dist/{Textarea-DPRvsIhS.js.map → Textarea-DlvbIRKO.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-IK0j6q87.js → TimeField-bdJArRXM.js} +4 -4
- package/dist/{TimeField-IK0j6q87.js.map → TimeField-bdJArRXM.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-C1Hjsfo4.js → Toaster-DW9Bx-5k.js} +2 -2
- package/dist/{Toaster-C1Hjsfo4.js.map → Toaster-DW9Bx-5k.js.map} +1 -1
- package/dist/{Toaster-CFU3OD-A.js → Toaster-De3dmRbW.js} +4 -4
- package/dist/{Toaster-CFU3OD-A.js.map → Toaster-De3dmRbW.js.map} +1 -1
- package/dist/{Toolbar-CTF1WCrJ.js → Toolbar-DksrjUsE.js} +4 -4
- package/dist/{Toolbar-CTF1WCrJ.js.map → Toolbar-DksrjUsE.js.map} +1 -1
- package/dist/{Toolbar-Cv8AR7mj.js → Toolbar-j9Y2YleC.js} +6 -6
- package/dist/{Toolbar-Cv8AR7mj.js.map → Toolbar-j9Y2YleC.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-6agLSzkp.js → ToolbarButtonToggle-CywNpsGX.js} +2 -2
- package/dist/{ToolbarButtonToggle-6agLSzkp.js.map → ToolbarButtonToggle-CywNpsGX.js.map} +1 -1
- package/dist/{Tooltip-DYR7-Ova.js → Tooltip-BC8lnFhe.js} +2 -2
- package/dist/{Tooltip-DYR7-Ova.js.map → Tooltip-BC8lnFhe.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-CqY6lbDJ.js → TreeSelectFieldSync-CB1H4ZTC.js} +11 -6
- package/dist/TreeSelectFieldSync-CB1H4ZTC.js.map +1 -0
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-DGUoVfN-.js → TreeSelectMenuSync-D4l3zik4.js} +4 -4
- package/dist/{TreeSelectMenuSync-DGUoVfN-.js.map → TreeSelectMenuSync-D4l3zik4.js.map} +1 -1
- package/dist/TypeaheadTextField-BJrrlLjP.js +319 -0
- package/dist/TypeaheadTextField-BJrrlLjP.js.map +1 -0
- package/dist/TypeaheadTextField.css +16 -0
- package/dist/TypeaheadTextField.d.ts +1 -0
- package/dist/TypeaheadTextField.js +2 -0
- package/dist/TypeaheadTextField.js.map +1 -0
- package/dist/{YearlessDateInputWithPicker-CPhBofEJ.js → YearlessDateInputWithPicker-BmRkNzK0.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-CPhBofEJ.js.map → YearlessDateInputWithPicker-BmRkNzK0.js.map} +1 -1
- package/dist/a2-border.css +25 -0
- package/dist/a2-color.css +223 -0
- package/dist/a2-font.css +21 -0
- package/dist/a2-spacing.css +238 -0
- package/dist/a2-utils.css +500 -0
- package/dist/beta.js +101 -15
- package/dist/beta.js.map +1 -1
- package/dist/{filter-state-HDQUPdOL.js → filter-state-C-4lebJG.js} +19 -19
- package/dist/filter-state-C-4lebJG.js.map +1 -0
- package/dist/{floating-ui.react-dom-BIKT960u.js → floating-ui.react-dom-CyrxPiI-.js} +2 -2
- package/dist/{floating-ui.react-dom-BIKT960u.js.map → floating-ui.react-dom-CyrxPiI-.js.map} +1 -1
- package/dist/{index-vOZvfuE6.js → index-mKaF0gwp.js} +2 -2
- package/dist/{index-vOZvfuE6.js.map → index-mKaF0gwp.js.map} +1 -1
- package/dist/index.js +45 -41
- package/dist/index.js.map +1 -1
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncMultiSelect.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncSelect.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/adapters/multiSelect.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/adapters/singleSelect.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +2 -2
- package/dist/src/beta/components/Table/createColumnHelper.d.ts +1 -1
- package/dist/src/beta/components/Table/types.d.ts +6 -6
- package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +1 -0
- package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +4 -1
- package/dist/src/beta/components/TreeSelectField/types.d.ts +15 -0
- package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +67 -0
- package/dist/src/beta/components/TypeaheadTextField/index.d.ts +1 -0
- package/dist/src/beta/components/TypeaheadTextField/internal/SuggestionItem.d.ts +29 -0
- package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +21 -0
- package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +21 -0
- package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +21 -0
- package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +21 -0
- package/dist/src/beta/components/deprecatedReexports/constants.d.ts +10 -0
- package/dist/src/beta/components/deprecatedReexports/deprecatedBetaImport.d.ts +7 -0
- package/dist/src/beta/components/index.d.ts +7 -6
- package/dist/src/components/Combobox/Combobox.d.ts +2 -0
- package/dist/src/{beta/components → components}/MultiSelectField/MultiSelectFieldSync.d.ts +1 -1
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +5 -0
- package/dist/src/{beta/components → components}/MultiSelectField/internal/MultiSelectFieldInput.d.ts +4 -2
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +6 -0
- package/dist/src/{beta/components → components}/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
- package/dist/src/{beta/components → components}/MultiSelectField/internal/types.d.ts +3 -2
- package/dist/src/{beta/components → components}/MultiSelectField/internal/useComboMultiple.d.ts +2 -2
- package/dist/src/{beta/components → components}/MultiSelectField/internal/useSelectModeMultiple.d.ts +2 -2
- package/dist/src/{beta/components → components}/MultiSelectField/types.d.ts +9 -4
- package/dist/src/{beta/components → components}/MultiSelectMenu/MultiSelectMenuSync.d.ts +1 -1
- package/dist/src/{beta/components → components}/MultiSelectMenu/types.d.ts +3 -3
- package/dist/src/components/NumberField/NumberField.d.ts +10 -0
- package/dist/src/{beta/components → components}/SelectField/SelectFieldSync.d.ts +1 -1
- package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +6 -0
- package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldInput.d.ts +4 -2
- package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldLabel.d.ts +1 -1
- package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +6 -0
- package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldTrigger.d.ts +3 -2
- package/dist/src/{beta/components → components}/SelectField/internal/useCombo.d.ts +1 -1
- package/dist/src/{beta/components → components}/SelectField/internal/useSelectMode.d.ts +1 -1
- package/dist/src/{beta/components → components}/SelectField/types.d.ts +8 -3
- package/dist/src/{beta/components → components}/SelectMenu/SelectMenuSync.d.ts +1 -1
- package/dist/src/{beta/components → components}/SelectMenu/internal/useMenuInteraction.d.ts +2 -2
- package/dist/src/{beta/components → components}/SelectMenu/types.d.ts +1 -1
- package/dist/src/components/SelectTrigger/internal/SelectTriggerBase.d.ts +2 -1
- package/dist/src/components/TextField/internal/TextField.d.ts +5 -0
- package/dist/src/components/index.d.ts +4 -0
- package/dist/src/internal/components/MultiSelectOptions.d.ts +1 -1
- package/dist/src/internal/components/SelectOptions.d.ts +1 -1
- package/dist/src/internal/functions/buildSelectItems.d.ts +1 -1
- package/dist/src/internal/functions/syncFilterUtils.d.ts +1 -1
- package/dist/src/internal/hooks/useGroupedOptions.d.ts +1 -1
- package/dist/src/internal/hooks/usePinnedOptions.d.ts +1 -1
- package/dist/src/internal/hooks/useProcessedOptions.d.ts +1 -1
- package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +1 -1
- package/dist/src/internal/hooks/useSelectOrchestration.d.ts +1 -1
- package/dist/src/internal/hooks/useToggleSelection.d.ts +1 -1
- package/dist/src/internal/types/bulkActionTypes.d.ts +1 -1
- package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -1
- package/dist/src/providers/AnvilProvider/AnvilProviderContext.d.ts +7 -0
- package/dist/src/providers/AnvilProvider/index.d.ts +1 -1
- package/dist/{stripInlineMarkdown-B-pONfu5.js → stripInlineMarkdown-CQCRopqY.js} +2 -2
- package/dist/{stripInlineMarkdown-B-pONfu5.js.map → stripInlineMarkdown-CQCRopqY.js.map} +1 -1
- package/dist/{syncFilterUtils-Cg2yX7al.js → syncFilterUtils-JUsufAHA.js} +4 -33
- package/dist/syncFilterUtils-JUsufAHA.js.map +1 -0
- package/dist/{treeSync-CASYkjhr.js → treeSync-CXMjwQ4X.js} +3 -3
- package/dist/{treeSync-CASYkjhr.js.map → treeSync-CXMjwQ4X.js.map} +1 -1
- package/dist/{useAdaptiveView-BDqpk9G2.js → useAdaptiveView-BdzXyicd.js} +4 -4
- package/dist/{useAdaptiveView-BDqpk9G2.js.map → useAdaptiveView-BdzXyicd.js.map} +1 -1
- package/dist/useChipLayout-BWZfKDgd.js.map +1 -1
- package/dist/useDebouncedCallback-DLkapjcP.js +33 -0
- package/dist/useDebouncedCallback-DLkapjcP.js.map +1 -0
- package/dist/{useDrilldown-DCXYrcGK.js → useDrilldown-CWNTo5uR.js} +2 -2
- package/dist/{useDrilldown-DCXYrcGK.js.map → useDrilldown-CWNTo5uR.js.map} +1 -1
- package/dist/{useInfiniteCombobox-D_y_FHCj.js → useInfiniteCombobox-D77w-hHb.js} +10 -5
- package/dist/useInfiniteCombobox-D77w-hHb.js.map +1 -0
- package/dist/useMenuInteraction-NEJXUD4I.js.map +1 -1
- package/dist/{useToggleSelection-BSLh569m.js → useToggleSelection-a18uaSE7.js} +2 -2
- package/dist/useToggleSelection-a18uaSE7.js.map +1 -0
- package/package.json +3 -3
- package/dist/AnvilProvider-Cw_zTBqJ.js.map +0 -1
- package/dist/DataTable-B_GYRuR1.js.map +0 -1
- package/dist/MultiSelectFieldSync-jb57hWBG.js.map +0 -1
- package/dist/MultiSelectMenuSync-D6NI4Z2h.js.map +0 -1
- package/dist/NumberField-C_UAdOsK.js.map +0 -1
- package/dist/SavedFiltersButton-BpjGgsnS.js.map +0 -1
- package/dist/SelectFieldLabel-BopPrWWy.js.map +0 -1
- package/dist/SelectFieldSync-B30iR0EX.js.map +0 -1
- package/dist/SelectMenuSync-BoxEMqcv.js.map +0 -1
- package/dist/SelectOptions-kx_udzjX.js.map +0 -1
- package/dist/SelectTriggerBase-CL9Zpbxn.js.map +0 -1
- package/dist/SelectTriggerBase.module-DsPvTQE7.js +0 -37
- package/dist/SelectTriggerBase.module-DsPvTQE7.js.map +0 -1
- package/dist/TextField-Dn2pwnKf.js.map +0 -1
- package/dist/TextField.module-C8FsjTpx.js +0 -23
- package/dist/TextField.module-C8FsjTpx.js.map +0 -1
- package/dist/TreeSelectFieldSync-CqY6lbDJ.js.map +0 -1
- package/dist/filter-state-HDQUPdOL.js.map +0 -1
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +0 -5
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +0 -6
- package/dist/src/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +0 -6
- package/dist/src/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +0 -6
- package/dist/syncFilterUtils-Cg2yX7al.js.map +0 -1
- package/dist/useInfiniteCombobox-D_y_FHCj.js.map +0 -1
- package/dist/useToggleSelection-BSLh569m.js.map +0 -1
- /package/dist/src/{beta/components → components}/MultiSelectField/MultiSelectField.d.ts +0 -0
- /package/dist/src/{beta/components → components}/MultiSelectField/index.d.ts +0 -0
- /package/dist/src/{beta/components → components}/MultiSelectField/internal/useChipLayout.d.ts +0 -0
- /package/dist/src/{beta/components → components}/MultiSelectField/stories/MultiSelectField.stories.data.d.ts +0 -0
- /package/dist/src/{beta/components → components}/MultiSelectMenu/MultiSelectMenu.d.ts +0 -0
- /package/dist/src/{beta/components → components}/MultiSelectMenu/index.d.ts +0 -0
- /package/dist/src/{beta/components → components}/SelectField/SelectField.d.ts +0 -0
- /package/dist/src/{beta/components → components}/SelectField/index.d.ts +0 -0
- /package/dist/src/{beta/components → components}/SelectField/stories/SelectField.stories.data.d.ts +0 -0
- /package/dist/src/{beta/components → components}/SelectMenu/SelectMenu.d.ts +0 -0
- /package/dist/src/{beta/components → components}/SelectMenu/index.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTriggerBase-aE_iVDpL.js","sources":["../src/components/Combobox/internal/ComboboxUtils.ts","../src/components/SelectTrigger/internal/SelectTriggerBase.tsx"],"sourcesContent":["import {\n ComboboxMultipleProps,\n ComboboxProps,\n ComboboxSelectProps,\n SelectMultipleProps,\n} from \"../ComboboxTypes\";\n\nexport const ADD_NEW = Symbol.for(\"add-new\");\nexport const SELECT_ALL = Symbol.for(\"select-all\");\n\n/**\n * Default function to convert an item to a string representation\n * @template Item - The type of the item\n * @param item - The item to convert to string\n * @returns String representation of the item or empty string if null/undefined\n */\nexport const defaultItemToString = function <Item>(item: Item | null) {\n return item != null ? String(item) : \"\";\n};\n\n/**\n * Default function to generate a unique key for an item\n * @template Item - The type of the item\n * @param item - The item to generate a key for\n * @returns The item itself as the key\n */\nexport const defaultItemToKey = function <Item>(item: Item | null) {\n return item;\n};\n\nexport function isMultiple<Item>(\n props: ComboboxProps<Item> | ComboboxSelectProps<Item>,\n): props is ComboboxMultipleProps<Item> | SelectMultipleProps<Item> {\n return Object.hasOwn(props, \"multiple\") && props.multiple === true;\n}\n\nexport function getScrollParent(node: HTMLElement | null) {\n if (node == null) {\n return null;\n }\n\n if (node.scrollHeight > node.clientHeight) {\n return node;\n } else {\n if (node.parentNode instanceof HTMLElement) {\n return getScrollParent(node.parentNode);\n }\n return null;\n }\n}\n","import {\n useState,\n useId,\n useRef,\n useLayoutEffect,\n useMemo,\n isValidElement,\n type ComponentPropsWithoutRef,\n type MouseEvent,\n type MutableRefObject,\n type MouseEventHandler,\n ReactNode,\n} from \"react\";\nimport cx from \"classnames\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\n\nimport { Button } from \"../../Button\";\nimport { Chip, ChipProps } from \"../../Chip\";\nimport { Flex } from \"../../Flex\";\nimport { FieldLabel, FieldLabelProps } from \"../../FieldLabel\";\nimport { Helper } from \"../../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../../FieldMessage\";\nimport { TextFieldProps } from \"../../TextField\";\n\nimport styles from \"./SelectTriggerBase.module.scss\";\nimport { DistributiveOmit } from \"../../../types\";\nimport { defaultItemToString } from \"../../Combobox/internal/ComboboxUtils\";\n\ntype PartialChipProps = Partial<Omit<ChipProps, \"icon\" | \"avatar\">> &\n (\n | { icon?: ChipProps[\"icon\"]; avatar?: never }\n | { icon?: never; avatar?: ChipProps[\"avatar\"] }\n );\n\ntype CollapseSearchStatus = \"done\" | \"measuring\" | \"searching\";\n\ntype CollapseSearchState = {\n status: CollapseSearchStatus;\n key: string | null;\n collapsedChips: boolean;\n visibleChipsCount: number | null;\n low: number;\n high: number;\n candidate: number | null;\n bestFit: number | null;\n iterations: number;\n};\n\nconst COLLAPSE_SEARCH_ITERATION_MARGIN = 4;\n\nfunction getDoneCollapseSearchState(\n key: string | null,\n collapsedChips = false,\n visibleChipsCount: number | null = null,\n): CollapseSearchState {\n return {\n status: \"done\",\n key,\n collapsedChips,\n visibleChipsCount,\n low: 0,\n high: 0,\n candidate: null,\n bestFit: visibleChipsCount,\n iterations: 0,\n };\n}\n\nfunction getMaxCollapseSearchIterations(selectedItemsCount: number): number {\n // Allows one full binary-search pass plus a small buffer for measurement rerenders.\n return (\n Math.ceil(Math.log2(Math.max(selectedItemsCount, 2))) +\n COLLAPSE_SEARCH_ITERATION_MARGIN\n );\n}\n\nconst FNV_1A_OFFSET_BASIS = 0x811c9dc5;\nconst FNV_1A_PRIME = 0x01000193;\n\nfunction addByteToCollapseHash(hash: number, byte: number): number {\n return Math.imul(hash ^ byte, FNV_1A_PRIME) >>> 0;\n}\n\nfunction addNumberToCollapseHash(hash: number, value: number): number {\n let nextHash = hash;\n\n nextHash = addByteToCollapseHash(nextHash, value & 0xff);\n nextHash = addByteToCollapseHash(nextHash, (value >>> 8) & 0xff);\n nextHash = addByteToCollapseHash(nextHash, (value >>> 16) & 0xff);\n nextHash = addByteToCollapseHash(nextHash, (value >>> 24) & 0xff);\n\n return nextHash;\n}\n\nfunction addLabelToCollapseHash(hash: number, label: string): number {\n let nextHash = addNumberToCollapseHash(hash, label.length);\n\n for (let index = 0; index < label.length; index += 1) {\n const codeUnit = label.charCodeAt(index);\n\n nextHash = addByteToCollapseHash(nextHash, codeUnit & 0xff);\n nextHash = addByteToCollapseHash(nextHash, codeUnit >>> 8);\n }\n\n return nextHash;\n}\n\nfunction getCollapseKey<Item>(\n maxRows: number | undefined,\n selectedItems: Item[],\n itemToString: (item: Item) => string,\n): string | null {\n if (maxRows === undefined) return null;\n\n let selectedItemsHash = FNV_1A_OFFSET_BASIS;\n\n for (const item of selectedItems) {\n selectedItemsHash = addLabelToCollapseHash(\n selectedItemsHash,\n itemToString(item),\n );\n }\n\n return `${maxRows}:${selectedItems.length}:${selectedItemsHash.toString(36)}`;\n}\n\nfunction getCollapseSearchCandidate(low: number, high: number): number {\n return Math.floor((low + high) / 2);\n}\n\nfunction mergeChipProps(\n ...propSets: (PartialChipProps | Partial<ChipProps>)[]\n): ChipProps {\n const merged = propSets.reduce(\n (acc, props) => ({ ...acc, ...props }),\n {} as Record<string, unknown>,\n );\n\n return merged as ChipProps;\n}\n\nexport type SelectTriggerBaseProps<Item = unknown> = DistributiveOmit<\n TextFieldProps,\n \"showCounter\" | \"prefix\"\n> & {\n /**\n * Should be a positive integer.\n */\n maxRows?: number;\n\n /** Allows Combobox/Select to display custom-colored Chips */\n selectedItemProps?: (item: Item, index: number) => PartialChipProps;\n} & {\n itemToString?: (item: Item) => string;\n removeSelectedItem?: (item: Item) => void;\n disableClearSelection?: boolean;\n selectedItem: Item | null;\n selectedItems: Item[];\n\n inputValue?: string;\n referenceRef?: MutableRefObject<HTMLDivElement | null>;\n} & {\n variant?: \"select\" | \"combobox\";\n onClearButtonClick?: MouseEventHandler<HTMLButtonElement>;\n labelProps?: Partial<FieldLabelProps>;\n inputWrapperProps?: ComponentPropsWithoutRef<\"div\">;\n toggleButtonProps?: ComponentPropsWithoutRef<\"button\">;\n chipProps?: (item: Item, index: number) => PartialChipProps;\n inputProps?: ComponentPropsWithoutRef<\"input\" | \"div\">;\n disableToggleButton?: boolean;\n} & {\n prefix?: string | ReactNode;\n};\n\nexport const SelectTriggerBase = function <Item>({\n className,\n label,\n size,\n error,\n hint,\n description,\n prefix,\n suffix,\n maxRows,\n selectedItemProps = (_item: Item, _index: number): PartialChipProps => ({}),\n disabled,\n readOnly,\n /** ======== */\n disableClearSelection,\n itemToString: itemToStringProp,\n selectedItem,\n selectedItems,\n removeSelectedItem,\n inputValue,\n referenceRef,\n /** ======== */\n variant = \"select\",\n onClearButtonClick,\n labelProps,\n inputWrapperProps = {},\n toggleButtonProps = {},\n inputProps = {},\n chipProps = (_item: Item, _index: number): PartialChipProps => ({}),\n disableToggleButton = false,\n warning,\n placeholder,\n ...rest\n}: SelectTriggerBaseProps<Item>) {\n const itemToString = itemToStringProp ?? defaultItemToString<Item>;\n\n const ComboboxTriggerClassNames = cx(styles[\"search-field\"], {\n [styles[\"select\"]]: variant === \"select\",\n });\n\n const noClearButton = disabled || readOnly || disableClearSelection;\n\n const ComboboxInputWrapperClassNames = cx(\n styles[\"input-wrapper\"],\n className\n ? {\n [className]: variant === \"select\",\n }\n : {},\n {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"no-clear-button\"]]: noClearButton,\n [styles[\"no-toggle-button\"]]: disableToggleButton,\n },\n );\n\n const ComboboxInputClassNames = cx(\n styles[\"input\"],\n className\n ? {\n [className]: variant === \"combobox\",\n }\n : {},\n {\n [styles[\"error\"]]: error,\n },\n );\n\n const helperUid = \"helper\" + useId();\n const placeholderUid = \"placeholder\" + useId();\n const ariaDescribedBy = `${helperUid} ${placeholderUid}`;\n\n warnDeprecatedErrorUsage(\"SelectTrigger\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const rowsRef = useRef<HTMLDivElement>(null);\n const collapseKey = useMemo(\n () => getCollapseKey(maxRows, selectedItems, itemToString),\n [maxRows, selectedItems, itemToString],\n );\n const [collapseSearch, setCollapseSearch] = useState<CollapseSearchState>(\n () => getDoneCollapseSearchState(null),\n );\n const stillCalculating = collapseSearch.status !== \"done\";\n\n useLayoutEffect(() => {\n // we only need to do this nonsense if maxRows is set\n if (maxRows === undefined) {\n if (\n collapseSearch.status !== \"done\" ||\n collapseSearch.collapsedChips ||\n collapseSearch.visibleChipsCount !== null ||\n collapseSearch.key !== null\n ) {\n setCollapseSearch(getDoneCollapseSearchState(null));\n }\n\n return;\n }\n\n if (collapseSearch.key !== collapseKey) {\n setCollapseSearch({\n status: \"measuring\",\n key: collapseKey,\n collapsedChips: false,\n visibleChipsCount: null,\n low: 0,\n high: Math.max(selectedItems.length - 1, 0),\n candidate: null,\n bestFit: null,\n iterations: 0,\n });\n\n return;\n }\n\n if (collapseSearch.status === \"done\") return;\n\n if (rowsRef?.current?.children) {\n const children = rowsRef?.current?.children;\n\n // Exclude the input-flex element from row counting so the algorithm\n // only considers chip elements when deciding whether to collapse.\n // The input will naturally fit alongside chips thanks to its\n // reduced min-width.\n const chipChildren = Array.from(children).filter(\n (child) =>\n !(child as HTMLElement).classList?.contains(styles[\"input-flex\"]),\n );\n\n const rowData = chipChildren.reduce(\n (acc, child) => {\n const top = child.getBoundingClientRect().top;\n\n if (!acc.length) {\n return [{ count: 1, top }];\n } else if (acc[acc.length - 1].top === top) {\n return [\n ...acc.slice(0, -1),\n { count: acc[acc.length - 1].count + 1, top },\n ];\n } else if (acc[acc.length - 1].top !== top) {\n return [...acc, { count: 1, top }];\n } else {\n return acc;\n }\n },\n [] as { count: number; top: number }[],\n );\n\n const fitsWithinMaxRows = !rowData[maxRows];\n\n // Call it a day if:\n // Selected items fit within the configured rows OR\n // There's only one item selected\n if (collapseSearch.status === \"measuring\") {\n if (fitsWithinMaxRows || selectedItems.length === 1) {\n setCollapseSearch(getDoneCollapseSearchState(collapseKey));\n\n return;\n }\n\n const quickGuess = Math.max(\n rowData.slice(0, maxRows).reduce((sum, row) => sum + row.count, -1),\n 0,\n );\n\n setCollapseSearch({\n status: \"searching\",\n key: collapseKey,\n collapsedChips: true,\n visibleChipsCount: quickGuess,\n low: 0,\n high: Math.max(selectedItems.length - 1, 0),\n candidate: quickGuess,\n bestFit: null,\n iterations: 0,\n });\n\n return;\n }\n\n if (collapseSearch.candidate === null) return;\n\n const iterations = collapseSearch.iterations + 1;\n const bestFit = fitsWithinMaxRows\n ? collapseSearch.candidate\n : collapseSearch.bestFit;\n const low = fitsWithinMaxRows\n ? collapseSearch.candidate + 1\n : collapseSearch.low;\n const high = fitsWithinMaxRows\n ? collapseSearch.high\n : collapseSearch.candidate - 1;\n const maxIterations = getMaxCollapseSearchIterations(\n selectedItems.length,\n );\n\n if (low > high || iterations >= maxIterations) {\n setCollapseSearch(\n getDoneCollapseSearchState(collapseKey, true, bestFit ?? 0),\n );\n\n return;\n }\n\n const candidate = getCollapseSearchCandidate(low, high);\n\n setCollapseSearch({\n status: \"searching\",\n key: collapseKey,\n collapsedChips: true,\n visibleChipsCount: candidate,\n low,\n high,\n candidate,\n bestFit,\n iterations,\n });\n }\n }, [collapseKey, collapseSearch, maxRows, selectedItems.length]);\n\n const selectedItemsDisplayCount =\n collapseSearch.collapsedChips &&\n maxRows != null &&\n collapseSearch.visibleChipsCount !== null\n ? collapseSearch.visibleChipsCount\n : selectedItems.length;\n\n // TODO: Update this to use a TextField component once we can pass props\n // directly to both the label and the text input\n return (\n <div {...rest} className={ComboboxTriggerClassNames} ref={referenceRef}>\n {label ? (\n <FieldLabel\n {...labelProps}\n className={cx(styles[\"label\"], labelProps?.className)}\n >\n {label}\n </FieldLabel>\n ) : null}\n\n <div\n {...inputWrapperProps}\n className={ComboboxInputWrapperClassNames}\n {...(variant === \"select\"\n ? {\n \"aria-describedby\": ariaDescribedBy,\n \"aria-labelledby\": labelProps?.id,\n }\n : {})}\n >\n <div className={styles[\"buttons-wrapper\"]}>\n {(inputValue || selectedItem || selectedItems.length) &&\n !noClearButton ? (\n <div className={styles[\"close-button-wrapper\"]}>\n <Button\n aria-label=\"clear selection\"\n appearance=\"ghost\"\n size=\"small\"\n icon={Close}\n className={styles[\"close-button\"]}\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onClearButtonClick?.(e);\n }}\n tabIndex={-1}\n />\n </div>\n ) : null}\n\n {disableToggleButton ? null : (\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n {...toggleButtonProps}\n {...(variant === \"select\"\n ? { tabIndex: -1, inert: \"true\" }\n : {})}\n className={styles[\"toggle-button\"]}\n aria-label=\"toggle menu\"\n icon={Chevron_Right}\n appearance=\"ghost\"\n size=\"small\"\n disabled={disabled}\n />\n </div>\n )}\n </div>\n\n <div className={styles[\"prefix-wrapper\"]}>\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n </div>\n\n <div\n className={cx(styles[\"rows-wrapper\"], {\n [styles[\"max-rows\"]]: maxRows !== undefined,\n [styles[\"single-row\"]]: maxRows === 1 && !stillCalculating,\n })}\n ref={rowsRef}\n >\n {selectedItems.length && removeSelectedItem != null\n ? selectedItems\n .slice(0, selectedItemsDisplayCount)\n .map((item, index) => {\n return (\n <div\n key={`selected-item-${index}`}\n className={styles[\"chip-wrapper\"]}\n >\n <Chip\n {...mergeChipProps(\n chipProps(item, index),\n selectedItemProps(item, index),\n {\n label: itemToString(item),\n onClose:\n disabled || readOnly\n ? undefined\n : (_e) => {\n removeSelectedItem(item);\n },\n className: styles[\"chip\"],\n title: itemToString(item),\n },\n )}\n />\n </div>\n );\n })\n : null}\n\n {collapseSearch.collapsedChips && maxRows != null ? (\n <div className={styles[\"chip-wrapper\"]}>\n <Chip\n label={`+${selectedItems.length - selectedItemsDisplayCount}`}\n className={styles[\"chip\"]}\n title={selectedItems\n .slice(selectedItemsDisplayCount)\n .map((item) => itemToString(item))\n .join(\", \")}\n />\n </div>\n ) : null}\n\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n {variant === \"select\" ? (\n <div\n {...inputProps}\n className={cx(ComboboxInputClassNames, inputProps.className)}\n >\n {selectedItems.length ? null : selectedItem ? (\n itemToString(selectedItem)\n ) : (\n <span\n className={styles[\"fake-placeholder\"]}\n id={placeholderUid}\n >\n {placeholder}\n </span>\n )}\n </div>\n ) : (\n <input\n type=\"text\"\n {...inputProps}\n placeholder={placeholder}\n className={cx(ComboboxInputClassNames, inputProps.className)}\n {...(inputProps[\"aria-expanded\"] != null &&\n inputProps[\"aria-controls\"] != null\n ? {\n role: \"combobox\",\n }\n : {})}\n />\n )}\n\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n </Flex>\n </div>\n </div>\n\n {hint || errorMessages || warning || description ? (\n <Helper\n id={helperUid}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n hint={hint}\n description={description}\n />\n ) : null}\n </div>\n );\n};\n"],"names":["Close","Chevron_Right"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.anvil2 {._search-
|
|
1
|
+
.anvil2 {._search-field_2c5gw_1 {
|
|
2
2
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
3
3
|
font-size: 100%;
|
|
4
4
|
color: inherit;
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
flex-direction: column;
|
|
13
13
|
font-size: var(--a2-typography-paragraph-size-default, var(--a2-font-size-400, 1rem));
|
|
14
14
|
gap: var(--a2-size-2, 0.5rem);
|
|
15
|
-
}.
|
|
15
|
+
}._select_2c5gw_17 {
|
|
16
16
|
cursor: pointer;
|
|
17
|
-
}._input-
|
|
17
|
+
}._input-wrapper_2c5gw_21 {
|
|
18
18
|
--a2-mod-select-trigger-base-height: calc(
|
|
19
19
|
var(--a2-size-10, 2.5rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
|
|
20
20
|
);
|
|
@@ -37,30 +37,32 @@
|
|
|
37
37
|
padding-inline-end: 4.5rem;
|
|
38
38
|
padding-inline-start: var(--a2-size-3, 0.75rem);
|
|
39
39
|
position: relative;
|
|
40
|
-
}._input-
|
|
40
|
+
}._input-wrapper_2c5gw_21:focus:not([disabled]), ._input-wrapper_2c5gw_21:focus-visible, ._input-wrapper_2c5gw_21:has(._input_2c5gw_21:focus-visible) {
|
|
41
41
|
outline-width: var(--a2-size-half, 0.125rem);
|
|
42
|
-
}._input-
|
|
42
|
+
}._input-wrapper_2c5gw_21:has(._input_2c5gw_21._error_2c5gw_48) {
|
|
43
43
|
border-color: var(--a2-border-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-200, #ffac9e)));
|
|
44
|
-
}._input-
|
|
44
|
+
}._input-wrapper_2c5gw_21:focus:has(._input_2c5gw_21._error_2c5gw_48):not([disabled]), ._input-wrapper_2c5gw_21:focus-visible:has(._input_2c5gw_21._error_2c5gw_48), ._input-wrapper_2c5gw_21:has(._input_2c5gw_21._error_2c5gw_48:focus-visible) {
|
|
45
45
|
outline-color: var(--a2-focus-ring-color-danger, var(--a2-status-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-400, #ff5b3d))));
|
|
46
46
|
outline-width: var(--a2-size-half, 0.125rem);
|
|
47
|
-
}._input-
|
|
47
|
+
}._input-wrapper_2c5gw_21._disabled_2c5gw_55, ._input-wrapper_2c5gw_21[disabled], ._input-wrapper_2c5gw_21:has(._input_2c5gw_21:disabled) {
|
|
48
48
|
opacity: 0.4;
|
|
49
|
-
}._input-
|
|
49
|
+
}._input-wrapper_2c5gw_21._disabled_2c5gw_55 *, ._input-wrapper_2c5gw_21[disabled] *, ._input-wrapper_2c5gw_21:has(._input_2c5gw_21:disabled) * {
|
|
50
50
|
cursor: not-allowed;
|
|
51
|
-
}._input-
|
|
51
|
+
}._input-wrapper_2c5gw_21:has(input._input_2c5gw_21:-moz-read-only) {
|
|
52
52
|
background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
|
|
53
|
-
}._input-
|
|
53
|
+
}._input-wrapper_2c5gw_21[disabled], ._input-wrapper_2c5gw_21[readonly], ._input-wrapper_2c5gw_21._disabled_2c5gw_55, ._input-wrapper_2c5gw_21:has(input._input_2c5gw_21:read-only) {
|
|
54
54
|
background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
|
|
55
|
-
}._input-
|
|
55
|
+
}._input-wrapper_2c5gw_21._highlight_2c5gw_64 {
|
|
56
|
+
background-color: var(--a2-background-color-primary-subdued, light-dark(var(--a2-color-blue-50, #e6f1ff), color-mix(in srgb, var(--a2-color-blue-300, #70b1ff) 20%, transparent)));
|
|
57
|
+
}._input-flex_2c5gw_68 {
|
|
56
58
|
flex: 1 1 100px;
|
|
57
59
|
min-width: 100px;
|
|
58
60
|
overflow: hidden;
|
|
59
61
|
text-overflow: ellipsis;
|
|
60
62
|
white-space: nowrap;
|
|
61
63
|
width: 0;
|
|
62
|
-
}.
|
|
63
|
-
.
|
|
64
|
+
}._input_2c5gw_21,
|
|
65
|
+
._input_2c5gw_21[type] {
|
|
64
66
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
65
67
|
font-size: 100%;
|
|
66
68
|
color: inherit;
|
|
@@ -83,45 +85,45 @@
|
|
|
83
85
|
padding-inline: 0;
|
|
84
86
|
transition: outline var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
|
|
85
87
|
width: 100px;
|
|
86
|
-
}.
|
|
88
|
+
}._input_2c5gw_21::-moz-placeholder, ._input_2c5gw_21[type]::-moz-placeholder {
|
|
87
89
|
color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
|
|
88
|
-
}.
|
|
89
|
-
.
|
|
90
|
+
}._input_2c5gw_21::placeholder,
|
|
91
|
+
._input_2c5gw_21[type]::placeholder {
|
|
90
92
|
color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
|
|
91
|
-
}.
|
|
92
|
-
.
|
|
93
|
+
}._input_2c5gw_21:focus,
|
|
94
|
+
._input_2c5gw_21[type]:focus {
|
|
93
95
|
box-shadow: none;
|
|
94
96
|
outline: none;
|
|
95
97
|
}@media (prefers-reduced-motion: reduce) {
|
|
96
|
-
.
|
|
97
|
-
.
|
|
98
|
+
._input_2c5gw_21,
|
|
99
|
+
._input_2c5gw_21[type] {
|
|
98
100
|
transition-duration: 0.01ms !important;
|
|
99
101
|
transition-property: outline;
|
|
100
102
|
}
|
|
101
|
-
}input.
|
|
103
|
+
}input._input_2c5gw_21:-moz-read-only {
|
|
102
104
|
background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
|
|
103
|
-
}input.
|
|
105
|
+
}input._input_2c5gw_21:read-only {
|
|
104
106
|
background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
|
|
105
|
-
}._fake-
|
|
107
|
+
}._fake-placeholder_2c5gw_123 {
|
|
106
108
|
color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
|
|
107
109
|
-webkit-user-select: none;
|
|
108
110
|
-moz-user-select: none;
|
|
109
111
|
user-select: none;
|
|
110
|
-
}._no-clear-
|
|
112
|
+
}._no-clear-button_2c5gw_128 {
|
|
111
113
|
padding-inline-end: var(--a2-size-8, 2rem);
|
|
112
|
-
}._no-toggle-
|
|
114
|
+
}._no-toggle-button_2c5gw_132 {
|
|
113
115
|
padding-inline-end: var(--a2-size-8, 2rem);
|
|
114
|
-
}._no-clear-
|
|
116
|
+
}._no-clear-button_2c5gw_128._no-toggle-button_2c5gw_132 {
|
|
115
117
|
padding-inline-end: var(--a2-size-3, 0.75rem);
|
|
116
|
-
}.
|
|
118
|
+
}._small_2c5gw_140 {
|
|
117
119
|
--a2-mod-select-trigger-base-height: calc(
|
|
118
120
|
var(--a2-size-8, 2rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
|
|
119
121
|
);
|
|
120
|
-
}.
|
|
122
|
+
}._large_2c5gw_146 {
|
|
121
123
|
--a2-mod-select-trigger-base-height: calc(
|
|
122
124
|
var(--a2-size-12, 3rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
|
|
123
125
|
);
|
|
124
|
-
}._buttons-
|
|
126
|
+
}._buttons-wrapper_2c5gw_152 {
|
|
125
127
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
126
128
|
font-size: 100%;
|
|
127
129
|
color: inherit;
|
|
@@ -136,7 +138,7 @@
|
|
|
136
138
|
inset-block-start: 0;
|
|
137
139
|
inset-inline-end: 0;
|
|
138
140
|
position: absolute;
|
|
139
|
-
}._close-button-
|
|
141
|
+
}._close-button-wrapper_2c5gw_169 {
|
|
140
142
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
141
143
|
font-size: 100%;
|
|
142
144
|
color: inherit;
|
|
@@ -150,11 +152,11 @@
|
|
|
150
152
|
align-items: center;
|
|
151
153
|
cursor: pointer;
|
|
152
154
|
display: flex;
|
|
153
|
-
}._close-
|
|
155
|
+
}._close-button_2c5gw_169 {
|
|
154
156
|
--a2-mod-button-background-color: transparent;
|
|
155
|
-
}._close-
|
|
157
|
+
}._close-button_2c5gw_169[data-interactive=hover]::before, ._close-button_2c5gw_169:hover::before, ._close-button_2c5gw_169:disabled:not(._loading-infinite_2c5gw_188, ._loading-progress_2c5gw_188), ._close-button_2c5gw_169._disabled_2c5gw_55:not(._loading-infinite_2c5gw_188, ._loading-progress_2c5gw_188), ._close-button_2c5gw_169[aria-disabled=true]:not(._loading-infinite_2c5gw_188, ._loading-progress_2c5gw_188) {
|
|
156
158
|
--a2-mod-button-background-color: transparent;
|
|
157
|
-
}._toggle-button-
|
|
159
|
+
}._toggle-button-wrapper_2c5gw_192 {
|
|
158
160
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
159
161
|
font-size: 100%;
|
|
160
162
|
color: inherit;
|
|
@@ -168,29 +170,29 @@
|
|
|
168
170
|
align-items: center;
|
|
169
171
|
cursor: pointer;
|
|
170
172
|
display: flex;
|
|
171
|
-
}._toggle-
|
|
173
|
+
}._toggle-button_2c5gw_192 {
|
|
172
174
|
--a2-mod-button-background-color: transparent;
|
|
173
175
|
--a2-mod-button-foreground-color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
|
|
174
176
|
transform: rotate(90deg);
|
|
175
177
|
transition: transform var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
|
|
176
|
-
}._toggle-
|
|
178
|
+
}._toggle-button_2c5gw_192[aria-expanded=true] {
|
|
177
179
|
transform: rotate(270deg);
|
|
178
|
-
}._toggle-
|
|
180
|
+
}._toggle-button_2c5gw_192[data-interactive=hover]::before, ._toggle-button_2c5gw_192:hover::before, ._toggle-button_2c5gw_192:disabled:not(._loading-infinite_2c5gw_188, ._loading-progress_2c5gw_188), ._toggle-button_2c5gw_192._disabled_2c5gw_55:not(._loading-infinite_2c5gw_188, ._loading-progress_2c5gw_188), ._toggle-button_2c5gw_192[aria-disabled=true]:not(._loading-infinite_2c5gw_188, ._loading-progress_2c5gw_188) {
|
|
179
181
|
--a2-mod-button-background-color: transparent;
|
|
180
182
|
}@media (prefers-reduced-motion: reduce) {
|
|
181
|
-
._toggle-
|
|
183
|
+
._toggle-button_2c5gw_192 {
|
|
182
184
|
transition-duration: 0.01ms !important;
|
|
183
185
|
}
|
|
184
|
-
}[aria-expanded=true] ._toggle-
|
|
186
|
+
}[aria-expanded=true] ._toggle-button_2c5gw_192 {
|
|
185
187
|
transform: rotate(270deg);
|
|
186
|
-
}._prefix-
|
|
188
|
+
}._prefix-wrapper_2c5gw_230 {
|
|
187
189
|
align-items: stretch;
|
|
188
190
|
display: flex;
|
|
189
191
|
flex-direction: row;
|
|
190
192
|
flex-wrap: wrap;
|
|
191
193
|
height: var(--a2-mod-select-trigger-base-height);
|
|
192
194
|
pointer-events: none;
|
|
193
|
-
}._rows-
|
|
195
|
+
}._rows-wrapper_2c5gw_239 {
|
|
194
196
|
align-items: stretch;
|
|
195
197
|
display: flex;
|
|
196
198
|
flex-direction: row;
|
|
@@ -199,16 +201,16 @@
|
|
|
199
201
|
gap: 0 var(--a2-size-1, 0.25rem);
|
|
200
202
|
max-width: 100%;
|
|
201
203
|
width: 100%;
|
|
202
|
-
}._chip-
|
|
204
|
+
}._chip-wrapper_2c5gw_250 {
|
|
203
205
|
align-items: center;
|
|
204
206
|
display: flex;
|
|
205
207
|
height: var(--a2-mod-select-trigger-base-height);
|
|
206
208
|
justify-content: center;
|
|
207
209
|
max-width: 100%;
|
|
208
|
-
}.
|
|
210
|
+
}._chip_2c5gw_250 {
|
|
209
211
|
--a2-mod-chip-max-width: 100%;
|
|
210
|
-
}.
|
|
211
|
-
.
|
|
212
|
+
}._prefix_2c5gw_230,
|
|
213
|
+
._suffix_2c5gw_263 {
|
|
212
214
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
213
215
|
font-size: 100%;
|
|
214
216
|
color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
|
|
@@ -224,9 +226,9 @@
|
|
|
224
226
|
font-weight: var(--a2-font-weight-semibold, 600);
|
|
225
227
|
justify-content: center;
|
|
226
228
|
min-width: var(--a2-size-8, 2rem);
|
|
227
|
-
}.
|
|
229
|
+
}._prefix_2c5gw_230 {
|
|
228
230
|
padding-inline-end: var(--a2-size-2, 0.5rem);
|
|
229
|
-
}.
|
|
231
|
+
}._suffix_2c5gw_263 {
|
|
230
232
|
padding-inline-start: var(--a2-size-2, 0.5rem);
|
|
231
233
|
padding-inline-end: var(--a2-size-2, 0.5rem);
|
|
232
234
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import './SelectTriggerBase.css';const select = "_select_2c5gw_17";
|
|
2
|
+
const input = "_input_2c5gw_21";
|
|
3
|
+
const error = "_error_2c5gw_48";
|
|
4
|
+
const disabled = "_disabled_2c5gw_55";
|
|
5
|
+
const highlight = "_highlight_2c5gw_64";
|
|
6
|
+
const small = "_small_2c5gw_140";
|
|
7
|
+
const large = "_large_2c5gw_146";
|
|
8
|
+
const chip = "_chip_2c5gw_250";
|
|
9
|
+
const prefix = "_prefix_2c5gw_230";
|
|
10
|
+
const suffix = "_suffix_2c5gw_263";
|
|
11
|
+
const styles = {
|
|
12
|
+
"search-field": "_search-field_2c5gw_1",
|
|
13
|
+
select: select,
|
|
14
|
+
"input-wrapper": "_input-wrapper_2c5gw_21",
|
|
15
|
+
input: input,
|
|
16
|
+
error: error,
|
|
17
|
+
disabled: disabled,
|
|
18
|
+
highlight: highlight,
|
|
19
|
+
"input-flex": "_input-flex_2c5gw_68",
|
|
20
|
+
"fake-placeholder": "_fake-placeholder_2c5gw_123",
|
|
21
|
+
"no-clear-button": "_no-clear-button_2c5gw_128",
|
|
22
|
+
"no-toggle-button": "_no-toggle-button_2c5gw_132",
|
|
23
|
+
small: small,
|
|
24
|
+
large: large,
|
|
25
|
+
"buttons-wrapper": "_buttons-wrapper_2c5gw_152",
|
|
26
|
+
"close-button-wrapper": "_close-button-wrapper_2c5gw_169",
|
|
27
|
+
"close-button": "_close-button_2c5gw_169",
|
|
28
|
+
"toggle-button-wrapper": "_toggle-button-wrapper_2c5gw_192",
|
|
29
|
+
"toggle-button": "_toggle-button_2c5gw_192",
|
|
30
|
+
"prefix-wrapper": "_prefix-wrapper_2c5gw_230",
|
|
31
|
+
"rows-wrapper": "_rows-wrapper_2c5gw_239",
|
|
32
|
+
"chip-wrapper": "_chip-wrapper_2c5gw_250",
|
|
33
|
+
chip: chip,
|
|
34
|
+
prefix: prefix,
|
|
35
|
+
suffix: suffix
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { styles as s };
|
|
39
|
+
//# sourceMappingURL=SelectTriggerBase.module-Brmw1nYG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTriggerBase.module-Brmw1nYG.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,7 +3,7 @@ import { forwardRef, useId } from 'react';
|
|
|
3
3
|
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
4
4
|
import { I as Icon } from './Icon-BEwHECSM.js';
|
|
5
5
|
import { F as Flex } from './Flex-Bb3iHExM.js';
|
|
6
|
-
import { A as AiMark } from './AiMark-
|
|
6
|
+
import { A as AiMark } from './AiMark-D6ScGfyP.js';
|
|
7
7
|
import { c as cx } from './index-De1g9FRV.js';
|
|
8
8
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
9
9
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
@@ -100,4 +100,4 @@ const Switch = forwardRef(
|
|
|
100
100
|
Switch.displayName = "Switch";
|
|
101
101
|
|
|
102
102
|
export { Switch as S };
|
|
103
|
-
//# sourceMappingURL=Switch-
|
|
103
|
+
//# sourceMappingURL=Switch-DibokoJL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch-
|
|
1
|
+
{"version":3,"file":"Switch-DibokoJL.js","sources":["../src/components/Switch/Switch.tsx"],"sourcesContent":["import {\n ChangeEvent,\n ComponentPropsWithoutRef,\n ReactElement,\n Ref,\n forwardRef,\n useId,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport {\n AiMarkWithTooltipOrPopoverProps,\n DataTrackingId,\n LayoutUtilProps,\n} from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport Icon from \"../Icon\";\nimport Flex from \"../Flex\";\nimport { Helper } from \"../../internal/components\";\nimport { AiMark } from \"../../components/AiMark\";\n\nimport cx from \"classnames\";\nimport styles from \"./Switch.module.scss\";\n\n/**\n * State object returned by the Switch onChange callback\n */\nexport type SwitchState = {\n /**\n * Whether the switch is currently checked\n */\n checked: boolean;\n /**\n * The value of the switch input\n */\n value?: string | number | readonly string[];\n};\n\n/**\n * Props for the Switch component\n * @extends ComponentPropsWithoutRef<\"input\">\n * @extends LayoutUtilProps\n */\nexport type SwitchProps = Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\"> &\n LayoutUtilProps & {\n /**\n * Callback when switch is changed.\n * @param e Change event object\n * @param state Current switch state with checked status and value\n */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state: SwitchState) => void;\n\n /**\n * Label for the switch.\n * @remarks This should either be a string or have text content inside for accessibility\n */\n label?: ReactElement | string;\n\n /**\n * AI mark configuration to display next to the label.\n * Can be a boolean to show a simple AI mark, or an object with tooltip/popover configuration.\n */\n labelAiMark?: AiMarkWithTooltipOrPopoverProps[\"aiMark\"];\n\n /**\n * Description text to display below the label\n */\n description?: string;\n } & DataTrackingId;\n\n/**\n * Switch component for toggling between on/off states.\n *\n * Features:\n * - Toggle switch with smooth animations\n * - Check icon indicator when active\n * - Accessible with proper ARIA roles and attributes\n * - Keyboard navigation support (Space/Enter)\n * - Controlled and uncontrolled state management\n * - Customizable label and styling\n * - Layout utilities for positioning and spacing\n * - Focus management with visible focus indicators\n * - Hover states and visual feedback\n * - Disabled state support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Switch\n * label=\"Enable notifications\"\n * onChange={(e, state) => console.log('Switch toggled:', state.checked)}\n * />\n */\nexport const Switch = forwardRef(\n (props: SwitchProps, ref: Ref<HTMLInputElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n labelAiMark,\n description,\n className,\n onChange,\n checked,\n defaultChecked,\n value,\n style,\n \"aria-label\": ariaLabel,\n ...rest\n } = componentProps;\n\n const helperUid = useId();\n\n const onChangeHandler = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e, { value, checked: e.target.checked });\n };\n\n const data = {\n label: childrenToString(label),\n ariaLabel: ariaLabel || \"Toggle option\",\n ariaLabelledBy: rest[\"aria-labelledby\"],\n value,\n };\n\n const trackingId = useTrackingId({\n name: \"Switch\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const switchClassNames = cx(styles[\"switch\"], className);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n alignItems: description ? \"flex-start\" : \"center\",\n };\n\n return (\n <label className={switchClassNames} style={styleCombined}>\n <input\n className={styles[\"input\"]}\n data-tracking-id={trackingId}\n data-anv=\"switch\"\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n value={value}\n aria-checked={checked ?? defaultChecked}\n aria-label={label ? undefined : ariaLabel || \"Toggle option\"}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={onChangeHandler}\n {...rest}\n />\n <span aria-hidden className={styles[\"toggle\"]}>\n <span className={styles[\"thumb\"]}>\n <Icon svg={Check} className={styles[\"check\"]} />\n </span>\n </span>\n {label || description ? (\n <Flex direction=\"column\" gap={1}>\n <Flex alignItems=\"center\" gap={2}>\n {label}\n {labelAiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof labelAiMark === \"object\" ? labelAiMark : undefined\n }\n />\n )}\n </Flex>\n {description && <Helper id={helperUid} description={description} />}\n </Flex>\n ) : null}\n </label>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n"],"names":["Check"],"mappings":"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"}
|
package/dist/Switch.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as Switch, S as default } from './Switch-
|
|
1
|
+
export { S as Switch, S as default } from './Switch-DibokoJL.js';
|
|
2
2
|
//# sourceMappingURL=Switch.js.map
|
package/dist/Table.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as COLUMN_TYPE_DEFAULTS, D as DataTable, b as booleanFormatter, a as chipsFormatter, c as createColumnHelper, d as currencyFormatter, i as dateFormatPresets, e as dateFormatter, f as dateTimeFormatter, g as getColumnTypeDefaults, h as htmlFormatter, m as markdownFormatter, n as numberFormatter, p as percentFormatter, r as resolveColumnTypeConfig, t as timeFormatPresets, j as timeFormatter, y as yearlessDateFormatter } from './DataTable-
|
|
1
|
+
export { C as COLUMN_TYPE_DEFAULTS, D as DataTable, b as booleanFormatter, a as chipsFormatter, c as createColumnHelper, d as currencyFormatter, i as dateFormatPresets, e as dateFormatter, f as dateTimeFormatter, g as getColumnTypeDefaults, h as htmlFormatter, m as markdownFormatter, n as numberFormatter, p as percentFormatter, r as resolveColumnTypeConfig, t as timeFormatPresets, j as timeFormatter, y as yearlessDateFormatter } from './DataTable-CnRkAUpI.js';
|
|
2
2
|
//# sourceMappingURL=Table.js.map
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { c as cx } from './index-De1g9FRV.js';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
import { t as textStyles } from './Text.module-BcVew1AQ.js';
|
|
5
|
-
import { A as AiMark } from './AiMark-
|
|
5
|
+
import { A as AiMark } from './AiMark-D6ScGfyP.js';
|
|
6
6
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
7
7
|
|
|
8
8
|
const Text = forwardRef((props, ref) => {
|
|
@@ -120,4 +120,4 @@ const Text = forwardRef((props, ref) => {
|
|
|
120
120
|
Text.displayName = "Text";
|
|
121
121
|
|
|
122
122
|
export { Text as T };
|
|
123
|
-
//# sourceMappingURL=Text-
|
|
123
|
+
//# sourceMappingURL=Text-BTCfqeSr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text-
|
|
1
|
+
{"version":3,"file":"Text-BTCfqeSr.js","sources":["../src/components/Text/Text.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { forwardRef, LegacyRef } from \"react\";\nimport styles from \"./Text.module.scss\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { AiMark } from \"../AiMark\";\nimport {\n BodyTextInlineProps,\n BodyTextProps,\n EyebrowProps,\n HeadlineProps,\n} from \"./types\";\n\n/**\n * Props for the Text component\n * @extends HeadlineProps<\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\">\n * @extends EyebrowProps\n * @extends BodyTextProps\n * @extends BodyTextInlineProps\n */\nexport type TextProps =\n | HeadlineProps<\"h1\">\n | HeadlineProps<\"h2\">\n | HeadlineProps<\"h3\">\n | HeadlineProps<\"h4\">\n | HeadlineProps<\"h5\">\n | HeadlineProps<\"h6\">\n | EyebrowProps\n | BodyTextProps\n | BodyTextInlineProps;\n\n/**\n * Text component for displaying various types of text content with consistent styling.\n *\n * Features:\n * - Multiple text variants (headline, eyebrow, body)\n * - Semantic HTML elements (h1-h6, p, span)\n * - Multiple size options for each variant\n *\n * @example\n * <Text variant=\"headline\" el=\"h1\" size=\"large\">Main Heading</Text>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">Sub Heading</Text>\n *\n * @example\n * <Text variant=\"eyebrow\" size=\"small\">Category Label</Text>\n *\n * @example\n * <Text size=\"large\">Large body text</Text>\n * <Text subdued>Deemphasized text</Text>\n * <Text inline>Inline text within other text</Text>\n */\nexport const Text = forwardRef<\n HTMLHeadingElement | HTMLSpanElement | HTMLParagraphElement,\n TextProps\n>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n if (props.variant === \"headline\") {\n const {\n variant: _,\n children,\n className,\n el: HeadlineElement,\n size = \"medium\",\n style,\n aiMark,\n ...rest\n } = componentProps;\n\n const TextClasses = classnames(styles[\"headline\"], className, {\n [styles[`${size}`]]: size !== \"medium\",\n });\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const aiMarkSize = size === \"small\" ? \"medium\" : size;\n\n const aiMarkNode = aiMark && (\n <span className={styles[\"headline-ai-mark\"]}>\n <AiMark\n type=\"gradient\"\n collapsePadding=\"block\"\n size={aiMarkSize}\n popoverOrTooltipConfig={\n typeof aiMark === \"object\" ? aiMark : undefined\n }\n />\n </span>\n );\n\n return (\n // @ts-expect-error ts(2604) HeadlineElement will work as element tag\n <HeadlineElement\n ref={ref as LegacyRef<HTMLHeadingElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {aiMarkNode ? (\n <span className={styles[\"headline-with-ai-mark\"]}>\n {children}\n {aiMarkNode}\n </span>\n ) : (\n children\n )}\n </HeadlineElement>\n );\n } else if (props.variant === \"eyebrow\") {\n const {\n variant: _,\n children,\n className,\n size = \"medium\",\n style,\n ...rest\n } = componentProps;\n\n const TextClasses = classnames(styles[\"eyebrow\"], className, {\n [styles[`${size}`]]: size !== \"medium\",\n });\n\n const styleCombined = { ...style, ...layoutStyles };\n\n return (\n <span\n ref={ref as LegacyRef<HTMLSpanElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {children}\n </span>\n );\n } else {\n const {\n variant: _,\n children,\n className,\n subdued,\n inline,\n style,\n size = \"medium\",\n ...rest\n } = componentProps;\n\n const TextClasses = classnames(styles[\"bodytext\"], className, {\n [styles[`${size}`]]: size !== \"medium\",\n [styles[\"subdued\"]]: subdued,\n [styles[\"inline\"]]: inline,\n });\n\n const styleCombined = { ...style, ...layoutStyles };\n\n if (inline) {\n return (\n <span\n ref={ref as LegacyRef<HTMLSpanElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {children}\n </span>\n );\n } else {\n return (\n <p\n ref={ref as LegacyRef<HTMLParagraphElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {children}\n </p>\n );\n }\n }\n});\n\nText.displayName = \"Text\";\n"],"names":["classnames","styles"],"mappings":"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"}
|
package/dist/Text.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as Text, T as default } from './Text-
|
|
1
|
+
export { T as Text, T as default } from './Text-BTCfqeSr.js';
|
|
2
2
|
//# sourceMappingURL=Text.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import { T as TextField$1 } from './TextField-
|
|
3
|
+
import { T as TextField$1 } from './TextField-KZkRXCbH.js';
|
|
4
4
|
|
|
5
5
|
const TextField = forwardRef(
|
|
6
6
|
(props, ref) => {
|
|
@@ -10,4 +10,4 @@ const TextField = forwardRef(
|
|
|
10
10
|
TextField.displayName = "TextField";
|
|
11
11
|
|
|
12
12
|
export { TextField as T };
|
|
13
|
-
//# sourceMappingURL=TextField-
|
|
13
|
+
//# sourceMappingURL=TextField-CqJ9s4SG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField-
|
|
1
|
+
{"version":3,"file":"TextField-CqJ9s4SG.js","sources":["../src/components/TextField/TextField.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport {\n TextField as CoreTextField,\n TextFieldProps as CoreTextFieldProps,\n} from \"./internal/TextField\";\nimport { MaxLengthCounterProps } from \"../../types\";\n\nexport type TextFieldProps = Omit<CoreTextFieldProps, \"prefix\"> & {\n prefix?: string;\n} & MaxLengthCounterProps;\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (props, ref) => {\n return <CoreTextField ref={ref} {...props} />;\n },\n);\n\nTextField.displayName = \"TextField\";\n"],"names":["CoreTextField"],"mappings":";;;;AAWO,MAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,uBAAO,GAAA,CAACA,WAAA,EAAA,EAAc,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC7C;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;;;;"}
|
|
@@ -2,15 +2,15 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { forwardRef, useRef, useState, useMemo, useId, isValidElement } from 'react';
|
|
3
3
|
import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
|
|
4
4
|
import { S as Spinner } from './Spinner-B7tTWcP6.js';
|
|
5
|
-
import { t as textFieldStyles } from './TextField.module-
|
|
5
|
+
import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
|
|
6
6
|
import { c as cx } from './index-De1g9FRV.js';
|
|
7
|
-
import { F as FieldLabel } from './FieldLabel-
|
|
7
|
+
import { F as FieldLabel } from './FieldLabel-tFSfJ7OJ.js';
|
|
8
8
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
9
9
|
import { useTrackingId } from './useTrackingId.js';
|
|
10
10
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
11
11
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
12
12
|
import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
|
|
13
|
-
import { s as stripInlineMarkdown } from './stripInlineMarkdown-
|
|
13
|
+
import { s as stripInlineMarkdown } from './stripInlineMarkdown-CQCRopqY.js';
|
|
14
14
|
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
15
15
|
import { H as Helper } from './Helper-B_VAFgGd.js';
|
|
16
16
|
|
|
@@ -61,6 +61,7 @@ const TextField = forwardRef(
|
|
|
61
61
|
warning,
|
|
62
62
|
"aria-label": ariaLabelProp,
|
|
63
63
|
hideLabel = false,
|
|
64
|
+
isHighlighted = false,
|
|
64
65
|
...rest
|
|
65
66
|
} = componentProps;
|
|
66
67
|
const inputRef = useRef(null);
|
|
@@ -131,7 +132,8 @@ const TextField = forwardRef(
|
|
|
131
132
|
{
|
|
132
133
|
className: cx(textFieldStyles["input-wrapper"], {
|
|
133
134
|
[textFieldStyles["small"]]: size === "small",
|
|
134
|
-
[textFieldStyles["large"]]: size === "large"
|
|
135
|
+
[textFieldStyles["large"]]: size === "large",
|
|
136
|
+
[textFieldStyles["highlight"]]: isHighlighted
|
|
135
137
|
}),
|
|
136
138
|
role: "presentation",
|
|
137
139
|
onClick: (e) => {
|
|
@@ -213,4 +215,4 @@ const TextField = forwardRef(
|
|
|
213
215
|
TextField.displayName = "InternalTextField";
|
|
214
216
|
|
|
215
217
|
export { TextField as T };
|
|
216
|
-
//# sourceMappingURL=TextField-
|
|
218
|
+
//# sourceMappingURL=TextField-KZkRXCbH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField-KZkRXCbH.js","sources":["../src/components/TextField/internal/TextField.tsx"],"sourcesContent":["import {\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n FocusEventHandler,\n ReactElement,\n ReactNode,\n Ref,\n forwardRef,\n isValidElement,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId, useMergeRefs } from \"../../../hooks\";\nimport {\n DataTrackingId,\n LayoutUtilProps,\n Size,\n MaxLengthCounterProps,\n} from \"../../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../../internal/hooks\";\nimport { Helper, HelperProps } from \"../../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../../FieldMessage\";\nimport { Spinner } from \"../../Spinner\";\nimport styles from \"../TextField.module.scss\";\nimport cx from \"classnames\";\nimport { FieldLabel, FieldLabelProps } from \"../../FieldLabel\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../../internal/functions\";\n\nexport type TextFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n \"size\" | \"prefix\"\n> &\n LayoutUtilProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required and type string\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n * Passing `ReactNode` is deprecated — use a plain string with inline markdown instead.\n */\n label?: FieldLabelProps[\"children\"];\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n type?: \"text\" | \"email\" | \"tel\" | \"url\" | \"password\" | \"number\";\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n labelProps?: FieldLabelProps;\n moreInfo?: ReactNode;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & MaxLengthCounterProps &\n DataTrackingId;\n\nexport const TextField = forwardRef(\n (props: TextFieldProps, ref: Ref<HTMLInputElement>) => {\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n prefix: childrenToString(props.prefix),\n hint: childrenToString(props.hint),\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"TextField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n type = \"text\",\n required,\n onChange,\n onFocus,\n onBlur,\n id: idProp,\n description,\n hint,\n showCounter,\n maxLength,\n loading,\n disabled,\n labelProps,\n style,\n placeholder,\n warning,\n \"aria-label\": ariaLabelProp,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isTyping, setIsTyping] = useState(false);\n\n // Use the optionally controlled state for value\n const [value, setValue] = useOptionallyControlledState<typeof valueProp>({\n controlledValue: valueProp,\n defaultValue: defaultValueProp,\n });\n\n const length = useMemo(() => {\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n Array.isArray(value)\n ) {\n return String(value).length;\n }\n return 0;\n }, [value]);\n\n const onChangeHandler: ChangeEventHandler<HTMLInputElement> = (e) => {\n setValue(e.target.value);\n onChange?.(e);\n if (!isTyping) {\n setIsTyping(true);\n }\n };\n\n const blurHandler: FocusEventHandler<HTMLInputElement> = (e) => {\n onBlur?.(e);\n if (isTyping) {\n setIsTyping(false);\n }\n };\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n\n const prefixUid = useId();\n const suffixUid = useId();\n\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"TextField\", error);\n\n // TODO(v4.0.0): remove these warnings once label is required string\n if (label === undefined) {\n warnOnce(\n \"TextField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n } else if (typeof label !== \"string\") {\n warnOnce(\n \"TextField: Passing ReactNode to label is deprecated. Use a plain string with inline markdown instead.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const hasHelperText =\n hint || showCounter || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div\n className={cx(styles[\"textfield\"], className)}\n data-anv=\"textfield\"\n style={styleCombined}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"highlight\"]]: isHighlighted,\n })}\n role=\"presentation\"\n onClick={(e) => {\n inputRef.current?.focus();\n if (e.target !== inputRef.current) {\n inputRef.current?.click();\n }\n }}\n >\n {prefix ? (\n <div\n aria-hidden\n className={styles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(styles[\"input\"], {\n [styles[\"error\"]]: error,\n })}\n onChange={onChangeHandler}\n onFocus={onFocus}\n onBlur={blurHandler}\n ref={useMergeRefs([ref, inputRef])}\n required={required}\n maxLength={maxLength}\n placeholder={placeholder}\n type={type}\n disabled={disabled}\n value={value ?? \"\"}\n data-tracking-id={trackingId}\n {...rest}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : ariaLabelProp || (label ? undefined : placeholder) // TODO(v4.0.0): this can all be removed once label is required. Aria-label should no longer be a separate prop passed through.\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div className={styles[\"loading-spinner-wrapper\"]}>\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={styles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n maxLength={maxLength}\n inputLength={length}\n isTyping={isTyping}\n showCounter={showCounter}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\nTextField.displayName = \"InternalTextField\";\n"],"names":["styles"],"mappings":"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"}
|