sellmate-design-system-react 0.11.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/components/SActionModal/SActionModal.cjs +3 -3
  2. package/dist/components/SActionModal/SActionModal.cjs.map +1 -1
  3. package/dist/components/SActionModal/SActionModal.js +3 -3
  4. package/dist/components/SActionModal/SActionModal.js.map +1 -1
  5. package/dist/components/SBarcodeInput/SBarcodeInput.cjs +1 -1
  6. package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
  7. package/dist/components/SBarcodeInput/SBarcodeInput.js +1 -1
  8. package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
  9. package/dist/components/SChipInput/SChipInput.cjs +1 -1
  10. package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
  11. package/dist/components/SChipInput/SChipInput.js +1 -1
  12. package/dist/components/SChipInput/SChipInput.js.map +1 -1
  13. package/dist/components/SConfirmModal/SConfirmModal.cjs +4 -4
  14. package/dist/components/SConfirmModal/SConfirmModal.cjs.map +1 -1
  15. package/dist/components/SConfirmModal/SConfirmModal.js +4 -4
  16. package/dist/components/SConfirmModal/SConfirmModal.js.map +1 -1
  17. package/dist/components/SDatePicker/SDatePicker.cjs +1 -1
  18. package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
  19. package/dist/components/SDatePicker/SDatePicker.js +1 -1
  20. package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
  21. package/dist/components/SDateRangePicker/SDateRangePicker.cjs +1 -1
  22. package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
  23. package/dist/components/SDateRangePicker/SDateRangePicker.js +1 -1
  24. package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
  25. package/dist/components/SExpansionItem/SExpansionItem.cjs +42 -12
  26. package/dist/components/SExpansionItem/SExpansionItem.cjs.map +1 -1
  27. package/dist/components/SExpansionItem/SExpansionItem.d.ts +2 -0
  28. package/dist/components/SExpansionItem/SExpansionItem.js +43 -13
  29. package/dist/components/SExpansionItem/SExpansionItem.js.map +1 -1
  30. package/dist/components/SField/SField.cjs +1 -1
  31. package/dist/components/SField/SField.cjs.map +1 -1
  32. package/dist/components/SField/SField.js +1 -1
  33. package/dist/components/SField/SField.js.map +1 -1
  34. package/dist/components/SFilePicker/SFilePicker.cjs +1 -1
  35. package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
  36. package/dist/components/SFilePicker/SFilePicker.js +1 -1
  37. package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
  38. package/dist/components/SInput/SInput.cjs +1 -1
  39. package/dist/components/SInput/SInput.cjs.map +1 -1
  40. package/dist/components/SInput/SInput.js +1 -1
  41. package/dist/components/SInput/SInput.js.map +1 -1
  42. package/dist/components/SKeyValueTable/SKeyValueTable.cjs +1 -1
  43. package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
  44. package/dist/components/SKeyValueTable/SKeyValueTable.js +1 -1
  45. package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
  46. package/dist/components/SLoadingModal/SLoadingModal.cjs +3 -3
  47. package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
  48. package/dist/components/SLoadingModal/SLoadingModal.js +3 -3
  49. package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
  50. package/dist/components/SModal/SModal.cjs +3863 -0
  51. package/dist/components/SModal/SModal.cjs.map +1 -0
  52. package/dist/components/SModal/SModal.d.ts +121 -0
  53. package/dist/components/SModal/SModal.js +3840 -0
  54. package/dist/components/SModal/SModal.js.map +1 -0
  55. package/dist/components/SModal/index.d.ts +1 -0
  56. package/dist/components/SModalContainer/SModalContainer.cjs +1 -1
  57. package/dist/components/SModalContainer/SModalContainer.cjs.map +1 -1
  58. package/dist/components/SModalContainer/SModalContainer.js +1 -1
  59. package/dist/components/SModalContainer/SModalContainer.js.map +1 -1
  60. package/dist/components/SNumberInput/SNumberInput.cjs +1 -1
  61. package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
  62. package/dist/components/SNumberInput/SNumberInput.js +1 -1
  63. package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
  64. package/dist/components/SSelect/SSelect.cjs +1 -1
  65. package/dist/components/SSelect/SSelect.cjs.map +1 -1
  66. package/dist/components/SSelect/SSelect.js +1 -1
  67. package/dist/components/SSelect/SSelect.js.map +1 -1
  68. package/dist/components/STable/STable.cjs +2 -2
  69. package/dist/components/STable/STable.cjs.map +1 -1
  70. package/dist/components/STable/STable.d.ts +2 -1
  71. package/dist/components/STable/STable.js +2 -2
  72. package/dist/components/STable/STable.js.map +1 -1
  73. package/dist/components/STextarea/STextarea.cjs +1 -1
  74. package/dist/components/STextarea/STextarea.cjs.map +1 -1
  75. package/dist/components/STextarea/STextarea.js +1 -1
  76. package/dist/components/STextarea/STextarea.js.map +1 -1
  77. package/dist/components/STimePicker/STimePicker.cjs +1 -1
  78. package/dist/components/STimePicker/STimePicker.cjs.map +1 -1
  79. package/dist/components/STimePicker/STimePicker.js +1 -1
  80. package/dist/components/STimePicker/STimePicker.js.map +1 -1
  81. package/dist/components/STimeRangePicker/STimeRangePicker.cjs +1 -1
  82. package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -1
  83. package/dist/components/STimeRangePicker/STimeRangePicker.js +1 -1
  84. package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -1
  85. package/dist/components/STooltip/STooltip.cjs +1 -1
  86. package/dist/components/STooltip/STooltip.cjs.map +1 -1
  87. package/dist/components/STooltip/STooltip.js +1 -1
  88. package/dist/components/STooltip/STooltip.js.map +1 -1
  89. package/dist/index.cjs +291 -22
  90. package/dist/index.cjs.map +1 -1
  91. package/dist/index.d.ts +1 -0
  92. package/dist/index.js +292 -24
  93. package/dist/index.js.map +1 -1
  94. package/dist/styles.css +83 -33
  95. package/package.json +1 -1
@@ -0,0 +1,121 @@
1
+ import { type ComponentType } from 'react';
2
+ import { type SConfirmModalProps } from '../SConfirmModal';
3
+ import { type SLoadingModalProps } from '../SLoadingModal';
4
+ /** SModal.confirm 옵션 — 제어 흐름을 서비스가 담당하므로 관련 props 는 제외 */
5
+ export type SConfirmOptions = Omit<SConfirmModalProps, 'open' | 'onOpenChange' | 'onOk' | 'onCancel' | 'onClose'>;
6
+ /** SModal.loading 옵션 — 제어 흐름을 서비스가 담당하므로 관련 props 는 제외 */
7
+ export type SLoadingOptions = Omit<SLoadingModalProps, 'open' | 'onOpenChange' | 'onClose' | 'onButtonClick'>;
8
+ /**
9
+ * create() 가 컴포넌트에 주입하는 prop.
10
+ *
11
+ * 컴포넌트는 `open`/`onOpenChange`/`onClose` 를 루트의 SActionModal 에 **그대로 전달**해야 한다.
12
+ * 전달하지 않으면 모달이 열리지도, 닫히지도 않는다.
13
+ *
14
+ * (컴포넌트 문서 생성기 docs:gen 은 `*Props` interface 를 "컴포넌트"로 취급하므로,
15
+ * 서비스인 SModal 이 컴포넌트로 잘못 문서화되지 않도록 type 별칭으로 둔다. README 는 수작성.)
16
+ */
17
+ export type SModalCreateComponentProps = {
18
+ /** 표시 여부 — SActionModal 의 open 에 그대로 전달 */
19
+ open: boolean;
20
+ /** 표시 상태 변경 — SActionModal 의 onOpenChange 에 그대로 전달 */
21
+ onOpenChange: (open: boolean) => void;
22
+ /** 닫기(X) 클릭 — SActionModal 의 onClose 에 그대로 전달 */
23
+ onClose: () => void;
24
+ /** 모달 제어 핸들. 컴포넌트에서 ok()/cancel()/close()/submit()/onSubmit() 호출 */
25
+ modalRef: SModalRef;
26
+ };
27
+ /**
28
+ * SModal.create 옵션 — SActionModal 을 루트로 렌더하는 컴포넌트를 띄운다.
29
+ *
30
+ * 디자인 시스템이 띄우는 모달은 SActionModal / SConfirmModal / SLoadingModal 세 가지뿐이고,
31
+ * 서비스 메서드가 1:1 로 대응한다 — create → SActionModal, confirm → SConfirmModal,
32
+ * loading → SLoadingModal. create 는 컨테이너를 덧씌우지 않고 component 를 그대로 렌더하며,
33
+ * 표시 제어(open/onOpenChange/onClose/modalRef)만 주입하고 닫힘 후 정리를 담당한다.
34
+ */
35
+ export interface SCreateOptions<P extends object = Record<string, never>> {
36
+ /**
37
+ * 띄울 컴포넌트. **루트에 SActionModal 을 렌더**하고 주입받은 open/onOpenChange/onClose 를
38
+ * 그대로 전달해야 한다. 모달 껍데기 없이 본문만 렌더하면 딤·카드 없이 콘텐츠가 그대로
39
+ * 화면에 붙는다 — 개발 모드에서는 이를 감지해 경고한다.
40
+ */
41
+ component: ComponentType<P & SModalCreateComponentProps>;
42
+ /** component 에 전달할 추가 props (주입 prop 과 이름이 겹치면 주입 쪽이 이긴다) */
43
+ componentProps?: P;
44
+ }
45
+ /**
46
+ * SModal.confirm / loading / create 반환 핸들 — 체이닝 콜백 등록 + 트리거/update/close.
47
+ * 원본 sdModal 의 ModalDialogRef 와 동일하게 단일 타입이며, 모달 종류에 따라 관련 있는
48
+ * 메서드만 실제 발화한다(예: onOk/onCancel 은 confirm, onClick 은 loading, onSubmit 은 create).
49
+ */
50
+ export interface SModalRef {
51
+ /** 확인 버튼 클릭 (confirm) 또는 ok() 트리거 */
52
+ onOk(fn: () => void): SModalRef;
53
+ /** 취소(서브) 버튼 클릭 (confirm) 또는 cancel() 트리거 */
54
+ onCancel(fn: () => void): SModalRef;
55
+ /** 닫기(X) 버튼 클릭 또는 close() 트리거 */
56
+ onClose(fn: () => void): SModalRef;
57
+ /**
58
+ * 단일 버튼 모달(loading error 등)의 버튼 클릭. 자동 닫힘이 없으므로
59
+ * consumer 가 update()/close() 로 후속 동작을 결정한다. (원본 sdModal onClick)
60
+ */
61
+ onClick(fn: () => void): SModalRef;
62
+ /**
63
+ * create 커스텀 모달의 제출(submit). 자동 닫힘 없이 fn 만 호출하므로 API 응답을
64
+ * 받은 뒤 ok()/close()/update() 로 후속 동작을 결정한다. (원본 sdModal onSubmit)
65
+ */
66
+ onSubmit(fn: () => void): SModalRef;
67
+ /** 사유와 무관하게 모달이 완전히 닫혀 언마운트된 뒤 (백드롭·ESC 닫힘 포함) */
68
+ onDismissed(fn: () => void): SModalRef;
69
+ /** 표시 중 옵션 갱신 (loading→error, progress, 메시지 등). create 는 미지원. */
70
+ update(patch: Partial<SConfirmOptions & SLoadingOptions>): SModalRef;
71
+ /** onOk 트리거 + 닫기 (저장/처리 성공 시맨틱) */
72
+ ok(): SModalRef;
73
+ /** onCancel 트리거 + 닫기 (작업 취소 시맨틱) */
74
+ cancel(): SModalRef;
75
+ /** onClose 트리거 + 닫기 (중립적 닫기, persistent 여부와 무관) */
76
+ close(): SModalRef;
77
+ /** onSubmit 트리거 (닫힘 없음) — create 커스텀 컴포넌트가 제출 버튼에서 호출 */
78
+ submit(): SModalRef;
79
+ }
80
+ /**
81
+ * SModal — 명령형 모달 서비스.
82
+ *
83
+ * @example
84
+ * // 확인/취소
85
+ * SModal.confirm({ type: 'negative', modalTitle: '삭제하시겠습니까?', mainButtonLabel: '삭제', subButtonLabel: '취소' })
86
+ * .onOk(() => deleteItem())
87
+ * .onCancel(() => {});
88
+ *
89
+ * @example
90
+ * // 로딩 → 완료 or 에러
91
+ * const ref = SModal.loading({ message: '업로드 중...' });
92
+ * try { await upload(); ref.close(); }
93
+ * catch { ref.update({ state: 'error', message: '업로드 실패' }).onClick(() => retry()); }
94
+ *
95
+ * @example
96
+ * // SActionModal 을 루트로 렌더하는 컴포넌트를 만들어 넘긴다 — 주입 prop 은 그대로 전달
97
+ * function OrderModal({ open, onOpenChange, onClose, modalRef, orderId }: OrderModalProps) {
98
+ * return (
99
+ * <SActionModal open={open} onOpenChange={onOpenChange} onClose={onClose}
100
+ * modalTitle="주문 처리" button={{ label: '처리', onClick: () => modalRef.ok() }}>
101
+ * <OrderBody orderId={orderId} />
102
+ * </SActionModal>
103
+ * );
104
+ * }
105
+ * SModal.create({ component: OrderModal, componentProps: { orderId } }).onOk(() => refetch());
106
+ */
107
+ export declare const SModal: {
108
+ /** 확인/취소 모달을 즉시 띄운다. 반환 핸들에 onOk/onCancel/onClose/onDismissed 체이닝. */
109
+ confirm(options: SConfirmOptions): SModalRef;
110
+ /**
111
+ * 로딩(스피너/에러) 모달을 즉시 띄운다. 로딩 중 임의 닫힘 방지를 위해 persistent 기본 true.
112
+ * 버튼 클릭은 자동 닫힘 없이 onClick 만 발화 — update()/close() 로 후속 동작을 결정한다.
113
+ */
114
+ loading(options?: SLoadingOptions): SModalRef;
115
+ /**
116
+ * SActionModal 을 루트로 렌더하는 컴포넌트를 띄운다. 컨테이너를 덧씌우지 않고 표시 제어
117
+ * (open/onOpenChange/onClose)와 modalRef 만 주입하며, 닫힘 애니메이션 종료 후 자동으로
118
+ * 언마운트한다. 컴포넌트가 모달을 띄우지 않으면 개발 모드에서 경고한다.
119
+ */
120
+ create<P extends object = Record<string, never>>(options: SCreateOptions<P>): SModalRef;
121
+ };