@servicetitan/anvil2 2.6.1 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/dist/{Avatar-CCnbKkCm.js → Avatar-BckUfs1N.js} +48 -46
- package/dist/{Avatar-CCnbKkCm.js.map → Avatar-BckUfs1N.js.map} +1 -1
- package/dist/Avatar-ChybzixS.js +35 -0
- package/dist/Avatar-ChybzixS.js.map +1 -0
- package/dist/Avatar.js +2 -2
- package/dist/Breadcrumbs-C_WK9Yul.js +107 -0
- package/dist/Breadcrumbs-C_WK9Yul.js.map +1 -0
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-B5d2SUrH.js → Calendar-BTStJPV1.js} +2 -2
- package/dist/{Calendar-B5d2SUrH.js.map → Calendar-BTStJPV1.js.map} +1 -1
- package/dist/{Calendar-B0u3EgCY.js → Calendar-Frpv5rRY.js} +129 -118
- package/dist/Calendar-Frpv5rRY.js.map +1 -0
- package/dist/Calendar.css +51 -51
- package/dist/Calendar.js +2 -2
- package/dist/Checkbox-CTZdZym4.js +52 -0
- package/dist/Checkbox-CTZdZym4.js.map +1 -0
- package/dist/{Checkbox-BwULIo4D.js → Checkbox-Drgai_lS.js} +16 -7
- package/dist/Checkbox-Drgai_lS.js.map +1 -0
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-DjTAR0va.js → Chip-CVyEctAz.js} +2 -2
- package/dist/{Chip-DjTAR0va.js.map → Chip-CVyEctAz.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-Clymsgli.js → Combobox-BRtfrYyZ.js} +185 -182
- package/dist/{Combobox-Clymsgli.js.map → Combobox-BRtfrYyZ.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-qoseu_e2.js → DataTable-BmVPjMMg.js} +680 -628
- package/dist/DataTable-BmVPjMMg.js.map +1 -0
- package/dist/{DateFieldRange-rks7jQor.js → DateFieldRange-D9DtlkSQ.js} +18 -4
- package/dist/DateFieldRange-D9DtlkSQ.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-C0WXU7H1.js → DateFieldSingle-CkdeCUJv.js} +6 -6
- package/dist/{DateFieldSingle-C0WXU7H1.js.map → DateFieldSingle-CkdeCUJv.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-2p3a7Xgo.js → DateFieldYearless-b81ZcYdp.js} +3 -3
- package/dist/{DateFieldYearless-2p3a7Xgo.js.map → DateFieldYearless-b81ZcYdp.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-DLmhPug8.js → DateFieldYearlessRange-ClAFzIDD.js} +3 -3
- package/dist/{DateFieldYearlessRange-DLmhPug8.js.map → DateFieldYearlessRange-ClAFzIDD.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BR32AA32.js → DaysOfTheWeek-2Zeh79oR.js} +3 -3
- package/dist/{DaysOfTheWeek-BR32AA32.js.map → DaysOfTheWeek-2Zeh79oR.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-Dxq_v3Qg.js → Details-CZOIpNP_.js} +8 -8
- package/dist/Details-CZOIpNP_.js.map +1 -0
- package/dist/Details.js +1 -1
- package/dist/{Dialog-CMhypnCD.js → Dialog-CloZWa1Q.js} +70 -70
- package/dist/Dialog-CloZWa1Q.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/DndSort.js +3 -5
- package/dist/DndSort.js.map +1 -1
- package/dist/{Drawer-CSelPi8t.js → Drawer-CfkoH081.js} +83 -83
- package/dist/Drawer-CfkoH081.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{FieldLabel-DbMosKtd.js → FieldLabel-CQ5QGTVq.js} +2 -2
- package/dist/{FieldLabel-DbMosKtd.js.map → FieldLabel-CQ5QGTVq.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/Grid-DeYIx5k4.js +149 -0
- package/dist/Grid-DeYIx5k4.js.map +1 -0
- package/dist/Grid.js +1 -1
- package/dist/{InputMask-BKs-x6ds.js → InputMask-CI4Q5UwG.js} +2 -2
- package/dist/{InputMask-BKs-x6ds.js.map → InputMask-CI4Q5UwG.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Layout-VfhlilMG.js → Layout-CISAxILX.js} +34 -33
- package/dist/Layout-CISAxILX.js.map +1 -0
- package/dist/Layout.js +1 -1
- package/dist/List--KhCpjZn.js +103 -0
- package/dist/List--KhCpjZn.js.map +1 -0
- package/dist/List.js +1 -1
- package/dist/{ListView-CeGwrRbt.js → ListView-DAbBuss4.js} +6 -6
- package/dist/ListView-DAbBuss4.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BtAgBDRS.js → Listbox-D_T55BFX.js} +5 -4
- package/dist/Listbox-D_T55BFX.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BXsmCP20.js → Menu-CRoJYJ53.js} +366 -365
- package/dist/Menu-CRoJYJ53.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-EELhdoD6.js → MultiSelectFieldSync-CSOitvtu.js} +5 -5
- package/dist/{MultiSelectFieldSync-EELhdoD6.js.map → MultiSelectFieldSync-CSOitvtu.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-CAPhhkK1.js → MultiSelectMenuSync-62OeGmkz.js} +29 -9
- package/dist/MultiSelectMenuSync-62OeGmkz.js.map +1 -0
- package/dist/{NumberField-svhZp1kB.js → NumberField-CHBXBMSj.js} +2 -2
- package/dist/{NumberField-svhZp1kB.js.map → NumberField-CHBXBMSj.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.css +27 -26
- package/dist/Overflow.js +11 -11
- package/dist/{Page-BpV1yHkm.js → Page-DtSjnBJL.js} +277 -224
- package/dist/Page-DtSjnBJL.js.map +1 -0
- package/dist/Page.css +87 -73
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BAwqfl_2.js → Pagination-CbBte3GQ.js} +17 -15
- package/dist/Pagination-CbBte3GQ.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/Popover-CQhLSNYR.js +537 -0
- package/dist/Popover-CQhLSNYR.js.map +1 -0
- package/dist/{Popover-Br6qPgKe.js → Popover-Rha0q-Pv.js} +353 -353
- package/dist/Popover-Rha0q-Pv.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-JpRDW5vG.js → ProgressBar-DEaMqbM-.js} +2 -2
- package/dist/{ProgressBar-JpRDW5vG.js.map → ProgressBar-DEaMqbM-.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-8DmfWHYq.js → Radio-Bw2LDl9G.js} +13 -4
- package/dist/{Radio-8DmfWHYq.js.map → Radio-Bw2LDl9G.js.map} +1 -1
- package/dist/Radio-CCvu8mbI.js +60 -0
- package/dist/Radio-CCvu8mbI.js.map +1 -0
- package/dist/Radio.js +1 -1
- package/dist/{SegmentedControl-7fDLhgvh.js → SegmentedControl-BAi4pnFe.js} +79 -75
- package/dist/{SegmentedControl-7fDLhgvh.js.map → SegmentedControl-BAi4pnFe.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/SelectCard-ZaAD0wR1.js +325 -0
- package/dist/SelectCard-ZaAD0wR1.js.map +1 -0
- package/dist/SelectCard.css +23 -18
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-Dr8HeW3N.js → SelectFieldLabel-EJCXA02B.js} +2 -2
- package/dist/{SelectFieldLabel-Dr8HeW3N.js.map → SelectFieldLabel-EJCXA02B.js.map} +1 -1
- package/dist/{SelectFieldSync-BPopU0om.js → SelectFieldSync-DA54WXOk.js} +4 -4
- package/dist/{SelectFieldSync-BPopU0om.js.map → SelectFieldSync-DA54WXOk.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DeMYO1m_.js → SelectMenuSync-BQaSTcaN.js} +29 -9
- package/dist/SelectMenuSync-BQaSTcaN.js.map +1 -0
- package/dist/{SelectOptions-DBe5ZN_-.js → SelectOptions-D-DzWmKE.js} +2 -2
- package/dist/{SelectOptions-DBe5ZN_-.js.map → SelectOptions-D-DzWmKE.js.map} +1 -1
- package/dist/{SelectTrigger-ObsnAKNp.js → SelectTrigger-DWyRndmY.js} +3 -3
- package/dist/{SelectTrigger-ObsnAKNp.js.map → SelectTrigger-DWyRndmY.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DKfOL2RJ.js → SelectTriggerBase-B6aZd2a6.js} +3 -3
- package/dist/{SelectTriggerBase-DKfOL2RJ.js.map → SelectTriggerBase-B6aZd2a6.js.map} +1 -1
- package/dist/{SideNav-KksbSQn7.js → SideNav-CxHemV3H.js} +127 -125
- package/dist/{SideNav-KksbSQn7.js.map → SideNav-CxHemV3H.js.map} +1 -1
- package/dist/SideNav.js +1 -1
- package/dist/{Stepper-Dt8_ImvJ.js → Stepper-CQUXV6P4.js} +156 -156
- package/dist/{Stepper-Dt8_ImvJ.js.map → Stepper-CQUXV6P4.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Tab-DO7LaUbw.js → Tab-BGGNcz9S.js} +225 -221
- package/dist/Tab-BGGNcz9S.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{TextField--co7QJ4r.js → TextField-CMv9CpBq.js} +2 -2
- package/dist/{TextField--co7QJ4r.js.map → TextField-CMv9CpBq.js.map} +1 -1
- package/dist/{TextField-Cax4UeNl.js → TextField-o8zvVFDk.js} +8 -3
- package/dist/TextField-o8zvVFDk.js.map +1 -0
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DyqdMTvQ.js → Textarea-B4bBvO8c.js} +2 -2
- package/dist/{Textarea-DyqdMTvQ.js.map → Textarea-B4bBvO8c.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-BfcLCWMG.js → TimeField-BEgnjk4R.js} +4 -5
- package/dist/{TimeField-BfcLCWMG.js.map → TimeField-BEgnjk4R.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-b0-Ub3yt.js → Toaster-6_LVKok2.js} +2 -2
- package/dist/{Toaster-b0-Ub3yt.js.map → Toaster-6_LVKok2.js.map} +1 -1
- package/dist/{Toaster-DikGo_hR.js → Toaster-B38WlKC7.js} +2 -2
- package/dist/{Toaster-DikGo_hR.js.map → Toaster-B38WlKC7.js.map} +1 -1
- package/dist/{Toolbar-DqYMc_w8.js → Toolbar-0EKhrvZN.js} +147 -146
- package/dist/{Toolbar-DqYMc_w8.js.map → Toolbar-0EKhrvZN.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-Bupqao9B.js → Tooltip-BHwSTwsv.js} +224 -226
- package/dist/Tooltip-BHwSTwsv.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-aq99rKJU.js → YearlessDateInputWithPicker-BC4lRuny.js} +2 -3
- package/dist/YearlessDateInputWithPicker-BC4lRuny.js.map +1 -0
- package/dist/beta/components/MultiSelectMenu/types.d.ts +15 -0
- package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +3 -1
- package/dist/beta/components/SelectMenu/types.d.ts +15 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +9 -16
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +35 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +4 -3
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +34 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +9 -5
- package/dist/beta/components/Table/DataTable/types.d.ts +18 -1
- package/dist/beta/components/Table/createColumnHelper.d.ts +29 -68
- package/dist/beta/components/Table/types.d.ts +222 -40
- package/dist/beta/components/Toolbar/Toolbar.d.ts +168 -41
- package/dist/beta.js +9 -9
- package/dist/components/Announcement/Announcement.figma.d.ts +1 -0
- package/dist/components/Avatar/Avatar.d.ts +14 -0
- package/dist/components/Calendar/Calendar.d.ts +84 -26
- package/dist/components/Checkbox/internal/Checkbox.d.ts +8 -0
- package/dist/components/Combobox/Combobox.d.ts +172 -1
- package/dist/components/Dialog/Dialog.d.ts +96 -28
- package/dist/components/DndSort/internal/test-utils.d.ts +15 -8
- package/dist/components/DrillDown/DrillDown.d.ts +7 -1
- package/dist/components/FieldMessage/FieldMessage.figma.d.ts +1 -0
- package/dist/components/Layout/Layout.d.ts +52 -44
- package/dist/components/ListView/ListView.d.ts +5 -5
- package/dist/components/Listbox/Listbox.d.ts +5 -23
- package/dist/components/Menu/Menu.d.ts +1 -4
- package/dist/components/Page/Page.d.ts +1 -1
- package/dist/components/Page/PageContent.d.ts +5 -5
- package/dist/components/Page/PageContext.d.ts +2 -0
- package/dist/components/Page/PageFooter.d.ts +1 -0
- package/dist/components/Radio/internal/Radio.d.ts +8 -0
- package/dist/components/Toolbar/Toolbar.d.ts +3 -1
- package/dist/index.js +126 -126
- package/dist/index.js.map +1 -1
- package/dist/internal/components/Popover/Popover.d.ts +2 -2
- package/dist/internal/components/Popover/internal/PopoverContext.d.ts +2 -2
- package/dist/{syncFilterUtils-BRKjFwxk.js → syncFilterUtils-B03Pc941.js} +190 -190
- package/dist/{syncFilterUtils-BRKjFwxk.js.map → syncFilterUtils-B03Pc941.js.map} +1 -1
- package/dist/{useDrilldown-CqBBB_r1.js → useDrilldown-BW2XkUcK.js} +40 -38
- package/dist/{useDrilldown-CqBBB_r1.js.map → useDrilldown-BW2XkUcK.js.map} +1 -1
- package/dist/{useMenuInteraction-zR_78KQC.js → useMenuInteraction-BwZ2ORo9.js} +8 -3
- package/dist/useMenuInteraction-BwZ2ORo9.js.map +1 -0
- package/dist/{useToggleSelection-JD62Jzqu.js → useToggleSelection-Dip0eimQ.js} +2 -2
- package/dist/{useToggleSelection-JD62Jzqu.js.map → useToggleSelection-Dip0eimQ.js.map} +1 -1
- package/package.json +10 -9
- package/dist/Avatar--CnTAnfD.js +0 -35
- package/dist/Avatar--CnTAnfD.js.map +0 -1
- package/dist/Breadcrumbs-3Y7jnj-F.js +0 -105
- package/dist/Breadcrumbs-3Y7jnj-F.js.map +0 -1
- package/dist/Calendar-B0u3EgCY.js.map +0 -1
- package/dist/Checkbox-BwULIo4D.js.map +0 -1
- package/dist/Checkbox-CIj37_vY.js +0 -50
- package/dist/Checkbox-CIj37_vY.js.map +0 -1
- package/dist/DataTable-qoseu_e2.js.map +0 -1
- package/dist/DateFieldRange-rks7jQor.js.map +0 -1
- package/dist/Details-Dxq_v3Qg.js.map +0 -1
- package/dist/Dialog-CMhypnCD.js.map +0 -1
- package/dist/Drawer-CSelPi8t.js.map +0 -1
- package/dist/Grid-ONcUpb__.js +0 -147
- package/dist/Grid-ONcUpb__.js.map +0 -1
- package/dist/Layout-VfhlilMG.js.map +0 -1
- package/dist/List-CJZjElAQ.js +0 -101
- package/dist/List-CJZjElAQ.js.map +0 -1
- package/dist/ListView-CeGwrRbt.js.map +0 -1
- package/dist/Listbox-BtAgBDRS.js.map +0 -1
- package/dist/Menu-BXsmCP20.js.map +0 -1
- package/dist/MultiSelectMenuSync-CAPhhkK1.js.map +0 -1
- package/dist/Page-BpV1yHkm.js.map +0 -1
- package/dist/Pagination-BAwqfl_2.js.map +0 -1
- package/dist/Popover-Br6qPgKe.js.map +0 -1
- package/dist/Popover-Dkw_8dZx.js +0 -535
- package/dist/Popover-Dkw_8dZx.js.map +0 -1
- package/dist/Radio-M7lc0BsU.js +0 -60
- package/dist/Radio-M7lc0BsU.js.map +0 -1
- package/dist/SelectCard-D5dcOIuf.js +0 -311
- package/dist/SelectCard-D5dcOIuf.js.map +0 -1
- package/dist/SelectMenuSync-DeMYO1m_.js.map +0 -1
- package/dist/Tab-DO7LaUbw.js.map +0 -1
- package/dist/TextField-Cax4UeNl.js.map +0 -1
- package/dist/Tooltip-Bupqao9B.js.map +0 -1
- package/dist/YearlessDateInputWithPicker-aq99rKJU.js.map +0 -1
- package/dist/useMenuInteraction-zR_78KQC.js.map +0 -1
|
@@ -393,250 +393,283 @@ function PopoverTrigger(props) {
|
|
|
393
393
|
}
|
|
394
394
|
PopoverTrigger.displayName = "PopoverTrigger";
|
|
395
395
|
|
|
396
|
-
const
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
const arrowRef = useRef(null);
|
|
437
|
-
const dialogContext = useContext(DialogContext);
|
|
438
|
-
const [triggerHovered, setTriggerHovered] = useState(false);
|
|
439
|
-
const [contentHovered, setContentHovered] = useState(false);
|
|
440
|
-
const [actualPlacement, setActualPlacement] = useState(
|
|
441
|
-
placement
|
|
442
|
-
);
|
|
443
|
-
const processMinHeight = typeof minHeight === "string" ? minHeight : `${minHeight}px`;
|
|
444
|
-
usePopoverTransitionStates(popover, openState, {
|
|
445
|
-
onOpenAnimationStart: useCallback(() => {
|
|
446
|
-
onOpenAnimationStart?.();
|
|
447
|
-
}, [onOpenAnimationStart]),
|
|
448
|
-
onOpenAnimationComplete: useCallback(() => {
|
|
449
|
-
onOpenAnimationComplete?.();
|
|
450
|
-
}, [onOpenAnimationComplete]),
|
|
451
|
-
onCloseAnimationStart: useCallback(() => {
|
|
452
|
-
onCloseAnimationStart?.();
|
|
453
|
-
}, [onCloseAnimationStart]),
|
|
454
|
-
onCloseAnimationComplete: useCallback(() => {
|
|
455
|
-
onCloseAnimationComplete?.();
|
|
456
|
-
}, [onCloseAnimationComplete])
|
|
457
|
-
});
|
|
458
|
-
const updatePosition = useCallback(() => {
|
|
459
|
-
if (!invoker || !popover) return;
|
|
460
|
-
if (!openState) return;
|
|
461
|
-
computePosition(invoker, popover, {
|
|
462
|
-
placement,
|
|
463
|
-
middleware: [
|
|
464
|
-
offset(8),
|
|
465
|
-
size({
|
|
466
|
-
padding: 5,
|
|
467
|
-
apply({ rects, availableHeight, elements }) {
|
|
468
|
-
Object.assign(elements.floating.style, {
|
|
469
|
-
...matchReferenceWidth ? { width: `${rects.reference.width}px` } : fixedWidth ? { width: "40dvw" } : {},
|
|
470
|
-
...fillAvailableHeight ? {
|
|
471
|
-
height: `${availableHeight - 20}px`,
|
|
472
|
-
minHeight: processMinHeight
|
|
473
|
-
} : {},
|
|
474
|
-
...maxHeight ? {
|
|
475
|
-
minHeight: processMinHeight,
|
|
476
|
-
height: fitScreen ? typeof maxHeight === "string" ? maxHeight : `${maxHeight}px` : void 0,
|
|
477
|
-
maxHeight: fitScreen ? `${availableHeight - 20}px` : typeof maxHeight === "string" ? maxHeight : `${maxHeight}px`
|
|
478
|
-
} : {},
|
|
479
|
-
...fitScreen && !maxHeight ? {
|
|
480
|
-
minHeight: processMinHeight,
|
|
481
|
-
maxHeight: `${availableHeight - 20}px`
|
|
482
|
-
} : {},
|
|
483
|
-
zIndex: 1
|
|
484
|
-
});
|
|
485
|
-
}
|
|
486
|
-
}),
|
|
487
|
-
flip({
|
|
488
|
-
mainAxis: !disableFlip,
|
|
489
|
-
crossAxis: false,
|
|
490
|
-
fallbackAxisSideDirection: disableFlipFallback ? "none" : "end",
|
|
491
|
-
padding: 5
|
|
492
|
-
}),
|
|
493
|
-
shift({
|
|
494
|
-
padding: 5,
|
|
495
|
-
mainAxis: !disableShift,
|
|
496
|
-
crossAxis: false,
|
|
497
|
-
limiter: limitShift({
|
|
498
|
-
mainAxis: !disableShift
|
|
499
|
-
})
|
|
500
|
-
}),
|
|
501
|
-
arrow$1({
|
|
502
|
-
element: !disableCaret && arrowElement ? arrowElement : null,
|
|
503
|
-
padding: 5
|
|
504
|
-
})
|
|
505
|
-
]
|
|
506
|
-
}).then(({ x, y, placement: placement2, middlewareData }) => {
|
|
507
|
-
setActualPlacement(placement2);
|
|
508
|
-
const side = placement2.split("-")[0];
|
|
509
|
-
const staticSide = {
|
|
510
|
-
top: "bottom",
|
|
511
|
-
right: "left",
|
|
512
|
-
bottom: "top",
|
|
513
|
-
left: "right"
|
|
514
|
-
}[side];
|
|
515
|
-
const arrowDeg = () => {
|
|
516
|
-
if (staticSide === "top") return 180;
|
|
517
|
-
if (staticSide === "bottom") return 0;
|
|
518
|
-
if (staticSide === "left") return 90;
|
|
519
|
-
return 270;
|
|
520
|
-
};
|
|
521
|
-
Object.assign(popover.style, {
|
|
522
|
-
left: `${x}px`,
|
|
523
|
-
top: `${y}px`
|
|
524
|
-
});
|
|
525
|
-
if (middlewareData.arrow && arrowElement) {
|
|
526
|
-
const { x: x2, y: y2 } = middlewareData.arrow;
|
|
527
|
-
Object.assign(arrowElement.style, {
|
|
528
|
-
left: x2 != null ? `${x2}px` : "",
|
|
529
|
-
top: y2 != null ? `${y2}px` : "",
|
|
530
|
-
right: "",
|
|
531
|
-
bottom: "",
|
|
532
|
-
[staticSide]: `${-arrowElement.offsetWidth + 2}px`,
|
|
533
|
-
transform: `rotate(${arrowDeg()}deg)`
|
|
534
|
-
});
|
|
535
|
-
}
|
|
396
|
+
const Popover = Object.assign(
|
|
397
|
+
forwardRef(function PopoverInner(props, ref) {
|
|
398
|
+
const {
|
|
399
|
+
children,
|
|
400
|
+
openOnHover = false,
|
|
401
|
+
delay = 100,
|
|
402
|
+
placement = "bottom",
|
|
403
|
+
minHeight = "2.875rem",
|
|
404
|
+
open,
|
|
405
|
+
defaultOpen = false,
|
|
406
|
+
disableShift,
|
|
407
|
+
disableFlip,
|
|
408
|
+
disableFlipFallback,
|
|
409
|
+
matchReferenceWidth,
|
|
410
|
+
id,
|
|
411
|
+
disableCaret,
|
|
412
|
+
fixedWidth,
|
|
413
|
+
fillAvailableHeight,
|
|
414
|
+
maxHeight,
|
|
415
|
+
disableCloseOnClickOutside,
|
|
416
|
+
disableCloseOnEscape,
|
|
417
|
+
fitScreen,
|
|
418
|
+
disableTriggerFocus,
|
|
419
|
+
modal,
|
|
420
|
+
noPadding,
|
|
421
|
+
onClickOutside,
|
|
422
|
+
onClose,
|
|
423
|
+
onOpenAnimationStart,
|
|
424
|
+
onOpenAnimationComplete,
|
|
425
|
+
onCloseAnimationStart,
|
|
426
|
+
onCloseAnimationComplete
|
|
427
|
+
} = props;
|
|
428
|
+
const uid = useId();
|
|
429
|
+
const [invoker, setInvoker] = useState(void 0);
|
|
430
|
+
const [popover, setPopover] = useState(void 0);
|
|
431
|
+
const [rootNode, setRootNode] = useState();
|
|
432
|
+
const [arrowElement, setArrowElement] = useState(void 0);
|
|
433
|
+
const [openState, setOpenState] = useOptionallyControlledState({
|
|
434
|
+
controlledValue: open,
|
|
435
|
+
defaultValue: defaultOpen
|
|
536
436
|
});
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
if (!openState) {
|
|
557
|
-
return;
|
|
558
|
-
}
|
|
559
|
-
let requestID = null;
|
|
560
|
-
const cleanup = autoUpdate(invoker, popover, () => {
|
|
561
|
-
requestID = requestAnimationFrame(updatePosition);
|
|
437
|
+
const arrowRef = useRef(null);
|
|
438
|
+
const dialogContext = useContext(DialogContext);
|
|
439
|
+
const [triggerHovered, setTriggerHovered] = useState(false);
|
|
440
|
+
const [contentHovered, setContentHovered] = useState(false);
|
|
441
|
+
const [actualPlacement, setActualPlacement] = useState(placement);
|
|
442
|
+
const processMinHeight = typeof minHeight === "string" ? minHeight : `${minHeight}px`;
|
|
443
|
+
usePopoverTransitionStates(popover, openState, {
|
|
444
|
+
onOpenAnimationStart: useCallback(() => {
|
|
445
|
+
onOpenAnimationStart?.();
|
|
446
|
+
}, [onOpenAnimationStart]),
|
|
447
|
+
onOpenAnimationComplete: useCallback(() => {
|
|
448
|
+
onOpenAnimationComplete?.();
|
|
449
|
+
}, [onOpenAnimationComplete]),
|
|
450
|
+
onCloseAnimationStart: useCallback(() => {
|
|
451
|
+
onCloseAnimationStart?.();
|
|
452
|
+
}, [onCloseAnimationStart]),
|
|
453
|
+
onCloseAnimationComplete: useCallback(() => {
|
|
454
|
+
onCloseAnimationComplete?.();
|
|
455
|
+
}, [onCloseAnimationComplete])
|
|
562
456
|
});
|
|
563
|
-
|
|
564
|
-
if (
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
457
|
+
const updatePosition = useCallback(() => {
|
|
458
|
+
if (!invoker || !popover) return;
|
|
459
|
+
if (!openState) return;
|
|
460
|
+
computePosition(invoker, popover, {
|
|
461
|
+
placement,
|
|
462
|
+
middleware: [
|
|
463
|
+
offset(8),
|
|
464
|
+
size({
|
|
465
|
+
padding: 5,
|
|
466
|
+
apply({ rects, availableHeight, elements }) {
|
|
467
|
+
Object.assign(elements.floating.style, {
|
|
468
|
+
...matchReferenceWidth ? { width: `${rects.reference.width}px` } : fixedWidth ? { width: "40dvw" } : {},
|
|
469
|
+
...fillAvailableHeight ? {
|
|
470
|
+
height: `${availableHeight - 20}px`,
|
|
471
|
+
minHeight: processMinHeight
|
|
472
|
+
} : {},
|
|
473
|
+
...maxHeight ? {
|
|
474
|
+
minHeight: processMinHeight,
|
|
475
|
+
height: fitScreen ? typeof maxHeight === "string" ? maxHeight : `${maxHeight}px` : void 0,
|
|
476
|
+
maxHeight: fitScreen ? `${availableHeight - 20}px` : typeof maxHeight === "string" ? maxHeight : `${maxHeight}px`
|
|
477
|
+
} : {},
|
|
478
|
+
...fitScreen && !maxHeight ? {
|
|
479
|
+
minHeight: processMinHeight,
|
|
480
|
+
maxHeight: `${availableHeight - 20}px`
|
|
481
|
+
} : {},
|
|
482
|
+
zIndex: 1
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
}),
|
|
486
|
+
flip({
|
|
487
|
+
mainAxis: !disableFlip,
|
|
488
|
+
crossAxis: false,
|
|
489
|
+
fallbackAxisSideDirection: disableFlipFallback ? "none" : "end",
|
|
490
|
+
padding: 5
|
|
491
|
+
}),
|
|
492
|
+
shift({
|
|
493
|
+
padding: 5,
|
|
494
|
+
mainAxis: !disableShift,
|
|
495
|
+
crossAxis: false,
|
|
496
|
+
limiter: limitShift({
|
|
497
|
+
mainAxis: !disableShift
|
|
498
|
+
})
|
|
499
|
+
}),
|
|
500
|
+
arrow$1({
|
|
501
|
+
element: !disableCaret && arrowElement ? arrowElement : null,
|
|
502
|
+
padding: 5
|
|
503
|
+
})
|
|
504
|
+
]
|
|
505
|
+
}).then(({ x, y, placement: placement2, middlewareData }) => {
|
|
506
|
+
setActualPlacement(placement2);
|
|
507
|
+
const side = placement2.split("-")[0];
|
|
508
|
+
const staticSide = {
|
|
509
|
+
top: "bottom",
|
|
510
|
+
right: "left",
|
|
511
|
+
bottom: "top",
|
|
512
|
+
left: "right"
|
|
513
|
+
}[side];
|
|
514
|
+
const arrowDeg = () => {
|
|
515
|
+
if (staticSide === "top") return 180;
|
|
516
|
+
if (staticSide === "bottom") return 0;
|
|
517
|
+
if (staticSide === "left") return 90;
|
|
518
|
+
return 270;
|
|
519
|
+
};
|
|
520
|
+
Object.assign(popover.style, {
|
|
521
|
+
left: `${x}px`,
|
|
522
|
+
top: `${y}px`
|
|
523
|
+
});
|
|
524
|
+
if (middlewareData.arrow && arrowElement) {
|
|
525
|
+
const { x: x2, y: y2 } = middlewareData.arrow;
|
|
526
|
+
Object.assign(arrowElement.style, {
|
|
527
|
+
left: x2 != null ? `${x2}px` : "",
|
|
528
|
+
top: y2 != null ? `${y2}px` : "",
|
|
529
|
+
right: "",
|
|
530
|
+
bottom: "",
|
|
531
|
+
[staticSide]: `${-arrowElement.offsetWidth + 2}px`,
|
|
532
|
+
transform: `rotate(${arrowDeg()}deg)`
|
|
533
|
+
});
|
|
610
534
|
}
|
|
535
|
+
});
|
|
536
|
+
}, [
|
|
537
|
+
arrowElement,
|
|
538
|
+
disableCaret,
|
|
539
|
+
disableFlip,
|
|
540
|
+
disableFlipFallback,
|
|
541
|
+
disableShift,
|
|
542
|
+
fillAvailableHeight,
|
|
543
|
+
fitScreen,
|
|
544
|
+
fixedWidth,
|
|
545
|
+
invoker,
|
|
546
|
+
matchReferenceWidth,
|
|
547
|
+
maxHeight,
|
|
548
|
+
openState,
|
|
549
|
+
placement,
|
|
550
|
+
popover,
|
|
551
|
+
processMinHeight
|
|
552
|
+
]);
|
|
553
|
+
useLayoutEffect(() => {
|
|
554
|
+
if (!popover || !invoker) return;
|
|
555
|
+
if (!openState) {
|
|
611
556
|
return;
|
|
612
557
|
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
558
|
+
let requestID = null;
|
|
559
|
+
const cleanup = autoUpdate(invoker, popover, () => {
|
|
560
|
+
requestID = requestAnimationFrame(updatePosition);
|
|
561
|
+
});
|
|
562
|
+
return () => {
|
|
563
|
+
if (requestID) cancelAnimationFrame(requestID);
|
|
564
|
+
cleanup();
|
|
565
|
+
};
|
|
566
|
+
}, [invoker, popover, updatePosition, openState]);
|
|
567
|
+
popover?.getRootNode();
|
|
568
|
+
const popoverId = id ?? `popover-${uid.replace(/:/g, "")}`;
|
|
569
|
+
const isControlled = typeof open !== "undefined";
|
|
570
|
+
const openPopover = useCallback(() => {
|
|
571
|
+
if (!popover || !rootNode?.querySelector(`#${popoverId}`))
|
|
572
|
+
return;
|
|
573
|
+
setOpenState(true);
|
|
574
|
+
}, [popover, rootNode, popoverId, setOpenState]);
|
|
575
|
+
const closePopover = useCallback(
|
|
576
|
+
(fn) => {
|
|
577
|
+
if (!popover || !openState) return;
|
|
578
|
+
if (!openOnHover) onClose?.();
|
|
579
|
+
setOpenState(false);
|
|
580
|
+
setTriggerHovered(false);
|
|
581
|
+
setContentHovered(false);
|
|
582
|
+
fn?.();
|
|
583
|
+
},
|
|
584
|
+
[
|
|
585
|
+
popover,
|
|
586
|
+
openState,
|
|
587
|
+
openOnHover,
|
|
588
|
+
onClose,
|
|
589
|
+
setOpenState,
|
|
590
|
+
setTriggerHovered,
|
|
591
|
+
setContentHovered
|
|
592
|
+
]
|
|
593
|
+
);
|
|
594
|
+
useImperativeHandle(
|
|
595
|
+
ref,
|
|
596
|
+
() => ({
|
|
597
|
+
openPopover,
|
|
598
|
+
closePopover
|
|
599
|
+
}),
|
|
600
|
+
[openPopover, closePopover]
|
|
601
|
+
);
|
|
602
|
+
useEffect(() => {
|
|
603
|
+
if (typeof openState === "undefined") return;
|
|
604
|
+
if (openState) {
|
|
605
|
+
if (dialogContext) {
|
|
606
|
+
if (dialogContext?.ref?.current?.open) {
|
|
607
|
+
safeShowPopover(popover);
|
|
608
|
+
dialogContext?.setHasOpenPopover?.(true);
|
|
609
|
+
}
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
safeShowPopover(popover);
|
|
613
|
+
} else {
|
|
614
|
+
safeHidePopover(popover);
|
|
615
|
+
dialogContext?.setHasOpenPopover?.(false);
|
|
616
|
+
}
|
|
617
|
+
}, [openState, openPopover, closePopover, dialogContext, popover]);
|
|
618
|
+
useOnClickOutside({
|
|
619
|
+
disable: disableCloseOnClickOutside || !openState,
|
|
620
|
+
onClickOutsideBegin: (e) => {
|
|
621
|
+
if (!openState) return;
|
|
622
|
+
onClickOutside?.(e);
|
|
623
|
+
},
|
|
624
|
+
targets: [invoker, popover],
|
|
625
|
+
onClickOutside: () => {
|
|
626
|
+
if (openOnHover || isControlled) return;
|
|
627
|
+
closePopover();
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
const value = useMemo(() => {
|
|
631
|
+
return {
|
|
632
|
+
popoverId,
|
|
633
|
+
invoker,
|
|
634
|
+
setInvoker,
|
|
635
|
+
popover,
|
|
636
|
+
setPopover,
|
|
637
|
+
arrowElement,
|
|
638
|
+
setArrowElement,
|
|
639
|
+
openPopover,
|
|
640
|
+
closePopover,
|
|
641
|
+
placement,
|
|
642
|
+
actualPlacement,
|
|
643
|
+
onClose,
|
|
644
|
+
openOnHover,
|
|
645
|
+
openState,
|
|
646
|
+
setOpenState,
|
|
647
|
+
disableCloseOnClickOutside,
|
|
648
|
+
fillAvailableHeight,
|
|
649
|
+
maxHeight,
|
|
650
|
+
matchReferenceWidth,
|
|
651
|
+
fixedWidth,
|
|
652
|
+
disableCaret,
|
|
653
|
+
disableFlipFallback,
|
|
654
|
+
disableTriggerFocus,
|
|
655
|
+
disableCloseOnEscape,
|
|
656
|
+
noPadding,
|
|
657
|
+
controlled: isControlled,
|
|
658
|
+
modal,
|
|
659
|
+
arrowRef,
|
|
660
|
+
rootNode,
|
|
661
|
+
setRootNode,
|
|
662
|
+
delay,
|
|
663
|
+
triggerHovered,
|
|
664
|
+
setTriggerHovered,
|
|
665
|
+
contentHovered,
|
|
666
|
+
setContentHovered
|
|
667
|
+
};
|
|
668
|
+
}, [
|
|
633
669
|
popoverId,
|
|
634
670
|
invoker,
|
|
635
|
-
setInvoker,
|
|
636
671
|
popover,
|
|
637
|
-
setPopover,
|
|
638
672
|
arrowElement,
|
|
639
|
-
setArrowElement,
|
|
640
673
|
openPopover,
|
|
641
674
|
closePopover,
|
|
642
675
|
placement,
|
|
@@ -655,130 +688,97 @@ const PopoverElement = forwardRef((props, ref) => {
|
|
|
655
688
|
disableTriggerFocus,
|
|
656
689
|
disableCloseOnEscape,
|
|
657
690
|
noPadding,
|
|
658
|
-
|
|
691
|
+
isControlled,
|
|
659
692
|
modal,
|
|
660
|
-
arrowRef,
|
|
661
693
|
rootNode,
|
|
662
|
-
setRootNode,
|
|
663
694
|
delay,
|
|
664
695
|
triggerHovered,
|
|
665
696
|
setTriggerHovered,
|
|
666
697
|
contentHovered,
|
|
667
698
|
setContentHovered
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
* Features:
|
|
752
|
-
* - Automatic popover closing on click
|
|
753
|
-
* - Supports all Button component props and styling
|
|
754
|
-
* - Controlled and uncontrolled mode support
|
|
755
|
-
* - Context integration with parent popover
|
|
756
|
-
* - Accessibility support with proper button semantics
|
|
757
|
-
* - Delayed closing for controlled mode
|
|
758
|
-
* - Automatic tracking ID generation for analytics
|
|
759
|
-
*
|
|
760
|
-
* @example
|
|
761
|
-
* <Popover.Close>Close</Popover.Close>
|
|
762
|
-
*/
|
|
763
|
-
Close: PopoverClose,
|
|
764
|
-
/**
|
|
765
|
-
* PopoverButton component for creating button-style triggers.
|
|
766
|
-
*
|
|
767
|
-
* Features:
|
|
768
|
-
* - Button styling and behavior with all Button props
|
|
769
|
-
* - Automatic popover opening on click
|
|
770
|
-
* - Hover interaction support for tooltip mode
|
|
771
|
-
* - Focus management and keyboard navigation
|
|
772
|
-
* - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)
|
|
773
|
-
* - Context integration with parent popover
|
|
774
|
-
* - Event handling for mouse, keyboard, and focus events
|
|
775
|
-
* - Automatic tracking ID generation for analytics
|
|
776
|
-
*
|
|
777
|
-
* @example
|
|
778
|
-
* <Popover.Button>Click to open</Popover.Button>
|
|
779
|
-
*/
|
|
780
|
-
Button: PopoverButton
|
|
781
|
-
});
|
|
699
|
+
]);
|
|
700
|
+
return /* @__PURE__ */ jsx(PopoverContext.Provider, { value, children });
|
|
701
|
+
}),
|
|
702
|
+
{
|
|
703
|
+
/**
|
|
704
|
+
* PopoverTrigger component for creating custom trigger elements.
|
|
705
|
+
*
|
|
706
|
+
* Features:
|
|
707
|
+
* - Supports custom trigger elements via render prop pattern
|
|
708
|
+
* - Automatic focus management and keyboard interaction
|
|
709
|
+
* - Hover and click event handling
|
|
710
|
+
* - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)
|
|
711
|
+
* - Context integration with parent popover
|
|
712
|
+
* - Automatic tracking ID generation for analytics
|
|
713
|
+
*
|
|
714
|
+
* @example
|
|
715
|
+
* <Popover.Trigger>
|
|
716
|
+
* {(props) => (
|
|
717
|
+
* <button {...props}>
|
|
718
|
+
* Click to open popover
|
|
719
|
+
* </button>
|
|
720
|
+
* )}
|
|
721
|
+
* </Popover.Trigger>
|
|
722
|
+
*/
|
|
723
|
+
Trigger: PopoverTrigger,
|
|
724
|
+
/**
|
|
725
|
+
* PopoverContent component for the main popover content area.
|
|
726
|
+
*
|
|
727
|
+
* Features:
|
|
728
|
+
* - Automatic positioning and sizing based on trigger
|
|
729
|
+
* - Screen boundary detection and fitting
|
|
730
|
+
* - Scroll handling with custom scroller reference
|
|
731
|
+
* - Focus management and keyboard navigation
|
|
732
|
+
* - Hover interaction support for tooltip mode
|
|
733
|
+
* - Escape key handling for closing
|
|
734
|
+
* - Tab key trapping for modal popovers
|
|
735
|
+
* - Arrow/caret indicator with automatic positioning
|
|
736
|
+
* - Context integration with parent popover
|
|
737
|
+
* - Accessibility support with proper ARIA roles
|
|
738
|
+
*
|
|
739
|
+
* @example
|
|
740
|
+
* <Popover.Content>
|
|
741
|
+
* <p>This is the popover content</p>
|
|
742
|
+
* <Popover.Close>Close</Popover.Close>
|
|
743
|
+
* </Popover.Content>
|
|
744
|
+
*/
|
|
745
|
+
Content: PopoverContent,
|
|
746
|
+
/**
|
|
747
|
+
* PopoverClose component for closing the popover.
|
|
748
|
+
*
|
|
749
|
+
* Features:
|
|
750
|
+
* - Automatic popover closing on click
|
|
751
|
+
* - Supports all Button component props and styling
|
|
752
|
+
* - Controlled and uncontrolled mode support
|
|
753
|
+
* - Context integration with parent popover
|
|
754
|
+
* - Accessibility support with proper button semantics
|
|
755
|
+
* - Delayed closing for controlled mode
|
|
756
|
+
* - Automatic tracking ID generation for analytics
|
|
757
|
+
*
|
|
758
|
+
* @example
|
|
759
|
+
* <Popover.Close>Close</Popover.Close>
|
|
760
|
+
*/
|
|
761
|
+
Close: PopoverClose,
|
|
762
|
+
/**
|
|
763
|
+
* PopoverButton component for creating button-style triggers.
|
|
764
|
+
*
|
|
765
|
+
* Features:
|
|
766
|
+
* - Button styling and behavior with all Button props
|
|
767
|
+
* - Automatic popover opening on click
|
|
768
|
+
* - Hover interaction support for tooltip mode
|
|
769
|
+
* - Focus management and keyboard navigation
|
|
770
|
+
* - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)
|
|
771
|
+
* - Context integration with parent popover
|
|
772
|
+
* - Event handling for mouse, keyboard, and focus events
|
|
773
|
+
* - Automatic tracking ID generation for analytics
|
|
774
|
+
*
|
|
775
|
+
* @example
|
|
776
|
+
* <Popover.Button>Click to open</Popover.Button>
|
|
777
|
+
*/
|
|
778
|
+
Button: PopoverButton
|
|
779
|
+
}
|
|
780
|
+
);
|
|
781
|
+
Popover.displayName = "Popover";
|
|
782
782
|
|
|
783
783
|
export { Popover as P, usePopoverContext as u };
|
|
784
|
-
//# sourceMappingURL=Popover-
|
|
784
|
+
//# sourceMappingURL=Popover-Rha0q-Pv.js.map
|