glints-aries 4.0.237 → 4.0.238

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.
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- declare const badgeStatusVariant: readonly ["neutral", "success", "informational", "warning", "critical", "promotion", "new"];
2
+ declare const badgeStatusVariant: readonly ["neutral", "success", "information", "warning", "critical", "promotion", "enticing", "attention"];
3
3
  export declare type BadgeStatusVariant = typeof badgeStatusVariant[number];
4
4
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  children?: React.ReactNode;
6
+ hasBorder?: boolean;
6
7
  status?: BadgeStatusVariant;
7
8
  textColor?: string;
8
9
  }
@@ -1,22 +1,19 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- var _excluded = ["children", "status", "textColor"];
3
+ var _excluded = ["children", "hasBorder", "status", "textColor"];
4
4
  import React from 'react';
5
5
  import { Typography } from '../Typography';
6
- import { Neutral } from '../utilities/colors';
7
- import { BadgeStyle } from './BadgeStyle';
8
- var badgeStatusVariant = ['neutral', 'success', 'informational', 'warning', 'critical', 'promotion', 'new'];
6
+ import { BadgeStyle, badgeTextColor } from './BadgeStyle';
7
+ var badgeStatusVariant = ['neutral', 'success', 'information', 'warning', 'critical', 'promotion', 'enticing', 'attention'];
9
8
  var renderTextColor = function renderTextColor(textColor, status) {
10
9
  if (textColor) {
11
10
  return textColor;
12
11
  }
13
- if (status === 'new') {
14
- return Neutral.B100;
15
- }
16
- return Neutral.B18;
12
+ return badgeTextColor[status];
17
13
  };
18
14
  export var Badge = /*#__PURE__*/React.forwardRef(function Badge(_ref, ref) {
19
15
  var children = _ref.children,
16
+ hasBorder = _ref.hasBorder,
20
17
  status = _ref.status,
21
18
  textColor = _ref.textColor,
22
19
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
@@ -27,6 +24,7 @@ export var Badge = /*#__PURE__*/React.forwardRef(function Badge(_ref, ref) {
27
24
  }, children) : children;
28
25
  return /*#__PURE__*/React.createElement(BadgeStyle, _extends({
29
26
  ref: ref,
30
- status: status ? status : 'neutral'
27
+ status: status ? status : 'neutral',
28
+ "data-border": hasBorder
31
29
  }, props), /*#__PURE__*/React.createElement("div", null, content));
32
30
  });
@@ -2,3 +2,4 @@ import { Meta } from '@storybook/react';
2
2
  declare const _default: Meta<import("@storybook/react").Args>;
3
3
  export default _default;
4
4
  export declare const Interactive: any;
5
+ export declare const WithBorder: any;
@@ -1,2 +1,5 @@
1
- import { BadgeProps } from './Badge';
1
+ import { BadgeProps, BadgeStatusVariant } from './Badge';
2
+ export declare const badgeTextColor: {
3
+ [variant in BadgeStatusVariant]: string;
4
+ };
2
5
  export declare const BadgeStyle: import("styled-components").StyledComponent<"div", any, BadgeProps, never>;
@@ -1,9 +1,10 @@
1
- var _badgeBackgroundColor;
1
+ var _badgeBackgroundColor, _badgeTextColor;
2
2
  import styled from 'styled-components';
3
3
  import { borderRadius20 } from '../utilities/borderRadius';
4
4
  import { Blue, Green, Neutral, Orange, Red, Yellow } from '../utilities/colors';
5
5
  import { space8 } from '../utilities/spacing';
6
- var badgeBackgroundColor = (_badgeBackgroundColor = {}, _badgeBackgroundColor['neutral'] = Neutral.B95, _badgeBackgroundColor['success'] = Green.B89, _badgeBackgroundColor['informational'] = Blue.S08, _badgeBackgroundColor['warning'] = Orange.S42, _badgeBackgroundColor['critical'] = Red.B100, _badgeBackgroundColor['promotion'] = Yellow.S75, _badgeBackgroundColor['new'] = Orange.S87, _badgeBackgroundColor);
6
+ var badgeBackgroundColor = (_badgeBackgroundColor = {}, _badgeBackgroundColor['neutral'] = Neutral.B95, _badgeBackgroundColor['success'] = Green.B89, _badgeBackgroundColor['information'] = Blue.S08, _badgeBackgroundColor['warning'] = Orange.S42, _badgeBackgroundColor['critical'] = Red.B100, _badgeBackgroundColor['promotion'] = Yellow.S75, _badgeBackgroundColor['enticing'] = Orange.S87, _badgeBackgroundColor['attention'] = Red.B93, _badgeBackgroundColor);
7
+ export var badgeTextColor = (_badgeTextColor = {}, _badgeTextColor['neutral'] = Neutral.B18, _badgeTextColor['success'] = Neutral.B18, _badgeTextColor['information'] = Neutral.B18, _badgeTextColor['warning'] = Neutral.B18, _badgeTextColor['critical'] = Neutral.B18, _badgeTextColor['promotion'] = Neutral.B18, _badgeTextColor['enticing'] = Neutral.B100, _badgeTextColor['attention'] = Neutral.B100, _badgeTextColor);
7
8
  var getBadgeBackgroundColor = function getBadgeBackgroundColor(status) {
8
9
  if (!(status in badgeBackgroundColor)) {
9
10
  console.warn(status + " is not a valid status, default will be used");
@@ -14,9 +15,9 @@ var getBadgeBackgroundColor = function getBadgeBackgroundColor(status) {
14
15
  export var BadgeStyle = styled.div.withConfig({
15
16
  displayName: "BadgeStyle",
16
17
  componentId: "sc-qx6mou-0"
17
- })(["", " width:fit-content;padding:2px ", ";border-radius:", ";line-height:0;"], function (_ref) {
18
+ })(["", " width:fit-content;padding:2px ", ";border-radius:", ";line-height:0;&[data-border='true']{border:1px solid ", ";}"], function (_ref) {
18
19
  var status = _ref.status;
19
20
  return {
20
21
  'background-color': getBadgeBackgroundColor(status)
21
22
  };
22
- }, space8, borderRadius20);
23
+ }, space8, borderRadius20, Neutral.B100);
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta<import("@storybook/react").Args>;
3
+ export default _default;
4
+ export declare const Interactive: any;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledBadge: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("./Badge").BadgeProps & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
@@ -0,0 +1,6 @@
1
+ import styled from 'styled-components';
2
+ import { Badge } from '../Badge';
3
+ export var StyledBadge = styled(Badge).withConfig({
4
+ displayName: "FloatingBadgeSyle__StyledBadge",
5
+ componentId: "sc-1w6mukf-0"
6
+ })(["position:absolute;z-index:2;top:-10px;right:-16px;"]);
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { Typography } from '../Typography';
3
3
  import { StyledSpan, StyledTabButton } from './TabStyle';
4
4
  export var Tab = function Tab(_ref) {
@@ -6,12 +6,19 @@ export var Tab = function Tab(_ref) {
6
6
  id = _ref.id,
7
7
  selected = _ref.selected,
8
8
  onSelect = _ref.onSelect;
9
+ var tabRef = useRef(null);
10
+ var handleClick = function handleClick(event) {
11
+ event.preventDefault();
12
+ tabRef.current.scrollIntoView({
13
+ behavior: 'smooth'
14
+ });
15
+ onSelect();
16
+ };
9
17
  return /*#__PURE__*/React.createElement(StyledTabButton, {
18
+ ref: tabRef,
10
19
  "data-selected": selected,
11
20
  id: id,
12
- onClick: function onClick() {
13
- return onSelect();
14
- }
21
+ onClick: handleClick
15
22
  }, /*#__PURE__*/React.createElement(StyledSpan, null, /*#__PURE__*/React.createElement(Typography, {
16
23
  as: "span",
17
24
  variant: "body1"
@@ -9,11 +9,11 @@ export var StyledTabsContainer = styled.div.withConfig({
9
9
  export var StyledTabHeaderContainer = styled.div.withConfig({
10
10
  displayName: "TabStyle__StyledTabHeaderContainer",
11
11
  componentId: "sc-3xj4eu-1"
12
- })(["box-shadow:inset 0px -1px 0px #e1e3e5;"]);
12
+ })(["box-shadow:inset 0px -1px 0px #e1e3e5;overflow-x:auto;white-space:nowrap;background:transparent;position:relative;margin:", " 0;::-webkit-scrollbar{display:none;}&[data-scroll-left='true']{box-shadow:30px 0 50px -50px #474747 inset;}&[data-scroll-right='true']{box-shadow:-30px 0px 50px -50px #474747 inset;}&[data-scroll-left='true'][data-scroll-right='true']{box-shadow:30px 0 50px -50px #474747 inset,-30px 0px 50px -50px #474747 inset;}&[data-grabbing='true']{cursor:grabbing;}"], space16);
13
13
  export var StyledUl = styled.ul.withConfig({
14
14
  displayName: "TabStyle__StyledUl",
15
15
  componentId: "sc-3xj4eu-2"
16
- })(["display:flex;flex-direction:row;align-items:flex-start;padding:0;gap:", ";&[data-fitted='true'] li{flex:1;}"], space8);
16
+ })(["display:flex;flex-direction:row;align-items:flex-start;padding:0;gap:", ";margin:0;&[data-fitted='true'] li{flex:1;}"], space8);
17
17
  export var StyledLi = styled.li.withConfig({
18
18
  displayName: "TabStyle__StyledLi",
19
19
  componentId: "sc-3xj4eu-3"
@@ -25,4 +25,4 @@ export var StyledSpan = styled.span.withConfig({
25
25
  export var StyledTabButton = styled.button.withConfig({
26
26
  displayName: "TabStyle__StyledTabButton",
27
27
  componentId: "sc-3xj4eu-5"
28
- })(["border:0;background:", ";height:56px;cursor:pointer;color:", ";margin-bottom:1px;width:100%;padding:0 ", ";&:hover{color:", ";}&:hover span::before{background:", ";}&[data-selected='true']{color:", ";}&[data-selected='true'] > span::before{background:", ";}@media (max-width:", "){height:48px;}"], Neutral.B100, Neutral.B40, space4, Neutral.B18, Blue.S100, Blue.S99, Blue.S99, Breakpoints.large);
28
+ })(["border:0;background:transparent;height:56px;cursor:pointer;color:", ";margin-bottom:1px;width:100%;padding:0 ", ";&:hover{color:", ";}&:hover span::before{background:", ";}&[data-selected='true']{color:", ";}&[data-selected='true'] > span::before{background:", ";}@media (max-width:", "){height:48px;}"], Neutral.B40, space4, Neutral.B18, Blue.S100, Blue.S99, Blue.S99, Breakpoints.large);
@@ -1,5 +1,5 @@
1
1
  import nextId from 'react-id-generator';
2
- import React, { useEffect, useState } from 'react';
2
+ import React, { useEffect, useRef, useState } from 'react';
3
3
  import { Tab } from './Tab';
4
4
  import { StyledLi, StyledTabHeaderContainer, StyledTabsContainer, StyledUl } from './TabStyle';
5
5
  export var Tabs = /*#__PURE__*/React.forwardRef(function Tabs(_ref, ref) {
@@ -9,16 +9,68 @@ export var Tabs = /*#__PURE__*/React.forwardRef(function Tabs(_ref, ref) {
9
9
  children = _ref.children,
10
10
  fitted = _ref.fitted,
11
11
  onSelected = _ref.onSelected;
12
+ var tabsHeaderRef = useRef(null);
12
13
  var tabLength = tabs.length;
13
14
  var _useState = useState(0),
14
15
  selectedTabIndex = _useState[0],
15
16
  setSelectedTabIndex = _useState[1];
17
+ var _useState2 = useState(false),
18
+ canScrollLeft = _useState2[0],
19
+ setCanScrollLeft = _useState2[1];
20
+ var _useState3 = useState(false),
21
+ canScrollRight = _useState3[0],
22
+ setCanScrollRight = _useState3[1];
23
+ var _useState4 = useState(false),
24
+ isDragging = _useState4[0],
25
+ setIsDragging = _useState4[1];
26
+ var _useState5 = useState(0),
27
+ dragStartX = _useState5[0],
28
+ setDragStartX = _useState5[1];
29
+ var _useState6 = useState(0),
30
+ scrollLeft = _useState6[0],
31
+ setScrollLeft = _useState6[1];
32
+ useEffect(function () {
33
+ var element = tabsHeaderRef.current;
34
+ var isElOverFlowX = (element == null ? void 0 : element.scrollWidth) > (element == null ? void 0 : element.clientWidth);
35
+ setCanScrollRight(isElOverFlowX);
36
+ }, []);
16
37
  useEffect(function () {
17
38
  if (selectedIndex < 0 || selectedIndex >= tabLength) {
18
39
  return;
19
40
  }
20
41
  setSelectedTabIndex(selectedIndex);
21
42
  }, [selectedIndex, tabLength]);
43
+ var handleMouseDown = function handleMouseDown(event) {
44
+ setIsDragging(true);
45
+ var startX = event.clientX - tabsHeaderRef.current.offsetLeft;
46
+ setDragStartX(startX);
47
+ setScrollLeft(tabsHeaderRef.current.scrollLeft);
48
+ };
49
+ var handleMouseLeave = function handleMouseLeave() {
50
+ setIsDragging(false);
51
+ };
52
+ var handleMouseUp = function handleMouseUp() {
53
+ setIsDragging(false);
54
+ };
55
+ var handleMouseMove = function handleMouseMove(event) {
56
+ if (!isDragging) return;
57
+ event.preventDefault();
58
+ var x = event.clientX - tabsHeaderRef.current.offsetLeft;
59
+ var scrollMultiplier = (x - dragStartX) * 3;
60
+ tabsHeaderRef.current.scrollLeft = scrollLeft - scrollMultiplier;
61
+ };
62
+ var handleScroll = function handleScroll() {
63
+ var element = tabsHeaderRef.current;
64
+ setCanScrollLeft((element == null ? void 0 : element.scrollLeft) > 0);
65
+ setCanScrollRight(element.scrollLeft < element.scrollWidth - element.clientWidth);
66
+ };
67
+ var handleWheel = function handleWheel(event) {
68
+ var element = tabsHeaderRef.current;
69
+ element.scrollTo({
70
+ left: element.scrollLeft + event.deltaY * 1,
71
+ behavior: 'smooth'
72
+ });
73
+ };
22
74
  var handleSelectedIndexChanged = function handleSelectedIndexChanged(index) {
23
75
  setSelectedTabIndex(index);
24
76
  onSelected == null ? void 0 : onSelected(index);
@@ -39,7 +91,18 @@ export var Tabs = /*#__PURE__*/React.forwardRef(function Tabs(_ref, ref) {
39
91
  });
40
92
  return /*#__PURE__*/React.createElement(StyledTabsContainer, {
41
93
  ref: ref
42
- }, /*#__PURE__*/React.createElement(StyledTabHeaderContainer, null, /*#__PURE__*/React.createElement(StyledUl, {
94
+ }, /*#__PURE__*/React.createElement(StyledTabHeaderContainer, {
95
+ ref: tabsHeaderRef,
96
+ onScroll: handleScroll,
97
+ onWheel: handleWheel,
98
+ onMouseDown: handleMouseDown,
99
+ onMouseMove: handleMouseMove,
100
+ onMouseUp: handleMouseUp,
101
+ onMouseLeave: handleMouseLeave,
102
+ "data-scroll-left": canScrollLeft,
103
+ "data-scroll-right": canScrollRight,
104
+ "data-grabbing": isDragging
105
+ }, /*#__PURE__*/React.createElement(StyledUl, {
43
106
  "data-fitted": fitted
44
107
  }, renderTabs, " ")), /*#__PURE__*/React.createElement("div", null, children));
45
108
  });
@@ -2,3 +2,4 @@ import { Meta } from '@storybook/react';
2
2
  declare const _default: Meta<import("@storybook/react").Args>;
3
3
  export default _default;
4
4
  export declare const Interactive: any;
5
+ export declare const Overflow: any;
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- declare const badgeStatusVariant: readonly ["neutral", "success", "informational", "warning", "critical", "promotion", "new"];
2
+ declare const badgeStatusVariant: readonly ["neutral", "success", "information", "warning", "critical", "promotion", "enticing", "attention"];
3
3
  export declare type BadgeStatusVariant = typeof badgeStatusVariant[number];
4
4
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  children?: React.ReactNode;
6
+ hasBorder?: boolean;
6
7
  status?: BadgeStatusVariant;
7
8
  textColor?: string;
8
9
  }
@@ -7,21 +7,18 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
7
7
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _Typography = require("../Typography");
10
- var _colors = require("../utilities/colors");
11
10
  var _BadgeStyle = require("./BadgeStyle");
12
- var _excluded = ["children", "status", "textColor"];
13
- var badgeStatusVariant = ['neutral', 'success', 'informational', 'warning', 'critical', 'promotion', 'new'];
11
+ var _excluded = ["children", "hasBorder", "status", "textColor"];
12
+ var badgeStatusVariant = ['neutral', 'success', 'information', 'warning', 'critical', 'promotion', 'enticing', 'attention'];
14
13
  var renderTextColor = function renderTextColor(textColor, status) {
15
14
  if (textColor) {
16
15
  return textColor;
17
16
  }
18
- if (status === 'new') {
19
- return _colors.Neutral.B100;
20
- }
21
- return _colors.Neutral.B18;
17
+ return _BadgeStyle.badgeTextColor[status];
22
18
  };
23
19
  var Badge = /*#__PURE__*/_react["default"].forwardRef(function Badge(_ref, ref) {
24
20
  var children = _ref.children,
21
+ hasBorder = _ref.hasBorder,
25
22
  status = _ref.status,
26
23
  textColor = _ref.textColor,
27
24
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
@@ -32,7 +29,8 @@ var Badge = /*#__PURE__*/_react["default"].forwardRef(function Badge(_ref, ref)
32
29
  }, children) : children;
33
30
  return /*#__PURE__*/_react["default"].createElement(_BadgeStyle.BadgeStyle, (0, _extends2["default"])({
34
31
  ref: ref,
35
- status: status ? status : 'neutral'
32
+ status: status ? status : 'neutral',
33
+ "data-border": hasBorder
36
34
  }, props), /*#__PURE__*/_react["default"].createElement("div", null, content));
37
35
  });
38
36
  exports.Badge = Badge;
@@ -2,3 +2,4 @@ import { Meta } from '@storybook/react';
2
2
  declare const _default: Meta<import("@storybook/react").Args>;
3
3
  export default _default;
4
4
  export declare const Interactive: any;
5
+ export declare const WithBorder: any;
@@ -1,2 +1,5 @@
1
- import { BadgeProps } from './Badge';
1
+ import { BadgeProps, BadgeStatusVariant } from './Badge';
2
+ export declare const badgeTextColor: {
3
+ [variant in BadgeStatusVariant]: string;
4
+ };
2
5
  export declare const BadgeStyle: import("styled-components").StyledComponent<"div", any, BadgeProps, never>;
@@ -2,13 +2,15 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.BadgeStyle = void 0;
5
+ exports.badgeTextColor = exports.BadgeStyle = void 0;
6
6
  var _styledComponents = _interopRequireDefault(require("styled-components"));
7
7
  var _borderRadius = require("../utilities/borderRadius");
8
8
  var _colors = require("../utilities/colors");
9
9
  var _spacing = require("../utilities/spacing");
10
- var _badgeBackgroundColor;
11
- var badgeBackgroundColor = (_badgeBackgroundColor = {}, _badgeBackgroundColor['neutral'] = _colors.Neutral.B95, _badgeBackgroundColor['success'] = _colors.Green.B89, _badgeBackgroundColor['informational'] = _colors.Blue.S08, _badgeBackgroundColor['warning'] = _colors.Orange.S42, _badgeBackgroundColor['critical'] = _colors.Red.B100, _badgeBackgroundColor['promotion'] = _colors.Yellow.S75, _badgeBackgroundColor['new'] = _colors.Orange.S87, _badgeBackgroundColor);
10
+ var _badgeBackgroundColor, _badgeTextColor;
11
+ var badgeBackgroundColor = (_badgeBackgroundColor = {}, _badgeBackgroundColor['neutral'] = _colors.Neutral.B95, _badgeBackgroundColor['success'] = _colors.Green.B89, _badgeBackgroundColor['information'] = _colors.Blue.S08, _badgeBackgroundColor['warning'] = _colors.Orange.S42, _badgeBackgroundColor['critical'] = _colors.Red.B100, _badgeBackgroundColor['promotion'] = _colors.Yellow.S75, _badgeBackgroundColor['enticing'] = _colors.Orange.S87, _badgeBackgroundColor['attention'] = _colors.Red.B93, _badgeBackgroundColor);
12
+ var badgeTextColor = (_badgeTextColor = {}, _badgeTextColor['neutral'] = _colors.Neutral.B18, _badgeTextColor['success'] = _colors.Neutral.B18, _badgeTextColor['information'] = _colors.Neutral.B18, _badgeTextColor['warning'] = _colors.Neutral.B18, _badgeTextColor['critical'] = _colors.Neutral.B18, _badgeTextColor['promotion'] = _colors.Neutral.B18, _badgeTextColor['enticing'] = _colors.Neutral.B100, _badgeTextColor['attention'] = _colors.Neutral.B100, _badgeTextColor);
13
+ exports.badgeTextColor = badgeTextColor;
12
14
  var getBadgeBackgroundColor = function getBadgeBackgroundColor(status) {
13
15
  if (!(status in badgeBackgroundColor)) {
14
16
  console.warn(status + " is not a valid status, default will be used");
@@ -19,10 +21,10 @@ var getBadgeBackgroundColor = function getBadgeBackgroundColor(status) {
19
21
  var BadgeStyle = _styledComponents["default"].div.withConfig({
20
22
  displayName: "BadgeStyle",
21
23
  componentId: "sc-qx6mou-0"
22
- })(["", " width:fit-content;padding:2px ", ";border-radius:", ";line-height:0;"], function (_ref) {
24
+ })(["", " width:fit-content;padding:2px ", ";border-radius:", ";line-height:0;&[data-border='true']{border:1px solid ", ";}"], function (_ref) {
23
25
  var status = _ref.status;
24
26
  return {
25
27
  'background-color': getBadgeBackgroundColor(status)
26
28
  };
27
- }, _spacing.space8, _borderRadius.borderRadius20);
29
+ }, _spacing.space8, _borderRadius.borderRadius20, _colors.Neutral.B100);
28
30
  exports.BadgeStyle = BadgeStyle;
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta<import("@storybook/react").Args>;
3
+ export default _default;
4
+ export declare const Interactive: any;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledBadge: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("./Badge").BadgeProps & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.StyledBadge = void 0;
6
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
7
+ var _Badge = require("../Badge");
8
+ var StyledBadge = (0, _styledComponents["default"])(_Badge.Badge).withConfig({
9
+ displayName: "FloatingBadgeSyle__StyledBadge",
10
+ componentId: "sc-1w6mukf-0"
11
+ })(["position:absolute;z-index:2;top:-10px;right:-16px;"]);
12
+ exports.StyledBadge = StyledBadge;
@@ -1,22 +1,30 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  exports.__esModule = true;
5
4
  exports.Tab = void 0;
6
- var _react = _interopRequireDefault(require("react"));
5
+ var _react = _interopRequireWildcard(require("react"));
7
6
  var _Typography = require("../Typography");
8
7
  var _TabStyle = require("./TabStyle");
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
10
  var Tab = function Tab(_ref) {
10
11
  var content = _ref.content,
11
12
  id = _ref.id,
12
13
  selected = _ref.selected,
13
14
  onSelect = _ref.onSelect;
15
+ var tabRef = (0, _react.useRef)(null);
16
+ var handleClick = function handleClick(event) {
17
+ event.preventDefault();
18
+ tabRef.current.scrollIntoView({
19
+ behavior: 'smooth'
20
+ });
21
+ onSelect();
22
+ };
14
23
  return /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledTabButton, {
24
+ ref: tabRef,
15
25
  "data-selected": selected,
16
26
  id: id,
17
- onClick: function onClick() {
18
- return onSelect();
19
- }
27
+ onClick: handleClick
20
28
  }, /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledSpan, null, /*#__PURE__*/_react["default"].createElement(_Typography.Typography, {
21
29
  as: "span",
22
30
  variant: "body1"
@@ -17,12 +17,12 @@ exports.StyledTabsContainer = StyledTabsContainer;
17
17
  var StyledTabHeaderContainer = _styledComponents["default"].div.withConfig({
18
18
  displayName: "TabStyle__StyledTabHeaderContainer",
19
19
  componentId: "sc-3xj4eu-1"
20
- })(["box-shadow:inset 0px -1px 0px #e1e3e5;"]);
20
+ })(["box-shadow:inset 0px -1px 0px #e1e3e5;overflow-x:auto;white-space:nowrap;background:transparent;position:relative;margin:", " 0;::-webkit-scrollbar{display:none;}&[data-scroll-left='true']{box-shadow:30px 0 50px -50px #474747 inset;}&[data-scroll-right='true']{box-shadow:-30px 0px 50px -50px #474747 inset;}&[data-scroll-left='true'][data-scroll-right='true']{box-shadow:30px 0 50px -50px #474747 inset,-30px 0px 50px -50px #474747 inset;}&[data-grabbing='true']{cursor:grabbing;}"], _spacing.space16);
21
21
  exports.StyledTabHeaderContainer = StyledTabHeaderContainer;
22
22
  var StyledUl = _styledComponents["default"].ul.withConfig({
23
23
  displayName: "TabStyle__StyledUl",
24
24
  componentId: "sc-3xj4eu-2"
25
- })(["display:flex;flex-direction:row;align-items:flex-start;padding:0;gap:", ";&[data-fitted='true'] li{flex:1;}"], _spacing.space8);
25
+ })(["display:flex;flex-direction:row;align-items:flex-start;padding:0;gap:", ";margin:0;&[data-fitted='true'] li{flex:1;}"], _spacing.space8);
26
26
  exports.StyledUl = StyledUl;
27
27
  var StyledLi = _styledComponents["default"].li.withConfig({
28
28
  displayName: "TabStyle__StyledLi",
@@ -37,5 +37,5 @@ exports.StyledSpan = StyledSpan;
37
37
  var StyledTabButton = _styledComponents["default"].button.withConfig({
38
38
  displayName: "TabStyle__StyledTabButton",
39
39
  componentId: "sc-3xj4eu-5"
40
- })(["border:0;background:", ";height:56px;cursor:pointer;color:", ";margin-bottom:1px;width:100%;padding:0 ", ";&:hover{color:", ";}&:hover span::before{background:", ";}&[data-selected='true']{color:", ";}&[data-selected='true'] > span::before{background:", ";}@media (max-width:", "){height:48px;}"], _colors.Neutral.B100, _colors.Neutral.B40, _spacing.space4, _colors.Neutral.B18, _colors.Blue.S100, _colors.Blue.S99, _colors.Blue.S99, Breakpoints.large);
40
+ })(["border:0;background:transparent;height:56px;cursor:pointer;color:", ";margin-bottom:1px;width:100%;padding:0 ", ";&:hover{color:", ";}&:hover span::before{background:", ";}&[data-selected='true']{color:", ";}&[data-selected='true'] > span::before{background:", ";}@media (max-width:", "){height:48px;}"], _colors.Neutral.B40, _spacing.space4, _colors.Neutral.B18, _colors.Blue.S100, _colors.Blue.S99, _colors.Blue.S99, Breakpoints.large);
41
41
  exports.StyledTabButton = StyledTabButton;
@@ -16,16 +16,68 @@ var Tabs = /*#__PURE__*/_react["default"].forwardRef(function Tabs(_ref, ref) {
16
16
  children = _ref.children,
17
17
  fitted = _ref.fitted,
18
18
  onSelected = _ref.onSelected;
19
+ var tabsHeaderRef = (0, _react.useRef)(null);
19
20
  var tabLength = tabs.length;
20
21
  var _useState = (0, _react.useState)(0),
21
22
  selectedTabIndex = _useState[0],
22
23
  setSelectedTabIndex = _useState[1];
24
+ var _useState2 = (0, _react.useState)(false),
25
+ canScrollLeft = _useState2[0],
26
+ setCanScrollLeft = _useState2[1];
27
+ var _useState3 = (0, _react.useState)(false),
28
+ canScrollRight = _useState3[0],
29
+ setCanScrollRight = _useState3[1];
30
+ var _useState4 = (0, _react.useState)(false),
31
+ isDragging = _useState4[0],
32
+ setIsDragging = _useState4[1];
33
+ var _useState5 = (0, _react.useState)(0),
34
+ dragStartX = _useState5[0],
35
+ setDragStartX = _useState5[1];
36
+ var _useState6 = (0, _react.useState)(0),
37
+ scrollLeft = _useState6[0],
38
+ setScrollLeft = _useState6[1];
39
+ (0, _react.useEffect)(function () {
40
+ var element = tabsHeaderRef.current;
41
+ var isElOverFlowX = (element == null ? void 0 : element.scrollWidth) > (element == null ? void 0 : element.clientWidth);
42
+ setCanScrollRight(isElOverFlowX);
43
+ }, []);
23
44
  (0, _react.useEffect)(function () {
24
45
  if (selectedIndex < 0 || selectedIndex >= tabLength) {
25
46
  return;
26
47
  }
27
48
  setSelectedTabIndex(selectedIndex);
28
49
  }, [selectedIndex, tabLength]);
50
+ var handleMouseDown = function handleMouseDown(event) {
51
+ setIsDragging(true);
52
+ var startX = event.clientX - tabsHeaderRef.current.offsetLeft;
53
+ setDragStartX(startX);
54
+ setScrollLeft(tabsHeaderRef.current.scrollLeft);
55
+ };
56
+ var handleMouseLeave = function handleMouseLeave() {
57
+ setIsDragging(false);
58
+ };
59
+ var handleMouseUp = function handleMouseUp() {
60
+ setIsDragging(false);
61
+ };
62
+ var handleMouseMove = function handleMouseMove(event) {
63
+ if (!isDragging) return;
64
+ event.preventDefault();
65
+ var x = event.clientX - tabsHeaderRef.current.offsetLeft;
66
+ var scrollMultiplier = (x - dragStartX) * 3;
67
+ tabsHeaderRef.current.scrollLeft = scrollLeft - scrollMultiplier;
68
+ };
69
+ var handleScroll = function handleScroll() {
70
+ var element = tabsHeaderRef.current;
71
+ setCanScrollLeft((element == null ? void 0 : element.scrollLeft) > 0);
72
+ setCanScrollRight(element.scrollLeft < element.scrollWidth - element.clientWidth);
73
+ };
74
+ var handleWheel = function handleWheel(event) {
75
+ var element = tabsHeaderRef.current;
76
+ element.scrollTo({
77
+ left: element.scrollLeft + event.deltaY * 1,
78
+ behavior: 'smooth'
79
+ });
80
+ };
29
81
  var handleSelectedIndexChanged = function handleSelectedIndexChanged(index) {
30
82
  setSelectedTabIndex(index);
31
83
  onSelected == null ? void 0 : onSelected(index);
@@ -46,7 +98,18 @@ var Tabs = /*#__PURE__*/_react["default"].forwardRef(function Tabs(_ref, ref) {
46
98
  });
47
99
  return /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledTabsContainer, {
48
100
  ref: ref
49
- }, /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledTabHeaderContainer, null, /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledUl, {
101
+ }, /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledTabHeaderContainer, {
102
+ ref: tabsHeaderRef,
103
+ onScroll: handleScroll,
104
+ onWheel: handleWheel,
105
+ onMouseDown: handleMouseDown,
106
+ onMouseMove: handleMouseMove,
107
+ onMouseUp: handleMouseUp,
108
+ onMouseLeave: handleMouseLeave,
109
+ "data-scroll-left": canScrollLeft,
110
+ "data-scroll-right": canScrollRight,
111
+ "data-grabbing": isDragging
112
+ }, /*#__PURE__*/_react["default"].createElement(_TabStyle.StyledUl, {
50
113
  "data-fitted": fitted
51
114
  }, renderTabs, " ")), /*#__PURE__*/_react["default"].createElement("div", null, children));
52
115
  });
@@ -2,3 +2,4 @@ import { Meta } from '@storybook/react';
2
2
  declare const _default: Meta<import("@storybook/react").Args>;
3
3
  export default _default;
4
4
  export declare const Interactive: any;
5
+ export declare const Overflow: any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glints-aries",
3
- "version": "4.0.237",
3
+ "version": "4.0.238",
4
4
  "description": "Glints ui-kit for frontend",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./es/index.js",