@tipp/ui 2.3.20 → 2.3.21

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 (200) hide show
  1. package/dist/app/index.cjs +5 -2
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +7 -7
  4. package/dist/app/platform/coach-question-list.cjs +5 -2
  5. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  6. package/dist/app/platform/coach-question-list.js +1 -1
  7. package/dist/app/platform/contents-card.cjs +5 -2
  8. package/dist/app/platform/contents-card.cjs.map +1 -1
  9. package/dist/app/platform/contents-card.js +1 -1
  10. package/dist/app/platform/edit-coaching-time.cjs +5 -2
  11. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  12. package/dist/app/platform/edit-coaching-time.js +5 -5
  13. package/dist/app/platform/edit-service-type.cjs +5 -2
  14. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  15. package/dist/app/platform/edit-service-type.js +4 -4
  16. package/dist/app/platform/goal-manage-card-edit.cjs +5 -2
  17. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  18. package/dist/app/platform/goal-manage-card-edit.js +5 -5
  19. package/dist/app/platform/goal-manage-card-read.cjs +5 -2
  20. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  21. package/dist/app/platform/goal-manage-card-read.js +1 -1
  22. package/dist/app/platform/on-offline-radio-card.cjs +5 -2
  23. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  24. package/dist/app/platform/on-offline-radio-card.js +4 -4
  25. package/dist/app/platform/report-card.cjs +5 -2
  26. package/dist/app/platform/report-card.cjs.map +1 -1
  27. package/dist/app/platform/report-card.js +1 -1
  28. package/dist/app/platform/reservation-card.cjs +5 -2
  29. package/dist/app/platform/reservation-card.cjs.map +1 -1
  30. package/dist/app/platform/reservation-card.js +4 -4
  31. package/dist/app/platform/session-card.cjs +5 -2
  32. package/dist/app/platform/session-card.cjs.map +1 -1
  33. package/dist/app/platform/session-card.js +6 -6
  34. package/dist/app/platform/session-review-simple-read.cjs +5 -2
  35. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  36. package/dist/app/platform/session-review-simple-read.js +1 -1
  37. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +5 -2
  38. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
  39. package/dist/app/platform/userInfos/coaching-customer-info/index.js +1 -1
  40. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +5 -2
  41. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
  42. package/dist/app/platform/userInfos/coaching-customer-info/large.js +1 -1
  43. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +5 -2
  44. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
  45. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +1 -1
  46. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +5 -2
  47. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
  48. package/dist/app/platform/userInfos/coaching-customer-info/small.js +1 -1
  49. package/dist/app/platform/userInfos/session-user-info-detail.cjs +5 -2
  50. package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
  51. package/dist/app/platform/userInfos/session-user-info-detail.js +1 -1
  52. package/dist/app/platform/userInfos/utils.cjs +5 -2
  53. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  54. package/dist/app/platform/userInfos/utils.js +1 -1
  55. package/dist/atoms/index.cjs +5 -2
  56. package/dist/atoms/index.cjs.map +1 -1
  57. package/dist/atoms/index.js +1 -1
  58. package/dist/chunk-3C6HB5HA.js +144 -0
  59. package/dist/chunk-3C6HB5HA.js.map +1 -0
  60. package/dist/chunk-3CJZYFG3.js +174 -0
  61. package/dist/chunk-3CJZYFG3.js.map +1 -0
  62. package/dist/chunk-4U6DFH7Z.js +50 -0
  63. package/dist/chunk-4U6DFH7Z.js.map +1 -0
  64. package/dist/chunk-5IIGHOLB.js +196 -0
  65. package/dist/chunk-5IIGHOLB.js.map +1 -0
  66. package/dist/chunk-7TOQOZH7.js +245 -0
  67. package/dist/chunk-7TOQOZH7.js.map +1 -0
  68. package/dist/chunk-7ZH2GXUS.js +174 -0
  69. package/dist/chunk-7ZH2GXUS.js.map +1 -0
  70. package/dist/chunk-AC6MUU6D.js +146 -0
  71. package/dist/chunk-AC6MUU6D.js.map +1 -0
  72. package/dist/chunk-AGTBJUYD.js +50 -0
  73. package/dist/chunk-AGTBJUYD.js.map +1 -0
  74. package/dist/chunk-BSRPUECS.js +144 -0
  75. package/dist/chunk-BSRPUECS.js.map +1 -0
  76. package/dist/chunk-C24L6Z2K.js +69 -0
  77. package/dist/chunk-C24L6Z2K.js.map +1 -0
  78. package/dist/chunk-CAYZTABQ.js +144 -0
  79. package/dist/chunk-CAYZTABQ.js.map +1 -0
  80. package/dist/chunk-CKQYG7TZ.js +245 -0
  81. package/dist/chunk-CKQYG7TZ.js.map +1 -0
  82. package/dist/chunk-CLLBSWGX.js +145 -0
  83. package/dist/chunk-CLLBSWGX.js.map +1 -0
  84. package/dist/chunk-CNJT7KEY.js +218 -0
  85. package/dist/chunk-CNJT7KEY.js.map +1 -0
  86. package/dist/chunk-DNIPGDRU.js +145 -0
  87. package/dist/chunk-DNIPGDRU.js.map +1 -0
  88. package/dist/chunk-DPPRU4D3.js +174 -0
  89. package/dist/chunk-DPPRU4D3.js.map +1 -0
  90. package/dist/chunk-DZ6LWD2X.js +174 -0
  91. package/dist/chunk-DZ6LWD2X.js.map +1 -0
  92. package/dist/chunk-DZCLAKSB.js +218 -0
  93. package/dist/chunk-DZCLAKSB.js.map +1 -0
  94. package/dist/chunk-EDJIZYNL.js +89 -0
  95. package/dist/chunk-EDJIZYNL.js.map +1 -0
  96. package/dist/chunk-EE4HLQGV.js +145 -0
  97. package/dist/chunk-EE4HLQGV.js.map +1 -0
  98. package/dist/chunk-GJ4GPOIC.js +144 -0
  99. package/dist/chunk-GJ4GPOIC.js.map +1 -0
  100. package/dist/chunk-GLZ66EYJ.js +146 -0
  101. package/dist/chunk-GLZ66EYJ.js.map +1 -0
  102. package/dist/chunk-H7IE4ZJG.js +174 -0
  103. package/dist/chunk-H7IE4ZJG.js.map +1 -0
  104. package/dist/chunk-I7E2IWC4.js +149 -0
  105. package/dist/chunk-I7E2IWC4.js.map +1 -0
  106. package/dist/chunk-IDY6K633.js +145 -0
  107. package/dist/chunk-IDY6K633.js.map +1 -0
  108. package/dist/chunk-IKJLNJ64.js +145 -0
  109. package/dist/chunk-IKJLNJ64.js.map +1 -0
  110. package/dist/chunk-IW7G7LMH.js +245 -0
  111. package/dist/chunk-IW7G7LMH.js.map +1 -0
  112. package/dist/chunk-JFM62CXW.js +50 -0
  113. package/dist/chunk-JFM62CXW.js.map +1 -0
  114. package/dist/chunk-KC6AEXYR.js +174 -0
  115. package/dist/chunk-KC6AEXYR.js.map +1 -0
  116. package/dist/chunk-KOMV6H3L.js +144 -0
  117. package/dist/chunk-KOMV6H3L.js.map +1 -0
  118. package/dist/chunk-KVO5ZNRN.js +50 -0
  119. package/dist/chunk-KVO5ZNRN.js.map +1 -0
  120. package/dist/chunk-KZVNK5NO.js +145 -0
  121. package/dist/chunk-KZVNK5NO.js.map +1 -0
  122. package/dist/chunk-L7ATTNZ2.js +174 -0
  123. package/dist/chunk-L7ATTNZ2.js.map +1 -0
  124. package/dist/chunk-LTJELIXX.js +149 -0
  125. package/dist/chunk-LTJELIXX.js.map +1 -0
  126. package/dist/chunk-LWVP3RG6.js +212 -0
  127. package/dist/chunk-LWVP3RG6.js.map +1 -0
  128. package/dist/chunk-MG3MDWHJ.js +245 -0
  129. package/dist/chunk-MG3MDWHJ.js.map +1 -0
  130. package/dist/chunk-MQXF7JLT.js +145 -0
  131. package/dist/chunk-MQXF7JLT.js.map +1 -0
  132. package/dist/chunk-N5B7ANSJ.js +145 -0
  133. package/dist/chunk-N5B7ANSJ.js.map +1 -0
  134. package/dist/chunk-OSEENHZJ.js +50 -0
  135. package/dist/chunk-OSEENHZJ.js.map +1 -0
  136. package/dist/chunk-P4HTQBD6.js +245 -0
  137. package/dist/chunk-P4HTQBD6.js.map +1 -0
  138. package/dist/chunk-P74G3XSY.js +50 -0
  139. package/dist/chunk-P74G3XSY.js.map +1 -0
  140. package/dist/chunk-PTYFKWCC.js +145 -0
  141. package/dist/chunk-PTYFKWCC.js.map +1 -0
  142. package/dist/chunk-PYQQZYJL.js +145 -0
  143. package/dist/chunk-PYQQZYJL.js.map +1 -0
  144. package/dist/chunk-Q267B6E6.js +146 -0
  145. package/dist/chunk-Q267B6E6.js.map +1 -0
  146. package/dist/chunk-QDC3LFHS.js +149 -0
  147. package/dist/chunk-QDC3LFHS.js.map +1 -0
  148. package/dist/chunk-RCTE4E7R.js +144 -0
  149. package/dist/chunk-RCTE4E7R.js.map +1 -0
  150. package/dist/chunk-S5M6VXKE.js +144 -0
  151. package/dist/chunk-S5M6VXKE.js.map +1 -0
  152. package/dist/chunk-SB2VNB4J.js +145 -0
  153. package/dist/chunk-SB2VNB4J.js.map +1 -0
  154. package/dist/chunk-SJ7MGKPR.js +245 -0
  155. package/dist/chunk-SJ7MGKPR.js.map +1 -0
  156. package/dist/chunk-SM22LXE7.js +145 -0
  157. package/dist/chunk-SM22LXE7.js.map +1 -0
  158. package/dist/chunk-SP4QJ7QT.js +69 -0
  159. package/dist/chunk-SP4QJ7QT.js.map +1 -0
  160. package/dist/chunk-VGHBEX6O.js +145 -0
  161. package/dist/chunk-VGHBEX6O.js.map +1 -0
  162. package/dist/chunk-VJ7AGB7Y.js +245 -0
  163. package/dist/chunk-VJ7AGB7Y.js.map +1 -0
  164. package/dist/chunk-VNJ3VOSY.js +50 -0
  165. package/dist/chunk-VNJ3VOSY.js.map +1 -0
  166. package/dist/chunk-WZLD5ZHV.js +245 -0
  167. package/dist/chunk-WZLD5ZHV.js.map +1 -0
  168. package/dist/chunk-Z4NLUDDL.js +145 -0
  169. package/dist/chunk-Z4NLUDDL.js.map +1 -0
  170. package/dist/chunk-ZOMXQCLY.js +245 -0
  171. package/dist/chunk-ZOMXQCLY.js.map +1 -0
  172. package/dist/chunk-ZVWUCJMB.js +146 -0
  173. package/dist/chunk-ZVWUCJMB.js.map +1 -0
  174. package/dist/context/dynamic-form-context.cjs +5 -2
  175. package/dist/context/dynamic-form-context.cjs.map +1 -1
  176. package/dist/context/dynamic-form-context.js +2 -2
  177. package/dist/context/index.cjs +5 -2
  178. package/dist/context/index.cjs.map +1 -1
  179. package/dist/context/index.js +2 -2
  180. package/dist/index.cjs +44 -14
  181. package/dist/index.cjs.map +1 -1
  182. package/dist/index.js +7 -7
  183. package/dist/molecules/dynamic-field.cjs +5 -2
  184. package/dist/molecules/dynamic-field.cjs.map +1 -1
  185. package/dist/molecules/dynamic-field.js +3 -3
  186. package/dist/molecules/dynamic-form.cjs +44 -14
  187. package/dist/molecules/dynamic-form.cjs.map +1 -1
  188. package/dist/molecules/dynamic-form.js +4 -4
  189. package/dist/molecules/form/form.cjs +5 -2
  190. package/dist/molecules/form/form.cjs.map +1 -1
  191. package/dist/molecules/form/form.js +1 -1
  192. package/dist/molecules/form/index.cjs +5 -2
  193. package/dist/molecules/form/index.cjs.map +1 -1
  194. package/dist/molecules/form/index.js +1 -1
  195. package/dist/molecules/index.cjs +44 -14
  196. package/dist/molecules/index.cjs.map +1 -1
  197. package/dist/molecules/index.js +4 -4
  198. package/package.json +1 -1
  199. package/src/molecules/dynamic-form.tsx +44 -15
  200. package/src/molecules/form/form.tsx +10 -2
@@ -87,10 +87,10 @@ import {
87
87
  import {
88
88
  DynamicForm,
89
89
  createYupValidation
90
- } from "../chunk-KPE4JB42.js";
90
+ } from "../chunk-SJ7MGKPR.js";
91
91
  import {
92
92
  DynamicFormField
93
- } from "../chunk-DXD774YC.js";
93
+ } from "../chunk-DNIPGDRU.js";
94
94
  import {
95
95
  ForceRefresh
96
96
  } from "../chunk-EWFZXCMV.js";
@@ -108,8 +108,8 @@ import "../chunk-3INEXJIV.js";
108
108
  import {
109
109
  DotNavigation
110
110
  } from "../chunk-IJOOKMKQ.js";
111
- import "../chunk-NCSMSA3X.js";
112
- import "../chunk-2OMSNCRH.js";
111
+ import "../chunk-4U6DFH7Z.js";
112
+ import "../chunk-QDC3LFHS.js";
113
113
  import "../chunk-5ZITU5L7.js";
114
114
  import "../chunk-5XYPLDI5.js";
115
115
  import "../chunk-6NPTJBFE.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tipp/ui",
3
- "version": "2.3.20",
3
+ "version": "2.3.21",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -26,21 +26,28 @@ export interface DynamicFormProps {
26
26
  /**
27
27
  * 첫 번째 에러 필드로 스크롤하는 함수
28
28
  */
29
- function scrollToFirstError(errors: Record<string, unknown>, _fields: DynamicFormFieldSchema[]): void {
29
+ function scrollToFirstError(
30
+ errors: Record<string, unknown>,
31
+ _fields: DynamicFormFieldSchema[]
32
+ ): void {
30
33
  const firstErrorFieldName = Object.keys(errors)[0];
31
34
  if (!firstErrorFieldName) return;
32
35
 
33
36
  // 해당 필드의 DOM 요소를 찾기 (여러 선택자 시도)
34
37
  let fieldElement = document.querySelector(`[name="${firstErrorFieldName}"]`);
35
-
38
+
36
39
  // input 요소를 찾지 못한 경우, 해당 필드의 컨테이너를 찾기
37
40
  if (!fieldElement) {
38
- fieldElement = document.querySelector(`[data-field-name="${firstErrorFieldName}"]`);
41
+ fieldElement = document.querySelector(
42
+ `[data-field-name="${firstErrorFieldName}"]`
43
+ );
39
44
  }
40
-
45
+
41
46
  // 여전히 찾지 못한 경우, FormItem의 에러 메시지 영역을 찾기
42
47
  if (!fieldElement) {
43
- fieldElement = document.querySelector(`[data-error-field="${firstErrorFieldName}"]`);
48
+ fieldElement = document.querySelector(
49
+ `[data-error-field="${firstErrorFieldName}"]`
50
+ );
44
51
  }
45
52
 
46
53
  if (fieldElement) {
@@ -75,7 +82,10 @@ function DynamicFormRoot({
75
82
  .required(`${field.label}은(는) 필수입니다`);
76
83
  } else if (field.type === 'yes_no') {
77
84
  // yes_no 타입은 boolean 스키마로 처리
78
- schema[field.name] = Yup.boolean().oneOf([true], `${field.label}에 동의해주세요`);
85
+ schema[field.name] = Yup.boolean().oneOf(
86
+ [true],
87
+ `${field.label}에 동의해주세요`
88
+ );
79
89
  } else {
80
90
  // choice, dropdown, short_text, long_text, number, email 타입은 문자열 스키마로 처리
81
91
  schema[field.name] = Yup.string().required(
@@ -87,9 +97,12 @@ function DynamicFormRoot({
87
97
  return Object.keys(schema).length > 0 ? Yup.object(schema) : undefined;
88
98
  }, [fields]);
89
99
 
90
- const handleSubmit = useCallback(async (values: Record<string, unknown>) => {
91
- await onSubmit(values);
92
- }, [onSubmit]);
100
+ const handleSubmit = useCallback(
101
+ async (values: Record<string, unknown>) => {
102
+ await onSubmit(values);
103
+ },
104
+ [onSubmit]
105
+ );
93
106
 
94
107
  const formik: FormikProps<Record<string, unknown>> = useFormik({
95
108
  initialValues: fields.reduce<Record<string, unknown>>((acc, field) => {
@@ -115,7 +128,7 @@ function DynamicFormRoot({
115
128
  const timeoutId = setTimeout(() => {
116
129
  scrollToFirstError(formik.errors, fields);
117
130
  }, 100);
118
-
131
+
119
132
  return () => {
120
133
  clearTimeout(timeoutId);
121
134
  };
@@ -123,7 +136,12 @@ function DynamicFormRoot({
123
136
  }, [formik.submitCount, formik.errors, fields]);
124
137
 
125
138
  return (
126
- <DynamicFormProvider fields={fields} formStyle={formStyle} formik={formik} readonly={readonly}>
139
+ <DynamicFormProvider
140
+ fields={fields}
141
+ formStyle={formStyle}
142
+ formik={formik}
143
+ readonly={readonly}
144
+ >
127
145
  {children}
128
146
  </DynamicFormProvider>
129
147
  );
@@ -161,9 +179,12 @@ function DynamicFormFieldList({
161
179
  labelVariant={labelVariant}
162
180
  name={field.name}
163
181
  required={field.required}
182
+
164
183
  >
184
+ {field.description && field.type !== 'yes_no' ? (
185
+ <Typo variant="caption">{field.description}</Typo>
186
+ ) : null}
165
187
  <DynamicFormField field={field} />
166
- {field.description && field.type !== 'yes_no' ? <Typo color="gray" variant="caption">{field.description}</Typo> : null}
167
188
  </Form.FormItem>
168
189
  </Box>
169
190
  );
@@ -260,11 +281,19 @@ export function createYupValidation(
260
281
  // field.required가 true인 경우 required 검증 추가
261
282
  if (field.required) {
262
283
  if (field.type === 'yes_no') {
263
- schema = (schema as Yup.BooleanSchema).oneOf([true], validation.message || `${field.label}에 동의해주세요`);
284
+ schema = (schema as Yup.BooleanSchema).oneOf(
285
+ [true],
286
+ validation.message || `${field.label}에 동의해주세요`
287
+ );
264
288
  } else if (field.type === 'choices') {
265
- schema = (schema as ReturnType<typeof Yup.array>).min(1, validation.message || `${field.label}을(를) 하나 이상 선택해주세요`);
289
+ schema = (schema as ReturnType<typeof Yup.array>).min(
290
+ 1,
291
+ validation.message || `${field.label}을(를) 하나 이상 선택해주세요`
292
+ );
266
293
  } else {
267
- schema = (schema as Yup.StringSchema).required(validation.message || `${field.label}은(는) 필수입니다`);
294
+ schema = (schema as Yup.StringSchema).required(
295
+ validation.message || `${field.label}은(는) 필수입니다`
296
+ );
268
297
  }
269
298
  }
270
299
 
@@ -57,7 +57,15 @@ function HeadingLabel(props: HeadingProps): React.ReactNode {
57
57
 
58
58
  function CaptionLabel(props: TypoProps): React.ReactNode {
59
59
  return (
60
- <Typo color="gray" variant="caption" {...props}>
60
+ <Typo color="gray" variant="caption" weight="bold" {...props}>
61
+ {props.children}
62
+ </Typo>
63
+ );
64
+ }
65
+
66
+ function BodyLabel(props: TypoProps): React.ReactNode {
67
+ return (
68
+ <Typo variant="body" weight="bold" {...props}>
61
69
  {props.children}
62
70
  </Typo>
63
71
  );
@@ -73,7 +81,7 @@ const Label = forwardRef<HTMLLabelElement, FormLabelProps>(
73
81
  return CaptionLabel;
74
82
  case 'body':
75
83
  default:
76
- return Typo;
84
+ return BodyLabel;
77
85
  }
78
86
  }, [variant]);
79
87