@ncds/ui-admin 1.6.1 → 1.6.3

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 (58) hide show
  1. package/dist/cjs/assets/scripts/comboBox.js +3 -3
  2. package/dist/cjs/assets/scripts/selectBox.js +2 -2
  3. package/dist/cjs/assets/scripts/utils/{selectbox/SelectBoxController.js → unifiedBox/UnifiedBoxController.js} +38 -38
  4. package/dist/cjs/assets/scripts/utils/{selectbox/UnifiedSelectBox.js → unifiedBox/UnifiedBoxManager.js} +42 -42
  5. package/dist/cjs/src/components/button/Button.js +0 -1
  6. package/dist/cjs/src/components/checkbox/CheckboxInput.js +0 -3
  7. package/dist/cjs/src/components/date-picker/DatePicker.js +5 -1
  8. package/dist/cjs/src/components/dot/Dot.js +1 -1
  9. package/dist/cjs/src/components/pagination/Pagination.js +1 -1
  10. package/dist/cjs/src/components/select/Select.js +0 -3
  11. package/dist/cjs/src/components/tab/HorizontalTab.js +1 -1
  12. package/dist/cjs/src/components/tab/VerticalTab.js +1 -1
  13. package/dist/cjs/src/types/side-slot.js +5 -0
  14. package/dist/esm/assets/scripts/comboBox.js +3 -3
  15. package/dist/esm/assets/scripts/selectBox.js +2 -2
  16. package/dist/esm/assets/scripts/utils/{selectbox/SelectBoxController.js → unifiedBox/UnifiedBoxController.js} +38 -38
  17. package/dist/esm/assets/scripts/utils/{selectbox/UnifiedSelectBox.js → unifiedBox/UnifiedBoxManager.js} +42 -42
  18. package/dist/esm/src/components/button/Button.js +0 -1
  19. package/dist/esm/src/components/checkbox/CheckboxInput.js +0 -3
  20. package/dist/esm/src/components/date-picker/DatePicker.js +5 -1
  21. package/dist/esm/src/components/dot/Dot.js +1 -1
  22. package/dist/esm/src/components/pagination/Pagination.js +1 -1
  23. package/dist/esm/src/components/select/Select.js +0 -3
  24. package/dist/esm/src/components/switch/Switch.js +1 -1
  25. package/dist/esm/src/components/tab/HorizontalTab.js +1 -1
  26. package/dist/esm/src/components/tab/VerticalTab.js +1 -1
  27. package/dist/esm/src/types/side-slot.js +1 -0
  28. package/dist/types/assets/scripts/comboBox.d.ts +3 -3
  29. package/dist/types/assets/scripts/modal/const/types.d.ts +1 -1
  30. package/dist/types/assets/scripts/selectBox.d.ts +1 -1
  31. package/dist/types/assets/scripts/utils/{selectbox/SelectBoxController.d.ts → unifiedBox/UnifiedBoxController.d.ts} +5 -5
  32. package/dist/types/assets/scripts/utils/{selectbox/UnifiedSelectBox.d.ts → unifiedBox/UnifiedBoxManager.d.ts} +6 -6
  33. package/dist/types/src/components/badge/BadgeGroup.d.ts +1 -1
  34. package/dist/types/src/components/button/Button.d.ts +13 -13
  35. package/dist/types/src/components/checkbox/Checkbox.d.ts +1 -2
  36. package/dist/types/src/components/checkbox/CheckboxInput.d.ts +0 -3
  37. package/dist/types/src/components/combobox/ComboBox.d.ts +3 -4
  38. package/dist/types/src/components/dot/Dot.d.ts +1 -1
  39. package/dist/types/src/components/dropdown/Dropdown.d.ts +1 -5
  40. package/dist/types/src/components/input/InputBase.d.ts +3 -3
  41. package/dist/types/src/components/input/NumberInput.d.ts +1 -1
  42. package/dist/types/src/components/modal/Modal.d.ts +2 -2
  43. package/dist/types/src/components/pagination/Pagination.d.ts +1 -1
  44. package/dist/types/src/components/progress-bar/types.d.ts +1 -1
  45. package/dist/types/src/components/radio/Radio.d.ts +1 -2
  46. package/dist/types/src/components/select/Select.d.ts +3 -7
  47. package/dist/types/src/components/selectbox/SelectBox.d.ts +3 -4
  48. package/dist/types/src/components/spinner/Spinner.d.ts +1 -1
  49. package/dist/types/src/components/tag/Tag.d.ts +1 -1
  50. package/dist/types/src/types/side-slot.d.ts +26 -0
  51. package/dist/ui-admin/assets/styles/style.css +22 -40
  52. package/package.json +1 -1
  53. /package/dist/cjs/assets/scripts/utils/{selectbox → unifiedBox}/DOMRenderer.js +0 -0
  54. /package/dist/cjs/assets/scripts/utils/{selectbox → unifiedBox}/DropdownModel.js +0 -0
  55. /package/dist/esm/assets/scripts/utils/{selectbox → unifiedBox}/DOMRenderer.js +0 -0
  56. /package/dist/esm/assets/scripts/utils/{selectbox → unifiedBox}/DropdownModel.js +0 -0
  57. /package/dist/types/assets/scripts/utils/{selectbox → unifiedBox}/DOMRenderer.d.ts +0 -0
  58. /package/dist/types/assets/scripts/utils/{selectbox → unifiedBox}/DropdownModel.d.ts +0 -0
@@ -26,9 +26,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
26
26
  }
27
27
  return t;
28
28
  };
29
- /**
30
- * 현재 destructive 속성은 현재 디자인 시스템에 존재하지 않으니 사용하지 않는 것을 권장합니다.
31
- */
32
29
  var CheckboxInput = exports.CheckboxInput = /*#__PURE__*/(0, _react.forwardRef)(function (_a, ref) {
33
30
  var _b = _a.size,
34
31
  size = _b === void 0 ? 'xs' : _b,
@@ -133,6 +133,9 @@ var DatePicker = exports.DatePicker = /*#__PURE__*/(0, _react.forwardRef)(functi
133
133
  var instance = flatpickrInstanceRef.current;
134
134
  if (!instance) return;
135
135
  if (!input || input.trim() === '') {
136
+ target.value = '';
137
+ instance.setDate('', false);
138
+ onChangeDate('');
136
139
  return;
137
140
  }
138
141
  // 숫자가 최소 하나는 포함되어야 함 (하이픈만 있는 경우 방지)
@@ -323,7 +326,8 @@ var DatePicker = exports.DatePicker = /*#__PURE__*/(0, _react.forwardRef)(functi
323
326
  enableTime = _b.enableTime,
324
327
  enableSeconds = _b.enableSeconds,
325
328
  noCalendar = _b.noCalendar,
326
- inputProps = __rest(_b, ["allowInput", "dateFormat", "minDate", "maxDate", "enableTime", "enableSeconds", "noCalendar"]);
329
+ render = _b.render,
330
+ inputProps = __rest(_b, ["allowInput", "dateFormat", "minDate", "maxDate", "enableTime", "enableSeconds", "noCalendar", "render"]);
327
331
  return (0, _jsxRuntime.jsx)(_CustomInput.CustomInput, __assign({}, inputProps, {
328
332
  id: inputId,
329
333
  iconSize: size,
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Dot = void 0;
7
7
  var _jsxRuntime = require("react/jsx-runtime");
8
- var _react = require("react");
9
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _react = require("react");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  var __assign = void 0 && (void 0).__assign || function () {
12
12
  __assign = Object.assign || function (t) {
@@ -63,7 +63,7 @@ var Pagination = function (_a) {
63
63
  setStart(newStart);
64
64
  }
65
65
  if (currentPage < start) {
66
- setStart(start - pageCount);
66
+ setStart(Math.max(1, start - pageCount));
67
67
  }
68
68
  if (currentPage === 1) {
69
69
  setStart(1);
@@ -27,9 +27,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
27
27
  }
28
28
  return t;
29
29
  };
30
- /**
31
- * 현재 icon 속성은 현재 디자인 시스템에 존재하지 않으니 사용하지 않는 것을 권장합니다.
32
- */
33
30
  var Select = exports.Select = /*#__PURE__*/(0, _react.forwardRef)(function (_a, ref) {
34
31
  var placeholder = _a.placeholder,
35
32
  _b = _a.disabledPlaceholder,
@@ -48,7 +48,7 @@ var HorizontalTab = function (_a) {
48
48
  spaceBetween: getTabGap(type)
49
49
  }, {
50
50
  children: menus.map(function (menu) {
51
- var isActive = 'href' in menu && menu.href ? menu.href.includes(activeTab) : menu.id === activeTab;
51
+ var isActive = 'href' in menu && menu.href ? menu.href === activeTab : menu.id === activeTab;
52
52
  return (0, _jsxRuntime.jsx)(_react.SwiperSlide, __assign({
53
53
  className: "ncua-horizontal-tab__item"
54
54
  }, {
@@ -48,7 +48,7 @@ var VerticalTab = function (_a) {
48
48
  className: (0, _classnames.default)('ncua-vertical-tab', "ncua-vertical-tab--".concat(type))
49
49
  }, {
50
50
  children: menus === null || menus === void 0 ? void 0 : menus.map(function (menu) {
51
- var isActive = 'href' in menu && menu.href ? menu.href.includes(activeTab) : menu.id === activeTab;
51
+ var isActive = 'href' in menu && menu.href ? menu.href === activeTab : menu.id === activeTab;
52
52
  return (0, _jsxRuntime.jsx)(_TabButton.TabButton, __assign({}, menu, {
53
53
  isActive: isActive,
54
54
  tabButtonType: type,
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -17,7 +17,7 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
17
17
  }
18
18
  return to.concat(ar || Array.prototype.slice.call(from));
19
19
  };
20
- import { UnifiedSelectBox } from './utils/selectbox/UnifiedSelectBox';
20
+ import { UnifiedBoxManager } from './utils/unifiedBox/UnifiedBoxManager';
21
21
  var ComboBox = /** @class */function () {
22
22
  function ComboBox(element, config) {
23
23
  if (config === void 0) {
@@ -74,7 +74,7 @@ var ComboBox = /** @class */function () {
74
74
  (_a = config.onChange) === null || _a === void 0 ? void 0 : _a.call(config, value);
75
75
  }
76
76
  });
77
- this.unifiedSelectBox = new UnifiedSelectBox(element, unifiedConfig);
77
+ this.unifiedSelectBox = new UnifiedBoxManager(element, unifiedConfig);
78
78
  // 초기화 완료 (다음 이벤트 루프에서 실행)
79
79
  setTimeout(function () {
80
80
  _this.isInitializing = false;
@@ -229,7 +229,7 @@ var ComboBox = /** @class */function () {
229
229
  };
230
230
  // ComboBox 특화 메서드들
231
231
  ComboBox.prototype.clearInput = function () {
232
- // UnifiedSelectBox의 handleClearInput과 동일한 로직
232
+ // UnifiedBoxManager의 handleClearInput과 동일한 로직
233
233
  this.unifiedSelectBox.close();
234
234
  };
235
235
  ComboBox.prototype.getDebugInfo = function () {
@@ -8,7 +8,7 @@ var __assign = this && this.__assign || function () {
8
8
  };
9
9
  return __assign.apply(this, arguments);
10
10
  };
11
- import { UnifiedSelectBox } from './utils/selectbox/UnifiedSelectBox';
11
+ import { UnifiedBoxManager } from './utils/unifiedBox/UnifiedBoxManager';
12
12
  var SelectBox = /** @class */function () {
13
13
  function SelectBox(element, config) {
14
14
  if (config === void 0) {
@@ -67,7 +67,7 @@ var SelectBox = /** @class */function () {
67
67
  (_a = config.onChange) === null || _a === void 0 ? void 0 : _a.call(config, realValue);
68
68
  }
69
69
  });
70
- this.unifiedSelectBox = new UnifiedSelectBox(element, unifiedConfig);
70
+ this.unifiedSelectBox = new UnifiedBoxManager(element, unifiedConfig);
71
71
  // 초기화 완료 (다음 이벤트 루프에서 실행)
72
72
  setTimeout(function () {
73
73
  _this.isInitializing = false;
@@ -12,8 +12,8 @@ var __assign = this && this.__assign || function () {
12
12
  * SelectBox 통합 컨트롤러
13
13
  * 이벤트 처리, UI 상태 제어, 사용자 인터랙션 담당
14
14
  */
15
- var SelectBoxController = /** @class */function () {
16
- function SelectBoxController(config) {
15
+ var UnifiedBoxController = /** @class */function () {
16
+ function UnifiedBoxController(config) {
17
17
  this.isOpen = false;
18
18
  this.focusedIndex = -1;
19
19
  this.isKeyboardNavigation = false;
@@ -32,7 +32,7 @@ var SelectBoxController = /** @class */function () {
32
32
  /**
33
33
  * 상태 변경 리스너 (Observer Pattern)
34
34
  */
35
- SelectBoxController.prototype.onStateChange = function (newState, changedFields) {
35
+ UnifiedBoxController.prototype.onStateChange = function (newState, changedFields) {
36
36
  var _a, _b;
37
37
  // 드롭다운 열기/닫기 상태 동기화
38
38
  if (changedFields.includes('isOpen')) {
@@ -58,7 +58,7 @@ var SelectBoxController = /** @class */function () {
58
58
  /**
59
59
  * 이벤트 핸들러 설정
60
60
  */
61
- SelectBoxController.prototype.setupEventHandlers = function () {
61
+ UnifiedBoxController.prototype.setupEventHandlers = function () {
62
62
  var _this = this;
63
63
  // 외부 클릭 핸들러
64
64
  this.outsideClickHandler = function (e) {
@@ -88,7 +88,7 @@ var SelectBoxController = /** @class */function () {
88
88
  /**
89
89
  * 드롭다운 열기
90
90
  */
91
- SelectBoxController.prototype.open = function () {
91
+ UnifiedBoxController.prototype.open = function () {
92
92
  var _a, _b;
93
93
  if (this.config.disabled || this.isOpen) return;
94
94
  this.config.model.setOpen(true);
@@ -101,7 +101,7 @@ var SelectBoxController = /** @class */function () {
101
101
  /**
102
102
  * 드롭다운 닫기
103
103
  */
104
- SelectBoxController.prototype.close = function () {
104
+ UnifiedBoxController.prototype.close = function () {
105
105
  var _a, _b;
106
106
  if (!this.isOpen) return;
107
107
  this.config.model.setOpen(false);
@@ -114,7 +114,7 @@ var SelectBoxController = /** @class */function () {
114
114
  /**
115
115
  * 드롭다운 토글
116
116
  */
117
- SelectBoxController.prototype.toggle = function () {
117
+ UnifiedBoxController.prototype.toggle = function () {
118
118
  if (this.isOpen) {
119
119
  this.close();
120
120
  } else {
@@ -124,7 +124,7 @@ var SelectBoxController = /** @class */function () {
124
124
  /**
125
125
  * 키보드 입력 처리
126
126
  */
127
- SelectBoxController.prototype.handleKeyDown = function (event) {
127
+ UnifiedBoxController.prototype.handleKeyDown = function (event) {
128
128
  var state = this.config.model.getState();
129
129
  switch (event.key) {
130
130
  case 'ArrowDown':
@@ -167,7 +167,7 @@ var SelectBoxController = /** @class */function () {
167
167
  /**
168
168
  * 옵션 검색
169
169
  */
170
- SelectBoxController.prototype.searchOption = function (char) {
170
+ UnifiedBoxController.prototype.searchOption = function (char) {
171
171
  var state = this.config.model.getState();
172
172
  var options = state.filteredOptions;
173
173
  var startIndex = this.focusedIndex >= 0 ? this.focusedIndex + 1 : 0;
@@ -186,13 +186,13 @@ var SelectBoxController = /** @class */function () {
186
186
  /**
187
187
  * 드롭다운 표시/숨김 업데이트
188
188
  */
189
- SelectBoxController.prototype.updateDropdownVisibility = function (isOpen) {
189
+ UnifiedBoxController.prototype.updateDropdownVisibility = function (isOpen) {
190
190
  this.config.dropdownElement.style.display = isOpen ? 'block' : 'none';
191
191
  };
192
192
  /**
193
193
  * 옵션 표시 업데이트
194
194
  */
195
- SelectBoxController.prototype.updateOptionsDisplay = function (state) {
195
+ UnifiedBoxController.prototype.updateOptionsDisplay = function (state) {
196
196
  var hasFilteredOptions = state.filteredOptions.length > 0;
197
197
  var countChanged = this.lastFilteredOptionsCount !== state.filteredOptions.length;
198
198
  // 빈 옵션일 때 해시 초기화 및 전체 렌더링
@@ -269,7 +269,7 @@ var SelectBoxController = /** @class */function () {
269
269
  /**
270
270
  * 포커스된 옵션 업데이트
271
271
  */
272
- SelectBoxController.prototype.updateFocusedOption = function (focusedIndex) {
272
+ UnifiedBoxController.prototype.updateFocusedOption = function (focusedIndex) {
273
273
  this.optionElements.forEach(function (element, index) {
274
274
  if (index === focusedIndex) {
275
275
  element.classList.add('ncua-select-dropdown__option--focused');
@@ -284,7 +284,7 @@ var SelectBoxController = /** @class */function () {
284
284
  /**
285
285
  * 옵션 클릭 이벤트 핸들러 등록
286
286
  */
287
- SelectBoxController.prototype.attachOptionEventHandlers = function () {
287
+ UnifiedBoxController.prototype.attachOptionEventHandlers = function () {
288
288
  var _this = this;
289
289
  // 기존 이벤트 리스너 제거
290
290
  this.removeOptionEventHandlers();
@@ -327,7 +327,7 @@ var SelectBoxController = /** @class */function () {
327
327
  /**
328
328
  * 옵션 이벤트 핸들러 제거
329
329
  */
330
- SelectBoxController.prototype.removeOptionEventHandlers = function () {
330
+ UnifiedBoxController.prototype.removeOptionEventHandlers = function () {
331
331
  this.optionElements.forEach(function (element) {
332
332
  var clickHandler = element._clickHandler;
333
333
  var hoverHandler = element._hoverHandler;
@@ -344,7 +344,7 @@ var SelectBoxController = /** @class */function () {
344
344
  /**
345
345
  * 옵션 업데이트가 필요한지 판단
346
346
  */
347
- SelectBoxController.prototype.shouldUpdateOptions = function (changedFields) {
347
+ UnifiedBoxController.prototype.shouldUpdateOptions = function (changedFields) {
348
348
  return changedFields.some(function (field) {
349
349
  return ['options', 'filteredOptions', 'selectedValues', 'showAllItems'].includes(field);
350
350
  });
@@ -352,20 +352,20 @@ var SelectBoxController = /** @class */function () {
352
352
  /**
353
353
  * 외부 클릭 감지 활성화
354
354
  */
355
- SelectBoxController.prototype.enableOutsideClick = function () {
355
+ UnifiedBoxController.prototype.enableOutsideClick = function () {
356
356
  document.addEventListener('mousedown', this.outsideClickHandler);
357
357
  };
358
358
  /**
359
359
  * 외부 클릭 감지 비활성화
360
360
  */
361
- SelectBoxController.prototype.disableOutsideClick = function () {
361
+ UnifiedBoxController.prototype.disableOutsideClick = function () {
362
362
  document.removeEventListener('mousedown', this.outsideClickHandler);
363
363
  };
364
364
  /**
365
365
  * 스크롤 잠금 활성화 (드롭다운 내부 스크롤은 허용)
366
366
  * ComboBox 또는 multiple 모드에서는 스크롤 잠금 비활성화
367
367
  */
368
- SelectBoxController.prototype.enableScrollLock = function () {
368
+ UnifiedBoxController.prototype.enableScrollLock = function () {
369
369
  var _this = this;
370
370
  // ComboBox 또는 multiple 모드에서는 스크롤 잠금 비활성화
371
371
  if (this.config.type === 'combobox' || this.config.model.isMultiple()) {
@@ -431,7 +431,7 @@ var SelectBoxController = /** @class */function () {
431
431
  /**
432
432
  * 스크롤 가능한 부모 요소 찾기
433
433
  */
434
- SelectBoxController.prototype.findScrollableParent = function (element, boundary) {
434
+ UnifiedBoxController.prototype.findScrollableParent = function (element, boundary) {
435
435
  var current = element;
436
436
  while (current && current !== boundary && boundary.contains(current)) {
437
437
  var computedStyle = window.getComputedStyle(current);
@@ -450,7 +450,7 @@ var SelectBoxController = /** @class */function () {
450
450
  /**
451
451
  * 스크롤 잠금 해제
452
452
  */
453
- SelectBoxController.prototype.disableScrollLock = function () {
453
+ UnifiedBoxController.prototype.disableScrollLock = function () {
454
454
  if (this.scrollLockHandlers) {
455
455
  document.removeEventListener('wheel', this.scrollLockHandlers.wheel);
456
456
  document.removeEventListener('touchmove', this.scrollLockHandlers.touchmove);
@@ -461,7 +461,7 @@ var SelectBoxController = /** @class */function () {
461
461
  /**
462
462
  * 마우스 호버 처리 (외부에서 호출용)
463
463
  */
464
- SelectBoxController.prototype.handleMouseHover = function (index) {
464
+ UnifiedBoxController.prototype.handleMouseHover = function (index) {
465
465
  if (!this.isKeyboardNavigation) {
466
466
  this.config.model.setFocusedIndex(index);
467
467
  }
@@ -469,7 +469,7 @@ var SelectBoxController = /** @class */function () {
469
469
  /**
470
470
  * 옵션 배열 업데이트
471
471
  */
472
- SelectBoxController.prototype.updateOptions = function (options) {
472
+ UnifiedBoxController.prototype.updateOptions = function (options) {
473
473
  var _this = this;
474
474
  this.config.model.updateOptions(options);
475
475
  // 스크롤 리스너는 이미 등록되어 있으므로 제거/재등록 불필요
@@ -482,24 +482,24 @@ var SelectBoxController = /** @class */function () {
482
482
  });
483
483
  }
484
484
  };
485
- SelectBoxController.prototype.getIsOpen = function () {
485
+ UnifiedBoxController.prototype.getIsOpen = function () {
486
486
  return this.config.model.getState().isOpen;
487
487
  };
488
- SelectBoxController.prototype.setFocus = function (index) {
488
+ UnifiedBoxController.prototype.setFocus = function (index) {
489
489
  this.config.model.setFocusedIndex(index);
490
490
  };
491
- SelectBoxController.prototype.getFocusedIndex = function () {
491
+ UnifiedBoxController.prototype.getFocusedIndex = function () {
492
492
  return this.config.model.getState().focusedIndex;
493
493
  };
494
494
  /**
495
495
  * DropdownUtils 호환을 위한 정적 팩토리 메서드
496
496
  */
497
- SelectBoxController.createFromDropdownConfig = function (config) {
497
+ UnifiedBoxController.createFromDropdownConfig = function (config) {
498
498
  // DropdownModel 생성
499
499
  var model = new (require('./DropdownModel').DropdownModel)(config.options || [], false);
500
500
  // DOMRenderer 생성
501
501
  var renderer = new (require('./DOMRenderer').DOMRenderer)();
502
- // SelectBoxController 생성
502
+ // UnifiedBoxController 생성
503
503
  var controllerConfig = {
504
504
  triggerElement: config.triggerElement,
505
505
  dropdownElement: config.dropdownElement,
@@ -521,13 +521,13 @@ var SelectBoxController = /** @class */function () {
521
521
  if (index >= 0) (_c = config.onOptionSelect) === null || _c === void 0 ? void 0 : _c.call(config, index);
522
522
  }
523
523
  };
524
- return new SelectBoxController(controllerConfig);
524
+ return new UnifiedBoxController(controllerConfig);
525
525
  };
526
526
  /**
527
527
  * 드롭다운 위치 조정 (화면 크기에 따라 up/down 방향 결정)
528
528
  * 단일 선택 모드에서만 적용
529
529
  */
530
- SelectBoxController.prototype.adjustDropdownPosition = function () {
530
+ UnifiedBoxController.prototype.adjustDropdownPosition = function () {
531
531
  if (!this.config.dropdownElement || !this.config.triggerElement) return;
532
532
  // ComboBox 또는 multiple 모드에서는 위치 조정 비활성화
533
533
  if (this.config.type === 'combobox' || this.config.model.isMultiple()) {
@@ -552,7 +552,7 @@ var SelectBoxController = /** @class */function () {
552
552
  /**
553
553
  * 드롭다운 위치 계산 (React dropdownUtils.ts 로직 참고)
554
554
  */
555
- SelectBoxController.prototype.calculateDropdownPosition = function () {
555
+ UnifiedBoxController.prototype.calculateDropdownPosition = function () {
556
556
  if (!this.config.triggerElement || !this.config.dropdownElement) {
557
557
  return {
558
558
  direction: 'down',
@@ -580,7 +580,7 @@ var SelectBoxController = /** @class */function () {
580
580
  /**
581
581
  * 드롭다운 예상 높이 계산
582
582
  */
583
- SelectBoxController.prototype.estimateDropdownHeight = function () {
583
+ UnifiedBoxController.prototype.estimateDropdownHeight = function () {
584
584
  var itemHeight = 40; // 대략적인 옵션 항목 높이
585
585
  var itemCount = this.config.model.getState().filteredOptions.length || this.config.model.getState().options.length;
586
586
  return Math.min(itemCount * itemHeight, this.config.renderConfig.maxHeight);
@@ -588,7 +588,7 @@ var SelectBoxController = /** @class */function () {
588
588
  /**
589
589
  * 드롭다운 세부 위치 조정 (뷰포트 경계 처리)
590
590
  */
591
- SelectBoxController.prototype.adjustDropdownPositionDetails = function (dropdownElement) {
591
+ UnifiedBoxController.prototype.adjustDropdownPositionDetails = function (dropdownElement) {
592
592
  var dropdownRect = dropdownElement.getBoundingClientRect();
593
593
  var viewportWidth = window.innerWidth;
594
594
  var viewportHeight = window.innerHeight;
@@ -611,7 +611,7 @@ var SelectBoxController = /** @class */function () {
611
611
  /**
612
612
  * 스크롤 바닥 감지 활성화
613
613
  */
614
- SelectBoxController.prototype.enableScrollBottomDetection = function () {
614
+ UnifiedBoxController.prototype.enableScrollBottomDetection = function () {
615
615
  var _this = this;
616
616
  if (!this.config.onScrollBottom) return;
617
617
  // 이미 리스너가 등록되어 있으면 중복 등록 방지
@@ -641,7 +641,7 @@ var SelectBoxController = /** @class */function () {
641
641
  /**
642
642
  * 스크롤 바닥 감지 비활성화
643
643
  */
644
- SelectBoxController.prototype.disableScrollBottomDetection = function () {
644
+ UnifiedBoxController.prototype.disableScrollBottomDetection = function () {
645
645
  if (this.scrollBottomHandler) {
646
646
  var optionsList = this.config.dropdownElement.querySelector('.ncua-select-dropdown__options');
647
647
  if (optionsList) {
@@ -653,7 +653,7 @@ var SelectBoxController = /** @class */function () {
653
653
  /**
654
654
  * disabled 상태 설정
655
655
  */
656
- SelectBoxController.prototype.setDisabled = function (disabled) {
656
+ UnifiedBoxController.prototype.setDisabled = function (disabled) {
657
657
  this.config.disabled = disabled;
658
658
  // disabled로 설정될 때 드롭다운이 열려있으면 닫기
659
659
  if (disabled && this.isOpen) {
@@ -663,7 +663,7 @@ var SelectBoxController = /** @class */function () {
663
663
  /**
664
664
  * 정리
665
665
  */
666
- SelectBoxController.prototype.destroy = function () {
666
+ UnifiedBoxController.prototype.destroy = function () {
667
667
  this.config.model.removeListener(this);
668
668
  this.disableOutsideClick();
669
669
  this.disableScrollLock();
@@ -671,6 +671,6 @@ var SelectBoxController = /** @class */function () {
671
671
  this.disableScrollBottomDetection(); // 스크롤 감지 정리
672
672
  this.config.triggerElement.removeEventListener('keydown', this.keyDownHandler);
673
673
  };
674
- return SelectBoxController;
674
+ return UnifiedBoxController;
675
675
  }();
676
- export { SelectBoxController };
676
+ export { UnifiedBoxController };