@loword/loword-design-system 0.0.2 → 0.0.4

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 (263) hide show
  1. package/README.md +77 -3
  2. package/dist/components/BreadCrumb/BreadCrumb.d.ts +17 -0
  3. package/dist/components/BreadCrumb/BreadCrumb.d.ts.map +1 -0
  4. package/dist/components/BreadCrumb/BreadCrumb.js +37 -0
  5. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts +9 -0
  6. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts.map +1 -0
  7. package/dist/components/BreadCrumb/BreadCrumbBase.js +17 -0
  8. package/dist/components/Button/ButtonSpinner.d.ts +1 -2
  9. package/dist/components/Button/ButtonSpinner.d.ts.map +1 -1
  10. package/dist/components/Button/ButtonSpinner.js +3 -2
  11. package/dist/components/Callout/Callout.d.ts +10 -0
  12. package/dist/components/Callout/Callout.d.ts.map +1 -0
  13. package/dist/components/Callout/Callout.js +6 -0
  14. package/dist/components/Callout/CalloutBase.d.ts +18 -0
  15. package/dist/components/Callout/CalloutBase.d.ts.map +1 -0
  16. package/dist/components/Callout/CalloutBase.js +21 -0
  17. package/dist/components/Divider/Divider.d.ts +9 -0
  18. package/dist/components/Divider/Divider.d.ts.map +1 -0
  19. package/dist/components/Divider/Divider.js +11 -0
  20. package/dist/components/Divider/DividerBase.d.ts +9 -0
  21. package/dist/components/Divider/DividerBase.d.ts.map +1 -0
  22. package/dist/components/Divider/DividerBase.js +9 -0
  23. package/dist/components/FileUpload/FileUploadBase.d.ts +5 -5
  24. package/dist/components/FileUpload/FileUploadBase.d.ts.map +1 -1
  25. package/dist/components/FileUpload/FileUploadBase.js +4 -4
  26. package/dist/components/Form/FormField.d.ts +2 -2
  27. package/dist/components/LDAvatar/AvatarBase.d.ts +32 -0
  28. package/dist/components/LDAvatar/AvatarBase.d.ts.map +1 -0
  29. package/dist/components/LDAvatar/AvatarBase.js +49 -0
  30. package/dist/components/LDAvatar/LDAvatar.d.ts +11 -0
  31. package/dist/components/LDAvatar/LDAvatar.d.ts.map +1 -0
  32. package/dist/components/LDAvatar/LDAvatar.js +24 -0
  33. package/dist/components/LDBadge/BadgeBase.d.ts +10 -0
  34. package/dist/components/LDBadge/BadgeBase.d.ts.map +1 -0
  35. package/dist/components/LDBadge/BadgeBase.js +9 -0
  36. package/dist/components/LDBadge/LDBadge.d.ts +25 -0
  37. package/dist/components/LDBadge/LDBadge.d.ts.map +1 -0
  38. package/dist/components/LDBadge/LDBadge.js +36 -0
  39. package/dist/components/LDBreadCrumb/BreadCrumbBase.d.ts +9 -0
  40. package/dist/components/LDBreadCrumb/BreadCrumbBase.d.ts.map +1 -0
  41. package/dist/components/LDBreadCrumb/BreadCrumbBase.js +17 -0
  42. package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts +17 -0
  43. package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts.map +1 -0
  44. package/dist/components/LDBreadCrumb/LDBreadCrumb.js +37 -0
  45. package/dist/components/LDButton/ButtonBase.d.ts +5 -0
  46. package/dist/components/LDButton/ButtonBase.d.ts.map +1 -0
  47. package/dist/components/LDButton/ButtonBase.js +10 -0
  48. package/dist/components/LDButton/ButtonSpinner.d.ts +8 -0
  49. package/dist/components/LDButton/ButtonSpinner.d.ts.map +1 -0
  50. package/dist/components/LDButton/ButtonSpinner.js +15 -0
  51. package/dist/components/LDButton/LDButton.d.ts +26 -0
  52. package/dist/components/LDButton/LDButton.d.ts.map +1 -0
  53. package/dist/components/LDButton/LDButton.js +102 -0
  54. package/dist/components/LDCalendar/LDCalendar.d.ts +16 -0
  55. package/dist/components/LDCalendar/LDCalendar.d.ts.map +1 -0
  56. package/dist/components/LDCalendar/LDCalendar.js +75 -0
  57. package/dist/components/LDCallout/CalloutBase.d.ts +18 -0
  58. package/dist/components/LDCallout/CalloutBase.d.ts.map +1 -0
  59. package/dist/components/LDCallout/CalloutBase.js +21 -0
  60. package/dist/components/LDCallout/LDCallout.d.ts +10 -0
  61. package/dist/components/LDCallout/LDCallout.d.ts.map +1 -0
  62. package/dist/components/LDCallout/LDCallout.js +6 -0
  63. package/dist/components/LDCarousel/CarouselBase.d.ts +98 -0
  64. package/dist/components/LDCarousel/CarouselBase.d.ts.map +1 -0
  65. package/dist/components/LDCarousel/CarouselBase.js +144 -0
  66. package/dist/components/LDCarousel/LDCarousel.d.ts +50 -0
  67. package/dist/components/LDCarousel/LDCarousel.d.ts.map +1 -0
  68. package/dist/components/LDCarousel/LDCarousel.js +22 -0
  69. package/dist/components/LDCheckbox/CheckboxBase.d.ts +40 -0
  70. package/dist/components/LDCheckbox/CheckboxBase.d.ts.map +1 -0
  71. package/dist/components/LDCheckbox/CheckboxBase.js +57 -0
  72. package/dist/components/LDCheckbox/FormCheckbox.d.ts +14 -0
  73. package/dist/components/LDCheckbox/FormCheckbox.d.ts.map +1 -0
  74. package/dist/components/LDCheckbox/FormCheckbox.js +9 -0
  75. package/dist/components/LDCheckbox/FormCheckboxGroup.d.ts +13 -0
  76. package/dist/components/LDCheckbox/FormCheckboxGroup.d.ts.map +1 -0
  77. package/dist/components/LDCheckbox/FormCheckboxGroup.js +9 -0
  78. package/dist/components/LDCheckbox/LDCheckbox.d.ts +27 -0
  79. package/dist/components/LDCheckbox/LDCheckbox.d.ts.map +1 -0
  80. package/dist/components/LDCheckbox/LDCheckbox.js +30 -0
  81. package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts +22 -0
  82. package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts.map +1 -0
  83. package/dist/components/LDCheckbox/LDCheckboxGroup.js +13 -0
  84. package/dist/components/LDDataCalendar/DataCalendarBase.d.ts +45 -0
  85. package/dist/components/LDDataCalendar/DataCalendarBase.d.ts.map +1 -0
  86. package/dist/components/LDDataCalendar/DataCalendarBase.js +57 -0
  87. package/dist/components/LDDataCalendar/LDDataCalendar.d.ts +12 -0
  88. package/dist/components/LDDataCalendar/LDDataCalendar.d.ts.map +1 -0
  89. package/dist/components/LDDataCalendar/LDDataCalendar.js +13 -0
  90. package/dist/components/LDDatePicker/FormDatePicker.d.ts +12 -0
  91. package/dist/components/LDDatePicker/FormDatePicker.d.ts.map +1 -0
  92. package/dist/components/LDDatePicker/FormDatePicker.js +12 -0
  93. package/dist/components/LDDatePicker/LDDatePicker.d.ts +34 -0
  94. package/dist/components/LDDatePicker/LDDatePicker.d.ts.map +1 -0
  95. package/dist/components/LDDatePicker/LDDatePicker.js +44 -0
  96. package/dist/components/LDDateRangePicker/FormDateRangePicker.d.ts +12 -0
  97. package/dist/components/LDDateRangePicker/FormDateRangePicker.d.ts.map +1 -0
  98. package/dist/components/LDDateRangePicker/FormDateRangePicker.js +10 -0
  99. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts +49 -0
  100. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts.map +1 -0
  101. package/dist/components/LDDateRangePicker/LDDateRangePicker.js +197 -0
  102. package/dist/components/LDDivider/DividerBase.d.ts +9 -0
  103. package/dist/components/LDDivider/DividerBase.d.ts.map +1 -0
  104. package/dist/components/LDDivider/DividerBase.js +9 -0
  105. package/dist/components/LDDivider/LDDivider.d.ts +9 -0
  106. package/dist/components/LDDivider/LDDivider.d.ts.map +1 -0
  107. package/dist/components/LDDivider/LDDivider.js +11 -0
  108. package/dist/components/LDDrawer/DrawerBase.d.ts +52 -0
  109. package/dist/components/LDDrawer/DrawerBase.d.ts.map +1 -0
  110. package/dist/components/LDDrawer/DrawerBase.js +38 -0
  111. package/dist/components/LDDrawer/LDDrawer.d.ts +51 -0
  112. package/dist/components/LDDrawer/LDDrawer.d.ts.map +1 -0
  113. package/dist/components/LDDrawer/LDDrawer.js +30 -0
  114. package/dist/components/LDEditor/EditorBase.d.ts +52 -0
  115. package/dist/components/LDEditor/EditorBase.d.ts.map +1 -0
  116. package/dist/components/LDEditor/EditorBase.js +89 -0
  117. package/dist/components/LDEditor/LDEditor.d.ts +12 -0
  118. package/dist/components/LDEditor/LDEditor.d.ts.map +1 -0
  119. package/dist/components/LDEditor/LDEditor.js +162 -0
  120. package/dist/components/LDEditor/LDViewer.d.ts +7 -0
  121. package/dist/components/LDEditor/LDViewer.d.ts.map +1 -0
  122. package/dist/components/LDEditor/LDViewer.js +9 -0
  123. package/dist/components/LDEditor/extensions.d.ts +6 -0
  124. package/dist/components/LDEditor/extensions.d.ts.map +1 -0
  125. package/dist/components/LDEditor/extensions.js +38 -0
  126. package/dist/components/LDFileUpload/LDFileUploadBase.d.ts +50 -0
  127. package/dist/components/LDFileUpload/LDFileUploadBase.d.ts.map +1 -0
  128. package/dist/components/LDFileUpload/LDFileUploadBase.js +102 -0
  129. package/dist/components/LDInput/FormInput.d.ts +15 -0
  130. package/dist/components/LDInput/FormInput.d.ts.map +1 -0
  131. package/dist/components/LDInput/FormInput.js +19 -0
  132. package/dist/components/LDInput/InputBase.d.ts +22 -0
  133. package/dist/components/LDInput/InputBase.d.ts.map +1 -0
  134. package/dist/components/LDInput/InputBase.js +17 -0
  135. package/dist/components/LDInput/LDInput.d.ts +24 -0
  136. package/dist/components/LDInput/LDInput.d.ts.map +1 -0
  137. package/dist/components/LDInput/LDInput.js +71 -0
  138. package/dist/components/LDLNB/LDLNBBase.d.ts +82 -0
  139. package/dist/components/LDLNB/LDLNBBase.d.ts.map +1 -0
  140. package/dist/components/LDLNB/LDLNBBase.js +108 -0
  141. package/dist/components/LDLoadingDots/LDLoadingDots.d.ts +8 -0
  142. package/dist/components/LDLoadingDots/LDLoadingDots.d.ts.map +1 -0
  143. package/dist/components/LDLoadingDots/LDLoadingDots.js +29 -0
  144. package/dist/components/LDMenuBar/LDMenuBar.d.ts +21 -0
  145. package/dist/components/LDMenuBar/LDMenuBar.d.ts.map +1 -0
  146. package/dist/components/LDMenuBar/LDMenuBar.js +33 -0
  147. package/dist/components/LDMenuBar/MenuBarBase.d.ts +43 -0
  148. package/dist/components/LDMenuBar/MenuBarBase.d.ts.map +1 -0
  149. package/dist/components/LDMenuBar/MenuBarBase.js +69 -0
  150. package/dist/components/LDModal/LDModal.d.ts +51 -0
  151. package/dist/components/LDModal/LDModal.d.ts.map +1 -0
  152. package/dist/components/LDModal/LDModal.js +72 -0
  153. package/dist/components/LDModal/ModalBase.d.ts +42 -0
  154. package/dist/components/LDModal/ModalBase.d.ts.map +1 -0
  155. package/dist/components/LDModal/ModalBase.js +30 -0
  156. package/dist/components/LDModal/openModal.d.ts +24 -0
  157. package/dist/components/LDModal/openModal.d.ts.map +1 -0
  158. package/dist/components/LDModal/openModal.js +52 -0
  159. package/dist/components/LDOTPInput/LDOTPInput.d.ts +46 -0
  160. package/dist/components/LDOTPInput/LDOTPInput.d.ts.map +1 -0
  161. package/dist/components/LDOTPInput/LDOTPInput.js +87 -0
  162. package/dist/components/LDPagination/LDPagination.d.ts +12 -0
  163. package/dist/components/LDPagination/LDPagination.d.ts.map +1 -0
  164. package/dist/components/LDPagination/LDPagination.js +5 -0
  165. package/dist/components/LDPagination/PaginationBase.d.ts +36 -0
  166. package/dist/components/LDPagination/PaginationBase.d.ts.map +1 -0
  167. package/dist/components/LDPagination/PaginationBase.js +44 -0
  168. package/dist/components/LDPagination/paginationUtils.d.ts +2 -0
  169. package/dist/components/LDPagination/paginationUtils.d.ts.map +1 -0
  170. package/dist/components/LDPagination/paginationUtils.js +18 -0
  171. package/dist/components/LDPopover/LDPopover.d.ts +42 -0
  172. package/dist/components/LDPopover/LDPopover.d.ts.map +1 -0
  173. package/dist/components/LDPopover/LDPopover.js +31 -0
  174. package/dist/components/LDPopover/PopoverBase.d.ts +31 -0
  175. package/dist/components/LDPopover/PopoverBase.d.ts.map +1 -0
  176. package/dist/components/LDPopover/PopoverBase.js +18 -0
  177. package/dist/components/LDRadio/FormRadioGroup.d.ts +13 -0
  178. package/dist/components/LDRadio/FormRadioGroup.d.ts.map +1 -0
  179. package/dist/components/LDRadio/FormRadioGroup.js +9 -0
  180. package/dist/components/LDRadio/LDRadio.d.ts +24 -0
  181. package/dist/components/LDRadio/LDRadio.d.ts.map +1 -0
  182. package/dist/components/LDRadio/LDRadio.js +39 -0
  183. package/dist/components/LDRadio/LDRadioGroup.d.ts +22 -0
  184. package/dist/components/LDRadio/LDRadioGroup.d.ts.map +1 -0
  185. package/dist/components/LDRadio/LDRadioGroup.js +7 -0
  186. package/dist/components/LDRadio/RadioBase.d.ts +38 -0
  187. package/dist/components/LDRadio/RadioBase.d.ts.map +1 -0
  188. package/dist/components/LDRadio/RadioBase.js +46 -0
  189. package/dist/components/LDScrollArea/LDScrollArea.d.ts +15 -0
  190. package/dist/components/LDScrollArea/LDScrollArea.d.ts.map +1 -0
  191. package/dist/components/LDScrollArea/LDScrollArea.js +10 -0
  192. package/dist/components/LDSelect/FormMultiSelect.d.ts +13 -0
  193. package/dist/components/LDSelect/FormMultiSelect.d.ts.map +1 -0
  194. package/dist/components/LDSelect/FormMultiSelect.js +14 -0
  195. package/dist/components/LDSelect/FormSelect.d.ts +13 -0
  196. package/dist/components/LDSelect/FormSelect.d.ts.map +1 -0
  197. package/dist/components/LDSelect/FormSelect.js +10 -0
  198. package/dist/components/LDSelect/LDMultiSelect.d.ts +31 -0
  199. package/dist/components/LDSelect/LDMultiSelect.d.ts.map +1 -0
  200. package/dist/components/LDSelect/LDMultiSelect.js +59 -0
  201. package/dist/components/LDSelect/LDSelect.d.ts +41 -0
  202. package/dist/components/LDSelect/LDSelect.d.ts.map +1 -0
  203. package/dist/components/LDSelect/LDSelect.js +55 -0
  204. package/dist/components/LDSelect/SelectBase.d.ts +59 -0
  205. package/dist/components/LDSelect/SelectBase.d.ts.map +1 -0
  206. package/dist/components/LDSelect/SelectBase.js +211 -0
  207. package/dist/components/LDSkeleton/LDSkeleton.d.ts +10 -0
  208. package/dist/components/LDSkeleton/LDSkeleton.d.ts.map +1 -0
  209. package/dist/components/LDSkeleton/LDSkeleton.js +8 -0
  210. package/dist/components/LDSlider/LDSlider.d.ts +23 -0
  211. package/dist/components/LDSlider/LDSlider.d.ts.map +1 -0
  212. package/dist/components/LDSlider/LDSlider.js +195 -0
  213. package/dist/components/LDSpinner/LDSpinner.d.ts +25 -0
  214. package/dist/components/LDSpinner/LDSpinner.d.ts.map +1 -0
  215. package/dist/components/LDSpinner/LDSpinner.js +20 -0
  216. package/dist/components/LDTable/LDTable.d.ts +34 -0
  217. package/dist/components/LDTable/LDTable.d.ts.map +1 -0
  218. package/dist/components/LDTable/LDTable.js +29 -0
  219. package/dist/components/LDTable/LDTanstackTable.d.ts +23 -0
  220. package/dist/components/LDTable/LDTanstackTable.d.ts.map +1 -0
  221. package/dist/components/LDTable/LDTanstackTable.js +35 -0
  222. package/dist/components/LDTable/TableBase.d.ts +37 -0
  223. package/dist/components/LDTable/TableBase.d.ts.map +1 -0
  224. package/dist/components/LDTable/TableBase.js +39 -0
  225. package/dist/components/LDTable/TableField.d.ts +64 -0
  226. package/dist/components/LDTable/TableField.d.ts.map +1 -0
  227. package/dist/components/LDTable/TableField.js +87 -0
  228. package/dist/components/LDTimePicker/FormTimePicker.d.ts +12 -0
  229. package/dist/components/LDTimePicker/FormTimePicker.d.ts.map +1 -0
  230. package/dist/components/LDTimePicker/FormTimePicker.js +12 -0
  231. package/dist/components/LDTimePicker/LDTimePicker.d.ts +27 -0
  232. package/dist/components/LDTimePicker/LDTimePicker.d.ts.map +1 -0
  233. package/dist/components/LDTimePicker/LDTimePicker.js +120 -0
  234. package/dist/components/LDToast/LDToast.d.ts +18 -0
  235. package/dist/components/LDToast/LDToast.d.ts.map +1 -0
  236. package/dist/components/LDToast/LDToast.js +42 -0
  237. package/dist/components/LDToast/LDToaster.d.ts +7 -0
  238. package/dist/components/LDToast/LDToaster.d.ts.map +1 -0
  239. package/dist/components/LDToast/LDToaster.js +7 -0
  240. package/dist/components/LDToggleButton/FormToggleButton.d.ts +12 -0
  241. package/dist/components/LDToggleButton/FormToggleButton.d.ts.map +1 -0
  242. package/dist/components/LDToggleButton/FormToggleButton.js +9 -0
  243. package/dist/components/LDToggleButton/LDToggleButton.d.ts +31 -0
  244. package/dist/components/LDToggleButton/LDToggleButton.d.ts.map +1 -0
  245. package/dist/components/LDToggleButton/LDToggleButton.js +42 -0
  246. package/dist/components/LDToggleButton/ToggleButtonBase.d.ts +41 -0
  247. package/dist/components/LDToggleButton/ToggleButtonBase.d.ts.map +1 -0
  248. package/dist/components/LDToggleButton/ToggleButtonBase.js +59 -0
  249. package/dist/components/LDTooltip/LDTooltip.d.ts +18 -0
  250. package/dist/components/LDTooltip/LDTooltip.d.ts.map +1 -0
  251. package/dist/components/LDTooltip/LDTooltip.js +13 -0
  252. package/dist/components/LDTooltip/TooltipBase.d.ts +39 -0
  253. package/dist/components/LDTooltip/TooltipBase.d.ts.map +1 -0
  254. package/dist/components/LDTooltip/TooltipBase.js +46 -0
  255. package/dist/components/LNB/LNBBase.js +2 -2
  256. package/dist/components/Spinner/Spinner.d.ts +1 -1
  257. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  258. package/dist/components/Spinner/Spinner.js +1 -1
  259. package/dist/index.css +115 -13
  260. package/dist/index.d.ts +52 -49
  261. package/dist/index.d.ts.map +1 -1
  262. package/dist/index.js +88 -82
  263. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as RadixPopover from '@radix-ui/react-popover';
3
+ import cn from '../../utils/cn.js';
4
+ const Root = ({ open, onOpenChange, children }) => {
5
+ return (_jsx(RadixPopover.Root, { open: open, onOpenChange: onOpenChange, children: children }));
6
+ };
7
+ const Trigger = ({ disabled, className, style, children, onClick, asChild, }) => {
8
+ return (_jsx(RadixPopover.Trigger, { asChild: asChild, disabled: disabled, className: cn('inline-flex items-center', className), style: style, onClick: onClick, children: children }));
9
+ };
10
+ const Content = ({ align = 'start', sideOffset = 4, className, children, style, onOpenAutoFocus, }) => {
11
+ return (_jsx(RadixPopover.Portal, { children: _jsx(RadixPopover.Content, { align: align, sideOffset: sideOffset, onOpenAutoFocus: onOpenAutoFocus, className: cn('z-50 outline-hidden', 'animate-in fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0', className), style: style, children: children }) }));
12
+ };
13
+ export const PopoverBase = {
14
+ Root,
15
+ Trigger,
16
+ Content,
17
+ };
18
+ export default PopoverBase;
@@ -0,0 +1,13 @@
1
+ import { type RegisterOptions } from 'react-hook-form';
2
+ import { type LDRadioGroupProps } from './LDRadioGroup.js';
3
+ interface FormRadioGroupProps extends Omit<LDRadioGroupProps, 'value' | 'onChange'> {
4
+ name: string;
5
+ options?: RegisterOptions;
6
+ customErrorMessage?: string;
7
+ isHiddenErrorMessage?: boolean;
8
+ errorClassName?: string;
9
+ disabled?: boolean;
10
+ }
11
+ declare const FormRadioGroup: ({ name, options, customErrorMessage, isHiddenErrorMessage, errorClassName, disabled, ...props }: FormRadioGroupProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default FormRadioGroup;
13
+ //# sourceMappingURL=FormRadioGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormRadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDRadio/FormRadioGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAItE,UAAU,mBAAoB,SAAQ,IAAI,CACxC,iBAAiB,EACjB,OAAO,GAAG,UAAU,CACrB;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,cAAc,GAAI,iGAQrB,mBAAmB,4CA8BrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import LDRadioGroup from './LDRadioGroup.js';
4
+ import FormField from '../Form/FormField.js';
5
+ import FormErrorMessage from '../Form/FormErrorMessage.js';
6
+ const FormRadioGroup = ({ name, options, customErrorMessage = '', isHiddenErrorMessage = true, errorClassName, disabled = false, ...props }) => {
7
+ return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field, fieldState }) => (_jsxs("div", { className: "relative", children: [_jsx(LDRadioGroup, { ...props, name: name, value: field.value ?? '', onChange: field.onChange, disabled: disabled, "aria-invalid": field['aria-invalid'], "aria-describedby": field['aria-describedby'] }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
8
+ };
9
+ export default FormRadioGroup;
@@ -0,0 +1,24 @@
1
+ import { type InputHTMLAttributes, type Ref } from 'react';
2
+ type RadioSize = 'sm' | 'md';
3
+ type RadioType = 'default' | 'pill';
4
+ export interface LDRadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'checked' | 'disabled'> {
5
+ /** controlled 체크 상태 */
6
+ checked?: boolean;
7
+ /** 초기 체크 상태 (uncontrolled) */
8
+ defaultChecked?: boolean;
9
+ /** 체크 상태 변경 콜백 */
10
+ onCheckedChange?: (checked: boolean) => void;
11
+ /** 비활성화 여부 */
12
+ disabled?: boolean;
13
+ /** 라디오 버튼 크기 프리셋 */
14
+ size?: RadioSize;
15
+ /** 라디오 유형 (default: 원형, pill: 알약형 토글) */
16
+ type?: RadioType;
17
+ /** 라벨 텍스트 */
18
+ label?: string;
19
+ /** input 요소 ref */
20
+ ref?: Ref<HTMLInputElement>;
21
+ }
22
+ declare const LDRadio: ({ checked, defaultChecked, onCheckedChange, size, type, label, disabled, className, style, ref, ...props }: LDRadioProps) => import("react/jsx-runtime").JSX.Element;
23
+ export default LDRadio;
24
+ //# sourceMappingURL=LDRadio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDRadio.d.ts","sourceRoot":"","sources":["../../../src/components/LDRadio/LDRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAK3D,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7B,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAkBpC,MAAM,WAAW,YAAa,SAAQ,IAAI,CACxC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CACzC;IACC,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAqFD,QAAA,MAAM,OAAO,GAAI,4GAYd,YAAY,4CA0Cd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import RadioBase, { useRadioContext } from './RadioBase.js';
3
+ import cn from '../../utils/cn.js';
4
+ const radioSizeClasses = {
5
+ sm: 'size-4',
6
+ md: 'size-5',
7
+ };
8
+ const checkIconSizes = {
9
+ sm: 10,
10
+ md: 12,
11
+ };
12
+ const labelSizeClasses = {
13
+ sm: 'display12',
14
+ md: 'display14 bold',
15
+ };
16
+ // ── Inner: pill 타입 ──
17
+ const PillInner = ({ label, ref, ...props }) => {
18
+ const { checked } = useRadioContext();
19
+ return (_jsxs(_Fragment, { children: [_jsx(RadioBase.HiddenInput, { ref: ref, ...props }), _jsxs("div", { className: "relative flex items-center", children: [_jsx(RadioBase.Indicator, { icon: "check", iconSize: 16, className: "absolute left-0", iconClassName: cn('shrink-0 transition-all duration-200 ease-out', checked ? 'opacity-100' : 'opacity-0') }), label && (_jsx(RadioBase.Label, { className: cn('transition-all ld-transition text-nowrap', checked ? 'pl-5' : 'pl-sm pr-sm'), children: label }))] })] }));
20
+ };
21
+ // ── Inner: default 타입 ──
22
+ const DefaultInner = ({ size, label, ref, ...props }) => {
23
+ const { checked, disabled } = useRadioContext();
24
+ return (_jsxs(_Fragment, { children: [_jsx(RadioBase.HiddenInput, { ref: ref, ...props }), _jsx(RadioBase.Indicator, { icon: "check", iconSize: checkIconSizes[size], className: cn('flex items-center justify-center rounded-full ld-transition outline outline-transparent shrink-0', !disabled &&
25
+ (checked
26
+ ? 'outline-lb500 bg-lb500'
27
+ : 'bg-white outline-neutral300 hover:outline-lb500'), disabled && 'outline-neutral300 bg-neutral300', radioSizeClasses[size]), iconClassName: cn('shrink-0 ld-transition', checked ? (disabled ? 'text-neutral500' : 'text-white') : 'opacity-0') }), label && (_jsx(RadioBase.Label, { className: "text-neutral500", children: label }))] }));
28
+ };
29
+ const LDRadio = ({ checked, defaultChecked, onCheckedChange, size = 'sm', type = 'default', label, disabled = false, className, style, ref, ...props }) => {
30
+ if (type === 'pill') {
31
+ return (_jsx(RadioBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style,
32
+ // pill은 checked 여부에 따라 Root(<label>) 배경/텍스트가 바뀌어야 함.
33
+ // Inner에서는 Root 밖 스타일을 줄 수 없으므로,
34
+ // className을 함수로 받아 Root 내부의 resolved 값을 주입함.
35
+ className: (c) => cn('items-center gap-2 rounded-full py-sm px-[15px] ld-transition display14 bold', c ? 'bg-tintBlue text-lb500' : 'bg-mono100 text-mono500', disabled && 'opacity-50 cursor-not-allowed', className), children: _jsx(PillInner, { label: label, ref: ref, ...props }) }));
36
+ }
37
+ return (_jsx(RadioBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: cn('items-center gap-[5px]', labelSizeClasses[size], className), children: _jsx(DefaultInner, { size: size, label: label, ref: ref, ...props }) }));
38
+ };
39
+ export default LDRadio;
@@ -0,0 +1,22 @@
1
+ import type React from 'react';
2
+ export interface RadioGroupOption {
3
+ label: string;
4
+ value: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface LDRadioGroupProps {
8
+ items: RadioGroupOption[];
9
+ value?: string;
10
+ onChange?: (value: string) => void;
11
+ disabled?: boolean;
12
+ type?: 'default' | 'pill';
13
+ size?: 'sm' | 'md';
14
+ name?: string;
15
+ 'aria-invalid'?: boolean | 'true' | 'false';
16
+ 'aria-describedby'?: string;
17
+ className?: string;
18
+ style?: React.CSSProperties;
19
+ }
20
+ declare const LDRadioGroup: ({ items, value, onChange, disabled, type, size, name, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, className, style, }: LDRadioGroupProps) => import("react/jsx-runtime").JSX.Element;
21
+ export default LDRadioGroup;
22
+ //# sourceMappingURL=LDRadioGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDRadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDRadio/LDRadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,YAAY,GAAI,6IAYnB,iBAAiB,4CAuBnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import LDRadio from './LDRadio.js';
3
+ import cn from '../../utils/cn.js';
4
+ const LDRadioGroup = ({ items, value, onChange, disabled = false, type = 'pill', size = 'sm', name, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedby, className, style, }) => {
5
+ return (_jsx("div", { role: "radiogroup", "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, className: cn('flex flex-row gap-2.5', className), style: style, children: items.map((option) => (_jsx(LDRadio, { name: name, type: type, size: size, checked: value === option.value, onCheckedChange: () => onChange?.(option.value), label: option.label, disabled: disabled || option.disabled }, option.value))) }));
6
+ };
7
+ export default LDRadioGroup;
@@ -0,0 +1,38 @@
1
+ import { type InputHTMLAttributes, type ReactNode, type Ref } from 'react';
2
+ import { type IconName } from '../Icon/LucideIcon.js';
3
+ interface RadioContextType {
4
+ checked: boolean;
5
+ onCheckedChange: (checked: boolean) => void;
6
+ disabled: boolean;
7
+ }
8
+ export declare const useRadioContext: () => RadioContextType;
9
+ interface RootProps {
10
+ checked?: boolean;
11
+ defaultChecked?: boolean;
12
+ onCheckedChange?: (checked: boolean) => void;
13
+ disabled?: boolean;
14
+ className?: string | ((checked: boolean) => string);
15
+ style?: React.CSSProperties;
16
+ children?: ReactNode;
17
+ }
18
+ interface HiddenInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'disabled'> {
19
+ ref?: Ref<HTMLInputElement>;
20
+ }
21
+ interface IndicatorProps {
22
+ icon?: IconName;
23
+ iconSize?: number;
24
+ className?: string;
25
+ iconClassName?: string;
26
+ }
27
+ interface LabelProps {
28
+ className?: string;
29
+ children?: ReactNode;
30
+ }
31
+ export declare const RadioBase: {
32
+ Root: ({ checked, defaultChecked, onCheckedChange, disabled, className, style, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
33
+ HiddenInput: ({ ref, onChange, ...props }: HiddenInputProps) => import("react/jsx-runtime").JSX.Element;
34
+ Indicator: ({ icon, iconSize, className, iconClassName, }: IndicatorProps) => import("react/jsx-runtime").JSX.Element;
35
+ Label: ({ className, children }: LabelProps) => import("react/jsx-runtime").JSX.Element;
36
+ };
37
+ export default RadioBase;
38
+ //# sourceMappingURL=RadioBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDRadio/RadioBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,GAAG,EAIT,MAAM,OAAO,CAAC;AACf,OAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI/D,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,eAAO,MAAM,eAAe,wBAK3B,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;AA4CD,UAAU,gBAAiB,SAAQ,IAAI,CACrC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,SAAS,GAAG,UAAU,CAChC;IACC,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAsBD,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgBD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,SAAS;gGA3FnB,SAAS;+CAyCsC,gBAAgB;+DAgC/D,cAAc;qCAcuB,UAAU;CASjD,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useState, } from 'react';
3
+ import LucideIcon from '../Icon/LucideIcon.js';
4
+ import cn from '../../utils/cn.js';
5
+ const RadioContext = createContext(null);
6
+ export const useRadioContext = () => {
7
+ const ctx = useContext(RadioContext);
8
+ if (!ctx)
9
+ throw new Error('RadioBase 하위 컴포넌트는 Root 내부에서 사용해야 합니다.');
10
+ return ctx;
11
+ };
12
+ const Root = ({ checked, defaultChecked = false, onCheckedChange, disabled = false, className, style, children, }) => {
13
+ const [internal, setInternal] = useState(defaultChecked);
14
+ const isControlled = checked !== undefined;
15
+ const resolved = isControlled ? checked : internal;
16
+ const handleChange = (val) => {
17
+ if (!isControlled)
18
+ setInternal(val);
19
+ onCheckedChange?.(val);
20
+ };
21
+ const resolvedClassName = typeof className === 'function' ? className(resolved) : className;
22
+ return (_jsx(RadioContext, { value: { checked: resolved, onCheckedChange: handleChange, disabled }, children: _jsx("label", { style: style, className: cn('flex flex-row w-fit gap-2.5 shrink-0', disabled
23
+ ? 'cursor-not-allowed pointer-events-none'
24
+ : 'cursor-pointer', resolvedClassName), children: children }) }));
25
+ };
26
+ const HiddenInput = ({ ref, onChange, ...props }) => {
27
+ const { checked, onCheckedChange, disabled } = useRadioContext();
28
+ return (_jsx("input", { type: "radio", ref: ref, className: "sr-only", checked: checked, disabled: disabled, onChange: (e) => {
29
+ e.stopPropagation();
30
+ onCheckedChange(e.target.checked);
31
+ onChange?.(e);
32
+ }, ...props }));
33
+ };
34
+ const Indicator = ({ icon = 'check', iconSize = 24, className, iconClassName, }) => {
35
+ return (_jsx("div", { className: className, children: _jsx(LucideIcon, { name: icon, size: iconSize, className: iconClassName }) }));
36
+ };
37
+ const Label = ({ className, children }) => {
38
+ return _jsx("span", { className: className, children: children });
39
+ };
40
+ export const RadioBase = {
41
+ Root,
42
+ HiddenInput,
43
+ Indicator,
44
+ Label,
45
+ };
46
+ export default RadioBase;
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from 'react';
2
+ type ScrollDirection = 'x' | 'y' | 'both';
3
+ export interface LDScrollAreaProps {
4
+ direction?: ScrollDirection;
5
+ /** true이면 스크롤바를 숨깁니다 */
6
+ hideScrollbar?: boolean;
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ children?: ReactNode;
10
+ /** 스크린리더에 전달할 영역 설명 */
11
+ ariaLabel?: string;
12
+ }
13
+ declare const LDScrollArea: ({ direction, hideScrollbar, className, style, children, ariaLabel, }: LDScrollAreaProps) => import("react/jsx-runtime").JSX.Element;
14
+ export default LDScrollArea;
15
+ //# sourceMappingURL=LDScrollArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDScrollArea.d.ts","sourceRoot":"","sources":["../../../src/components/LDScrollArea/LDScrollArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,wBAAwB;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,QAAA,MAAM,YAAY,GAAI,sEAOnB,iBAAiB,4CAmBnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import cn from '../../utils/cn.js';
3
+ const DIRECTION_MAP = {
4
+ x: 'overflow-x-auto overflow-y-hidden',
5
+ y: 'overflow-y-auto overflow-x-hidden',
6
+ both: 'overflow-auto',
7
+ };
8
+ const LDScrollArea = ({ direction = 'y', hideScrollbar = false, className, style, children, ariaLabel = '스크롤 가능한 영역', }) => (_jsx("div", { role: "region", "aria-label": ariaLabel, tabIndex: 0, className: cn('overflow-hidden outline-none', className), style: style, children: _jsx("div", { className: cn('h-full w-full', DIRECTION_MAP[direction], hideScrollbar &&
9
+ '[&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]'), children: children }) }));
10
+ export default LDScrollArea;
@@ -0,0 +1,13 @@
1
+ import { type RegisterOptions } from 'react-hook-form';
2
+ import { type LDMultiSelectProps } from './LDMultiSelect.js';
3
+ interface FormMultiSelectProps extends Omit<LDMultiSelectProps, 'value' | 'onChange' | 'color' | 'name'> {
4
+ block?: boolean;
5
+ name: string;
6
+ options?: RegisterOptions;
7
+ customErrorMessage?: string;
8
+ isHiddenErrorMessage?: boolean;
9
+ errorClassName?: string;
10
+ }
11
+ declare const FormMultiSelect: ({ name, options, variant, size, block, disabled, customErrorMessage, isHiddenErrorMessage, errorClassName, ...props }: FormMultiSelectProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default FormMultiSelect;
13
+ //# sourceMappingURL=FormMultiSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormMultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/FormMultiSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAKzE,UAAU,oBAAqB,SAAQ,IAAI,CACzC,kBAAkB,EAClB,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CACxC;IACC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,eAAe,GAAI,uHAWtB,oBAAoB,4CAuCtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import LDMultiSelect from './LDMultiSelect.js';
4
+ import FormField from '../Form/FormField.js';
5
+ import FormErrorMessage from '../Form/FormErrorMessage.js';
6
+ import cn from '../../utils/cn.js';
7
+ const FormMultiSelect = ({ name, options, variant = 'filled', size = 'sm', block = false, disabled = false, customErrorMessage = '', isHiddenErrorMessage = false, errorClassName, ...props }) => {
8
+ return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field, fieldState }) => (_jsxs("div", { className: cn('relative', block && 'flex flex-1'), children: [_jsx(LDMultiSelect, { ...props, name: name, value: Array.isArray(field.value)
9
+ ? field.value
10
+ : field.value
11
+ ? [field.value]
12
+ : [], onChange: field.onChange, "aria-invalid": field['aria-invalid'], "aria-describedby": field['aria-describedby'], variant: variant, color: fieldState.hasError ? 'danger' : 'neutral', size: size, disabled: disabled }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
13
+ };
14
+ export default FormMultiSelect;
@@ -0,0 +1,13 @@
1
+ import { type RegisterOptions } from 'react-hook-form';
2
+ import { type LDSelectProps } from './LDSelect.js';
3
+ interface FormSelectProps extends Omit<LDSelectProps, 'value' | 'onChange' | 'color' | 'name'> {
4
+ block?: boolean;
5
+ name: string;
6
+ options?: RegisterOptions;
7
+ customErrorMessage?: string;
8
+ isHiddenErrorMessage?: boolean;
9
+ errorClassName?: string;
10
+ }
11
+ declare const FormSelect: ({ name, options, variant, size, block, disabled, customErrorMessage, isHiddenErrorMessage, errorClassName, ...props }: FormSelectProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default FormSelect;
13
+ //# sourceMappingURL=FormSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSelect.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/FormSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAK1D,UAAU,eAAgB,SAAQ,IAAI,CACpC,aAAa,EACb,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CACxC;IACC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,UAAU,GAAI,uHAWjB,eAAe,4CAiCjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import LDSelect from './LDSelect.js';
4
+ import FormField from '../Form/FormField.js';
5
+ import FormErrorMessage from '../Form/FormErrorMessage.js';
6
+ import cn from '../../utils/cn.js';
7
+ const FormSelect = ({ name, options, variant = 'filled', size = 'sm', block = false, disabled = false, customErrorMessage = '', isHiddenErrorMessage = false, errorClassName, ...props }) => {
8
+ return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field, fieldState }) => (_jsxs("div", { className: cn('relative', block && 'flex flex-1'), children: [_jsx(LDSelect, { ...props, name: name, value: field.value ?? '', onChange: field.onChange, "aria-invalid": field['aria-invalid'], "aria-describedby": field['aria-describedby'], variant: variant, color: fieldState.hasError ? 'danger' : 'neutral', size: size, disabled: disabled }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
9
+ };
10
+ export default FormSelect;
@@ -0,0 +1,31 @@
1
+ import type React from 'react';
2
+ import { type SelectOption } from './SelectBase.js';
3
+ type MultiSelectVariant = 'filled' | 'outline' | 'ghost';
4
+ type MultiSelectColor = 'neutral' | 'point' | 'danger';
5
+ type MultiSelectSize = 'xs' | 'sm' | 'md' | 'lg';
6
+ export interface LDMultiSelectProps {
7
+ items: SelectOption[];
8
+ placeholder?: string;
9
+ value?: string[];
10
+ onChange?: (value: string[]) => void;
11
+ disabled?: boolean;
12
+ name?: string;
13
+ variant?: MultiSelectVariant;
14
+ color?: MultiSelectColor;
15
+ size?: MultiSelectSize;
16
+ maxDisplay?: number;
17
+ /**
18
+ * true(기본): "A, B 외 N개" 요약 텍스트로 표시 (X 삭제 없음).
19
+ * false: X 삭제 버튼이 달린 칩을 전체 나열.
20
+ */
21
+ truncate?: boolean;
22
+ className?: string;
23
+ style?: React.CSSProperties;
24
+ contentClassName?: string;
25
+ 'aria-invalid'?: boolean | 'true' | 'false';
26
+ 'aria-describedby'?: string;
27
+ }
28
+ export type { SelectOption as MultiSelectOption };
29
+ declare const LDMultiSelect: ({ items, placeholder, value, onChange, disabled, name, variant, color, size, maxDisplay, truncate, className, style, contentClassName, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, }: LDMultiSelectProps) => import("react/jsx-runtime").JSX.Element;
30
+ export default LDMultiSelect;
31
+ //# sourceMappingURL=LDMultiSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDMultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/LDSelect/LDMultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK7D,KAAK,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AACzD,KAAK,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AACvD,KAAK,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAsDjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,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,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,YAAY,EAAE,YAAY,IAAI,iBAAiB,EAAE,CAAC;AAElD,QAAA,MAAM,aAAa,GAAI,4MAiBpB,kBAAkB,4CA0HpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import SelectBase from './SelectBase.js';
3
+ import LucideIcon from '../Icon/LucideIcon.js';
4
+ import cn from '../../utils/cn.js';
5
+ // ── variant × color 조합 ──
6
+ const variantColorClasses = {
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',
11
+ },
12
+ outline: {
13
+ neutral: 'bg-transparent text-neutral100 border border-neutral10 data-[state=open]:border-lb500',
14
+ point: 'bg-transparent text-neutral100 border border-neutral10 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',
21
+ },
22
+ };
23
+ const disabledVariantClasses = {
24
+ filled: 'bg-mono20 text-neutral20',
25
+ outline: 'bg-transparent text-neutral20 border border-mono20',
26
+ ghost: 'bg-transparent text-neutral20',
27
+ };
28
+ 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',
33
+ };
34
+ const iconSizes = {
35
+ xs: 15,
36
+ sm: 15,
37
+ md: 16,
38
+ lg: 16,
39
+ };
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'];
42
+ 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
+ (disabled
44
+ ? 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) => {
46
+ 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) => {
48
+ e.stopPropagation();
49
+ e.preventDefault();
50
+ if (!disabled) {
51
+ onChange?.(value.filter((val) => val !== v));
52
+ }
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-neutral40 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) => {
55
+ 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));
57
+ }) })] }));
58
+ };
59
+ export default LDMultiSelect;
@@ -0,0 +1,41 @@
1
+ import type { CSSProperties } from 'react';
2
+ import { type SelectOption } from './SelectBase.js';
3
+ type SelectVariant = 'filled' | 'outline' | 'ghost';
4
+ type SelectColor = 'neutral' | 'point' | 'danger';
5
+ type SelectSize = 'xs' | 'sm' | 'md' | 'lg';
6
+ export interface LDSelectProps {
7
+ /** 선택 옵션 목록 ({ value, label }) */
8
+ items: SelectOption[];
9
+ /** 미선택 시 표시할 텍스트 */
10
+ placeholder?: string;
11
+ /** 현재 선택된 값 (controlled) */
12
+ value?: string;
13
+ /** 초기 선택 값 (uncontrolled) */
14
+ defaultValue?: string;
15
+ /** 값 변경 시 호출되는 콜백 */
16
+ onChange?: (value: string) => void;
17
+ /** 비활성화 여부 */
18
+ disabled?: boolean;
19
+ /** 폼 필드 이름 */
20
+ name?: string;
21
+ /** 드롭다운 스타일 유형 */
22
+ variant?: SelectVariant;
23
+ /** 색상 테마 */
24
+ color?: SelectColor;
25
+ /** 드롭다운 높이 및 폰트 크기 프리셋 */
26
+ size?: SelectSize;
27
+ /** 추가 CSS 클래스 */
28
+ className?: string;
29
+ /** 인라인 스타일 */
30
+ style?: CSSProperties;
31
+ /** 드롭다운 콘텐츠 영역 className */
32
+ contentClassName?: string;
33
+ /** 에러 상태 속성 */
34
+ 'aria-invalid'?: boolean | 'true' | 'false';
35
+ /** 설명 요소 ID 연결 */
36
+ 'aria-describedby'?: string;
37
+ }
38
+ 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;
40
+ export default LDSelect;
41
+ //# sourceMappingURL=LDSelect.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import SelectBase from './SelectBase.js';
3
+ import LucideIcon from '../Icon/LucideIcon.js';
4
+ import cn from '../../utils/cn.js';
5
+ // ── variant × color 조합 (LDDropdown 기준) ──
6
+ const variantColorClasses = {
7
+ 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',
11
+ },
12
+ 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',
21
+ },
22
+ };
23
+ // ── disabled 시 variant별 스타일 ──
24
+ const disabledVariantClasses = {
25
+ filled: 'bg-mono300 text-neutral300',
26
+ outline: 'bg-transparent text-neutral300 border border-mono300',
27
+ ghost: 'bg-transparent text-neutral300',
28
+ };
29
+ // ── size (LDDropdown: display14, h-[38px] 기준) ──
30
+ const sizeClasses = {
31
+ xs: 'h-[38px] display14',
32
+ sm: 'h-10 display14',
33
+ md: 'h-[56px] display16',
34
+ lg: 'h-[62px] display18',
35
+ };
36
+ const iconSizes = {
37
+ xs: 15,
38
+ sm: 15,
39
+ md: 16,
40
+ lg: 16,
41
+ };
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 표시)
45
+ const resolvedValue = items.some((item) => item.value === value)
46
+ ? value
47
+ : undefined;
48
+ 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
+ (disabled
50
+ ? 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
52
+ ? 'bg-neutral10 font-bold text-neutral900'
53
+ : 'text-neutral800'), children: _jsx(SelectBase.ItemText, { children: opt.label }) }, opt.value))) })] }));
54
+ };
55
+ export default LDSelect;
@@ -0,0 +1,59 @@
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
+ interface RootProps {
3
+ multiple?: boolean;
4
+ value?: string;
5
+ defaultValue?: string;
6
+ values?: string[];
7
+ defaultValues?: string[];
8
+ onChange?: (value: string) => void;
9
+ onMultiChange?: (value: string[]) => void;
10
+ disabled?: boolean;
11
+ name?: string;
12
+ items?: SelectOption[];
13
+ maxDisplay?: number;
14
+ children?: ReactNode;
15
+ }
16
+ interface TriggerProps {
17
+ className?: string;
18
+ style?: CSSProperties;
19
+ children?: ReactNode;
20
+ 'aria-invalid'?: boolean | 'true' | 'false';
21
+ 'aria-describedby'?: string;
22
+ }
23
+ interface ValueProps {
24
+ placeholder?: string;
25
+ className?: string;
26
+ placeholderClassName?: string;
27
+ }
28
+ interface ContentProps {
29
+ className?: string;
30
+ openClassName?: string;
31
+ closedClassName?: string;
32
+ children?: ReactNode;
33
+ }
34
+ interface ItemProps {
35
+ value: string;
36
+ className?: string;
37
+ children?: ReactNode;
38
+ }
39
+ interface ItemIndicatorProps {
40
+ className?: string;
41
+ children?: ReactNode;
42
+ }
43
+ export interface SelectOption {
44
+ label: string;
45
+ value: string;
46
+ }
47
+ export declare const SelectBase: {
48
+ Root: ({ multiple, value, defaultValue, values, defaultValues, onChange, onMultiChange, disabled, name, items, maxDisplay, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
49
+ Trigger: ({ className, style, children, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedby, }: TriggerProps) => import("react/jsx-runtime").JSX.Element;
50
+ Value: ({ placeholder, className, placeholderClassName, }: ValueProps) => import("react/jsx-runtime").JSX.Element;
51
+ Content: ({ className, openClassName, closedClassName, children, }: ContentProps) => import("react/jsx-runtime").JSX.Element;
52
+ Item: ({ value: itemValue, className, children }: ItemProps) => import("react/jsx-runtime").JSX.Element;
53
+ ItemText: ({ children }: {
54
+ children?: ReactNode;
55
+ }) => import("react/jsx-runtime").JSX.Element;
56
+ ItemIndicator: ({ className, children }: ItemIndicatorProps) => import("react/jsx-runtime").JSX.Element | null;
57
+ };
58
+ export default SelectBase;
59
+ //# sourceMappingURL=SelectBase.d.ts.map
@@ -0,0 +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"}