@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
@@ -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-05-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -79,6 +80,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
79
80
  readonly keywords?: readonly string[] | undefined;
80
81
  }[];
81
82
  };
83
+ readonly validations?: readonly {
84
+ readonly message: readonly [{
85
+ readonly locale: "zh";
86
+ readonly message: string;
87
+ }, ...{
88
+ readonly locale: "en" | "ja" | "ko";
89
+ readonly message: string;
90
+ }[]];
91
+ readonly warning?: boolean | undefined;
92
+ readonly when: string;
93
+ }[] | undefined;
82
94
  }) => any;
83
95
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
84
96
  "onUpdate:modelValue"?: ((value: {
@@ -100,6 +112,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
100
112
  readonly locale: "en" | "ja" | "ko";
101
113
  readonly message: string;
102
114
  }[]] | undefined;
115
+ readonly required?: string | undefined;
103
116
  readonly displayName?: string | undefined;
104
117
  readonly compatibilityDate: "2026-05-28";
105
118
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -157,6 +170,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
157
170
  readonly keywords?: readonly string[] | undefined;
158
171
  }[];
159
172
  };
173
+ readonly validations?: readonly {
174
+ readonly message: readonly [{
175
+ readonly locale: "zh";
176
+ readonly message: string;
177
+ }, ...{
178
+ readonly locale: "en" | "ja" | "ko";
179
+ readonly message: string;
180
+ }[]];
181
+ readonly warning?: boolean | undefined;
182
+ readonly when: string;
183
+ }[] | undefined;
160
184
  }) => any) | undefined;
161
185
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
162
186
  declare const _default: typeof __VLS_export;
@@ -5,6 +5,7 @@ import { Button } from "../../../../ui/button";
5
5
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../../../../ui/dropdown-menu";
6
6
  import { ExpressionEditor } from "../../../../ui/expression-editor";
7
7
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
8
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
8
9
  import { Field, FieldLabel } from "../../../../ui/field";
9
10
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupNumberField } from "../../../../ui/input-group";
10
11
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -662,6 +663,26 @@ function setItemKeywords(index, text) {
662
663
  </Field>
663
664
 
664
665
  <div class="grid grid-cols-3 gap-3">
666
+ <Field orientation="vertical">
667
+ <FieldLabel class="text-xs text-zinc-500">
668
+ <template #tooltip>
669
+ <Markdown
670
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
671
+ block
672
+ class="prose prose-sm prose-zinc"
673
+ />
674
+ </template>
675
+ {{ fieldTitle("required") }}
676
+ </FieldLabel>
677
+ <ExpressionEditor
678
+ :model-value="value.required ?? ''"
679
+ placeholder="例:form.type == 'company'"
680
+ result-type="bool"
681
+ class="min-h-10"
682
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
683
+ />
684
+ </Field>
685
+
665
686
  <Field orientation="vertical">
666
687
  <FieldLabel class="text-xs text-zinc-500">
667
688
  <template #tooltip>
@@ -741,5 +762,22 @@ function setItemKeywords(index, text) {
741
762
  @update:model-value="(v) => value = { ...value, derived: v }"
742
763
  />
743
764
  </Field>
765
+
766
+ <Field orientation="vertical">
767
+ <FieldLabel class="text-xs text-zinc-500">
768
+ <template #tooltip>
769
+ <Markdown
770
+ :source="fieldDescription('validations')"
771
+ block
772
+ class="prose prose-sm prose-zinc"
773
+ />
774
+ </template>
775
+ {{ fieldTitle("validations") }}
776
+ </FieldLabel>
777
+ <ValidationRulesField
778
+ :model-value="value.validations"
779
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
780
+ />
781
+ </Field>
744
782
  </div>
745
783
  </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-05-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -79,6 +80,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
79
80
  readonly keywords?: readonly string[] | undefined;
80
81
  }[];
81
82
  };
83
+ readonly validations?: readonly {
84
+ readonly message: readonly [{
85
+ readonly locale: "zh";
86
+ readonly message: string;
87
+ }, ...{
88
+ readonly locale: "en" | "ja" | "ko";
89
+ readonly message: string;
90
+ }[]];
91
+ readonly warning?: boolean | undefined;
92
+ readonly when: string;
93
+ }[] | undefined;
82
94
  }) => any;
83
95
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
84
96
  "onUpdate:modelValue"?: ((value: {
@@ -100,6 +112,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
100
112
  readonly locale: "en" | "ja" | "ko";
101
113
  readonly message: string;
102
114
  }[]] | undefined;
115
+ readonly required?: string | undefined;
103
116
  readonly displayName?: string | undefined;
104
117
  readonly compatibilityDate: "2026-05-28";
105
118
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -157,6 +170,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
157
170
  readonly keywords?: readonly string[] | undefined;
158
171
  }[];
159
172
  };
173
+ readonly validations?: readonly {
174
+ readonly message: readonly [{
175
+ readonly locale: "zh";
176
+ readonly message: string;
177
+ }, ...{
178
+ readonly locale: "en" | "ja" | "ko";
179
+ readonly message: string;
180
+ }[]];
181
+ readonly warning?: boolean | undefined;
182
+ readonly when: string;
183
+ }[] | undefined;
160
184
  }) => any) | undefined;
161
185
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
162
186
  declare const _default: typeof __VLS_export;
@@ -17,13 +17,14 @@ import {
17
17
  CommandItem,
18
18
  CommandList
19
19
  } from "../../../../ui/command";
20
- import { Field, FieldLabel } from "../../../../ui/field";
20
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
21
21
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
22
22
  import { Markdown } from "../../../../ui/markdown";
23
23
  import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
24
24
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
25
25
  import { useFormReadonly } from "../../../utils/readonly";
26
26
  import { useFormState } from "../../../utils/state";
27
+ import { useFieldValidation } from "../../../utils/validation";
27
28
  defineOptions({ name: "ShwfedComboboxSingleFieldRuntime" });
28
29
  const props = defineProps({
29
30
  fieldId: { type: String, required: true },
@@ -77,6 +78,12 @@ const isReadonly = computed(
77
78
  () => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
78
79
  );
79
80
  const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
81
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
82
+ fieldId: () => props.fieldId,
83
+ config: () => props.config,
84
+ $cel,
85
+ locale: () => locale.value
86
+ });
80
87
  const isStatic = computed(() => props.config.options.kind === "static");
81
88
  function safeInterpolate(tpl, ctx) {
82
89
  try {
@@ -287,7 +294,11 @@ const anyHasTooltip = computed(
287
294
  class="prose prose-xs prose-zinc"
288
295
  />
289
296
  </template>
290
- {{ labelText }}
297
+ {{ labelText }}<span
298
+ v-if="isRequired"
299
+ aria-hidden="true"
300
+ class="text-red-600"
301
+ > *</span>
291
302
  </FieldLabel>
292
303
  <div
293
304
  v-if="effectiveReadonly"
@@ -398,5 +409,10 @@ const anyHasTooltip = computed(
398
409
  </Command>
399
410
  </PopoverContent>
400
411
  </Popover>
412
+ <FieldMessages
413
+ v-if="visible"
414
+ :errors="errors"
415
+ :warnings="warnings"
416
+ />
401
417
  </Field>
402
418
  </template>
@@ -255,6 +255,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
255
255
  id: Schema.refine<string, typeof Schema.String>;
256
256
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
257
257
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
258
+ required: Schema.optional<Schema.Schema<string, string, never>>;
259
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
260
+ when: Schema.Schema<string, string, never>;
261
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
262
+ message: Schema.refine<readonly [{
263
+ readonly locale: "zh";
264
+ readonly message: string;
265
+ }, ...{
266
+ readonly locale: "en" | "ja" | "ko";
267
+ readonly message: string;
268
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
269
+ locale: Schema.Literal<["zh"]>;
270
+ message: Schema.SchemaClass<string, string, never>;
271
+ }>], [Schema.Struct<{
272
+ locale: Schema.Literal<["ja", "en", "ko"]>;
273
+ message: Schema.SchemaClass<string, string, never>;
274
+ }>]>>;
275
+ }>>>;
258
276
  type: Schema.Literal<["com.shwfed.form.field.combobox.single"]>;
259
277
  compatibilityDate: Schema.Literal<["2026-05-28"]>;
260
278
  }>;
@@ -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-05-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -54,6 +55,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
54
55
  }[]];
55
56
  readonly expandAll: boolean;
56
57
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
58
+ readonly validations?: readonly {
59
+ readonly message: readonly [{
60
+ readonly locale: "zh";
61
+ readonly message: string;
62
+ }, ...{
63
+ readonly locale: "en" | "ja" | "ko";
64
+ readonly message: string;
65
+ }[]];
66
+ readonly warning?: boolean | undefined;
67
+ readonly when: string;
68
+ }[] | undefined;
57
69
  readonly nodeTooltip?: readonly [{
58
70
  readonly locale: "zh";
59
71
  readonly message: string;
@@ -83,6 +95,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
83
95
  readonly locale: "en" | "ja" | "ko";
84
96
  readonly message: string;
85
97
  }[]] | undefined;
98
+ readonly required?: string | undefined;
86
99
  readonly displayName?: string | undefined;
87
100
  readonly compatibilityDate: "2026-05-28";
88
101
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -115,6 +128,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
115
128
  }[]];
116
129
  readonly expandAll: boolean;
117
130
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
131
+ readonly validations?: readonly {
132
+ readonly message: readonly [{
133
+ readonly locale: "zh";
134
+ readonly message: string;
135
+ }, ...{
136
+ readonly locale: "en" | "ja" | "ko";
137
+ readonly message: string;
138
+ }[]];
139
+ readonly warning?: boolean | undefined;
140
+ readonly when: string;
141
+ }[] | undefined;
118
142
  readonly nodeTooltip?: readonly [{
119
143
  readonly locale: "zh";
120
144
  readonly message: string;
@@ -2,6 +2,7 @@
2
2
  import { computed, ref, watch } from "vue";
3
3
  import { ExpressionEditor } from "../../../../ui/expression-editor";
4
4
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
5
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
5
6
  import { Field, FieldLabel } from "../../../../ui/field";
6
7
  import { InputGroup, InputGroupInput } from "../../../../ui/input-group";
7
8
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -535,6 +536,26 @@ function setOptionalExpression(key, next) {
535
536
 
536
537
  <!-- 通用: 隐藏 / 禁用 / 只读 + 派生值 -->
537
538
  <div class="grid grid-cols-3 gap-3">
539
+ <Field orientation="vertical">
540
+ <FieldLabel class="text-xs text-zinc-500">
541
+ <template #tooltip>
542
+ <Markdown
543
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
544
+ block
545
+ class="prose prose-sm prose-zinc"
546
+ />
547
+ </template>
548
+ {{ fieldTitle("required") }}
549
+ </FieldLabel>
550
+ <ExpressionEditor
551
+ :model-value="value.required ?? ''"
552
+ placeholder="例:form.type == 'company'"
553
+ result-type="bool"
554
+ class="min-h-10"
555
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
556
+ />
557
+ </Field>
558
+
538
559
  <Field orientation="vertical">
539
560
  <FieldLabel class="text-xs text-zinc-500">
540
561
  <template #tooltip>
@@ -614,5 +635,22 @@ function setOptionalExpression(key, next) {
614
635
  @update:model-value="(v) => value = { ...value, derived: v }"
615
636
  />
616
637
  </Field>
638
+
639
+ <Field orientation="vertical">
640
+ <FieldLabel class="text-xs text-zinc-500">
641
+ <template #tooltip>
642
+ <Markdown
643
+ :source="fieldDescription('validations')"
644
+ block
645
+ class="prose prose-sm prose-zinc"
646
+ />
647
+ </template>
648
+ {{ fieldTitle("validations") }}
649
+ </FieldLabel>
650
+ <ValidationRulesField
651
+ :model-value="value.validations"
652
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
653
+ />
654
+ </Field>
617
655
  </div>
618
656
  </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-05-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -54,6 +55,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
54
55
  }[]];
55
56
  readonly expandAll: boolean;
56
57
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
58
+ readonly validations?: readonly {
59
+ readonly message: readonly [{
60
+ readonly locale: "zh";
61
+ readonly message: string;
62
+ }, ...{
63
+ readonly locale: "en" | "ja" | "ko";
64
+ readonly message: string;
65
+ }[]];
66
+ readonly warning?: boolean | undefined;
67
+ readonly when: string;
68
+ }[] | undefined;
57
69
  readonly nodeTooltip?: readonly [{
58
70
  readonly locale: "zh";
59
71
  readonly message: string;
@@ -83,6 +95,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
83
95
  readonly locale: "en" | "ja" | "ko";
84
96
  readonly message: string;
85
97
  }[]] | undefined;
98
+ readonly required?: string | undefined;
86
99
  readonly displayName?: string | undefined;
87
100
  readonly compatibilityDate: "2026-05-28";
88
101
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -115,6 +128,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
115
128
  }[]];
116
129
  readonly expandAll: boolean;
117
130
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
131
+ readonly validations?: readonly {
132
+ readonly message: readonly [{
133
+ readonly locale: "zh";
134
+ readonly message: string;
135
+ }, ...{
136
+ readonly locale: "en" | "ja" | "ko";
137
+ readonly message: string;
138
+ }[]];
139
+ readonly warning?: boolean | undefined;
140
+ readonly when: string;
141
+ }[] | undefined;
118
142
  readonly nodeTooltip?: readonly [{
119
143
  readonly locale: "zh";
120
144
  readonly message: string;
@@ -7,7 +7,7 @@ import { useI18n } from "vue-i18n";
7
7
  import { cel as _rawCel } from "../../../../../utils/cel";
8
8
  import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
9
9
  import { getLocalizedText } from "../../../../../share/locale";
10
- import { Field, FieldLabel } from "../../../../ui/field";
10
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
11
11
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
12
12
  import { Markdown } from "../../../../ui/markdown";
13
13
  import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
@@ -17,6 +17,7 @@ import { interpolateMarkdown } from "../../../../table/utils/runtime";
17
17
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
18
18
  import { useFormReadonly } from "../../../utils/readonly";
19
19
  import { useFormState } from "../../../utils/state";
20
+ import { useFieldValidation } from "../../../utils/validation";
20
21
  import {
21
22
  findWrappedPath,
22
23
  getWrappedChildren,
@@ -84,6 +85,12 @@ const isReadonly = computed(
84
85
  () => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
85
86
  );
86
87
  const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
88
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
89
+ fieldId: () => props.fieldId,
90
+ config: () => props.config,
91
+ $cel,
92
+ locale: () => locale.value
93
+ });
87
94
  const uncontrolled = ref([]);
88
95
  const model = computed({
89
96
  get: () => {
@@ -334,7 +341,11 @@ const hoveredTooltip = computed(() => {
334
341
  class="prose prose-xs prose-zinc"
335
342
  />
336
343
  </template>
337
- {{ labelText }}
344
+ {{ labelText }}<span
345
+ v-if="isRequired"
346
+ aria-hidden="true"
347
+ class="text-red-600"
348
+ > *</span>
338
349
  </FieldLabel>
339
350
 
340
351
  <div
@@ -497,5 +508,10 @@ const hoveredTooltip = computed(() => {
497
508
  </div>
498
509
  </PopoverContent>
499
510
  </Popover>
511
+ <FieldMessages
512
+ v-if="visible"
513
+ :errors="errors"
514
+ :warnings="warnings"
515
+ />
500
516
  </Field>
501
517
  </template>
@@ -90,6 +90,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
90
90
  id: Schema.refine<string, typeof Schema.String>;
91
91
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
92
92
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
93
+ required: Schema.optional<Schema.Schema<string, string, never>>;
94
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
95
+ when: Schema.Schema<string, string, never>;
96
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
97
+ message: Schema.refine<readonly [{
98
+ readonly locale: "zh";
99
+ readonly message: string;
100
+ }, ...{
101
+ readonly locale: "en" | "ja" | "ko";
102
+ readonly message: string;
103
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
104
+ locale: Schema.Literal<["zh"]>;
105
+ message: Schema.SchemaClass<string, string, never>;
106
+ }>], [Schema.Struct<{
107
+ locale: Schema.Literal<["ja", "en", "ko"]>;
108
+ message: Schema.SchemaClass<string, string, never>;
109
+ }>]>>;
110
+ }>>>;
93
111
  type: Schema.Literal<["com.shwfed.form.field.tree.combobox.multi"]>;
94
112
  compatibilityDate: Schema.Literal<["2026-05-28"]>;
95
113
  }>;
@@ -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-05-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -53,6 +54,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
53
54
  readonly message: string;
54
55
  }[]];
55
56
  readonly expandAll: boolean;
57
+ readonly validations?: readonly {
58
+ readonly message: readonly [{
59
+ readonly locale: "zh";
60
+ readonly message: string;
61
+ }, ...{
62
+ readonly locale: "en" | "ja" | "ko";
63
+ readonly message: string;
64
+ }[]];
65
+ readonly warning?: boolean | undefined;
66
+ readonly when: string;
67
+ }[] | undefined;
56
68
  readonly nodeTooltip?: readonly [{
57
69
  readonly locale: "zh";
58
70
  readonly message: string;
@@ -82,6 +94,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
82
94
  readonly locale: "en" | "ja" | "ko";
83
95
  readonly message: string;
84
96
  }[]] | undefined;
97
+ readonly required?: string | undefined;
85
98
  readonly displayName?: string | undefined;
86
99
  readonly compatibilityDate: "2026-05-28";
87
100
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -113,6 +126,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
113
126
  readonly message: string;
114
127
  }[]];
115
128
  readonly expandAll: boolean;
129
+ readonly validations?: readonly {
130
+ readonly message: readonly [{
131
+ readonly locale: "zh";
132
+ readonly message: string;
133
+ }, ...{
134
+ readonly locale: "en" | "ja" | "ko";
135
+ readonly message: string;
136
+ }[]];
137
+ readonly warning?: boolean | undefined;
138
+ readonly when: string;
139
+ }[] | undefined;
116
140
  readonly nodeTooltip?: readonly [{
117
141
  readonly locale: "zh";
118
142
  readonly message: string;
@@ -2,6 +2,7 @@
2
2
  import { computed } from "vue";
3
3
  import { ExpressionEditor } from "../../../../ui/expression-editor";
4
4
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
5
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
5
6
  import { Field, FieldLabel } from "../../../../ui/field";
6
7
  import { InputGroup, InputGroupInput } from "../../../../ui/input-group";
7
8
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -467,6 +468,26 @@ function setOptionalExpression(key, next) {
467
468
 
468
469
  <!-- 通用: 隐藏 / 禁用 / 只读 + 派生值 -->
469
470
  <div class="grid grid-cols-3 gap-3">
471
+ <Field orientation="vertical">
472
+ <FieldLabel class="text-xs text-zinc-500">
473
+ <template #tooltip>
474
+ <Markdown
475
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
476
+ block
477
+ class="prose prose-sm prose-zinc"
478
+ />
479
+ </template>
480
+ {{ fieldTitle("required") }}
481
+ </FieldLabel>
482
+ <ExpressionEditor
483
+ :model-value="value.required ?? ''"
484
+ placeholder="例:form.type == 'company'"
485
+ result-type="bool"
486
+ class="min-h-10"
487
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
488
+ />
489
+ </Field>
490
+
470
491
  <Field orientation="vertical">
471
492
  <FieldLabel class="text-xs text-zinc-500">
472
493
  <template #tooltip>
@@ -546,5 +567,22 @@ function setOptionalExpression(key, next) {
546
567
  @update:model-value="(v) => value = { ...value, derived: v }"
547
568
  />
548
569
  </Field>
570
+
571
+ <Field orientation="vertical">
572
+ <FieldLabel class="text-xs text-zinc-500">
573
+ <template #tooltip>
574
+ <Markdown
575
+ :source="fieldDescription('validations')"
576
+ block
577
+ class="prose prose-sm prose-zinc"
578
+ />
579
+ </template>
580
+ {{ fieldTitle("validations") }}
581
+ </FieldLabel>
582
+ <ValidationRulesField
583
+ :model-value="value.validations"
584
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
585
+ />
586
+ </Field>
549
587
  </div>
550
588
  </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-05-28";
27
28
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -53,6 +54,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
53
54
  readonly message: string;
54
55
  }[]];
55
56
  readonly expandAll: boolean;
57
+ readonly validations?: readonly {
58
+ readonly message: readonly [{
59
+ readonly locale: "zh";
60
+ readonly message: string;
61
+ }, ...{
62
+ readonly locale: "en" | "ja" | "ko";
63
+ readonly message: string;
64
+ }[]];
65
+ readonly warning?: boolean | undefined;
66
+ readonly when: string;
67
+ }[] | undefined;
56
68
  readonly nodeTooltip?: readonly [{
57
69
  readonly locale: "zh";
58
70
  readonly message: string;
@@ -82,6 +94,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
82
94
  readonly locale: "en" | "ja" | "ko";
83
95
  readonly message: string;
84
96
  }[]] | undefined;
97
+ readonly required?: string | undefined;
85
98
  readonly displayName?: string | undefined;
86
99
  readonly compatibilityDate: "2026-05-28";
87
100
  readonly orientation?: "vertical" | "floating" | undefined;
@@ -113,6 +126,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
113
126
  readonly message: string;
114
127
  }[]];
115
128
  readonly expandAll: boolean;
129
+ readonly validations?: readonly {
130
+ readonly message: readonly [{
131
+ readonly locale: "zh";
132
+ readonly message: string;
133
+ }, ...{
134
+ readonly locale: "en" | "ja" | "ko";
135
+ readonly message: string;
136
+ }[]];
137
+ readonly warning?: boolean | undefined;
138
+ readonly when: string;
139
+ }[] | undefined;
116
140
  readonly nodeTooltip?: readonly [{
117
141
  readonly locale: "zh";
118
142
  readonly message: string;