@shwfed/config 1.1.5 → 2.0.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 (286) hide show
  1. package/dist/module.d.mts +2 -19
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +15 -34
  4. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.d.vue.ts +36 -4
  5. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.vue +45 -8
  6. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.vue.d.ts +36 -4
  7. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/runtime.vue +15 -9
  8. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/schema.d.ts +17 -1
  9. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/schema.js +23 -4
  10. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.d.vue.ts +36 -4
  11. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.vue +39 -5
  12. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.vue.d.ts +36 -4
  13. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/runtime.vue +15 -9
  14. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/schema.d.ts +17 -1
  15. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/schema.js +23 -5
  16. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.prototype/config.vue +1 -0
  17. package/dist/runtime/components/actions/buttons/2026-04-21/com.shwfed.actions.button.navigation/config.d.vue.ts +2 -2
  18. package/dist/runtime/components/actions/buttons/2026-04-21/com.shwfed.actions.button.navigation/config.vue.d.ts +2 -2
  19. package/dist/runtime/components/actions/buttons/2026-04-21/com.shwfed.actions.button.navigation/runtime.vue +2 -3
  20. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.d.vue.ts +1 -1
  21. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.vue +44 -10
  22. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.vue.d.ts +1 -1
  23. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/runtime.vue +24 -7
  24. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/schema.d.ts +6 -1
  25. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/schema.js +6 -3
  26. package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/config.d.vue.ts +13 -5
  27. package/dist/runtime/components/actions/buttons/2026-05-15/com.shwfed.actions.button.event.dispatch/config.vue +32 -0
  28. package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/config.vue.d.ts +13 -5
  29. package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.search → 2026-05-15/com.shwfed.actions.button.event.dispatch}/runtime.vue +5 -7
  30. package/dist/runtime/components/actions/buttons/2026-05-15/com.shwfed.actions.button.event.dispatch/schema.d.ts +17 -0
  31. package/dist/runtime/components/actions/buttons/2026-05-15/com.shwfed.actions.button.event.dispatch/schema.js +18 -0
  32. package/dist/runtime/components/actions/components/group.vue +2 -3
  33. package/dist/runtime/components/actions/components/triggers-field.d.vue.ts +17 -0
  34. package/dist/runtime/components/actions/components/triggers-field.vue +209 -0
  35. package/dist/runtime/components/actions/components/triggers-field.vue.d.ts +17 -0
  36. package/dist/runtime/components/actions/config.vue +51 -1
  37. package/dist/runtime/components/actions/schema.d.ts +4 -0
  38. package/dist/runtime/components/actions/schema.js +6 -0
  39. package/dist/runtime/components/actions/utils/resolve.d.ts +25 -1
  40. package/dist/runtime/components/actions/utils/resolve.js +37 -9
  41. package/dist/runtime/components/app.vue +1 -1
  42. package/dist/runtime/components/block-layout-editor/index.vue +11 -11
  43. package/dist/runtime/components/block-layout-editor/sidebar.vue +0 -4
  44. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts +2 -0
  45. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts +2 -0
  46. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts +2 -0
  47. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts +2 -0
  48. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/schema.d.ts +2 -0
  49. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +6 -0
  50. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +6 -0
  51. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +6 -0
  52. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +6 -0
  53. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +7 -0
  54. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.d.vue.ts +1 -1
  55. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.vue +16 -2
  56. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.vue.d.ts +1 -1
  57. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/runtime.vue +1 -0
  58. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/schema.d.ts +18 -9
  59. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/schema.js +8 -4
  60. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/config.d.vue.ts +77 -0
  61. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/config.vue +535 -0
  62. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/config.vue.d.ts +77 -0
  63. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/runtime.d.vue.ts +77 -0
  64. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/runtime.vue +233 -0
  65. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/runtime.vue.d.ts +77 -0
  66. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/schema.d.ts +134 -0
  67. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/schema.js +142 -0
  68. package/dist/runtime/components/config/index.vue +1 -1
  69. package/dist/runtime/components/config/use-editor.js +4 -3
  70. package/dist/runtime/components/form/DerivedValueEditor.d.vue.ts +19 -0
  71. package/dist/runtime/components/form/DerivedValueEditor.vue +77 -0
  72. package/dist/runtime/components/form/DerivedValueEditor.vue.d.ts +19 -0
  73. package/dist/runtime/components/form/config.vue +58 -24
  74. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +8 -0
  75. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue +21 -0
  76. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +8 -0
  77. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +29 -31
  78. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.d.ts +4 -0
  79. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.js +3 -2
  80. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.d.vue.ts +8 -0
  81. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue +21 -0
  82. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue.d.ts +8 -0
  83. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +24 -26
  84. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.d.ts +4 -0
  85. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.js +3 -2
  86. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +10 -2
  87. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue +21 -0
  88. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +10 -2
  89. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/runtime.vue +15 -7
  90. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.d.ts +4 -0
  91. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.js +2 -1
  92. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +10 -2
  93. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue +21 -0
  94. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +10 -2
  95. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +14 -6
  96. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.d.ts +4 -0
  97. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.js +2 -1
  98. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +10 -2
  99. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue +21 -0
  100. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +10 -2
  101. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +14 -6
  102. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.d.ts +4 -0
  103. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.js +2 -1
  104. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +12 -4
  105. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue +21 -0
  106. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +12 -4
  107. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +14 -6
  108. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.d.ts +4 -0
  109. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.js +2 -1
  110. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +12 -4
  111. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue +21 -0
  112. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +12 -4
  113. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +14 -6
  114. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.d.ts +4 -0
  115. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.js +2 -1
  116. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +12 -4
  117. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue +21 -0
  118. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +12 -4
  119. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +14 -6
  120. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.d.ts +4 -0
  121. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.js +2 -1
  122. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +12 -4
  123. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue +21 -0
  124. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +12 -4
  125. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +14 -6
  126. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.d.ts +4 -0
  127. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.js +2 -1
  128. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +8 -0
  129. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +21 -0
  130. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +8 -0
  131. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +37 -38
  132. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +4 -0
  133. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.js +2 -1
  134. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +10 -2
  135. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue +21 -0
  136. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +10 -2
  137. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +33 -22
  138. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.d.ts +4 -0
  139. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.js +2 -1
  140. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +8 -0
  141. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue +21 -0
  142. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +8 -0
  143. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +14 -6
  144. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.d.ts +4 -0
  145. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.js +3 -2
  146. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.d.vue.ts +8 -0
  147. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue +21 -0
  148. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue.d.ts +8 -0
  149. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/runtime.vue +14 -7
  150. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.d.ts +4 -0
  151. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.js +2 -1
  152. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue +1 -0
  153. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +13 -8
  154. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +10 -2
  155. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue +25 -1
  156. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +10 -2
  157. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +102 -44
  158. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.d.ts +14 -0
  159. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.js +14 -5
  160. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue +1 -0
  161. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/row.vue +22 -5
  162. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +7 -4
  163. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.js +7 -1
  164. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.d.vue.ts +113 -0
  165. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue +426 -0
  166. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue.d.ts +113 -0
  167. package/dist/runtime/components/{actions/buttons/2026-04-27/com.shwfed.actions.button.table.search → form/fields/2026-05-17/com.shwfed.form.field.checkbox.group}/runtime.d.vue.ts +1 -1
  168. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +176 -0
  169. package/dist/runtime/components/{actions/buttons/2026-04-27/com.shwfed.actions.button.table.search → form/fields/2026-05-17/com.shwfed.form.field.checkbox.group}/runtime.vue.d.ts +1 -1
  170. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.d.ts +121 -0
  171. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.js +78 -0
  172. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.d.vue.ts +113 -0
  173. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue +426 -0
  174. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue.d.ts +113 -0
  175. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.d.vue.ts +8 -0
  176. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +159 -0
  177. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue.d.ts +8 -0
  178. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.d.ts +121 -0
  179. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.js +78 -0
  180. package/dist/runtime/components/form/index.d.vue.ts +6 -0
  181. package/dist/runtime/components/form/index.vue +41 -6
  182. package/dist/runtime/components/form/index.vue.d.ts +6 -0
  183. package/dist/runtime/components/form/schema.d.ts +5 -1
  184. package/dist/runtime/components/form/schema.js +13 -1
  185. package/dist/runtime/components/form/unit-config.d.vue.ts +0 -3
  186. package/dist/runtime/components/form/unit-config.vue +4 -10
  187. package/dist/runtime/components/form/unit-config.vue.d.ts +0 -3
  188. package/dist/runtime/components/form/utils/commit-bus.d.ts +26 -0
  189. package/dist/runtime/components/form/utils/commit-bus.js +27 -0
  190. package/dist/runtime/components/form/utils/common.d.ts +27 -0
  191. package/dist/runtime/components/form/utils/common.js +31 -0
  192. package/dist/runtime/components/form/utils/derived.d.ts +72 -0
  193. package/dist/runtime/components/form/utils/derived.js +116 -0
  194. package/dist/runtime/components/form/utils/field-value.d.ts +35 -0
  195. package/dist/runtime/components/form/utils/field-value.js +40 -0
  196. package/dist/runtime/components/form/utils/history.d.ts +36 -0
  197. package/dist/runtime/components/form/utils/history.js +74 -0
  198. package/dist/runtime/components/form/utils/readonly.d.ts +8 -0
  199. package/dist/runtime/components/form/utils/readonly.js +9 -0
  200. package/dist/runtime/components/form/utils/state.d.ts +27 -1
  201. package/dist/runtime/components/form/utils/state.js +16 -8
  202. package/dist/runtime/components/table/ai/columns-button.vue +3 -4
  203. package/dist/runtime/components/table/ai/data-source-button.vue +3 -4
  204. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.icon/runtime.vue +2 -3
  205. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.markdown/runtime.vue +2 -3
  206. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/runtime.vue +2 -3
  207. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.text/runtime.vue +2 -3
  208. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch/runtime.vue +11 -6
  209. package/dist/runtime/components/table/config.vue +46 -2
  210. package/dist/runtime/components/table/index.d.vue.ts +4 -0
  211. package/dist/runtime/components/table/index.vue +28 -22
  212. package/dist/runtime/components/table/index.vue.d.ts +4 -0
  213. package/dist/runtime/components/table/schema.d.ts +33 -0
  214. package/dist/runtime/components/table/schema.js +21 -0
  215. package/dist/runtime/components/table/utils/instance.d.ts +2 -0
  216. package/dist/runtime/components/table/utils/instance.js +8 -0
  217. package/dist/runtime/components/ui/date-picker/DatePickerInput.vue +2 -2
  218. package/dist/runtime/components/ui/date-picker/DatePickerTimeInput.vue +2 -2
  219. package/dist/runtime/components/ui/date-range-picker/DateRangePickerInput.vue +2 -2
  220. package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.vue +2 -2
  221. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.d.vue.ts +13 -1
  222. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue +11 -3
  223. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue.d.ts +13 -1
  224. package/dist/runtime/components/ui/locale/Locale.vue +2 -2
  225. package/dist/runtime/components/ui/radio-group/RadioGroup.d.vue.ts +22 -0
  226. package/dist/runtime/components/ui/radio-group/RadioGroup.vue +32 -0
  227. package/dist/runtime/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
  228. package/dist/runtime/components/ui/radio-group/RadioGroupItem.d.vue.ts +8 -0
  229. package/dist/runtime/components/ui/radio-group/RadioGroupItem.vue +36 -0
  230. package/dist/runtime/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
  231. package/dist/runtime/components/ui/radio-group/index.d.ts +2 -0
  232. package/dist/runtime/components/ui/radio-group/index.js +2 -0
  233. package/dist/runtime/composables/useOverlay.d.ts +1 -5
  234. package/dist/runtime/composables/useOverlay.js +4 -3
  235. package/dist/runtime/composables/useTranslateLocale.js +1 -2
  236. package/dist/runtime/share/event-bus.d.ts +118 -0
  237. package/dist/runtime/share/event-bus.js +55 -0
  238. package/dist/runtime/share/expression.d.ts +7 -0
  239. package/dist/runtime/share/expression.js +3 -1
  240. package/dist/runtime/share/layout.d.ts +1 -0
  241. package/dist/runtime/share/layout.js +3 -2
  242. package/dist/runtime/share/slot-renderer.vue +6 -4
  243. package/dist/runtime/{plugins → utils}/ai/cel-prompt.d.ts +1 -1
  244. package/dist/runtime/{plugins → utils}/ai/index.d.ts +1 -6
  245. package/dist/runtime/{plugins → utils}/ai/index.js +5 -14
  246. package/dist/runtime/utils/cel.d.ts +5 -0
  247. package/dist/runtime/utils/cel.js +42 -0
  248. package/dist/runtime/vendor/cel-js/CLAUDE.md +8 -2
  249. package/dist/runtime/vendor/cel-js/PROMPT.md +35 -10
  250. package/dist/runtime/vendor/cel-js/lib/functions.js +63 -1
  251. package/dist/runtime/vendor/cel-js/lib/http-builder.d.ts +35 -0
  252. package/dist/runtime/{plugins/http/builder.js → vendor/cel-js/lib/http-builder.js} +25 -23
  253. package/dist/runtime/vendor/cel-js/lib/http-builtins.d.ts +9 -10
  254. package/dist/runtime/vendor/cel-js/lib/http-builtins.js +53 -13
  255. package/dist/types.d.mts +7 -1
  256. package/package.json +1 -1
  257. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/config.vue +0 -10
  258. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/runtime.vue +0 -25
  259. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/schema.d.ts +0 -13
  260. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/schema.js +0 -16
  261. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/config.d.vue.ts +0 -17
  262. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/config.vue +0 -10
  263. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/config.vue.d.ts +0 -17
  264. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/schema.d.ts +0 -13
  265. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/schema.js +0 -16
  266. package/dist/runtime/components/table/utils/host.d.ts +0 -9
  267. package/dist/runtime/components/table/utils/host.js +0 -8
  268. package/dist/runtime/composables/useCel.d.ts +0 -16
  269. package/dist/runtime/composables/useCel.js +0 -8
  270. package/dist/runtime/middleware/token.d.ts +0 -2
  271. package/dist/runtime/middleware/token.js +0 -20
  272. package/dist/runtime/plugins/cel/http.d.ts +0 -8
  273. package/dist/runtime/plugins/cel/http.js +0 -49
  274. package/dist/runtime/plugins/cel/index.d.ts +0 -9
  275. package/dist/runtime/plugins/cel/index.js +0 -59
  276. package/dist/runtime/plugins/http/builder.d.ts +0 -14
  277. package/dist/runtime/plugins/http/index.d.ts +0 -19
  278. package/dist/runtime/plugins/http/index.js +0 -35
  279. package/dist/runtime/plugins/toast/index.d.ts +0 -108
  280. package/dist/runtime/plugins/toast/index.js +0 -10
  281. package/dist/runtime/types.d.ts +0 -25
  282. /package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/runtime.d.vue.ts +0 -0
  283. /package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/runtime.vue.d.ts +0 -0
  284. /package/dist/runtime/{plugins → utils}/ai/cel-prompt.js +0 -0
  285. /package/dist/runtime/{plugins/cel/context.d.ts → utils/cel-context.d.ts} +0 -0
  286. /package/dist/runtime/{plugins/cel/context.js → utils/cel-context.js} +0 -0
@@ -2,15 +2,14 @@
2
2
  import { computed } from "vue";
3
3
  import { Effect } from "effect";
4
4
  import { Icon } from "@iconify/vue";
5
- import { useNuxtApp } from "#app";
6
- import { celBindings, injectCELContext } from "../../../../../plugins/cel/context";
5
+ import { cel as $cel } from "../../../../../utils/cel";
6
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
7
7
  import { cn } from "../../../../../utils/cn";
8
8
  defineOptions({ name: "ShwfedTableSelectRendererRuntime" });
9
9
  const props = defineProps({
10
10
  column: { type: null, required: true },
11
11
  ctx: { type: Object, required: true }
12
12
  });
13
- const { $cel } = useNuxtApp();
14
13
  const celContext = injectCELContext();
15
14
  function evalPredicate(expression, fallback) {
16
15
  try {
@@ -2,16 +2,15 @@
2
2
  import { computed } from "vue";
3
3
  import { Icon } from "@iconify/vue";
4
4
  import { Effect } from "effect";
5
- import { useNuxtApp } from "#app";
5
+ import { cel as $cel } from "../../../../../utils/cel";
6
6
  import { Button } from "../../../../ui/button";
7
7
  import { JUSTIFY_CLASS } from "../../../utils/runtime";
8
- import { celBindings, injectCELContext } from "../../../../../plugins/cel/context";
8
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
9
9
  defineOptions({ name: "ShwfedTableTextRendererRuntime" });
10
10
  const props = defineProps({
11
11
  column: { type: null, required: true },
12
12
  ctx: { type: Object, required: true }
13
13
  });
14
- const { $cel } = useNuxtApp();
15
14
  const celContext = injectCELContext();
16
15
  const rawValue = computed(() => props.ctx.cell.getValue());
17
16
  const isMissing = computed(() => rawValue.value === void 0 || rawValue.value === null);
@@ -3,19 +3,20 @@ import { computed, ref } from "vue";
3
3
  import { Effect } from "effect";
4
4
  import { Fetch } from "fx-fetch";
5
5
  import { toast } from "vue-sonner";
6
- import { useNuxtApp } from "#app";
6
+ import { cel as $cel } from "../../../../../utils/cel";
7
7
  import { Switch } from "../../../../ui/switch";
8
8
  import { JUSTIFY_CLASS } from "../../../utils/runtime";
9
- import { celBindings, injectCELContext } from "../../../../../plugins/cel/context";
10
- import { useTableHost } from "../../../utils/host";
9
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
10
+ import { useEventChannel } from "../../../../../share/event-bus";
11
+ import { useTableInstanceId } from "../../../utils/instance";
11
12
  defineOptions({ name: "ShwfedTableSwitchRendererRuntime" });
12
13
  const props = defineProps({
13
14
  column: { type: null, required: true },
14
15
  ctx: { type: Object, required: true }
15
16
  });
16
- const { $cel } = useNuxtApp();
17
17
  const celContext = injectCELContext();
18
- const host = useTableHost();
18
+ const eventChannel = useEventChannel();
19
+ const tableInstanceId = useTableInstanceId();
19
20
  const rawValue = computed(() => props.ctx.cell.getValue());
20
21
  const isMissing = computed(() => rawValue.value === void 0 || rawValue.value === null);
21
22
  const checked = computed(() => rawValue.value === true);
@@ -55,7 +56,11 @@ async function onUpdate(next) {
55
56
  console.error("[shwfed-table] switch successMessage failed", e);
56
57
  }
57
58
  }
58
- await host?.refetch();
59
+ if (eventChannel && tableInstanceId) {
60
+ await Effect.runPromise(
61
+ eventChannel.dispatch({ target: tableInstanceId, operation: "search" })
62
+ );
63
+ }
59
64
  } catch (e) {
60
65
  console.error("[shwfed-table] switch onChange failed", e);
61
66
  toast.error("\u8BF7\u6C42\u5931\u8D25");
@@ -1,16 +1,17 @@
1
1
  <script setup>
2
2
  import { computed, defineComponent, inject, onBeforeUnmount, provide, ref, watch } from "vue";
3
- import { provideCELContext } from "../../plugins/cel/context";
3
+ import { provideCELContext } from "../../utils/cel-context";
4
4
  import { BREADCRUMB_EXTENSION_KEY } from "../config/breadcrumb-extension";
5
5
  import { TABLE_COLUMN_LAYOUT_KEY } from "./column-layout";
6
6
  import { Icon } from "@iconify/vue";
7
7
  import { ParseResult, Schema } from "effect";
8
- import { TableConfig, Pagination, ColumnGroup, DataSource } from "./schema";
8
+ import { TableConfig, Pagination, ColumnGroup, DataSource, metadata as tableMetadata } from "./schema";
9
9
  import { COLUMNS, findColumn as findColumnEntry } from "./utils/resolve";
10
10
  import {
11
11
  useTreeDnd
12
12
  } from "../../composables/useTreeDnd";
13
13
  import { getStructFieldDescription, getStructFieldTitle } from "./utils/schema-meta";
14
+ import { provideEventAncestor } from "../../share/event-bus";
14
15
  import { Markdown } from "../ui/markdown";
15
16
  import { Badge } from "../ui/badge";
16
17
  import { ScrollArea } from "../ui/scroll-area";
@@ -26,6 +27,7 @@ import {
26
27
  InputGroup,
27
28
  InputGroupAddon,
28
29
  InputGroupCombobox,
30
+ InputGroupInput,
29
31
  InputGroupNumberField
30
32
  } from "../ui/input-group";
31
33
  import ActionsConfigEditor from "../actions/config.vue";
@@ -265,6 +267,21 @@ const selectedActions = computed(() => selected.value.kind === "actions");
265
267
  const selectedQuery = computed(() => selected.value.kind === "query");
266
268
  const columnFullPane = ref(false);
267
269
  provide(TABLE_COLUMN_LAYOUT_KEY, { fullPane: columnFullPane });
270
+ const tableEventAncestor = computed(() => {
271
+ const id = config.value.id;
272
+ if (!id) return null;
273
+ const displayName = config.value.displayName;
274
+ return {
275
+ instanceId: id,
276
+ // Left undefined when the configurer wrote no 内部名称 — the trigger UI
277
+ // then shows just the type name rather than a redundant 「表格」.
278
+ name: displayName && displayName.length > 0 ? displayName : void 0,
279
+ typeName: tableMetadata.name,
280
+ typeIcon: tableMetadata.icon,
281
+ operations: tableMetadata.operations
282
+ };
283
+ });
284
+ provideEventAncestor(tableEventAncestor);
268
285
  const isDrilled = computed(
269
286
  () => selectedActions.value || selectedQuery.value || columnFullPane.value
270
287
  );
@@ -879,6 +896,10 @@ function updateGeneralOptionalString(key, value) {
879
896
  writeGeneralPatch({ [key]: value });
880
897
  }
881
898
  }
899
+ function setGeneralDisplayName(value) {
900
+ const next = String(value ?? "");
901
+ writeGeneralPatch({ displayName: next.length > 0 ? next : void 0 });
902
+ }
882
903
  function setDataSourceField(key, value) {
883
904
  const cur = readGeneral();
884
905
  const ds = { ...cur.dataSource ?? {} };
@@ -1207,6 +1228,29 @@ const tableQueryValue = computed({
1207
1228
  v-if="selectedGeneral"
1208
1229
  class="space-y-5"
1209
1230
  >
1231
+ <Field orientation="vertical">
1232
+ <FieldLabel class="text-xs text-zinc-500">
1233
+ <template
1234
+ v-if="generalFieldDescription('displayName')"
1235
+ #tooltip
1236
+ >
1237
+ <Markdown
1238
+ :source="generalFieldDescription('displayName')"
1239
+ block
1240
+ class="prose prose-sm prose-zinc"
1241
+ />
1242
+ </template>
1243
+ {{ generalFieldTitle("displayName") }}
1244
+ </FieldLabel>
1245
+ <InputGroup>
1246
+ <InputGroupInput
1247
+ :model-value="editingGeneralConfig.displayName ?? ''"
1248
+ placeholder="例:订单列表"
1249
+ @update:model-value="setGeneralDisplayName"
1250
+ />
1251
+ </InputGroup>
1252
+ </Field>
1253
+
1210
1254
  <div class="flex items-center gap-2">
1211
1255
  <h3 class="text-xs font-medium text-zinc-500">
1212
1256
  {{ generalFieldTitle("dataSource") }}
@@ -15,6 +15,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
15
15
  }, import("@tanstack/vue-table").Table<unknown>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
16
  "update:config": (value: Readonly<{
17
17
  kind: "shwfed.component.table";
18
+ id?: string;
19
+ displayName?: string;
18
20
  columns: ReadonlyArray<ColumnValue>;
19
21
  groups: ReadonlyArray<ColumnGroupValue>;
20
22
  dataSource: Readonly<{
@@ -55,6 +57,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
55
57
  }> & Readonly<{
56
58
  "onUpdate:config"?: ((value: Readonly<{
57
59
  kind: "shwfed.component.table";
60
+ id?: string;
61
+ displayName?: string;
58
62
  columns: ReadonlyArray<ColumnValue>;
59
63
  groups: ReadonlyArray<ColumnGroupValue>;
60
64
  dataSource: Readonly<{
@@ -1,5 +1,5 @@
1
1
  <script setup>
2
- import { useNuxtApp } from "#app";
2
+ import { cel as $cel } from "../../utils/cel";
3
3
  import { Icon } from "@iconify/vue";
4
4
  import {
5
5
  FlexRender,
@@ -15,7 +15,7 @@ import { Fetch } from "fx-fetch";
15
15
  import { Pagination } from "reka-ui/namespaced";
16
16
  import { computed, defineComponent, h, onMounted, ref, watch } from "vue";
17
17
  import { useI18n } from "vue-i18n";
18
- import { celBindings, provideCELContext, injectCELContext } from "../../plugins/cel/context";
18
+ import { celBindings, provideCELContext, injectCELContext } from "../../utils/cel-context";
19
19
  import { getLocalizedText } from "../../share/locale";
20
20
  import { Button } from "../ui/button";
21
21
  import { Markdown } from "../ui/markdown";
@@ -24,7 +24,8 @@ import { NumberField, NumberFieldInput } from "../ui/number-field";
24
24
  import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip";
25
25
  import ShwfedActions from "../actions/components/group.vue";
26
26
  import ShwfedForm from "../form/index.vue";
27
- import { provideTableHost } from "./utils/host";
27
+ import { provideTableInstanceId } from "./utils/instance";
28
+ import { provideEventTarget } from "../../share/event-bus";
28
29
  import { findColumn } from "./utils/resolve";
29
30
  import { interpolateMarkdown } from "./utils/runtime";
30
31
  const config = defineModel("config", { type: Object });
@@ -64,7 +65,6 @@ const { t, locale } = useI18n({
64
65
  }
65
66
  }
66
67
  });
67
- const { $cel } = useNuxtApp();
68
68
  const inheritedContext = injectCELContext();
69
69
  const containerRef = ref(null);
70
70
  const appliedInitialStateKey = ref("");
@@ -281,26 +281,32 @@ async function fetchDataSource() {
281
281
  console.warn("[shwfed-table] dataSource fetch failed", e);
282
282
  }
283
283
  }
284
- provideTableHost({
285
- search: async () => {
284
+ async function resetQuery() {
285
+ const initial = config.value?.query?.initial;
286
+ if (!initial) {
287
+ queryState.value = {};
288
+ return;
289
+ }
290
+ try {
291
+ const result = await Effect.runPromise($cel(initial, { query: {} }));
292
+ queryState.value = result && typeof result === "object" && !Array.isArray(result) ? { ...result } : {};
293
+ } catch (e) {
294
+ console.error("[shwfed-table] resetQuery failed", e);
295
+ queryState.value = {};
296
+ }
297
+ }
298
+ const tableInstanceId = config.value?.id ?? crypto.randomUUID();
299
+ provideTableInstanceId(tableInstanceId);
300
+ provideEventTarget(tableInstanceId, {
301
+ "reset-query": () => Effect.promise(resetQuery),
302
+ "reset-pagination": () => Effect.promise(async () => {
286
303
  tableApi.setPageIndex(0);
287
304
  await fetchDataSource();
288
- },
289
- refetch: () => fetchDataSource(),
290
- resetQuery: async () => {
291
- const initial = config.value?.query?.initial;
292
- if (!initial) {
293
- queryState.value = {};
294
- return;
295
- }
296
- try {
297
- const result = await Effect.runPromise($cel(initial, { query: {} }));
298
- queryState.value = result && typeof result === "object" && !Array.isArray(result) ? { ...result } : {};
299
- } catch (e) {
300
- console.error("[shwfed-table] resetQuery failed", e);
301
- queryState.value = {};
302
- }
303
- }
305
+ }),
306
+ "search": () => Effect.promise(fetchDataSource),
307
+ "clear-selection": () => Effect.sync(() => {
308
+ tableApi.resetRowSelection(true);
309
+ })
304
310
  });
305
311
  const queryRef = ref(null);
306
312
  onMounted(async () => {
@@ -15,6 +15,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
15
15
  }, import("@tanstack/vue-table").Table<unknown>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
16
  "update:config": (value: Readonly<{
17
17
  kind: "shwfed.component.table";
18
+ id?: string;
19
+ displayName?: string;
18
20
  columns: ReadonlyArray<ColumnValue>;
19
21
  groups: ReadonlyArray<ColumnGroupValue>;
20
22
  dataSource: Readonly<{
@@ -55,6 +57,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
55
57
  }> & Readonly<{
56
58
  "onUpdate:config"?: ((value: Readonly<{
57
59
  kind: "shwfed.component.table";
60
+ id?: string;
61
+ displayName?: string;
58
62
  columns: ReadonlyArray<ColumnValue>;
59
63
  groups: ReadonlyArray<ColumnGroupValue>;
60
64
  dataSource: Readonly<{
@@ -4,6 +4,27 @@ import { type ActionsConfigValue } from '../actions/schema.js';
4
4
  import { type FormConfigValue } from '../form/schema.js';
5
5
  export { getStructFieldTitle, getStructFieldDescription } from './utils/schema-meta.js';
6
6
  declare const KIND = "shwfed.component.table";
7
+ export declare const metadata: {
8
+ readonly name: "表格";
9
+ readonly icon: "fluent:table-20-regular";
10
+ readonly operations: readonly [{
11
+ readonly id: "reset-query";
12
+ readonly name: "重置搜索条件";
13
+ readonly icon: "fluent:arrow-reset-20-regular";
14
+ }, {
15
+ readonly id: "reset-pagination";
16
+ readonly name: "重置分页并执行搜索";
17
+ readonly icon: "fluent:arrow-previous-20-regular";
18
+ }, {
19
+ readonly id: "search";
20
+ readonly name: "执行搜索";
21
+ readonly icon: "fluent:search-20-regular";
22
+ }, {
23
+ readonly id: "clear-selection";
24
+ readonly name: "清空所有选中行";
25
+ readonly icon: "fluent:select-all-off-20-regular";
26
+ }];
27
+ };
7
28
  declare const InitialState: Schema.Struct<{
8
29
  columnVisibility: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Boolean>>;
9
30
  columnOrder: Schema.optional<Schema.Array$<typeof Schema.String>>;
@@ -75,6 +96,8 @@ export declare function DataSource(configure: (env: Environment) => void): Schem
75
96
  }>;
76
97
  export declare function TableConfig(configure: (env: Environment) => void): Schema.refine<{
77
98
  readonly style?: string | undefined;
99
+ readonly id?: string | undefined;
100
+ readonly displayName?: string | undefined;
78
101
  readonly columns: readonly any[];
79
102
  readonly kind: "shwfed.component.table";
80
103
  readonly groups: readonly {
@@ -186,6 +209,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
186
209
  };
187
210
  readonly media?: string | undefined;
188
211
  }[];
212
+ readonly readonly?: string | undefined;
189
213
  } | undefined;
190
214
  readonly cellStyle?: string | undefined;
191
215
  readonly pagination?: {
@@ -237,6 +261,8 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
237
261
  } | undefined;
238
262
  }, Schema.Struct<{
239
263
  kind: Schema.tag<"shwfed.component.table">;
264
+ id: Schema.optional<Schema.refine<string, typeof Schema.String>>;
265
+ displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
240
266
  columns: Schema.Array$<Schema.Schema<any, any, never>>;
241
267
  groups: Schema.optionalWith<Schema.Array$<Schema.Struct<{
242
268
  id: Schema.refine<string, typeof Schema.String>;
@@ -353,6 +379,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
353
379
  };
354
380
  readonly media?: string | undefined;
355
381
  }[];
382
+ readonly readonly?: string | undefined;
356
383
  }, Schema.Struct<{
357
384
  fields: Schema.Array$<Schema.Schema<any, any, never>>;
358
385
  layouts: Schema.refine<readonly {
@@ -388,6 +415,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
388
415
  }>>>;
389
416
  kind: Schema.tag<"shwfed.component.form">;
390
417
  initial: Schema.optional<Schema.Schema<string, string, never>>;
418
+ readonly: Schema.optional<Schema.Schema<string, string, never>>;
391
419
  }>>>;
392
420
  cellStyle: Schema.optional<Schema.Schema<string, string, never>>;
393
421
  style: Schema.optional<typeof Schema.String>;
@@ -441,6 +469,8 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
441
469
  }>>;
442
470
  export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnType<typeof TableConfig>>, 'kind'>): {
443
471
  style?: string | undefined;
472
+ id?: string | undefined;
473
+ displayName?: string | undefined;
444
474
  columns: readonly any[];
445
475
  groups: readonly {
446
476
  readonly id: string;
@@ -551,6 +581,7 @@ export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnTy
551
581
  };
552
582
  readonly media?: string | undefined;
553
583
  }[];
584
+ readonly readonly?: string | undefined;
554
585
  } | undefined;
555
586
  cellStyle?: string | undefined;
556
587
  pagination?: {
@@ -619,6 +650,8 @@ export type DataSourceValue = Readonly<{
619
650
  export type TableActionsValue = Omit<ActionsConfigValue, 'kind'>;
620
651
  export type TableConfigValue = Readonly<{
621
652
  kind: typeof KIND;
653
+ id?: string;
654
+ displayName?: string;
622
655
  columns: ReadonlyArray<ColumnValue>;
623
656
  groups: ReadonlyArray<ColumnGroupValue>;
624
657
  dataSource: DataSourceValue;
@@ -7,6 +7,19 @@ import { allColumnSchemas } from "./utils/resolve.js";
7
7
  import { registerRowVariablesIfAbsent } from "./utils/shared.js";
8
8
  export { getStructFieldTitle, getStructFieldDescription } from "./utils/schema-meta.js";
9
9
  const KIND = "shwfed.component.table";
10
+ export const metadata = {
11
+ name: "\u8868\u683C",
12
+ icon: "fluent:table-20-regular",
13
+ // Atomic operations — compose them on one button (ordered triggers) to get
14
+ // the legacy combined behaviours. Only `search` actually fetches data;
15
+ // `reset-query` / `reset-pagination` / `clear-selection` just prepare state.
16
+ operations: [
17
+ { id: "reset-query", name: "\u91CD\u7F6E\u641C\u7D22\u6761\u4EF6", icon: "fluent:arrow-reset-20-regular" },
18
+ { id: "reset-pagination", name: "\u91CD\u7F6E\u5206\u9875\u5E76\u6267\u884C\u641C\u7D22", icon: "fluent:arrow-previous-20-regular" },
19
+ { id: "search", name: "\u6267\u884C\u641C\u7D22", icon: "fluent:search-20-regular" },
20
+ { id: "clear-selection", name: "\u6E05\u7A7A\u6240\u6709\u9009\u4E2D\u884C", icon: "fluent:select-all-off-20-regular" }
21
+ ]
22
+ };
10
23
  const SortItem = Schema.Struct({
11
24
  id: Schema.String.annotations({ description: "\u5217 ID" }),
12
25
  desc: Schema.optionalWith(Schema.Boolean, { default: () => false }).annotations({
@@ -190,6 +203,13 @@ export function TableConfig(configure) {
190
203
  const Query = FormConfig(configure);
191
204
  return Schema.Struct({
192
205
  kind: Schema.tag(KIND),
206
+ id: Schema.optional(Schema.UUID.annotations({
207
+ description: "\u8868\u683C\u5B9E\u4F8B\u552F\u4E00\u6807\u8BC6\uFF1B\u4F5C\u4E3A\u4E8B\u4EF6\u76EE\u6807\u88AB op-request \u5F15\u7528"
208
+ })),
209
+ displayName: Schema.optional(Schema.String.annotations({
210
+ title: "\u5185\u90E8\u540D\u79F0",
211
+ description: "\u4EC5\u5728\u914D\u7F6E\u754C\u9762\u53EF\u89C1\u7684\u8868\u683C\u540D\u79F0\uFF0C\u7528\u4E8E\u5728\u4E8B\u4EF6\u76EE\u6807\u7B49\u4F4D\u7F6E\u6807\u8BC6\u8BE5\u8868\u683C\uFF1B\u8FD0\u884C\u65F6\u4E0D\u5C55\u793A"
212
+ })),
193
213
  columns: Schema.Array(ColumnSchema).annotations({
194
214
  description: "\u5217\u5B9A\u4E49\u5217\u8868"
195
215
  }),
@@ -240,6 +260,7 @@ export function createTableConfig(body) {
240
260
  export function defaultTableConfig() {
241
261
  return {
242
262
  kind: KIND,
263
+ id: crypto.randomUUID(),
243
264
  columns: [],
244
265
  groups: [],
245
266
  dataSource: { data: "[]" },
@@ -0,0 +1,2 @@
1
+ export declare function provideTableInstanceId(id: string): void;
2
+ export declare function useTableInstanceId(): string | undefined;
@@ -0,0 +1,8 @@
1
+ import { inject, provide } from "vue";
2
+ const TABLE_INSTANCE_ID_KEY = Symbol("shwfed-table-instance-id");
3
+ export function provideTableInstanceId(id) {
4
+ provide(TABLE_INSTANCE_ID_KEY, id);
5
+ }
6
+ export function useTableInstanceId() {
7
+ return inject(TABLE_INSTANCE_ID_KEY, void 0);
8
+ }
@@ -14,7 +14,7 @@ const props = defineProps({
14
14
  readonly: { type: Boolean, required: false },
15
15
  open: { type: Boolean, required: false },
16
16
  prefixIcon: { type: String, required: false },
17
- clearIcon: { type: String, required: false, default: "lucide:x" },
17
+ clearIcon: { type: String, required: false, default: "fluent:dismiss-20-regular" },
18
18
  size: { type: String, required: false, default: "md" },
19
19
  class: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true }
20
20
  });
@@ -98,7 +98,7 @@ const showClear = computed(
98
98
  v-if="showClear"
99
99
  align="inline-end"
100
100
  :class="cn(
101
- 'opacity-0 transition-opacity',
101
+ '[@media(hover:hover)]:opacity-0 transition-opacity',
102
102
  'group-hover/date-picker-input:opacity-100 focus-within:opacity-100'
103
103
  )"
104
104
  >
@@ -13,7 +13,7 @@ const props = defineProps({
13
13
  readonly: { type: Boolean, required: false },
14
14
  clearable: { type: Boolean, required: false, default: true },
15
15
  prefixIcon: { type: String, required: false },
16
- clearIcon: { type: String, required: false, default: "lucide:x" },
16
+ clearIcon: { type: String, required: false, default: "fluent:dismiss-20-regular" },
17
17
  size: { type: String, required: false, default: "md" },
18
18
  class: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true }
19
19
  });
@@ -82,7 +82,7 @@ function onClear() {
82
82
  v-if="showClear"
83
83
  align="inline-end"
84
84
  :class="cn(
85
- 'opacity-0 transition-opacity',
85
+ '[@media(hover:hover)]:opacity-0 transition-opacity',
86
86
  'group-hover/date-picker-input:opacity-100 focus-within:opacity-100'
87
87
  )"
88
88
  >
@@ -13,7 +13,7 @@ const props = defineProps({
13
13
  endPlaceholder: { type: String, required: false },
14
14
  rangeSeparatorIcon: { type: String, required: false },
15
15
  prefixIcon: { type: String, required: false },
16
- clearIcon: { type: String, required: false, default: "lucide:x" },
16
+ clearIcon: { type: String, required: false, default: "fluent:dismiss-20-regular" },
17
17
  clearable: { type: Boolean, required: false, default: true },
18
18
  disabled: { type: Boolean, required: false },
19
19
  readonly: { type: Boolean, required: false },
@@ -157,7 +157,7 @@ const hasValue = computed(() => props.startValue !== void 0 || props.endValue !=
157
157
  tabindex="-1"
158
158
  :class="cn(
159
159
  'mr-2 shrink-0 text-zinc-500 hover:text-zinc-700 transition-opacity',
160
- 'opacity-0',
160
+ '[@media(hover:hover)]:opacity-0',
161
161
  'group-hover/date-range-input:opacity-100 focus-within:opacity-100'
162
162
  )"
163
163
  @mousedown.prevent
@@ -11,7 +11,7 @@ const props = defineProps({
11
11
  hourCycle: { type: Number, required: false, default: 24 },
12
12
  rangeSeparatorIcon: { type: String, required: false, default: "lucide:arrow-right" },
13
13
  prefixIcon: { type: String, required: false },
14
- clearIcon: { type: String, required: false, default: "lucide:x" },
14
+ clearIcon: { type: String, required: false, default: "fluent:dismiss-20-regular" },
15
15
  clearable: { type: Boolean, required: false, default: true },
16
16
  disabled: { type: Boolean, required: false },
17
17
  readonly: { type: Boolean, required: false },
@@ -132,7 +132,7 @@ const showClear = computed(
132
132
  tabindex="-1"
133
133
  :class="cn(
134
134
  'mr-2 size-5 shrink-0 rounded text-zinc-500 transition-opacity hover:text-zinc-700',
135
- 'opacity-0',
135
+ '[@media(hover:hover)]:opacity-0',
136
136
  'group-hover/date-range-time-input:opacity-100 focus-within:opacity-100',
137
137
  'flex items-center justify-center'
138
138
  )"
@@ -13,10 +13,22 @@ type __VLS_Props = {
13
13
  resultType?: string | string[];
14
14
  extraVars?: Record<string, VarSpec>;
15
15
  };
16
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
16
+ declare var __VLS_14: {}, __VLS_108: {};
17
+ type __VLS_Slots = {} & {
18
+ leading?: (props: typeof __VLS_14) => any;
19
+ } & {
20
+ trailing?: (props: typeof __VLS_108) => any;
21
+ };
22
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
23
  "update:modelValue": (payload: string) => any;
18
24
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
25
  "onUpdate:modelValue"?: ((payload: string) => any) | undefined;
20
26
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
28
  declare const _default: typeof __VLS_export;
22
29
  export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { Icon } from "@iconify/vue";
3
- import { computed, ref, watch } from "vue";
4
- import { injectCELContext } from "../../../plugins/cel/context";
3
+ import { computed, ref, useSlots, watch } from "vue";
4
+ import { injectCELContext } from "../../../utils/cel-context";
5
5
  import { Markdown } from "../markdown";
6
6
  import { cn } from "../../../utils/cn";
7
7
  import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "../command";
@@ -50,7 +50,8 @@ const resultTypeLabel = computed(() => {
50
50
  if (Array.isArray(rt)) return rt.length > 0 ? rt.join(" | ") : null;
51
51
  return rt;
52
52
  });
53
- const showAddon = computed(() => hasVars.value || !!resultTypeLabel.value);
53
+ const slots = useSlots();
54
+ const showAddon = computed(() => hasVars.value || !!resultTypeLabel.value || !!slots.trailing);
54
55
  const addonAlign = computed(
55
56
  () => props.multiline ? "block-end" : "inline-end"
56
57
  );
@@ -58,6 +59,12 @@ const addonAlign = computed(
58
59
 
59
60
  <template>
60
61
  <InputGroup>
62
+ <InputGroupAddon
63
+ v-if="$slots.leading"
64
+ align="inline-start"
65
+ >
66
+ <slot name="leading" />
67
+ </InputGroupAddon>
61
68
  <InputGroupTextarea
62
69
  v-if="props.multiline"
63
70
  :model-value="props.modelValue"
@@ -145,6 +152,7 @@ const addonAlign = computed(
145
152
  >
146
153
  {{ resultTypeLabel }}
147
154
  </span>
155
+ <slot name="trailing" />
148
156
  </InputGroupAddon>
149
157
  </InputGroup>
150
158
  </template>
@@ -13,10 +13,22 @@ type __VLS_Props = {
13
13
  resultType?: string | string[];
14
14
  extraVars?: Record<string, VarSpec>;
15
15
  };
16
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
16
+ declare var __VLS_14: {}, __VLS_108: {};
17
+ type __VLS_Slots = {} & {
18
+ leading?: (props: typeof __VLS_14) => any;
19
+ } & {
20
+ trailing?: (props: typeof __VLS_108) => any;
21
+ };
22
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
23
  "update:modelValue": (payload: string) => any;
18
24
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
25
  "onUpdate:modelValue"?: ((payload: string) => any) | undefined;
20
26
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
28
  declare const _default: typeof __VLS_export;
22
29
  export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -209,7 +209,7 @@ async function onAiTranslate(locale) {
209
209
  @click="onAiTranslate(item.locale)"
210
210
  >
211
211
  <Icon
212
- :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:sparkle-20-regular'"
212
+ :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:magic-wand-20-regular'"
213
213
  :class="isAiTranslating(item.locale) ? 'animate-spin' : ''"
214
214
  />
215
215
  </button>
@@ -313,7 +313,7 @@ async function onAiTranslate(locale) {
313
313
  @click="onAiTranslate(item.locale)"
314
314
  >
315
315
  <Icon
316
- :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:sparkle-20-regular'"
316
+ :icon="isAiTranslating(item.locale) ? 'fluent:arrow-sync-20-regular' : 'fluent:magic-wand-20-regular'"
317
317
  :class="isAiTranslating(item.locale) ? 'animate-spin' : ''"
318
318
  />
319
319
  </button>
@@ -0,0 +1,22 @@
1
+ import type { RadioGroupRootProps } from 'reka-ui';
2
+ import type { HTMLAttributes } from 'vue';
3
+ type __VLS_Props = RadioGroupRootProps & {
4
+ class?: HTMLAttributes['class'];
5
+ };
6
+ declare var __VLS_8: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_8) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ "update:modelValue": (payload: import("reka-ui").AcceptableValue) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ "onUpdate:modelValue"?: ((payload: import("reka-ui").AcceptableValue) => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };