sellmate-design-system-react 9.0.0-beta.4 โ†’ 9.0.0-beta.41

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 (196) hide show
  1. package/AGENTS.md +670 -95
  2. package/README.md +111 -9
  3. package/dist/components/SAccountListBox/AccountListBoxPortal.d.ts +31 -0
  4. package/dist/components/SAccountListBox/README.md +86 -0
  5. package/dist/components/SAccountListBox/SAccountListBox.d.ts +79 -0
  6. package/dist/components/SAccountListBox/SystemMenuPortal.d.ts +58 -0
  7. package/dist/components/SAccountListBox/accountListBox.config.d.ts +64 -0
  8. package/dist/components/SAccountListBox/index.d.ts +2 -0
  9. package/dist/components/SBadge/README.md +26 -0
  10. package/dist/components/SBadge/SBadge.d.ts +1 -1
  11. package/dist/components/SBarcodeInput/README.md +12 -4
  12. package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +10 -2
  13. package/dist/components/SButton/README.md +38 -0
  14. package/dist/components/SCalendar/README.md +13 -0
  15. package/dist/components/SCalendarBoard/CalendarDayCard.d.ts +38 -0
  16. package/dist/components/SCalendarBoard/CalendarDayEventListBox.d.ts +26 -0
  17. package/dist/components/SCalendarBoard/CalendarEventButton.d.ts +13 -0
  18. package/dist/components/SCalendarBoard/CalendarMoreButton.d.ts +12 -0
  19. package/dist/components/SCalendarBoard/README.md +137 -0
  20. package/dist/components/SCalendarBoard/SCalendarBoard.d.ts +68 -0
  21. package/dist/components/SCalendarBoard/calendarBoard.config.d.ts +33 -0
  22. package/dist/components/SCalendarBoard/index.d.ts +3 -0
  23. package/dist/components/SCalendarBoard/types.d.ts +31 -0
  24. package/dist/components/SCallout/README.md +16 -1
  25. package/dist/components/SCallout/SCallout.d.ts +9 -4
  26. package/dist/components/SCard/README.md +16 -0
  27. package/dist/components/SCard/SCard.d.ts +17 -2
  28. package/dist/components/SCheckbox/README.md +8 -0
  29. package/dist/components/SChipFilter/README.md +339 -14
  30. package/dist/components/SChipFilter/SChipFilter.d.ts +150 -60
  31. package/dist/components/SChipFilter/index.d.ts +1 -1
  32. package/dist/components/SChipInput/README.md +16 -2
  33. package/dist/components/SChipInput/SChipInput.d.ts +8 -2
  34. package/dist/components/SChipInput/index.d.ts +1 -1
  35. package/dist/components/SCircleProgress/README.md +8 -0
  36. package/dist/components/SConfirmModal/README.md +11 -3
  37. package/dist/components/SConfirmModal/SConfirmModal.d.ts +16 -8
  38. package/dist/components/SDatePicker/README.md +20 -2
  39. package/dist/components/SDatePicker/SDatePicker.d.ts +27 -4
  40. package/dist/components/SDateRangePicker/README.md +19 -4
  41. package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +19 -6
  42. package/dist/components/SDivider/README.md +7 -0
  43. package/dist/components/SDivider/SDivider.d.ts +11 -0
  44. package/dist/components/SDraggableItem/README.md +37 -0
  45. package/dist/components/SDraggableItem/SDraggableItem.d.ts +2 -0
  46. package/dist/components/SDraggableItem/index.d.ts +1 -1
  47. package/dist/components/SDraggableList/README.md +30 -0
  48. package/dist/components/SDraggableList/SDraggableList.d.ts +11 -0
  49. package/dist/components/SDraggableList/index.d.ts +1 -1
  50. package/dist/components/SDrawer/README.md +8 -0
  51. package/dist/components/SDropdownButton/README.md +19 -0
  52. package/dist/components/SEditor/EditorBody.d.ts +36 -0
  53. package/dist/components/SEditor/EditorToolbar.d.ts +93 -0
  54. package/dist/components/SEditor/README.md +203 -0
  55. package/dist/components/SEditor/SEditor.d.ts +114 -0
  56. package/dist/components/SEditor/editor-icons.d.ts +63 -0
  57. package/dist/components/SEditor/editor.config.d.ts +119 -0
  58. package/dist/components/SEditor/index.d.ts +8 -0
  59. package/dist/components/SEditor/tiptap-api.d.ts +29 -0
  60. package/dist/components/SEditor/use-is-mobile.d.ts +14 -0
  61. package/dist/components/SExpansionItem/README.md +36 -0
  62. package/dist/components/SExpansionItem/index.d.ts +1 -1
  63. package/dist/components/SField/README.md +29 -5
  64. package/dist/components/SField/SField.d.ts +20 -8
  65. package/dist/components/SFilePicker/README.md +18 -4
  66. package/dist/components/SFilePicker/SFilePicker.d.ts +11 -5
  67. package/dist/components/SFooter/README.md +25 -0
  68. package/dist/components/SFooter/SFooter.d.ts +4 -3
  69. package/dist/components/SForm/README.md +12 -1
  70. package/dist/components/SForm/SForm.d.ts +2 -2
  71. package/dist/components/SGhostButton/README.md +22 -4
  72. package/dist/components/SGnb/README.md +57 -6
  73. package/dist/components/SGnb/SGnb.d.ts +58 -8
  74. package/dist/components/SGnb/gnb.config.d.ts +12 -5
  75. package/dist/components/SGnb/index.d.ts +1 -1
  76. package/dist/components/SGnbSystem/README.md +186 -0
  77. package/dist/components/SGnbSystem/SGnbSystem.d.ts +179 -0
  78. package/dist/components/SGnbSystem/gnbSystem.config.d.ts +122 -0
  79. package/dist/components/SGnbSystem/index.d.ts +2 -0
  80. package/dist/components/SGuide/README.md +15 -0
  81. package/dist/components/SIcon/README.md +10 -0
  82. package/dist/components/SIcon/SIcon.d.ts +1 -1
  83. package/dist/components/SIcon/icons.gen.d.ts +4 -0
  84. package/dist/components/SImage/README.md +15 -1
  85. package/dist/components/SImage/SImage.d.ts +2 -2
  86. package/dist/components/SInput/README.md +6 -4
  87. package/dist/components/SInput/SInput.d.ts +10 -4
  88. package/dist/components/SKeyValueTable/README.md +86 -0
  89. package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +6 -2
  90. package/dist/components/SKeyValueTable/index.d.ts +1 -1
  91. package/dist/components/SLayout/README.md +22 -1
  92. package/dist/components/SLayout/SLayout.d.ts +6 -2
  93. package/dist/components/SLayout/index.d.ts +1 -1
  94. package/dist/components/SLinearProgress/README.md +15 -0
  95. package/dist/components/SLinearProgress/SLinearProgress.d.ts +3 -0
  96. package/dist/components/SLinearProgress/index.d.ts +1 -1
  97. package/dist/components/SList/README.md +15 -3
  98. package/dist/components/SList/SList.d.ts +7 -5
  99. package/dist/components/SList/index.d.ts +1 -1
  100. package/dist/components/SListItem/README.md +41 -0
  101. package/dist/components/SListItem/index.d.ts +1 -1
  102. package/dist/components/SLoadingContainer/loading.d.ts +18 -2
  103. package/dist/components/SLoadingModal/README.md +10 -2
  104. package/dist/components/SLoadingModal/SLoadingModal.d.ts +4 -4
  105. package/dist/components/SLoadingModal/index.d.ts +1 -1
  106. package/dist/components/SModal/README.md +1 -1
  107. package/dist/components/SNumberInput/README.md +14 -6
  108. package/dist/components/SNumberInput/SNumberInput.d.ts +12 -4
  109. package/dist/components/SPage/README.md +87 -5
  110. package/dist/components/SPage/SPage.d.ts +29 -9
  111. package/dist/components/SPage/SPageHeader.d.ts +31 -13
  112. package/dist/components/SPage/index.d.ts +2 -2
  113. package/dist/components/SPage/page-column.d.ts +34 -0
  114. package/dist/components/SPage/page-width.d.ts +23 -0
  115. package/dist/components/SPage/page.config.d.ts +18 -0
  116. package/dist/components/SPopover/README.md +15 -0
  117. package/dist/components/SPopup/README.md +27 -2
  118. package/dist/components/SPopup/SPopup.d.ts +7 -3
  119. package/dist/components/SPopup/index.d.ts +1 -1
  120. package/dist/components/SPortal/README.md +18 -0
  121. package/dist/components/SRadio/README.md +20 -0
  122. package/dist/components/SRadioButton/README.md +18 -0
  123. package/dist/components/SRadioButton/SRadioButton.d.ts +1 -1
  124. package/dist/components/SRadioCard/README.md +78 -0
  125. package/dist/components/SRadioCard/SRadioCard.d.ts +29 -0
  126. package/dist/components/SRadioCard/SRadioCardGroup.d.ts +36 -0
  127. package/dist/components/SRadioCard/index.d.ts +2 -0
  128. package/dist/components/SScrollArea/README.md +27 -0
  129. package/dist/components/SSearchInput/README.md +63 -0
  130. package/dist/components/SSearchInput/SSearchInput.d.ts +52 -0
  131. package/dist/components/SSearchInput/index.d.ts +1 -0
  132. package/dist/components/SSectionHeaderCard/README.md +37 -0
  133. package/dist/components/SSectionHeaderCard/SSectionHeaderCard.d.ts +10 -0
  134. package/dist/components/SSelect/README.md +29 -11
  135. package/dist/components/SSelect/SSelect.d.ts +28 -8
  136. package/dist/components/SSplitter/README.md +17 -2
  137. package/dist/components/SSplitter/SSplitter.d.ts +7 -3
  138. package/dist/components/SStepper/README.md +26 -0
  139. package/dist/components/SSwitch/README.md +13 -1
  140. package/dist/components/SSwitch/SSwitch.d.ts +1 -3
  141. package/dist/components/SSystemActionButton/README.md +221 -0
  142. package/dist/components/SSystemActionButton/SSystemActionButton.d.ts +161 -0
  143. package/dist/components/SSystemActionButton/index.d.ts +2 -0
  144. package/dist/components/SSystemActionButton/systemActionButton.config.d.ts +93 -0
  145. package/dist/components/STable/README.md +94 -10
  146. package/dist/components/STable/STable.d.ts +130 -22
  147. package/dist/components/STable/index.d.ts +1 -1
  148. package/dist/components/STabs/README.md +13 -2
  149. package/dist/components/STabs/STabs.d.ts +3 -5
  150. package/dist/components/STabs/index.d.ts +1 -1
  151. package/dist/components/STabs/tabs.config.d.ts +3 -4
  152. package/dist/components/STag/README.md +52 -0
  153. package/dist/components/STag/STag.d.ts +3 -1
  154. package/dist/components/STextLink/README.md +19 -1
  155. package/dist/components/STextLink/STextLink.d.ts +5 -1
  156. package/dist/components/STextarea/README.md +4 -4
  157. package/dist/components/STextarea/STextarea.d.ts +10 -4
  158. package/dist/components/STimePicker/README.md +16 -2
  159. package/dist/components/STimePicker/STimePicker.d.ts +11 -5
  160. package/dist/components/STimePicker/timepicker.config.d.ts +4 -2
  161. package/dist/components/STimeRangePicker/README.md +28 -2
  162. package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +11 -5
  163. package/dist/components/SToast/README.md +25 -1
  164. package/dist/components/SToast/SToast.d.ts +2 -2
  165. package/dist/components/SToggle/README.md +8 -0
  166. package/dist/components/SToggle/index.d.ts +1 -1
  167. package/dist/components/STooltip/README.md +25 -1
  168. package/dist/components/STooltip/STooltip.d.ts +1 -1
  169. package/dist/components/STree/README.md +44 -3
  170. package/dist/components/STree/STree.d.ts +24 -4
  171. package/dist/components/STree/index.d.ts +1 -1
  172. package/dist/docs/Gallery.d.ts +9 -0
  173. package/dist/docs/gallery-previews.d.ts +24 -0
  174. package/dist/index.cjs +10890 -5322
  175. package/dist/index.cjs.map +1 -1
  176. package/dist/index.d.ts +8 -0
  177. package/dist/index.js +10852 -5322
  178. package/dist/index.js.map +1 -1
  179. package/dist/lib/doc-sections.d.ts +35 -0
  180. package/dist/lib/field-width.d.ts +31 -0
  181. package/dist/lib/floating-height.d.ts +15 -0
  182. package/dist/lib/story-docs.d.ts +19 -3
  183. package/dist/lib/truncated-value-tooltip.d.ts +18 -0
  184. package/dist/llms-full.txt +3396 -297
  185. package/dist/llms.txt +675 -97
  186. package/dist/playground/categories.d.ts +19 -0
  187. package/dist/styles.css +1731 -166
  188. package/dist/theme.css +216 -24
  189. package/eslint/index.mjs +14 -0
  190. package/eslint/lib/table-column.mjs +26 -0
  191. package/eslint/rules/divider-vertical-height.mjs +137 -0
  192. package/eslint/rules/field-width-grade.d.mts +41 -0
  193. package/eslint/rules/field-width-grade.mjs +311 -0
  194. package/eslint/rules/table-column-width.mjs +110 -0
  195. package/eslint/scale.gen.mjs +5 -2
  196. package/package.json +13 -1
@@ -1,6 +1,10 @@
1
1
  import { type CSSProperties, type ReactNode } from 'react';
2
2
  import { type SDateRangeValue } from '../SDateRangePicker';
3
- export type SChipFilterType = 'single' | 'multi' | 'keyword' | 'date' | 'period' | 'custom';
3
+ /** ํ•„ํ„ฐ๊ฐ€ ๊ฐ’์„ ๋ฐ›๋Š” ๋ฐฉ์‹. ๊ฐ ๊ฐ’์— ๋Œ€์‘ํ•˜๋Š” ํ•„๋“œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋”ฐ๋กœ ์žˆ๋‹ค โ€”
4
+ * SChipFilterSelectFieldยทSChipFilterSelectMultiFieldยทSChipFilterKeywordFieldยท
5
+ * SChipFilterDatePickerDayFieldยทSChipFilterDatePickerRangeFieldยท
6
+ * SChipFilterDatePickerStatisticsFieldยทSChipFilterCustomField */
7
+ export type SChipFilterType = SChipFilterField['type'];
4
8
  export type SChipFilterOptionValue = string | number;
5
9
  export type SChipFilterMatchMode = 'contains' | 'exact' | 'excludes';
6
10
  export type SChipFilterPeriodUnit = 'day' | 'month' | 'quarter' | 'half' | 'year' | 'custom';
@@ -9,7 +13,7 @@ export interface SChipFilterOption {
9
13
  label: string;
10
14
  disabled?: boolean;
11
15
  }
12
- /** date/period ํ•„๋“œ์˜ ํ”„๋ฆฌ์…‹ ๋ผ๋””์˜ค ํ•ญ๋ชฉ (์˜ค๋Š˜/์ง€๋‚œ 7์ผ/์ผ๋ณ„/์›”๋ณ„/์‚ฌ์šฉ์ž ์ง€์ • ๋“ฑ) */
16
+ /** datepicker-rangeยทdatepicker-statistics ํ•„๋“œ์˜ ํ”„๋ฆฌ์…‹ ๋ผ๋””์˜ค ํ•ญ๋ชฉ (์˜ค๋Š˜/์ง€๋‚œ 7์ผ/์ผ๋ณ„/์›”๋ณ„/์‚ฌ์šฉ์ž ์ง€์ • ๋“ฑ) */
13
17
  export interface SChipFilterDatePreset {
14
18
  /** ํ”„๋ฆฌ์…‹ ์‹๋ณ„์ž */
15
19
  value: string;
@@ -17,7 +21,8 @@ export interface SChipFilterDatePreset {
17
21
  label: string;
18
22
  /** true๋ฉด "์‚ฌ์šฉ์ž ์ง€์ •" โ€” ์„ ํƒ ์‹œ ๋‚ ์งœ/๊ธฐ๊ฐ„ ํ”ผ์ปค๊ฐ€ ์ถ”๊ฐ€๋กœ ๋…ธ์ถœ๋œ๋‹ค. resolve๋Š” ๋ฌด์‹œ๋œ๋‹ค. */
19
23
  custom?: boolean;
20
- /** custom์ด ์•„๋‹ ๋•Œ ์‹ค์ œ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋‹จ์ผ ๋‚ ์งœ(string) ๋˜๋Š” ๊ธฐ๊ฐ„([start,end]) ๋ชจ๋‘ ๊ฐ€๋Šฅ */
24
+ /** custom์ด ์•„๋‹ ๋•Œ ์‹ค์ œ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋‹จ์ผ ๋‚ ์งœ(string) ๋˜๋Š” ๊ธฐ๊ฐ„([start,end]) ๋ชจ๋‘ ๊ฐ€๋Šฅ โ€”
25
+ * datepicker-range ์—์„œ๋Š” 'd' ๋ฅผ ๊ทธ ํ•˜๋ฃจ์งœ๋ฆฌ ๊ธฐ๊ฐ„ ['d', 'd'] ์™€ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ๋ณธ๋‹ค */
21
26
  resolve?: () => string | SDateRangeValue;
22
27
  }
23
28
  /** keyword ํ•„๋“œ์—์„œ matchModes ํ™œ์„ฑ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’ ํ˜•ํƒœ โ€” ์ž…๋ ฅํ•ด ์ถ”๊ฐ€ํ•œ ํ‚ค์›Œ๋“œ ๋ชฉ๋ก */
@@ -25,7 +30,7 @@ export interface SChipFilterKeywordValue {
25
30
  keywords: string[];
26
31
  mode: SChipFilterMatchMode;
27
32
  }
28
- /** period ํ•„๋“œ ๊ฐ’ โ€” ์„ ํƒ ๋‹จ์œ„(unit)์™€ ๊ทธ ๋‹จ์œ„์˜ ์ž…๋ ฅ๊ฐ’(value)์„ ํ•จ๊ป˜ ๋ณด๊ด€ํ•œ๋‹ค */
33
+ /** datepicker-statistics ํ•„๋“œ ๊ฐ’ โ€” ์„ ํƒ ๋‹จ์œ„(unit)์™€ ๊ทธ ๋‹จ์œ„์˜ ์ž…๋ ฅ๊ฐ’(value)์„ ํ•จ๊ป˜ ๋ณด๊ด€ํ•œ๋‹ค */
29
34
  export interface SChipFilterPeriodValue {
30
35
  unit: SChipFilterPeriodUnit;
31
36
  value?: string | number | SDateRangeValue | null;
@@ -34,58 +39,136 @@ export interface SChipFilterPeriodValue {
34
39
  export type SChipFilterCustomValue = Record<string, unknown>;
35
40
  export type SChipFilterValue = SChipFilterOptionValue | SChipFilterOptionValue[] | SDateRangeValue | SChipFilterKeywordValue | SChipFilterPeriodValue | SChipFilterCustomValue | null | undefined;
36
41
  export type SChipFilterValueMap = Record<string, SChipFilterValue>;
37
- export interface SChipFilterField {
42
+ /** ํƒ€์ž…๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ชจ๋“  ํ•„ํ„ฐ๊ฐ€ ๊ฐ–๋Š” ์†์„ฑ */
43
+ export interface SChipFilterFieldBase {
38
44
  /** ํ•„ํ„ฐ ์‹๋ณ„์ž */
39
45
  key: string;
40
46
  /** ์นฉ์— ํ‘œ์‹œํ•  ๋ ˆ์ด๋ธ” */
41
47
  label: string;
42
- /** ํ•„ํ„ฐ ํƒ€์ž… */
43
- type: SChipFilterType;
44
- /** single/multi/keyword ํ›„๋ณด ๋ชฉ๋ก */
45
- options?: SChipFilterOption[];
46
48
  /** ํ•„์ˆ˜ ํ•„ํ„ฐ ํ‘œ์‹œ. true๋ฉด ๊ฐ’์ด ๋น„์–ด ์žˆ์„ ๋•Œ ๊ธฐ๋ณธ๊ฐ’(defaultValue ๋˜๋Š” ํƒ€์ž…๋ณ„ ๋‚ด์žฅ ๊ธฐ๋ณธ๊ฐ’)์ด
47
- * ์ž๋™์œผ๋กœ ์ฑ„์›Œ์ง€๊ณ , clearable์€ ํ˜„์žฌ ๊ฐ’์ด ๊ธฐ๋ณธ๊ฐ’๊ณผ ๊ฐ™์„ ๋• ์ˆจ๊ฒจ์ง€๋ฉฐ ํด๋ฆญ ์‹œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค */
49
+ * ์ž๋™์œผ๋กœ ์ฑ„์›Œ์ง€๊ณ , clearable์€ ํ˜„์žฌ ๊ฐ’์ด ๊ธฐ๋ณธ๊ฐ’๊ณผ ๊ฐ™์„ ๋• ์ˆจ๊ฒจ์ง€๋ฉฐ ํด๋ฆญ ์‹œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค.
50
+ * ๊ฐ’์ด ์ฑ„์›Œ์กŒ๋‹ค๊ฐ€ ๋‹ค์‹œ ๋น„๋ฉด(์˜ˆ: value๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ถ€๋ชจ๊ฐ€ onReset์—์„œ ์ž๊ธฐ ์ƒํƒœ๋ฅผ ๋น„์šฐ๋Š” ๊ฒฝ์šฐ)
51
+ * ๊ธฐ๋ณธ๊ฐ’์ด ํ•œ ๋ฒˆ ๋” ์ฑ„์›Œ์ง„๋‹ค โ€” required ํ•„๋“œ๊ฐ€ ๋นˆ ์ฑ„๋กœ ๋‚จ์œผ๋ฉด onSearch๊ฐ€ ๋ง‰ํžˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
52
+ * ๋‹จ ๊ทธ ๊ฐ’์„ ๋ถ€๋ชจ๊ฐ€ value๋กœ ๋ฐ›์•„ ์ฃผ์ง€ ์•Š์œผ๋ฉด ๋ฐ˜๋ณตํ•ด์„œ ์ฑ„์šฐ์ง€๋Š” ์•Š๋Š”๋‹ค */
48
53
  required?: boolean;
49
- /** ๊ณ ์ • ํ•„ํ„ฐ. true๋ฉด activeKeys/defaultActive์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•ญ์ƒ ๋…ธ์ถœ๋˜๊ณ  "ํ•„ํ„ฐ ์ถ”๊ฐ€" ๋ชฉ๋ก์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค */
50
- fix?: boolean;
51
- /** ์ดˆ๊ธฐ๊ฐ’ ๋ฐ clearable ํด๋ฆญ ์‹œ ๋˜๋Œ์•„๊ฐˆ ๊ฐ’. required ์—ฌ๋ถ€์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ ์šฉ๋œ๋‹ค โ€” ๊ฐ’์ด ๋น„์–ด ์žˆ์œผ๋ฉด
52
- * ๋งˆ์šดํŠธ(๋˜๋Š” "ํ•„ํ„ฐ ์ถ”๊ฐ€"๋กœ ํ™œ์„ฑํ™”) ์‹œ ์ด ๊ฐ’์ด ์ž๋™์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค. required์ธ๋ฐ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด
53
- * ํƒ€์ž…๋ณ„ ๋‚ด์žฅ ๊ธฐ๋ณธ๊ฐ’(single: ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜, date: ์˜ค๋Š˜ ๋‚ ์งœ)์„ ๋Œ€์‹  ์“ด๋‹ค */
54
+ /** ๊ณ ์ • ํ•„ํ„ฐ. true๋ฉด ํ•ญ์ƒ ๋…ธ์ถœ๋˜๊ณ  "ํ•„ํ„ฐ ์ถ”๊ฐ€" ๋ชฉ๋ก์—๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋ฉฐ ์นฉ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค.
55
+ * required๋„ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋‚ธ๋‹ค. ๋‚˜๋จธ์ง€ ํ•„๋“œ๋Š” "ํ•„ํ„ฐ ์ถ”๊ฐ€"์—์„œ ๊ณจ๋ž๊ฑฐ๋‚˜ value์— ๊ฐ’์ด ๋“ค์–ด
56
+ * ์žˆ๋Š” ๋™์•ˆ ๋…ธ์ถœ๋œ๋‹ค โ€” ๊ฐ’์œผ๋กœ ๋–  ์žˆ๋˜ ์นฉ์€ ๊ฐ’์ด ๋น„๋ฉด ํ•จ๊ป˜ ๋น ์ง€๊ณ , "ํ•„ํ„ฐ ์ถ”๊ฐ€"๋กœ ๊บผ๋‚ธ ์นฉ์€
57
+ * ๊ฐ’์ด ์—†์–ด๋„ ์„ธ์…˜ ๋™์•ˆ ์ž๋ฆฌ๋ฅผ ์ง€ํ‚จ๋‹ค */
58
+ fixed?: boolean;
59
+ /** ์ดˆ๊ธฐ๊ฐ’ ๋ฐ clearable ํด๋ฆญ ์‹œ ๋˜๋Œ์•„๊ฐˆ ๊ฐ’.
60
+ *
61
+ * **`fixed` ๋˜๋Š” `required` ํ•„๋“œ์—์„œ๋งŒ ์“ด๋‹ค.** ๊ทธ ์™ธ ํ•„๋“œ์— ์ง€์ •ํ•˜๋ฉด ๋ฌด์‹œํ•˜๊ณ  ์ฝ˜์†”์— ์•Œ๋ฆฐ๋‹ค โ€”
62
+ * ๋บ„ ์ˆ˜ ์žˆ๋Š” ํ•„ํ„ฐ๋Š” ์ฒ˜์Œ์— ๋ฐ”์— ์—†๋Š”๋ฐ, ๊ฐ’ ๋งต์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์ฑ„์›Œ์ ธ **๋ณด์ด์ง€๋„ ์ง€์šธ ์ˆ˜๋„ ์—†๋Š”
63
+ * ์กฐ๊ฑด์ด ๊ฒ€์ƒ‰์— ๊ฑธ๋ฆฐ๋‹ค.** ์นฉ์„ ์ง€์›Œ ๊ฐ’์„ ๋น„์›Œ๋„ "๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™”"๊ฐ€ ๊ทธ ๊ฐ’์„ ๋˜๋Œ๋ ค ๋†“์•„ ํ•„ํ„ฐ๊ฐ€
64
+ * ์กฐ์šฉํžˆ ๋˜์‚ด์•„๋‚œ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐ’์ด ์ •ํ•ด์ ธ ์žˆ์–ด์•ผ ํ•˜๋Š” ํ•„ํ„ฐ๋ผ๋ฉด ๊ทธ๊ฒƒ์ด `fixed`ยท`required` ๋‹ค.
65
+ *
66
+ * required์ธ๋ฐ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํƒ€์ž…๋ณ„ ๋‚ด์žฅ ๊ธฐ๋ณธ๊ฐ’(select: ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜,
67
+ * datepicker-dayยทdatepicker-range: ์˜ค๋Š˜ ๋‚ ์งœ)์„ ๋Œ€์‹  ์“ด๋‹ค. `fixed`ยท`required` ์ธ
68
+ * selectยทselect-multi ๋Š” ํ›„๋ณด๊ฐ€ ํ•˜๋‚˜๋ฟ์ผ ๋•Œ ๊ทธ ๊ฐ’์ด ๊ธฐ๋ณธ๊ฐ’์ด ๋œ๋‹ค(options ์ฐธ๊ณ ) โ€”
69
+ * defaultValue ๋ฅผ ํ•จ๊ป˜ ์ฃผ๋ฉด ๊ทธ์ชฝ์ด ์ด๊ธด๋‹ค. ์ธ๋ผ์ธ(radioButton) datepicker-range
70
+ * ํ•„๋“œ๋Š” ํŒ์˜ค๋ฒ„ ์—†์ด ๋ฐ”์— ๋ฐ”๋กœ ๋…ธ์ถœ๋˜์–ด ๋นˆ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์ด ๊ทœ์น™๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์–ธ์ œ๋‚˜
71
+ * ์˜ค๋Š˜์ด ์ฑ„์›Œ์ง„๋‹ค */
54
72
  defaultValue?: SChipFilterValue;
55
- /** ๊ฒฝ๊ณ  ํ…Œ๋‘๋ฆฌ ํ‘œ์‹œ */
56
- warning?: boolean;
57
- /** ๋น„ํ™œ์„ฑ ์ƒํƒœ */
73
+ /** ์ด ํ•„ํ„ฐ๋งŒ ๋น„ํ™œ์„ฑ. ๋ฐ”์— ๋‚จ์•„ ์žˆ๋˜ ํŒ์˜ค๋ฒ„๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š๊ณ  clearable๋„ ๋ˆŒ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
74
+ * ๋ฐ” ์ „์ฒด๋ฅผ ์ž ๊ทธ๋ ค๋ฉด SChipFilterProps.disabled๋ฅผ ์“ด๋‹ค โ€” ๋‘˜์€ OR๋กœ ํ•ฉ์ณ์ง„๋‹ค */
58
75
  disabled?: boolean;
59
- /** ์ฒ˜์Œ๋ถ€ํ„ฐ ์นฉ์œผ๋กœ ๋…ธ์ถœํ• ์ง€ ์—ฌ๋ถ€. false๋ฉด "ํ•„ํ„ฐ ์ถ”๊ฐ€" ๋ชฉ๋ก์—๋งŒ ๋‚˜ํƒ€๋‚˜๊ณ , ๊ฑฐ๊ธฐ์„œ ๊ณ ๋ฅด๊ธฐ ์ „๊นŒ์ง€๋Š”
60
- * ํ•„ํ„ฐ ๋ฐ”์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. activeKeys๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๊ฒฝ์šฐ์—” ์ดˆ๊ธฐ activeKeys ๊ตฌ์„ฑ์—๋งŒ ์ฐธ๊ณ ๋˜๊ณ 
61
- * ์ดํ›„์—” activeKeys๊ฐ€ ์šฐ์„ ํ•œ๋‹ค */
62
- defaultActive?: boolean;
63
- /** keyword ์ž…๋ ฅ placeholder */
76
+ }
77
+ /** ํ›„๋ณด ๋ชฉ๋ก์—์„œ ๊ณ ๋ฅด๋Š” ํ•„ํ„ฐ โ€” selectยทselect-multiยทkeyword */
78
+ export interface SChipFilterOptionsField extends SChipFilterFieldBase {
79
+ /** ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด ๋ชฉ๋ก.
80
+ *
81
+ * **`fixed`ยท`required` ์ธ selectยทselect-multi ์—์„œ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด๊ฐ€ ํ•˜๋‚˜๋ฟ์ด๋ฉด ๊ทธ ๊ฐ’์ด
82
+ * ์ž๋™์œผ๋กœ ์„ ํƒ๋œ๋‹ค** โ€” ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ๋ฅด์ง€ ์•Š์•„๋„ `onValueChange` ๋กœ ๊ฐ’์ด ์˜ฌ๋ผ์˜จ๋‹ค
83
+ * (select ๋Š” ๊ทธ ๊ฐ’, select-multi ๋Š” ๊ทธ ๊ฐ’ ํ•˜๋‚˜์งœ๋ฆฌ ๋ฐฐ์—ด). ์˜ต์…˜์ด API ์‘๋‹ต์ด๋ผ ๋Šฆ๊ฒŒ ๋„์ฐฉํ•ด๋„
84
+ * ๋„์ฐฉํ•œ ์‹œ์ ์— ์ฑ„์›Œ์ง„๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ ๊ฐ’์„ ์ง€์šฐ๋ฉด ๋‹ค์‹œ ์ฑ„์šฐ์ง€ ์•Š๋Š”๋‹ค โ€”
85
+ * ๋‹ค๋งŒ "๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™”"๋Š” ๋˜๋Œ๋ ค ๋†“๋Š”๋‹ค(๋‹ค๋ฅธ ๊ธฐ๋ณธ๊ฐ’๊ณผ ๊ฐ™์€ ๊ทœ์น™).
86
+ * ํ›„๋ณด๊ฐ€ ํ•˜๋‚˜์ธ๋ฐ ๋น„ํ™œ์„ฑ(`disabled`)์ด๋ฉด ๊ณ ๋ฅผ ์ˆ˜ ์—†๋Š” ๊ฐ’์ด๋ฏ€๋กœ ์ฑ„์šฐ์ง€ ์•Š๋Š”๋‹ค.
87
+ *
88
+ * ๋บ„ ์ˆ˜ ์žˆ๋Š” ํ•„ํ„ฐ(= `fixed`ยท`required` ๊ฐ€ ์•„๋‹Œ ํ•„๋“œ)๋Š” ํ›„๋ณด๊ฐ€ ํ•˜๋‚˜์—ฌ๋„ ์ฑ„์šฐ์ง€ ์•Š๋Š”๋‹ค โ€”
89
+ * ์ฒ˜์Œ์— ๋ฐ”์— ์—†๋Š” ํ•„ํ„ฐ๋ผ ๋ณด์ด์ง€๋„ ์ง€์šธ ์ˆ˜๋„ ์—†๋Š” ์กฐ๊ฑด์ด ๊ฒ€์ƒ‰์— ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
90
+ * ํ›„๋ณด๊ฐ€ ํ•˜๋‚˜๋ฟ์ธ ํ•„ํ„ฐ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ฑธ์–ด์•ผ ํ•œ๋‹ค๋ฉด `fixed` ๋‚˜ `required` ๋กœ ์ค€๋‹ค */
91
+ options?: SChipFilterOption[];
92
+ }
93
+ /** ํ”„๋ฆฌ์…‹์œผ๋กœ ๊ธฐ๊ฐ„์„ ๊ณ ๋ฅด๋Š” ํ•„ํ„ฐ โ€” datepicker-rangeยทdatepicker-statistics */
94
+ export interface SChipFilterPresetsField extends SChipFilterFieldBase {
95
+ /** ํ”„๋ฆฌ์…‹ ๋ผ๋””์˜ค ๋ชฉ๋ก. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํƒ€์ž…๋ณ„ ๊ธฐ๋ณธ ๋ชฉ๋ก์„ ์“ด๋‹ค โ€”
96
+ * datepicker-range: ์˜ค๋Š˜ยท์ง€๋‚œ 7์ผยท์ง€๋‚œ 30์ผยท์‚ฌ์šฉ์ž ์ง€์ •,
97
+ * datepicker-statistics: ์ผ๋ณ„ยท์›”๋ณ„ยท๋ถ„๊ธฐ๋ณ„ยท๋ฐ˜๊ธฐ๋ณ„ยท์—ฐ๋„๋ณ„ยท์‚ฌ์šฉ์ž ์ง€์ •.
98
+ * ํ”„๋ฆฌ์…‹ ๋ผ๋””์˜ค ์—†์ด ์บ˜๋ฆฐ๋”(datepicker-range) ํ•˜๋‚˜๋งŒ ๋‘๋ ค๋ฉด presets: [] ๋ฅผ ๋ช…์‹œํ•œ๋‹ค */
99
+ presets?: SChipFilterDatePreset[];
100
+ /** ์„ ํƒ ๊ฐ€๋Šฅ ๋ฒ”์œ„ */
101
+ selectable?: [string, string];
102
+ /** "์‚ฌ์šฉ์ž ์ง€์ •" ํ”„๋ฆฌ์…‹์œผ๋กœ ๊ธฐ๊ฐ„์„ ๊ณ ๋ฅผ ๋•Œ์˜ ์ตœ๋Œ€ ์„ ํƒ ์ผ์ˆ˜.
103
+ * ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ presets์— custom ํ”„๋ฆฌ์…‹์ด ์žˆ์œผ๋ฉด ๊ธฐ๋ณธ 90์ผ์ด ์ ์šฉ๋œ๋‹ค โ€” ๋ฌด์ œํ•œ ๊ธฐ๊ฐ„
104
+ * ์ง‘๊ณ„ยท์กฐํšŒ๋กœ ๋ฐฑ์—”๋“œ์— ๊ณผ๋„ํ•œ ์š”์ฒญ์ด ๊ฐ€๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ์•ˆ์ „์žฅ์น˜. ๋‹ค๋ฅธ ์ƒํ•œ์ด ํ•„์š”ํ•˜๋ฉด
105
+ * ์ด ๊ฐ’์„ ์ง์ ‘ ์ง€์ •ํ•œ๋‹ค */
106
+ maxRange?: number;
107
+ }
108
+ /** ํ›„๋ณด ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค */
109
+ export interface SChipFilterSelectField extends SChipFilterOptionsField {
110
+ type: 'select';
111
+ }
112
+ /** ํ›„๋ณด ์—ฌ๋Ÿฟ์„ ๊ณ ๋ฅธ๋‹ค */
113
+ export interface SChipFilterSelectMultiField extends SChipFilterOptionsField {
114
+ type: 'select-multi';
115
+ }
116
+ /** keyword ํ•„๋“œ์˜ ์ž…๋ ฅ ๋ฐฉ์‹ โ€” ๋ฌด์—‡์„ ํ‚ค์›Œ๋“œ ํ•˜๋‚˜์˜ ๋์œผ๋กœ ๋ณผ์ง€ */
117
+ export type SChipFilterKeywordInput = 'tag' | 'csv';
118
+ /** ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•ด ๋ˆ„์ ํ•œ๋‹ค. options๋Š” ์ž…๋ ฅ ์ค‘ ํ›„๋ณด๋กœ๋งŒ ๋œฌ๋‹ค */
119
+ export interface SChipFilterKeywordField extends SChipFilterOptionsField {
120
+ type: 'keyword';
121
+ /** ์ž…๋ ฅ placeholder */
64
122
  placeholder?: string;
65
- /** keyword ํ•„๋“œ์— ๊ฒ€์ƒ‰์กฐ๊ฑด(ํฌํ•จ/์ผ์น˜) ํ† ๊ธ€ ํ‘œ์‹œ ์—ฌ๋ถ€ */
123
+ /** ์ž…๋ ฅ ๋ฐฉ์‹. ๊ธฐ๋ณธ 'tag' โ€” Enter ๋กœ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•œ๋‹ค.
124
+ * 'csv' ๋Š” ์‰ผํ‘œ๋„ ๊ตฌ๋ถ„์ž๋กœ ์ธ์ •ํ•ด, ์‰ผํ‘œ๋ฅผ ์น˜๊ฑฐ๋‚˜ ์‰ผํ‘œ๊ฐ€ ์„ž์ธ ํ…์ŠคํŠธ๋ฅผ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๊ทธ ์ž๋ฆฌ์—์„œ
125
+ * ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ์ชผ๊ฐœ์ ธ ๋ชฉ๋ก์— ์Œ“์ธ๋‹ค(์—‘์…€์—์„œ ๋ณต์‚ฌํ•œ ์ฝ”๋“œ ๋ชฉ๋ก์„ ํ•œ ๋ฒˆ์— ๋„ฃ๋Š” ์šฉ๋„).
126
+ * ์Œ“์ด๋Š” ๋ชฉ๋ก๋„ ๊ฐ’ ํ˜•ํƒœ๋„ 'tag' ์™€ ๊ฐ™๋‹ค โ€” ๊ตฌ๋ถ„์ž๋งŒ ๋Š˜์–ด๋‚œ๋‹ค. */
127
+ input?: SChipFilterKeywordInput;
128
+ /** ๊ฒ€์ƒ‰์กฐ๊ฑด(ํฌํ•จ/์ผ์น˜) ํ† ๊ธ€ ํ‘œ์‹œ ์—ฌ๋ถ€ */
66
129
  matchModes?: boolean;
67
- /** matchModes ํ™œ์„ฑ ์‹œ "๋ฏธํฌํ•จ"๊นŒ์ง€ ํฌํ•จํ•ด 3๊ฐœ(ํฌํ•จ/์ผ์น˜/๋ฏธํฌํ•จ)๋กœ ๋…ธ์ถœํ• ์ง€. ๊ธฐ๋ณธ false โ€” ๊ธฐ์กด์ฒ˜๋Ÿผ 2๊ฐœ(ํฌํ•จ/์ผ์น˜)๋งŒ */
130
+ /** matchModes ํ™œ์„ฑ ์‹œ "๋ฏธํฌํ•จ"๊นŒ์ง€ ํฌํ•จํ•ด 3๊ฐœ(ํฌํ•จ/์ผ์น˜/๋ฏธํฌํ•จ)๋กœ ๋…ธ์ถœํ• ์ง€.
131
+ * ๊ธฐ๋ณธ false โ€” 2๊ฐœ(ํฌํ•จ/์ผ์น˜)๋งŒ */
68
132
  excludeMode?: boolean;
69
- /** date ์„ ํƒ ๊ฐ€๋Šฅ ๋ฒ”์œ„ */
133
+ }
134
+ /** ๋‚ ์งœ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค โ€” ์บ˜๋ฆฐ๋” ํŠธ๋ฆฌ๊ฑฐ ํ•˜๋‚˜๋งŒ ๋†“์ธ๋‹ค. ํ”„๋ฆฌ์…‹์œผ๋กœ ๊ณ ๋ฅด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ์‹œ์ž‘~์ข…๋ฃŒ๋ฅผ
135
+ * ๋ฐ›์•„์•ผ ํ•˜๋ฉด datepicker-range ๋‹ค */
136
+ export interface SChipFilterDatePickerDayField extends SChipFilterFieldBase {
137
+ type: 'datepicker-day';
138
+ /** ์บ˜๋ฆฐ๋” ํŠธ๋ฆฌ๊ฑฐ์˜ placeholder */
139
+ placeholder?: string;
140
+ /** ์„ ํƒ ๊ฐ€๋Šฅ ๋ฒ”์œ„ */
70
141
  selectable?: [string, string];
71
- /** date ํ”„๋ฆฌ์…‹์˜ "์‚ฌ์šฉ์ž ์ง€์ •" ๊ธฐ๊ฐ„ ์„ ํƒ ์‹œ ์ตœ๋Œ€ ์„ ํƒ ์ผ์ˆ˜ */
72
- maxRange?: number;
73
- /** date/period ํ•„๋“œ์˜ ํ”„๋ฆฌ์…‹ ๋ผ๋””์˜ค ๋ชฉ๋ก. date์—์„œ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ์กด์ฒ˜๋Ÿผ ๋‹จ์ผ ์บ˜๋ฆฐ๋” ํŠธ๋ฆฌ๊ฑฐ๋กœ ๋™์ž‘ํ•˜๊ณ ,
74
- * period์—์„œ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ผ๋ณ„ยท์›”๋ณ„ยท๋ถ„๊ธฐ๋ณ„ยท๋ฐ˜๊ธฐ๋ณ„ยท์—ฐ๋„๋ณ„ยท์‚ฌ์šฉ์ž ์ง€์ • ๊ธฐ๋ณธ ๋ชฉ๋ก์„ ์“ด๋‹ค */
75
- presets?: SChipFilterDatePreset[];
76
- /** presets ์‚ฌ์šฉ ์‹œ UI ํ˜•ํƒœ โ€” true: ํ•„ํ„ฐ ๋ฐ”์— ์„ธ๊ทธ๋จผํŠธ ๋ผ๋””์˜ค๋กœ ์ธ๋ผ์ธ ๋…ธ์ถœ(ํŒ์˜ค๋ฒ„ ์—†์Œ),
77
- * false(๊ธฐ๋ณธ): ์นฉ ํด๋ฆญ ์‹œ ํŒ์˜ค๋ฒ„ ์•ˆ์— ์„ธ๋กœ ๋ผ๋””์˜ค ๋ชฉ๋ก(+์‚ฌ์šฉ์ž ์ง€์ • ์„ ํƒ ์‹œ ๊ธฐ๊ฐ„ ํ”ผ์ปค) */
142
+ }
143
+ /** ๊ธฐ๊ฐ„(์‹œ์ž‘~์ข…๋ฃŒ)์„ ๊ณ ๋ฅธ๋‹ค. presets๋ฅผ ์ฃผ๋ฉด ํ”„๋ฆฌ์…‹ ๋ผ๋””์˜ค ๋ชฉ๋ก์œผ๋กœ ๊ณ ๋ฅด๊ณ ,
144
+ * ์ฃผ์ง€ ์•Š์œผ๋ฉด ๊ธฐ๊ฐ„ ํ”ผ์ปค ํ•˜๋‚˜๋งŒ ๋†“์ธ๋‹ค */
145
+ export interface SChipFilterDatePickerRangeField extends SChipFilterPresetsField {
146
+ type: 'datepicker-range';
147
+ /** presets๋ฅผ ํ•„ํ„ฐ ๋ฐ”์— ์„ธ๊ทธ๋จผํŠธ ๋ผ๋””์˜ค๋กœ ํŽผ์ณ ๋†“๋Š”๋‹ค(ํŒ์˜ค๋ฒ„ ์—†์Œ).
148
+ * ๊ธฐ๋ณธ false โ€” ์นฉ ํด๋ฆญ ์‹œ ํŒ์˜ค๋ฒ„ ์•ˆ์— ์„ธ๋กœ ๋ผ๋””์˜ค ๋ชฉ๋ก(+์‚ฌ์šฉ์ž ์ง€์ • ์„ ํƒ ์‹œ ๊ธฐ๊ฐ„ ํ”ผ์ปค) */
78
149
  radioButton?: boolean;
79
- /** type์ด 'custom'์ผ ๋•Œ ํ•„ํ„ฐ ๋ฐ”์— ์ด ํ•„๋“œ ์ž๋ฆฌ์— ๋†“์ผ ๋…ธ๋“œ๋ฅผ ์ง์ ‘ ๊ทธ๋ฆฐ๋‹ค. ์นฉ+ํŒ์˜ค๋ฒ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ 
80
- * ๋ฐ˜ํ™˜ํ•œ ๋…ธ๋“œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐ”์— ๋…ธ์ถœ๋œ๋‹ค โ€” SSelect๋ฅผ ๊ทธ๋Œ€๋กœ ๋†“๊ฑฐ๋‚˜ SInput์„ ๋ฐ”๋กœ ๋…ธ์ถœํ•˜๋Š” ์‹์œผ๋กœ
81
- * ๋ Œ๋” ๋ฐฉ์‹ ์ž์ฒด๋ฅผ ์™„์ „ํžˆ ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•œ๋‹ค. */
150
+ }
151
+ /** ์ง‘๊ณ„ ๋‹จ์œ„(์ผยท์›”ยท๋ถ„๊ธฐยท๋ฐ˜๊ธฐยท์—ฐ)์™€ ๊ทธ ๋‹จ์œ„์˜ ๊ฐ’์„ ํ•จ๊ป˜ ๊ณ ๋ฅธ๋‹ค */
152
+ export interface SChipFilterDatePickerStatisticsField extends SChipFilterPresetsField {
153
+ type: 'datepicker-statistics';
154
+ }
155
+ /** ์นฉ+ํŒ์˜ค๋ฒ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”์— ๋†“์„ ๋…ธ๋“œ๋ฅผ ์•ฑ์ด ์ง์ ‘ ๊ทธ๋ฆฐ๋‹ค */
156
+ export interface SChipFilterCustomField extends SChipFilterFieldBase {
157
+ type: 'custom';
158
+ /** ํ•„ํ„ฐ ๋ฐ”์˜ ์ด ํ•„๋“œ ์ž๋ฆฌ์— ๋†“์ผ ๋…ธ๋“œ๋ฅผ ์ง์ ‘ ๊ทธ๋ฆฐ๋‹ค. ๋ฐ˜ํ™˜ํ•œ ๋…ธ๋“œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ฐ”์— ๋…ธ์ถœ๋œ๋‹ค โ€”
159
+ * SSelect๋ฅผ ๊ทธ๋Œ€๋กœ ๋†“๊ฑฐ๋‚˜ SInput์„ ๋ฐ”๋กœ ๋…ธ์ถœํ•˜๋Š” ์‹์œผ๋กœ ๋ Œ๋” ๋ฐฉ์‹์„ ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•œ๋‹ค. */
82
160
  render?: (ctx: {
83
161
  value: SChipFilterValue;
84
162
  disabled?: boolean;
163
+ /** ์†ํ•œ ๊ทธ๋ฃน์ด rule์„ ์œ„๋ฐ˜ํ•˜๋Š” ๋™์•ˆ true โ€” ์ง์ ‘ ๊ทธ๋ฆฐ ๋…ธ๋“œ์—๋„ ๊ฒฝ๊ณ  ํ‘œ์‹œ๋ฅผ ๋งž์ถ”๋ผ๋Š” ์‹ ํ˜ธ๋‹ค */
85
164
  warning?: boolean;
86
165
  onValueChange: (value: SChipFilterValue) => void;
87
166
  }) => ReactNode;
88
167
  }
168
+ /** ํ•„ํ„ฐ ํ•˜๋‚˜์˜ ์ •์˜. type์— ๋”ฐ๋ผ ์“ธ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด ๋‹ฌ๋ผ์ง„๋‹ค โ€”
169
+ * options๋Š” selectยทselect-multiยทkeyword, presetsยทmaxRangeยทradioButton์€
170
+ * datepicker-rangeยทdatepicker-statistics, render๋Š” custom ์—๋งŒ ์žˆ๋‹ค */
171
+ export type SChipFilterField = SChipFilterSelectField | SChipFilterSelectMultiField | SChipFilterDatePickerDayField | SChipFilterDatePickerRangeField | SChipFilterDatePickerStatisticsField | SChipFilterKeywordField | SChipFilterCustomField;
89
172
  export interface SChipFilterChangeDetail {
90
173
  key: string;
91
174
  value: SChipFilterValue;
@@ -101,7 +184,7 @@ export type SChipFilterGroupRule = {
101
184
  type: 'requireAny';
102
185
  dataGroupName?: string;
103
186
  };
104
- /** ํ•„ํ„ฐ๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ๋„˜๊ธธ ๋•Œ์˜ ๋‹จ์œ„. ๊ทธ๋ฃน์ด ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค ์•ž์— ๊ตฌ๋ถ„์„ ์ด ๋ถ™๋Š”๋‹ค. */
187
+ /** fields๋ฅผ ์ด๋ฃจ๋Š” ๋‹จ์œ„. ๋ฌถ์„ ๊ฒƒ์ด ์—†์–ด๋„ ํ•œ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ์‹ธ ๋„˜๊ธด๋‹ค โ€” `[{ fields: [...] }]` */
105
188
  export interface SChipFilterGroup {
106
189
  fields: SChipFilterField[];
107
190
  /** ์ง€์ •ํ•˜๋ฉด ์ด ๊ทœ์น™์œผ๋กœ ๊ทธ๋ฃน์„ ๊ฒ€์ฆํ•œ๋‹ค. values๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์ฆ‰์‹œ ์žฌํ‰๊ฐ€๋˜๋Š” ์‹ค์‹œ๊ฐ„ ๊ฒ€์ฆ์ด๋ผ โ€”
@@ -110,21 +193,27 @@ export interface SChipFilterGroup {
110
193
  rule?: SChipFilterGroupRule;
111
194
  /** rule์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์„ ๋•Œ ๊ทธ๋ฃน ์ค‘์•™์— ๋„์šธ ํˆดํŒ ๋ฉ”์‹œ์ง€. ์ง€์ • ์•ˆ ํ•˜๋ฉด rule ์ข…๋ฅ˜์— ๋”ฐ๋ฅธ ๊ธฐ๋ณธ ๋ฌธ๊ตฌ๋ฅผ ์“ด๋‹ค */
112
195
  tooltipMessage?: string;
196
+ /** ์ด ๊ทธ๋ฃน ์•ž์— ๊ตฌ๋ถ„์„ ์„ ๋„ฃ์„์ง€. ๊ฒ€์ฆ(rule)๊ณผ ๊ตฌ๋ถ„์„ ์€ ๋ณ„๊ฐœ๋ผ โ€” ๋ฌถ์–ด์„œ ๊ฒ€์ฆ๋งŒ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด
197
+ * ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ์ฒซ ๊ทธ๋ฃน์—๋Š” ์•ž์— ๊ฐ€๋ฅผ ๊ฒƒ์ด ์—†์œผ๋ฏ€๋กœ ๋ฌด์‹œ๋œ๋‹ค(label์„ ์ง€์ •ํ–ˆ๋‹ค๋ฉด ๊ทธ ๊ตฌ๋ถ„์„ ์ด
198
+ * ์ด๋ฏธ ์žˆ๋‹ค) */
199
+ divider?: boolean;
113
200
  }
114
201
  export interface SChipFilterHandle {
115
202
  /** ํŠน์ • ํ•„ํ„ฐ ํŽธ์ง‘ ํŒ์˜ค๋ฒ„๋ฅผ ์—ฝ๋‹ˆ๋‹ค. */
116
203
  open: (key: string) => void;
117
- /** ๋ชจ๋“  ํ•„ํ„ฐ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. */
204
+ /** ๋ฐ”๋ฅผ ์ฒ˜์Œ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค โ€” ๋ชจ๋“  ํ•„ํ„ฐ ๊ฐ’์ด ๊ธฐ๋ณธ๊ฐ’(๋˜๋Š” null)์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ , "ํ•„ํ„ฐ ์ถ”๊ฐ€"๋กœ
205
+ * ๊บผ๋‚ด ๋†“์€ ์นฉ๋„ ํ•จ๊ป˜ ๋น ์ ธ fixedยทrequired ํ•„๋“œ๋งŒ ๋‚จ์Šต๋‹ˆ๋‹ค. ์—ด๋ ค ์žˆ๋˜ ํŽธ์ง‘ ํŒ์˜ค๋ฒ„๋Š” ๋‹ซํž™๋‹ˆ๋‹ค */
118
206
  reset: () => void;
119
- /** fields๋ฅผ ๊ทธ๋ฃน(SChipFilterGroup[])์œผ๋กœ ๋„˜๊ฒผ์„ ๋•Œ, ํ˜„์žฌ ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ๊ฐ ๊ทธ๋ฃน์˜ rule์„ ๋งŒ์กฑํ•˜๋Š”์ง€
120
- * ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ํˆดํŒ์€ ์ด ํ˜ธ์ถœ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ rule ์œ„๋ฐ˜ ์ƒํƒœ์ธ ๋™์•ˆ ํ•ญ์ƒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋–  ์žˆ์œผ๋ฏ€๋กœ,
207
+ /** ํ˜„์žฌ ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ๊ฐ ๊ทธ๋ฃน์˜ rule์„ ๋งŒ์กฑํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  required ํ•„๋“œ๊ฐ€ ๋ชจ๋‘ ๋น„์–ด ์žˆ์ง€ ์•Š์€์ง€
208
+ * ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. rule์„ ์ค€ ๊ทธ๋ฃน์ด ์—†๊ณ  required ํ•„๋“œ๋„ ๋ชจ๋‘ ๊ฐ’์ด ์žˆ์œผ๋ฉด ํ•ญ์ƒ true.
209
+ * ๊ฒฝ๊ณ  ํˆดํŒ์€ ์ด ํ˜ธ์ถœ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ rule ์œ„๋ฐ˜ ์ƒํƒœ์ธ ๋™์•ˆ ํ•ญ์ƒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋–  ์žˆ์œผ๋ฏ€๋กœ,
121
210
  * ์ด ๋ฉ”์„œ๋“œ๋Š” ๊ทธ ์ƒํƒœ๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ์–ด์˜ค๋Š” ์šฉ๋„๋‹ค(์˜ˆ: ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๋˜๋Š”์ง€ ์‚ฌ์ „ ํ™•์ธ) */
122
211
  validate: () => boolean;
123
212
  }
124
213
  export interface SChipFilterProps {
125
- /** ํ•„ํ„ฐ ์ •์˜ ๋ชฉ๋ก. ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์œผ๋ ค๋ฉด SChipFilterGroup[]์„ ๋„˜๊ธด๋‹ค โ€” ๊ทธ๋ฃน์ด ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค ์•ž์—
126
- * ๊ตฌ๋ถ„์„ ์ด ์ž๋™์œผ๋กœ ๋ถ™๋Š”๋‹ค(showLabelยท์ธ์ ‘ ๊ทธ๋ฃนยท์ธ๋ผ์ธ date ํ•„ํ„ฐ์™€ ์ค‘์ฒฉ๋˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌ๋จ). */
127
- fields?: SChipFilterField[] | SChipFilterGroup[];
214
+ /** ํ•„ํ„ฐ ์ •์˜ ๋ชฉ๋ก. ๋ฌถ์„ ๊ฒƒ์ด ์—†์–ด๋„ ํ•œ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ์‹ธ ๋„˜๊ธด๋‹ค โ€” `[{ fields: [...] }]`.
215
+ * ๊ทธ๋ฃน์€ rule๋กœ ํ•จ๊ป˜ ๊ฒ€์ฆํ•˜๊ฑฐ๋‚˜ divider๋กœ ๊ฐˆ๋ผ ๋†“์„ ๋•Œ ๋‚˜๋ˆˆ๋‹ค. */
216
+ fields?: SChipFilterGroup[];
128
217
  /** ํ•„ํ„ฐ ๊ฐ’ ๋งต */
129
218
  value?: SChipFilterValueMap;
130
219
  /** ์ „์ฒด ๊ฐ’ ๋ณ€๊ฒฝ โ€” ํŽธ์ง‘ ์ค‘์ธ ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค(์„ ํƒํ•  ๋•Œ๋งˆ๋‹ค) ํ˜ธ์ถœ๋œ๋‹ค. ์‹ค์ œ ๊ฒ€์ƒ‰ ์‹คํ–‰์€ onSearch๋ฅผ ์“ด๋‹ค */
@@ -133,29 +222,30 @@ export interface SChipFilterProps {
133
222
  onFilterChange?: (detail: SChipFilterChangeDetail) => void;
134
223
  /** ์‹ค์ œ ๊ฒ€์ƒ‰์„ ์‹คํ–‰ํ•  ์‹œ์  โ€” ํŽธ์ง‘ ํŒ์˜ค๋ฒ„์˜ "๊ฒ€์ƒ‰" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ํŒ์˜ค๋ฒ„๊ฐ€ ๋‹ซํž ๋•Œ(๋ฐ”๊นฅ ํด๋ฆญยทEscยท๋‹ค๋ฅธ
135
224
  * ์นฉ์œผ๋กœ ์ „ํ™˜ ํฌํ•จ) ๊ทธ ์‹œ์ ์˜ ์ „์ฒด ๊ฐ’ ๋งต๊ณผ ํ•จ๊ป˜ ํ˜ธ์ถœ๋œ๋‹ค. ํŒ์˜ค๋ฒ„๊ฐ€ ์—†๋Š” ํ•„๋“œ(์ธ๋ผ์ธ date ํ”„๋ฆฌ์…‹ยทcustom,
136
- * clearable ร—, ๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™”)๋Š” ๊ฐ’์ด ๋ฐ”๋€Œ๋Š” ์ฆ‰์‹œ ํ˜ธ์ถœ๋œ๋‹ค. dirty ์ฒดํฌ๊ฐ€ ๊ธฐ๋ณธ ์ ์šฉ๋˜์–ด ์žˆ์–ด โ€” ๋งˆ์ง€๋ง‰์œผ๋กœ
225
+ * clearable ร—, ๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™”)๋Š” ๊ฐ’์ด ๋ฐ”๋€Œ๋Š” ์ฆ‰์‹œ ํ˜ธ์ถœ๋œ๋‹ค. keyword ํ•„ํ„ฐ์—์„œ Enter ๋กœ ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋„
226
+ * ๊ทธ ์ฆ‰์‹œ ํ˜ธ์ถœ๋œ๋‹ค โ€” ํŒ์˜ค๋ฒ„๋Š” ์—ด๋ฆฐ ์ฑ„๋ผ ํ‚ค์›Œ๋“œ๋ฅผ ์ด์–ด์„œ ๋” ๋„ฃ์„ ์ˆ˜ ์žˆ๊ณ , ๋„ฃ์„ ๋•Œ๋งˆ๋‹ค ์กฐํšŒ๊ฐ€ ๊ฐฑ์‹ ๋œ๋‹ค.
227
+ * keyword ์ž…๋ ฅ์ฐฝ์— Enter ์—†์ด ํ…์ŠคํŠธ๋ฅผ ๋‚จ๊ธด ์ฑ„ ํŒ์˜ค๋ฒ„๋ฅผ ๋‹ซ์œผ๋ฉด ๊ทธ ํ…์ŠคํŠธ๋„ ํ‚ค์›Œ๋“œ๋กœ ํ™•์ •ํ•œ ๋’ค
228
+ * ํ˜ธ์ถœ๋œ๋‹ค(input: 'csv'๋ฉด ์ฝค๋งˆ๋กœ ์ชผ๊ฐœ๋Š” ๊ทœ์น™๋„ ๊ทธ๋Œ€๋กœ ์ ์šฉ) โ€” ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋„ฃ๊ณ  "๊ฒ€์ƒ‰"์„ ๋ˆ„๋ฅธ
229
+ * ์กฐ์ž‘์ด ์ž…๋ ฅ ํ™•์ • ์—ฌ๋ถ€ ๋•Œ๋ฌธ์— ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. dirty ์ฒดํฌ๊ฐ€ ๊ธฐ๋ณธ ์ ์šฉ๋˜์–ด ์žˆ์–ด โ€” ๋งˆ์ง€๋ง‰์œผ๋กœ
137
230
  * ์‹ค์ œ ๊ฒ€์ƒ‰์ด ์‹คํ–‰๋œ ๊ฐ’ ๋งต๊ณผ ๋น„๊ตํ•ด ํ•˜๋‚˜๋ผ๋„ ๋‹ฌ๋ผ์ง„ ๊ฒŒ ์—†์œผ๋ฉด(์˜ˆ: ํŒ์˜ค๋ฒ„๋ฅผ ์—ด์—ˆ๋‹ค ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋ฐ”๊พธ๊ณ 
138
- * ๋‹ซ๋Š” ๊ฒฝ์šฐ) ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค. fields๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋„˜๊ฒผ๋‹ค๋ฉด rule์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ ๊ทธ๋ฃน์ด ์žˆ๋Š” ๋™์•ˆ์—”
231
+ * ๋‹ซ๋Š” ๊ฒฝ์šฐ) ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ ๋งˆ์šดํŠธ ํ›„ ์ฒซ ํ˜ธ์ถœ์€ ๋น„๊ตํ•  ๊ธฐ์ค€์ด ์—†์–ด ๊ฐ’์ด ์ฒ˜์Œ ๊ทธ๋Œ€๋กœ์—ฌ๋„ ๋‚˜๊ฐ„๋‹ค โ€”
232
+ * ๋งˆ์šดํŠธ ์‹œ ์ž๋™ ์กฐํšŒํ•˜์ง€ ์•Š๋Š” ํ™”๋ฉด(๋‹ค์ด์–ผ๋กœ๊ทธ ๋“ฑ)์—์„œ ์‚ฌ์šฉ์ž์˜ ์ฒซ "๊ฒ€์ƒ‰"์ด ๋ง‰ํžˆ์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
233
+ * fields๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋„˜๊ฒผ๋‹ค๋ฉด rule์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ ๊ทธ๋ฃน์ด ์žˆ๋Š” ๋™์•ˆ์—”
139
234
  * onSearch๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค โ€” ํ•ด๋‹น ๊ทธ๋ฃน์˜ ๊ฒฝ๊ณ  ํˆดํŒ์€ ์ด ์‹œ์ ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ฐ’์ด ๋น„์–ด ์žˆ๋Š” ๋™์•ˆ ํ•ญ์ƒ
140
- * ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋–  ์žˆ๋‹ค(๋ณ„๋„๋กœ validate()๋ฅผ ํ˜ธ์ถœํ•  ํ•„์š” ์—†์Œ) */
235
+ * ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋–  ์žˆ๋‹ค(๋ณ„๋„๋กœ validate()๋ฅผ ํ˜ธ์ถœํ•  ํ•„์š” ์—†์Œ). required ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋™์•ˆ์—๋„
236
+ * ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค โ€” ์ •์ƒ ์„ค์ •(๋‚ด์žฅ ๊ธฐ๋ณธ๊ฐ’ ๋˜๋Š” defaultValue)์ด๋ผ๋ฉด ์›๋ž˜ ๋น„์›Œ์ง€์ง€
237
+ * ์•Š์ง€๋งŒ, defaultValue ์—†๋Š” select-multiยทkeywordยทcustom์— required๋งŒ ์ค€ ์˜ค์„ค์ •์—์„œ๋Š” "๊ฒ€์ƒ‰
238
+ * ์ดˆ๊ธฐํ™”"ยทclearable์ด ๊ฐ’์„ null๋กœ ๋น„์šธ ์ˆ˜ ์žˆ์–ด ์ด๋•Œ์˜ ์•ˆ์ „์žฅ์น˜๋‹ค */
141
239
  onSearch?: (value: SChipFilterValueMap) => void;
142
- /** ๋…ธ์ถœ ํ•„ํ„ฐ key ๋ชฉ๋ก. ์ง€์ •ํ•˜๋ฉด ์ œ์–ด ์ปดํฌ๋„ŒํŠธ๋กœ ๋™์ž‘ โ€” "ํ•„ํ„ฐ ์ถ”๊ฐ€"๋กœ ๊ณ ๋ฅธ ํ•„๋“œ๋ฅผ ์ด ๋ฐฐ์—ด์— ์ง์ ‘
143
- * ๋„ฃ์–ด์ค˜์•ผ ์นฉ์ด ๋‚˜ํƒ€๋‚œ๋‹ค(onActiveKeysChange์—์„œ ๋ฐ›์€ keys๋กœ ๊ฐฑ์‹ ). ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•„๋“œ๋ณ„
144
- * defaultActive ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‚ด๋ถ€ ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋น„์ œ์–ด ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค */
145
- activeKeys?: string[];
146
- /** ๋…ธ์ถœ ํ•„ํ„ฐ key ๋ณ€๊ฒฝ(์นฉ ์ถ”๊ฐ€ยท์ œ๊ฑฐ) โ€” ๋น„์ œ์–ด ๋ฐฉ์‹์—์„œ๋„ ์ฐธ๊ณ ์šฉ์œผ๋กœ ํ˜ธ์ถœ๋œ๋‹ค.
147
- * activeKeys๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ๋•Œ๋Š” ์ด ๊ฐ’์„ ๊ทธ๋Œ€๋กœ activeKeys์— ๋ฐ˜์˜ํ•ด์•ผ ํ•œ๋‹ค */
148
- onActiveKeysChange?: (keys: string[]) => void;
149
- /** "๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™”" ํด๋ฆญ โ€” ๋ชจ๋“  ํ•„๋“œ๊ฐ€ ๊ธฐ๋ณธ๊ฐ’(๋˜๋Š” null)์œผ๋กœ ๋ฆฌ์…‹๋œ ๋’ค ํ˜ธ์ถœ๋œ๋‹ค */
240
+ /** "๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™”" ํด๋ฆญ โ€” ๋ชจ๋“  ํ•„๋“œ๊ฐ€ ๊ธฐ๋ณธ๊ฐ’(๋˜๋Š” null)์œผ๋กœ ๋ฆฌ์…‹๋˜๊ณ  "ํ•„ํ„ฐ ์ถ”๊ฐ€"๋กœ ๊บผ๋‚ธ ์นฉ์ด
241
+ * ๋ฐ”์—์„œ ๋น ์ง„ ๋’ค ํ˜ธ์ถœ๋œ๋‹ค */
150
242
  onReset?: () => void;
151
- /** "ํ•„ํ„ฐ ์ถ”๊ฐ€" ๋ชฉ๋ก์—์„œ ํ•ญ๋ชฉ์„ ๊ณจ๋ž์„ ๋•Œ โ€” activeKeys๋ฅผ ์ง์ ‘ ์ œ์–ด ์ค‘์ด๋ฉด ์ด ์ฝœ๋ฐฑ์—์„œ
152
- * (๋˜๋Š” onActiveKeysChange์—์„œ) key๋ฅผ activeKeys์— ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ์นฉ์ด ์‹ค์ œ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.
153
- * activeKeys๋ฅผ ๋„˜๊ธฐ์ง€ ์•Š์•˜๋‹ค๋ฉด(๋น„์ œ์–ด) ๋ณ„๋„ ์ฒ˜๋ฆฌ ์—†์ด๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•Œ์•„์„œ ์นฉ์„ ๋…ธ์ถœํ•œ๋‹ค */
243
+ /** "ํ•„ํ„ฐ ์ถ”๊ฐ€" ๋ชฉ๋ก์—์„œ ํ•ญ๋ชฉ์„ ๊ณจ๋ž์„ ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค(์•Œ๋ฆผ). ์นฉ ๋…ธ์ถœ์€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•Œ์•„์„œ ํ•˜๋ฏ€๋กœ
244
+ * ์ด ์ฝœ๋ฐฑ์—์„œ ๋”ฐ๋กœ ํ•ด์ค„ ์ผ์€ ์—†๋‹ค */
154
245
  onAddFilter?: (key: string) => void;
155
- /** ์ขŒ์ธก ํƒœ๊ทธ ํ…์ŠคํŠธ */
246
+ /** ์ขŒ์ธก ํƒœ๊ทธ ํ…์ŠคํŠธ. ์ง€์ •ํ•˜๋ฉด ํƒœ๊ทธ์™€ ๊ทธ ๋’ค ๊ตฌ๋ถ„์„ ์ด ํ•จ๊ป˜ ๋…ธ์ถœ๋˜๊ณ , ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด(undefined)
247
+ * ๋‘˜ ๋‹ค ์ƒ๋žต๋œ๋‹ค */
156
248
  label?: string;
157
- /** ์ขŒ์ธก ํƒœ๊ทธ(label)ยท๊ตฌ๋ถ„์„  ํ‘œ์‹œ ์—ฌ๋ถ€ */
158
- showLabel?: boolean;
159
249
  /** ๊ฒ€์ƒ‰ ์ดˆ๊ธฐํ™” ๋งํฌ ํ‘œ์‹œ ์—ฌ๋ถ€ */
160
250
  showReset?: boolean;
161
251
  /** ๋ฐ” ๋น„ํ™œ์„ฑ ์ƒํƒœ */
@@ -1 +1 @@
1
- export { SChipFilter, type SChipFilterChangeDetail, type SChipFilterDatePreset, type SChipFilterField, type SChipFilterGroup, type SChipFilterGroupRule, type SChipFilterHandle, type SChipFilterKeywordValue, type SChipFilterMatchMode, type SChipFilterOption, type SChipFilterOptionValue, type SChipFilterProps, type SChipFilterType, type SChipFilterValue, type SChipFilterValueMap, } from './SChipFilter';
1
+ export { SChipFilter, type SChipFilterChangeDetail, type SChipFilterCustomField, type SChipFilterCustomValue, type SChipFilterDatePickerDayField, type SChipFilterDatePickerRangeField, type SChipFilterDatePickerStatisticsField, type SChipFilterDatePreset, type SChipFilterField, type SChipFilterFieldBase, type SChipFilterGroup, type SChipFilterGroupRule, type SChipFilterHandle, type SChipFilterKeywordField, type SChipFilterKeywordInput, type SChipFilterKeywordValue, type SChipFilterMatchMode, type SChipFilterOption, type SChipFilterOptionValue, type SChipFilterOptionsField, type SChipFilterPeriodUnit, type SChipFilterPeriodValue, type SChipFilterPresetsField, type SChipFilterProps, type SChipFilterSelectField, type SChipFilterSelectMultiField, type SChipFilterType, type SChipFilterValue, type SChipFilterValueMap, } from './SChipFilter';
@@ -17,7 +17,7 @@
17
17
  | `name?` | `string` | โ€” | |
18
18
  | `rules?` | `Rule[]` | โ€” | |
19
19
  | `error?` | `boolean` | โ€” | |
20
- | `useReset?` | `boolean` | `false` | ์ž…๋ ฅ ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ ํ‘œ์‹œ |
20
+ | `showReset?` | `boolean` | `false` | ์ž…๋ ฅ ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ ํ‘œ์‹œ |
21
21
  | `maxCount?` | `number` | โ€” | ์ตœ๋Œ€ ์นฉ ๊ฐœ์ˆ˜ |
22
22
  | `metaPlacement?` | `SChipInputMetaPlacement` | `'end'` | ์ตœ๋Œ€ ๊ฐœ์ˆ˜ยท์ดˆ๊ธฐํ™” meta ์œ„์น˜ |
23
23
  | `duplicateLabel?` | `string` | โ€” | ์ค‘๋ณต ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ•ญ๋ชฉ๋ช… |
@@ -30,7 +30,7 @@
30
30
  | `labelWidth?` | `number \| string` | โ€” | |
31
31
  | `hint?` | `string` | โ€” | |
32
32
  | `errorMessage?` | `string` | โ€” | |
33
- | `width?` | `number \| string` | โ€” | |
33
+ | `width?` | `SFieldWidth` | โ€” | ์ปจํŠธ๋กค ๋„ˆ๋น„ โ€” ํญ ๋“ฑ๊ธ‰(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) ยท ์ˆซ์ž=px ยท CSS ๊ธธ์ด. ๋“ฑ๊ธ‰์€ `--cmp-field-width-*` ํ† ํฐ์œผ๋กœ ํ’€๋ฆฌ๋ฏ€๋กœ ํ† ํฐ์ด ๋ฐ”๋€Œ๋ฉด ํ™”๋ฉด์ด ๋”ฐ๋ผ๊ฐ„๋‹ค. ๊ฐ’ ๊ธธ์ด์— ์ƒํ•œ์ด ์—†์œผ๋ฉด `"100%"` ๋กœ ๋‘์–ด ํ–‰ ์ „์ฒด๋ฅผ ์“ด๋‹ค. |
34
34
  | `status?` | `SFieldStatus` | โ€” | |
35
35
  | `icon?` | `SIconName` | โ€” | |
36
36
  | `iconColor?` | `SColor` | โ€” | |
@@ -54,6 +54,20 @@
54
54
  |--------|------|-------------|
55
55
  | `focus` | `() => void` | ์ž…๋ ฅ ํ•„๋“œ์— ํฌ์ปค์Šค๋ฅผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. |
56
56
 
57
+ ## Types
58
+
59
+ ### SChipInputSize
60
+
61
+ ```ts
62
+ export type SChipInputSize = SFieldSize;
63
+ ```
64
+
65
+ ### SChipInputMetaPlacement
66
+
67
+ ```ts
68
+ export type SChipInputMetaPlacement = 'end' | 'inline';
69
+ ```
70
+
57
71
  ## Dependencies
58
72
 
59
73
  ### Depends on
@@ -4,6 +4,7 @@ import { type SIconName } from '../SIcon';
4
4
  import { type SColor } from '../../lib/color';
5
5
  import { type Rule } from '../../lib/form';
6
6
  import { type STooltipProps } from '../STooltip';
7
+ import { type SFieldWidth } from '../../lib/field-width';
7
8
  export type SChipInputSize = SFieldSize;
8
9
  export type SChipInputMetaPlacement = 'end' | 'inline';
9
10
  /** ref๋กœ ๋…ธ์ถœ๋˜๋Š” UX ๋ฉ”์„œ๋“œ (sd-chip-input @Method sdFocus ๋Œ€์‘) */
@@ -31,7 +32,7 @@ export interface SChipInputProps {
31
32
  rules?: Rule[];
32
33
  error?: boolean;
33
34
  /** ์ž…๋ ฅ ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ ํ‘œ์‹œ */
34
- useReset?: boolean;
35
+ showReset?: boolean;
35
36
  /** ์ตœ๋Œ€ ์นฉ ๊ฐœ์ˆ˜ */
36
37
  maxCount?: number;
37
38
  /** ์ตœ๋Œ€ ๊ฐœ์ˆ˜ยท์ดˆ๊ธฐํ™” meta ์œ„์น˜ */
@@ -50,7 +51,12 @@ export interface SChipInputProps {
50
51
  labelWidth?: number | string;
51
52
  hint?: string;
52
53
  errorMessage?: string;
53
- width?: number | string;
54
+ /**
55
+ * ์ปจํŠธ๋กค ๋„ˆ๋น„ โ€” ํญ ๋“ฑ๊ธ‰(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) ยท ์ˆซ์ž=px ยท CSS ๊ธธ์ด.
56
+ * ๋“ฑ๊ธ‰์€ `--cmp-field-width-*` ํ† ํฐ์œผ๋กœ ํ’€๋ฆฌ๋ฏ€๋กœ ํ† ํฐ์ด ๋ฐ”๋€Œ๋ฉด ํ™”๋ฉด์ด ๋”ฐ๋ผ๊ฐ„๋‹ค.
57
+ * ๊ฐ’ ๊ธธ์ด์— ์ƒํ•œ์ด ์—†์œผ๋ฉด `"100%"` ๋กœ ๋‘์–ด ํ–‰ ์ „์ฒด๋ฅผ ์“ด๋‹ค.
58
+ */
59
+ width?: SFieldWidth;
54
60
  status?: SFieldStatus;
55
61
  icon?: SIconName;
56
62
  iconColor?: SColor;
@@ -1 +1 @@
1
- export { SChipInput, type SChipInputMetaPlacement, type SChipInputProps, type SChipInputSize, } from './SChipInput';
1
+ export { SChipInput, type SChipInputHandle, type SChipInputMetaPlacement, type SChipInputProps, type SChipInputSize, } from './SChipInput';
@@ -17,6 +17,14 @@
17
17
  | `className?` | `string` | โ€” | |
18
18
  | `style?` | `CSSProperties` | โ€” | |
19
19
 
20
+ ## Types
21
+
22
+ ### SCircleProgressType
23
+
24
+ ```ts
25
+ export type SCircleProgressType = 'primary' | 'inverse' | 'error' | 'complete' | 'neutral';
26
+ ```
27
+
20
28
  ## Dependencies
21
29
 
22
30
  ### Used by
@@ -12,7 +12,7 @@
12
12
  | `persistent?` | `boolean` | `false` | ๋ฐฑ๋“œ๋กญยทESC๋กœ ์•ˆ ๋‹ซํžˆ๊ณ  ํ”๋“ค๋ฆผ (sd-modal-container persistent). **๊ธฐ๋ณธ๊ฐ’ false** โ€” ํ™•์ธ ๋ชจ๋‹ฌ์€ ์žƒ์„ ์ž…๋ ฅ์ด ์—†์–ด ๋ฐฑ๋“œ๋กญยทESC๋กœ ๋‹ซํžŒ๋‹ค |
13
13
  | `type?` | `SConfirmModalType` | `'positive'` | ํƒ€์ž… (์•„์ด์ฝ˜ยท๋ฉ”์ธ๋ฒ„ํŠผ ์ƒ‰ ๊ฒฐ์ •) |
14
14
  | `modalTitle?` | `string` | `''` | |
15
- | `titleClass?` | `string` | โ€” | ์ œ๋ชฉ ์—˜๋ฆฌ๋จผํŠธ์— ์ถ”๊ฐ€ํ•  ํด๋ž˜์Šค (sd-confirm-modal titleClass) |
15
+ | `titleClassName?` | `string` | โ€” | ์ œ๋ชฉ ์—˜๋ฆฌ๋จผํŠธ์— ์ถ”๊ฐ€ํ•  ํด๋ž˜์Šค (sd-confirm-modal titleClassName) |
16
16
  | `topMessage?` | `string[]` | `[]` | ์ฝ˜ํ…์ธ  ๋ฐ•์Šค ์ƒ๋‹จ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก (๊ฐ ํ•ญ๋ชฉ์ด ํ•œ ์ค„, HTML ๋ฌธ์ž์—ด ํ—ˆ์šฉ โ€” innerHTML ๋ Œ๋”๋ง) |
17
17
  | `bottomMessage?` | `string[]` | `[]` | ์ฝ˜ํ…์ธ  ๋ฐ•์Šค ํ•˜๋‹จ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก (๊ฐ ํ•ญ๋ชฉ์ด ํ•œ ์ค„, HTML ๋ฌธ์ž์—ด ํ—ˆ์šฉ โ€” innerHTML ๋ Œ๋”๋ง) |
18
18
  | `tagLabel?` | `string` | โ€” | tag ์Šฌ๋กฏ ๊ธฐ๋ณธ ํƒœ๊ทธ ๋ ˆ์ด๋ธ” (tagSlot ๋ฏธ์ง€์ • ์‹œ) |
@@ -23,8 +23,8 @@
23
23
  | `tagSlot?` | `ReactNode` | โ€” | ์ฝ˜ํ…์ธ  ๋ฐ•์Šค tag ์œ„์น˜ ์ปค์Šคํ…€ ์ฝ˜ํ…์ธ  (๋ฏธ์ง€์ • ์‹œ tagLabel ๊ธฐ๋ฐ˜ STag) |
24
24
  | `optionSlot?` | `ReactNode` | โ€” | ์ฝ˜ํ…์ธ  ๋ฐ•์Šค์—์„œ ํƒœ๊ทธ ์˜ค๋ฅธ์ชฝ ์ปค์Šคํ…€ ์ฝ˜ํ…์ธ  (๋ฏธ์ง€์ • ์‹œ slotLabel ํ…์ŠคํŠธ) |
25
25
  | `contentSlot?` | `ReactNode` | โ€” | ์ฝ˜ํ…์ธ  ๋ฐ•์Šค ๋ฐ”๋กœ ์•„๋ž˜์— ํ†ต์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ์ปค์Šคํ…€ ์ฝ˜ํ…์ธ  (์ „์ฒด ํญ) |
26
- | `mainButtonLabel?` | `string` | `'ํ™•์ธ'` | ๋ฉ”์ธ ๋ฒ„ํŠผ |
27
- | `mainButtonName?` | `ConfirmModalMainButton` | โ€” | ํ™•์ธ ๋ฒ„ํŠผ ํ”„๋ฆฌ์…‹ (์—†์œผ๋ฉด type์— ๋”ฐ๋ผ ์ž๋™ ๊ฒฐ์ •) |
26
+ | `mainButtonLabel?` | `string` | `'ํ™•์ธ'` | ๋ฉ”์ธ(ํ™•์ธ) ๋ฒ„ํŠผ์— ์ฐํžˆ๋Š” ๊ธ€์ž |
27
+ | `mainButtonOutline?` | `boolean` | โ€” | ๋ฉ”์ธ ๋ฒ„ํŠผ์„ ์•„์›ƒ๋ผ์ธ(ํ…Œ๋‘๋ฆฌ)์œผ๋กœ ์„ธ์šธ์ง€. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด `type` ์ด ์ •ํ•œ๋‹ค โ€” positiveยทnegative ๋Š” ์ฑ„์šด ๋ฒ„ํŠผ, default ๋Š” ์•„์›ƒ๋ผ์ธ. **์ƒ‰์€ ์—ฌ๊ธฐ์„œ ๊ณ ๋ฅด์ง€ ์•Š๋Š”๋‹ค.** `type` ์ด ์ •ํ•œ๋‹ค(positive=primary / negative=danger / default=neutral) โ€” ์•„์ด์ฝ˜ยท์ œ๋ชฉ์ด ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฒ„ํŠผ ์ƒ‰์ด ์–ด๊ธ‹๋‚˜๋ฉด ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ—ท๊ฐˆ๋ฆฌ๋ฏ€๋กœ ๊ทธ ์กฐํ•ฉ์€ ํƒ€์ž…์—์„œ ๋ง‰๋Š”๋‹ค. ๊ธ€์ž๋Š” `mainButtonLabel` ์ด๋‹ค. `type="default"` ์— `false` ๋ฅผ ์ฃผ๋ฉด ํ…Œ๋‘๋ฆฌ ์—†๋Š” ํฐ ๋ฒ„ํŠผ์ด ๋œ๋‹ค(neutral ์€ solidยทoutline ์ด ๊ฐ™์€ ํฐ ๋ฉด์ด๊ณ  ํ…Œ๋‘๋ฆฌ ์œ ๋ฌด๋งŒ ๋‹ค๋ฅด๋‹ค). ํ™•์ธ ๋ฒ„ํŠผ์ด ๋ˆŒ๋Ÿฌ์•ผ ํ•  ๊ฒƒ์œผ๋กœ ์•ˆ ์ฝํžˆ๋ฏ€๋กœ ๊ถŒํ•˜์ง€ ์•Š๋Š”๋‹ค. |
28
28
  | `subButtonLabel?` | `string` | โ€” | ์„œ๋ธŒ(์ทจ์†Œ) ๋ฒ„ํŠผ |
29
29
 
30
30
  #### Events
@@ -36,6 +36,14 @@
36
36
  | `onCancel` | `() => void` | |
37
37
  | `onClose` | `() => void` | ๋‹ซ๊ธฐ(X) ๋ฒ„ํŠผ ํด๋ฆญ (sdClose) |
38
38
 
39
+ ## Types
40
+
41
+ ### SConfirmModalType
42
+
43
+ ```ts
44
+ export type SConfirmModalType = 'positive' | 'negative' | 'default';
45
+ ```
46
+
39
47
  ## Dependencies
40
48
 
41
49
  ### Used by
@@ -1,8 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type STagColor, type STagShape, type STagSize } from '../STag';
3
3
  export type SConfirmModalType = 'positive' | 'negative' | 'default';
4
- /** ํ™•์ธ ๋ฒ„ํŠผ ํ”„๋ฆฌ์…‹ (sd-confirm-modal ConfirmModalMainButton) */
5
- export type ConfirmModalMainButton = 'primary_md' | 'primary_outline_md' | 'danger_md' | 'danger_outline_md' | 'neutral_outline_md';
6
4
  export interface SConfirmModalProps {
7
5
  open?: boolean;
8
6
  onOpenChange?: (open: boolean) => void;
@@ -11,8 +9,8 @@ export interface SConfirmModalProps {
11
9
  /** ํƒ€์ž… (์•„์ด์ฝ˜ยท๋ฉ”์ธ๋ฒ„ํŠผ ์ƒ‰ ๊ฒฐ์ •) */
12
10
  type?: SConfirmModalType;
13
11
  modalTitle?: string;
14
- /** ์ œ๋ชฉ ์—˜๋ฆฌ๋จผํŠธ์— ์ถ”๊ฐ€ํ•  ํด๋ž˜์Šค (sd-confirm-modal titleClass) */
15
- titleClass?: string;
12
+ /** ์ œ๋ชฉ ์—˜๋ฆฌ๋จผํŠธ์— ์ถ”๊ฐ€ํ•  ํด๋ž˜์Šค (sd-confirm-modal titleClassName) */
13
+ titleClassName?: string;
16
14
  /** ์ฝ˜ํ…์ธ  ๋ฐ•์Šค ์ƒ๋‹จ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก (๊ฐ ํ•ญ๋ชฉ์ด ํ•œ ์ค„, HTML ๋ฌธ์ž์—ด ํ—ˆ์šฉ โ€” innerHTML ๋ Œ๋”๋ง) */
17
15
  topMessage?: string[];
18
16
  /** ์ฝ˜ํ…์ธ  ๋ฐ•์Šค ํ•˜๋‹จ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก (๊ฐ ํ•ญ๋ชฉ์ด ํ•œ ์ค„, HTML ๋ฌธ์ž์—ด ํ—ˆ์šฉ โ€” innerHTML ๋ Œ๋”๋ง) */
@@ -31,10 +29,20 @@ export interface SConfirmModalProps {
31
29
  optionSlot?: ReactNode;
32
30
  /** ์ฝ˜ํ…์ธ  ๋ฐ•์Šค ๋ฐ”๋กœ ์•„๋ž˜์— ํ†ต์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ์ปค์Šคํ…€ ์ฝ˜ํ…์ธ  (์ „์ฒด ํญ) */
33
31
  contentSlot?: ReactNode;
34
- /** ๋ฉ”์ธ ๋ฒ„ํŠผ */
32
+ /** ๋ฉ”์ธ(ํ™•์ธ) ๋ฒ„ํŠผ์— ์ฐํžˆ๋Š” ๊ธ€์ž */
35
33
  mainButtonLabel?: string;
36
- /** ํ™•์ธ ๋ฒ„ํŠผ ํ”„๋ฆฌ์…‹ (์—†์œผ๋ฉด type์— ๋”ฐ๋ผ ์ž๋™ ๊ฒฐ์ •) */
37
- mainButtonName?: ConfirmModalMainButton;
34
+ /**
35
+ * ๋ฉ”์ธ ๋ฒ„ํŠผ์„ ์•„์›ƒ๋ผ์ธ(ํ…Œ๋‘๋ฆฌ)์œผ๋กœ ์„ธ์šธ์ง€. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด `type` ์ด ์ •ํ•œ๋‹ค โ€”
36
+ * positiveยทnegative ๋Š” ์ฑ„์šด ๋ฒ„ํŠผ, default ๋Š” ์•„์›ƒ๋ผ์ธ.
37
+ *
38
+ * **์ƒ‰์€ ์—ฌ๊ธฐ์„œ ๊ณ ๋ฅด์ง€ ์•Š๋Š”๋‹ค.** `type` ์ด ์ •ํ•œ๋‹ค(positive=primary / negative=danger /
39
+ * default=neutral) โ€” ์•„์ด์ฝ˜ยท์ œ๋ชฉ์ด ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฒ„ํŠผ ์ƒ‰์ด ์–ด๊ธ‹๋‚˜๋ฉด ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ—ท๊ฐˆ๋ฆฌ๋ฏ€๋กœ
40
+ * ๊ทธ ์กฐํ•ฉ์€ ํƒ€์ž…์—์„œ ๋ง‰๋Š”๋‹ค. ๊ธ€์ž๋Š” `mainButtonLabel` ์ด๋‹ค.
41
+ *
42
+ * `type="default"` ์— `false` ๋ฅผ ์ฃผ๋ฉด ํ…Œ๋‘๋ฆฌ ์—†๋Š” ํฐ ๋ฒ„ํŠผ์ด ๋œ๋‹ค(neutral ์€ solidยทoutline ์ด
43
+ * ๊ฐ™์€ ํฐ ๋ฉด์ด๊ณ  ํ…Œ๋‘๋ฆฌ ์œ ๋ฌด๋งŒ ๋‹ค๋ฅด๋‹ค). ํ™•์ธ ๋ฒ„ํŠผ์ด ๋ˆŒ๋Ÿฌ์•ผ ํ•  ๊ฒƒ์œผ๋กœ ์•ˆ ์ฝํžˆ๋ฏ€๋กœ ๊ถŒํ•˜์ง€ ์•Š๋Š”๋‹ค.
44
+ */
45
+ mainButtonOutline?: boolean;
38
46
  /** ์„œ๋ธŒ(์ทจ์†Œ) ๋ฒ„ํŠผ */
39
47
  subButtonLabel?: string;
40
48
  /** ํ™•์ธ ๋ฒ„ํŠผ ํด๋ฆญ (sdOk) */
@@ -44,4 +52,4 @@ export interface SConfirmModalProps {
44
52
  onClose?: () => void;
45
53
  }
46
54
  /** SConfirmModal โ€” sd-confirm-modal ํฌํŒ…. ์•„์ด์ฝ˜+์ œ๋ชฉ+๋ฉ”์‹œ์ง€+ํƒœ๊ทธ+ํ™•์ธ/์ทจ์†Œ ๋ฒ„ํŠผ. */
47
- export declare function SConfirmModal({ open, onOpenChange, persistent, type, modalTitle, titleClass, topMessage, bottomMessage, tagLabel, tagShape, tagSize, tagColor, slotLabel, tagSlot, optionSlot, contentSlot, mainButtonLabel, mainButtonName, subButtonLabel, onOk, onCancel, onClose, }: SConfirmModalProps): import("react").JSX.Element;
55
+ export declare function SConfirmModal({ open, onOpenChange, persistent, type, modalTitle, titleClassName, topMessage, bottomMessage, tagLabel, tagShape, tagSize, tagColor, slotLabel, tagSlot, optionSlot, contentSlot, mainButtonLabel, mainButtonOutline, subButtonLabel, onOk, onCancel, onClose, }: SConfirmModalProps): import("react").JSX.Element;
@@ -33,7 +33,9 @@
33
33
  | `placeholder?` | `string` | โ€” | |
34
34
  | `selectable?` | `[string, string]` | โ€” | ์„ ํƒ ๊ฐ€๋Šฅ ๋ฒ”์œ„ [์‹œ์ž‘, ์ข…๋ฃŒ] |
35
35
  | `disabled?` | `boolean` | `false` | |
36
- | `width?` | `number \| string` | โ€” | |
36
+ | `clearable?` | `boolean` | `false` | ์„ ํƒ๊ฐ’ ์ง€์šฐ๊ธฐ ๋ฒ„ํŠผ. ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ ๋‚˜ํƒ€๋‚˜๊ณ , ๋ˆ„๋ฅด๋ฉด `onValueChange` ๋กœ `null` ์ด ์˜จ๋‹ค. **ํ•„์ˆ˜ ์ž…๋ ฅ ํ•„๋“œ์—๋Š” ์ผœ์ง€ ์•Š๋Š”๋‹ค** โ€” ์ง€์šฐ๋ฉด ๋‹ค์‹œ ๊ณ ๋ฅด๊ธฐ ์ „๊นŒ์ง€ ํผ์ด ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ๋‹ค. `STimePicker` ยท `STimeRangePicker` ยท `SSelect` ์˜ `clearable` ๊ณผ ๊ฐ™์€ ๊ทœ์น™์ด๋‹ค. |
37
+ | `width?` | `SFieldWidth` | โ€” | ์ปจํŠธ๋กค ๋„ˆ๋น„ โ€” ํญ ๋“ฑ๊ธ‰(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) ยท ์ˆซ์ž=px ยท CSS ๊ธธ์ด. ๋“ฑ๊ธ‰์€ `--cmp-field-width-*` ํ† ํฐ์œผ๋กœ ํ’€๋ฆฌ๋ฏ€๋กœ ํ† ํฐ์ด ๋ฐ”๋€Œ๋ฉด ํ™”๋ฉด์ด ๋”ฐ๋ผ๊ฐ„๋‹ค. ๊ฐ’ ๊ธธ์ด์— ์ƒํ•œ์ด ์—†์œผ๋ฉด `"100%"` ๋กœ ๋‘์–ด ํ–‰ ์ „์ฒด๋ฅผ ์“ด๋‹ค. |
38
+ | `maxWidth?` | `SFieldWidth` | โ€” | ์ปจํŠธ๋กค ์ตœ๋Œ€ ๋„ˆ๋น„ โ€” ํญ ๋“ฑ๊ธ‰ ยท ์ˆซ์ž=px ยท CSS ๊ธธ์ด. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ’ ๊ธธ์ด(`YYYY-MM-DD`)์— ๋งž์ถ˜ ๋‚ด์žฅ ์ƒํ•œ(`size='md'` โ†’ `lg`, `'sm'` โ†’ `md`)์ด ๊ฑธ๋ ค, `width="100%"` ๋ฅผ ๋ฐ›์•„๋„ ํ–‰ ์ „์ฒด๋กœ ๋Š˜์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ํŒ์˜ค๋ฒ„์ฒ˜๋Ÿผ ํญ์ด ์ด๋ฏธ ์ข๊ฒŒ ์ •ํ•ด์ง„ ์ž๋ฆฌ์—์„œ ๊ทธ ํญ์„ ๊ทธ๋Œ€๋กœ ์ฑ„์›Œ์•ผ ํ•˜๋ฉด `width="100%"` ์™€ ํ•จ๊ป˜ `maxWidth="100%"` ๋ฅผ ์ค€๋‹ค. `0` ์€ ์ƒํ•œ์„ ์•„์˜ˆ ๊ฑธ์ง€ ์•Š๋Š”๋‹ค โ€” ๋ถ€๋ชจ๋ณด๋‹ค ๋„“์–ด์ง€๋Š” ๊ฒƒ๊นŒ์ง€ ํ—ˆ์šฉํ•ด์•ผ ํ•  ๋•Œ๋งŒ ์“ด๋‹ค. |
37
39
  | `name?` | `string` | โ€” | |
38
40
  | `rules?` | `Rule[]` | โ€” | |
39
41
  | `status?` | `SFieldStatus` | โ€” | |
@@ -55,7 +57,7 @@
55
57
 
56
58
  | Event | Type | Description |
57
59
  |-------|------|-------------|
58
- | `onValueChange` | `(value: string) => void` | ์„ ํƒ ๋ณ€๊ฒฝ (sdUpdate) |
60
+ | `onValueChange` | `(value: string \| null) => void` | ์„ ํƒ ๋ณ€๊ฒฝ (sdUpdate). `clearable` ๋กœ ์ง€์šฐ๋ฉด `null` ์ด ์˜จ๋‹ค |
59
61
  | `onViewChange` | `(view: { year: number; month: number }) => void` | ๋ณด์ด๋Š” ์—ฐยท์›” ๋ณ€๊ฒฝ (sdViewChange) |
60
62
 
61
63
  ### SDatePickerYearListbox
@@ -76,6 +78,20 @@
76
78
  |-------|------|-------------|
77
79
  | `onValueChange` | `(year: string) => void` | |
78
80
 
81
+ ## Types
82
+
83
+ ### SDatePickerMode
84
+
85
+ ```ts
86
+ export type SDatePickerMode = 'date' | 'month' | 'year';
87
+ ```
88
+
89
+ ### SDatePickerSize
90
+
91
+ ```ts
92
+ export type SDatePickerSize = SFieldSize;
93
+ ```
94
+
79
95
  ## Dependencies
80
96
 
81
97
  ### Used by
@@ -87,6 +103,7 @@
87
103
 
88
104
  - [SCalendar](../SCalendar)
89
105
  - [SField](../SField)
106
+ - [SGhostButton](../SGhostButton)
90
107
  - [SIcon](../SIcon)
91
108
 
92
109
  ### Graph
@@ -95,6 +112,7 @@
95
112
  graph TD;
96
113
  SDatePicker --> SCalendar
97
114
  SDatePicker --> SField
115
+ SDatePicker --> SGhostButton
98
116
  SDatePicker --> SIcon
99
117
  SChipFilter --> SDatePicker
100
118
  SKeyValueTable --> SDatePicker
@@ -4,13 +4,14 @@ import { type SIconName } from '../SIcon';
4
4
  import { type SColor } from '../../lib/color';
5
5
  import { type Rule } from '../../lib/form';
6
6
  import { type STooltipProps } from '../STooltip';
7
+ import { type SFieldWidth } from '../../lib/field-width';
7
8
  export type SDatePickerSize = SFieldSize;
8
9
  export type SDatePickerMode = 'date' | 'month' | 'year';
9
10
  export interface SDatePickerProps {
10
11
  /** ์„ ํƒ ๊ฐ’ (date: YYYY-MM-DD, month: YYYY-MM, year: YYYY) */
11
12
  value?: string | null;
12
- /** ์„ ํƒ ๋ณ€๊ฒฝ (sdUpdate) */
13
- onValueChange?: (value: string) => void;
13
+ /** ์„ ํƒ ๋ณ€๊ฒฝ (sdUpdate). `clearable` ๋กœ ์ง€์šฐ๋ฉด `null` ์ด ์˜จ๋‹ค */
14
+ onValueChange?: (value: string | null) => void;
14
15
  /** ๋ณด์ด๋Š” ์—ฐยท์›” ๋ณ€๊ฒฝ (sdViewChange) */
15
16
  onViewChange?: (view: {
16
17
  year: number;
@@ -23,7 +24,29 @@ export interface SDatePickerProps {
23
24
  /** ์„ ํƒ ๊ฐ€๋Šฅ ๋ฒ”์œ„ [์‹œ์ž‘, ์ข…๋ฃŒ] */
24
25
  selectable?: [string, string];
25
26
  disabled?: boolean;
26
- width?: number | string;
27
+ /**
28
+ * ์„ ํƒ๊ฐ’ ์ง€์šฐ๊ธฐ ๋ฒ„ํŠผ. ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ ๋‚˜ํƒ€๋‚˜๊ณ , ๋ˆ„๋ฅด๋ฉด `onValueChange` ๋กœ `null` ์ด ์˜จ๋‹ค.
29
+ *
30
+ * **ํ•„์ˆ˜ ์ž…๋ ฅ ํ•„๋“œ์—๋Š” ์ผœ์ง€ ์•Š๋Š”๋‹ค** โ€” ์ง€์šฐ๋ฉด ๋‹ค์‹œ ๊ณ ๋ฅด๊ธฐ ์ „๊นŒ์ง€ ํผ์ด ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ๋‹ค.
31
+ * `STimePicker` ยท `STimeRangePicker` ยท `SSelect` ์˜ `clearable` ๊ณผ ๊ฐ™์€ ๊ทœ์น™์ด๋‹ค.
32
+ */
33
+ clearable?: boolean;
34
+ /**
35
+ * ์ปจํŠธ๋กค ๋„ˆ๋น„ โ€” ํญ ๋“ฑ๊ธ‰(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) ยท ์ˆซ์ž=px ยท CSS ๊ธธ์ด.
36
+ * ๋“ฑ๊ธ‰์€ `--cmp-field-width-*` ํ† ํฐ์œผ๋กœ ํ’€๋ฆฌ๋ฏ€๋กœ ํ† ํฐ์ด ๋ฐ”๋€Œ๋ฉด ํ™”๋ฉด์ด ๋”ฐ๋ผ๊ฐ„๋‹ค.
37
+ * ๊ฐ’ ๊ธธ์ด์— ์ƒํ•œ์ด ์—†์œผ๋ฉด `"100%"` ๋กœ ๋‘์–ด ํ–‰ ์ „์ฒด๋ฅผ ์“ด๋‹ค.
38
+ */
39
+ width?: SFieldWidth;
40
+ /**
41
+ * ์ปจํŠธ๋กค ์ตœ๋Œ€ ๋„ˆ๋น„ โ€” ํญ ๋“ฑ๊ธ‰ ยท ์ˆซ์ž=px ยท CSS ๊ธธ์ด. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ’ ๊ธธ์ด(`YYYY-MM-DD`)์— ๋งž์ถ˜
42
+ * ๋‚ด์žฅ ์ƒํ•œ(`size='md'` โ†’ `lg`, `'sm'` โ†’ `md`)์ด ๊ฑธ๋ ค, `width="100%"` ๋ฅผ ๋ฐ›์•„๋„ ํ–‰ ์ „์ฒด๋กœ
43
+ * ๋Š˜์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
44
+ *
45
+ * ํŒ์˜ค๋ฒ„์ฒ˜๋Ÿผ ํญ์ด ์ด๋ฏธ ์ข๊ฒŒ ์ •ํ•ด์ง„ ์ž๋ฆฌ์—์„œ ๊ทธ ํญ์„ ๊ทธ๋Œ€๋กœ ์ฑ„์›Œ์•ผ ํ•˜๋ฉด `width="100%"` ์™€ ํ•จ๊ป˜
46
+ * `maxWidth="100%"` ๋ฅผ ์ค€๋‹ค. `0` ์€ ์ƒํ•œ์„ ์•„์˜ˆ ๊ฑธ์ง€ ์•Š๋Š”๋‹ค โ€” ๋ถ€๋ชจ๋ณด๋‹ค ๋„“์–ด์ง€๋Š” ๊ฒƒ๊นŒ์ง€ ํ—ˆ์šฉํ•ด์•ผ
47
+ * ํ•  ๋•Œ๋งŒ ์“ด๋‹ค.
48
+ */
49
+ maxWidth?: SFieldWidth;
27
50
  name?: string;
28
51
  rules?: Rule[];
29
52
  status?: SFieldStatus;
@@ -72,4 +95,4 @@ export interface SDatePickerMonthListboxProps {
72
95
  * ์ž์ฒด ํŠธ๋ฆฌ๊ฑฐ/ํŒ์˜ค๋ฒ„ ์—†์ด ์—ฐ๋„+์›” ๋ฆฌ์ŠคํŠธ๋งŒ ํ•„์š”ํ•œ ์ปค์Šคํ…€ ์กฐํ•ฉ์— ์žฌ์‚ฌ์šฉํ•œ๋‹ค. */
73
96
  export declare function SDatePickerMonthListbox({ value, anchorYear, selectable, onValueChange, onMonthSelect, className, style, }: SDatePickerMonthListboxProps): import("react").JSX.Element;
74
97
  /** SDatePicker โ€” sd-date-picker ํฌํŒ…. SField + SPopover(SCalendar). */
75
- export declare function SDatePicker({ value, onValueChange, onViewChange, mode, size, placeholder, selectable, disabled, width, name, rules, status, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDatePickerProps): import("react").JSX.Element;
98
+ export declare function SDatePicker({ value, onValueChange, onViewChange, mode, size, placeholder, selectable, disabled, clearable, width, maxWidth, name, rules, status, label, labelWidth, icon, iconColor, labelTooltip, labelTooltipProps, addonLabel, addonAlign, hint, error, errorMessage, className, style, }: SDatePickerProps): import("react").JSX.Element;