@hh.ru/magritte-ui-action-bar 5.3.26 → 5.3.28

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/ActionBar.js CHANGED
@@ -4,16 +4,20 @@ import { forwardRef, useState, useRef, useEffect, useCallback, useLayoutEffect,
4
4
  import classnames from 'classnames';
5
5
  import { throttle } from '@hh.ru/magritte-common-func-utils';
6
6
  import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
7
+ import { useActionBarDefaultProps } from './defaultProps.js';
7
8
  import { shouldShowDividerOrProgress, getScrollableParent } from './utils.js';
8
9
  import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
9
10
  import { STRETCHED_WRAPPER_CLASS } from '@hh.ru/magritte-ui-button';
10
11
  import { Divider } from '@hh.ru/magritte-ui-divider';
11
12
  import { Layer } from '@hh.ru/magritte-ui-layer';
13
+ import '@hh.ru/magritte-internal-default-props-context';
12
14
 
13
- var styles = {"action-bar":"magritte-action-bar___Tkm7C_5-3-26","actionBar":"magritte-action-bar___Tkm7C_5-3-26","action-bar-is-fixed":"magritte-action-bar-is-fixed___Zjqtf_5-3-26","actionBarIsFixed":"magritte-action-bar-is-fixed___Zjqtf_5-3-26","action-bar-is-sticky":"magritte-action-bar-is-sticky___q272C_5-3-26","actionBarIsSticky":"magritte-action-bar-is-sticky___q272C_5-3-26","action-bar-with-default-padding":"magritte-action-bar-with-default-padding___QcKnA_5-3-26","actionBarWithDefaultPadding":"magritte-action-bar-with-default-padding___QcKnA_5-3-26","action-bar-with-progress-bar":"magritte-action-bar-with-progress-bar___mprqw_5-3-26","actionBarWithProgressBar":"magritte-action-bar-with-progress-bar___mprqw_5-3-26","actions-stack":"magritte-actions-stack___12VkP_5-3-26","actionsStack":"magritte-actions-stack___12VkP_5-3-26","right-only-actions":"magritte-right-only-actions___84fc8_5-3-26","rightOnlyActions":"magritte-right-only-actions___84fc8_5-3-26","actions-stack_horizontal":"magritte-actions-stack_horizontal___p3HgB_5-3-26","actionsStackHorizontal":"magritte-actions-stack_horizontal___p3HgB_5-3-26","actions-stack_vertical":"magritte-actions-stack_vertical___5UtzF_5-3-26","actionsStackVertical":"magritte-actions-stack_vertical___5UtzF_5-3-26","additional-content-overflow-wrapper":"magritte-additional-content-overflow-wrapper___hpCEQ_5-3-26","additionalContentOverflowWrapper":"magritte-additional-content-overflow-wrapper___hpCEQ_5-3-26","additional-content-container":"magritte-additional-content-container___N4Q-l_5-3-26","additionalContentContainer":"magritte-additional-content-container___N4Q-l_5-3-26","additional-content-vertical":"magritte-additional-content-vertical___3Ba1i_5-3-26","additionalContentVertical":"magritte-additional-content-vertical___3Ba1i_5-3-26","additional-content-wrapper":"magritte-additional-content-wrapper___dpdp5_5-3-26","additionalContentWrapper":"magritte-additional-content-wrapper___dpdp5_5-3-26","additional-content-dimensions":"magritte-additional-content-dimensions___yEIwY_5-3-26","additionalContentDimensions":"magritte-additional-content-dimensions___yEIwY_5-3-26","horizontal-actions-container":"magritte-horizontal-actions-container___dKSH8_5-3-26","horizontalActionsContainer":"magritte-horizontal-actions-container___dKSH8_5-3-26","vertical-actions-container":"magritte-vertical-actions-container___j1toG_5-3-26","verticalActionsContainer":"magritte-vertical-actions-container___j1toG_5-3-26","reverse":"magritte-reverse___mFIgd_5-3-26","progress-bar":"magritte-progress-bar___tSTjx_5-3-26","progressBar":"magritte-progress-bar___tSTjx_5-3-26"};
15
+ var styles = {"action-bar":"magritte-action-bar___Tkm7C_5-3-28","actionBar":"magritte-action-bar___Tkm7C_5-3-28","action-bar-is-fixed":"magritte-action-bar-is-fixed___Zjqtf_5-3-28","actionBarIsFixed":"magritte-action-bar-is-fixed___Zjqtf_5-3-28","action-bar-is-sticky":"magritte-action-bar-is-sticky___q272C_5-3-28","actionBarIsSticky":"magritte-action-bar-is-sticky___q272C_5-3-28","action-bar-with-default-padding":"magritte-action-bar-with-default-padding___QcKnA_5-3-28","actionBarWithDefaultPadding":"magritte-action-bar-with-default-padding___QcKnA_5-3-28","action-bar-with-progress-bar":"magritte-action-bar-with-progress-bar___mprqw_5-3-28","actionBarWithProgressBar":"magritte-action-bar-with-progress-bar___mprqw_5-3-28","actions-stack":"magritte-actions-stack___12VkP_5-3-28","actionsStack":"magritte-actions-stack___12VkP_5-3-28","right-only-actions":"magritte-right-only-actions___84fc8_5-3-28","rightOnlyActions":"magritte-right-only-actions___84fc8_5-3-28","actions-stack_horizontal":"magritte-actions-stack_horizontal___p3HgB_5-3-28","actionsStackHorizontal":"magritte-actions-stack_horizontal___p3HgB_5-3-28","actions-stack_vertical":"magritte-actions-stack_vertical___5UtzF_5-3-28","actionsStackVertical":"magritte-actions-stack_vertical___5UtzF_5-3-28","additional-content-overflow-wrapper":"magritte-additional-content-overflow-wrapper___hpCEQ_5-3-28","additionalContentOverflowWrapper":"magritte-additional-content-overflow-wrapper___hpCEQ_5-3-28","additional-content-container":"magritte-additional-content-container___N4Q-l_5-3-28","additionalContentContainer":"magritte-additional-content-container___N4Q-l_5-3-28","additional-content-vertical":"magritte-additional-content-vertical___3Ba1i_5-3-28","additionalContentVertical":"magritte-additional-content-vertical___3Ba1i_5-3-28","additional-content-wrapper":"magritte-additional-content-wrapper___dpdp5_5-3-28","additionalContentWrapper":"magritte-additional-content-wrapper___dpdp5_5-3-28","additional-content-dimensions":"magritte-additional-content-dimensions___yEIwY_5-3-28","additionalContentDimensions":"magritte-additional-content-dimensions___yEIwY_5-3-28","horizontal-actions-container":"magritte-horizontal-actions-container___dKSH8_5-3-28","horizontalActionsContainer":"magritte-horizontal-actions-container___dKSH8_5-3-28","vertical-actions-container":"magritte-vertical-actions-container___j1toG_5-3-28","verticalActionsContainer":"magritte-vertical-actions-container___j1toG_5-3-28","reverse":"magritte-reverse___mFIgd_5-3-28","progress-bar":"magritte-progress-bar___tSTjx_5-3-28","progressBar":"magritte-progress-bar___tSTjx_5-3-28"};
14
16
 
15
17
  const SCROLL_HANDLER_THROTTLE_MS = 50;
16
- const ActionBarComponent = forwardRef(({ type = 'horizontal', showDivider = 'with-scroll', showProgress = false, primaryActions, secondaryActions, additionalContent, padding, vertPadding, bottom = 0, isFixed = false, isSticky = false, onDomPositionReached, className, }, ref) => {
18
+ const ActionBarComponent = forwardRef((props, ref) => {
19
+ const defaultProps = useActionBarDefaultProps();
20
+ const { type = 'horizontal', showDivider = 'with-scroll', showProgress = false, primaryActions, secondaryActions, additionalContent, padding, vertPadding, bottom = 0, isFixed = false, isSticky = false, onDomPositionReached, className, } = { ...defaultProps, ...props };
17
21
  const isFixedOrSticky = isFixed || isSticky;
18
22
  const { breakpoint, isMobile } = useBreakpoint();
19
23
  const [isScrollEnd, setIsScrollEnd] = useState(false);
@@ -47,7 +51,8 @@ const ActionBarComponent = forwardRef(({ type = 'horizontal', showDivider = 'wit
47
51
  let handleScroll = throttle(() => {
48
52
  wasHandledScroll.current = true;
49
53
  const isScrollEnd = scrollableParent &&
50
- Math.abs(scrollableParent.scrollHeight - scrollableParent.clientHeight - scrollableParent.scrollTop) < 1;
54
+ Math.abs(scrollableParent.scrollHeight - scrollableParent.clientHeight - scrollableParent.scrollTop) <
55
+ 1;
51
56
  setIsScrollEnd(!!isScrollEnd);
52
57
  }, SCROLL_HANDLER_THROTTLE_MS);
53
58
  // для sticky дивайдер надо скрыть, когда блок встал на свое место в dom
@@ -100,8 +105,7 @@ const ActionBarComponent = forwardRef(({ type = 'horizontal', showDivider = 'wit
100
105
  const enableVerticalLayout = (!!additionalContentRef.current &&
101
106
  !!additionalContentWrapperRef.current &&
102
107
  (additionalContentRef.current.offsetHeight > additionalContentWrapperRef.current.offsetHeight ||
103
- additionalContentRef.current.offsetWidth >
104
- additionalContentWrapperRef.current.offsetWidth)) ||
108
+ additionalContentRef.current.offsetWidth > additionalContentWrapperRef.current.offsetWidth)) ||
105
109
  actionsStackRef.current.scrollWidth > actionsStackWrapperRef.current.offsetWidth;
106
110
  if (enableVerticalLayout !== verticalLayoutRef.current) {
107
111
  verticalLayoutRef.current = enableVerticalLayout;
package/ActionBar.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.js","sources":["src/ActionBar.tsx"],"sourcesContent":["import {\n Children,\n Fragment,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { throttle } from '@hh.ru/magritte-common-func-utils';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { ActionBarProps, OnDomPositionReached } from '@hh.ru/magritte-ui-action-bar/types';\nimport { getScrollableParent, shouldShowDividerOrProgress } from '@hh.ru/magritte-ui-action-bar/utils';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { STRETCHED_WRAPPER_CLASS } from '@hh.ru/magritte-ui-button';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\n\nimport styles from './action-bar.less';\n\nconst SCROLL_HANDLER_THROTTLE_MS = 50;\n\nconst ActionBarComponent = forwardRef<HTMLElement, ActionBarProps>(\n (\n {\n type = 'horizontal',\n showDivider = 'with-scroll',\n showProgress = false,\n primaryActions,\n secondaryActions,\n additionalContent,\n padding,\n vertPadding,\n bottom = 0,\n isFixed = false,\n isSticky = false,\n onDomPositionReached,\n className,\n },\n ref\n ) => {\n const isFixedOrSticky = isFixed || isSticky;\n const { breakpoint, isMobile } = useBreakpoint();\n const [isScrollEnd, setIsScrollEnd] = useState(false);\n const actionBarRef = useRef<HTMLDivElement>(null);\n const actionBarRefCallback = useMultipleRefs(ref, actionBarRef);\n const additionalContentRef = useRef<HTMLDivElement>(null);\n const additionalContentWrapperRef = useRef<HTMLDivElement>(null);\n const actionsStackWrapperRef = useRef<HTMLDivElement>(null);\n const actionsStackRef = useRef<HTMLDivElement>(null);\n const primaryActionsRef = useRef<HTMLDivElement>(null);\n const secondaryActionsRef = useRef<HTMLDivElement>(null);\n const wasHandledScroll = useRef<boolean>(false);\n const onDomPositionReachedRef = useRef<OnDomPositionReached | undefined>(onDomPositionReached);\n onDomPositionReachedRef.current = onDomPositionReached;\n const [verticalLayout, setVerticalLayout] = useState<boolean | null>(null);\n const verticalLayoutRef = useRef<boolean | null>(null);\n\n const { shouldShowProgress, shouldShowDivider } = shouldShowDividerOrProgress({\n isMobile,\n showDivider,\n showProgress,\n isScrollEnd,\n });\n\n useEffect(() => {\n if (shouldShowProgress || typeof showDivider === 'boolean') {\n return void 0;\n }\n const scrollableParent = getScrollableParent(actionBarRef.current);\n if (!scrollableParent) {\n return void 0;\n }\n let handleScroll = throttle(() => {\n wasHandledScroll.current = true;\n const isScrollEnd =\n scrollableParent &&\n Math.abs(\n scrollableParent.scrollHeight - scrollableParent.clientHeight - scrollableParent.scrollTop\n ) < 1;\n setIsScrollEnd(!!isScrollEnd);\n }, SCROLL_HANDLER_THROTTLE_MS);\n\n // для sticky дивайдер надо скрыть, когда блок встал на свое место в dom\n if (isSticky) {\n handleScroll = throttle(() => {\n wasHandledScroll.current = true;\n const bottomRect = actionBarRef.current?.getBoundingClientRect().bottom || 0;\n setIsScrollEnd(Math.abs(bottomRect + bottom - window.innerHeight) > 1);\n }, SCROLL_HANDLER_THROTTLE_MS);\n }\n\n if (scrollableParent === document.documentElement) {\n window.addEventListener('scroll', handleScroll);\n } else {\n scrollableParent.addEventListener('scroll', handleScroll);\n }\n return () => {\n wasHandledScroll.current = false;\n window.removeEventListener('scroll', handleScroll);\n scrollableParent?.removeEventListener('scroll', handleScroll);\n };\n }, [shouldShowProgress, showDivider, isSticky, bottom]);\n\n useEffect(() => {\n if (!wasHandledScroll.current || !isFixedOrSticky) {\n return;\n }\n onDomPositionReachedRef.current?.(isScrollEnd);\n }, [isScrollEnd, isFixedOrSticky]);\n\n const toggleVerticalLayout = useCallback((enable: boolean) => {\n actionsStackRef.current?.classList.toggle(styles.actionsStackVertical, enable);\n primaryActionsRef.current?.classList.toggle(STRETCHED_WRAPPER_CLASS, enable);\n primaryActionsRef.current?.classList.toggle(styles.verticalActionsContainer, enable);\n primaryActionsRef.current?.classList.toggle(styles.horizontalActionsContainer, !enable);\n secondaryActionsRef.current?.classList.toggle(STRETCHED_WRAPPER_CLASS, enable);\n secondaryActionsRef.current?.classList.toggle(styles.verticalActionsContainer, enable);\n secondaryActionsRef.current?.classList.toggle(styles.horizontalActionsContainer, !enable);\n }, []);\n\n // Эффект проверяющий уместилось ли все содержимое и переключающий отображение на вертикальное\n useLayoutEffect(() => {\n if (!actionsStackRef.current || !actionsStackWrapperRef.current) {\n return;\n }\n\n if (type !== 'auto') {\n const enableVerticalLayout = type === 'vertical';\n verticalLayoutRef.current = enableVerticalLayout;\n setVerticalLayout(enableVerticalLayout);\n } else {\n toggleVerticalLayout(false);\n const enableVerticalLayout =\n (!!additionalContentRef.current &&\n !!additionalContentWrapperRef.current &&\n (additionalContentRef.current.offsetHeight > additionalContentWrapperRef.current.offsetHeight ||\n additionalContentRef.current.offsetWidth >\n additionalContentWrapperRef.current.offsetWidth)) ||\n actionsStackRef.current.scrollWidth > actionsStackWrapperRef.current.offsetWidth;\n if (enableVerticalLayout !== verticalLayoutRef.current) {\n verticalLayoutRef.current = enableVerticalLayout;\n setVerticalLayout(enableVerticalLayout);\n } else {\n toggleVerticalLayout(verticalLayoutRef.current);\n }\n }\n }, [type, primaryActions, secondaryActions, additionalContent, breakpoint, toggleVerticalLayout]);\n\n const paddingValue = padding ? `${vertPadding ?? padding}px ${padding}px` : '';\n return (\n <Layer layer=\"action-bar\">\n <div\n ref={actionBarRefCallback}\n data-qa=\"action-bar\"\n style={bottom ? { bottom: `${bottom}px` } : {}}\n className={classnames(\n styles.actionBar,\n {\n [styles.actionBarIsFixed]: isFixed,\n [styles.actionBarIsSticky]: isSticky,\n [styles.actionBarWithProgressBar]: shouldShowProgress,\n },\n className\n )}\n >\n {shouldShowDivider && (\n <div data-qa=\"divider\">\n <Divider mode=\"horizontal\" />\n </div>\n )}\n {shouldShowProgress && (\n <div data-qa=\"progress-bar\" className={styles.progressBar}>\n {showProgress}\n </div>\n )}\n <div\n data-qa=\"actions-container\"\n className={classnames({\n [styles.actionBarWithDefaultPadding]: isFixedOrSticky && !paddingValue,\n })}\n style={paddingValue ? { padding: paddingValue } : {}}\n >\n <div ref={actionsStackWrapperRef} className={styles.actionsStackWrapper}>\n <div\n className={classnames(styles.actionsStack, {\n [styles.actionsStackHorizontal]: !verticalLayout,\n [styles.actionsStackVertical]: verticalLayout,\n [styles.rightOnlyActions]: !secondaryActions && !additionalContent,\n })}\n ref={actionsStackRef}\n data-qa={`actions-container-${type}`}\n >\n {verticalLayout ? (\n <>\n {!!additionalContent && (\n <div\n className={classnames(styles.additionalContentContainer)}\n key=\"additional-content\"\n >\n <div\n className={classnames(\n styles.additionalContentWrapper,\n styles.additionalContentVertical,\n {\n [styles.additionalContentOverflowWrapper]:\n !!primaryActions || !!secondaryActions,\n }\n )}\n ref={additionalContentWrapperRef}\n >\n <div\n className={styles.additionalContentDimensions}\n ref={additionalContentRef}\n data-qa=\"additional-content\"\n >\n {additionalContent}\n </div>\n </div>\n </div>\n )}\n {!!primaryActions &&\n (() => {\n let verticalPrimaryActions = primaryActions;\n let reverseFlexOrder = true;\n if (Array.isArray(primaryActions)) {\n verticalPrimaryActions = Children.toArray(primaryActions).reverse();\n reverseFlexOrder = false;\n } else if (\n isValidElement(primaryActions) &&\n primaryActions.type === Fragment\n ) {\n verticalPrimaryActions = Children.toArray(\n (primaryActions.props as React.PropsWithChildren).children\n ).reverse();\n reverseFlexOrder = false;\n }\n\n return (\n <div\n className={classnames(\n styles.verticalActionsContainer,\n { [styles.reverse]: reverseFlexOrder },\n STRETCHED_WRAPPER_CLASS\n )}\n data-qa=\"primary-actions\"\n key=\"primary-actions\"\n ref={primaryActionsRef}\n >\n {verticalPrimaryActions}\n </div>\n );\n })()}\n {!!secondaryActions && (\n <div\n className={classnames(\n styles.verticalActionsContainer,\n STRETCHED_WRAPPER_CLASS\n )}\n data-qa=\"secondary-actions\"\n key=\"secondary-actions\"\n ref={secondaryActionsRef}\n >\n {secondaryActions}\n </div>\n )}\n </>\n ) : (\n <>\n {!!secondaryActions && (\n <div\n className={classnames(styles.horizontalActionsContainer)}\n data-qa=\"secondary-actions\"\n key=\"secondary-actions\"\n ref={secondaryActionsRef}\n >\n {secondaryActions}\n </div>\n )}\n {!!additionalContent && (\n <div\n className={classnames(styles.additionalContentContainer)}\n key=\"additional-content\"\n >\n <div\n className={classnames(styles.additionalContentWrapper, {\n [styles.additionalContentOverflowWrapper]:\n !!primaryActions || !!secondaryActions,\n })}\n ref={additionalContentWrapperRef}\n >\n <div\n ref={additionalContentRef}\n className={styles.additionalContentDimensions}\n data-qa=\"additional-content\"\n >\n {additionalContent}\n </div>\n </div>\n </div>\n )}\n {!!primaryActions && (\n <div\n className={classnames(styles.horizontalActionsContainer)}\n data-qa=\"primary-actions\"\n key=\"primary-actions\"\n ref={primaryActionsRef}\n >\n {primaryActions}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n </div>\n </Layer>\n );\n }\n);\n\nActionBarComponent.displayName = 'ActionBar';\nconst ActionBar = ActionBarComponent as typeof ActionBarComponent & { isActionBar: true };\nActionBar.isActionBar = true;\n\nexport { ActionBar };\n"],"names":["_jsx","_jsxs","_Fragment","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ActionBar.js","sources":["src/ActionBar.tsx"],"sourcesContent":["import {\n Children,\n Fragment,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport classnames from 'classnames';\n\nimport { throttle } from '@hh.ru/magritte-common-func-utils';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useActionBarDefaultProps } from '@hh.ru/magritte-ui-action-bar/defaultProps';\nimport { ActionBarProps, OnDomPositionReached } from '@hh.ru/magritte-ui-action-bar/types';\nimport { getScrollableParent, shouldShowDividerOrProgress } from '@hh.ru/magritte-ui-action-bar/utils';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { STRETCHED_WRAPPER_CLASS } from '@hh.ru/magritte-ui-button';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\n\nimport styles from './action-bar.less';\n\nconst SCROLL_HANDLER_THROTTLE_MS = 50;\n\nconst ActionBarComponent = forwardRef<HTMLElement, ActionBarProps>((props, ref) => {\n const defaultProps = useActionBarDefaultProps();\n const {\n type = 'horizontal',\n showDivider = 'with-scroll',\n showProgress = false,\n primaryActions,\n secondaryActions,\n additionalContent,\n padding,\n vertPadding,\n bottom = 0,\n isFixed = false,\n isSticky = false,\n onDomPositionReached,\n className,\n } = { ...defaultProps, ...props };\n const isFixedOrSticky = isFixed || isSticky;\n const { breakpoint, isMobile } = useBreakpoint();\n const [isScrollEnd, setIsScrollEnd] = useState(false);\n const actionBarRef = useRef<HTMLDivElement>(null);\n const actionBarRefCallback = useMultipleRefs(ref, actionBarRef);\n const additionalContentRef = useRef<HTMLDivElement>(null);\n const additionalContentWrapperRef = useRef<HTMLDivElement>(null);\n const actionsStackWrapperRef = useRef<HTMLDivElement>(null);\n const actionsStackRef = useRef<HTMLDivElement>(null);\n const primaryActionsRef = useRef<HTMLDivElement>(null);\n const secondaryActionsRef = useRef<HTMLDivElement>(null);\n const wasHandledScroll = useRef<boolean>(false);\n const onDomPositionReachedRef = useRef<OnDomPositionReached | undefined>(onDomPositionReached);\n onDomPositionReachedRef.current = onDomPositionReached;\n const [verticalLayout, setVerticalLayout] = useState<boolean | null>(null);\n const verticalLayoutRef = useRef<boolean | null>(null);\n\n const { shouldShowProgress, shouldShowDivider } = shouldShowDividerOrProgress({\n isMobile,\n showDivider,\n showProgress,\n isScrollEnd,\n });\n\n useEffect(() => {\n if (shouldShowProgress || typeof showDivider === 'boolean') {\n return void 0;\n }\n const scrollableParent = getScrollableParent(actionBarRef.current);\n if (!scrollableParent) {\n return void 0;\n }\n let handleScroll = throttle(() => {\n wasHandledScroll.current = true;\n const isScrollEnd =\n scrollableParent &&\n Math.abs(scrollableParent.scrollHeight - scrollableParent.clientHeight - scrollableParent.scrollTop) <\n 1;\n setIsScrollEnd(!!isScrollEnd);\n }, SCROLL_HANDLER_THROTTLE_MS);\n\n // для sticky дивайдер надо скрыть, когда блок встал на свое место в dom\n if (isSticky) {\n handleScroll = throttle(() => {\n wasHandledScroll.current = true;\n const bottomRect = actionBarRef.current?.getBoundingClientRect().bottom || 0;\n setIsScrollEnd(Math.abs(bottomRect + bottom - window.innerHeight) > 1);\n }, SCROLL_HANDLER_THROTTLE_MS);\n }\n\n if (scrollableParent === document.documentElement) {\n window.addEventListener('scroll', handleScroll);\n } else {\n scrollableParent.addEventListener('scroll', handleScroll);\n }\n return () => {\n wasHandledScroll.current = false;\n window.removeEventListener('scroll', handleScroll);\n scrollableParent?.removeEventListener('scroll', handleScroll);\n };\n }, [shouldShowProgress, showDivider, isSticky, bottom]);\n\n useEffect(() => {\n if (!wasHandledScroll.current || !isFixedOrSticky) {\n return;\n }\n onDomPositionReachedRef.current?.(isScrollEnd);\n }, [isScrollEnd, isFixedOrSticky]);\n\n const toggleVerticalLayout = useCallback((enable: boolean) => {\n actionsStackRef.current?.classList.toggle(styles.actionsStackVertical, enable);\n primaryActionsRef.current?.classList.toggle(STRETCHED_WRAPPER_CLASS, enable);\n primaryActionsRef.current?.classList.toggle(styles.verticalActionsContainer, enable);\n primaryActionsRef.current?.classList.toggle(styles.horizontalActionsContainer, !enable);\n secondaryActionsRef.current?.classList.toggle(STRETCHED_WRAPPER_CLASS, enable);\n secondaryActionsRef.current?.classList.toggle(styles.verticalActionsContainer, enable);\n secondaryActionsRef.current?.classList.toggle(styles.horizontalActionsContainer, !enable);\n }, []);\n\n // Эффект проверяющий уместилось ли все содержимое и переключающий отображение на вертикальное\n useLayoutEffect(() => {\n if (!actionsStackRef.current || !actionsStackWrapperRef.current) {\n return;\n }\n\n if (type !== 'auto') {\n const enableVerticalLayout = type === 'vertical';\n verticalLayoutRef.current = enableVerticalLayout;\n setVerticalLayout(enableVerticalLayout);\n } else {\n toggleVerticalLayout(false);\n const enableVerticalLayout =\n (!!additionalContentRef.current &&\n !!additionalContentWrapperRef.current &&\n (additionalContentRef.current.offsetHeight > additionalContentWrapperRef.current.offsetHeight ||\n additionalContentRef.current.offsetWidth > additionalContentWrapperRef.current.offsetWidth)) ||\n actionsStackRef.current.scrollWidth > actionsStackWrapperRef.current.offsetWidth;\n if (enableVerticalLayout !== verticalLayoutRef.current) {\n verticalLayoutRef.current = enableVerticalLayout;\n setVerticalLayout(enableVerticalLayout);\n } else {\n toggleVerticalLayout(verticalLayoutRef.current);\n }\n }\n }, [type, primaryActions, secondaryActions, additionalContent, breakpoint, toggleVerticalLayout]);\n\n const paddingValue = padding ? `${vertPadding ?? padding}px ${padding}px` : '';\n return (\n <Layer layer=\"action-bar\">\n <div\n ref={actionBarRefCallback}\n data-qa=\"action-bar\"\n style={bottom ? { bottom: `${bottom}px` } : {}}\n className={classnames(\n styles.actionBar,\n {\n [styles.actionBarIsFixed]: isFixed,\n [styles.actionBarIsSticky]: isSticky,\n [styles.actionBarWithProgressBar]: shouldShowProgress,\n },\n className\n )}\n >\n {shouldShowDivider && (\n <div data-qa=\"divider\">\n <Divider mode=\"horizontal\" />\n </div>\n )}\n {shouldShowProgress && (\n <div data-qa=\"progress-bar\" className={styles.progressBar}>\n {showProgress}\n </div>\n )}\n <div\n data-qa=\"actions-container\"\n className={classnames({\n [styles.actionBarWithDefaultPadding]: isFixedOrSticky && !paddingValue,\n })}\n style={paddingValue ? { padding: paddingValue } : {}}\n >\n <div ref={actionsStackWrapperRef} className={styles.actionsStackWrapper}>\n <div\n className={classnames(styles.actionsStack, {\n [styles.actionsStackHorizontal]: !verticalLayout,\n [styles.actionsStackVertical]: verticalLayout,\n [styles.rightOnlyActions]: !secondaryActions && !additionalContent,\n })}\n ref={actionsStackRef}\n data-qa={`actions-container-${type}`}\n >\n {verticalLayout ? (\n <>\n {!!additionalContent && (\n <div\n className={classnames(styles.additionalContentContainer)}\n key=\"additional-content\"\n >\n <div\n className={classnames(\n styles.additionalContentWrapper,\n styles.additionalContentVertical,\n {\n [styles.additionalContentOverflowWrapper]:\n !!primaryActions || !!secondaryActions,\n }\n )}\n ref={additionalContentWrapperRef}\n >\n <div\n className={styles.additionalContentDimensions}\n ref={additionalContentRef}\n data-qa=\"additional-content\"\n >\n {additionalContent}\n </div>\n </div>\n </div>\n )}\n {!!primaryActions &&\n (() => {\n let verticalPrimaryActions = primaryActions;\n let reverseFlexOrder = true;\n if (Array.isArray(primaryActions)) {\n verticalPrimaryActions = Children.toArray(primaryActions).reverse();\n reverseFlexOrder = false;\n } else if (\n isValidElement(primaryActions) &&\n primaryActions.type === Fragment\n ) {\n verticalPrimaryActions = Children.toArray(\n (primaryActions.props as React.PropsWithChildren).children\n ).reverse();\n reverseFlexOrder = false;\n }\n\n return (\n <div\n className={classnames(\n styles.verticalActionsContainer,\n { [styles.reverse]: reverseFlexOrder },\n STRETCHED_WRAPPER_CLASS\n )}\n data-qa=\"primary-actions\"\n key=\"primary-actions\"\n ref={primaryActionsRef}\n >\n {verticalPrimaryActions}\n </div>\n );\n })()}\n {!!secondaryActions && (\n <div\n className={classnames(\n styles.verticalActionsContainer,\n STRETCHED_WRAPPER_CLASS\n )}\n data-qa=\"secondary-actions\"\n key=\"secondary-actions\"\n ref={secondaryActionsRef}\n >\n {secondaryActions}\n </div>\n )}\n </>\n ) : (\n <>\n {!!secondaryActions && (\n <div\n className={classnames(styles.horizontalActionsContainer)}\n data-qa=\"secondary-actions\"\n key=\"secondary-actions\"\n ref={secondaryActionsRef}\n >\n {secondaryActions}\n </div>\n )}\n {!!additionalContent && (\n <div\n className={classnames(styles.additionalContentContainer)}\n key=\"additional-content\"\n >\n <div\n className={classnames(styles.additionalContentWrapper, {\n [styles.additionalContentOverflowWrapper]:\n !!primaryActions || !!secondaryActions,\n })}\n ref={additionalContentWrapperRef}\n >\n <div\n ref={additionalContentRef}\n className={styles.additionalContentDimensions}\n data-qa=\"additional-content\"\n >\n {additionalContent}\n </div>\n </div>\n </div>\n )}\n {!!primaryActions && (\n <div\n className={classnames(styles.horizontalActionsContainer)}\n data-qa=\"primary-actions\"\n key=\"primary-actions\"\n ref={primaryActionsRef}\n >\n {primaryActions}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n </div>\n </Layer>\n );\n});\n\nActionBarComponent.displayName = 'ActionBar';\nconst ActionBar = ActionBarComponent as typeof ActionBarComponent & { isActionBar: true };\nActionBar.isActionBar = true;\n\nexport { ActionBar };\n"],"names":["_jsx","_jsxs","_Fragment","Fragment"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { getScrollbarWidth } from '@hh.ru/magritte-common-modal-helper';
5
5
  import { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';
6
6
  import { isActionBarComponent } from './types.js';
7
7
 
8
- var styles = {"action-bar-viewport-adapter":"magritte-action-bar-viewport-adapter___yKxEe_5-3-26","actionBarViewportAdapter":"magritte-action-bar-viewport-adapter___yKxEe_5-3-26"};
8
+ var styles = {"action-bar-viewport-adapter":"magritte-action-bar-viewport-adapter___yKxEe_5-3-28","actionBarViewportAdapter":"magritte-action-bar-viewport-adapter___yKxEe_5-3-28"};
9
9
 
10
10
  const ActionBarViewportAdapter = ({ children }) => {
11
11
  const isActionBarIntoChildren = isActionBarComponent(children);
@@ -0,0 +1,9 @@
1
+ import type { ActionBarProps } from '@hh.ru/magritte-ui-action-bar/types';
2
+ /**
3
+ * Провайдер дефолтных пропсов для `ActionBar` в поддереве.
4
+ * Заданные пропсы применяются ко всем `ActionBar` внутри как дефолтные — явные пропсы на самом
5
+ * `ActionBar` побеждают.
6
+ */
7
+ export declare const ActionBarDefaultPropsContext: import("react").FC<import("@hh.ru/magritte-internal-default-props-context").BoundDefaultPropsContextProps<ActionBarProps>>;
8
+ /** Внутренний хук чтения дефолтов `ActionBar` из ближайшего `ActionBarDefaultPropsContext`. */
9
+ export declare const useActionBarDefaultProps: () => Partial<ActionBarProps>;
@@ -0,0 +1,15 @@
1
+ import './index.css';
2
+ import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';
3
+
4
+ const { DefaultPropsContext, useDefaultProps } = createDefaultPropsContext('ActionBar');
5
+ /**
6
+ * Провайдер дефолтных пропсов для `ActionBar` в поддереве.
7
+ * Заданные пропсы применяются ко всем `ActionBar` внутри как дефолтные — явные пропсы на самом
8
+ * `ActionBar` побеждают.
9
+ */
10
+ const ActionBarDefaultPropsContext = DefaultPropsContext;
11
+ /** Внутренний хук чтения дефолтов `ActionBar` из ближайшего `ActionBarDefaultPropsContext`. */
12
+ const useActionBarDefaultProps = useDefaultProps;
13
+
14
+ export { ActionBarDefaultPropsContext, useActionBarDefaultProps };
15
+ //# sourceMappingURL=defaultProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultProps.js","sources":["src/defaultProps.ts"],"sourcesContent":["import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';\nimport type { ActionBarProps } from '@hh.ru/magritte-ui-action-bar/types';\n\nconst { DefaultPropsContext, useDefaultProps } = createDefaultPropsContext<ActionBarProps>('ActionBar');\n\n/**\n * Провайдер дефолтных пропсов для `ActionBar` в поддереве.\n * Заданные пропсы применяются ко всем `ActionBar` внутри как дефолтные — явные пропсы на самом\n * `ActionBar` побеждают.\n */\nexport const ActionBarDefaultPropsContext = DefaultPropsContext;\n\n/** Внутренний хук чтения дефолтов `ActionBar` из ближайшего `ActionBarDefaultPropsContext`. */\nexport const useActionBarDefaultProps = useDefaultProps;\n"],"names":[],"mappings":";;AAGA,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,yBAAyB,CAAiB,WAAW,CAAC,CAAC;AAExG;;;;AAIG;AACI,MAAM,4BAA4B,GAAG,oBAAoB;AAEhE;AACO,MAAM,wBAAwB,GAAG;;;;"}
package/index.css CHANGED
@@ -5,141 +5,141 @@
5
5
  .magritte-night-theme{
6
6
  --magritte-color-background-body-v24-7-0:#000000;
7
7
  }
8
- .magritte-action-bar___Tkm7C_5-3-26{
8
+ .magritte-action-bar___Tkm7C_5-3-28{
9
9
  --magritte-ui-action-bar-scroll-width:0;
10
10
  background-color:var(--magritte-ui-action-bar-background-color-override, var(--magritte-ui-container-background-color-override, var(--magritte-color-background-body-v24-7-0)));
11
11
  }
12
- .magritte-action-bar-is-fixed___Zjqtf_5-3-26{
12
+ .magritte-action-bar-is-fixed___Zjqtf_5-3-28{
13
13
  position:fixed;
14
14
  bottom:0;
15
15
  left:0;
16
16
  width:100%;
17
17
  }
18
- .magritte-action-bar-is-sticky___q272C_5-3-26{
18
+ .magritte-action-bar-is-sticky___q272C_5-3-28{
19
19
  position:sticky;
20
20
  bottom:0;
21
21
  left:0;
22
22
  width:100%;
23
23
  margin-left:calc(-50vw + 50%);
24
24
  }
25
- .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
25
+ .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
26
26
  padding:16px 0;
27
27
  }
28
- body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
28
+ body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
29
29
  padding:16px;
30
30
  }
31
31
  @media (min-width: 600px){
32
- body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
32
+ body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
33
33
  padding:16px 56px;
34
34
  }
35
35
  }
36
36
  @media (min-width: 1024px){
37
- body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
37
+ body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
38
38
  margin:0 auto;
39
39
  padding:16px 0px;
40
40
  width:984px;
41
41
  }
42
42
  }
43
43
  @media (min-width: 1280px){
44
- body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
44
+ body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
45
45
  width:1200px;
46
46
  }
47
47
  }
48
48
  @media (min-width: 1440px){
49
- body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
49
+ body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
50
50
  width:1272px;
51
51
  }
52
52
  }
53
53
  @media (min-width: 1920px){
54
- body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
54
+ body:not(.magritte-old-layout) .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
55
55
  width:1416px;
56
56
  }
57
57
  }
58
- body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
58
+ body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
59
59
  padding:15px;
60
60
  }
61
61
  @media (min-width: 700px){
62
- body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
62
+ body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
63
63
  margin:0 auto;
64
64
  width:610px;
65
65
  }
66
66
  }
67
67
  @media (min-width: 1020px){
68
- body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
68
+ body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
69
69
  width:930px;
70
70
  }
71
71
  }
72
72
  @media (min-width: 1340px){
73
- body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-26{
73
+ body.magritte-old-layout .magritte-action-bar-with-default-padding___QcKnA_5-3-28{
74
74
  width:1250px;
75
75
  }
76
76
  }
77
- .magritte-action-bar-with-progress-bar___mprqw_5-3-26{
77
+ .magritte-action-bar-with-progress-bar___mprqw_5-3-28{
78
78
  border-radius:8px 8px 0 0;
79
79
  }
80
- .magritte-actions-stack___12VkP_5-3-26{
80
+ .magritte-actions-stack___12VkP_5-3-28{
81
81
  display:flex;
82
82
  width:100%;
83
83
  }
84
- .magritte-actions-stack___12VkP_5-3-26.magritte-right-only-actions___84fc8_5-3-26{
84
+ .magritte-actions-stack___12VkP_5-3-28.magritte-right-only-actions___84fc8_5-3-28{
85
85
  justify-content:flex-end;
86
86
  }
87
- .magritte-actions-stack_horizontal___p3HgB_5-3-26{
87
+ .magritte-actions-stack_horizontal___p3HgB_5-3-28{
88
88
  display:flex;
89
89
  flex-direction:row;
90
90
  justify-content:space-between;
91
91
  gap:24px;
92
92
  }
93
- .magritte-actions-stack_vertical___5UtzF_5-3-26{
93
+ .magritte-actions-stack_vertical___5UtzF_5-3-28{
94
94
  display:flex;
95
95
  flex-direction:column;
96
96
  gap:12px;
97
97
  }
98
- .magritte-actions-stack_vertical___5UtzF_5-3-26 .magritte-additional-content-overflow-wrapper___hpCEQ_5-3-26{
98
+ .magritte-actions-stack_vertical___5UtzF_5-3-28 .magritte-additional-content-overflow-wrapper___hpCEQ_5-3-28{
99
99
  position:static;
100
100
  }
101
- .magritte-additional-content-container___N4Q-l_5-3-26{
101
+ .magritte-additional-content-container___N4Q-l_5-3-28{
102
102
  display:flex;
103
103
  flex:1 1 100%;
104
104
  overflow:hidden;
105
105
  position:relative;
106
106
  }
107
- .magritte-additional-content-container___N4Q-l_5-3-26.magritte-additional-content-vertical___3Ba1i_5-3-26{
107
+ .magritte-additional-content-container___N4Q-l_5-3-28.magritte-additional-content-vertical___3Ba1i_5-3-28{
108
108
  margin-bottom:2px;
109
109
  }
110
- .magritte-additional-content-overflow-wrapper___hpCEQ_5-3-26{
110
+ .magritte-additional-content-overflow-wrapper___hpCEQ_5-3-28{
111
111
  position:absolute;
112
112
  inset:0;
113
113
  }
114
- .magritte-additional-content-wrapper___dpdp5_5-3-26{
114
+ .magritte-additional-content-wrapper___dpdp5_5-3-28{
115
115
  width:100%;
116
116
  }
117
- .magritte-additional-content-dimensions___yEIwY_5-3-26{
117
+ .magritte-additional-content-dimensions___yEIwY_5-3-28{
118
118
  display:flex;
119
119
  align-items:center;
120
120
  width:100%;
121
121
  min-height:100%;
122
122
  }
123
- .magritte-horizontal-actions-container___dKSH8_5-3-26{
123
+ .magritte-horizontal-actions-container___dKSH8_5-3-28{
124
124
  display:flex;
125
125
  flex:0 0 auto;
126
126
  gap:12px;
127
127
  align-items:center;
128
128
  }
129
- .magritte-vertical-actions-container___j1toG_5-3-26{
129
+ .magritte-vertical-actions-container___j1toG_5-3-28{
130
130
  display:flex;
131
131
  flex-direction:column;
132
132
  gap:12px;
133
133
  align-items:center;
134
134
  }
135
- .magritte-vertical-actions-container___j1toG_5-3-26.magritte-reverse___mFIgd_5-3-26{
135
+ .magritte-vertical-actions-container___j1toG_5-3-28.magritte-reverse___mFIgd_5-3-28{
136
136
  flex-direction:column-reverse;
137
137
  }
138
- .magritte-progress-bar___tSTjx_5-3-26{
138
+ .magritte-progress-bar___tSTjx_5-3-28{
139
139
  padding:4px 4px 0;
140
140
  }
141
141
 
142
- .magritte-action-bar-viewport-adapter___yKxEe_5-3-26{
142
+ .magritte-action-bar-viewport-adapter___yKxEe_5-3-28{
143
143
  width:calc(100vw - var(--magritte-ui-action-bar-scroll-width));
144
144
  margin-left:calc(-50vw + 50% + var(--magritte-ui-action-bar-scroll-width) / 2);
145
145
  }
package/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from '@hh.ru/magritte-ui-action-bar/types';
2
2
  export * from '@hh.ru/magritte-ui-action-bar/ActionBar';
3
3
  export * from '@hh.ru/magritte-ui-action-bar/ActionBarViewportAdapter';
4
+ export { ActionBarDefaultPropsContext } from '@hh.ru/magritte-ui-action-bar/defaultProps';
package/index.js CHANGED
@@ -2,6 +2,7 @@ import './index.css';
2
2
  export { isActionBarComponent } from './types.js';
3
3
  export { ActionBar } from './ActionBar.js';
4
4
  export { ActionBarViewportAdapter } from './ActionBarViewportAdapter.js';
5
+ export { ActionBarDefaultPropsContext } from './defaultProps.js';
5
6
  import 'react';
6
7
  import 'react/jsx-runtime';
7
8
  import 'classnames';
@@ -13,4 +14,5 @@ import '@hh.ru/magritte-ui-button';
13
14
  import '@hh.ru/magritte-ui-divider';
14
15
  import '@hh.ru/magritte-ui-layer';
15
16
  import '@hh.ru/magritte-common-modal-helper';
17
+ import '@hh.ru/magritte-internal-default-props-context';
16
18
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
package/index.mock.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import { ForwardRefExoticComponent } from 'react';
2
2
  export declare const ActionBar: ForwardRefExoticComponent<Record<string, unknown>>;
3
+ export declare const ActionBarDefaultPropsContext: ForwardRefExoticComponent<Record<string, unknown>>;
3
4
  export declare const isActionBarComponent: (component: import("react").ReactNode) => component is import("react").ReactElement<import("@hh.ru/magritte-ui-action-bar/types").ActionBarProps>;
package/index.mock.js CHANGED
@@ -6,7 +6,10 @@ import 'react';
6
6
  const ActionBar = mockComponent('ActionBar', { isActionBar: true }, {
7
7
  withChildren: false,
8
8
  });
9
+ const ActionBarDefaultPropsContext = mockComponent('ActionBarDefaultPropsContext', undefined, {
10
+ withChildren: true,
11
+ });
9
12
  const isActionBarComponent = isActionBarComponent$1;
10
13
 
11
- export { ActionBar, isActionBarComponent };
14
+ export { ActionBar, ActionBarDefaultPropsContext, isActionBarComponent };
12
15
  //# sourceMappingURL=index.mock.js.map
package/index.mock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mock.js","sources":["src/index.mock.ts"],"sourcesContent":["import { ForwardRefExoticComponent } from 'react';\n\nimport { isActionBarComponent as checkFunction } from '@hh.ru/magritte-ui-action-bar/types';\nimport { mockComponent } from '@hh.ru/magritte-ui-mock-component';\n\nexport const ActionBar: ForwardRefExoticComponent<Record<string, unknown>> = mockComponent(\n 'ActionBar',\n { isActionBar: true },\n {\n withChildren: false,\n }\n);\n\nexport const isActionBarComponent = checkFunction;\n"],"names":["checkFunction"],"mappings":";;;;AAKO,MAAM,SAAS,GAAuD,aAAa,CACtF,WAAW,EACX,EAAE,WAAW,EAAE,IAAI,EAAE,EACrB;AACI,IAAA,YAAY,EAAE,KAAK;AACtB,CAAA,EACH;AAEK,MAAM,oBAAoB,GAAGA;;;;"}
1
+ {"version":3,"file":"index.mock.js","sources":["src/index.mock.ts"],"sourcesContent":["import { ForwardRefExoticComponent } from 'react';\n\nimport { isActionBarComponent as checkFunction } from '@hh.ru/magritte-ui-action-bar/types';\nimport { mockComponent } from '@hh.ru/magritte-ui-mock-component';\n\nexport const ActionBar: ForwardRefExoticComponent<Record<string, unknown>> = mockComponent(\n 'ActionBar',\n { isActionBar: true },\n {\n withChildren: false,\n }\n);\n\nexport const ActionBarDefaultPropsContext = mockComponent('ActionBarDefaultPropsContext', undefined, {\n withChildren: true,\n});\n\nexport const isActionBarComponent = checkFunction;\n"],"names":["checkFunction"],"mappings":";;;;AAKO,MAAM,SAAS,GAAuD,aAAa,CACtF,WAAW,EACX,EAAE,WAAW,EAAE,IAAI,EAAE,EACrB;AACI,IAAA,YAAY,EAAE,KAAK;AACtB,CAAA,EACH;MAEW,4BAA4B,GAAG,aAAa,CAAC,8BAA8B,EAAE,SAAS,EAAE;AACjG,IAAA,YAAY,EAAE,IAAI;AACrB,CAAA,EAAE;AAEI,MAAM,oBAAoB,GAAGA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-action-bar",
3
- "version": "5.3.26",
3
+ "version": "5.3.28",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -23,10 +23,11 @@
23
23
  "@hh.ru/magritte-common-modal-helper": "1.3.2",
24
24
  "@hh.ru/magritte-common-use-multiple-refs": "1.1.11",
25
25
  "@hh.ru/magritte-design-tokens": "24.7.0",
26
+ "@hh.ru/magritte-internal-default-props-context": "1.0.2",
26
27
  "@hh.ru/magritte-internal-layer-name": "3.4.1",
27
28
  "@hh.ru/magritte-types": "5.0.7",
28
29
  "@hh.ru/magritte-ui-breakpoint": "6.1.1",
29
- "@hh.ru/magritte-ui-button": "7.2.10",
30
+ "@hh.ru/magritte-ui-button": "7.2.11",
30
31
  "@hh.ru/magritte-ui-divider": "3.1.3",
31
32
  "@hh.ru/magritte-ui-grid": "3.0.6",
32
33
  "@hh.ru/magritte-ui-layer": "3.2.4",
@@ -39,5 +40,5 @@
39
40
  "publishConfig": {
40
41
  "access": "public"
41
42
  },
42
- "gitHead": "fa01b9128d8cb502e80c61cd964d7a8a3a279957"
43
+ "gitHead": "2e75dbd0238c8eb7f7db95beebee5f0d241e95f3"
43
44
  }
package/types.d.ts CHANGED
@@ -5,7 +5,10 @@ export interface OnDomPositionReached {
5
5
  (isScrollEnd: boolean): void;
6
6
  }
7
7
  interface BaseActionBarProps {
8
- /** Тип ActionBar */
8
+ /**
9
+ * Тип ActionBar
10
+ * @default horizontal
11
+ */
9
12
  type?: ActionBarType;
10
13
  /**
11
14
  * Дополнительный контент размещаемый в контейнере над кнопками для вертикального отображения, либо в контейнере
@@ -20,13 +23,20 @@ interface BaseActionBarProps {
20
23
  padding?: number;
21
24
  /** Вертикальные отступы (оверрайд для свойства padding) */
22
25
  vertPadding?: number;
23
- /** Позиция ActionBar для isFixed/isSticky */
26
+ /**
27
+ * Позиция ActionBar для isFixed/isSticky
28
+ * @default 0
29
+ */
24
30
  bottom?: number;
25
- /** Флаг, который позволяет зафиксировать ActionBar у нижней границы окна */
31
+ /**
32
+ * Флаг, который позволяет зафиксировать ActionBar у нижней границы окна
33
+ * @default false
34
+ */
26
35
  isFixed?: boolean;
27
36
  /**
28
37
  * Флаг, который позволяет зафиксировать ActionBar у нижней границы окна
29
38
  * При достижении своей позиции в DOM, ActionBar перестанет следовать за скроллом
39
+ * @default false
30
40
  * */
31
41
  isSticky?: boolean;
32
42
  /**
@@ -38,7 +48,10 @@ interface BaseActionBarProps {
38
48
  className?: string;
39
49
  }
40
50
  type ActionBarDividerProgressProps = {
41
- /** Режим работы разделителя */
51
+ /**
52
+ * Режим работы разделителя
53
+ * @default with-scroll
54
+ */
42
55
  showDivider?: ShowDivider;
43
56
  /** Позволяет включить `ProgressBar` */
44
57
  showProgress?: never;
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["src/types.ts"],"sourcesContent":["import { type ReactNode, type ReactElement, isValidElement } from 'react';\n\nimport { ShowDivider } from '@hh.ru/magritte-ui-divider';\n\nexport type ActionBarType = 'horizontal' | 'vertical' | 'auto';\n\nexport interface OnDomPositionReached {\n (isScrollEnd: boolean): void;\n}\n\ninterface BaseActionBarProps {\n /** Тип ActionBar */\n type?: ActionBarType;\n /**\n * Дополнительный контент размещаемый в контейнере над кнопками для вертикального отображения, либо в контейнере\n * между кнопками для горизонтального отображения\n */\n additionalContent?: ReactNode;\n /** Primary кнопки */\n primaryActions?: ReactNode;\n /** Secondary кнопки */\n secondaryActions?: ReactNode;\n /** Вертикальные/горизонтальные отступы */\n padding?: number;\n /** Вертикальные отступы (оверрайд для свойства padding) */\n vertPadding?: number;\n /** Позиция ActionBar для isFixed/isSticky */\n bottom?: number;\n /** Флаг, который позволяет зафиксировать ActionBar у нижней границы окна */\n isFixed?: boolean;\n /**\n * Флаг, который позволяет зафиксировать ActionBar у нижней границы окна\n * При достижении своей позиции в DOM, ActionBar перестанет следовать за скроллом\n * */\n isSticky?: boolean;\n /**\n * Callback вызывается, когда ActionBar достигнет своей позиции в DOM или прилипает к нижней границе экрана\n * В случае isFixed - callback вызовется, когда пользователь доскролит до конца страницы\n * */\n onDomPositionReached?: OnDomPositionReached;\n /** css-класс для позиционирования action-bar */\n className?: string;\n}\n\ntype ActionBarDividerProgressProps =\n | {\n /** Режим работы разделителя */\n showDivider?: ShowDivider;\n /** Позволяет включить `ProgressBar` */\n showProgress?: never;\n }\n | { showDivider?: never; showProgress?: ReactNode };\n\nexport type ActionBarProps = BaseActionBarProps & ActionBarDividerProgressProps;\n\nexport const isActionBarComponent = (component: ReactNode): component is ReactElement<ActionBarProps> => {\n return (\n isValidElement(component) && typeof component.type === 'object' && 'isActionBar' in (component?.type as object)\n );\n};\n"],"names":[],"mappings":";;AAuDa,MAAA,oBAAoB,GAAG,CAAC,SAAoB,KAA+C;AACpG,IAAA,QACI,cAAc,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,IAAK,SAAS,EAAE,IAAe,EACjH;AACN;;;;"}
1
+ {"version":3,"file":"types.js","sources":["src/types.ts"],"sourcesContent":["import { type ReactNode, type ReactElement, isValidElement } from 'react';\n\nimport { ShowDivider } from '@hh.ru/magritte-ui-divider';\n\nexport type ActionBarType = 'horizontal' | 'vertical' | 'auto';\n\nexport interface OnDomPositionReached {\n (isScrollEnd: boolean): void;\n}\n\ninterface BaseActionBarProps {\n /**\n * Тип ActionBar\n * @default horizontal\n */\n type?: ActionBarType;\n /**\n * Дополнительный контент размещаемый в контейнере над кнопками для вертикального отображения, либо в контейнере\n * между кнопками для горизонтального отображения\n */\n additionalContent?: ReactNode;\n /** Primary кнопки */\n primaryActions?: ReactNode;\n /** Secondary кнопки */\n secondaryActions?: ReactNode;\n /** Вертикальные/горизонтальные отступы */\n padding?: number;\n /** Вертикальные отступы (оверрайд для свойства padding) */\n vertPadding?: number;\n /**\n * Позиция ActionBar для isFixed/isSticky\n * @default 0\n */\n bottom?: number;\n /**\n * Флаг, который позволяет зафиксировать ActionBar у нижней границы окна\n * @default false\n */\n isFixed?: boolean;\n /**\n * Флаг, который позволяет зафиксировать ActionBar у нижней границы окна\n * При достижении своей позиции в DOM, ActionBar перестанет следовать за скроллом\n * @default false\n * */\n isSticky?: boolean;\n /**\n * Callback вызывается, когда ActionBar достигнет своей позиции в DOM или прилипает к нижней границе экрана\n * В случае isFixed - callback вызовется, когда пользователь доскролит до конца страницы\n * */\n onDomPositionReached?: OnDomPositionReached;\n /** css-класс для позиционирования action-bar */\n className?: string;\n}\n\ntype ActionBarDividerProgressProps =\n | {\n /**\n * Режим работы разделителя\n * @default with-scroll\n */\n showDivider?: ShowDivider;\n /** Позволяет включить `ProgressBar` */\n showProgress?: never;\n }\n | { showDivider?: never; showProgress?: ReactNode };\n\nexport type ActionBarProps = BaseActionBarProps & ActionBarDividerProgressProps;\n\nexport const isActionBarComponent = (component: ReactNode): component is ReactElement<ActionBarProps> => {\n return (\n isValidElement(component) && typeof component.type === 'object' && 'isActionBar' in (component?.type as object)\n );\n};\n"],"names":[],"mappings":";;AAoEa,MAAA,oBAAoB,GAAG,CAAC,SAAoB,KAA+C;AACpG,IAAA,QACI,cAAc,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,IAAK,SAAS,EAAE,IAAe,EACjH;AACN;;;;"}