@ncds/ui-admin 1.3.0 → 1.4.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 (368) hide show
  1. package/dist/cjs/assets/scripts/comboBox.js +262 -0
  2. package/dist/cjs/assets/scripts/datePicker.js +178 -60
  3. package/dist/cjs/assets/scripts/featuredIcon.js +95 -0
  4. package/dist/cjs/assets/scripts/fileInput/FileInput.js +183 -0
  5. package/dist/cjs/assets/scripts/fileInput/FileInputModel.js +246 -0
  6. package/dist/cjs/assets/scripts/fileInput/FileInputView.js +455 -0
  7. package/dist/cjs/assets/scripts/fileInput/const/classNames.js +35 -0
  8. package/dist/cjs/assets/scripts/fileInput/const/index.js +27 -0
  9. package/dist/cjs/assets/scripts/fileInput/const/types.js +13 -0
  10. package/dist/cjs/assets/scripts/fileInput/index.js +44 -0
  11. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +187 -0
  12. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +268 -0
  13. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +354 -0
  14. package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +41 -0
  15. package/dist/cjs/assets/scripts/imageFileInput/const/index.js +27 -0
  16. package/dist/cjs/assets/scripts/imageFileInput/const/types.js +13 -0
  17. package/dist/cjs/assets/scripts/imageFileInput/index.js +44 -0
  18. package/dist/cjs/assets/scripts/index.js +21 -1
  19. package/dist/cjs/assets/scripts/modal/Modal.js +116 -0
  20. package/dist/cjs/assets/scripts/modal/ModalActions.js +128 -0
  21. package/dist/cjs/assets/scripts/modal/ModalContent.js +46 -0
  22. package/dist/cjs/assets/scripts/modal/ModalHeader.js +115 -0
  23. package/dist/cjs/assets/scripts/modal/const/classNames.js +41 -0
  24. package/dist/cjs/assets/scripts/modal/const/index.js +27 -0
  25. package/dist/cjs/assets/scripts/modal/const/types.js +5 -0
  26. package/dist/cjs/assets/scripts/modal/index.js +61 -0
  27. package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +35 -0
  28. package/dist/cjs/assets/scripts/notification/FloatingNotification.js +180 -0
  29. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +120 -0
  30. package/dist/cjs/assets/scripts/notification/Notification.js +113 -0
  31. package/dist/cjs/assets/scripts/notification/const/classNames.js +36 -0
  32. package/dist/cjs/assets/scripts/notification/const/icons.js +45 -0
  33. package/dist/cjs/assets/scripts/notification/const/index.js +74 -0
  34. package/dist/cjs/assets/scripts/notification/const/sizes.js +48 -0
  35. package/dist/cjs/assets/scripts/notification/const/types.js +5 -0
  36. package/dist/cjs/assets/scripts/notification/index.js +84 -0
  37. package/dist/cjs/assets/scripts/notification/utils.js +92 -0
  38. package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +272 -0
  39. package/dist/cjs/assets/scripts/progress-bar/index.js +12 -0
  40. package/dist/cjs/assets/scripts/selectBox.js +319 -0
  41. package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +46 -0
  42. package/dist/cjs/assets/scripts/tag/Tag.js +268 -0
  43. package/dist/cjs/assets/scripts/tag/const/classNames.js +24 -0
  44. package/dist/cjs/assets/scripts/tag/const/index.js +38 -0
  45. package/dist/cjs/assets/scripts/tag/const/sizes.js +13 -0
  46. package/dist/cjs/assets/scripts/tag/const/types.js +5 -0
  47. package/dist/cjs/assets/scripts/tag/index.js +44 -0
  48. package/dist/cjs/assets/scripts/tooltip/Tooltip.js +380 -0
  49. package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +84 -0
  50. package/dist/cjs/assets/scripts/tooltip/const/classNames.js +29 -0
  51. package/dist/cjs/assets/scripts/tooltip/const/constants.js +56 -0
  52. package/dist/cjs/assets/scripts/tooltip/const/icons.js +15 -0
  53. package/dist/cjs/assets/scripts/tooltip/const/index.js +123 -0
  54. package/dist/cjs/assets/scripts/tooltip/const/templates.js +49 -0
  55. package/dist/cjs/assets/scripts/tooltip/const/types.js +5 -0
  56. package/dist/cjs/assets/scripts/tooltip/index.js +57 -0
  57. package/dist/cjs/assets/scripts/tooltip/utils.js +41 -0
  58. package/dist/cjs/assets/scripts/utils/selectbox/DOMRenderer.js +384 -0
  59. package/dist/cjs/assets/scripts/utils/selectbox/DropdownModel.js +361 -0
  60. package/dist/cjs/assets/scripts/utils/selectbox/SelectBoxController.js +681 -0
  61. package/dist/cjs/assets/scripts/utils/selectbox/UnifiedSelectBox.js +677 -0
  62. package/dist/cjs/constant/color.js +2 -0
  63. package/dist/cjs/src/components/button/Button.js +9 -35
  64. package/dist/cjs/src/components/button/ButtonGroup.js +9 -10
  65. package/dist/cjs/src/components/checkbox/Checkbox.js +20 -19
  66. package/dist/cjs/src/components/checkbox/CheckboxInput.js +22 -45
  67. package/dist/cjs/src/components/combobox/ComboBox.js +337 -0
  68. package/dist/cjs/src/components/combobox/index.js +12 -0
  69. package/dist/cjs/src/components/date-picker/CustomInput.js +52 -0
  70. package/dist/cjs/src/components/date-picker/DatePicker.js +86 -23
  71. package/dist/cjs/src/components/date-picker/RangeDatePicker.js +1 -1
  72. package/dist/cjs/src/components/{input → file-upload}/FileInput.js +17 -9
  73. package/dist/cjs/src/components/file-upload/index.js +16 -0
  74. package/dist/cjs/src/components/image-file-input/ImageFileInput.js +263 -0
  75. package/dist/cjs/src/components/image-file-input/components/ImagePreview.js +44 -0
  76. package/dist/cjs/src/components/image-file-input/index.js +16 -0
  77. package/dist/cjs/src/components/index.js +44 -0
  78. package/dist/cjs/src/components/input/InputBase.js +54 -10
  79. package/dist/cjs/src/components/input/Textarea.js +12 -20
  80. package/dist/cjs/src/components/input/index.js +0 -11
  81. package/dist/cjs/src/components/modal/Modal.js +7 -3
  82. package/dist/cjs/src/components/notification/FloatingNotification.js +34 -3
  83. package/dist/cjs/src/components/notification/FullWidthNotification.js +54 -5
  84. package/dist/cjs/src/components/pagination/NavButton.js +1 -13
  85. package/dist/cjs/src/components/pagination/Pagination.js +6 -20
  86. package/dist/cjs/src/components/progress-bar/ProgressBar.js +89 -20
  87. package/dist/cjs/src/components/progress-bar/components/SegmentBar.js +25 -0
  88. package/dist/cjs/src/components/progress-bar/components/SegmentLabels.js +74 -0
  89. package/dist/cjs/src/components/progress-bar/hooks/useProgressBar.js +119 -0
  90. package/dist/cjs/src/components/progress-bar/index.js +11 -0
  91. package/dist/cjs/src/components/progress-bar/types.js +5 -0
  92. package/dist/cjs/src/components/progress-bar/utils.js +31 -0
  93. package/dist/cjs/src/components/radio/Radio.js +5 -6
  94. package/dist/cjs/src/components/select/Select.js +7 -4
  95. package/dist/cjs/src/components/select-dropdown/SelectDropdown.js +146 -0
  96. package/dist/cjs/src/components/select-dropdown/index.js +12 -0
  97. package/dist/cjs/src/components/selectbox/SelectBox.js +283 -0
  98. package/dist/cjs/src/components/selectbox/index.js +12 -0
  99. package/dist/cjs/src/components/shared/hintText/HintText.js +1 -1
  100. package/dist/cjs/src/components/switch/Switch.js +123 -0
  101. package/dist/cjs/src/components/switch/index.js +12 -0
  102. package/dist/cjs/src/components/tab/HorizontalTab.js +8 -20
  103. package/dist/cjs/src/components/tab/TabButton.js +33 -16
  104. package/dist/cjs/src/components/tab/VerticalTab.js +15 -30
  105. package/dist/cjs/src/components/tag/Tag.js +92 -3
  106. package/dist/cjs/src/components/tooltip/Tooltip.js +125 -28
  107. package/dist/cjs/src/hooks/dropdown/index.js +47 -0
  108. package/dist/cjs/src/hooks/dropdown/useDropdown.js +109 -0
  109. package/dist/cjs/src/hooks/dropdown/useDropdownKeyboard.js +131 -0
  110. package/dist/cjs/src/hooks/dropdown/useDropdownPosition.js +27 -0
  111. package/dist/cjs/src/hooks/dropdown/useOutsideClick.js +33 -0
  112. package/dist/cjs/src/hooks/dropdown/useScrollLock.js +78 -0
  113. package/dist/cjs/src/hooks/dropdown/useWindowResize.js +52 -0
  114. package/dist/cjs/src/hooks/index.js +18 -1
  115. package/dist/cjs/src/types/dropdown/dropdown.js +5 -0
  116. package/dist/cjs/src/types/dropdown/index.js +27 -0
  117. package/dist/cjs/src/types/dropdown/option.js +5 -0
  118. package/dist/cjs/src/types/index.js +16 -0
  119. package/dist/cjs/src/utils/date-picker.js +37 -1
  120. package/dist/cjs/src/utils/dropdown/dropdownUtils.js +107 -0
  121. package/dist/cjs/src/utils/dropdown/index.js +27 -0
  122. package/dist/cjs/src/utils/dropdown/multiSelect.js +100 -0
  123. package/dist/cjs/src/utils/index.js +27 -0
  124. package/dist/esm/assets/scripts/comboBox.js +257 -0
  125. package/dist/esm/assets/scripts/datePicker.js +175 -59
  126. package/dist/esm/assets/scripts/featuredIcon.js +90 -0
  127. package/dist/esm/assets/scripts/fileInput/FileInput.js +178 -0
  128. package/dist/esm/assets/scripts/fileInput/FileInputModel.js +241 -0
  129. package/dist/esm/assets/scripts/fileInput/FileInputView.js +450 -0
  130. package/dist/esm/assets/scripts/fileInput/const/classNames.js +25 -0
  131. package/dist/esm/assets/scripts/fileInput/const/index.js +2 -0
  132. package/dist/esm/assets/scripts/fileInput/const/types.js +7 -0
  133. package/dist/esm/assets/scripts/fileInput/index.js +9 -0
  134. package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +182 -0
  135. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +263 -0
  136. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +349 -0
  137. package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +30 -0
  138. package/dist/esm/assets/scripts/imageFileInput/const/index.js +2 -0
  139. package/dist/esm/assets/scripts/imageFileInput/const/types.js +7 -0
  140. package/dist/esm/assets/scripts/imageFileInput/index.js +9 -0
  141. package/dist/esm/assets/scripts/index.js +21 -1
  142. package/dist/esm/assets/scripts/modal/Modal.js +110 -0
  143. package/dist/esm/assets/scripts/modal/ModalActions.js +123 -0
  144. package/dist/esm/assets/scripts/modal/ModalContent.js +41 -0
  145. package/dist/esm/assets/scripts/modal/ModalHeader.js +110 -0
  146. package/dist/esm/assets/scripts/modal/const/classNames.js +31 -0
  147. package/dist/esm/assets/scripts/modal/const/index.js +2 -0
  148. package/dist/esm/assets/scripts/modal/const/types.js +1 -0
  149. package/dist/esm/assets/scripts/modal/index.js +15 -0
  150. package/dist/esm/assets/scripts/modal/utils/contentUtils.js +28 -0
  151. package/dist/esm/assets/scripts/notification/FloatingNotification.js +176 -0
  152. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +115 -0
  153. package/dist/esm/assets/scripts/notification/Notification.js +108 -0
  154. package/dist/esm/assets/scripts/notification/const/classNames.js +30 -0
  155. package/dist/esm/assets/scripts/notification/const/icons.js +39 -0
  156. package/dist/esm/assets/scripts/notification/const/index.js +3 -0
  157. package/dist/esm/assets/scripts/notification/const/sizes.js +42 -0
  158. package/dist/esm/assets/scripts/notification/const/types.js +1 -0
  159. package/dist/esm/assets/scripts/notification/index.js +10 -0
  160. package/dist/esm/assets/scripts/notification/utils.js +79 -0
  161. package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +267 -0
  162. package/dist/esm/assets/scripts/progress-bar/index.js +1 -0
  163. package/dist/esm/assets/scripts/selectBox.js +314 -0
  164. package/dist/esm/assets/scripts/shared/ButtonCloseX.js +38 -0
  165. package/dist/esm/assets/scripts/tag/Tag.js +263 -0
  166. package/dist/esm/assets/scripts/tag/const/classNames.js +16 -0
  167. package/dist/esm/assets/scripts/tag/const/index.js +3 -0
  168. package/dist/esm/assets/scripts/tag/const/sizes.js +7 -0
  169. package/dist/esm/assets/scripts/tag/const/types.js +1 -0
  170. package/dist/esm/assets/scripts/tag/index.js +9 -0
  171. package/dist/esm/assets/scripts/tooltip/Tooltip.js +375 -0
  172. package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +79 -0
  173. package/dist/esm/assets/scripts/tooltip/const/classNames.js +23 -0
  174. package/dist/esm/assets/scripts/tooltip/const/constants.js +50 -0
  175. package/dist/esm/assets/scripts/tooltip/const/icons.js +9 -0
  176. package/dist/esm/assets/scripts/tooltip/const/index.js +4 -0
  177. package/dist/esm/assets/scripts/tooltip/const/templates.js +42 -0
  178. package/dist/esm/assets/scripts/tooltip/const/types.js +1 -0
  179. package/dist/esm/assets/scripts/tooltip/index.js +10 -0
  180. package/dist/esm/assets/scripts/tooltip/utils.js +35 -0
  181. package/dist/esm/assets/scripts/utils/selectbox/DOMRenderer.js +379 -0
  182. package/dist/esm/assets/scripts/utils/selectbox/DropdownModel.js +356 -0
  183. package/dist/esm/assets/scripts/utils/selectbox/SelectBoxController.js +676 -0
  184. package/dist/esm/assets/scripts/utils/selectbox/UnifiedSelectBox.js +672 -0
  185. package/dist/esm/constant/color.js +2 -0
  186. package/dist/esm/src/components/button/Button.js +10 -36
  187. package/dist/esm/src/components/button/ButtonGroup.js +9 -10
  188. package/dist/esm/src/components/checkbox/Checkbox.js +21 -19
  189. package/dist/esm/src/components/checkbox/CheckboxInput.js +24 -47
  190. package/dist/esm/src/components/combobox/ComboBox.js +330 -0
  191. package/dist/esm/src/components/combobox/index.js +1 -0
  192. package/dist/esm/src/components/date-picker/CustomInput.js +45 -0
  193. package/dist/esm/src/components/date-picker/DatePicker.js +87 -24
  194. package/dist/esm/src/components/date-picker/RangeDatePicker.js +1 -1
  195. package/dist/esm/src/components/{input → file-upload}/FileInput.js +17 -9
  196. package/dist/esm/src/components/file-upload/index.js +1 -0
  197. package/dist/esm/src/components/image-file-input/ImageFileInput.js +256 -0
  198. package/dist/esm/src/components/image-file-input/components/ImagePreview.js +37 -0
  199. package/dist/esm/src/components/image-file-input/index.js +1 -0
  200. package/dist/esm/src/components/index.js +4 -0
  201. package/dist/esm/src/components/input/InputBase.js +55 -11
  202. package/dist/esm/src/components/input/Textarea.js +12 -20
  203. package/dist/esm/src/components/input/index.js +1 -2
  204. package/dist/esm/src/components/modal/Modal.js +7 -3
  205. package/dist/esm/src/components/notification/FloatingNotification.js +35 -4
  206. package/dist/esm/src/components/notification/FullWidthNotification.js +55 -6
  207. package/dist/esm/src/components/pagination/NavButton.js +1 -13
  208. package/dist/esm/src/components/pagination/Pagination.js +6 -20
  209. package/dist/esm/src/components/progress-bar/ProgressBar.js +89 -20
  210. package/dist/esm/src/components/progress-bar/components/SegmentBar.js +18 -0
  211. package/dist/esm/src/components/progress-bar/components/SegmentLabels.js +66 -0
  212. package/dist/esm/src/components/progress-bar/hooks/useProgressBar.js +112 -0
  213. package/dist/esm/src/components/progress-bar/index.js +2 -1
  214. package/dist/esm/src/components/progress-bar/types.js +1 -0
  215. package/dist/esm/src/components/progress-bar/utils.js +22 -0
  216. package/dist/esm/src/components/radio/Radio.js +5 -5
  217. package/dist/esm/src/components/select/Select.js +7 -4
  218. package/dist/esm/src/components/select-dropdown/SelectDropdown.js +139 -0
  219. package/dist/esm/src/components/select-dropdown/index.js +1 -0
  220. package/dist/esm/src/components/selectbox/SelectBox.js +276 -0
  221. package/dist/esm/src/components/selectbox/index.js +1 -0
  222. package/dist/esm/src/components/shared/hintText/HintText.js +1 -1
  223. package/dist/esm/src/components/switch/Switch.js +116 -0
  224. package/dist/esm/src/components/switch/index.js +1 -0
  225. package/dist/esm/src/components/tab/HorizontalTab.js +7 -19
  226. package/dist/esm/src/components/tab/TabButton.js +34 -17
  227. package/dist/esm/src/components/tab/VerticalTab.js +15 -30
  228. package/dist/esm/src/components/tag/Tag.js +92 -3
  229. package/dist/esm/src/components/tooltip/Tooltip.js +125 -28
  230. package/dist/esm/src/hooks/dropdown/index.js +6 -0
  231. package/dist/esm/src/hooks/dropdown/useDropdown.js +102 -0
  232. package/dist/esm/src/hooks/dropdown/useDropdownKeyboard.js +124 -0
  233. package/dist/esm/src/hooks/dropdown/useDropdownPosition.js +20 -0
  234. package/dist/esm/src/hooks/dropdown/useOutsideClick.js +26 -0
  235. package/dist/esm/src/hooks/dropdown/useScrollLock.js +71 -0
  236. package/dist/esm/src/hooks/dropdown/useWindowResize.js +45 -0
  237. package/dist/esm/src/hooks/index.js +4 -1
  238. package/dist/esm/src/types/dropdown/dropdown.js +1 -0
  239. package/dist/esm/src/types/dropdown/index.js +2 -0
  240. package/dist/esm/src/types/dropdown/option.js +1 -0
  241. package/dist/esm/src/types/index.js +2 -0
  242. package/dist/esm/src/utils/date-picker.js +33 -1
  243. package/dist/esm/src/utils/dropdown/dropdownUtils.js +97 -0
  244. package/dist/esm/src/utils/dropdown/index.js +2 -0
  245. package/dist/esm/src/utils/dropdown/multiSelect.js +88 -0
  246. package/dist/esm/src/utils/index.js +4 -0
  247. package/dist/types/assets/scripts/comboBox.d.ts +79 -0
  248. package/dist/types/assets/scripts/datePicker.d.ts +16 -13
  249. package/dist/types/assets/scripts/featuredIcon.d.ts +23 -0
  250. package/dist/types/assets/scripts/fileInput/FileInput.d.ts +67 -0
  251. package/dist/types/assets/scripts/fileInput/FileInputModel.d.ts +70 -0
  252. package/dist/types/assets/scripts/fileInput/FileInputView.d.ts +77 -0
  253. package/dist/types/assets/scripts/fileInput/const/classNames.d.ts +17 -0
  254. package/dist/types/assets/scripts/fileInput/const/index.d.ts +3 -0
  255. package/dist/types/assets/scripts/fileInput/const/types.d.ts +132 -0
  256. package/dist/types/assets/scripts/fileInput/index.d.ts +4 -0
  257. package/dist/types/assets/scripts/imageFileInput/ImageFileInput.d.ts +64 -0
  258. package/dist/types/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +74 -0
  259. package/dist/types/assets/scripts/imageFileInput/ImageFileInputView.d.ts +80 -0
  260. package/dist/types/assets/scripts/imageFileInput/const/classNames.d.ts +20 -0
  261. package/dist/types/assets/scripts/imageFileInput/const/index.d.ts +3 -0
  262. package/dist/types/assets/scripts/imageFileInput/const/types.d.ts +126 -0
  263. package/dist/types/assets/scripts/imageFileInput/index.d.ts +4 -0
  264. package/dist/types/assets/scripts/index.d.ts +28 -2
  265. package/dist/types/assets/scripts/modal/Modal.d.ts +28 -0
  266. package/dist/types/assets/scripts/modal/ModalActions.d.ts +19 -0
  267. package/dist/types/assets/scripts/modal/ModalContent.d.ts +14 -0
  268. package/dist/types/assets/scripts/modal/ModalHeader.d.ts +16 -0
  269. package/dist/types/assets/scripts/modal/const/classNames.d.ts +23 -0
  270. package/dist/types/assets/scripts/modal/const/index.d.ts +3 -0
  271. package/dist/types/assets/scripts/modal/const/types.d.ts +62 -0
  272. package/dist/types/assets/scripts/modal/index.d.ts +8 -0
  273. package/dist/types/assets/scripts/modal/utils/contentUtils.d.ts +11 -0
  274. package/dist/types/assets/scripts/notification/FloatingNotification.d.ts +25 -0
  275. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +22 -0
  276. package/dist/types/assets/scripts/notification/Notification.d.ts +22 -0
  277. package/dist/types/assets/scripts/notification/const/classNames.d.ts +30 -0
  278. package/dist/types/assets/scripts/notification/const/icons.d.ts +26 -0
  279. package/dist/types/assets/scripts/notification/const/index.d.ts +5 -0
  280. package/dist/types/assets/scripts/notification/const/sizes.d.ts +28 -0
  281. package/dist/types/assets/scripts/notification/const/types.d.ts +19 -0
  282. package/dist/types/assets/scripts/notification/index.d.ts +7 -0
  283. package/dist/types/assets/scripts/notification/utils.d.ts +9 -0
  284. package/dist/types/assets/scripts/progress-bar/ProgressBar.d.ts +68 -0
  285. package/dist/types/assets/scripts/progress-bar/index.d.ts +2 -0
  286. package/dist/types/assets/scripts/selectBox.d.ts +77 -0
  287. package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +6 -0
  288. package/dist/types/assets/scripts/tag/Tag.d.ts +28 -0
  289. package/dist/types/assets/scripts/tag/const/classNames.d.ts +12 -0
  290. package/dist/types/assets/scripts/tag/const/index.d.ts +4 -0
  291. package/dist/types/assets/scripts/tag/const/sizes.d.ts +8 -0
  292. package/dist/types/assets/scripts/tag/const/types.d.ts +34 -0
  293. package/dist/types/assets/scripts/tag/index.d.ts +4 -0
  294. package/dist/types/assets/scripts/tooltip/Tooltip.d.ts +55 -0
  295. package/dist/types/assets/scripts/tooltip/TooltipLayerManager.d.ts +22 -0
  296. package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +18 -0
  297. package/dist/types/assets/scripts/tooltip/const/constants.d.ts +34 -0
  298. package/dist/types/assets/scripts/tooltip/const/icons.d.ts +5 -0
  299. package/dist/types/assets/scripts/tooltip/const/index.d.ts +6 -0
  300. package/dist/types/assets/scripts/tooltip/const/templates.d.ts +17 -0
  301. package/dist/types/assets/scripts/tooltip/const/types.d.ts +15 -0
  302. package/dist/types/assets/scripts/tooltip/index.d.ts +7 -0
  303. package/dist/types/assets/scripts/tooltip/utils.d.ts +3 -0
  304. package/dist/types/assets/scripts/utils/selectbox/DOMRenderer.d.ts +108 -0
  305. package/dist/types/assets/scripts/utils/selectbox/DropdownModel.d.ts +154 -0
  306. package/dist/types/assets/scripts/utils/selectbox/SelectBoxController.d.ts +171 -0
  307. package/dist/types/assets/scripts/utils/selectbox/UnifiedSelectBox.d.ts +80 -0
  308. package/dist/types/constant/color.d.ts +3 -1
  309. package/dist/types/src/components/button/Button.d.ts +14 -12
  310. package/dist/types/src/components/button/ButtonGroup.d.ts +4 -289
  311. package/dist/types/src/components/checkbox/Checkbox.d.ts +2 -3
  312. package/dist/types/src/components/combobox/ComboBox.d.ts +28 -0
  313. package/dist/types/src/components/combobox/index.d.ts +3 -0
  314. package/dist/types/src/components/date-picker/CustomInput.d.ts +12 -0
  315. package/dist/types/src/components/date-picker/DatePicker.d.ts +2 -0
  316. package/dist/types/src/components/{input → file-upload}/FileInput.d.ts +1 -1
  317. package/dist/types/src/components/file-upload/index.d.ts +2 -0
  318. package/dist/types/src/components/image-file-input/ImageFileInput.d.ts +78 -0
  319. package/dist/types/src/components/image-file-input/components/ImagePreview.d.ts +6 -0
  320. package/dist/types/src/components/image-file-input/index.d.ts +2 -0
  321. package/dist/types/src/components/index.d.ts +4 -0
  322. package/dist/types/src/components/input/InputBase.d.ts +2 -0
  323. package/dist/types/src/components/input/index.d.ts +0 -1
  324. package/dist/types/src/components/modal/Modal.d.ts +3 -2
  325. package/dist/types/src/components/notification/FloatingNotification.d.ts +5 -0
  326. package/dist/types/src/components/notification/FullWidthNotification.d.ts +15 -1
  327. package/dist/types/src/components/notification/Notification.d.ts +8 -2
  328. package/dist/types/src/components/pagination/NavButton.d.ts +1 -4
  329. package/dist/types/src/components/pagination/Pagination.d.ts +2 -13
  330. package/dist/types/src/components/progress-bar/ProgressBar.d.ts +2 -6
  331. package/dist/types/src/components/progress-bar/components/SegmentBar.d.ts +8 -0
  332. package/dist/types/src/components/progress-bar/components/SegmentLabels.d.ts +16 -0
  333. package/dist/types/src/components/progress-bar/hooks/useProgressBar.d.ts +14 -0
  334. package/dist/types/src/components/progress-bar/index.d.ts +1 -0
  335. package/dist/types/src/components/progress-bar/types.d.ts +16 -0
  336. package/dist/types/src/components/progress-bar/utils.d.ts +13 -0
  337. package/dist/types/src/components/radio/Radio.d.ts +2 -3
  338. package/dist/types/src/components/select/Select.d.ts +1 -4
  339. package/dist/types/src/components/select-dropdown/SelectDropdown.d.ts +28 -0
  340. package/dist/types/src/components/select-dropdown/index.d.ts +2 -0
  341. package/dist/types/src/components/selectbox/SelectBox.d.ts +25 -0
  342. package/dist/types/src/components/selectbox/index.d.ts +2 -0
  343. package/dist/types/src/components/switch/Switch.d.ts +22 -0
  344. package/dist/types/src/components/switch/index.d.ts +3 -0
  345. package/dist/types/src/components/tab/HorizontalTab.d.ts +1 -2
  346. package/dist/types/src/components/tab/TabButton.d.ts +9 -12
  347. package/dist/types/src/components/tab/VerticalTab.d.ts +2 -2
  348. package/dist/types/src/components/tag/Tag.d.ts +3 -1
  349. package/dist/types/src/components/tooltip/Tooltip.d.ts +4 -2
  350. package/dist/types/src/hooks/dropdown/index.d.ts +7 -0
  351. package/dist/types/src/hooks/dropdown/useDropdown.d.ts +30 -0
  352. package/dist/types/src/hooks/dropdown/useDropdownKeyboard.d.ts +11 -0
  353. package/dist/types/src/hooks/dropdown/useDropdownPosition.d.ts +10 -0
  354. package/dist/types/src/hooks/dropdown/useOutsideClick.d.ts +6 -0
  355. package/dist/types/src/hooks/dropdown/useScrollLock.d.ts +5 -0
  356. package/dist/types/src/hooks/dropdown/useWindowResize.d.ts +8 -0
  357. package/dist/types/src/hooks/index.d.ts +2 -1
  358. package/dist/types/src/types/dropdown/dropdown.d.ts +40 -0
  359. package/dist/types/src/types/dropdown/index.d.ts +3 -0
  360. package/dist/types/src/types/dropdown/option.d.ts +20 -0
  361. package/dist/types/src/types/index.d.ts +2 -0
  362. package/dist/types/src/utils/date-picker.d.ts +3 -0
  363. package/dist/types/src/utils/dropdown/dropdownUtils.d.ts +18 -0
  364. package/dist/types/src/utils/dropdown/index.d.ts +3 -0
  365. package/dist/types/src/utils/dropdown/multiSelect.d.ts +32 -0
  366. package/dist/types/src/utils/index.d.ts +3 -0
  367. package/dist/ui-admin/assets/styles/style.css +1744 -358
  368. package/package.json +8 -4
@@ -0,0 +1,2 @@
1
+ export { ProgressBar, type ProgressBarOptions, type ProgressLabel, type ProgressSegment } from './ProgressBar';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,77 @@
1
+ import { OptionValue } from '../../src/types';
2
+ import { DropdownOption } from './utils/selectbox/DropdownModel';
3
+ export interface SelectBoxOptionType {
4
+ id: string | number;
5
+ text: string;
6
+ disabled?: boolean;
7
+ }
8
+ export interface SelectBoxConfig {
9
+ options?: DropdownOption[] | SelectBoxOptionType[];
10
+ placeholder?: string;
11
+ value?: OptionValue;
12
+ onChange?: (value: OptionValue) => void;
13
+ maxHeight?: number;
14
+ disabled?: boolean;
15
+ type?: 'default' | 'simple';
16
+ size?: 'xs' | 'sm' | 'md';
17
+ multiple?: boolean;
18
+ showFooterButtons?: boolean;
19
+ onEdit?: () => void;
20
+ onSelectAll?: () => void;
21
+ onComplete?: () => void;
22
+ }
23
+ export declare class SelectBox {
24
+ private element;
25
+ private unifiedSelectBox;
26
+ private targetSelect;
27
+ private isInitializing;
28
+ private lastValue;
29
+ constructor(element: HTMLElement, config?: SelectBoxConfig);
30
+ /**
31
+ * JavaScript 옵션을 DropdownOption 형식으로 변환
32
+ */
33
+ private normalizeOptions;
34
+ /**
35
+ * 타겟 select 요소 찾기
36
+ */
37
+ private findTargetSelect;
38
+ /**
39
+ * HTML select에서 옵션 파싱
40
+ */
41
+ private parseOptionsFromHTML;
42
+ /**
43
+ * HTML에서 속성 파싱
44
+ */
45
+ private parseAttributesFromHTML;
46
+ /**
47
+ * ID로부터 실제 HTML select의 value 값을 가져오기
48
+ */
49
+ private getRealValueFromId;
50
+ /**
51
+ * 실제 HTML select의 value 값으로부터 내부 ID를 가져오기
52
+ */
53
+ private getIdFromRealValue;
54
+ /**
55
+ * 타겟 select와 동기화 (Single 모드)
56
+ */
57
+ private syncWithTargetSelect;
58
+ /**
59
+ * 타겟 select와 동기화 (Multiple 모드)
60
+ */
61
+ private syncWithTargetSelectMultiple;
62
+ getValues(): DropdownOption[];
63
+ setValues(value: DropdownOption[]): void;
64
+ getOptions(): DropdownOption[];
65
+ updateOptions(newOptions: DropdownOption[]): void;
66
+ setDisabled(disabled: boolean): void;
67
+ open(): void;
68
+ close(): void;
69
+ focus(): void;
70
+ destroy(): void;
71
+ selectAll(): void;
72
+ deselectAll(): void;
73
+ getSelectedCount(): number;
74
+ isMultiple(): boolean;
75
+ toggleSelectAll(): void;
76
+ }
77
+ //# sourceMappingURL=selectBox.d.ts.map
@@ -0,0 +1,6 @@
1
+ export type ButtonCloseXSize = 'xs' | 'sm' | 'md' | 'lg';
2
+ export type ButtonCloseXTheme = 'dark' | 'light';
3
+ export declare const SVG_SIZE: Record<ButtonCloseXSize, number>;
4
+ export declare const X_CLOSE_SVG: (size: string) => string;
5
+ export declare function ButtonCloseX(size: ButtonCloseXSize, theme?: ButtonCloseXTheme, additionalClasses?: string, ariaLabel?: string, onClick?: () => void): string;
6
+ //# sourceMappingURL=ButtonCloseX.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { BaseTagOptions } from './const/types';
2
+ export declare class Tag {
3
+ private element;
4
+ private options;
5
+ private isTooltipVisible;
6
+ private calculatedPosition;
7
+ private tooltipElement;
8
+ constructor(options: BaseTagOptions);
9
+ private createElement;
10
+ private getTagClasses;
11
+ private shouldTruncate;
12
+ private getTruncatedText;
13
+ private createSideSlot;
14
+ private createIconSVG;
15
+ private createCloseButton;
16
+ private createTooltip;
17
+ private removeTooltip;
18
+ private handleMouseEnter;
19
+ private handleMouseLeave;
20
+ getElement(): HTMLSpanElement;
21
+ isTooltipShown(): boolean;
22
+ setText(text: string): void;
23
+ setCount(count: string | undefined): void;
24
+ private updateTextElement;
25
+ private updateCountElement;
26
+ destroy(): void;
27
+ }
28
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +1,12 @@
1
+ export declare const TAG_CLASS_NAMES: {
2
+ tag: string;
3
+ text: string;
4
+ count: string;
5
+ close: string;
6
+ tooltip: string;
7
+ tooltipContent: string;
8
+ truncated: string;
9
+ };
10
+ export declare const getTagSizeClassName: (size: string) => string;
11
+ export declare const getTooltipPositionClassName: (position: string) => string;
12
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export * from './classNames';
3
+ export * from './sizes';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ export declare const iconSize: {
2
+ readonly sm: 14;
3
+ readonly md: 16;
4
+ };
5
+ export declare const MARGIN = 10;
6
+ export declare const DEFAULT_TOOLTIP_WIDTH = 200;
7
+ export declare const DEFAULT_TOOLTIP_HEIGHT = 60;
8
+ //# sourceMappingURL=sizes.d.ts.map
@@ -0,0 +1,34 @@
1
+ import { CalculatedPosition } from '../../../../src/components/tag/Tag';
2
+ export type TagSize = 'sm' | 'md';
3
+ export type { CalculatedPosition };
4
+ export interface SideSlotIcon {
5
+ type: 'icon';
6
+ icon: string;
7
+ color?: string;
8
+ }
9
+ export interface SideSlotDot {
10
+ type: 'dot';
11
+ color?: string;
12
+ size?: 'sm' | 'md';
13
+ }
14
+ export interface SideSlotCustom {
15
+ type: 'custom';
16
+ children: HTMLElement;
17
+ }
18
+ export type SideSlotType = SideSlotIcon | SideSlotDot | SideSlotCustom;
19
+ export interface BaseTagOptions {
20
+ size?: TagSize;
21
+ icon?: SideSlotType;
22
+ text: string;
23
+ count?: string;
24
+ close?: boolean;
25
+ onButtonClick?: (event: MouseEvent) => void;
26
+ maxLength?: number;
27
+ }
28
+ export interface RequiredTagProps extends Required<Pick<BaseTagOptions, 'text' | 'size' | 'maxLength'>> {
29
+ icon?: SideSlotType;
30
+ count?: string;
31
+ close?: boolean;
32
+ onButtonClick?: (event: MouseEvent) => void;
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { Tag } from './Tag';
2
+ export * from './const/types';
3
+ export * from './const/classNames';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,55 @@
1
+ import { TooltipOptions } from './const';
2
+ /**
3
+ * Tooltip 클래스
4
+ * 툴팁 패널 패턴을 사용하여 툴팁을 생성합니다.
5
+ * 툴팁 패널 패턴은 바깥 컨테이너(항상 pointer-events:none) + 실제 패널(클릭 허용) 패턴을 사용합니다.
6
+ * 레이어 1개 아래에 여러개의 패널과 툴팁이 생성되어 화면에 삽입됩니다.
7
+ * 자동 위치조정 ( 공간이 부족하다면 상하좌우를 조절하는 기능 - 기본값: top )을 사용합니다.
8
+ * Shadow DOM 지원
9
+ */
10
+ export declare class Tooltip {
11
+ private element;
12
+ private iconElement;
13
+ private layerManager;
14
+ private panelId;
15
+ private panel;
16
+ private calculatedPosition;
17
+ private isVisible;
18
+ private isMeasuring;
19
+ private isForceHidden;
20
+ private options;
21
+ private boundMouseEnter;
22
+ private boundMouseLeave;
23
+ private boundResizeScroll;
24
+ private boundPanelClick;
25
+ constructor(options?: TooltipOptions);
26
+ private createElement;
27
+ private buildAnchorClassName;
28
+ private buildPanelClassName;
29
+ private renderContentHTML;
30
+ private renderCloseButtonHTML;
31
+ /** 전역 레이어에 패널 생성 */
32
+ private createLayerAndPanel;
33
+ private setupShadowContent;
34
+ private bindEvents;
35
+ private enableMouseEvents;
36
+ private disableMouseEvents;
37
+ private handleMouseEnter;
38
+ private handleMouseLeave;
39
+ private handleResizeScroll;
40
+ private handlePanelClick;
41
+ showTooltip(): void;
42
+ hideTooltip(): void;
43
+ private updateTooltipPosition;
44
+ private updatePanelClass;
45
+ getElement(): HTMLElement;
46
+ updateOptions(newOptions: Partial<TooltipOptions>): void;
47
+ destroy(): void;
48
+ static create(options?: TooltipOptions): Tooltip;
49
+ static createShort(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
50
+ static createLong(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
51
+ static createAuto(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
52
+ static createAutoLong(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
53
+ static createAutoLongWithShadowDOM(title: string, content: string, options?: Partial<TooltipOptions>): Tooltip;
54
+ }
55
+ //# sourceMappingURL=Tooltip.d.ts.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 툴팁 레이어 관리자
3
+ * 전역 레이어 하나를 사용하여 모든 툴팁 패널을 관리합니다.
4
+ */
5
+ export declare class TooltipLayerManager {
6
+ private static instance;
7
+ private layer;
8
+ private panels;
9
+ private nextId;
10
+ private maxZIndex;
11
+ private constructor();
12
+ static getInstance(): TooltipLayerManager;
13
+ private createGlobalLayer;
14
+ createPanel(zIndex?: number): {
15
+ id: string;
16
+ panel: HTMLElement;
17
+ };
18
+ removePanel(id: string): void;
19
+ getPanel(id: string): HTMLElement | null;
20
+ destroy(): void;
21
+ }
22
+ //# sourceMappingURL=TooltipLayerManager.d.ts.map
@@ -0,0 +1,18 @@
1
+ export declare const CLASS_NAMES: {
2
+ TOOLTIP: string;
3
+ TOOLTIP_ICON: string;
4
+ TOOLTIP_BG: string;
5
+ TOOLTIP_TITLE: string;
6
+ TOOLTIP_CONTENT: string;
7
+ TOOLTIP_CLOSE_BUTTON: string;
8
+ TOOLTIP_HIDDEN_ARROW: string;
9
+ TOOLTIP_STROKE: string;
10
+ TOOLTIP_AUTO: string;
11
+ TOOLTIP_BG_VISIBLE: string;
12
+ TOOLTIP_BG_MEASURING: string;
13
+ TOOLTIP_BG_FORCE_HIDDEN: string;
14
+ TOOLTIP_GLOBAL_LAYER: string;
15
+ TOOLTIP_PANEL: string;
16
+ BUTTON_CLOSE_X: string;
17
+ };
18
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1,34 @@
1
+ import { TooltipOptions } from './types';
2
+ export declare const MARGIN = 10;
3
+ export declare const DEFAULT_TOOLTIP_WIDTH = 200;
4
+ export declare const DEFAULT_TOOLTIP_HEIGHT = 60;
5
+ export declare const POSITION_PRIORITY: readonly ["bottom", "top", "right", "left"];
6
+ export declare const TOOLTIP_OFFSET = 8;
7
+ export declare const VIEWPORT_MARGIN = 8;
8
+ export declare const ICON_SIZES: {
9
+ readonly sm: 14;
10
+ readonly md: 16;
11
+ };
12
+ export declare const TRANSITION_DURATION = "0.18s";
13
+ export declare const OFFSCREEN_POSITION = "-99999px";
14
+ export declare const OPACITY: {
15
+ readonly HIDDEN: "0";
16
+ readonly VISIBLE: "1";
17
+ };
18
+ export declare const POSITION: {
19
+ readonly INITIAL: "0px";
20
+ readonly OFFSCREEN: "-99999px";
21
+ };
22
+ export declare const Z_INDEX: {
23
+ readonly TOOLTIP_LAYER: 2000;
24
+ };
25
+ export declare const EVENT_OPTIONS: {
26
+ readonly PASSIVE: {
27
+ readonly passive: true;
28
+ };
29
+ readonly ONCE: {
30
+ readonly once: true;
31
+ };
32
+ };
33
+ export declare const TOOLTIP_DEFAULT_VALUE: TooltipOptions;
34
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,5 @@
1
+ export declare const SVG_ICONS: {
2
+ readonly 'help-circle-stroke': (size: number) => string;
3
+ readonly 'help-circle-fill': (size: number) => string;
4
+ };
5
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1,6 @@
1
+ export type { TooltipOptions, CalculatedPosition } from './types';
2
+ export { SVG_ICONS } from './icons';
3
+ export { CLASS_NAMES } from './classNames';
4
+ export { MARGIN, DEFAULT_TOOLTIP_WIDTH, DEFAULT_TOOLTIP_HEIGHT, POSITION_PRIORITY, TOOLTIP_DEFAULT_VALUE, TOOLTIP_OFFSET, VIEWPORT_MARGIN, ICON_SIZES, TRANSITION_DURATION, OFFSCREEN_POSITION, OPACITY, POSITION, Z_INDEX, EVENT_OPTIONS, } from './constants';
5
+ export { CSS_TEMPLATES, HTML_TEMPLATES, FALLBACK_ICON_SVG } from './templates';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 툴팁 관련 CSS 및 HTML 템플릿
3
+ */
4
+ export declare const CSS_TEMPLATES: {
5
+ readonly LAYER_CONTAINER: (zIndex: number) => string;
6
+ readonly TOOLTIP_PANEL: (zIndex: number) => string;
7
+ readonly ANCHOR_WRAPPER: "\n display: inline-flex;\n vertical-align: middle;\n margin: 0 4px;\n ";
8
+ readonly SHADOW_DOM_HOST: "\n :host { \n all: unset; \n display: block; \n font-family: system-ui; \n color: black; \n }\n ";
9
+ };
10
+ export declare const HTML_TEMPLATES: {
11
+ readonly ICON_WRAPPER: (className: string, iconSvg: string) => string;
12
+ readonly TOOLTIP_TITLE: (className: string, title: string) => string;
13
+ readonly TOOLTIP_CONTENT: (className: string, content: string) => string;
14
+ readonly TOOLTIP_CONTENT_SHADOW: (className: string) => string;
15
+ };
16
+ export declare const FALLBACK_ICON_SVG: (size: number) => string;
17
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1,15 @@
1
+ export interface TooltipOptions {
2
+ tooltipType?: 'white' | 'black';
3
+ iconType?: 'stroke' | 'fill';
4
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'auto';
5
+ size?: 'sm' | 'md';
6
+ hideArrow?: boolean;
7
+ title?: string;
8
+ content?: string;
9
+ type?: 'long' | 'short';
10
+ zIndex?: number;
11
+ useShadowDOM?: boolean;
12
+ className?: string;
13
+ }
14
+ export type CalculatedPosition = 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { Tooltip } from './Tooltip';
2
+ export { Tooltip } from './Tooltip';
3
+ export type { TooltipOptions, CalculatedPosition } from './const';
4
+ export { calculateOptimalPosition } from './utils';
5
+ export { SVG_ICONS, MARGIN, DEFAULT_TOOLTIP_WIDTH, DEFAULT_TOOLTIP_HEIGHT, POSITION_PRIORITY } from './const';
6
+ export default Tooltip;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { CalculatedPosition } from './const';
2
+ export declare function calculateOptimalPosition(triggerElement: HTMLElement, tooltipElement: HTMLElement, preferredPosition?: string): CalculatedPosition;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,108 @@
1
+ export interface RenderableOption {
2
+ id: string | number;
3
+ label: string;
4
+ disabled?: boolean;
5
+ selected?: boolean;
6
+ focused?: boolean;
7
+ }
8
+ export interface DropdownRenderConfig {
9
+ maxHeight: number;
10
+ size: 'xs' | 'sm' | 'md';
11
+ listboxId: string;
12
+ noResultsText?: string;
13
+ }
14
+ export interface OptionElementData {
15
+ element: HTMLLIElement;
16
+ option: RenderableOption;
17
+ index: number;
18
+ }
19
+ export declare class DOMRenderer {
20
+ private optionElementCache;
21
+ /**
22
+ * 드롭다운 컨테이너 생성 (구조만)
23
+ */
24
+ createDropdownStructure(config: DropdownRenderConfig): {
25
+ dropdown: HTMLDivElement;
26
+ content: HTMLDivElement;
27
+ optionsList: HTMLUListElement;
28
+ };
29
+ /**
30
+ * 단일 옵션 엘리먼트 생성 (재사용 가능)
31
+ */
32
+ createOptionElement(option: RenderableOption, index: number, config: DropdownRenderConfig): HTMLLIElement;
33
+ /**
34
+ * 옵션 엘리먼트 상태 업데이트 (DOM 조작 최소화)
35
+ */
36
+ updateOptionElement(element: HTMLLIElement, option: RenderableOption, index: number, config: DropdownRenderConfig): void;
37
+ /**
38
+ * "결과 없음" 엘리먼트 생성
39
+ */
40
+ createNoResultsElement(text?: string): HTMLLIElement;
41
+ /**
42
+ * 옵션 리스트 효율적 업데이트 (Differential Rendering)
43
+ */
44
+ updateOptionsList(container: HTMLUListElement, newOptions: RenderableOption[], config: DropdownRenderConfig, showNoResults?: boolean): HTMLLIElement[];
45
+ /**
46
+ * 컨테이너 자식 엘리먼트 효율적 업데이트
47
+ */
48
+ private updateContainerChildren;
49
+ /**
50
+ * 클래스 토글 (변경이 필요한 경우에만)
51
+ */
52
+ private toggleClass;
53
+ /**
54
+ * 입력 필드 생성 (InputFieldUtils에서 이동)
55
+ */
56
+ createInputField(config: {
57
+ placeholder?: string;
58
+ disabled?: boolean;
59
+ size?: 'xs' | 'sm' | 'md';
60
+ showSearchIcon?: boolean;
61
+ onInput?: (value: string) => void;
62
+ onClick?: () => void;
63
+ onShowAll?: () => void;
64
+ onClear?: () => void;
65
+ }): {
66
+ container: HTMLElement;
67
+ input: HTMLInputElement;
68
+ setValue: (value: string) => void;
69
+ focus: () => void;
70
+ blur: () => void;
71
+ };
72
+ /**
73
+ * 캐시 정리
74
+ */
75
+ clearCache(): void;
76
+ /**
77
+ * 특정 옵션 캐시 제거
78
+ */
79
+ removeCachedOption(optionId: string | number): void;
80
+ /**
81
+ * 공통 DOM 생성 유틸리티
82
+ */
83
+ static createElementWithClass(tagName: string, className: string, textContent?: string): HTMLElement;
84
+ /**
85
+ * 버튼 엘리먼트 생성
86
+ */
87
+ static createButton(className: string, textContent: string, onClick?: (e: Event) => void): HTMLButtonElement;
88
+ /**
89
+ * SVG 아이콘 생성
90
+ */
91
+ static createSvgIcon(iconName: string, size?: number): SVGElement;
92
+ /**
93
+ * 푸터 생성
94
+ */
95
+ createFooter(config: {
96
+ multiple?: boolean;
97
+ showFooterButtons?: boolean;
98
+ onSelectAll?: () => void;
99
+ onEdit?: () => void;
100
+ onComplete?: () => void;
101
+ selectAllButtonText?: string;
102
+ }): HTMLElement;
103
+ /**
104
+ * 전체 선택 버튼 텍스트 업데이트
105
+ */
106
+ updateSelectAllButtonText(footerElement: HTMLElement, text: string): void;
107
+ }
108
+ //# sourceMappingURL=DOMRenderer.d.ts.map
@@ -0,0 +1,154 @@
1
+ export interface DropdownOption {
2
+ id: string | number;
3
+ label: string;
4
+ disabled?: boolean;
5
+ originalValue?: string;
6
+ }
7
+ export interface DropdownState {
8
+ isOpen: boolean;
9
+ focusedIndex: number;
10
+ selectedValues: (string | number)[];
11
+ searchValue: string;
12
+ showAllItems: boolean;
13
+ options: DropdownOption[];
14
+ filteredOptions: DropdownOption[];
15
+ }
16
+ export interface StateChangeListener {
17
+ onStateChange(newState: DropdownState, changedFields: string[]): void;
18
+ }
19
+ /**
20
+ * 드롭다운 상태 관리 모델
21
+ * Observer Pattern을 통한 상태 변경 알림
22
+ */
23
+ export declare class DropdownModel {
24
+ private state;
25
+ private listeners;
26
+ protected multiple: boolean;
27
+ private isComboBox;
28
+ constructor(initialOptions: DropdownOption[], multiple?: boolean);
29
+ /**
30
+ * 상태 변경 리스너 등록
31
+ */
32
+ addListener(listener: StateChangeListener): void;
33
+ /**
34
+ * 상태 변경 리스너 제거
35
+ */
36
+ removeListener(listener: StateChangeListener): void;
37
+ /**
38
+ * 상태 변경 알림
39
+ */
40
+ private notifyListeners;
41
+ /**
42
+ * ComboBox 타입 설정
43
+ */
44
+ setComboBoxMode(isComboBox: boolean): void;
45
+ /**
46
+ * 드롭다운 열기/닫기
47
+ */
48
+ setOpen(isOpen: boolean): void;
49
+ /**
50
+ * 포커스 인덱스 설정
51
+ */
52
+ setFocusedIndex(index: number): void;
53
+ /**
54
+ * 검색어 설정 및 필터링
55
+ */
56
+ setSearchValue(searchValue: string): void;
57
+ /**
58
+ * 전체 보기 토글
59
+ */
60
+ setShowAllItems(showAll: boolean): void;
61
+ /**
62
+ * 선택된 값들을 직접 설정 (protected)
63
+ */
64
+ protected setSelectedValues(values: (string | number)[]): void;
65
+ /**
66
+ * 옵션 선택/해제
67
+ */
68
+ toggleOption(optionId: string | number): void;
69
+ /**
70
+ * 옵션 업데이트
71
+ */
72
+ updateOptions(newOptions: DropdownOption[]): void;
73
+ /**
74
+ * 필터링된 옵션 업데이트
75
+ */
76
+ private updateFilteredOptions;
77
+ /**
78
+ * 현재 상태 반환 (읽기 전용)
79
+ */
80
+ getState(): Readonly<DropdownState>;
81
+ /**
82
+ * 다중 선택 모드 여부 반환
83
+ */
84
+ isMultiple(): boolean;
85
+ /**
86
+ * 선택된 옵션들 반환
87
+ */
88
+ getSelectedOptions(): DropdownOption[];
89
+ /**
90
+ * 옵션이 선택되었는지 확인
91
+ */
92
+ isOptionSelected(optionId: string | number): boolean;
93
+ /**
94
+ * 전체 선택 상태인지 확인 (isAllItemsSelected와 동일)
95
+ */
96
+ isAllSelected(): boolean;
97
+ /**
98
+ * 상태 리셋
99
+ */
100
+ reset(): void;
101
+ /**
102
+ * 전체 선택/해제 토글 (MultiSelectUtils에서 이동)
103
+ */
104
+ toggleSelectAll(): void;
105
+ /**
106
+ * 전체 선택 버튼 텍스트 반환 (MultiSelectUtils에서 이동)
107
+ */
108
+ getSelectAllButtonText(): string;
109
+ /**
110
+ * 모든 항목이 선택되었는지 확인 (MultiSelectUtils에서 이동)
111
+ */
112
+ isAllItemsSelected(): boolean;
113
+ /**
114
+ * 검색 및 필터링 업데이트 (SearchFilterUtils에서 이동)
115
+ */
116
+ updateSearchAndFilter(searchValue: string, showAllItems?: boolean): void;
117
+ /**
118
+ * 드롭다운이 열릴 수 있는지 확인 (ComboBox용)
119
+ */
120
+ canOpenDropdown(): boolean;
121
+ /**
122
+ * 검색 결과가 없는지 확인
123
+ */
124
+ hasNoResults(): boolean;
125
+ /**
126
+ * 상태 동기화를 위한 외부 접근 메서드들 (DropdownUtils에서 이동)
127
+ */
128
+ syncSetIsOpen(isOpen: boolean): void;
129
+ syncSetFocusedIndex(index: number): void;
130
+ syncGetIsOpen(): boolean;
131
+ syncGetFocusedIndex(): number;
132
+ syncGetSelectedValues(): (string | number)[];
133
+ /**
134
+ * 선택값 업데이트 (SelectBoxModel에서 이동)
135
+ */
136
+ updateSelectedValues(values: (string | number)[]): void;
137
+ /**
138
+ * 값 설정 (API 호환성)
139
+ */
140
+ setValue(value: string | number | (string | number)[]): void;
141
+ /**
142
+ * 값 가져오기 (API 호환성)
143
+ */
144
+ getValue(): string | number | (string | number)[];
145
+ /**
146
+ * 입력 초기화 (ComboBox용)
147
+ */
148
+ clearInput(): void;
149
+ /**
150
+ * 디버그 정보 (개발용)
151
+ */
152
+ getDebugInfo(): any;
153
+ }
154
+ //# sourceMappingURL=DropdownModel.d.ts.map