@mantine/core 9.6.3 → 9.7.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/cjs/components/ActionBar/ActionBar.cjs +0 -3
- package/cjs/components/ActionBar/ActionBar.cjs.map +1 -1
- package/cjs/components/ActionBar/ActionBar.module.cjs.map +1 -1
- package/cjs/components/AppShell/AppShell.cjs +33 -6
- package/cjs/components/AppShell/AppShell.cjs.map +1 -1
- package/cjs/components/AppShell/AppShell.context.cjs.map +1 -1
- package/cjs/components/AppShell/AppShell.module.cjs +2 -1
- package/cjs/components/AppShell/AppShell.module.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs +28 -7
- package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs +28 -7
- package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs +28 -7
- package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs +3 -2
- package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.cjs +27 -16
- package/cjs/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.cjs +24 -16
- package/cjs/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.cjs +24 -16
- package/cjs/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.cjs +30 -19
- package/cjs/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.cjs +26 -0
- package/cjs/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.cjs.map +1 -0
- package/cjs/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.cjs +10 -0
- package/cjs/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.cjs.map +1 -0
- package/cjs/components/AppShell/AppShellMediaStyles/get-variables/get-variables.cjs +13 -5
- package/cjs/components/AppShell/AppShellMediaStyles/get-variables/get-variables.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs +28 -7
- package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.cjs +270 -0
- package/cjs/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.cjs.map +1 -0
- package/cjs/components/AppShell/use-app-shell-resize/clamp-resize-size.cjs +15 -0
- package/cjs/components/AppShell/use-app-shell-resize/clamp-resize-size.cjs.map +1 -0
- package/cjs/components/AppShell/use-app-shell-resize/resize-section-config.cjs +51 -0
- package/cjs/components/AppShell/use-app-shell-resize/resize-section-config.cjs.map +1 -0
- package/cjs/components/AppShell/use-app-shell-resize/safe-area-inset.cjs +12 -0
- package/cjs/components/AppShell/use-app-shell-resize/safe-area-inset.cjs.map +1 -0
- package/cjs/components/AppShell/use-app-shell-resize/use-app-shell-resize.cjs +127 -0
- package/cjs/components/AppShell/use-app-shell-resize/use-app-shell-resize.cjs.map +1 -0
- package/cjs/components/AppShell/use-resizing/use-resizing.cjs +20 -2
- package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
- package/cjs/components/Checkbox/Checkbox.cjs +10 -2
- package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
- package/cjs/components/Checkbox/Checkbox.module.cjs +1 -0
- package/cjs/components/Checkbox/Checkbox.module.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs +10 -2
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.cjs +1 -0
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.cjs.map +1 -1
- package/cjs/components/Dialog/Dialog.cjs +0 -1
- package/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/cjs/components/Dialog/Dialog.module.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCard.cjs +34 -5
- package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCard.context.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs +13 -18
- package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs +6 -23
- package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
- package/cjs/components/HoverCard/use-hover-card.cjs +26 -12
- package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
- package/cjs/components/Radio/Radio.cjs +10 -2
- package/cjs/components/Radio/Radio.cjs.map +1 -1
- package/cjs/components/Radio/Radio.module.cjs +1 -0
- package/cjs/components/Radio/Radio.module.cjs.map +1 -1
- package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs +10 -2
- package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
- package/cjs/components/Radio/RadioIndicator/RadioIndicator.module.cjs +1 -0
- package/cjs/components/Radio/RadioIndicator/RadioIndicator.module.cjs.map +1 -1
- package/cjs/components/Toggle/Toggle.cjs +80 -0
- package/cjs/components/Toggle/Toggle.cjs.map +1 -0
- package/cjs/components/Toggle/Toggle.module.cjs +7 -0
- package/cjs/components/Toggle/Toggle.module.cjs.map +1 -0
- package/cjs/components/Toolbar/Toolbar.cjs +107 -0
- package/cjs/components/Toolbar/Toolbar.cjs.map +1 -0
- package/cjs/components/Toolbar/Toolbar.context.cjs +8 -0
- package/cjs/components/Toolbar/Toolbar.context.cjs.map +1 -0
- package/cjs/components/Toolbar/Toolbar.module.cjs +12 -0
- package/cjs/components/Toolbar/Toolbar.module.cjs.map +1 -0
- package/cjs/components/Toolbar/ToolbarDivider/ToolbarDivider.cjs +31 -0
- package/cjs/components/Toolbar/ToolbarDivider/ToolbarDivider.cjs.map +1 -0
- package/cjs/components/Toolbar/ToolbarGroup/ToolbarGroup.cjs +31 -0
- package/cjs/components/Toolbar/ToolbarGroup/ToolbarGroup.cjs.map +1 -0
- package/cjs/components/Toolbar/ToolbarToggle/ToolbarToggle.cjs +47 -0
- package/cjs/components/Toolbar/ToolbarToggle/ToolbarToggle.cjs.map +1 -0
- package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs +61 -0
- package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.cjs.map +1 -0
- package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.cjs +8 -0
- package/cjs/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.cjs.map +1 -0
- package/cjs/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs +51 -0
- package/cjs/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.cjs.map +1 -0
- package/cjs/components/Toolbar/use-toolbar-navigation.cjs +76 -0
- package/cjs/components/Toolbar/use-toolbar-navigation.cjs.map +1 -0
- package/cjs/components/Tooltip/Tooltip.cjs +9 -5
- package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
- package/cjs/components/Tooltip/use-tooltip.cjs +6 -3
- package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
- package/cjs/components/Tour/Tour.cjs +283 -0
- package/cjs/components/Tour/Tour.cjs.map +1 -0
- package/cjs/components/Tour/Tour.context.cjs +25 -0
- package/cjs/components/Tour/Tour.context.cjs.map +1 -0
- package/cjs/components/Tour/Tour.module.cjs +19 -0
- package/cjs/components/Tour/Tour.module.cjs.map +1 -0
- package/cjs/components/Tour/TourBeacon/TourBeacon.cjs +54 -0
- package/cjs/components/Tour/TourBeacon/TourBeacon.cjs.map +1 -0
- package/cjs/components/Tour/TourBeaconPositioned.cjs +46 -0
- package/cjs/components/Tour/TourBeaconPositioned.cjs.map +1 -0
- package/cjs/components/Tour/TourBody/TourBody.cjs +37 -0
- package/cjs/components/Tour/TourBody/TourBody.cjs.map +1 -0
- package/cjs/components/Tour/TourCloseButton/TourCloseButton.cjs +26 -0
- package/cjs/components/Tour/TourCloseButton/TourCloseButton.cjs.map +1 -0
- package/cjs/components/Tour/TourNavigation/TourNavigation.cjs +63 -0
- package/cjs/components/Tour/TourNavigation/TourNavigation.cjs.map +1 -0
- package/cjs/components/Tour/TourOverlay/TourOverlay.cjs +70 -0
- package/cjs/components/Tour/TourOverlay/TourOverlay.cjs.map +1 -0
- package/cjs/components/Tour/TourRoot/TourRoot.cjs +125 -0
- package/cjs/components/Tour/TourRoot/TourRoot.cjs.map +1 -0
- package/cjs/components/Tour/TourStep/TourStep.cjs +10 -0
- package/cjs/components/Tour/TourStep/TourStep.cjs.map +1 -0
- package/cjs/components/Tour/TourTitle/TourTitle.cjs +38 -0
- package/cjs/components/Tour/TourTitle/TourTitle.cjs.map +1 -0
- package/cjs/components/Tour/TourTooltip/TourTooltip.cjs +87 -0
- package/cjs/components/Tour/TourTooltip/TourTooltip.cjs.map +1 -0
- package/cjs/components/Tour/get-overlay-hit-path.cjs +17 -0
- package/cjs/components/Tour/get-overlay-hit-path.cjs.map +1 -0
- package/cjs/components/Tour/is-element-in-view.cjs +30 -0
- package/cjs/components/Tour/is-element-in-view.cjs.map +1 -0
- package/cjs/components/Tour/press-aware-auto-update.cjs +38 -0
- package/cjs/components/Tour/press-aware-auto-update.cjs.map +1 -0
- package/cjs/components/Tour/use-target-rect.cjs +61 -0
- package/cjs/components/Tour/use-target-rect.cjs.map +1 -0
- package/cjs/components/Tour/use-tooltip-auto-focus.cjs +34 -0
- package/cjs/components/Tour/use-tooltip-auto-focus.cjs.map +1 -0
- package/cjs/components/Tour/use-tour-state.cjs +102 -0
- package/cjs/components/Tour/use-tour-state.cjs.map +1 -0
- package/cjs/components/Tour/use-tour.cjs +155 -0
- package/cjs/components/Tour/use-tour.cjs.map +1 -0
- package/cjs/components/TreeSelect/TreeSelect.cjs +29 -16
- package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
- package/cjs/index.cjs +41 -1
- package/esm/components/ActionBar/ActionBar.mjs +0 -3
- package/esm/components/ActionBar/ActionBar.mjs.map +1 -1
- package/esm/components/ActionBar/ActionBar.module.mjs.map +1 -1
- package/esm/components/AppShell/AppShell.context.mjs.map +1 -1
- package/esm/components/AppShell/AppShell.mjs +35 -8
- package/esm/components/AppShell/AppShell.mjs.map +1 -1
- package/esm/components/AppShell/AppShell.module.mjs +2 -1
- package/esm/components/AppShell/AppShell.module.mjs.map +1 -1
- package/esm/components/AppShell/AppShellAside/AppShellAside.mjs +29 -8
- package/esm/components/AppShell/AppShellAside/AppShellAside.mjs.map +1 -1
- package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs +29 -8
- package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
- package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs +29 -8
- package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
- package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs +3 -2
- package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs.map +1 -1
- package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs +27 -16
- package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs.map +1 -1
- package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs +24 -16
- package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs.map +1 -1
- package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs +24 -16
- package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs.map +1 -1
- package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs +30 -19
- package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs.map +1 -1
- package/esm/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.mjs +26 -0
- package/esm/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.mjs.map +1 -0
- package/esm/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.mjs +10 -0
- package/esm/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.mjs.map +1 -0
- package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs +13 -5
- package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs.map +1 -1
- package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs +29 -8
- package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs.map +1 -1
- package/esm/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.mjs +270 -0
- package/esm/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.mjs.map +1 -0
- package/esm/components/AppShell/use-app-shell-resize/clamp-resize-size.mjs +14 -0
- package/esm/components/AppShell/use-app-shell-resize/clamp-resize-size.mjs.map +1 -0
- package/esm/components/AppShell/use-app-shell-resize/resize-section-config.mjs +49 -0
- package/esm/components/AppShell/use-app-shell-resize/resize-section-config.mjs.map +1 -0
- package/esm/components/AppShell/use-app-shell-resize/safe-area-inset.mjs +12 -0
- package/esm/components/AppShell/use-app-shell-resize/safe-area-inset.mjs.map +1 -0
- package/esm/components/AppShell/use-app-shell-resize/use-app-shell-resize.mjs +127 -0
- package/esm/components/AppShell/use-app-shell-resize/use-app-shell-resize.mjs.map +1 -0
- package/esm/components/AppShell/use-resizing/use-resizing.mjs +21 -3
- package/esm/components/AppShell/use-resizing/use-resizing.mjs.map +1 -1
- package/esm/components/Checkbox/Checkbox.mjs +10 -2
- package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
- package/esm/components/Checkbox/Checkbox.module.mjs +1 -0
- package/esm/components/Checkbox/Checkbox.module.mjs.map +1 -1
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs +10 -2
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.mjs +1 -0
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.mjs.map +1 -1
- package/esm/components/Dialog/Dialog.mjs +0 -1
- package/esm/components/Dialog/Dialog.mjs.map +1 -1
- package/esm/components/Dialog/Dialog.module.mjs.map +1 -1
- package/esm/components/HoverCard/HoverCard.context.mjs.map +1 -1
- package/esm/components/HoverCard/HoverCard.mjs +34 -5
- package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
- package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs +13 -18
- package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs.map +1 -1
- package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs +7 -24
- package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
- package/esm/components/HoverCard/use-hover-card.mjs +27 -13
- package/esm/components/HoverCard/use-hover-card.mjs.map +1 -1
- package/esm/components/Radio/Radio.mjs +10 -2
- package/esm/components/Radio/Radio.mjs.map +1 -1
- package/esm/components/Radio/Radio.module.mjs +1 -0
- package/esm/components/Radio/Radio.module.mjs.map +1 -1
- package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs +10 -2
- package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
- package/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs +1 -0
- package/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs.map +1 -1
- package/esm/components/Toggle/Toggle.mjs +80 -0
- package/esm/components/Toggle/Toggle.mjs.map +1 -0
- package/esm/components/Toggle/Toggle.module.mjs +7 -0
- package/esm/components/Toggle/Toggle.module.mjs.map +1 -0
- package/esm/components/Toolbar/Toolbar.context.mjs +8 -0
- package/esm/components/Toolbar/Toolbar.context.mjs.map +1 -0
- package/esm/components/Toolbar/Toolbar.mjs +107 -0
- package/esm/components/Toolbar/Toolbar.mjs.map +1 -0
- package/esm/components/Toolbar/Toolbar.module.mjs +12 -0
- package/esm/components/Toolbar/Toolbar.module.mjs.map +1 -0
- package/esm/components/Toolbar/ToolbarDivider/ToolbarDivider.mjs +31 -0
- package/esm/components/Toolbar/ToolbarDivider/ToolbarDivider.mjs.map +1 -0
- package/esm/components/Toolbar/ToolbarGroup/ToolbarGroup.mjs +31 -0
- package/esm/components/Toolbar/ToolbarGroup/ToolbarGroup.mjs.map +1 -0
- package/esm/components/Toolbar/ToolbarToggle/ToolbarToggle.mjs +47 -0
- package/esm/components/Toolbar/ToolbarToggle/ToolbarToggle.mjs.map +1 -0
- package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.mjs +8 -0
- package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.mjs.map +1 -0
- package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.mjs +61 -0
- package/esm/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.mjs.map +1 -0
- package/esm/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.mjs +51 -0
- package/esm/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.mjs.map +1 -0
- package/esm/components/Toolbar/use-toolbar-navigation.mjs +76 -0
- package/esm/components/Toolbar/use-toolbar-navigation.mjs.map +1 -0
- package/esm/components/Tooltip/Tooltip.mjs +9 -5
- package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
- package/esm/components/Tooltip/use-tooltip.mjs +7 -4
- package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
- package/esm/components/Tour/Tour.context.mjs +22 -0
- package/esm/components/Tour/Tour.context.mjs.map +1 -0
- package/esm/components/Tour/Tour.mjs +283 -0
- package/esm/components/Tour/Tour.mjs.map +1 -0
- package/esm/components/Tour/Tour.module.mjs +19 -0
- package/esm/components/Tour/Tour.module.mjs.map +1 -0
- package/esm/components/Tour/TourBeacon/TourBeacon.mjs +54 -0
- package/esm/components/Tour/TourBeacon/TourBeacon.mjs.map +1 -0
- package/esm/components/Tour/TourBeaconPositioned.mjs +46 -0
- package/esm/components/Tour/TourBeaconPositioned.mjs.map +1 -0
- package/esm/components/Tour/TourBody/TourBody.mjs +37 -0
- package/esm/components/Tour/TourBody/TourBody.mjs.map +1 -0
- package/esm/components/Tour/TourCloseButton/TourCloseButton.mjs +26 -0
- package/esm/components/Tour/TourCloseButton/TourCloseButton.mjs.map +1 -0
- package/esm/components/Tour/TourNavigation/TourNavigation.mjs +63 -0
- package/esm/components/Tour/TourNavigation/TourNavigation.mjs.map +1 -0
- package/esm/components/Tour/TourOverlay/TourOverlay.mjs +70 -0
- package/esm/components/Tour/TourOverlay/TourOverlay.mjs.map +1 -0
- package/esm/components/Tour/TourRoot/TourRoot.mjs +125 -0
- package/esm/components/Tour/TourRoot/TourRoot.mjs.map +1 -0
- package/esm/components/Tour/TourStep/TourStep.mjs +10 -0
- package/esm/components/Tour/TourStep/TourStep.mjs.map +1 -0
- package/esm/components/Tour/TourTitle/TourTitle.mjs +38 -0
- package/esm/components/Tour/TourTitle/TourTitle.mjs.map +1 -0
- package/esm/components/Tour/TourTooltip/TourTooltip.mjs +87 -0
- package/esm/components/Tour/TourTooltip/TourTooltip.mjs.map +1 -0
- package/esm/components/Tour/get-overlay-hit-path.mjs +17 -0
- package/esm/components/Tour/get-overlay-hit-path.mjs.map +1 -0
- package/esm/components/Tour/is-element-in-view.mjs +30 -0
- package/esm/components/Tour/is-element-in-view.mjs.map +1 -0
- package/esm/components/Tour/press-aware-auto-update.mjs +38 -0
- package/esm/components/Tour/press-aware-auto-update.mjs.map +1 -0
- package/esm/components/Tour/use-target-rect.mjs +59 -0
- package/esm/components/Tour/use-target-rect.mjs.map +1 -0
- package/esm/components/Tour/use-tooltip-auto-focus.mjs +34 -0
- package/esm/components/Tour/use-tooltip-auto-focus.mjs.map +1 -0
- package/esm/components/Tour/use-tour-state.mjs +102 -0
- package/esm/components/Tour/use-tour-state.mjs.map +1 -0
- package/esm/components/Tour/use-tour.mjs +155 -0
- package/esm/components/Tour/use-tour.mjs.map +1 -0
- package/esm/components/TreeSelect/TreeSelect.mjs +30 -17
- package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
- package/esm/index.mjs +21 -2
- package/lib/components/ActionBar/ActionBar.d.ts +1 -1
- package/lib/components/AppShell/AppShell.context.d.ts +4 -0
- package/lib/components/AppShell/AppShell.d.ts +5 -3
- package/lib/components/AppShell/AppShell.types.d.ts +70 -0
- package/lib/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.d.ts +6 -1
- package/lib/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.d.ts +3 -1
- package/lib/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.d.ts +3 -1
- package/lib/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.d.ts +3 -1
- package/lib/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.d.ts +3 -1
- package/lib/components/AppShell/AppShellMediaStyles/escape-css-id/escape-css-id.d.ts +2 -0
- package/lib/components/AppShell/AppShellMediaStyles/get-resized-value/get-resized-value.d.ts +1 -0
- package/lib/components/AppShell/AppShellMediaStyles/get-variables/get-variables.d.ts +6 -1
- package/lib/components/AppShell/AppShellResizeHandle/AppShellResizeHandle.d.ts +10 -0
- package/lib/components/AppShell/index.d.ts +3 -2
- package/lib/components/AppShell/use-app-shell-resize/clamp-resize-size.d.ts +9 -0
- package/lib/components/AppShell/use-app-shell-resize/resize-section-config.d.ts +29 -0
- package/lib/components/AppShell/use-app-shell-resize/safe-area-inset.d.ts +1 -0
- package/lib/components/AppShell/use-app-shell-resize/use-app-shell-resize.d.ts +2 -0
- package/lib/components/AppShell/use-resizing/use-resizing.d.ts +2 -1
- package/lib/components/Checkbox/Checkbox.d.ts +2 -2
- package/lib/components/Checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +2 -2
- package/lib/components/HoverCard/HoverCard.context.d.ts +8 -4
- package/lib/components/HoverCard/HoverCard.d.ts +41 -0
- package/lib/components/HoverCard/index.d.ts +1 -1
- package/lib/components/HoverCard/use-hover-card.d.ts +11 -0
- package/lib/components/Radio/Radio.d.ts +2 -2
- package/lib/components/Radio/RadioIndicator/RadioIndicator.d.ts +2 -2
- package/lib/components/Toggle/Toggle.d.ts +73 -0
- package/lib/components/Toggle/index.d.ts +7 -0
- package/lib/components/Toolbar/Toolbar.context.d.ts +7 -0
- package/lib/components/Toolbar/Toolbar.d.ts +58 -0
- package/lib/components/Toolbar/ToolbarDivider/ToolbarDivider.d.ts +16 -0
- package/lib/components/Toolbar/ToolbarGroup/ToolbarGroup.d.ts +16 -0
- package/lib/components/Toolbar/ToolbarToggle/ToolbarToggle.d.ts +44 -0
- package/lib/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.context.d.ts +7 -0
- package/lib/components/Toolbar/ToolbarToggleGroup/ToolbarToggleGroup.d.ts +42 -0
- package/lib/components/Toolbar/ToolbarToggleItem/ToolbarToggleItem.d.ts +22 -0
- package/lib/components/Toolbar/index.d.ts +32 -0
- package/lib/components/Toolbar/use-toolbar-navigation.d.ts +11 -0
- package/lib/components/Tooltip/Tooltip.d.ts +2 -0
- package/lib/components/Tooltip/use-tooltip.d.ts +2 -0
- package/lib/components/Tour/Tour.context.d.ts +66 -0
- package/lib/components/Tour/Tour.d.ts +144 -0
- package/lib/components/Tour/TourBeacon/TourBeacon.d.ts +23 -0
- package/lib/components/Tour/TourBeaconPositioned.d.ts +13 -0
- package/lib/components/Tour/TourBody/TourBody.d.ts +19 -0
- package/lib/components/Tour/TourCloseButton/TourCloseButton.d.ts +12 -0
- package/lib/components/Tour/TourNavigation/TourNavigation.d.ts +11 -0
- package/lib/components/Tour/TourOverlay/TourOverlay.d.ts +22 -0
- package/lib/components/Tour/TourRoot/TourRoot.d.ts +72 -0
- package/lib/components/Tour/TourStep/TourStep.d.ts +30 -0
- package/lib/components/Tour/TourTitle/TourTitle.d.ts +19 -0
- package/lib/components/Tour/TourTooltip/TourTooltip.d.ts +29 -0
- package/lib/components/Tour/get-overlay-hit-path.d.ts +2 -0
- package/lib/components/Tour/index.d.ts +23 -0
- package/lib/components/Tour/is-element-in-view.d.ts +1 -0
- package/lib/components/Tour/press-aware-auto-update.d.ts +2 -0
- package/lib/components/Tour/use-target-rect.d.ts +13 -0
- package/lib/components/Tour/use-tooltip-auto-focus.d.ts +7 -0
- package/lib/components/Tour/use-tour-state.d.ts +23 -0
- package/lib/components/Tour/use-tour.d.ts +40 -0
- package/lib/components/TreeSelect/TreeSelect.d.ts +14 -0
- package/lib/components/TreeSelect/index.d.ts +2 -2
- package/lib/components/index.d.ts +3 -0
- package/package.json +5 -5
- package/styles/ActionBar.css +1 -0
- package/styles/ActionBar.layer.css +1 -0
- package/styles/AppShell.css +68 -0
- package/styles/AppShell.layer.css +68 -0
- package/styles/Checkbox.css +20 -0
- package/styles/Checkbox.layer.css +20 -0
- package/styles/CheckboxIndicator.css +16 -0
- package/styles/CheckboxIndicator.layer.css +16 -0
- package/styles/Dialog.css +1 -0
- package/styles/Dialog.layer.css +1 -0
- package/styles/Radio.css +10 -0
- package/styles/Radio.layer.css +10 -0
- package/styles/RadioIndicator.css +11 -0
- package/styles/RadioIndicator.layer.css +11 -0
- package/styles/Toggle.css +98 -0
- package/styles/Toggle.layer.css +99 -0
- package/styles/Toolbar.css +220 -0
- package/styles/Toolbar.layer.css +221 -0
- package/styles/Tour.css +127 -0
- package/styles/Tour.layer.css +128 -0
- package/styles.css +575 -0
- package/styles.layer.css +575 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_get_size = require("../../core/utils/get-size/get-size.cjs");
|
|
3
|
+
const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs");
|
|
4
|
+
const require_get_theme_color = require("../../core/MantineProvider/color-functions/get-theme-color/get-theme-color.cjs");
|
|
5
|
+
const require_use_props = require("../../core/MantineProvider/use-props/use-props.cjs");
|
|
6
|
+
const require_use_styles = require("../../core/styles-api/use-styles/use-styles.cjs");
|
|
7
|
+
const require_factory = require("../../core/factory/factory.cjs");
|
|
8
|
+
const require_Box = require("../../core/Box/Box.cjs");
|
|
9
|
+
const require_OptionalPortal = require("../Portal/OptionalPortal.cjs");
|
|
10
|
+
const require_Transition = require("../Transition/Transition.cjs");
|
|
11
|
+
const require_FocusTrap = require("../FocusTrap/FocusTrap.cjs");
|
|
12
|
+
const require_get_overlay_hit_path = require("./get-overlay-hit-path.cjs");
|
|
13
|
+
const require_Tour_context = require("./Tour.context.cjs");
|
|
14
|
+
const require_Tour_module = require("./Tour.module.cjs");
|
|
15
|
+
const require_TourBeacon = require("./TourBeacon/TourBeacon.cjs");
|
|
16
|
+
const require_TourBeaconPositioned = require("./TourBeaconPositioned.cjs");
|
|
17
|
+
const require_TourBody = require("./TourBody/TourBody.cjs");
|
|
18
|
+
const require_TourCloseButton = require("./TourCloseButton/TourCloseButton.cjs");
|
|
19
|
+
const require_TourNavigation = require("./TourNavigation/TourNavigation.cjs");
|
|
20
|
+
const require_TourOverlay = require("./TourOverlay/TourOverlay.cjs");
|
|
21
|
+
const require_TourRoot = require("./TourRoot/TourRoot.cjs");
|
|
22
|
+
const require_TourStep = require("./TourStep/TourStep.cjs");
|
|
23
|
+
const require_TourTitle = require("./TourTitle/TourTitle.cjs");
|
|
24
|
+
const require_use_tooltip_auto_focus = require("./use-tooltip-auto-focus.cjs");
|
|
25
|
+
const require_TourTooltip = require("./TourTooltip/TourTooltip.cjs");
|
|
26
|
+
const require_use_tour = require("./use-tour.cjs");
|
|
27
|
+
let react = require("react");
|
|
28
|
+
let _mantine_hooks = require("@mantine/hooks");
|
|
29
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
+
//#region packages/@mantine/core/src/components/Tour/Tour.tsx
|
|
31
|
+
const defaultProps = {
|
|
32
|
+
active: false,
|
|
33
|
+
mode: "guided",
|
|
34
|
+
withOverlay: true,
|
|
35
|
+
withOverlayInteraction: false,
|
|
36
|
+
withCloseButton: true,
|
|
37
|
+
withKeyboardNavigation: true,
|
|
38
|
+
withScrollIntoView: true,
|
|
39
|
+
spotlightPadding: 8,
|
|
40
|
+
closeOnEscape: true,
|
|
41
|
+
closeOnOverlayClick: false,
|
|
42
|
+
withinPortal: true,
|
|
43
|
+
zIndex: 1e4,
|
|
44
|
+
transitionProps: {
|
|
45
|
+
duration: 200,
|
|
46
|
+
transition: "pop"
|
|
47
|
+
},
|
|
48
|
+
maxWidth: 360,
|
|
49
|
+
stepTransitionDuration: 300,
|
|
50
|
+
overlayColor: "rgba(0, 0, 0, 0.5)"
|
|
51
|
+
};
|
|
52
|
+
const varsResolver = require_create_vars_resolver.createVarsResolver((theme, { zIndex, overlayColor, tooltipShadow, color }) => ({ root: {
|
|
53
|
+
"--tour-color": color ? require_get_theme_color.getThemeColor(color, theme) : void 0,
|
|
54
|
+
"--tour-z-index": zIndex?.toString(),
|
|
55
|
+
"--tour-overlay-color": overlayColor,
|
|
56
|
+
"--tour-tooltip-radius": void 0,
|
|
57
|
+
"--tour-tooltip-shadow": require_get_size.getShadow(tooltipShadow),
|
|
58
|
+
"--tour-beacon-size": void 0,
|
|
59
|
+
"--tour-beacon-color": void 0
|
|
60
|
+
} }));
|
|
61
|
+
const noop = () => {};
|
|
62
|
+
function getBeaconLabel(label, title) {
|
|
63
|
+
return typeof title === "string" || typeof title === "number" ? `${label}: ${title}` : label;
|
|
64
|
+
}
|
|
65
|
+
const Tour = require_factory.factory((_props) => {
|
|
66
|
+
const props = require_use_props.useProps("Tour", defaultProps, _props);
|
|
67
|
+
const { classNames, className, style, styles, unstyled, vars, active, onClose, step: stepProp, defaultStep, onStepChange, onStepOpen, onStepClose, mode, withOverlay, withOverlayInteraction, withCloseButton, withKeyboardNavigation, withScrollIntoView, scrollToHandler, spotlightPadding, spotlightRadius, closeOnEscape, closeOnOverlayClick, labels: labelsProp, withinPortal, portalProps, zIndex, transitionProps, stepTransitionDuration, maxWidth, overlayColor, tooltipShadow, color, children, attributes, ...others } = props;
|
|
68
|
+
const labels = {
|
|
69
|
+
...require_Tour_context.defaultLabels,
|
|
70
|
+
...labelsProp
|
|
71
|
+
};
|
|
72
|
+
const spotlightPaddingValue = spotlightPadding;
|
|
73
|
+
const id = (0, react.useId)();
|
|
74
|
+
const maskId = `${id}-mask`;
|
|
75
|
+
const [registeredTitleId, registerTitle] = (0, react.useState)(null);
|
|
76
|
+
const [registeredBodyId, registerBody] = (0, react.useState)(null);
|
|
77
|
+
const titleId = registeredTitleId ?? `${id}-title`;
|
|
78
|
+
const bodyId = registeredBodyId ?? `${id}-body`;
|
|
79
|
+
const titleMounted = registeredTitleId !== null;
|
|
80
|
+
const bodyMounted = registeredBodyId !== null;
|
|
81
|
+
const beaconToFocusRef = (0, react.useRef)(null);
|
|
82
|
+
const { steps, setStep, beaconOpenStep, openBeaconStep, close, displayStep, displayStepIndex, targetRect, floatingStyles, floatingRefs, isCentered, constrainedWidth, stepMoving, showTooltip, clearExitedTarget } = require_use_tour.useTour({
|
|
83
|
+
active,
|
|
84
|
+
onClose,
|
|
85
|
+
step: stepProp,
|
|
86
|
+
defaultStep,
|
|
87
|
+
onStepChange,
|
|
88
|
+
onStepOpen,
|
|
89
|
+
onStepClose,
|
|
90
|
+
mode,
|
|
91
|
+
withKeyboardNavigation,
|
|
92
|
+
withScrollIntoView,
|
|
93
|
+
scrollToHandler,
|
|
94
|
+
closeOnEscape,
|
|
95
|
+
maxWidth,
|
|
96
|
+
stepTransitionDuration,
|
|
97
|
+
children,
|
|
98
|
+
stepComponent: require_TourStep.TourStep
|
|
99
|
+
});
|
|
100
|
+
(0, react.useEffect)(() => {
|
|
101
|
+
if (!active) beaconToFocusRef.current = null;
|
|
102
|
+
}, [active]);
|
|
103
|
+
const resolvedSpotlightPadding = displayStep?.spotlightPadding ?? spotlightPaddingValue;
|
|
104
|
+
const resolvedSpotlightRadius = displayStep?.spotlightRadius ?? spotlightRadius ?? 4;
|
|
105
|
+
const resolvedWithOverlay = displayStep?.withOverlay ?? withOverlay;
|
|
106
|
+
const focusTrapActive = showTooltip && mode === "guided" && !!resolvedWithOverlay && !withOverlayInteraction;
|
|
107
|
+
const autoFocusRef = require_use_tooltip_auto_focus.useTooltipAutoFocus({
|
|
108
|
+
autoFocus: showTooltip && !focusTrapActive,
|
|
109
|
+
opened: showTooltip,
|
|
110
|
+
step: displayStepIndex
|
|
111
|
+
});
|
|
112
|
+
const tooltipMergedRef = (0, _mantine_hooks.useMergedRef)(floatingRefs.setFloating, autoFocusRef);
|
|
113
|
+
const getStyles = require_use_styles.useStyles({
|
|
114
|
+
name: "Tour",
|
|
115
|
+
classes: require_Tour_module.default,
|
|
116
|
+
props,
|
|
117
|
+
className,
|
|
118
|
+
style,
|
|
119
|
+
classNames,
|
|
120
|
+
styles,
|
|
121
|
+
unstyled,
|
|
122
|
+
attributes,
|
|
123
|
+
vars,
|
|
124
|
+
varsResolver
|
|
125
|
+
});
|
|
126
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tour_context.TourProvider, {
|
|
127
|
+
value: {
|
|
128
|
+
getStyles,
|
|
129
|
+
step: displayStepIndex,
|
|
130
|
+
setStep,
|
|
131
|
+
stepsCount: steps.length,
|
|
132
|
+
close,
|
|
133
|
+
withOverlay: !!resolvedWithOverlay,
|
|
134
|
+
withOverlayInteraction,
|
|
135
|
+
withCloseButton,
|
|
136
|
+
spotlightPadding: resolvedSpotlightPadding,
|
|
137
|
+
spotlightRadius: resolvedSpotlightRadius,
|
|
138
|
+
closeOnOverlayClick,
|
|
139
|
+
transitionProps,
|
|
140
|
+
color,
|
|
141
|
+
labels,
|
|
142
|
+
titleId,
|
|
143
|
+
bodyId,
|
|
144
|
+
titleMounted,
|
|
145
|
+
bodyMounted,
|
|
146
|
+
registerTitle,
|
|
147
|
+
registerBody,
|
|
148
|
+
setTargetElement: noop
|
|
149
|
+
},
|
|
150
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_OptionalPortal.OptionalPortal, {
|
|
151
|
+
...portalProps,
|
|
152
|
+
withinPortal,
|
|
153
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, {
|
|
154
|
+
...getStyles("root"),
|
|
155
|
+
...others,
|
|
156
|
+
children: [
|
|
157
|
+
resolvedWithOverlay && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Transition.Transition, {
|
|
158
|
+
mounted: showTooltip,
|
|
159
|
+
duration: transitionProps?.duration ?? 200,
|
|
160
|
+
transition: "fade",
|
|
161
|
+
children: (overlayStyles) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
162
|
+
...getStyles("overlay"),
|
|
163
|
+
role: "presentation",
|
|
164
|
+
width: "100%",
|
|
165
|
+
height: "100%",
|
|
166
|
+
style: overlayStyles,
|
|
167
|
+
"data-with-overlay-interaction": withOverlayInteraction || void 0,
|
|
168
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
169
|
+
onClick: () => {
|
|
170
|
+
if (closeOnOverlayClick) close();
|
|
171
|
+
},
|
|
172
|
+
children: [
|
|
173
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("mask", {
|
|
174
|
+
id: maskId,
|
|
175
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
|
|
176
|
+
x: "0",
|
|
177
|
+
y: "0",
|
|
178
|
+
width: "100%",
|
|
179
|
+
height: "100%",
|
|
180
|
+
fill: "white"
|
|
181
|
+
}), targetRect && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
|
|
182
|
+
x: targetRect.left - resolvedSpotlightPadding,
|
|
183
|
+
y: targetRect.top - resolvedSpotlightPadding,
|
|
184
|
+
width: targetRect.width + resolvedSpotlightPadding * 2,
|
|
185
|
+
height: targetRect.height + resolvedSpotlightPadding * 2,
|
|
186
|
+
rx: resolvedSpotlightRadius,
|
|
187
|
+
ry: resolvedSpotlightRadius,
|
|
188
|
+
fill: "black",
|
|
189
|
+
...getStyles("spotlight", { style: stepMoving ? { transition: "all 150ms ease" } : void 0 })
|
|
190
|
+
})]
|
|
191
|
+
}) }),
|
|
192
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
|
|
193
|
+
x: "0",
|
|
194
|
+
y: "0",
|
|
195
|
+
width: "100%",
|
|
196
|
+
height: "100%",
|
|
197
|
+
style: { fill: "var(--tour-overlay-color)" },
|
|
198
|
+
mask: `url(#${maskId})`
|
|
199
|
+
}),
|
|
200
|
+
withOverlayInteraction && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
201
|
+
d: require_get_overlay_hit_path.getOverlayHitPath(targetRect, resolvedSpotlightPadding, resolvedSpotlightRadius),
|
|
202
|
+
fillRule: "evenodd",
|
|
203
|
+
fill: "transparent",
|
|
204
|
+
style: { pointerEvents: "auto" }
|
|
205
|
+
})
|
|
206
|
+
]
|
|
207
|
+
})
|
|
208
|
+
}),
|
|
209
|
+
active && mode === "beacon" && beaconOpenStep === null && steps.map((stepData, index) => {
|
|
210
|
+
if (stepData.withBeacon === false) return null;
|
|
211
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourBeaconPositioned.TourBeaconPositioned, {
|
|
212
|
+
target: stepData.target,
|
|
213
|
+
onClick: () => {
|
|
214
|
+
beaconToFocusRef.current = index;
|
|
215
|
+
openBeaconStep(index);
|
|
216
|
+
},
|
|
217
|
+
ariaLabel: getBeaconLabel(labels.beacon, stepData.title),
|
|
218
|
+
withInitialFocus: beaconToFocusRef.current === index,
|
|
219
|
+
onInitialFocus: () => {
|
|
220
|
+
beaconToFocusRef.current = null;
|
|
221
|
+
},
|
|
222
|
+
pulseStyles: getStyles("beaconPulse"),
|
|
223
|
+
...getStyles("beacon")
|
|
224
|
+
}, index);
|
|
225
|
+
}),
|
|
226
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Transition.Transition, {
|
|
227
|
+
mounted: showTooltip && !!displayStep,
|
|
228
|
+
duration: transitionProps?.duration ?? 200,
|
|
229
|
+
transition: transitionProps?.transition ?? "pop",
|
|
230
|
+
onExited: clearExitedTarget,
|
|
231
|
+
timingFunction: transitionProps?.timingFunction,
|
|
232
|
+
children: ({ transitionProperty, transitionDuration, transitionTimingFunction, ...transitionStyles }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FocusTrap.FocusTrap, {
|
|
233
|
+
active: focusTrapActive,
|
|
234
|
+
innerRef: tooltipMergedRef,
|
|
235
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, {
|
|
236
|
+
...getStyles("tooltip"),
|
|
237
|
+
role: "dialog",
|
|
238
|
+
tabIndex: -1,
|
|
239
|
+
"aria-labelledby": titleMounted ? titleId : void 0,
|
|
240
|
+
"aria-label": titleMounted ? void 0 : labels.stepCounter(displayStepIndex + 1, steps.length),
|
|
241
|
+
"aria-describedby": bodyMounted ? bodyId : void 0,
|
|
242
|
+
"data-centered": isCentered || void 0,
|
|
243
|
+
style: {
|
|
244
|
+
...getStyles("tooltip").style,
|
|
245
|
+
...isCentered ? {} : floatingStyles,
|
|
246
|
+
...transitionStyles,
|
|
247
|
+
width: isCentered ? maxWidth : constrainedWidth,
|
|
248
|
+
transition: [...transitionProperty ? transitionProperty.split(",").map((prop) => `${prop.trim()} ${transitionDuration} ${transitionTimingFunction || "ease"}`) : [], ...stepMoving ? [
|
|
249
|
+
"top",
|
|
250
|
+
"left",
|
|
251
|
+
"translate"
|
|
252
|
+
].map((prop) => `${prop} ${stepTransitionDuration}ms cubic-bezier(0.16, 1, 0.3, 1)`) : []].join(", ")
|
|
253
|
+
},
|
|
254
|
+
children: [
|
|
255
|
+
focusTrapActive && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FocusTrap.FocusTrap.InitialFocus, {}),
|
|
256
|
+
withCloseButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourCloseButton.TourCloseButton, {}),
|
|
257
|
+
displayStep?.title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourTitle.TourTitle, { children: displayStep.title }),
|
|
258
|
+
displayStep?.children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourBody.TourBody, { children: displayStep.children }),
|
|
259
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TourNavigation.TourNavigation, {})
|
|
260
|
+
]
|
|
261
|
+
})
|
|
262
|
+
})
|
|
263
|
+
})
|
|
264
|
+
]
|
|
265
|
+
})
|
|
266
|
+
})
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
Tour.classes = require_Tour_module.default;
|
|
270
|
+
Tour.displayName = "@mantine/core/Tour";
|
|
271
|
+
Tour.Root = require_TourRoot.TourRoot;
|
|
272
|
+
Tour.Step = require_TourStep.TourStep;
|
|
273
|
+
Tour.Overlay = require_TourOverlay.TourOverlay;
|
|
274
|
+
Tour.Tooltip = require_TourTooltip.TourTooltip;
|
|
275
|
+
Tour.Title = require_TourTitle.TourTitle;
|
|
276
|
+
Tour.Body = require_TourBody.TourBody;
|
|
277
|
+
Tour.CloseButton = require_TourCloseButton.TourCloseButton;
|
|
278
|
+
Tour.Navigation = require_TourNavigation.TourNavigation;
|
|
279
|
+
Tour.Beacon = require_TourBeacon.TourBeacon;
|
|
280
|
+
//#endregion
|
|
281
|
+
exports.Tour = Tour;
|
|
282
|
+
|
|
283
|
+
//# sourceMappingURL=Tour.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tour.cjs","names":["createVarsResolver","getThemeColor","getShadow","factory","useProps","defaultLabels","useId","useState","useRef","useTour","TourStep","useTooltipAutoFocus","useMergedRef","useStyles","TourProvider","OptionalPortal","Box","Transition","getOverlayHitPath","TourBeaconPositioned","FocusTrap","TourCloseButton","TourTitle","TourBody","TourNavigation","classes","TourRoot","TourOverlay","TourTooltip","TourBeacon"],"sources":["../../../src/components/Tour/Tour.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getShadow,\n getThemeColor,\n MantineColor,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { FocusTrap } from '../FocusTrap';\nimport { OptionalPortal, type PortalProps } from '../Portal';\nimport { Transition, type TransitionOverride } from '../Transition';\nimport { getOverlayHitPath } from './get-overlay-hit-path';\nimport { defaultLabels, TourLabels, TourProvider } from './Tour.context';\nimport { TourBeacon, type TourBeaconProps } from './TourBeacon/TourBeacon';\nimport { TourBeaconPositioned } from './TourBeaconPositioned';\nimport { TourBody, type TourBodyProps } from './TourBody/TourBody';\nimport { TourCloseButton, type TourCloseButtonProps } from './TourCloseButton/TourCloseButton';\nimport { TourNavigation, type TourNavigationProps } from './TourNavigation/TourNavigation';\nimport { TourOverlay, type TourOverlayProps } from './TourOverlay/TourOverlay';\nimport { TourRoot, type TourRootProps } from './TourRoot/TourRoot';\nimport { TourStep, type TourStepProps } from './TourStep/TourStep';\nimport { TourTitle, type TourTitleProps } from './TourTitle/TourTitle';\nimport { TourTooltip, type TourTooltipProps } from './TourTooltip/TourTooltip';\nimport { useTooltipAutoFocus } from './use-tooltip-auto-focus';\nimport { useTour } from './use-tour';\nimport classes from './Tour.module.css';\n\nexport type TourStylesNames =\n | 'root'\n | 'overlay'\n | 'spotlight'\n | 'tooltip'\n | 'title'\n | 'body'\n | 'navigation'\n | 'closeButton'\n | 'stepCounter'\n | 'beacon'\n | 'beaconPulse'\n | 'navigationButton';\n\nexport type TourCssVariables = {\n root:\n | '--tour-z-index'\n | '--tour-overlay-color'\n | '--tour-tooltip-radius'\n | '--tour-tooltip-shadow'\n | '--tour-beacon-size'\n | '--tour-beacon-color'\n | '--tour-color';\n};\n\nexport interface TourProps extends BoxProps, StylesApiProps<TourFactory>, ElementProps<'div'> {\n /** Whether the tour is active @default false */\n active?: boolean;\n\n /** Called when the tour is closed */\n onClose?: () => void;\n\n /** Controlled current step index */\n step?: number;\n\n /** Uncontrolled default step index @default 0 */\n defaultStep?: number;\n\n /** Called when step changes */\n onStepChange?: (step: number) => void;\n\n /** Called when a step opens */\n onStepOpen?: (step: number) => void;\n\n /** Called when a step closes */\n onStepClose?: (step: number) => void;\n\n /** Tour mode @default \"guided\" */\n mode?: 'guided' | 'beacon';\n\n /** Whether to display the overlay @default true */\n withOverlay?: boolean;\n\n /** Whether pointer events pass through the spotlight cutout to the target element, the rest of the overlay keeps blocking clicks @default false */\n withOverlayInteraction?: boolean;\n\n /** Whether to display the close button @default true */\n withCloseButton?: boolean;\n\n /** Whether keyboard navigation is enabled in guided mode @default true */\n withKeyboardNavigation?: boolean;\n\n /** Whether to scroll target elements into view @default true */\n withScrollIntoView?: boolean;\n\n /** Custom scroll handler */\n scrollToHandler?: (element: HTMLElement) => void;\n\n /** Padding around the spotlight cutout in px @default 8 */\n spotlightPadding?: number;\n\n /** Border radius of the spotlight cutout in px @default 4 */\n spotlightRadius?: number;\n\n /** Whether pressing Escape closes the tour @default true */\n closeOnEscape?: boolean;\n\n /** Whether clicking the overlay closes the tour, with `withOverlayInteraction` only clicks outside the spotlight cutout close it @default false */\n closeOnOverlayClick?: boolean;\n\n /** Labels for tour UI elements */\n labels?: Partial<TourLabels>;\n\n /** Whether to render inside a portal @default true */\n withinPortal?: boolean;\n\n /** Props passed to the Portal component */\n portalProps?: Omit<PortalProps, 'children'>;\n\n /** z-index of the tour @default 10000 */\n zIndex?: string | number;\n\n /** Transition props for the tooltip @default { duration: 200, transition: 'pop' } */\n transitionProps?: TransitionOverride;\n\n /** Duration of the tooltip position transition between steps in ms @default 300 */\n stepTransitionDuration?: number;\n\n /** Max width of the tooltip, tooltip always takes this width if viewport allows @default 360 */\n maxWidth?: number;\n\n /** Tour step overlay color @default \"rgba(0, 0, 0, 0.5)\" */\n overlayColor?: string;\n\n /** Key of `theme.colors` or any valid CSS color, controls beacon color and `Tour.Navigation` next button color @default theme.primaryColor */\n color?: MantineColor;\n\n /** Key of `theme.shadows` or any valid CSS box-shadow value, controls the tooltip shadow @default 'md' */\n tooltipShadow?: string;\n\n /** Tour steps – `Tour.Step` elements must be direct children (arrays are supported, Fragments and wrapper components are not) */\n children?: React.ReactNode;\n}\n\nexport type TourFactory = Factory<{\n props: TourProps;\n ref: HTMLDivElement;\n stylesNames: TourStylesNames;\n vars: TourCssVariables;\n staticComponents: {\n Root: typeof TourRoot;\n Step: typeof TourStep;\n Overlay: typeof TourOverlay;\n Tooltip: typeof TourTooltip;\n Title: typeof TourTitle;\n Body: typeof TourBody;\n Navigation: typeof TourNavigation;\n Beacon: typeof TourBeacon;\n CloseButton: typeof TourCloseButton;\n };\n}>;\n\nconst defaultProps = {\n active: false,\n mode: 'guided',\n withOverlay: true,\n withOverlayInteraction: false,\n withCloseButton: true,\n withKeyboardNavigation: true,\n withScrollIntoView: true,\n spotlightPadding: 8,\n closeOnEscape: true,\n closeOnOverlayClick: false,\n withinPortal: true,\n zIndex: 10000,\n transitionProps: { duration: 200, transition: 'pop' },\n maxWidth: 360,\n stepTransitionDuration: 300,\n overlayColor: 'rgba(0, 0, 0, 0.5)',\n} satisfies Partial<TourProps>;\n\nconst varsResolver = createVarsResolver<TourFactory>(\n (theme, { zIndex, overlayColor, tooltipShadow, color }) => ({\n root: {\n '--tour-color': color ? getThemeColor(color, theme) : undefined,\n '--tour-z-index': zIndex?.toString(),\n '--tour-overlay-color': overlayColor,\n '--tour-tooltip-radius': undefined,\n '--tour-tooltip-shadow': getShadow(tooltipShadow),\n '--tour-beacon-size': undefined,\n '--tour-beacon-color': undefined,\n },\n })\n);\n\nconst noop = () => {};\n\nfunction getBeaconLabel(label: string, title: React.ReactNode) {\n return typeof title === 'string' || typeof title === 'number' ? `${label}: ${title}` : label;\n}\n\nexport const Tour = factory<TourFactory>((_props) => {\n const props = useProps('Tour', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n active,\n onClose,\n step: stepProp,\n defaultStep,\n onStepChange,\n onStepOpen,\n onStepClose,\n mode,\n withOverlay,\n withOverlayInteraction,\n withCloseButton,\n withKeyboardNavigation,\n withScrollIntoView,\n scrollToHandler,\n spotlightPadding,\n spotlightRadius,\n closeOnEscape,\n closeOnOverlayClick,\n labels: labelsProp,\n withinPortal,\n portalProps,\n zIndex,\n transitionProps,\n stepTransitionDuration,\n maxWidth,\n overlayColor,\n tooltipShadow,\n color,\n children,\n attributes,\n ...others\n } = props;\n\n const labels: TourLabels = { ...defaultLabels, ...labelsProp };\n const spotlightPaddingValue = spotlightPadding!;\n const id = useId();\n const maskId = `${id}-mask`;\n const [registeredTitleId, registerTitle] = useState<string | null>(null);\n const [registeredBodyId, registerBody] = useState<string | null>(null);\n const titleId = registeredTitleId ?? `${id}-title`;\n const bodyId = registeredBodyId ?? `${id}-body`;\n const titleMounted = registeredTitleId !== null;\n const bodyMounted = registeredBodyId !== null;\n const beaconToFocusRef = useRef<number | null>(null);\n\n const {\n steps,\n setStep,\n beaconOpenStep,\n openBeaconStep,\n close,\n displayStep,\n displayStepIndex,\n targetRect,\n floatingStyles,\n floatingRefs,\n isCentered,\n constrainedWidth,\n stepMoving,\n showTooltip,\n clearExitedTarget,\n } = useTour({\n active,\n onClose,\n step: stepProp,\n defaultStep,\n onStepChange,\n onStepOpen,\n onStepClose,\n mode,\n withKeyboardNavigation,\n withScrollIntoView,\n scrollToHandler,\n closeOnEscape,\n maxWidth,\n stepTransitionDuration,\n children,\n stepComponent: TourStep,\n });\n\n useEffect(() => {\n if (!active) {\n beaconToFocusRef.current = null;\n }\n }, [active]);\n\n const resolvedSpotlightPadding = displayStep?.spotlightPadding ?? spotlightPaddingValue;\n const resolvedSpotlightRadius = displayStep?.spotlightRadius ?? spotlightRadius ?? 4;\n const resolvedWithOverlay = displayStep?.withOverlay ?? withOverlay;\n const focusTrapActive =\n showTooltip && mode === 'guided' && !!resolvedWithOverlay && !withOverlayInteraction;\n\n const autoFocusRef = useTooltipAutoFocus({\n autoFocus: showTooltip && !focusTrapActive,\n opened: showTooltip,\n step: displayStepIndex,\n });\n const tooltipMergedRef = useMergedRef(floatingRefs.setFloating, autoFocusRef);\n\n const getStyles = useStyles<TourFactory>({\n name: 'Tour',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n return (\n <TourProvider\n value={{\n getStyles,\n step: displayStepIndex,\n setStep,\n stepsCount: steps.length,\n close,\n withOverlay: !!resolvedWithOverlay,\n withOverlayInteraction: withOverlayInteraction!,\n withCloseButton: withCloseButton!,\n spotlightPadding: resolvedSpotlightPadding,\n spotlightRadius: resolvedSpotlightRadius,\n closeOnOverlayClick: closeOnOverlayClick!,\n transitionProps,\n color,\n labels,\n titleId,\n bodyId,\n titleMounted,\n bodyMounted,\n registerTitle,\n registerBody,\n setTargetElement: noop,\n }}\n >\n <OptionalPortal {...portalProps} withinPortal={withinPortal}>\n <Box {...getStyles('root')} {...others}>\n {resolvedWithOverlay && (\n <Transition\n mounted={showTooltip}\n duration={transitionProps?.duration ?? 200}\n transition=\"fade\"\n >\n {(overlayStyles) => (\n <svg\n {...getStyles('overlay')}\n role=\"presentation\"\n width=\"100%\"\n height=\"100%\"\n style={overlayStyles}\n data-with-overlay-interaction={withOverlayInteraction || undefined}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (closeOnOverlayClick) {\n close();\n }\n }}\n >\n <defs>\n <mask id={maskId}>\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"white\" />\n {targetRect && (\n <rect\n x={targetRect.left - resolvedSpotlightPadding}\n y={targetRect.top - resolvedSpotlightPadding}\n width={targetRect.width + resolvedSpotlightPadding * 2}\n height={targetRect.height + resolvedSpotlightPadding * 2}\n rx={resolvedSpotlightRadius}\n ry={resolvedSpotlightRadius}\n fill=\"black\"\n {...getStyles('spotlight', {\n style: stepMoving ? { transition: 'all 150ms ease' } : undefined,\n })}\n />\n )}\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n style={{ fill: 'var(--tour-overlay-color)' }}\n mask={`url(#${maskId})`}\n />\n {withOverlayInteraction && (\n <path\n d={getOverlayHitPath(\n targetRect,\n resolvedSpotlightPadding,\n resolvedSpotlightRadius\n )}\n fillRule=\"evenodd\"\n fill=\"transparent\"\n style={{ pointerEvents: 'auto' }}\n />\n )}\n </svg>\n )}\n </Transition>\n )}\n\n {active &&\n mode === 'beacon' &&\n beaconOpenStep === null &&\n steps.map((stepData, index) => {\n if (stepData.withBeacon === false) {\n return null;\n }\n return (\n <TourBeaconPositioned\n key={index}\n target={stepData.target}\n onClick={() => {\n beaconToFocusRef.current = index;\n openBeaconStep(index);\n }}\n ariaLabel={getBeaconLabel(labels.beacon, stepData.title)}\n withInitialFocus={beaconToFocusRef.current === index}\n onInitialFocus={() => {\n beaconToFocusRef.current = null;\n }}\n pulseStyles={getStyles('beaconPulse')}\n {...getStyles('beacon')}\n />\n );\n })}\n\n <Transition\n mounted={showTooltip && !!displayStep}\n duration={transitionProps?.duration ?? 200}\n transition={transitionProps?.transition ?? 'pop'}\n onExited={clearExitedTarget}\n timingFunction={transitionProps?.timingFunction}\n >\n {({\n transitionProperty,\n transitionDuration,\n transitionTimingFunction,\n ...transitionStyles\n }) => (\n <FocusTrap active={focusTrapActive} innerRef={tooltipMergedRef}>\n <Box\n {...getStyles('tooltip')}\n role=\"dialog\"\n tabIndex={-1}\n aria-labelledby={titleMounted ? titleId : undefined}\n aria-label={\n titleMounted\n ? undefined\n : labels.stepCounter(displayStepIndex + 1, steps.length)\n }\n aria-describedby={bodyMounted ? bodyId : undefined}\n data-centered={isCentered || undefined}\n style={{\n ...getStyles('tooltip').style,\n ...(isCentered ? {} : floatingStyles),\n ...transitionStyles,\n width: isCentered ? maxWidth : constrainedWidth,\n transition: [\n ...(transitionProperty\n ? transitionProperty\n .split(',')\n .map(\n (prop: string) =>\n `${prop.trim()} ${transitionDuration} ${transitionTimingFunction || 'ease'}`\n )\n : []),\n ...(stepMoving\n ? ['top', 'left', 'translate'].map(\n (prop) =>\n `${prop} ${stepTransitionDuration}ms cubic-bezier(0.16, 1, 0.3, 1)`\n )\n : []),\n ].join(', '),\n }}\n >\n {focusTrapActive && <FocusTrap.InitialFocus />}\n {withCloseButton && <TourCloseButton />}\n {displayStep?.title && <TourTitle>{displayStep.title}</TourTitle>}\n {displayStep?.children && <TourBody>{displayStep.children}</TourBody>}\n <TourNavigation />\n </Box>\n </FocusTrap>\n )}\n </Transition>\n </Box>\n </OptionalPortal>\n </TourProvider>\n );\n});\n\nTour.classes = classes;\nTour.displayName = '@mantine/core/Tour';\nTour.Root = TourRoot;\nTour.Step = TourStep;\nTour.Overlay = TourOverlay;\nTour.Tooltip = TourTooltip;\nTour.Title = TourTitle;\nTour.Body = TourBody;\nTour.CloseButton = TourCloseButton;\nTour.Navigation = TourNavigation;\nTour.Beacon = TourBeacon;\n\nexport namespace Tour {\n export type Props = TourProps;\n export type StylesNames = TourStylesNames;\n export type CssVariables = TourCssVariables;\n export type Factory = TourFactory;\n\n export namespace Root {\n export type Props = TourRootProps;\n }\n\n export namespace Step {\n export type Props = TourStepProps;\n }\n\n export namespace Overlay {\n export type Props = TourOverlayProps;\n }\n\n export namespace Tooltip {\n export type Props = TourTooltipProps;\n }\n\n export namespace Title {\n export type Props = TourTitleProps;\n }\n\n export namespace Body {\n export type Props = TourBodyProps;\n }\n\n export namespace CloseButton {\n export type Props = TourCloseButtonProps;\n }\n\n export namespace Navigation {\n export type Props = TourNavigationProps;\n }\n\n export namespace Beacon {\n export type Props = TourBeaconProps;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
let react = require("react");
|
|
3
|
+
//#region packages/@mantine/core/src/components/Tour/Tour.context.ts
|
|
4
|
+
const defaultLabels = {
|
|
5
|
+
skip: "Skip",
|
|
6
|
+
back: "Back",
|
|
7
|
+
next: "Next",
|
|
8
|
+
close: "Close",
|
|
9
|
+
stepCounter: (current, total) => `${current} of ${total}`,
|
|
10
|
+
beacon: "Start tour"
|
|
11
|
+
};
|
|
12
|
+
const TourContext = (0, react.createContext)(null);
|
|
13
|
+
function useTourContext() {
|
|
14
|
+
const ctx = (0, react.use)(TourContext);
|
|
15
|
+
if (ctx === null) throw new Error("Tour component was not found in tree");
|
|
16
|
+
return ctx;
|
|
17
|
+
}
|
|
18
|
+
const TourProvider = TourContext.Provider;
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.TourContext = TourContext;
|
|
21
|
+
exports.TourProvider = TourProvider;
|
|
22
|
+
exports.defaultLabels = defaultLabels;
|
|
23
|
+
exports.useTourContext = useTourContext;
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=Tour.context.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tour.context.cjs","names":["createContext","use"],"sources":["../../../src/components/Tour/Tour.context.ts"],"sourcesContent":["import { createContext, use } from 'react';\nimport type { GetStylesApi, MantineColor } from '../../core';\nimport type { TransitionOverride } from '../Transition';\nimport type { TourFactory } from './Tour';\nimport type { TourRootFactory } from './TourRoot/TourRoot';\n\nexport interface TourLabels {\n /** Label for the skip button @default \"Skip\" */\n skip: string;\n\n /** Label for the back button @default \"Back\" */\n back: string;\n\n /** Label for the next button @default \"Next\" */\n next: string;\n\n /** Label for the close/finish button @default \"Close\" */\n close: string;\n\n /** Function that returns step counter text @default (current, total) => `${current} of ${total}` */\n stepCounter: (current: number, total: number) => string;\n\n /** Label for the beacon button, the step title is appended when it is a string @default \"Start tour\" */\n beacon: string;\n}\n\nexport const defaultLabels: TourLabels = {\n skip: 'Skip',\n back: 'Back',\n next: 'Next',\n close: 'Close',\n stepCounter: (current, total) => `${current} of ${total}`,\n beacon: 'Start tour',\n};\n\nexport interface TourContextValue {\n /** Returns styles for the given selector */\n getStyles: GetStylesApi<TourFactory & TourRootFactory>;\n\n /** Current active step index */\n step: number;\n\n /** Sets the active step index */\n setStep: (step: number) => void;\n\n /** Total number of steps */\n stepsCount: number;\n\n /** Closes the tour */\n close: () => void;\n\n /** Whether `Tour.Overlay` is rendered */\n withOverlay: boolean;\n\n /** Whether pointer events pass through the spotlight cutout to the target element */\n withOverlayInteraction: boolean;\n\n /** Whether `Tour.CloseButton` is rendered */\n withCloseButton: boolean;\n\n /** Key of `theme.colors` or any valid CSS color passed to `Tour.Navigation` next button */\n color?: MantineColor;\n\n /** Padding around the spotlight cutout in px */\n spotlightPadding: number;\n\n /** Border radius of the spotlight cutout in px */\n spotlightRadius: number;\n\n /** Whether clicking the overlay closes the tour */\n closeOnOverlayClick: boolean;\n\n /** Default transition props of `Tour.Tooltip` */\n transitionProps: TransitionOverride | undefined;\n\n /** Labels for tour UI elements */\n labels: TourLabels;\n\n /** Id of the mounted `Tour.Title` (or the generated fallback), referenced by the tooltip `aria-labelledby` */\n titleId: string;\n\n /** Id of the mounted `Tour.Body` (or the generated fallback), referenced by the tooltip `aria-describedby` */\n bodyId: string;\n\n /** Whether `Tour.Title` is currently mounted */\n titleMounted: boolean;\n\n /** Whether `Tour.Body` is currently mounted */\n bodyMounted: boolean;\n\n /** Registers the id of the mounted `Tour.Title`, `null` when it unmounts */\n registerTitle: (id: string | null) => void;\n\n /** Registers the id of the mounted `Tour.Body`, `null` when it unmounts */\n registerBody: (id: string | null) => void;\n\n /** Registers the current step target element, used to skip arrow hotkeys fired from inside it */\n setTargetElement: (element: HTMLElement | null) => void;\n}\n\nexport const TourContext = createContext<TourContextValue | null>(null);\n\nexport function useTourContext() {\n const ctx = use(TourContext);\n\n if (ctx === null) {\n throw new Error('Tour component was not found in tree');\n }\n\n return ctx;\n}\n\nexport const TourProvider = TourContext.Provider;\n"],"mappings":";;;AA0BA,MAAa,gBAA4B;CACvC,MAAM;CACN,MAAM;CACN,MAAM;CACN,OAAO;CACP,cAAc,SAAS,UAAU,GAAG,QAAQ,MAAM;CAClD,QAAQ;AACV;AAmEA,MAAa,eAAA,GAAcA,MAAAA,cAAAA,CAAuC,IAAI;AAEtE,SAAgB,iBAAiB;CAC/B,MAAM,OAAA,GAAMC,MAAAA,IAAAA,CAAI,WAAW;CAE3B,IAAI,QAAQ,MACV,MAAM,IAAI,MAAM,sCAAsC;CAGxD,OAAO;AACT;AAEA,MAAa,eAAe,YAAY"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/core/src/components/Tour/Tour.module.css
|
|
3
|
+
var Tour_module_default = {
|
|
4
|
+
"root": "m_23880f17",
|
|
5
|
+
"overlay": "m_43070dfb",
|
|
6
|
+
"tooltip": "m_401e99ae",
|
|
7
|
+
"title": "m_4d935ac3",
|
|
8
|
+
"body": "m_2380c7d7",
|
|
9
|
+
"navigation": "m_f5605c89",
|
|
10
|
+
"closeButton": "m_324c9375",
|
|
11
|
+
"stepCounter": "m_66c6e5bb",
|
|
12
|
+
"beacon": "m_45dfa139",
|
|
13
|
+
"beaconPulse": "m_af9f65e0",
|
|
14
|
+
"tour-beacon-pulse": "m_b83bf210"
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.default = Tour_module_default;
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=Tour.module.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tour.module.cjs","names":[],"sources":["../../../src/components/Tour/Tour.module.css"],"sourcesContent":[".root {\n position: fixed;\n inset: 0;\n pointer-events: none;\n z-index: var(--tour-z-index);\n}\n\n.overlay {\n position: fixed;\n inset: 0;\n pointer-events: auto;\n\n &:where([data-with-overlay-interaction]) {\n pointer-events: none;\n }\n}\n\n.tooltip {\n position: absolute;\n pointer-events: auto;\n padding: var(--mantine-spacing-md);\n border-radius: var(--tour-tooltip-radius, var(--mantine-radius-default));\n box-shadow: var(--tour-tooltip-shadow, var(--mantine-shadow-md));\n z-index: 1;\n box-sizing: border-box;\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border: 1px solid var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-7);\n border: 1px solid var(--mantine-color-dark-4);\n }\n\n &:where([data-centered]) {\n position: fixed;\n top: 50%;\n left: 50%;\n translate: -50% -50%;\n max-width: calc(100% - 16px);\n }\n}\n\n.title {\n margin: 0;\n font-weight: 600;\n font-size: var(--mantine-font-size-md);\n line-height: 1.4;\n margin-bottom: var(--mantine-spacing-xs);\n}\n\n.body {\n font-size: var(--mantine-font-size-sm);\n line-height: 1.55;\n}\n\n.navigation {\n margin-top: var(--mantine-spacing-md);\n}\n\n.closeButton {\n position: absolute;\n top: var(--mantine-spacing-xs);\n right: var(--mantine-spacing-xs);\n\n /* stylelint-disable-next-line selector-type-no-unknown */\n :where([dir='rtl']) & {\n right: auto;\n left: var(--mantine-spacing-xs);\n }\n}\n\n.stepCounter {\n font-size: var(--mantine-font-size-sm);\n\n @mixin where-light {\n color: var(--mantine-color-gray-6);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-2);\n }\n}\n\n.beacon {\n position: absolute;\n pointer-events: auto;\n width: var(--tour-beacon-size, 12px);\n height: var(--tour-beacon-size, 12px);\n border-radius: 50%;\n background-color: var(\n --tour-beacon-color,\n var(--tour-color, var(--mantine-primary-color-filled))\n );\n border: 0;\n padding: 0;\n cursor: pointer;\n z-index: 1;\n}\n\n.beaconPulse {\n position: absolute;\n inset: calc(var(--tour-beacon-size, 12px) * -0.35);\n border-radius: 50%;\n background-color: var(\n --tour-beacon-color,\n var(--tour-color, var(--mantine-primary-color-filled))\n );\n opacity: 0.3;\n animation: tour-beacon-pulse 1.5s ease-in-out infinite;\n}\n\n@keyframes tour-beacon-pulse {\n 0%,\n 100% {\n transform: scale(0.8);\n opacity: 0.3;\n }\n\n 50% {\n transform: scale(1);\n opacity: 0;\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_use_props = require("../../../core/MantineProvider/use-props/use-props.cjs");
|
|
3
|
+
const require_factory = require("../../../core/factory/factory.cjs");
|
|
4
|
+
const require_DirectionProvider = require("../../../core/DirectionProvider/DirectionProvider.cjs");
|
|
5
|
+
const require_UnstyledButton = require("../../UnstyledButton/UnstyledButton.cjs");
|
|
6
|
+
const require_get_floating_position = require("../../../utils/Floating/get-floating-position/get-floating-position.cjs");
|
|
7
|
+
const require_Tour_context = require("../Tour.context.cjs");
|
|
8
|
+
const require_press_aware_auto_update = require("../press-aware-auto-update.cjs");
|
|
9
|
+
const require_use_target_rect = require("../use-target-rect.cjs");
|
|
10
|
+
const require_Tour_module = require("../Tour.module.cjs");
|
|
11
|
+
let _mantine_hooks = require("@mantine/hooks");
|
|
12
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
13
|
+
let _floating_ui_react = require("@floating-ui/react");
|
|
14
|
+
//#region packages/@mantine/core/src/components/Tour/TourBeacon/TourBeacon.tsx
|
|
15
|
+
const defaultProps = {};
|
|
16
|
+
const TourBeacon = require_factory.factory((_props) => {
|
|
17
|
+
const { classNames, className, style, styles, vars, target, onClick, ref, role: _role, "aria-label": ariaLabel, ...others } = require_use_props.useProps("TourBeacon", defaultProps, _props);
|
|
18
|
+
const ctx = require_Tour_context.useTourContext();
|
|
19
|
+
const { dir } = require_DirectionProvider.useDirection();
|
|
20
|
+
const element = require_use_target_rect.useTargetElement(target);
|
|
21
|
+
const { refs, floatingStyles } = (0, _floating_ui_react.useFloating)({
|
|
22
|
+
elements: { reference: element },
|
|
23
|
+
placement: require_get_floating_position.getFloatingPosition(dir, "right-start"),
|
|
24
|
+
whileElementsMounted: require_press_aware_auto_update.pressAwareAutoUpdate,
|
|
25
|
+
middleware: [(0, _floating_ui_react.offset)(8)]
|
|
26
|
+
});
|
|
27
|
+
const mergedRef = (0, _mantine_hooks.useMergedRef)(refs.setFloating, ref);
|
|
28
|
+
const beaconStyles = ctx.getStyles("beacon", {
|
|
29
|
+
className,
|
|
30
|
+
classNames,
|
|
31
|
+
style,
|
|
32
|
+
styles
|
|
33
|
+
});
|
|
34
|
+
if (!element) return null;
|
|
35
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_UnstyledButton.UnstyledButton, {
|
|
36
|
+
ref: mergedRef,
|
|
37
|
+
role: "button",
|
|
38
|
+
"aria-label": ariaLabel || ctx.labels.beacon,
|
|
39
|
+
...beaconStyles,
|
|
40
|
+
style: {
|
|
41
|
+
...beaconStyles.style,
|
|
42
|
+
...floatingStyles
|
|
43
|
+
},
|
|
44
|
+
onClick,
|
|
45
|
+
...others,
|
|
46
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { ...ctx.getStyles("beaconPulse") })
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
TourBeacon.classes = require_Tour_module.default;
|
|
50
|
+
TourBeacon.displayName = "@mantine/core/TourBeacon";
|
|
51
|
+
//#endregion
|
|
52
|
+
exports.TourBeacon = TourBeacon;
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=TourBeacon.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TourBeacon.cjs","names":["factory","useProps","useTourContext","useDirection","useTargetElement","useFloating","getFloatingPosition","pressAwareAutoUpdate","offset","useMergedRef","UnstyledButton","classes"],"sources":["../../../../src/components/Tour/TourBeacon/TourBeacon.tsx"],"sourcesContent":["import { offset, useFloating } from '@floating-ui/react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useDirection,\n useProps,\n} from '../../../core';\nimport { getFloatingPosition } from '../../../utils/Floating';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { pressAwareAutoUpdate } from '../press-aware-auto-update';\nimport { useTourContext } from '../Tour.context';\nimport { useTargetElement } from '../use-target-rect';\nimport classes from '../Tour.module.css';\n\nexport type TourBeaconStylesNames = 'beacon' | 'beaconPulse';\n\nexport interface TourBeaconProps\n extends BoxProps, CompoundStylesApiProps<TourBeaconFactory>, ElementProps<'button'> {\n /** CSS selector or ref to the target element */\n target?: string | React.RefObject<HTMLElement | null>;\n\n /** Called when the beacon is clicked */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport type TourBeaconFactory = Factory<{\n props: TourBeaconProps;\n ref: HTMLButtonElement;\n stylesNames: TourBeaconStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TourBeaconProps> = {};\n\nexport const TourBeacon = factory<TourBeaconFactory>((_props) => {\n const props = useProps('TourBeacon', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n target,\n onClick,\n ref,\n role: _role,\n 'aria-label': ariaLabel,\n ...others\n } = props;\n\n const ctx = useTourContext();\n const { dir } = useDirection();\n const element = useTargetElement(target);\n\n const { refs, floatingStyles } = useFloating({\n elements: { reference: element },\n placement: getFloatingPosition(dir, 'right-start'),\n whileElementsMounted: pressAwareAutoUpdate,\n middleware: [offset(8)],\n });\n\n const mergedRef = useMergedRef(refs.setFloating, ref);\n const beaconStyles = ctx.getStyles('beacon', { className, classNames, style, styles });\n\n if (!element) {\n return null;\n }\n\n return (\n <UnstyledButton\n ref={mergedRef}\n role=\"button\"\n aria-label={ariaLabel || ctx.labels.beacon}\n {...beaconStyles}\n style={{\n ...beaconStyles.style,\n ...floatingStyles,\n }}\n onClick={onClick}\n {...others}\n >\n <span {...ctx.getStyles('beaconPulse')} />\n </UnstyledButton>\n );\n});\n\nTourBeacon.classes = classes;\nTourBeacon.displayName = '@mantine/core/TourBeacon';\n\nexport namespace TourBeacon {\n export type Props = TourBeaconProps;\n}\n"],"mappings":";;;;;;;;;;;;;;AAoCA,MAAM,eAAyC,CAAC;AAEhD,MAAa,aAAaA,gBAAAA,SAA4B,WAAW;CAE/D,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,QACA,SACA,KACA,MAAM,OACN,cAAc,WACd,GAAG,WAZSC,kBAAAA,SAAS,cAAc,cAAc,MAa3C;CAER,MAAM,MAAMC,qBAAAA,eAAe;CAC3B,MAAM,EAAE,QAAQC,0BAAAA,aAAa;CAC7B,MAAM,UAAUC,wBAAAA,iBAAiB,MAAM;CAEvC,MAAM,EAAE,MAAM,oBAAA,GAAmBC,mBAAAA,YAAAA,CAAY;EAC3C,UAAU,EAAE,WAAW,QAAQ;EAC/B,WAAWC,8BAAAA,oBAAoB,KAAK,aAAa;EACjD,sBAAsBC,gCAAAA;EACtB,YAAY,EAAA,GAACC,mBAAAA,OAAAA,CAAO,CAAC,CAAC;CACxB,CAAC;CAED,MAAM,aAAA,GAAYC,eAAAA,aAAAA,CAAa,KAAK,aAAa,GAAG;CACpD,MAAM,eAAe,IAAI,UAAU,UAAU;EAAE;EAAW;EAAY;EAAO;CAAO,CAAC;CAErF,IAAI,CAAC,SACH,OAAO;CAGT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,gBAAD;EACE,KAAK;EACL,MAAK;EACL,cAAY,aAAa,IAAI,OAAO;EACpC,GAAI;EACJ,OAAO;GACL,GAAG,aAAa;GAChB,GAAG;EACL;EACS;EACT,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAM,GAAI,IAAI,UAAU,aAAa,EAAI,CAAA;CAC3B,CAAA;AAEpB,CAAC;AAED,WAAW,UAAUC,oBAAAA;AACrB,WAAW,cAAc"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_UnstyledButton = require("../UnstyledButton/UnstyledButton.cjs");
|
|
3
|
+
const require_press_aware_auto_update = require("./press-aware-auto-update.cjs");
|
|
4
|
+
const require_use_target_rect = require("./use-target-rect.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
let _mantine_hooks = require("@mantine/hooks");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let _floating_ui_react = require("@floating-ui/react");
|
|
9
|
+
//#region packages/@mantine/core/src/components/Tour/TourBeaconPositioned.tsx
|
|
10
|
+
function TourBeaconPositioned({ target, onClick, ariaLabel, className, style, pulseStyles, withInitialFocus, onInitialFocus }) {
|
|
11
|
+
const element = require_use_target_rect.useTargetElement(target);
|
|
12
|
+
const buttonRef = (0, react.useRef)(null);
|
|
13
|
+
const { refs, floatingStyles } = (0, _floating_ui_react.useFloating)({
|
|
14
|
+
elements: { reference: element },
|
|
15
|
+
placement: "top-end",
|
|
16
|
+
whileElementsMounted: require_press_aware_auto_update.pressAwareAutoUpdate,
|
|
17
|
+
middleware: [(0, _floating_ui_react.offset)({
|
|
18
|
+
mainAxis: -4,
|
|
19
|
+
crossAxis: -4
|
|
20
|
+
})]
|
|
21
|
+
});
|
|
22
|
+
const mergedRef = (0, _mantine_hooks.useMergedRef)(refs.setFloating, buttonRef);
|
|
23
|
+
(0, react.useEffect)(() => {
|
|
24
|
+
if (withInitialFocus && buttonRef.current) {
|
|
25
|
+
buttonRef.current.focus({ preventScroll: true });
|
|
26
|
+
onInitialFocus?.();
|
|
27
|
+
}
|
|
28
|
+
}, [withInitialFocus, element]);
|
|
29
|
+
if (!element) return null;
|
|
30
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_UnstyledButton.UnstyledButton, {
|
|
31
|
+
ref: mergedRef,
|
|
32
|
+
role: "button",
|
|
33
|
+
"aria-label": ariaLabel,
|
|
34
|
+
className,
|
|
35
|
+
style: {
|
|
36
|
+
...style,
|
|
37
|
+
...floatingStyles
|
|
38
|
+
},
|
|
39
|
+
onClick,
|
|
40
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { ...pulseStyles })
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.TourBeaconPositioned = TourBeaconPositioned;
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=TourBeaconPositioned.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TourBeaconPositioned.cjs","names":["useTargetElement","useRef","useFloating","pressAwareAutoUpdate","offset","useMergedRef","UnstyledButton"],"sources":["../../../src/components/Tour/TourBeaconPositioned.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { offset, useFloating } from '@floating-ui/react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { UnstyledButton } from '../UnstyledButton';\nimport { pressAwareAutoUpdate } from './press-aware-auto-update';\nimport { useTargetElement, type TourTarget } from './use-target-rect';\n\ninterface TourBeaconPositionedProps {\n target: TourTarget;\n onClick: () => void;\n ariaLabel: string;\n className?: string;\n style?: React.CSSProperties;\n pulseStyles?: Record<string, unknown>;\n withInitialFocus?: boolean;\n onInitialFocus?: () => void;\n}\n\nexport function TourBeaconPositioned({\n target,\n onClick,\n ariaLabel,\n className,\n style,\n pulseStyles,\n withInitialFocus,\n onInitialFocus,\n}: TourBeaconPositionedProps) {\n const element = useTargetElement(target);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const { refs, floatingStyles } = useFloating({\n elements: { reference: element },\n placement: 'top-end',\n whileElementsMounted: pressAwareAutoUpdate,\n middleware: [offset({ mainAxis: -4, crossAxis: -4 })],\n });\n\n const mergedRef = useMergedRef(refs.setFloating, buttonRef);\n\n useEffect(() => {\n if (withInitialFocus && buttonRef.current) {\n buttonRef.current.focus({ preventScroll: true });\n onInitialFocus?.();\n }\n }, [withInitialFocus, element]);\n\n if (!element) {\n return null;\n }\n\n return (\n <UnstyledButton\n ref={mergedRef}\n role=\"button\"\n aria-label={ariaLabel}\n className={className}\n style={{ ...style, ...floatingStyles }}\n onClick={onClick}\n >\n <span {...pulseStyles} />\n </UnstyledButton>\n );\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgB,qBAAqB,EACnC,QACA,SACA,WACA,WACA,OACA,aACA,kBACA,kBAC4B;CAC5B,MAAM,UAAUA,wBAAAA,iBAAiB,MAAM;CACvC,MAAM,aAAA,GAAYC,MAAAA,OAAAA,CAA0B,IAAI;CAEhD,MAAM,EAAE,MAAM,oBAAA,GAAmBC,mBAAAA,YAAAA,CAAY;EAC3C,UAAU,EAAE,WAAW,QAAQ;EAC/B,WAAW;EACX,sBAAsBC,gCAAAA;EACtB,YAAY,EAAA,GAACC,mBAAAA,OAAAA,CAAO;GAAE,UAAU;GAAI,WAAW;EAAG,CAAC,CAAC;CACtD,CAAC;CAED,MAAM,aAAA,GAAYC,eAAAA,aAAAA,CAAa,KAAK,aAAa,SAAS;CAE1D,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,oBAAoB,UAAU,SAAS;GACzC,UAAU,QAAQ,MAAM,EAAE,eAAe,KAAK,CAAC;GAC/C,iBAAiB;EACnB;CACF,GAAG,CAAC,kBAAkB,OAAO,CAAC;CAE9B,IAAI,CAAC,SACH,OAAO;CAGT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,gBAAD;EACE,KAAK;EACL,MAAK;EACL,cAAY;EACD;EACX,OAAO;GAAE,GAAG;GAAO,GAAG;EAAe;EAC5B;EAET,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAM,GAAI,YAAc,CAAA;CACV,CAAA;AAEpB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_use_props = require("../../../core/MantineProvider/use-props/use-props.cjs");
|
|
3
|
+
const require_factory = require("../../../core/factory/factory.cjs");
|
|
4
|
+
const require_Box = require("../../../core/Box/Box.cjs");
|
|
5
|
+
const require_Tour_context = require("../Tour.context.cjs");
|
|
6
|
+
const require_Tour_module = require("../Tour.module.cjs");
|
|
7
|
+
let react = require("react");
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
//#region packages/@mantine/core/src/components/Tour/TourBody/TourBody.tsx
|
|
10
|
+
const defaultProps = {};
|
|
11
|
+
const TourBody = require_factory.factory((_props) => {
|
|
12
|
+
const { children, classNames, className, style, styles, vars, id, ...others } = require_use_props.useProps("TourBody", defaultProps, _props);
|
|
13
|
+
const ctx = require_Tour_context.useTourContext();
|
|
14
|
+
const { registerBody } = ctx;
|
|
15
|
+
const resolvedId = id ?? ctx.bodyId;
|
|
16
|
+
(0, react.useEffect)(() => {
|
|
17
|
+
registerBody(resolvedId);
|
|
18
|
+
return () => registerBody(null);
|
|
19
|
+
}, [registerBody, resolvedId]);
|
|
20
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
|
|
21
|
+
id: resolvedId,
|
|
22
|
+
...ctx.getStyles("body", {
|
|
23
|
+
className,
|
|
24
|
+
classNames,
|
|
25
|
+
style,
|
|
26
|
+
styles
|
|
27
|
+
}),
|
|
28
|
+
...others,
|
|
29
|
+
children
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
TourBody.classes = require_Tour_module.default;
|
|
33
|
+
TourBody.displayName = "@mantine/core/TourBody";
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.TourBody = TourBody;
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=TourBody.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TourBody.cjs","names":["factory","useProps","useTourContext","Box","classes"],"sources":["../../../../src/components/Tour/TourBody/TourBody.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useTourContext } from '../Tour.context';\nimport classes from '../Tour.module.css';\n\nexport type TourBodyStylesNames = 'body';\n\nexport interface TourBodyProps\n extends BoxProps, CompoundStylesApiProps<TourBodyFactory>, ElementProps<'div'> {}\n\nexport type TourBodyFactory = Factory<{\n props: TourBodyProps;\n ref: HTMLDivElement;\n stylesNames: TourBodyStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TourBodyProps> = {};\n\nexport const TourBody = factory<TourBodyFactory>((_props) => {\n const props = useProps('TourBody', defaultProps, _props);\n const { children, classNames, className, style, styles, vars, id, ...others } = props;\n const ctx = useTourContext();\n const { registerBody } = ctx;\n const resolvedId = id ?? ctx.bodyId;\n\n useEffect(() => {\n registerBody(resolvedId);\n return () => registerBody(null);\n }, [registerBody, resolvedId]);\n\n return (\n <Box\n id={resolvedId}\n {...ctx.getStyles('body', { className, classNames, style, styles })}\n {...others}\n >\n {children}\n </Box>\n );\n});\n\nTourBody.classes = classes;\nTourBody.displayName = '@mantine/core/TourBody';\n\nexport namespace TourBody {\n export type Props = TourBodyProps;\n}\n"],"mappings":";;;;;;;;;AAyBA,MAAM,eAAuC,CAAC;AAE9C,MAAa,WAAWA,gBAAAA,SAA0B,WAAW;CAE3D,MAAM,EAAE,UAAU,YAAY,WAAW,OAAO,QAAQ,MAAM,IAAI,GAAG,WADvDC,kBAAAA,SAAS,YAAY,cAAc,MACmC;CACpF,MAAM,MAAMC,qBAAAA,eAAe;CAC3B,MAAM,EAAE,iBAAiB;CACzB,MAAM,aAAa,MAAM,IAAI;CAE7B,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,aAAa,UAAU;EACvB,aAAa,aAAa,IAAI;CAChC,GAAG,CAAC,cAAc,UAAU,CAAC;CAE7B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EACE,IAAI;EACJ,GAAI,IAAI,UAAU,QAAQ;GAAE;GAAW;GAAY;GAAO;EAAO,CAAC;EAClE,GAAI;EAEH;CACE,CAAA;AAET,CAAC;AAED,SAAS,UAAUC,oBAAAA;AACnB,SAAS,cAAc"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_use_props = require("../../../core/MantineProvider/use-props/use-props.cjs");
|
|
3
|
+
const require_CloseButton = require("../../CloseButton/CloseButton.cjs");
|
|
4
|
+
const require_Tour_context = require("../Tour.context.cjs");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
//#region packages/@mantine/core/src/components/Tour/TourCloseButton/TourCloseButton.tsx
|
|
7
|
+
const defaultProps = {};
|
|
8
|
+
function TourCloseButton(_props) {
|
|
9
|
+
const { onClick, ...others } = require_use_props.useProps("TourCloseButton", defaultProps, _props);
|
|
10
|
+
const ctx = require_Tour_context.useTourContext();
|
|
11
|
+
if (!ctx.withCloseButton) return null;
|
|
12
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CloseButton.CloseButton, {
|
|
13
|
+
"aria-label": ctx.labels.close,
|
|
14
|
+
...ctx.getStyles("closeButton"),
|
|
15
|
+
onClick: (event) => {
|
|
16
|
+
ctx.close();
|
|
17
|
+
onClick?.(event);
|
|
18
|
+
},
|
|
19
|
+
...others
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
TourCloseButton.displayName = "@mantine/core/TourCloseButton";
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.TourCloseButton = TourCloseButton;
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=TourCloseButton.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TourCloseButton.cjs","names":["useProps","useTourContext","CloseButton"],"sources":["../../../../src/components/Tour/TourCloseButton/TourCloseButton.tsx"],"sourcesContent":["import { useProps } from '../../../core';\nimport { CloseButton, type __CloseButtonProps } from '../../CloseButton';\nimport { useTourContext } from '../Tour.context';\n\nexport interface TourCloseButtonProps extends __CloseButtonProps {\n /** Called when the close button is clicked */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst defaultProps: Partial<TourCloseButtonProps> = {};\n\nexport function TourCloseButton(_props: TourCloseButtonProps) {\n const props = useProps('TourCloseButton', defaultProps, _props);\n const { onClick, ...others } = props;\n const ctx = useTourContext();\n\n if (!ctx.withCloseButton) {\n return null;\n }\n\n return (\n <CloseButton\n aria-label={ctx.labels.close}\n {...ctx.getStyles('closeButton')}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n ctx.close();\n onClick?.(event);\n }}\n {...others}\n />\n );\n}\n\nTourCloseButton.displayName = '@mantine/core/TourCloseButton';\n\nexport namespace TourCloseButton {\n export type Props = TourCloseButtonProps;\n}\n"],"mappings":";;;;;;AASA,MAAM,eAA8C,CAAC;AAErD,SAAgB,gBAAgB,QAA8B;CAE5D,MAAM,EAAE,SAAS,GAAG,WADNA,kBAAAA,SAAS,mBAAmB,cAAc,MACrB;CACnC,MAAM,MAAMC,qBAAAA,eAAe;CAE3B,IAAI,CAAC,IAAI,iBACP,OAAO;CAGT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,aAAD;EACE,cAAY,IAAI,OAAO;EACvB,GAAI,IAAI,UAAU,aAAa;EAC/B,UAAU,UAA+C;GACvD,IAAI,MAAM;GACV,UAAU,KAAK;EACjB;EACA,GAAI;CACL,CAAA;AAEL;AAEA,gBAAgB,cAAc"}
|