@shwfed/config 2.4.0 → 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 (219) hide show
  1. package/dist/mcp.mjs +43 -5
  2. package/dist/module.json +1 -1
  3. package/dist/preview/assets/{config-CZ0f5xdI.js → config-BovRv7Mw.js} +1 -1
  4. package/dist/preview/assets/{config-BcQQl4v6.js → config-ByTxMBcK.js} +1 -1
  5. package/dist/preview/assets/{config-Ddh8pxIi.js → config-C7xYpB3N.js} +1 -1
  6. package/dist/preview/assets/{config-Bi9F-Jdh.js → config-CH9wsYX8.js} +1 -1
  7. package/dist/preview/assets/{config-C32yfrlg.js → config-Ch5dL5lp.js} +1 -1
  8. package/dist/preview/assets/{config-D9xGgFnF.js → config-D50Rl2n_.js} +1 -1
  9. package/dist/preview/assets/{config-CHHX7vhb.js → config-DiwVK32V.js} +1 -1
  10. package/dist/preview/assets/{config-BdFIFUa_.js → config-EKVeWrbS.js} +1 -1
  11. package/dist/preview/assets/{config-Bxkq2ZRm.js → config-Q86AhjHq.js} +1 -1
  12. package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-C_cjxvm1.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/form/ValidationRulesField.d.vue.ts +16 -0
  29. package/dist/runtime/components/form/ValidationRulesField.vue +207 -0
  30. package/dist/runtime/components/form/ValidationRulesField.vue.d.ts +16 -0
  31. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.d.vue.ts +24 -0
  32. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.vue.d.ts +24 -0
  33. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.d.ts +18 -0
  34. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +24 -0
  35. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue +38 -0
  36. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +24 -0
  37. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +18 -2
  38. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.d.ts +18 -0
  39. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.d.vue.ts +24 -0
  40. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue +38 -0
  41. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue.d.ts +24 -0
  42. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +18 -2
  43. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.d.ts +18 -0
  44. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.d.vue.ts +24 -0
  45. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue.d.ts +24 -0
  46. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts +18 -0
  47. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  48. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  49. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  50. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +24 -0
  51. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue +38 -0
  52. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +24 -0
  53. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +18 -2
  54. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.d.ts +18 -0
  55. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +24 -0
  56. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue +38 -0
  57. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +24 -0
  58. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +18 -2
  59. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.d.ts +18 -0
  60. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +24 -0
  61. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue +38 -0
  62. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +24 -0
  63. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +18 -2
  64. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.d.ts +18 -0
  65. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +24 -0
  66. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue +38 -0
  67. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +24 -0
  68. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +18 -2
  69. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.d.ts +18 -0
  70. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +24 -0
  71. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue +38 -0
  72. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +24 -0
  73. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +18 -2
  74. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.d.ts +18 -0
  75. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +24 -0
  76. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue +38 -0
  77. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +24 -0
  78. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +18 -2
  79. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.d.ts +18 -0
  80. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +24 -0
  81. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +38 -0
  82. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +24 -0
  83. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +18 -2
  84. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +18 -0
  85. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +24 -0
  86. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue +38 -0
  87. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +24 -0
  88. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +18 -2
  89. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.d.ts +18 -0
  90. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +24 -0
  91. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue +38 -0
  92. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +24 -0
  93. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +18 -2
  94. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.d.ts +18 -0
  95. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  96. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  97. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  98. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.d.vue.ts +24 -0
  99. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue +38 -0
  100. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue.d.ts +24 -0
  101. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +18 -2
  102. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/schema.d.ts +18 -0
  103. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +24 -0
  104. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue +38 -0
  105. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +24 -0
  106. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +18 -2
  107. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.d.ts +18 -0
  108. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.d.vue.ts +24 -0
  109. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue +38 -0
  110. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue.d.ts +24 -0
  111. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +18 -2
  112. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.d.ts +30 -0
  113. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.d.vue.ts +24 -0
  114. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue +38 -0
  115. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue.d.ts +24 -0
  116. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +18 -2
  117. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.d.ts +18 -0
  118. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.d.vue.ts +24 -0
  119. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue +38 -0
  120. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue.d.ts +24 -0
  121. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +18 -2
  122. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.d.ts +18 -0
  123. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.d.vue.ts +24 -0
  124. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue +51 -9
  125. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue.d.ts +24 -0
  126. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/runtime.vue +22 -2
  127. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/schema.d.ts +18 -0
  128. package/dist/runtime/components/form/fields/2026-05-20/com.shwfed.form.field.collapsible/runtime.vue +26 -0
  129. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
  130. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
  131. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
  132. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.d.vue.ts +24 -0
  133. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue +38 -0
  134. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue.d.ts +24 -0
  135. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/runtime.vue +18 -2
  136. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/schema.d.ts +18 -0
  137. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +24 -0
  138. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue +38 -0
  139. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +24 -0
  140. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/runtime.vue +18 -2
  141. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/schema.d.ts +18 -0
  142. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
  143. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
  144. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
  145. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
  146. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
  147. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
  148. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
  149. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
  150. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
  151. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
  152. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue +38 -0
  153. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
  154. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +18 -2
  155. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
  156. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  157. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue +38 -0
  158. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  159. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +18 -2
  160. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  161. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
  162. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue +38 -0
  163. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
  164. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +18 -2
  165. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
  166. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
  167. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue +38 -0
  168. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
  169. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +18 -2
  170. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
  171. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
  172. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue +38 -0
  173. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
  174. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +18 -2
  175. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
  176. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +24 -0
  177. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue +38 -0
  178. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +24 -0
  179. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +18 -2
  180. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.d.ts +18 -0
  181. package/dist/runtime/components/form/index.d.vue.ts +1 -0
  182. package/dist/runtime/components/form/index.vue +9 -0
  183. package/dist/runtime/components/form/index.vue.d.ts +1 -0
  184. package/dist/runtime/components/form/schema.js +2 -2
  185. package/dist/runtime/components/form/utils/common.d.ts +42 -0
  186. package/dist/runtime/components/form/utils/common.js +40 -2
  187. package/dist/runtime/components/form/utils/validation.d.ts +85 -0
  188. package/dist/runtime/components/form/utils/validation.js +113 -0
  189. package/dist/runtime/components/table/config.d.vue.ts +4 -2
  190. package/dist/runtime/components/table/config.vue +5 -0
  191. package/dist/runtime/components/table/config.vue.d.ts +4 -2
  192. package/dist/runtime/components/table/utils/shared.js +2 -2
  193. package/dist/runtime/components/ui/field/FieldError.vue +1 -1
  194. package/dist/runtime/components/ui/field/FieldMessages.d.vue.ts +9 -0
  195. package/dist/runtime/components/ui/field/FieldMessages.vue +21 -0
  196. package/dist/runtime/components/ui/field/FieldMessages.vue.d.ts +9 -0
  197. package/dist/runtime/components/ui/field/FieldWarning.d.vue.ts +20 -0
  198. package/dist/runtime/components/ui/field/FieldWarning.vue +51 -0
  199. package/dist/runtime/components/ui/field/FieldWarning.vue.d.ts +20 -0
  200. package/dist/runtime/components/ui/field/index.d.ts +2 -0
  201. package/dist/runtime/components/ui/field/index.js +10 -4
  202. package/dist/runtime/components/ui/locale/Locale.d.vue.ts +2 -0
  203. package/dist/runtime/components/ui/locale/Locale.vue +165 -155
  204. package/dist/runtime/components/ui/locale/Locale.vue.d.ts +2 -0
  205. package/dist/runtime/share/form-validate.d.ts +18 -0
  206. package/dist/runtime/share/form-validate.js +8 -0
  207. package/package.json +1 -1
  208. package/dist/preview/assets/index-BqOX70Hd.css +0 -1
  209. package/dist/preview/assets/index-D-VR1i8D.js +0 -659
  210. package/dist/preview/assets/index-ihZGlPdX.js +0 -1
  211. package/dist/preview/assets/runtime-Bn8mqeDH.js +0 -1
  212. package/dist/preview/assets/runtime-Cc_Wk3o-.js +0 -1
  213. package/dist/preview/assets/runtime-CttAjIgg.js +0 -1
  214. package/dist/preview/assets/runtime-Cx4f2UTl.js +0 -1
  215. package/dist/preview/assets/runtime-D1dESjXR.js +0 -1
  216. package/dist/preview/assets/runtime-DIEP1Xbh.js +0 -1
  217. package/dist/preview/assets/runtime-DKceWuBx.js +0 -1
  218. package/dist/preview/assets/runtime-Dhid9O5c.js +0 -1
  219. package/dist/preview/assets/runtime-YMiqi6WY.js +0 -1
@@ -7,6 +7,7 @@ import { useTranslateLocale } from "../../../composables/useTranslateLocale";
7
7
  import { cn } from "../../../utils/cn";
8
8
  import { Button } from "../button";
9
9
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../dropdown-menu";
10
+ import { Field, FieldLabel } from "../field";
10
11
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupTextarea } from "../input-group";
11
12
  const supportedLocales = ["zh", "ja", "en", "ko"];
12
13
  defineOptions({
@@ -18,6 +19,8 @@ const props = defineProps({
18
19
  class: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
19
20
  multiline: { type: Boolean, required: false },
20
21
  markdown: { type: Boolean, required: false },
22
+ floating: { type: Boolean, required: false },
23
+ placeholder: { type: String, required: false },
21
24
  translateHint: { type: String, required: false }
22
25
  });
23
26
  const emits = defineEmits(["update:modelValue"]);
@@ -136,32 +139,123 @@ async function onAiTranslate(locale) {
136
139
  data-slot="locale"
137
140
  :class="cn('flex flex-col gap-2', props.class)"
138
141
  >
139
- <InputGroup
142
+ <Field
140
143
  v-for="(item, index) in locales"
141
144
  :key="item.locale"
142
- data-slot="locale-row"
143
- :data-locale="item.locale"
145
+ :orientation="props.floating ? 'floating' : 'contents'"
144
146
  >
145
- <InputGroupAddon
146
- v-if="props.multiline"
147
- align="block-start"
148
- class="border-b border-zinc-200"
147
+ <FieldLabel v-if="props.floating">
148
+ {{ localeLabel(item.locale) }}
149
+ </FieldLabel>
150
+ <InputGroup
151
+ data-slot="locale-row"
152
+ :data-locale="item.locale"
149
153
  >
150
- <div class="flex w-full items-center justify-between gap-3">
154
+ <InputGroupAddon
155
+ v-if="props.multiline"
156
+ align="block-start"
157
+ class="border-b border-zinc-200"
158
+ >
159
+ <div class="flex w-full items-center justify-between gap-3">
160
+ <DropdownMenu v-if="item.locale !== 'zh' && availableLocales(index).length > 0">
161
+ <DropdownMenuTrigger as-child>
162
+ <InputGroupButton
163
+ size="sm"
164
+ as-child
165
+ >
166
+ <button
167
+ type="button"
168
+ data-slot="locale-trigger"
169
+ class="text-zinc-500 transition-colors hover:text-zinc-700"
170
+ :aria-label="`\u9009\u62E9\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
171
+ >
172
+ <Icon :icon="localeIcon(item.locale)" />
173
+ <span>{{ localeLabel(item.locale) }}</span>
174
+ </button>
175
+ </InputGroupButton>
176
+ </DropdownMenuTrigger>
177
+ <DropdownMenuContent align="start">
178
+ <DropdownMenuItem
179
+ v-for="locale in availableLocales(index)"
180
+ :key="locale"
181
+ data-slot="locale-option"
182
+ :data-locale-option="locale"
183
+ @select="updateLocale(index, locale)"
184
+ >
185
+ <Icon :icon="localeIcon(locale)" />
186
+ <span>{{ localeLabel(locale) }}</span>
187
+ </DropdownMenuItem>
188
+ </DropdownMenuContent>
189
+ </DropdownMenu>
190
+
191
+ <span
192
+ v-else
193
+ data-slot="locale-icon"
194
+ class="flex items-center gap-2 text-zinc-500"
195
+ >
196
+ <Icon :icon="localeIcon(item.locale)" />
197
+ <span>{{ localeLabel(item.locale) }}</span>
198
+ </span>
199
+
200
+ <div class="flex items-center gap-2">
201
+ <Icon
202
+ v-if="props.markdown"
203
+ data-slot="locale-markdown-indicator"
204
+ icon="fluent:markdown-20-regular"
205
+ class="text-purple-600"
206
+ aria-label="支持 Markdown"
207
+ />
208
+ <InputGroupButton
209
+ v-if="canAiTranslate(item.locale) || isAiTranslating(item.locale)"
210
+ size="icon-xs"
211
+ as-child
212
+ >
213
+ <button
214
+ type="button"
215
+ data-slot="locale-translate"
216
+ :disabled="isAiTranslating(item.locale) || !canAiTranslate(item.locale)"
217
+ :aria-label="`AI \u7FFB\u8BD1\uFF1A${localeLabel(item.locale)}`"
218
+ @click="onAiTranslate(item.locale)"
219
+ >
220
+ <Icon
221
+ :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:magic-wand-20-regular'"
222
+ :class="isAiTranslating(item.locale) ? 'animate-spin' : ''"
223
+ />
224
+ </button>
225
+ </InputGroupButton>
226
+ <InputGroupButton
227
+ variant="destructive"
228
+ size="icon-xs"
229
+ as-child
230
+ >
231
+ <button
232
+ type="button"
233
+ data-slot="locale-delete"
234
+ :disabled="item.locale === 'zh'"
235
+ :aria-label="`\u5220\u9664\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
236
+ @click="removeLocale(index)"
237
+ >
238
+ <Icon icon="fluent:delete-20-regular" />
239
+ </button>
240
+ </InputGroupButton>
241
+ </div>
242
+ </div>
243
+ </InputGroupAddon>
244
+
245
+ <InputGroupAddon v-else>
151
246
  <DropdownMenu v-if="item.locale !== 'zh' && availableLocales(index).length > 0">
152
247
  <DropdownMenuTrigger as-child>
153
248
  <InputGroupButton
154
- size="sm"
249
+ size="icon-sm"
155
250
  as-child
156
251
  >
157
252
  <button
158
253
  type="button"
159
254
  data-slot="locale-trigger"
160
- class="text-zinc-500 transition-colors hover:text-zinc-700"
255
+ class="text-zinc-500 transition-colors hover:text-zinc-700 [&_svg:not([class*='size-'])]:size-3.5"
161
256
  :aria-label="`\u9009\u62E9\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
162
257
  >
163
258
  <Icon :icon="localeIcon(item.locale)" />
164
- <span>{{ localeLabel(item.locale) }}</span>
165
259
  </button>
166
260
  </InputGroupButton>
167
261
  </DropdownMenuTrigger>
@@ -178,163 +272,79 @@ async function onAiTranslate(locale) {
178
272
  </DropdownMenuItem>
179
273
  </DropdownMenuContent>
180
274
  </DropdownMenu>
181
-
182
275
  <span
183
276
  v-else
184
277
  data-slot="locale-icon"
185
- class="flex items-center gap-2 text-zinc-500"
278
+ class="-ml-[0.45rem] flex size-8 items-center justify-center text-zinc-500"
186
279
  >
187
280
  <Icon :icon="localeIcon(item.locale)" />
188
- <span>{{ localeLabel(item.locale) }}</span>
189
281
  </span>
282
+ </InputGroupAddon>
190
283
 
191
- <div class="flex items-center gap-2">
192
- <Icon
193
- v-if="props.markdown"
194
- data-slot="locale-markdown-indicator"
195
- icon="fluent:markdown-20-regular"
196
- class="text-purple-600"
197
- aria-label="支持 Markdown"
198
- />
199
- <InputGroupButton
200
- v-if="canAiTranslate(item.locale) || isAiTranslating(item.locale)"
201
- size="icon-xs"
202
- as-child
203
- >
204
- <button
205
- type="button"
206
- data-slot="locale-translate"
207
- :disabled="isAiTranslating(item.locale) || !canAiTranslate(item.locale)"
208
- :aria-label="`AI \u7FFB\u8BD1\uFF1A${localeLabel(item.locale)}`"
209
- @click="onAiTranslate(item.locale)"
210
- >
211
- <Icon
212
- :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:magic-wand-20-regular'"
213
- :class="isAiTranslating(item.locale) ? 'animate-spin' : ''"
214
- />
215
- </button>
216
- </InputGroupButton>
217
- <InputGroupButton
218
- variant="destructive"
219
- size="icon-xs"
220
- as-child
221
- >
222
- <button
223
- type="button"
224
- data-slot="locale-delete"
225
- :disabled="item.locale === 'zh'"
226
- :aria-label="`\u5220\u9664\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
227
- @click="removeLocale(index)"
228
- >
229
- <Icon icon="fluent:delete-20-regular" />
230
- </button>
231
- </InputGroupButton>
232
- </div>
233
- </div>
234
- </InputGroupAddon>
284
+ <InputGroupInput
285
+ v-if="!props.multiline"
286
+ data-slot="locale-input"
287
+ :model-value="item.message"
288
+ :placeholder="props.placeholder ?? (props.floating ? '' : localeLabel(item.locale))"
289
+ @update:model-value="handleMessageUpdate(index, $event)"
290
+ />
235
291
 
236
- <InputGroupAddon v-else>
237
- <DropdownMenu v-if="item.locale !== 'zh' && availableLocales(index).length > 0">
238
- <DropdownMenuTrigger as-child>
239
- <InputGroupButton
240
- size="icon-sm"
241
- as-child
242
- >
243
- <button
244
- type="button"
245
- data-slot="locale-trigger"
246
- class="text-zinc-500 transition-colors hover:text-zinc-700 [&_svg:not([class*='size-'])]:size-3.5"
247
- :aria-label="`\u9009\u62E9\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
248
- >
249
- <Icon :icon="localeIcon(item.locale)" />
250
- </button>
251
- </InputGroupButton>
252
- </DropdownMenuTrigger>
253
- <DropdownMenuContent align="start">
254
- <DropdownMenuItem
255
- v-for="locale in availableLocales(index)"
256
- :key="locale"
257
- data-slot="locale-option"
258
- :data-locale-option="locale"
259
- @select="updateLocale(index, locale)"
260
- >
261
- <Icon :icon="localeIcon(locale)" />
262
- <span>{{ localeLabel(locale) }}</span>
263
- </DropdownMenuItem>
264
- </DropdownMenuContent>
265
- </DropdownMenu>
266
- <span
292
+ <InputGroupTextarea
267
293
  v-else
268
- data-slot="locale-icon"
269
- class="-ml-[0.45rem] flex size-8 items-center justify-center text-zinc-500"
270
- >
271
- <Icon :icon="localeIcon(item.locale)" />
272
- </span>
273
- </InputGroupAddon>
274
-
275
- <InputGroupInput
276
- v-if="!props.multiline"
277
- data-slot="locale-input"
278
- :model-value="item.message"
279
- :placeholder="localeLabel(item.locale)"
280
- @update:model-value="handleMessageUpdate(index, $event)"
281
- />
282
-
283
- <InputGroupTextarea
284
- v-else
285
- data-slot="locale-textarea"
286
- class="min-h-32"
287
- :model-value="item.message"
288
- :placeholder="localeLabel(item.locale)"
289
- @update:model-value="handleMessageUpdate(index, $event)"
290
- />
291
-
292
- <InputGroupAddon
293
- v-if="!props.multiline"
294
- align="inline-end"
295
- >
296
- <Icon
297
- v-if="props.markdown"
298
- data-slot="locale-markdown-indicator"
299
- icon="fluent:markdown-20-regular"
300
- class="text-purple-600"
301
- aria-label="支持 Markdown"
294
+ data-slot="locale-textarea"
295
+ class="min-h-32"
296
+ :model-value="item.message"
297
+ :placeholder="props.placeholder ?? (props.floating ? '' : localeLabel(item.locale))"
298
+ @update:model-value="handleMessageUpdate(index, $event)"
302
299
  />
303
- <InputGroupButton
304
- v-if="canAiTranslate(item.locale) || isAiTranslating(item.locale)"
305
- size="icon-xs"
306
- as-child
300
+
301
+ <InputGroupAddon
302
+ v-if="!props.multiline"
303
+ align="inline-end"
307
304
  >
308
- <button
309
- type="button"
310
- data-slot="locale-translate"
311
- :disabled="isAiTranslating(item.locale) || !canAiTranslate(item.locale)"
312
- :aria-label="`AI \u7FFB\u8BD1\uFF1A${localeLabel(item.locale)}`"
313
- @click="onAiTranslate(item.locale)"
305
+ <Icon
306
+ v-if="props.markdown"
307
+ data-slot="locale-markdown-indicator"
308
+ icon="fluent:markdown-20-regular"
309
+ class="text-purple-600"
310
+ aria-label="支持 Markdown"
311
+ />
312
+ <InputGroupButton
313
+ v-if="canAiTranslate(item.locale) || isAiTranslating(item.locale)"
314
+ size="icon-xs"
315
+ as-child
314
316
  >
315
- <Icon
316
- :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:magic-wand-20-regular'"
317
- :class="isAiTranslating(item.locale) ? 'animate-spin' : ''"
318
- />
319
- </button>
320
- </InputGroupButton>
321
- <InputGroupButton
322
- variant="destructive"
323
- size="icon-xs"
324
- as-child
325
- >
326
- <button
327
- type="button"
328
- data-slot="locale-delete"
329
- :disabled="item.locale === 'zh'"
330
- :aria-label="`\u5220\u9664\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
331
- @click="removeLocale(index)"
317
+ <button
318
+ type="button"
319
+ data-slot="locale-translate"
320
+ :disabled="isAiTranslating(item.locale) || !canAiTranslate(item.locale)"
321
+ :aria-label="`AI \u7FFB\u8BD1\uFF1A${localeLabel(item.locale)}`"
322
+ @click="onAiTranslate(item.locale)"
323
+ >
324
+ <Icon
325
+ :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:magic-wand-20-regular'"
326
+ :class="isAiTranslating(item.locale) ? 'animate-spin' : ''"
327
+ />
328
+ </button>
329
+ </InputGroupButton>
330
+ <InputGroupButton
331
+ variant="destructive"
332
+ size="icon-xs"
333
+ as-child
332
334
  >
333
- <Icon icon="fluent:delete-20-regular" />
334
- </button>
335
- </InputGroupButton>
336
- </InputGroupAddon>
337
- </InputGroup>
335
+ <button
336
+ type="button"
337
+ data-slot="locale-delete"
338
+ :disabled="item.locale === 'zh'"
339
+ :aria-label="`\u5220\u9664\u8BED\u8A00\uFF1A${localeLabel(item.locale)}`"
340
+ @click="removeLocale(index)"
341
+ >
342
+ <Icon icon="fluent:delete-20-regular" />
343
+ </button>
344
+ </InputGroupButton>
345
+ </InputGroupAddon>
346
+ </InputGroup>
347
+ </Field>
338
348
 
339
349
  <Button
340
350
  type="button"
@@ -5,6 +5,8 @@ type __VLS_Props = {
5
5
  class?: HTMLAttributes['class'];
6
6
  multiline?: boolean;
7
7
  markdown?: boolean;
8
+ floating?: boolean;
9
+ placeholder?: string;
8
10
  translateHint?: string;
9
11
  };
10
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -0,0 +1,18 @@
1
+ import { type InjectionKey } from 'vue';
2
+ /**
3
+ * A form-scoped "validate me" callback. Resolves `true` when the enclosing
4
+ * `<Form>` has no `error`-severity validation results (and reveals the errors
5
+ * on the way out either way).
6
+ *
7
+ * Lives in `share/` — the neutral ground for host↔button contracts, alongside
8
+ * `event-bus` — so a host-agnostic action button can run pre-submit validation
9
+ * without importing the form module. The form host provides the callback; a
10
+ * submit-style button injects it and always validates before firing. This is
11
+ * the transitional seam: the final design dispatches a fallible `validate`
12
+ * operation over the event bus instead, at which point this key retires.
13
+ */
14
+ export type FormValidate = () => Promise<boolean>;
15
+ export declare const FORM_VALIDATE_KEY: InjectionKey<FormValidate>;
16
+ export declare function provideFormValidate(validate: FormValidate): void;
17
+ /** Inject the enclosing form's validate callback, or `undefined` outside a form. */
18
+ export declare function useFormValidate(): FormValidate | undefined;
@@ -0,0 +1,8 @@
1
+ import { inject, provide } from "vue";
2
+ export const FORM_VALIDATE_KEY = Symbol("shwfed/form-validate");
3
+ export function provideFormValidate(validate) {
4
+ provide(FORM_VALIDATE_KEY, validate);
5
+ }
6
+ export function useFormValidate() {
7
+ return inject(FORM_VALIDATE_KEY, void 0);
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shwfed/config",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "Configurable UI for SHWFED",
5
5
  "type": "module",
6
6
  "publishConfig": {