@semcore/side-panel 17.2.1 → 17.2.2-prerelease.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [17.2.2] - 2026-07-09
6
+
7
+ ### Fixed
8
+
9
+ - Rewrite component to TS. Deprecate atomic types. Atomic types are part
10
+ of `NSSidePanel` namespace.
11
+
5
12
  ## [17.2.1] - 2026-06-26
6
13
 
7
14
  ### Fixed
@@ -25,21 +25,21 @@ var _typography = require("@semcore/typography");
25
25
  var _react = _interopRequireDefault(require("react"));
26
26
  var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
27
27
  /*!__reshadow-styles__:"./style/side-panel.shadow.css"*/
28
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SOverlay_1842c_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;overflow:hidden;background:var(--intergalactic-overlay-primary,#00060356);-webkit-overflow-scrolling:touch;color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}@media (color-gamut:p3){.___SOverlay_1842c_gg_{background:var(--intergalactic-overlay-primary,oklch(.109 .023 165.5/.337))}}.___SPanel_1842c_gg_{display:flex;flex-direction:column;width:260px;outline:none;font-family:inherit;position:fixed;box-sizing:border-box;will-change:transform;background:var(--intergalactic-bg-primary-neutral,oklch(1 0 0));z-index:1}.___SPanel_1842c_gg_._placement_top_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-bottom:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_top_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_right_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-left:auto;top:0;right:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_right_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_bottom_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-top:auto;bottom:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_bottom_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_left_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-right:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_left_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SClose_1842c_gg_{position:absolute;z-index:1;right:var(--intergalactic-spacing-2x,8px);top:var(--intergalactic-spacing-2x,8px)}.___SClose_1842c_gg_ .___SAddon_1842c_gg_:only-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px);margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SBack_1842c_gg_{max-width:100%}.___SHeader_1842c_gg_{padding-left:var(--intergalactic-spacing-6x,24px);margin-bottom:var(--intergalactic-spacing-1x,4px);padding-right:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-4x, 16px));margin-top:var(--intergalactic-spacing-1x,4px);min-height:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-3x, 12px));box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box;flex-shrink:0}@media (color-gamut:p3){.___SHeader_1842c_gg_{box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SFooter_1842c_gg_{min-height:44px;box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box}@media (color-gamut:p3){.___SFooter_1842c_gg_{box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SBody_1842c_gg_{height:100%;overflow:auto;padding:var(--intergalactic-spacing-4x,16px) var(--intergalactic-spacing-6x,24px)}", /*__inner_css_end__*/"1842c_gg_"),
28
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SOverlay_di9xj_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;overflow:hidden;background:var(--intergalactic-overlay-primary,#00060356);-webkit-overflow-scrolling:touch;color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}@media (color-gamut:p3){.___SOverlay_di9xj_gg_{background:var(--intergalactic-overlay-primary,oklch(.109 .023 165.5/.337))}}.___SPanel_di9xj_gg_{display:flex;flex-direction:column;width:260px;outline:none;font-family:inherit;position:fixed;box-sizing:border-box;will-change:transform;background:var(--intergalactic-bg-primary-neutral,oklch(1 0 0));z-index:1}.___SPanel_di9xj_gg_._placement_top_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-bottom:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_top_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_right_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-left:auto;top:0;right:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_right_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_bottom_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-top:auto;bottom:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_bottom_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_left_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-right:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_left_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SClose_di9xj_gg_{position:absolute;z-index:1;right:var(--intergalactic-spacing-2x,8px);top:var(--intergalactic-spacing-2x,8px)}.___SClose_di9xj_gg_ .___SAddon_di9xj_gg_:only-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px);margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SBack_di9xj_gg_{max-width:100%}.___SHeader_di9xj_gg_{padding-left:var(--intergalactic-spacing-6x,24px);margin-bottom:var(--intergalactic-spacing-1x,4px);padding-right:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-4x, 16px));margin-top:var(--intergalactic-spacing-1x,4px);min-height:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-3x, 12px));box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box;flex-shrink:0}@media (color-gamut:p3){.___SHeader_di9xj_gg_{box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SFooter_di9xj_gg_{min-height:44px;box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box}@media (color-gamut:p3){.___SFooter_di9xj_gg_{box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SBody_di9xj_gg_{height:100%;overflow:auto;padding:var(--intergalactic-spacing-4x,16px) var(--intergalactic-spacing-6x,24px)}", /*__inner_css_end__*/"di9xj_gg_"),
29
29
  /*__reshadow_css_end__*/
30
30
  {
31
- "__SOverlay": "___SOverlay_1842c_gg_",
32
- "__SPanel": "___SPanel_1842c_gg_",
33
- "_placement_top": "_placement_top_1842c_gg_",
34
- "_placement_right": "_placement_right_1842c_gg_",
35
- "_placement_bottom": "_placement_bottom_1842c_gg_",
36
- "_placement_left": "_placement_left_1842c_gg_",
37
- "__SBack": "___SBack_1842c_gg_",
38
- "__SHeader": "___SHeader_1842c_gg_",
39
- "__SFooter": "___SFooter_1842c_gg_",
40
- "__SBody": "___SBody_1842c_gg_",
41
- "__SClose": "___SClose_1842c_gg_",
42
- "__SAddon": "___SAddon_1842c_gg_"
31
+ "__SOverlay": "___SOverlay_di9xj_gg_",
32
+ "__SPanel": "___SPanel_di9xj_gg_",
33
+ "_placement_top": "_placement_top_di9xj_gg_",
34
+ "_placement_right": "_placement_right_di9xj_gg_",
35
+ "_placement_bottom": "_placement_bottom_di9xj_gg_",
36
+ "_placement_left": "_placement_left_di9xj_gg_",
37
+ "__SBack": "___SBack_di9xj_gg_",
38
+ "__SHeader": "___SHeader_di9xj_gg_",
39
+ "__SFooter": "___SFooter_di9xj_gg_",
40
+ "__SBody": "___SBody_di9xj_gg_",
41
+ "__SClose": "___SClose_di9xj_gg_",
42
+ "__SAddon": "___SAddon_di9xj_gg_"
43
43
  });
44
44
  class RootSidePanel extends _core.Component {
45
45
  constructor(...args) {
@@ -125,6 +125,9 @@ class RootSidePanel extends _core.Component {
125
125
  (0, _defineProperty2.default)(RootSidePanel, "enhance", [(0, _useCssVariable.cssVariableEnhance)({
126
126
  variable: '--intergalactic-duration-modal',
127
127
  fallback: '200',
128
+ // TODO: Types are incompatible. For some reason string type doesn't recognized as a valid value.
129
+ // Leave it with ts-ignore annotation.
130
+ // @ts-ignore
128
131
  map: Number.parseInt,
129
132
  prop: 'duration'
130
133
  }), (0, _i18nEnhance.default)(_intergalacticDynamicLocales.localizedMessages)]);
@@ -165,7 +168,7 @@ function Panel(props) {
165
168
  const sidebarRef = _react.default.useRef(null);
166
169
  (0, _useFocusLock.useFocusLock)(sidebarRef, true, 'auto', !visible, true);
167
170
  const hasLabel = Boolean(props['aria-label'] || props['aria-labelledby']);
168
- _logger.default.warn(!hasLabel, '\'aria-label\' or \'aria-labelledby\' are required for SidePanel component', props['data-ui-name'] || Panel.displayName);
171
+ _logger.default.warn(!hasLabel, '\'aria-label\' or \'aria-labelledby\' are required for SidePanel component', props['data-ui-name']);
169
172
  return _ref1 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, visible && /*#__PURE__*/_react.default.createElement(_baseComponents.OutsideClick, _ref1.cn("OutsideClick", {
170
173
  "onOutsideClick": onOutsideClick,
171
174
  "excludeRefs": [sidebarRef]
@@ -194,14 +197,15 @@ function Footer(props) {
194
197
  }, _ref4)
195
198
  }));
196
199
  }
197
- function Close({
198
- styles,
199
- children: hasChildren,
200
- Children,
201
- getI18nText
202
- }) {
200
+ function Close(props) {
203
201
  var _ref5 = arguments[0],
204
202
  _ref11;
203
+ const {
204
+ styles,
205
+ children: hasChildren,
206
+ Children,
207
+ getI18nText
208
+ } = props;
205
209
  const SClose = _button.default;
206
210
  return _ref11 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SClose, _ref11.cn("SClose", {
207
211
  ...(0, _core.assignProps)({
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanel.js","names":["_core","require","_baseComponents","_button","_interopRequireWildcard","_i18nEnhance","_interopRequireDefault","_findComponent","_fire","_logger","_ThemeProvider","_useFocusLock","_usePreventScroll","_useCssVariable","_zIndexStacking","_m","_l","_typography","_react","_intergalacticDynamicLocales","style","sstyled","insert","RootSidePanel","Component","constructor","args","_defineProperty2","default","React","createRef","e","key","stopPropagation","fire","isAdvanceMode","asProps","Children","SidePanel","Overlay","displayName","Panel","isUsedOverlay","getOverlayProps","visible","duration","animationsDisabled","disablePreventScroll","getPanelProps","placement","closable","ariaLabel","ariaLabelledBy","handleOutsideClick","handleSidebarKeyDown","getCloseProps","onClick","handleIconCloseClick","getI18nText","render","_ref","disablePortal","ignorePortalsStacking","createElement","Portal","assignProps","cssVariableEnhance","variable","fallback","map","Number","parseInt","prop","i18nEnhance","localizedMessages","props","_ref2","arguments[0]","_ref0","SOverlay","FadeInOut","overlayRef","useRef","usePreventScroll","useContextTheme","zIndex","useZIndexStacking","styles","cn","_ref3","_ref1","SPanel","Slide","onOutsideClick","forcedAdvancedMode","advancedMode","Header","Body","Footer","sidebarRef","useFocusLock","hasLabel","Boolean","logger","warn","Fragment","OutsideClick","ZIndexStackingContextProvider","PortalProvider","Close","_ref4","_ref10","SFooter","Flex","children","hasChildren","_ref5","_ref11","SClose","Button","undefined","CloseIcon","Title","_ref6","_ref12","STitle","Text","Back","_ref7","_ref13","SBack","ButtonLink","ArrowLeft","ellipsis","_ref8","_ref14","SBody","Box","_ref9","_ref15","SHeader","title","createComponent","_default","exports"],"sources":["../../src/SidePanel.jsx"],"sourcesContent":["import { FadeInOut, Slide, Flex, Box, OutsideClick, PortalProvider, Portal } from '@semcore/base-components';\nimport Button, { ButtonLink } from '@semcore/button';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport fire from '@semcore/core/lib/utils/fire';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';\nimport { useFocusLock } from '@semcore/core/lib/utils/use/useFocusLock';\nimport usePreventScroll from '@semcore/core/lib/utils/use/usePreventScroll';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport {\n ZIndexStackingContextProvider,\n useZIndexStacking,\n} from '@semcore/core/lib/utils/zIndexStacking';\nimport ArrowLeft from '@semcore/icon/ArrowLeft/m';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/side-panel.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nclass RootSidePanel extends Component {\n static displayName = 'SidePanel';\n static style = style;\n static enhance = [\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n i18nEnhance(localizedMessages),\n ];\n\n static defaultProps = {\n placement: 'right',\n closable: true,\n disablePreventScroll: false,\n };\n\n sidebarRef = React.createRef();\n\n handleSidebarKeyDown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n isAdvanceMode() {\n return isAdvanceMode(this.asProps.Children, [\n SidePanel.Overlay.displayName,\n SidePanel.Panel.displayName,\n ]);\n }\n\n isUsedOverlay() {\n return (\n !this.isAdvanceMode() || isAdvanceMode(this.asProps.Children, [SidePanel.Overlay.displayName])\n );\n }\n\n getOverlayProps() {\n const { visible, duration, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n visible,\n duration,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getPanelProps() {\n const {\n placement,\n visible,\n closable,\n duration,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n } = this.asProps;\n\n return {\n visible,\n placement,\n closable,\n 'duration': duration + duration / 2,\n 'disableEnforceFocus': !this.isUsedOverlay(),\n 'onOutsideClick': this.handleOutsideClick,\n 'onKeyDown': this.handleSidebarKeyDown,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n };\n }\n\n getCloseProps() {\n return {\n onClick: this.handleIconCloseClick,\n getI18nText: this.asProps.getI18nText,\n };\n }\n\n render() {\n const { Children, disablePortal, ignorePortalsStacking } = this.asProps;\n\n return (\n <Portal disablePortal={disablePortal} ignorePortalsStacking={ignorePortalsStacking}>\n {this.isAdvanceMode()\n ? (\n <Children />\n )\n : (\n <SidePanel.Overlay>\n <Root render={SidePanel.Panel} />\n </SidePanel.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Overlay(props) {\n const SOverlay = Root;\n const overlayRef = React.useRef(null);\n usePreventScroll(props.visible, props.disablePreventScroll);\n useContextTheme(overlayRef, props.visible);\n const zIndex = useZIndexStacking('z-index-modal');\n return sstyled(props.styles)(<SOverlay render={FadeInOut} ref={overlayRef} zIndex={zIndex} />);\n}\n\nfunction Panel(props) {\n const SPanel = Root;\n const { Children, styles, visible, closable, placement, onOutsideClick, forcedAdvancedMode } =\n props;\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [\n SidePanel.Header.displayName,\n SidePanel.Body.displayName,\n SidePanel.Footer.displayName,\n ]);\n\n const sidebarRef = React.useRef(null);\n\n useFocusLock(sidebarRef, true, 'auto', !visible, true);\n\n const hasLabel = Boolean(props['aria-label'] || props['aria-labelledby']);\n\n logger.warn(\n !hasLabel,\n '\\'aria-label\\' or \\'aria-labelledby\\' are required for SidePanel component',\n props['data-ui-name'] || Panel.displayName,\n );\n\n return sstyled(styles)(\n <>\n {visible && <OutsideClick onOutsideClick={onOutsideClick} excludeRefs={[sidebarRef]} />}\n <SPanel\n render={Slide}\n visible={visible}\n initialAnimation={true}\n slideOrigin={placement}\n ref={sidebarRef}\n role='dialog'\n aria-modal='true'\n >\n <ZIndexStackingContextProvider designToken='z-index-modal'>\n <PortalProvider value={sidebarRef}>\n {closable && <SidePanel.Close />}\n {advancedMode\n ? (\n <Children />\n )\n : (\n <SidePanel.Body>\n <Children />\n </SidePanel.Body>\n )}\n </PortalProvider>\n </ZIndexStackingContextProvider>\n </SPanel>\n </>,\n );\n}\n\nfunction Footer(props) {\n const SFooter = Root;\n return sstyled(props.styles)(<SFooter render={Flex} tag='footer' />);\n}\n\nfunction Close({ styles, children: hasChildren, Children, getI18nText }) {\n const SClose = Root;\n return sstyled(styles)(\n <SClose\n render={Button}\n aria-label={getI18nText('close')}\n use='tertiary'\n theme='muted'\n size='l'\n addonLeft={hasChildren ? undefined : CloseIcon}\n data-hide-focus-hover-popper='true'\n >\n {hasChildren ? <Children /> : undefined}\n </SClose>,\n );\n}\n\nfunction Title(props) {\n const STitle = Root;\n return sstyled(props.styles)(<STitle render={Text} tag='h6' size={300} bold ellipsis />);\n}\n\nfunction Back(props) {\n const SBack = Root;\n const { Children, styles } = props;\n\n return sstyled(styles)(\n <SBack render={ButtonLink} color='text-hint' size={100} addonLeft={ArrowLeft}>\n <ButtonLink.Text ellipsis>\n <Children />\n </ButtonLink.Text>\n </SBack>,\n );\n}\n\nfunction Body(props) {\n const SBody = Root;\n\n return sstyled(props.styles)(<SBody render={Box} />);\n}\n\nfunction Header(props) {\n const SHeader = Root;\n const { Children, styles, title } = props;\n return sstyled(styles)(\n <SHeader render={Box} tag='header'>\n {title && <SidePanel.Title children={title} />}\n <Children />\n </SHeader>,\n );\n}\n\n/**\n * SidePanel\n *\n * {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-api/|API} | {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-code/|Examples}\n */\nconst SidePanel = createComponent(RootSidePanel, {\n Overlay,\n Panel,\n Close,\n Header,\n Footer,\n Body,\n Back,\n Title,\n});\n\nexport default SidePanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SidePanel.js","names":["_core","require","_baseComponents","_button","_interopRequireWildcard","_i18nEnhance","_interopRequireDefault","_findComponent","_fire","_logger","_ThemeProvider","_useFocusLock","_usePreventScroll","_useCssVariable","_zIndexStacking","_m","_l","_typography","_react","_intergalacticDynamicLocales","style","sstyled","insert","RootSidePanel","Component","constructor","args","_defineProperty2","default","React","createRef","e","key","stopPropagation","fire","isAdvanceMode","asProps","Children","SidePanel","Overlay","displayName","Panel","isUsedOverlay","getOverlayProps","visible","duration","animationsDisabled","disablePreventScroll","getPanelProps","placement","closable","ariaLabel","ariaLabelledBy","handleOutsideClick","handleSidebarKeyDown","getCloseProps","onClick","handleIconCloseClick","getI18nText","render","_ref","disablePortal","ignorePortalsStacking","createElement","Portal","assignProps","cssVariableEnhance","variable","fallback","map","Number","parseInt","prop","i18nEnhance","localizedMessages","props","_ref2","arguments[0]","_ref0","SOverlay","FadeInOut","overlayRef","useRef","usePreventScroll","useContextTheme","zIndex","useZIndexStacking","styles","cn","_ref3","_ref1","SPanel","Slide","onOutsideClick","forcedAdvancedMode","advancedMode","Header","Body","Footer","sidebarRef","useFocusLock","hasLabel","Boolean","logger","warn","Fragment","OutsideClick","ZIndexStackingContextProvider","PortalProvider","Close","_ref4","_ref10","SFooter","Flex","_ref5","_ref11","children","hasChildren","SClose","Button","undefined","CloseIcon","Title","_ref6","_ref12","STitle","Text","Back","_ref7","_ref13","SBack","ButtonLink","ArrowLeft","ellipsis","_ref8","_ref14","SBody","Box","_ref9","_ref15","SHeader","title","createComponent","_default","exports"],"sources":["../../src/SidePanel.tsx"],"sourcesContent":["import { FadeInOut, Slide, Flex, Box, OutsideClick, PortalProvider, Portal } from '@semcore/base-components';\nimport Button, { ButtonLink } from '@semcore/button';\nimport type { Intergalactic } from '@semcore/core';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport fire from '@semcore/core/lib/utils/fire';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';\nimport { useFocusLock } from '@semcore/core/lib/utils/use/useFocusLock';\nimport usePreventScroll from '@semcore/core/lib/utils/use/usePreventScroll';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport {\n ZIndexStackingContextProvider,\n useZIndexStacking,\n} from '@semcore/core/lib/utils/zIndexStacking';\nimport ArrowLeft from '@semcore/icon/ArrowLeft/m';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport type { NSSidePanel } from './SidePanel.type';\nimport style from './style/side-panel.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nclass RootSidePanel extends Component<\n Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Component>,\n typeof RootSidePanel.enhance,\n {},\n {},\n {},\n NSSidePanel.DefaultProps\n> {\n static displayName = 'SidePanel';\n static style = style;\n static enhance = [\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n // TODO: Types are incompatible. For some reason string type doesn't recognized as a valid value.\n // Leave it with ts-ignore annotation.\n // @ts-ignore\n map: Number.parseInt,\n prop: 'duration',\n }),\n i18nEnhance(localizedMessages),\n ] as const;\n\n static defaultProps = {\n placement: 'right',\n closable: true,\n disablePreventScroll: false,\n } as const;\n\n sidebarRef = React.createRef<HTMLDivElement>();\n\n handleSidebarKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e: React.MouseEvent<HTMLDivElement>) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n isAdvanceMode() {\n return isAdvanceMode(this.asProps.Children, [\n SidePanel.Overlay.displayName,\n SidePanel.Panel.displayName,\n ]);\n }\n\n isUsedOverlay() {\n return (\n !this.isAdvanceMode() || isAdvanceMode(this.asProps.Children, [SidePanel.Overlay.displayName])\n );\n }\n\n getOverlayProps() {\n const { visible, duration, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n visible,\n duration,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getPanelProps() {\n const {\n placement,\n visible,\n closable,\n duration,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n } = this.asProps;\n\n return {\n visible,\n placement,\n closable,\n 'duration': duration + duration / 2,\n 'disableEnforceFocus': !this.isUsedOverlay(),\n 'onOutsideClick': this.handleOutsideClick,\n 'onKeyDown': this.handleSidebarKeyDown,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n };\n }\n\n getCloseProps() {\n return {\n onClick: this.handleIconCloseClick,\n getI18nText: this.asProps.getI18nText,\n };\n }\n\n render() {\n const { Children, disablePortal, ignorePortalsStacking } = this.asProps;\n\n return (\n <Portal disablePortal={disablePortal} ignorePortalsStacking={ignorePortalsStacking}>\n {this.isAdvanceMode()\n ? (\n <Children />\n )\n : (\n <SidePanel.Overlay>\n <Root render={SidePanel.Panel} />\n </SidePanel.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Overlay(\n props: Intergalactic.InternalTypings.InferChildComponentProps<NSSidePanel.Overlay.Component, typeof RootSidePanel, 'Overlay'>,\n) {\n const SOverlay = Root;\n const overlayRef = React.useRef(null);\n usePreventScroll(props.visible, props.disablePreventScroll);\n useContextTheme(overlayRef, props.visible);\n const zIndex = useZIndexStacking('z-index-modal');\n return sstyled(props.styles)(<SOverlay render={FadeInOut} ref={overlayRef} zIndex={zIndex} />);\n}\n\nfunction Panel(\n props: Intergalactic.InternalTypings.InferChildComponentProps<NSSidePanel.Panel.Component, typeof RootSidePanel, 'Panel'>,\n) {\n const SPanel = Root;\n const { Children, styles, visible, closable, placement, onOutsideClick, forcedAdvancedMode } = props;\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [\n SidePanel.Header.displayName,\n SidePanel.Body.displayName,\n SidePanel.Footer.displayName,\n ]);\n\n const sidebarRef = React.useRef(null);\n\n useFocusLock(sidebarRef, true, 'auto', !visible, true);\n\n const hasLabel = Boolean(props['aria-label'] || props['aria-labelledby']);\n\n logger.warn(\n !hasLabel,\n '\\'aria-label\\' or \\'aria-labelledby\\' are required for SidePanel component',\n props['data-ui-name'],\n );\n\n return sstyled(styles)(\n <>\n {visible && <OutsideClick onOutsideClick={onOutsideClick} excludeRefs={[sidebarRef]} />}\n <SPanel\n render={Slide}\n visible={visible}\n initialAnimation={true}\n slideOrigin={placement}\n ref={sidebarRef}\n role='dialog'\n aria-modal='true'\n >\n <ZIndexStackingContextProvider designToken='z-index-modal'>\n <PortalProvider value={sidebarRef}>\n {closable && <SidePanel.Close />}\n {advancedMode\n ? (\n <Children />\n )\n : (\n <SidePanel.Body>\n <Children />\n </SidePanel.Body>\n )}\n </PortalProvider>\n </ZIndexStackingContextProvider>\n </SPanel>\n </>,\n );\n}\n\nfunction Footer(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Footer.Component>,\n) {\n const SFooter = Root;\n return sstyled(props.styles)(<SFooter render={Flex} tag='footer' />);\n}\n\nfunction Close(\n props: Intergalactic.InternalTypings.InferChildComponentProps<NSSidePanel.Close.Component, typeof RootSidePanel, 'Close'>,\n) {\n const { styles, children: hasChildren, Children, getI18nText } = props;\n const SClose = Root;\n return sstyled(styles)(\n <SClose\n render={Button}\n aria-label={getI18nText('close')}\n use='tertiary'\n theme='muted'\n size='l'\n addonLeft={hasChildren ? undefined : CloseIcon}\n data-hide-focus-hover-popper='true'\n >\n {hasChildren ? <Children /> : undefined}\n </SClose>,\n );\n}\n\nfunction Title(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Title.Component>,\n) {\n const STitle = Root;\n return sstyled(props.styles)(<STitle render={Text} tag='h6' size={300} bold ellipsis />);\n}\n\nfunction Back(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Back.Component>,\n) {\n const SBack = Root;\n const { Children, styles } = props;\n\n return sstyled(styles)(\n <SBack render={ButtonLink} color='text-hint' size={100} addonLeft={ArrowLeft}>\n <ButtonLink.Text ellipsis>\n <Children />\n </ButtonLink.Text>\n </SBack>,\n );\n}\n\nfunction Body(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Body.Component>,\n) {\n const SBody = Root;\n\n return sstyled(props.styles)(<SBody render={Box} />);\n}\n\nfunction Header(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Header.Component>,\n) {\n const SHeader = Root;\n const { Children, styles, title } = props;\n return sstyled(styles)(\n <SHeader render={Box} tag='header'>\n {title && <SidePanel.Title children={title} />}\n <Children />\n </SHeader>,\n );\n}\n\n/**\n * SidePanel\n *\n * {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-api/|API} | {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-code/|Examples}\n */\nconst SidePanel = createComponent<\n NSSidePanel.Component,\n typeof RootSidePanel\n>(RootSidePanel, {\n Overlay,\n Panel,\n Close,\n Header,\n Footer,\n Body,\n Back,\n Title,\n});\n\nexport default SidePanel;\n"],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,uBAAA,CAAAH,OAAA;AAGA,IAAAI,YAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,OAAA,GAAAH,sBAAA,CAAAL,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,iBAAA,GAAAN,sBAAA,CAAAL,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AAIA,IAAAc,EAAA,GAAAT,sBAAA,CAAAL,OAAA;AACA,IAAAe,EAAA,GAAAV,sBAAA,CAAAL,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,MAAA,GAAAZ,sBAAA,CAAAL,OAAA;AAIA,IAAAkB,4BAAA,GAAAlB,OAAA;AAAmF;AAAA,MAAAmB,KAAA,8BAAApB,KAAA,CAAAqB,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAEnF,MAAMC,aAAa,SAASC,eAAS,CAOnC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,mCAsBaC,cAAK,CAACC,SAAS,CAAiB,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,gCAEtBG,CAAsC,IAAK;MACjE,IAAIA,CAAC,CAACC,GAAG,KAAK,QAAQ,EAAE;QACtBD,CAAC,CAACE,eAAe,CAAC,CAAC;QACnB,IAAAC,aAAI,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAEH,CAAC,CAAC;MACtC;IACF,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,gCAEuBG,CAAsC,IAAK;MACjE,IAAAG,aAAI,EAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAEH,CAAC,CAAC;IAC1C,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,8BAEqBG,CAAmC,IAAK;MAC5D,IAAAG,aAAI,EAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAEH,CAAC,CAAC;IAC5C,CAAC;EAAA;EAEDI,aAAaA,CAAA,EAAG;IACd,OAAO,IAAAA,4BAAa,EAAC,IAAI,CAACC,OAAO,CAACC,QAAQ,EAAE,CAC1CC,SAAS,CAACC,OAAO,CAACC,WAAW,EAC7BF,SAAS,CAACG,KAAK,CAACD,WAAW,CAC5B,CAAC;EACJ;EAEAE,aAAaA,CAAA,EAAG;IACd,OACE,CAAC,IAAI,CAACP,aAAa,CAAC,CAAC,IAAI,IAAAA,4BAAa,EAAC,IAAI,CAACC,OAAO,CAACC,QAAQ,EAAE,CAACC,SAAS,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC;EAElG;EAEAG,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAEC,OAAO;MAAEC,QAAQ;MAAEC,kBAAkB;MAAEC;IAAqB,CAAC,GAAG,IAAI,CAACX,OAAO;IACpF,OAAO;MACLQ,OAAO;MACPC,QAAQ;MACRC,kBAAkB;MAClBC;IACF,CAAC;EACH;EAEAC,aAAaA,CAAA,EAAG;IACd,MAAM;MACJC,SAAS;MACTL,OAAO;MACPM,QAAQ;MACRL,QAAQ;MACRC,kBAAkB;MAClB,YAAY,EAAEK,SAAS;MACvB,iBAAiB,EAAEC;IACrB,CAAC,GAAG,IAAI,CAAChB,OAAO;IAEhB,OAAO;MACLQ,OAAO;MACPK,SAAS;MACTC,QAAQ;MACR,UAAU,EAAEL,QAAQ,GAAGA,QAAQ,GAAG,CAAC;MACnC,qBAAqB,EAAE,CAAC,IAAI,CAACH,aAAa,CAAC,CAAC;MAC5C,gBAAgB,EAAE,IAAI,CAACW,kBAAkB;MACzC,WAAW,EAAE,IAAI,CAACC,oBAAoB;MACtCR,kBAAkB;MAClB,YAAY,EAAEK,SAAS;MACvB,iBAAiB,EAAEC;IACrB,CAAC;EACH;EAEAG,aAAaA,CAAA,EAAG;IACd,OAAO;MACLC,OAAO,EAAE,IAAI,CAACC,oBAAoB;MAClCC,WAAW,EAAE,IAAI,CAACtB,OAAO,CAACsB;IAC5B,CAAC;EACH;EAEAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAAxB,OAAA;IACP,MAAM;MAAEC,QAAQ;MAAEwB,aAAa;MAAEC;IAAsB,CAAC,GAAG,IAAI,CAAC1B,OAAO;IAEvE,oBACElB,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC7D,eAAA,CAAA8D,MAAM;MAACH,aAAa,EAAEA,aAAc;MAACC,qBAAqB,EAAEA;IAAsB,GAChF,IAAI,CAAC3B,aAAa,CAAC,CAAC,gBAEfjB,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC1B,QAAQ,MAAE,CAAC,gBAGZnB,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACzB,SAAS,CAACC,OAAO,qBAChBrB,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAczB,SAAS,CAACG,KAAK,MAAAzC,KAAA,CAAAiE,WAAA,MAAAL,IAAA,CAAG,CACf,CAEnB,CAAC;EAEb;AACF;AAAC,IAAAjC,gBAAA,CAAAC,OAAA,EAtHKL,aAAa,iBAQI,WAAW;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAR5BL,aAAa,WASFH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EAThBL,aAAa,aAUA,CACf,IAAA2C,kCAAkB,EAAC;EACjBC,QAAQ,EAAE,gCAAgC;EAC1CC,QAAQ,EAAE,KAAK;EACf;EACA;EACA;EACAC,GAAG,EAAEC,MAAM,CAACC,QAAQ;EACpBC,IAAI,EAAE;AACR,CAAC,CAAC,EACF,IAAAC,oBAAW,EAACC,8CAAiB,CAAC,CAC/B;AAAA,IAAA/C,gBAAA,CAAAC,OAAA,EArBGL,aAAa,kBAuBK;EACpB0B,SAAS,EAAE,OAAO;EAClBC,QAAQ,EAAE,IAAI;EACdH,oBAAoB,EAAE;AACxB,CAAC;AA6FH,SAASR,OAAOA,CACdoC,KAA6H,EAC7H;EAAA,IAAAC,KAAA,GAAAC,YAAA;IAAAC,KAAA;EACA,MAAMC,QAAQ,GAKiCC,yBAAS;EAJxD,MAAMC,UAAU,GAAGpD,cAAK,CAACqD,MAAM,CAAC,IAAI,CAAC;EACrC,IAAAC,yBAAgB,EAACR,KAAK,CAAC/B,OAAO,EAAE+B,KAAK,CAAC5B,oBAAoB,CAAC;EAC3D,IAAAqC,8BAAe,EAACH,UAAU,EAAEN,KAAK,CAAC/B,OAAO,CAAC;EAC1C,MAAMyC,MAAM,GAAG,IAAAC,iCAAiB,EAAC,eAAe,CAAC;EACjD,OAAAR,KAAA,GAAO,IAAAzD,aAAO,EAACsD,KAAK,CAACY,MAAM,CAAC,eAACrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACgB,QAAQ,EAAAD,KAAA,CAAAU,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,OAAyBgB,UAAU;MAAA,UAAUI;IAAM,GAAAT,KAAA;EAAA,EAAG,CAAC;AAC/F;AAEA,SAASnC,KAAKA,CACZkC,KAAyH,EACzH;EAAA,IAAAc,KAAA,GAAAZ,YAAA;IAAAa,KAAA;EACA,MAAMC,MAAM,GA0BEC,qBAAK;EAzBnB,MAAM;IAAEvD,QAAQ;IAAEkD,MAAM;IAAE3C,OAAO;IAAEM,QAAQ;IAAED,SAAS;IAAE4C,cAAc;IAAEC;EAAmB,CAAC,GAAGnB,KAAK;EACpG,MAAMoB,YAAY,GAChBD,kBAAkB,IAClB,IAAA3D,4BAAa,EAACE,QAAQ,EAAE,CACtBC,SAAS,CAAC0D,MAAM,CAACxD,WAAW,EAC5BF,SAAS,CAAC2D,IAAI,CAACzD,WAAW,EAC1BF,SAAS,CAAC4D,MAAM,CAAC1D,WAAW,CAC7B,CAAC;EAEJ,MAAM2D,UAAU,GAAGtE,cAAK,CAACqD,MAAM,CAAC,IAAI,CAAC;EAErC,IAAAkB,0BAAY,EAACD,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAACvD,OAAO,EAAE,IAAI,CAAC;EAEtD,MAAMyD,QAAQ,GAAGC,OAAO,CAAC3B,KAAK,CAAC,YAAY,CAAC,IAAIA,KAAK,CAAC,iBAAiB,CAAC,CAAC;EAEzE4B,eAAM,CAACC,IAAI,CACT,CAACH,QAAQ,EACT,4EAA4E,EAC5E1B,KAAK,CAAC,cAAc,CACtB,CAAC;EAED,OAAAe,KAAA,GAAO,IAAArE,aAAO,EAACkE,MAAM,CAAC,eACpBrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAA7C,MAAA,CAAAU,OAAA,CAAA6E,QAAA,QACG7D,OAAO,iBAAI1B,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC7D,eAAA,CAAAwG,YAAY,EAAAhB,KAAA,CAAAF,EAAA;IAAA,kBAAiBK,cAAc;IAAA,eAAe,CAACM,UAAU;EAAC,EAAG,CAAC,eACvFjF,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC4B,MAAM,EAAAD,KAAA,CAAAF,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,WAEIrB,OAAO;MAAA,oBACE,IAAI;MAAA,eACTK,SAAS;MAAA,OACjBkD,UAAU;MAAA,QACV,QAAQ;MAAA,cACF;IAAM,GAAAV,KAAA;EAAA,iBAEjBvE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACjD,eAAA,CAAA6F,6BAA6B,EAAAjB,KAAA,CAAAF,EAAA;IAAA,eAAa;EAAe,iBACxDtE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC7D,eAAA,CAAA0G,cAAc,EAAAlB,KAAA,CAAAF,EAAA;IAAA,SAAQW;EAAU,IAC9BjD,QAAQ,iBAAIhC,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACzB,SAAS,CAACuE,KAAK,MAAE,CAAC,EAC/Bd,YAAY,gBAEP7E,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC1B,QAAQ,EAAAqD,KAAA,CAAAF,EAAA,gBAAE,CAAC,gBAGZtE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACzB,SAAS,CAAC2D,IAAI,qBACb/E,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC1B,QAAQ,EAAAqD,KAAA,CAAAF,EAAA,gBAAE,CACG,CAER,CACa,CACzB,CACR,CAAC;AAEP;AAEA,SAASU,MAAMA,CACbvB,KAAsF,EACtF;EAAA,IAAAmC,KAAA,GAAAjC,YAAA;IAAAkC,MAAA;EACA,MAAMC,OAAO,GACiCC,oBAAI;EAAlD,OAAAF,MAAA,GAAO,IAAA1F,aAAO,EAACsD,KAAK,CAACY,MAAM,CAAC,eAACrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACiD,OAAO,EAAAD,MAAA,CAAAvB,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,OAAmB;IAAQ,GAAA6C,KAAA;EAAA,EAAE,CAAC;AACrE;AAEA,SAASD,KAAKA,CACZlC,KAAyH,EACzH;EAAA,IAAAuC,KAAA,GAAArC,YAAA;IAAAsC,MAAA;EACA,MAAM;IAAE5B,MAAM;IAAE6B,QAAQ,EAAEC,WAAW;IAAEhF,QAAQ;IAAEqB;EAAY,CAAC,GAAGiB,KAAK;EACtE,MAAM2C,MAAM,GAGAC,eAAM;EAFlB,OAAAJ,MAAA,GAAO,IAAA9F,aAAO,EAACkE,MAAM,CAAC,eACpBrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACuD,MAAM,EAAAH,MAAA,CAAA3B,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,cAEOP,WAAW,CAAC,OAAO,CAAC;MAAA,OAC5B,UAAU;MAAA,SACR,OAAO;MAAA,QACR,GAAG;MAAA,aACG2D,WAAW,GAAGG,SAAS,GAAGC,UAAS;MAAA,gCACjB;IAAM,GAAAP,KAAA;EAAA,IAElCG,WAAW,gBAAGnG,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC1B,QAAQ,EAAA8E,MAAA,CAAA3B,EAAA,gBAAE,CAAC,GAAGgC,SACxB,CAAC;AAEb;AAEA,SAASE,KAAKA,CACZ/C,KAAqF,EACrF;EAAA,IAAAgD,KAAA,GAAA9C,YAAA;IAAA+C,MAAA;EACA,MAAMC,MAAM,GACiCC,gBAAI;EAAjD,OAAAF,MAAA,GAAO,IAAAvG,aAAO,EAACsD,KAAK,CAACY,MAAM,CAAC,eAACrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC8D,MAAM,EAAAD,MAAA,CAAApC,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,OAAmB,IAAI;MAAA,QAAO,GAAG;MAAA;MAAA;IAAA,GAAA0D,KAAA;EAAA,EAAiB,CAAC;AACzF;AAEA,SAASI,IAAIA,CACXpD,KAAoF,EACpF;EAAA,IAAAqD,KAAA,GAAAnD,YAAA;IAAAoD,MAAA;EACA,MAAMC,KAAK,GAIMC,kBAAU;EAH3B,MAAM;IAAE9F,QAAQ;IAAEkD;EAAO,CAAC,GAAGZ,KAAK;EAElC,OAAAsD,MAAA,GAAO,IAAA5G,aAAO,EAACkE,MAAM,CAAC,eACpBrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACmE,KAAK,EAAAD,MAAA,CAAAzC,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,SAA2B,WAAW;MAAA,QAAO,GAAG;MAAA,aAAamE;IAAS,GAAAJ,KAAA;EAAA,iBAC1E9G,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC5D,OAAA,CAAAgI,UAAU,CAACL,IAAI;IAACO,QAAQ;EAAA,gBACvBnH,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC1B,QAAQ,EAAA4F,MAAA,CAAAzC,EAAA,gBAAE,CACI,CACZ,CAAC;AAEZ;AAEA,SAASS,IAAIA,CACXtB,KAAoF,EACpF;EAAA,IAAA2D,KAAA,GAAAzD,YAAA;IAAA0D,MAAA;EACA,MAAMC,KAAK,GAEiCC,mBAAG;EAA/C,OAAAF,MAAA,GAAO,IAAAlH,aAAO,EAACsD,KAAK,CAACY,MAAM,CAAC,eAACrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACyE,KAAK,EAAAD,MAAA,CAAA/C,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA,MAAAqE,KAAA;EAAA,EAAe,CAAC;AACrD;AAEA,SAAStC,MAAMA,CACbrB,KAAsF,EACtF;EAAA,IAAA+D,KAAA,GAAA7D,YAAA;IAAA8D,MAAA;EACA,MAAMC,OAAO,GAGMH,mBAAG;EAFtB,MAAM;IAAEpG,QAAQ;IAAEkD,MAAM;IAAEsD;EAAM,CAAC,GAAGlE,KAAK;EACzC,OAAAgE,MAAA,GAAO,IAAAtH,aAAO,EAACkE,MAAM,CAAC,eACpBrE,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC6E,OAAO,EAAAD,MAAA,CAAAnD,EAAA;IAAA,OAAAxF,KAAA,CAAAiE,WAAA;MAAA,OAAkB;IAAQ,GAAAyE,KAAA;EAAA,IAC/BG,KAAK,iBAAI3H,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAACzB,SAAS,CAACoF,KAAK;IAACN,QAAQ,EAAEyB;EAAM,CAAE,CAAC,eAC9C3H,MAAA,CAAAU,OAAA,CAAAmC,aAAA,CAAC1B,QAAQ,EAAAsG,MAAA,CAAAnD,EAAA,gBAAE,CACJ,CAAC;AAEd;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMlD,SAAS,GAAG,IAAAwG,qBAAe,EAG/BvH,aAAa,EAAE;EACfgB,OAAO;EACPE,KAAK;EACLoE,KAAK;EACLb,MAAM;EACNE,MAAM;EACND,IAAI;EACJ8B,IAAI;EACJL;AACF,CAAC,CAAC;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAApH,OAAA,GAEYU,SAAS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=SidePanel.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidePanel.type.js","names":[],"sources":["../../src/SidePanel.type.ts"],"sourcesContent":["import type { FadeInOutProps, SlideProps, Box, BoxProps, Flex, PortalProps } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\ndeclare namespace NSSidePanel {\n type Props = PortalProps &\n BoxProps & {\n /** Animation display duration in ms\n * @default 350\n */\n duration?: number;\n /**\n * The property responsible for the visibility of the component\n */\n visible?: boolean;\n /**\n * Callback for the component closure\n */\n onClose?: (trigger: 'onOutsideClick' | 'onEscape' | 'onCloseClick', e?: React.MouseEvent | React.KeyboardEvent) => void;\n /**\n * Property for displaying the close button\n * @default true\n */\n closable?: boolean;\n /**\n * Position of a dropdown window\n * @default right\n */\n placement?: NSSidePanel.Placement;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when SidePanel is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n /**\n * Disable animation\n * @deprecated\n */\n animationsDisabled?: boolean;\n };\n type DefaultProps = {\n placement: 'right';\n closable: true;\n disablePreventScroll: false;\n };\n type Ctx = {\n getOverlayProps?: PropGetterFn;\n getPanelProps?: PropGetterFn;\n getCloseProps?: PropGetterFn;\n };\n type Placement = 'top' | 'left' | 'right' | 'bottom';\n\n namespace Header {\n type Props = BoxProps & {\n title?: React.ReactNode;\n };\n\n type Component = Intergalactic.Component<'div', Props>;\n }\n\n namespace Back {\n type Component = typeof Box;\n }\n\n namespace Body {\n type Component = typeof Box;\n }\n\n namespace Footer {\n type Component = typeof Flex;\n }\n\n namespace Title {\n type Component = typeof Text;\n }\n\n namespace Overlay {\n type Props = FadeInOutProps & BoxProps;\n\n type Component = Intergalactic.Component<'div', Props>;\n }\n\n namespace Panel {\n type Props = SlideProps &\n BoxProps & {\n /** Callback that is triggered when click outside is occured */\n onOutsideClick?: (e?: React.SyntheticEvent) => void;\n /**\n * Forces advanced mode\n * @deprecated It will be removed in v18.\n */\n forcedAdvancedMode?: boolean;\n };\n\n type Component = Intergalactic.Component<'div', Props>;\n }\n\n namespace Close {\n type Component = typeof Button;\n }\n\n type Component = Intergalactic.Component<'div', Props, Ctx> & {\n Header: Header.Component;\n Back: Back.Component;\n Body: Body.Component;\n Footer: Footer.Component;\n Title: Title.Component;\n Overlay: Overlay.Component;\n Panel: Panel.Component;\n Close: Close.Component;\n };\n}\n\n/** @deprecated It will be removed in v18. */\nexport type SidePanelProps = NSSidePanel.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelContext = NSSidePanel.Ctx;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelHeaderProps = NSSidePanel.Header.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelOverlayProps = NSSidePanel.Overlay.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelPanelProps = NSSidePanel.Panel.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelPlacement = NSSidePanel.Placement;\n/** @deprecated It will be removed in v18. */\nexport type OnCloseTriggerType = 'onOutsideClick' | 'onEscape' | 'onCloseClick';\n/** @deprecated It will be removed in v18. */\nexport type OnCloseType = (\n trigger: OnCloseTriggerType,\n e?: React.MouseEvent | React.KeyboardEvent,\n) => void;\n\nexport type { NSSidePanel };\n"],"mappings":"","ignoreList":[]}
package/lib/cjs/index.js CHANGED
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ var _exportNames = {};
7
8
  Object.defineProperty(exports, "default", {
8
9
  enumerable: true,
9
10
  get: function () {
@@ -11,4 +12,16 @@ Object.defineProperty(exports, "default", {
11
12
  }
12
13
  });
13
14
  var _SidePanel = _interopRequireDefault(require("./SidePanel"));
15
+ var _SidePanel2 = require("./SidePanel.type");
16
+ Object.keys(_SidePanel2).forEach(function (key) {
17
+ if (key === "default" || key === "__esModule") return;
18
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
19
+ if (key in exports && exports[key] === _SidePanel2[key]) return;
20
+ Object.defineProperty(exports, key, {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _SidePanel2[key];
24
+ }
25
+ });
26
+ });
14
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_SidePanel","_interopRequireDefault","require"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './SidePanel';\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_SidePanel","_interopRequireDefault","require","_SidePanel2","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './SidePanel';\nexport * from './SidePanel.type';\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,WAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,WAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,WAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -26,21 +26,21 @@ import CloseIcon from '@semcore/icon/Close/l';
26
26
  import { Text } from '@semcore/typography';
27
27
  import React from 'react';
28
28
  /*!__reshadow-styles__:"./style/side-panel.shadow.css"*/
29
- const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SOverlay_1842c_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;overflow:hidden;background:var(--intergalactic-overlay-primary,#00060356);-webkit-overflow-scrolling:touch;color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}@media (color-gamut:p3){.___SOverlay_1842c_gg_{background:var(--intergalactic-overlay-primary,oklch(.109 .023 165.5/.337))}}.___SPanel_1842c_gg_{display:flex;flex-direction:column;width:260px;outline:none;font-family:inherit;position:fixed;box-sizing:border-box;will-change:transform;background:var(--intergalactic-bg-primary-neutral,oklch(1 0 0));z-index:1}.___SPanel_1842c_gg_._placement_top_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-bottom:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_top_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_right_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-left:auto;top:0;right:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_right_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_bottom_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-top:auto;bottom:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_bottom_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_left_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-right:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_left_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SClose_1842c_gg_{position:absolute;z-index:1;right:var(--intergalactic-spacing-2x,8px);top:var(--intergalactic-spacing-2x,8px)}.___SClose_1842c_gg_ .___SAddon_1842c_gg_:only-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px);margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SBack_1842c_gg_{max-width:100%}.___SHeader_1842c_gg_{padding-left:var(--intergalactic-spacing-6x,24px);margin-bottom:var(--intergalactic-spacing-1x,4px);padding-right:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-4x, 16px));margin-top:var(--intergalactic-spacing-1x,4px);min-height:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-3x, 12px));box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box;flex-shrink:0}@media (color-gamut:p3){.___SHeader_1842c_gg_{box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SFooter_1842c_gg_{min-height:44px;box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box}@media (color-gamut:p3){.___SFooter_1842c_gg_{box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SBody_1842c_gg_{height:100%;overflow:auto;padding:var(--intergalactic-spacing-4x,16px) var(--intergalactic-spacing-6x,24px)}", /*__inner_css_end__*/"1842c_gg_"),
29
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SOverlay_di9xj_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;overflow:hidden;background:var(--intergalactic-overlay-primary,#00060356);-webkit-overflow-scrolling:touch;color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}@media (color-gamut:p3){.___SOverlay_di9xj_gg_{background:var(--intergalactic-overlay-primary,oklch(.109 .023 165.5/.337))}}.___SPanel_di9xj_gg_{display:flex;flex-direction:column;width:260px;outline:none;font-family:inherit;position:fixed;box-sizing:border-box;will-change:transform;background:var(--intergalactic-bg-primary-neutral,oklch(1 0 0));z-index:1}.___SPanel_di9xj_gg_._placement_top_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-bottom:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_top_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_right_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-left:auto;top:0;right:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_right_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_bottom_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-top:auto;bottom:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_bottom_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_left_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-right:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_left_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SClose_di9xj_gg_{position:absolute;z-index:1;right:var(--intergalactic-spacing-2x,8px);top:var(--intergalactic-spacing-2x,8px)}.___SClose_di9xj_gg_ .___SAddon_di9xj_gg_:only-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px);margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SBack_di9xj_gg_{max-width:100%}.___SHeader_di9xj_gg_{padding-left:var(--intergalactic-spacing-6x,24px);margin-bottom:var(--intergalactic-spacing-1x,4px);padding-right:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-4x, 16px));margin-top:var(--intergalactic-spacing-1x,4px);min-height:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-3x, 12px));box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box;flex-shrink:0}@media (color-gamut:p3){.___SHeader_di9xj_gg_{box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SFooter_di9xj_gg_{min-height:44px;box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box}@media (color-gamut:p3){.___SFooter_di9xj_gg_{box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SBody_di9xj_gg_{height:100%;overflow:auto;padding:var(--intergalactic-spacing-4x,16px) var(--intergalactic-spacing-6x,24px)}", /*__inner_css_end__*/"di9xj_gg_"),
30
30
  /*__reshadow_css_end__*/
31
31
  {
32
- "__SOverlay": "___SOverlay_1842c_gg_",
33
- "__SPanel": "___SPanel_1842c_gg_",
34
- "_placement_top": "_placement_top_1842c_gg_",
35
- "_placement_right": "_placement_right_1842c_gg_",
36
- "_placement_bottom": "_placement_bottom_1842c_gg_",
37
- "_placement_left": "_placement_left_1842c_gg_",
38
- "__SBack": "___SBack_1842c_gg_",
39
- "__SHeader": "___SHeader_1842c_gg_",
40
- "__SFooter": "___SFooter_1842c_gg_",
41
- "__SBody": "___SBody_1842c_gg_",
42
- "__SClose": "___SClose_1842c_gg_",
43
- "__SAddon": "___SAddon_1842c_gg_"
32
+ "__SOverlay": "___SOverlay_di9xj_gg_",
33
+ "__SPanel": "___SPanel_di9xj_gg_",
34
+ "_placement_top": "_placement_top_di9xj_gg_",
35
+ "_placement_right": "_placement_right_di9xj_gg_",
36
+ "_placement_bottom": "_placement_bottom_di9xj_gg_",
37
+ "_placement_left": "_placement_left_di9xj_gg_",
38
+ "__SBack": "___SBack_di9xj_gg_",
39
+ "__SHeader": "___SHeader_di9xj_gg_",
40
+ "__SFooter": "___SFooter_di9xj_gg_",
41
+ "__SBody": "___SBody_di9xj_gg_",
42
+ "__SClose": "___SClose_di9xj_gg_",
43
+ "__SAddon": "___SAddon_di9xj_gg_"
44
44
  });
45
45
  import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
46
46
  class RootSidePanel extends Component {
@@ -127,6 +127,9 @@ _defineProperty(RootSidePanel, "style", style);
127
127
  _defineProperty(RootSidePanel, "enhance", [cssVariableEnhance({
128
128
  variable: '--intergalactic-duration-modal',
129
129
  fallback: '200',
130
+ // TODO: Types are incompatible. For some reason string type doesn't recognized as a valid value.
131
+ // Leave it with ts-ignore annotation.
132
+ // @ts-ignore
130
133
  map: Number.parseInt,
131
134
  prop: 'duration'
132
135
  }), i18nEnhance(localizedMessages)]);
@@ -167,7 +170,7 @@ function Panel(props) {
167
170
  const sidebarRef = React.useRef(null);
168
171
  useFocusLock(sidebarRef, true, 'auto', !visible, true);
169
172
  const hasLabel = Boolean(props['aria-label'] || props['aria-labelledby']);
170
- logger.warn(!hasLabel, '\'aria-label\' or \'aria-labelledby\' are required for SidePanel component', props['data-ui-name'] || Panel.displayName);
173
+ logger.warn(!hasLabel, '\'aria-label\' or \'aria-labelledby\' are required for SidePanel component', props['data-ui-name']);
171
174
  return _ref1 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, visible && /*#__PURE__*/React.createElement(OutsideClick, _ref1.cn("OutsideClick", {
172
175
  "onOutsideClick": onOutsideClick,
173
176
  "excludeRefs": [sidebarRef]
@@ -196,14 +199,15 @@ function Footer(props) {
196
199
  }, _ref4)
197
200
  }));
198
201
  }
199
- function Close({
200
- styles,
201
- children: hasChildren,
202
- Children,
203
- getI18nText
204
- }) {
202
+ function Close(props) {
205
203
  var _ref5 = arguments[0],
206
204
  _ref11;
205
+ const {
206
+ styles,
207
+ children: hasChildren,
208
+ Children,
209
+ getI18nText
210
+ } = props;
207
211
  const SClose = Button;
208
212
  return _ref11 = sstyled(styles), /*#__PURE__*/React.createElement(SClose, _ref11.cn("SClose", {
209
213
  ..._assignProps5({
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanel.js","names":["FadeInOut","Slide","Flex","Box","OutsideClick","PortalProvider","Portal","Button","ButtonLink","createComponent","Component","Root","sstyled","i18nEnhance","isAdvanceMode","fire","logger","useContextTheme","useFocusLock","usePreventScroll","cssVariableEnhance","ZIndexStackingContextProvider","useZIndexStacking","ArrowLeft","CloseIcon","Text","React","style","_sstyled","insert","localizedMessages","RootSidePanel","constructor","args","_defineProperty","createRef","e","key","stopPropagation","asProps","Children","SidePanel","Overlay","displayName","Panel","isUsedOverlay","getOverlayProps","visible","duration","animationsDisabled","disablePreventScroll","getPanelProps","placement","closable","ariaLabel","ariaLabelledBy","handleOutsideClick","handleSidebarKeyDown","getCloseProps","onClick","handleIconCloseClick","getI18nText","render","_ref","disablePortal","ignorePortalsStacking","createElement","_assignProps","variable","fallback","map","Number","parseInt","prop","props","_ref2","arguments[0]","_ref0","SOverlay","overlayRef","useRef","zIndex","styles","cn","_assignProps2","_ref3","_ref1","SPanel","onOutsideClick","forcedAdvancedMode","advancedMode","Header","Body","Footer","sidebarRef","hasLabel","Boolean","warn","Fragment","_assignProps3","Close","_ref4","_ref10","SFooter","_assignProps4","children","hasChildren","_ref5","_ref11","SClose","_assignProps5","undefined","Title","_ref6","_ref12","STitle","_assignProps6","Back","_ref7","_ref13","SBack","_assignProps7","ellipsis","_ref8","_ref14","SBody","_assignProps8","_ref9","_ref15","SHeader","title","_assignProps9"],"sources":["../../src/SidePanel.jsx"],"sourcesContent":["import { FadeInOut, Slide, Flex, Box, OutsideClick, PortalProvider, Portal } from '@semcore/base-components';\nimport Button, { ButtonLink } from '@semcore/button';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport fire from '@semcore/core/lib/utils/fire';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';\nimport { useFocusLock } from '@semcore/core/lib/utils/use/useFocusLock';\nimport usePreventScroll from '@semcore/core/lib/utils/use/usePreventScroll';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport {\n ZIndexStackingContextProvider,\n useZIndexStacking,\n} from '@semcore/core/lib/utils/zIndexStacking';\nimport ArrowLeft from '@semcore/icon/ArrowLeft/m';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './style/side-panel.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nclass RootSidePanel extends Component {\n static displayName = 'SidePanel';\n static style = style;\n static enhance = [\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n i18nEnhance(localizedMessages),\n ];\n\n static defaultProps = {\n placement: 'right',\n closable: true,\n disablePreventScroll: false,\n };\n\n sidebarRef = React.createRef();\n\n handleSidebarKeyDown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n isAdvanceMode() {\n return isAdvanceMode(this.asProps.Children, [\n SidePanel.Overlay.displayName,\n SidePanel.Panel.displayName,\n ]);\n }\n\n isUsedOverlay() {\n return (\n !this.isAdvanceMode() || isAdvanceMode(this.asProps.Children, [SidePanel.Overlay.displayName])\n );\n }\n\n getOverlayProps() {\n const { visible, duration, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n visible,\n duration,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getPanelProps() {\n const {\n placement,\n visible,\n closable,\n duration,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n } = this.asProps;\n\n return {\n visible,\n placement,\n closable,\n 'duration': duration + duration / 2,\n 'disableEnforceFocus': !this.isUsedOverlay(),\n 'onOutsideClick': this.handleOutsideClick,\n 'onKeyDown': this.handleSidebarKeyDown,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n };\n }\n\n getCloseProps() {\n return {\n onClick: this.handleIconCloseClick,\n getI18nText: this.asProps.getI18nText,\n };\n }\n\n render() {\n const { Children, disablePortal, ignorePortalsStacking } = this.asProps;\n\n return (\n <Portal disablePortal={disablePortal} ignorePortalsStacking={ignorePortalsStacking}>\n {this.isAdvanceMode()\n ? (\n <Children />\n )\n : (\n <SidePanel.Overlay>\n <Root render={SidePanel.Panel} />\n </SidePanel.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Overlay(props) {\n const SOverlay = Root;\n const overlayRef = React.useRef(null);\n usePreventScroll(props.visible, props.disablePreventScroll);\n useContextTheme(overlayRef, props.visible);\n const zIndex = useZIndexStacking('z-index-modal');\n return sstyled(props.styles)(<SOverlay render={FadeInOut} ref={overlayRef} zIndex={zIndex} />);\n}\n\nfunction Panel(props) {\n const SPanel = Root;\n const { Children, styles, visible, closable, placement, onOutsideClick, forcedAdvancedMode } =\n props;\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [\n SidePanel.Header.displayName,\n SidePanel.Body.displayName,\n SidePanel.Footer.displayName,\n ]);\n\n const sidebarRef = React.useRef(null);\n\n useFocusLock(sidebarRef, true, 'auto', !visible, true);\n\n const hasLabel = Boolean(props['aria-label'] || props['aria-labelledby']);\n\n logger.warn(\n !hasLabel,\n '\\'aria-label\\' or \\'aria-labelledby\\' are required for SidePanel component',\n props['data-ui-name'] || Panel.displayName,\n );\n\n return sstyled(styles)(\n <>\n {visible && <OutsideClick onOutsideClick={onOutsideClick} excludeRefs={[sidebarRef]} />}\n <SPanel\n render={Slide}\n visible={visible}\n initialAnimation={true}\n slideOrigin={placement}\n ref={sidebarRef}\n role='dialog'\n aria-modal='true'\n >\n <ZIndexStackingContextProvider designToken='z-index-modal'>\n <PortalProvider value={sidebarRef}>\n {closable && <SidePanel.Close />}\n {advancedMode\n ? (\n <Children />\n )\n : (\n <SidePanel.Body>\n <Children />\n </SidePanel.Body>\n )}\n </PortalProvider>\n </ZIndexStackingContextProvider>\n </SPanel>\n </>,\n );\n}\n\nfunction Footer(props) {\n const SFooter = Root;\n return sstyled(props.styles)(<SFooter render={Flex} tag='footer' />);\n}\n\nfunction Close({ styles, children: hasChildren, Children, getI18nText }) {\n const SClose = Root;\n return sstyled(styles)(\n <SClose\n render={Button}\n aria-label={getI18nText('close')}\n use='tertiary'\n theme='muted'\n size='l'\n addonLeft={hasChildren ? undefined : CloseIcon}\n data-hide-focus-hover-popper='true'\n >\n {hasChildren ? <Children /> : undefined}\n </SClose>,\n );\n}\n\nfunction Title(props) {\n const STitle = Root;\n return sstyled(props.styles)(<STitle render={Text} tag='h6' size={300} bold ellipsis />);\n}\n\nfunction Back(props) {\n const SBack = Root;\n const { Children, styles } = props;\n\n return sstyled(styles)(\n <SBack render={ButtonLink} color='text-hint' size={100} addonLeft={ArrowLeft}>\n <ButtonLink.Text ellipsis>\n <Children />\n </ButtonLink.Text>\n </SBack>,\n );\n}\n\nfunction Body(props) {\n const SBody = Root;\n\n return sstyled(props.styles)(<SBody render={Box} />);\n}\n\nfunction Header(props) {\n const SHeader = Root;\n const { Children, styles, title } = props;\n return sstyled(styles)(\n <SHeader render={Box} tag='header'>\n {title && <SidePanel.Title children={title} />}\n <Children />\n </SHeader>,\n );\n}\n\n/**\n * SidePanel\n *\n * {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-api/|API} | {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-code/|Examples}\n */\nconst SidePanel = createComponent(RootSidePanel, {\n Overlay,\n Panel,\n Close,\n Header,\n Footer,\n Body,\n Back,\n Title,\n});\n\nexport default SidePanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SidePanel.js","names":["FadeInOut","Slide","Flex","Box","OutsideClick","PortalProvider","Portal","Button","ButtonLink","createComponent","Component","Root","sstyled","i18nEnhance","isAdvanceMode","fire","logger","useContextTheme","useFocusLock","usePreventScroll","cssVariableEnhance","ZIndexStackingContextProvider","useZIndexStacking","ArrowLeft","CloseIcon","Text","React","style","_sstyled","insert","localizedMessages","RootSidePanel","constructor","args","_defineProperty","createRef","e","key","stopPropagation","asProps","Children","SidePanel","Overlay","displayName","Panel","isUsedOverlay","getOverlayProps","visible","duration","animationsDisabled","disablePreventScroll","getPanelProps","placement","closable","ariaLabel","ariaLabelledBy","handleOutsideClick","handleSidebarKeyDown","getCloseProps","onClick","handleIconCloseClick","getI18nText","render","_ref","disablePortal","ignorePortalsStacking","createElement","_assignProps","variable","fallback","map","Number","parseInt","prop","props","_ref2","arguments[0]","_ref0","SOverlay","overlayRef","useRef","zIndex","styles","cn","_assignProps2","_ref3","_ref1","SPanel","onOutsideClick","forcedAdvancedMode","advancedMode","Header","Body","Footer","sidebarRef","hasLabel","Boolean","warn","Fragment","_assignProps3","Close","_ref4","_ref10","SFooter","_assignProps4","_ref5","_ref11","children","hasChildren","SClose","_assignProps5","undefined","Title","_ref6","_ref12","STitle","_assignProps6","Back","_ref7","_ref13","SBack","_assignProps7","ellipsis","_ref8","_ref14","SBody","_assignProps8","_ref9","_ref15","SHeader","title","_assignProps9"],"sources":["../../src/SidePanel.tsx"],"sourcesContent":["import { FadeInOut, Slide, Flex, Box, OutsideClick, PortalProvider, Portal } from '@semcore/base-components';\nimport Button, { ButtonLink } from '@semcore/button';\nimport type { Intergalactic } from '@semcore/core';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport fire from '@semcore/core/lib/utils/fire';\nimport logger from '@semcore/core/lib/utils/logger';\nimport { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';\nimport { useFocusLock } from '@semcore/core/lib/utils/use/useFocusLock';\nimport usePreventScroll from '@semcore/core/lib/utils/use/usePreventScroll';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport {\n ZIndexStackingContextProvider,\n useZIndexStacking,\n} from '@semcore/core/lib/utils/zIndexStacking';\nimport ArrowLeft from '@semcore/icon/ArrowLeft/m';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport type { NSSidePanel } from './SidePanel.type';\nimport style from './style/side-panel.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nclass RootSidePanel extends Component<\n Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Component>,\n typeof RootSidePanel.enhance,\n {},\n {},\n {},\n NSSidePanel.DefaultProps\n> {\n static displayName = 'SidePanel';\n static style = style;\n static enhance = [\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n // TODO: Types are incompatible. For some reason string type doesn't recognized as a valid value.\n // Leave it with ts-ignore annotation.\n // @ts-ignore\n map: Number.parseInt,\n prop: 'duration',\n }),\n i18nEnhance(localizedMessages),\n ] as const;\n\n static defaultProps = {\n placement: 'right',\n closable: true,\n disablePreventScroll: false,\n } as const;\n\n sidebarRef = React.createRef<HTMLDivElement>();\n\n handleSidebarKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e: React.MouseEvent<HTMLDivElement>) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n isAdvanceMode() {\n return isAdvanceMode(this.asProps.Children, [\n SidePanel.Overlay.displayName,\n SidePanel.Panel.displayName,\n ]);\n }\n\n isUsedOverlay() {\n return (\n !this.isAdvanceMode() || isAdvanceMode(this.asProps.Children, [SidePanel.Overlay.displayName])\n );\n }\n\n getOverlayProps() {\n const { visible, duration, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n visible,\n duration,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getPanelProps() {\n const {\n placement,\n visible,\n closable,\n duration,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n } = this.asProps;\n\n return {\n visible,\n placement,\n closable,\n 'duration': duration + duration / 2,\n 'disableEnforceFocus': !this.isUsedOverlay(),\n 'onOutsideClick': this.handleOutsideClick,\n 'onKeyDown': this.handleSidebarKeyDown,\n animationsDisabled,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n };\n }\n\n getCloseProps() {\n return {\n onClick: this.handleIconCloseClick,\n getI18nText: this.asProps.getI18nText,\n };\n }\n\n render() {\n const { Children, disablePortal, ignorePortalsStacking } = this.asProps;\n\n return (\n <Portal disablePortal={disablePortal} ignorePortalsStacking={ignorePortalsStacking}>\n {this.isAdvanceMode()\n ? (\n <Children />\n )\n : (\n <SidePanel.Overlay>\n <Root render={SidePanel.Panel} />\n </SidePanel.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Overlay(\n props: Intergalactic.InternalTypings.InferChildComponentProps<NSSidePanel.Overlay.Component, typeof RootSidePanel, 'Overlay'>,\n) {\n const SOverlay = Root;\n const overlayRef = React.useRef(null);\n usePreventScroll(props.visible, props.disablePreventScroll);\n useContextTheme(overlayRef, props.visible);\n const zIndex = useZIndexStacking('z-index-modal');\n return sstyled(props.styles)(<SOverlay render={FadeInOut} ref={overlayRef} zIndex={zIndex} />);\n}\n\nfunction Panel(\n props: Intergalactic.InternalTypings.InferChildComponentProps<NSSidePanel.Panel.Component, typeof RootSidePanel, 'Panel'>,\n) {\n const SPanel = Root;\n const { Children, styles, visible, closable, placement, onOutsideClick, forcedAdvancedMode } = props;\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [\n SidePanel.Header.displayName,\n SidePanel.Body.displayName,\n SidePanel.Footer.displayName,\n ]);\n\n const sidebarRef = React.useRef(null);\n\n useFocusLock(sidebarRef, true, 'auto', !visible, true);\n\n const hasLabel = Boolean(props['aria-label'] || props['aria-labelledby']);\n\n logger.warn(\n !hasLabel,\n '\\'aria-label\\' or \\'aria-labelledby\\' are required for SidePanel component',\n props['data-ui-name'],\n );\n\n return sstyled(styles)(\n <>\n {visible && <OutsideClick onOutsideClick={onOutsideClick} excludeRefs={[sidebarRef]} />}\n <SPanel\n render={Slide}\n visible={visible}\n initialAnimation={true}\n slideOrigin={placement}\n ref={sidebarRef}\n role='dialog'\n aria-modal='true'\n >\n <ZIndexStackingContextProvider designToken='z-index-modal'>\n <PortalProvider value={sidebarRef}>\n {closable && <SidePanel.Close />}\n {advancedMode\n ? (\n <Children />\n )\n : (\n <SidePanel.Body>\n <Children />\n </SidePanel.Body>\n )}\n </PortalProvider>\n </ZIndexStackingContextProvider>\n </SPanel>\n </>,\n );\n}\n\nfunction Footer(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Footer.Component>,\n) {\n const SFooter = Root;\n return sstyled(props.styles)(<SFooter render={Flex} tag='footer' />);\n}\n\nfunction Close(\n props: Intergalactic.InternalTypings.InferChildComponentProps<NSSidePanel.Close.Component, typeof RootSidePanel, 'Close'>,\n) {\n const { styles, children: hasChildren, Children, getI18nText } = props;\n const SClose = Root;\n return sstyled(styles)(\n <SClose\n render={Button}\n aria-label={getI18nText('close')}\n use='tertiary'\n theme='muted'\n size='l'\n addonLeft={hasChildren ? undefined : CloseIcon}\n data-hide-focus-hover-popper='true'\n >\n {hasChildren ? <Children /> : undefined}\n </SClose>,\n );\n}\n\nfunction Title(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Title.Component>,\n) {\n const STitle = Root;\n return sstyled(props.styles)(<STitle render={Text} tag='h6' size={300} bold ellipsis />);\n}\n\nfunction Back(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Back.Component>,\n) {\n const SBack = Root;\n const { Children, styles } = props;\n\n return sstyled(styles)(\n <SBack render={ButtonLink} color='text-hint' size={100} addonLeft={ArrowLeft}>\n <ButtonLink.Text ellipsis>\n <Children />\n </ButtonLink.Text>\n </SBack>,\n );\n}\n\nfunction Body(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Body.Component>,\n) {\n const SBody = Root;\n\n return sstyled(props.styles)(<SBody render={Box} />);\n}\n\nfunction Header(\n props: Intergalactic.InternalTypings.InferComponentProps<NSSidePanel.Header.Component>,\n) {\n const SHeader = Root;\n const { Children, styles, title } = props;\n return sstyled(styles)(\n <SHeader render={Box} tag='header'>\n {title && <SidePanel.Title children={title} />}\n <Children />\n </SHeader>,\n );\n}\n\n/**\n * SidePanel\n *\n * {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-api/|API} | {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-code/|Examples}\n */\nconst SidePanel = createComponent<\n NSSidePanel.Component,\n typeof RootSidePanel\n>(RootSidePanel, {\n Overlay,\n Panel,\n Close,\n Header,\n Footer,\n Body,\n Back,\n Title,\n});\n\nexport default SidePanel;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SidePanel.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidePanel.type.js","names":[],"sources":["../../src/SidePanel.type.ts"],"sourcesContent":["import type { FadeInOutProps, SlideProps, Box, BoxProps, Flex, PortalProps } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\ndeclare namespace NSSidePanel {\n type Props = PortalProps &\n BoxProps & {\n /** Animation display duration in ms\n * @default 350\n */\n duration?: number;\n /**\n * The property responsible for the visibility of the component\n */\n visible?: boolean;\n /**\n * Callback for the component closure\n */\n onClose?: (trigger: 'onOutsideClick' | 'onEscape' | 'onCloseClick', e?: React.MouseEvent | React.KeyboardEvent) => void;\n /**\n * Property for displaying the close button\n * @default true\n */\n closable?: boolean;\n /**\n * Position of a dropdown window\n * @default right\n */\n placement?: NSSidePanel.Placement;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when SidePanel is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n /**\n * Disable animation\n * @deprecated\n */\n animationsDisabled?: boolean;\n };\n type DefaultProps = {\n placement: 'right';\n closable: true;\n disablePreventScroll: false;\n };\n type Ctx = {\n getOverlayProps?: PropGetterFn;\n getPanelProps?: PropGetterFn;\n getCloseProps?: PropGetterFn;\n };\n type Placement = 'top' | 'left' | 'right' | 'bottom';\n\n namespace Header {\n type Props = BoxProps & {\n title?: React.ReactNode;\n };\n\n type Component = Intergalactic.Component<'div', Props>;\n }\n\n namespace Back {\n type Component = typeof Box;\n }\n\n namespace Body {\n type Component = typeof Box;\n }\n\n namespace Footer {\n type Component = typeof Flex;\n }\n\n namespace Title {\n type Component = typeof Text;\n }\n\n namespace Overlay {\n type Props = FadeInOutProps & BoxProps;\n\n type Component = Intergalactic.Component<'div', Props>;\n }\n\n namespace Panel {\n type Props = SlideProps &\n BoxProps & {\n /** Callback that is triggered when click outside is occured */\n onOutsideClick?: (e?: React.SyntheticEvent) => void;\n /**\n * Forces advanced mode\n * @deprecated It will be removed in v18.\n */\n forcedAdvancedMode?: boolean;\n };\n\n type Component = Intergalactic.Component<'div', Props>;\n }\n\n namespace Close {\n type Component = typeof Button;\n }\n\n type Component = Intergalactic.Component<'div', Props, Ctx> & {\n Header: Header.Component;\n Back: Back.Component;\n Body: Body.Component;\n Footer: Footer.Component;\n Title: Title.Component;\n Overlay: Overlay.Component;\n Panel: Panel.Component;\n Close: Close.Component;\n };\n}\n\n/** @deprecated It will be removed in v18. */\nexport type SidePanelProps = NSSidePanel.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelContext = NSSidePanel.Ctx;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelHeaderProps = NSSidePanel.Header.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelOverlayProps = NSSidePanel.Overlay.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelPanelProps = NSSidePanel.Panel.Props;\n/** @deprecated It will be removed in v18. */\nexport type SidePanelPlacement = NSSidePanel.Placement;\n/** @deprecated It will be removed in v18. */\nexport type OnCloseTriggerType = 'onOutsideClick' | 'onEscape' | 'onCloseClick';\n/** @deprecated It will be removed in v18. */\nexport type OnCloseType = (\n trigger: OnCloseTriggerType,\n e?: React.MouseEvent | React.KeyboardEvent,\n) => void;\n\nexport type { NSSidePanel };\n"],"mappings":"","ignoreList":[]}
package/lib/es6/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { default } from './SidePanel';
2
+ export * from './SidePanel.type';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './SidePanel';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './SidePanel';\nexport * from './SidePanel.type';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,aAAa;AACrC,cAAc,kBAAkB","ignoreList":[]}
@@ -21,23 +21,23 @@ const style = (
21
21
  /*__reshadow_css_start__*/
22
22
  (sstyled.insert(
23
23
  /*__inner_css_start__*/
24
- ".___SOverlay_1842c_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;overflow:hidden;background:var(--intergalactic-overlay-primary,#00060356);-webkit-overflow-scrolling:touch;color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}@media (color-gamut:p3){.___SOverlay_1842c_gg_{background:var(--intergalactic-overlay-primary,oklch(.109 .023 165.5/.337))}}.___SPanel_1842c_gg_{display:flex;flex-direction:column;width:260px;outline:none;font-family:inherit;position:fixed;box-sizing:border-box;will-change:transform;background:var(--intergalactic-bg-primary-neutral,oklch(1 0 0));z-index:1}.___SPanel_1842c_gg_._placement_top_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-bottom:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_top_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_right_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-left:auto;top:0;right:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_right_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_bottom_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-top:auto;bottom:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_bottom_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_1842c_gg_._placement_left_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-right:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_1842c_gg_._placement_left_1842c_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SClose_1842c_gg_{position:absolute;z-index:1;right:var(--intergalactic-spacing-2x,8px);top:var(--intergalactic-spacing-2x,8px)}.___SClose_1842c_gg_ .___SAddon_1842c_gg_:only-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px);margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SBack_1842c_gg_{max-width:100%}.___SHeader_1842c_gg_{padding-left:var(--intergalactic-spacing-6x,24px);margin-bottom:var(--intergalactic-spacing-1x,4px);padding-right:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-4x, 16px));margin-top:var(--intergalactic-spacing-1x,4px);min-height:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-3x, 12px));box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box;flex-shrink:0}@media (color-gamut:p3){.___SHeader_1842c_gg_{box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SFooter_1842c_gg_{min-height:44px;box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box}@media (color-gamut:p3){.___SFooter_1842c_gg_{box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SBody_1842c_gg_{height:100%;overflow:auto;padding:var(--intergalactic-spacing-4x,16px) var(--intergalactic-spacing-6x,24px)}",
24
+ ".___SOverlay_di9xj_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;overflow:hidden;background:var(--intergalactic-overlay-primary,#00060356);-webkit-overflow-scrolling:touch;color:var(--intergalactic-text-primary,oklch(.1 .03 137/.899))}@media (color-gamut:p3){.___SOverlay_di9xj_gg_{background:var(--intergalactic-overlay-primary,oklch(.109 .023 165.5/.337))}}.___SPanel_di9xj_gg_{display:flex;flex-direction:column;width:260px;outline:none;font-family:inherit;position:fixed;box-sizing:border-box;will-change:transform;background:var(--intergalactic-bg-primary-neutral,oklch(1 0 0));z-index:1}.___SPanel_di9xj_gg_._placement_top_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-bottom:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_top_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_right_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-left:auto;top:0;right:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_right_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_bottom_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);width:100%;margin-top:auto;bottom:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_bottom_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SPanel_di9xj_gg_._placement_left_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);height:100vh;margin-right:auto;top:0;left:0}@media (color-gamut:p3){.___SPanel_di9xj_gg_._placement_left_di9xj_gg_{box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 oklch(.176 .033 175.7/.07))}}.___SClose_di9xj_gg_{position:absolute;z-index:1;right:var(--intergalactic-spacing-2x,8px);top:var(--intergalactic-spacing-2x,8px)}.___SClose_di9xj_gg_ .___SAddon_di9xj_gg_:only-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px);margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SBack_di9xj_gg_{max-width:100%}.___SHeader_di9xj_gg_{padding-left:var(--intergalactic-spacing-6x,24px);margin-bottom:var(--intergalactic-spacing-1x,4px);padding-right:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-4x, 16px));margin-top:var(--intergalactic-spacing-1x,4px);min-height:calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-3x, 12px));box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box;flex-shrink:0}@media (color-gamut:p3){.___SHeader_di9xj_gg_{box-shadow:inset 0 -1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SFooter_di9xj_gg_{min-height:44px;box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,#000c0829);box-sizing:border-box}@media (color-gamut:p3){.___SFooter_di9xj_gg_{box-shadow:inset 0 1px 0 var(--intergalactic-border-primary,oklch(.137 .026 175.7/.161))}}.___SBody_di9xj_gg_{height:100%;overflow:auto;padding:var(--intergalactic-spacing-4x,16px) var(--intergalactic-spacing-6x,24px)}",
25
25
  /*__inner_css_end__*/
26
- "1842c_gg_"
26
+ "di9xj_gg_"
27
27
  ), /*__reshadow_css_end__*/
28
28
  {
29
- "__SOverlay": "___SOverlay_1842c_gg_",
30
- "__SPanel": "___SPanel_1842c_gg_",
31
- "_placement_top": "_placement_top_1842c_gg_",
32
- "_placement_right": "_placement_right_1842c_gg_",
33
- "_placement_bottom": "_placement_bottom_1842c_gg_",
34
- "_placement_left": "_placement_left_1842c_gg_",
35
- "__SBack": "___SBack_1842c_gg_",
36
- "__SHeader": "___SHeader_1842c_gg_",
37
- "__SFooter": "___SFooter_1842c_gg_",
38
- "__SBody": "___SBody_1842c_gg_",
39
- "__SClose": "___SClose_1842c_gg_",
40
- "__SAddon": "___SAddon_1842c_gg_"
29
+ "__SOverlay": "___SOverlay_di9xj_gg_",
30
+ "__SPanel": "___SPanel_di9xj_gg_",
31
+ "_placement_top": "_placement_top_di9xj_gg_",
32
+ "_placement_right": "_placement_right_di9xj_gg_",
33
+ "_placement_bottom": "_placement_bottom_di9xj_gg_",
34
+ "_placement_left": "_placement_left_di9xj_gg_",
35
+ "__SBack": "___SBack_di9xj_gg_",
36
+ "__SHeader": "___SHeader_di9xj_gg_",
37
+ "__SFooter": "___SFooter_di9xj_gg_",
38
+ "__SBody": "___SBody_di9xj_gg_",
39
+ "__SClose": "___SClose_di9xj_gg_",
40
+ "__SAddon": "___SAddon_di9xj_gg_"
41
41
  })
42
42
  );
43
43
  class RootSidePanel extends Component {
@@ -124,6 +124,9 @@ _defineProperty(RootSidePanel, "style", style);
124
124
  _defineProperty(RootSidePanel, "enhance", [cssVariableEnhance({
125
125
  variable: "--intergalactic-duration-modal",
126
126
  fallback: "200",
127
+ // TODO: Types are incompatible. For some reason string type doesn't recognized as a valid value.
128
+ // Leave it with ts-ignore annotation.
129
+ // @ts-ignore
127
130
  map: Number.parseInt,
128
131
  prop: "duration"
129
132
  }), i18nEnhance(localizedMessages)]);
@@ -162,7 +165,7 @@ function Panel(props) {
162
165
  const sidebarRef = React.useRef(null);
163
166
  useFocusLock(sidebarRef, true, "auto", !visible, true);
164
167
  const hasLabel = Boolean(props["aria-label"] || props["aria-labelledby"]);
165
- logger.warn(!hasLabel, "'aria-label' or 'aria-labelledby' are required for SidePanel component", props["data-ui-name"] || Panel.displayName);
168
+ logger.warn(!hasLabel, "'aria-label' or 'aria-labelledby' are required for SidePanel component", props["data-ui-name"]);
166
169
  return _ref1 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, visible && /* @__PURE__ */ React.createElement(OutsideClick, _ref1.cn("OutsideClick", {
167
170
  "onOutsideClick": onOutsideClick,
168
171
  "excludeRefs": [sidebarRef]
@@ -190,13 +193,14 @@ function Footer(props) {
190
193
  }, _ref4)
191
194
  }));
192
195
  }
193
- function Close({
194
- styles,
195
- children: hasChildren,
196
- Children,
197
- getI18nText
198
- }) {
196
+ function Close(props) {
199
197
  var _ref5 = arguments[0], _ref11;
198
+ const {
199
+ styles,
200
+ children: hasChildren,
201
+ Children,
202
+ getI18nText
203
+ } = props;
200
204
  const SClose = Button;
201
205
  return _ref11 = sstyled(styles), /* @__PURE__ */ React.createElement(SClose, _ref11.cn("SClose", {
202
206
  ...assignProps({
@@ -0,0 +1 @@
1
+
package/lib/esm/index.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  import { default as default2 } from "./SidePanel.mjs";
2
+ import "./SidePanel.type.mjs";
2
3
  export {
3
4
  default2 as default
4
5
  };
@@ -0,0 +1,8 @@
1
+ import type { NSSidePanel } from './SidePanel.type';
2
+ /**
3
+ * SidePanel
4
+ *
5
+ * {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-api/|API} | {@link https://developer.semrush.com/intergalactic/components/side-panel/side-panel-code/|Examples}
6
+ */
7
+ declare const SidePanel: NSSidePanel.Component;
8
+ export default SidePanel;
@@ -0,0 +1,116 @@
1
+ import type { FadeInOutProps, SlideProps, Box, BoxProps, Flex, PortalProps } from '@semcore/base-components';
2
+ import type Button from '@semcore/button';
3
+ import type { PropGetterFn, Intergalactic } from '@semcore/core';
4
+ import type { Text } from '@semcore/typography';
5
+ import type React from 'react';
6
+ declare namespace NSSidePanel {
7
+ type Props = PortalProps & BoxProps & {
8
+ /** Animation display duration in ms
9
+ * @default 350
10
+ */
11
+ duration?: number;
12
+ /**
13
+ * The property responsible for the visibility of the component
14
+ */
15
+ visible?: boolean;
16
+ /**
17
+ * Callback for the component closure
18
+ */
19
+ onClose?: (trigger: 'onOutsideClick' | 'onEscape' | 'onCloseClick', e?: React.MouseEvent | React.KeyboardEvent) => void;
20
+ /**
21
+ * Property for displaying the close button
22
+ * @default true
23
+ */
24
+ closable?: boolean;
25
+ /**
26
+ * Position of a dropdown window
27
+ * @default right
28
+ */
29
+ placement?: NSSidePanel.Placement;
30
+ /**
31
+ * Setting `true` disables mechanism that hides document body scrollbar when SidePanel is visible
32
+ * @default false
33
+ */
34
+ disablePreventScroll?: boolean;
35
+ /**
36
+ * Disable animation
37
+ * @deprecated
38
+ */
39
+ animationsDisabled?: boolean;
40
+ };
41
+ type DefaultProps = {
42
+ placement: 'right';
43
+ closable: true;
44
+ disablePreventScroll: false;
45
+ };
46
+ type Ctx = {
47
+ getOverlayProps?: PropGetterFn;
48
+ getPanelProps?: PropGetterFn;
49
+ getCloseProps?: PropGetterFn;
50
+ };
51
+ type Placement = 'top' | 'left' | 'right' | 'bottom';
52
+ namespace Header {
53
+ type Props = BoxProps & {
54
+ title?: React.ReactNode;
55
+ };
56
+ type Component = Intergalactic.Component<'div', Props>;
57
+ }
58
+ namespace Back {
59
+ type Component = typeof Box;
60
+ }
61
+ namespace Body {
62
+ type Component = typeof Box;
63
+ }
64
+ namespace Footer {
65
+ type Component = typeof Flex;
66
+ }
67
+ namespace Title {
68
+ type Component = typeof Text;
69
+ }
70
+ namespace Overlay {
71
+ type Props = FadeInOutProps & BoxProps;
72
+ type Component = Intergalactic.Component<'div', Props>;
73
+ }
74
+ namespace Panel {
75
+ type Props = SlideProps & BoxProps & {
76
+ /** Callback that is triggered when click outside is occured */
77
+ onOutsideClick?: (e?: React.SyntheticEvent) => void;
78
+ /**
79
+ * Forces advanced mode
80
+ * @deprecated It will be removed in v18.
81
+ */
82
+ forcedAdvancedMode?: boolean;
83
+ };
84
+ type Component = Intergalactic.Component<'div', Props>;
85
+ }
86
+ namespace Close {
87
+ type Component = typeof Button;
88
+ }
89
+ type Component = Intergalactic.Component<'div', Props, Ctx> & {
90
+ Header: Header.Component;
91
+ Back: Back.Component;
92
+ Body: Body.Component;
93
+ Footer: Footer.Component;
94
+ Title: Title.Component;
95
+ Overlay: Overlay.Component;
96
+ Panel: Panel.Component;
97
+ Close: Close.Component;
98
+ };
99
+ }
100
+ /** @deprecated It will be removed in v18. */
101
+ export type SidePanelProps = NSSidePanel.Props;
102
+ /** @deprecated It will be removed in v18. */
103
+ export type SidePanelContext = NSSidePanel.Ctx;
104
+ /** @deprecated It will be removed in v18. */
105
+ export type SidePanelHeaderProps = NSSidePanel.Header.Props;
106
+ /** @deprecated It will be removed in v18. */
107
+ export type SidePanelOverlayProps = NSSidePanel.Overlay.Props;
108
+ /** @deprecated It will be removed in v18. */
109
+ export type SidePanelPanelProps = NSSidePanel.Panel.Props;
110
+ /** @deprecated It will be removed in v18. */
111
+ export type SidePanelPlacement = NSSidePanel.Placement;
112
+ /** @deprecated It will be removed in v18. */
113
+ export type OnCloseTriggerType = 'onOutsideClick' | 'onEscape' | 'onCloseClick';
114
+ /** @deprecated It will be removed in v18. */
115
+ export type OnCloseType = (trigger: OnCloseTriggerType, e?: React.MouseEvent | React.KeyboardEvent) => void;
116
+ export type { NSSidePanel };
@@ -1,75 +1,2 @@
1
- import type { FadeInOutProps, SlideProps, Box, BoxProps, Flex, PortalProps } from '@semcore/base-components';
2
- import type Button from '@semcore/button';
3
- import type { PropGetterFn, Intergalactic } from '@semcore/core';
4
- import type { Text } from '@semcore/typography';
5
- import type React from 'react';
6
-
7
- export type OnCloseTriggerType = 'onOutsideClick' | 'onEscape' | 'onCloseClick';
8
- export type OnCloseType = (
9
- trigger: OnCloseTriggerType,
10
- e?: React.MouseEvent | React.KeyboardEvent,
11
- ) => void;
12
-
13
- export type SidePanelPlacement = 'top' | 'left' | 'right' | 'bottom';
14
-
15
- export type SidePanelProps = PortalProps &
16
- BoxProps & {
17
- /** Animation display duration in ms
18
- * @default 350
19
- */
20
- duration?: number;
21
- /**
22
- * The property responsible for the visibility of the component
23
- */
24
- visible?: boolean;
25
- /**
26
- * Callback for the component closure
27
- */
28
- onClose?: OnCloseType;
29
- /**
30
- * Property for displaying the close button
31
- * @default true
32
- */
33
- closable?: boolean;
34
- /**
35
- * Position of a dropdown window
36
- * @default right
37
- */
38
- placement?: SidePanelPlacement;
39
- /**
40
- * Setting `true` disables mechanism that hides document body scrollbar when SidePanel is visible
41
- * @default false
42
- */
43
- disablePreventScroll?: boolean;
44
- };
45
-
46
- export type SidePanelOverlayProps = FadeInOutProps & BoxProps & {};
47
-
48
- export type SidePanelPanelProps = SlideProps &
49
- BoxProps & {
50
- /** Callback that is triggered when click outside is occured */
51
- onOutsideClick?: (e?: React.SyntheticEvent) => void;
52
- };
53
-
54
- export type SidePanelContext = {
55
- getOverlayProps?: PropGetterFn;
56
- getPanelProps?: PropGetterFn;
57
- getCloseProps?: PropGetterFn;
58
- };
59
-
60
- export type SidePanelHeaderProps = BoxProps & {
61
- title?: React.ReactNode;
62
- };
63
-
64
- declare const SidePanel: Intergalactic.Component<'div', SidePanelProps, SidePanelContext> & {
65
- Header: Intergalactic.Component<'div', SidePanelHeaderProps>;
66
- Back: typeof Box;
67
- Body: typeof Box;
68
- Footer: typeof Flex;
69
- Title: typeof Text;
70
- Overlay: Intergalactic.Component<'div', SidePanelOverlayProps>;
71
- Panel: Intergalactic.Component<'div', SidePanelPanelProps>;
72
- Close: typeof Button;
73
- };
74
-
75
- export default SidePanel;
1
+ export { default } from './SidePanel';
2
+ export * from './SidePanel.type';
@@ -0,0 +1,44 @@
1
+ export declare const localizedMessages: {
2
+ de: {
3
+ close: string;
4
+ };
5
+ en: {
6
+ close: string;
7
+ };
8
+ es: {
9
+ close: string;
10
+ };
11
+ fr: {
12
+ close: string;
13
+ };
14
+ it: {
15
+ close: string;
16
+ };
17
+ ja: {
18
+ close: string;
19
+ };
20
+ ko: {
21
+ close: string;
22
+ };
23
+ nl: {
24
+ close: string;
25
+ };
26
+ pt: {
27
+ close: string;
28
+ };
29
+ tr: {
30
+ close: string;
31
+ };
32
+ vi: {
33
+ close: string;
34
+ };
35
+ zh: {
36
+ close: string;
37
+ };
38
+ pl: {
39
+ close: string;
40
+ };
41
+ sv: {
42
+ close: string;
43
+ };
44
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/side-panel",
3
3
  "description": "Semrush SidePanel Component",
4
- "version": "17.2.1",
4
+ "version": "17.2.2-prerelease.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -27,12 +27,12 @@
27
27
  "directory": "semcore/side-panel"
28
28
  },
29
29
  "devDependencies": {
30
- "@semcore/base-components": "17.2.1",
31
30
  "@semcore/core": "17.2.1",
31
+ "@semcore/base-components": "17.2.1",
32
32
  "@semcore/testing-utils": "1.0.0",
33
33
  "@semcore/icon": "17.2.0"
34
34
  },
35
35
  "scripts": {
36
- "build": "pnpm semcore-builder --source=js && pnpm vite build"
36
+ "build": "pnpm semcore-builder && pnpm vite build"
37
37
  }
38
38
  }
package/vite.config.ts CHANGED
@@ -7,7 +7,7 @@ export default mergeConfig(
7
7
  defineConfig({
8
8
  build: {
9
9
  lib: {
10
- entry: './src/index.js',
10
+ entry: './src/index.ts',
11
11
  },
12
12
  rollupOptions: {
13
13
  external: ['react', 'react-dom', 'react/jsx-runtime', /@babel\/runtime\/*/, /@semcore\/*/],
package/vitest.config.mts CHANGED
@@ -9,7 +9,7 @@ export default defineConfig({
9
9
  resolve: vitestResolve,
10
10
  test: {
11
11
  include: [
12
- '__tests__/**/*.test.jsx',
12
+ '__tests__/**/*.test.tsx',
13
13
  ],
14
14
  environment: 'jsdom',
15
15
  setupFiles: [resolvePath(__dirname, '../../tools/testing-utils/setupTests')],
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=index.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { FadeInOutProps, SlideProps, Box, BoxProps, Flex, PortalProps } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\nexport type OnCloseTriggerType = 'onOutsideClick' | 'onEscape' | 'onCloseClick';\nexport type OnCloseType = (\n trigger: OnCloseTriggerType,\n e?: React.MouseEvent | React.KeyboardEvent,\n) => void;\n\nexport type SidePanelPlacement = 'top' | 'left' | 'right' | 'bottom';\n\nexport type SidePanelProps = PortalProps &\n BoxProps & {\n /** Animation display duration in ms\n * @default 350\n */\n duration?: number;\n /**\n * The property responsible for the visibility of the component\n */\n visible?: boolean;\n /**\n * Callback for the component closure\n */\n onClose?: OnCloseType;\n /**\n * Property for displaying the close button\n * @default true\n */\n closable?: boolean;\n /**\n * Position of a dropdown window\n * @default right\n */\n placement?: SidePanelPlacement;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when SidePanel is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n };\n\nexport type SidePanelOverlayProps = FadeInOutProps & BoxProps & {};\n\nexport type SidePanelPanelProps = SlideProps &\n BoxProps & {\n /** Callback that is triggered when click outside is occured */\n onOutsideClick?: (e?: React.SyntheticEvent) => void;\n };\n\nexport type SidePanelContext = {\n getOverlayProps?: PropGetterFn;\n getPanelProps?: PropGetterFn;\n getCloseProps?: PropGetterFn;\n};\n\nexport type SidePanelHeaderProps = BoxProps & {\n title?: React.ReactNode;\n};\n\ndeclare const SidePanel: Intergalactic.Component<'div', SidePanelProps, SidePanelContext> & {\n Header: Intergalactic.Component<'div', SidePanelHeaderProps>;\n Back: typeof Box;\n Body: typeof Box;\n Footer: typeof Flex;\n Title: typeof Text;\n Overlay: Intergalactic.Component<'div', SidePanelOverlayProps>;\n Panel: Intergalactic.Component<'div', SidePanelPanelProps>;\n Close: typeof Button;\n};\n\nexport default SidePanel;\n"],"mappings":"","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { FadeInOutProps, SlideProps, Box, BoxProps, Flex, PortalProps } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type { Text } from '@semcore/typography';\nimport type React from 'react';\n\nexport type OnCloseTriggerType = 'onOutsideClick' | 'onEscape' | 'onCloseClick';\nexport type OnCloseType = (\n trigger: OnCloseTriggerType,\n e?: React.MouseEvent | React.KeyboardEvent,\n) => void;\n\nexport type SidePanelPlacement = 'top' | 'left' | 'right' | 'bottom';\n\nexport type SidePanelProps = PortalProps &\n BoxProps & {\n /** Animation display duration in ms\n * @default 350\n */\n duration?: number;\n /**\n * The property responsible for the visibility of the component\n */\n visible?: boolean;\n /**\n * Callback for the component closure\n */\n onClose?: OnCloseType;\n /**\n * Property for displaying the close button\n * @default true\n */\n closable?: boolean;\n /**\n * Position of a dropdown window\n * @default right\n */\n placement?: SidePanelPlacement;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when SidePanel is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n };\n\nexport type SidePanelOverlayProps = FadeInOutProps & BoxProps & {};\n\nexport type SidePanelPanelProps = SlideProps &\n BoxProps & {\n /** Callback that is triggered when click outside is occured */\n onOutsideClick?: (e?: React.SyntheticEvent) => void;\n };\n\nexport type SidePanelContext = {\n getOverlayProps?: PropGetterFn;\n getPanelProps?: PropGetterFn;\n getCloseProps?: PropGetterFn;\n};\n\nexport type SidePanelHeaderProps = BoxProps & {\n title?: React.ReactNode;\n};\n\ndeclare const SidePanel: Intergalactic.Component<'div', SidePanelProps, SidePanelContext> & {\n Header: Intergalactic.Component<'div', SidePanelHeaderProps>;\n Back: typeof Box;\n Body: typeof Box;\n Footer: typeof Flex;\n Title: typeof Text;\n Overlay: Intergalactic.Component<'div', SidePanelOverlayProps>;\n Panel: Intergalactic.Component<'div', SidePanelPanelProps>;\n Close: typeof Button;\n};\n\nexport default SidePanel;\n"],"mappings":"","ignoreList":[]}