@shwfed/config 2.3.29 → 2.4.1

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 (236) hide show
  1. package/dist/mcp.mjs +47 -9
  2. package/dist/module.json +1 -1
  3. package/dist/preview/assets/{config-Diuyh0Ex.js → config-BovRv7Mw.js} +1 -1
  4. package/dist/preview/assets/{config-rpX_Mc6I.js → config-ByTxMBcK.js} +1 -1
  5. package/dist/preview/assets/{config-DhsbcNzx.js → config-C7xYpB3N.js} +1 -1
  6. package/dist/preview/assets/{config-CZOeZ8ty.js → config-CH9wsYX8.js} +1 -1
  7. package/dist/preview/assets/{config-aK67Rsw5.js → config-Ch5dL5lp.js} +1 -1
  8. package/dist/preview/assets/{config-Bl80ye-i.js → config-D50Rl2n_.js} +1 -1
  9. package/dist/preview/assets/{config-BJzUh1_G.js → config-DiwVK32V.js} +1 -1
  10. package/dist/preview/assets/{config-6IiXCmyu.js → config-EKVeWrbS.js} +1 -1
  11. package/dist/preview/assets/{config-DaZD4ZSa.js → config-Q86AhjHq.js} +1 -1
  12. package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-C_jU8d47.js → definition.vue_vue_type_script_setup_true_lang-D8NPPbjZ.js} +1 -1
  13. package/dist/preview/assets/index-65eB1l4r.css +1 -0
  14. package/dist/preview/assets/index-CIrlYN0M.js +1 -0
  15. package/dist/preview/assets/index-DUDlWaQI.js +661 -0
  16. package/dist/preview/assets/runtime-BP7zXnyG.js +1 -0
  17. package/dist/preview/assets/runtime-BQSwNpLC.js +1 -0
  18. package/dist/preview/assets/runtime-BwR_BbTu.js +1 -0
  19. package/dist/preview/assets/runtime-Ch3JIgUQ.js +1 -0
  20. package/dist/preview/assets/runtime-CjvZcU7X.js +1 -0
  21. package/dist/preview/assets/runtime-Cunk4vOs.js +1 -0
  22. package/dist/preview/assets/runtime-D34aQN00.js +1 -0
  23. package/dist/preview/assets/runtime-a9TOQRwD.js +1 -0
  24. package/dist/preview/assets/runtime-aPt-bW3F.js +1 -0
  25. package/dist/preview/index.html +2 -2
  26. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/runtime.vue +7 -4
  27. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/runtime.vue +6 -0
  28. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts +2 -0
  29. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts +2 -0
  30. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts +2 -0
  31. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts +2 -0
  32. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/schema.d.ts +2 -0
  33. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +2 -0
  34. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +2 -0
  35. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +2 -0
  36. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +2 -0
  37. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +3 -0
  38. package/dist/runtime/components/form/ValidationRulesField.d.vue.ts +16 -0
  39. package/dist/runtime/components/form/ValidationRulesField.vue +207 -0
  40. package/dist/runtime/components/form/ValidationRulesField.vue.d.ts +16 -0
  41. package/dist/runtime/components/form/config.vue +32 -0
  42. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.d.vue.ts +24 -0
  43. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.vue.d.ts +24 -0
  44. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.d.ts +18 -0
  45. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +24 -0
  46. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue +38 -0
  47. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +24 -0
  48. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +18 -2
  49. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.d.ts +18 -0
  50. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.d.vue.ts +24 -0
  51. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue +38 -0
  52. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue.d.ts +24 -0
  53. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +18 -2
  54. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.d.ts +18 -0
  55. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.d.vue.ts +24 -0
  56. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue.d.ts +24 -0
  57. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts +18 -0
  58. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  59. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  60. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  61. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +24 -0
  62. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue +38 -0
  63. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +24 -0
  64. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +18 -2
  65. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.d.ts +18 -0
  66. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +24 -0
  67. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue +38 -0
  68. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +24 -0
  69. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +18 -2
  70. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.d.ts +18 -0
  71. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +24 -0
  72. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue +38 -0
  73. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +24 -0
  74. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +18 -2
  75. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.d.ts +18 -0
  76. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +24 -0
  77. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue +38 -0
  78. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +24 -0
  79. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +18 -2
  80. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.d.ts +18 -0
  81. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +24 -0
  82. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue +38 -0
  83. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +24 -0
  84. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +18 -2
  85. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.d.ts +18 -0
  86. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +24 -0
  87. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue +38 -0
  88. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +24 -0
  89. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +18 -2
  90. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.d.ts +18 -0
  91. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +24 -0
  92. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +38 -0
  93. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +24 -0
  94. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +18 -2
  95. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +18 -0
  96. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +24 -0
  97. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue +38 -0
  98. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +24 -0
  99. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +18 -2
  100. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.d.ts +18 -0
  101. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +24 -0
  102. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue +38 -0
  103. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +24 -0
  104. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +18 -2
  105. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.d.ts +18 -0
  106. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  107. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  108. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  109. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.d.vue.ts +24 -0
  110. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue +38 -0
  111. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue.d.ts +24 -0
  112. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +18 -2
  113. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/schema.d.ts +18 -0
  114. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +24 -0
  115. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue +38 -0
  116. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +24 -0
  117. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +18 -2
  118. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.d.ts +18 -0
  119. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.d.vue.ts +24 -0
  120. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue +38 -0
  121. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue.d.ts +24 -0
  122. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +18 -2
  123. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.d.ts +30 -0
  124. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.d.vue.ts +24 -0
  125. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue +38 -0
  126. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue.d.ts +24 -0
  127. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +18 -2
  128. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.d.ts +18 -0
  129. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.d.vue.ts +24 -0
  130. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue +38 -0
  131. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue.d.ts +24 -0
  132. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +18 -2
  133. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.d.ts +18 -0
  134. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.d.vue.ts +24 -0
  135. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue +51 -9
  136. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue.d.ts +24 -0
  137. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/runtime.vue +22 -2
  138. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/schema.d.ts +18 -0
  139. package/dist/runtime/components/form/fields/2026-05-20/com.shwfed.form.field.collapsible/runtime.vue +26 -0
  140. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
  141. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
  142. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
  143. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.d.vue.ts +24 -0
  144. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue +38 -0
  145. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue.d.ts +24 -0
  146. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/runtime.vue +18 -2
  147. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/schema.d.ts +18 -0
  148. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +24 -0
  149. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue +38 -0
  150. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +24 -0
  151. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/runtime.vue +18 -2
  152. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/schema.d.ts +18 -0
  153. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
  154. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
  155. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
  156. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
  157. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
  158. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
  159. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
  160. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
  161. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
  162. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
  163. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue +38 -0
  164. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
  165. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +18 -2
  166. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
  167. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  168. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue +38 -0
  169. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  170. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +18 -2
  171. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  172. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
  173. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue +38 -0
  174. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
  175. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +18 -2
  176. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
  177. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
  178. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue +38 -0
  179. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
  180. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +18 -2
  181. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
  182. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
  183. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue +38 -0
  184. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
  185. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +18 -2
  186. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
  187. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +24 -0
  188. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue +38 -0
  189. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +24 -0
  190. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +18 -2
  191. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.d.ts +18 -0
  192. package/dist/runtime/components/form/index.d.vue.ts +1 -0
  193. package/dist/runtime/components/form/index.vue +16 -5
  194. package/dist/runtime/components/form/index.vue.d.ts +1 -0
  195. package/dist/runtime/components/form/schema.d.ts +4 -0
  196. package/dist/runtime/components/form/schema.js +6 -2
  197. package/dist/runtime/components/form/utils/common.d.ts +42 -0
  198. package/dist/runtime/components/form/utils/common.js +40 -2
  199. package/dist/runtime/components/form/utils/validation.d.ts +85 -0
  200. package/dist/runtime/components/form/utils/validation.js +113 -0
  201. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/config.vue +0 -22
  202. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/header.vue +3 -15
  203. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/schema.d.ts +0 -1
  204. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/schema.js +0 -4
  205. package/dist/runtime/components/table/config.d.vue.ts +4 -2
  206. package/dist/runtime/components/table/config.vue +59 -52
  207. package/dist/runtime/components/table/config.vue.d.ts +4 -2
  208. package/dist/runtime/components/table/schema.d.ts +4 -0
  209. package/dist/runtime/components/table/utils/shared.js +2 -2
  210. package/dist/runtime/components/ui/field/FieldError.vue +1 -1
  211. package/dist/runtime/components/ui/field/FieldMessages.d.vue.ts +9 -0
  212. package/dist/runtime/components/ui/field/FieldMessages.vue +21 -0
  213. package/dist/runtime/components/ui/field/FieldMessages.vue.d.ts +9 -0
  214. package/dist/runtime/components/ui/field/FieldWarning.d.vue.ts +20 -0
  215. package/dist/runtime/components/ui/field/FieldWarning.vue +51 -0
  216. package/dist/runtime/components/ui/field/FieldWarning.vue.d.ts +20 -0
  217. package/dist/runtime/components/ui/field/index.d.ts +2 -0
  218. package/dist/runtime/components/ui/field/index.js +10 -4
  219. package/dist/runtime/components/ui/locale/Locale.d.vue.ts +2 -0
  220. package/dist/runtime/components/ui/locale/Locale.vue +165 -155
  221. package/dist/runtime/components/ui/locale/Locale.vue.d.ts +2 -0
  222. package/dist/runtime/share/form-validate.d.ts +18 -0
  223. package/dist/runtime/share/form-validate.js +8 -0
  224. package/package.json +1 -1
  225. package/dist/preview/assets/index-2eQR4s3q.css +0 -1
  226. package/dist/preview/assets/index-DEF3_MKr.js +0 -659
  227. package/dist/preview/assets/index-Df-thth9.js +0 -1
  228. package/dist/preview/assets/runtime-3p1K6te5.js +0 -1
  229. package/dist/preview/assets/runtime-BcLnafic.js +0 -1
  230. package/dist/preview/assets/runtime-CSaV-359.js +0 -1
  231. package/dist/preview/assets/runtime-CjR8Vi5N.js +0 -1
  232. package/dist/preview/assets/runtime-D_fJCKX_.js +0 -1
  233. package/dist/preview/assets/runtime-DpeCgGEG.js +0 -1
  234. package/dist/preview/assets/runtime-K2a1x0TJ.js +0 -1
  235. package/dist/preview/assets/runtime-g9Zu3VNQ.js +0 -1
  236. package/dist/preview/assets/runtime-jTnh_6Dm.js +0 -1
@@ -6,9 +6,10 @@ import { cel as _rawCel } from "../../../../../utils/cel";
6
6
  import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
7
7
  import { getLocalizedText } from "../../../../../share/locale";
8
8
  import { DatePicker } from "../../../../ui/date-picker";
9
- import { Field, FieldLabel } from "../../../../ui/field";
9
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
10
10
  import { Markdown } from "../../../../ui/markdown";
11
11
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
12
+ import { useFieldValidation } from "../../../utils/validation";
12
13
  import { useFormReadonly } from "../../../utils/readonly";
13
14
  import { useFormState } from "../../../utils/state";
14
15
  defineOptions({ name: "ShwfedTimeFieldRuntime" });
@@ -56,6 +57,12 @@ const model = computed({
56
57
  setAt(path, next);
57
58
  }
58
59
  });
60
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
61
+ fieldId: () => props.fieldId,
62
+ config: () => props.config,
63
+ $cel,
64
+ locale: () => locale.value
65
+ });
59
66
  </script>
60
67
 
61
68
  <template>
@@ -77,7 +84,11 @@ const model = computed({
77
84
  class="prose prose-xs prose-zinc"
78
85
  />
79
86
  </template>
80
- {{ labelText }}
87
+ {{ labelText }}<span
88
+ v-if="isRequired"
89
+ aria-hidden="true"
90
+ class="text-red-600"
91
+ > *</span>
81
92
  </FieldLabel>
82
93
  <div
83
94
  v-if="effectiveReadonly"
@@ -95,5 +106,10 @@ const model = computed({
95
106
  :hour-cycle="config.hourCycle"
96
107
  :disabled="isDisabled"
97
108
  />
109
+ <FieldMessages
110
+ v-if="visible"
111
+ :errors="errors"
112
+ :warnings="warnings"
113
+ />
98
114
  </Field>
99
115
  </template>
@@ -55,6 +55,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
55
55
  id: Schema.refine<string, typeof Schema.String>;
56
56
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
57
57
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
58
+ required: Schema.optional<Schema.Schema<string, string, never>>;
59
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
60
+ when: Schema.Schema<string, string, never>;
61
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
62
+ message: Schema.refine<readonly [{
63
+ readonly locale: "zh";
64
+ readonly message: string;
65
+ }, ...{
66
+ readonly locale: "en" | "ja" | "ko";
67
+ readonly message: string;
68
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
69
+ locale: Schema.Literal<["zh"]>;
70
+ message: Schema.SchemaClass<string, string, never>;
71
+ }>], [Schema.Struct<{
72
+ locale: Schema.Literal<["ja", "en", "ko"]>;
73
+ message: Schema.SchemaClass<string, string, never>;
74
+ }>]>>;
75
+ }>>>;
58
76
  type: Schema.Literal<["com.shwfed.form.field.time"]>;
59
77
  compatibilityDate: Schema.Literal<["2026-04-27"]>;
60
78
  }>;
@@ -22,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
22
22
  readonly locale: "en" | "ja" | "ko";
23
23
  readonly message: string;
24
24
  }[]] | undefined;
25
+ readonly required?: string | undefined;
25
26
  readonly displayName?: string | undefined;
26
27
  readonly compatibilityDate: "2026-04-27";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -35,6 +36,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
35
36
  readonly valueFormat?: string | undefined;
36
37
  readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
37
38
  readonly rangeSeparatorIcon?: string | undefined;
39
+ readonly validations?: readonly {
40
+ readonly message: readonly [{
41
+ readonly locale: "zh";
42
+ readonly message: string;
43
+ }, ...{
44
+ readonly locale: "en" | "ja" | "ko";
45
+ readonly message: string;
46
+ }[]];
47
+ readonly warning?: boolean | undefined;
48
+ readonly when: string;
49
+ }[] | undefined;
38
50
  }) => any;
39
51
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
40
52
  "onUpdate:modelValue"?: ((value: {
@@ -56,6 +68,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
56
68
  readonly locale: "en" | "ja" | "ko";
57
69
  readonly message: string;
58
70
  }[]] | undefined;
71
+ readonly required?: string | undefined;
59
72
  readonly displayName?: string | undefined;
60
73
  readonly compatibilityDate: "2026-04-27";
61
74
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -69,6 +82,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
69
82
  readonly valueFormat?: string | undefined;
70
83
  readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
71
84
  readonly rangeSeparatorIcon?: string | undefined;
85
+ readonly validations?: readonly {
86
+ readonly message: readonly [{
87
+ readonly locale: "zh";
88
+ readonly message: string;
89
+ }, ...{
90
+ readonly locale: "en" | "ja" | "ko";
91
+ readonly message: string;
92
+ }[]];
93
+ readonly warning?: boolean | undefined;
94
+ readonly when: string;
95
+ }[] | undefined;
72
96
  }) => any) | undefined;
73
97
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
74
98
  declare const _default: typeof __VLS_export;
@@ -4,6 +4,7 @@ import { computed } from "vue";
4
4
  import { format as formatDate } from "date-fns";
5
5
  import { ExpressionEditor } from "../../../../ui/expression-editor";
6
6
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
7
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
7
8
  import { Field, FieldLabel } from "../../../../ui/field";
8
9
  import { IconPicker } from "../../../../ui/icon-picker";
9
10
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText } from "../../../../ui/input-group";
@@ -403,6 +404,26 @@ const valueFormatExample = computed(() => {
403
404
  </div>
404
405
 
405
406
  <div class="grid grid-cols-3 gap-3">
407
+ <Field orientation="vertical">
408
+ <FieldLabel class="text-xs text-zinc-500">
409
+ <template #tooltip>
410
+ <Markdown
411
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
412
+ block
413
+ class="prose prose-sm prose-zinc"
414
+ />
415
+ </template>
416
+ {{ fieldTitle("required") }}
417
+ </FieldLabel>
418
+ <ExpressionEditor
419
+ :model-value="value.required ?? ''"
420
+ placeholder="例:form.type == 'company'"
421
+ result-type="bool"
422
+ class="min-h-10"
423
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
424
+ />
425
+ </Field>
426
+
406
427
  <Field orientation="vertical">
407
428
  <FieldLabel class="text-xs text-zinc-500">
408
429
  <template #tooltip>
@@ -482,5 +503,22 @@ const valueFormatExample = computed(() => {
482
503
  @update:model-value="(v) => value = { ...value, derived: v }"
483
504
  />
484
505
  </Field>
506
+
507
+ <Field orientation="vertical">
508
+ <FieldLabel class="text-xs text-zinc-500">
509
+ <template #tooltip>
510
+ <Markdown
511
+ :source="fieldDescription('validations')"
512
+ block
513
+ class="prose prose-sm prose-zinc"
514
+ />
515
+ </template>
516
+ {{ fieldTitle("validations") }}
517
+ </FieldLabel>
518
+ <ValidationRulesField
519
+ :model-value="value.validations"
520
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
521
+ />
522
+ </Field>
485
523
  </div>
486
524
  </template>
@@ -22,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
22
22
  readonly locale: "en" | "ja" | "ko";
23
23
  readonly message: string;
24
24
  }[]] | undefined;
25
+ readonly required?: string | undefined;
25
26
  readonly displayName?: string | undefined;
26
27
  readonly compatibilityDate: "2026-04-27";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -35,6 +36,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
35
36
  readonly valueFormat?: string | undefined;
36
37
  readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
37
38
  readonly rangeSeparatorIcon?: string | undefined;
39
+ readonly validations?: readonly {
40
+ readonly message: readonly [{
41
+ readonly locale: "zh";
42
+ readonly message: string;
43
+ }, ...{
44
+ readonly locale: "en" | "ja" | "ko";
45
+ readonly message: string;
46
+ }[]];
47
+ readonly warning?: boolean | undefined;
48
+ readonly when: string;
49
+ }[] | undefined;
38
50
  }) => any;
39
51
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
40
52
  "onUpdate:modelValue"?: ((value: {
@@ -56,6 +68,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
56
68
  readonly locale: "en" | "ja" | "ko";
57
69
  readonly message: string;
58
70
  }[]] | undefined;
71
+ readonly required?: string | undefined;
59
72
  readonly displayName?: string | undefined;
60
73
  readonly compatibilityDate: "2026-04-27";
61
74
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -69,6 +82,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
69
82
  readonly valueFormat?: string | undefined;
70
83
  readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
71
84
  readonly rangeSeparatorIcon?: string | undefined;
85
+ readonly validations?: readonly {
86
+ readonly message: readonly [{
87
+ readonly locale: "zh";
88
+ readonly message: string;
89
+ }, ...{
90
+ readonly locale: "en" | "ja" | "ko";
91
+ readonly message: string;
92
+ }[]];
93
+ readonly warning?: boolean | undefined;
94
+ readonly when: string;
95
+ }[] | undefined;
72
96
  }) => any) | undefined;
73
97
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
74
98
  declare const _default: typeof __VLS_export;
@@ -6,9 +6,10 @@ import { cel as _rawCel } from "../../../../../utils/cel";
6
6
  import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
7
7
  import { getLocalizedText } from "../../../../../share/locale";
8
8
  import { DateRangePicker } from "../../../../ui/date-range-picker";
9
- import { Field, FieldLabel } from "../../../../ui/field";
9
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
10
10
  import { Markdown } from "../../../../ui/markdown";
11
11
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
12
+ import { useFieldValidation } from "../../../utils/validation";
12
13
  import { useFormReadonly } from "../../../utils/readonly";
13
14
  import { useFormState } from "../../../utils/state";
14
15
  defineOptions({ name: "ShwfedTimeRangeFieldRuntime" });
@@ -74,6 +75,12 @@ const model = computed({
74
75
  setAt(binding[1], next?.[1]);
75
76
  }
76
77
  });
78
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
79
+ fieldId: () => props.fieldId,
80
+ config: () => props.config,
81
+ $cel,
82
+ locale: () => locale.value
83
+ });
77
84
  const readonlyText = computed(() => {
78
85
  const v = model.value;
79
86
  if (!v) return "\u2014";
@@ -100,7 +107,11 @@ const readonlyText = computed(() => {
100
107
  class="prose prose-xs prose-zinc"
101
108
  />
102
109
  </template>
103
- {{ labelText }}
110
+ {{ labelText }}<span
111
+ v-if="isRequired"
112
+ aria-hidden="true"
113
+ class="text-red-600"
114
+ > *</span>
104
115
  </FieldLabel>
105
116
  <div
106
117
  v-if="effectiveReadonly"
@@ -119,5 +130,10 @@ const readonlyText = computed(() => {
119
130
  :hour-cycle="config.hourCycle"
120
131
  :disabled="isDisabled"
121
132
  />
133
+ <FieldMessages
134
+ v-if="visible"
135
+ :errors="errors"
136
+ :warnings="warnings"
137
+ />
122
138
  </Field>
123
139
  </template>
@@ -56,6 +56,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
56
56
  id: Schema.refine<string, typeof Schema.String>;
57
57
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
58
58
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
59
+ required: Schema.optional<Schema.Schema<string, string, never>>;
60
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
61
+ when: Schema.Schema<string, string, never>;
62
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
63
+ message: Schema.refine<readonly [{
64
+ readonly locale: "zh";
65
+ readonly message: string;
66
+ }, ...{
67
+ readonly locale: "en" | "ja" | "ko";
68
+ readonly message: string;
69
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
70
+ locale: Schema.Literal<["zh"]>;
71
+ message: Schema.SchemaClass<string, string, never>;
72
+ }>], [Schema.Struct<{
73
+ locale: Schema.Literal<["ja", "en", "ko"]>;
74
+ message: Schema.SchemaClass<string, string, never>;
75
+ }>]>>;
76
+ }>>>;
59
77
  type: Schema.Literal<["com.shwfed.form.field.timerange"]>;
60
78
  compatibilityDate: Schema.Literal<["2026-04-27"]>;
61
79
  }>;
@@ -22,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
22
22
  readonly locale: "en" | "ja" | "ko";
23
23
  readonly message: string;
24
24
  }[]] | undefined;
25
+ readonly required?: string | undefined;
25
26
  readonly displayName?: string | undefined;
26
27
  readonly compatibilityDate: "2026-04-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -41,6 +42,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
41
42
  readonly mode: "formula" | "prefill";
42
43
  readonly expression: string;
43
44
  } | undefined;
45
+ readonly validations?: readonly {
46
+ readonly message: readonly [{
47
+ readonly locale: "zh";
48
+ readonly message: string;
49
+ }, ...{
50
+ readonly locale: "en" | "ja" | "ko";
51
+ readonly message: string;
52
+ }[]];
53
+ readonly warning?: boolean | undefined;
54
+ readonly when: string;
55
+ }[] | undefined;
44
56
  readonly precision?: number | undefined;
45
57
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
46
58
  readonly valueAsString?: boolean | undefined;
@@ -65,6 +77,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
65
77
  readonly locale: "en" | "ja" | "ko";
66
78
  readonly message: string;
67
79
  }[]] | undefined;
80
+ readonly required?: string | undefined;
68
81
  readonly displayName?: string | undefined;
69
82
  readonly compatibilityDate: "2026-04-28";
70
83
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -84,6 +97,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
84
97
  readonly mode: "formula" | "prefill";
85
98
  readonly expression: string;
86
99
  } | undefined;
100
+ readonly validations?: readonly {
101
+ readonly message: readonly [{
102
+ readonly locale: "zh";
103
+ readonly message: string;
104
+ }, ...{
105
+ readonly locale: "en" | "ja" | "ko";
106
+ readonly message: string;
107
+ }[]];
108
+ readonly warning?: boolean | undefined;
109
+ readonly when: string;
110
+ }[] | undefined;
87
111
  readonly precision?: number | undefined;
88
112
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
89
113
  readonly valueAsString?: boolean | undefined;
@@ -9,6 +9,7 @@ import {
9
9
  } from "../../../../ui/dropdown-menu";
10
10
  import { ExpressionEditor } from "../../../../ui/expression-editor";
11
11
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
12
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
12
13
  import { Field, FieldLabel } from "../../../../ui/field";
13
14
  import {
14
15
  InputGroup,
@@ -374,6 +375,26 @@ function onValueAsStringChange(next) {
374
375
  </div>
375
376
 
376
377
  <div class="grid grid-cols-3 gap-3">
378
+ <Field orientation="vertical">
379
+ <FieldLabel class="text-xs text-zinc-500">
380
+ <template #tooltip>
381
+ <Markdown
382
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
383
+ block
384
+ class="prose prose-sm prose-zinc"
385
+ />
386
+ </template>
387
+ {{ fieldTitle("required") }}
388
+ </FieldLabel>
389
+ <ExpressionEditor
390
+ :model-value="value.required ?? ''"
391
+ placeholder="例:form.type == 'company'"
392
+ result-type="bool"
393
+ class="min-h-10"
394
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
395
+ />
396
+ </Field>
397
+
377
398
  <Field orientation="vertical">
378
399
  <FieldLabel class="text-xs text-zinc-500">
379
400
  <template #tooltip>
@@ -453,5 +474,22 @@ function onValueAsStringChange(next) {
453
474
  @update:model-value="(v) => value = { ...value, derived: v }"
454
475
  />
455
476
  </Field>
477
+
478
+ <Field orientation="vertical">
479
+ <FieldLabel class="text-xs text-zinc-500">
480
+ <template #tooltip>
481
+ <Markdown
482
+ :source="fieldDescription('validations')"
483
+ block
484
+ class="prose prose-sm prose-zinc"
485
+ />
486
+ </template>
487
+ {{ fieldTitle("validations") }}
488
+ </FieldLabel>
489
+ <ValidationRulesField
490
+ :model-value="value.validations"
491
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
492
+ />
493
+ </Field>
456
494
  </div>
457
495
  </template>
@@ -22,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
22
22
  readonly locale: "en" | "ja" | "ko";
23
23
  readonly message: string;
24
24
  }[]] | undefined;
25
+ readonly required?: string | undefined;
25
26
  readonly displayName?: string | undefined;
26
27
  readonly compatibilityDate: "2026-04-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -41,6 +42,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
41
42
  readonly mode: "formula" | "prefill";
42
43
  readonly expression: string;
43
44
  } | undefined;
45
+ readonly validations?: readonly {
46
+ readonly message: readonly [{
47
+ readonly locale: "zh";
48
+ readonly message: string;
49
+ }, ...{
50
+ readonly locale: "en" | "ja" | "ko";
51
+ readonly message: string;
52
+ }[]];
53
+ readonly warning?: boolean | undefined;
54
+ readonly when: string;
55
+ }[] | undefined;
44
56
  readonly precision?: number | undefined;
45
57
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
46
58
  readonly valueAsString?: boolean | undefined;
@@ -65,6 +77,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
65
77
  readonly locale: "en" | "ja" | "ko";
66
78
  readonly message: string;
67
79
  }[]] | undefined;
80
+ readonly required?: string | undefined;
68
81
  readonly displayName?: string | undefined;
69
82
  readonly compatibilityDate: "2026-04-28";
70
83
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -84,6 +97,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
84
97
  readonly mode: "formula" | "prefill";
85
98
  readonly expression: string;
86
99
  } | undefined;
100
+ readonly validations?: readonly {
101
+ readonly message: readonly [{
102
+ readonly locale: "zh";
103
+ readonly message: string;
104
+ }, ...{
105
+ readonly locale: "en" | "ja" | "ko";
106
+ readonly message: string;
107
+ }[]];
108
+ readonly warning?: boolean | undefined;
109
+ readonly when: string;
110
+ }[] | undefined;
87
111
  readonly precision?: number | undefined;
88
112
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
89
113
  readonly valueAsString?: boolean | undefined;
@@ -6,11 +6,12 @@ import { useI18n } from "vue-i18n";
6
6
  import { cel as _rawCel } from "../../../../../utils/cel";
7
7
  import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
8
8
  import { getLocalizedText } from "../../../../../share/locale";
9
- import { Field, FieldLabel } from "../../../../ui/field";
9
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
10
10
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupNumberField } from "../../../../ui/input-group";
11
11
  import { Markdown } from "../../../../ui/markdown";
12
12
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
13
13
  import { useFieldValue } from "../../../utils/field-value";
14
+ import { useFieldValidation } from "../../../utils/validation";
14
15
  import { useFormReadonly } from "../../../utils/readonly";
15
16
  import { useFormState } from "../../../utils/state";
16
17
  defineOptions({ name: "ShwfedNumberFieldRuntime" });
@@ -56,6 +57,12 @@ const isReadonly = computed(
56
57
  const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
57
58
  const minValue = computed(() => evalNumber(props.config.min, "min"));
58
59
  const maxValue = computed(() => evalNumber(props.config.max, "max"));
60
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
61
+ fieldId: () => props.fieldId,
62
+ config: () => props.config,
63
+ $cel,
64
+ locale: () => locale.value
65
+ });
59
66
  const formatOptions = computed(() => ({
60
67
  useGrouping: false,
61
68
  maximumFractionDigits: 20
@@ -124,7 +131,11 @@ async function onBlur() {
124
131
  class="prose prose-xs prose-zinc"
125
132
  />
126
133
  </template>
127
- {{ labelText }}
134
+ {{ labelText }}<span
135
+ v-if="isRequired"
136
+ aria-hidden="true"
137
+ class="text-red-600"
138
+ > *</span>
128
139
  </FieldLabel>
129
140
  <div
130
141
  v-if="effectiveReadonly"
@@ -168,5 +179,10 @@ async function onBlur() {
168
179
  </InputGroupButton>
169
180
  </InputGroupAddon>
170
181
  </InputGroup>
182
+ <FieldMessages
183
+ v-if="visible"
184
+ :errors="errors"
185
+ :warnings="warnings"
186
+ />
171
187
  </Field>
172
188
  </template>
@@ -55,6 +55,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
55
55
  id: Schema.refine<string, typeof Schema.String>;
56
56
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
57
57
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
58
+ required: Schema.optional<Schema.Schema<string, string, never>>;
59
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
60
+ when: Schema.Schema<string, string, never>;
61
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
62
+ message: Schema.refine<readonly [{
63
+ readonly locale: "zh";
64
+ readonly message: string;
65
+ }, ...{
66
+ readonly locale: "en" | "ja" | "ko";
67
+ readonly message: string;
68
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
69
+ locale: Schema.Literal<["zh"]>;
70
+ message: Schema.SchemaClass<string, string, never>;
71
+ }>], [Schema.Struct<{
72
+ locale: Schema.Literal<["ja", "en", "ko"]>;
73
+ message: Schema.SchemaClass<string, string, never>;
74
+ }>]>>;
75
+ }>>>;
58
76
  type: Schema.Literal<["com.shwfed.form.field.number"]>;
59
77
  compatibilityDate: Schema.Literal<["2026-04-28"]>;
60
78
  }>;
@@ -22,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
22
22
  readonly locale: "en" | "ja" | "ko";
23
23
  readonly message: string;
24
24
  }[]] | undefined;
25
+ readonly required?: string | undefined;
25
26
  readonly displayName?: string | undefined;
26
27
  readonly compatibilityDate: "2026-04-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -49,6 +50,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
49
50
  readonly locale: "en" | "ja" | "ko";
50
51
  readonly message: string;
51
52
  }[]] | undefined;
53
+ readonly validations?: readonly {
54
+ readonly message: readonly [{
55
+ readonly locale: "zh";
56
+ readonly message: string;
57
+ }, ...{
58
+ readonly locale: "en" | "ja" | "ko";
59
+ readonly message: string;
60
+ }[]];
61
+ readonly warning?: boolean | undefined;
62
+ readonly when: string;
63
+ }[] | undefined;
52
64
  readonly precision?: number | undefined;
53
65
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
54
66
  readonly valueAsString?: boolean | undefined;
@@ -73,6 +85,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
73
85
  readonly locale: "en" | "ja" | "ko";
74
86
  readonly message: string;
75
87
  }[]] | undefined;
88
+ readonly required?: string | undefined;
76
89
  readonly displayName?: string | undefined;
77
90
  readonly compatibilityDate: "2026-04-28";
78
91
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -100,6 +113,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
100
113
  readonly locale: "en" | "ja" | "ko";
101
114
  readonly message: string;
102
115
  }[]] | undefined;
116
+ readonly validations?: readonly {
117
+ readonly message: readonly [{
118
+ readonly locale: "zh";
119
+ readonly message: string;
120
+ }, ...{
121
+ readonly locale: "en" | "ja" | "ko";
122
+ readonly message: string;
123
+ }[]];
124
+ readonly warning?: boolean | undefined;
125
+ readonly when: string;
126
+ }[] | undefined;
103
127
  readonly precision?: number | undefined;
104
128
  readonly roundingMode?: "round" | "floor" | "ceil" | undefined;
105
129
  readonly valueAsString?: boolean | undefined;
@@ -9,6 +9,7 @@ import {
9
9
  } from "../../../../ui/dropdown-menu";
10
10
  import { ExpressionEditor } from "../../../../ui/expression-editor";
11
11
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
12
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
12
13
  import { Field, FieldLabel } from "../../../../ui/field";
13
14
  import { IconPicker } from "../../../../ui/icon-picker";
14
15
  import {
@@ -502,6 +503,26 @@ function onValueAsStringChange(next) {
502
503
  </div>
503
504
 
504
505
  <div class="grid grid-cols-3 gap-3">
506
+ <Field orientation="vertical">
507
+ <FieldLabel class="text-xs text-zinc-500">
508
+ <template #tooltip>
509
+ <Markdown
510
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
511
+ block
512
+ class="prose prose-sm prose-zinc"
513
+ />
514
+ </template>
515
+ {{ fieldTitle("required") }}
516
+ </FieldLabel>
517
+ <ExpressionEditor
518
+ :model-value="value.required ?? ''"
519
+ placeholder="例:form.type == 'company'"
520
+ result-type="bool"
521
+ class="min-h-10"
522
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
523
+ />
524
+ </Field>
525
+
505
526
  <Field orientation="vertical">
506
527
  <FieldLabel class="text-xs text-zinc-500">
507
528
  <template #tooltip>
@@ -581,5 +602,22 @@ function onValueAsStringChange(next) {
581
602
  @update:model-value="(v) => value = { ...value, derived: v }"
582
603
  />
583
604
  </Field>
605
+
606
+ <Field orientation="vertical">
607
+ <FieldLabel class="text-xs text-zinc-500">
608
+ <template #tooltip>
609
+ <Markdown
610
+ :source="fieldDescription('validations')"
611
+ block
612
+ class="prose prose-sm prose-zinc"
613
+ />
614
+ </template>
615
+ {{ fieldTitle("validations") }}
616
+ </FieldLabel>
617
+ <ValidationRulesField
618
+ :model-value="value.validations"
619
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
620
+ />
621
+ </Field>
584
622
  </div>
585
623
  </template>