@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
@@ -39,8 +39,8 @@ export function FormUnit(configure) {
39
39
  }
40
40
  export function registerFormVariablesIfAbsent(env) {
41
41
  const declared = new Set(env.getDefinitions().variables.map((v) => v.name));
42
- if (!declared.has("now")) env.registerVariable("now", "Date", { description: "\u5F53\u524D\u65E5\u671F/\u65F6\u95F4" });
43
- if (!declared.has("form")) env.registerVariable("form", "dyn", { description: "\u5F53\u524D\u8868\u5355\u72B6\u6001" });
42
+ if (!declared.has("now")) env.registerVariable("now", "Date", { label: "\u5F53\u524D\u65F6\u95F4", description: "\u5F53\u524D\u65E5\u671F/\u65F6\u95F4" });
43
+ if (!declared.has("form")) env.registerVariable("form", "dyn", { label: "\u8868\u5355\u503C", description: "\u5F53\u524D\u8868\u5355\u72B6\u6001" });
44
44
  }
45
45
  export function FormConfig(configure) {
46
46
  const formConfigure = (env) => {
@@ -105,6 +105,10 @@ export function FormConfig(configure) {
105
105
  字段自身的「只读条件」会**覆盖**这里:未配置只读条件的字段跟随本表达式,配置了的以字段自己的结果为准(可在只读表单中单独放开某个字段)。
106
106
  `
107
107
  })),
108
+ style: Schema.optional(Schema.String).annotations({
109
+ title: "\u5BB9\u5668\u6837\u5F0F",
110
+ description: "\u5E94\u7528\u5728\u8868\u5355\u6700\u5916\u5C42\u5BB9\u5668\u4E0A\u7684 CSS \u6837\u5F0F\u5B57\u7B26\u4E32"
111
+ }),
108
112
  ...unitFields(formConfigure)
109
113
  }).pipe(Schema.filter(unitPlacementsFilter)).annotations({
110
114
  title: "FormConfig",
@@ -1,9 +1,51 @@
1
1
  import { Schema } from 'effect';
2
2
  import type { Environment } from '../../../vendor/cel-js/lib/index.js';
3
+ /**
4
+ * One field-owned validation rule. Extracted so the config editor
5
+ * (`ValidationRulesField`) can read the `when` / `message` `@title` +
6
+ * `@description` straight off this struct — single source of truth, no
7
+ * duplicated label/tooltip copy. `configure` only shapes the CEL environment;
8
+ * the annotations are static, so a no-op `configure` is fine for metadata.
9
+ */
10
+ export declare function validationRuleStruct(configure: (env: Environment) => void): Schema.Struct<{
11
+ when: Schema.Schema<string, string, never>;
12
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
13
+ message: Schema.refine<readonly [{
14
+ readonly locale: "zh";
15
+ readonly message: string;
16
+ }, ...{
17
+ readonly locale: "en" | "ja" | "ko";
18
+ readonly message: string;
19
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
20
+ locale: Schema.Literal<["zh"]>;
21
+ message: Schema.SchemaClass<string, string, never>;
22
+ }>], [Schema.Struct<{
23
+ locale: Schema.Literal<["ja", "en", "ko"]>;
24
+ message: Schema.SchemaClass<string, string, never>;
25
+ }>]>>;
26
+ }>;
3
27
  export declare function commonFieldFields(configure: (env: Environment) => void): {
4
28
  id: Schema.refine<string, typeof Schema.String>;
5
29
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
6
30
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
31
+ required: Schema.optional<Schema.Schema<string, string, never>>;
32
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
33
+ when: Schema.Schema<string, string, never>;
34
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
35
+ message: Schema.refine<readonly [{
36
+ readonly locale: "zh";
37
+ readonly message: string;
38
+ }, ...{
39
+ readonly locale: "en" | "ja" | "ko";
40
+ readonly message: string;
41
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
42
+ locale: Schema.Literal<["zh"]>;
43
+ message: Schema.SchemaClass<string, string, never>;
44
+ }>], [Schema.Struct<{
45
+ locale: Schema.Literal<["ja", "en", "ko"]>;
46
+ message: Schema.SchemaClass<string, string, never>;
47
+ }>]>>;
48
+ }>>>;
7
49
  };
8
50
  export declare const FIELD_ORIENTATIONS: readonly ["vertical", "floating"];
9
51
  export type FieldOrientation = typeof FIELD_ORIENTATIONS[number];
@@ -1,6 +1,27 @@
1
1
  import { Schema } from "effect";
2
- import { Expression } from "../../../share/expression.js";
2
+ import { Expression, LocaleMarkdown } from "../../../share/expression.js";
3
3
  import { md } from "../../../share/markdown.js";
4
+ export function validationRuleStruct(configure) {
5
+ const CelBool = Expression({ configure, resultType: "bool" });
6
+ return Schema.Struct({
7
+ when: CelBool.annotations({
8
+ title: "\u89C4\u5219",
9
+ description: md`
10
+ 返回 \`true\` 时视为校验**未**通过,返回 \`false\` 视为通过
11
+ `
12
+ }),
13
+ // Severity toggle. Off (default / absent) ⇒ error: standard blocks submit
14
+ // and reds the field. On ⇒ warning: yellow hint only, never blocks submit.
15
+ warning: Schema.optional(Schema.Boolean.annotations({
16
+ title: "\u4EC5\u8B66\u544A",
17
+ description: "\u5F00\u542F\u540E\u8BE5\u89C4\u5219\u4EC5\u9EC4\u8272\u63D0\u793A\u3001\u4E0D\u963B\u6B62\u63D0\u4EA4"
18
+ })),
19
+ message: LocaleMarkdown({ configure }).annotations({
20
+ title: "\u6D88\u606F",
21
+ description: "\u6821\u9A8C\u672A\u901A\u8FC7\u65F6\u5C55\u793A\u7684\u672C\u5730\u5316\u6D88\u606F\uFF0C\u652F\u6301 inline Markdown \u4E0E `{{ \u8868\u8FBE\u5F0F }}` \u63D2\u503C"
22
+ })
23
+ });
24
+ }
4
25
  export function commonFieldFields(configure) {
5
26
  const CelBool = Expression({ configure, resultType: "bool" });
6
27
  return {
@@ -12,7 +33,24 @@ export function commonFieldFields(configure) {
12
33
  hidden: Schema.optional(CelBool.annotations({
13
34
  title: "\u9690\u85CF\u6761\u4EF6",
14
35
  description: "\u8FD4\u56DE `true` \u65F6\u5B57\u6BB5\u5728\u6240\u6709\u5E03\u5C40\u4E2D\u90FD\u4E0D\u6E32\u67D3"
15
- }))
36
+ })),
37
+ // Required marker + non-empty check share one expression — no drift
38
+ // between the star the user sees and the rule that gates submit.
39
+ required: Schema.optional(CelBool.annotations({
40
+ title: "\u5FC5\u586B\u6761\u4EF6",
41
+ description: "\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A\uFF0C\u7559\u7A7A\u8868\u793A\u4E0D\u5FC5\u586B"
42
+ })),
43
+ // Field-owned rules. `when` returns a bool — `true` triggers the rule; the
44
+ // per-rule `warning` switch picks the severity (error by default, warning
45
+ // when on). The message is a localized Markdown template with `{{ 表达式 }}`
46
+ // interpolation. Cross-field rules read `form.*` and live on the field where
47
+ // the error should appear.
48
+ validations: Schema.optional(
49
+ Schema.Array(validationRuleStruct(configure)).annotations({
50
+ title: "\u6821\u9A8C\u89C4\u5219",
51
+ description: "\u53CD\u9988\u6D88\u606F\u5C06\u6309\u7167\u6821\u9A8C\u89C4\u5219\u5217\u8868\u987A\u5E8F\u5C55\u793A"
52
+ })
53
+ )
16
54
  };
17
55
  }
18
56
  export const FIELD_ORIENTATIONS = ["vertical", "floating"];
@@ -0,0 +1,85 @@
1
+ import { Effect } from 'effect';
2
+ import type { ComputedRef, Ref } from 'vue';
3
+ import { type LocaleValue } from '../../../share/locale.js';
4
+ export type Severity = 'error' | 'warning';
5
+ export type FieldValidationResult = {
6
+ severity: Severity;
7
+ /** Already i18n-resolved and `{{ }}`-interpolated — ready to render. */
8
+ message: string;
9
+ /** Index in the field's `validations[]`; `-1` for the implicit required rule. */
10
+ ruleIndex: number;
11
+ };
12
+ /** The slice of a field's config the validation engine reads. */
13
+ export type ValidatableConfig = {
14
+ required?: string;
15
+ validations?: ReadonlyArray<{
16
+ when: string;
17
+ warning?: boolean;
18
+ message: LocaleValue;
19
+ }>;
20
+ binding?: string | readonly [string, string];
21
+ };
22
+ type Registration = () => ReadonlyArray<FieldValidationResult>;
23
+ export type ValidationProvider = {
24
+ /**
25
+ * Global reveal gate. Errors on a pristine field stay hidden until that
26
+ * field's binding is dirtied (first blur) or `reveal()` flips this true.
27
+ * Once true it never retracts during the form's life — only a full unmount
28
+ * resets it. `undo`/`redo` do not touch it (they roll back state, not the
29
+ * gate).
30
+ */
31
+ revealed: Ref<boolean>;
32
+ reveal: () => void;
33
+ /** Register a mounted field's id + live results thunk; returns an unregister fn. */
34
+ register: (fieldId: () => string, results: Registration) => () => void;
35
+ /**
36
+ * Drain pending drafts, await the seed and derived-value settlement, then
37
+ * read every registered field's results. `true` ⇒ no `error`-severity
38
+ * result anywhere. Always calls `reveal()` so the failing fields surface.
39
+ */
40
+ validate: () => Promise<boolean>;
41
+ /** Union of results across the given field ids — used by collapsible aggregation. */
42
+ resultsFor: (fieldIds: ReadonlyArray<string>) => ReadonlyArray<FieldValidationResult>;
43
+ };
44
+ export type ValidationHost = {
45
+ /** Drain pending field commits (the form's commit bus). */
46
+ flush: () => void;
47
+ /** Resolves once the initial seed has landed. */
48
+ seeded: Promise<void>;
49
+ /** Resolves once every derived value — cascades included — has settled. */
50
+ settled: () => Promise<void>;
51
+ };
52
+ /**
53
+ * Provide the form-wide validation registry. Called once at the top-level form
54
+ * host, after the commit bus / quiescence are available; nested list rows
55
+ * inherit it through `inject`, so every field in the form — at any nesting
56
+ * depth — registers into this single provider.
57
+ */
58
+ export declare function provideValidation(host: ValidationHost): ValidationProvider;
59
+ /**
60
+ * Inject the form's validation provider. Returns `undefined` when used outside
61
+ * a `<Form>` host (e.g. a submit button placed on a bare page) — callers treat
62
+ * that as "no validation".
63
+ */
64
+ export declare function useValidationProvider(): ValidationProvider | undefined;
65
+ /**
66
+ * Field-level validation. Called inside an input field's `runtime.vue`. Reads
67
+ * the field's `required` / `validations` config, evaluates them synchronously
68
+ * against the field's CEL context (`form`, plus a list row's `item`/`index`),
69
+ * registers the live results into the form-wide provider for as long as the
70
+ * field is mounted, and returns the bits the field renders: the required star,
71
+ * the error/warning message lists, and the dirty-gated `visible` flag.
72
+ */
73
+ export declare function useFieldValidation(options: {
74
+ fieldId: () => string;
75
+ config: () => ValidatableConfig;
76
+ $cel: <T>(expression: string, context?: Record<string, unknown>) => Effect.Effect<T, any>;
77
+ /** Current i18n locale, for resolving the message `Locale`. */
78
+ locale: () => string;
79
+ }): {
80
+ isRequired: ComputedRef<boolean>;
81
+ errors: ComputedRef<ReadonlyArray<string>>;
82
+ warnings: ComputedRef<ReadonlyArray<string>>;
83
+ visible: ComputedRef<boolean>;
84
+ };
85
+ export {};
@@ -0,0 +1,113 @@
1
+ import { Effect } from "effect";
2
+ import { computed, inject, nextTick, onScopeDispose, provide, ref } from "vue";
3
+ import { getLocalizedText } from "../../../share/locale.js";
4
+ import { interpolate } from "../../../utils/interpolate.js";
5
+ import { useFormState } from "./state.js";
6
+ const VALIDATION_KEY = Symbol("shwfed-form-validation");
7
+ export function provideValidation(host) {
8
+ const revealed = ref(false);
9
+ const entries = /* @__PURE__ */ new Map();
10
+ function union() {
11
+ const out = [];
12
+ for (const entry of entries.values()) out.push(...entry.results());
13
+ return out;
14
+ }
15
+ const provider = {
16
+ revealed,
17
+ reveal: () => {
18
+ revealed.value = true;
19
+ },
20
+ register: (fieldId, results) => {
21
+ const token = Symbol("field");
22
+ entries.set(token, { fieldId, results });
23
+ return () => {
24
+ entries.delete(token);
25
+ };
26
+ },
27
+ async validate() {
28
+ host.flush();
29
+ await host.seeded;
30
+ await host.settled();
31
+ await nextTick();
32
+ const results = union();
33
+ provider.reveal();
34
+ return results.every((r) => r.severity !== "error");
35
+ },
36
+ resultsFor(fieldIds) {
37
+ const wanted = new Set(fieldIds);
38
+ const out = [];
39
+ for (const entry of entries.values()) {
40
+ if (wanted.has(entry.fieldId())) out.push(...entry.results());
41
+ }
42
+ return out;
43
+ }
44
+ };
45
+ provide(VALIDATION_KEY, provider);
46
+ return provider;
47
+ }
48
+ export function useValidationProvider() {
49
+ return inject(VALIDATION_KEY, void 0);
50
+ }
51
+ const DEFAULT_REQUIRED_MESSAGE = {
52
+ zh: "\u8BF7\u586B\u5199\u6B64\u5B57\u6BB5",
53
+ ja: "\u3053\u306E\u9805\u76EE\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
54
+ en: "Please fill in this field",
55
+ ko: "\uC774 \uD56D\uBAA9\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694"
56
+ };
57
+ function defaultRequiredMessage(locale) {
58
+ return DEFAULT_REQUIRED_MESSAGE[locale] ?? DEFAULT_REQUIRED_MESSAGE.zh;
59
+ }
60
+ function isEmptyValue(value) {
61
+ return value == null || value === "" || Array.isArray(value) && value.length === 0;
62
+ }
63
+ export function useFieldValidation(options) {
64
+ const { getAt, dirty } = useFormState();
65
+ const provider = useValidationProvider();
66
+ function evalBool(expression) {
67
+ if (!expression) return false;
68
+ try {
69
+ return Effect.runSync(options.$cel(expression));
70
+ } catch {
71
+ return false;
72
+ }
73
+ }
74
+ const isRequired = computed(() => evalBool(options.config().required));
75
+ function resolveMessage(message) {
76
+ const template = getLocalizedText(message, options.locale()) ?? "";
77
+ if (!template) return "";
78
+ return interpolate(template, (expression) => {
79
+ try {
80
+ const out = Effect.runSync(options.$cel(expression));
81
+ return out == null ? "" : String(out);
82
+ } catch {
83
+ return "";
84
+ }
85
+ });
86
+ }
87
+ const results = computed(() => {
88
+ const config = options.config();
89
+ const out = [];
90
+ if (typeof config.binding === "string" && isRequired.value && isEmptyValue(getAt(config.binding))) {
91
+ out.push({ severity: "error", message: defaultRequiredMessage(options.locale()), ruleIndex: -1 });
92
+ }
93
+ const rules = config.validations ?? [];
94
+ rules.forEach((rule, ruleIndex) => {
95
+ if (!evalBool(rule.when)) return;
96
+ const severity = rule.warning ? "warning" : "error";
97
+ out.push({ severity, message: resolveMessage(rule.message), ruleIndex });
98
+ });
99
+ return out;
100
+ });
101
+ if (provider) {
102
+ const unregister = provider.register(options.fieldId, () => results.value);
103
+ onScopeDispose(unregister);
104
+ }
105
+ const errors = computed(() => results.value.filter((r) => r.severity === "error").map((r) => r.message));
106
+ const warnings = computed(() => results.value.filter((r) => r.severity === "warning").map((r) => r.message));
107
+ const visible = computed(() => {
108
+ if (provider?.revealed.value) return true;
109
+ const binding = options.config().binding;
110
+ return typeof binding === "string" && dirty.value.has(binding);
111
+ });
112
+ return { isRequired, errors, warnings, visible };
113
+ }
@@ -1,5 +1,4 @@
1
1
  <script setup>
2
- import { Switch } from "../../../../ui/switch";
3
2
  import { Separator } from "../../../../ui/separator";
4
3
  import { Field, FieldLabel } from "../../../../ui/field";
5
4
  import { ExpressionEditor } from "../../../../ui/expression-editor";
@@ -68,27 +67,6 @@ function updateOptionalString(key, next) {
68
67
  </SelectContent>
69
68
  </Select>
70
69
  </Field>
71
- <Field orientation="vertical">
72
- <FieldLabel class="text-xs text-zinc-500">
73
- <template
74
- v-if="fieldDescription('crossPage')"
75
- #tooltip
76
- >
77
- <Markdown
78
- :source="fieldDescription('crossPage')"
79
- block
80
- class="prose prose-sm prose-zinc"
81
- />
82
- </template>
83
- {{ fieldTitle("crossPage") }}
84
- </FieldLabel>
85
- <div class="flex h-9 items-center">
86
- <Switch
87
- :model-value="value.crossPage ?? false"
88
- @update:model-value="(v) => value.crossPage = v"
89
- />
90
- </div>
91
- </Field>
92
70
  </div>
93
71
  <Separator />
94
72
  <div class="grid grid-cols-2 gap-x-6 gap-y-4">
@@ -11,36 +11,24 @@ const { t } = useI18n({
11
11
  inheritLocale: true,
12
12
  messages: {
13
13
  zh: {
14
- "select-all-rows-on-page": "\u9009\u62E9\u5F53\u524D\u9875\u5168\u90E8\u884C",
15
14
  "select-all-rows": "\u9009\u62E9\u5168\u90E8\u884C"
16
15
  },
17
16
  en: {
18
- "select-all-rows-on-page": "Select all rows on page",
19
17
  "select-all-rows": "Select all rows"
20
18
  },
21
19
  ja: {
22
- "select-all-rows-on-page": "\u73FE\u5728\u306E\u30DA\u30FC\u30B8\u306E\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E",
23
20
  "select-all-rows": "\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E"
24
21
  }
25
22
  }
26
23
  });
27
24
  const table = computed(() => props.ctx.table);
28
- const crossPage = computed(() => props.column.crossPage ?? false);
29
25
  const hidden = computed(() => props.column.mode === "radio");
30
- const indeterminate = computed(
31
- () => crossPage.value ? table.value.getIsSomePageRowsSelected() : table.value.getIsSomeRowsSelected()
32
- );
33
- const checked = computed(
34
- () => crossPage.value ? table.value.getIsAllPageRowsSelected() : table.value.getIsAllRowsSelected()
35
- );
26
+ const indeterminate = computed(() => table.value.getIsSomeRowsSelected());
27
+ const checked = computed(() => table.value.getIsAllRowsSelected());
36
28
  const modelValue = computed(
37
29
  () => checked.value ? true : indeterminate.value ? "indeterminate" : false
38
30
  );
39
31
  function onUpdate(value) {
40
- if (crossPage.value) {
41
- table.value.toggleAllPageRowsSelected(value === true);
42
- return;
43
- }
44
32
  table.value.toggleAllRowsSelected(value === true);
45
33
  }
46
34
  </script>
@@ -52,7 +40,7 @@ function onUpdate(value) {
52
40
  >
53
41
  <Checkbox
54
42
  :model-value="modelValue"
55
- :aria-label="crossPage ? t('select-all-rows-on-page') : t('select-all-rows')"
43
+ :aria-label="t('select-all-rows')"
56
44
  class="w-4 h-4 bg-white"
57
45
  @update:model-value="onUpdate"
58
46
  />
@@ -11,7 +11,6 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
11
11
  mode: Schema.optionalWith<Schema.Literal<["radio", "checkbox"]>, {
12
12
  default: () => "checkbox";
13
13
  }>;
14
- crossPage: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
15
14
  enableRowSelection: Schema.optional<Schema.Schema<string, string, never>>;
16
15
  enableMultiRowSelection: Schema.optional<Schema.Schema<string, string, never>>;
17
16
  id: Schema.refine<string, typeof Schema.String>;
@@ -25,10 +25,6 @@ export function schema(configure) {
25
25
  title: "\u6A21\u5F0F",
26
26
  description: "\u9009\u62E9\u6A21\u5F0F\uFF0Cradio \u4E3A\u5355\u9009\uFF0Ccheckbox \u4E3A\u591A\u9009"
27
27
  }), { default: () => "checkbox" }),
28
- crossPage: Schema.optional(Schema.Boolean.annotations({
29
- title: "\u8BB0\u5FC6\u9009\u4E2D\u9879",
30
- description: "\u662F\u5426\u652F\u6301\u8DE8\u9875\u9009\u62E9"
31
- })),
32
28
  enableRowSelection: Schema.optional(CelRowSelectionPredicate).annotations({
33
29
  title: "\u884C\u53EF\u9009\u4E2D",
34
30
  description: "\u884C\u662F\u5426\u53EF\u9009\u4E2D\u7684 CEL \u8868\u8FBE\u5F0F"
@@ -9,9 +9,11 @@ type __VLS_ModelProps = {
9
9
  modelValue: AnyRecord;
10
10
  };
11
11
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
12
- declare var __VLS_219: {};
12
+ declare var __VLS_219: {}, __VLS_221: {};
13
13
  type __VLS_Slots = {} & {
14
- 'general-extra'?: (props: typeof __VLS_219) => any;
14
+ 'general-grid-extra'?: (props: typeof __VLS_219) => any;
15
+ } & {
16
+ 'general-extra'?: (props: typeof __VLS_221) => any;
15
17
  };
16
18
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
19
  "update:modelValue": (value: AnyRecord) => any;
@@ -1263,61 +1263,68 @@ const tableQueryValue = computed({
1263
1263
  v-if="selectedGeneral"
1264
1264
  class="space-y-5"
1265
1265
  >
1266
- <Field
1267
- v-if="!hideDisplayName"
1268
- orientation="vertical"
1269
- >
1270
- <FieldLabel class="text-xs text-zinc-500">
1271
- <template
1272
- v-if="generalFieldDescription('displayName')"
1273
- #tooltip
1274
- >
1275
- <Markdown
1276
- :source="generalFieldDescription('displayName')"
1277
- block
1278
- class="prose prose-sm prose-zinc"
1266
+ <div class="grid grid-cols-2 gap-x-6 gap-y-4">
1267
+ <Field
1268
+ v-if="!hideDisplayName"
1269
+ orientation="vertical"
1270
+ >
1271
+ <FieldLabel class="text-xs text-zinc-500">
1272
+ <template
1273
+ v-if="generalFieldDescription('displayName')"
1274
+ #tooltip
1275
+ >
1276
+ <Markdown
1277
+ :source="generalFieldDescription('displayName')"
1278
+ block
1279
+ class="prose prose-sm prose-zinc"
1280
+ />
1281
+ </template>
1282
+ {{ generalFieldTitle("displayName") }}
1283
+ </FieldLabel>
1284
+ <InputGroup>
1285
+ <InputGroupInput
1286
+ :model-value="editingGeneralConfig.displayName ?? ''"
1287
+ placeholder="例:订单列表"
1288
+ @update:model-value="setGeneralDisplayName"
1279
1289
  />
1280
- </template>
1281
- {{ generalFieldTitle("displayName") }}
1282
- </FieldLabel>
1283
- <InputGroup>
1284
- <InputGroupInput
1285
- :model-value="editingGeneralConfig.displayName ?? ''"
1286
- placeholder="例:订单列表"
1287
- @update:model-value="setGeneralDisplayName"
1288
- />
1289
- </InputGroup>
1290
- </Field>
1290
+ </InputGroup>
1291
+ </Field>
1291
1292
 
1292
- <Field orientation="vertical">
1293
- <FieldLabel class="text-xs text-zinc-500">
1294
- <template
1295
- v-if="generalFieldDescription('rowKey')"
1296
- #tooltip
1297
- >
1298
- <Markdown
1299
- :source="generalFieldDescription('rowKey')"
1300
- block
1301
- class="prose prose-sm prose-zinc"
1293
+ <Field orientation="vertical">
1294
+ <FieldLabel class="text-xs text-zinc-500">
1295
+ <template
1296
+ v-if="generalFieldDescription('rowKey')"
1297
+ #tooltip
1298
+ >
1299
+ <Markdown
1300
+ :source="generalFieldDescription('rowKey')"
1301
+ block
1302
+ class="prose prose-sm prose-zinc"
1303
+ />
1304
+ </template>
1305
+ {{ generalFieldTitle("rowKey") }}
1306
+ </FieldLabel>
1307
+ <RowKeyCELContext>
1308
+ <ExpressionEditor
1309
+ :model-value="editingGeneralConfig.rowKey ?? ''"
1310
+ placeholder="如 row.id"
1311
+ result-type="string"
1312
+ @update:model-value="(v) => updateGeneralOptionalString('rowKey', v)"
1302
1313
  />
1303
- </template>
1304
- {{ generalFieldTitle("rowKey") }}
1305
- </FieldLabel>
1306
- <RowKeyCELContext>
1307
- <ExpressionEditor
1308
- :model-value="editingGeneralConfig.rowKey ?? ''"
1309
- placeholder="如 row.id"
1310
- result-type="string"
1311
- @update:model-value="(v) => updateGeneralOptionalString('rowKey', v)"
1312
- />
1313
- </RowKeyCELContext>
1314
- <p
1315
- v-if="getError('rowKey')"
1316
- class="text-xs text-red-500"
1317
- >
1318
- {{ getError("rowKey") }}
1319
- </p>
1320
- </Field>
1314
+ </RowKeyCELContext>
1315
+ <p
1316
+ v-if="getError('rowKey')"
1317
+ class="text-xs text-red-500"
1318
+ >
1319
+ {{ getError("rowKey") }}
1320
+ </p>
1321
+ </Field>
1322
+
1323
+ <!-- Host slot inside the general grid: a wrapping editor (e.g. the
1324
+ `table` form field, which hides 内部名称) drops a field into
1325
+ the cell next to 行唯一标识 so the two sit on one row. -->
1326
+ <slot name="general-grid-extra" />
1327
+ </div>
1321
1328
 
1322
1329
  <!-- Host extension slot: a wrapping editor (e.g. the `table` form
1323
1330
  field config) injects its own fields into the general pane. -->
@@ -9,9 +9,11 @@ type __VLS_ModelProps = {
9
9
  modelValue: AnyRecord;
10
10
  };
11
11
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
12
- declare var __VLS_219: {};
12
+ declare var __VLS_219: {}, __VLS_221: {};
13
13
  type __VLS_Slots = {} & {
14
- 'general-extra'?: (props: typeof __VLS_219) => any;
14
+ 'general-grid-extra'?: (props: typeof __VLS_219) => any;
15
+ } & {
16
+ 'general-extra'?: (props: typeof __VLS_221) => any;
15
17
  };
16
18
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
19
  "update:modelValue": (value: AnyRecord) => any;
@@ -132,6 +132,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
132
132
  }[]] | undefined;
133
133
  }[];
134
134
  readonly query?: {
135
+ readonly style?: string | undefined;
135
136
  readonly initial?: {
136
137
  readonly data: string;
137
138
  readonly request?: string | undefined;
@@ -436,6 +437,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
436
437
  }, never>>;
437
438
  }>>;
438
439
  query: Schema.optional<Schema.refine<{
440
+ readonly style?: string | undefined;
439
441
  readonly initial?: {
440
442
  readonly data: string;
441
443
  readonly request?: string | undefined;
@@ -502,6 +504,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
502
504
  data: Schema.Schema<string, string, never>;
503
505
  }>>>;
504
506
  readonly: Schema.optional<Schema.Schema<string, string, never>>;
507
+ style: Schema.optional<typeof Schema.String>;
505
508
  }>>>;
506
509
  rowKey: Schema.optional<Schema.Schema<string, string, never>>;
507
510
  cellStyle: Schema.optional<Schema.Schema<string, string, never>>;
@@ -571,6 +574,7 @@ export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnTy
571
574
  }[]] | undefined;
572
575
  }[];
573
576
  query?: {
577
+ readonly style?: string | undefined;
574
578
  readonly initial?: {
575
579
  readonly data: string;
576
580
  readonly request?: string | undefined;
@@ -84,10 +84,10 @@ export function editableHeader(titleText) {
84
84
  export function registerRowVariablesIfAbsent(env) {
85
85
  const declared = new Set(env.getDefinitions().variables.map((v) => v.name));
86
86
  if (!declared.has("row")) {
87
- env.registerVariable("row", "dyn", { description: "\u5F53\u524D\u884C\u6570\u636E" });
87
+ env.registerVariable("row", "dyn", { label: "\u5F53\u524D\u884C", description: "\u5F53\u524D\u884C\u6570\u636E" });
88
88
  }
89
89
  if (!declared.has("index")) {
90
- env.registerVariable("index", "number", { description: "\u884C\u7D22\u5F15" });
90
+ env.registerVariable("index", "number", { label: "\u884C\u5E8F\u53F7", description: "\u884C\u7D22\u5F15" });
91
91
  }
92
92
  }
93
93
  function configureWithRow(configure) {
@@ -28,7 +28,7 @@ const content = computed(() => {
28
28
  v-if="$slots.default || content"
29
29
  role="alert"
30
30
  data-slot="field-error"
31
- :class="cn('absolute left-0 top-full z-10 max-w-full pt-0.25 text-red-600 text-xs leading-tight font-normal', props.class)"
31
+ :class="cn('max-w-full pt-0.25 text-red-600 text-xs leading-tight font-normal', props.class)"
32
32
  >
33
33
  <slot v-if="$slots.default" />
34
34
 
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes } from 'vue';
2
+ type __VLS_Props = {
3
+ class?: HTMLAttributes['class'];
4
+ errors?: ReadonlyArray<string>;
5
+ warnings?: ReadonlyArray<string>;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;