@stack-spot/portal-layout 0.0.65 → 1.0.0-dev.1768482785050
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 +779 -0
- package/dist/Layout.d.ts +60 -8
- package/dist/Layout.d.ts.map +1 -1
- package/dist/Layout.js +59 -24
- package/dist/Layout.js.map +1 -1
- package/dist/LayoutOverlayManager.d.ts +274 -19
- package/dist/LayoutOverlayManager.d.ts.map +1 -1
- package/dist/LayoutOverlayManager.js +373 -82
- package/dist/LayoutOverlayManager.js.map +1 -1
- package/dist/WelcomeTour.d.ts +2 -0
- package/dist/WelcomeTour.d.ts.map +1 -0
- package/dist/WelcomeTour.js +8 -0
- package/dist/WelcomeTour.js.map +1 -0
- package/dist/components/Backdrop.d.ts +75 -0
- package/dist/components/Backdrop.d.ts.map +1 -0
- package/dist/components/Backdrop.js +69 -0
- package/dist/components/Backdrop.js.map +1 -0
- package/dist/components/Contact/show-contact-modal.d.ts +5 -0
- package/dist/components/Contact/show-contact-modal.d.ts.map +1 -0
- package/dist/components/Contact/show-contact-modal.js +37 -0
- package/dist/components/Contact/show-contact-modal.js.map +1 -0
- package/dist/components/ContactModal.d.ts +1 -0
- package/dist/components/ContactModal.d.ts.map +1 -0
- package/dist/components/ContactModal.js +2 -0
- package/dist/components/ContactModal.js.map +1 -0
- package/dist/components/Dialog.d.ts +54 -7
- package/dist/components/Dialog.d.ts.map +1 -1
- package/dist/components/Dialog.js +8 -2
- package/dist/components/Dialog.js.map +1 -1
- package/dist/components/Header.d.ts +38 -2
- package/dist/components/Header.d.ts.map +1 -1
- package/dist/components/Header.js +9 -4
- package/dist/components/Header.js.map +1 -1
- package/dist/components/NotificationCenter/NotificationPanel.d.ts +3 -0
- package/dist/components/NotificationCenter/NotificationPanel.d.ts.map +1 -0
- package/dist/components/NotificationCenter/NotificationPanel.js +19 -0
- package/dist/components/NotificationCenter/NotificationPanel.js.map +1 -0
- package/dist/components/NotificationCenter/NotificationPanelHeader.d.ts +3 -0
- package/dist/components/NotificationCenter/NotificationPanelHeader.d.ts.map +1 -0
- package/dist/components/NotificationCenter/NotificationPanelHeader.js +16 -0
- package/dist/components/NotificationCenter/NotificationPanelHeader.js.map +1 -0
- package/dist/components/NotificationCenter/NotificationsPanelFooter.d.ts +4 -0
- package/dist/components/NotificationCenter/NotificationsPanelFooter.d.ts.map +1 -0
- package/dist/components/NotificationCenter/NotificationsPanelFooter.js +12 -0
- package/dist/components/NotificationCenter/NotificationsPanelFooter.js.map +1 -0
- package/dist/components/NotificationCenter/dictionary.d.ts +2 -0
- package/dist/components/NotificationCenter/dictionary.d.ts.map +1 -0
- package/dist/components/NotificationCenter/dictionary.js +43 -0
- package/dist/components/NotificationCenter/dictionary.js.map +1 -0
- package/dist/components/NotificationCenter/index.d.ts +2 -0
- package/dist/components/NotificationCenter/index.d.ts.map +1 -0
- package/dist/components/NotificationCenter/index.js +34 -0
- package/dist/components/NotificationCenter/index.js.map +1 -0
- package/dist/components/NotificationCenter/styled.d.ts +3 -0
- package/dist/components/NotificationCenter/styled.d.ts.map +1 -0
- package/dist/components/NotificationCenter/styled.js +74 -0
- package/dist/components/NotificationCenter/styled.js.map +1 -0
- package/dist/components/NotificationCenter/types.d.ts +21 -0
- package/dist/components/NotificationCenter/types.d.ts.map +1 -0
- package/dist/components/NotificationCenter/types.js.map +1 -0
- package/dist/components/NotificationCenter/utils.d.ts +5 -0
- package/dist/components/NotificationCenter/utils.d.ts.map +1 -0
- package/dist/components/NotificationCenter/utils.js +18 -0
- package/dist/components/NotificationCenter/utils.js.map +1 -0
- package/dist/components/OverlayContent.d.ts +27 -1
- package/dist/components/OverlayContent.d.ts.map +1 -1
- package/dist/components/OverlayContent.js +8 -4
- package/dist/components/OverlayContent.js.map +1 -1
- package/dist/components/PortalSwitcher.d.ts +19 -1
- package/dist/components/PortalSwitcher.d.ts.map +1 -1
- package/dist/components/PortalSwitcher.js +16 -31
- package/dist/components/PortalSwitcher.js.map +1 -1
- package/dist/components/PrivacyPolicyMessage/hooks.d.ts +10 -0
- package/dist/components/PrivacyPolicyMessage/hooks.d.ts.map +1 -0
- package/dist/components/PrivacyPolicyMessage/hooks.js +33 -0
- package/dist/components/PrivacyPolicyMessage/hooks.js.map +1 -0
- package/dist/components/PrivacyPolicyMessage/index.d.ts +7 -0
- package/dist/components/PrivacyPolicyMessage/index.d.ts.map +1 -0
- package/dist/components/PrivacyPolicyMessage/index.js +5 -0
- package/dist/components/PrivacyPolicyMessage/index.js.map +1 -0
- package/dist/components/Rate/FeedbackModal.d.ts +8 -0
- package/dist/components/Rate/FeedbackModal.d.ts.map +1 -0
- package/dist/components/Rate/FeedbackModal.js +52 -0
- package/dist/components/Rate/FeedbackModal.js.map +1 -0
- package/dist/components/Rate/hook.d.ts +3 -0
- package/dist/components/Rate/hook.d.ts.map +1 -0
- package/dist/components/Rate/hook.js +48 -0
- package/dist/components/Rate/hook.js.map +1 -0
- package/dist/components/Rate/index.d.ts +10 -0
- package/dist/components/Rate/index.d.ts.map +1 -0
- package/dist/components/Rate/index.js +16 -0
- package/dist/components/Rate/index.js.map +1 -0
- package/dist/components/Rate/on-nps-submit.d.ts +7 -0
- package/dist/components/Rate/on-nps-submit.d.ts.map +1 -0
- package/dist/components/Rate/on-nps-submit.js +8 -0
- package/dist/components/Rate/on-nps-submit.js.map +1 -0
- package/dist/components/Rate/show-rate-us-modals.d.ts +17 -0
- package/dist/components/Rate/show-rate-us-modals.d.ts.map +1 -0
- package/dist/components/Rate/show-rate-us-modals.js +14 -0
- package/dist/components/Rate/show-rate-us-modals.js.map +1 -0
- package/dist/components/Rate/utils.d.ts +2 -0
- package/dist/components/Rate/utils.d.ts.map +1 -0
- package/dist/components/Rate/utils.js +10 -0
- package/dist/components/Rate/utils.js.map +1 -0
- package/dist/components/Toaster.d.ts +35 -0
- package/dist/components/Toaster.d.ts.map +1 -1
- package/dist/components/Toaster.js +32 -4
- package/dist/components/Toaster.js.map +1 -1
- package/dist/components/TypeForm/hook.d.ts +2 -0
- package/dist/components/TypeForm/hook.d.ts.map +1 -0
- package/dist/components/TypeForm/hook.js +11 -0
- package/dist/components/TypeForm/hook.js.map +1 -0
- package/dist/components/TypeForm/index.d.ts +6 -0
- package/dist/components/TypeForm/index.d.ts.map +1 -0
- package/dist/components/TypeForm/index.js +23 -0
- package/dist/components/TypeForm/index.js.map +1 -0
- package/dist/components/TypeForm/show-typeform-modal.d.ts +5 -0
- package/dist/components/TypeForm/show-typeform-modal.d.ts.map +1 -0
- package/dist/components/TypeForm/show-typeform-modal.js +11 -0
- package/dist/components/TypeForm/show-typeform-modal.js.map +1 -0
- package/dist/components/TypeForm/utils.d.ts +2 -0
- package/dist/components/TypeForm/utils.d.ts.map +1 -0
- package/dist/components/TypeForm/utils.js +9 -0
- package/dist/components/TypeForm/utils.js.map +1 -0
- package/dist/components/UserMenu.d.ts +19 -2
- package/dist/components/UserMenu.d.ts.map +1 -1
- package/dist/components/UserMenu.js +12 -6
- package/dist/components/UserMenu.js.map +1 -1
- package/dist/components/error/ErrorBoundary.d.ts +25 -4
- package/dist/components/error/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/error/ErrorBoundary.js +10 -1
- package/dist/components/error/ErrorBoundary.js.map +1 -1
- package/dist/components/error/ErrorManager.d.ts +22 -6
- package/dist/components/error/ErrorManager.d.ts.map +1 -1
- package/dist/components/error/ErrorManager.js +21 -1
- package/dist/components/error/ErrorManager.js.map +1 -1
- package/dist/components/error/SilentErrorBoundary.d.ts +26 -5
- package/dist/components/error/SilentErrorBoundary.d.ts.map +1 -1
- package/dist/components/error/SilentErrorBoundary.js +10 -0
- package/dist/components/error/SilentErrorBoundary.js.map +1 -1
- package/dist/components/menu/MenuContent.d.ts +20 -4
- package/dist/components/menu/MenuContent.d.ts.map +1 -1
- package/dist/components/menu/MenuContent.js +89 -88
- package/dist/components/menu/MenuContent.js.map +1 -1
- package/dist/components/menu/MenuSectionGroup.d.ts +2 -0
- package/dist/components/menu/MenuSectionGroup.d.ts.map +1 -0
- package/dist/components/menu/MenuSectionGroup.js +121 -0
- package/dist/components/menu/MenuSectionGroup.js.map +1 -0
- package/dist/components/menu/MenuSections.d.ts +17 -0
- package/dist/components/menu/MenuSections.d.ts.map +1 -1
- package/dist/components/menu/MenuSections.js +159 -39
- package/dist/components/menu/MenuSections.js.map +1 -1
- package/dist/components/menu/PageSelector.d.ts +5 -0
- package/dist/components/menu/PageSelector.d.ts.map +1 -1
- package/dist/components/menu/PageSelector.js +9 -4
- package/dist/components/menu/PageSelector.js.map +1 -1
- package/dist/components/menu/types.d.ts +219 -8
- package/dist/components/menu/types.d.ts.map +1 -1
- package/dist/components/tour/StepContainer.d.ts +37 -0
- package/dist/components/tour/StepContainer.d.ts.map +1 -0
- package/dist/components/tour/StepContainer.js +51 -0
- package/dist/components/tour/StepContainer.js.map +1 -0
- package/dist/components/tour/StepNavigation.d.ts +29 -0
- package/dist/components/tour/StepNavigation.d.ts.map +1 -0
- package/dist/components/tour/StepNavigation.js +37 -0
- package/dist/components/tour/StepNavigation.js.map +1 -0
- package/dist/components/tour/StepTitle.d.ts +17 -0
- package/dist/components/tour/StepTitle.d.ts.map +1 -0
- package/dist/components/tour/StepTitle.js +10 -0
- package/dist/components/tour/StepTitle.js.map +1 -0
- package/dist/components/tour/hook.d.ts +3 -0
- package/dist/components/tour/hook.d.ts.map +1 -0
- package/dist/components/tour/hook.js +10 -0
- package/dist/components/tour/hook.js.map +1 -0
- package/dist/components/tour/index.d.ts +5 -0
- package/dist/components/tour/index.d.ts.map +1 -0
- package/dist/components/tour/index.js +5 -0
- package/dist/components/tour/index.js.map +1 -0
- package/dist/components/tour/manager.d.ts +34 -0
- package/dist/components/tour/manager.d.ts.map +1 -0
- package/dist/components/tour/manager.js +104 -0
- package/dist/components/tour/manager.js.map +1 -0
- package/dist/components/tour/utils.d.ts +67 -0
- package/dist/components/tour/utils.d.ts.map +1 -0
- package/dist/components/tour/utils.js +60 -0
- package/dist/components/tour/utils.js.map +1 -0
- package/dist/components/user-menu-manager.d.ts +13 -0
- package/dist/components/user-menu-manager.d.ts.map +1 -0
- package/dist/components/user-menu-manager.js +36 -0
- package/dist/components/user-menu-manager.js.map +1 -0
- package/dist/dictionary.d.ts +6 -1
- package/dist/dictionary.d.ts.map +1 -1
- package/dist/dictionary.js +7 -2
- package/dist/dictionary.js.map +1 -1
- package/dist/elements.d.ts +7 -0
- package/dist/elements.d.ts.map +1 -1
- package/dist/elements.js +7 -0
- package/dist/elements.js.map +1 -1
- package/dist/index.d.ts +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/dist/layout.css +190 -35
- package/dist/svg/StarFillWithGradient.d.ts +6 -0
- package/dist/svg/StarFillWithGradient.d.ts.map +1 -0
- package/dist/svg/StarFillWithGradient.js +4 -0
- package/dist/svg/StarFillWithGradient.js.map +1 -0
- package/dist/toaster.d.ts +55 -9
- package/dist/toaster.d.ts.map +1 -1
- package/dist/toaster.js +34 -6
- package/dist/toaster.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +6 -69
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +9 -130
- package/dist/utils.js.map +1 -1
- package/package.dev.json +3 -0
- package/package.json +24 -13
- package/package.stg.json +3 -0
- package/readme.md +147 -0
- package/src/Layout.tsx +166 -58
- package/src/LayoutOverlayManager.tsx +499 -85
- package/src/WelcomeTour.tsx +8 -0
- package/src/components/Backdrop.tsx +116 -0
- package/src/components/Contact/show-contact-modal.tsx +71 -0
- package/src/components/Dialog.tsx +58 -9
- package/src/components/Header.tsx +53 -5
- package/src/components/NotificationCenter/NotificationPanel.tsx +40 -0
- package/src/components/NotificationCenter/NotificationPanelHeader.tsx +53 -0
- package/src/components/NotificationCenter/NotificationsPanelFooter.tsx +25 -0
- package/src/components/NotificationCenter/dictionary.ts +44 -0
- package/src/components/NotificationCenter/index.tsx +58 -0
- package/src/components/NotificationCenter/styled.ts +75 -0
- package/src/components/NotificationCenter/types.ts +24 -0
- package/src/components/NotificationCenter/utils.ts +20 -0
- package/src/components/OverlayContent.tsx +40 -5
- package/src/components/PortalSwitcher.tsx +33 -39
- package/src/components/PrivacyPolicyMessage/hooks.tsx +49 -0
- package/src/components/PrivacyPolicyMessage/index.tsx +21 -0
- package/src/components/Rate/FeedbackModal.tsx +86 -0
- package/src/components/Rate/hook.tsx +61 -0
- package/src/components/Rate/index.tsx +36 -0
- package/src/components/Rate/on-nps-submit.ts +18 -0
- package/src/components/Rate/show-rate-us-modals.tsx +29 -0
- package/src/components/Rate/utils.ts +11 -0
- package/src/components/Toaster.tsx +82 -3
- package/src/components/TypeForm/hook.tsx +13 -0
- package/src/components/TypeForm/index.tsx +50 -0
- package/src/components/TypeForm/show-typeform-modal.tsx +10 -0
- package/src/components/TypeForm/utils.ts +8 -0
- package/src/components/UserMenu.tsx +32 -8
- package/src/components/error/ErrorBoundary.tsx +11 -2
- package/src/components/error/ErrorManager.ts +22 -6
- package/src/components/error/SilentErrorBoundary.tsx +12 -2
- package/src/components/menu/MenuContent.tsx +102 -110
- package/src/components/menu/MenuSectionGroup.tsx +121 -0
- package/src/components/menu/MenuSections.tsx +342 -93
- package/src/components/menu/PageSelector.tsx +16 -4
- package/src/components/menu/types.ts +221 -9
- package/src/components/tour/StepContainer.tsx +92 -0
- package/src/components/tour/StepNavigation.tsx +72 -0
- package/src/components/tour/StepTitle.tsx +28 -0
- package/src/components/tour/hook.ts +12 -0
- package/src/components/tour/index.ts +6 -0
- package/src/components/tour/manager.tsx +119 -0
- package/src/components/tour/utils.tsx +119 -0
- package/src/components/user-menu-manager.ts +31 -0
- package/src/dictionary.ts +7 -2
- package/src/elements.ts +7 -0
- package/src/index.ts +15 -8
- package/src/layout.css +190 -35
- package/src/svg/StarFillWithGradient.tsx +14 -0
- package/src/toaster.tsx +90 -13
- package/src/types.ts +4 -0
- package/src/utils.ts +9 -142
- package/dist/components/BottomNotification.d.ts +0 -1
- package/dist/components/BottomNotification.d.ts.map +0 -1
- package/dist/components/BottomNotification.js +0 -2
- package/dist/components/BottomNotification.js.map +0 -1
- package/dist/components/BottomPanel.d.ts +0 -1
- package/dist/components/BottomPanel.d.ts.map +0 -1
- package/dist/components/BottomPanel.js +0 -2
- package/dist/components/BottomPanel.js.map +0 -1
- package/dist/components/SelectionList.d.ts +0 -36
- package/dist/components/SelectionList.d.ts.map +0 -1
- package/dist/components/SelectionList.js +0 -140
- package/dist/components/SelectionList.js.map +0 -1
- package/dist/components/error/ErrorFeedback.d.ts +0 -3
- package/dist/components/error/ErrorFeedback.d.ts.map +0 -1
- package/dist/components/error/ErrorFeedback.js +0 -66
- package/dist/components/error/ErrorFeedback.js.map +0 -1
- package/dist/components/menu/use-check-text-overflow.d.ts +0 -6
- package/dist/components/menu/use-check-text-overflow.d.ts.map +0 -1
- package/dist/components/menu/use-check-text-overflow.js +0 -20
- package/dist/components/menu/use-check-text-overflow.js.map +0 -1
- package/dist/components/menu/use-keyboard-controls.d.ts +0 -23
- package/dist/components/menu/use-keyboard-controls.d.ts.map +0 -1
- package/dist/components/menu/use-keyboard-controls.js +0 -49
- package/dist/components/menu/use-keyboard-controls.js.map +0 -1
- package/dist/components/tour/PortalSwitcherStep.d.ts +0 -3
- package/dist/components/tour/PortalSwitcherStep.d.ts.map +0 -1
- package/dist/components/tour/PortalSwitcherStep.js +0 -29
- package/dist/components/tour/PortalSwitcherStep.js.map +0 -1
- package/dist/components/types.d.ts +0 -15
- package/dist/components/types.d.ts.map +0 -1
- package/dist/components/types.js.map +0 -1
- package/dist/layout-context.d.ts +0 -10
- package/dist/layout-context.d.ts.map +0 -1
- package/dist/layout-context.js +0 -11
- package/dist/layout-context.js.map +0 -1
- package/dist/svg/AI.d.ts +0 -6
- package/dist/svg/AI.d.ts.map +0 -1
- package/dist/svg/AI.js +0 -9
- package/dist/svg/AI.js.map +0 -1
- package/dist/svg/EDP.d.ts +0 -6
- package/dist/svg/EDP.d.ts.map +0 -1
- package/dist/svg/EDP.js +0 -5
- package/dist/svg/EDP.js.map +0 -1
- package/dist/svg/Forbidden.d.ts +0 -6
- package/dist/svg/Forbidden.d.ts.map +0 -1
- package/dist/svg/Forbidden.js +0 -4
- package/dist/svg/Forbidden.js.map +0 -1
- package/dist/svg/HUB.d.ts +0 -6
- package/dist/svg/HUB.d.ts.map +0 -1
- package/dist/svg/HUB.js +0 -5
- package/dist/svg/HUB.js.map +0 -1
- package/dist/svg/Logo.d.ts +0 -2
- package/dist/svg/Logo.d.ts.map +0 -1
- package/dist/svg/Logo.js +0 -4
- package/dist/svg/Logo.js.map +0 -1
- package/dist/svg/NotFound.d.ts +0 -6
- package/dist/svg/NotFound.d.ts.map +0 -1
- package/dist/svg/NotFound.js +0 -4
- package/dist/svg/NotFound.js.map +0 -1
- package/dist/svg/ServerError.d.ts +0 -6
- package/dist/svg/ServerError.d.ts.map +0 -1
- package/dist/svg/ServerError.js +0 -4
- package/dist/svg/ServerError.js.map +0 -1
- package/dist/svg/Unauthenticated.d.ts +0 -6
- package/dist/svg/Unauthenticated.d.ts.map +0 -1
- package/dist/svg/Unauthenticated.js +0 -4
- package/dist/svg/Unauthenticated.js.map +0 -1
- package/src/components/BottomPanel.tsx +0 -0
- package/src/components/SelectionList.tsx +0 -272
- package/src/components/error/ErrorFeedback.tsx +0 -114
- package/src/components/menu/use-check-text-overflow.tsx +0 -26
- package/src/components/menu/use-keyboard-controls.tsx +0 -70
- package/src/components/tour/PortalSwitcherStep.tsx +0 -36
- package/src/components/types.ts +0 -15
- package/src/layout-context.tsx +0 -22
- package/src/svg/AI.tsx +0 -37
- package/src/svg/EDP.tsx +0 -35
- package/src/svg/Forbidden.tsx +0 -22
- package/src/svg/HUB.tsx +0 -35
- package/src/svg/Logo.tsx +0 -35
- package/src/svg/NotFound.tsx +0 -16
- package/src/svg/ServerError.tsx +0 -33
- package/src/svg/Unauthenticated.tsx +0 -16
- /package/dist/components/{types.js → NotificationCenter/types.js} +0 -0
- /package/src/components/{BottomNotification.tsx → ContactModal.tsx} +0 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { getCookie, setCookie } from '@stack-spot/portal-components'
|
|
2
|
+
import { theme } from '@stack-spot/portal-theme'
|
|
3
|
+
import { ReactNode } from 'react'
|
|
4
|
+
import { ReactourStep } from 'reactour'
|
|
5
|
+
import { PointingArrowPosition, StepContainer } from './StepContainer'
|
|
6
|
+
import { NavigationProps } from './StepNavigation'
|
|
7
|
+
|
|
8
|
+
const TOUR_COOKIE = 'guided-tour-global'
|
|
9
|
+
|
|
10
|
+
const defaultExpires = new Date()
|
|
11
|
+
defaultExpires.setFullYear(new Date().getFullYear() + 1)
|
|
12
|
+
|
|
13
|
+
export const getTourCookie = () => {
|
|
14
|
+
const currentTourObject = getCookie(TOUR_COOKIE)
|
|
15
|
+
return currentTourObject ? currentTourObject.split(',') : []
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Tutorial: marks the tour step as finished. This sets a cookie, preventing the tour from showing again.
|
|
20
|
+
* @param key the identifier for the step to mark as finished.
|
|
21
|
+
*/
|
|
22
|
+
export const finishTourStep = (key: string) => {
|
|
23
|
+
const finishedTours: string[] = getTourCookie()
|
|
24
|
+
if (!finishedTours.includes(key)) finishedTours.push(key)
|
|
25
|
+
setCookie(TOUR_COOKIE, finishedTours.toString(), { expires: defaultExpires.toUTCString() })
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Tutorial: verifies if the React Tour step has not finished yet.
|
|
30
|
+
*
|
|
31
|
+
* A step has not finished if the array stored as a cookie doesn't include the string value of `step.selector`.
|
|
32
|
+
* @param step the step config.
|
|
33
|
+
* @returns true if the step has not yet been marked as finished. False otherwise.
|
|
34
|
+
*/
|
|
35
|
+
export const isNewTourStep = (step: ReactourStep) => !hasFinishedTourStep(`${step.selector}`)
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Tutorial: verifies if the key passed as parameter refers to a React Tour step that has already finished.
|
|
39
|
+
*
|
|
40
|
+
* The key refers to a finished step if the array stored as a cookie includes it.
|
|
41
|
+
* If the cookie is set to 'disabled', then the step will be considered finished.Particularly useful in scenarios like e2e tests.
|
|
42
|
+
* @param key the step's identifier to check.
|
|
43
|
+
* @returns true if the key refers to a finished step. False otherwise.
|
|
44
|
+
*/
|
|
45
|
+
export const hasFinishedTourStep = (key: string) => {
|
|
46
|
+
const tourCookie = getTourCookie()
|
|
47
|
+
return tourCookie.includes(key) || tourCookie[0] === 'disabled'
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface StackspotTourStep extends ReactourStep {
|
|
51
|
+
/**
|
|
52
|
+
* The step's title.
|
|
53
|
+
*/
|
|
54
|
+
title: string,
|
|
55
|
+
/**
|
|
56
|
+
* The unique identifier for the step (key).
|
|
57
|
+
*/
|
|
58
|
+
selector: string,
|
|
59
|
+
/**
|
|
60
|
+
* The step's content.
|
|
61
|
+
*/
|
|
62
|
+
content: ReactNode,
|
|
63
|
+
/**
|
|
64
|
+
* The position of the tour overlay related to the content being explained.
|
|
65
|
+
*/
|
|
66
|
+
position?: PointingArrowPosition,
|
|
67
|
+
/**
|
|
68
|
+
* The CSS 'right' property to adjust the horizontal position of the overlay.
|
|
69
|
+
*/
|
|
70
|
+
right?: React.CSSProperties['right'],
|
|
71
|
+
/**
|
|
72
|
+
* The CSS 'top' property to adjust the vertical position of the overlay.
|
|
73
|
+
*/
|
|
74
|
+
top?: React.CSSProperties['top'],
|
|
75
|
+
/**
|
|
76
|
+
* A customizable set of buttons for navigating the tour steps.
|
|
77
|
+
*/
|
|
78
|
+
/**
|
|
79
|
+
* A set of properties for customizing the next and previous buttons.
|
|
80
|
+
*/
|
|
81
|
+
customNavigation?: NavigationProps,
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Tutorial: utility for building a React Tour step. This already includes some default configuration for tours in Stackspot.
|
|
86
|
+
* @param options the options for building the step: {@link StackspotTourStep}.
|
|
87
|
+
* @returns the React Tour step.
|
|
88
|
+
*/
|
|
89
|
+
export const tourStepBuilder = ({
|
|
90
|
+
selector,
|
|
91
|
+
position,
|
|
92
|
+
title,
|
|
93
|
+
content,
|
|
94
|
+
style,
|
|
95
|
+
right,
|
|
96
|
+
top,
|
|
97
|
+
customNavigation,
|
|
98
|
+
...rest
|
|
99
|
+
}: StackspotTourStep): ReactourStep => ({
|
|
100
|
+
selector,
|
|
101
|
+
content: (<StepContainer
|
|
102
|
+
stepKey={selector}
|
|
103
|
+
position={position}
|
|
104
|
+
right={right}
|
|
105
|
+
top={top}
|
|
106
|
+
title={title}
|
|
107
|
+
customNavigation={customNavigation}>
|
|
108
|
+
{content}
|
|
109
|
+
</StepContainer>),
|
|
110
|
+
position,
|
|
111
|
+
style: {
|
|
112
|
+
backgroundColor: theme.color.inverse[500],
|
|
113
|
+
width: '256px',
|
|
114
|
+
padding: 0,
|
|
115
|
+
top: ['right', 'left'].includes(position as PointingArrowPosition) ? '-3px' : '0',
|
|
116
|
+
...(style || {}),
|
|
117
|
+
},
|
|
118
|
+
...(rest || {}),
|
|
119
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type UserMenuManagerListeners = (visible: boolean) => void
|
|
2
|
+
|
|
3
|
+
class UserMenuManager {
|
|
4
|
+
private visible: boolean = false
|
|
5
|
+
private observers = [] as UserMenuManagerListeners[]
|
|
6
|
+
|
|
7
|
+
changeVisible(isVisible: boolean): void {
|
|
8
|
+
this.visible = isVisible
|
|
9
|
+
this.notify()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
isOpen(): boolean {
|
|
13
|
+
return this.visible
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
subscribe(updateFn: UserMenuManagerListeners) {
|
|
17
|
+
this.observers.push(updateFn)
|
|
18
|
+
this.notify()
|
|
19
|
+
return () => this.pullListener(updateFn)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private pullListener(updateFn: UserMenuManagerListeners) {
|
|
23
|
+
this.observers = this.observers.filter((obs) => obs !== updateFn)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private notify() {
|
|
27
|
+
this.observers.forEach((updateFn) => updateFn(this.visible))
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const userMenuManager = new UserMenuManager()
|
package/src/dictionary.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dictionary, getLanguage, useTranslate } from '@stack-spot/portal-translate'
|
|
1
|
+
import { Dictionary, getLanguage, ptEn, useTranslate } from '@stack-spot/portal-translate'
|
|
2
2
|
|
|
3
3
|
const dictionary = {
|
|
4
4
|
en: {
|
|
@@ -7,6 +7,7 @@ const dictionary = {
|
|
|
7
7
|
dismiss: 'Dismiss',
|
|
8
8
|
confirm: 'OK',
|
|
9
9
|
cancel: 'Cancel',
|
|
10
|
+
goBack: 'Return',
|
|
10
11
|
},
|
|
11
12
|
pt: {
|
|
12
13
|
close: 'Fechar',
|
|
@@ -14,12 +15,16 @@ const dictionary = {
|
|
|
14
15
|
dismiss: 'Dispensar',
|
|
15
16
|
confirm: 'OK',
|
|
16
17
|
cancel: 'Cancelar',
|
|
18
|
+
goBack: 'Voltar',
|
|
17
19
|
},
|
|
18
20
|
} satisfies Dictionary
|
|
19
21
|
|
|
22
|
+
/**
|
|
23
|
+
* A global dictionary for layout components.
|
|
24
|
+
*/
|
|
20
25
|
export const useDictionary = () => useTranslate(dictionary)
|
|
21
26
|
|
|
22
27
|
export function getDictionary() {
|
|
23
|
-
const language = getLanguage()
|
|
28
|
+
const language = getLanguage(ptEn)
|
|
24
29
|
return dictionary[language]
|
|
25
30
|
}
|
package/src/elements.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ids of the layout elements.
|
|
3
|
+
*/
|
|
1
4
|
export const elementIds = {
|
|
2
5
|
layout: 'layout',
|
|
3
6
|
backdrop: 'backdrop',
|
|
@@ -9,6 +12,7 @@ export const elementIds = {
|
|
|
9
12
|
header: 'header',
|
|
10
13
|
menu: 'menu',
|
|
11
14
|
menuContent: 'menuContent',
|
|
15
|
+
menuInnerContent: 'menuInnerContent',
|
|
12
16
|
menuSections: 'menuSections',
|
|
13
17
|
accessibilityAnnouncer: 'accessibilityAnnouncer',
|
|
14
18
|
} as const
|
|
@@ -16,6 +20,9 @@ export const elementIds = {
|
|
|
16
20
|
export type LayoutElement = keyof typeof elementIds
|
|
17
21
|
export type LayoutElements = Record<LayoutElement, HTMLElement | null>
|
|
18
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @returns an object with the html elements of the layout.
|
|
25
|
+
*/
|
|
19
26
|
export function getLayoutElements() {
|
|
20
27
|
return (Object.keys(elementIds) as LayoutElement[]).reduce<LayoutElements>(
|
|
21
28
|
(result, id) => ({ ...result, [id]: document.getElementById(id) }),
|
package/src/index.ts
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { Backdrop } from './components/Backdrop'
|
|
2
|
+
export { showContactUsModal } from './components/Contact/show-contact-modal'
|
|
3
3
|
export { Dialog } from './components/Dialog'
|
|
4
4
|
export { Header, HeaderProps } from './components/Header'
|
|
5
|
-
export { OverlayContent } from './components/OverlayContent'
|
|
6
|
-
export { PortalSwitcher } from './components/PortalSwitcher'
|
|
7
|
-
export { ListAction, SelectionList, SelectionListProps } from './components/SelectionList'
|
|
8
|
-
export { Toaster } from './components/Toaster'
|
|
9
5
|
export { ActionItem, MenuContent, MenuGroup, Title } from './components/menu/MenuContent'
|
|
10
6
|
export { MenuSections } from './components/menu/MenuSections'
|
|
11
7
|
export * from './components/menu/types'
|
|
12
|
-
export
|
|
8
|
+
export { CLOSE_OVERLAY_ID, OverlayContent } from './components/OverlayContent'
|
|
9
|
+
export { PortalSwitcher } from './components/PortalSwitcher'
|
|
10
|
+
export { usePrivacyPolicyEffect } from './components/PrivacyPolicyMessage/hooks'
|
|
11
|
+
export { RateComponent } from './components/Rate'
|
|
12
|
+
export { shouldShowNpsModal } from './components/Rate/hook'
|
|
13
|
+
export { ShowFeedbackModal, showRateUsModal } from './components/Rate/show-rate-us-modals'
|
|
14
|
+
export * from './components/tour'
|
|
15
|
+
export { TypeForm } from './components/TypeForm'
|
|
16
|
+
export { useTypeFormEffect } from './components/TypeForm/hook'
|
|
17
|
+
export { showTypeFormModal } from './components/TypeForm/show-typeform-modal'
|
|
13
18
|
export * from './elements'
|
|
14
19
|
export * from './errors'
|
|
15
|
-
export {
|
|
20
|
+
export { Layout, RawLayout } from './Layout'
|
|
21
|
+
export { overlay } from './LayoutOverlayManager'
|
|
22
|
+
export * from './types'
|
|
16
23
|
export * from './utils'
|
|
17
24
|
|
package/src/layout.css
CHANGED
|
@@ -27,7 +27,7 @@ body {
|
|
|
27
27
|
display: flex;
|
|
28
28
|
flex-direction: column;
|
|
29
29
|
flex: 1;
|
|
30
|
-
background: var(--light-
|
|
30
|
+
background: var(--light-300);
|
|
31
31
|
font: var(--font);
|
|
32
32
|
color: var(--light-contrastText);
|
|
33
33
|
}
|
|
@@ -98,7 +98,12 @@ body {
|
|
|
98
98
|
left: calc(var(--menu-sections-width) + var(--menu-content-width));
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
#layout.
|
|
101
|
+
#layout.menu-inner-content-visible #page {
|
|
102
|
+
left: calc(var(--menu-sections-width) + calc(var(--menu-content-width) * 2));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#layout.no-menu-sections:not(.menu-content-visible) #page,
|
|
106
|
+
#layout.no-menu-sections:not(.menu-inner-content-visible) #page {
|
|
102
107
|
border-top-left-radius: 0;
|
|
103
108
|
}
|
|
104
109
|
|
|
@@ -119,16 +124,12 @@ body {
|
|
|
119
124
|
bottom: 0;
|
|
120
125
|
}
|
|
121
126
|
|
|
122
|
-
#menu svg {
|
|
123
|
-
fill: var(--light-contrastText);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
127
|
#menu .item-row-group svg {
|
|
127
128
|
fill: var(--light-700);
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
#menu .
|
|
131
|
-
|
|
131
|
+
#menu .hidden-scroll-bars {
|
|
132
|
+
height: 100%;
|
|
132
133
|
}
|
|
133
134
|
|
|
134
135
|
#menu .toggle .expand,
|
|
@@ -155,42 +156,132 @@ body {
|
|
|
155
156
|
display: none;
|
|
156
157
|
}
|
|
157
158
|
|
|
159
|
+
#layout.menu-compact .section-badge {
|
|
160
|
+
display: none;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
#layout.menu-compact .section-icon-with-badge {
|
|
164
|
+
display: block;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
#layout.menu-compact .custom-element {
|
|
168
|
+
display: none;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#layout.menu-compact .custom-element-icon {
|
|
172
|
+
display: block;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
#layout:not(.menu-compact) > .react-tooltip {
|
|
176
|
+
display: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
158
179
|
#layout:not(.menu-compact) .section-label {
|
|
159
180
|
display: block;
|
|
160
181
|
}
|
|
161
182
|
|
|
183
|
+
#layout:not(.menu-compact) .section-badge {
|
|
184
|
+
display: block;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
#layout:not(.menu-compact) .section-icon-with-badge {
|
|
188
|
+
display: none;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
#layout:not(.menu-compact) .custom-element-icon {
|
|
192
|
+
display: block;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
#layout:not(.menu-compact) .custom-element-icon {
|
|
196
|
+
display: none;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
|
|
162
200
|
#menuSections {
|
|
163
201
|
width: var(--menu-sections-width);
|
|
164
202
|
display: flex;
|
|
165
203
|
flex-direction: column;
|
|
166
|
-
padding: 0
|
|
204
|
+
padding: 0;
|
|
167
205
|
justify-content: space-between;
|
|
168
206
|
background-color: var(--light-400);
|
|
169
207
|
position: relative;
|
|
170
208
|
border-right: 1px solid var(--light-300);
|
|
171
209
|
border-top: 1px solid var(--light-300);
|
|
210
|
+
min-height: 100%;
|
|
211
|
+
box-sizing: border-box;
|
|
172
212
|
}
|
|
173
213
|
|
|
174
214
|
#menuSections .sections-footer {
|
|
175
215
|
padding: 16px;
|
|
216
|
+
padding-left: 8px;
|
|
176
217
|
}
|
|
177
218
|
|
|
178
219
|
#menuSections .toggle,
|
|
179
220
|
#menuSections > ul li a {
|
|
180
221
|
background: transparent;
|
|
181
222
|
border: none;
|
|
182
|
-
outline: none;
|
|
183
223
|
width: var(--menu-sections-width);
|
|
184
|
-
height: var(--menu-item-height);
|
|
185
224
|
display: flex;
|
|
186
225
|
flex-direction: column;
|
|
187
226
|
gap: 10px;
|
|
188
227
|
align-items: flex-start;
|
|
189
228
|
justify-content: center;
|
|
190
|
-
transition: background-color 0.2s;
|
|
191
229
|
cursor: pointer;
|
|
192
230
|
position: relative;
|
|
193
231
|
z-index: 2;
|
|
232
|
+
border-right: 1px solid var(--light-300);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
#menuSections .toggle.sections-footer {
|
|
236
|
+
height: auto;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.gradient-svg {
|
|
240
|
+
width: 100px;
|
|
241
|
+
height: 100px;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.gradient-svg path {
|
|
245
|
+
fill: url(#gradient);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
#menuSections .toggle .gradient {
|
|
249
|
+
background: linear-gradient(to right, #FF9900, #FF6633);
|
|
250
|
+
-webkit-background-clip: text;
|
|
251
|
+
background-clip: text;
|
|
252
|
+
-webkit-text-fill-color: transparent;
|
|
253
|
+
font-weight: 500;
|
|
254
|
+
line-height: 16px;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
@keyframes rotate {
|
|
258
|
+
from {
|
|
259
|
+
transform: rotate(0deg);
|
|
260
|
+
}
|
|
261
|
+
to {
|
|
262
|
+
transform: rotate(360deg);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.rotate-icon {
|
|
267
|
+
animation: rotate 2s linear forwards;
|
|
268
|
+
animation-delay: 2s;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
@keyframes growShrink {
|
|
272
|
+
0% {
|
|
273
|
+
transform: scale(1);
|
|
274
|
+
}
|
|
275
|
+
50% {
|
|
276
|
+
transform: scale(1.2);
|
|
277
|
+
}
|
|
278
|
+
100% {
|
|
279
|
+
transform: scale(1);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.grow-shrink {
|
|
284
|
+
animation: growShrink 2s ease-in-out forwards;
|
|
194
285
|
}
|
|
195
286
|
|
|
196
287
|
#menuSections > ul li a:before {
|
|
@@ -205,7 +296,6 @@ body {
|
|
|
205
296
|
|
|
206
297
|
#menuSections > ul li.active a {
|
|
207
298
|
background-color: var(--light-500);
|
|
208
|
-
border-right: 1px solid var(--light-300);
|
|
209
299
|
}
|
|
210
300
|
|
|
211
301
|
#menuSections > ul li.active a:before {
|
|
@@ -214,11 +304,9 @@ body {
|
|
|
214
304
|
}
|
|
215
305
|
|
|
216
306
|
#menuSections .toggle:hover,
|
|
217
|
-
#menuSections > ul li a:hover
|
|
218
|
-
|
|
219
|
-
#menuSections > ul li a:focus {
|
|
307
|
+
#menuSections > ul li a:hover
|
|
308
|
+
{
|
|
220
309
|
background: var(--light-500);
|
|
221
|
-
border-right: 1px solid var(--light-300);
|
|
222
310
|
}
|
|
223
311
|
|
|
224
312
|
#menuSections > ul li:not(.active) a:hover:before {
|
|
@@ -230,6 +318,33 @@ body {
|
|
|
230
318
|
position: relative;
|
|
231
319
|
}
|
|
232
320
|
|
|
321
|
+
#layout.menu-compact #menuSections {
|
|
322
|
+
.section-icon {
|
|
323
|
+
display: flex;
|
|
324
|
+
justify-content: center;
|
|
325
|
+
flex: 1;
|
|
326
|
+
}
|
|
327
|
+
.section-text {
|
|
328
|
+
display: none;
|
|
329
|
+
}
|
|
330
|
+
.chevron-icon-box {
|
|
331
|
+
display: none;
|
|
332
|
+
}
|
|
333
|
+
.item-row.hidden-when-collapsed {
|
|
334
|
+
display: none;
|
|
335
|
+
& + ul {
|
|
336
|
+
visibility: visible;
|
|
337
|
+
li a {
|
|
338
|
+
height: 56px;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
.sections-footer {
|
|
343
|
+
padding: 16px 0;
|
|
344
|
+
align-items: center;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
233
348
|
#menuContentOverlay {
|
|
234
349
|
width: var(--menu-overlay-width);
|
|
235
350
|
position: fixed;
|
|
@@ -245,6 +360,7 @@ body {
|
|
|
245
360
|
pointer-events: none;
|
|
246
361
|
z-index: 1;
|
|
247
362
|
transition: opacity 0.3s;
|
|
363
|
+
overflow-y: auto;
|
|
248
364
|
}
|
|
249
365
|
|
|
250
366
|
#menuContentOverlay.visible {
|
|
@@ -252,12 +368,8 @@ body {
|
|
|
252
368
|
pointer-events: auto;
|
|
253
369
|
}
|
|
254
370
|
|
|
255
|
-
#
|
|
256
|
-
|
|
257
|
-
overflow: auto;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
#menuContent {
|
|
371
|
+
#menuContent,
|
|
372
|
+
#menuInnerContent {
|
|
261
373
|
width: var(--menu-content-width);
|
|
262
374
|
transition: left ease-out var(--menu-animation-duration);
|
|
263
375
|
background-color: var(--light-400);
|
|
@@ -269,6 +381,21 @@ body {
|
|
|
269
381
|
border-top: 1px solid var(--light-300);
|
|
270
382
|
}
|
|
271
383
|
|
|
384
|
+
#menuInnerContent {
|
|
385
|
+
left: var(--menu-content-width);
|
|
386
|
+
border-left: 1px solid var(--light-300);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
#menuContent .goBackLink,
|
|
390
|
+
#menuInnerContent .goBackLink {
|
|
391
|
+
display: flex;
|
|
392
|
+
flex-direction: row;
|
|
393
|
+
align-items: center;
|
|
394
|
+
margin: 20px;
|
|
395
|
+
margin-bottom: 16px;
|
|
396
|
+
gap: 6px;
|
|
397
|
+
}
|
|
398
|
+
|
|
272
399
|
#layout.menu-content-visible #menuContent {
|
|
273
400
|
left: var(--menu-sections-width);
|
|
274
401
|
}
|
|
@@ -297,7 +424,7 @@ body {
|
|
|
297
424
|
pointer-events: auto;
|
|
298
425
|
}
|
|
299
426
|
|
|
300
|
-
#modal {
|
|
427
|
+
#modal, #backdrop .modal-box {
|
|
301
428
|
transform: scale(0);
|
|
302
429
|
display: flex;
|
|
303
430
|
flex-direction: column;
|
|
@@ -305,27 +432,32 @@ body {
|
|
|
305
432
|
width: calc(100% - 60px);
|
|
306
433
|
}
|
|
307
434
|
|
|
308
|
-
#modal.fit-content {
|
|
435
|
+
#modal.fit-content, #backdrop .modal-box.fit-content {
|
|
309
436
|
width: auto;
|
|
310
437
|
}
|
|
311
438
|
|
|
312
|
-
#modal.
|
|
439
|
+
#modal.full, #backdrop .modal-box.full {
|
|
440
|
+
width: 100%;
|
|
441
|
+
height: 100%;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
#modal.large, #backdrop .modal-box.large {
|
|
313
445
|
max-width: 1000px;
|
|
314
446
|
}
|
|
315
447
|
|
|
316
|
-
#modal.medium {
|
|
448
|
+
#modal.medium, #backdrop .modal-box.medium {
|
|
317
449
|
max-width: 800px;
|
|
318
450
|
}
|
|
319
451
|
|
|
320
|
-
#modal.small {
|
|
452
|
+
#modal.small, #backdrop .modal-box.small {
|
|
321
453
|
max-width: 600px;
|
|
322
454
|
}
|
|
323
455
|
|
|
324
|
-
#modal.visible {
|
|
456
|
+
#modal.visible, #backdrop.visible .modal-box {
|
|
325
457
|
transform: scale(1);
|
|
326
458
|
}
|
|
327
459
|
|
|
328
|
-
#rightPanel {
|
|
460
|
+
#rightPanel, #backdrop .right-panel-box {
|
|
329
461
|
position: fixed;
|
|
330
462
|
display: flex;
|
|
331
463
|
flex-direction: column;
|
|
@@ -338,25 +470,45 @@ body {
|
|
|
338
470
|
border-bottom-left-radius: 1rem;
|
|
339
471
|
}
|
|
340
472
|
|
|
341
|
-
#rightPanel.small {
|
|
473
|
+
#rightPanel.small, #backdrop .right-panel-box.small {
|
|
342
474
|
right: -400px;
|
|
343
475
|
width: 400px;
|
|
344
476
|
}
|
|
345
477
|
|
|
346
|
-
#rightPanel.medium {
|
|
478
|
+
#rightPanel.medium, #backdrop .right-panel-box.medium {
|
|
347
479
|
right: -600px;
|
|
348
480
|
width: 600px;
|
|
349
481
|
}
|
|
350
482
|
|
|
351
|
-
#rightPanel.large {
|
|
483
|
+
#rightPanel.large, #backdrop .right-panel-box.large {
|
|
352
484
|
right: -800px;
|
|
353
485
|
width: 800px;
|
|
354
486
|
}
|
|
355
487
|
|
|
356
|
-
#rightPanel.
|
|
488
|
+
#rightPanel.extra-large, #backdrop .right-panel-box.extra-large {
|
|
489
|
+
right: -800px;
|
|
490
|
+
width: 70%;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
#rightPanel.visible, #backdrop.visible .right-panel-box {
|
|
357
494
|
right: 0;
|
|
358
495
|
}
|
|
359
496
|
|
|
497
|
+
#modal .modal-instance,
|
|
498
|
+
#rightPanel .right-panel-instance {
|
|
499
|
+
flex-direction: column;
|
|
500
|
+
flex: 1;
|
|
501
|
+
overflow: hidden;
|
|
502
|
+
display: none;
|
|
503
|
+
&.active {
|
|
504
|
+
display: flex;
|
|
505
|
+
}
|
|
506
|
+
&.disabled {
|
|
507
|
+
pointer-events: none;
|
|
508
|
+
opacity: 0.7;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
|
|
360
512
|
#bottomPanel {
|
|
361
513
|
position: fixed;
|
|
362
514
|
display: flex;
|
|
@@ -398,8 +550,11 @@ body {
|
|
|
398
550
|
}
|
|
399
551
|
|
|
400
552
|
/* Overlay: toaster */
|
|
553
|
+
.container-toaster {
|
|
554
|
+
margin-top: var(--header-height);
|
|
555
|
+
}
|
|
401
556
|
|
|
402
|
-
.main-toaster
|
|
557
|
+
.main-toaster h2 {
|
|
403
558
|
font-size: 14px;
|
|
404
559
|
font-weight: 500;
|
|
405
560
|
margin: 0 0 8px 0;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
2
|
+
|
|
3
|
+
export const StarFillWithGradient = ({ className, id, style }: { className?: string, id?: string, style?: React.CSSProperties }) => (
|
|
4
|
+
<svg viewBox="0 0 512 512" className={className} id={id} style={style} width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<defs>
|
|
6
|
+
<linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
7
|
+
<stop offset="0%" style={{ 'stopColor':'#FF9900', 'stopOpacity': 1 }}/>
|
|
8
|
+
<stop offset="100%" style={{ 'stopColor':'#FF6633', 'stopOpacity': 1 }}/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
</defs>
|
|
11
|
+
<path d="M226.885 21.9523C231.432 9.88404 242.98 1.91992 255.85 1.91992C268.719 1.91992 280.268 9.88408 284.814 21.9523C284.863 22.0812 284.91 22.2105 284.956 22.3403L335.667 165.876L478.048 165.876H478.049C490.986 165.876 502.581 173.922 507.079 186.08C511.579 198.245 508.006 211.912 498.152 220.324C498.075 220.39 497.997 220.456 497.918 220.521L377.676 320.039L428.087 471.216L428.091 471.226C432.349 484.019 427.824 498.078 416.935 505.998C406.055 513.912 391.305 513.892 380.445 505.949L380.435 505.941L255.825 414.67L131.151 505.944L131.075 506C131.045 506.021 131.016 506.042 130.987 506.063C120.124 513.848 105.488 513.783 94.6943 505.902C83.8927 498.015 79.374 484.073 83.5272 471.34C83.5408 471.299 83.5545 471.257 83.5683 471.216L133.979 320.041L13.7166 220.522C13.6378 220.457 13.5595 220.391 13.4817 220.324C3.62771 211.912 0.054518 198.245 4.55486 186.08C9.05287 173.922 20.6475 165.876 33.5842 165.876H33.5857L175.992 165.876L226.745 22.3356C226.791 22.2074 226.837 22.0796 226.885 21.9523Z" />
|
|
12
|
+
</svg>
|
|
13
|
+
)
|
|
14
|
+
|