@ncds/ui-admin 1.8.1 → 1.8.2

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 (438) hide show
  1. package/dist/cjs/src/components/badge/index.js +11 -0
  2. package/dist/cjs/src/components/date-picker/index.js +11 -0
  3. package/dist/cjs/src/components/image-file-input/components/index.js +16 -0
  4. package/dist/cjs/src/components/image-file-input/index.js +11 -0
  5. package/dist/cjs/src/components/progress-bar/components/index.js +27 -0
  6. package/dist/cjs/src/components/progress-bar/hooks/index.js +16 -0
  7. package/dist/cjs/src/components/progress-bar/index.js +33 -0
  8. package/dist/cjs/src/components/select/Select.js +0 -1
  9. package/dist/cjs/src/components/select-dropdown/index.js +11 -7
  10. package/dist/cjs/src/components/switch/index.js +11 -7
  11. package/dist/cjs/src/components/tooltip/Tooltip.js +170 -104
  12. package/dist/cjs/src/hooks/dropdown/index.js +61 -37
  13. package/dist/cjs/src/hooks/index.js +31 -25
  14. package/dist/cjs/vitest.config.js +13 -0
  15. package/dist/esm/src/components/badge/index.js +2 -1
  16. package/dist/esm/src/components/date-picker/index.js +1 -0
  17. package/dist/esm/src/components/empty-state/EmptyState.js +2 -3
  18. package/dist/esm/src/components/image-file-input/components/index.js +1 -0
  19. package/dist/esm/src/components/image-file-input/index.js +2 -1
  20. package/dist/esm/src/components/progress-bar/components/index.js +2 -0
  21. package/dist/esm/src/components/progress-bar/hooks/index.js +1 -0
  22. package/dist/esm/src/components/progress-bar/index.js +4 -1
  23. package/dist/esm/src/components/select/Select.js +0 -1
  24. package/dist/esm/src/components/select-dropdown/index.js +1 -1
  25. package/dist/esm/src/components/switch/index.js +1 -1
  26. package/dist/esm/src/components/tag/Tag.js +2 -3
  27. package/dist/esm/src/components/tooltip/Tooltip.js +172 -106
  28. package/dist/esm/src/hooks/dropdown/index.js +6 -6
  29. package/dist/esm/src/hooks/index.js +3 -3
  30. package/dist/esm/src/types/component-meta.js +2 -0
  31. package/dist/esm/vitest.config.js +7 -0
  32. package/dist/temp/src/components/badge/index.d.ts +1 -0
  33. package/dist/temp/src/components/badge/index.js +1 -0
  34. package/dist/temp/src/components/date-picker/index.d.ts +1 -0
  35. package/dist/temp/src/components/date-picker/index.js +1 -0
  36. package/dist/temp/src/components/empty-state/EmptyState.d.ts +3 -5
  37. package/dist/temp/src/components/empty-state/EmptyState.js +1 -2
  38. package/dist/temp/src/components/image-file-input/components/index.d.ts +1 -0
  39. package/dist/temp/src/components/image-file-input/components/index.js +1 -0
  40. package/dist/temp/src/components/image-file-input/index.d.ts +1 -0
  41. package/dist/temp/src/components/image-file-input/index.js +1 -0
  42. package/dist/temp/src/components/progress-bar/components/index.d.ts +2 -0
  43. package/dist/temp/src/components/progress-bar/components/index.js +2 -0
  44. package/dist/temp/src/components/progress-bar/hooks/index.d.ts +1 -0
  45. package/dist/temp/src/components/progress-bar/hooks/index.js +1 -0
  46. package/dist/temp/src/components/progress-bar/index.d.ts +3 -0
  47. package/dist/temp/src/components/progress-bar/index.js +3 -0
  48. package/dist/temp/src/components/select/Select.js +1 -1
  49. package/dist/temp/src/components/select-dropdown/index.d.ts +1 -1
  50. package/dist/temp/src/components/select-dropdown/index.js +1 -1
  51. package/dist/temp/src/components/spinner/Spinner.d.ts +1 -2
  52. package/dist/temp/src/components/switch/index.d.ts +1 -2
  53. package/dist/temp/src/components/switch/index.js +1 -1
  54. package/dist/temp/src/components/tag/Tag.d.ts +3 -5
  55. package/dist/temp/src/components/tag/Tag.js +1 -2
  56. package/dist/temp/src/components/tooltip/Tooltip.d.ts +4 -2
  57. package/dist/temp/src/components/tooltip/Tooltip.js +126 -68
  58. package/dist/temp/src/hooks/dropdown/index.d.ts +6 -6
  59. package/dist/temp/src/hooks/dropdown/index.js +6 -6
  60. package/dist/temp/src/hooks/index.d.ts +3 -3
  61. package/dist/temp/src/hooks/index.js +3 -3
  62. package/dist/temp/src/types/component-meta.d.ts +26 -0
  63. package/dist/temp/src/types/component-meta.js +2 -0
  64. package/dist/temp/src/types/dropdown/option.d.ts +2 -4
  65. package/dist/temp/src/types/side-slot.d.ts +9 -1
  66. package/dist/temp/vitest.config.d.ts +2 -0
  67. package/dist/temp/vitest.config.js +7 -0
  68. package/dist/types/src/components/badge/index.d.ts +1 -0
  69. package/dist/types/src/components/date-picker/index.d.ts +1 -0
  70. package/dist/types/src/components/empty-state/EmptyState.d.ts +3 -5
  71. package/dist/types/src/components/image-file-input/components/index.d.ts +1 -0
  72. package/dist/types/src/components/image-file-input/index.d.ts +1 -0
  73. package/dist/types/src/components/progress-bar/components/index.d.ts +2 -0
  74. package/dist/types/src/components/progress-bar/hooks/index.d.ts +1 -0
  75. package/dist/types/src/components/progress-bar/index.d.ts +3 -0
  76. package/dist/types/src/components/select-dropdown/index.d.ts +1 -1
  77. package/dist/types/src/components/spinner/Spinner.d.ts +1 -2
  78. package/dist/types/src/components/switch/index.d.ts +1 -2
  79. package/dist/types/src/components/tag/Tag.d.ts +3 -5
  80. package/dist/types/src/components/tooltip/Tooltip.d.ts +4 -2
  81. package/dist/types/src/hooks/dropdown/index.d.ts +6 -6
  82. package/dist/types/src/hooks/index.d.ts +3 -3
  83. package/dist/types/src/types/component-meta.d.ts +26 -0
  84. package/dist/types/src/types/dropdown/option.d.ts +2 -4
  85. package/dist/types/src/types/side-slot.d.ts +9 -1
  86. package/dist/types/vitest.config.d.ts +2 -0
  87. package/dist/ui-admin/assets/styles/style.css +18 -7
  88. package/package.json +6 -1
  89. package/dist/cjs/assets/scripts/baseBox.js +0 -146
  90. package/dist/cjs/assets/scripts/comboBox.js +0 -137
  91. package/dist/cjs/assets/scripts/datePicker.js +0 -671
  92. package/dist/cjs/assets/scripts/featuredIcon.js +0 -87
  93. package/dist/cjs/assets/scripts/fileInput/const/classNames.js +0 -25
  94. package/dist/cjs/assets/scripts/fileInput/const/index.js +0 -27
  95. package/dist/cjs/assets/scripts/fileInput/const/types.js +0 -13
  96. package/dist/cjs/assets/scripts/fileInput/fileInput.js +0 -78
  97. package/dist/cjs/assets/scripts/fileInput/fileInputModel.js +0 -53
  98. package/dist/cjs/assets/scripts/fileInput/fileInputView.js +0 -152
  99. package/dist/cjs/assets/scripts/fileInput/index.js +0 -44
  100. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +0 -184
  101. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -222
  102. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +0 -356
  103. package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +0 -31
  104. package/dist/cjs/assets/scripts/imageFileInput/const/index.js +0 -27
  105. package/dist/cjs/assets/scripts/imageFileInput/const/types.js +0 -13
  106. package/dist/cjs/assets/scripts/imageFileInput/index.js +0 -44
  107. package/dist/cjs/assets/scripts/index.js +0 -32
  108. package/dist/cjs/assets/scripts/modal/Modal.js +0 -104
  109. package/dist/cjs/assets/scripts/modal/ModalActions.js +0 -116
  110. package/dist/cjs/assets/scripts/modal/ModalContent.js +0 -46
  111. package/dist/cjs/assets/scripts/modal/ModalHeader.js +0 -104
  112. package/dist/cjs/assets/scripts/modal/const/classNames.js +0 -33
  113. package/dist/cjs/assets/scripts/modal/const/index.js +0 -27
  114. package/dist/cjs/assets/scripts/modal/index.js +0 -61
  115. package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +0 -35
  116. package/dist/cjs/assets/scripts/notification/FloatingNotification.js +0 -178
  117. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +0 -132
  118. package/dist/cjs/assets/scripts/notification/MessageNotification.js +0 -159
  119. package/dist/cjs/assets/scripts/notification/Notification.js +0 -101
  120. package/dist/cjs/assets/scripts/notification/const/classNames.js +0 -50
  121. package/dist/cjs/assets/scripts/notification/const/icons.js +0 -31
  122. package/dist/cjs/assets/scripts/notification/const/index.js +0 -87
  123. package/dist/cjs/assets/scripts/notification/const/sizes.js +0 -46
  124. package/dist/cjs/assets/scripts/notification/const/types.js +0 -14
  125. package/dist/cjs/assets/scripts/notification/index.js +0 -92
  126. package/dist/cjs/assets/scripts/notification/utils.js +0 -97
  127. package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +0 -271
  128. package/dist/cjs/assets/scripts/progress-bar/index.js +0 -12
  129. package/dist/cjs/assets/scripts/selectBox.js +0 -169
  130. package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +0 -45
  131. package/dist/cjs/assets/scripts/tab.js +0 -40
  132. package/dist/cjs/assets/scripts/table/Table.js +0 -377
  133. package/dist/cjs/assets/scripts/table/const/classNames.js +0 -33
  134. package/dist/cjs/assets/scripts/table/const/index.js +0 -27
  135. package/dist/cjs/assets/scripts/table/const/types.js +0 -5
  136. package/dist/cjs/assets/scripts/table/index.js +0 -43
  137. package/dist/cjs/assets/scripts/tag/Tag.js +0 -261
  138. package/dist/cjs/assets/scripts/tag/const/classNames.js +0 -20
  139. package/dist/cjs/assets/scripts/tag/const/index.js +0 -38
  140. package/dist/cjs/assets/scripts/tag/const/sizes.js +0 -13
  141. package/dist/cjs/assets/scripts/tag/const/types.js +0 -5
  142. package/dist/cjs/assets/scripts/tag/index.js +0 -44
  143. package/dist/cjs/assets/scripts/tooltip/Tooltip.js +0 -353
  144. package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +0 -82
  145. package/dist/cjs/assets/scripts/tooltip/const/classNames.js +0 -29
  146. package/dist/cjs/assets/scripts/tooltip/const/constants.js +0 -56
  147. package/dist/cjs/assets/scripts/tooltip/const/icons.js +0 -15
  148. package/dist/cjs/assets/scripts/tooltip/const/index.js +0 -123
  149. package/dist/cjs/assets/scripts/tooltip/const/templates.js +0 -66
  150. package/dist/cjs/assets/scripts/tooltip/const/types.js +0 -5
  151. package/dist/cjs/assets/scripts/tooltip/index.js +0 -57
  152. package/dist/cjs/assets/scripts/tooltip/utils.js +0 -40
  153. package/dist/cjs/assets/scripts/utils/debounce.js +0 -32
  154. package/dist/cjs/assets/scripts/utils/unifiedBox/domRenderer.js +0 -370
  155. package/dist/cjs/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -285
  156. package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -622
  157. package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -473
  158. package/dist/esm/assets/scripts/baseBox.js +0 -139
  159. package/dist/esm/assets/scripts/comboBox.js +0 -130
  160. package/dist/esm/assets/scripts/datePicker.js +0 -663
  161. package/dist/esm/assets/scripts/featuredIcon.js +0 -80
  162. package/dist/esm/assets/scripts/fileInput/const/classNames.js +0 -16
  163. package/dist/esm/assets/scripts/fileInput/const/index.js +0 -2
  164. package/dist/esm/assets/scripts/fileInput/const/types.js +0 -7
  165. package/dist/esm/assets/scripts/fileInput/fileInput.js +0 -71
  166. package/dist/esm/assets/scripts/fileInput/fileInputModel.js +0 -46
  167. package/dist/esm/assets/scripts/fileInput/fileInputView.js +0 -145
  168. package/dist/esm/assets/scripts/fileInput/index.js +0 -9
  169. package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +0 -177
  170. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -215
  171. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +0 -349
  172. package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +0 -20
  173. package/dist/esm/assets/scripts/imageFileInput/const/index.js +0 -2
  174. package/dist/esm/assets/scripts/imageFileInput/const/types.js +0 -7
  175. package/dist/esm/assets/scripts/imageFileInput/index.js +0 -9
  176. package/dist/esm/assets/scripts/index.js +0 -30
  177. package/dist/esm/assets/scripts/modal/Modal.js +0 -98
  178. package/dist/esm/assets/scripts/modal/ModalActions.js +0 -109
  179. package/dist/esm/assets/scripts/modal/ModalContent.js +0 -39
  180. package/dist/esm/assets/scripts/modal/ModalHeader.js +0 -97
  181. package/dist/esm/assets/scripts/modal/const/classNames.js +0 -23
  182. package/dist/esm/assets/scripts/modal/const/index.js +0 -2
  183. package/dist/esm/assets/scripts/modal/const/types.js +0 -1
  184. package/dist/esm/assets/scripts/modal/index.js +0 -15
  185. package/dist/esm/assets/scripts/modal/utils/contentUtils.js +0 -28
  186. package/dist/esm/assets/scripts/notification/FloatingNotification.js +0 -172
  187. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +0 -125
  188. package/dist/esm/assets/scripts/notification/MessageNotification.js +0 -152
  189. package/dist/esm/assets/scripts/notification/Notification.js +0 -94
  190. package/dist/esm/assets/scripts/notification/const/classNames.js +0 -44
  191. package/dist/esm/assets/scripts/notification/const/icons.js +0 -25
  192. package/dist/esm/assets/scripts/notification/const/index.js +0 -4
  193. package/dist/esm/assets/scripts/notification/const/sizes.js +0 -40
  194. package/dist/esm/assets/scripts/notification/const/types.js +0 -8
  195. package/dist/esm/assets/scripts/notification/index.js +0 -11
  196. package/dist/esm/assets/scripts/notification/utils.js +0 -84
  197. package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +0 -264
  198. package/dist/esm/assets/scripts/progress-bar/index.js +0 -1
  199. package/dist/esm/assets/scripts/selectBox.js +0 -162
  200. package/dist/esm/assets/scripts/shared/ButtonCloseX.js +0 -37
  201. package/dist/esm/assets/scripts/tab.js +0 -33
  202. package/dist/esm/assets/scripts/table/Table.js +0 -370
  203. package/dist/esm/assets/scripts/table/const/classNames.js +0 -27
  204. package/dist/esm/assets/scripts/table/const/index.js +0 -2
  205. package/dist/esm/assets/scripts/table/const/types.js +0 -1
  206. package/dist/esm/assets/scripts/table/index.js +0 -8
  207. package/dist/esm/assets/scripts/tag/Tag.js +0 -254
  208. package/dist/esm/assets/scripts/tag/const/classNames.js +0 -12
  209. package/dist/esm/assets/scripts/tag/const/index.js +0 -3
  210. package/dist/esm/assets/scripts/tag/const/sizes.js +0 -7
  211. package/dist/esm/assets/scripts/tag/const/types.js +0 -1
  212. package/dist/esm/assets/scripts/tag/index.js +0 -9
  213. package/dist/esm/assets/scripts/tooltip/Tooltip.js +0 -346
  214. package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +0 -75
  215. package/dist/esm/assets/scripts/tooltip/const/classNames.js +0 -23
  216. package/dist/esm/assets/scripts/tooltip/const/constants.js +0 -50
  217. package/dist/esm/assets/scripts/tooltip/const/icons.js +0 -9
  218. package/dist/esm/assets/scripts/tooltip/const/index.js +0 -4
  219. package/dist/esm/assets/scripts/tooltip/const/templates.js +0 -59
  220. package/dist/esm/assets/scripts/tooltip/const/types.js +0 -1
  221. package/dist/esm/assets/scripts/tooltip/index.js +0 -10
  222. package/dist/esm/assets/scripts/tooltip/utils.js +0 -34
  223. package/dist/esm/assets/scripts/utils/debounce.js +0 -26
  224. package/dist/esm/assets/scripts/utils/unifiedBox/domRenderer.js +0 -363
  225. package/dist/esm/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -279
  226. package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -615
  227. package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -466
  228. package/dist/temp/assets/scripts/baseBox.d.ts +0 -55
  229. package/dist/temp/assets/scripts/baseBox.js +0 -140
  230. package/dist/temp/assets/scripts/comboBox.d.ts +0 -60
  231. package/dist/temp/assets/scripts/comboBox.js +0 -132
  232. package/dist/temp/assets/scripts/datePicker.d.ts +0 -86
  233. package/dist/temp/assets/scripts/datePicker.js +0 -699
  234. package/dist/temp/assets/scripts/featuredIcon.d.ts +0 -22
  235. package/dist/temp/assets/scripts/featuredIcon.js +0 -79
  236. package/dist/temp/assets/scripts/fileInput/const/classNames.d.ts +0 -15
  237. package/dist/temp/assets/scripts/fileInput/const/classNames.js +0 -16
  238. package/dist/temp/assets/scripts/fileInput/const/index.d.ts +0 -2
  239. package/dist/temp/assets/scripts/fileInput/const/index.js +0 -2
  240. package/dist/temp/assets/scripts/fileInput/const/types.d.ts +0 -88
  241. package/dist/temp/assets/scripts/fileInput/const/types.js +0 -7
  242. package/dist/temp/assets/scripts/fileInput/fileInput.d.ts +0 -13
  243. package/dist/temp/assets/scripts/fileInput/fileInput.js +0 -71
  244. package/dist/temp/assets/scripts/fileInput/fileInputModel.d.ts +0 -12
  245. package/dist/temp/assets/scripts/fileInput/fileInputModel.js +0 -37
  246. package/dist/temp/assets/scripts/fileInput/fileInputView.d.ts +0 -42
  247. package/dist/temp/assets/scripts/fileInput/fileInputView.js +0 -145
  248. package/dist/temp/assets/scripts/fileInput/index.d.ts +0 -3
  249. package/dist/temp/assets/scripts/fileInput/index.js +0 -9
  250. package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -63
  251. package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.js +0 -180
  252. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -73
  253. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -214
  254. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -79
  255. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.js +0 -350
  256. package/dist/temp/assets/scripts/imageFileInput/const/classNames.d.ts +0 -19
  257. package/dist/temp/assets/scripts/imageFileInput/const/classNames.js +0 -20
  258. package/dist/temp/assets/scripts/imageFileInput/const/index.d.ts +0 -2
  259. package/dist/temp/assets/scripts/imageFileInput/const/index.js +0 -2
  260. package/dist/temp/assets/scripts/imageFileInput/const/types.d.ts +0 -125
  261. package/dist/temp/assets/scripts/imageFileInput/const/types.js +0 -7
  262. package/dist/temp/assets/scripts/imageFileInput/index.d.ts +0 -3
  263. package/dist/temp/assets/scripts/imageFileInput/index.js +0 -9
  264. package/dist/temp/assets/scripts/index.d.ts +0 -34
  265. package/dist/temp/assets/scripts/index.js +0 -30
  266. package/dist/temp/assets/scripts/modal/Modal.d.ts +0 -27
  267. package/dist/temp/assets/scripts/modal/Modal.js +0 -100
  268. package/dist/temp/assets/scripts/modal/ModalActions.d.ts +0 -18
  269. package/dist/temp/assets/scripts/modal/ModalActions.js +0 -117
  270. package/dist/temp/assets/scripts/modal/ModalContent.d.ts +0 -13
  271. package/dist/temp/assets/scripts/modal/ModalContent.js +0 -39
  272. package/dist/temp/assets/scripts/modal/ModalHeader.d.ts +0 -15
  273. package/dist/temp/assets/scripts/modal/ModalHeader.js +0 -96
  274. package/dist/temp/assets/scripts/modal/const/classNames.d.ts +0 -22
  275. package/dist/temp/assets/scripts/modal/const/classNames.js +0 -23
  276. package/dist/temp/assets/scripts/modal/const/index.d.ts +0 -2
  277. package/dist/temp/assets/scripts/modal/const/index.js +0 -2
  278. package/dist/temp/assets/scripts/modal/const/types.d.ts +0 -61
  279. package/dist/temp/assets/scripts/modal/const/types.js +0 -1
  280. package/dist/temp/assets/scripts/modal/index.d.ts +0 -7
  281. package/dist/temp/assets/scripts/modal/index.js +0 -15
  282. package/dist/temp/assets/scripts/modal/utils/contentUtils.d.ts +0 -10
  283. package/dist/temp/assets/scripts/modal/utils/contentUtils.js +0 -29
  284. package/dist/temp/assets/scripts/notification/FloatingNotification.d.ts +0 -24
  285. package/dist/temp/assets/scripts/notification/FloatingNotification.js +0 -157
  286. package/dist/temp/assets/scripts/notification/FullWidthNotification.d.ts +0 -21
  287. package/dist/temp/assets/scripts/notification/FullWidthNotification.js +0 -110
  288. package/dist/temp/assets/scripts/notification/MessageNotification.d.ts +0 -22
  289. package/dist/temp/assets/scripts/notification/MessageNotification.js +0 -140
  290. package/dist/temp/assets/scripts/notification/Notification.d.ts +0 -21
  291. package/dist/temp/assets/scripts/notification/Notification.js +0 -94
  292. package/dist/temp/assets/scripts/notification/const/classNames.d.ts +0 -43
  293. package/dist/temp/assets/scripts/notification/const/classNames.js +0 -44
  294. package/dist/temp/assets/scripts/notification/const/icons.d.ts +0 -25
  295. package/dist/temp/assets/scripts/notification/const/icons.js +0 -25
  296. package/dist/temp/assets/scripts/notification/const/index.d.ts +0 -5
  297. package/dist/temp/assets/scripts/notification/const/index.js +0 -4
  298. package/dist/temp/assets/scripts/notification/const/sizes.d.ts +0 -32
  299. package/dist/temp/assets/scripts/notification/const/sizes.js +0 -40
  300. package/dist/temp/assets/scripts/notification/const/types.d.ts +0 -19
  301. package/dist/temp/assets/scripts/notification/const/types.js +0 -8
  302. package/dist/temp/assets/scripts/notification/index.d.ts +0 -7
  303. package/dist/temp/assets/scripts/notification/index.js +0 -11
  304. package/dist/temp/assets/scripts/notification/utils.d.ts +0 -8
  305. package/dist/temp/assets/scripts/notification/utils.js +0 -89
  306. package/dist/temp/assets/scripts/progress-bar/ProgressBar.d.ts +0 -67
  307. package/dist/temp/assets/scripts/progress-bar/ProgressBar.js +0 -263
  308. package/dist/temp/assets/scripts/progress-bar/index.d.ts +0 -1
  309. package/dist/temp/assets/scripts/progress-bar/index.js +0 -1
  310. package/dist/temp/assets/scripts/selectBox.d.ts +0 -50
  311. package/dist/temp/assets/scripts/selectBox.js +0 -170
  312. package/dist/temp/assets/scripts/shared/ButtonCloseX.d.ts +0 -5
  313. package/dist/temp/assets/scripts/shared/ButtonCloseX.js +0 -33
  314. package/dist/temp/assets/scripts/tab.d.ts +0 -7
  315. package/dist/temp/assets/scripts/tab.js +0 -33
  316. package/dist/temp/assets/scripts/table/Table.d.ts +0 -41
  317. package/dist/temp/assets/scripts/table/Table.js +0 -378
  318. package/dist/temp/assets/scripts/table/const/classNames.d.ts +0 -27
  319. package/dist/temp/assets/scripts/table/const/classNames.js +0 -27
  320. package/dist/temp/assets/scripts/table/const/index.d.ts +0 -2
  321. package/dist/temp/assets/scripts/table/const/index.js +0 -2
  322. package/dist/temp/assets/scripts/table/const/types.d.ts +0 -23
  323. package/dist/temp/assets/scripts/table/const/types.js +0 -1
  324. package/dist/temp/assets/scripts/table/index.d.ts +0 -3
  325. package/dist/temp/assets/scripts/table/index.js +0 -8
  326. package/dist/temp/assets/scripts/tag/Tag.d.ts +0 -27
  327. package/dist/temp/assets/scripts/tag/Tag.js +0 -259
  328. package/dist/temp/assets/scripts/tag/const/classNames.d.ts +0 -11
  329. package/dist/temp/assets/scripts/tag/const/classNames.js +0 -12
  330. package/dist/temp/assets/scripts/tag/const/index.d.ts +0 -3
  331. package/dist/temp/assets/scripts/tag/const/index.js +0 -3
  332. package/dist/temp/assets/scripts/tag/const/sizes.d.ts +0 -7
  333. package/dist/temp/assets/scripts/tag/const/sizes.js +0 -7
  334. package/dist/temp/assets/scripts/tag/const/types.d.ts +0 -33
  335. package/dist/temp/assets/scripts/tag/const/types.js +0 -1
  336. package/dist/temp/assets/scripts/tag/index.d.ts +0 -3
  337. package/dist/temp/assets/scripts/tag/index.js +0 -9
  338. package/dist/temp/assets/scripts/tooltip/Tooltip.d.ts +0 -54
  339. package/dist/temp/assets/scripts/tooltip/Tooltip.js +0 -335
  340. package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -21
  341. package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.js +0 -71
  342. package/dist/temp/assets/scripts/tooltip/const/classNames.d.ts +0 -17
  343. package/dist/temp/assets/scripts/tooltip/const/classNames.js +0 -23
  344. package/dist/temp/assets/scripts/tooltip/const/constants.d.ts +0 -33
  345. package/dist/temp/assets/scripts/tooltip/const/constants.js +0 -46
  346. package/dist/temp/assets/scripts/tooltip/const/icons.d.ts +0 -4
  347. package/dist/temp/assets/scripts/tooltip/const/icons.js +0 -9
  348. package/dist/temp/assets/scripts/tooltip/const/index.d.ts +0 -5
  349. package/dist/temp/assets/scripts/tooltip/const/index.js +0 -4
  350. package/dist/temp/assets/scripts/tooltip/const/templates.d.ts +0 -16
  351. package/dist/temp/assets/scripts/tooltip/const/templates.js +0 -59
  352. package/dist/temp/assets/scripts/tooltip/const/types.d.ts +0 -14
  353. package/dist/temp/assets/scripts/tooltip/const/types.js +0 -1
  354. package/dist/temp/assets/scripts/tooltip/index.d.ts +0 -6
  355. package/dist/temp/assets/scripts/tooltip/index.js +0 -10
  356. package/dist/temp/assets/scripts/tooltip/utils.d.ts +0 -2
  357. package/dist/temp/assets/scripts/tooltip/utils.js +0 -33
  358. package/dist/temp/assets/scripts/utils/debounce.d.ts +0 -8
  359. package/dist/temp/assets/scripts/utils/debounce.js +0 -23
  360. package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.d.ts +0 -107
  361. package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.js +0 -367
  362. package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.d.ts +0 -142
  363. package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -286
  364. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.d.ts +0 -156
  365. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -604
  366. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.d.ts +0 -95
  367. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -482
  368. package/dist/types/assets/scripts/baseBox.d.ts +0 -55
  369. package/dist/types/assets/scripts/comboBox.d.ts +0 -60
  370. package/dist/types/assets/scripts/datePicker.d.ts +0 -86
  371. package/dist/types/assets/scripts/featuredIcon.d.ts +0 -22
  372. package/dist/types/assets/scripts/fileInput/const/classNames.d.ts +0 -15
  373. package/dist/types/assets/scripts/fileInput/const/index.d.ts +0 -2
  374. package/dist/types/assets/scripts/fileInput/const/types.d.ts +0 -88
  375. package/dist/types/assets/scripts/fileInput/fileInput.d.ts +0 -13
  376. package/dist/types/assets/scripts/fileInput/fileInputModel.d.ts +0 -12
  377. package/dist/types/assets/scripts/fileInput/fileInputView.d.ts +0 -42
  378. package/dist/types/assets/scripts/fileInput/index.d.ts +0 -3
  379. package/dist/types/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -63
  380. package/dist/types/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -73
  381. package/dist/types/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -79
  382. package/dist/types/assets/scripts/imageFileInput/const/classNames.d.ts +0 -19
  383. package/dist/types/assets/scripts/imageFileInput/const/index.d.ts +0 -2
  384. package/dist/types/assets/scripts/imageFileInput/const/types.d.ts +0 -125
  385. package/dist/types/assets/scripts/imageFileInput/index.d.ts +0 -3
  386. package/dist/types/assets/scripts/index.d.ts +0 -34
  387. package/dist/types/assets/scripts/modal/Modal.d.ts +0 -27
  388. package/dist/types/assets/scripts/modal/ModalActions.d.ts +0 -18
  389. package/dist/types/assets/scripts/modal/ModalContent.d.ts +0 -13
  390. package/dist/types/assets/scripts/modal/ModalHeader.d.ts +0 -15
  391. package/dist/types/assets/scripts/modal/const/classNames.d.ts +0 -22
  392. package/dist/types/assets/scripts/modal/const/index.d.ts +0 -2
  393. package/dist/types/assets/scripts/modal/const/types.d.ts +0 -61
  394. package/dist/types/assets/scripts/modal/index.d.ts +0 -7
  395. package/dist/types/assets/scripts/modal/utils/contentUtils.d.ts +0 -10
  396. package/dist/types/assets/scripts/notification/FloatingNotification.d.ts +0 -24
  397. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +0 -21
  398. package/dist/types/assets/scripts/notification/MessageNotification.d.ts +0 -22
  399. package/dist/types/assets/scripts/notification/Notification.d.ts +0 -21
  400. package/dist/types/assets/scripts/notification/const/classNames.d.ts +0 -43
  401. package/dist/types/assets/scripts/notification/const/icons.d.ts +0 -25
  402. package/dist/types/assets/scripts/notification/const/index.d.ts +0 -5
  403. package/dist/types/assets/scripts/notification/const/sizes.d.ts +0 -32
  404. package/dist/types/assets/scripts/notification/const/types.d.ts +0 -19
  405. package/dist/types/assets/scripts/notification/index.d.ts +0 -7
  406. package/dist/types/assets/scripts/notification/utils.d.ts +0 -8
  407. package/dist/types/assets/scripts/progress-bar/ProgressBar.d.ts +0 -67
  408. package/dist/types/assets/scripts/progress-bar/index.d.ts +0 -1
  409. package/dist/types/assets/scripts/selectBox.d.ts +0 -50
  410. package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +0 -5
  411. package/dist/types/assets/scripts/tab.d.ts +0 -7
  412. package/dist/types/assets/scripts/table/Table.d.ts +0 -41
  413. package/dist/types/assets/scripts/table/const/classNames.d.ts +0 -27
  414. package/dist/types/assets/scripts/table/const/index.d.ts +0 -2
  415. package/dist/types/assets/scripts/table/const/types.d.ts +0 -23
  416. package/dist/types/assets/scripts/table/index.d.ts +0 -3
  417. package/dist/types/assets/scripts/tag/Tag.d.ts +0 -27
  418. package/dist/types/assets/scripts/tag/const/classNames.d.ts +0 -11
  419. package/dist/types/assets/scripts/tag/const/index.d.ts +0 -3
  420. package/dist/types/assets/scripts/tag/const/sizes.d.ts +0 -7
  421. package/dist/types/assets/scripts/tag/const/types.d.ts +0 -33
  422. package/dist/types/assets/scripts/tag/index.d.ts +0 -3
  423. package/dist/types/assets/scripts/tooltip/Tooltip.d.ts +0 -54
  424. package/dist/types/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -21
  425. package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +0 -17
  426. package/dist/types/assets/scripts/tooltip/const/constants.d.ts +0 -33
  427. package/dist/types/assets/scripts/tooltip/const/icons.d.ts +0 -4
  428. package/dist/types/assets/scripts/tooltip/const/index.d.ts +0 -5
  429. package/dist/types/assets/scripts/tooltip/const/templates.d.ts +0 -16
  430. package/dist/types/assets/scripts/tooltip/const/types.d.ts +0 -14
  431. package/dist/types/assets/scripts/tooltip/index.d.ts +0 -6
  432. package/dist/types/assets/scripts/tooltip/utils.d.ts +0 -2
  433. package/dist/types/assets/scripts/utils/debounce.d.ts +0 -8
  434. package/dist/types/assets/scripts/utils/unifiedBox/domRenderer.d.ts +0 -107
  435. package/dist/types/assets/scripts/utils/unifiedBox/dropdownModel.d.ts +0 -142
  436. package/dist/types/assets/scripts/utils/unifiedBox/unifiedBoxController.d.ts +0 -156
  437. package/dist/types/assets/scripts/utils/unifiedBox/unifiedBoxManager.d.ts +0 -95
  438. /package/dist/cjs/{assets/scripts/modal/const/types.js → src/types/component-meta.js} +0 -0
@@ -3,33 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _exportNames = {
7
- useCallbackRef: true,
8
- useMediaQuery: true,
9
- useMergeRefs: true
10
- };
11
- Object.defineProperty(exports, "useCallbackRef", {
12
- enumerable: true,
13
- get: function () {
14
- return _useCallbackRef.useCallbackRef;
15
- }
16
- });
17
- Object.defineProperty(exports, "useMediaQuery", {
18
- enumerable: true,
19
- get: function () {
20
- return _useMediaQuery.useMediaQuery;
21
- }
22
- });
23
- Object.defineProperty(exports, "useMergeRefs", {
24
- enumerable: true,
25
- get: function () {
26
- return _useMergeRefs.useMergeRefs;
27
- }
28
- });
29
6
  var _dropdown = require("./dropdown");
30
7
  Object.keys(_dropdown).forEach(function (key) {
31
8
  if (key === "default" || key === "__esModule") return;
32
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
33
9
  if (key in exports && exports[key] === _dropdown[key]) return;
34
10
  Object.defineProperty(exports, key, {
35
11
  enumerable: true,
@@ -39,5 +15,35 @@ Object.keys(_dropdown).forEach(function (key) {
39
15
  });
40
16
  });
41
17
  var _useCallbackRef = require("./useCallbackRef");
18
+ Object.keys(_useCallbackRef).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _useCallbackRef[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _useCallbackRef[key];
25
+ }
26
+ });
27
+ });
42
28
  var _useMediaQuery = require("./useMediaQuery");
43
- var _useMergeRefs = require("./useMergeRefs");
29
+ Object.keys(_useMediaQuery).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _useMediaQuery[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _useMediaQuery[key];
36
+ }
37
+ });
38
+ });
39
+ var _useMergeRefs = require("./useMergeRefs");
40
+ Object.keys(_useMergeRefs).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _useMergeRefs[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _useMergeRefs[key];
47
+ }
48
+ });
49
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _config = require("vitest/config");
8
+ var _default = exports.default = (0, _config.defineConfig)({
9
+ test: {
10
+ include: ['scripts/**/__tests__/**/*.test.ts'],
11
+ environment: 'node'
12
+ }
13
+ });
@@ -1 +1,2 @@
1
- export * from './Badge';
1
+ export * from './Badge';
2
+ export * from './utils';
@@ -1,2 +1,3 @@
1
1
  export * from './DatePicker';
2
+ export * from './CustomInput';
2
3
  export * from './utils';
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from '../button/Button';
3
- const EmptyState = _ref => {
3
+ export const EmptyState = _ref => {
4
4
  let {
5
5
  title,
6
6
  description,
@@ -31,5 +31,4 @@ const EmptyState = _ref => {
31
31
  })
32
32
  })]
33
33
  });
34
- };
35
- export { EmptyState };
34
+ };
@@ -0,0 +1 @@
1
+ export * from './ImagePreview';
@@ -1 +1,2 @@
1
- export * from './ImageFileInput';
1
+ export * from './ImageFileInput';
2
+ export * from './components';
@@ -0,0 +1,2 @@
1
+ export * from './SegmentBar';
2
+ export * from './SegmentLabels';
@@ -0,0 +1 @@
1
+ export * from './useProgressBar';
@@ -1,2 +1,5 @@
1
1
  export * from './ProgressBar';
2
- export * from './types';
2
+ export * from './components';
3
+ export * from './hooks';
4
+ export * from './types';
5
+ export * from './utils';
@@ -36,7 +36,6 @@ export const Select = /*#__PURE__*/forwardRef((_ref, ref) => {
36
36
  ...props,
37
37
  children: [placeholder && _jsx("option", {
38
38
  value: "",
39
- selected: true,
40
39
  disabled: disabledPlaceholder,
41
40
  children: placeholder
42
41
  }), optionItems?.map(item => _jsx("option", {
@@ -1 +1 @@
1
- export { SelectDropdown } from './SelectDropdown';
1
+ export * from './SelectDropdown';
@@ -1 +1 @@
1
- export { Switch } from './Switch';
1
+ export * from './Switch';
@@ -41,7 +41,7 @@ const calculateOptimalPosition = (triggerElement, tooltipElement) => {
41
41
  const fallbackPosition = hasTopSpace ? 'top-right' : 'bottom-right';
42
42
  return fallbackPosition;
43
43
  };
44
- const Tag = _ref => {
44
+ export const Tag = _ref => {
45
45
  let {
46
46
  size = 'sm',
47
47
  icon,
@@ -135,5 +135,4 @@ const Tag = _ref => {
135
135
  })
136
136
  })]
137
137
  });
138
- };
139
- export { Tag };
138
+ };
@@ -1,60 +1,74 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { AlertCircle, AlertCircleFill, HelpCircle, HelpCircleFill } from '@ncds/ui-admin-icon';
3
3
  import classNames from 'classnames';
4
- import { useCallback, useMemo, useRef, useState } from 'react';
4
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
+ import { createPortal } from 'react-dom';
5
6
  import { ButtonCloseX } from '../button/ButtonCloseX';
6
7
  const ICON_SIZE_SM = 14;
7
8
  const ICON_SIZE_DEFAULT = 16;
8
- const MARGIN = 10;
9
- const DEFAULT_TOOLTIP_WIDTH = 200;
10
- const DEFAULT_TOOLTIP_HEIGHT = 60;
11
- const POSITION_PRIORITY = ['bottom', 'top', 'right', 'left'];
12
- // 수직 위치(top/bottom)일 때 수평 정렬 보정
13
- const resolveVerticalAlignment = (position, triggerRect, tooltipWidth, viewportWidth) => {
14
- const centerX = triggerRect.left + triggerRect.width / 2;
15
- const tooltipHalfWidth = tooltipWidth / 2;
16
- if (centerX - tooltipHalfWidth < MARGIN) {
17
- return `${position}-left`;
9
+ // HTML 구현체(assets/scripts/tooltip)와 동일한 상수
10
+ const TOOLTIP_OFFSET = 6;
11
+ const VIEWPORT_MARGIN = 8;
12
+ const EDGE_ALIGN_OFFSET = 12;
13
+ const OFFSCREEN = -99999;
14
+ // HTML 구현체(TooltipLayerManager)가 body에 만드는 `#tooltip-global-layer`와 동일 id.
15
+ // 한쪽만 바뀌면 포털이 body로 fallback되며 사일런트 동작 이상이 날 수 있으므로 함께 유지한다.
16
+ const GLOBAL_LAYER_ID = 'tooltip-global-layer';
17
+ // body 하위의 전역 레이어를 찾거나 없으면 body로 fallback
18
+ const resolvePortalTarget = () => {
19
+ if (typeof document === 'undefined') return null;
20
+ return document.getElementById(GLOBAL_LAYER_ID) ?? document.body;
21
+ };
22
+ // 앵커 rect와 패널 rect를 기반으로 viewport 고정 좌표 계산
23
+ const computePanelCoords = (prefer, anchor, panel) => {
24
+ let resolved = prefer;
25
+ if (resolved === 'auto') {
26
+ const enoughTop = anchor.top - TOOLTIP_OFFSET - panel.height >= VIEWPORT_MARGIN;
27
+ resolved = enoughTop ? 'top' : 'bottom';
18
28
  }
19
- if (centerX + tooltipHalfWidth > viewportWidth - MARGIN) {
20
- return `${position}-right`;
29
+ let top = 0;
30
+ let left = 0;
31
+ let calculatedPosition = 'bottom';
32
+ if (resolved === 'bottom') {
33
+ top = anchor.bottom + TOOLTIP_OFFSET;
34
+ left = anchor.left + anchor.width / 2 - panel.width / 2;
35
+ calculatedPosition = 'bottom';
36
+ } else if (resolved === 'top') {
37
+ top = anchor.top - panel.height - TOOLTIP_OFFSET;
38
+ left = anchor.left + anchor.width / 2 - panel.width / 2;
39
+ calculatedPosition = 'top';
40
+ } else if (resolved === 'left') {
41
+ top = anchor.top + anchor.height / 2 - panel.height / 2;
42
+ left = anchor.left - panel.width - TOOLTIP_OFFSET;
43
+ calculatedPosition = 'left';
44
+ } else if (resolved === 'right') {
45
+ top = anchor.top + anchor.height / 2 - panel.height / 2;
46
+ left = anchor.right + TOOLTIP_OFFSET;
47
+ calculatedPosition = 'right';
48
+ } else if (resolved === 'top-left') {
49
+ top = anchor.top - panel.height - TOOLTIP_OFFSET;
50
+ left = anchor.left - EDGE_ALIGN_OFFSET;
51
+ calculatedPosition = 'top-left';
52
+ } else if (resolved === 'top-right') {
53
+ top = anchor.top - panel.height - TOOLTIP_OFFSET;
54
+ left = anchor.right - panel.width + EDGE_ALIGN_OFFSET;
55
+ calculatedPosition = 'top-right';
56
+ } else if (resolved === 'bottom-left') {
57
+ top = anchor.bottom + TOOLTIP_OFFSET;
58
+ left = anchor.left - EDGE_ALIGN_OFFSET;
59
+ calculatedPosition = 'bottom-left';
60
+ } else if (resolved === 'bottom-right') {
61
+ top = anchor.bottom + TOOLTIP_OFFSET;
62
+ left = anchor.right - panel.width + EDGE_ALIGN_OFFSET;
63
+ calculatedPosition = 'bottom-right';
21
64
  }
22
- return position;
23
- };
24
- // 해당 위치에 툴팁을 배치할 충분한 공간이 있는지 확인
25
- const hasEnoughSpace = (position, spaces, tooltipWidth, tooltipHeight) => {
26
- const isVertical = position === 'bottom' || position === 'top';
27
- const requiredSpace = isVertical ? tooltipHeight : tooltipWidth;
28
- return spaces[position] >= requiredSpace + MARGIN;
29
- };
30
- // 위치 계산 position='auto' 일 때 사용
31
- const calculateOptimalPosition = function (triggerElement, tooltipElement) {
32
- let preferredPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'bottom';
33
- const triggerRect = triggerElement.getBoundingClientRect();
34
- const tooltipRect = tooltipElement.getBoundingClientRect();
35
- const {
36
- innerWidth: viewportWidth,
37
- innerHeight: viewportHeight
38
- } = window;
39
- const spaces = {
40
- top: triggerRect.top,
41
- bottom: viewportHeight - triggerRect.bottom,
42
- left: triggerRect.left,
43
- right: viewportWidth - triggerRect.right
65
+ left = Math.max(VIEWPORT_MARGIN, Math.min(left, window.innerWidth - panel.width - VIEWPORT_MARGIN));
66
+ top = Math.max(VIEWPORT_MARGIN, Math.min(top, window.innerHeight - panel.height - VIEWPORT_MARGIN));
67
+ return {
68
+ top: Math.round(top),
69
+ left: Math.round(left),
70
+ calculatedPosition
44
71
  };
45
- const tooltipWidth = tooltipRect.width || DEFAULT_TOOLTIP_WIDTH;
46
- const tooltipHeight = tooltipRect.height || DEFAULT_TOOLTIP_HEIGHT;
47
- for (const position of POSITION_PRIORITY) {
48
- if (!hasEnoughSpace(position, spaces, tooltipWidth, tooltipHeight)) {
49
- continue;
50
- }
51
- const isVertical = position === 'bottom' || position === 'top';
52
- if (isVertical) {
53
- return resolveVerticalAlignment(position, triggerRect, tooltipWidth, viewportWidth);
54
- }
55
- return position;
56
- }
57
- return preferredPosition;
58
72
  };
59
73
  export const Tooltip = _ref => {
60
74
  let {
@@ -68,31 +82,71 @@ export const Tooltip = _ref => {
68
82
  type = 'short',
69
83
  iconColor = 'var(--gray-300)',
70
84
  iconStyle = 'help-circle',
71
- className
85
+ className,
86
+ zIndex
72
87
  } = _ref;
73
88
  const iconSize = size === 'sm' ? ICON_SIZE_SM : ICON_SIZE_DEFAULT;
74
- const tooltipRef = useRef(null);
75
- const tooltipBgRef = useRef(null);
89
+ const anchorRef = useRef(null);
90
+ const panelRef = useRef(null);
91
+ const rafIdRef = useRef(null);
92
+ const [mounted, setMounted] = useState(false);
93
+ const [coords, setCoords] = useState({
94
+ top: OFFSCREEN,
95
+ left: OFFSCREEN
96
+ });
76
97
  const [calculatedPosition, setCalculatedPosition] = useState(position === 'auto' ? 'bottom' : position);
77
98
  const [isVisible, setIsVisible] = useState(false);
78
99
  const [isManuallyClose, setIsManuallyClose] = useState(false);
79
- const [isMeasuring, setIsMeasuring] = useState(false);
100
+ useEffect(() => {
101
+ setMounted(true);
102
+ return () => {
103
+ if (rafIdRef.current !== null) {
104
+ cancelAnimationFrame(rafIdRef.current);
105
+ rafIdRef.current = null;
106
+ }
107
+ };
108
+ }, []);
109
+ const updatePosition = useCallback(() => {
110
+ if (!anchorRef.current || !panelRef.current) return;
111
+ const anchor = anchorRef.current.getBoundingClientRect();
112
+ const panel = panelRef.current.getBoundingClientRect();
113
+ const next = computePanelCoords(position, anchor, panel);
114
+ setCoords({
115
+ top: next.top,
116
+ left: next.left
117
+ });
118
+ setCalculatedPosition(next.calculatedPosition);
119
+ }, [position]);
120
+ useEffect(() => {
121
+ if (!isVisible) return;
122
+ updatePosition();
123
+ window.addEventListener('resize', updatePosition, {
124
+ passive: true
125
+ });
126
+ window.addEventListener('scroll', updatePosition, {
127
+ passive: true,
128
+ capture: true
129
+ });
130
+ return () => {
131
+ window.removeEventListener('resize', updatePosition);
132
+ window.removeEventListener('scroll', updatePosition, {
133
+ capture: true
134
+ });
135
+ };
136
+ }, [isVisible, updatePosition]);
80
137
  const handleMouseEnter = useCallback(() => {
81
138
  if (isManuallyClose) return;
139
+ // opacity 전환 전에 좌표 확정 (ref 가드는 updatePosition 내부)
140
+ updatePosition();
141
+ // 웹폰트 로드·max-content 재계산 등 비동기 layout 안정화 후 한 번 더 보정
142
+ // 빠른 hover in/out 시 이전 프레임 요청은 취소해 중복/unmount 후 실행 방지
143
+ if (rafIdRef.current !== null) cancelAnimationFrame(rafIdRef.current);
144
+ rafIdRef.current = requestAnimationFrame(() => {
145
+ rafIdRef.current = null;
146
+ updatePosition();
147
+ });
82
148
  setIsVisible(true);
83
- if (position === 'auto' && tooltipRef.current && tooltipBgRef.current) {
84
- // 크기 측정을 위해 임시로 measuring 클래스 추가
85
- setIsMeasuring(true);
86
- // 다음 렌더링 사이클에서 크기 측정
87
- setTimeout(() => {
88
- if (tooltipRef.current && tooltipBgRef.current) {
89
- const optimalPosition = calculateOptimalPosition(tooltipRef.current, tooltipBgRef.current, 'bottom');
90
- setCalculatedPosition(optimalPosition);
91
- setIsMeasuring(false);
92
- }
93
- }, 0);
94
- }
95
- }, [position, isManuallyClose]);
149
+ }, [isManuallyClose, updatePosition]);
96
150
  const handleMouseLeave = useCallback(() => {
97
151
  if (type === 'short') {
98
152
  setIsVisible(false);
@@ -109,48 +163,60 @@ export const Tooltip = _ref => {
109
163
  'ncua-tooltip--stroke': iconType === 'stroke',
110
164
  'ncua-tooltip--auto': position === 'auto'
111
165
  }, className), [size, type, hideArrow, iconType, position, className]);
112
- const tooltipBgClassName = useMemo(() => classNames('ncua-tooltip__bg', `ncua-tooltip__bg--${tooltipType}`, `ncua-tooltip__bg--${finalPosition}`, {
166
+ const panelClassName = useMemo(() => classNames('ncua-tooltip-panel', 'ncua-tooltip__bg', `ncua-tooltip__bg--${tooltipType}`, `ncua-tooltip__bg--${finalPosition}`, {
113
167
  'ncua-tooltip__bg--visible': isVisible,
114
- 'ncua-tooltip__bg--measuring': isMeasuring,
115
168
  'ncua-tooltip__bg--force-hidden': isManuallyClose
116
- }), [tooltipType, finalPosition, isVisible, isMeasuring, isManuallyClose]);
117
- return _jsxs("span", {
118
- ref: tooltipRef,
119
- className: tooltipClassName,
120
- onMouseEnter: handleMouseEnter,
121
- onMouseLeave: handleMouseLeave,
122
- children: [iconStyle === 'help-circle' && (iconType === 'stroke' ? _jsx(HelpCircle, {
123
- width: iconSize,
124
- height: iconSize,
125
- color: iconColor
126
- }) : _jsx(HelpCircleFill, {
127
- width: iconSize,
128
- height: iconSize,
129
- color: iconColor
130
- })), iconStyle === 'alert-circle' && (iconType === 'stroke' ? _jsx(AlertCircle, {
131
- width: iconSize,
132
- height: iconSize,
133
- color: iconColor
134
- }) : _jsx(AlertCircleFill, {
135
- width: iconSize,
136
- height: iconSize,
137
- color: iconColor
138
- })), _jsxs("span", {
139
- ref: tooltipBgRef,
140
- className: tooltipBgClassName,
141
- children: [title && _jsx("span", {
142
- className: "ncua-tooltip__title",
143
- children: title
144
- }), content && _jsx("span", {
145
- className: "ncua-tooltip__content",
146
- children: content
147
- }), type === 'long' && _jsx(ButtonCloseX, {
148
- className: "ncua-tooltip__close-button",
149
- size: "xs",
150
- theme: tooltipType === 'white' ? 'dark' : 'light',
151
- onClick: handleCloseClick,
152
- "aria-label": "\uD234\uD301 \uB2EB\uAE30"
153
- })]
169
+ }), [tooltipType, finalPosition, isVisible, isManuallyClose]);
170
+ const panelStyle = {
171
+ top: `${coords.top}px`,
172
+ left: `${coords.left}px`,
173
+ opacity: isVisible ? 1 : 0,
174
+ ...(zIndex && {
175
+ zIndex
176
+ })
177
+ };
178
+ const portalTarget = mounted ? resolvePortalTarget() : null;
179
+ const panel = _jsxs("span", {
180
+ ref: panelRef,
181
+ className: panelClassName,
182
+ style: panelStyle,
183
+ children: [title && _jsx("span", {
184
+ className: "ncua-tooltip__title",
185
+ children: title
186
+ }), content && _jsx("span", {
187
+ className: "ncua-tooltip__content",
188
+ children: content
189
+ }), type === 'long' && _jsx(ButtonCloseX, {
190
+ className: "ncua-tooltip__close-button",
191
+ size: "xs",
192
+ theme: tooltipType === 'white' ? 'dark' : 'light',
193
+ onClick: handleCloseClick,
194
+ "aria-label": "\uD234\uD301 \uB2EB\uAE30"
154
195
  })]
155
196
  });
197
+ return _jsxs(_Fragment, {
198
+ children: [_jsxs("span", {
199
+ ref: anchorRef,
200
+ className: tooltipClassName,
201
+ onMouseEnter: handleMouseEnter,
202
+ onMouseLeave: handleMouseLeave,
203
+ children: [iconStyle === 'help-circle' && (iconType === 'stroke' ? _jsx(HelpCircle, {
204
+ width: iconSize,
205
+ height: iconSize,
206
+ color: iconColor
207
+ }) : _jsx(HelpCircleFill, {
208
+ width: iconSize,
209
+ height: iconSize,
210
+ color: iconColor
211
+ })), iconStyle === 'alert-circle' && (iconType === 'stroke' ? _jsx(AlertCircle, {
212
+ width: iconSize,
213
+ height: iconSize,
214
+ color: iconColor
215
+ }) : _jsx(AlertCircleFill, {
216
+ width: iconSize,
217
+ height: iconSize,
218
+ color: iconColor
219
+ }))]
220
+ }), portalTarget && /*#__PURE__*/createPortal(panel, portalTarget)]
221
+ });
156
222
  };
@@ -1,6 +1,6 @@
1
- export { useDropdown } from './useDropdown';
2
- export { useDropdownKeyboard } from './useDropdownKeyboard';
3
- export { useDropdownPosition } from './useDropdownPosition';
4
- export { useOutsideClick } from './useOutsideClick';
5
- export { useScrollLock } from './useScrollLock';
6
- export { useWindowResize } from './useWindowResize';
1
+ export * from './useDropdown';
2
+ export * from './useDropdownKeyboard';
3
+ export * from './useDropdownPosition';
4
+ export * from './useOutsideClick';
5
+ export * from './useScrollLock';
6
+ export * from './useWindowResize';
@@ -1,6 +1,6 @@
1
1
  // 기존 공통 hooks
2
2
  // 드롭다운 관련 hooks
3
3
  export * from './dropdown';
4
- export { useCallbackRef } from './useCallbackRef';
5
- export { useMediaQuery } from './useMediaQuery';
6
- export { useMergeRefs } from './useMergeRefs';
4
+ export * from './useCallbackRef';
5
+ export * from './useMediaQuery';
6
+ export * from './useMergeRefs';
@@ -0,0 +1,2 @@
1
+ /** AI 에이전트용 컴포넌트 메타데이터 타입 */
2
+ export {};
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from 'vitest/config';
2
+ export default defineConfig({
3
+ test: {
4
+ include: ['scripts/**/__tests__/**/*.test.ts'],
5
+ environment: 'node'
6
+ }
7
+ });
@@ -1 +1,2 @@
1
1
  export * from './Badge';
2
+ export * from './utils';
@@ -1 +1,2 @@
1
1
  export * from './Badge';
2
+ export * from './utils';
@@ -1,2 +1,3 @@
1
1
  export * from './DatePicker';
2
+ export * from './CustomInput';
2
3
  export * from './utils';
@@ -1,2 +1,3 @@
1
1
  export * from './DatePicker';
2
+ export * from './CustomInput';
2
3
  export * from './utils';
@@ -1,14 +1,12 @@
1
1
  import { type ButtonProps } from '../button/Button';
2
- interface ButtonOptions extends Pick<ButtonProps, 'hierarchy' | 'size' | 'leadingIcon' | 'trailingIcon'> {
2
+ export interface ButtonOptions extends Pick<ButtonProps, 'hierarchy' | 'size' | 'leadingIcon' | 'trailingIcon'> {
3
3
  label: string;
4
4
  onClick?: () => void;
5
5
  disabled?: boolean;
6
6
  }
7
- interface EmptyStateProps {
7
+ export interface EmptyStateProps {
8
8
  title: string;
9
9
  description: string;
10
10
  buttons?: ButtonOptions | ButtonOptions[];
11
11
  }
12
- declare const EmptyState: ({ title, description, buttons }: EmptyStateProps) => import("react/jsx-runtime").JSX.Element;
13
- export type { ButtonOptions };
14
- export { EmptyState };
12
+ export declare const EmptyState: ({ title, description, buttons }: EmptyStateProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from '../button/Button';
3
- const EmptyState = ({ title, description, buttons }) => {
3
+ export const EmptyState = ({ title, description, buttons }) => {
4
4
  const emptyStateButtons = buttons ? (Array.isArray(buttons) ? buttons : [buttons]) : [];
5
5
  return (_jsxs("div", { className: "ncua-empty-state", children: [_jsx("p", { className: "ncua-empty-state__title", children: title }), _jsx("span", { className: "ncua-empty-state__description", children: description }), emptyStateButtons.length > 0 && (_jsx("div", { className: "ncua-empty-state__button-group", children: emptyStateButtons.map(({ size, label, ...rest }) => (_jsx(Button, { size: size ?? 'xs', label: label, ...rest }, label))) }))] }));
6
6
  };
7
- export { EmptyState };
@@ -0,0 +1 @@
1
+ export * from './ImagePreview';
@@ -0,0 +1 @@
1
+ export * from './ImagePreview';
@@ -1 +1,2 @@
1
1
  export * from './ImageFileInput';
2
+ export * from './components';
@@ -1 +1,2 @@
1
1
  export * from './ImageFileInput';
2
+ export * from './components';
@@ -0,0 +1,2 @@
1
+ export * from './SegmentBar';
2
+ export * from './SegmentLabels';
@@ -0,0 +1,2 @@
1
+ export * from './SegmentBar';
2
+ export * from './SegmentLabels';
@@ -0,0 +1 @@
1
+ export * from './useProgressBar';
@@ -0,0 +1 @@
1
+ export * from './useProgressBar';
@@ -1,2 +1,5 @@
1
1
  export * from './ProgressBar';
2
+ export * from './components';
3
+ export * from './hooks';
2
4
  export * from './types';
5
+ export * from './utils';
@@ -1,2 +1,5 @@
1
1
  export * from './ProgressBar';
2
+ export * from './components';
3
+ export * from './hooks';
2
4
  export * from './types';
5
+ export * from './utils';
@@ -6,5 +6,5 @@ export const Select = forwardRef(({ placeholder, disabledPlaceholder = false, id
6
6
  return (_jsxs("span", { className: classNames('ncua-select', {
7
7
  destructive: destructive,
8
8
  'ncua-select--simple': type === 'simple',
9
- }, className, `ncua-select--${size}`), children: [_jsx("span", { className: "ncua-select__content", children: _jsxs("select", { value: value, ref: ref, id: id, className: classNames('ncua-select__tag', className), disabled: disabled, ...register, ...props, children: [placeholder && (_jsx("option", { value: "", selected: true, disabled: disabledPlaceholder, children: placeholder })), optionItems?.map((item) => (_jsx("option", { value: item.id, children: item.label }, item.id))), children] }) }), hintText && (_jsx(HintText, { destructive: destructive, className: "ncua-hint-text", children: hintText }))] }));
9
+ }, className, `ncua-select--${size}`), children: [_jsx("span", { className: "ncua-select__content", children: _jsxs("select", { value: value, ref: ref, id: id, className: classNames('ncua-select__tag', className), disabled: disabled, ...register, ...props, children: [placeholder && (_jsx("option", { value: "", disabled: disabledPlaceholder, children: placeholder })), optionItems?.map((item) => (_jsx("option", { value: item.id, children: item.label }, item.id))), children] }) }), hintText && (_jsx(HintText, { destructive: destructive, className: "ncua-hint-text", children: hintText }))] }));
10
10
  });
@@ -1 +1 @@
1
- export { type DropdownDirection, SelectDropdown, type SelectDropdownProps } from './SelectDropdown';
1
+ export * from './SelectDropdown';
@@ -1 +1 @@
1
- export { SelectDropdown } from './SelectDropdown';
1
+ export * from './SelectDropdown';
@@ -1,9 +1,8 @@
1
1
  import type { ElementType, ReactNode } from 'react';
2
- interface SpinnerProps {
2
+ export interface SpinnerProps {
3
3
  as?: ElementType;
4
4
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
5
  children?: ReactNode;
6
6
  backdrop?: boolean;
7
7
  }
8
8
  export declare const Spinner: ({ as, size, children, backdrop }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
9
- export {};