pds-dev-kit-web 2.2.10 → 2.2.11

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 (43) hide show
  1. package/dist/src/common/hooks/index.d.ts +1 -0
  2. package/dist/src/common/hooks/index.js +3 -1
  3. package/dist/src/common/hooks/useAbsolutePositioner.d.ts +13 -0
  4. package/dist/src/common/hooks/useAbsolutePositioner.js +54 -0
  5. package/dist/src/common/hooks/useTooltip.d.ts +17 -0
  6. package/dist/src/common/hooks/useTooltip.js +76 -0
  7. package/dist/src/common/styles/colorSet/PaletteColor_Dark.json +2 -1
  8. package/dist/src/common/styles/colorSet/PaletteColor_light.json +2 -1
  9. package/dist/src/common/styles/colorSet/UIColor.json +2 -1
  10. package/dist/src/common/styles/colorSet/index.d.ts +843 -840
  11. package/dist/src/common/styles/colorSet/index.js +3 -3
  12. package/dist/src/common/styles/colorSet/ui-type.d.ts +1 -0
  13. package/dist/src/common/styles/systemUI/index.d.ts +1 -0
  14. package/dist/src/common/styles/systemUI/index.js +5 -0
  15. package/dist/src/common/styles/systemUI/tooltipStyle.d.ts +1 -0
  16. package/dist/src/common/styles/systemUI/tooltipStyle.js +28 -0
  17. package/dist/src/common/types/components.d.ts +3 -2
  18. package/dist/src/common/types/systemUI.d.ts +13 -0
  19. package/dist/src/common/types/systemUI.js +2 -0
  20. package/dist/src/common/utils/SystemUIPositionGenerator/clickTypeSystemUICssGenerator.d.ts +13 -0
  21. package/dist/src/common/utils/SystemUIPositionGenerator/clickTypeSystemUICssGenerator.js +20 -0
  22. package/dist/src/common/utils/SystemUIPositionGenerator/hoverTypeSystemUICssGenerator.d.ts +17 -0
  23. package/dist/src/common/utils/SystemUIPositionGenerator/hoverTypeSystemUICssGenerator.js +71 -0
  24. package/dist/src/common/utils/SystemUIPositionGenerator/index.d.ts +1 -0
  25. package/dist/src/common/utils/SystemUIPositionGenerator/index.js +8 -0
  26. package/dist/src/desktop/components/BasicButtonGroup/BasicButtonGroup.js +54 -42
  27. package/dist/src/desktop/components/BasicButtonGroup/constants.d.ts +0 -6
  28. package/dist/src/desktop/components/BasicButtonGroup/constants.js +1 -8
  29. package/dist/src/desktop/components/Dropdown/Dropdown.js +48 -9
  30. package/dist/src/desktop/components/IconButton/IconButton.d.ts +3 -1
  31. package/dist/src/desktop/components/IconButton/IconButton.js +48 -44
  32. package/dist/src/desktop/components/SegmentedButtonGroup/SegmentedButtonGroup.js +54 -42
  33. package/dist/src/desktop/components/SegmentedButtonGroup/constants.d.ts +0 -6
  34. package/dist/src/desktop/components/SegmentedButtonGroup/constants.js +1 -8
  35. package/dist/src/desktop/components/TextLabel/TextLabel.d.ts +3 -1
  36. package/dist/src/desktop/components/TextLabel/TextLabel.js +33 -63
  37. package/dist/src/desktop/components/UploadIconButton/UploadIconButton.d.ts +3 -1
  38. package/dist/src/desktop/components/UploadIconButton/UploadIconButton.js +49 -45
  39. package/dist/src/desktop/components/UploadIconButton/constants.d.ts +7 -0
  40. package/dist/src/desktop/components/UploadIconButton/constants.js +10 -0
  41. package/dist/src/mobile/components/Dropdown/Dropdown.js +48 -9
  42. package/package.json +1 -1
  43. package/release-note.md +8 -4
@@ -37,9 +37,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
37
37
  __setModuleDefault(result, mod);
38
38
  return result;
39
39
  };
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
40
43
  Object.defineProperty(exports, "__esModule", { value: true });
41
44
  var jsx_runtime_1 = require("react/jsx-runtime");
42
45
  var react_1 = require("react");
46
+ var react_dom_1 = require("react-dom");
47
+ var clickTypeSystemUICssGenerator_1 = __importDefault(require("../../../common/utils/SystemUIPositionGenerator/clickTypeSystemUICssGenerator"));
43
48
  var styled_components_1 = __importStar(require("styled-components"));
44
49
  var transitionStyle_1 = require("../../../common/styles/movement/transitionStyle");
45
50
  var hybrid_1 = require("../../../hybrid");
@@ -55,6 +60,10 @@ function Dropdown(_a) {
55
60
  size = _e === void 0 ? 'large' : _e, _f = _a.state, state = _f === void 0 ? 'normal' : _f, valueArray = _a.valueArray, customWidth = _a.customWidth, _g = _a.displayType, displayType = _g === void 0 ? 'text_only' : _g, _h = _a.fontWeight, fontWeight = _h === void 0 ? 'regular' : _h, onChange = _a.onChange;
56
61
  var _j = (0, react_1.useState)(false), isFocused = _j[0], setIsFocused = _j[1];
57
62
  var _k = (0, react_1.useState)(null), selectedValue = _k[0], setSelectedValue = _k[1];
63
+ var _l = (0, react_1.useState)(null), contextMenuSizeOffset = _l[0], setContextMenuSizeOffset = _l[1];
64
+ var _m = (0, react_1.useState)(null), dropdownPositionOffset = _m[0], setDropdownPositionOffset = _m[1];
65
+ var contextMenuRef = (0, react_1.useRef)(null);
66
+ var dropdownRef = (0, react_1.useRef)(null);
58
67
  /**
59
68
  * @when value 프롭의 값에 따라
60
69
  * @expected 값이 null일 때 드롭다운을 초기화하고, 값이 있다면 해당 값으로 설정해줍니다.
@@ -80,6 +89,36 @@ function Dropdown(_a) {
80
89
  }
81
90
  setSelectedValue(defaultValue);
82
91
  }, [defaultValue]);
92
+ /**
93
+ * @when : isFocused 변경되었을 때
94
+ * @expected : dropdownRef, contextMenuRef 의 위치를 업데이트합니다.
95
+ * @clear :
96
+ */
97
+ (0, react_1.useEffect)(function () {
98
+ if (dropdownRef.current) {
99
+ var _a = dropdownRef.current.getBoundingClientRect(), top_1 = _a.top, right = _a.right, left = _a.left, bottom = _a.bottom;
100
+ setDropdownPositionOffset({
101
+ top: top_1 + window.scrollY,
102
+ right: right + window.scrollX,
103
+ bottom: bottom + window.scrollY,
104
+ left: left + window.scrollX
105
+ });
106
+ }
107
+ if (!isFocused && contextMenuRef.current) {
108
+ setContextMenuSizeOffset(null);
109
+ return;
110
+ }
111
+ if (contextMenuRef.current) {
112
+ setContextMenuSizeOffset({
113
+ height: contextMenuRef.current.offsetHeight,
114
+ width: contextMenuRef.current.offsetWidth
115
+ });
116
+ }
117
+ }, [isFocused]);
118
+ var contextMenuPositionCss = (0, clickTypeSystemUICssGenerator_1.default)({
119
+ sizeOffset: contextMenuSizeOffset,
120
+ positionOffset: dropdownPositionOffset
121
+ });
83
122
  var handleClick = function () {
84
123
  if (state === 'disabled' || state === 'read_only') {
85
124
  return;
@@ -101,12 +140,14 @@ function Dropdown(_a) {
101
140
  }
102
141
  };
103
142
  var getCustomWidth = function () {
143
+ var _a;
104
144
  if (customWidth) {
105
145
  return customWidth;
106
146
  }
107
- if (displayType === 'icon_only') {
108
- return 'auto';
147
+ if ((_a = dropdownRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) {
148
+ return "".concat(dropdownRef.current.offsetWidth, "px");
109
149
  }
150
+ return '';
110
151
  };
111
152
  var getIconColorKey = function () {
112
153
  if (state === 'disabled' || state === 'read_only') {
@@ -194,7 +235,8 @@ function Dropdown(_a) {
194
235
  var LARGE_HEIGHT = 48;
195
236
  return LARGE_HEIGHT * maxHeightItemNumber;
196
237
  }, [size, maxHeightItemNumber]);
197
- return ((0, jsx_runtime_1.jsxs)(S_Dropdown, __assign({ "x-pds-name": "Dropdown", "x-pds-element-type": "component", "x-pds-device-type": "mobile", className: "container", size: size, tabIndex: 0, onBlur: handleBlur, responsiveMode: responsiveMode, customWidth: customWidth, displayType: displayType }, { children: [(0, jsx_runtime_1.jsxs)(S_Select, __assign({ size: size, onClick: handleClick, isFocused: isFocused, state: state, colorTheme: colorTheme, responsiveMode: responsiveMode, customWidth: customWidth, displayType: displayType }, { children: [(0, jsx_runtime_1.jsxs)(S_TextLabel, __assign({ size: size, responsiveMode: responsiveMode, displayType: displayType }, { children: [(displayType === 'icon_only' || displayType === 'icon_text') && (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.iconName) && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: size === 'small' ? 20 : 24, iconName: selectedValue.iconName, fillType: selectedValue.iconFillType, colorKey: getIconColorKey() }), displayType === 'icon_text' && (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_b", spacingType: "width" })] })), (displayType === 'text_only' || displayType === 'icon_text') && ((0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.text) || (value === null || value === void 0 ? void 0 : value.text) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.text) || hintText, styleTheme: fontWeight === 'bold' ? 'form2Bold' : 'form2Regular', singleLineMode: "use", colorTheme: getTextColorTheme(), colorOverride: getTextColorOverride(), ellipsisMode: "use", lineLimit: 1, wordBreak: "break_all" }))] })), (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: 16, fillType: "line", iconName: isFocused ? 'ic_arrow_up' : 'ic_arrow_down', colorKey: getArrowIconColorKey() })] })), isFocused && ((0, jsx_runtime_1.jsx)(S_ContextMenuWrapper, __assign({ displayType: displayType }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, __assign({ autoWidthMode: "use", maxHeight: maxHeight, customWidth: getCustomWidth() }, { children: valueArray.map(function (el) { return ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: (0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, size: size, isSelected: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.value) === el.value, onClick: handleClickOption, state: el.state, displayType: displayType }) }, el.value)); }) })) })))] })));
238
+ return ((0, jsx_runtime_1.jsxs)(S_Dropdown, __assign({ "x-pds-name": "Dropdown", "x-pds-element-type": "component", "x-pds-device-type": "mobile", className: "container", ref: dropdownRef, size: size, tabIndex: 0, onBlur: handleBlur, responsiveMode: responsiveMode, customWidth: customWidth, displayType: displayType }, { children: [(0, jsx_runtime_1.jsxs)(S_Select, __assign({ size: size, onClick: handleClick, isFocused: isFocused, state: state, colorTheme: colorTheme, responsiveMode: responsiveMode, customWidth: customWidth, displayType: displayType }, { children: [(0, jsx_runtime_1.jsxs)(S_TextLabel, __assign({ size: size, responsiveMode: responsiveMode, displayType: displayType }, { children: [(displayType === 'icon_only' || displayType === 'icon_text') && (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.iconName) && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: size === 'small' ? 20 : 24, iconName: selectedValue.iconName, fillType: selectedValue.iconFillType, colorKey: getIconColorKey() }), displayType === 'icon_text' && (0, jsx_runtime_1.jsx)(hybrid_1.Spacing, { size: "spacing_b", spacingType: "width" })] })), (displayType === 'text_only' || displayType === 'icon_text') && ((0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.text) || (value === null || value === void 0 ? void 0 : value.text) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.text) || hintText, styleTheme: fontWeight === 'bold' ? 'form2Bold' : 'form2Regular', singleLineMode: "use", colorTheme: getTextColorTheme(), colorOverride: getTextColorOverride(), ellipsisMode: "use", lineLimit: 1, wordBreak: "break_all" }))] })), (0, jsx_runtime_1.jsx)(hybrid_1.Icon, { size: 16, fillType: "line", iconName: isFocused ? 'ic_arrow_up' : 'ic_arrow_down', colorKey: getArrowIconColorKey() })] })), isFocused &&
239
+ (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(S_ContextMenuWrapper, __assign({ ref: contextMenuRef, contextMenuPositionCss: contextMenuPositionCss }, { children: (0, jsx_runtime_1.jsx)(ContextMenu_1.ContextMenu, __assign({ autoWidthMode: "use", maxHeight: maxHeight, customWidth: getCustomWidth() }, { children: valueArray.map(function (el) { return ((0, jsx_runtime_1.jsx)("div", __assign({ onMouseDown: function () { return handleClickOption(el); } }, { children: (0, jsx_runtime_1.jsx)(ContextMenuItem_1.ContextMenuItem, { option: el, size: size, isSelected: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.value) === el.value, state: el.state, displayType: displayType }) }), el.value)); }) })) })), document.body)] })));
198
240
  }
199
241
  var S_TextLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n padding-right: ", ";\n\n ", ";\n"], ["\n align-items: center;\n display: flex;\n padding-right: ", ";\n\n ", ";\n"])), function (_a) {
200
242
  var theme = _a.theme;
@@ -369,12 +411,9 @@ var S_Select = styled_components_1.default.div(templateObject_14 || (templateObj
369
411
  var state = _a.state;
370
412
  return state === 'normal' && normalActionColor;
371
413
  });
372
- var S_ContextMenuWrapper = styled_components_1.default.div(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n display: block;\n margin-top: ", ";\n position: absolute;\n width: inherit;\n width: ", ";\n"], ["\n display: block;\n margin-top: ", ";\n position: absolute;\n width: inherit;\n width: ", ";\n"])), function (_a) {
373
- var theme = _a.theme;
374
- return theme.spacing.spacingB;
375
- }, function (_a) {
376
- var displayType = _a.displayType;
377
- return (displayType === 'icon_only' ? '100%' : 'inherit');
414
+ var S_ContextMenuWrapper = styled_components_1.default.div(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n display: block;\n position: absolute;\n\n ", ";\n"], ["\n display: block;\n position: absolute;\n\n ", ";\n"])), function (_a) {
415
+ var contextMenuPositionCss = _a.contextMenuPositionCss;
416
+ return contextMenuPositionCss;
378
417
  });
379
418
  exports.default = Dropdown;
380
419
  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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pds-dev-kit-web",
3
- "version": "2.2.10",
3
+ "version": "2.2.11",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
package/release-note.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # PDS-DEV-KIT-WEB Release Notes
2
- ## [v2.2.10]
2
+ ## [v2.2.11]
3
3
  ## daily|https://design.storybook.publ.biz/
4
4
 
5
5
  ### Component
6
- * Icon
7
- * ic_typeface_system(fill, line) 추가
8
- * ic_logo_google(fill, line) 추가
6
+ * systemUI의 positioning을 모듈화
7
+ * TextLabel (tooltip)
8
+ * ContextMenu
9
+ * Dropdown
10
+ * IconButton/ButtonGroup (tooltip)
11
+ ### Color
12
+ * 컬러 키 값 23.10.20 18시 48분 기준 싱크