@loword/loword-design-system 0.0.10 → 0.0.13

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 (266) hide show
  1. package/dist/components/LDAccordion/AccordionBase.d.ts +41 -0
  2. package/dist/components/LDAccordion/AccordionBase.d.ts.map +1 -0
  3. package/dist/components/LDAccordion/AccordionBase.js +24 -0
  4. package/dist/components/LDAccordion/LDAccordion.d.ts +31 -0
  5. package/dist/components/LDAccordion/LDAccordion.d.ts.map +1 -0
  6. package/dist/components/LDAccordion/LDAccordion.js +21 -0
  7. package/dist/components/LDAutoComplete/AutoCompleteBase.js +6 -6
  8. package/dist/components/LDAvatar/LDAvatar.d.ts +1 -1
  9. package/dist/components/LDAvatar/LDAvatar.d.ts.map +1 -1
  10. package/dist/components/LDAvatar/LDAvatar.js +19 -10
  11. package/dist/components/LDBadge/LDBadge.d.ts +5 -6
  12. package/dist/components/LDBadge/LDBadge.d.ts.map +1 -1
  13. package/dist/components/LDBadge/LDBadge.js +2 -2
  14. package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts +1 -2
  15. package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts.map +1 -1
  16. package/dist/components/LDButton/LDButton.d.ts +3 -3
  17. package/dist/components/LDButton/LDButton.d.ts.map +1 -1
  18. package/dist/components/LDButton/LDButton.js +5 -5
  19. package/dist/components/LDCalendar/CalendarBase.d.ts +17 -0
  20. package/dist/components/LDCalendar/CalendarBase.d.ts.map +1 -0
  21. package/dist/components/LDCalendar/CalendarBase.js +49 -0
  22. package/dist/components/LDCalendar/LDCalendar.d.ts +8 -14
  23. package/dist/components/LDCalendar/LDCalendar.d.ts.map +1 -1
  24. package/dist/components/LDCalendar/LDCalendar.js +51 -39
  25. package/dist/components/LDCarousel/CarouselBase.d.ts +3 -3
  26. package/dist/components/LDCarousel/CarouselBase.d.ts.map +1 -1
  27. package/dist/components/LDCarousel/CarouselBase.js +12 -6
  28. package/dist/components/LDCarousel/LDCarousel.d.ts +7 -8
  29. package/dist/components/LDCarousel/LDCarousel.d.ts.map +1 -1
  30. package/dist/components/LDCarousel/LDCarousel.js +2 -2
  31. package/dist/components/LDCheckbox/CheckboxBase.d.ts +1 -3
  32. package/dist/components/LDCheckbox/CheckboxBase.d.ts.map +1 -1
  33. package/dist/components/LDCheckbox/CheckboxBase.js +4 -4
  34. package/dist/components/LDCheckbox/LDCheckbox.d.ts +2 -5
  35. package/dist/components/LDCheckbox/LDCheckbox.d.ts.map +1 -1
  36. package/dist/components/LDCheckbox/LDCheckbox.js +66 -8
  37. package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts +3 -3
  38. package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts.map +1 -1
  39. package/dist/components/LDCheckbox/LDCheckboxGroup.js +11 -2
  40. package/dist/components/LDCheckbox/LDFormCheckbox.d.ts +12 -0
  41. package/dist/components/LDCheckbox/LDFormCheckbox.d.ts.map +1 -0
  42. package/dist/components/LDCheckbox/LDFormCheckbox.js +8 -0
  43. package/dist/components/LDCheckbox/LDFormCheckboxGroup.d.ts +11 -0
  44. package/dist/components/LDCheckbox/LDFormCheckboxGroup.d.ts.map +1 -0
  45. package/dist/components/LDCheckbox/LDFormCheckboxGroup.js +8 -0
  46. package/dist/components/LDDataCalendar/DataCalendarBase.d.ts +17 -1
  47. package/dist/components/LDDataCalendar/DataCalendarBase.d.ts.map +1 -1
  48. package/dist/components/LDDataCalendar/DataCalendarBase.js +34 -4
  49. package/dist/components/LDDataCalendar/LDDataCalendar.d.ts +27 -10
  50. package/dist/components/LDDataCalendar/LDDataCalendar.d.ts.map +1 -1
  51. package/dist/components/LDDataCalendar/LDDataCalendar.js +8 -8
  52. package/dist/components/LDDatePicker/LDDatePicker.d.ts +10 -4
  53. package/dist/components/LDDatePicker/LDDatePicker.d.ts.map +1 -1
  54. package/dist/components/LDDatePicker/LDDatePicker.js +95 -25
  55. package/dist/components/LDDatePicker/LDFormDatePicker.d.ts +13 -0
  56. package/dist/components/LDDatePicker/LDFormDatePicker.d.ts.map +1 -0
  57. package/dist/components/LDDatePicker/LDFormDatePicker.js +15 -0
  58. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts +13 -6
  59. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts.map +1 -1
  60. package/dist/components/LDDateRangePicker/LDDateRangePicker.js +143 -93
  61. package/dist/components/LDDateRangePicker/LDFormDateRangePicker.d.ts +13 -0
  62. package/dist/components/LDDateRangePicker/LDFormDateRangePicker.d.ts.map +1 -0
  63. package/dist/components/LDDateRangePicker/LDFormDateRangePicker.js +20 -0
  64. package/dist/components/LDDrawer/LDDrawer.d.ts +2 -0
  65. package/dist/components/LDDrawer/LDDrawer.d.ts.map +1 -1
  66. package/dist/components/LDDrawer/LDDrawer.js +2 -2
  67. package/dist/components/LDEditor/LDEditor.d.ts.map +1 -1
  68. package/dist/components/LDEditor/LDEditor.js +94 -54
  69. package/dist/components/LDEmpty/EmptyBase.d.ts +19 -0
  70. package/dist/components/LDEmpty/EmptyBase.d.ts.map +1 -0
  71. package/dist/components/LDEmpty/EmptyBase.js +18 -0
  72. package/dist/components/LDEmpty/LDEmpty.d.ts +35 -0
  73. package/dist/components/LDEmpty/LDEmpty.d.ts.map +1 -0
  74. package/dist/components/LDEmpty/LDEmpty.js +30 -0
  75. package/dist/components/LDFileUpload/FileUploadBase.d.ts +11 -3
  76. package/dist/components/LDFileUpload/FileUploadBase.d.ts.map +1 -1
  77. package/dist/components/LDFileUpload/FileUploadBase.js +21 -21
  78. package/dist/components/LDFileUpload/LDFileUpload.d.ts +3 -0
  79. package/dist/components/LDFileUpload/LDFileUpload.d.ts.map +1 -1
  80. package/dist/components/LDFileUpload/LDFileUpload.js +3 -3
  81. package/dist/components/LDFileUpload/LDFileUploadList.d.ts +3 -0
  82. package/dist/components/LDFileUpload/LDFileUploadList.d.ts.map +1 -1
  83. package/dist/components/LDFileUpload/LDFileUploadList.js +1 -3
  84. package/dist/components/LDFileUpload/LDImageUpload.d.ts +5 -0
  85. package/dist/components/LDFileUpload/LDImageUpload.d.ts.map +1 -1
  86. package/dist/components/LDFileUpload/LDImageUpload.js +5 -3
  87. package/dist/components/LDFileUpload/LDImageUploadList.d.ts +3 -0
  88. package/dist/components/LDFileUpload/LDImageUploadList.d.ts.map +1 -1
  89. package/dist/components/LDFileUpload/LDImageUploadList.js +1 -3
  90. package/dist/components/LDForm/LDFormErrorMessage.d.ts +3 -1
  91. package/dist/components/LDForm/LDFormErrorMessage.d.ts.map +1 -1
  92. package/dist/components/LDForm/LDFormErrorMessage.js +2 -2
  93. package/dist/components/LDInput/InputBase.d.ts +5 -3
  94. package/dist/components/LDInput/InputBase.d.ts.map +1 -1
  95. package/dist/components/LDInput/InputBase.js +4 -4
  96. package/dist/components/LDInput/LDFormInput.d.ts +1 -1
  97. package/dist/components/LDInput/LDFormInput.d.ts.map +1 -1
  98. package/dist/components/LDInput/LDFormInput.js +17 -14
  99. package/dist/components/LDInput/LDInput.d.ts +10 -3
  100. package/dist/components/LDInput/LDInput.d.ts.map +1 -1
  101. package/dist/components/LDInput/LDInput.js +114 -50
  102. package/dist/components/LDLNB/LDLNB.d.ts +42 -0
  103. package/dist/components/LDLNB/LDLNB.d.ts.map +1 -0
  104. package/dist/components/LDLNB/LDLNB.js +34 -0
  105. package/dist/components/LDLNB/LDLNBBase.d.ts +5 -13
  106. package/dist/components/LDLNB/LDLNBBase.d.ts.map +1 -1
  107. package/dist/components/LDLNB/LDLNBBase.js +52 -18
  108. package/dist/components/LDMenuBar/LDMenuBar.d.ts +33 -19
  109. package/dist/components/LDMenuBar/LDMenuBar.d.ts.map +1 -1
  110. package/dist/components/LDMenuBar/LDMenuBar.js +13 -27
  111. package/dist/components/LDMenuBar/MenuBarBase.d.ts +4 -5
  112. package/dist/components/LDMenuBar/MenuBarBase.d.ts.map +1 -1
  113. package/dist/components/LDMenuBar/MenuBarBase.js +12 -14
  114. package/dist/components/LDModal/LDModal.d.ts +20 -40
  115. package/dist/components/LDModal/LDModal.d.ts.map +1 -1
  116. package/dist/components/LDModal/LDModal.js +56 -70
  117. package/dist/components/LDModal/LDModalView.d.ts +59 -0
  118. package/dist/components/LDModal/LDModalView.d.ts.map +1 -0
  119. package/dist/components/LDModal/LDModalView.js +72 -0
  120. package/dist/components/LDNotification/LDNotification.d.ts +40 -0
  121. package/dist/components/LDNotification/LDNotification.d.ts.map +1 -0
  122. package/dist/components/LDNotification/LDNotification.js +76 -0
  123. package/dist/components/LDNotification/NotificationBase.d.ts +29 -0
  124. package/dist/components/LDNotification/NotificationBase.d.ts.map +1 -0
  125. package/dist/components/LDNotification/NotificationBase.js +27 -0
  126. package/dist/components/LDOTPInput/LDFormOTPInput.d.ts +15 -0
  127. package/dist/components/LDOTPInput/LDFormOTPInput.d.ts.map +1 -0
  128. package/dist/components/LDOTPInput/LDFormOTPInput.js +8 -0
  129. package/dist/components/LDOTPInput/LDOTPInput.d.ts +10 -22
  130. package/dist/components/LDOTPInput/LDOTPInput.d.ts.map +1 -1
  131. package/dist/components/LDOTPInput/LDOTPInput.js +44 -72
  132. package/dist/components/LDOTPInput/OTPInputBase.d.ts +46 -0
  133. package/dist/components/LDOTPInput/OTPInputBase.d.ts.map +1 -0
  134. package/dist/components/LDOTPInput/OTPInputBase.js +48 -0
  135. package/dist/components/LDPagination/LDPagination.d.ts +5 -1
  136. package/dist/components/LDPagination/LDPagination.d.ts.map +1 -1
  137. package/dist/components/LDPagination/LDPagination.js +3 -1
  138. package/dist/components/LDPagination/PaginationBase.d.ts +13 -4
  139. package/dist/components/LDPagination/PaginationBase.d.ts.map +1 -1
  140. package/dist/components/LDPagination/PaginationBase.js +8 -7
  141. package/dist/components/LDPopover/LDPopover.d.ts +1 -1
  142. package/dist/components/LDPopover/LDPopover.d.ts.map +1 -1
  143. package/dist/components/LDPopover/LDPopover.js +8 -7
  144. package/dist/components/LDProgressBar/LDProgressBar.d.ts +16 -0
  145. package/dist/components/LDProgressBar/LDProgressBar.d.ts.map +1 -0
  146. package/dist/components/LDProgressBar/LDProgressBar.js +9 -0
  147. package/dist/components/LDProgressBar/ProgressBarBase.d.ts +11 -0
  148. package/dist/components/LDProgressBar/ProgressBarBase.d.ts.map +1 -0
  149. package/dist/components/LDProgressBar/ProgressBarBase.js +10 -0
  150. package/dist/components/LDRadio/LDFormRadioGroup.d.ts +11 -0
  151. package/dist/components/LDRadio/LDFormRadioGroup.d.ts.map +1 -0
  152. package/dist/components/LDRadio/LDFormRadioGroup.js +8 -0
  153. package/dist/components/LDRadio/LDRadio.d.ts +2 -2
  154. package/dist/components/LDRadio/LDRadio.d.ts.map +1 -1
  155. package/dist/components/LDRadio/LDRadio.js +70 -15
  156. package/dist/components/LDRadio/LDRadioGroup.d.ts +5 -3
  157. package/dist/components/LDRadio/LDRadioGroup.d.ts.map +1 -1
  158. package/dist/components/LDRadio/LDRadioGroup.js +11 -2
  159. package/dist/components/LDRadio/RadioBase.d.ts +2 -3
  160. package/dist/components/LDRadio/RadioBase.d.ts.map +1 -1
  161. package/dist/components/LDRadio/RadioBase.js +7 -4
  162. package/dist/components/LDSectionNav/LDSectionNav.d.ts +11 -0
  163. package/dist/components/LDSectionNav/LDSectionNav.d.ts.map +1 -0
  164. package/dist/components/LDSectionNav/LDSectionNav.js +11 -0
  165. package/dist/components/LDSectionNav/SectionNavBase.d.ts +20 -0
  166. package/dist/components/LDSectionNav/SectionNavBase.d.ts.map +1 -0
  167. package/dist/components/LDSectionNav/SectionNavBase.js +53 -0
  168. package/dist/components/LDSelect/LDFormMultiSelect.d.ts +13 -0
  169. package/dist/components/LDSelect/LDFormMultiSelect.d.ts.map +1 -0
  170. package/dist/components/LDSelect/{FormMultiSelect.js → LDFormMultiSelect.js} +2 -2
  171. package/dist/components/LDSelect/LDFormSelect.d.ts +13 -0
  172. package/dist/components/LDSelect/LDFormSelect.d.ts.map +1 -0
  173. package/dist/components/LDSelect/LDFormSelect.js +10 -0
  174. package/dist/components/LDSelect/LDMultiSelect.d.ts +6 -3
  175. package/dist/components/LDSelect/LDMultiSelect.d.ts.map +1 -1
  176. package/dist/components/LDSelect/LDMultiSelect.js +35 -31
  177. package/dist/components/LDSelect/LDSelect.d.ts +6 -3
  178. package/dist/components/LDSelect/LDSelect.d.ts.map +1 -1
  179. package/dist/components/LDSelect/LDSelect.js +37 -30
  180. package/dist/components/LDSelect/SelectBase.d.ts.map +1 -1
  181. package/dist/components/LDSelect/SelectBase.js +21 -7
  182. package/dist/components/LDSpinner/LDSpinner.d.ts +1 -1
  183. package/dist/components/LDSpinner/LDSpinner.d.ts.map +1 -1
  184. package/dist/components/LDSpinner/LDSpinner.js +6 -6
  185. package/dist/components/LDTable/LDCollapsibleTanstackTable.d.ts.map +1 -1
  186. package/dist/components/LDTable/LDCollapsibleTanstackTable.js +12 -9
  187. package/dist/components/LDTable/LDTable.d.ts.map +1 -1
  188. package/dist/components/LDTable/LDTable.js +1 -1
  189. package/dist/components/LDTable/LDTanstackTable.d.ts.map +1 -1
  190. package/dist/components/LDTable/LDTanstackTable.js +6 -7
  191. package/dist/components/LDTable/TableField.d.ts +1 -1
  192. package/dist/components/LDTable/TableField.d.ts.map +1 -1
  193. package/dist/components/LDTextarea/LDFormTextarea.d.ts +14 -0
  194. package/dist/components/LDTextarea/LDFormTextarea.d.ts.map +1 -0
  195. package/dist/components/LDTextarea/{FormTextarea.js → LDFormTextarea.js} +2 -2
  196. package/dist/components/LDTextarea/LDTextarea.d.ts +1 -1
  197. package/dist/components/LDTextarea/LDTextarea.d.ts.map +1 -1
  198. package/dist/components/LDTextarea/LDTextarea.js +30 -30
  199. package/dist/components/LDTimePicker/LDFormTimePicker.d.ts +12 -0
  200. package/dist/components/LDTimePicker/LDFormTimePicker.d.ts.map +1 -0
  201. package/dist/components/LDTimePicker/{FormTimePicker.js → LDFormTimePicker.js} +3 -3
  202. package/dist/components/LDTimePicker/LDTimePicker.js +3 -3
  203. package/dist/components/LDToast/LDToast.js +1 -1
  204. package/dist/components/LDToast/LDToaster.d.ts +2 -1
  205. package/dist/components/LDToast/LDToaster.d.ts.map +1 -1
  206. package/dist/components/LDToast/LDToaster.js +2 -2
  207. package/dist/components/LDToggleButton/LDFormToggleButton.d.ts +10 -0
  208. package/dist/components/LDToggleButton/LDFormToggleButton.d.ts.map +1 -0
  209. package/dist/components/LDToggleButton/LDFormToggleButton.js +8 -0
  210. package/dist/components/LDTooltip/LDTooltip.js +1 -1
  211. package/dist/components/LDTooltip/TooltipBase.d.ts +6 -2
  212. package/dist/components/LDTooltip/TooltipBase.d.ts.map +1 -1
  213. package/dist/components/LDTooltip/TooltipBase.js +4 -4
  214. package/dist/index.css +913 -307
  215. package/dist/index.d.ts +28 -19
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +32 -20
  218. package/dist/utils/file.d.ts +2 -2
  219. package/dist/utils/file.d.ts.map +1 -1
  220. package/dist/utils/file.js +26 -23
  221. package/dist/utils/renderIcon.d.ts +1 -2
  222. package/dist/utils/renderIcon.d.ts.map +1 -1
  223. package/dist/utils/renderIcon.js +5 -4
  224. package/package.json +14 -2
  225. package/src/styles/carousel.css +15 -14
  226. package/src/styles/components/button.css +2 -2
  227. package/src/styles/components/editor.css +6 -0
  228. package/src/styles/components/index.css +1 -0
  229. package/src/styles/components/input.css +16 -2
  230. package/src/styles/components/select.css +61 -0
  231. package/src/styles/components/shared.css +6 -6
  232. package/src/styles/motion.css +115 -0
  233. package/src/theme.css +3 -0
  234. package/dist/components/Icon/LucideIcon.d.ts +0 -12
  235. package/dist/components/Icon/LucideIcon.d.ts.map +0 -1
  236. package/dist/components/Icon/LucideIcon.js +0 -49
  237. package/dist/components/LDCheckbox/FormCheckbox.d.ts +0 -14
  238. package/dist/components/LDCheckbox/FormCheckbox.d.ts.map +0 -1
  239. package/dist/components/LDCheckbox/FormCheckbox.js +0 -9
  240. package/dist/components/LDCheckbox/FormCheckboxGroup.d.ts +0 -13
  241. package/dist/components/LDCheckbox/FormCheckboxGroup.d.ts.map +0 -1
  242. package/dist/components/LDCheckbox/FormCheckboxGroup.js +0 -9
  243. package/dist/components/LDDatePicker/FormDatePicker.d.ts +0 -12
  244. package/dist/components/LDDatePicker/FormDatePicker.d.ts.map +0 -1
  245. package/dist/components/LDDatePicker/FormDatePicker.js +0 -12
  246. package/dist/components/LDDateRangePicker/FormDateRangePicker.d.ts +0 -12
  247. package/dist/components/LDDateRangePicker/FormDateRangePicker.d.ts.map +0 -1
  248. package/dist/components/LDDateRangePicker/FormDateRangePicker.js +0 -10
  249. package/dist/components/LDModal/openModal.d.ts +0 -24
  250. package/dist/components/LDModal/openModal.d.ts.map +0 -1
  251. package/dist/components/LDModal/openModal.js +0 -52
  252. package/dist/components/LDRadio/FormRadioGroup.d.ts +0 -13
  253. package/dist/components/LDRadio/FormRadioGroup.d.ts.map +0 -1
  254. package/dist/components/LDRadio/FormRadioGroup.js +0 -9
  255. package/dist/components/LDSelect/FormMultiSelect.d.ts +0 -13
  256. package/dist/components/LDSelect/FormMultiSelect.d.ts.map +0 -1
  257. package/dist/components/LDSelect/FormSelect.d.ts +0 -13
  258. package/dist/components/LDSelect/FormSelect.d.ts.map +0 -1
  259. package/dist/components/LDSelect/FormSelect.js +0 -10
  260. package/dist/components/LDTextarea/FormTextarea.d.ts +0 -14
  261. package/dist/components/LDTextarea/FormTextarea.d.ts.map +0 -1
  262. package/dist/components/LDTimePicker/FormTimePicker.d.ts +0 -12
  263. package/dist/components/LDTimePicker/FormTimePicker.d.ts.map +0 -1
  264. package/dist/components/LDToggleButton/FormToggleButton.d.ts +0 -12
  265. package/dist/components/LDToggleButton/FormToggleButton.d.ts.map +0 -1
  266. package/dist/components/LDToggleButton/FormToggleButton.js +0 -9
@@ -1,59 +1,63 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import SelectBase from './SelectBase.js';
3
- import LucideIcon from '../Icon/LucideIcon.js';
4
3
  import cn from '../../utils/cn.js';
5
- // ── variant × color 조합 ──
4
+ import { Check, ChevronDown, X } from 'lucide-react';
5
+ // ── variant × color 조합 (LDSelect와 동일) ──
6
6
  const variantColorClasses = {
7
7
  filled: {
8
- neutral: 'bg-neutral5 text-neutral100 border-[0.5px] border-mono200 data-[state=open]:border-lb500',
9
- point: 'bg-neutral5 text-neutral100 border-[0.5px] border-mono200 data-[state=open]:border-lb500',
10
- danger: 'bg-tintRed text-neutral100 border-[0.5px] border-transparent data-[state=open]:border-red500',
8
+ neutral: 'bg-neutral50 text-neutral900 border-none outline-2 outline-transparent [outline-style:solid] [outline-offset:-2px] focus:bg-tintBlue focus:outline-lb500',
9
+ point: 'bg-tintBlue text-neutral900 border-none outline-2 outline-transparent [outline-style:solid] [outline-offset:-2px] focus:outline-lb500',
10
+ danger: 'bg-tintRed text-neutral900 border-none outline-2 outline-transparent [outline-style:solid] [outline-offset:-2px] outline-danger600',
11
11
  },
12
12
  outline: {
13
- neutral: 'bg-transparent text-neutral100 border border-neutral100 data-[state=open]:border-lb500',
14
- point: 'bg-transparent text-neutral100 border border-neutral100 data-[state=open]:border-lb500',
15
- danger: 'bg-transparent text-neutral100 border border-danger100 data-[state=open]:border-red500',
16
- },
17
- ghost: {
18
- neutral: 'bg-transparent text-neutral100 border-[0.5px] border-transparent data-[state=open]:border-lb500 hover:bg-neutral5',
19
- point: 'bg-transparent text-neutral100 border-[0.5px] border-transparent data-[state=open]:border-lb500 hover:bg-neutral5',
20
- danger: 'bg-transparent text-danger500 border-[0.5px] border-transparent data-[state=open]:border-red500 hover:bg-tintRed',
13
+ neutral: 'bg-transparent text-neutral900 border-none outline-2 outline-neutral100 [outline-style:solid] [outline-offset:-2px] focus:outline-lb500',
14
+ point: 'bg-transparent text-neutral900 border-none outline-2 outline-lb500 [outline-style:solid] [outline-offset:-2px]',
15
+ danger: 'bg-transparent text-neutral900 border-none outline-2 outline-danger600 [outline-style:solid] [outline-offset:-2px]',
21
16
  },
22
17
  };
23
18
  const disabledVariantClasses = {
24
- filled: 'bg-mono20 text-neutral20',
25
- outline: 'bg-transparent text-neutral20 border border-mono20',
26
- ghost: 'bg-transparent text-neutral20',
19
+ filled: 'bg-mono100 text-neutral300 border-none',
20
+ outline: 'bg-mono100 text-neutral300 border-none',
27
21
  };
22
+ // 칩이 줄바꿈될 수 있어 트리거·아이템 모두 min-height 기반(select-item-*)
28
23
  const sizeClasses = {
29
- xs: 'min-h-[38px] display14',
30
- sm: 'min-h-10 display14',
31
- md: 'min-h-[56px] display16',
32
- lg: 'min-h-[62px] display18',
24
+ '2xsmall': 'select-item-2xs',
25
+ xsmall: 'select-item-xs',
26
+ small: 'select-item-sm',
27
+ medium: 'select-item-md',
28
+ large: 'select-item-lg',
29
+ xlarge: 'select-item-xl',
33
30
  };
34
31
  const iconSizes = {
35
- xs: 15,
36
- sm: 15,
37
- md: 16,
38
- lg: 16,
32
+ '2xsmall': 10,
33
+ xsmall: 12,
34
+ small: 14,
35
+ medium: 16,
36
+ large: 18,
37
+ xlarge: 20,
38
+ };
39
+ const alignClasses = {
40
+ left: 'justify-start',
41
+ center: 'justify-center',
42
+ right: 'justify-end',
39
43
  };
40
- const LDMultiSelect = ({ items, placeholder = '선택하세요', value = [], onChange, disabled = false, name, variant, color = 'neutral', size, maxDisplay = 2, truncate = true, className, style, contentClassName, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedby, }) => {
41
- const iconSize = iconSizes[size ?? 'sm'];
44
+ const LDMultiSelect = ({ items, placeholder = '선택해주세요', value = [], onChange, disabled = false, name, variant, color = 'neutral', size, align = 'left', maxDisplay = 2, truncate = true, className, style, contentClassName, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedby, }) => {
45
+ const iconSize = iconSizes[size ?? 'medium'];
42
46
  return (_jsxs(SelectBase.Root, { multiple: true, values: value, onMultiChange: onChange, disabled: disabled, name: name, items: items, maxDisplay: maxDisplay, children: [_jsx(SelectBase.Trigger, { style: style, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, className: cn('group rounded-[5px] ld-transition outline-none cursor-pointer', variant &&
43
47
  (disabled
44
48
  ? disabledVariantClasses[variant]
45
- : variantColorClasses[variant][color]), size && sizeClasses[size], disabled && 'cursor-not-allowed disabled:cursor-not-allowed', className), children: truncate ? (_jsxs("div", { className: "flex gap-sm items-center w-full justify-center px-3 py-1.5", children: [_jsx(SelectBase.Value, { placeholder: placeholder, className: "flex flex-1 bold display14 justify-center text-neutral900", placeholderClassName: "text-neutral200" }), _jsx(LucideIcon, { name: "chevronDown", size: iconSize, className: "text-neutral500 shrink-0" })] })) : (_jsxs("div", { className: "flex gap-sm items-center w-full justify-between px-3 py-1.5", children: [_jsx("div", { className: "flex flex-1 flex-wrap gap-1.5 items-center justify-start text-left", children: value.length === 0 ? (_jsx("span", { className: "text-neutral900", children: placeholder })) : (value.map((v) => {
49
+ : variantColorClasses[variant][color]), size && sizeClasses[size], disabled && 'cursor-not-allowed disabled:cursor-not-allowed', className), children: truncate ? (_jsxs("div", { className: "flex gap-sm items-center w-full justify-center px-3 py-1.5", children: [_jsx(SelectBase.Value, { placeholder: placeholder, className: cn('flex flex-1 bold text-neutral900', alignClasses[align]), placeholderClassName: "text-neutral200" }), _jsx(ChevronDown, { size: iconSize, className: "text-neutral500 shrink-0" })] })) : (_jsxs("div", { className: "flex gap-sm items-center w-full justify-between px-3 py-1.5", children: [_jsx("div", { className: cn('flex flex-1 flex-wrap gap-1.5 items-center text-left', alignClasses[align]), children: value.length === 0 ? (_jsx("span", { className: "text-neutral200", children: placeholder })) : (value.map((v) => {
46
50
  const label = items.find((i) => i.value === v)?.label || v;
47
- return (_jsxs("span", { className: "flex items-center justify-between px-2 py-1 bg-white rounded-[4px] display12 text-neutral900 shadow-sm", children: [label, _jsx("div", { role: "button", "aria-label": `${label} 삭제`, onClick: (e) => {
51
+ return (_jsxs("span", { className: "flex items-center justify-between px-2 py-1 bg-white rounded-sm display12 text-neutral900 border border-neutral100 animate-fade-in", children: [label, _jsx("div", { role: "button", "aria-label": `${label} 삭제`, onClick: (e) => {
48
52
  e.stopPropagation();
49
53
  e.preventDefault();
50
54
  if (!disabled) {
51
55
  onChange?.(value.filter((val) => val !== v));
52
56
  }
53
- }, className: "ml-1 text-neutral900 hover:text-neutral800 cursor-pointer flex items-center justify-center", children: _jsx(LucideIcon, { name: "x", size: 14 }) })] }, v));
54
- })) }), _jsx(LucideIcon, { name: "chevronDown", size: iconSize, className: "text-neutral500 shrink-0" })] })) }), _jsx(SelectBase.Content, { className: cn('rounded-[5px] bg-mono5 border border-mono200 p-2 flex flex-col gap-[2px]', 'origin-top overflow-hidden ld-transition', contentClassName), openClassName: "max-h-[230px] opacity-100 translate-y-0 overflow-y-auto scrollbar-none", closedClassName: "max-h-0 opacity-0 -translate-y-1 pointer-events-none", children: items.map((opt) => {
57
+ }, className: "ml-1 text-neutral900 hover:text-neutral800 cursor-pointer flex items-center justify-center", children: _jsx(X, { size: 14 }) })] }, v));
58
+ })) }), _jsx(ChevronDown, { size: iconSize, className: "text-neutral500 shrink-0" })] })) }), _jsx(SelectBase.Content, { className: cn('rounded-[5px] bg-white border border-mono100 p-2 flex flex-col gap-3xs', 'max-h-57.5 overflow-y-auto scrollbar-none transition-opacity duration-300 ease-out', contentClassName), openClassName: "opacity-100", closedClassName: "opacity-0 pointer-events-none", children: items.map((opt) => {
55
59
  const isSelected = value.includes(opt.value);
56
- return (_jsxs(SelectBase.Item, { value: opt.value, className: cn('cursor-pointer hover:bg-neutral5 py-xs px-sm rounded-[5px] display14 regular transition-all duration-200 outline-none', 'focus:bg-neutral5 focus:ring-1 focus:ring-inset focus:ring-lb500', 'flex items-center gap-2', isSelected && 'bg-neutral5'), children: [_jsx("div", { className: cn('w-4 h-4 rounded border flex items-center justify-center transition-all', isSelected ? 'bg-lb500 border-lb500' : 'border-neutral20'), children: isSelected && (_jsx(LucideIcon, { name: "check", size: 12, className: "text-white" })) }), _jsx(SelectBase.ItemText, { children: opt.label })] }, opt.value));
60
+ return (_jsxs(SelectBase.Item, { value: opt.value, className: cn('cursor-pointer px-sm rounded-[5px] regular outline-none ld-transition', sizeClasses[size ?? 'medium'], 'hover:bg-neutral50 focus:bg-tintBlue', 'flex items-center gap-2', isSelected && 'bg-tintBlue'), children: [_jsx("div", { className: cn('outline-2 outline-solid -outline-offset-2 rounded-[5px] p-0.75 ld-transition', isSelected ? 'bg-lb500 outline-lb500' : 'outline-mono300'), children: _jsx(Check, { size: 10, className: cn('shrink-0 ld-transition', isSelected ? 'text-white' : 'text-transparent') }) }), _jsx(SelectBase.ItemText, { children: opt.label })] }, opt.value));
57
61
  }) })] }));
58
62
  };
59
63
  export default LDMultiSelect;
@@ -1,8 +1,9 @@
1
1
  import type { CSSProperties } from 'react';
2
2
  import { type SelectOption } from './SelectBase.js';
3
- type SelectVariant = 'filled' | 'outline' | 'ghost';
3
+ type SelectVariant = 'filled' | 'outline';
4
4
  type SelectColor = 'neutral' | 'point' | 'danger';
5
- type SelectSize = 'xs' | 'sm' | 'md' | 'lg';
5
+ type SelectSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
6
+ type SelectAlign = 'left' | 'center' | 'right';
6
7
  export interface LDSelectProps {
7
8
  /** 선택 옵션 목록 ({ value, label }) */
8
9
  items: SelectOption[];
@@ -24,6 +25,8 @@ export interface LDSelectProps {
24
25
  color?: SelectColor;
25
26
  /** 드롭다운 높이 및 폰트 크기 프리셋 */
26
27
  size?: SelectSize;
28
+ /** 트리거에 표시되는 선택값/placeholder의 정렬 (기본 left) */
29
+ align?: SelectAlign;
27
30
  /** 추가 CSS 클래스 */
28
31
  className?: string;
29
32
  /** 인라인 스타일 */
@@ -36,6 +39,6 @@ export interface LDSelectProps {
36
39
  'aria-describedby'?: string;
37
40
  }
38
41
  export type { SelectOption };
39
- declare const LDSelect: ({ items, placeholder, value, defaultValue, onChange, disabled, name, variant, color, size, className, style, contentClassName, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, }: LDSelectProps) => import("react/jsx-runtime").JSX.Element;
42
+ declare const LDSelect: ({ items, placeholder, value, defaultValue, onChange, disabled, name, variant, color, size, align, className, style, contentClassName, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, }: LDSelectProps) => import("react/jsx-runtime").JSX.Element;
40
43
  export default LDSelect;
41
44
  //# sourceMappingURL=LDSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDSelect.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/LDSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK7D,KAAK,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AACpD,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClD,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAwD5C,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY;IACZ,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,QAAA,MAAM,QAAQ,GAAI,oMAgBf,aAAa,4CAyEf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"LDSelect.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/LDSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK7D,KAAK,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC1C,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClD,KAAK,UAAU,GACX,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AACb,KAAK,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AA+D/C,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY;IACZ,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,QAAA,MAAM,QAAQ,GAAI,2MAiBf,aAAa,4CAoFf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,54 +1,61 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import SelectBase from './SelectBase.js';
3
- import LucideIcon from '../Icon/LucideIcon.js';
4
3
  import cn from '../../utils/cn.js';
5
- // ── variant × color 조합 (LDDropdown 기준) ──
4
+ import { ChevronDown, ChevronUp } from 'lucide-react';
6
5
  const variantColorClasses = {
7
6
  filled: {
8
- neutral: 'bg-neutral50 text-neutral900 border-[0.5px] border-transparent data-[state=open]:border-lb500',
9
- point: 'bg-neutral50 text-neutral900 border-[0.5px] border-transparent data-[state=open]:border-lb500',
10
- danger: 'bg-tintRed text-neutral900 border-[0.5px] border-transparent data-[state=open]:border-red500',
7
+ neutral: 'bg-neutral50 text-neutral900 border-none outline-2 outline-transparent [outline-style:solid]',
8
+ point: 'bg-tintBlue text-neutral900 border-none outline-2 outline-transparent [outline-style:solid] [outline-offset:-2px] focus:outline-lb500',
9
+ danger: 'bg-tintRed text-neutral900 border-none outline-2 outline-transparent [outline-style:solid] [outline-offset:-2px] outline-danger600',
11
10
  },
12
11
  outline: {
13
- neutral: 'bg-transparent text-neutral900 border border-neutral100 data-[state=open]:border-lb500',
14
- point: 'bg-transparent text-neutral900 border border-neutral100 data-[state=open]:border-lb500',
15
- danger: 'bg-transparent text-neutral900 border border-danger100 data-[state=open]:border-red500',
16
- },
17
- ghost: {
18
- neutral: 'bg-transparent text-neutral900 border-[0.5px] border-transparent data-[state=open]:border-lb500 hover:bg-neutral50',
19
- point: 'bg-transparent text-neutral900 border-[0.5px] border-transparent data-[state=open]:border-lb500 hover:bg-neutral50',
20
- danger: 'bg-transparent text-danger500 border-[0.5px] border-transparent data-[state=open]:border-red500 hover:bg-tintRed',
12
+ neutral: 'bg-transparent text-neutral900 border-none outline-2 outline-neutral100 [outline-style:solid] [outline-offset:-2px] focus:outline-lb500',
13
+ point: 'bg-transparent text-neutral900 border-none outline-2 outline-lb500 [outline-style:solid] [outline-offset:-2px]',
14
+ danger: 'bg-transparent text-neutral900 border-none outline-2 outline-danger600 [outline-style:solid] [outline-offset:-2px]',
21
15
  },
22
16
  };
23
- // ── disabled 시 variant별 스타일 ──
24
17
  const disabledVariantClasses = {
25
- filled: 'bg-mono300 text-neutral300',
26
- outline: 'bg-transparent text-neutral300 border border-mono300',
27
- ghost: 'bg-transparent text-neutral300',
18
+ filled: 'bg-mono100 text-neutral300 border-none',
19
+ outline: 'bg-mono100 text-neutral300 border-none',
28
20
  };
29
- // ── size (LDDropdown: display14, h-[38px] 기준) ──
30
21
  const sizeClasses = {
31
- xs: 'h-[38px] display14',
32
- sm: 'h-10 display14',
33
- md: 'h-[56px] display16',
34
- lg: 'h-[62px] display18',
22
+ '2xsmall': 'select-2xs',
23
+ xsmall: 'select-xs',
24
+ small: 'select-sm',
25
+ medium: 'select-md',
26
+ large: 'select-lg',
27
+ xlarge: 'select-xl',
28
+ };
29
+ const itemSizeClasses = {
30
+ '2xsmall': 'select-item-2xs',
31
+ xsmall: 'select-item-xs',
32
+ small: 'select-item-sm',
33
+ medium: 'select-item-md',
34
+ large: 'select-item-lg',
35
+ xlarge: 'select-item-xl',
35
36
  };
36
37
  const iconSizes = {
37
- xs: 15,
38
- sm: 15,
39
- md: 16,
40
- lg: 16,
38
+ '2xsmall': 10,
39
+ xsmall: 12,
40
+ small: 14,
41
+ medium: 16,
42
+ large: 18,
43
+ xlarge: 20,
44
+ };
45
+ const alignClasses = {
46
+ left: 'justify-start',
47
+ center: 'justify-center',
48
+ right: 'justify-end',
41
49
  };
42
- const LDSelect = ({ items, placeholder = '선택하세요', value, defaultValue, onChange, disabled = false, name, variant, color = 'neutral', size, className, style, contentClassName, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedby, }) => {
43
- const iconSize = iconSizes[size ?? 'sm'];
44
- // value가 items에 매칭되지 않으면 undefined (Value가 placeholder 표시)
50
+ const LDSelect = ({ items, placeholder = '선택해주세요', value, defaultValue, onChange, disabled = false, name, variant, color = 'neutral', size, align = 'left', className, style, contentClassName, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedby, }) => {
51
+ const iconSize = iconSizes[size ?? 'medium'];
45
52
  const resolvedValue = items.some((item) => item.value === value)
46
53
  ? value
47
54
  : undefined;
48
55
  return (_jsxs(SelectBase.Root, { value: resolvedValue, defaultValue: defaultValue, onChange: onChange, disabled: disabled, name: name, items: items, children: [_jsx(SelectBase.Trigger, { style: style, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, className: cn('group rounded-[5px] ld-transition outline-none cursor-pointer', variant &&
49
56
  (disabled
50
57
  ? disabledVariantClasses[variant]
51
- : variantColorClasses[variant][color]), size && sizeClasses[size], disabled && 'cursor-not-allowed disabled:cursor-not-allowed', className), children: _jsxs("div", { className: "flex gap-sm items-center w-full justify-center px-3", children: [_jsx(SelectBase.Value, { placeholder: placeholder, className: "flex flex-1 bold justify-center" }), _jsx(LucideIcon, { name: "chevronDown", size: iconSize, className: "text-neutral500" })] }) }), _jsx(SelectBase.Content, { className: cn('rounded-[5px] bg-white border border-mono100 p-2 flex flex-col gap-3xs', 'origin-top overflow-hidden ld-transition', contentClassName), openClassName: "max-h-[230px] opacity-100 translate-y-0 overflow-y-auto scrollbar-none", closedClassName: "max-h-0 opacity-0 -translate-y-1 pointer-events-none", children: items.map((opt) => (_jsx(SelectBase.Item, { value: opt.value, className: cn('w-full text-left px-3 py-2 rounded-[5px] display14 transition-all cursor-pointer outline-none', 'hover:bg-lb50 hover:text-lb500', 'focus:bg-lb50 focus:text-lb500 focus:ring-1 focus:ring-inset focus:ring-lb500', resolvedValue === opt.value
58
+ : variantColorClasses[variant][color]), disabled && 'cursor-not-allowed disabled:cursor-not-allowed', size && sizeClasses[size], className), children: _jsxs("div", { className: "flex gap-sm items-center w-full justify-center px-3", children: [_jsx(SelectBase.Value, { placeholder: placeholder, className: cn('flex flex-1 bold ', alignClasses[align]), placeholderClassName: "text-neutral200" }), _jsxs("span", { className: "relative shrink-0", style: { width: iconSize, height: iconSize }, children: [_jsx(ChevronDown, { size: iconSize, className: "absolute left-0 top-0 text-neutral500 transition-opacity duration-300 ease-out opacity-100 group-data-[state=open]:opacity-0" }), _jsx(ChevronUp, { size: iconSize, className: "absolute left-0 top-0 text-neutral500 transition-opacity duration-300 ease-out opacity-0 group-data-[state=open]:opacity-100" })] })] }) }), _jsx(SelectBase.Content, { className: cn('rounded-[5px] bg-white border border-mono100 p-2 flex flex-col gap-3xs', 'max-h-57.5 overflow-y-auto scrollbar-none transition-opacity duration-300 ease-out', contentClassName), openClassName: "opacity-100", closedClassName: "opacity-0 pointer-events-none", children: items.map((opt) => (_jsx(SelectBase.Item, { value: opt.value, className: cn('w-full text-left', 'px-3 rounded-sm', itemSizeClasses[size ?? 'medium'], 'transition-all cursor-pointer outline-none', 'hover:bg-neutral50', 'focus:bg-tintBlue', resolvedValue === opt.value
52
59
  ? 'bg-neutral100 font-bold text-neutral900'
53
60
  : 'text-neutral800'), children: _jsx(SelectBase.ItemText, { children: opt.label }) }, opt.value))) })] }));
54
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/SelectBase.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAQf,MAAM,OAAO,CAAC;AAsCf,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsGD,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAyDD,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA8CD,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA4DD,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA4FD,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,UAAU;4IAhYpB,SAAS;iHAqGT,YAAY;+DA2DZ,UAAU;wEAoDV,YAAY;sDA2D0C,SAAS;6BAqFlC;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE;6CAUR,kBAAkB;CA0BjE,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"SelectBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/SelectBase.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAQf,MAAM,OAAO,CAAC;AAsCf,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAsGD,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA8DD,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA8CD,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAyDD,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAuGD,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAeD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,UAAU;4IA7YpB,SAAS;iHAqGT,YAAY;+DAgEZ,UAAU;wEAoDV,YAAY;sDAwD0C,SAAS;6BAgGlC;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE;6CAUR,kBAAkB;CA0BjE,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -82,16 +82,21 @@ const Trigger = ({ className, style, children, 'aria-invalid': ariaInvalid, 'ari
82
82
  e.preventDefault();
83
83
  if (!open) {
84
84
  setOpen(true);
85
+ return;
86
+ }
87
+ const listbox = document.getElementById(listboxId);
88
+ if (e.key === 'ArrowDown') {
89
+ listbox?.querySelector('[role="option"]')?.focus();
85
90
  }
86
- else if (e.key === 'ArrowDown') {
87
- const listbox = document.getElementById(listboxId);
88
- const firstOption = listbox?.querySelector('[role="option"]');
89
- firstOption?.focus();
91
+ else if (e.key === 'Enter' || e.key === ' ') {
92
+ const target = (listbox?.querySelector('[role="option"][data-highlighted]') ??
93
+ listbox?.querySelector('[role="option"][aria-selected="true"]') ??
94
+ listbox?.querySelector('[role="option"]'));
95
+ target?.click();
90
96
  }
91
97
  }
92
98
  else if (e.key === 'Escape') {
93
99
  setOpen(false);
94
- // 닫힐 때 트리거로 포커스 이동을 위해 버튼을 찾음
95
100
  e.currentTarget.focus();
96
101
  }
97
102
  }, style: style, className: cn('w-full flex justify-center items-center', className), children: children }));
@@ -134,8 +139,6 @@ const Content = ({ className, openClassName, closedClassName, children, }) => {
134
139
  };
135
140
  // 즉시 포커스 (키보드 대응)
136
141
  setTimeout(focusAndScroll, 0);
137
- // 트랜지션(약 200ms) 후 스크롤 재조정 (max-height가 0일 때 scrollIntoView가 씹히는 문제 방지)
138
- setTimeout(focusAndScroll, 200);
139
142
  }
140
143
  }, [open, listboxId]);
141
144
  return (_jsx("ul", { id: listboxId, role: "listbox", tabIndex: -1, "aria-hidden": !open, "aria-multiselectable": multiple || undefined, "data-state": open ? 'open' : 'closed', className: cn('absolute z-50 w-full mt-1', className, open ? openClassName : closedClassName), children: children }));
@@ -182,6 +185,17 @@ const Item = ({ value: itemValue, className, children }) => {
182
185
  e.preventDefault();
183
186
  e.currentTarget.previousElementSibling?.focus();
184
187
  break;
188
+ case 'Tab': {
189
+ e.preventDefault();
190
+ const parent = e.currentTarget.parentElement;
191
+ const target = e.shiftKey
192
+ ? (e.currentTarget.previousElementSibling ??
193
+ parent?.lastElementChild)
194
+ : (e.currentTarget.nextElementSibling ??
195
+ parent?.firstElementChild);
196
+ target?.focus();
197
+ break;
198
+ }
185
199
  }
186
200
  }, className: cn('relative flex items-center outline-none cursor-pointer', className), children: children }) }));
187
201
  };
@@ -1,4 +1,4 @@
1
- export type SpinnerSize = 'xSmall' | 'small' | 'medium' | 'large' | 'big' | 'xLarge';
1
+ export type SpinnerSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
2
2
  export interface LDSpinnerProps {
3
3
  /**
4
4
  * LDSpinner의 크기를 지정합니다. 프리셋 이름이나 숫자(px)를 사용할 수 있습니다. (기본값: 'large' / 24px)
@@ -1 +1 @@
1
- {"version":3,"file":"LDSpinner.d.ts","sourceRoot":"","sources":["../../../src/components/LDSpinner/LDSpinner.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,KAAK,GACL,QAAQ,CAAC;AAWb,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,QAAA,MAAM,SAAS,GAAI,sCAKhB,cAAc,4CAYhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"LDSpinner.d.ts","sourceRoot":"","sources":["../../../src/components/LDSpinner/LDSpinner.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AAWb,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,QAAA,MAAM,SAAS,GAAI,sCAKhB,cAAc,4CAYhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -2,12 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { LoaderIcon, LoaderCircleIcon } from 'lucide-react';
3
3
  import cn from '../../utils/cn.js';
4
4
  const sizeMap = {
5
- xSmall: 12,
6
- small: 16,
7
- medium: 20,
8
- large: 24,
9
- big: 32,
10
- xLarge: 48,
5
+ '2xsmall': 12,
6
+ xsmall: 16,
7
+ small: 20,
8
+ medium: 24,
9
+ large: 32,
10
+ xlarge: 48,
11
11
  };
12
12
  /**
13
13
  * 디자인 시스템 표준을 따르는 LDSpinner 컴포넌트입니다.
@@ -1 +1 @@
1
- {"version":3,"file":"LDCollapsibleTanstackTable.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/LDCollapsibleTanstackTable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM/E,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B,CAAC,KAAK,EAAE,OAAO,CAAE,SAAQ,IAAI,CAC3E,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAC/B,UAAU,CACX;IACC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kBAAkB,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,0BAA0B,GAAI,KAAK,EAAE,OAAO,EAAE,wRAmBjD,+BAA+B,CAAC,KAAK,EAAE,OAAO,CAAC,4CAqMjD,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"LDCollapsibleTanstackTable.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/LDCollapsibleTanstackTable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM/E,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B,CAAC,KAAK,EAAE,OAAO,CAAE,SAAQ,IAAI,CAC3E,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAC/B,UAAU,CACX;IACC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kBAAkB,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,0BAA0B,GAAI,KAAK,EAAE,OAAO,EAAE,wRAmBjD,+BAA+B,CAAC,KAAK,EAAE,OAAO,CAAC,4CA+MjD,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -10,27 +10,30 @@ const LDCollapsibleTanstackTable = ({ columns, data, pageable, paginationState,
10
10
  const paginationFooter = pageable && totalPages > 0 ? (_jsx(LDPagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: handlePageChange, className: classNames?.pagination })) : null;
11
11
  return (_jsxs(LDTable, { title: title, totalCount: pageable?.totalCount, rightSideContents: rightSideContents, isEmpty: isEmpty, emptyMessage: emptyMessage, columnCount: columns.length, footer: paginationFooter, classNames: {
12
12
  ...classNames,
13
- wrapper: cn('overflow-x-auto relative', classNames?.wrapper),
14
13
  root: cn('w-auto min-w-full', classNames?.root),
15
14
  }, children: [_jsx(LDTable.Header, { className: cn(classNames?.thead, stickyHeader &&
16
- 'sticky top-0 bg-mono100 z-10 border-b border-neutral100'), children: headerGroups.map((hg) => (_jsx(LDTable.HeaderRow, { className: cn('group w-full', classNames?.headRow), children: hg.headers.map((header, idx) => {
15
+ 'sticky top-0 bg-mono100 z-10 border-b border-neutral100'), children: headerGroups.map((hg) => (_jsx(LDTable.HeaderRow, { className: cn('group w-full', classNames?.headRow), children: hg.headers.map((header) => {
17
16
  const h = getHeader(header);
18
17
  return (_jsxs(LDTable.HeaderCell, { className: cn('relative overflow-hidden', h.canSort && 'cursor-pointer', classNames?.headCell), style: { width: h.size }, onClick: h.toggleSortingHandler, children: [_jsxs("span", { className: cn('flex items-center gap-0.5 align-middle', h.meta?.headerAlign === 'right'
19
18
  ? 'justify-end'
20
19
  : h.meta?.headerAlign === 'left'
21
20
  ? 'justify-start'
22
- : 'justify-center'), children: [_jsx("span", { className: "truncate min-w-0", style: { maxWidth: h.size }, children: h.renderHeader() }), h.isSorted === 'asc' && (_jsx(ArrowUp, { className: "size-3 shrink-0" })), h.isSorted === 'desc' && (_jsx(ArrowDown, { className: "size-3 shrink-0" }))] }), header.column.getCanResize() && (_jsx("div", { onMouseDown: h.resizeHandler, onTouchStart: h.resizeHandler, onClick: (e) => e.stopPropagation(), className: cn('absolute right-0 top-0 h-full w-5 group-hover:cursor-col-resize touch-none select-none opacity-0 group-hover:opacity-100 ld-transition flex justify-center', idx === hg.headers.length - 1 && 'justify-end'), children: _jsx("div", { className: "h-full w-1 bg-neutral200" }) }))] }, h.id));
23
- }) }, hg.id))) }), _jsx(LDTable.Body, { children: rows.map((row) => (_jsxs(_Fragment, { children: [_jsxs(LDTable.Row, { selected: row.getIsSelected(), className: cn('relative cursor-pointer', classNames?.row), onClick: () => {
21
+ : 'justify-center'), children: [_jsx("span", { className: "truncate min-w-0", style: { maxWidth: h.size }, children: h.renderHeader() }), h.isSorted === 'asc' && (_jsx(ArrowUp, { className: "size-3 shrink-0" })), h.isSorted === 'desc' && (_jsx(ArrowDown, { className: "size-3 shrink-0" }))] }), header.column.getCanResize() && (_jsx("div", { onMouseDown: h.resizeHandler, onTouchStart: h.resizeHandler, onClick: (e) => e.stopPropagation(), className: cn('absolute right-0 top-0 h-full w-5 group-hover:cursor-col-resize touch-none select-none opacity-0 group-hover:opacity-100 ld-transition flex justify-end'), children: _jsx("div", { className: "h-full w-1 bg-neutral200" }) }))] }, h.id));
22
+ }) }, hg.id))) }), _jsx(LDTable.Body, { children: rows.map((row) => (_jsxs(_Fragment, { children: [_jsx(LDTable.Row, { selected: row.getIsSelected(), className: cn('relative cursor-pointer', classNames?.row), onClick: () => {
24
23
  handleOpenRows(row.id);
25
24
  row.toggleSelected();
26
- }, children: [row.getVisibleCells().map((cell) => {
27
- const c = getCell(cell);
28
- return (_jsx(LDTable.Cell, { className: classNames?.cell, children: _jsx("div", { className: cn('flex items-center gap-1', c.meta?.headerAlign === 'left'
25
+ }, children: row.getVisibleCells().map((cell, idx) => {
26
+ const c = getCell(cell);
27
+ return (_jsxs(LDTable.Cell, { className: classNames?.cell, children: [_jsx("div", { className: cn('flex w-full items-center', c.meta?.headerAlign === 'left'
29
28
  ? 'justify-start'
30
29
  : c.meta?.headerAlign === 'right'
31
30
  ? 'justify-end'
32
- : 'justify-center'), style: { maxWidth: c.size }, children: _jsx("span", { className: "truncate", children: c.renderCell() }) }) }, c.id));
33
- }), _jsx(ChevronUp, { className: cn('text-neutral700 absolute top-1/2 -translate-1/2 right-5 shrink-0 size-5', openRows[row.id] ? 'opacity-0' : 'opacity-100') }), _jsx(ChevronDown, { className: cn('text-neutral700 absolute top-1/2 -translate-1/2 right-5 shrink-0 size-5', !openRows[row.id] ? 'opacity-0' : 'opacity-100') })] }, row.id), _jsx(LDTable.Row, { className: cn('h-auto border-0 bg-neutral50', openRows[row.id] && 'border-b'), children: _jsx(LDTable.Cell, { colSpan: columns.length, className: "px-5", children: _jsx("div", { className: cn('grid ld-transition', openRows[row.id]
31
+ : 'justify-center'), children: _jsx("span", { className: "truncate min-w-0", style: { maxWidth: c.size }, children: c.renderCell() }) }), idx === row.getVisibleCells().length - 1 && (_jsxs(_Fragment, { children: [_jsx(ChevronUp, { className: cn('text-neutral700 absolute top-1/2 -translate-1/2 right-2 shrink-0 size-5 ld-transition', openRows[row.id]
32
+ ? 'opacity-0'
33
+ : 'opacity-100') }), _jsx(ChevronDown, { className: cn('text-neutral700 absolute top-1/2 -translate-1/2 right-2 shrink-0 size-5 ld-transition', !openRows[row.id]
34
+ ? 'opacity-0'
35
+ : 'opacity-100') })] }))] }, c.id));
36
+ }) }, row.id), _jsx(LDTable.Row, { className: cn('h-auto border-0 bg-neutral50', openRows[row.id] && 'border-b'), children: _jsx(LDTable.Cell, { colSpan: columns.length, className: "px-5", children: _jsx("div", { className: cn('grid ld-transition', openRows[row.id]
34
37
  ? 'grid-rows-[1fr]'
35
38
  : 'grid-rows-[0fr]'), children: _jsx("div", { className: "overflow-hidden", children: collapsibleContent(row.original) }) }) }) })] }))) })] }));
36
39
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"LDTable.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/LDTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAE9B,qBAAqB;IAGrB,sCAAsC;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IAQnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,uBAAuB;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,OAAO;6GAUV,YAAY;gDAsEZ,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC;mDAgB7C,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;oDAUzC,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;8CAa5C,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC;6CAU7C,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;8CAgBlE,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;CArG9C,CAAC;AAqHF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"LDTable.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/LDTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAE9B,qBAAqB;IAGrB,sCAAsC;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IAQnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,uBAAuB;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,OAAO;6GAUV,YAAY;gDAwEZ,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC;mDAgB7C,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;oDAUzC,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;8CAa5C,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC;6CAU7C,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;8CAgBlE,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;CArG9C,CAAC;AAqHF,eAAe,OAAO,CAAC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import TableBase from './TableBase.js';
3
3
  import cn from '../../utils/cn.js';
4
4
  const LDTable = ({ children, title, rightSideContents, footer, isEmpty = false, emptyMessage = '조회하신 데이터가 없습니다.', columnCount, style, classNames, }) => {
5
- return (_jsxs("div", { className: cn('flex flex-col justify-between h-full gap-md', classNames?.wrapper), children: [_jsx(Toolbar, { title: title, rightSideContents: rightSideContents, className: classNames?.toolbar }), _jsxs(TableBase.Root, { className: cn('relative w-full', classNames?.root), style: style, children: [children, isEmpty && columnCount && (_jsx(TableBase.Body, { className: classNames?.tbody, children: _jsx(TableBase.Row, { className: classNames?.row, children: _jsx(TableBase.Cell, { colSpan: columnCount, className: cn('h-48 text-center'), children: emptyMessage }) }) }))] }), footer] }));
5
+ return (_jsxs("div", { className: cn('flex flex-col justify-between h-full gap-md', classNames?.wrapper), children: [_jsx(Toolbar, { title: title, rightSideContents: rightSideContents, className: classNames?.toolbar }), _jsx("div", { className: "relative w-full overflow-x-auto", children: _jsxs(TableBase.Root, { className: cn('w-full', classNames?.root), style: style, children: [children, isEmpty && columnCount && (_jsx(TableBase.Body, { className: classNames?.tbody, children: _jsx(TableBase.Row, { className: classNames?.row, children: _jsx(TableBase.Cell, { colSpan: columnCount, className: cn('h-48 text-center'), children: emptyMessage }) }) }))] }) }), footer] }));
6
6
  };
7
7
  const Toolbar = ({ title, rightSideContents, className, }) => {
8
8
  if (!title && !rightSideContents)
@@ -1 +1 @@
1
- {"version":3,"file":"LDTanstackTable.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/LDTanstackTable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM/E,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAE,SAAQ,IAAI,CAChE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAC/B,UAAU,CACX;IACC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,eAAe,GAAI,KAAK,EAAE,OAAO,EAAE,qPAiBtC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,4CA4JtC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"LDTanstackTable.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/LDTanstackTable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAM/E,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAE,SAAQ,IAAI,CAChE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAC/B,UAAU,CACX;IACC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,eAAe,GAAI,KAAK,EAAE,OAAO,EAAE,qPAiBtC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,4CA8JtC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -10,8 +10,7 @@ const LDTanstackTable = ({ columns, data, pageable, paginationState, onPageChang
10
10
  const paginationFooter = pageable && totalPages > 0 ? (_jsx(LDPagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: handlePageChange, className: classNames?.pagination })) : null;
11
11
  return (_jsxs(LDTable, { title: title, totalCount: pageable?.totalCount, rightSideContents: rightSideContents, isEmpty: isEmpty, emptyMessage: emptyMessage, columnCount: columns.length, footer: paginationFooter, classNames: {
12
12
  ...classNames,
13
- wrapper: cn('overflow-x-auto relative', classNames?.wrapper),
14
- root: cn('w-auto min-w-full', classNames?.root),
13
+ root: cn('w-auto ', classNames?.root),
15
14
  }, children: [_jsx(LDTable.Header, { className: cn(classNames?.thead, stickyHeader &&
16
15
  'sticky top-0 bg-mono100 z-10 border-b border-neutral100'), children: headerGroups.map((hg) => (_jsx(LDTable.HeaderRow, { className: cn('group w-full', classNames?.headRow), children: hg.headers.map((header, idx) => {
17
16
  const h = getHeader(header);
@@ -19,14 +18,14 @@ const LDTanstackTable = ({ columns, data, pageable, paginationState, onPageChang
19
18
  ? 'justify-end'
20
19
  : h.meta?.headerAlign === 'left'
21
20
  ? 'justify-start'
22
- : 'justify-center'), children: [_jsx("span", { className: "truncate min-w-0", style: { maxWidth: h.size }, children: h.renderHeader() }), h.isSorted === 'asc' && (_jsx(ArrowUp, { className: "size-3 shrink-0" })), h.isSorted === 'desc' && (_jsx(ArrowDown, { className: "size-3 shrink-0" }))] }), header.column.getCanResize() && (_jsx("div", { onMouseDown: h.resizeHandler, onTouchStart: h.resizeHandler, onClick: (e) => e.stopPropagation(), className: cn('absolute right-0 top-0 h-full w-5 group-hover:cursor-col-resize touch-none select-none opacity-0 group-hover:opacity-100 ld-transition flex justify-center', idx === hg.headers.length - 1 && 'justify-end'), children: _jsx("div", { className: "h-full w-1 bg-neutral200" }) }))] }, h.id));
21
+ : 'justify-center'), children: [_jsx("span", { className: "truncate min-w-0", style: { maxWidth: h.size }, children: h.renderHeader() }), h.isSorted === 'asc' && (_jsx(ArrowUp, { className: "size-3 shrink-0" })), h.isSorted === 'desc' && (_jsx(ArrowDown, { className: "size-3 shrink-0" }))] }), header.column.getCanResize() && (_jsx("div", { onMouseDown: h.resizeHandler, onTouchStart: h.resizeHandler, onClick: (e) => e.stopPropagation(), className: cn('absolute right-0 top-0 h-full w-5 group-hover:cursor-col-resize touch-none select-none opacity-0 group-hover:opacity-100 ld-transition flex justify-end'), children: _jsx("div", { className: "h-full w-1 bg-neutral200" }) }))] }, h.id));
23
22
  }) }, hg.id))) }), _jsx(LDTable.Body, { children: rows.map((row) => (_jsx(LDTable.Row, { selected: row.getIsSelected(), className: classNames?.row, onClick: () => row.toggleSelected(), children: row.getVisibleCells().map((cell) => {
24
23
  const c = getCell(cell);
25
- return (_jsx(LDTable.Cell, { className: classNames?.cell, children: _jsx("div", { className: cn('truncate', c.meta?.headerAlign === 'left'
26
- ? 'text-left'
24
+ return (_jsx(LDTable.Cell, { className: classNames?.cell, children: _jsx("div", { className: cn('flex w-full items-center', c.meta?.headerAlign === 'left'
25
+ ? 'justify-start'
27
26
  : c.meta?.headerAlign === 'right'
28
- ? 'text-right'
29
- : 'text-center'), style: { maxWidth: c.size }, children: c.renderCell() }) }, c.id));
27
+ ? 'justify-end'
28
+ : 'justify-center'), children: _jsx("span", { className: "truncate min-w-0", style: { maxWidth: c.size }, children: c.renderCell() }) }) }, c.id));
30
29
  }) }, row.id))) })] }));
31
30
  } }));
32
31
  };
@@ -56,7 +56,7 @@ export interface TableFieldRenderProps<TData> {
56
56
  id: string;
57
57
  canSort: boolean;
58
58
  isSorted: false | 'asc' | 'desc';
59
- size: number;
59
+ size?: number;
60
60
  toggleSortingHandler: ((event: unknown) => void) | undefined;
61
61
  resizeHandler: (event: unknown) => void;
62
62
  renderHeader: () => ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"TableField.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/TableField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableField.d.ts","sourceRoot":"","sources":["../../../src/components/LDTable/TableField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type Ref } from 'react';
2
+ import { type RegisterOptions } from 'react-hook-form';
3
+ import { type LDTextareaProps } from './LDTextarea.js';
4
+ interface LDFormTextareaProps extends Omit<LDTextareaProps, 'name' | 'color' | 'onChange' | 'value' | 'onBlur'> {
5
+ name: string;
6
+ options?: RegisterOptions;
7
+ ref?: Ref<HTMLTextAreaElement>;
8
+ customErrorMessage?: string;
9
+ isHiddenErrorMessage?: boolean;
10
+ errorClassName?: string;
11
+ }
12
+ declare const LDFormTextarea: ({ name, options, variant, disabled, ref, customErrorMessage, isHiddenErrorMessage, errorClassName, ...props }: LDFormTextareaProps) => import("react/jsx-runtime").JSX.Element;
13
+ export default LDFormTextarea;
14
+ //# sourceMappingURL=LDFormTextarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDFormTextarea.d.ts","sourceRoot":"","sources":["../../../src/components/LDTextarea/LDFormTextarea.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;AAKhE,UAAU,mBAAoB,SAAQ,IAAI,CACxC,eAAe,EACf,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CACnD;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,GAAI,+GAUrB,mBAAmB,4CAmCrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -4,7 +4,7 @@ import LDTextarea from './LDTextarea.js';
4
4
  import FormField from '../LDForm/LDFormField.js';
5
5
  import FormErrorMessage from '../LDForm/LDFormErrorMessage.js';
6
6
  import cn from '../../utils/cn.js';
7
- const FormTextarea = ({ name, options, variant = 'filled', disabled = false, ref, customErrorMessage = '', isHiddenErrorMessage = false, errorClassName, ...props }) => {
7
+ const LDFormTextarea = ({ name, options, variant = 'filled', disabled = false, ref, customErrorMessage = '', isHiddenErrorMessage = false, errorClassName, ...props }) => {
8
8
  return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, ref: ref, children: ({ field, fieldState }) => (_jsxs("div", { className: "relative", children: [_jsx(LDTextarea, { ...props, ...field, value: field.value ?? '', variant: variant, color: fieldState.hasError ? 'danger' : 'neutral', disabled: disabled, "aria-invalid": fieldState.hasError, "aria-describedby": fieldState.hasError ? fieldState.errorId : undefined }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { id: fieldState.errorId, error: fieldState.error, disabled: disabled, className: cn('static mt-1 text-right', errorClassName) }))] })) }));
9
9
  };
10
- export default FormTextarea;
10
+ export default LDFormTextarea;
@@ -1,7 +1,7 @@
1
1
  import { type HTMLAttributes, type ReactNode, type Ref, type TextareaHTMLAttributes } from 'react';
2
2
  type TextareaVariant = 'filled' | 'outline' | 'ghost';
3
3
  type TextareaColor = 'neutral' | 'point' | 'danger';
4
- export type TextareaSize = 'xSmall' | 'small' | 'medium' | 'large' | 'big' | 'xLarge';
4
+ export type TextareaSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
5
5
  type TextareaResize = 'normal' | 'limit' | 'fixed' | 'manual';
6
6
  type TextareaContentVariant = 'characterCounter' | 'badge' | 'chip' | 'icon' | 'iconButton' | 'primaryIconButton' | 'textButton';
7
7
  export interface TextareaContentProps extends HTMLAttributes<HTMLSpanElement> {
@@ -1 +1 @@
1
- {"version":3,"file":"LDTextarea.d.ts","sourceRoot":"","sources":["../../../src/components/LDTextarea/LDTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,sBAAsB,EAC5B,MAAM,OAAO,CAAC;AAGf,KAAK,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AACtD,KAAK,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,KAAK,GACL,QAAQ,CAAC;AAEb,KAAK,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC9D,KAAK,sBAAsB,GACvB,kBAAkB,GAClB,OAAO,GACP,MAAM,GACN,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,YAAY,CAAC;AAEjB,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAC3E,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAYD,eAAO,MAAM,eAAe,GAAI,4CAK7B,oBAAoB,4CAMtB,CAAC;AA6EF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,sBAAsB,CAAC,mBAAmB,CAAC,EAC3C,OAAO,GAAG,MAAM,CACjB;IACC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAChC;AAED,QAAA,MAAM,UAAU,8HAqMf,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"LDTextarea.d.ts","sourceRoot":"","sources":["../../../src/components/LDTextarea/LDTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,sBAAsB,EAC5B,MAAM,OAAO,CAAC;AAGf,KAAK,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AACtD,KAAK,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AAEb,KAAK,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC9D,KAAK,sBAAsB,GACvB,kBAAkB,GAClB,OAAO,GACP,MAAM,GACN,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,YAAY,CAAC;AAEjB,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,eAAe,CAAC;IAC3E,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAYD,eAAO,MAAM,eAAe,GAAI,4CAK7B,oBAAoB,4CAMtB,CAAC;AA6EF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,sBAAsB,CAAC,mBAAmB,CAAC,EAC3C,OAAO,GAAG,MAAM,CACjB;IACC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAChC;AAED,QAAA,MAAM,UAAU,8HAqMf,CAAC;AAEF,eAAe,UAAU,CAAC"}