pds-dev-kit-web 2.0.14 → 2.1.1

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 (65) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.js +9 -3
  3. package/dist/src/common/types/components.d.ts +15 -0
  4. package/dist/src/desktop/components/BasicButtonGroup/BasicButtonGroup.d.ts +9 -0
  5. package/dist/src/desktop/components/BasicButtonGroup/BasicButtonGroup.js +73 -0
  6. package/dist/src/desktop/components/BasicButtonGroup/index.d.ts +1 -0
  7. package/dist/src/desktop/components/BasicButtonGroup/index.js +8 -0
  8. package/dist/src/desktop/components/ContextMenuItem/ContextMenuItem.d.ts +5 -3
  9. package/dist/src/desktop/components/ContextMenuItem/ContextMenuItem.js +15 -3
  10. package/dist/src/desktop/components/Dropdown/Dropdown.d.ts +9 -10
  11. package/dist/src/desktop/components/Dropdown/Dropdown.js +71 -26
  12. package/dist/src/desktop/components/IconButton/IconButton.d.ts +1 -1
  13. package/dist/src/desktop/components/SegmentedButtonGroup/SegmentedButtonGroup.d.ts +18 -0
  14. package/dist/src/desktop/components/SegmentedButtonGroup/SegmentedButtonGroup.js +143 -0
  15. package/dist/src/desktop/components/SegmentedButtonGroup/index.d.ts +1 -0
  16. package/dist/src/desktop/components/SegmentedButtonGroup/index.js +8 -0
  17. package/dist/src/desktop/components/Select/Select.js +12 -6
  18. package/dist/src/desktop/components/Slider/Slider.d.ts +19 -0
  19. package/dist/src/desktop/components/Slider/Slider.js +200 -0
  20. package/dist/src/desktop/components/Slider/index.d.ts +1 -0
  21. package/dist/src/desktop/components/Slider/index.js +8 -0
  22. package/dist/src/desktop/components/TextButton/TextButton.d.ts +1 -1
  23. package/dist/src/desktop/components/TextButton/TextButton.js +3 -0
  24. package/dist/src/desktop/components/TextField/TextField.js +3 -3
  25. package/dist/src/desktop/components/UploadIconButton/UploadIconButton.d.ts +5 -3
  26. package/dist/src/desktop/components/UploadIconButton/UploadIconButton.js +52 -4
  27. package/dist/src/desktop/components/UploadTextButton/UploadTextButton.d.ts +1 -1
  28. package/dist/src/desktop/components/UploadTextButton/UploadTextButton.js +3 -0
  29. package/dist/src/desktop/components/index.d.ts +4 -1
  30. package/dist/src/desktop/components/index.js +7 -1
  31. package/dist/src/desktop/index.d.ts +1 -1
  32. package/dist/src/desktop/index.js +5 -2
  33. package/dist/src/mobile/components/BasicButtonGroup/BasicButtonGroup.d.ts +9 -0
  34. package/dist/src/mobile/components/BasicButtonGroup/BasicButtonGroup.js +73 -0
  35. package/dist/src/mobile/components/BasicButtonGroup/index.d.ts +1 -0
  36. package/dist/src/mobile/components/BasicButtonGroup/index.js +8 -0
  37. package/dist/src/mobile/components/ContextMenu/ContextMenu.js +1 -1
  38. package/dist/src/mobile/components/ContextMenuItem/ContextMenuItem.d.ts +5 -3
  39. package/dist/src/mobile/components/ContextMenuItem/ContextMenuItem.js +15 -3
  40. package/dist/src/mobile/components/Dropdown/Dropdown.d.ts +9 -10
  41. package/dist/src/mobile/components/Dropdown/Dropdown.js +70 -25
  42. package/dist/src/mobile/components/IconButton/IconButton.d.ts +1 -1
  43. package/dist/src/mobile/components/IconButton/IconButton.js +1 -1
  44. package/dist/src/mobile/components/SegmentedButtonGroup/SegmentedButtonGroup.d.ts +18 -0
  45. package/dist/src/mobile/components/SegmentedButtonGroup/SegmentedButtonGroup.js +143 -0
  46. package/dist/src/mobile/components/SegmentedButtonGroup/index.d.ts +1 -0
  47. package/dist/src/mobile/components/SegmentedButtonGroup/index.js +8 -0
  48. package/dist/src/mobile/components/Select/Select.js +12 -6
  49. package/dist/src/mobile/components/Slider/Slider.d.ts +19 -0
  50. package/dist/src/mobile/components/Slider/Slider.js +197 -0
  51. package/dist/src/mobile/components/Slider/index.d.ts +1 -0
  52. package/dist/src/mobile/components/Slider/index.js +8 -0
  53. package/dist/src/mobile/components/TextButton/TextButton.d.ts +1 -1
  54. package/dist/src/mobile/components/TextButton/TextButton.js +3 -0
  55. package/dist/src/mobile/components/TextField/TextField.js +3 -3
  56. package/dist/src/mobile/components/UploadIconButton/UploadIconButton.d.ts +1 -1
  57. package/dist/src/mobile/components/UploadIconButton/UploadIconButton.js +1 -1
  58. package/dist/src/mobile/components/UploadTextButton/UploadTextButton.d.ts +1 -1
  59. package/dist/src/mobile/components/UploadTextButton/UploadTextButton.js +3 -0
  60. package/dist/src/mobile/components/index.d.ts +4 -1
  61. package/dist/src/mobile/components/index.js +7 -1
  62. package/dist/src/mobile/index.d.ts +1 -1
  63. package/dist/src/mobile/index.js +5 -1
  64. package/package.json +1 -1
  65. package/release-note.md +15 -9
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ var jsx_runtime_1 = require("react/jsx-runtime");
38
+ var components_1 = require("../../../hybrid/components");
39
+ var styled_components_1 = __importStar(require("styled-components"));
40
+ function SegmentedButtonGroup(_a) {
41
+ var _b = _a.size, size = _b === void 0 ? 'medium' : _b, value = _a.value, valueArray = _a.valueArray, _c = _a.selectedType, selectedType = _c === void 0 ? 'single' : _c, _d = _a.state, state = _d === void 0 ? 'normal' : _d, onClick = _a.onClick, onMouseDown = _a.onMouseDown;
42
+ var handleClick = function (value) {
43
+ if (onClick) {
44
+ onClick(value);
45
+ }
46
+ };
47
+ var handleMouseDown = function (value) {
48
+ if (onMouseDown) {
49
+ onMouseDown(value);
50
+ }
51
+ };
52
+ var checkSelection = function (currentButtonValue) {
53
+ if (selectedType === 'multi' && Array.isArray(value)) {
54
+ return value.includes(currentButtonValue);
55
+ }
56
+ return value === currentButtonValue;
57
+ };
58
+ var getIconColorKey = function (isSelected, isDisabled) {
59
+ if (isDisabled) {
60
+ return 'ui_cpnt_button_icon_disabled';
61
+ }
62
+ if (isSelected) {
63
+ return 'ui_cpnt_button_icon_white';
64
+ }
65
+ return 'ui_cpnt_button_icon_enabled';
66
+ };
67
+ return ((0, jsx_runtime_1.jsx)(S_SegmentedButtonGroupGroups, __assign({ "x-pds-name": "SegmentedButtonGroup", "x-pds-element-type": "component", "x-pds-device-type": "desktop", selectedType: selectedType }, { children: valueArray.map(function (_a) {
68
+ var currentButtonValue = _a.value, iconName = _a.iconName, _b = _a.iconFillType, iconFillType = _b === void 0 ? 'line' : _b, _c = _a.state, buttonState = _c === void 0 ? 'normal' : _c;
69
+ return ((0, jsx_runtime_1.jsx)(S_BasicButton, __assign({ size: size, onClick: function () { return handleClick(currentButtonValue); }, onMouseDown: function () { return handleMouseDown(currentButtonValue); }, disabled: state === 'disabled' || buttonState === 'disabled', selectedType: selectedType, isSelected: checkSelection(currentButtonValue) }, { children: (0, jsx_runtime_1.jsx)(components_1.Icon, { iconName: iconName, size: size === 'small' ? 20 : 24, iconFillType: iconFillType, colorKey: getIconColorKey(checkSelection(currentButtonValue), state === 'disabled' || buttonState === 'disabled') }, void 0) }), String(currentButtonValue)));
70
+ }) }), void 0));
71
+ }
72
+ var S_SegmentedButtonGroupGroups = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: max-content;\n\n & > button:not(:last-child) {\n margin-right: ", ";\n }\n"], ["\n width: max-content;\n\n & > button:not(:last-child) {\n margin-right: ", ";\n }\n"])), function (_a) {
73
+ var selectedType = _a.selectedType, theme = _a.theme;
74
+ return selectedType === 'single' && theme.spacing.spacingA;
75
+ });
76
+ var large = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: ", ";\n height: 48px;\n width: 48px;\n\n &:nth-child(1) {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n }\n\n &:nth-last-child(1) {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"], ["\n border-radius: ", ";\n height: 48px;\n width: 48px;\n\n &:nth-child(1) {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n }\n\n &:nth-last-child(1) {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"])), function (_a) {
77
+ var selectedType = _a.selectedType;
78
+ return selectedType === 'single' && '14px';
79
+ }, function (_a) {
80
+ var selectedType = _a.selectedType;
81
+ return selectedType === 'multi' && '14px';
82
+ }, function (_a) {
83
+ var selectedType = _a.selectedType;
84
+ return selectedType === 'multi' && '14px';
85
+ }, function (_a) {
86
+ var selectedType = _a.selectedType;
87
+ return selectedType === 'multi' && '14px';
88
+ }, function (_a) {
89
+ var selectedType = _a.selectedType;
90
+ return selectedType === 'multi' && '14px';
91
+ });
92
+ var medium = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border-radius: ", ";\n height: 40px;\n width: 40px;\n\n &:nth-child(1) {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n }\n\n &:nth-last-child(1) {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"], ["\n border-radius: ", ";\n height: 40px;\n width: 40px;\n\n &:nth-child(1) {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n }\n\n &:nth-last-child(1) {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"])), function (_a) {
93
+ var selectedType = _a.selectedType;
94
+ return selectedType === 'single' && '12px';
95
+ }, function (_a) {
96
+ var selectedType = _a.selectedType;
97
+ return selectedType === 'multi' && '12px';
98
+ }, function (_a) {
99
+ var selectedType = _a.selectedType;
100
+ return selectedType === 'multi' && '12px';
101
+ }, function (_a) {
102
+ var selectedType = _a.selectedType;
103
+ return selectedType === 'multi' && '12px';
104
+ }, function (_a) {
105
+ var selectedType = _a.selectedType;
106
+ return selectedType === 'multi' && '12px';
107
+ });
108
+ var small = (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border-radius: ", ";\n height: 32px;\n width: 32px;\n\n &:nth-child(1) {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n }\n\n &:nth-last-child(1) {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"], ["\n border-radius: ", ";\n height: 32px;\n width: 32px;\n\n &:nth-child(1) {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n }\n\n &:nth-last-child(1) {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"])), function (_a) {
109
+ var selectedType = _a.selectedType;
110
+ return selectedType === 'single' && '10px';
111
+ }, function (_a) {
112
+ var selectedType = _a.selectedType;
113
+ return selectedType === 'multi' && '10px';
114
+ }, function (_a) {
115
+ var selectedType = _a.selectedType;
116
+ return selectedType === 'multi' && '10px';
117
+ }, function (_a) {
118
+ var selectedType = _a.selectedType;
119
+ return selectedType === 'multi' && '10px';
120
+ }, function (_a) {
121
+ var selectedType = _a.selectedType;
122
+ return selectedType === 'multi' && '10px';
123
+ });
124
+ var S_BasicButton = styled_components_1.default.button(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n border: none;\n display: inline-flex;\n justify-content: center;\n position: relative;\n\n ", ";\n\n &::before {\n background-color: transparent;\n border-radius: inherit;\n content: '';\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n &:hover:enabled:before {\n background-color: ", ";\n }\n\n &:active:enabled:before {\n background-color: ", ";\n }\n\n &:disabled {\n background-color: ", ";\n cursor: default;\n }\n"], ["\n align-items: center;\n background-color: ", ";\n border: none;\n display: inline-flex;\n justify-content: center;\n position: relative;\n\n ", ";\n\n &::before {\n background-color: transparent;\n border-radius: inherit;\n content: '';\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n &:hover:enabled:before {\n background-color: ", ";\n }\n\n &:active:enabled:before {\n background-color: ", ";\n }\n\n &:disabled {\n background-color: ", ";\n cursor: default;\n }\n"])), function (_a) {
125
+ var isSelected = _a.isSelected, theme = _a.theme;
126
+ return isSelected
127
+ ? theme.ui_cpnt_segmentedbuttongroup_base_selected
128
+ : theme.ui_cpnt_segmentedbuttongroup_base_default;
129
+ }, function (_a) {
130
+ var size = _a.size;
131
+ return size && { large: large, medium: medium, small: small }[size];
132
+ }, function (_a) {
133
+ var theme = _a.theme;
134
+ return theme.ui_cpnt_segmentedbuttongroup_on_base_hover;
135
+ }, function (_a) {
136
+ var theme = _a.theme;
137
+ return theme.ui_cpnt_segmentedbuttongroup_on_base_pressed;
138
+ }, function (_a) {
139
+ var theme = _a.theme;
140
+ return theme.ui_cpnt_segmentedbuttongroup_base_disabled;
141
+ });
142
+ exports.default = SegmentedButtonGroup;
143
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1 @@
1
+ export { default as SegmentedButtonGroup } from './SegmentedButtonGroup';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SegmentedButtonGroup = void 0;
7
+ var SegmentedButtonGroup_1 = require("./SegmentedButtonGroup");
8
+ Object.defineProperty(exports, "SegmentedButtonGroup", { enumerable: true, get: function () { return __importDefault(SegmentedButtonGroup_1).default; } });
@@ -63,7 +63,7 @@ function Select(_a) {
63
63
  return 'ui_cpnt_select_icon_01';
64
64
  }
65
65
  };
66
- return ((0, jsx_runtime_1.jsxs)(S_Box, __assign({ "x-pds-name": "Select", "x-pds-element-type": "component", "x-pds-device-type": "desktop", size: size, responsiveMode: responsiveMode, tabIndex: 0, customWidth: customWidth }, { children: [(0, jsx_runtime_1.jsx)(S_Icon_Wrapper, __assign({ state: state }, { children: (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: 16, fillType: "line", iconName: "ic_arrow_down", colorKey: getIconColorKey() }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(S_Select, __assign({ disabled: state === 'disabled' || state === 'read_only', state: state, colorTheme: colorTheme, onChange: handleChange, defaultValue: (_b = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.value) !== null && _b !== void 0 ? _b : HINT, value: value || undefined }, { children: [hintText && ((0, jsx_runtime_1.jsx)("option", __assign({ disabled: true, value: HINT }, { children: hintText }), void 0)), valueArray.map(function (el) { return ((0, jsx_runtime_1.jsx)("option", __assign({ value: el.value }, { children: el.text }), el.value)); })] }), void 0)] }), void 0));
66
+ return ((0, jsx_runtime_1.jsxs)(S_Box, __assign({ "x-pds-name": "Select", "x-pds-element-type": "component", "x-pds-device-type": "desktop", "$size": size, responsiveMode: responsiveMode, tabIndex: 0, customWidth: customWidth }, { children: [(0, jsx_runtime_1.jsx)(S_Icon_Wrapper, __assign({ state: state }, { children: (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: 16, fillType: "line", iconName: "ic_arrow_down", colorKey: getIconColorKey() }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(S_Select, __assign({ disabled: state === 'disabled' || state === 'read_only', state: state, "$size": size, colorTheme: colorTheme, onChange: handleChange, defaultValue: (_b = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.value) !== null && _b !== void 0 ? _b : HINT, value: value || undefined }, { children: [hintText && ((0, jsx_runtime_1.jsx)("option", __assign({ disabled: true, value: HINT }, { children: hintText }), void 0)), valueArray.map(function (el) { return ((0, jsx_runtime_1.jsx)("option", __assign({ value: el.value }, { children: el.text }), el.value)); })] }), void 0)] }), void 0));
67
67
  }
68
68
  var large = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 48px;\n width: 432px;\n"], ["\n height: 48px;\n width: 432px;\n"])));
69
69
  var medium = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 40px;\n width: 188px;\n"], ["\n height: 40px;\n width: 188px;\n"])));
@@ -97,14 +97,14 @@ var dark = (0, styled_components_1.css)(templateObject_5 || (templateObject_5 =
97
97
  return theme.ui_cpnt_select_text_darktheme_enabled;
98
98
  });
99
99
  var S_Box = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n position: relative;\n z-index: 0;\n\n ", "\n ", ";\n ", "\n"], ["\n position: relative;\n z-index: 0;\n\n ", "\n ", ";\n ", "\n"])), function (_a) {
100
- var size = _a.size;
101
- return size &&
100
+ var $size = _a.$size;
101
+ return $size &&
102
102
  {
103
103
  large: large,
104
104
  medium: medium,
105
105
  small: small,
106
106
  rlarge: rlarge
107
- }[size];
107
+ }[$size];
108
108
  }, function (_a) {
109
109
  var responsiveMode = _a.responsiveMode;
110
110
  return responsiveMode === 'use' && 'width: 100%';
@@ -146,8 +146,14 @@ var S_Select = styled_components_1.default.select(templateObject_11 || (template
146
146
  var theme = _a.theme;
147
147
  return theme.ui_cpnt_select_border_normal;
148
148
  }, function (_a) {
149
- var size = _a.size;
150
- return (size === 'small' ? '10px' : '14px');
149
+ var $size = _a.$size;
150
+ return $size &&
151
+ {
152
+ small: '10px',
153
+ medium: '12px',
154
+ large: '14px',
155
+ rlarge: '14px'
156
+ }[$size];
151
157
  }, function (_a) {
152
158
  var theme = _a.theme;
153
159
  return theme.ui_cpnt_select_text_hint;
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import type { PDSTextType } from '../../../common/types';
3
+ export declare type Props = {
4
+ min: number;
5
+ max: number;
6
+ step?: number;
7
+ name?: string;
8
+ defaultValue?: string | number;
9
+ tooltipText?: PDSTextType;
10
+ state?: 'normal' | 'disabled';
11
+ prefixText?: PDSTextType;
12
+ suffixText?: PDSTextType;
13
+ customWidth?: string;
14
+ responsiveMode?: 'none' | 'use';
15
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
16
+ onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;
17
+ };
18
+ declare const _default: import("react").ForwardRefExoticComponent<Props & import("react").RefAttributes<HTMLInputElement>>;
19
+ export default _default;
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var jsx_runtime_1 = require("react/jsx-runtime");
22
+ var react_1 = require("react");
23
+ var components_1 = require("../../../hybrid/components");
24
+ var styled_components_1 = __importDefault(require("styled-components"));
25
+ var TextLabel_1 = require("../TextLabel");
26
+ function Slider(_a, ref) {
27
+ var min = _a.min, max = _a.max, _b = _a.step, step = _b === void 0 ? 1 : _b, name = _a.name, defaultValue = _a.defaultValue, tooltipText = _a.tooltipText, _c = _a.state, state = _c === void 0 ? 'normal' : _c, prefixText = _a.prefixText, suffixText = _a.suffixText, customWidth = _a.customWidth, _d = _a.responsiveMode, responsiveMode = _d === void 0 ? 'none' : _d, onChange = _a.onChange, onClick = _a.onClick;
28
+ var _e = (0, react_1.useState)(false), isTooltipVisible = _e[0], setIsTooltipVisible = _e[1];
29
+ var _f = (0, react_1.useState)(false), isDragging = _f[0], setIsDragActive = _f[1];
30
+ var trackRef = (0, react_1.useRef)(null);
31
+ var thumbRef = (0, react_1.useRef)(null);
32
+ var inputRef = (0, react_1.useRef)(null);
33
+ var defaultThumbPercentage = ((Number(defaultValue || (max - min) / 2 + min) - min) / (max - min)) * 100;
34
+ function getPercent(pointValue, width) {
35
+ if (pointValue <= 0) {
36
+ return 0;
37
+ }
38
+ if (pointValue >= width) {
39
+ return 1;
40
+ }
41
+ return pointValue / width;
42
+ }
43
+ function percentToValue(percent, min, max) {
44
+ return (max - min) * percent + min;
45
+ }
46
+ function getInputValue(inputRef, trackValue) {
47
+ var result = { prevInputValue: '', newInputValue: '' };
48
+ if (inputRef.current === null) {
49
+ return result;
50
+ }
51
+ result.prevInputValue = inputRef.current.value;
52
+ inputRef.current.value = String(trackValue);
53
+ result.newInputValue = inputRef.current.value;
54
+ return result;
55
+ }
56
+ function getThumbOffset(percent, width) {
57
+ return ((width * percent - width / 2) / (width / 2)) * -10;
58
+ }
59
+ var getNewInputValue = function (clientX, left, width) {
60
+ var percent = getPercent(clientX - (left + 10), width - 20);
61
+ var newValue = percentToValue(percent, min, max);
62
+ var _a = getInputValue(inputRef, newValue), prevInputValue = _a.prevInputValue, newInputValue = _a.newInputValue;
63
+ if (prevInputValue === newInputValue) {
64
+ return null;
65
+ }
66
+ return newInputValue;
67
+ };
68
+ var getThumbPositionOnTrack = function (percent, value, width) {
69
+ var thumbOffset = getThumbOffset(percent, width);
70
+ return "calc(" + (Number(value) / (max - min)) * 100 + "% + " + thumbOffset + "px)";
71
+ };
72
+ var updateFillTrackAndThumb = function (trackElement, thumbElement, thumbPosition) {
73
+ trackElement.style.backgroundSize = thumbPosition + " 100%";
74
+ thumbElement.style.left = thumbPosition;
75
+ };
76
+ var changeSliderValue = function (clientX) {
77
+ if (inputRef.current === null || thumbRef.current === null || trackRef.current === null) {
78
+ return;
79
+ }
80
+ var _a = trackRef.current.getBoundingClientRect(), left = _a.left, width = _a.width;
81
+ var newInputValue = getNewInputValue(clientX, left, width);
82
+ if (newInputValue === null) {
83
+ return;
84
+ }
85
+ var thumbPosition = getThumbPositionOnTrack(Number(newInputValue) / (max - min), newInputValue, width);
86
+ updateFillTrackAndThumb(trackRef.current, thumbRef.current, thumbPosition);
87
+ inputRef.current.dispatchEvent(new Event('input', { bubbles: true }));
88
+ };
89
+ var handleMouseMove = function (e) {
90
+ changeSliderValue(e.clientX);
91
+ };
92
+ var handleMouseUp = function () {
93
+ document.removeEventListener('mousemove', handleMouseMove);
94
+ setIsDragActive(false);
95
+ if (tooltipText) {
96
+ setIsTooltipVisible(false);
97
+ }
98
+ if (inputRef.current !== null) {
99
+ inputRef.current.dispatchEvent(new Event('click', { bubbles: true }));
100
+ inputRef.current.focus();
101
+ }
102
+ };
103
+ var handleMouseDown = function (e) {
104
+ if (state === 'disabled') {
105
+ return;
106
+ }
107
+ changeSliderValue(e.clientX);
108
+ setIsDragActive(true);
109
+ if (tooltipText) {
110
+ setIsTooltipVisible(true);
111
+ }
112
+ document.addEventListener('mousemove', handleMouseMove);
113
+ document.addEventListener('mouseup', handleMouseUp, { once: true });
114
+ };
115
+ var handleChange = function (e) {
116
+ if (trackRef.current === null || thumbRef.current === null) {
117
+ return;
118
+ }
119
+ var width = trackRef.current.getBoundingClientRect().width;
120
+ var thumbPosition = getThumbPositionOnTrack(Number(e.currentTarget.value) / (max - min), e.currentTarget.value, width);
121
+ updateFillTrackAndThumb(trackRef.current, thumbRef.current, thumbPosition);
122
+ if (onChange) {
123
+ onChange(e);
124
+ }
125
+ };
126
+ var handleClick = function (e) {
127
+ if (onClick) {
128
+ onClick(e);
129
+ }
130
+ };
131
+ var handleRangeRef = function (node) {
132
+ if (typeof ref === 'function') {
133
+ ref(node);
134
+ }
135
+ else {
136
+ ref && (ref.current = node);
137
+ }
138
+ inputRef.current = node;
139
+ };
140
+ return ((0, jsx_runtime_1.jsxs)(S_SliderBox, __assign({ "x-pds-name": "Slider", "x-pds-element-type": "component", "x-pds-device-type": "mobile" }, { children: [prefixText && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: prefixText, styleTheme: "caption2Bold", colorTheme: state === 'normal' ? 'sysTextSecondary' : 'sysTextTertiary', singleLineMode: "use", textAlign: "right" }, void 0), (0, jsx_runtime_1.jsx)(components_1.Spacing, { spacingType: "width", size: "spacing_b" }, void 0)] }, void 0)), (0, jsx_runtime_1.jsx)(S_SliderWrapper, __assign({ customWidth: customWidth, responsiveMode: responsiveMode }, { children: (0, jsx_runtime_1.jsxs)(S_Slider, __assign({ customWidth: customWidth, isDisabled: state === 'disabled', responsiveMode: responsiveMode, thumbPercentage: defaultThumbPercentage, onMouseDown: handleMouseDown }, { children: [(0, jsx_runtime_1.jsx)(S_Track, { ref: trackRef, thumbPercentage: defaultThumbPercentage, isDisabled: state === 'disabled' }, void 0), (0, jsx_runtime_1.jsxs)(S_Thumb, __assign({ ref: thumbRef, thumbPercentage: defaultThumbPercentage, isDragging: isDragging, isDisabled: state === 'disabled' }, { children: [(0, jsx_runtime_1.jsx)(S_Range, { ref: handleRangeRef, type: "range", name: name, min: min, max: max, step: step, defaultValue: defaultValue, onInput: handleChange, onClick: handleClick }, void 0), tooltipText && isTooltipVisible && ((0, jsx_runtime_1.jsx)(S_Tooltip, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: tooltipText, styleTheme: "caption2Regular", colorOverride: "ui_cpnt_textlabel_button_tooltip", singleLineMode: "use" }, void 0) }, void 0))] }), void 0)] }), void 0) }), void 0), suffixText && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(components_1.Spacing, { spacingType: "width", size: "spacing_b" }, void 0), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: suffixText, styleTheme: "caption2Bold", colorTheme: state === 'normal' ? 'sysTextSecondary' : 'sysTextTertiary', singleLineMode: "use" }, void 0)] }, void 0))] }), void 0));
141
+ }
142
+ var S_SliderBox = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n flex-direction: row;\n"], ["\n align-items: center;\n display: flex;\n flex-direction: row;\n"])));
143
+ var S_SliderWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n position: relative;\n width: ", ";\n"], ["\n display: flex;\n position: relative;\n width: ", ";\n"])), function (_a) {
144
+ var responsiveMode = _a.responsiveMode, customWidth = _a.customWidth;
145
+ if (customWidth) {
146
+ return customWidth;
147
+ }
148
+ if (responsiveMode === 'use') {
149
+ return '100%';
150
+ }
151
+ return '324px';
152
+ });
153
+ var S_Tooltip = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n border-radius: 4px;\n padding: ", ";\n position: absolute;\n top: -10px;\n transform: translateY(-100%);\n"], ["\n background-color: ", ";\n border-radius: 4px;\n padding: ", ";\n position: absolute;\n top: -10px;\n transform: translateY(-100%);\n"])), function (_a) {
154
+ var theme = _a.theme;
155
+ return theme.ui_cpnt_button_tooltip_base;
156
+ }, function (_a) {
157
+ var theme = _a.theme;
158
+ return theme.spacing.spacingA + " " + theme.spacing.spacingB;
159
+ });
160
+ var S_Slider = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n cursor: ", ";\n display: flex;\n height: 20px;\n width: ", ";\n"], ["\n align-items: center;\n cursor: ", ";\n display: flex;\n height: 20px;\n width: ", ";\n"])), function (_a) {
161
+ var isDisabled = _a.isDisabled;
162
+ return (isDisabled ? 'auto' : 'pointer');
163
+ }, function (_a) {
164
+ var responsiveMode = _a.responsiveMode, customWidth = _a.customWidth;
165
+ if (customWidth) {
166
+ return customWidth;
167
+ }
168
+ if (responsiveMode === 'use') {
169
+ return '100%';
170
+ }
171
+ return '324px';
172
+ });
173
+ var S_Track = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 2px;\n height: 4px;\n position: absolute;\n width: inherit;\n"], ["\n background-color: ", ";\n background-image: ", ";\n background-repeat: no-repeat;\n background-size: ", ";\n border-radius: 2px;\n height: 4px;\n position: absolute;\n width: inherit;\n"])), function (_a) {
174
+ var theme = _a.theme;
175
+ return theme.ui_cpnt_slider_track;
176
+ }, function (_a) {
177
+ var theme = _a.theme, isDisabled = _a.isDisabled;
178
+ return isDisabled
179
+ ? "linear-gradient(" + theme.ui_cpnt_slider_track_disabled + ", " + theme.ui_cpnt_slider_track_disabled + ")"
180
+ : "linear-gradient(" + theme.ui_cpnt_slider_track_active + ", " + theme.ui_cpnt_slider_track_active + ")";
181
+ }, function (_a) {
182
+ var thumbPercentage = _a.thumbPercentage;
183
+ return thumbPercentage + "% 100%";
184
+ });
185
+ var S_Thumb = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background-color: ", ";\n border-radius: 100%;\n box-shadow: ", ";\n display: flex;\n height: 20px;\n justify-content: center;\n left: ", "%;\n position: absolute;\n transform: translateX(-10px);\n width: 20px;\n\n &:hover {\n box-shadow: ", ";\n }\n"], ["\n background-color: ", ";\n border-radius: 100%;\n box-shadow: ", ";\n display: flex;\n height: 20px;\n justify-content: center;\n left: ", "%;\n position: absolute;\n transform: translateX(-10px);\n width: 20px;\n\n &:hover {\n box-shadow: ", ";\n }\n"])), function (_a) {
186
+ var theme = _a.theme, isDisabled = _a.isDisabled;
187
+ return isDisabled ? theme.ui_cpnt_slider_thumb_disabled : theme.ui_cpnt_slider_thumb_normal;
188
+ }, function (_a) {
189
+ var theme = _a.theme, isDragging = _a.isDragging, isDisabled = _a.isDisabled;
190
+ return isDragging && !isDisabled ? "0 0 0 8px " + theme.ui_cpnt_slider_thumb_pressed_circle : 'none';
191
+ }, function (_a) {
192
+ var thumbPercentage = _a.thumbPercentage;
193
+ return thumbPercentage;
194
+ }, function (_a) {
195
+ var theme = _a.theme, isDragging = _a.isDragging, isDisabled = _a.isDisabled;
196
+ return !isDragging && !isDisabled && "0 0 0 8px " + theme.ui_cpnt_slider_thumb_hover_circle;
197
+ });
198
+ var S_Range = styled_components_1.default.input(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n clip: rect(0 0 0 0);\n height: 100%;\n margin: 0;\n outline: none;\n position: absolute;\n width: 100%;\n"], ["\n clip: rect(0 0 0 0);\n height: 100%;\n margin: 0;\n outline: none;\n position: absolute;\n width: 100%;\n"])));
199
+ exports.default = (0, react_1.forwardRef)(Slider);
200
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1 @@
1
+ export { default as Slider } from './Slider';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Slider = void 0;
7
+ var Slider_1 = require("./Slider");
8
+ Object.defineProperty(exports, "Slider", { enumerable: true, get: function () { return __importDefault(Slider_1).default; } });
@@ -7,7 +7,7 @@ export declare type TextButtonProps = {
7
7
  fontWeight?: 'bold' | 'regular';
8
8
  type?: 'submit' | 'reset' | 'button';
9
9
  state?: 'normal' | 'disabled';
10
- colorTheme?: 'none' | 'red' | 'grey_01' | 'white' | 'white2';
10
+ colorTheme?: 'none' | 'red' | 'grey_01' | 'grey2' | 'white' | 'white2';
11
11
  onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
12
12
  };
13
13
  declare function TextButton({ text, size, responsiveMode, fontWeight, type, state, colorTheme, onClick, ...rest }: TextButtonProps): JSX.Element;
@@ -60,6 +60,7 @@ var textColor = {
60
60
  none: 'usrTextBrandPrimary',
61
61
  red: 'sysTextError',
62
62
  grey_01: 'sysTextPrimary',
63
+ grey2: 'sysTextSecondary',
63
64
  white: 'sysTextWhite',
64
65
  white2: 'sysTextWhite'
65
66
  };
@@ -110,6 +111,8 @@ var S_Button = styled_components_1.default.button(templateObject_8 || (templateO
110
111
  case 'red':
111
112
  case 'grey_01':
112
113
  return colorThemeDefault;
114
+ case 'grey2':
115
+ return colorThemeDefault;
113
116
  case 'white':
114
117
  return colorThemeWhite;
115
118
  case 'white2':
@@ -186,14 +186,14 @@ var small = (0, styled_components_1.css)(templateObject_4 || (templateObject_4 =
186
186
  var theme = _a.theme;
187
187
  return theme.spacing.spacingB;
188
188
  });
189
- var medium = (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n width: 188px;\n"], ["\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n width: 188px;\n"])), function (_a) {
189
+ var medium = (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n border-radius: 12px;\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n width: 188px;\n"], ["\n border-radius: 12px;\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n width: 188px;\n"])), function (_a) {
190
190
  var theme = _a.theme;
191
191
  return theme.spacing.spacingC;
192
192
  }, function (_a) {
193
193
  var theme = _a.theme;
194
194
  return theme.spacing.spacingB;
195
195
  });
196
- var large = (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n height: 48px;\n padding-left: ", ";\n padding-right: ", ";\n width: ", ";\n ", "\n ", "\n"], ["\n height: 48px;\n padding-left: ", ";\n padding-right: ", ";\n width: ", ";\n ", "\n ", "\n"])), function (_a) {
196
+ var large = (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n border-radius: 14px;\n height: 48px;\n padding-left: ", ";\n padding-right: ", ";\n width: ", ";\n ", "\n ", "\n"], ["\n border-radius: 14px;\n height: 48px;\n padding-left: ", ";\n padding-right: ", ";\n width: ", ";\n ", "\n ", "\n"])), function (_a) {
197
197
  var theme = _a.theme;
198
198
  return theme.spacing.spacingD;
199
199
  }, function (_a) {
@@ -311,7 +311,7 @@ var backgroundActiveColor = (0, styled_components_1.css)(templateObject_17 || (t
311
311
  }
312
312
  });
313
313
  var normalActionColor = (0, styled_components_1.css)(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n"], ["\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n"])), backgroundHoverColor, backgroundActiveColor);
314
- var S_TextFieldWrapper = styled_components_1.default.div(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n align-items: center;\n border-radius: 14px;\n box-sizing: border-box;\n cursor: ", ";\n display: flex;\n ", ";\n ", ";\n\n ", "\n\n ", "\n\n ", ";\n ", "\n"], ["\n align-items: center;\n border-radius: 14px;\n box-sizing: border-box;\n cursor: ", ";\n display: flex;\n ", ";\n ", ";\n\n ", "\n\n ", "\n\n ", ";\n ", "\n"])), function (_a) {
314
+ var S_TextFieldWrapper = styled_components_1.default.div(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n align-items: center;\n box-sizing: border-box;\n cursor: ", ";\n display: flex;\n ", ";\n ", ";\n\n ", "\n\n ", "\n\n ", ";\n ", "\n"], ["\n align-items: center;\n box-sizing: border-box;\n cursor: ", ";\n display: flex;\n ", ";\n ", ";\n\n ", "\n\n ", "\n\n ", ";\n ", "\n"])), function (_a) {
315
315
  var state = _a.state;
316
316
  return (state === 'disabled' ? 'not-allowed' : 'text');
317
317
  }, function (_a) {
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
- import type { FillIconNameKeys, LineIconNameKeys, UiColors } from '../../../common';
2
+ import type { FillIconNameKeys, LineIconNameKeys, PDSTextType, UiColors } from '../../../common';
3
3
  export declare type UploadIconButtonProps = {
4
4
  fillType?: 'fill' | 'line';
5
5
  shapeType?: 'circular' | 'rectangle';
6
6
  baseSize?: 'xxlarge' | 'large' | 'medium' | 'small' | 'xsmall';
7
7
  baseColorKey?: UiColors;
8
8
  borderColorKey?: UiColors;
9
- iconSize?: 12 | 16 | 20 | 24 | 48 | 72;
9
+ iconSize?: 12 | 16 | 20 | 24 | 32 | 48 | 72;
10
10
  iconFillType?: 'fill' | 'line';
11
11
  iconName: FillIconNameKeys | LineIconNameKeys;
12
12
  iconColorKey?: UiColors;
@@ -15,7 +15,9 @@ export declare type UploadIconButtonProps = {
15
15
  state?: 'normal' | 'disabled';
16
16
  accept?: string;
17
17
  multipleMode?: 'none' | 'use';
18
+ tooltipText?: PDSTextType;
19
+ tooltipPosition?: 'left_top' | 'left_bottom' | 'center_top' | 'center_bottom' | 'right_top' | 'right_bottom';
18
20
  onClick?: (e: React.ChangeEvent<HTMLInputElement>) => void;
19
21
  };
20
- declare function UploadIconButton({ fillType, shapeType, baseSize, baseColorKey, borderColorKey, iconSize, iconFillType, iconName, iconColorKey, shadow, colorTheme, state, accept, multipleMode, onClick }: UploadIconButtonProps): JSX.Element;
22
+ declare function UploadIconButton({ fillType, shapeType, baseSize, baseColorKey, borderColorKey, iconSize, iconFillType, iconName, iconColorKey, shadow, colorTheme, state, accept, multipleMode, tooltipText, tooltipPosition, onClick }: UploadIconButtonProps): JSX.Element;
21
23
  export default UploadIconButton;
@@ -35,12 +35,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  var jsx_runtime_1 = require("react/jsx-runtime");
38
+ var react_1 = require("react");
38
39
  var styled_components_1 = __importStar(require("styled-components"));
39
40
  var transitionStyle_1 = require("../../../common/styles/movement/transitionStyle");
40
41
  var hybrid_1 = require("../../../hybrid");
42
+ var constants_1 = require("../IconButton/constants");
43
+ var TextLabel_1 = require("../TextLabel");
41
44
  var types_1 = require("./types");
42
45
  function UploadIconButton(_a) {
43
- var _b = _a.fillType, fillType = _b === void 0 ? 'fill' : _b, _c = _a.shapeType, shapeType = _c === void 0 ? 'rectangle' : _c, _d = _a.baseSize, baseSize = _d === void 0 ? 'small' : _d, baseColorKey = _a.baseColorKey, borderColorKey = _a.borderColorKey, _e = _a.iconSize, iconSize = _e === void 0 ? 24 : _e, _f = _a.iconFillType, iconFillType = _f === void 0 ? 'line' : _f, _g = _a.iconName, iconName = _g === void 0 ? 'ic_upload' : _g, iconColorKey = _a.iconColorKey, _h = _a.shadow, shadow = _h === void 0 ? 'hidden' : _h, _j = _a.colorTheme, colorTheme = _j === void 0 ? 'none' : _j, _k = _a.state, state = _k === void 0 ? 'normal' : _k, _l = _a.accept, accept = _l === void 0 ? '*' : _l, _m = _a.multipleMode, multipleMode = _m === void 0 ? 'none' : _m, onClick = _a.onClick;
46
+ var _b = _a.fillType, fillType = _b === void 0 ? 'fill' : _b, _c = _a.shapeType, shapeType = _c === void 0 ? 'rectangle' : _c, _d = _a.baseSize, baseSize = _d === void 0 ? 'small' : _d, baseColorKey = _a.baseColorKey, borderColorKey = _a.borderColorKey, _e = _a.iconSize, iconSize = _e === void 0 ? 24 : _e, _f = _a.iconFillType, iconFillType = _f === void 0 ? 'line' : _f, _g = _a.iconName, iconName = _g === void 0 ? 'ic_upload' : _g, iconColorKey = _a.iconColorKey, _h = _a.shadow, shadow = _h === void 0 ? 'hidden' : _h, _j = _a.colorTheme, colorTheme = _j === void 0 ? 'none' : _j, _k = _a.state, state = _k === void 0 ? 'normal' : _k, _l = _a.accept, accept = _l === void 0 ? '*' : _l, _m = _a.multipleMode, multipleMode = _m === void 0 ? 'none' : _m, tooltipText = _a.tooltipText, _o = _a.tooltipPosition, tooltipPosition = _o === void 0 ? 'center_bottom' : _o, onClick = _a.onClick;
47
+ var _p = (0, react_1.useState)(false), isTooltipOpen = _p[0], setIsTooltipOpen = _p[1];
48
+ var handleTooltipToggle = function (value) {
49
+ setIsTooltipOpen(value);
50
+ };
44
51
  var handleClick = function (e) {
45
52
  if (onClick) {
46
53
  onClick(e);
@@ -59,7 +66,7 @@ function UploadIconButton(_a) {
59
66
  }
60
67
  return types_1.iconStateColors[fillType];
61
68
  };
62
- return ((0, jsx_runtime_1.jsxs)(S_UploadIconButton, __assign({ "x-pds-name": "UploadIconButton", "x-pds-element-type": "component", "x-pds-device-type": "desktop", fillType: fillType, shapeType: shapeType, baseSize: baseSize, baseColorKey: baseColorKey, borderColorKey: borderColorKey, shadow: shadow, colorTheme: colorTheme, isDisabled: state === 'disabled' }, { children: [(0, jsx_runtime_1.jsx)("input", { type: "file", hidden: true, disabled: state === 'disabled', accept: accept, multiple: multipleMode === 'use', onChange: handleClick }, void 0), (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { iconName: iconName, size: iconSize, colorKey: IconColorSelect(), fillType: iconFillType }, void 0)] }), void 0));
69
+ return ((0, jsx_runtime_1.jsxs)(S_UploadIconButton, __assign({ "x-pds-name": "UploadIconButton", "x-pds-element-type": "component", "x-pds-device-type": "desktop", fillType: fillType, shapeType: shapeType, baseSize: baseSize, baseColorKey: baseColorKey, borderColorKey: borderColorKey, shadow: shadow, colorTheme: colorTheme, isDisabled: state === 'disabled', onMouseEnter: function () { return tooltipText && handleTooltipToggle(true); }, onMouseLeave: function () { return tooltipText && handleTooltipToggle(false); } }, { children: [(0, jsx_runtime_1.jsx)("input", { type: "file", hidden: true, disabled: state === 'disabled', accept: accept, multiple: multipleMode === 'use', onChange: handleClick }, void 0), (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { iconName: iconName, size: iconSize, colorKey: IconColorSelect(), fillType: iconFillType }, void 0), tooltipText && isTooltipOpen && ((0, jsx_runtime_1.jsx)(S_TooltipWrapper, __assign({ className: "TooltipWrapper", isTooltipOpen: isTooltipOpen, tooltipPosition: tooltipPosition, baseSize: baseSize }, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: tooltipText, colorOverride: "ui_cpnt_textlabel_button_tooltip", styleTheme: "caption2Regular", colorTheme: "sysTextSecondary" }, void 0) }), void 0))] }), void 0));
63
70
  }
64
71
  var fillDisabled = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), function (_a) {
65
72
  var theme = _a.theme, baseColorKey = _a.baseColorKey;
@@ -67,7 +74,7 @@ var fillDisabled = (0, styled_components_1.css)(templateObject_1 || (templateObj
67
74
  ? ''
68
75
  : theme.ui_cpnt_button_fill_base_disabled;
69
76
  });
70
- var fill = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n border: none;\n position: relative;\n\n &::before {\n content: '';\n border-radius: inherit;\n position: absolute;\n background-color: transparent;\n height: 100%;\n width: 100%;\n ", "\n }\n\n &:hover:not([disabled])::before {\n background-color: ", ";\n }\n\n &:active:not([disabled])::before {\n background-color: ", ";\n }\n\n ", ";\n"], ["\n background-color: ", ";\n border: none;\n position: relative;\n\n &::before {\n content: '';\n border-radius: inherit;\n position: absolute;\n background-color: transparent;\n height: 100%;\n width: 100%;\n ", "\n }\n\n &:hover:not([disabled])::before {\n background-color: ", ";\n }\n\n &:active:not([disabled])::before {\n background-color: ", ";\n }\n\n ", ";\n"])), function (_a) {
77
+ var fill = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n border: none;\n position: relative;\n\n &::before {\n background-color: transparent;\n border-radius: inherit;\n content: '';\n height: 100%;\n position: absolute;\n width: 100%;\n ", "\n }\n\n &:hover:not([disabled])::before {\n background-color: ", ";\n }\n\n &:active:not([disabled])::before {\n background-color: ", ";\n }\n\n ", ";\n"], ["\n background-color: ", ";\n border: none;\n position: relative;\n\n &::before {\n background-color: transparent;\n border-radius: inherit;\n content: '';\n height: 100%;\n position: absolute;\n width: 100%;\n ", "\n }\n\n &:hover:not([disabled])::before {\n background-color: ", ";\n }\n\n &:active:not([disabled])::before {\n background-color: ", ";\n }\n\n ", ";\n"])), function (_a) {
71
78
  var theme = _a.theme, baseColorKey = _a.baseColorKey;
72
79
  return baseColorKey ? theme[baseColorKey] : theme.ui_cpnt_button_fill_base_primary;
73
80
  }, transitionStyle_1.ButtonTransition, function (_a) {
@@ -157,5 +164,46 @@ var S_UploadIconButton = styled_components_1.default.label(templateObject_12 ||
157
164
  xsmall: xsmall
158
165
  }[baseSize];
159
166
  });
167
+ var tooltipPositionSpacing = (0, styled_components_1.css)(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), function (_a) {
168
+ var baseSize = _a.baseSize;
169
+ return baseSize &&
170
+ {
171
+ xxlarge: constants_1.TOOLTIP_POSITION_SPACING.xxlarge,
172
+ large: constants_1.TOOLTIP_POSITION_SPACING.large,
173
+ medium: constants_1.TOOLTIP_POSITION_SPACING.medium,
174
+ small: constants_1.TOOLTIP_POSITION_SPACING.small,
175
+ xsmall: constants_1.TOOLTIP_POSITION_SPACING.xsmall
176
+ }[baseSize];
177
+ });
178
+ var tooltipLeftTop = (0, styled_components_1.css)(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n bottom: ", ";\n right: 0;\n"], ["\n bottom: ", ";\n right: 0;\n"])), tooltipPositionSpacing);
179
+ var tooltipLeftBottom = (0, styled_components_1.css)(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n right: 0;\n top: ", ";\n"], ["\n right: 0;\n top: ", ";\n"])), tooltipPositionSpacing);
180
+ var tooltipCenterTop = (0, styled_components_1.css)(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n bottom: ", ";\n"], ["\n bottom: ", ";\n"])), tooltipPositionSpacing);
181
+ var tooltipCenterBottom = (0, styled_components_1.css)(templateObject_17 || (templateObject_17 = __makeTemplateObject(["\n top: ", ";\n"], ["\n top: ", ";\n"])), tooltipPositionSpacing);
182
+ var tooltipRightTop = (0, styled_components_1.css)(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n bottom: ", ";\n left: 0;\n"], ["\n bottom: ", ";\n left: 0;\n"])), tooltipPositionSpacing);
183
+ var tooltipRightBottom = (0, styled_components_1.css)(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n left: 0;\n top: ", ";\n"], ["\n left: 0;\n top: ", ";\n"])), tooltipPositionSpacing);
184
+ var S_TooltipWrapper = styled_components_1.default.div(templateObject_20 || (templateObject_20 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n padding: ", ";\n position: absolute;\n width: max-content;\n z-index: 400;\n\n ", ";\n\n ", "\n"], ["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n padding: ", ";\n position: absolute;\n width: max-content;\n z-index: 400;\n\n ", ";\n\n ", "\n"])), function (_a) {
185
+ var theme = _a.theme;
186
+ return theme.ui_cpnt_button_tooltip_base;
187
+ }, function (_a) {
188
+ var theme = _a.theme;
189
+ return theme.spacing.spacingA;
190
+ }, function (_a) {
191
+ var theme = _a.theme;
192
+ return theme.spacing.spacingA + " " + theme.spacing.spacingB;
193
+ }, function (_a) {
194
+ var isTooltipOpen = _a.isTooltipOpen;
195
+ return !isTooltipOpen && 'display: none';
196
+ }, function (_a) {
197
+ var tooltipPosition = _a.tooltipPosition;
198
+ return tooltipPosition &&
199
+ {
200
+ left_top: tooltipLeftTop,
201
+ left_bottom: tooltipLeftBottom,
202
+ center_top: tooltipCenterTop,
203
+ center_bottom: tooltipCenterBottom,
204
+ right_top: tooltipRightTop,
205
+ right_bottom: tooltipRightBottom
206
+ }[tooltipPosition];
207
+ });
160
208
  exports.default = UploadIconButton;
161
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12;
209
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20;