@cloud-ru/uikit-product-mobile-tooltip 0.4.65 → 0.4.66

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cjs/components/AdaptiveTooltip/AdaptiveTooltip.d.ts +7 -0
  3. package/dist/cjs/components/AdaptiveTooltip/AdaptiveTooltip.js +29 -0
  4. package/dist/cjs/components/AdaptiveTooltip/index.d.ts +1 -0
  5. package/dist/cjs/components/AdaptiveTooltip/index.js +17 -0
  6. package/dist/cjs/components/MobileQuestionTooltip/MobileQuestionTooltip.d.ts +14 -0
  7. package/dist/cjs/components/MobileQuestionTooltip/MobileQuestionTooltip.js +31 -0
  8. package/dist/cjs/components/MobileQuestionTooltip/constants.d.ts +16 -0
  9. package/dist/cjs/components/MobileQuestionTooltip/constants.js +20 -0
  10. package/dist/cjs/components/MobileQuestionTooltip/index.d.ts +1 -0
  11. package/dist/cjs/components/MobileQuestionTooltip/index.js +17 -0
  12. package/dist/cjs/components/MobileQuestionTooltip/styles.module.css +38 -0
  13. package/dist/cjs/components/MobileQuestionTooltip/types.d.ts +4 -0
  14. package/dist/cjs/components/MobileQuestionTooltip/types.js +2 -0
  15. package/dist/cjs/components/MobileTooltip/MobileTooltip.d.ts +10 -0
  16. package/dist/cjs/components/MobileTooltip/MobileTooltip.js +28 -0
  17. package/dist/cjs/components/MobileTooltip/constants.d.ts +1 -0
  18. package/dist/cjs/components/MobileTooltip/constants.js +5 -0
  19. package/dist/cjs/components/MobileTooltip/index.d.ts +1 -0
  20. package/dist/cjs/components/MobileTooltip/index.js +17 -0
  21. package/dist/cjs/components/MobileTooltip/styles.module.css +48 -0
  22. package/dist/cjs/components/index.d.ts +3 -0
  23. package/dist/cjs/components/index.js +19 -0
  24. package/dist/cjs/index.d.ts +1 -0
  25. package/dist/cjs/index.js +17 -0
  26. package/dist/esm/components/AdaptiveTooltip/AdaptiveTooltip.d.ts +7 -0
  27. package/dist/esm/components/AdaptiveTooltip/AdaptiveTooltip.js +25 -0
  28. package/dist/esm/components/AdaptiveTooltip/index.d.ts +1 -0
  29. package/dist/esm/components/AdaptiveTooltip/index.js +1 -0
  30. package/dist/esm/components/MobileQuestionTooltip/MobileQuestionTooltip.d.ts +14 -0
  31. package/dist/esm/components/MobileQuestionTooltip/MobileQuestionTooltip.js +25 -0
  32. package/dist/esm/components/MobileQuestionTooltip/constants.d.ts +16 -0
  33. package/dist/esm/components/MobileQuestionTooltip/constants.js +17 -0
  34. package/dist/esm/components/MobileQuestionTooltip/index.d.ts +1 -0
  35. package/dist/esm/components/MobileQuestionTooltip/index.js +1 -0
  36. package/dist/esm/components/MobileQuestionTooltip/styles.module.css +38 -0
  37. package/dist/esm/components/MobileQuestionTooltip/types.d.ts +4 -0
  38. package/dist/esm/components/MobileQuestionTooltip/types.js +1 -0
  39. package/dist/esm/components/MobileTooltip/MobileTooltip.d.ts +10 -0
  40. package/dist/esm/components/MobileTooltip/MobileTooltip.js +22 -0
  41. package/dist/esm/components/MobileTooltip/constants.d.ts +1 -0
  42. package/dist/esm/components/MobileTooltip/constants.js +2 -0
  43. package/dist/esm/components/MobileTooltip/index.d.ts +1 -0
  44. package/dist/esm/components/MobileTooltip/index.js +1 -0
  45. package/dist/esm/components/MobileTooltip/styles.module.css +48 -0
  46. package/dist/esm/components/index.d.ts +3 -0
  47. package/dist/esm/components/index.js +3 -0
  48. package/dist/esm/index.d.ts +1 -0
  49. package/dist/esm/index.js +1 -0
  50. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 0.4.66 (2025-11-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **PD-3377:** contributors update to publish all packages ([719fd3e](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/719fd3e1249e247443b125c47ea408d92c8395c3))
12
+
13
+
14
+
15
+
16
+
6
17
  ## 0.4.65 (2025-11-12)
7
18
 
8
19
  ### Only dependencies have been changed
@@ -0,0 +1,7 @@
1
+ import { WithLayoutType } from '@sbercloud/uikit-product-utils';
2
+ import { QuestionTooltipProps, TooltipProps } from '@snack-uikit/tooltip';
3
+ export type AdaptiveTooltipProps = WithLayoutType<TooltipProps>;
4
+ export declare function AdaptiveTooltip({ layoutType, ...props }: AdaptiveTooltipProps): import("react/jsx-runtime").JSX.Element;
5
+ export type AdaptiveQuestionTooltipProps = WithLayoutType<QuestionTooltipProps>;
6
+ export declare function AdaptiveQuestionTooltip({ layoutType, ...props }: AdaptiveQuestionTooltipProps): import("react/jsx-runtime").JSX.Element;
7
+ export type { TooltipProps, QuestionTooltipProps };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.AdaptiveTooltip = AdaptiveTooltip;
15
+ exports.AdaptiveQuestionTooltip = AdaptiveQuestionTooltip;
16
+ const jsx_runtime_1 = require("react/jsx-runtime");
17
+ const tooltip_1 = require("@snack-uikit/tooltip");
18
+ const MobileQuestionTooltip_1 = require("../MobileQuestionTooltip");
19
+ const MobileTooltip_1 = require("../MobileTooltip");
20
+ function AdaptiveTooltip(_a) {
21
+ var { layoutType } = _a, props = __rest(_a, ["layoutType"]);
22
+ const isMobile = layoutType === 'mobile';
23
+ return isMobile ? (0, jsx_runtime_1.jsx)(MobileTooltip_1.MobileTooltip, Object.assign({}, props)) : (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, Object.assign({}, props));
24
+ }
25
+ function AdaptiveQuestionTooltip(_a) {
26
+ var { layoutType } = _a, props = __rest(_a, ["layoutType"]);
27
+ const isMobile = layoutType === 'mobile';
28
+ return isMobile ? (0, jsx_runtime_1.jsx)(MobileQuestionTooltip_1.MobileQuestionTooltip, Object.assign({}, props)) : (0, jsx_runtime_1.jsx)(tooltip_1.QuestionTooltip, Object.assign({}, props));
29
+ }
@@ -0,0 +1 @@
1
+ export * from './AdaptiveTooltip';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AdaptiveTooltip"), exports);
@@ -0,0 +1,14 @@
1
+ import { MobileTooltipProps } from '../MobileTooltip';
2
+ import { Size, Trigger } from './types';
3
+ export type MobileQuestionTooltipProps = Omit<MobileTooltipProps, 'children' | 'triggerClassName' | 'trigger'> & {
4
+ /** Условие отображения подсказки */
5
+ trigger?: Trigger;
6
+ /** Размер */
7
+ size?: Size;
8
+ /** CSS-класс контейнера подсказки */
9
+ tooltipClassname?: string;
10
+ /** data-test-id для триггера */
11
+ triggerDataTestId?: string;
12
+ tabIndex?: number;
13
+ };
14
+ export declare function MobileQuestionTooltip({ size, trigger, tooltipClassname, className, triggerDataTestId, open, onOpenChange, tabIndex, ...rest }: MobileQuestionTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MobileQuestionTooltip = MobileQuestionTooltip;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const classnames_1 = __importDefault(require("classnames"));
20
+ const uncontrollable_1 = require("uncontrollable");
21
+ const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
22
+ const MobileTooltip_1 = require("../MobileTooltip");
23
+ const constants_1 = require("./constants");
24
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
25
+ function MobileQuestionTooltip(_a) {
26
+ var { size = constants_1.SIZE.Xs, trigger = constants_1.TRIGGER.Hover, tooltipClassname, className, triggerDataTestId, open, onOpenChange, tabIndex = 0 } = _a, rest = __rest(_a, ["size", "trigger", "tooltipClassname", "className", "triggerDataTestId", "open", "onOpenChange", "tabIndex"]);
27
+ const [isOpen, setIsOpen] = (0, uncontrollable_1.useUncontrolledProp)(open, false, onOpenChange);
28
+ return ((0, jsx_runtime_1.jsx)(MobileTooltip_1.MobileTooltip, Object.assign({}, rest, { className: tooltipClassname, open: isOpen, onOpenChange: setIsOpen, trigger: constants_1.TRIGGER_MAP[trigger], children: ({ getReferenceProps, ref }) => ((0, jsx_runtime_1.jsx)("span", Object.assign({}, getReferenceProps({
29
+ onClick: event => event.stopPropagation(),
30
+ }), { ref: ref, "data-size": size, "data-opened": isOpen, "data-trigger": trigger, className: (0, classnames_1.default)(styles_module_scss_1.default.questionTooltip, className), role: 'button', tabIndex: tabIndex, children: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.QuestionSVG, { size: constants_1.SIZES_MAP[size], "data-test-id": triggerDataTestId }) }))) })));
31
+ }
@@ -0,0 +1,16 @@
1
+ export declare const SIZE: {
2
+ readonly S: "s";
3
+ readonly Xs: "xs";
4
+ };
5
+ export declare const SIZES_MAP: {
6
+ xs: number;
7
+ s: number;
8
+ };
9
+ export declare const TRIGGER: {
10
+ readonly Hover: "hover";
11
+ readonly Click: "click";
12
+ };
13
+ export declare const TRIGGER_MAP: {
14
+ hover: "hoverAndFocusVisible";
15
+ click: "clickAndFocusVisible";
16
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRIGGER_MAP = exports.TRIGGER = exports.SIZES_MAP = exports.SIZE = void 0;
4
+ const popover_private_1 = require("@snack-uikit/popover-private");
5
+ exports.SIZE = {
6
+ S: 's',
7
+ Xs: 'xs',
8
+ };
9
+ exports.SIZES_MAP = {
10
+ [exports.SIZE.Xs]: 16,
11
+ [exports.SIZE.S]: 24,
12
+ };
13
+ exports.TRIGGER = {
14
+ Hover: 'hover',
15
+ Click: 'click',
16
+ };
17
+ exports.TRIGGER_MAP = {
18
+ [exports.TRIGGER.Hover]: popover_private_1.TRIGGER.HoverAndFocusVisible,
19
+ [exports.TRIGGER.Click]: popover_private_1.TRIGGER.ClickAndFocusVisible,
20
+ };
@@ -0,0 +1 @@
1
+ export * from './MobileQuestionTooltip';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MobileQuestionTooltip"), exports);
@@ -0,0 +1,38 @@
1
+ .questionTooltip{
2
+ cursor:pointer;
3
+ display:inline-flex;
4
+ margin:0;
5
+ padding:0;
6
+ color:var(--sys-neutral-text-light, #8b8e9b);
7
+ background:none;
8
+ border:0;
9
+ }
10
+ .questionTooltip:hover{
11
+ color:var(--sys-neutral-text-light, #8b8e9b);
12
+ }
13
+ .questionTooltip:focus-visible{
14
+ outline-width:var(--border-state-focus-s-border-width, 2px);
15
+ outline-style:var(--border-state-focus-s-border-style, solid);
16
+ outline-color:var(--border-state-focus-s-border-color, );
17
+ outline-color:var(--sys-available-complementary, #1c1c24);
18
+ }
19
+ .questionTooltip[data-trigger=click][data-opened=true]{
20
+ color:var(--sys-neutral-text-main, #41424e);
21
+ }
22
+ .questionTooltip[data-trigger=click]:hover{
23
+ color:var(--sys-neutral-text-support, #6d707f);
24
+ }
25
+ .questionTooltip[data-trigger=click]:active{
26
+ color:var(--sys-neutral-text-main, #41424e);
27
+ }
28
+ .questionTooltip[data-trigger=click]:focus-visible{
29
+ color:var(--sys-neutral-text-support, #6d707f);
30
+ }
31
+ .questionTooltip[data-size=xs] svg{
32
+ width:var(--size-icon-container-xs, 16px) !important;
33
+ height:var(--size-icon-container-xs, 16px) !important;
34
+ }
35
+ .questionTooltip[data-size=s] svg{
36
+ width:var(--size-icon-container-s, 24px) !important;
37
+ height:var(--size-icon-container-s, 24px) !important;
38
+ }
@@ -0,0 +1,4 @@
1
+ import { ValueOf } from '@snack-uikit/utils';
2
+ import { SIZE, TRIGGER } from './constants';
3
+ export type Size = ValueOf<typeof SIZE>;
4
+ export type Trigger = ValueOf<typeof TRIGGER>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { PopoverPrivateProps } from '@snack-uikit/popover-private';
3
+ import { WithSupportProps } from '@snack-uikit/utils';
4
+ export type MobileTooltipProps = WithSupportProps<{
5
+ /** Содержимое тултипа */
6
+ tip: ReactNode;
7
+ /** Отключение ограничения ширины тултипа @default false */
8
+ disableMaxWidth?: boolean;
9
+ } & Pick<PopoverPrivateProps, 'className' | 'triggerClassName' | 'offset' | 'open' | 'onOpenChange' | 'hoverDelayOpen' | 'hoverDelayClose' | 'triggerRef' | 'disableSpanWrapper' | 'fallbackPlacements'> & Partial<Pick<PopoverPrivateProps, 'trigger' | 'placement' | 'children'>>>;
10
+ export declare function MobileTooltip({ tip, trigger, placement, children, disableMaxWidth, ...otherProps }: MobileTooltipProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MobileTooltip = MobileTooltip;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const popover_private_1 = require("@snack-uikit/popover-private");
20
+ const constants_1 = require("./constants");
21
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
22
+ function MobileTooltip(_a) {
23
+ var { tip, trigger = 'hoverAndFocusVisible', placement = 'top', children, disableMaxWidth = false } = _a, otherProps = __rest(_a, ["tip", "trigger", "placement", "children", "disableMaxWidth"]);
24
+ if (!children) {
25
+ return null;
26
+ }
27
+ return ((0, jsx_runtime_1.jsx)(popover_private_1.PopoverPrivate, Object.assign({ placement: placement, popoverContent: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.tooltipContainer, "data-disable-max-width": disableMaxWidth, children: tip }), trigger: trigger, arrowContainerClassName: styles_module_scss_1.default.tooltipArrowContainer, arrowElementClassName: styles_module_scss_1.default.tooltipArrowElement, hasArrow: true, fallbackPlacements: constants_1.DEFAULT_FALLBACK_PLACEMENTS, className: styles_module_scss_1.default.tooltip }, otherProps, { children: children })));
28
+ }
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_FALLBACK_PLACEMENTS: ("top" | "right" | "bottom" | "left")[];
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_FALLBACK_PLACEMENTS = void 0;
4
+ const popover_private_1 = require("@snack-uikit/popover-private");
5
+ exports.DEFAULT_FALLBACK_PLACEMENTS = [popover_private_1.PLACEMENT.Top, popover_private_1.PLACEMENT.Right, popover_private_1.PLACEMENT.Bottom, popover_private_1.PLACEMENT.Left];
@@ -0,0 +1 @@
1
+ export * from './MobileTooltip';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./MobileTooltip"), exports);
@@ -0,0 +1,48 @@
1
+ .tooltipContainer{
2
+ padding:var(--space-tooltip-padding-single, 8px);
3
+ border-radius:var(--radius-tooltip-container, 4px);
4
+ min-width:var(--size-tooltip-container-min-width, 20px);
5
+ max-width:var(--size-tooltip-container-max-width, 416px);
6
+ font-family:var(--sans-body-s-font-family, SB Sans Interface);
7
+ font-weight:var(--sans-body-s-font-weight, Regular);
8
+ line-height:var(--sans-body-s-line-height, 16px);
9
+ font-size:var(--sans-body-s-font-size, 12px);
10
+ letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
11
+ paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
12
+ overflow:hidden;
13
+ box-sizing:border-box;
14
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
15
+ word-wrap:break-word;
16
+ background-color:var(--sys-invert-neutral-background, #30303c);
17
+ max-width:calc(100dvw - var(--dimension-4m, 32px));
18
+ }
19
+
20
+ .tooltip[data-placement=top] .tooltipContainer, .tooltip[data-placement=top-start] .tooltipContainer, .tooltip[data-placement=top-end] .tooltipContainer{
21
+ margin:var(--dimension-2m, 16px) var(--dimension-2m, 16px) 0;
22
+ }
23
+ .tooltip[data-placement=bottom] .tooltipContainer, .tooltip[data-placement=bottom-start] .tooltipContainer, .tooltip[data-placement=bottom-end] .tooltipContainer{
24
+ margin:0 var(--dimension-2m, 16px) var(--dimension-2m, 16px);
25
+ }
26
+ .tooltip[data-placement=left] .tooltipContainer, .tooltip[data-placement=left-start] .tooltipContainer, .tooltip[data-placement=left-end] .tooltipContainer{
27
+ margin:var(--dimension-2m, 16px) 0 var(--dimension-2m, 16px) var(--dimension-2m, 16px);
28
+ }
29
+ .tooltip[data-placement=right] .tooltipContainer, .tooltip[data-placement=right-start] .tooltipContainer, .tooltip[data-placement=right-end] .tooltipContainer{
30
+ margin:var(--dimension-2m, 16px) var(--dimension-2m, 16px) var(--dimension-2m, 16px) 0;
31
+ }
32
+
33
+ .tooltipArrowContainer{
34
+ padding-left:var(--space-popover-popover-pointer-offset, 4px);
35
+ padding-top:var(--space-tooltip-tooltip-pointer-padding, 4px);
36
+ padding-bottom:var(--space-tooltip-tooltip-pointer-padding, 4px);
37
+ position:absolute;
38
+ display:flex;
39
+ padding-top:0;
40
+ padding-bottom:0;
41
+ color:var(--sys-invert-neutral-background, #30303c);
42
+ }
43
+
44
+ .tooltipArrowElement{
45
+ height:var(--size-tooltip-tooltip-pointer-arrow-height, 12px);
46
+ width:var(--size-tooltip-tooltip-pointer-arrow-width, 6px);
47
+ fill:currentColor;
48
+ }
@@ -0,0 +1,3 @@
1
+ export * from './AdaptiveTooltip';
2
+ export * from './MobileTooltip';
3
+ export * from './MobileQuestionTooltip';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AdaptiveTooltip"), exports);
18
+ __exportStar(require("./MobileTooltip"), exports);
19
+ __exportStar(require("./MobileQuestionTooltip"), exports);
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./components"), exports);
@@ -0,0 +1,7 @@
1
+ import { WithLayoutType } from '@sbercloud/uikit-product-utils';
2
+ import { QuestionTooltipProps, TooltipProps } from '@snack-uikit/tooltip';
3
+ export type AdaptiveTooltipProps = WithLayoutType<TooltipProps>;
4
+ export declare function AdaptiveTooltip({ layoutType, ...props }: AdaptiveTooltipProps): import("react/jsx-runtime").JSX.Element;
5
+ export type AdaptiveQuestionTooltipProps = WithLayoutType<QuestionTooltipProps>;
6
+ export declare function AdaptiveQuestionTooltip({ layoutType, ...props }: AdaptiveQuestionTooltipProps): import("react/jsx-runtime").JSX.Element;
7
+ export type { TooltipProps, QuestionTooltipProps };
@@ -0,0 +1,25 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { QuestionTooltip, Tooltip } from '@snack-uikit/tooltip';
14
+ import { MobileQuestionTooltip } from '../MobileQuestionTooltip';
15
+ import { MobileTooltip } from '../MobileTooltip';
16
+ export function AdaptiveTooltip(_a) {
17
+ var { layoutType } = _a, props = __rest(_a, ["layoutType"]);
18
+ const isMobile = layoutType === 'mobile';
19
+ return isMobile ? _jsx(MobileTooltip, Object.assign({}, props)) : _jsx(Tooltip, Object.assign({}, props));
20
+ }
21
+ export function AdaptiveQuestionTooltip(_a) {
22
+ var { layoutType } = _a, props = __rest(_a, ["layoutType"]);
23
+ const isMobile = layoutType === 'mobile';
24
+ return isMobile ? _jsx(MobileQuestionTooltip, Object.assign({}, props)) : _jsx(QuestionTooltip, Object.assign({}, props));
25
+ }
@@ -0,0 +1 @@
1
+ export * from './AdaptiveTooltip';
@@ -0,0 +1 @@
1
+ export * from './AdaptiveTooltip';
@@ -0,0 +1,14 @@
1
+ import { MobileTooltipProps } from '../MobileTooltip';
2
+ import { Size, Trigger } from './types';
3
+ export type MobileQuestionTooltipProps = Omit<MobileTooltipProps, 'children' | 'triggerClassName' | 'trigger'> & {
4
+ /** Условие отображения подсказки */
5
+ trigger?: Trigger;
6
+ /** Размер */
7
+ size?: Size;
8
+ /** CSS-класс контейнера подсказки */
9
+ tooltipClassname?: string;
10
+ /** data-test-id для триггера */
11
+ triggerDataTestId?: string;
12
+ tabIndex?: number;
13
+ };
14
+ export declare function MobileQuestionTooltip({ size, trigger, tooltipClassname, className, triggerDataTestId, open, onOpenChange, tabIndex, ...rest }: MobileQuestionTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import cn from 'classnames';
14
+ import { useUncontrolledProp } from 'uncontrollable';
15
+ import { QuestionSVG } from '@sbercloud/uikit-product-icons';
16
+ import { MobileTooltip } from '../MobileTooltip';
17
+ import { SIZE, SIZES_MAP, TRIGGER, TRIGGER_MAP } from './constants';
18
+ import styles from './styles.module.css';
19
+ export function MobileQuestionTooltip(_a) {
20
+ var { size = SIZE.Xs, trigger = TRIGGER.Hover, tooltipClassname, className, triggerDataTestId, open, onOpenChange, tabIndex = 0 } = _a, rest = __rest(_a, ["size", "trigger", "tooltipClassname", "className", "triggerDataTestId", "open", "onOpenChange", "tabIndex"]);
21
+ const [isOpen, setIsOpen] = useUncontrolledProp(open, false, onOpenChange);
22
+ return (_jsx(MobileTooltip, Object.assign({}, rest, { className: tooltipClassname, open: isOpen, onOpenChange: setIsOpen, trigger: TRIGGER_MAP[trigger], children: ({ getReferenceProps, ref }) => (_jsx("span", Object.assign({}, getReferenceProps({
23
+ onClick: event => event.stopPropagation(),
24
+ }), { ref: ref, "data-size": size, "data-opened": isOpen, "data-trigger": trigger, className: cn(styles.questionTooltip, className), role: 'button', tabIndex: tabIndex, children: _jsx(QuestionSVG, { size: SIZES_MAP[size], "data-test-id": triggerDataTestId }) }))) })));
25
+ }
@@ -0,0 +1,16 @@
1
+ export declare const SIZE: {
2
+ readonly S: "s";
3
+ readonly Xs: "xs";
4
+ };
5
+ export declare const SIZES_MAP: {
6
+ xs: number;
7
+ s: number;
8
+ };
9
+ export declare const TRIGGER: {
10
+ readonly Hover: "hover";
11
+ readonly Click: "click";
12
+ };
13
+ export declare const TRIGGER_MAP: {
14
+ hover: "hoverAndFocusVisible";
15
+ click: "clickAndFocusVisible";
16
+ };
@@ -0,0 +1,17 @@
1
+ import { TRIGGER as POPOVER_TRIGGER } from '@snack-uikit/popover-private';
2
+ export const SIZE = {
3
+ S: 's',
4
+ Xs: 'xs',
5
+ };
6
+ export const SIZES_MAP = {
7
+ [SIZE.Xs]: 16,
8
+ [SIZE.S]: 24,
9
+ };
10
+ export const TRIGGER = {
11
+ Hover: 'hover',
12
+ Click: 'click',
13
+ };
14
+ export const TRIGGER_MAP = {
15
+ [TRIGGER.Hover]: POPOVER_TRIGGER.HoverAndFocusVisible,
16
+ [TRIGGER.Click]: POPOVER_TRIGGER.ClickAndFocusVisible,
17
+ };
@@ -0,0 +1 @@
1
+ export * from './MobileQuestionTooltip';
@@ -0,0 +1 @@
1
+ export * from './MobileQuestionTooltip';
@@ -0,0 +1,38 @@
1
+ .questionTooltip{
2
+ cursor:pointer;
3
+ display:inline-flex;
4
+ margin:0;
5
+ padding:0;
6
+ color:var(--sys-neutral-text-light, #8b8e9b);
7
+ background:none;
8
+ border:0;
9
+ }
10
+ .questionTooltip:hover{
11
+ color:var(--sys-neutral-text-light, #8b8e9b);
12
+ }
13
+ .questionTooltip:focus-visible{
14
+ outline-width:var(--border-state-focus-s-border-width, 2px);
15
+ outline-style:var(--border-state-focus-s-border-style, solid);
16
+ outline-color:var(--border-state-focus-s-border-color, );
17
+ outline-color:var(--sys-available-complementary, #1c1c24);
18
+ }
19
+ .questionTooltip[data-trigger=click][data-opened=true]{
20
+ color:var(--sys-neutral-text-main, #41424e);
21
+ }
22
+ .questionTooltip[data-trigger=click]:hover{
23
+ color:var(--sys-neutral-text-support, #6d707f);
24
+ }
25
+ .questionTooltip[data-trigger=click]:active{
26
+ color:var(--sys-neutral-text-main, #41424e);
27
+ }
28
+ .questionTooltip[data-trigger=click]:focus-visible{
29
+ color:var(--sys-neutral-text-support, #6d707f);
30
+ }
31
+ .questionTooltip[data-size=xs] svg{
32
+ width:var(--size-icon-container-xs, 16px) !important;
33
+ height:var(--size-icon-container-xs, 16px) !important;
34
+ }
35
+ .questionTooltip[data-size=s] svg{
36
+ width:var(--size-icon-container-s, 24px) !important;
37
+ height:var(--size-icon-container-s, 24px) !important;
38
+ }
@@ -0,0 +1,4 @@
1
+ import { ValueOf } from '@snack-uikit/utils';
2
+ import { SIZE, TRIGGER } from './constants';
3
+ export type Size = ValueOf<typeof SIZE>;
4
+ export type Trigger = ValueOf<typeof TRIGGER>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { PopoverPrivateProps } from '@snack-uikit/popover-private';
3
+ import { WithSupportProps } from '@snack-uikit/utils';
4
+ export type MobileTooltipProps = WithSupportProps<{
5
+ /** Содержимое тултипа */
6
+ tip: ReactNode;
7
+ /** Отключение ограничения ширины тултипа @default false */
8
+ disableMaxWidth?: boolean;
9
+ } & Pick<PopoverPrivateProps, 'className' | 'triggerClassName' | 'offset' | 'open' | 'onOpenChange' | 'hoverDelayOpen' | 'hoverDelayClose' | 'triggerRef' | 'disableSpanWrapper' | 'fallbackPlacements'> & Partial<Pick<PopoverPrivateProps, 'trigger' | 'placement' | 'children'>>>;
10
+ export declare function MobileTooltip({ tip, trigger, placement, children, disableMaxWidth, ...otherProps }: MobileTooltipProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,22 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { PopoverPrivate } from '@snack-uikit/popover-private';
14
+ import { DEFAULT_FALLBACK_PLACEMENTS } from './constants';
15
+ import styles from './styles.module.css';
16
+ export function MobileTooltip(_a) {
17
+ var { tip, trigger = 'hoverAndFocusVisible', placement = 'top', children, disableMaxWidth = false } = _a, otherProps = __rest(_a, ["tip", "trigger", "placement", "children", "disableMaxWidth"]);
18
+ if (!children) {
19
+ return null;
20
+ }
21
+ return (_jsx(PopoverPrivate, Object.assign({ placement: placement, popoverContent: _jsx("div", { className: styles.tooltipContainer, "data-disable-max-width": disableMaxWidth, children: tip }), trigger: trigger, arrowContainerClassName: styles.tooltipArrowContainer, arrowElementClassName: styles.tooltipArrowElement, hasArrow: true, fallbackPlacements: DEFAULT_FALLBACK_PLACEMENTS, className: styles.tooltip }, otherProps, { children: children })));
22
+ }
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_FALLBACK_PLACEMENTS: ("top" | "right" | "bottom" | "left")[];
@@ -0,0 +1,2 @@
1
+ import { PLACEMENT } from '@snack-uikit/popover-private';
2
+ export const DEFAULT_FALLBACK_PLACEMENTS = [PLACEMENT.Top, PLACEMENT.Right, PLACEMENT.Bottom, PLACEMENT.Left];
@@ -0,0 +1 @@
1
+ export * from './MobileTooltip';
@@ -0,0 +1 @@
1
+ export * from './MobileTooltip';
@@ -0,0 +1,48 @@
1
+ .tooltipContainer{
2
+ padding:var(--space-tooltip-padding-single, 8px);
3
+ border-radius:var(--radius-tooltip-container, 4px);
4
+ min-width:var(--size-tooltip-container-min-width, 20px);
5
+ max-width:var(--size-tooltip-container-max-width, 416px);
6
+ font-family:var(--sans-body-s-font-family, SB Sans Interface);
7
+ font-weight:var(--sans-body-s-font-weight, Regular);
8
+ line-height:var(--sans-body-s-line-height, 16px);
9
+ font-size:var(--sans-body-s-font-size, 12px);
10
+ letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
11
+ paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
12
+ overflow:hidden;
13
+ box-sizing:border-box;
14
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
15
+ word-wrap:break-word;
16
+ background-color:var(--sys-invert-neutral-background, #30303c);
17
+ max-width:calc(100dvw - var(--dimension-4m, 32px));
18
+ }
19
+
20
+ .tooltip[data-placement=top] .tooltipContainer, .tooltip[data-placement=top-start] .tooltipContainer, .tooltip[data-placement=top-end] .tooltipContainer{
21
+ margin:var(--dimension-2m, 16px) var(--dimension-2m, 16px) 0;
22
+ }
23
+ .tooltip[data-placement=bottom] .tooltipContainer, .tooltip[data-placement=bottom-start] .tooltipContainer, .tooltip[data-placement=bottom-end] .tooltipContainer{
24
+ margin:0 var(--dimension-2m, 16px) var(--dimension-2m, 16px);
25
+ }
26
+ .tooltip[data-placement=left] .tooltipContainer, .tooltip[data-placement=left-start] .tooltipContainer, .tooltip[data-placement=left-end] .tooltipContainer{
27
+ margin:var(--dimension-2m, 16px) 0 var(--dimension-2m, 16px) var(--dimension-2m, 16px);
28
+ }
29
+ .tooltip[data-placement=right] .tooltipContainer, .tooltip[data-placement=right-start] .tooltipContainer, .tooltip[data-placement=right-end] .tooltipContainer{
30
+ margin:var(--dimension-2m, 16px) var(--dimension-2m, 16px) var(--dimension-2m, 16px) 0;
31
+ }
32
+
33
+ .tooltipArrowContainer{
34
+ padding-left:var(--space-popover-popover-pointer-offset, 4px);
35
+ padding-top:var(--space-tooltip-tooltip-pointer-padding, 4px);
36
+ padding-bottom:var(--space-tooltip-tooltip-pointer-padding, 4px);
37
+ position:absolute;
38
+ display:flex;
39
+ padding-top:0;
40
+ padding-bottom:0;
41
+ color:var(--sys-invert-neutral-background, #30303c);
42
+ }
43
+
44
+ .tooltipArrowElement{
45
+ height:var(--size-tooltip-tooltip-pointer-arrow-height, 12px);
46
+ width:var(--size-tooltip-tooltip-pointer-arrow-width, 6px);
47
+ fill:currentColor;
48
+ }
@@ -0,0 +1,3 @@
1
+ export * from './AdaptiveTooltip';
2
+ export * from './MobileTooltip';
3
+ export * from './MobileQuestionTooltip';
@@ -0,0 +1,3 @@
1
+ export * from './AdaptiveTooltip';
2
+ export * from './MobileTooltip';
3
+ export * from './MobileQuestionTooltip';
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1 @@
1
+ export * from './components';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloud-ru/uikit-product-mobile-tooltip",
3
3
  "title": "Mobile Tooltip",
4
- "version": "0.4.65",
4
+ "version": "0.4.66",
5
5
  "sideEffects": [
6
6
  "*.css",
7
7
  "*.woff",
@@ -30,19 +30,20 @@
30
30
  "name": "Akhremenko Grigorii",
31
31
  "url": "https://github.com/AGrigorii"
32
32
  },
33
+ "contributors": [],
33
34
  "license": "Apache-2.0",
34
35
  "publishConfig": {
35
36
  "access": "public"
36
37
  },
37
38
  "scripts": {},
38
39
  "dependencies": {
39
- "@cloud-ru/uikit-product-icons": "15.1.1",
40
- "@cloud-ru/uikit-product-utils": "7.0.0",
40
+ "@cloud-ru/uikit-product-icons": "15.1.2",
41
+ "@cloud-ru/uikit-product-utils": "7.0.1",
41
42
  "@snack-uikit/popover-private": "0.14.5",
42
43
  "@snack-uikit/tooltip": "0.18.3",
43
44
  "@snack-uikit/utils": "3.10.1",
44
45
  "classnames": "2.5.1",
45
46
  "uncontrollable": "8.0.4"
46
47
  },
47
- "gitHead": "e8bd79bc92b26a8f52611972eec98a867536ccd3"
48
+ "gitHead": "9c11b1e33e716c874534a1c162266c8591f2ed03"
48
49
  }