@tipp/ui 2.3.21 → 2.3.23

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 (674) hide show
  1. package/dist/app/index.cjs +217 -195
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +108 -102
  4. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  5. package/dist/app/platform/coach-question-list.js +32 -32
  6. package/dist/app/platform/contents-card.cjs.map +1 -1
  7. package/dist/app/platform/contents-card.js +32 -32
  8. package/dist/app/platform/curriculum-card.cjs.map +1 -1
  9. package/dist/app/platform/curriculum-card.js +6 -6
  10. package/dist/app/platform/edit-coaching-time.cjs +47 -25
  11. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  12. package/dist/app/platform/edit-coaching-time.js +83 -77
  13. package/dist/app/platform/edit-service-type.cjs +42 -20
  14. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  15. package/dist/app/platform/edit-service-type.js +84 -78
  16. package/dist/app/platform/goal-manage-card-edit.cjs +50 -28
  17. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  18. package/dist/app/platform/goal-manage-card-edit.js +83 -77
  19. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  20. package/dist/app/platform/goal-manage-card-read.js +32 -32
  21. package/dist/app/platform/on-offline-radio-card.cjs +77 -55
  22. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  23. package/dist/app/platform/on-offline-radio-card.js +83 -77
  24. package/dist/app/platform/report-card.cjs.map +1 -1
  25. package/dist/app/platform/report-card.js +32 -32
  26. package/dist/app/platform/reservation-card.cjs +66 -44
  27. package/dist/app/platform/reservation-card.cjs.map +1 -1
  28. package/dist/app/platform/reservation-card.js +84 -78
  29. package/dist/app/platform/session-card.cjs +92 -70
  30. package/dist/app/platform/session-card.cjs.map +1 -1
  31. package/dist/app/platform/session-card.js +86 -80
  32. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  33. package/dist/app/platform/session-review-simple-read.js +32 -32
  34. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
  35. package/dist/app/platform/userInfos/coaching-customer-info/index.js +37 -37
  36. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
  37. package/dist/app/platform/userInfos/coaching-customer-info/large.js +32 -32
  38. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
  39. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +32 -32
  40. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
  41. package/dist/app/platform/userInfos/coaching-customer-info/small.js +32 -32
  42. package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
  43. package/dist/app/platform/userInfos/session-user-info-detail.js +32 -32
  44. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  45. package/dist/app/platform/userInfos/utils.js +31 -31
  46. package/dist/atoms/bullet-text.js +2 -2
  47. package/dist/atoms/dialog.js +2 -2
  48. package/dist/atoms/field-error-wrapper.js +2 -2
  49. package/dist/atoms/index.cjs.map +1 -1
  50. package/dist/atoms/index.js +63 -63
  51. package/dist/atoms/list.js +2 -2
  52. package/dist/atoms/pagination.cjs.map +1 -1
  53. package/dist/atoms/pagination.js +4 -4
  54. package/dist/chunk-2KOE33U7.js +245 -0
  55. package/dist/chunk-2KOE33U7.js.map +1 -0
  56. package/dist/chunk-2U5YD3BH.js +49 -0
  57. package/dist/chunk-2U5YD3BH.js.map +1 -0
  58. package/dist/chunk-2X3I7KDG.js +144 -0
  59. package/dist/chunk-2X3I7KDG.js.map +1 -0
  60. package/dist/chunk-2YSYS4AG.js +233 -0
  61. package/dist/chunk-2YSYS4AG.js.map +1 -0
  62. package/dist/chunk-35HQHUDU.js +228 -0
  63. package/dist/chunk-35HQHUDU.js.map +1 -0
  64. package/dist/chunk-3I55S6EP.js +89 -0
  65. package/dist/chunk-3I55S6EP.js.map +1 -0
  66. package/dist/chunk-3JDLAN5T.js +99 -0
  67. package/dist/chunk-3JDLAN5T.js.map +1 -0
  68. package/dist/chunk-3O2ARPTO.js +161 -0
  69. package/dist/chunk-3O2ARPTO.js.map +1 -0
  70. package/dist/chunk-3OO6ENQ4.js +228 -0
  71. package/dist/chunk-3OO6ENQ4.js.map +1 -0
  72. package/dist/chunk-45F3UCHR.js +222 -0
  73. package/dist/chunk-45F3UCHR.js.map +1 -0
  74. package/dist/chunk-45VET5EX.js +63 -0
  75. package/dist/chunk-45VET5EX.js.map +1 -0
  76. package/dist/chunk-4LUFF5LX.js +98 -0
  77. package/dist/chunk-4LUFF5LX.js.map +1 -0
  78. package/dist/chunk-4MA4T2XQ.js +222 -0
  79. package/dist/chunk-4MA4T2XQ.js.map +1 -0
  80. package/dist/chunk-4VV7VH5L.js +79 -0
  81. package/dist/chunk-4VV7VH5L.js.map +1 -0
  82. package/dist/chunk-5JCJ4QJO.js +245 -0
  83. package/dist/chunk-5JCJ4QJO.js.map +1 -0
  84. package/dist/chunk-5KZJMQCG.js +89 -0
  85. package/dist/chunk-5KZJMQCG.js.map +1 -0
  86. package/dist/chunk-5RAR3DG7.js +117 -0
  87. package/dist/chunk-5RAR3DG7.js.map +1 -0
  88. package/dist/chunk-5XOR7OPD.js +196 -0
  89. package/dist/chunk-5XOR7OPD.js.map +1 -0
  90. package/dist/chunk-5YESTYFF.js +79 -0
  91. package/dist/chunk-5YESTYFF.js.map +1 -0
  92. package/dist/chunk-62AHHT47.js +89 -0
  93. package/dist/chunk-62AHHT47.js.map +1 -0
  94. package/dist/chunk-64A2KJHN.js +276 -0
  95. package/dist/chunk-64A2KJHN.js.map +1 -0
  96. package/dist/chunk-6CSUU4L7.js +230 -0
  97. package/dist/chunk-6CSUU4L7.js.map +1 -0
  98. package/dist/chunk-6FKXUCHD.js +99 -0
  99. package/dist/chunk-6FKXUCHD.js.map +1 -0
  100. package/dist/chunk-6Q73GRZT.js +145 -0
  101. package/dist/chunk-6Q73GRZT.js.map +1 -0
  102. package/dist/chunk-6TQGX5ZU.js +98 -0
  103. package/dist/chunk-6TQGX5ZU.js.map +1 -0
  104. package/dist/chunk-6WGBQSQT.js +228 -0
  105. package/dist/chunk-6WGBQSQT.js.map +1 -0
  106. package/dist/chunk-6YZBHOXQ.js +226 -0
  107. package/dist/chunk-6YZBHOXQ.js.map +1 -0
  108. package/dist/chunk-7344ZPUM.js +117 -0
  109. package/dist/chunk-7344ZPUM.js.map +1 -0
  110. package/dist/chunk-7ABAJEJA.js +63 -0
  111. package/dist/chunk-7ABAJEJA.js.map +1 -0
  112. package/dist/chunk-7B5XAENQ.js +363 -0
  113. package/dist/chunk-7B5XAENQ.js.map +1 -0
  114. package/dist/chunk-7CQX7ELH.js +69 -0
  115. package/dist/chunk-7CQX7ELH.js.map +1 -0
  116. package/dist/chunk-7CRTGYJE.js +80 -0
  117. package/dist/chunk-7CRTGYJE.js.map +1 -0
  118. package/dist/chunk-7ITDAUWI.js +287 -0
  119. package/dist/chunk-7ITDAUWI.js.map +1 -0
  120. package/dist/chunk-7PQGETJT.js +69 -0
  121. package/dist/chunk-7PQGETJT.js.map +1 -0
  122. package/dist/chunk-7R65MUL6.js +106 -0
  123. package/dist/chunk-7R65MUL6.js.map +1 -0
  124. package/dist/chunk-7U5EZJOD.js +89 -0
  125. package/dist/chunk-7U5EZJOD.js.map +1 -0
  126. package/dist/chunk-7ZBZBOPI.js +63 -0
  127. package/dist/chunk-7ZBZBOPI.js.map +1 -0
  128. package/dist/chunk-A2FXUYSB.js +230 -0
  129. package/dist/chunk-A2FXUYSB.js.map +1 -0
  130. package/dist/chunk-A7CT5M2S.js +75 -0
  131. package/dist/chunk-A7CT5M2S.js.map +1 -0
  132. package/dist/chunk-A7JBBBBB.js +100 -0
  133. package/dist/chunk-A7JBBBBB.js.map +1 -0
  134. package/dist/chunk-AA6OYHCE.js +39 -0
  135. package/dist/chunk-AA6OYHCE.js.map +1 -0
  136. package/dist/chunk-ALETVN5F.js +245 -0
  137. package/dist/chunk-ALETVN5F.js.map +1 -0
  138. package/dist/chunk-ARJOCJVD.js +174 -0
  139. package/dist/chunk-ARJOCJVD.js.map +1 -0
  140. package/dist/chunk-ARVLB4CH.js +29 -0
  141. package/dist/chunk-ARVLB4CH.js.map +1 -0
  142. package/dist/chunk-B327EINU.js +43 -0
  143. package/dist/chunk-B327EINU.js.map +1 -0
  144. package/dist/chunk-B4NH4LIJ.js +99 -0
  145. package/dist/chunk-B4NH4LIJ.js.map +1 -0
  146. package/dist/chunk-B4TDMB52.js +226 -0
  147. package/dist/chunk-B4TDMB52.js.map +1 -0
  148. package/dist/chunk-BJZSGZ7H.js +63 -0
  149. package/dist/chunk-BJZSGZ7H.js.map +1 -0
  150. package/dist/chunk-BPMY3CDH.js +106 -0
  151. package/dist/chunk-BPMY3CDH.js.map +1 -0
  152. package/dist/chunk-C2ANXVMQ.js +221 -0
  153. package/dist/chunk-C2ANXVMQ.js.map +1 -0
  154. package/dist/chunk-C6BHVWJI.js +165 -0
  155. package/dist/chunk-C6BHVWJI.js.map +1 -0
  156. package/dist/chunk-CCLZRSGW.js +87 -0
  157. package/dist/chunk-CCLZRSGW.js.map +1 -0
  158. package/dist/chunk-CF3NAPUZ.js +196 -0
  159. package/dist/chunk-CF3NAPUZ.js.map +1 -0
  160. package/dist/chunk-CWRJOY56.js +245 -0
  161. package/dist/chunk-CWRJOY56.js.map +1 -0
  162. package/dist/chunk-D3H7YFTO.js +69 -0
  163. package/dist/chunk-D3H7YFTO.js.map +1 -0
  164. package/dist/chunk-DDAZ4IAG.js +689 -0
  165. package/dist/chunk-DDAZ4IAG.js.map +1 -0
  166. package/dist/chunk-DDVJMAYN.js +230 -0
  167. package/dist/chunk-DDVJMAYN.js.map +1 -0
  168. package/dist/chunk-DJ24574O.js +28 -0
  169. package/dist/chunk-DJ24574O.js.map +1 -0
  170. package/dist/chunk-DJCBLRLH.js +69 -0
  171. package/dist/chunk-DJCBLRLH.js.map +1 -0
  172. package/dist/chunk-DTHR4ABO.js +69 -0
  173. package/dist/chunk-DTHR4ABO.js.map +1 -0
  174. package/dist/chunk-DTK646M6.js +87 -0
  175. package/dist/chunk-DTK646M6.js.map +1 -0
  176. package/dist/chunk-DVZKRKWH.js +174 -0
  177. package/dist/chunk-DVZKRKWH.js.map +1 -0
  178. package/dist/chunk-E232GTT6.js +69 -0
  179. package/dist/chunk-E232GTT6.js.map +1 -0
  180. package/dist/chunk-EGTOU5MK.js +689 -0
  181. package/dist/chunk-EGTOU5MK.js.map +1 -0
  182. package/dist/chunk-EJAC46WB.js +39 -0
  183. package/dist/chunk-EJAC46WB.js.map +1 -0
  184. package/dist/chunk-ENFFYCHI.js +63 -0
  185. package/dist/chunk-ENFFYCHI.js.map +1 -0
  186. package/dist/chunk-EUUNWKHL.js +69 -0
  187. package/dist/chunk-EUUNWKHL.js.map +1 -0
  188. package/dist/chunk-F2I4LA63.js +51 -0
  189. package/dist/chunk-F2I4LA63.js.map +1 -0
  190. package/dist/chunk-F65P7KZI.js +98 -0
  191. package/dist/chunk-F65P7KZI.js.map +1 -0
  192. package/dist/chunk-F76YKHGP.js +245 -0
  193. package/dist/chunk-F76YKHGP.js.map +1 -0
  194. package/dist/chunk-FC4J5OA4.js +144 -0
  195. package/dist/chunk-FC4J5OA4.js.map +1 -0
  196. package/dist/chunk-FGX6IR4Q.js +68 -0
  197. package/dist/chunk-FGX6IR4Q.js.map +1 -0
  198. package/dist/chunk-FN2CUDUP.js +43 -0
  199. package/dist/chunk-FN2CUDUP.js.map +1 -0
  200. package/dist/chunk-FQUAFIUO.js +228 -0
  201. package/dist/chunk-FQUAFIUO.js.map +1 -0
  202. package/dist/chunk-FYHAKQGB.js +220 -0
  203. package/dist/chunk-FYHAKQGB.js.map +1 -0
  204. package/dist/chunk-G6UKOZPL.js +217 -0
  205. package/dist/chunk-G6UKOZPL.js.map +1 -0
  206. package/dist/chunk-GAFIOPGJ.js +54 -0
  207. package/dist/chunk-GAFIOPGJ.js.map +1 -0
  208. package/dist/chunk-GEMXFVWI.js +37 -0
  209. package/dist/chunk-GEMXFVWI.js.map +1 -0
  210. package/dist/chunk-GFBOT2PV.js +101 -0
  211. package/dist/chunk-GFBOT2PV.js.map +1 -0
  212. package/dist/chunk-GFURX6GB.js +76 -0
  213. package/dist/chunk-GFURX6GB.js.map +1 -0
  214. package/dist/chunk-GMHVMQTV.js +245 -0
  215. package/dist/chunk-GMHVMQTV.js.map +1 -0
  216. package/dist/chunk-GQFO7RV5.js +145 -0
  217. package/dist/chunk-GQFO7RV5.js.map +1 -0
  218. package/dist/chunk-GTO7GG2K.js +245 -0
  219. package/dist/chunk-GTO7GG2K.js.map +1 -0
  220. package/dist/chunk-GWNS3C3A.js +144 -0
  221. package/dist/chunk-GWNS3C3A.js.map +1 -0
  222. package/dist/chunk-HNS76MH2.js +69 -0
  223. package/dist/chunk-HNS76MH2.js.map +1 -0
  224. package/dist/chunk-HO462CJM.js +29 -0
  225. package/dist/chunk-HO462CJM.js.map +1 -0
  226. package/dist/chunk-HPW5EHJX.js +233 -0
  227. package/dist/chunk-HPW5EHJX.js.map +1 -0
  228. package/dist/chunk-HQ23GSZM.js +145 -0
  229. package/dist/chunk-HQ23GSZM.js.map +1 -0
  230. package/dist/chunk-HQAX6GAD.js +89 -0
  231. package/dist/chunk-HQAX6GAD.js.map +1 -0
  232. package/dist/chunk-HTNDVNLQ.js +287 -0
  233. package/dist/chunk-HTNDVNLQ.js.map +1 -0
  234. package/dist/chunk-HXOMTUED.js +222 -0
  235. package/dist/chunk-HXOMTUED.js.map +1 -0
  236. package/dist/chunk-INE4EFFO.js +70 -0
  237. package/dist/chunk-INE4EFFO.js.map +1 -0
  238. package/dist/chunk-IQUJPIZD.js +689 -0
  239. package/dist/chunk-IQUJPIZD.js.map +1 -0
  240. package/dist/chunk-ITKUKDDV.js +196 -0
  241. package/dist/chunk-ITKUKDDV.js.map +1 -0
  242. package/dist/chunk-J333WVWG.js +145 -0
  243. package/dist/chunk-J333WVWG.js.map +1 -0
  244. package/dist/chunk-JADEGHJI.js +101 -0
  245. package/dist/chunk-JADEGHJI.js.map +1 -0
  246. package/dist/chunk-JAS77BXB.js +245 -0
  247. package/dist/chunk-JAS77BXB.js.map +1 -0
  248. package/dist/chunk-JDBHOE34.js +51 -0
  249. package/dist/chunk-JDBHOE34.js.map +1 -0
  250. package/dist/chunk-JG4JIBBV.js +245 -0
  251. package/dist/chunk-JG4JIBBV.js.map +1 -0
  252. package/dist/chunk-JHJSR2UT.js +101 -0
  253. package/dist/chunk-JHJSR2UT.js.map +1 -0
  254. package/dist/chunk-JHKIEQKC.js +69 -0
  255. package/dist/chunk-JHKIEQKC.js.map +1 -0
  256. package/dist/chunk-JJDLCVZV.js +37 -0
  257. package/dist/chunk-JJDLCVZV.js.map +1 -0
  258. package/dist/chunk-JJSZK6KF.js +169 -0
  259. package/dist/chunk-JJSZK6KF.js.map +1 -0
  260. package/dist/chunk-JKAMW7OV.js +228 -0
  261. package/dist/chunk-JKAMW7OV.js.map +1 -0
  262. package/dist/chunk-JKWO3SGU.js +79 -0
  263. package/dist/chunk-JKWO3SGU.js.map +1 -0
  264. package/dist/chunk-JRSZNGFD.js +28 -0
  265. package/dist/chunk-JRSZNGFD.js.map +1 -0
  266. package/dist/chunk-JWDXPHJ3.js +117 -0
  267. package/dist/chunk-JWDXPHJ3.js.map +1 -0
  268. package/dist/chunk-JZVK4NDF.js +28 -0
  269. package/dist/chunk-JZVK4NDF.js.map +1 -0
  270. package/dist/chunk-K255663P.js +144 -0
  271. package/dist/chunk-K255663P.js.map +1 -0
  272. package/dist/chunk-K5TTAI44.js +89 -0
  273. package/dist/chunk-K5TTAI44.js.map +1 -0
  274. package/dist/chunk-KCAOUZCT.js +245 -0
  275. package/dist/chunk-KCAOUZCT.js.map +1 -0
  276. package/dist/chunk-KCCYHT23.js +39 -0
  277. package/dist/chunk-KCCYHT23.js.map +1 -0
  278. package/dist/chunk-KFUBWOCN.js +69 -0
  279. package/dist/chunk-KFUBWOCN.js.map +1 -0
  280. package/dist/chunk-KHQ3C5HB.js +125 -0
  281. package/dist/chunk-KHQ3C5HB.js.map +1 -0
  282. package/dist/chunk-KOKKR2GO.js +37 -0
  283. package/dist/chunk-KOKKR2GO.js.map +1 -0
  284. package/dist/chunk-KUKHQCFS.js +233 -0
  285. package/dist/chunk-KUKHQCFS.js.map +1 -0
  286. package/dist/chunk-KV432YFG.js +223 -0
  287. package/dist/chunk-KV432YFG.js.map +1 -0
  288. package/dist/chunk-L5SQIVFO.js +68 -0
  289. package/dist/chunk-L5SQIVFO.js.map +1 -0
  290. package/dist/chunk-LGDFJ7W6.js +174 -0
  291. package/dist/chunk-LGDFJ7W6.js.map +1 -0
  292. package/dist/chunk-LIHMBEQT.js +144 -0
  293. package/dist/chunk-LIHMBEQT.js.map +1 -0
  294. package/dist/chunk-LJDGAKG3.js +196 -0
  295. package/dist/chunk-LJDGAKG3.js.map +1 -0
  296. package/dist/chunk-LSUCPRXN.js +89 -0
  297. package/dist/chunk-LSUCPRXN.js.map +1 -0
  298. package/dist/chunk-LTEJYJUM.js +143 -0
  299. package/dist/chunk-LTEJYJUM.js.map +1 -0
  300. package/dist/chunk-M5RM57U5.js +69 -0
  301. package/dist/chunk-M5RM57U5.js.map +1 -0
  302. package/dist/chunk-MDSCN4PH.js +144 -0
  303. package/dist/chunk-MDSCN4PH.js.map +1 -0
  304. package/dist/chunk-MG2KX3KF.js +69 -0
  305. package/dist/chunk-MG2KX3KF.js.map +1 -0
  306. package/dist/chunk-MIATMZDP.js +39 -0
  307. package/dist/chunk-MIATMZDP.js.map +1 -0
  308. package/dist/chunk-MIVH7X2Q.js +245 -0
  309. package/dist/chunk-MIVH7X2Q.js.map +1 -0
  310. package/dist/chunk-MPZJH3PI.js +287 -0
  311. package/dist/chunk-MPZJH3PI.js.map +1 -0
  312. package/dist/chunk-MQ4ZZJXV.js +51 -0
  313. package/dist/chunk-MQ4ZZJXV.js.map +1 -0
  314. package/dist/chunk-MRTKFR7V.js +144 -0
  315. package/dist/chunk-MRTKFR7V.js.map +1 -0
  316. package/dist/chunk-MTSZUPDJ.js +151 -0
  317. package/dist/chunk-MTSZUPDJ.js.map +1 -0
  318. package/dist/chunk-MTU2IQUS.js +689 -0
  319. package/dist/chunk-MTU2IQUS.js.map +1 -0
  320. package/dist/chunk-MVA6X35R.js +165 -0
  321. package/dist/chunk-MVA6X35R.js.map +1 -0
  322. package/dist/chunk-ND5BRCYV.js +75 -0
  323. package/dist/chunk-ND5BRCYV.js.map +1 -0
  324. package/dist/chunk-NE5S2QWA.js +51 -0
  325. package/dist/chunk-NE5S2QWA.js.map +1 -0
  326. package/dist/chunk-NHK64BOP.js +69 -0
  327. package/dist/chunk-NHK64BOP.js.map +1 -0
  328. package/dist/chunk-NHMDJCXR.js +276 -0
  329. package/dist/chunk-NHMDJCXR.js.map +1 -0
  330. package/dist/chunk-NIBZSFZ6.js +196 -0
  331. package/dist/chunk-NIBZSFZ6.js.map +1 -0
  332. package/dist/chunk-NJ3LHGC6.js +169 -0
  333. package/dist/chunk-NJ3LHGC6.js.map +1 -0
  334. package/dist/chunk-NJKRLSH3.js +287 -0
  335. package/dist/chunk-NJKRLSH3.js.map +1 -0
  336. package/dist/chunk-NLTKDXLB.js +113 -0
  337. package/dist/chunk-NLTKDXLB.js.map +1 -0
  338. package/dist/chunk-NRWZ6JNA.js +69 -0
  339. package/dist/chunk-NRWZ6JNA.js.map +1 -0
  340. package/dist/chunk-NSBBMIXS.js +151 -0
  341. package/dist/chunk-NSBBMIXS.js.map +1 -0
  342. package/dist/chunk-O665PURC.js +63 -0
  343. package/dist/chunk-O665PURC.js.map +1 -0
  344. package/dist/chunk-O6LH7P6V.js +87 -0
  345. package/dist/chunk-O6LH7P6V.js.map +1 -0
  346. package/dist/chunk-OF4RHJCY.js +69 -0
  347. package/dist/chunk-OF4RHJCY.js.map +1 -0
  348. package/dist/chunk-OL4XCMRU.js +363 -0
  349. package/dist/chunk-OL4XCMRU.js.map +1 -0
  350. package/dist/chunk-ORBEMNBA.js +49 -0
  351. package/dist/chunk-ORBEMNBA.js.map +1 -0
  352. package/dist/chunk-OYCRE67S.js +87 -0
  353. package/dist/chunk-OYCRE67S.js.map +1 -0
  354. package/dist/chunk-P4KO43AP.js +245 -0
  355. package/dist/chunk-P4KO43AP.js.map +1 -0
  356. package/dist/chunk-PJHCOBSQ.js +163 -0
  357. package/dist/chunk-PJHCOBSQ.js.map +1 -0
  358. package/dist/chunk-PXPGCDNA.js +106 -0
  359. package/dist/chunk-PXPGCDNA.js.map +1 -0
  360. package/dist/chunk-QBVF4BCB.js +245 -0
  361. package/dist/chunk-QBVF4BCB.js.map +1 -0
  362. package/dist/chunk-QEGDJ4ZD.js +165 -0
  363. package/dist/chunk-QEGDJ4ZD.js.map +1 -0
  364. package/dist/chunk-QKP2KBZ5.js +219 -0
  365. package/dist/chunk-QKP2KBZ5.js.map +1 -0
  366. package/dist/chunk-QVHA4ANB.js +196 -0
  367. package/dist/chunk-QVHA4ANB.js.map +1 -0
  368. package/dist/chunk-QXBRA2T6.js +169 -0
  369. package/dist/chunk-QXBRA2T6.js.map +1 -0
  370. package/dist/chunk-RAMPMKQD.js +245 -0
  371. package/dist/chunk-RAMPMKQD.js.map +1 -0
  372. package/dist/chunk-REPTW53S.js +98 -0
  373. package/dist/chunk-REPTW53S.js.map +1 -0
  374. package/dist/chunk-RFJ5NMY4.js +54 -0
  375. package/dist/chunk-RFJ5NMY4.js.map +1 -0
  376. package/dist/chunk-RMFSOYRW.js +99 -0
  377. package/dist/chunk-RMFSOYRW.js.map +1 -0
  378. package/dist/chunk-RXQHKSIV.js +37 -0
  379. package/dist/chunk-RXQHKSIV.js.map +1 -0
  380. package/dist/chunk-RY7DDHZO.js +51 -0
  381. package/dist/chunk-RY7DDHZO.js.map +1 -0
  382. package/dist/chunk-RZGCNQWE.js +89 -0
  383. package/dist/chunk-RZGCNQWE.js.map +1 -0
  384. package/dist/chunk-S3W44IB3.js +151 -0
  385. package/dist/chunk-S3W44IB3.js.map +1 -0
  386. package/dist/chunk-SEKCH5XW.js +100 -0
  387. package/dist/chunk-SEKCH5XW.js.map +1 -0
  388. package/dist/chunk-SFBPPATA.js +37 -0
  389. package/dist/chunk-SFBPPATA.js.map +1 -0
  390. package/dist/chunk-SGS3LUQ3.js +196 -0
  391. package/dist/chunk-SGS3LUQ3.js.map +1 -0
  392. package/dist/chunk-SLHUNZIR.js +245 -0
  393. package/dist/chunk-SLHUNZIR.js.map +1 -0
  394. package/dist/chunk-STCVW5HT.js +49 -0
  395. package/dist/chunk-STCVW5HT.js.map +1 -0
  396. package/dist/chunk-SVGGVYY7.js +69 -0
  397. package/dist/chunk-SVGGVYY7.js.map +1 -0
  398. package/dist/chunk-T5I3DNHD.js +145 -0
  399. package/dist/chunk-T5I3DNHD.js.map +1 -0
  400. package/dist/chunk-TJDCSV5R.js +230 -0
  401. package/dist/chunk-TJDCSV5R.js.map +1 -0
  402. package/dist/chunk-TJWFURWT.js +43 -0
  403. package/dist/chunk-TJWFURWT.js.map +1 -0
  404. package/dist/chunk-TMO724ZN.js +63 -0
  405. package/dist/chunk-TMO724ZN.js.map +1 -0
  406. package/dist/chunk-TP7DOXLP.js +98 -0
  407. package/dist/chunk-TP7DOXLP.js.map +1 -0
  408. package/dist/chunk-TQJ3HQ7R.js +87 -0
  409. package/dist/chunk-TQJ3HQ7R.js.map +1 -0
  410. package/dist/chunk-TRNLQ7F3.js +245 -0
  411. package/dist/chunk-TRNLQ7F3.js.map +1 -0
  412. package/dist/chunk-U6UGFQIT.js +117 -0
  413. package/dist/chunk-U6UGFQIT.js.map +1 -0
  414. package/dist/chunk-U7OEYXJQ.js +165 -0
  415. package/dist/chunk-U7OEYXJQ.js.map +1 -0
  416. package/dist/chunk-UF6LFXBG.js +230 -0
  417. package/dist/chunk-UF6LFXBG.js.map +1 -0
  418. package/dist/chunk-ULZHPTB5.js +70 -0
  419. package/dist/chunk-ULZHPTB5.js.map +1 -0
  420. package/dist/chunk-UOCLNOC2.js +145 -0
  421. package/dist/chunk-UOCLNOC2.js.map +1 -0
  422. package/dist/chunk-UZ7AGDRK.js +98 -0
  423. package/dist/chunk-UZ7AGDRK.js.map +1 -0
  424. package/dist/chunk-V2RMMVGT.js +51 -0
  425. package/dist/chunk-V2RMMVGT.js.map +1 -0
  426. package/dist/chunk-V2UREEFT.js +89 -0
  427. package/dist/chunk-V2UREEFT.js.map +1 -0
  428. package/dist/chunk-V4WWIPTK.js +363 -0
  429. package/dist/chunk-V4WWIPTK.js.map +1 -0
  430. package/dist/chunk-V7IC4EAC.js +51 -0
  431. package/dist/chunk-V7IC4EAC.js.map +1 -0
  432. package/dist/chunk-VEHTXVLY.js +169 -0
  433. package/dist/chunk-VEHTXVLY.js.map +1 -0
  434. package/dist/chunk-VIVVHI7F.js +63 -0
  435. package/dist/chunk-VIVVHI7F.js.map +1 -0
  436. package/dist/chunk-VQMIOVFO.js +69 -0
  437. package/dist/chunk-VQMIOVFO.js.map +1 -0
  438. package/dist/chunk-VU3C3W4S.js +106 -0
  439. package/dist/chunk-VU3C3W4S.js.map +1 -0
  440. package/dist/chunk-VYPPQUB5.js +196 -0
  441. package/dist/chunk-VYPPQUB5.js.map +1 -0
  442. package/dist/chunk-W2TX267T.js +100 -0
  443. package/dist/chunk-W2TX267T.js.map +1 -0
  444. package/dist/chunk-W3EW7K6L.js +51 -0
  445. package/dist/chunk-W3EW7K6L.js.map +1 -0
  446. package/dist/chunk-W7NQ5NW6.js +100 -0
  447. package/dist/chunk-W7NQ5NW6.js.map +1 -0
  448. package/dist/chunk-WA5A2GB4.js +192 -0
  449. package/dist/chunk-WA5A2GB4.js.map +1 -0
  450. package/dist/chunk-WPAC4HEX.js +87 -0
  451. package/dist/chunk-WPAC4HEX.js.map +1 -0
  452. package/dist/chunk-X2OV53JW.js +196 -0
  453. package/dist/chunk-X2OV53JW.js.map +1 -0
  454. package/dist/chunk-X47BEKKF.js +68 -0
  455. package/dist/chunk-X47BEKKF.js.map +1 -0
  456. package/dist/chunk-X6K6AM4D.js +196 -0
  457. package/dist/chunk-X6K6AM4D.js.map +1 -0
  458. package/dist/chunk-XIKKYBHO.js +69 -0
  459. package/dist/chunk-XIKKYBHO.js.map +1 -0
  460. package/dist/chunk-XYDK5OWF.js +75 -0
  461. package/dist/chunk-XYDK5OWF.js.map +1 -0
  462. package/dist/chunk-Y2H4FXGU.js +68 -0
  463. package/dist/chunk-Y2H4FXGU.js.map +1 -0
  464. package/dist/chunk-YCRTFH4C.js +79 -0
  465. package/dist/chunk-YCRTFH4C.js.map +1 -0
  466. package/dist/chunk-YHGFJ7N6.js +63 -0
  467. package/dist/chunk-YHGFJ7N6.js.map +1 -0
  468. package/dist/chunk-YKDT2D43.js +98 -0
  469. package/dist/chunk-YKDT2D43.js.map +1 -0
  470. package/dist/chunk-YLTKQZ67.js +228 -0
  471. package/dist/chunk-YLTKQZ67.js.map +1 -0
  472. package/dist/chunk-YPGFPLWM.js +69 -0
  473. package/dist/chunk-YPGFPLWM.js.map +1 -0
  474. package/dist/chunk-YWYYPYBK.js +1 -0
  475. package/dist/chunk-YWYYPYBK.js.map +1 -0
  476. package/dist/chunk-Z4NCEYC6.js +70 -0
  477. package/dist/chunk-Z4NCEYC6.js.map +1 -0
  478. package/dist/chunk-Z7WNKARH.js +331 -0
  479. package/dist/chunk-Z7WNKARH.js.map +1 -0
  480. package/dist/chunk-ZA4NYPSW.js +28 -0
  481. package/dist/chunk-ZA4NYPSW.js.map +1 -0
  482. package/dist/chunk-ZDY2M7RX.js +113 -0
  483. package/dist/chunk-ZDY2M7RX.js.map +1 -0
  484. package/dist/chunk-ZFTQ2XBH.js +76 -0
  485. package/dist/chunk-ZFTQ2XBH.js.map +1 -0
  486. package/dist/chunk-ZI3TYUTO.js +196 -0
  487. package/dist/chunk-ZI3TYUTO.js.map +1 -0
  488. package/dist/chunk-ZI7PEVZG.js +89 -0
  489. package/dist/chunk-ZI7PEVZG.js.map +1 -0
  490. package/dist/chunk-ZKFNOCWD.js +125 -0
  491. package/dist/chunk-ZKFNOCWD.js.map +1 -0
  492. package/dist/chunk-ZOITFRX7.js +70 -0
  493. package/dist/chunk-ZOITFRX7.js.map +1 -0
  494. package/dist/chunk-ZPDLTZDJ.js +363 -0
  495. package/dist/chunk-ZPDLTZDJ.js.map +1 -0
  496. package/dist/chunk-ZR4G3PU3.js +89 -0
  497. package/dist/chunk-ZR4G3PU3.js.map +1 -0
  498. package/dist/context/index.js +5 -5
  499. package/dist/icon.cjs +2 -0
  500. package/dist/icon.cjs.map +1 -1
  501. package/dist/icon.d.cts +1 -1
  502. package/dist/icon.d.ts +1 -1
  503. package/dist/icon.js +3 -1
  504. package/dist/index.cjs +1706 -308
  505. package/dist/index.cjs.map +1 -1
  506. package/dist/index.d.cts +4 -3
  507. package/dist/index.d.ts +4 -3
  508. package/dist/index.js +176 -165
  509. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs.map +1 -1
  510. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +19 -19
  511. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs.map +1 -1
  512. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +5 -5
  513. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs.map +1 -1
  514. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +12 -12
  515. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs.map +1 -1
  516. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +3 -3
  517. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +3 -3
  518. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.js +2 -2
  519. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs.map +1 -1
  520. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +7 -7
  521. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs.map +1 -1
  522. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +6 -6
  523. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs.map +1 -1
  524. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +6 -6
  525. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs.map +1 -1
  526. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +6 -6
  527. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs.map +1 -1
  528. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +5 -5
  529. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs.map +1 -1
  530. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +22 -22
  531. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs.map +1 -1
  532. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +7 -7
  533. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
  534. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +5 -5
  535. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs.map +1 -1
  536. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.js +4 -4
  537. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
  538. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +25 -25
  539. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.cjs +4 -4
  540. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.cjs.map +1 -1
  541. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-video.js +1 -1
  542. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +4 -4
  543. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
  544. package/dist/molecules/curriculumV2/CurriculumContents/index.js +30 -30
  545. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +2 -2
  546. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs.map +1 -1
  547. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +5 -5
  548. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
  549. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +9 -9
  550. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs.map +1 -1
  551. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +6 -6
  552. package/dist/molecules/curriculumV2/curriculum-context.cjs +0 -1
  553. package/dist/molecules/curriculumV2/curriculum-context.cjs.map +1 -1
  554. package/dist/molecules/curriculumV2/curriculum-context.js +1 -1
  555. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
  556. package/dist/molecules/curriculumV2/curriculum-sub-nav.js +6 -6
  557. package/dist/molecules/curriculumV2/curriculum-v2-layout.js +2 -2
  558. package/dist/molecules/curriculumV2/index.cjs +4 -5
  559. package/dist/molecules/curriculumV2/index.cjs.map +1 -1
  560. package/dist/molecules/curriculumV2/index.js +39 -39
  561. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  562. package/dist/molecules/date-picker/date-picker-button.js +7 -7
  563. package/dist/molecules/date-picker/index.cjs.map +1 -1
  564. package/dist/molecules/date-picker/index.js +6 -6
  565. package/dist/molecules/description-json-render.cjs +1 -1
  566. package/dist/molecules/description-json-render.cjs.map +1 -1
  567. package/dist/molecules/description-json-render.js +7 -7
  568. package/dist/molecules/download-card.js +2 -2
  569. package/dist/molecules/dynamic-field.cjs +147 -5
  570. package/dist/molecules/dynamic-field.cjs.map +1 -1
  571. package/dist/molecules/dynamic-field.js +9 -6
  572. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs +1711 -0
  573. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs.map +1 -0
  574. package/dist/molecules/dynamic-form-editor-field-editor-panel.d.cts +19 -0
  575. package/dist/molecules/dynamic-form-editor-field-editor-panel.d.ts +19 -0
  576. package/dist/molecules/dynamic-form-editor-field-editor-panel.js +37 -0
  577. package/dist/molecules/dynamic-form-editor-field-editor-panel.js.map +1 -0
  578. package/dist/molecules/dynamic-form-editor-field-list-panel.cjs +298 -0
  579. package/dist/molecules/dynamic-form-editor-field-list-panel.cjs.map +1 -0
  580. package/dist/molecules/dynamic-form-editor-field-list-panel.d.cts +16 -0
  581. package/dist/molecules/dynamic-form-editor-field-list-panel.d.ts +16 -0
  582. package/dist/molecules/dynamic-form-editor-field-list-panel.js +14 -0
  583. package/dist/molecules/dynamic-form-editor-field-list-panel.js.map +1 -0
  584. package/dist/molecules/dynamic-form-editor-issues-panel.cjs +171 -0
  585. package/dist/molecules/dynamic-form-editor-issues-panel.cjs.map +1 -0
  586. package/dist/molecules/dynamic-form-editor-issues-panel.d.cts +10 -0
  587. package/dist/molecules/dynamic-form-editor-issues-panel.d.ts +10 -0
  588. package/dist/molecules/dynamic-form-editor-issues-panel.js +12 -0
  589. package/dist/molecules/dynamic-form-editor-issues-panel.js.map +1 -0
  590. package/dist/molecules/dynamic-form-editor-preview-panel.cjs +1021 -0
  591. package/dist/molecules/dynamic-form-editor-preview-panel.cjs.map +1 -0
  592. package/dist/molecules/dynamic-form-editor-preview-panel.d.cts +10 -0
  593. package/dist/molecules/dynamic-form-editor-preview-panel.d.ts +10 -0
  594. package/dist/molecules/dynamic-form-editor-preview-panel.js +26 -0
  595. package/dist/molecules/dynamic-form-editor-preview-panel.js.map +1 -0
  596. package/dist/molecules/dynamic-form-editor-utils.cjs +396 -0
  597. package/dist/molecules/dynamic-form-editor-utils.cjs.map +1 -0
  598. package/dist/molecules/dynamic-form-editor-utils.d.cts +43 -0
  599. package/dist/molecules/dynamic-form-editor-utils.d.ts +43 -0
  600. package/dist/molecules/dynamic-form-editor-utils.js +44 -0
  601. package/dist/molecules/dynamic-form-editor-utils.js.map +1 -0
  602. package/dist/molecules/dynamic-form-editor.cjs +2925 -0
  603. package/dist/molecules/dynamic-form-editor.cjs.map +1 -0
  604. package/dist/molecules/dynamic-form-editor.d.cts +15 -0
  605. package/dist/molecules/dynamic-form-editor.d.ts +15 -0
  606. package/dist/molecules/dynamic-form-editor.js +51 -0
  607. package/dist/molecules/dynamic-form-editor.js.map +1 -0
  608. package/dist/molecules/dynamic-form-response-item.cjs +21 -12
  609. package/dist/molecules/dynamic-form-response-item.cjs.map +1 -1
  610. package/dist/molecules/dynamic-form-response-item.js +1 -1
  611. package/dist/molecules/dynamic-form.cjs +149 -7
  612. package/dist/molecules/dynamic-form.cjs.map +1 -1
  613. package/dist/molecules/dynamic-form.js +10 -7
  614. package/dist/molecules/expand-table/index.cjs.map +1 -1
  615. package/dist/molecules/expand-table/index.js +6 -6
  616. package/dist/molecules/force-refresh.js +2 -2
  617. package/dist/molecules/ghost-post.js +4 -4
  618. package/dist/molecules/index.cjs +1426 -27
  619. package/dist/molecules/index.cjs.map +1 -1
  620. package/dist/molecules/index.d.cts +1 -0
  621. package/dist/molecules/index.d.ts +1 -0
  622. package/dist/molecules/index.js +94 -84
  623. package/dist/molecules/learning-post.js +6 -6
  624. package/dist/molecules/navigation.js +3 -3
  625. package/dist/molecules/one-on-one-guide-list.js +3 -3
  626. package/dist/molecules/stepper.cjs.map +1 -1
  627. package/dist/molecules/stepper.js +5 -5
  628. package/dist/molecules/tag-selector.cjs.map +1 -1
  629. package/dist/molecules/tag-selector.js +6 -6
  630. package/dist/molecules/time-select.cjs +1 -1
  631. package/dist/molecules/time-select.cjs.map +1 -1
  632. package/dist/molecules/time-select.js +2 -2
  633. package/dist/molecules/training-info-guideline.js +7 -7
  634. package/dist/types/dynamic-form-schema-generated.cjs.map +1 -1
  635. package/dist/types/dynamic-form-schema-generated.d.cts +30 -2
  636. package/dist/types/dynamic-form-schema-generated.d.ts +30 -2
  637. package/dist/types/index.d.cts +1 -1
  638. package/dist/types/index.d.ts +1 -1
  639. package/dist/types/index.js +1 -1
  640. package/dist/utils/curriculum.utils.cjs.map +1 -1
  641. package/dist/utils/curriculum.utils.js +1 -1
  642. package/dist/utils/get-callout-icon-component.cjs +624 -0
  643. package/dist/utils/get-callout-icon-component.cjs.map +1 -0
  644. package/dist/utils/get-callout-icon-component.d.cts +11 -0
  645. package/dist/utils/get-callout-icon-component.d.ts +11 -0
  646. package/dist/utils/get-callout-icon-component.js +26 -0
  647. package/dist/utils/get-callout-icon-component.js.map +1 -0
  648. package/dist/utils/getCalloutIconComponent.cjs.map +1 -1
  649. package/dist/utils/getCalloutIconComponent.js +2 -2
  650. package/dist/utils/index.cjs +1 -1
  651. package/dist/utils/index.cjs.map +1 -1
  652. package/dist/utils/index.d.cts +1 -1
  653. package/dist/utils/index.d.ts +1 -1
  654. package/dist/utils/index.js +2 -2
  655. package/package.json +1 -1
  656. package/src/app/platform/reservation-card.tsx +0 -1
  657. package/src/constrant/dynamic-form-schema.json +55 -0
  658. package/src/icon.ts +2 -1
  659. package/src/molecules/curriculumV2/CurriculumContents/curriculum-video.tsx +3 -3
  660. package/src/molecules/curriculumV2/curriculum-context.tsx +0 -1
  661. package/src/molecules/description-json-render.tsx +1 -1
  662. package/src/molecules/dynamic-field.tsx +183 -7
  663. package/src/molecules/dynamic-form-editor-field-editor-panel.tsx +688 -0
  664. package/src/molecules/dynamic-form-editor-field-list-panel.tsx +116 -0
  665. package/src/molecules/dynamic-form-editor-issues-panel.tsx +35 -0
  666. package/src/molecules/dynamic-form-editor-preview-panel.tsx +30 -0
  667. package/src/molecules/dynamic-form-editor-utils.ts +433 -0
  668. package/src/molecules/dynamic-form-editor.tsx +263 -0
  669. package/src/molecules/dynamic-form-response-item.tsx +28 -17
  670. package/src/molecules/dynamic-form.tsx +1 -1
  671. package/src/molecules/index.ts +2 -1
  672. package/src/types/dynamic-form-schema-generated.ts +33 -0
  673. package/src/utils/index.ts +1 -1
  674. package/src/utils/{getCalloutIconComponent.ts → get-callout-icon-component.ts} +3 -3
@@ -0,0 +1,688 @@
1
+ import React, { useMemo } from 'react';
2
+ import { Box } from '@radix-ui/themes';
3
+ import { Button } from '@/atoms/button';
4
+ import { Card } from '@/atoms/card';
5
+ import { Checkbox } from '@/atoms/check-box';
6
+ import { Flex } from '@/atoms/flex';
7
+ import { IconButton } from '@/atoms/icon-button';
8
+ import { Select } from '@/atoms/select';
9
+ import { TextArea } from '@/atoms/text-area';
10
+ import { TextField } from '@/atoms/text-field';
11
+ import { Typo } from '@/atoms/typo';
12
+ import {
13
+ ChevronDownIcon,
14
+ ChevronUpIcon,
15
+ CopyIcon,
16
+ PlusIcon,
17
+ TrashIcon,
18
+ } from '@/icon';
19
+ import type {
20
+ DynamicFormFieldSchema,
21
+ FieldOption,
22
+ ImageFieldOption,
23
+ ValidationRule,
24
+ } from '@/types/dynamic-form-schema-generated';
25
+ import {
26
+ getFieldTypeLabel,
27
+ resetFieldType,
28
+ updateFieldCommonProps,
29
+ updateFieldValidation,
30
+ updateImageLayout,
31
+ updateImageOptions,
32
+ updateOptions,
33
+ updateOrientation,
34
+ updateTextPlaceholder,
35
+ type FieldType,
36
+ } from './dynamic-form-editor-utils';
37
+
38
+ function isRecord(value: unknown): value is Record<string, unknown> {
39
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
40
+ }
41
+
42
+ function isFieldType(value: string, types: FieldType[]): value is FieldType {
43
+ return types.some((t) => t === value);
44
+ }
45
+
46
+ function parseOptionalNumber(value: string): number | undefined {
47
+ const trimmed: string = value.trim();
48
+ if (trimmed.length === 0) return undefined;
49
+ const num = Number(trimmed);
50
+ return Number.isFinite(num) ? num : undefined;
51
+ }
52
+
53
+ function getValidation(field: DynamicFormFieldSchema): ValidationRule {
54
+ return field.validation ? field.validation : {};
55
+ }
56
+
57
+ function cleanValidation(next: ValidationRule): ValidationRule | undefined {
58
+ const hasAny: boolean =
59
+ next.min !== undefined ||
60
+ next.max !== undefined ||
61
+ (typeof next.pattern === 'string' && next.pattern.trim().length > 0) ||
62
+ (typeof next.message === 'string' && next.message.trim().length > 0);
63
+ return hasAny ? next : undefined;
64
+ }
65
+
66
+ function moveItem<T>(items: T[], fromIndex: number, toIndex: number): T[] {
67
+ if (fromIndex < 0 || fromIndex >= items.length) return items;
68
+ if (toIndex < 0 || toIndex >= items.length) return items;
69
+ if (fromIndex === toIndex) return items;
70
+ const next: T[] = [...items];
71
+ const [item] = next.splice(fromIndex, 1);
72
+ next.splice(toIndex, 0, item);
73
+ return next;
74
+ }
75
+
76
+ function getOptionDrafts(field: DynamicFormFieldSchema): { label: string; value: string }[] {
77
+ const raw: unknown = field.options;
78
+ if (!Array.isArray(raw)) return [];
79
+ return raw
80
+ .map((o): { label: string; value: string } | null => {
81
+ if (!isRecord(o)) return null;
82
+ const label = typeof o.label === 'string' ? o.label : '';
83
+ const valueRaw = o.value;
84
+ const value =
85
+ typeof valueRaw === 'string' || typeof valueRaw === 'number'
86
+ ? String(valueRaw)
87
+ : '';
88
+ return { label, value };
89
+ })
90
+ .filter((v): v is { label: string; value: string } => v !== null);
91
+ }
92
+
93
+ function getImageOptionDrafts(field: DynamicFormFieldSchema): {
94
+ label: string;
95
+ value: string;
96
+ imageSrc: string;
97
+ alt?: string;
98
+ }[] {
99
+ const raw: unknown = field.options;
100
+ if (!Array.isArray(raw)) return [];
101
+ return raw
102
+ .map(
103
+ (
104
+ o
105
+ ):
106
+ | { label: string; value: string; imageSrc: string; alt?: string }
107
+ | null => {
108
+ if (!isRecord(o)) return null;
109
+ const label = typeof o.label === 'string' ? o.label : '';
110
+ const valueRaw = o.value;
111
+ const value =
112
+ typeof valueRaw === 'string' || typeof valueRaw === 'number'
113
+ ? String(valueRaw)
114
+ : '';
115
+ const imageSrc = typeof o.imageSrc === 'string' ? o.imageSrc : '';
116
+ const alt = typeof o.alt === 'string' ? o.alt : undefined;
117
+ return { label, value, imageSrc, ...(alt ? { alt } : {}) };
118
+ }
119
+ )
120
+ .filter(
121
+ (
122
+ v
123
+ ): v is { label: string; value: string; imageSrc: string; alt?: string } =>
124
+ v !== null
125
+ );
126
+ }
127
+
128
+ function toFieldOptions(options: { label: string; value: string }[]): FieldOption[] {
129
+ return options.map((o) => ({ label: o.label, value: o.value }));
130
+ }
131
+
132
+ function toImageFieldOptions(
133
+ options: { label: string; value: string; imageSrc: string; alt?: string }[]
134
+ ): ImageFieldOption[] {
135
+ return options.map((o) => ({
136
+ label: o.label,
137
+ value: o.value,
138
+ imageSrc: o.imageSrc,
139
+ ...(o.alt !== undefined ? { alt: o.alt } : {}),
140
+ }));
141
+ }
142
+
143
+ export interface DynamicFormEditorFieldEditorPanelProps {
144
+ field: DynamicFormFieldSchema | null;
145
+ fieldIndex: number;
146
+ fields: DynamicFormFieldSchema[];
147
+ readonly: boolean;
148
+ fieldTypes: FieldType[];
149
+ onRenameField: (nextName: string) => void;
150
+ onUpdateField: (nextField: DynamicFormFieldSchema) => void;
151
+ onDeleteField: () => void;
152
+ onMoveField: (direction: 'up' | 'down') => void;
153
+ onDuplicateField: () => void;
154
+ }
155
+
156
+ export function DynamicFormEditorFieldEditorPanel(
157
+ props: DynamicFormEditorFieldEditorPanelProps
158
+ ): React.ReactElement {
159
+ const {
160
+ field,
161
+ fieldIndex,
162
+ fields,
163
+ readonly,
164
+ fieldTypes,
165
+ onRenameField,
166
+ onUpdateField,
167
+ onDeleteField,
168
+ onMoveField,
169
+ onDuplicateField,
170
+ } = props;
171
+
172
+ const canMoveUp: boolean = fieldIndex > 0;
173
+ const canMoveDown: boolean = fieldIndex >= 0 && fieldIndex < fields.length - 1;
174
+
175
+ const placeholderValue: string = useMemo(() => {
176
+ if (!field) return '';
177
+ return String(field.placeholder || '');
178
+ }, [field]);
179
+
180
+ return (
181
+ <Card style={{ flex: 1, minWidth: 520, padding: 12 }}>
182
+ <Flex direction="column" gap="4">
183
+ <Flex align="center" justify="between">
184
+ <Typo variant="body">필드 편집</Typo>
185
+ <Flex align="center" gap="1">
186
+ <IconButton
187
+ aria-label="필드 위로"
188
+ disabled={readonly || !field || !canMoveUp}
189
+ onClick={(): void => { onMoveField('up'); }}
190
+ variant="soft"
191
+ >
192
+ <ChevronUpIcon />
193
+ </IconButton>
194
+ <IconButton
195
+ aria-label="필드 아래로"
196
+ disabled={readonly || !field || !canMoveDown}
197
+ onClick={(): void => { onMoveField('down'); }}
198
+ variant="soft"
199
+ >
200
+ <ChevronDownIcon />
201
+ </IconButton>
202
+ <IconButton
203
+ aria-label="필드 복제"
204
+ disabled={readonly || !field}
205
+ onClick={onDuplicateField}
206
+ variant="soft"
207
+ >
208
+ <CopyIcon />
209
+ </IconButton>
210
+ <IconButton
211
+ aria-label="필드 삭제"
212
+ disabled={readonly || !field}
213
+ onClick={onDeleteField}
214
+ variant="soft"
215
+ >
216
+ <TrashIcon />
217
+ </IconButton>
218
+ </Flex>
219
+ </Flex>
220
+
221
+ {!field ? (
222
+ <Typo color="gray" variant="caption">
223
+ 왼쪽에서 필드를 선택하세요.
224
+ </Typo>
225
+ ) : (
226
+ <Flex direction="column" gap="3">
227
+ <Flex align="end" gap="2">
228
+ <Box style={{ flex: 1 }}>
229
+ <Typo variant="caption">name</Typo>
230
+ <TextField.Root
231
+ disabled={readonly}
232
+ onChange={(e): void => { onRenameField(e.target.value); }}
233
+ value={field.name}
234
+ />
235
+ </Box>
236
+ <Box style={{ flex: 1 }}>
237
+ <Typo variant="caption">label</Typo>
238
+ <TextField.Root
239
+ disabled={readonly}
240
+ onChange={(e): void => {
241
+ onUpdateField(updateFieldCommonProps(field, { label: e.target.value }));
242
+ }}
243
+ value={field.label}
244
+ />
245
+ </Box>
246
+ </Flex>
247
+
248
+ <Flex align="center" gap="2">
249
+ <Select.Root
250
+ disabled={readonly}
251
+ onValueChange={(v: string): void => {
252
+ if (!isFieldType(v, fieldTypes)) return;
253
+ onUpdateField(resetFieldType(field, v, fields));
254
+ }}
255
+ value={field.type}
256
+ >
257
+ <Select.Trigger style={{ minWidth: 220 }} />
258
+ <Select.Content>
259
+ {fieldTypes.map((t) => (
260
+ <Select.Item key={t} value={t}>
261
+ {getFieldTypeLabel(t)}
262
+ </Select.Item>
263
+ ))}
264
+ </Select.Content>
265
+ </Select.Root>
266
+
267
+ <Flex align="center" gap="2">
268
+ <Checkbox
269
+ checked={Boolean(field.required)}
270
+ disabled={readonly}
271
+ onCheckedChange={(checked: boolean): void => {
272
+ onUpdateField(updateFieldCommonProps(field, { required: checked }));
273
+ }}
274
+ />
275
+ <Typo variant="caption">필수</Typo>
276
+ </Flex>
277
+ </Flex>
278
+
279
+ <Box>
280
+ <Typo variant="caption">description</Typo>
281
+ <TextArea
282
+ disabled={readonly}
283
+ onChange={(e): void => {
284
+ onUpdateField(
285
+ updateFieldCommonProps(field, { description: e.target.value })
286
+ );
287
+ }}
288
+ rows={3}
289
+ value={field.description || ''}
290
+ />
291
+ </Box>
292
+
293
+ {field.type === 'short_text' ||
294
+ field.type === 'long_text' ||
295
+ field.type === 'number' ||
296
+ field.type === 'email' ||
297
+ field.type === 'dropdown' ? (
298
+ <Box>
299
+ <Typo variant="caption">placeholder</Typo>
300
+ <TextField.Root
301
+ disabled={readonly}
302
+ onChange={(e): void => {
303
+ onUpdateField(updateTextPlaceholder(field, e.target.value));
304
+ }}
305
+ value={placeholderValue}
306
+ />
307
+ </Box>
308
+ ) : null}
309
+
310
+ {field.type === 'choice' || field.type === 'choices' ? (
311
+ <Box>
312
+ <Typo variant="caption">orientation</Typo>
313
+ <Select.Root
314
+ disabled={readonly}
315
+ onValueChange={(v: string): void => {
316
+ const nextOrientation: 'horizontal' | 'vertical' =
317
+ v === 'horizontal' ? 'horizontal' : 'vertical';
318
+ onUpdateField(updateOrientation(field, nextOrientation));
319
+ }}
320
+ value={field.orientation || 'vertical'}
321
+ >
322
+ <Select.Trigger style={{ minWidth: 220 }} />
323
+ <Select.Content>
324
+ <Select.Item value="vertical">vertical</Select.Item>
325
+ <Select.Item value="horizontal">horizontal</Select.Item>
326
+ </Select.Content>
327
+ </Select.Root>
328
+ </Box>
329
+ ) : null}
330
+
331
+ {field.type === 'dropdown' ||
332
+ field.type === 'choice' ||
333
+ field.type === 'radio_cards' ||
334
+ field.type === 'choices' ? (
335
+ <Card style={{ padding: 12 }}>
336
+ <Flex direction="column" gap="2">
337
+ <Flex align="center" justify="between">
338
+ <Typo variant="caption">options</Typo>
339
+ <Button
340
+ disabled={readonly}
341
+ onClick={(): void => {
342
+ const drafts = getOptionDrafts(field);
343
+ const nextDrafts = [
344
+ ...drafts,
345
+ {
346
+ label: `옵션 ${drafts.length + 1}`,
347
+ value: `option${drafts.length + 1}`,
348
+ },
349
+ ];
350
+ onUpdateField(updateOptions(field, toFieldOptions(nextDrafts)));
351
+ }}
352
+ size="small"
353
+ variant="soft"
354
+ >
355
+ <PlusIcon /> 추가
356
+ </Button>
357
+ </Flex>
358
+
359
+ {getOptionDrafts(field).map((opt, i) => (
360
+ <Flex align="end" gap="2" key={`${opt.value}-${opt.label}`}>
361
+ <Box style={{ flex: 1 }}>
362
+ <Typo variant="caption">label</Typo>
363
+ <TextField.Root
364
+ disabled={readonly}
365
+ onChange={(e): void => {
366
+ const drafts = getOptionDrafts(field);
367
+ const nextDrafts = drafts.map((d, idx) =>
368
+ idx === i ? { ...d, label: e.target.value } : d
369
+ );
370
+ onUpdateField(updateOptions(field, toFieldOptions(nextDrafts)));
371
+ }}
372
+ value={opt.label}
373
+ />
374
+ </Box>
375
+ <Box style={{ flex: 1 }}>
376
+ <Typo variant="caption">value</Typo>
377
+ <TextField.Root
378
+ disabled={readonly}
379
+ onChange={(e): void => {
380
+ const drafts = getOptionDrafts(field);
381
+ const nextDrafts = drafts.map((d, idx) =>
382
+ idx === i ? { ...d, value: e.target.value } : d
383
+ );
384
+ onUpdateField(updateOptions(field, toFieldOptions(nextDrafts)));
385
+ }}
386
+ value={opt.value}
387
+ />
388
+ </Box>
389
+ <Flex gap="1">
390
+ <IconButton
391
+ aria-label="옵션 위로"
392
+ disabled={readonly || i === 0}
393
+ onClick={(): void => {
394
+ const drafts = getOptionDrafts(field);
395
+ const nextDrafts = moveItem(drafts, i, i - 1);
396
+ onUpdateField(updateOptions(field, toFieldOptions(nextDrafts)));
397
+ }}
398
+ variant="soft"
399
+ >
400
+ <ChevronUpIcon />
401
+ </IconButton>
402
+ <IconButton
403
+ aria-label="옵션 아래로"
404
+ disabled={readonly || i === getOptionDrafts(field).length - 1}
405
+ onClick={(): void => {
406
+ const drafts = getOptionDrafts(field);
407
+ const nextDrafts = moveItem(drafts, i, i + 1);
408
+ onUpdateField(updateOptions(field, toFieldOptions(nextDrafts)));
409
+ }}
410
+ variant="soft"
411
+ >
412
+ <ChevronDownIcon />
413
+ </IconButton>
414
+ <IconButton
415
+ aria-label="옵션 삭제"
416
+ disabled={readonly}
417
+ onClick={(): void => {
418
+ const drafts = getOptionDrafts(field);
419
+ const nextDrafts = drafts.filter((_, idx) => idx !== i);
420
+ onUpdateField(updateOptions(field, toFieldOptions(nextDrafts)));
421
+ }}
422
+ variant="soft"
423
+ >
424
+ <TrashIcon />
425
+ </IconButton>
426
+ </Flex>
427
+ </Flex>
428
+ ))}
429
+ </Flex>
430
+ </Card>
431
+ ) : null}
432
+
433
+ {field.type === 'image_radio_card' ? (
434
+ <Card style={{ padding: 12 }}>
435
+ <Flex direction="column" gap="3">
436
+ <Flex align="center" justify="between">
437
+ <Typo variant="caption">image options</Typo>
438
+ <Button
439
+ disabled={readonly}
440
+ onClick={(): void => {
441
+ const drafts = getImageOptionDrafts(field);
442
+ const nextDrafts = [
443
+ ...drafts,
444
+ {
445
+ label: `이미지 ${drafts.length + 1}`,
446
+ value: `option${drafts.length + 1}`,
447
+ imageSrc: 'https://placehold.co/300x300/png?text=new',
448
+ },
449
+ ];
450
+ onUpdateField(updateImageOptions(field, toImageFieldOptions(nextDrafts)));
451
+ }}
452
+ size="small"
453
+ variant="soft"
454
+ >
455
+ <PlusIcon /> 추가
456
+ </Button>
457
+ </Flex>
458
+
459
+ {getImageOptionDrafts(field).map((opt, i) => (
460
+ <Card
461
+ key={`${opt.value}-${opt.label}-${opt.imageSrc}`}
462
+ style={{ padding: 10 }}
463
+ >
464
+ <Flex direction="column" gap="2">
465
+ <Flex align="end" gap="2">
466
+ <Box style={{ flex: 1 }}>
467
+ <Typo variant="caption">label</Typo>
468
+ <TextField.Root
469
+ disabled={readonly}
470
+ onChange={(e): void => {
471
+ const drafts = getImageOptionDrafts(field);
472
+ const nextDrafts = drafts.map((d, idx) =>
473
+ idx === i ? { ...d, label: e.target.value } : d
474
+ );
475
+ onUpdateField(
476
+ updateImageOptions(field, toImageFieldOptions(nextDrafts))
477
+ );
478
+ }}
479
+ value={opt.label}
480
+ />
481
+ </Box>
482
+ <Box style={{ flex: 1 }}>
483
+ <Typo variant="caption">value</Typo>
484
+ <TextField.Root
485
+ disabled={readonly}
486
+ onChange={(e): void => {
487
+ const drafts = getImageOptionDrafts(field);
488
+ const nextDrafts = drafts.map((d, idx) =>
489
+ idx === i ? { ...d, value: e.target.value } : d
490
+ );
491
+ onUpdateField(
492
+ updateImageOptions(field, toImageFieldOptions(nextDrafts))
493
+ );
494
+ }}
495
+ value={opt.value}
496
+ />
497
+ </Box>
498
+ </Flex>
499
+
500
+ <Box>
501
+ <Typo variant="caption">imageSrc</Typo>
502
+ <TextField.Root
503
+ disabled={readonly}
504
+ onChange={(e): void => {
505
+ const drafts = getImageOptionDrafts(field);
506
+ const nextDrafts = drafts.map((d, idx) =>
507
+ idx === i ? { ...d, imageSrc: e.target.value } : d
508
+ );
509
+ onUpdateField(
510
+ updateImageOptions(field, toImageFieldOptions(nextDrafts))
511
+ );
512
+ }}
513
+ value={opt.imageSrc}
514
+ />
515
+ </Box>
516
+
517
+ <Flex align="end" gap="2">
518
+ <Box style={{ flex: 1 }}>
519
+ <Typo variant="caption">alt</Typo>
520
+ <TextField.Root
521
+ disabled={readonly}
522
+ onChange={(e): void => {
523
+ const drafts = getImageOptionDrafts(field);
524
+ const nextAlt =
525
+ e.target.value.trim().length === 0 ? undefined : e.target.value;
526
+ const nextDrafts = drafts.map((d, idx) =>
527
+ idx === i ? { ...d, alt: nextAlt } : d
528
+ );
529
+ onUpdateField(
530
+ updateImageOptions(field, toImageFieldOptions(nextDrafts))
531
+ );
532
+ }}
533
+ value={opt.alt || ''}
534
+ />
535
+ </Box>
536
+ <IconButton
537
+ aria-label="이미지 옵션 삭제"
538
+ disabled={readonly}
539
+ onClick={(): void => {
540
+ const drafts = getImageOptionDrafts(field);
541
+ const nextDrafts = drafts.filter((_, idx) => idx !== i);
542
+ onUpdateField(
543
+ updateImageOptions(field, toImageFieldOptions(nextDrafts))
544
+ );
545
+ }}
546
+ variant="soft"
547
+ >
548
+ <TrashIcon />
549
+ </IconButton>
550
+ </Flex>
551
+ </Flex>
552
+ </Card>
553
+ ))}
554
+
555
+ <Flex gap="2">
556
+ <Box style={{ flex: 1 }}>
557
+ <Typo variant="caption">gridColumnsCount</Typo>
558
+ <TextField.Root
559
+ disabled={readonly}
560
+ inputMode="numeric"
561
+ onChange={(e): void => {
562
+ onUpdateField(
563
+ updateImageLayout(field, {
564
+ gridColumnsCount: parseOptionalNumber(e.target.value),
565
+ })
566
+ );
567
+ }}
568
+ value={String(field.gridColumnsCount || '')}
569
+ />
570
+ </Box>
571
+ <Box style={{ flex: 1 }}>
572
+ <Typo variant="caption">gridItemHeight</Typo>
573
+ <TextField.Root
574
+ disabled={readonly}
575
+ onChange={(e): void => {
576
+ onUpdateField(
577
+ updateImageLayout(field, { gridItemHeight: e.target.value })
578
+ );
579
+ }}
580
+ value={String(field.gridItemHeight || '')}
581
+ />
582
+ </Box>
583
+ <Box style={{ flex: 1 }}>
584
+ <Typo variant="caption">gridGap</Typo>
585
+ <TextField.Root
586
+ disabled={readonly}
587
+ onChange={(e): void => {
588
+ onUpdateField(updateImageLayout(field, { gridGap: e.target.value }));
589
+ }}
590
+ value={String(field.gridGap || '')}
591
+ />
592
+ </Box>
593
+ </Flex>
594
+
595
+ <Box>
596
+ <Typo variant="caption">imageFit</Typo>
597
+ <Select.Root
598
+ disabled={readonly}
599
+ onValueChange={(v: string): void => {
600
+ const nextFit: 'cover' | 'contain' =
601
+ v === 'contain' ? 'contain' : 'cover';
602
+ onUpdateField(updateImageLayout(field, { imageFit: nextFit }));
603
+ }}
604
+ value={field.imageFit || 'cover'}
605
+ >
606
+ <Select.Trigger style={{ minWidth: 220 }} />
607
+ <Select.Content>
608
+ <Select.Item value="cover">cover</Select.Item>
609
+ <Select.Item value="contain">contain</Select.Item>
610
+ </Select.Content>
611
+ </Select.Root>
612
+ </Box>
613
+ </Flex>
614
+ </Card>
615
+ ) : null}
616
+
617
+ <Card style={{ padding: 12 }}>
618
+ <Flex direction="column" gap="2">
619
+ <Typo variant="caption">validation</Typo>
620
+ <Flex gap="2">
621
+ <Box style={{ flex: 1 }}>
622
+ <Typo variant="caption">min</Typo>
623
+ <TextField.Root
624
+ disabled={readonly}
625
+ inputMode="numeric"
626
+ onChange={(e): void => {
627
+ const current = getValidation(field);
628
+ const next = cleanValidation({
629
+ ...current,
630
+ min: parseOptionalNumber(e.target.value),
631
+ });
632
+ onUpdateField(updateFieldValidation(field, next));
633
+ }}
634
+ value={getValidation(field).min !== undefined ? String(getValidation(field).min) : ''}
635
+ />
636
+ </Box>
637
+ <Box style={{ flex: 1 }}>
638
+ <Typo variant="caption">max</Typo>
639
+ <TextField.Root
640
+ disabled={readonly}
641
+ inputMode="numeric"
642
+ onChange={(e): void => {
643
+ const current = getValidation(field);
644
+ const next = cleanValidation({
645
+ ...current,
646
+ max: parseOptionalNumber(e.target.value),
647
+ });
648
+ onUpdateField(updateFieldValidation(field, next));
649
+ }}
650
+ value={getValidation(field).max !== undefined ? String(getValidation(field).max) : ''}
651
+ />
652
+ </Box>
653
+ </Flex>
654
+
655
+ <Box>
656
+ <Typo variant="caption">pattern</Typo>
657
+ <TextField.Root
658
+ disabled={readonly}
659
+ onChange={(e): void => {
660
+ const current = getValidation(field);
661
+ const next = cleanValidation({ ...current, pattern: e.target.value });
662
+ onUpdateField(updateFieldValidation(field, next));
663
+ }}
664
+ value={String(getValidation(field).pattern || '')}
665
+ />
666
+ </Box>
667
+
668
+ <Box>
669
+ <Typo variant="caption">message</Typo>
670
+ <TextField.Root
671
+ disabled={readonly}
672
+ onChange={(e): void => {
673
+ const current = getValidation(field);
674
+ const next = cleanValidation({ ...current, message: e.target.value });
675
+ onUpdateField(updateFieldValidation(field, next));
676
+ }}
677
+ value={String(getValidation(field).message || '')}
678
+ />
679
+ </Box>
680
+ </Flex>
681
+ </Card>
682
+ </Flex>
683
+ )}
684
+ </Flex>
685
+ </Card>
686
+ );
687
+ }
688
+