@servicetitan/anvil2 2.7.1 → 2.8.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 +47 -1
- package/dist/{floating-ui.react-aKYfs-aw.js → AiMark-Cwc9KoyE.js} +767 -5
- package/dist/AiMark-Cwc9KoyE.js.map +1 -0
- package/dist/AiMark.css +260 -0
- package/dist/AiMark.d.ts +2 -0
- package/dist/AiMark.js +2 -0
- package/dist/AiMark.js.map +1 -0
- package/dist/{Alert-C_o2f78C.js → Alert-5qhkSUN3.js} +27 -13
- package/dist/Alert-5qhkSUN3.js.map +1 -0
- package/dist/Alert.css +23 -15
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CyrTvgP4.js → Announcement-fQmFNysn.js} +2 -2
- package/dist/{Announcement-CyrTvgP4.js.map → Announcement-fQmFNysn.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Breadcrumbs-C_WK9Yul.js → Breadcrumbs-BXo2FO2n.js} +3 -3
- package/dist/{Breadcrumbs-C_WK9Yul.js.map → Breadcrumbs-BXo2FO2n.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Button-a_D7tUgM.js +4517 -0
- package/dist/Button-a_D7tUgM.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-DaYJWso_.js → ButtonToggle-CmY77gUp.js} +2 -2
- package/dist/{ButtonToggle-DaYJWso_.js.map → ButtonToggle-CmY77gUp.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-Frpv5rRY.js → Calendar-Bd_WELZC.js} +3 -3
- package/dist/{Calendar-Frpv5rRY.js.map → Calendar-Bd_WELZC.js.map} +1 -1
- package/dist/{Calendar-BTStJPV1.js → Calendar-d2owsYe9.js} +2 -2
- package/dist/{Calendar-BTStJPV1.js.map → Calendar-d2owsYe9.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/Card-wz71dEVA.js.map +1 -1
- package/dist/{Checkbox-Drgai_lS.js → Checkbox-BlFc6ZWy.js} +24 -13
- package/dist/Checkbox-BlFc6ZWy.js.map +1 -0
- package/dist/{Checkbox-CTZdZym4.js → Checkbox-DbaZrUE2.js} +2 -2
- package/dist/{Checkbox-CTZdZym4.js.map → Checkbox-DbaZrUE2.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-CVyEctAz.js → Chip-BnofwIUN.js} +42 -12
- package/dist/Chip-BnofwIUN.js.map +1 -0
- package/dist/Chip.css +44 -28
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-BRtfrYyZ.js → Combobox-BOxAzG9v.js} +4 -4
- package/dist/{Combobox-BRtfrYyZ.js.map → Combobox-BOxAzG9v.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BmVPjMMg.js → DataTable-DK9xRjnq.js} +104 -38
- package/dist/DataTable-DK9xRjnq.js.map +1 -0
- package/dist/DataTable.css +84 -74
- package/dist/{DateFieldRange-D9DtlkSQ.js → DateFieldRange-5Jrz6dLl.js} +6 -6
- package/dist/{DateFieldRange-D9DtlkSQ.js.map → DateFieldRange-5Jrz6dLl.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CkdeCUJv.js → DateFieldSingle-DWFr6Ew4.js} +6 -6
- package/dist/{DateFieldSingle-CkdeCUJv.js.map → DateFieldSingle-DWFr6Ew4.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-b81ZcYdp.js → DateFieldYearless-UU22A5-E.js} +22 -6
- package/dist/DateFieldYearless-UU22A5-E.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-ClAFzIDD.js → DateFieldYearlessRange-BoPLxm6t.js} +3 -3
- package/dist/DateFieldYearlessRange-BoPLxm6t.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-2Zeh79oR.js → DaysOfTheWeek-4cfTmjzm.js} +4 -4
- package/dist/{DaysOfTheWeek-2Zeh79oR.js.map → DaysOfTheWeek-4cfTmjzm.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-CloZWa1Q.js → Dialog-Dn836WQM.js} +5 -5
- package/dist/{Dialog-CloZWa1Q.js.map → Dialog-Dn836WQM.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-DQDMzGeT.js → DialogCancelButton-B-jfihJr.js} +2 -2
- package/dist/{DialogCancelButton-DQDMzGeT.js.map → DialogCancelButton-B-jfihJr.js.map} +1 -1
- package/dist/{Drawer-CfkoH081.js → Drawer-CdDWt_Ba.js} +5 -5
- package/dist/{Drawer-CfkoH081.js.map → Drawer-CdDWt_Ba.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CLN0GBN_.js → EditCard-CZibhEfS.js} +3 -3
- package/dist/{EditCard-CLN0GBN_.js.map → EditCard-CZibhEfS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/FieldLabel-Dr41PRxH.js +180 -0
- package/dist/FieldLabel-Dr41PRxH.js.map +1 -0
- package/dist/FieldLabel.css +33 -73
- package/dist/FieldLabel.js +1 -1
- package/dist/{InputMask-CI4Q5UwG.js → InputMask-CcXqzqdx.js} +3 -3
- package/dist/{InputMask-CI4Q5UwG.js.map → InputMask-CcXqzqdx.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-DAbBuss4.js → ListView-D9cZUVer.js} +2 -2
- package/dist/{ListView-DAbBuss4.js.map → ListView-D9cZUVer.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-D_T55BFX.js → Listbox-CgDwzRfz.js} +2 -2
- package/dist/{Listbox-D_T55BFX.js.map → Listbox-CgDwzRfz.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-CRoJYJ53.js → Menu-CPbuIsqC.js} +3 -4
- package/dist/{Menu-CRoJYJ53.js.map → Menu-CPbuIsqC.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-CSOitvtu.js → MultiSelectFieldSync-Ei7DXzvs.js} +31 -18
- package/dist/MultiSelectFieldSync-Ei7DXzvs.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-62OeGmkz.js → MultiSelectMenuSync-B_mXpTEe.js} +3 -3
- package/dist/{MultiSelectMenuSync-62OeGmkz.js.map → MultiSelectMenuSync-B_mXpTEe.js.map} +1 -1
- package/dist/{NumberField-CHBXBMSj.js → NumberField-C5t47Obp.js} +16 -5
- package/dist/NumberField-C5t47Obp.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/{Page-DtSjnBJL.js → Page-2hbQxUj6.js} +16 -12
- package/dist/{Page-DtSjnBJL.js.map → Page-2hbQxUj6.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-CbBte3GQ.js → Pagination-CjGmJ_rU.js} +5 -5
- package/dist/{Pagination-CbBte3GQ.js.map → Pagination-CjGmJ_rU.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-Rha0q-Pv.js → Popover-CpU9VAcb.js} +4 -6
- package/dist/{Popover-Rha0q-Pv.js.map → Popover-CpU9VAcb.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-DEaMqbM-.js → ProgressBar-FMuK8viJ.js} +2 -2
- package/dist/{ProgressBar-DEaMqbM-.js.map → ProgressBar-FMuK8viJ.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-Bw2LDl9G.js → Radio-CZZd8phn.js} +24 -13
- package/dist/Radio-CZZd8phn.js.map +1 -0
- package/dist/{Radio-CCvu8mbI.js → Radio-DmtVWAmN.js} +2 -2
- package/dist/{Radio-CCvu8mbI.js.map → Radio-DmtVWAmN.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{SegmentedControl-BAi4pnFe.js → SegmentedControl-B9NWUF7s.js} +3 -3
- package/dist/{SegmentedControl-BAi4pnFe.js.map → SegmentedControl-B9NWUF7s.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-ZaAD0wR1.js → SelectCard-8OmIDl1m.js} +51 -24
- package/dist/SelectCard-8OmIDl1m.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-EJCXA02B.js → SelectFieldLabel-C8PrXxDU.js} +5 -4
- package/dist/SelectFieldLabel-C8PrXxDU.js.map +1 -0
- package/dist/{SelectFieldSync-DA54WXOk.js → SelectFieldSync-DGK8F2G9.js} +13 -13
- package/dist/SelectFieldSync-DGK8F2G9.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-BQaSTcaN.js → SelectMenuSync-CuZp9mnt.js} +3 -3
- package/dist/{SelectMenuSync-BQaSTcaN.js.map → SelectMenuSync-CuZp9mnt.js.map} +1 -1
- package/dist/{SelectOptions-D-DzWmKE.js → SelectOptions-CmElsiTd.js} +2 -2
- package/dist/{SelectOptions-D-DzWmKE.js.map → SelectOptions-CmElsiTd.js.map} +1 -1
- package/dist/{SelectTrigger-DWyRndmY.js → SelectTrigger-KF8w6Ynk.js} +7 -5
- package/dist/SelectTrigger-KF8w6Ynk.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-B6aZd2a6.js → SelectTriggerBase-Bxmv6oXk.js} +4 -4
- package/dist/{SelectTriggerBase-B6aZd2a6.js.map → SelectTriggerBase-Bxmv6oXk.js.map} +1 -1
- package/dist/{SideNav-CxHemV3H.js → SideNav-CrxYExjh.js} +11 -11
- package/dist/{SideNav-CxHemV3H.js.map → SideNav-CrxYExjh.js.map} +1 -1
- package/dist/SideNav.css +72 -55
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +18 -12
- package/dist/Skeleton.js +24 -11
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Stepper-CQUXV6P4.js → Stepper-_27Lmm2K.js} +3 -3
- package/dist/{Stepper-CQUXV6P4.js.map → Stepper-_27Lmm2K.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DpPHr3G3.js → Switch-DPGz7wC_.js} +14 -2
- package/dist/Switch-DPGz7wC_.js.map +1 -0
- package/dist/Switch.js +1 -1
- package/dist/{Tab-BGGNcz9S.js → Tab-BZpTCG0i.js} +3 -3
- package/dist/{Tab-BGGNcz9S.js.map → Tab-BZpTCG0i.js.map} +1 -1
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BJo4oMI2.js → Text-MVxRo6yx.js} +30 -12
- package/dist/Text-MVxRo6yx.js.map +1 -0
- package/dist/Text.css +37 -20
- package/dist/Text.js +1 -1
- package/dist/{TextField-o8zvVFDk.js → TextField-BpSxZa0z.js} +21 -5
- package/dist/TextField-BpSxZa0z.js.map +1 -0
- package/dist/{TextField-CMv9CpBq.js → TextField-D93iv_pk.js} +2 -2
- package/dist/{TextField-CMv9CpBq.js.map → TextField-D93iv_pk.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-B4bBvO8c.js → Textarea-1u2fSMTh.js} +21 -5
- package/dist/Textarea-1u2fSMTh.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-BEgnjk4R.js → TimeField-B4gLlBQJ.js} +6 -5
- package/dist/{TimeField-BEgnjk4R.js.map → TimeField-B4gLlBQJ.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-6_LVKok2.js → Toaster-CSJfSOHx.js} +5 -5
- package/dist/Toaster-CSJfSOHx.js.map +1 -0
- package/dist/{Toaster-B38WlKC7.js → Toaster-DbWYnF_t.js} +2 -2
- package/dist/{Toaster-B38WlKC7.js.map → Toaster-DbWYnF_t.js.map} +1 -1
- package/dist/{Toolbar-0EKhrvZN.js → Toolbar-CWRk523l.js} +15 -15
- package/dist/{Toolbar-0EKhrvZN.js.map → Toolbar-CWRk523l.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-BHwSTwsv.js → Tooltip-C1PBRnJv.js} +2 -3
- package/dist/{Tooltip-BHwSTwsv.js.map → Tooltip-C1PBRnJv.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-BC4lRuny.js → YearlessDateInputWithPicker-BSl5z2zo.js} +2 -3
- package/dist/{YearlessDateInputWithPicker-BC4lRuny.js.map → YearlessDateInputWithPicker-BSl5z2zo.js.map} +1 -1
- package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/types.d.ts +4 -3
- package/dist/beta/components/MultiSelectField/types.d.ts +28 -7
- package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -4
- package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/SelectField/types.d.ts +5 -5
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +2 -2
- package/dist/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +29 -0
- package/dist/beta/components/Table/DataTable/types.d.ts +30 -0
- package/dist/beta/components/Toolbar/Toolbar.d.ts +10 -6
- package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/beta.js +9 -9
- package/dist/components/AiMark/AiMark.d.ts +87 -0
- package/dist/components/AiMark/index.d.ts +1 -0
- package/dist/components/AiMark/internal/AiMarkIconAnimated.d.ts +30 -0
- package/dist/components/AiMark/internal/AiMarkInteractive.d.ts +10 -0
- package/dist/components/AiMark/stories/aiMarkStoryArgTypes.d.ts +16 -0
- package/dist/components/Alert/Alert.d.ts +12 -0
- package/dist/components/Button/Button.d.ts +14 -6
- package/dist/components/Button/internal/buttonAiMarkUtils.d.ts +18 -0
- package/dist/components/Button/internal/index.d.ts +1 -0
- package/dist/components/Card/Card.d.ts +6 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox/CheckboxGroup.d.ts +27 -6
- package/dist/components/Chip/Chip.d.ts +10 -1
- package/dist/components/Chip/internal/Chip.d.ts +4 -0
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
- package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +7 -0
- package/dist/components/FieldLabel/FieldLabel.d.ts +2 -1
- package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +3 -2
- package/dist/components/NumberField/NumberField.d.ts +29 -2
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/Radio/RadioGroup.d.ts +27 -6
- package/dist/components/SelectCard/SelectCard.d.ts +1 -1
- package/dist/components/SelectCard/SelectCardGroup.d.ts +18 -1
- package/dist/components/SelectCard/internal/SelectCardContext.d.ts +11 -0
- package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +11 -1
- package/dist/components/Skeleton/SkeletonCircle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonPill.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonRectangle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonText.d.ts +6 -1
- package/dist/components/Skeleton/index.d.ts +3 -0
- package/dist/components/Switch/Switch.d.ts +11 -1
- package/dist/components/Text/types.d.ts +9 -0
- package/dist/components/TextField/internal/TextField.d.ts +11 -0
- package/dist/components/Textarea/Textarea.d.ts +9 -2
- package/dist/components/Toast/internal/Toast.d.ts +5 -0
- package/dist/components/Toast/toast.d.ts +1 -1
- package/dist/components/Toolbar/Toolbar.d.ts +5 -3
- package/dist/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/components/index.d.ts +1 -0
- package/dist/{floating-ui.react-dom-imrk9N49.js → floating-ui.react-dom-CHrYz13o.js} +17 -2
- package/dist/floating-ui.react-dom-CHrYz13o.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +15 -0
- package/dist/index.js +46 -44
- package/dist/index.js.map +1 -1
- package/dist/internal/components/InlineMarkdown/InlineMarkdown.d.ts +23 -0
- package/dist/internal/components/InlineMarkdown/index.d.ts +1 -0
- package/dist/internal/components/Label/Label.d.ts +1 -1
- package/dist/internal/components/Popover/Popover.d.ts +3 -1
- package/dist/internal/components/index.d.ts +2 -1
- package/dist/internal/functions/index.d.ts +2 -0
- package/dist/internal/functions/inlineMarkdown.d.ts +20 -0
- package/dist/internal/functions/stripInlineMarkdown.d.ts +8 -0
- package/dist/internal/types/props.d.ts +2 -1
- package/dist/internal/types/selectFieldInternalTypes.d.ts +2 -2
- package/dist/internal/utils/index.d.ts +1 -0
- package/dist/internal/utils/inlineMarkdownRegex.d.ts +5 -0
- package/dist/{proxy-BbFHSE6L.js → proxy-DEehATlA.js} +8 -2
- package/dist/{proxy-BbFHSE6L.js.map → proxy-DEehATlA.js.map} +1 -1
- package/dist/stripInlineMarkdown-DyqLAQnf.js +25 -0
- package/dist/stripInlineMarkdown-DyqLAQnf.js.map +1 -0
- package/dist/{syncFilterUtils-B03Pc941.js → syncFilterUtils-CsbCnI1-.js} +7 -7
- package/dist/{syncFilterUtils-B03Pc941.js.map → syncFilterUtils-CsbCnI1-.js.map} +1 -1
- package/dist/types/ai-marks.d.ts +72 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/{use-reduced-motion-DSpxmqyT.js → use-reduced-motion-CqjZZ5QB.js} +2 -2
- package/dist/{use-reduced-motion-DSpxmqyT.js.map → use-reduced-motion-CqjZZ5QB.js.map} +1 -1
- package/dist/{useDrilldown-BW2XkUcK.js → useDrilldown-C7eMBl68.js} +4 -4
- package/dist/{useDrilldown-BW2XkUcK.js.map → useDrilldown-C7eMBl68.js.map} +1 -1
- package/dist/{useInitialFocus-BRRbylek.js → useInitialFocus-DbaB-x5T.js} +2 -3
- package/dist/{useInitialFocus-BRRbylek.js.map → useInitialFocus-DbaB-x5T.js.map} +1 -1
- package/dist/{index.esm-K9kxJhLx.js → usePopoverTransitionStates-B1opfxxn.js} +88 -3
- package/dist/usePopoverTransitionStates-B1opfxxn.js.map +1 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js +37 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -0
- package/dist/usePrefersReducedMotion.d.ts +2 -0
- package/dist/usePrefersReducedMotion.js +2 -0
- package/dist/usePrefersReducedMotion.js.map +1 -0
- package/dist/{useToggleSelection-Dip0eimQ.js → useToggleSelection-BM8asdFj.js} +2 -2
- package/dist/{useToggleSelection-Dip0eimQ.js.map → useToggleSelection-BM8asdFj.js.map} +1 -1
- package/package.json +6 -4
- package/dist/Alert-C_o2f78C.js.map +0 -1
- package/dist/Button-CVsGhVJz.js +0 -113
- package/dist/Button-CVsGhVJz.js.map +0 -1
- package/dist/Checkbox-Drgai_lS.js.map +0 -1
- package/dist/Chip-CVyEctAz.js.map +0 -1
- package/dist/DataTable-BmVPjMMg.js.map +0 -1
- package/dist/DateFieldYearless-b81ZcYdp.js.map +0 -1
- package/dist/DateFieldYearlessRange-ClAFzIDD.js.map +0 -1
- package/dist/FieldLabel-CQ5QGTVq.js +0 -125
- package/dist/FieldLabel-CQ5QGTVq.js.map +0 -1
- package/dist/MultiSelectFieldSync-CSOitvtu.js.map +0 -1
- package/dist/NumberField-CHBXBMSj.js.map +0 -1
- package/dist/Popover-CQhLSNYR.js +0 -537
- package/dist/Popover-CQhLSNYR.js.map +0 -1
- package/dist/Popover2.css +0 -68
- package/dist/Radio-Bw2LDl9G.js.map +0 -1
- package/dist/SelectCard-ZaAD0wR1.js.map +0 -1
- package/dist/SelectFieldLabel-EJCXA02B.js.map +0 -1
- package/dist/SelectFieldSync-DA54WXOk.js.map +0 -1
- package/dist/SelectTrigger-DWyRndmY.js.map +0 -1
- package/dist/Switch-DpPHr3G3.js.map +0 -1
- package/dist/Text-BJo4oMI2.js.map +0 -1
- package/dist/TextField-o8zvVFDk.js.map +0 -1
- package/dist/Textarea-B4bBvO8c.js.map +0 -1
- package/dist/Toaster-6_LVKok2.js.map +0 -1
- package/dist/floating-ui.react-aKYfs-aw.js.map +0 -1
- package/dist/floating-ui.react-dom-imrk9N49.js.map +0 -1
- package/dist/index.esm-K9kxJhLx.js.map +0 -1
- package/dist/safePopover-BDso-xSH.js +0 -17
- package/dist/safePopover-BDso-xSH.js.map +0 -1
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +0 -68
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +0 -1
- package/dist/usePopoverTransitionStates-CDIoNUuf.js +0 -24
- package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +0 -1
|
@@ -1,8 +1,40 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
1
2
|
import * as React from 'react';
|
|
2
|
-
import { useLayoutEffect, useEffect, useRef } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { forwardRef, useLayoutEffect, useEffect, useRef, createContext, useContext, useCallback, useId as useId$1, useImperativeHandle, useMemo, useState } from 'react';
|
|
4
|
+
import { I as Icon } from './Icon-DuIlne4x.js';
|
|
5
|
+
import { c as cx } from './index-De1g9FRV.js';
|
|
6
|
+
import { L as Link } from './Link-jTvzyXca.js';
|
|
7
|
+
import { T as Tooltip } from './Tooltip-C1PBRnJv.js';
|
|
8
|
+
import { B as Button, A as AiMarkIconAnimated } from './Button-a_D7tUgM.js';
|
|
9
|
+
import { i as isShadowRoot, h as isHTMLElement, u as useFloating$1, j as isElement, k as getWindow, m as getOverflowAncestors, n as isWebKit, p as isLastTraversableNode, q as getParentNode, r as getComputedStyle, t as getNodeName, s as safeShowPopover, b as safeHidePopover, a as autoUpdate, o as offset, g as size, v as autoPlacement, f as flip, d as shift, e as arrow$1, l as limitShift } from './floating-ui.react-dom-CHrYz13o.js';
|
|
10
|
+
import { t as tabbable, i as isTabbable, a as usePopoverTransitionStates } from './usePopoverTransitionStates-B1opfxxn.js';
|
|
5
11
|
import 'react-dom';
|
|
12
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
13
|
+
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
14
|
+
import { u as useMergeRefs$1 } from './useMergeRefs-Dfmtq9cI.js';
|
|
15
|
+
import { D as DialogContext } from './DialogContext-DBgtApl9.js';
|
|
16
|
+
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
17
|
+
|
|
18
|
+
import './AiMark.css';const SvgAiMark = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "m10.5 4.5 2.387 6.614 6.613 2.385-6.613 2.387-2.388 6.614-2.386-6.613L1.5 13.499l6.613-2.386zm7.5-3 1.193 3.307L22.5 6l-3.307 1.193L18 10.5l-1.193-3.307L13.5 6l3.307-1.193z" }));
|
|
19
|
+
|
|
20
|
+
const SvgAiMarkGradient = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, fill: "none", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { fill: "url(#a)", d: "m10.5 4.5 2.387 6.614 6.613 2.385-6.613 2.387-2.388 6.614-2.386-6.613L1.5 13.499l6.613-2.386z" }), /* @__PURE__ */ React.createElement("path", { fill: "url(#b)", d: "m18 1.5 1.193 3.307L22.5 6l-3.307 1.193L18 10.5l-1.193-3.307L13.5 6l3.307-1.193z" }), /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("linearGradient", { id: "a", x1: 19.5, x2: 3.604, y1: 14.583, y2: 20.367, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ React.createElement("stop", { stopColor: "light-dark(#026EE4, #77C5EA)" }), /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "light-dark(#27AEEE, #D0D8E1)" })), /* @__PURE__ */ React.createElement("linearGradient", { id: "b", x1: 22.5, x2: 14.552, y1: 6.542, y2: 9.433, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ React.createElement("stop", { stopColor: "light-dark(#026EE4, #77C5EA)" }), /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "light-dark(#27AEEE, #D0D8E1)" }))));
|
|
21
|
+
|
|
22
|
+
const fieldLabelButtonStyles = {
|
|
23
|
+
"field-label-button": "_field-label-button_l6rj1_2",
|
|
24
|
+
"field-label-button__inner": "_field-label-button__inner_l6rj1_36",
|
|
25
|
+
"field-label-button-scaled": "_field-label-button-scaled_l6rj1_51"};
|
|
26
|
+
|
|
27
|
+
const FieldLabelButton = forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
28
|
+
"button",
|
|
29
|
+
{
|
|
30
|
+
ref,
|
|
31
|
+
type: "button",
|
|
32
|
+
className: cx(fieldLabelButtonStyles["field-label-button"], className),
|
|
33
|
+
...props,
|
|
34
|
+
children: /* @__PURE__ */ jsx("span", { className: fieldLabelButtonStyles["field-label-button__inner"], children })
|
|
35
|
+
}
|
|
36
|
+
));
|
|
37
|
+
FieldLabelButton.displayName = "FieldLabelButton";
|
|
6
38
|
|
|
7
39
|
function activeElement(doc) {
|
|
8
40
|
let activeElement = doc.activeElement;
|
|
@@ -2370,5 +2402,735 @@ function safePolygon(options) {
|
|
|
2370
2402
|
return fn;
|
|
2371
2403
|
}
|
|
2372
2404
|
|
|
2373
|
-
|
|
2374
|
-
|
|
2405
|
+
const PopoverContext = createContext(null);
|
|
2406
|
+
|
|
2407
|
+
function usePopoverContext() {
|
|
2408
|
+
const context = useContext(PopoverContext);
|
|
2409
|
+
if (!context) {
|
|
2410
|
+
throw new Error(
|
|
2411
|
+
"Popover compound components must be used within a <Popover> component."
|
|
2412
|
+
);
|
|
2413
|
+
}
|
|
2414
|
+
return context;
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
const PopoverClose = forwardRef(
|
|
2418
|
+
function PopoverClose2(props, ref) {
|
|
2419
|
+
const { onClick, ...rest } = props;
|
|
2420
|
+
const { closePopover } = usePopoverContext();
|
|
2421
|
+
const trackingId = useTrackingId({
|
|
2422
|
+
name: "PopoverClose",
|
|
2423
|
+
data: { children: childrenToString(props.children) },
|
|
2424
|
+
hasOverride: !!props["data-tracking-id"]
|
|
2425
|
+
});
|
|
2426
|
+
const handleClick = useCallback(
|
|
2427
|
+
(event) => {
|
|
2428
|
+
closePopover();
|
|
2429
|
+
onClick?.(event);
|
|
2430
|
+
},
|
|
2431
|
+
[closePopover, onClick]
|
|
2432
|
+
);
|
|
2433
|
+
return /* @__PURE__ */ jsx(
|
|
2434
|
+
Button,
|
|
2435
|
+
{
|
|
2436
|
+
ref,
|
|
2437
|
+
"data-tracking-id": trackingId,
|
|
2438
|
+
"data-anv": "popover-close",
|
|
2439
|
+
...rest,
|
|
2440
|
+
onClick: handleClick
|
|
2441
|
+
}
|
|
2442
|
+
);
|
|
2443
|
+
}
|
|
2444
|
+
);
|
|
2445
|
+
PopoverClose.displayName = "PopoverClose";
|
|
2446
|
+
|
|
2447
|
+
const PopoverButton = forwardRef(
|
|
2448
|
+
function PopoverButton2(props, ref) {
|
|
2449
|
+
const { children, ...rest } = props;
|
|
2450
|
+
const { refs, getReferenceProps, openState, triggerId } = usePopoverContext();
|
|
2451
|
+
const trackingId = useTrackingId({
|
|
2452
|
+
name: "PopoverButton",
|
|
2453
|
+
data: {
|
|
2454
|
+
children: childrenToString(props.children),
|
|
2455
|
+
appearance: props.appearance,
|
|
2456
|
+
icon: props.icon,
|
|
2457
|
+
size: props.size,
|
|
2458
|
+
type: props.type
|
|
2459
|
+
},
|
|
2460
|
+
hasOverride: !!props["data-tracking-id"]
|
|
2461
|
+
});
|
|
2462
|
+
const buttonRef = useMergeRefs$1([refs.setReference, ref]);
|
|
2463
|
+
const buttonProps = {
|
|
2464
|
+
id: triggerId,
|
|
2465
|
+
"data-anv": "popover-button",
|
|
2466
|
+
"data-tracking-id": trackingId,
|
|
2467
|
+
"data-state": openState ? "open" : "closed",
|
|
2468
|
+
...getReferenceProps(rest),
|
|
2469
|
+
children
|
|
2470
|
+
};
|
|
2471
|
+
return /* @__PURE__ */ jsx(Button, { ref: buttonRef, ...buttonProps });
|
|
2472
|
+
}
|
|
2473
|
+
);
|
|
2474
|
+
PopoverButton.displayName = "PopoverButton";
|
|
2475
|
+
|
|
2476
|
+
const content = "_content_yo27y_2";
|
|
2477
|
+
const scroller = "_scroller_yo27y_29";
|
|
2478
|
+
const arrow = "_arrow_yo27y_37";
|
|
2479
|
+
const styles$1 = {
|
|
2480
|
+
content: content,
|
|
2481
|
+
scroller: scroller,
|
|
2482
|
+
arrow: arrow,
|
|
2483
|
+
"no-padding": "_no-padding_yo27y_62"
|
|
2484
|
+
};
|
|
2485
|
+
|
|
2486
|
+
const PopoverContent = forwardRef(
|
|
2487
|
+
function PopoverContent2(props, ref) {
|
|
2488
|
+
const {
|
|
2489
|
+
children,
|
|
2490
|
+
className,
|
|
2491
|
+
style,
|
|
2492
|
+
onScroll,
|
|
2493
|
+
onScrollCapture,
|
|
2494
|
+
scrollerRef,
|
|
2495
|
+
hideWhileClosed = false,
|
|
2496
|
+
...rest
|
|
2497
|
+
} = props;
|
|
2498
|
+
const {
|
|
2499
|
+
floatingContext,
|
|
2500
|
+
refs,
|
|
2501
|
+
floatingStyles,
|
|
2502
|
+
middlewareData,
|
|
2503
|
+
getFloatingProps,
|
|
2504
|
+
openState,
|
|
2505
|
+
actualPlacement,
|
|
2506
|
+
arrowRef,
|
|
2507
|
+
modal,
|
|
2508
|
+
openOnHover,
|
|
2509
|
+
noPadding,
|
|
2510
|
+
enableCaret,
|
|
2511
|
+
triggerId,
|
|
2512
|
+
role
|
|
2513
|
+
} = usePopoverContext();
|
|
2514
|
+
const scrollContainerRef = useRef(null);
|
|
2515
|
+
const mergedFloatingRef = useMergeRefs$1([refs.setFloating, ref]);
|
|
2516
|
+
const mergedScrollerRef = useMergeRefs$1([scrollContainerRef, scrollerRef]);
|
|
2517
|
+
const hasBeenOpenRef = useRef(false);
|
|
2518
|
+
useEffect(() => {
|
|
2519
|
+
if (openState) {
|
|
2520
|
+
hasBeenOpenRef.current = true;
|
|
2521
|
+
} else if (hasBeenOpenRef.current && !openOnHover) {
|
|
2522
|
+
const activeEl = document.activeElement;
|
|
2523
|
+
const floating = floatingContext.elements.floating;
|
|
2524
|
+
const shouldReturnFocus = role === "dialog" ? !activeEl || activeEl === document.body || floating?.contains(activeEl) : floating?.contains(activeEl);
|
|
2525
|
+
if (shouldReturnFocus) {
|
|
2526
|
+
floatingContext.elements.reference?.focus();
|
|
2527
|
+
}
|
|
2528
|
+
}
|
|
2529
|
+
}, [
|
|
2530
|
+
openState,
|
|
2531
|
+
openOnHover,
|
|
2532
|
+
floatingContext.elements.reference,
|
|
2533
|
+
floatingContext.elements.floating,
|
|
2534
|
+
role
|
|
2535
|
+
]);
|
|
2536
|
+
useLayoutEffect(() => {
|
|
2537
|
+
if (openState && scrollContainerRef.current) {
|
|
2538
|
+
scrollContainerRef.current.scrollTop = 0;
|
|
2539
|
+
scrollContainerRef.current.scrollLeft = 0;
|
|
2540
|
+
}
|
|
2541
|
+
}, [openState]);
|
|
2542
|
+
const arrowX = middlewareData.arrow?.x ?? null;
|
|
2543
|
+
const arrowY = middlewareData.arrow?.y ?? null;
|
|
2544
|
+
const baseSide = actualPlacement.split("-")[0];
|
|
2545
|
+
const staticSide = { top: "bottom", right: "left", bottom: "top", left: "right" }[baseSide];
|
|
2546
|
+
const arrowDeg = staticSide === "top" ? 180 : staticSide === "bottom" ? 0 : staticSide === "left" ? 90 : 270;
|
|
2547
|
+
const arrowWidth = arrowRef.current?.offsetWidth ?? 14;
|
|
2548
|
+
const arrowStyle = {};
|
|
2549
|
+
if (arrowX != null) arrowStyle.left = `${arrowX}px`;
|
|
2550
|
+
if (arrowY != null) arrowStyle.top = `${arrowY}px`;
|
|
2551
|
+
arrowStyle[staticSide] = `${-arrowWidth + 2}px`;
|
|
2552
|
+
arrowStyle.transform = `rotate(${arrowDeg}deg)`;
|
|
2553
|
+
const referenceId = floatingContext.elements.reference?.id ?? triggerId;
|
|
2554
|
+
const defaultLabelProps = role === "dialog" && !("aria-label" in rest) && !("aria-labelledby" in rest) ? { "aria-labelledby": referenceId } : {};
|
|
2555
|
+
const tabIndexOverride = openOnHover ? { tabIndex: -1 } : {};
|
|
2556
|
+
const rawFloatingProps = getFloatingProps({
|
|
2557
|
+
...defaultLabelProps,
|
|
2558
|
+
...tabIndexOverride,
|
|
2559
|
+
...rest
|
|
2560
|
+
});
|
|
2561
|
+
const { role: _suppressedRole, ...floatingPropsWithoutRole } = rawFloatingProps;
|
|
2562
|
+
const floatingProps = role === "dialog" ? rawFloatingProps : floatingPropsWithoutRole;
|
|
2563
|
+
const contentDiv = /* @__PURE__ */ jsxs(
|
|
2564
|
+
"div",
|
|
2565
|
+
{
|
|
2566
|
+
popover: "manual",
|
|
2567
|
+
"data-anv": "popover-content",
|
|
2568
|
+
className: cx(className, styles$1["content"], {
|
|
2569
|
+
[styles$1["no-padding"]]: noPadding
|
|
2570
|
+
}),
|
|
2571
|
+
ref: mergedFloatingRef,
|
|
2572
|
+
style: { ...floatingStyles, ...style },
|
|
2573
|
+
...floatingProps,
|
|
2574
|
+
children: [
|
|
2575
|
+
/* @__PURE__ */ jsx(
|
|
2576
|
+
"div",
|
|
2577
|
+
{
|
|
2578
|
+
className: styles$1.scroller,
|
|
2579
|
+
role: "presentation",
|
|
2580
|
+
tabIndex: -1,
|
|
2581
|
+
ref: mergedScrollerRef,
|
|
2582
|
+
onScroll,
|
|
2583
|
+
onScrollCapture,
|
|
2584
|
+
children: hideWhileClosed ? openState ? children : null : children
|
|
2585
|
+
}
|
|
2586
|
+
),
|
|
2587
|
+
enableCaret && /* @__PURE__ */ jsx("span", { className: styles$1["arrow"], ref: arrowRef, style: arrowStyle, children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", width: "14", height: "14", viewBox: "0 0 14 14", children: /* @__PURE__ */ jsx("path", { stroke: "none", d: "M0,0 H14 L7,7 Q7,7 7,7 Z" }) }) })
|
|
2588
|
+
]
|
|
2589
|
+
}
|
|
2590
|
+
);
|
|
2591
|
+
if (role !== "dialog") {
|
|
2592
|
+
return contentDiv;
|
|
2593
|
+
}
|
|
2594
|
+
return /* @__PURE__ */ jsx(
|
|
2595
|
+
FloatingFocusManager,
|
|
2596
|
+
{
|
|
2597
|
+
context: floatingContext,
|
|
2598
|
+
modal: modal ?? false,
|
|
2599
|
+
disabled: !openState || openOnHover,
|
|
2600
|
+
children: contentDiv
|
|
2601
|
+
}
|
|
2602
|
+
);
|
|
2603
|
+
}
|
|
2604
|
+
);
|
|
2605
|
+
PopoverContent.displayName = "PopoverContent";
|
|
2606
|
+
|
|
2607
|
+
function PopoverTrigger(props) {
|
|
2608
|
+
const { children } = props;
|
|
2609
|
+
const { refs, getReferenceProps, openState, triggerId } = usePopoverContext();
|
|
2610
|
+
return children({
|
|
2611
|
+
...getReferenceProps({
|
|
2612
|
+
ref: refs.setReference
|
|
2613
|
+
}),
|
|
2614
|
+
id: triggerId,
|
|
2615
|
+
"data-state": openState ? "open" : "closed"
|
|
2616
|
+
});
|
|
2617
|
+
}
|
|
2618
|
+
PopoverTrigger.displayName = "PopoverTrigger";
|
|
2619
|
+
|
|
2620
|
+
const Popover = Object.assign(
|
|
2621
|
+
forwardRef(function PopoverInner(props, ref) {
|
|
2622
|
+
const {
|
|
2623
|
+
children,
|
|
2624
|
+
role: roleProp = "dialog",
|
|
2625
|
+
modal,
|
|
2626
|
+
open,
|
|
2627
|
+
defaultOpen = false,
|
|
2628
|
+
onClose,
|
|
2629
|
+
onClickOutside,
|
|
2630
|
+
openOnHover = false,
|
|
2631
|
+
delay = 100,
|
|
2632
|
+
enableCaret,
|
|
2633
|
+
noPadding,
|
|
2634
|
+
matchReferenceWidth,
|
|
2635
|
+
fixedWidth,
|
|
2636
|
+
fillAvailableHeight,
|
|
2637
|
+
maxHeight,
|
|
2638
|
+
fitScreen,
|
|
2639
|
+
minHeight = "2.875rem",
|
|
2640
|
+
disableCloseOnClickOutside,
|
|
2641
|
+
disableCloseOnEscape,
|
|
2642
|
+
onOpenAnimationStart,
|
|
2643
|
+
onOpenAnimationComplete,
|
|
2644
|
+
onCloseAnimationStart,
|
|
2645
|
+
onCloseAnimationComplete
|
|
2646
|
+
} = props;
|
|
2647
|
+
const isAuto = props.placement === "auto";
|
|
2648
|
+
const floatingPlacement = isAuto ? "bottom" : props.placement ?? "bottom";
|
|
2649
|
+
const allowedPlacements = isAuto ? props.placementConfig?.allowedPlacements : void 0;
|
|
2650
|
+
const fallbackPlacements = !isAuto ? props.placementConfig?.fallbackPlacements : void 0;
|
|
2651
|
+
const uid = useId$1();
|
|
2652
|
+
const cleanUid = uid.replace(/:/g, "");
|
|
2653
|
+
const triggerId = `popover-trigger-${cleanUid}`;
|
|
2654
|
+
const isControlled = typeof open !== "undefined";
|
|
2655
|
+
const arrowRef = useRef(null);
|
|
2656
|
+
const isPointerEventRef = useRef(false);
|
|
2657
|
+
const processMinHeight = typeof minHeight === "string" ? minHeight : `${minHeight}px`;
|
|
2658
|
+
const dialogContext = useContext(DialogContext);
|
|
2659
|
+
const [openState, setOpenState] = useOptionallyControlledState({
|
|
2660
|
+
controlledValue: open,
|
|
2661
|
+
defaultValue: defaultOpen
|
|
2662
|
+
});
|
|
2663
|
+
const openStateRef = useRef(openState);
|
|
2664
|
+
openStateRef.current = openState;
|
|
2665
|
+
useEffect(() => {
|
|
2666
|
+
if (!disableCloseOnClickOutside) return;
|
|
2667
|
+
if (roleProp !== "dialog") return;
|
|
2668
|
+
const setTrue = () => {
|
|
2669
|
+
isPointerEventRef.current = true;
|
|
2670
|
+
};
|
|
2671
|
+
const setFalse = () => {
|
|
2672
|
+
setTimeout(() => {
|
|
2673
|
+
isPointerEventRef.current = false;
|
|
2674
|
+
}, 0);
|
|
2675
|
+
};
|
|
2676
|
+
document.addEventListener("pointerdown", setTrue);
|
|
2677
|
+
document.addEventListener("pointerup", setFalse);
|
|
2678
|
+
return () => {
|
|
2679
|
+
document.removeEventListener("pointerdown", setTrue);
|
|
2680
|
+
document.removeEventListener("pointerup", setFalse);
|
|
2681
|
+
};
|
|
2682
|
+
}, [disableCloseOnClickOutside, roleProp]);
|
|
2683
|
+
const handleOpenChange = useCallback(
|
|
2684
|
+
(nextOpen) => {
|
|
2685
|
+
if (!nextOpen && disableCloseOnClickOutside && isPointerEventRef.current)
|
|
2686
|
+
return;
|
|
2687
|
+
if (!nextOpen && !openOnHover) onClose?.();
|
|
2688
|
+
setOpenState(nextOpen);
|
|
2689
|
+
},
|
|
2690
|
+
[openOnHover, onClose, setOpenState, disableCloseOnClickOutside]
|
|
2691
|
+
);
|
|
2692
|
+
const openPopover = useCallback(() => {
|
|
2693
|
+
setOpenState(true);
|
|
2694
|
+
}, [setOpenState]);
|
|
2695
|
+
const closePopover = useCallback(() => {
|
|
2696
|
+
if (!openStateRef.current) return;
|
|
2697
|
+
if (!openOnHover) onClose?.();
|
|
2698
|
+
setOpenState(false);
|
|
2699
|
+
}, [openOnHover, onClose, setOpenState]);
|
|
2700
|
+
const {
|
|
2701
|
+
refs,
|
|
2702
|
+
floatingStyles,
|
|
2703
|
+
context: floatingContext,
|
|
2704
|
+
placement: actualPlacement,
|
|
2705
|
+
middlewareData
|
|
2706
|
+
} = useFloating({
|
|
2707
|
+
open: openState,
|
|
2708
|
+
onOpenChange: handleOpenChange,
|
|
2709
|
+
placement: floatingPlacement,
|
|
2710
|
+
strategy: "absolute",
|
|
2711
|
+
middleware: [
|
|
2712
|
+
offset(8),
|
|
2713
|
+
size({
|
|
2714
|
+
padding: 5,
|
|
2715
|
+
apply({ rects, availableHeight, elements }) {
|
|
2716
|
+
Object.assign(elements.floating.style, {
|
|
2717
|
+
...matchReferenceWidth ? { width: `${rects.reference.width}px` } : fixedWidth ? { width: "40dvw" } : {},
|
|
2718
|
+
...fillAvailableHeight ? {
|
|
2719
|
+
height: `${availableHeight - 20}px`,
|
|
2720
|
+
minHeight: processMinHeight
|
|
2721
|
+
} : {},
|
|
2722
|
+
...maxHeight ? {
|
|
2723
|
+
minHeight: processMinHeight,
|
|
2724
|
+
height: fitScreen ? typeof maxHeight === "string" ? maxHeight : `${maxHeight}px` : void 0,
|
|
2725
|
+
maxHeight: fitScreen ? `${availableHeight - 20}px` : typeof maxHeight === "string" ? maxHeight : `${maxHeight}px`
|
|
2726
|
+
} : {},
|
|
2727
|
+
...fitScreen && !maxHeight ? {
|
|
2728
|
+
minHeight: processMinHeight,
|
|
2729
|
+
maxHeight: `${availableHeight - 20}px`
|
|
2730
|
+
} : {}
|
|
2731
|
+
});
|
|
2732
|
+
}
|
|
2733
|
+
}),
|
|
2734
|
+
isAuto ? autoPlacement({ allowedPlacements, padding: 5 }) : flip({
|
|
2735
|
+
crossAxis: false,
|
|
2736
|
+
fallbackAxisSideDirection: "none",
|
|
2737
|
+
fallbackPlacements,
|
|
2738
|
+
padding: 5
|
|
2739
|
+
}),
|
|
2740
|
+
shift({
|
|
2741
|
+
padding: 5,
|
|
2742
|
+
crossAxis: false,
|
|
2743
|
+
limiter: limitShift()
|
|
2744
|
+
}),
|
|
2745
|
+
arrow$1({ element: arrowRef, padding: 5 })
|
|
2746
|
+
],
|
|
2747
|
+
whileElementsMounted: autoUpdate
|
|
2748
|
+
});
|
|
2749
|
+
const role = useRole(floatingContext, { role: roleProp });
|
|
2750
|
+
const hover = useHover(floatingContext, {
|
|
2751
|
+
enabled: openOnHover,
|
|
2752
|
+
delay: { open: delay, close: 100 },
|
|
2753
|
+
handleClose: safePolygon()
|
|
2754
|
+
});
|
|
2755
|
+
const focus = useFocus(floatingContext, { enabled: openOnHover });
|
|
2756
|
+
const click = useClick(floatingContext, {
|
|
2757
|
+
enabled: !openOnHover
|
|
2758
|
+
});
|
|
2759
|
+
const dismiss = useDismiss(floatingContext, {
|
|
2760
|
+
escapeKey: !disableCloseOnEscape,
|
|
2761
|
+
outsidePress: !disableCloseOnClickOutside ? (event) => {
|
|
2762
|
+
onClickOutside?.(event);
|
|
2763
|
+
return true;
|
|
2764
|
+
} : false
|
|
2765
|
+
});
|
|
2766
|
+
const { getReferenceProps, getFloatingProps } = useInteractions([
|
|
2767
|
+
role,
|
|
2768
|
+
hover,
|
|
2769
|
+
focus,
|
|
2770
|
+
click,
|
|
2771
|
+
dismiss
|
|
2772
|
+
]);
|
|
2773
|
+
useEffect(() => {
|
|
2774
|
+
const floatingEl = refs.floating.current;
|
|
2775
|
+
if (!floatingEl) return;
|
|
2776
|
+
if (openState) {
|
|
2777
|
+
if (dialogContext) {
|
|
2778
|
+
if (dialogContext.ref?.current?.open) {
|
|
2779
|
+
safeShowPopover(floatingEl);
|
|
2780
|
+
dialogContext.setHasOpenPopover?.(true);
|
|
2781
|
+
}
|
|
2782
|
+
return;
|
|
2783
|
+
}
|
|
2784
|
+
safeShowPopover(floatingEl);
|
|
2785
|
+
} else {
|
|
2786
|
+
safeHidePopover(floatingEl);
|
|
2787
|
+
dialogContext?.setHasOpenPopover?.(false);
|
|
2788
|
+
}
|
|
2789
|
+
}, [openState, refs.floating, dialogContext]);
|
|
2790
|
+
usePopoverTransitionStates(refs.floating.current ?? void 0, openState, {
|
|
2791
|
+
onOpenAnimationStart,
|
|
2792
|
+
onOpenAnimationComplete,
|
|
2793
|
+
onCloseAnimationStart,
|
|
2794
|
+
onCloseAnimationComplete
|
|
2795
|
+
});
|
|
2796
|
+
useImperativeHandle(ref, () => ({ openPopover, closePopover }), [
|
|
2797
|
+
openPopover,
|
|
2798
|
+
closePopover
|
|
2799
|
+
]);
|
|
2800
|
+
const value = useMemo(
|
|
2801
|
+
() => ({
|
|
2802
|
+
floatingContext,
|
|
2803
|
+
refs: {
|
|
2804
|
+
setReference: refs.setReference,
|
|
2805
|
+
setFloating: refs.setFloating
|
|
2806
|
+
},
|
|
2807
|
+
floatingStyles,
|
|
2808
|
+
middlewareData,
|
|
2809
|
+
getReferenceProps,
|
|
2810
|
+
getFloatingProps,
|
|
2811
|
+
triggerId,
|
|
2812
|
+
openState,
|
|
2813
|
+
openPopover,
|
|
2814
|
+
closePopover,
|
|
2815
|
+
controlled: isControlled,
|
|
2816
|
+
actualPlacement,
|
|
2817
|
+
arrowRef,
|
|
2818
|
+
modal,
|
|
2819
|
+
openOnHover,
|
|
2820
|
+
noPadding,
|
|
2821
|
+
enableCaret,
|
|
2822
|
+
role: roleProp
|
|
2823
|
+
}),
|
|
2824
|
+
[
|
|
2825
|
+
floatingContext,
|
|
2826
|
+
refs.setReference,
|
|
2827
|
+
refs.setFloating,
|
|
2828
|
+
floatingStyles,
|
|
2829
|
+
middlewareData,
|
|
2830
|
+
getReferenceProps,
|
|
2831
|
+
getFloatingProps,
|
|
2832
|
+
triggerId,
|
|
2833
|
+
openState,
|
|
2834
|
+
openPopover,
|
|
2835
|
+
closePopover,
|
|
2836
|
+
// stable — does not depend on openState (uses openStateRef)
|
|
2837
|
+
isControlled,
|
|
2838
|
+
actualPlacement,
|
|
2839
|
+
arrowRef,
|
|
2840
|
+
modal,
|
|
2841
|
+
openOnHover,
|
|
2842
|
+
noPadding,
|
|
2843
|
+
enableCaret,
|
|
2844
|
+
roleProp
|
|
2845
|
+
]
|
|
2846
|
+
);
|
|
2847
|
+
return /* @__PURE__ */ jsx(PopoverContext.Provider, { value, children });
|
|
2848
|
+
}),
|
|
2849
|
+
{
|
|
2850
|
+
/**
|
|
2851
|
+
* PopoverTrigger component for creating custom trigger elements.
|
|
2852
|
+
*
|
|
2853
|
+
* Features:
|
|
2854
|
+
* - Render prop pattern for full control over the trigger element
|
|
2855
|
+
* - ARIA attributes and event handlers injected via getReferenceProps
|
|
2856
|
+
*
|
|
2857
|
+
* @example
|
|
2858
|
+
* <Popover.Trigger>
|
|
2859
|
+
* {(props) => (
|
|
2860
|
+
* <Button {...props}>
|
|
2861
|
+
* Click to open popover
|
|
2862
|
+
* </Button>
|
|
2863
|
+
* )}
|
|
2864
|
+
* </Popover.Trigger>
|
|
2865
|
+
*/
|
|
2866
|
+
Trigger: PopoverTrigger,
|
|
2867
|
+
/**
|
|
2868
|
+
* PopoverContent component for the main popover content area.
|
|
2869
|
+
*
|
|
2870
|
+
* Features:
|
|
2871
|
+
* - HTML Popover API top-layer rendering (popover="manual")
|
|
2872
|
+
* - Floating UI positioning via refs.setFloating and floatingStyles
|
|
2873
|
+
* - FloatingFocusManager for focus trapping (modal) or Tab-out closing (non-modal)
|
|
2874
|
+
* - Arrow/caret indicator with position computed from middlewareData.arrow
|
|
2875
|
+
* - Scroll position reset when the popover opens
|
|
2876
|
+
* - Optional scrollerRef for external scroll access
|
|
2877
|
+
*
|
|
2878
|
+
* @example
|
|
2879
|
+
* <Popover.Content>
|
|
2880
|
+
* <p>Popover content</p>
|
|
2881
|
+
* <Popover.Close>Close</Popover.Close>
|
|
2882
|
+
* </Popover.Content>
|
|
2883
|
+
*/
|
|
2884
|
+
Content: PopoverContent,
|
|
2885
|
+
/**
|
|
2886
|
+
* PopoverClose component for closing the popover.
|
|
2887
|
+
*
|
|
2888
|
+
* Features:
|
|
2889
|
+
* - Supports all Button component props and styling
|
|
2890
|
+
* - Closes the popover on click via closePopover
|
|
2891
|
+
* - Automatic tracking ID generation for analytics
|
|
2892
|
+
*
|
|
2893
|
+
* @example
|
|
2894
|
+
* <Popover.Close>Close</Popover.Close>
|
|
2895
|
+
*
|
|
2896
|
+
* @example
|
|
2897
|
+
* <Popover.Close appearance="secondary" size="small">
|
|
2898
|
+
* Cancel
|
|
2899
|
+
* </Popover.Close>
|
|
2900
|
+
*/
|
|
2901
|
+
Close: PopoverClose,
|
|
2902
|
+
/**
|
|
2903
|
+
* PopoverButton component for creating button-style triggers.
|
|
2904
|
+
*
|
|
2905
|
+
* Features:
|
|
2906
|
+
* - Button styling and behavior with all Button props
|
|
2907
|
+
* - ARIA attributes and event handlers injected via getReferenceProps
|
|
2908
|
+
* - Automatic tracking ID generation for analytics
|
|
2909
|
+
*
|
|
2910
|
+
* @example
|
|
2911
|
+
* <Popover.Button>Click to open</Popover.Button>
|
|
2912
|
+
*
|
|
2913
|
+
* @example
|
|
2914
|
+
* <Popover.Button appearance="primary" size="large" icon={InfoIcon}>
|
|
2915
|
+
* Information
|
|
2916
|
+
* </Popover.Button>
|
|
2917
|
+
*/
|
|
2918
|
+
Button: PopoverButton
|
|
2919
|
+
}
|
|
2920
|
+
);
|
|
2921
|
+
Popover.displayName = "Popover";
|
|
2922
|
+
|
|
2923
|
+
const container = "_container_1h61l_2";
|
|
2924
|
+
const small = "_small_1h61l_53";
|
|
2925
|
+
const medium = "_medium_1h61l_60";
|
|
2926
|
+
const large = "_large_1h61l_67";
|
|
2927
|
+
const xlarge = "_xlarge_1h61l_74";
|
|
2928
|
+
const styles = {
|
|
2929
|
+
container: container,
|
|
2930
|
+
"tooltip-trigger": "_tooltip-trigger_1h61l_17",
|
|
2931
|
+
"button-wrapper": "_button-wrapper_1h61l_27",
|
|
2932
|
+
"collapse-block": "_collapse-block_1h61l_34",
|
|
2933
|
+
"with-padding": "_with-padding_1h61l_34",
|
|
2934
|
+
"collapse-inline": "_collapse-inline_1h61l_37",
|
|
2935
|
+
small: small,
|
|
2936
|
+
medium: medium,
|
|
2937
|
+
large: large,
|
|
2938
|
+
xlarge: xlarge
|
|
2939
|
+
};
|
|
2940
|
+
|
|
2941
|
+
const DEFAULT_TOOLTIP_CONTENT = "AI can make mistakes.";
|
|
2942
|
+
const DEFAULT_PRIVACY_HREF = "https://www.servicetitan.com/legal/privacy-policy";
|
|
2943
|
+
function DefaultPopoverContent() {
|
|
2944
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2945
|
+
DEFAULT_TOOLTIP_CONTENT,
|
|
2946
|
+
" ",
|
|
2947
|
+
/* @__PURE__ */ jsx(
|
|
2948
|
+
Link,
|
|
2949
|
+
{
|
|
2950
|
+
href: DEFAULT_PRIVACY_HREF,
|
|
2951
|
+
target: "_blank",
|
|
2952
|
+
rel: "noopener noreferrer",
|
|
2953
|
+
appearance: "secondary",
|
|
2954
|
+
children: "Learn more"
|
|
2955
|
+
}
|
|
2956
|
+
)
|
|
2957
|
+
] });
|
|
2958
|
+
}
|
|
2959
|
+
const ICON_PIXEL_SIZES$1 = {
|
|
2960
|
+
small: 12,
|
|
2961
|
+
medium: 16,
|
|
2962
|
+
large: 24,
|
|
2963
|
+
xlarge: 32
|
|
2964
|
+
};
|
|
2965
|
+
const FIELD_LABEL_BUTTON_MIN_OUTER_PX = 28;
|
|
2966
|
+
function fieldLabelButtonDimensionsForIcon(iconPx) {
|
|
2967
|
+
const outerPx = Math.max(FIELD_LABEL_BUTTON_MIN_OUTER_PX, iconPx + 4);
|
|
2968
|
+
const innerPx = outerPx - 4;
|
|
2969
|
+
return { outerPx, innerPx };
|
|
2970
|
+
}
|
|
2971
|
+
function fieldLabelButtonScaleStyle(outerPx, innerPx) {
|
|
2972
|
+
return {
|
|
2973
|
+
"--field-label-button-outer": `${outerPx}px`,
|
|
2974
|
+
"--field-label-button-inner": `${innerPx}px`
|
|
2975
|
+
};
|
|
2976
|
+
}
|
|
2977
|
+
const AiMarkInteractive = ({
|
|
2978
|
+
config,
|
|
2979
|
+
size,
|
|
2980
|
+
inheritColor,
|
|
2981
|
+
containerClassName,
|
|
2982
|
+
forceAnimate = false
|
|
2983
|
+
}) => {
|
|
2984
|
+
const [isActive, setIsActive] = useState(false);
|
|
2985
|
+
const iconPixelSize = ICON_PIXEL_SIZES$1[size];
|
|
2986
|
+
const { outerPx, innerPx } = fieldLabelButtonDimensionsForIcon(iconPixelSize);
|
|
2987
|
+
const fieldLabelButtonScale = fieldLabelButtonScaleStyle(outerPx, innerPx);
|
|
2988
|
+
const animatedIcon = /* @__PURE__ */ jsx(
|
|
2989
|
+
AiMarkIconAnimated,
|
|
2990
|
+
{
|
|
2991
|
+
animate: forceAnimate || isActive,
|
|
2992
|
+
size: iconPixelSize,
|
|
2993
|
+
inheritColor
|
|
2994
|
+
}
|
|
2995
|
+
);
|
|
2996
|
+
const interactionHandlers = {
|
|
2997
|
+
onMouseEnter: () => setIsActive(true),
|
|
2998
|
+
onMouseLeave: () => setIsActive(false),
|
|
2999
|
+
onFocus: () => setIsActive(true),
|
|
3000
|
+
onBlur: () => setIsActive(false)
|
|
3001
|
+
};
|
|
3002
|
+
if (config.type === "popover") {
|
|
3003
|
+
const { content: content2, triggerLabel: triggerLabel2, props: props2, contentProps } = config;
|
|
3004
|
+
const popoverContent = content2 ?? /* @__PURE__ */ jsx(DefaultPopoverContent, {});
|
|
3005
|
+
return /* @__PURE__ */ jsx("div", { className: containerClassName, "data-anv": "ai-mark-interactive", children: /* @__PURE__ */ jsxs(Popover, { role: "dialog", ...props2, children: [
|
|
3006
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { children: (triggerProps) => /* @__PURE__ */ jsx("span", { className: styles["button-wrapper"], tabIndex: -1, children: /* @__PURE__ */ jsx(
|
|
3007
|
+
FieldLabelButton,
|
|
3008
|
+
{
|
|
3009
|
+
...triggerProps,
|
|
3010
|
+
"aria-label": triggerLabel2,
|
|
3011
|
+
className: fieldLabelButtonStyles["field-label-button-scaled"],
|
|
3012
|
+
style: fieldLabelButtonScale,
|
|
3013
|
+
onMouseEnter: (e) => {
|
|
3014
|
+
interactionHandlers.onMouseEnter();
|
|
3015
|
+
triggerProps.onMouseEnter?.(e);
|
|
3016
|
+
},
|
|
3017
|
+
onMouseLeave: (e) => {
|
|
3018
|
+
interactionHandlers.onMouseLeave();
|
|
3019
|
+
triggerProps.onMouseLeave?.(e);
|
|
3020
|
+
},
|
|
3021
|
+
onFocus: (e) => {
|
|
3022
|
+
interactionHandlers.onFocus();
|
|
3023
|
+
triggerProps.onFocus?.(e);
|
|
3024
|
+
},
|
|
3025
|
+
onBlur: (e) => {
|
|
3026
|
+
interactionHandlers.onBlur();
|
|
3027
|
+
triggerProps.onBlur?.(e);
|
|
3028
|
+
},
|
|
3029
|
+
onClick: (e) => {
|
|
3030
|
+
e.stopPropagation();
|
|
3031
|
+
triggerProps.onClick?.(e);
|
|
3032
|
+
},
|
|
3033
|
+
children: animatedIcon
|
|
3034
|
+
}
|
|
3035
|
+
) }) }),
|
|
3036
|
+
/* @__PURE__ */ jsx(Popover.Content, { ...contentProps, children: popoverContent })
|
|
3037
|
+
] }) });
|
|
3038
|
+
}
|
|
3039
|
+
const { content, triggerLabel, props } = config;
|
|
3040
|
+
const tooltipContent = content ?? DEFAULT_TOOLTIP_CONTENT;
|
|
3041
|
+
return /* @__PURE__ */ jsx("div", { className: containerClassName, "data-anv": "ai-mark-interactive", children: /* @__PURE__ */ jsxs(Tooltip, { ...props, children: [
|
|
3042
|
+
/* @__PURE__ */ jsx(Tooltip.Trigger, { className: styles["tooltip-trigger"], children: /* @__PURE__ */ jsx("span", { className: styles["button-wrapper"], tabIndex: -1, children: /* @__PURE__ */ jsx(
|
|
3043
|
+
FieldLabelButton,
|
|
3044
|
+
{
|
|
3045
|
+
"aria-label": triggerLabel,
|
|
3046
|
+
...interactionHandlers,
|
|
3047
|
+
className: fieldLabelButtonStyles["field-label-button-scaled"],
|
|
3048
|
+
style: fieldLabelButtonScale,
|
|
3049
|
+
children: animatedIcon
|
|
3050
|
+
}
|
|
3051
|
+
) }) }),
|
|
3052
|
+
/* @__PURE__ */ jsx(Tooltip.Content, { children: tooltipContent })
|
|
3053
|
+
] }) });
|
|
3054
|
+
};
|
|
3055
|
+
|
|
3056
|
+
const ICON_PIXEL_SIZES = {
|
|
3057
|
+
small: 12,
|
|
3058
|
+
medium: 16,
|
|
3059
|
+
large: 24,
|
|
3060
|
+
xlarge: 32
|
|
3061
|
+
};
|
|
3062
|
+
const AiMark = (props) => {
|
|
3063
|
+
const {
|
|
3064
|
+
type = "default",
|
|
3065
|
+
popoverOrTooltipConfig,
|
|
3066
|
+
forceAnimate = false,
|
|
3067
|
+
collapsePadding,
|
|
3068
|
+
className,
|
|
3069
|
+
size = "medium",
|
|
3070
|
+
...rest
|
|
3071
|
+
} = props;
|
|
3072
|
+
const inheritColor = type === "default";
|
|
3073
|
+
const collapseBlock = collapsePadding === "block" || collapsePadding === "all";
|
|
3074
|
+
const collapseInline = collapsePadding === "inline" || collapsePadding === "all";
|
|
3075
|
+
const baseContainerClassName = cx(
|
|
3076
|
+
styles["container"],
|
|
3077
|
+
styles[size],
|
|
3078
|
+
{
|
|
3079
|
+
[styles["collapse-block"]]: collapseBlock,
|
|
3080
|
+
[styles["collapse-inline"]]: collapseInline
|
|
3081
|
+
},
|
|
3082
|
+
className
|
|
3083
|
+
);
|
|
3084
|
+
if (popoverOrTooltipConfig) {
|
|
3085
|
+
return /* @__PURE__ */ jsx(
|
|
3086
|
+
AiMarkInteractive,
|
|
3087
|
+
{
|
|
3088
|
+
config: popoverOrTooltipConfig,
|
|
3089
|
+
size,
|
|
3090
|
+
inheritColor,
|
|
3091
|
+
containerClassName: baseContainerClassName,
|
|
3092
|
+
forceAnimate
|
|
3093
|
+
}
|
|
3094
|
+
);
|
|
3095
|
+
}
|
|
3096
|
+
const nonInteractiveContainerClassName = cx(
|
|
3097
|
+
baseContainerClassName,
|
|
3098
|
+
styles["with-padding"]
|
|
3099
|
+
);
|
|
3100
|
+
if (forceAnimate) {
|
|
3101
|
+
return /* @__PURE__ */ jsx(
|
|
3102
|
+
"div",
|
|
3103
|
+
{
|
|
3104
|
+
className: nonInteractiveContainerClassName,
|
|
3105
|
+
style: { color: rest.color },
|
|
3106
|
+
children: /* @__PURE__ */ jsx(
|
|
3107
|
+
AiMarkIconAnimated,
|
|
3108
|
+
{
|
|
3109
|
+
animate: true,
|
|
3110
|
+
size: ICON_PIXEL_SIZES[size],
|
|
3111
|
+
inheritColor
|
|
3112
|
+
}
|
|
3113
|
+
)
|
|
3114
|
+
}
|
|
3115
|
+
);
|
|
3116
|
+
}
|
|
3117
|
+
return /* @__PURE__ */ jsx(
|
|
3118
|
+
"div",
|
|
3119
|
+
{
|
|
3120
|
+
className: nonInteractiveContainerClassName,
|
|
3121
|
+
style: { color: rest.color },
|
|
3122
|
+
"data-anv": "ai-mark-icon",
|
|
3123
|
+
children: /* @__PURE__ */ jsx(
|
|
3124
|
+
Icon,
|
|
3125
|
+
{
|
|
3126
|
+
...rest,
|
|
3127
|
+
svg: type === "gradient" ? SvgAiMarkGradient : SvgAiMark,
|
|
3128
|
+
size
|
|
3129
|
+
}
|
|
3130
|
+
)
|
|
3131
|
+
}
|
|
3132
|
+
);
|
|
3133
|
+
};
|
|
3134
|
+
|
|
3135
|
+
export { AiMark as A, FieldLabelButton as F, Popover as P, useMergeRefs as u };
|
|
3136
|
+
//# sourceMappingURL=AiMark-Cwc9KoyE.js.map
|