@sdata/web-vue 3.16.1 → 3.18.0

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 (426) hide show
  1. package/dist/sd.css +81 -0
  2. package/dist/sd.min.css +1 -1
  3. package/es/_components/feedback-icon.vue_vue_type_script_setup_true_lang.js +1 -1
  4. package/es/_components/icon-hover.vue_vue_type_script_setup_true_lang.js +1 -1
  5. package/es/_components/picker/input-range.vue_vue_type_script_setup_true_lang.js +1 -1
  6. package/es/_components/picker/input.vue_vue_type_script_setup_true_lang.js +1 -1
  7. package/es/_components/resize-trigger.vue_vue_type_script_setup_true_lang.js +1 -1
  8. package/es/_components/transition/expand-transition.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/es/_components/virtual-list/virtual-list.vue_vue_type_script_setup_true_lang.js +4 -4
  10. package/es/_hooks/use-cursor.js +4 -2
  11. package/es/_hooks/use-scrollbar.js +1 -1
  12. package/es/_utils/color.js +2 -2
  13. package/es/_utils/date.js +20 -20
  14. package/es/_utils/floating.d.ts +8 -0
  15. package/es/_utils/floating.js +54 -0
  16. package/es/_utils/global-config.js +1 -1
  17. package/es/_utils/is-equal.js +1 -1
  18. package/es/_utils/keyboard.js +3 -2
  19. package/es/_utils/omit.js +1 -1
  20. package/es/_utils/responsive-observe.js +2 -2
  21. package/es/_utils/virtual-dropdown.js +2 -2
  22. package/es/_utils/vue-utils.js +1 -1
  23. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/asyncToGenerator.js +2 -2
  24. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/defineProperty.js +3 -3
  25. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/extends.js +2 -2
  26. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/objectDestructuringEmpty.js +2 -2
  27. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/objectSpread2.js +3 -3
  28. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/objectWithoutProperties.js +3 -3
  29. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/objectWithoutPropertiesLoose.js +2 -2
  30. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/toPrimitive.js +3 -3
  31. package/es/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPropertyKey.js +9 -0
  32. package/es/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/typeof.js +2 -2
  33. package/es/affix/affix.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/es/alert/alert.vue_vue_type_script_setup_true_lang.js +1 -1
  35. package/es/anchor/anchor-link.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +5 -2
  37. package/es/anchor/index.js +1 -1
  38. package/es/auto-complete/auto-complete.d.ts +7 -0
  39. package/es/auto-complete/auto-complete.js +34 -27
  40. package/es/auto-complete/index.d.ts +9 -0
  41. package/es/avatar/avatar.vue_vue_type_script_setup_true_lang.js +6 -6
  42. package/es/avatar/index.js +1 -1
  43. package/es/back-top/back-top.vue_vue_type_script_setup_true_lang.js +1 -1
  44. package/es/badge/badge.d.ts +1 -1
  45. package/es/badge/badge.js +2 -2
  46. package/es/badge/index.d.ts +3 -3
  47. package/es/basic-crud-table/basic-crud-modal.vue.d.ts +6 -6
  48. package/es/basic-crud-table/basic-crud-modal.vue_vue_type_script_setup_true_lang.js +4 -3
  49. package/es/basic-crud-table/basic-crud-table.vue.d.ts +18 -18
  50. package/es/basic-crud-table/basic-crud-table.vue_vue_type_script_setup_true_lang.js +2 -2
  51. package/es/basic-crud-table/index.d.ts +54 -54
  52. package/es/border-beam/border-beam.vue_vue_type_script_setup_true_lang.js +1 -1
  53. package/es/border-beam/styles.js +1 -1
  54. package/es/breadcrumb/index.js +1 -1
  55. package/es/button/button-group.vue_vue_type_script_setup_true_lang.js +1 -1
  56. package/es/button/button.vue.d.ts +8 -4
  57. package/es/button/button.vue_vue_type_script_setup_true_lang.js +34 -15
  58. package/es/button/index.d.ts +4 -0
  59. package/es/button/index.js +1 -1
  60. package/es/button/style/index.css +11 -0
  61. package/es/button/style/index.scss +12 -0
  62. package/es/calendar/components/cell.vue_vue_type_script_setup_true_lang.js +6 -11
  63. package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +3 -12
  64. package/es/calendar/components/header.vue_vue_type_script_setup_true_lang.js +3 -4
  65. package/es/calendar/components/index.vue_vue_type_script_setup_true_lang.js +3 -6
  66. package/es/calendar/components/time-column.vue_vue_type_script_setup_true_lang.js +4 -1
  67. package/es/card/card-grid.vue_vue_type_script_setup_true_lang.js +1 -1
  68. package/es/card/index.js +1 -1
  69. package/es/carousel/carousel-arrow.vue_vue_type_script_setup_true_lang.js +1 -1
  70. package/es/carousel/carousel-indicator.vue_vue_type_script_setup_true_lang.js +1 -1
  71. package/es/carousel/carousel-item.vue_vue_type_script_setup_true_lang.js +1 -1
  72. package/es/carousel/carousel.js +1 -1
  73. package/es/carousel/index.js +1 -1
  74. package/es/cascader/base-cascader-panel.js +1 -1
  75. package/es/cascader/cascader-column.js +1 -1
  76. package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +2 -2
  77. package/es/cascader/cascader-search-panel.js +1 -1
  78. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +138 -132
  79. package/es/cascader/index.js +1 -1
  80. package/es/cascader/types.d.ts +2 -0
  81. package/es/checkbox/index.js +1 -1
  82. package/es/collapse/collapse.vue_vue_type_script_setup_true_lang.js +1 -1
  83. package/es/collapse/index.js +1 -1
  84. package/es/color-picker/color-picker.d.ts +7 -0
  85. package/es/color-picker/color-picker.js +15 -10
  86. package/es/color-picker/index.d.ts +9 -0
  87. package/es/color-picker/panel.js +7 -4
  88. package/es/color-picker/utils.js +3 -2
  89. package/es/comment/comment.vue_vue_type_script_setup_true_lang.js +5 -5
  90. package/es/components.d.ts +1 -0
  91. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +1 -1
  92. package/es/config-provider/theme-provider.vue_vue_type_script_setup_true_lang.js +2 -2
  93. package/es/config-provider/theme.js +3 -3
  94. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +2 -2
  95. package/es/cropper/cropper.vue_vue_type_script_setup_true_lang.js +2 -2
  96. package/es/date-picker/hooks/use-format.js +1 -1
  97. package/es/date-picker/hooks/use-range-time-picker-value.js +1 -1
  98. package/es/date-picker/hooks/use-value-format.js +1 -1
  99. package/es/date-picker/index.d.ts +9 -0
  100. package/es/date-picker/index.js +1 -1
  101. package/es/date-picker/panels/body.vue_vue_type_script_setup_true_lang.js +4 -6
  102. package/es/date-picker/panels/date/index.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/es/date-picker/panels/footer.vue_vue_type_script_setup_true_lang.js +1 -1
  104. package/es/date-picker/panels/header.vue_vue_type_script_setup_true_lang.js +1 -1
  105. package/es/date-picker/panels/month/index.vue_vue_type_script_setup_true_lang.js +1 -1
  106. package/es/date-picker/panels/quarter/index.vue_vue_type_script_setup_true_lang.js +1 -1
  107. package/es/date-picker/panels/shortcuts.vue_vue_type_script_setup_true_lang.js +1 -1
  108. package/es/date-picker/panels/week/index.vue_vue_type_script_setup_true_lang.js +5 -3
  109. package/es/date-picker/panels/week-list.vue_vue_type_script_setup_true_lang.js +1 -1
  110. package/es/date-picker/panels/year/index.vue_vue_type_script_setup_true_lang.js +1 -1
  111. package/es/date-picker/picker-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  112. package/es/date-picker/picker.vue.d.ts +7 -0
  113. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +10 -5
  114. package/es/date-picker/range-picker-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  115. package/es/date-picker/range-picker.vue.d.ts +7 -0
  116. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +8 -4
  117. package/es/descriptions/descriptions-item.vue_vue_type_script_setup_true_lang.js +1 -1
  118. package/es/descriptions/descriptions.js +1 -1
  119. package/es/descriptions/index.js +1 -1
  120. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +2 -2
  121. package/es/drawer/index.js +2 -2
  122. package/es/dropdown/dropdown-button.vue.d.ts +7 -0
  123. package/es/dropdown/dropdown-button.vue_vue_type_script_setup_true_lang.js +4 -1
  124. package/es/dropdown/dropdown-group.vue_vue_type_script_setup_true_lang.js +1 -1
  125. package/es/dropdown/dropdown-option.vue_vue_type_script_setup_true_lang.js +1 -1
  126. package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +2 -2
  127. package/es/dropdown/dropdown-submenu.vue.d.ts +7 -0
  128. package/es/dropdown/dropdown-submenu.vue_vue_type_script_setup_true_lang.js +4 -1
  129. package/es/dropdown/dropdown.vue.d.ts +7 -0
  130. package/es/dropdown/dropdown.vue_vue_type_script_setup_true_lang.js +4 -1
  131. package/es/dropdown/index.d.ts +27 -0
  132. package/es/dropdown/index.js +1 -1
  133. package/es/dropdown/interface.d.ts +3 -0
  134. package/es/ellipsis/ellipsis.vue_vue_type_script_setup_true_lang.js +5 -5
  135. package/es/ellipsis/performant-ellipsis.vue_vue_type_script_setup_true_lang.js +3 -3
  136. package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +6 -6
  137. package/es/file-previewer/use-pdf-js.js +2 -2
  138. package/es/form/form-item-label.vue_vue_type_script_setup_true_lang.js +1 -1
  139. package/es/form/form-item-message.vue_vue_type_script_setup_true_lang.js +1 -1
  140. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +5 -5
  141. package/es/form/form.vue_vue_type_script_setup_true_lang.js +3 -2
  142. package/es/form/index.js +1 -1
  143. package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +1 -1
  144. package/es/grid/grid-item.vue_vue_type_script_setup_true_lang.js +1 -1
  145. package/es/grid/grid-row.vue_vue_type_script_setup_true_lang.js +1 -1
  146. package/es/grid/grid.vue_vue_type_script_setup_true_lang.js +1 -1
  147. package/es/grid/index.js +1 -1
  148. package/es/icon/icon-calendar/icon-calendar.vue_vue_type_script_setup_true_lang.js +1 -1
  149. package/es/icon/icon-caret-down/icon-caret-down.vue_vue_type_script_setup_true_lang.js +1 -1
  150. package/es/icon/icon-caret-left/icon-caret-left.vue_vue_type_script_setup_true_lang.js +1 -1
  151. package/es/icon/icon-caret-right/icon-caret-right.vue_vue_type_script_setup_true_lang.js +1 -1
  152. package/es/icon/icon-caret-up/icon-caret-up.vue_vue_type_script_setup_true_lang.js +1 -1
  153. package/es/icon/icon-check/icon-check.vue_vue_type_script_setup_true_lang.js +1 -1
  154. package/es/icon/icon-check-circle-fill/icon-check-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  155. package/es/icon/icon-clock-circle/icon-clock-circle.vue_vue_type_script_setup_true_lang.js +1 -1
  156. package/es/icon/icon-close/icon-close.vue_vue_type_script_setup_true_lang.js +1 -1
  157. package/es/icon/icon-close-circle-fill/icon-close-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  158. package/es/icon/icon-copy/icon-copy.vue_vue_type_script_setup_true_lang.js +1 -1
  159. package/es/icon/icon-delete/icon-delete.vue_vue_type_script_setup_true_lang.js +1 -1
  160. package/es/icon/icon-double-left/icon-double-left.vue_vue_type_script_setup_true_lang.js +1 -1
  161. package/es/icon/icon-double-right/icon-double-right.vue_vue_type_script_setup_true_lang.js +1 -1
  162. package/es/icon/icon-down/icon-down.vue_vue_type_script_setup_true_lang.js +1 -1
  163. package/es/icon/icon-drag-dot/icon-drag-dot.vue_vue_type_script_setup_true_lang.js +1 -1
  164. package/es/icon/icon-drag-dot-vertical/icon-drag-dot-vertical.vue_vue_type_script_setup_true_lang.js +1 -1
  165. package/es/icon/icon-edit/icon-edit.vue_vue_type_script_setup_true_lang.js +1 -1
  166. package/es/icon/icon-empty/icon-empty.vue_vue_type_script_setup_true_lang.js +1 -1
  167. package/es/icon/icon-exclamation/icon-exclamation.vue_vue_type_script_setup_true_lang.js +1 -1
  168. package/es/icon/icon-exclamation-circle-fill/icon-exclamation-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  169. package/es/icon/icon-eye/icon-eye.vue_vue_type_script_setup_true_lang.js +1 -1
  170. package/es/icon/icon-eye-invisible/icon-eye-invisible.vue_vue_type_script_setup_true_lang.js +1 -1
  171. package/es/icon/icon-face-frown-fill/icon-face-frown-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  172. package/es/icon/icon-face-meh-fill/icon-face-meh-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  173. package/es/icon/icon-face-smile-fill/icon-face-smile-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  174. package/es/icon/icon-file/icon-file.vue_vue_type_script_setup_true_lang.js +1 -1
  175. package/es/icon/icon-file-audio/icon-file-audio.vue_vue_type_script_setup_true_lang.js +1 -1
  176. package/es/icon/icon-file-image/icon-file-image.vue_vue_type_script_setup_true_lang.js +1 -1
  177. package/es/icon/icon-file-pdf/icon-file-pdf.vue_vue_type_script_setup_true_lang.js +1 -1
  178. package/es/icon/icon-file-video/icon-file-video.vue_vue_type_script_setup_true_lang.js +1 -1
  179. package/es/icon/icon-filter/icon-filter.vue_vue_type_script_setup_true_lang.js +1 -1
  180. package/es/icon/icon-fullscreen/icon-fullscreen.vue_vue_type_script_setup_true_lang.js +1 -1
  181. package/es/icon/icon-image-close/icon-image-close.vue_vue_type_script_setup_true_lang.js +1 -1
  182. package/es/icon/icon-info/icon-info.vue_vue_type_script_setup_true_lang.js +1 -1
  183. package/es/icon/icon-info-circle-fill/icon-info-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  184. package/es/icon/icon-left/icon-left.vue_vue_type_script_setup_true_lang.js +1 -1
  185. package/es/icon/icon-link/icon-link.vue_vue_type_script_setup_true_lang.js +1 -1
  186. package/es/icon/icon-list/icon-list.js +5 -0
  187. package/es/icon/icon-list/icon-list.vue_vue_type_script_setup_true_lang.js +52 -0
  188. package/es/icon/icon-list/index.js +9 -0
  189. package/es/icon/icon-loading/icon-loading.vue_vue_type_script_setup_true_lang.js +1 -1
  190. package/es/icon/icon-menu/icon-menu.vue_vue_type_script_setup_true_lang.js +1 -1
  191. package/es/icon/icon-menu-fold/icon-menu-fold.vue_vue_type_script_setup_true_lang.js +1 -1
  192. package/es/icon/icon-menu-unfold/icon-menu-unfold.vue_vue_type_script_setup_true_lang.js +1 -1
  193. package/es/icon/icon-minus/icon-minus.vue_vue_type_script_setup_true_lang.js +1 -1
  194. package/es/icon/icon-more/icon-more.vue_vue_type_script_setup_true_lang.js +1 -1
  195. package/es/icon/icon-oblique-line/icon-oblique-line.vue_vue_type_script_setup_true_lang.js +1 -1
  196. package/es/icon/icon-original-size/icon-original-size.vue_vue_type_script_setup_true_lang.js +1 -1
  197. package/es/icon/icon-pause/icon-pause.vue_vue_type_script_setup_true_lang.js +1 -1
  198. package/es/icon/icon-play-arrow-fill/icon-play-arrow-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  199. package/es/icon/icon-plus/icon-plus.vue_vue_type_script_setup_true_lang.js +1 -1
  200. package/es/icon/icon-question-circle/icon-question-circle.vue_vue_type_script_setup_true_lang.js +1 -1
  201. package/es/icon/icon-right/icon-right.vue_vue_type_script_setup_true_lang.js +1 -1
  202. package/es/icon/icon-rotate-left/icon-rotate-left.vue_vue_type_script_setup_true_lang.js +1 -1
  203. package/es/icon/icon-rotate-right/icon-rotate-right.vue_vue_type_script_setup_true_lang.js +1 -1
  204. package/es/icon/icon-search/icon-search.vue_vue_type_script_setup_true_lang.js +1 -1
  205. package/es/icon/icon-star-fill/icon-star-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  206. package/es/icon/icon-to-top/icon-to-top.vue_vue_type_script_setup_true_lang.js +2 -2
  207. package/es/icon/icon-up/icon-up.vue_vue_type_script_setup_true_lang.js +1 -1
  208. package/es/icon/icon-upload/icon-upload.vue_vue_type_script_setup_true_lang.js +1 -1
  209. package/es/icon/icon-zoom-in/icon-zoom-in.vue_vue_type_script_setup_true_lang.js +1 -1
  210. package/es/icon/icon-zoom-out/icon-zoom-out.vue_vue_type_script_setup_true_lang.js +1 -1
  211. package/es/icon-component/icon.vue_vue_type_script_setup_true_lang.js +1 -1
  212. package/es/icon.js +6 -6
  213. package/es/image/hooks/use-image-drag.js +3 -1
  214. package/es/image/image-footer.vue_vue_type_script_setup_true_lang.js +1 -1
  215. package/es/image/image.vue_vue_type_script_setup_true_lang.js +3 -3
  216. package/es/image/index.js +1 -1
  217. package/es/image/preview-arrow.vue_vue_type_script_setup_true_lang.js +1 -1
  218. package/es/image/preview-group.vue_vue_type_script_setup_true_lang.js +1 -1
  219. package/es/image/preview-toolbar.vue_vue_type_script_setup_true_lang.js +1 -1
  220. package/es/image/preview.vue_vue_type_script_setup_true_lang.js +3 -2
  221. package/es/index.css +81 -0
  222. package/es/index.d.ts +5 -3
  223. package/es/index.js +4 -3
  224. package/es/index.scss +1 -0
  225. package/es/input/index.js +1 -1
  226. package/es/input/input-group.vue_vue_type_script_setup_true_lang.js +1 -1
  227. package/es/input/input-password.vue_vue_type_script_setup_true_lang.js +1 -1
  228. package/es/input/input.js +1 -1
  229. package/es/input-number/input-number.js +2 -2
  230. package/es/input-tag/input-tag.js +7 -4
  231. package/es/input-tag/utils.js +1 -1
  232. package/es/json-form/index.d.ts +5 -5
  233. package/es/json-form/index.js +2 -2
  234. package/es/json-form/json-form-component.vue_vue_type_script_setup_true_lang.js +1 -1
  235. package/es/json-form/json-form-item.vue_vue_type_script_setup_true_lang.js +4 -6
  236. package/es/json-form/json-form.vue_vue_type_script_setup_true_lang.js +4 -4
  237. package/es/json-form/types.d.ts +80 -110
  238. package/es/json-form/types.js +3 -3
  239. package/es/json-form/utils.d.ts +5 -6
  240. package/es/json-form/utils.js +69 -196
  241. package/es/kv-list/constants.d.ts +1 -0
  242. package/es/kv-list/constants.js +127 -0
  243. package/es/kv-list/index.d.ts +304 -0
  244. package/es/kv-list/index.js +10 -0
  245. package/es/kv-list/kv-list-row.js +5 -0
  246. package/es/kv-list/kv-list-row.vue.d.ts +29 -0
  247. package/es/kv-list/kv-list-row.vue_vue_type_script_setup_true_lang.js +121 -0
  248. package/es/kv-list/kv-list.js +5 -0
  249. package/es/kv-list/kv-list.vue.d.ts +34 -0
  250. package/es/kv-list/kv-list.vue_vue_type_script_setup_true_lang.js +262 -0
  251. package/es/kv-list/style/css.js +2 -0
  252. package/es/kv-list/style/index.css +86 -0
  253. package/es/kv-list/style/index.d.ts +2 -0
  254. package/es/kv-list/style/index.js +2 -0
  255. package/es/kv-list/style/index.scss +93 -0
  256. package/es/kv-list/style/token.scss +14 -0
  257. package/es/kv-list/types.d.ts +29 -0
  258. package/es/kv-list/utils.d.ts +8 -0
  259. package/es/kv-list/utils.js +32 -0
  260. package/es/layout/content.vue_vue_type_script_setup_true_lang.js +1 -1
  261. package/es/layout/footer.vue_vue_type_script_setup_true_lang.js +1 -1
  262. package/es/layout/header.vue_vue_type_script_setup_true_lang.js +1 -1
  263. package/es/layout/index.js +1 -1
  264. package/es/layout/layout.vue_vue_type_script_setup_true_lang.js +1 -1
  265. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +1 -1
  266. package/es/link/link.vue_vue_type_script_setup_true_lang.js +2 -2
  267. package/es/list/index.js +1 -1
  268. package/es/list/list-item-meta.vue_vue_type_script_setup_true_lang.js +1 -1
  269. package/es/list/list.js +2 -2
  270. package/es/locale/interface.d.ts +11 -0
  271. package/es/locale/lang/ar-eg.js +2 -0
  272. package/es/locale/lang/de-de.js +2 -0
  273. package/es/locale/lang/en-us.js +2 -0
  274. package/es/locale/lang/es-es.js +2 -0
  275. package/es/locale/lang/fr-fr.js +2 -0
  276. package/es/locale/lang/id-id.js +2 -0
  277. package/es/locale/lang/it-it.js +2 -0
  278. package/es/locale/lang/ja-jp.js +2 -0
  279. package/es/locale/lang/km-kh.js +2 -0
  280. package/es/locale/lang/ko-kr.js +2 -0
  281. package/es/locale/lang/kv-list.d.ts +2 -0
  282. package/es/locale/lang/kv-list.js +14 -0
  283. package/es/locale/lang/ms-my.js +2 -0
  284. package/es/locale/lang/nl-nl.js +2 -0
  285. package/es/locale/lang/pt-pt.js +2 -0
  286. package/es/locale/lang/ru-ru.js +2 -0
  287. package/es/locale/lang/th-th.js +2 -0
  288. package/es/locale/lang/vi-vn.js +2 -0
  289. package/es/locale/lang/zh-cn.js +11 -0
  290. package/es/locale/lang/zh-tw.js +11 -0
  291. package/es/mention/index.d.ts +9 -0
  292. package/es/mention/mention.d.ts +7 -0
  293. package/es/mention/mention.js +9 -2
  294. package/es/menu/base-menu.vue.d.ts +7 -0
  295. package/es/menu/base-menu.vue_vue_type_script_setup_true_lang.js +4 -2
  296. package/es/menu/context.d.ts +1 -1
  297. package/es/menu/indent.vue_vue_type_script_setup_true_lang.js +1 -1
  298. package/es/menu/index.js +1 -1
  299. package/es/menu/interface.d.ts +2 -0
  300. package/es/menu/item-group.vue_vue_type_script_setup_true_lang.js +2 -2
  301. package/es/menu/item.d.ts +1 -1
  302. package/es/menu/item.js +1 -1
  303. package/es/menu/menu.d.ts +16 -0
  304. package/es/menu/menu.js +3 -2
  305. package/es/menu/overflow-wrap.js +4 -1
  306. package/es/menu/sub-menu-inline.vue_vue_type_script_setup_true_lang.js +2 -2
  307. package/es/menu/sub-menu-pop.vue_vue_type_script_setup_true_lang.js +8 -3
  308. package/es/menu/sub-menu.js +1 -1
  309. package/es/message/index.js +1 -1
  310. package/es/message/message.vue_vue_type_script_setup_true_lang.js +1 -1
  311. package/es/modal/index.js +2 -2
  312. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +2 -2
  313. package/es/notification/index.js +1 -1
  314. package/es/notification/notification.vue_vue_type_script_setup_true_lang.js +1 -1
  315. package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +1 -1
  316. package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +1 -1
  317. package/es/pagination/page-item-step.vue_vue_type_script_setup_true_lang.js +1 -1
  318. package/es/pagination/page-item.vue_vue_type_script_setup_true_lang.js +1 -1
  319. package/es/pagination/page-jumper.vue_vue_type_script_setup_true_lang.js +1 -1
  320. package/es/pagination/page-options.vue_vue_type_script_setup_true_lang.js +1 -1
  321. package/es/popconfirm/index.d.ts +9 -0
  322. package/es/popconfirm/popconfirm.vue.d.ts +7 -0
  323. package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +5 -2
  324. package/es/popover/index.d.ts +9 -0
  325. package/es/popover/popover.vue.d.ts +7 -0
  326. package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +6 -3
  327. package/es/progress/circle.vue_vue_type_script_setup_true_lang.js +1 -1
  328. package/es/progress/line.vue_vue_type_script_setup_true_lang.js +1 -1
  329. package/es/progress/progress.vue_vue_type_script_setup_true_lang.js +1 -1
  330. package/es/progress/steps.vue_vue_type_script_setup_true_lang.js +1 -1
  331. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +3 -4
  332. package/es/radio/index.js +1 -1
  333. package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +2 -5
  334. package/es/result/result.vue_vue_type_script_setup_true_lang.js +1 -1
  335. package/es/scrollbar/scrollbar.vue_vue_type_script_setup_true_lang.js +1 -1
  336. package/es/sd-vue.js +4 -2
  337. package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +1 -1
  338. package/es/select/hooks/use-options.js +1 -1
  339. package/es/select/hooks/use-select.js +1 -1
  340. package/es/select/index.d.ts +33 -6
  341. package/es/select/select-dropdown.vue_vue_type_script_setup_true_lang.js +4 -3
  342. package/es/select/select.d.ts +19 -3
  343. package/es/select/select.js +64 -59
  344. package/es/select/utils.js +2 -2
  345. package/es/selectable-card/selectable-card.vue_vue_type_script_setup_true_lang.js +1 -1
  346. package/es/skeleton/index.js +1 -1
  347. package/es/skeleton/line.vue_vue_type_script_setup_true_lang.js +1 -1
  348. package/es/skeleton/shape.vue_vue_type_script_setup_true_lang.js +1 -1
  349. package/es/skeleton/skeleton.vue_vue_type_script_setup_true_lang.js +2 -2
  350. package/es/slider/slider-button.vue_vue_type_script_setup_true_lang.js +1 -1
  351. package/es/slider/slider-dots.vue_vue_type_script_setup_true_lang.js +1 -1
  352. package/es/slider/slider-input.vue_vue_type_script_setup_true_lang.js +1 -1
  353. package/es/slider/slider-marks.vue_vue_type_script_setup_true_lang.js +1 -1
  354. package/es/slider/slider-ticks.vue_vue_type_script_setup_true_lang.js +1 -1
  355. package/es/slider/slider.vue_vue_type_script_setup_true_lang.js +1 -1
  356. package/es/split/split.vue_vue_type_script_setup_true_lang.js +2 -2
  357. package/es/statistic/countdown.vue_vue_type_script_setup_true_lang.js +6 -6
  358. package/es/statistic/index.js +1 -1
  359. package/es/statistic/statistic.vue_vue_type_script_setup_true_lang.js +3 -3
  360. package/es/steps/index.js +1 -1
  361. package/es/steps/step.vue_vue_type_script_setup_true_lang.js +1 -1
  362. package/es/steps/steps.vue_vue_type_script_setup_true_lang.js +1 -1
  363. package/es/style/theme/z-index.js +1 -1
  364. package/es/switch/switch.vue_vue_type_script_setup_true_lang.js +3 -3
  365. package/es/table/index.js +1 -1
  366. package/es/table/interface.d.ts +2 -0
  367. package/es/table/table-operation-td.js +1 -1
  368. package/es/table/table-operation-th.js +1 -1
  369. package/es/table/table-td.js +1 -1
  370. package/es/table/table-th.js +3 -2
  371. package/es/table/table.js +6 -4
  372. package/es/table/utils.js +2 -2
  373. package/es/tabs/index.js +1 -1
  374. package/es/tabs/tab-pane.vue_vue_type_script_setup_true_lang.js +2 -2
  375. package/es/tabs/tabs-nav-ink.vue_vue_type_script_setup_true_lang.js +1 -1
  376. package/es/tabs/tabs-nav.js +2 -1
  377. package/es/tabs/tabs-tab.vue_vue_type_script_setup_true_lang.js +1 -1
  378. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +1 -1
  379. package/es/tag-group/tag-group.vue_vue_type_script_setup_true_lang.js +3 -4
  380. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +1 -1
  381. package/es/time-picker/index.d.ts +9 -0
  382. package/es/time-picker/panel.vue_vue_type_script_setup_true_lang.js +1 -1
  383. package/es/time-picker/time-column.vue_vue_type_script_setup_true_lang.js +1 -1
  384. package/es/time-picker/time-picker.vue.d.ts +7 -0
  385. package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +9 -3
  386. package/es/timeline/index.js +1 -1
  387. package/es/timeline/item.vue_vue_type_script_setup_true_lang.js +5 -4
  388. package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +3 -3
  389. package/es/tooltip/interface.d.ts +2 -0
  390. package/es/tooltip/tooltip.vue_vue_type_script_setup_true_lang.js +5 -2
  391. package/es/tour/index.d.ts +15 -0
  392. package/es/tour/tour.vue.d.ts +10 -0
  393. package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +108 -145
  394. package/es/tour/types.d.ts +3 -0
  395. package/es/transfer/transfer-view.vue_vue_type_script_setup_true_lang.js +2 -2
  396. package/es/transfer/transfer.vue_vue_type_script_setup_true_lang.js +3 -2
  397. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +5 -8
  398. package/es/tree/expand-transition.vue_vue_type_script_setup_true_lang.js +1 -1
  399. package/es/tree/node.js +1 -1
  400. package/es/tree/transition-node-list.vue_vue_type_script_setup_true_lang.js +1 -1
  401. package/es/tree/tree.vue_vue_type_script_setup_true_lang.js +3 -3
  402. package/es/tree/utils/tree-data.js +1 -1
  403. package/es/tree-select/hooks/use-selected-state.js +1 -1
  404. package/es/tree-select/panel.js +1 -1
  405. package/es/tree-select/tree-select.vue.d.ts +7 -0
  406. package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +146 -136
  407. package/es/trigger/index.d.ts +13 -3
  408. package/es/trigger/interface.d.ts +2 -0
  409. package/es/trigger/trigger.d.ts +8 -1
  410. package/es/trigger/trigger.js +130 -52
  411. package/es/trigger/utils.d.ts +0 -47
  412. package/es/trigger/utils.js +1 -268
  413. package/es/typography/base.js +1 -1
  414. package/es/typography/edit-content.vue_vue_type_script_setup_true_lang.js +1 -1
  415. package/es/typography/index.js +1 -1
  416. package/es/typography/operations.vue_vue_type_script_setup_true_lang.js +1 -1
  417. package/es/typography/typography.vue_vue_type_script_setup_true_lang.js +1 -1
  418. package/es/upload/upload.js +2 -2
  419. package/es/watermark/hooks/use-mutation-observer.js +2 -2
  420. package/es/watermark/utils/index.js +1 -1
  421. package/es/watermark/watermark.js +1 -1
  422. package/json/vetur-attributes.json +26 -0
  423. package/json/vetur-tags.json +13 -1
  424. package/json/web-types.json +72 -1
  425. package/package.json +15 -13
  426. package/es/_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/toPropertyKey.js +0 -9
@@ -0,0 +1,262 @@
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
2
+ import { getPrefixCls } from "../_utils/global-config.js";
3
+ import { useI18n } from "../locale/index.js";
4
+ import Button from "../button/index.js";
5
+ import IconPlus from "../icon/icon-plus/index.js";
6
+ import Textarea from "../textarea/index.js";
7
+ import IconDelete from "../icon/icon-delete/index.js";
8
+ import IconEdit from "../icon/icon-edit/index.js";
9
+ import IconList from "../icon/icon-list/index.js";
10
+ import kv_list_row_default from "./kv-list-row.js";
11
+ import { isSameKvList, normalizeKvList, parseBulkKvList, stringifyKvList } from "./utils.js";
12
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, normalizeClass, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useModel, watch, withCtx } from "vue";
13
+ import { VueDraggable } from "vue-draggable-plus";
14
+ //#region components/kv-list/kv-list.vue?vue&type=script&setup=true&lang.ts
15
+ var kv_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "KvList" }), {}, {
16
+ __name: "kv-list",
17
+ props: /*@__PURE__*/ mergeModels({
18
+ type: {},
19
+ keyProps: {},
20
+ valueProps: {},
21
+ disabled: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ bulkEditable: { type: Boolean }
26
+ }, {
27
+ "json": { default: () => [] },
28
+ "jsonModifiers": {},
29
+ "bulk": { default: "" },
30
+ "bulkModifiers": {}
31
+ }),
32
+ emits: ["update:json", "update:bulk"],
33
+ setup(__props) {
34
+ const jsonModel = useModel(__props, "json");
35
+ const bulkModel = useModel(__props, "bulk");
36
+ const prefixCls = getPrefixCls("kv-list");
37
+ const { t } = useI18n();
38
+ const rowSelector = `.${prefixCls}-row`;
39
+ const handleSelector = `.${prefixCls}-drag-handle`;
40
+ const bulkMode = ref(false);
41
+ const bulkAvailable = computed(() => {
42
+ var _props$bulkEditable;
43
+ return (_props$bulkEditable = __props.bulkEditable) !== null && _props$bulkEditable !== void 0 ? _props$bulkEditable : __props.type !== "secret";
44
+ });
45
+ const rows = ref([]);
46
+ let id = 0;
47
+ let suppressedJsonUpdate;
48
+ function createWorkingItem(item) {
49
+ return {
50
+ id: id++,
51
+ key: item.key,
52
+ value: item.value
53
+ };
54
+ }
55
+ function publicRows() {
56
+ return normalizeKvList(rows.value);
57
+ }
58
+ function replaceRows(items) {
59
+ const normalizedItems = normalizeKvList(items);
60
+ rows.value = normalizedItems.length > 0 ? normalizedItems.map(createWorkingItem) : [createWorkingItem({
61
+ key: "",
62
+ value: ""
63
+ })];
64
+ }
65
+ function commitRows() {
66
+ const items = publicRows();
67
+ const bulk = stringifyKvList(items);
68
+ if (!isSameKvList(normalizeKvList(jsonModel.value), items)) jsonModel.value = items;
69
+ if (bulkModel.value !== bulk) bulkModel.value = bulk;
70
+ }
71
+ function addItem() {
72
+ if (__props.disabled) return;
73
+ rows.value.push(createWorkingItem({
74
+ key: "",
75
+ value: ""
76
+ }));
77
+ }
78
+ function updateItem(index, item) {
79
+ if (__props.disabled) return;
80
+ rows.value[index] = item;
81
+ commitRows();
82
+ }
83
+ function removeItem(index) {
84
+ if (__props.disabled) return;
85
+ rows.value.splice(index, 1);
86
+ if (rows.value.length === 0) addItem();
87
+ commitRows();
88
+ }
89
+ function clearItems() {
90
+ if (__props.disabled) return;
91
+ replaceRows([]);
92
+ commitRows();
93
+ }
94
+ const initialJson = normalizeKvList(jsonModel.value);
95
+ const initialBulk = parseBulkKvList(bulkModel.value);
96
+ if (initialJson.length > 0) {
97
+ replaceRows(initialJson);
98
+ bulkModel.value = stringifyKvList(initialJson);
99
+ } else if (initialBulk.length > 0) {
100
+ replaceRows(initialBulk);
101
+ jsonModel.value = initialBulk;
102
+ } else replaceRows([]);
103
+ watch(bulkAvailable, (available) => {
104
+ if (!available) bulkMode.value = false;
105
+ });
106
+ watch(jsonModel, (value) => {
107
+ const items = normalizeKvList(value);
108
+ if (suppressedJsonUpdate && isSameKvList(items, suppressedJsonUpdate)) {
109
+ suppressedJsonUpdate = void 0;
110
+ return;
111
+ }
112
+ if (isSameKvList(items, publicRows())) return;
113
+ replaceRows(items);
114
+ const bulk = stringifyKvList(items);
115
+ if (bulkModel.value !== bulk) bulkModel.value = bulk;
116
+ }, { deep: true });
117
+ watch(bulkModel, (value) => {
118
+ const items = parseBulkKvList(value);
119
+ if (isSameKvList(items, publicRows())) return;
120
+ replaceRows(items);
121
+ if (!isSameKvList(items, normalizeKvList(jsonModel.value))) {
122
+ suppressedJsonUpdate = items;
123
+ jsonModel.value = items;
124
+ }
125
+ });
126
+ return (_ctx, _cache) => {
127
+ return openBlock(), createElementBlock("div", { class: normalizeClass(unref(prefixCls)) }, [createElementVNode("div", { class: normalizeClass(`${unref(prefixCls)}-toolbar`) }, [createElementVNode("div", { class: normalizeClass(`${unref(prefixCls)}-toolbar-actions`) }, [
128
+ bulkAvailable.value ? (openBlock(), createBlock(unref(Button), {
129
+ key: 0,
130
+ type: "text",
131
+ shape: "circle",
132
+ size: "small",
133
+ tooltip: bulkMode.value ? unref(t)("kvList.switchToList") : unref(t)("kvList.switchToBulk"),
134
+ "aria-label": bulkMode.value ? unref(t)("kvList.switchToList") : unref(t)("kvList.switchToBulk"),
135
+ disabled: __props.disabled,
136
+ onClick: _cache[0] || (_cache[0] = ($event) => bulkMode.value = !bulkMode.value)
137
+ }, {
138
+ icon: withCtx(() => [bulkMode.value ? (openBlock(), createBlock(unref(IconList), { key: 0 })) : (openBlock(), createBlock(unref(IconEdit), { key: 1 }))]),
139
+ "sr-only": withCtx(() => [createTextVNode(toDisplayString(bulkMode.value ? unref(t)("kvList.switchToList") : unref(t)("kvList.switchToBulk")), 1)]),
140
+ _: 1
141
+ }, 8, [
142
+ "tooltip",
143
+ "aria-label",
144
+ "disabled"
145
+ ])) : createCommentVNode("", true),
146
+ createVNode(unref(Button), {
147
+ type: "text",
148
+ shape: "circle",
149
+ size: "small",
150
+ tooltip: unref(t)("kvList.clear"),
151
+ "aria-label": unref(t)("kvList.clear"),
152
+ disabled: __props.disabled,
153
+ onClick: clearItems
154
+ }, {
155
+ icon: withCtx(() => [createVNode(unref(IconDelete))]),
156
+ "sr-only": withCtx(() => [createTextVNode(toDisplayString(unref(t)("kvList.clear")), 1)]),
157
+ _: 1
158
+ }, 8, [
159
+ "tooltip",
160
+ "aria-label",
161
+ "disabled"
162
+ ]),
163
+ createVNode(unref(Button), {
164
+ type: "text",
165
+ shape: "circle",
166
+ size: "small",
167
+ tooltip: unref(t)("kvList.add"),
168
+ "aria-label": unref(t)("kvList.add"),
169
+ disabled: __props.disabled || bulkMode.value,
170
+ onClick: addItem
171
+ }, {
172
+ icon: withCtx(() => [createVNode(unref(IconPlus))]),
173
+ "sr-only": withCtx(() => [createTextVNode(toDisplayString(unref(t)("kvList.add")), 1)]),
174
+ _: 1
175
+ }, 8, [
176
+ "tooltip",
177
+ "aria-label",
178
+ "disabled"
179
+ ]),
180
+ renderSlot(_ctx.$slots, "toolbar-extra")
181
+ ], 2)], 2), bulkMode.value ? (openBlock(), createBlock(unref(Textarea), {
182
+ key: 0,
183
+ modelValue: bulkModel.value,
184
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => bulkModel.value = $event),
185
+ class: normalizeClass(`${unref(prefixCls)}-bulk`),
186
+ "auto-size": {
187
+ minRows: 8,
188
+ maxRows: 18
189
+ },
190
+ placeholder: unref(t)("kvList.bulkPlaceholder"),
191
+ disabled: __props.disabled,
192
+ "data-testid": "kv-list-bulk"
193
+ }, null, 8, [
194
+ "modelValue",
195
+ "class",
196
+ "placeholder",
197
+ "disabled"
198
+ ])) : (openBlock(), createBlock(unref(VueDraggable), {
199
+ key: 1,
200
+ modelValue: rows.value,
201
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => rows.value = $event),
202
+ class: normalizeClass(`${unref(prefixCls)}-rows`),
203
+ animation: 150,
204
+ draggable: rowSelector,
205
+ handle: handleSelector,
206
+ disabled: __props.disabled,
207
+ "ghost-class": `${unref(prefixCls)}-row--ghost`,
208
+ "chosen-class": `${unref(prefixCls)}-row--chosen`,
209
+ onUpdate: commitRows
210
+ }, {
211
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(rows.value, (item, index) => {
212
+ return openBlock(), createBlock(kv_list_row_default, {
213
+ key: item.id,
214
+ item,
215
+ index,
216
+ type: __props.type,
217
+ "key-props": __props.keyProps,
218
+ "value-props": __props.valueProps,
219
+ disabled: __props.disabled,
220
+ onUpdate: ($event) => updateItem(index, $event),
221
+ onRemove: ($event) => removeItem(index)
222
+ }, createSlots({
223
+ actions: withCtx(() => [renderSlot(_ctx.$slots, "row-actions", {
224
+ item: {
225
+ key: item.key,
226
+ value: item.value
227
+ },
228
+ index
229
+ })]),
230
+ _: 2
231
+ }, [_ctx.$slots.key ? {
232
+ name: "key",
233
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "key", mergeProps({ ref_for: true }, slotProps))]),
234
+ key: "0"
235
+ } : void 0, _ctx.$slots.value ? {
236
+ name: "value",
237
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "value", mergeProps({ ref_for: true }, slotProps))]),
238
+ key: "1"
239
+ } : void 0]), 1032, [
240
+ "item",
241
+ "index",
242
+ "type",
243
+ "key-props",
244
+ "value-props",
245
+ "disabled",
246
+ "onUpdate",
247
+ "onRemove"
248
+ ]);
249
+ }), 128))]),
250
+ _: 3
251
+ }, 8, [
252
+ "modelValue",
253
+ "class",
254
+ "disabled",
255
+ "ghost-class",
256
+ "chosen-class"
257
+ ]))], 2);
258
+ };
259
+ }
260
+ }));
261
+ //#endregion
262
+ export { kv_list_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,2 @@
1
+ import "../../style/index.css";
2
+ import "./index.css";
@@ -0,0 +1,86 @@
1
+ /******** borderSize *******/
2
+ /******** borderStyle *******/
3
+ /******** radius *******/
4
+ /******** shadow distance *******/
5
+ /******** size *******/
6
+ /******** spacing *******/
7
+ /******** shadow *******/
8
+ /******** opacity *******/
9
+ /******** fontSize *******/
10
+ /******** fontWeight ********/
11
+ /******** Primary *******/
12
+ /******** success *******/
13
+ /******** warning *******/
14
+ /******** danger *******/
15
+ /******** link *******/
16
+ /******** radius *******/
17
+ /********* icon hover *********/
18
+ .sd-kv-list {
19
+ box-sizing: border-box;
20
+ overflow: hidden;
21
+ background: var(--sd-color-bg-2);
22
+ border: 1px solid var(--sd-color-neutral-3);
23
+ border-radius: var(--sd-border-radius-medium);
24
+ }
25
+ .sd-kv-list-toolbar {
26
+ display: flex;
27
+ justify-content: flex-end;
28
+ padding: 8px;
29
+ border-bottom: 1px solid var(--sd-color-neutral-3);
30
+ }
31
+ .sd-kv-list-toolbar-actions, .sd-kv-list-row-actions {
32
+ display: flex;
33
+ flex-shrink: 0;
34
+ gap: 8px;
35
+ align-items: center;
36
+ }
37
+ .sd-kv-list-rows {
38
+ display: flex;
39
+ flex-direction: column;
40
+ }
41
+ .sd-kv-list-row {
42
+ display: grid;
43
+ grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto;
44
+ gap: 8px;
45
+ align-items: center;
46
+ padding: 8px;
47
+ border-bottom: 1px solid var(--sd-color-neutral-3);
48
+ transition: background-color 0.2s, opacity 0.2s;
49
+ }
50
+ .sd-kv-list-row:last-child {
51
+ border-bottom: 0;
52
+ }
53
+ .sd-kv-list-row--ghost {
54
+ background: var(--sd-color-primary-light-1);
55
+ opacity: 0.45;
56
+ }
57
+ .sd-kv-list-row--chosen {
58
+ background: var(--sd-color-primary-light-1);
59
+ }
60
+ .sd-kv-list-drag-handle {
61
+ color: var(--sd-color-text-3);
62
+ cursor: grab;
63
+ }
64
+ .sd-kv-list-drag-handle:active {
65
+ cursor: grabbing;
66
+ }
67
+ .sd-kv-list-key, .sd-kv-list-value {
68
+ min-width: 0;
69
+ }
70
+ .sd-kv-list-bulk {
71
+ display: block;
72
+ border: 0;
73
+ border-radius: 0;
74
+ }
75
+ @media screen and (width <= 640px) {
76
+ .sd-kv-list-row {
77
+ grid-template-columns: auto minmax(0, 1fr) auto;
78
+ }
79
+ .sd-kv-list-value {
80
+ grid-column: 2;
81
+ }
82
+ .sd-kv-list-row-actions {
83
+ grid-row: 1/span 2;
84
+ grid-column: 3;
85
+ }
86
+ }
@@ -0,0 +1,2 @@
1
+ import '../../style/index.scss';
2
+ import './index.scss';
@@ -0,0 +1,2 @@
1
+ import "../../style/index.scss";
2
+ import "./index.scss";
@@ -0,0 +1,93 @@
1
+ @use '@style/theme/index.scss' as theme;
2
+ @use 'sass:string';
3
+ @use '@components/kv-list/style/token.scss' as *;
4
+
5
+ $kv-list-prefix-cls: string.unquote('#{theme.$prefix}-kv-list');
6
+
7
+ .#{$kv-list-prefix-cls} {
8
+ box-sizing: border-box;
9
+ overflow: hidden;
10
+ background: $kv-list-color-bg;
11
+ border: $kv-list-border-width solid $kv-list-color-border;
12
+ border-radius: $kv-list-border-radius;
13
+
14
+ &-toolbar {
15
+ display: flex;
16
+ justify-content: flex-end;
17
+ padding: $kv-list-padding;
18
+ border-bottom: $kv-list-border-width solid $kv-list-color-border;
19
+ }
20
+
21
+ &-toolbar-actions,
22
+ &-row-actions {
23
+ display: flex;
24
+ flex-shrink: 0;
25
+ gap: $kv-list-gap;
26
+ align-items: center;
27
+ }
28
+
29
+ &-rows {
30
+ display: flex;
31
+ flex-direction: column;
32
+ }
33
+
34
+ &-row {
35
+ display: grid;
36
+ grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto;
37
+ gap: $kv-list-gap;
38
+ align-items: center;
39
+ padding: $kv-list-padding;
40
+ border-bottom: $kv-list-border-width solid $kv-list-color-border;
41
+ transition:
42
+ background-color $kv-list-transition-duration,
43
+ opacity $kv-list-transition-duration;
44
+
45
+ &:last-child {
46
+ border-bottom: 0;
47
+ }
48
+
49
+ &--ghost {
50
+ background: $kv-list-color-ghost;
51
+ opacity: 0.45;
52
+ }
53
+
54
+ &--chosen {
55
+ background: $kv-list-color-ghost;
56
+ }
57
+ }
58
+
59
+ &-drag-handle {
60
+ color: $kv-list-color-drag;
61
+ cursor: grab;
62
+
63
+ &:active {
64
+ cursor: grabbing;
65
+ }
66
+ }
67
+
68
+ &-key,
69
+ &-value {
70
+ min-width: 0;
71
+ }
72
+
73
+ &-bulk {
74
+ display: block;
75
+ border: 0;
76
+ border-radius: 0;
77
+ }
78
+
79
+ @media screen and (width <= 640px) {
80
+ &-row {
81
+ grid-template-columns: auto minmax(0, 1fr) auto;
82
+ }
83
+
84
+ &-value {
85
+ grid-column: 2;
86
+ }
87
+
88
+ &-row-actions {
89
+ grid-row: 1 / span 2;
90
+ grid-column: 3;
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,14 @@
1
+ @use '@style/theme/index.scss' as global;
2
+ @use 'sass:string';
3
+
4
+ @forward '@style/theme/index.scss';
5
+
6
+ $kv-list-color-bg: var(string.unquote('#{global.$sd-cssvars-prefix}-color-bg-2'));
7
+ $kv-list-color-border: var(string.unquote('#{global.$sd-cssvars-prefix}-color-neutral-3'));
8
+ $kv-list-color-drag: var(string.unquote('#{global.$sd-cssvars-prefix}-color-text-3'));
9
+ $kv-list-color-ghost: var(string.unquote('#{global.$sd-cssvars-prefix}-color-primary-light-1'));
10
+ $kv-list-border-width: global.$border-1;
11
+ $kv-list-border-radius: global.$radius-medium;
12
+ $kv-list-gap: global.$spacing-4;
13
+ $kv-list-padding: global.$spacing-4;
14
+ $kv-list-transition-duration: global.$transition-duration-2;
@@ -0,0 +1,29 @@
1
+ import type AutoComplete from '../auto-complete';
2
+ import type Input from '../input';
3
+ import type { InputPassword } from '../input';
4
+ type ComponentPropsOf<T> = T extends new (...args: never[]) => {
5
+ $props: infer P;
6
+ } ? P : never;
7
+ type ControlledFieldProps = 'modelValue' | 'defaultValue' | 'onUpdate:modelValue';
8
+ export type KvListType = 'http-header' | 'secret';
9
+ export interface KvListItem {
10
+ key: string;
11
+ value: string;
12
+ }
13
+ export type KvListKeyProps = Partial<Omit<ComponentPropsOf<typeof Input> & ComponentPropsOf<typeof AutoComplete>, ControlledFieldProps>>;
14
+ export type KvListValueProps = Partial<Omit<ComponentPropsOf<typeof Input> & ComponentPropsOf<typeof InputPassword>, ControlledFieldProps>>;
15
+ export interface KvListFieldSlotProps {
16
+ value: string;
17
+ item: Readonly<KvListItem>;
18
+ index: number;
19
+ props: Readonly<Record<string, unknown>>;
20
+ update: (value: string) => void;
21
+ }
22
+ export interface KvListRowActionsSlotProps {
23
+ item: Readonly<KvListItem>;
24
+ index: number;
25
+ }
26
+ export interface KvListWorkingItem extends KvListItem {
27
+ id: number;
28
+ }
29
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { KvListItem } from './types';
2
+ export declare function normalizeKvList(items: readonly KvListItem[] | undefined): {
3
+ key: string;
4
+ value: string;
5
+ }[];
6
+ export declare function parseBulkKvList(value: string): KvListItem[];
7
+ export declare function stringifyKvList(items: readonly KvListItem[]): string;
8
+ export declare function isSameKvList(first: readonly KvListItem[], second: readonly KvListItem[]): boolean;
@@ -0,0 +1,32 @@
1
+ //#region components/kv-list/utils.ts
2
+ function normalizeKvList(items) {
3
+ if (!items) return [];
4
+ return items.filter((item) => item.key.trim() !== "").map((item) => ({
5
+ key: item.key,
6
+ value: item.value
7
+ }));
8
+ }
9
+ function parseBulkKvList(value) {
10
+ return value.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).map((line) => {
11
+ const separatorIndex = line.indexOf(":");
12
+ if (separatorIndex < 0) return {
13
+ key: line,
14
+ value: ""
15
+ };
16
+ return {
17
+ key: line.slice(0, separatorIndex).trim(),
18
+ value: line.slice(separatorIndex + 1).trimStart()
19
+ };
20
+ }).filter((item) => item.key !== "");
21
+ }
22
+ function stringifyKvList(items) {
23
+ return normalizeKvList(items).map(({ key, value }) => `${key}: ${value}`).join("\n");
24
+ }
25
+ function isSameKvList(first, second) {
26
+ return first.length === second.length && first.every((item, index) => {
27
+ var _second$index, _second$index2;
28
+ return item.key === ((_second$index = second[index]) === null || _second$index === void 0 ? void 0 : _second$index.key) && item.value === ((_second$index2 = second[index]) === null || _second$index2 === void 0 ? void 0 : _second$index2.value);
29
+ });
30
+ }
31
+ //#endregion
32
+ export { isSameKvList, normalizeKvList, parseBulkKvList, stringifyKvList };
@@ -1,4 +1,4 @@
1
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { computed, createBlock, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, withCtx } from "vue";
4
4
  //#region components/layout/content.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { computed, createBlock, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, withCtx } from "vue";
4
4
  //#region components/layout/footer.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { computed, createBlock, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, withCtx } from "vue";
4
4
  //#region components/layout/header.vue?vue&type=script&setup=true&lang.ts
@@ -21,4 +21,4 @@ var Layout = Object.assign(layout_default, {
21
21
  }
22
22
  });
23
23
  //#endregion
24
- export { Layout as default };
24
+ export { content_default as LayoutContent, footer_default as LayoutFooter, header_default as LayoutHeader, sider_default as LayoutSider, Layout as default };
@@ -1,5 +1,5 @@
1
1
  import { configProviderInjectionKey } from "../config-provider/context.js";
2
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
2
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { LayoutContextInjectionKey } from "./context.js";
5
5
  import { useHasSider } from "./hooks/use-has-sider.js";
@@ -1,5 +1,5 @@
1
1
  import { configProviderInjectionKey } from "../config-provider/context.js";
2
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
2
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isActivationKey } from "../_utils/keyboard.js";
5
5
  import { useI18n } from "../locale/index.js";
@@ -1,4 +1,4 @@
1
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import IconLoading from "../icon/icon-loading/index.js";
4
4
  import Tooltip from "../tooltip/index.js";
@@ -83,7 +83,7 @@ var link_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
83
83
  }, {
84
84
  default: withCtx(() => [renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(unref(IconLink))])]),
85
85
  _: 3
86
- }, 8, ["content"])) : renderSlot(_ctx.$slots, "icon", { key: 2 }, () => [createVNode(unref(IconLink))])], 2)) : createCommentVNode("", true), shouldRenderEllipsis.value ? (openBlock(), createBlock(unref(PerformantEllipsis), {
86
+ }, 8, ["content"])) : renderSlot(_ctx.$slots, "icon", {}, () => [createVNode(unref(IconLink))], void 0, 2)], 2)) : createCommentVNode("", true), shouldRenderEllipsis.value ? (openBlock(), createBlock(unref(PerformantEllipsis), {
87
87
  key: 1,
88
88
  class: normalizeClass(`${unref(prefixCls)}-content`),
89
89
  "line-clamp": __props.ellipsisLineClamp,
package/es/list/index.js CHANGED
@@ -14,4 +14,4 @@ var List = Object.assign(list_default, {
14
14
  }
15
15
  });
16
16
  //#endregion
17
- export { List as default };
17
+ export { list_item_default as ListItem, list_item_meta_default as ListItemMeta, List as default };
@@ -1,4 +1,4 @@
1
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { PerformantEllipsis } from "../ellipsis/index.js";
4
4
  import { createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
package/es/list/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { configProviderInjectionKey } from "../config-provider/context.js";
2
- import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
2
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isNumber } from "../_utils/is.js";
5
5
  import { getAllElements } from "../_utils/vue-utils.js";
@@ -7,9 +7,9 @@ import virtual_list_default from "../_components/virtual-list/index.js";
7
7
  import { omit } from "../_utils/omit.js";
8
8
  import { useComponentRef } from "../_hooks/use-component-ref.js";
9
9
  import { useScrollbar } from "../_hooks/use-scrollbar.js";
10
+ import Empty from "../empty/index.js";
10
11
  import Scrollbar from "../scrollbar/index.js";
11
12
  import Spin from "../spin/index.js";
12
- import Empty from "../empty/index.js";
13
13
  import Pagination from "../pagination/index.js";
14
14
  import Grid from "../grid/index.js";
15
15
  import { usePagination } from "./use-pagination.js";
@@ -245,6 +245,17 @@ export interface SdLang {
245
245
  preset: string;
246
246
  empty: string;
247
247
  };
248
+ kvList: {
249
+ switchToList: string;
250
+ switchToBulk: string;
251
+ clear: string;
252
+ add: string;
253
+ bulkPlaceholder: string;
254
+ dragSort: string;
255
+ keyPlaceholder: string;
256
+ valuePlaceholder: string;
257
+ remove: string;
258
+ };
248
259
  a11y: SdA11yLang;
249
260
  }
250
261
  export type SdI18nMessages = Record<string, SdLang>;
@@ -1,3 +1,4 @@
1
+ import { kvListEnUS } from "./kv-list.js";
1
2
  //#region components/locale/lang/ar-eg.ts
2
3
  var calendarLang = {
3
4
  formatYear: "YYYY",
@@ -197,6 +198,7 @@ var lang = {
197
198
  preset: "ألوان النظام المضبوطة مسبقاً",
198
199
  empty: "غير متوفرة"
199
200
  },
201
+ kvList: kvListEnUS,
200
202
  a11y: {
201
203
  close: "إغلاق",
202
204
  back: "رجوع",