@loword/loword-design-system 0.0.18 → 0.1.0

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 (331) hide show
  1. package/README.md +37 -21
  2. package/dist/components/LDAccordion/AccordionBase.d.ts.map +1 -1
  3. package/dist/components/LDAccordion/AccordionBase.js +3 -4
  4. package/dist/components/LDAccordion/LDAccordion.d.ts +33 -2
  5. package/dist/components/LDAccordion/LDAccordion.d.ts.map +1 -1
  6. package/dist/components/LDAccordion/LDAccordion.js +70 -7
  7. package/dist/components/LDAutoComplete/AutoCompleteBase.d.ts +35 -21
  8. package/dist/components/LDAutoComplete/AutoCompleteBase.d.ts.map +1 -1
  9. package/dist/components/LDAutoComplete/AutoCompleteBase.js +25 -46
  10. package/dist/components/LDAutoComplete/LDAutoComplete.d.ts +54 -4
  11. package/dist/components/LDAutoComplete/LDAutoComplete.d.ts.map +1 -1
  12. package/dist/components/LDAutoComplete/LDAutoComplete.js +141 -4
  13. package/dist/components/LDAvatar/AvatarBase.d.ts.map +1 -1
  14. package/dist/components/LDAvatar/AvatarBase.js +3 -3
  15. package/dist/components/LDAvatar/LDAvatar.d.ts +3 -1
  16. package/dist/components/LDAvatar/LDAvatar.d.ts.map +1 -1
  17. package/dist/components/LDAvatar/LDAvatar.js +33 -20
  18. package/dist/components/LDBadge/BadgeBase.d.ts.map +1 -1
  19. package/dist/components/LDBadge/LDBadge.d.ts +7 -4
  20. package/dist/components/LDBadge/LDBadge.d.ts.map +1 -1
  21. package/dist/components/LDBadge/LDBadge.js +34 -32
  22. package/dist/components/LDBreadCrumb/BreadCrumbBase.d.ts +3 -2
  23. package/dist/components/LDBreadCrumb/BreadCrumbBase.d.ts.map +1 -1
  24. package/dist/components/LDBreadCrumb/BreadCrumbBase.js +6 -3
  25. package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts +26 -2
  26. package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts.map +1 -1
  27. package/dist/components/LDBreadCrumb/LDBreadCrumb.js +24 -15
  28. package/dist/components/LDButton/ButtonBase.d.ts.map +1 -1
  29. package/dist/components/LDButton/LDButton.d.ts +5 -3
  30. package/dist/components/LDButton/LDButton.d.ts.map +1 -1
  31. package/dist/components/LDButton/LDButton.js +14 -27
  32. package/dist/components/LDCalendar/CalendarBase.d.ts +1 -1
  33. package/dist/components/LDCalendar/CalendarBase.d.ts.map +1 -1
  34. package/dist/components/LDCalendar/CalendarBase.js +12 -11
  35. package/dist/components/LDCalendar/CalendarTimePicker.d.ts +11 -0
  36. package/dist/components/LDCalendar/CalendarTimePicker.d.ts.map +1 -0
  37. package/dist/components/LDCalendar/CalendarTimePicker.js +82 -0
  38. package/dist/components/LDCalendar/LDCalendar.d.ts +13 -8
  39. package/dist/components/LDCalendar/LDCalendar.d.ts.map +1 -1
  40. package/dist/components/LDCalendar/LDCalendar.js +48 -81
  41. package/dist/components/LDCallout/CalloutBase.d.ts.map +1 -1
  42. package/dist/components/LDCallout/CalloutBase.js +3 -3
  43. package/dist/components/LDCallout/LDCallout.d.ts.map +1 -1
  44. package/dist/components/LDCallout/LDCallout.js +1 -1
  45. package/dist/components/LDCarousel/CarouselBase.d.ts +6 -1
  46. package/dist/components/LDCarousel/CarouselBase.d.ts.map +1 -1
  47. package/dist/components/LDCarousel/CarouselBase.js +12 -9
  48. package/dist/components/LDCarousel/LDCarousel.d.ts +13 -11
  49. package/dist/components/LDCarousel/LDCarousel.d.ts.map +1 -1
  50. package/dist/components/LDCarousel/LDCarousel.js +3 -3
  51. package/dist/components/LDChart/LDChart.d.ts +4 -2
  52. package/dist/components/LDChart/LDChart.d.ts.map +1 -1
  53. package/dist/components/LDChart/LDChart.js +5 -5
  54. package/dist/components/LDCheckbox/CheckboxBase.d.ts.map +1 -1
  55. package/dist/components/LDCheckbox/CheckboxBase.js +3 -3
  56. package/dist/components/LDCheckbox/LDCheckbox.d.ts +3 -1
  57. package/dist/components/LDCheckbox/LDCheckbox.d.ts.map +1 -1
  58. package/dist/components/LDCheckbox/LDCheckbox.js +6 -6
  59. package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts +1 -1
  60. package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts.map +1 -1
  61. package/dist/components/LDCheckbox/LDCheckboxGroup.js +1 -1
  62. package/dist/components/LDCheckbox/LDFormCheckbox.d.ts +1 -1
  63. package/dist/components/LDCheckbox/LDFormCheckbox.d.ts.map +1 -1
  64. package/dist/components/LDCheckbox/LDFormCheckbox.js +2 -2
  65. package/dist/components/LDCheckbox/LDFormCheckboxGroup.d.ts +1 -1
  66. package/dist/components/LDCheckbox/LDFormCheckboxGroup.d.ts.map +1 -1
  67. package/dist/components/LDCheckbox/LDFormCheckboxGroup.js +2 -2
  68. package/dist/components/LDDataCalendar/LDDataCalendar.d.ts +23 -5
  69. package/dist/components/LDDataCalendar/LDDataCalendar.d.ts.map +1 -1
  70. package/dist/components/LDDataCalendar/LDDataCalendar.js +28 -5
  71. package/dist/components/LDDataCalendar/LDDataCalendarBase.d.ts +6 -10
  72. package/dist/components/LDDataCalendar/LDDataCalendarBase.d.ts.map +1 -1
  73. package/dist/components/LDDataCalendar/LDDataCalendarBase.js +7 -7
  74. package/dist/components/LDDatePicker/LDDatePicker.d.ts +11 -4
  75. package/dist/components/LDDatePicker/LDDatePicker.d.ts.map +1 -1
  76. package/dist/components/LDDatePicker/LDDatePicker.js +55 -60
  77. package/dist/components/LDDatePicker/LDFormDatePicker.d.ts +1 -1
  78. package/dist/components/LDDatePicker/LDFormDatePicker.d.ts.map +1 -1
  79. package/dist/components/LDDatePicker/LDFormDatePicker.js +4 -4
  80. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts +15 -9
  81. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts.map +1 -1
  82. package/dist/components/LDDateRangePicker/LDDateRangePicker.js +92 -91
  83. package/dist/components/LDDateRangePicker/LDFormDateRangePicker.d.ts +1 -1
  84. package/dist/components/LDDateRangePicker/LDFormDateRangePicker.d.ts.map +1 -1
  85. package/dist/components/LDDateRangePicker/LDFormDateRangePicker.js +3 -3
  86. package/dist/components/LDDaumPostButton/LDDaumPostButton.d.ts +1 -1
  87. package/dist/components/LDDaumPostButton/LDDaumPostButton.d.ts.map +1 -1
  88. package/dist/components/LDDaumPostButton/LDDaumPostButton.js +2 -2
  89. package/dist/components/LDDivider/DividerBase.d.ts.map +1 -1
  90. package/dist/components/LDDivider/LDDivider.js +1 -1
  91. package/dist/components/LDDrawer/DrawerBase.d.ts +26 -47
  92. package/dist/components/LDDrawer/DrawerBase.d.ts.map +1 -1
  93. package/dist/components/LDDrawer/DrawerBase.js +19 -25
  94. package/dist/components/LDDrawer/LDDrawer.d.ts +35 -5
  95. package/dist/components/LDDrawer/LDDrawer.d.ts.map +1 -1
  96. package/dist/components/LDDrawer/LDDrawer.js +47 -6
  97. package/dist/components/LDEditor/EditorBase.d.ts +3 -2
  98. package/dist/components/LDEditor/EditorBase.d.ts.map +1 -1
  99. package/dist/components/LDEditor/EditorBase.js +7 -5
  100. package/dist/components/LDEditor/LDEditor.d.ts.map +1 -1
  101. package/dist/components/LDEditor/LDEditor.js +37 -27
  102. package/dist/components/LDEditor/LDViewer.js +3 -3
  103. package/dist/components/LDEditor/extensions.d.ts.map +1 -1
  104. package/dist/components/LDEditor/extensions.js +10 -12
  105. package/dist/components/LDEmpty/LDEmpty.d.ts +3 -1
  106. package/dist/components/LDEmpty/LDEmpty.d.ts.map +1 -1
  107. package/dist/components/LDEmpty/LDEmpty.js +1 -1
  108. package/dist/components/LDFileUpload/FileUploadBase.d.ts +20 -35
  109. package/dist/components/LDFileUpload/FileUploadBase.d.ts.map +1 -1
  110. package/dist/components/LDFileUpload/FileUploadBase.js +81 -162
  111. package/dist/components/LDFileUpload/LDFileUpload.d.ts +31 -17
  112. package/dist/components/LDFileUpload/LDFileUpload.d.ts.map +1 -1
  113. package/dist/components/LDFileUpload/LDFileUpload.js +73 -5
  114. package/dist/components/LDFileUpload/LDFileUploadList.d.ts +4 -18
  115. package/dist/components/LDFileUpload/LDFileUploadList.d.ts.map +1 -1
  116. package/dist/components/LDFileUpload/LDFileUploadList.js +3 -4
  117. package/dist/components/LDFileUpload/LDImageUpload.d.ts +5 -19
  118. package/dist/components/LDFileUpload/LDImageUpload.d.ts.map +1 -1
  119. package/dist/components/LDFileUpload/LDImageUpload.js +4 -8
  120. package/dist/components/LDFileUpload/LDImageUploadList.d.ts +4 -18
  121. package/dist/components/LDFileUpload/LDImageUploadList.d.ts.map +1 -1
  122. package/dist/components/LDFileUpload/LDImageUploadList.js +4 -4
  123. package/dist/components/LDForm/LDForm.d.ts +1 -1
  124. package/dist/components/LDForm/LDForm.d.ts.map +1 -1
  125. package/dist/components/LDForm/LDFormErrorMessage.d.ts.map +1 -1
  126. package/dist/components/LDForm/LDFormErrorMessage.js +1 -1
  127. package/dist/components/LDInput/InputBase.d.ts.map +1 -1
  128. package/dist/components/LDInput/InputBase.js +1 -1
  129. package/dist/components/LDInput/LDFormInput.d.ts +1 -1
  130. package/dist/components/LDInput/LDFormInput.d.ts.map +1 -1
  131. package/dist/components/LDInput/LDFormInput.js +4 -4
  132. package/dist/components/LDInput/LDInput.d.ts +5 -3
  133. package/dist/components/LDInput/LDInput.d.ts.map +1 -1
  134. package/dist/components/LDInput/LDInput.js +18 -16
  135. package/dist/components/LDLNB/LDLNB.d.ts +1 -1
  136. package/dist/components/LDLNB/LDLNB.d.ts.map +1 -1
  137. package/dist/components/LDLNB/LDLNB.js +7 -7
  138. package/dist/components/LDLNB/{LDLNBBase.d.ts → LNBBase.d.ts} +3 -3
  139. package/dist/components/LDLNB/LNBBase.d.ts.map +1 -0
  140. package/dist/components/LDLNB/{LDLNBBase.js → LNBBase.js} +56 -39
  141. package/dist/components/LDLoadingDots/LDLoadingDots.d.ts +3 -1
  142. package/dist/components/LDLoadingDots/LDLoadingDots.d.ts.map +1 -1
  143. package/dist/components/LDLoadingDots/LDLoadingDots.js +3 -3
  144. package/dist/components/LDMenuBar/LDMenuBar.d.ts.map +1 -1
  145. package/dist/components/LDMenuBar/LDMenuBar.js +6 -6
  146. package/dist/components/LDMenuBar/MenuBarBase.d.ts.map +1 -1
  147. package/dist/components/LDModal/LDModal.d.ts +4 -2
  148. package/dist/components/LDModal/LDModal.d.ts.map +1 -1
  149. package/dist/components/LDModal/LDModal.js +1 -1
  150. package/dist/components/LDModal/LDModalView.d.ts +4 -2
  151. package/dist/components/LDModal/LDModalView.d.ts.map +1 -1
  152. package/dist/components/LDModal/LDModalView.js +7 -7
  153. package/dist/components/LDModal/ModalBase.d.ts.map +1 -1
  154. package/dist/components/LDModal/ModalBase.js +2 -2
  155. package/dist/components/LDNotification/LDNotification.d.ts +4 -2
  156. package/dist/components/LDNotification/LDNotification.d.ts.map +1 -1
  157. package/dist/components/LDNotification/LDNotification.js +2 -2
  158. package/dist/components/LDNotification/NotificationBase.d.ts.map +1 -1
  159. package/dist/components/LDOTPInput/LDFormOTPInput.d.ts +1 -1
  160. package/dist/components/LDOTPInput/LDFormOTPInput.d.ts.map +1 -1
  161. package/dist/components/LDOTPInput/LDFormOTPInput.js +2 -2
  162. package/dist/components/LDOTPInput/LDOTPInput.d.ts +29 -16
  163. package/dist/components/LDOTPInput/LDOTPInput.d.ts.map +1 -1
  164. package/dist/components/LDOTPInput/LDOTPInput.js +26 -20
  165. package/dist/components/LDOTPInput/OTPInputBase.d.ts +12 -12
  166. package/dist/components/LDOTPInput/OTPInputBase.d.ts.map +1 -1
  167. package/dist/components/LDOTPInput/OTPInputBase.js +11 -9
  168. package/dist/components/LDPagination/LDPagination.d.ts.map +1 -1
  169. package/dist/components/LDPagination/LDPagination.js +1 -1
  170. package/dist/components/LDPagination/PaginationBase.d.ts +1 -1
  171. package/dist/components/LDPagination/PaginationBase.d.ts.map +1 -1
  172. package/dist/components/LDPagination/PaginationBase.js +5 -5
  173. package/dist/components/LDPopover/LDPopover.d.ts +3 -1
  174. package/dist/components/LDPopover/LDPopover.d.ts.map +1 -1
  175. package/dist/components/LDPopover/LDPopover.js +5 -5
  176. package/dist/components/LDPopover/PopoverBase.d.ts +2 -1
  177. package/dist/components/LDPopover/PopoverBase.d.ts.map +1 -1
  178. package/dist/components/LDPopover/PopoverBase.js +2 -2
  179. package/dist/components/LDProgressBar/LDProgressBar.d.ts.map +1 -1
  180. package/dist/components/LDProgressBar/LDProgressBar.js +2 -2
  181. package/dist/components/LDProgressBar/ProgressBarBase.d.ts.map +1 -1
  182. package/dist/components/LDProgressBar/ProgressBarBase.js +1 -1
  183. package/dist/components/LDRadio/LDFormRadioGroup.d.ts +1 -1
  184. package/dist/components/LDRadio/LDFormRadioGroup.d.ts.map +1 -1
  185. package/dist/components/LDRadio/LDFormRadioGroup.js +2 -2
  186. package/dist/components/LDRadio/LDRadio.d.ts +3 -1
  187. package/dist/components/LDRadio/LDRadio.d.ts.map +1 -1
  188. package/dist/components/LDRadio/LDRadio.js +7 -7
  189. package/dist/components/LDRadio/LDRadioGroup.d.ts +1 -1
  190. package/dist/components/LDRadio/LDRadioGroup.d.ts.map +1 -1
  191. package/dist/components/LDRadio/LDRadioGroup.js +1 -1
  192. package/dist/components/LDRadio/RadioBase.d.ts.map +1 -1
  193. package/dist/components/LDRadio/RadioBase.js +1 -1
  194. package/dist/components/LDRate/LDFormRate.d.ts +1 -1
  195. package/dist/components/LDRate/LDFormRate.d.ts.map +1 -1
  196. package/dist/components/LDRate/LDRate.d.ts +1 -1
  197. package/dist/components/LDRate/LDRate.d.ts.map +1 -1
  198. package/dist/components/LDRate/LDRate.js +6 -6
  199. package/dist/components/LDScrollArea/LDScrollArea.d.ts.map +1 -1
  200. package/dist/components/LDScrollArea/LDScrollArea.js +2 -2
  201. package/dist/components/LDSectionNav/LDSectionNav.js +1 -1
  202. package/dist/components/LDSectionNav/SectionNavBase.d.ts.map +1 -1
  203. package/dist/components/LDSectionNav/SectionNavBase.js +1 -1
  204. package/dist/components/LDSegmented/LDSegmented.d.ts +5 -3
  205. package/dist/components/LDSegmented/LDSegmented.d.ts.map +1 -1
  206. package/dist/components/LDSegmented/LDSegmented.js +13 -10
  207. package/dist/components/LDSegmented/SegmentedBase.d.ts.map +1 -1
  208. package/dist/components/LDSegmented/SegmentedBase.js +1 -1
  209. package/dist/components/LDSelect/LDFormMultiSelect.d.ts +1 -1
  210. package/dist/components/LDSelect/LDFormMultiSelect.d.ts.map +1 -1
  211. package/dist/components/LDSelect/LDFormMultiSelect.js +3 -3
  212. package/dist/components/LDSelect/LDFormSelect.d.ts +1 -1
  213. package/dist/components/LDSelect/LDFormSelect.d.ts.map +1 -1
  214. package/dist/components/LDSelect/LDFormSelect.js +3 -3
  215. package/dist/components/LDSelect/LDMultiSelect.d.ts +6 -4
  216. package/dist/components/LDSelect/LDMultiSelect.d.ts.map +1 -1
  217. package/dist/components/LDSelect/LDMultiSelect.js +13 -13
  218. package/dist/components/LDSelect/LDSelect.d.ts +39 -7
  219. package/dist/components/LDSelect/LDSelect.d.ts.map +1 -1
  220. package/dist/components/LDSelect/LDSelect.js +56 -19
  221. package/dist/components/LDSelect/SelectBase.d.ts +25 -28
  222. package/dist/components/LDSelect/SelectBase.d.ts.map +1 -1
  223. package/dist/components/LDSelect/SelectBase.js +65 -24
  224. package/dist/components/LDSkeleton/LDSkeleton.d.ts.map +1 -1
  225. package/dist/components/LDSkeleton/LDSkeleton.js +1 -1
  226. package/dist/components/LDSlider/LDSlider.d.ts +31 -2
  227. package/dist/components/LDSlider/LDSlider.d.ts.map +1 -1
  228. package/dist/components/LDSlider/LDSlider.js +62 -184
  229. package/dist/components/LDSlider/SliderBase.d.ts +44 -0
  230. package/dist/components/LDSlider/SliderBase.d.ts.map +1 -0
  231. package/dist/components/LDSlider/SliderBase.js +145 -0
  232. package/dist/components/LDSpinner/LDSpinner.d.ts +1 -6
  233. package/dist/components/LDSpinner/LDSpinner.d.ts.map +1 -1
  234. package/dist/components/LDSpinner/LDSpinner.js +4 -12
  235. package/dist/components/LDTable/{TableField.d.ts → HeadlessTable.d.ts} +18 -23
  236. package/dist/components/LDTable/HeadlessTable.d.ts.map +1 -0
  237. package/dist/components/LDTable/{TableField.js → HeadlessTable.js} +61 -12
  238. package/dist/components/LDTable/LDCollapsibleTanstackTable.d.ts +4 -5
  239. package/dist/components/LDTable/LDCollapsibleTanstackTable.d.ts.map +1 -1
  240. package/dist/components/LDTable/LDCollapsibleTanstackTable.js +17 -27
  241. package/dist/components/LDTable/LDTable.d.ts +4 -5
  242. package/dist/components/LDTable/LDTable.d.ts.map +1 -1
  243. package/dist/components/LDTable/LDTable.js +7 -7
  244. package/dist/components/LDTable/LDTanstackTable.d.ts +4 -5
  245. package/dist/components/LDTable/LDTanstackTable.d.ts.map +1 -1
  246. package/dist/components/LDTable/LDTanstackTable.js +11 -18
  247. package/dist/components/LDTable/TableBase.d.ts +1 -1
  248. package/dist/components/LDTable/TableBase.d.ts.map +1 -1
  249. package/dist/components/LDTabs/LDTabs.d.ts +1 -1
  250. package/dist/components/LDTabs/LDTabs.d.ts.map +1 -1
  251. package/dist/components/LDTabs/LDTabs.js +15 -15
  252. package/dist/components/LDTabs/TabsBase.d.ts +1 -1
  253. package/dist/components/LDTabs/TabsBase.d.ts.map +1 -1
  254. package/dist/components/LDTeamHistory/LDTeamHistory.js +3 -3
  255. package/dist/components/LDTeamHistory/TeamHistoryBase.d.ts.map +1 -1
  256. package/dist/components/LDTeamHistory/TeamHistoryBase.js +19 -10
  257. package/dist/components/LDTextarea/LDFormTextarea.d.ts +1 -1
  258. package/dist/components/LDTextarea/LDFormTextarea.d.ts.map +1 -1
  259. package/dist/components/LDTextarea/LDFormTextarea.js +3 -3
  260. package/dist/components/LDTextarea/LDTextarea.d.ts +5 -3
  261. package/dist/components/LDTextarea/LDTextarea.d.ts.map +1 -1
  262. package/dist/components/LDTextarea/LDTextarea.js +7 -5
  263. package/dist/components/LDTimePicker/LDFormTimePicker.d.ts +1 -1
  264. package/dist/components/LDTimePicker/LDFormTimePicker.d.ts.map +1 -1
  265. package/dist/components/LDTimePicker/LDFormTimePicker.js +3 -3
  266. package/dist/components/LDTimePicker/LDTimePicker.d.ts.map +1 -1
  267. package/dist/components/LDTimePicker/LDTimePicker.js +19 -20
  268. package/dist/components/LDToast/LDToast.js +2 -2
  269. package/dist/components/LDToggleButton/LDFormToggleButton.d.ts +1 -1
  270. package/dist/components/LDToggleButton/LDFormToggleButton.d.ts.map +1 -1
  271. package/dist/components/LDToggleButton/LDFormToggleButton.js +2 -2
  272. package/dist/components/LDToggleButton/LDToggleButton.d.ts +3 -1
  273. package/dist/components/LDToggleButton/LDToggleButton.d.ts.map +1 -1
  274. package/dist/components/LDToggleButton/LDToggleButton.js +1 -1
  275. package/dist/components/LDToggleButton/ToggleButtonBase.d.ts +1 -3
  276. package/dist/components/LDToggleButton/ToggleButtonBase.d.ts.map +1 -1
  277. package/dist/components/LDToggleButton/ToggleButtonBase.js +5 -14
  278. package/dist/components/LDTooltip/LDTooltip.d.ts.map +1 -1
  279. package/dist/components/LDTooltip/LDTooltip.js +2 -2
  280. package/dist/components/LDTooltip/TooltipBase.d.ts.map +1 -1
  281. package/dist/components/LDTooltip/TooltipBase.js +1 -1
  282. package/dist/components/RenderIcon/RenderIcon.d.ts +16 -0
  283. package/dist/components/RenderIcon/RenderIcon.d.ts.map +1 -0
  284. package/dist/components/RenderIcon/RenderIcon.js +27 -0
  285. package/dist/components/RenderIcon/RenderIcon.test.d.ts +2 -0
  286. package/dist/components/RenderIcon/RenderIcon.test.d.ts.map +1 -0
  287. package/dist/components/RenderIcon/RenderIcon.test.js +38 -0
  288. package/dist/components/Show/Show.d.ts +57 -0
  289. package/dist/components/Show/Show.d.ts.map +1 -0
  290. package/dist/components/Show/Show.js +15 -0
  291. package/dist/constants/file.d.ts +2 -0
  292. package/dist/constants/file.d.ts.map +1 -1
  293. package/dist/constants/file.js +2 -0
  294. package/dist/index.css +513 -389
  295. package/dist/index.d.ts +17 -20
  296. package/dist/index.d.ts.map +1 -1
  297. package/dist/index.js +11 -13
  298. package/dist/types/common.d.ts +1 -1
  299. package/dist/types/common.d.ts.map +1 -1
  300. package/dist/utils/cn.d.ts.map +1 -1
  301. package/dist/utils/cn.js +10 -0
  302. package/dist/utils/date.d.ts +4 -0
  303. package/dist/utils/date.d.ts.map +1 -0
  304. package/dist/utils/date.js +7 -0
  305. package/dist/utils/file.d.ts +1 -1
  306. package/dist/utils/file.d.ts.map +1 -1
  307. package/dist/utils/file.js +6 -4
  308. package/dist/utils/tv.d.ts +9 -4
  309. package/dist/utils/tv.d.ts.map +1 -1
  310. package/dist/utils/tv.js +8 -3
  311. package/dist/utils/useIsomorphicLayoutEffect.d.ts.map +1 -0
  312. package/dist/utils/useIsomorphicLayoutEffect.js +7 -0
  313. package/package.json +36 -30
  314. package/src/styles/carousel.css +11 -0
  315. package/src/styles/color.css +5 -5
  316. package/src/styles/components/bread-crumb.css +0 -30
  317. package/src/styles/components/icon.css +23 -25
  318. package/src/styles/components/input.css +0 -25
  319. package/src/styles/motion.css +0 -27
  320. package/src/styles/slider.css +14 -8
  321. package/dist/components/LDButton/ButtonSpinner.d.ts +0 -8
  322. package/dist/components/LDButton/ButtonSpinner.d.ts.map +0 -1
  323. package/dist/components/LDButton/ButtonSpinner.js +0 -15
  324. package/dist/components/LDLNB/LDLNBBase.d.ts.map +0 -1
  325. package/dist/components/LDSegmented/useIsomorphicLayoutEffect.d.ts.map +0 -1
  326. package/dist/components/LDSegmented/useIsomorphicLayoutEffect.js +0 -5
  327. package/dist/components/LDTable/TableField.d.ts.map +0 -1
  328. package/dist/utils/renderIcon.d.ts +0 -3
  329. package/dist/utils/renderIcon.d.ts.map +0 -1
  330. package/dist/utils/renderIcon.js +0 -12
  331. /package/dist/{components/LDSegmented → utils}/useIsomorphicLayoutEffect.d.ts +0 -0
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import AutoHeight from 'embla-carousel-auto-height';
3
4
  import AutoScroll from 'embla-carousel-auto-scroll';
4
5
  import Autoplay from 'embla-carousel-autoplay';
5
6
  import useEmblaCarousel from 'embla-carousel-react';
@@ -15,7 +16,7 @@ const useCarouselContext = () => {
15
16
  };
16
17
  /** 외부에서 캐러셀 컨트롤(emblaApi)에 접근하고 싶을 때 사용하는 훅 */
17
18
  export const useCarousel = useCarouselContext;
18
- const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, align = 'start', containScroll = 'trimSnaps', options, gap = 16, className, style, children, }) => {
19
+ const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, autoHeight = false, align = 'start', containScroll = 'trimSnaps', options, gap = 16, className, style, children, }) => {
19
20
  // 자동 이동 플러그인 조립. autoScroll(연속 흐름)이 설정되면 autoplay(스텝형)보다 우선.
20
21
  const plugins = [];
21
22
  if (autoScroll) {
@@ -34,6 +35,9 @@ const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, auto
34
35
  stopOnInteraction: c.stopOnInteraction ?? false,
35
36
  }));
36
37
  }
38
+ if (autoHeight) {
39
+ plugins.push(AutoHeight(typeof autoHeight === 'object' ? autoHeight : {}));
40
+ }
37
41
  const [emblaRef, emblaApi] = useEmblaCarousel({
38
42
  align,
39
43
  loop,
@@ -84,7 +88,10 @@ const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, auto
84
88
  scrollTo,
85
89
  orientation,
86
90
  gap,
87
- }, children: _jsx("div", { className: cn('ld-carousel relative', className), style: style, role: "region", "aria-roledescription": "carousel", children: children }) }));
91
+ }, children: _jsx("div", { className: cn('ld-carousel relative',
92
+ // 플러그인이 트랙 높이를 인라인으로 세팅하므로 슬라이드가 늘어나지 않게 해야 한다.
93
+ // 해당 CSS는 styles/carousel.css 의 .ld-carousel--auto-height 규칙에 있다.
94
+ autoHeight && 'ld-carousel--auto-height', className), style: style, role: "region", "aria-roledescription": "carousel", children: children }) }));
88
95
  };
89
96
  const Viewport = ({ className, children }) => {
90
97
  const { emblaRef } = useCarouselContext();
@@ -93,7 +100,7 @@ const Viewport = ({ className, children }) => {
93
100
  const Container = ({ className, style, children }) => {
94
101
  const { orientation, gap } = useCarouselContext();
95
102
  const isVertical = orientation === 'vertical';
96
- return (_jsx("div", { className: cn('flex', isVertical ? 'flex-col h-full' : 'flex-row', className),
103
+ return (_jsx("div", { className: cn('flex', isVertical ? 'h-full flex-col' : 'flex-row', className),
97
104
  // embla 공식 방식: 간격을 Slide 패딩으로 주고, 첫 칸 패딩만 음수 마진으로 상쇄.
98
105
  // flex gap과 달리 loop 이음새(마지막↔처음)에도 간격이 유지됨.
99
106
  // 세로 고정 높이에선 음수 마진(-gap)만큼 트랙 높이를 늘려야 마지막 슬라이드가 바닥까지 참.
@@ -129,17 +136,13 @@ const Next = ({ className, children, ...props }) => {
129
136
  };
130
137
  const TopArrows = ({ className, children, ...props }) => {
131
138
  const { scrollNext, scrollPrev, canScrollNext, canScrollPrev } = useCarouselContext();
132
- return (
133
- // ld-carousel__nav-top: 상단 화살표 영역의 고정 훅.
134
- // side 화살표의 .ld-carousel__nav 와 같은 역할 — 소비측에서 반응형 제어(예: 모바일에서만 숨김)를
135
- // 할 때 마크업 구조(자식 순서 등)에 기대지 않도록 클래스를 제공한다.
136
- _jsxs("div", { className: "ld-carousel__nav-top flex flex-row ml-auto", children: [_jsx("button", { type: "button", onClick: scrollPrev, disabled: !canScrollPrev, "aria-label": props['aria-label'] ?? '이전', className: cn('disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer rounded-full size-8 flex justify-center items-center ld-transition', className), children: children ?? _jsx(ChevronLeft, { size: 22, strokeWidth: 1.2 }) }), _jsx("button", { type: "button", onClick: scrollNext, disabled: !canScrollNext, "aria-label": props['aria-label'] ?? '다음', className: cn('disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer rounded-full size-8 flex justify-center items-center ld-transition', className), children: children ?? _jsx(ChevronRight, { size: 22, strokeWidth: 1.2 }) })] }));
139
+ return (_jsxs("div", { className: "ml-auto flex flex-row", children: [_jsx("button", { type: "button", onClick: scrollPrev, disabled: !canScrollPrev, "aria-label": props['aria-label'] ?? '이전', className: cn('flex size-8 cursor-pointer items-center justify-center rounded-full ld-transition disabled:cursor-not-allowed disabled:opacity-40', className), children: children ?? _jsx(ChevronLeft, { size: 22, strokeWidth: 1.2 }) }), _jsx("button", { type: "button", onClick: scrollNext, disabled: !canScrollNext, "aria-label": props['aria-label'] ?? '다음', className: cn('flex size-8 cursor-pointer items-center justify-center rounded-full ld-transition disabled:cursor-not-allowed disabled:opacity-40', className), children: children ?? _jsx(ChevronRight, { size: 22, strokeWidth: 1.2 }) })] }));
137
140
  };
138
141
  const Dots = ({ className, dotClassName }) => {
139
142
  const { scrollSnaps, selectedIndex, scrollTo } = useCarouselContext();
140
143
  return (_jsx("div", { className: cn('flex items-center justify-center gap-2', className), children: scrollSnaps.map((_, i) => {
141
144
  const isActive = i === selectedIndex;
142
- return (_jsx("button", { type: "button", onClick: () => scrollTo(i), "aria-label": `${i + 1}번째 슬라이드로 이동`, "aria-current": isActive || undefined, className: cn('rounded-full ld-transition cursor-pointer', isActive ? 'w-5 h-2 bg-lb500' : 'w-2 h-2 bg-mono200', dotClassName) }, i));
145
+ return (_jsx("button", { type: "button", onClick: () => scrollTo(i), "aria-label": `${i + 1}번째 슬라이드로 이동`, "aria-current": isActive || undefined, className: cn('cursor-pointer rounded-full ld-transition', isActive ? 'h-2 w-5 bg-lb500' : 'h-2 w-2 bg-mono200', dotClassName) }, i));
143
146
  }) }));
144
147
  };
145
148
  const Counter = ({ className, format }) => {
@@ -1,5 +1,5 @@
1
1
  import { type CSSProperties, type ReactNode } from 'react';
2
- import { type CarouselOrientation, type RootProps } from './CarouselBase.js';
2
+ import { type CarouselOrientation, type RootProps } from '../../components/LDCarousel/CarouselBase.js';
3
3
  export interface LDCarouselProps {
4
4
  /** 슬라이드로 렌더링할 노드 배열 */
5
5
  slides: ReactNode[];
@@ -14,6 +14,8 @@ export interface LDCarouselProps {
14
14
  };
15
15
  /** 연속 흐름(Auto Scroll). autoplay와 동시 사용 불가, loop와 함께 권장 */
16
16
  autoScroll?: RootProps['autoScroll'];
17
+ /** 트랙 높이를 선택된 슬라이드 높이에 맞춘다. 슬라이드마다 높이가 다를 때 빈 공간을 없앤다 */
18
+ autoHeight?: RootProps['autoHeight'];
17
19
  /** 슬라이드 정렬 위치. 기본 'start'(왼쪽 끝 붙음) */
18
20
  align?: RootProps['align'];
19
21
  /** 양 끝 빈 공간 처리. 기본 'trimSnaps'(끝 여백 없게 보정) / 'keepSnaps'(보정+개별 스냅 유지) / false(보정 없이 일관 정렬) */
@@ -49,16 +51,16 @@ export interface LDCarouselProps {
49
51
  * 고급 커스터마이징이 필요하면 `LDCarousel.Root` 등 compound API를 직접 조합하세요.
50
52
  */
51
53
  declare const LDCarousel: {
52
- ({ slides, orientation, loop, autoplay, autoScroll, align, containScroll, options, arrowPosition, showDots, showCounter, slidesPerView, grid, gap, className, style, viewportClassName, slideClassName, }: LDCarouselProps): import("react/jsx-runtime").JSX.Element;
53
- Root: ({ orientation, loop, autoplay, autoScroll, align, containScroll, options, gap, className, style, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
54
- Viewport: ({ className, children }: import("./CarouselBase.js").ViewportProps) => import("react/jsx-runtime").JSX.Element;
55
- Container: ({ className, style, children }: import("./CarouselBase.js").ContainerProps) => import("react/jsx-runtime").JSX.Element;
56
- Slide: ({ slidesPerView, index, total, className, style, children, }: import("./CarouselBase.js").SlideProps) => import("react/jsx-runtime").JSX.Element;
57
- Prev: ({ className, children, ...props }: import("./CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
58
- Next: ({ className, children, ...props }: import("./CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
59
- Dots: ({ className, dotClassName }: import("./CarouselBase.js").DotsProps) => import("react/jsx-runtime").JSX.Element;
60
- Counter: ({ className, format }: import("./CarouselBase.js").CounterProps) => import("react/jsx-runtime").JSX.Element;
61
- TopArrows: ({ className, children, ...props }: import("./CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
54
+ ({ slides, orientation, loop, autoplay, autoScroll, autoHeight, align, containScroll, options, arrowPosition, showDots, showCounter, slidesPerView, grid, gap, className, style, viewportClassName, slideClassName, }: LDCarouselProps): import("react/jsx-runtime").JSX.Element;
55
+ Root: ({ orientation, loop, autoplay, autoScroll, autoHeight, align, containScroll, options, gap, className, style, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
56
+ Viewport: ({ className, children }: import("../../components/LDCarousel/CarouselBase.js").ViewportProps) => import("react/jsx-runtime").JSX.Element;
57
+ Container: ({ className, style, children }: import("../../components/LDCarousel/CarouselBase.js").ContainerProps) => import("react/jsx-runtime").JSX.Element;
58
+ Slide: ({ slidesPerView, index, total, className, style, children, }: import("../../components/LDCarousel/CarouselBase.js").SlideProps) => import("react/jsx-runtime").JSX.Element;
59
+ Prev: ({ className, children, ...props }: import("../../components/LDCarousel/CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
60
+ Next: ({ className, children, ...props }: import("../../components/LDCarousel/CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
61
+ Dots: ({ className, dotClassName }: import("../../components/LDCarousel/CarouselBase.js").DotsProps) => import("react/jsx-runtime").JSX.Element;
62
+ Counter: ({ className, format }: import("../../components/LDCarousel/CarouselBase.js").CounterProps) => import("react/jsx-runtime").JSX.Element;
63
+ TopArrows: ({ className, children, ...props }: import("../../components/LDCarousel/CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
62
64
  };
63
65
  export default LDCarousel;
64
66
  //# sourceMappingURL=LDCarousel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDCarousel.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/LDCarousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrE,OAAqB,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL;8DACsD;QACtD,IAAI,EAAE,MAAM,CAAC;QACb,8EAA8E;QAC9E,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KACtB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;+MAmBb,eAAe;;;;;;;;;;CAyFjB,CAAC;AAYF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"LDCarousel.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/LDCarousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,OAAqB,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,sCAAsC,CAAC;AAG9C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,yDAAyD;IACzD,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL;8DACsD;QACtD,IAAI,EAAE,MAAM,CAAC;QACb,8EAA8E;QAC9E,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KACtB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;2NAoBb,eAAe;;;;;;;;;;CA0FjB,CAAC;AAYF,eAAe,UAAU,CAAC"}
@@ -1,20 +1,20 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Fragment } from 'react';
4
- import CarouselBase from './CarouselBase.js';
4
+ import CarouselBase from '../../components/LDCarousel/CarouselBase.js';
5
5
  import cn from '../../utils/cn.js';
6
6
  /**
7
7
  * embla-carousel 기반 기본 캐러셀.
8
8
  * 고급 커스터마이징이 필요하면 `LDCarousel.Root` 등 compound API를 직접 조합하세요.
9
9
  */
10
- const LDCarousel = ({ slides, orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, align = 'start', containScroll = 'trimSnaps', options, arrowPosition = 'top', showDots = false, showCounter = false, slidesPerView = 'auto', grid, gap = 16, className, style, viewportClassName, slideClassName, }) => {
10
+ const LDCarousel = ({ slides, orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, autoHeight = false, align = 'start', containScroll = 'trimSnaps', options, arrowPosition = 'top', showDots = false, showCounter = false, slidesPerView = 'auto', grid, gap = 16, className, style, viewportClassName, slideClassName, }) => {
11
11
  const isVertical = orientation === 'vertical';
12
12
  const rows = grid?.rows ?? 1;
13
13
  const columnCount = Math.ceil(slides.length / rows);
14
14
  const columns = rows <= 1
15
15
  ? slides.map((_, i) => [i])
16
16
  : Array.from({ length: columnCount }, (_, col) => Array.from({ length: rows }, (_, row) => grid?.fill === 'col' ? col * rows + row : row * columnCount + col).filter((i) => i < slides.length));
17
- return (_jsx(CarouselBase.Root, { orientation: orientation, loop: loop, autoplay: autoplay, autoScroll: autoScroll, align: align, containScroll: containScroll, options: options, gap: gap, className: cn(arrowPosition === 'side' && !isVertical && 'ld-carousel--nav-gutter-x', className), style: style, children: _jsxs("div", { className: "flex flex-col gap-3", children: [arrowPosition === 'top' && _jsx(CarouselBase.TopArrows, {}), _jsxs("div", { className: cn('flex items-center gap-3 w-full relative', isVertical && 'flex-col', isVertical &&
17
+ return (_jsx(CarouselBase.Root, { orientation: orientation, loop: loop, autoplay: autoplay, autoScroll: autoScroll, autoHeight: autoHeight, align: align, containScroll: containScroll, options: options, gap: gap, className: cn(arrowPosition === 'side' && !isVertical && 'ld-carousel--nav-gutter-x', className), style: style, children: _jsxs("div", { className: "flex flex-col gap-3", children: [arrowPosition === 'top' && _jsx(CarouselBase.TopArrows, {}), _jsxs("div", { className: cn('relative flex w-full items-center gap-3', isVertical && 'flex-col', isVertical &&
18
18
  arrowPosition === 'side' &&
19
19
  'ld-carousel__nav-clearance-y'), children: [arrowPosition === 'side' && _jsx(CarouselBase.Prev, {}), _jsx(CarouselBase.Viewport, { className: cn('w-full', viewportClassName), children: _jsx(CarouselBase.Container, { children: columns.map((column, i) => (_jsx(CarouselBase.Slide, { slidesPerView: slidesPerView, index: i, total: columns.length, className: slideClassName, children: rows <= 1 ? (slides[i]) : (_jsx("div", { className: "grid h-full items-start", style: {
20
20
  gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`,
@@ -1,8 +1,10 @@
1
+ import type { Color, Position } from '../../types/common.js';
2
+ import type { Subset } from '../../types/subset.js';
1
3
  /** label 자동 생성 단위. dayjs의 ManipulateType 중 아래 포맷이 정의된 3개만 허용한다. */
2
4
  export type LDChartUnit = 'day' | 'month' | 'year';
3
- export type LDChartPosition = 'left' | 'right';
5
+ export type LDChartPosition = Subset<Position, 'left' | 'right'>;
4
6
  /** 시리즈 색상 프리셋. DS 색 팔레트의 500 단계에 대응한다. */
5
- export type LDChartColor = 'lowordBlue' | 'blue' | 'red' | 'orange' | 'yellow' | 'green' | 'pink' | 'purple';
7
+ export type LDChartColor = Subset<Color, 'lowordBlue' | 'blue' | 'red' | 'orange' | 'yellow' | 'green' | 'pink' | 'purple'>;
6
8
  /**
7
9
  * LDChart의 props입니다.
8
10
  * 원본(mono repo LDChart) 대비 `loader?: string`은 `loading?: boolean`으로,
@@ -1 +1 @@
1
- {"version":3,"file":"LDChart.d.ts","sourceRoot":"","sources":["../../../src/components/LDChart/LDChart.tsx"],"names":[],"mappings":"AAwCA,mEAAmE;AACnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAQnD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,MAAM,GACN,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,CAAC;AAyCb;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,EAAE;QACR,qCAAqC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,iDAAiD;QACjD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,qDAAqD;IACrD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,OAAO,GAAI,kHAYd,YAAY,4CAwLd,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"LDChart.d.ts","sourceRoot":"","sources":["../../../src/components/LDChart/LDChart.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAe7C,mEAAmE;AACnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAQnD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,KAAK,EACH,YAAY,GACZ,MAAM,GACN,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,CACX,CAAC;AAyCF;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,EAAE;QACR,qCAAqC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,iDAAiD;QACjD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,qDAAqD;IACrD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,OAAO,GAAI,kHAYd,YAAY,4CAyLd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -4,10 +4,10 @@ import { CategoryScale, Chart as ChartJS, Filler, Legend, LinearScale, LineEleme
4
4
  import dayjs from 'dayjs';
5
5
  import { useMemo } from 'react';
6
6
  import { Line } from 'react-chartjs-2';
7
+ import ChartBase from '../../components/LDChart/ChartBase.js';
8
+ import LDSpinner from '../../components/LDSpinner/LDSpinner.js';
7
9
  import cn from '../../utils/cn.js';
8
- import { formatAbbreviatedNumber, formatNumberWithComma, } from '../../utils/utils.js';
9
- import LDSpinner from '../LDSpinner/LDSpinner.js';
10
- import ChartBase from './ChartBase.js';
10
+ import { formatAbbreviatedNumber, formatNumberWithComma } from '../../utils/utils.js';
11
11
  // 이 컴포넌트에서만 그리는 선(라인) 차트라 BarElement는 등록하지 않는다.
12
12
  ChartJS.register(CategoryScale, LinearScale, PointElement, LineElement, Filler, Tooltip, Legend);
13
13
  const EMPTY_LABEL_FORMATS = {
@@ -175,9 +175,9 @@ const LDChart = ({ dataList, color = 'lowordBlue', position = 'right', reverseYA
175
175
  };
176
176
  // 배경은 기본 투명. 필요한 소비처가 rootClassName으로 지정한다.
177
177
  // (원본의 bg-mono5는 정의되지 않은 토큰이라 실제로도 투명하게 렌더됐다.)
178
- return (_jsx(ChartBase.Root, { className: cn('w-full flex flex-col items-start justify-start rounded-xs', rootClassName), style: rootStyle, children: _jsxs(ChartBase.Viewport, { style: viewportStyle, className: cn('relative', className), children: [_jsx(Line, { height: Number(viewportStyle.height), data: {
178
+ return (_jsx(ChartBase.Root, { className: cn('flex w-full flex-col items-start justify-start rounded-xs', rootClassName), style: rootStyle, children: _jsxs(ChartBase.Viewport, { style: viewportStyle, className: cn('relative', className), children: [_jsx(Line, { height: Number(viewportStyle.height), "aria-label": "\uCC28\uD2B8", data: {
179
179
  labels: dataList.label.length > 0 ? dataList.label : emptyLabels,
180
180
  datasets: dataSets,
181
- }, options: options, plugins: [intersectDataVerticalLine] }), _jsx(ChartBase.Overlay, { className: cn('absolute inset-0 z-10 flex items-center justify-center', 'bg-white/70 ld-transition', loading ? 'opacity-100' : 'opacity-0 pointer-events-none'), children: _jsx(LDSpinner, { size: 32, className: "text-lb500" }) })] }) }));
181
+ }, options: options, plugins: [intersectDataVerticalLine] }), _jsx(ChartBase.Overlay, { className: cn('absolute inset-0 z-10 flex items-center justify-center', 'bg-white/70 ld-transition', loading ? 'opacity-100' : 'pointer-events-none opacity-0'), children: _jsx(LDSpinner, { className: "size-8 text-lb500" }) })] }) }));
182
182
  };
183
183
  export default LDChart;
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/CheckboxBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,GAAG,EAIT,MAAM,OAAO,CAAC;AAKf,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAID,eAAO,MAAM,kBAAkB,2BAO9B,CAAC;AAGF,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAiDD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC5E,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAqCD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,YAAY;gGA1GtB,SAAS;gEAiDT,gBAAgB;yDAuChB,cAAc;qCAcuB,UAAU;CASjD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CheckboxBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/CheckboxBase.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAKf,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAID,eAAO,MAAM,kBAAkB,2BAO9B,CAAC;AAGF,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAiDD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC5E,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAqCD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,YAAY;gGA1GtB,SAAS;gEAiDT,gBAAgB;yDAuChB,cAAc;qCAcuB,UAAU;CASjD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Check } from 'lucide-react';
2
3
  import { createContext, useContext, useState, } from 'react';
3
4
  import cn from '../../utils/cn.js';
4
- import { Check } from 'lucide-react';
5
5
  const CheckboxContext = createContext(null);
6
6
  export const useCheckboxContext = () => {
7
7
  const ctx = useContext(CheckboxContext);
@@ -26,11 +26,11 @@ const Root = ({ checked, defaultChecked = false, onCheckedChange, disabled = fal
26
26
  disabled,
27
27
  isFocused,
28
28
  setIsFocused,
29
- }, children: _jsx("label", { style: style, onClick: (e) => e.stopPropagation(), className: cn('flex flex-row w-fit shrink-0', disabled ? 'cursor-not-allowed' : 'cursor-pointer', resolvedClassName), children: children }) }));
29
+ }, children: _jsx("label", { style: style, onClick: (e) => e.stopPropagation(), className: cn('flex w-fit shrink-0 flex-row', disabled ? 'cursor-not-allowed' : 'cursor-pointer', resolvedClassName), children: children }) }));
30
30
  };
31
31
  const HiddenInput = ({ ref, onFocus, onBlur, onChange, ...props }) => {
32
32
  const { checked, onCheckedChange, disabled, setIsFocused } = useCheckboxContext();
33
- return (_jsx("input", { type: "checkbox", ref: ref, className: "sr-only peer", checked: checked, disabled: disabled, onChange: (e) => {
33
+ return (_jsx("input", { type: "checkbox", ref: ref, className: "peer sr-only", checked: checked, disabled: disabled, onChange: (e) => {
34
34
  e.stopPropagation(); // 이벤트 전파 중단
35
35
  onCheckedChange(e.target.checked);
36
36
  onChange?.(e);
@@ -1,5 +1,7 @@
1
1
  import { type InputHTMLAttributes, type Ref } from 'react';
2
- export type CheckboxSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
2
+ import type { Size } from '../../types/common.js';
3
+ import type { Subset } from '../../types/subset.js';
4
+ export type CheckboxSize = Subset<Size, '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'>;
3
5
  type CheckboxType = 'default' | 'checkbox' | 'pill';
4
6
  export interface LDCheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'value'> {
5
7
  /** 체크 상태 변경 콜백 (boolean) */
@@ -1 +1 @@
1
- {"version":3,"file":"LDCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAK3D,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AACb,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAgFpD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,GAAG,OAAO,CAC1B;IACC,4BAA4B;IAC5B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAwGD,QAAA,MAAM,UAAU,GAAI,8IAejB,eAAe,4CAwDjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"LDCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAK3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,IAAI,EACJ,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAC/D,CAAC;AACF,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAgFpD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,GAAG,OAAO,CAC1B;IACC,4BAA4B;IAC5B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAwGD,QAAA,MAAM,UAAU,GAAI,8IAejB,eAAe,4CAwDjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import CheckboxBase, { useCheckboxContext } from './CheckboxBase.js';
2
+ import CheckboxBase, { useCheckboxContext, } from '../../components/LDCheckbox/CheckboxBase.js';
3
3
  import cn from '../../utils/cn.js';
4
4
  // medium이 기존 단일 사이즈(24) 기준. 위아래로 프리셋을 확장.
5
5
  const checkIconSizes = {
@@ -72,23 +72,23 @@ const pillCheckedPad = {
72
72
  // ── Inner: Context에서 checked를 읽어 스타일 적용 ──
73
73
  const PillInner = ({ size, label, ref, ...props }) => {
74
74
  const { checked } = useCheckboxContext();
75
- return (_jsxs(_Fragment, { children: [_jsx(CheckboxBase.HiddenInput, { ref: ref, ...props }), _jsxs("div", { className: "relative flex items-center", children: [_jsx(CheckboxBase.Indicator, { iconSize: pillIconSizes[size], className: cn('absolute left-0'), iconClassName: cn('shrink-0 ld-transition', checked ? 'opacity-100' : 'opacity-0') }), label && (_jsx(CheckboxBase.Label, { className: cn('text-nowrap ld-transition', checked ? pillCheckedPad[size] : 'pl-sm pr-sm'), children: label }))] })] }));
75
+ return (_jsxs(_Fragment, { children: [_jsx(CheckboxBase.HiddenInput, { ref: ref, ...props }), _jsxs("div", { className: "relative flex items-center", children: [_jsx(CheckboxBase.Indicator, { iconSize: pillIconSizes[size], className: cn('absolute left-0'), iconClassName: cn('shrink-0 ld-transition', checked ? 'opacity-100' : 'opacity-0') }), label && (_jsx(CheckboxBase.Label, { className: cn('text-nowrap ld-transition', checked ? pillCheckedPad[size] : 'pr-sm pl-sm'), children: label }))] })] }));
76
76
  };
77
77
  const DefaultInner = ({ type, size, label, isRequired, ref, ...props }) => {
78
78
  const { checked, disabled } = useCheckboxContext();
79
79
  return (_jsxs(_Fragment, { children: [_jsx(CheckboxBase.HiddenInput, { ref: ref, ...props }), _jsx(CheckboxBase.Indicator, { iconSize: type === 'checkbox' ? checkboxIconSizes[size] : checkIconSizes[size], className: cn('ld-transition', type === 'checkbox' &&
80
- 'border-none outline-2 rounded-[5px] -outline-offset-2 outline-mono300 p-1', type === 'checkbox' && checked && 'bg-lb500 outline-lb500', type === 'checkbox' && disabled && 'bg-mono100 outline-mono100', 'peer-focus-visible:ring-2 peer-focus-visible:ring-lb500 peer-focus-visible:ring-offset-2'), iconClassName: cn('shrink-0 ld-transition', type === 'checkbox'
80
+ 'rounded-[5px] border-none p-1 outline-2 -outline-offset-2 outline-mono300', type === 'checkbox' && checked && 'bg-lb500 outline-lb500', type === 'checkbox' && disabled && 'bg-mono100 outline-mono100', 'peer-focus-visible:ring-2 peer-focus-visible:ring-lb500 peer-focus-visible:ring-offset-2'), iconClassName: cn('shrink-0 ld-transition', type === 'checkbox'
81
81
  ? checked
82
82
  ? 'text-white'
83
83
  : 'text-transparent'
84
84
  : checked
85
85
  ? 'text-blue400'
86
- : 'text-neutral500') }), isRequired && (_jsx(CheckboxBase.Label, { className: cn('text-blue400 shrink-0 block', labelHeight[size]), children: "\uD544\uC218" })), label && (_jsx(CheckboxBase.Label, { className: cn('text-neutral900 block', labelHeight[size]), children: label }))] }));
86
+ : 'text-neutral500') }), isRequired && (_jsx(CheckboxBase.Label, { className: cn('block shrink-0 text-blue400', labelHeight[size]), children: "\uD544\uC218" })), label && (_jsx(CheckboxBase.Label, { className: cn('block text-neutral900', labelHeight[size]), children: label }))] }));
87
87
  };
88
88
  const LDCheckbox = ({ checked, defaultChecked, onCheckedChange, onChange, size = 'small', label, isRequired = false, type = 'default', itemCenter = false, disabled = false, className, style, ref, ...props }) => {
89
89
  if (type === 'pill') {
90
- return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: (c) => cn('items-center gap-2 rounded-full ld-transition bold', pillSizeClasses[size], c ? 'bg-tintBlue text-lb500' : 'bg-mono100 text-mono500', disabled && 'opacity-50 cursor-not-allowed', className), children: _jsx(PillInner, { size: size, label: label, ref: ref, onChange: onChange, ...props }) }));
90
+ return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: (c) => cn('items-center gap-2 rounded-full bold ld-transition', pillSizeClasses[size], c ? 'bg-tintBlue text-lb500' : 'bg-mono100 text-mono500', disabled && 'cursor-not-allowed opacity-50', className), children: _jsx(PillInner, { size: size, label: label, ref: ref, onChange: onChange, ...props }) }));
91
91
  }
92
- return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: cn('bold items-center ld-transition', itemCenter && 'items-center', labelSizeClasses[size], gapClasses[size], className), children: _jsx(DefaultInner, { type: type, size: size, label: label, isRequired: isRequired, ref: ref, onChange: onChange, ...props }) }));
92
+ return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: cn('items-center bold ld-transition', itemCenter && 'items-center', labelSizeClasses[size], gapClasses[size], className), children: _jsx(DefaultInner, { type: type, size: size, label: label, isRequired: isRequired, ref: ref, onChange: onChange, ...props }) }));
93
93
  };
94
94
  export default LDCheckbox;
@@ -1,5 +1,5 @@
1
1
  import type React from 'react';
2
- import { type CheckboxSize } from './LDCheckbox.js';
2
+ import { type CheckboxSize } from '../../components/LDCheckbox/LDCheckbox.js';
3
3
  export interface CheckboxGroupOption {
4
4
  label: string;
5
5
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"LDCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckboxGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAI7D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAaD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,eAAe,GAAI,kFAUtB,oBAAoB,4CA+BtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"LDCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckboxGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAmB,EACjB,KAAK,YAAY,EAClB,MAAM,oCAAoC,CAAC;AAI5C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAaD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,eAAe,GAAI,kFAUtB,oBAAoB,4CA+BtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import LDCheckbox from './LDCheckbox.js';
2
+ import LDCheckbox from '../../components/LDCheckbox/LDCheckbox.js';
3
3
  import cn from '../../utils/cn.js';
4
4
  // 아이템 간 간격을 사이즈별로 확장 (수평/수직 공통, LDRadioGroup과 동일 스케일)
5
5
  const groupGapClasses = {
@@ -1,6 +1,6 @@
1
1
  import { type Ref } from 'react';
2
2
  import { type RegisterOptions } from 'react-hook-form';
3
- import { type LDCheckboxProps } from './LDCheckbox.js';
3
+ import { type LDCheckboxProps } from '../../components/LDCheckbox/LDCheckbox.js';
4
4
  interface LDFormCheckboxProps extends Omit<LDCheckboxProps, 'checked' | 'name' | 'onCheckedChange'> {
5
5
  name: string;
6
6
  options?: RegisterOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"LDFormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGhE,UAAU,mBAAoB,SAAQ,IAAI,CACxC,eAAe,EACf,SAAS,GAAG,MAAM,GAAG,iBAAiB,CACvC;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,QAAA,MAAM,cAAc,GAAI,gEAOrB,mBAAmB,4CAqBrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"LDFormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAmB,EACjB,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAG5C,UAAU,mBAAoB,SAAQ,IAAI,CACxC,eAAe,EACf,SAAS,GAAG,MAAM,GAAG,iBAAiB,CACvC;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,QAAA,MAAM,cAAc,GAAI,gEAOrB,mBAAmB,4CAqBrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import LDCheckbox from './LDCheckbox.js';
4
- import FormField from '../LDForm/LDFormField.js';
3
+ import LDCheckbox from '../../components/LDCheckbox/LDCheckbox.js';
4
+ import FormField from '../../components/LDForm/LDFormField.js';
5
5
  const LDFormCheckbox = ({ name, options, ref, customErrorMessage = '', disabled = false, ...props }) => {
6
6
  return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, ref: ref, children: ({ field }) => (_jsx(LDCheckbox, { ...props, checked: !!field.value, onCheckedChange: field.onChange, onBlur: field.onBlur, disabled: disabled, ref: field.ref })) }));
7
7
  };
@@ -1,5 +1,5 @@
1
1
  import { type RegisterOptions } from 'react-hook-form';
2
- import { type LDCheckboxGroupProps } from './LDCheckboxGroup.js';
2
+ import { type LDCheckboxGroupProps } from '../../components/LDCheckbox/LDCheckboxGroup.js';
3
3
  interface LDFormCheckboxGroupProps extends Omit<LDCheckboxGroupProps, 'value' | 'onChange'> {
4
4
  name: string;
5
5
  options?: RegisterOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"LDFormCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckboxGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAwB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,oBAAoB,EACpB,OAAO,GAAG,UAAU,CACrB;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,mBAAmB,GAAI,2DAM1B,wBAAwB,4CAkB1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"LDFormCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckboxGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAwB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,yCAAyC,CAAC;AAGjD,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,oBAAoB,EACpB,OAAO,GAAG,UAAU,CACrB;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,mBAAmB,GAAI,2DAM1B,wBAAwB,4CAkB1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import LDCheckboxGroup from './LDCheckboxGroup.js';
4
- import FormField from '../LDForm/LDFormField.js';
3
+ import LDCheckboxGroup from '../../components/LDCheckbox/LDCheckboxGroup.js';
4
+ import FormField from '../../components/LDForm/LDFormField.js';
5
5
  const LDFormCheckboxGroup = ({ name, options, customErrorMessage = '', disabled = false, ...props }) => {
6
6
  return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field }) => (_jsx(LDCheckboxGroup, { ...props, value: field.value ?? [], onChange: field.onChange, disabled: disabled })) }));
7
7
  };
@@ -1,5 +1,6 @@
1
- import type { ReactNode } from 'react';
2
1
  import type { Dayjs } from 'dayjs';
2
+ import type { ComponentProps, ReactNode } from 'react';
3
+ import LDDataCalendarBase from '../../components/LDDataCalendar/LDDataCalendarBase.js';
3
4
  export interface LDDataCalendarProps {
4
5
  className?: string;
5
6
  /** 초기 표시 월 */
@@ -19,11 +20,28 @@ export interface LDDataCalendarProps {
19
20
  /** 선택 상세(모바일 Detail 슬롯). 지정 시 그리드 아래에 Detail 렌더 */
20
21
  renderDetail?: (date: Dayjs | null) => ReactNode;
21
22
  }
23
+ export type LDDataCalendarRootProps = ComponentProps<typeof LDDataCalendarBase.Root>;
24
+ export type LDDataCalendarHeaderProps = ComponentProps<'div'>;
25
+ export type LDDataCalendarPrevProps = ComponentProps<typeof LDDataCalendarBase.Prev>;
26
+ export type LDDataCalendarTitleProps = ComponentProps<typeof LDDataCalendarBase.Title>;
27
+ export type LDDataCalendarNextProps = ComponentProps<typeof LDDataCalendarBase.Next>;
28
+ export type LDDataCalendarGridProps = ComponentProps<typeof LDDataCalendarBase.Grid>;
29
+ export type LDDataCalendarCellProps = ComponentProps<typeof LDDataCalendarBase.Cell>;
30
+ export type LDDataCalendarDetailProps = ComponentProps<typeof LDDataCalendarBase.Detail>;
22
31
  /**
23
- * LDDataCalendar — DataCalendarBase 컴파운드를 조립한 표시 전용 데이터 달력.
24
- * 헤더(Prev·Title·Next)·그리드·셀 스타일은 컴포넌트가 제공하고,
25
- * 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입한다.
32
+ * 일반적인 데이터 달력 구성을 제공하는 Styled Single 컴포넌트입니다.
33
+ * 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입합니다.
26
34
  */
27
- declare const LDDataCalendar: ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }: LDDataCalendarProps) => import("react/jsx-runtime").JSX.Element;
35
+ declare const LDDataCalendar: {
36
+ ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }: LDDataCalendarProps): import("react/jsx-runtime").JSX.Element;
37
+ Root: ({ className, ...props }: LDDataCalendarRootProps) => import("react/jsx-runtime").JSX.Element;
38
+ Header: ({ className, ...props }: LDDataCalendarHeaderProps) => import("react/jsx-runtime").JSX.Element;
39
+ Prev: ({ children, className, ...props }: LDDataCalendarPrevProps) => import("react/jsx-runtime").JSX.Element;
40
+ Title: ({ className, ...props }: LDDataCalendarTitleProps) => import("react/jsx-runtime").JSX.Element;
41
+ Next: ({ children, className, ...props }: LDDataCalendarNextProps) => import("react/jsx-runtime").JSX.Element;
42
+ Grid: ({ weekdayClassName, ...props }: LDDataCalendarGridProps) => import("react/jsx-runtime").JSX.Element;
43
+ Cell: ({ className, dateClassName, ...props }: LDDataCalendarCellProps) => import("react/jsx-runtime").JSX.Element;
44
+ Detail: ({ className, ...props }: LDDataCalendarDetailProps) => import("react/jsx-runtime").JSX.Element;
45
+ };
28
46
  export default LDDataCalendar;
29
47
  //# sourceMappingURL=LDDataCalendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDDataCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAKnC,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC5D,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;CAClD;AAKD;;;;GAIG;AACH,QAAA,MAAM,cAAc,GAAI,gIAUrB,mBAAmB,4CA2CrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"LDDataCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAGhF,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC5D,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;CAClD;AAED,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAC9D,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,OAAO,kBAAkB,CAAC,KAAK,CAChC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CACpD,OAAO,kBAAkB,CAAC,MAAM,CACjC,CAAC;AAyFF;;;GAGG;AACH,QAAA,MAAM,cAAc;qIAUjB,mBAAmB;oCAjGiB,uBAAuB;sCAQrB,yBAAyB;8CAQjB,uBAAuB;qCAOhC,wBAAwB;8CAWf,uBAAuB;2CAO1B,uBAAuB;mDAelE,uBAAuB;sCAiBe,yBAAyB;CAgDjE,CAAC;AAWF,eAAe,cAAc,CAAC"}
@@ -1,13 +1,36 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ChevronLeft, ChevronRight } from 'lucide-react';
4
+ import LDDataCalendarBase from '../../components/LDDataCalendar/LDDataCalendarBase.js';
4
5
  import cn from '../../utils/cn.js';
5
- import LDDataCalendarBase from './LDDataCalendarBase.js';
6
6
  const navButtonClass = 'flex items-center justify-center rounded-full size-[30px] bg-neutral100 hover:bg-mono400 text-neutral500 hover:text-neutral900 ld-transition cursor-pointer';
7
+ /** 달력의 월과 선택 상태를 관리하는 Styled Compound 루트입니다. */
8
+ const Root = ({ className, ...props }) => (_jsx(LDDataCalendarBase.Root, { className: cn('w-full select-none', className), ...props }));
9
+ /** 월 이동 버튼과 현재 월 제목을 배치하는 헤더입니다. */
10
+ const Header = ({ className, ...props }) => (_jsx("div", { className: cn('mb-md flex items-center justify-between', className), ...props }));
11
+ /** 이전 달로 이동하는 버튼입니다. 기본 접근성 이름은 `이전 달`입니다. */
12
+ const Prev = ({ children, className, ...props }) => (_jsx(LDDataCalendarBase.Prev, { className: cn(navButtonClass, className), ...props, children: children === undefined ? _jsx(ChevronLeft, { size: 15, "aria-hidden": true }) : children }));
13
+ /** 현재 표시 중인 월 제목입니다. */
14
+ const Title = ({ className, ...props }) => (_jsx(LDDataCalendarBase.Title, { className: cn('flex justify-center display32 bold mobile:display20', className), ...props }));
15
+ /** 다음 달로 이동하는 버튼입니다. 기본 접근성 이름은 `다음 달`입니다. */
16
+ const Next = ({ children, className, ...props }) => (_jsx(LDDataCalendarBase.Next, { className: cn(navButtonClass, className), ...props, children: children === undefined ? _jsx(ChevronRight, { size: 16, "aria-hidden": true }) : children }));
17
+ /** 요일과 날짜 셀을 7열로 렌더링하는 그리드입니다. */
18
+ const Grid = ({ weekdayClassName, ...props }) => (_jsx(LDDataCalendarBase.Grid, { weekdayClassName: cn('py-[10px] display14 text-mono500 mobile:py-1 mobile:display12', weekdayClassName), ...props }));
19
+ /** 날짜와 해당 날짜의 데이터를 표시하는 셀입니다. */
20
+ const Cell = ({ className, dateClassName, ...props }) => (_jsx(LDDataCalendarBase.Cell, { className: cn('flex min-h-[100px] flex-col gap-[15px] py-[10px] data-outside:*:text-mono400 mobile:min-h-13 mobile:gap-1 mobile:py-1', 'ld-transition data-selectable:cursor-pointer data-selectable:rounded-[5px] data-selectable:hover:bg-mono100', 'data-[selected=true]:bg-tintBlue data-[selected=true]:hover:bg-tintBlue', className), dateClassName: cn('self-start display16 leading-none font-normal data-outside:font-normal data-outside:text-mono400 data-weekend:text-danger600 data-outside:data-weekend:text-danger400 mobile:display12', dateClassName), ...props }));
21
+ /** 선택한 날짜의 상세 내용을 표시하는 모바일 영역입니다. */
22
+ const Detail = ({ className, ...props }) => (_jsx(LDDataCalendarBase.Detail, { className: cn('mt-md hidden rounded-[10px] bg-mono50 p-md mobile:block', className), ...props }));
7
23
  /**
8
- * LDDataCalendar — DataCalendarBase 컴파운드를 조립한 표시 전용 데이터 달력.
9
- * 헤더(Prev·Title·Next)·그리드·셀 스타일은 컴포넌트가 제공하고,
10
- * 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입한다.
24
+ * 일반적인 데이터 달력 구성을 제공하는 Styled Single 컴포넌트입니다.
25
+ * 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입합니다.
11
26
  */
12
- const LDDataCalendar = ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }) => (_jsxs(LDDataCalendarBase.Root, { className: cn('w-full select-none', className), defaultMonth: defaultMonth, onMonthChange: onMonthChange, selectable: selectable, defaultSelectedDate: defaultSelectedDate, onSelectDate: onSelectDate, children: [_jsxs("div", { className: "flex items-center justify-between mb-md", children: [_jsx(LDDataCalendarBase.Prev, { className: navButtonClass, children: _jsx(ChevronLeft, { size: 15 }) }), _jsx(LDDataCalendarBase.Title, { className: "display32 mobile:display20 bold flex justify-center" }), _jsx(LDDataCalendarBase.Next, { className: navButtonClass, children: _jsx(ChevronRight, { size: 16 }) })] }), _jsx(LDDataCalendarBase.Grid, { weekdays: weekdays, weekdayClassName: "display14 mobile:display12 text-mono500 py-[10px] mobile:py-1", renderCell: (date, _i, isOutside) => (_jsx(LDDataCalendarBase.Cell, { date: date, isOutside: isOutside, className: cn('min-h-[100px] mobile:min-h-13 py-[10px] mobile:py-1 flex flex-col gap-[15px] mobile:gap-1 data-outside:*:text-mono400', 'data-selectable:cursor-pointer data-selectable:hover:bg-mono100 data-selectable:rounded-[5px] ld-transition', 'data-[selected=true]:bg-tintBlue data-[selected=true]:hover:bg-tintBlue'), dateClassName: "display16 mobile:display12 font-normal self-start leading-none data-[outside]:text-mono400 data-[outside]:font-normal data-[weekend]:text-danger600 data-[outside]:data-[weekend]:text-danger200", children: renderCell?.(date, isOutside) }, date.format('YYYY-MM-DD'))) }), renderDetail && (_jsx(LDDataCalendarBase.Detail, { className: "hidden mobile:block mt-md p-md rounded-[10px] bg-mono50", children: renderDetail }))] }));
27
+ const LDDataCalendar = ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }) => (_jsxs(Root, { className: className, defaultMonth: defaultMonth, onMonthChange: onMonthChange, selectable: selectable, defaultSelectedDate: defaultSelectedDate, onSelectDate: onSelectDate, children: [_jsxs(Header, { children: [_jsx(Prev, {}), _jsx(Title, {}), _jsx(Next, {})] }), _jsx(Grid, { weekdays: weekdays, renderCell: (date, _i, isOutside) => (_jsx(Cell, { date: date, isOutside: isOutside, children: renderCell?.(date, isOutside) }, date.format('YYYY-MM-DD'))) }), renderDetail && _jsx(Detail, { children: renderDetail })] }));
28
+ LDDataCalendar.Root = Root;
29
+ LDDataCalendar.Header = Header;
30
+ LDDataCalendar.Prev = Prev;
31
+ LDDataCalendar.Title = Title;
32
+ LDDataCalendar.Next = Next;
33
+ LDDataCalendar.Grid = Grid;
34
+ LDDataCalendar.Cell = Cell;
35
+ LDDataCalendar.Detail = Detail;
13
36
  export default LDDataCalendar;
@@ -1,5 +1,5 @@
1
1
  import { type Dayjs } from 'dayjs';
2
- import type { ReactNode } from 'react';
2
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
3
3
  interface DataCalendarContextType {
4
4
  month: Dayjs;
5
5
  changeMonth: (delta: number) => void;
@@ -21,14 +21,10 @@ interface RootProps {
21
21
  /** 선택 변경 시 호출 */
22
22
  onSelectDate?: (date: Dayjs) => void;
23
23
  }
24
- interface TitleProps {
25
- className?: string;
24
+ interface TitleProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
26
25
  format?: string;
27
26
  }
28
- interface NavButtonProps {
29
- children?: ReactNode;
30
- className?: string;
31
- }
27
+ type NavButtonProps = Omit<ComponentPropsWithoutRef<'button'>, 'type' | 'onClick'>;
32
28
  interface GridProps {
33
29
  renderCell: (date: Dayjs, index: number, isOutside: boolean) => ReactNode;
34
30
  weekdays?: string[];
@@ -50,9 +46,9 @@ interface DetailProps {
50
46
  }
51
47
  declare const LDDataCalendarBase: {
52
48
  Root: ({ children, className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, }: RootProps) => import("react/jsx-runtime").JSX.Element;
53
- Title: ({ className, format }: TitleProps) => import("react/jsx-runtime").JSX.Element;
54
- Prev: ({ children, className }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
55
- Next: ({ children, className }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
49
+ Title: ({ format, "aria-live": ariaLive, ...props }: TitleProps) => import("react/jsx-runtime").JSX.Element;
50
+ Prev: ({ children, "aria-label": ariaLabel, ...props }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
51
+ Next: ({ children, "aria-label": ariaLabel, ...props }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
56
52
  Grid: ({ renderCell, weekdays, className, weekdayClassName, }: GridProps) => import("react/jsx-runtime").JSX.Element;
57
53
  Cell: ({ date, isOutside, children, className, dateClassName, }: CellProps) => import("react/jsx-runtime").JSX.Element;
58
54
  Detail: ({ children, className }: DetailProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"LDDataCalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendarBase.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAID,eAAO,MAAM,sBAAsB,+BAOlC,CAAC;AAIF,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AA6CD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,UAAU,SAAS;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC1E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgDD,UAAU,SAAS;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoDD,UAAU,WAAW;IACnB,wCAAwC;IACxC,QAAQ,EAAE,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,QAAA,MAAM,kBAAkB;iHAvMrB,SAAS;mCAwCuC,UAAU;oCAYtB,cAAc;oCASd,cAAc;mEAyBlD,SAAS;qEAwDT,SAAS;sCAkD6B,WAAW;CAOsB,CAAC;AAE3E,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"LDDataCalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendarBase.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAIf,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAID,eAAO,MAAM,sBAAsB,+BAOlC,CAAC;AAIF,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AA6CD,UAAU,UAAW,SAAQ,IAAI,CAC/B,wBAAwB,CAAC,MAAM,CAAC,EAChC,UAAU,CACX;IACC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,KAAK,cAAc,GAAG,IAAI,CACxB,wBAAwB,CAAC,QAAQ,CAAC,EAClC,MAAM,GAAG,SAAS,CACnB,CAAC;AA0CF,UAAU,SAAS;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC1E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgDD,UAAU,SAAS;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoDD,UAAU,WAAW;IACnB,wCAAwC;IACxC,QAAQ,EAAE,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,QAAA,MAAM,kBAAkB;iHAnOrB,SAAS;yDA8CT,UAAU;4DAoBV,cAAc;4DAkBd,cAAc;mEA8Bd,SAAS;qEAwDT,SAAS;sCAkD6B,WAAW;CAOsB,CAAC;AAE3E,eAAe,kBAAkB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import dayjs from 'dayjs';
4
- import { createContext, useContext, useState } from 'react';
4
+ import { createContext, useContext, useState, } from 'react';
5
5
  const DataCalendarContext = createContext(null);
6
6
  export const useDataCalendarContext = () => {
7
7
  const ctx = useContext(DataCalendarContext);
@@ -28,17 +28,17 @@ const Root = ({ children, className, defaultMonth, onMonthChange, selectable = f
28
28
  selectDate: selectable ? selectDate : undefined,
29
29
  }, children: _jsx("div", { className: className, children: children }) }));
30
30
  };
31
- const Title = ({ className, format = 'YYYY년 M월' }) => {
31
+ const Title = ({ format = 'YYYY년 M월', 'aria-live': ariaLive = 'polite', ...props }) => {
32
32
  const { month } = useDataCalendarContext();
33
- return _jsx("span", { className: className, children: month.format(format) });
33
+ return (_jsx("span", { ...props, "aria-live": ariaLive, children: month.format(format) }));
34
34
  };
35
- const Prev = ({ children, className }) => {
35
+ const Prev = ({ children, 'aria-label': ariaLabel = '이전 달', ...props }) => {
36
36
  const { changeMonth } = useDataCalendarContext();
37
- return (_jsx("button", { type: "button", onClick: () => changeMonth(-1), className: className, children: children }));
37
+ return (_jsx("button", { ...props, type: "button", "aria-label": ariaLabel, onClick: () => changeMonth(-1), children: children }));
38
38
  };
39
- const Next = ({ children, className }) => {
39
+ const Next = ({ children, 'aria-label': ariaLabel = '다음 달', ...props }) => {
40
40
  const { changeMonth } = useDataCalendarContext();
41
- return (_jsx("button", { type: "button", onClick: () => changeMonth(1), className: className, children: children }));
41
+ return (_jsx("button", { ...props, type: "button", "aria-label": ariaLabel, onClick: () => changeMonth(1), children: children }));
42
42
  };
43
43
  // ── Grid ──
44
44
  const DEFAULT_WEEKDAYS = ['일', '월', '화', '수', '목', '금', '토'];