@sdata/web-vue 4.5.5 → 4.6.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 (446) hide show
  1. package/THIRD_PARTY_NOTICES.md +15 -0
  2. package/dist/sd.css +70 -20
  3. package/dist/sd.min.css +1 -1
  4. package/es/_components/auto-tooltip/auto-tooltip.vue_vue_type_script_setup_true_lang.js +1 -1
  5. package/es/_components/client-only.vue_vue_type_script_setup_true_lang.js +1 -1
  6. package/es/_components/feedback-icon.vue_vue_type_script_setup_true_lang.js +1 -1
  7. package/es/_components/icon-hover.vue_vue_type_script_setup_true_lang.js +1 -1
  8. package/es/_components/input-label/input-label.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/es/_components/picker/input-range.vue_vue_type_script_setup_true_lang.js +1 -1
  10. package/es/_components/picker/input.vue_vue_type_script_setup_true_lang.js +1 -1
  11. package/es/_components/resize-observer.vue_vue_type_script_setup_true_lang.js +1 -1
  12. package/es/_components/resize-trigger.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/es/_components/select-view/select-view.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/es/_components/transition/expand-transition.vue_vue_type_script_setup_true_lang.js +1 -1
  15. package/es/_components/virtual-list/virtual-list.vue_vue_type_script_setup_true_lang.js +3 -3
  16. package/es/_hooks/use-scrollbar.js +1 -1
  17. package/es/_utils/color.js +1 -1
  18. package/es/_utils/date.js +2 -2
  19. package/es/_utils/global-config.js +1 -1
  20. package/es/_utils/omit.js +1 -1
  21. package/es/_utils/responsive-observe.js +1 -1
  22. package/es/_utils/virtual-dropdown.js +1 -1
  23. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/asyncToGenerator.js +1 -1
  24. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/defineProperty.js +1 -1
  25. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/extends.js +1 -1
  26. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/objectDestructuringEmpty.js +1 -1
  27. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/objectSpread2.js +1 -1
  28. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/objectWithoutProperties.js +1 -1
  29. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/objectWithoutPropertiesLoose.js +1 -1
  30. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/toPrimitive.js +1 -1
  31. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/toPropertyKey.js +1 -1
  32. package/es/_virtual/{_@oxc-project_runtime@0.147.0 → _@oxc-project_runtime@0.148.0}/helpers/esm/typeof.js +1 -1
  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 +1 -1
  37. package/es/auto-complete/auto-complete.vue_vue_type_script_setup_true_lang.js +1 -1
  38. package/es/avatar/avatar-group.vue_vue_type_script_setup_true_lang.js +1 -1
  39. package/es/avatar/avatar.vue_vue_type_script_setup_true_lang.js +1 -1
  40. package/es/back-top/back-top.vue_vue_type_script_setup_true_lang.js +1 -1
  41. package/es/badge/badge.vue_vue_type_script_setup_true_lang.js +1 -1
  42. package/es/basic-crud-table/basic-crud-modal.vue_vue_type_script_setup_true_lang.js +2 -2
  43. package/es/basic-crud-table/basic-crud-table.vue_vue_type_script_setup_true_lang.js +2 -2
  44. package/es/bloom-menu/bloom-menu.vue_vue_type_script_setup_true_lang.js +1 -1
  45. package/es/border-beam/border-beam.vue_vue_type_script_setup_true_lang.js +1 -1
  46. package/es/border-beam/styles.js +1 -1
  47. package/es/breadcrumb/breadcrumb-item.vue_vue_type_script_setup_true_lang.js +1 -1
  48. package/es/breadcrumb/breadcrumb.vue_vue_type_script_setup_true_lang.js +1 -1
  49. package/es/button/button-group.vue_vue_type_script_setup_true_lang.js +1 -1
  50. package/es/button/button.vue_vue_type_script_setup_true_lang.js +1 -1
  51. package/es/calendar/components/cell.vue_vue_type_script_setup_true_lang.js +2 -2
  52. package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +1 -1
  53. package/es/calendar/components/index.vue_vue_type_script_setup_true_lang.js +2 -2
  54. package/es/card/card-actions.vue_vue_type_script_setup_true_lang.js +1 -1
  55. package/es/card/card-grid.vue_vue_type_script_setup_true_lang.js +1 -1
  56. package/es/card/card-meta.vue_vue_type_script_setup_true_lang.js +1 -1
  57. package/es/card/card.vue_vue_type_script_setup_true_lang.js +1 -1
  58. package/es/carousel/carousel-arrow.vue_vue_type_script_setup_true_lang.js +1 -1
  59. package/es/carousel/carousel-indicator.vue_vue_type_script_setup_true_lang.js +1 -1
  60. package/es/carousel/carousel-item.vue_vue_type_script_setup_true_lang.js +1 -1
  61. package/es/carousel/carousel.vue_vue_type_script_setup_true_lang.js +1 -1
  62. package/es/cascader/base-cascader-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  63. package/es/cascader/cascader-column.vue_vue_type_script_setup_true_lang.js +1 -1
  64. package/es/cascader/cascader-option.vue_vue_type_script_setup_true_lang.js +1 -1
  65. package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  66. package/es/cascader/cascader-search-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  67. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +1 -1
  68. package/es/checkbox/checkbox-group.vue_vue_type_script_setup_true_lang.js +1 -1
  69. package/es/checkbox/checkbox.vue_vue_type_script_setup_true_lang.js +1 -1
  70. package/es/checkbox/icon-check.vue_vue_type_script_setup_true_lang.js +1 -1
  71. package/es/collapse/collapse-item.vue_vue_type_script_setup_true_lang.js +1 -1
  72. package/es/collapse/collapse.vue_vue_type_script_setup_true_lang.js +1 -1
  73. package/es/color-picker/color-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  74. package/es/color-picker/control-bar.vue_vue_type_script_setup_true_lang.js +1 -1
  75. package/es/color-picker/gradient-thumb.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/es/color-picker/palette.vue_vue_type_script_setup_true_lang.js +1 -1
  77. package/es/color-picker/panel.vue_vue_type_script_setup_true_lang.js +1 -1
  78. package/es/color-picker/utils.js +1 -1
  79. package/es/comment/comment.vue_vue_type_script_setup_true_lang.js +1 -1
  80. package/es/components.d.ts +3 -1
  81. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +1 -1
  82. package/es/config-provider/theme-provider.vue_vue_type_script_setup_true_lang.js +1 -1
  83. package/es/config-provider/theme.js +1 -1
  84. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +2 -2
  85. package/es/cropper/cropper.vue_vue_type_script_setup_true_lang.js +2 -2
  86. package/es/date-picker/hooks/use-range-time-picker-value.js +1 -1
  87. package/es/date-picker/panels/body.vue_vue_type_script_setup_true_lang.js +1 -1
  88. package/es/date-picker/panels/date/index.vue_vue_type_script_setup_true_lang.js +1 -1
  89. package/es/date-picker/panels/footer.vue_vue_type_script_setup_true_lang.js +1 -1
  90. package/es/date-picker/panels/header.vue_vue_type_script_setup_true_lang.js +1 -1
  91. package/es/date-picker/panels/month/index.vue_vue_type_script_setup_true_lang.js +1 -1
  92. package/es/date-picker/panels/quarter/index.vue_vue_type_script_setup_true_lang.js +1 -1
  93. package/es/date-picker/panels/shortcuts.vue_vue_type_script_setup_true_lang.js +1 -1
  94. package/es/date-picker/panels/week/index.vue_vue_type_script_setup_true_lang.js +1 -1
  95. package/es/date-picker/panels/week-list.vue_vue_type_script_setup_true_lang.js +1 -1
  96. package/es/date-picker/panels/year/index.vue_vue_type_script_setup_true_lang.js +1 -1
  97. package/es/date-picker/picker-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  98. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +1 -1
  99. package/es/date-picker/pickers/date-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  100. package/es/date-picker/pickers/month-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  101. package/es/date-picker/pickers/quarter-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  102. package/es/date-picker/pickers/week-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/es/date-picker/pickers/year-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  104. package/es/date-picker/range-picker-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  105. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  106. package/es/descriptions/descriptions-item.vue_vue_type_script_setup_true_lang.js +1 -1
  107. package/es/descriptions/descriptions.vue_vue_type_script_setup_true_lang.js +1 -1
  108. package/es/divider/divider.vue_vue_type_script_setup_true_lang.js +1 -1
  109. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +2 -2
  110. package/es/drawer/index.js +2 -2
  111. package/es/dropdown/dropdown-button.vue_vue_type_script_setup_true_lang.js +1 -1
  112. package/es/dropdown/dropdown-group.vue_vue_type_script_setup_true_lang.js +1 -1
  113. package/es/dropdown/dropdown-option.vue_vue_type_script_setup_true_lang.js +1 -1
  114. package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  115. package/es/dropdown/dropdown-submenu.vue_vue_type_script_setup_true_lang.js +1 -1
  116. package/es/dropdown/dropdown.vue_vue_type_script_setup_true_lang.js +1 -1
  117. package/es/ellipsis/ellipsis.vue_vue_type_script_setup_true_lang.js +2 -2
  118. package/es/ellipsis/performant-ellipsis.vue_vue_type_script_setup_true_lang.js +2 -2
  119. package/es/empty/empty.vue_vue_type_script_setup_true_lang.js +1 -1
  120. package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +2 -2
  121. package/es/file-previewer/use-pdf-js.js +2 -2
  122. package/es/form/form-item-label.vue_vue_type_script_setup_true_lang.js +1 -1
  123. package/es/form/form-item-message.vue_vue_type_script_setup_true_lang.js +1 -1
  124. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +4 -4
  125. package/es/form/form.vue_vue_type_script_setup_true_lang.js +1 -1
  126. package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +1 -1
  127. package/es/grid/grid-item.vue_vue_type_script_setup_true_lang.js +1 -1
  128. package/es/grid/grid-row.vue_vue_type_script_setup_true_lang.js +1 -1
  129. package/es/grid/grid.vue_vue_type_script_setup_true_lang.js +1 -1
  130. package/es/icon/icon-arrow-up/icon-arrow-up.vue_vue_type_script_setup_true_lang.js +1 -1
  131. package/es/icon/icon-calendar/icon-calendar.vue_vue_type_script_setup_true_lang.js +1 -1
  132. package/es/icon/icon-caret-down/icon-caret-down.vue_vue_type_script_setup_true_lang.js +1 -1
  133. package/es/icon/icon-caret-left/icon-caret-left.vue_vue_type_script_setup_true_lang.js +1 -1
  134. package/es/icon/icon-caret-right/icon-caret-right.vue_vue_type_script_setup_true_lang.js +1 -1
  135. package/es/icon/icon-caret-up/icon-caret-up.vue_vue_type_script_setup_true_lang.js +1 -1
  136. package/es/icon/icon-check/icon-check.vue_vue_type_script_setup_true_lang.js +1 -1
  137. package/es/icon/icon-check-circle-fill/icon-check-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  138. package/es/icon/icon-clock-circle/icon-clock-circle.vue_vue_type_script_setup_true_lang.js +1 -1
  139. package/es/icon/icon-close/icon-close.vue_vue_type_script_setup_true_lang.js +1 -1
  140. package/es/icon/icon-close-circle-fill/icon-close-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  141. package/es/icon/icon-copy/icon-copy.vue_vue_type_script_setup_true_lang.js +1 -1
  142. package/es/icon/icon-delete/icon-delete.vue_vue_type_script_setup_true_lang.js +1 -1
  143. package/es/icon/icon-double-left/icon-double-left.vue_vue_type_script_setup_true_lang.js +1 -1
  144. package/es/icon/icon-double-right/icon-double-right.vue_vue_type_script_setup_true_lang.js +1 -1
  145. package/es/icon/icon-down/icon-down.vue_vue_type_script_setup_true_lang.js +1 -1
  146. package/es/icon/icon-drag-dot/icon-drag-dot.vue_vue_type_script_setup_true_lang.js +1 -1
  147. package/es/icon/icon-drag-dot-vertical/icon-drag-dot-vertical.vue_vue_type_script_setup_true_lang.js +1 -1
  148. package/es/icon/icon-edit/icon-edit.vue_vue_type_script_setup_true_lang.js +1 -1
  149. package/es/icon/icon-empty/icon-empty.vue_vue_type_script_setup_true_lang.js +1 -1
  150. package/es/icon/icon-exclamation/icon-exclamation.vue_vue_type_script_setup_true_lang.js +1 -1
  151. package/es/icon/icon-exclamation-circle-fill/icon-exclamation-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  152. package/es/icon/icon-eye/icon-eye.vue_vue_type_script_setup_true_lang.js +1 -1
  153. package/es/icon/icon-eye-invisible/icon-eye-invisible.vue_vue_type_script_setup_true_lang.js +1 -1
  154. package/es/icon/icon-face-frown-fill/icon-face-frown-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  155. package/es/icon/icon-face-meh-fill/icon-face-meh-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  156. package/es/icon/icon-face-smile-fill/icon-face-smile-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  157. package/es/icon/icon-file/icon-file.vue_vue_type_script_setup_true_lang.js +1 -1
  158. package/es/icon/icon-file-audio/icon-file-audio.vue_vue_type_script_setup_true_lang.js +1 -1
  159. package/es/icon/icon-file-image/icon-file-image.vue_vue_type_script_setup_true_lang.js +1 -1
  160. package/es/icon/icon-file-pdf/icon-file-pdf.vue_vue_type_script_setup_true_lang.js +1 -1
  161. package/es/icon/icon-file-video/icon-file-video.vue_vue_type_script_setup_true_lang.js +1 -1
  162. package/es/icon/icon-filter/icon-filter.vue_vue_type_script_setup_true_lang.js +1 -1
  163. package/es/icon/icon-fullscreen/icon-fullscreen.vue_vue_type_script_setup_true_lang.js +1 -1
  164. package/es/icon/icon-image-close/icon-image-close.vue_vue_type_script_setup_true_lang.js +1 -1
  165. package/es/icon/icon-info/icon-info.vue_vue_type_script_setup_true_lang.js +1 -1
  166. package/es/icon/icon-info-circle-fill/icon-info-circle-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  167. package/es/icon/icon-left/icon-left.vue_vue_type_script_setup_true_lang.js +1 -1
  168. package/es/icon/icon-link/icon-link.vue_vue_type_script_setup_true_lang.js +1 -1
  169. package/es/icon/icon-list/icon-list.vue_vue_type_script_setup_true_lang.js +1 -1
  170. package/es/icon/icon-loading/icon-loading.vue_vue_type_script_setup_true_lang.js +1 -1
  171. package/es/icon/icon-menu/icon-menu.vue_vue_type_script_setup_true_lang.js +1 -1
  172. package/es/icon/icon-menu-fold/icon-menu-fold.vue_vue_type_script_setup_true_lang.js +1 -1
  173. package/es/icon/icon-menu-unfold/icon-menu-unfold.vue_vue_type_script_setup_true_lang.js +1 -1
  174. package/es/icon/icon-minus/icon-minus.vue_vue_type_script_setup_true_lang.js +1 -1
  175. package/es/icon/icon-more/icon-more.vue_vue_type_script_setup_true_lang.js +1 -1
  176. package/es/icon/icon-mute/icon-mute.vue_vue_type_script_setup_true_lang.js +1 -1
  177. package/es/icon/icon-oblique-line/icon-oblique-line.vue_vue_type_script_setup_true_lang.js +1 -1
  178. package/es/icon/icon-original-size/icon-original-size.vue_vue_type_script_setup_true_lang.js +1 -1
  179. package/es/icon/icon-pause/icon-pause.vue_vue_type_script_setup_true_lang.js +1 -1
  180. package/es/icon/icon-play-arrow-fill/icon-play-arrow-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  181. package/es/icon/icon-plus/icon-plus.vue_vue_type_script_setup_true_lang.js +1 -1
  182. package/es/icon/icon-question-circle/icon-question-circle.vue_vue_type_script_setup_true_lang.js +1 -1
  183. package/es/icon/icon-right/icon-right.vue_vue_type_script_setup_true_lang.js +1 -1
  184. package/es/icon/icon-rotate-left/icon-rotate-left.vue_vue_type_script_setup_true_lang.js +1 -1
  185. package/es/icon/icon-rotate-right/icon-rotate-right.vue_vue_type_script_setup_true_lang.js +1 -1
  186. package/es/icon/icon-search/icon-search.vue_vue_type_script_setup_true_lang.js +1 -1
  187. package/es/icon/icon-star-fill/icon-star-fill.vue_vue_type_script_setup_true_lang.js +1 -1
  188. package/es/icon/icon-to-top/icon-to-top.vue_vue_type_script_setup_true_lang.js +1 -1
  189. package/es/icon/icon-up/icon-up.vue_vue_type_script_setup_true_lang.js +1 -1
  190. package/es/icon/icon-upload/icon-upload.vue_vue_type_script_setup_true_lang.js +1 -1
  191. package/es/icon/icon-voice/icon-voice.vue_vue_type_script_setup_true_lang.js +1 -1
  192. package/es/icon/icon-zoom-in/icon-zoom-in.vue_vue_type_script_setup_true_lang.js +1 -1
  193. package/es/icon/icon-zoom-out/icon-zoom-out.vue_vue_type_script_setup_true_lang.js +1 -1
  194. package/es/icon-component/add-from-icon-font-cn.js +1 -1
  195. package/es/icon-component/icon-font.vue_vue_type_script_setup_true_lang.js +1 -1
  196. package/es/icon-component/icon.vue_vue_type_script_setup_true_lang.js +1 -1
  197. package/es/icon.js +5 -5
  198. package/es/image/image-footer.vue_vue_type_script_setup_true_lang.js +1 -1
  199. package/es/image/image.vue_vue_type_script_setup_true_lang.js +1 -1
  200. package/es/image/preview-action.vue_vue_type_script_setup_true_lang.js +1 -1
  201. package/es/image/preview-arrow.vue_vue_type_script_setup_true_lang.js +1 -1
  202. package/es/image/preview-group.vue_vue_type_script_setup_true_lang.js +1 -1
  203. package/es/image/preview-toolbar.vue_vue_type_script_setup_true_lang.js +1 -1
  204. package/es/image/preview.vue_vue_type_script_setup_true_lang.js +1 -1
  205. package/es/index.css +70 -20
  206. package/es/index.d.ts +2 -2
  207. package/es/index.js +2 -2
  208. package/es/index.scss +1 -1
  209. package/es/input/input-group.vue_vue_type_script_setup_true_lang.js +1 -1
  210. package/es/input/input-password.vue_vue_type_script_setup_true_lang.js +1 -1
  211. package/es/input/input-search.vue_vue_type_script_setup_true_lang.js +1 -1
  212. package/es/input/input.vue_vue_type_script_setup_true_lang.js +1 -1
  213. package/es/input-mask/input-mask.vue_vue_type_script_setup_true_lang.js +1 -1
  214. package/es/input-mask/mask-engine.js +1 -1
  215. package/es/input-number/input-number.vue_vue_type_script_setup_true_lang.js +1 -1
  216. package/es/input-tag/input-tag.vue_vue_type_script_setup_true_lang.js +1 -1
  217. package/es/input-tag/utils.js +1 -1
  218. package/es/json-form/json-form-component.vue_vue_type_script_setup_true_lang.js +1 -1
  219. package/es/json-form/json-form-item.vue_vue_type_script_setup_true_lang.js +1 -1
  220. package/es/json-form/json-form.vue_vue_type_script_setup_true_lang.js +1 -1
  221. package/es/json-form/utils.js +1 -1
  222. package/es/kv-list/kv-list-row.vue_vue_type_script_setup_true_lang.js +1 -1
  223. package/es/kv-list/kv-list.vue_vue_type_script_setup_true_lang.js +1 -1
  224. package/es/layout/content.vue_vue_type_script_setup_true_lang.js +1 -1
  225. package/es/layout/footer.vue_vue_type_script_setup_true_lang.js +1 -1
  226. package/es/layout/header.vue_vue_type_script_setup_true_lang.js +1 -1
  227. package/es/layout/layout.vue_vue_type_script_setup_true_lang.js +1 -1
  228. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +1 -1
  229. package/es/link/link.vue_vue_type_script_setup_true_lang.js +1 -1
  230. package/es/list/list-item-meta.vue_vue_type_script_setup_true_lang.js +1 -1
  231. package/es/list/list-item.vue_vue_type_script_setup_true_lang.js +1 -1
  232. package/es/list/list.vue_vue_type_script_setup_true_lang.js +1 -1
  233. package/es/mention/mention.vue_vue_type_script_setup_true_lang.js +1 -1
  234. package/es/menu/base-menu.vue_vue_type_script_setup_true_lang.js +1 -1
  235. package/es/menu/indent.vue_vue_type_script_setup_true_lang.js +1 -1
  236. package/es/menu/item-group.vue_vue_type_script_setup_true_lang.js +1 -1
  237. package/es/menu/item.vue_vue_type_script_setup_true_lang.js +1 -1
  238. package/es/menu/menu.vue_vue_type_script_setup_true_lang.js +1 -1
  239. package/es/menu/overflow-wrap.vue_vue_type_script_setup_true_lang.js +1 -1
  240. package/es/menu/sub-menu-inline.vue_vue_type_script_setup_true_lang.js +1 -1
  241. package/es/menu/sub-menu-pop.vue_vue_type_script_setup_true_lang.js +1 -1
  242. package/es/menu/sub-menu.vue_vue_type_script_setup_true_lang.js +1 -1
  243. package/es/message/index.js +1 -1
  244. package/es/message/message-list.vue_vue_type_script_setup_true_lang.js +1 -1
  245. package/es/message/message.vue_vue_type_script_setup_true_lang.js +1 -1
  246. package/es/modal/index.js +2 -2
  247. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +2 -2
  248. package/es/model-selector/model-selector-content.vue_vue_type_script_setup_true_lang.js +1 -1
  249. package/es/model-selector/model-selector-dialog.vue_vue_type_script_setup_true_lang.js +1 -1
  250. package/es/model-selector/model-selector-empty.vue_vue_type_script_setup_true_lang.js +1 -1
  251. package/es/model-selector/model-selector-group.vue_vue_type_script_setup_true_lang.js +1 -1
  252. package/es/model-selector/model-selector-input.vue_vue_type_script_setup_true_lang.js +1 -1
  253. package/es/model-selector/model-selector-item.vue_vue_type_script_setup_true_lang.js +1 -1
  254. package/es/model-selector/model-selector-list.vue_vue_type_script_setup_true_lang.js +1 -1
  255. package/es/model-selector/model-selector-logo-group.vue_vue_type_script_setup_true_lang.js +1 -1
  256. package/es/model-selector/model-selector-logo.vue_vue_type_script_setup_true_lang.js +1 -1
  257. package/es/model-selector/model-selector-name.vue_vue_type_script_setup_true_lang.js +1 -1
  258. package/es/model-selector/model-selector-separator.vue_vue_type_script_setup_true_lang.js +1 -1
  259. package/es/model-selector/model-selector-shortcut.vue_vue_type_script_setup_true_lang.js +1 -1
  260. package/es/model-selector/model-selector-trigger.vue_vue_type_script_setup_true_lang.js +1 -1
  261. package/es/model-selector/model-selector.vue_vue_type_script_setup_true_lang.js +1 -1
  262. package/es/notification/index.js +1 -1
  263. package/es/notification/notification-list.vue_vue_type_script_setup_true_lang.js +1 -1
  264. package/es/notification/notification.vue_vue_type_script_setup_true_lang.js +1 -1
  265. package/es/number-flow/number-flow-group.vue_vue_type_script_setup_true_lang.js +2 -2
  266. package/es/number-flow/number-flow.vue_vue_type_script_setup_true_lang.js +2 -2
  267. package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +1 -1
  268. package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +1 -1
  269. package/es/pagination/page-item-step.vue_vue_type_script_setup_true_lang.js +1 -1
  270. package/es/pagination/page-item.vue_vue_type_script_setup_true_lang.js +1 -1
  271. package/es/pagination/page-jumper.vue_vue_type_script_setup_true_lang.js +1 -1
  272. package/es/pagination/page-options.vue_vue_type_script_setup_true_lang.js +1 -1
  273. package/es/pagination/pagination.vue_vue_type_script_setup_true_lang.js +1 -1
  274. package/es/panel-group/context.d.ts +4 -0
  275. package/es/panel-group/context.js +13 -0
  276. package/es/panel-group/core/axes.d.ts +33 -0
  277. package/es/panel-group/core/axes.js +33 -0
  278. package/es/panel-group/core/dom.d.ts +6 -0
  279. package/es/panel-group/core/dom.js +42 -0
  280. package/es/panel-group/core/env.d.ts +9 -0
  281. package/es/panel-group/core/env.js +31 -0
  282. package/es/panel-group/core/grips.d.ts +17 -0
  283. package/es/panel-group/core/grips.js +76 -0
  284. package/es/panel-group/core/group.d.ts +13 -0
  285. package/es/panel-group/core/group.js +19 -0
  286. package/es/panel-group/core/motion.d.ts +16 -0
  287. package/es/panel-group/core/motion.js +58 -0
  288. package/es/panel-group/core/panel.d.ts +54 -0
  289. package/es/panel-group/core/panel.js +277 -0
  290. package/es/panel-group/core/reorder.d.ts +6 -0
  291. package/es/panel-group/core/reorder.js +23 -0
  292. package/es/panel-group/core/separator.d.ts +3 -0
  293. package/es/panel-group/core/separator.js +130 -0
  294. package/es/panel-group/core/transition.d.ts +9 -0
  295. package/es/panel-group/core/transition.js +56 -0
  296. package/es/panel-group/core/utils.d.ts +11 -0
  297. package/es/panel-group/core/utils.js +19 -0
  298. package/es/panel-group/index.d.ts +134 -0
  299. package/es/panel-group/index.js +22 -0
  300. package/es/panel-group/panel-group.js +5 -0
  301. package/es/panel-group/panel-group.vue.d.ts +18 -0
  302. package/es/panel-group/panel-group.vue_vue_type_script_setup_true_lang.js +53 -0
  303. package/es/panel-group/panel-separator.js +5 -0
  304. package/es/panel-group/panel-separator.vue.d.ts +17 -0
  305. package/es/panel-group/panel-separator.vue_vue_type_script_setup_true_lang.js +119 -0
  306. package/es/panel-group/panel.js +5 -0
  307. package/es/panel-group/panel.vue.d.ts +30 -0
  308. package/es/panel-group/panel.vue_vue_type_script_setup_true_lang.js +251 -0
  309. package/es/panel-group/style/index.css +110 -0
  310. package/es/panel-group/style/index.scss +118 -0
  311. package/es/panel-group/style/token.scss +16 -0
  312. package/es/panel-group/types.d.ts +21 -0
  313. package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +2 -2
  314. package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +1 -1
  315. package/es/progress/circle.vue_vue_type_script_setup_true_lang.js +1 -1
  316. package/es/progress/line.vue_vue_type_script_setup_true_lang.js +1 -1
  317. package/es/progress/progress.vue_vue_type_script_setup_true_lang.js +1 -1
  318. package/es/progress/steps.vue_vue_type_script_setup_true_lang.js +1 -1
  319. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +2 -2
  320. package/es/radio/radio-group.vue_vue_type_script_setup_true_lang.js +1 -1
  321. package/es/radio/radio.vue_vue_type_script_setup_true_lang.js +1 -1
  322. package/es/rate/rate.vue_vue_type_script_setup_true_lang.js +1 -1
  323. package/es/regex-vis/layout.js +1 -1
  324. package/es/regex-vis/parser/parser.js +1 -1
  325. package/es/regex-vis/regex-vis.vue_vue_type_script_setup_true_lang.js +1 -1
  326. package/es/result/403.vue_vue_type_script_setup_true_lang.js +1 -1
  327. package/es/result/404.vue_vue_type_script_setup_true_lang.js +1 -1
  328. package/es/result/500.vue_vue_type_script_setup_true_lang.js +1 -1
  329. package/es/result/result.vue_vue_type_script_setup_true_lang.js +1 -1
  330. package/es/rich-text-editor/nodes/inline-component-node.js +1 -1
  331. package/es/rich-text-editor/rich-text-editor.vue_vue_type_script_setup_true_lang.js +2 -2
  332. package/es/rich-text-editor/rich-text-node-renderer.vue_vue_type_script_setup_true_lang.js +2 -2
  333. package/es/scrollbar/scrollbar.vue_vue_type_script_setup_true_lang.js +1 -1
  334. package/es/sd-vue.js +5 -3
  335. package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +1 -1
  336. package/es/select/hooks/use-options.js +1 -1
  337. package/es/select/select-dropdown.vue_vue_type_script_setup_true_lang.js +1 -1
  338. package/es/select/select.vue_vue_type_script_setup_true_lang.js +1 -1
  339. package/es/select/utils.js +1 -1
  340. package/es/selectable-card/selectable-card.vue_vue_type_script_setup_true_lang.js +1 -1
  341. package/es/sender/sender-header.vue_vue_type_script_setup_true_lang.js +1 -1
  342. package/es/sender/sender-recording-icon.vue_vue_type_script_setup_true_lang.js +1 -1
  343. package/es/sender/sender-skill-tag.vue_vue_type_script_setup_true_lang.js +1 -1
  344. package/es/sender/sender-stop-loading-icon.vue_vue_type_script_setup_true_lang.js +1 -1
  345. package/es/sender/sender-switch.vue_vue_type_script_setup_true_lang.js +1 -1
  346. package/es/sender/sender.vue_vue_type_script_setup_true_lang.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 +1 -1
  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/space/space.vue_vue_type_script_setup_true_lang.js +1 -1
  357. package/es/spin/dot-loading.vue_vue_type_script_setup_true_lang.js +1 -1
  358. package/es/spin/spin.vue_vue_type_script_setup_true_lang.js +1 -1
  359. package/es/split/split.vue_vue_type_script_setup_true_lang.js +2 -2
  360. package/es/split/style/index.scss +1 -2
  361. package/es/split/style/token.scss +0 -3
  362. package/es/statistic/countdown.vue_vue_type_script_setup_true_lang.js +1 -1
  363. package/es/statistic/statistic.vue_vue_type_script_setup_true_lang.js +2 -2
  364. package/es/steps/step.vue_vue_type_script_setup_true_lang.js +1 -1
  365. package/es/steps/steps.vue_vue_type_script_setup_true_lang.js +1 -1
  366. package/es/switch/style/index.css +1 -1
  367. package/es/switch/switch.vue_vue_type_script_setup_true_lang.js +2 -2
  368. package/es/table/table-column.vue_vue_type_script_setup_true_lang.js +1 -1
  369. package/es/table/table-operation-td.vue_vue_type_script_setup_true_lang.js +1 -1
  370. package/es/table/table-operation-th.vue_vue_type_script_setup_true_lang.js +1 -1
  371. package/es/table/table-tbody.vue_vue_type_script_setup_true_lang.js +1 -1
  372. package/es/table/table-td.vue_vue_type_script_setup_true_lang.js +1 -1
  373. package/es/table/table-th.vue_vue_type_script_setup_true_lang.js +1 -1
  374. package/es/table/table-thead.vue_vue_type_script_setup_true_lang.js +1 -1
  375. package/es/table/table-tr.vue_vue_type_script_setup_true_lang.js +1 -1
  376. package/es/table/table.vue_vue_type_script_setup_true_lang.js +2 -2
  377. package/es/table/utils.js +1 -1
  378. package/es/tabs/tab-pane.vue_vue_type_script_setup_true_lang.js +1 -1
  379. package/es/tabs/tabs-button.vue_vue_type_script_setup_true_lang.js +1 -1
  380. package/es/tabs/tabs-nav-ink.vue_vue_type_script_setup_true_lang.js +1 -1
  381. package/es/tabs/tabs-nav.vue_vue_type_script_setup_true_lang.js +1 -1
  382. package/es/tabs/tabs-tab.vue_vue_type_script_setup_true_lang.js +1 -1
  383. package/es/tabs/tabs.vue_vue_type_script_setup_true_lang.js +1 -1
  384. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +1 -1
  385. package/es/tag-group/tag-group.vue_vue_type_script_setup_true_lang.js +1 -1
  386. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +1 -1
  387. package/es/thinking-orb/engine/profiles.js +1 -1
  388. package/es/thinking-orb/presets.js +1 -1
  389. package/es/thinking-orb/thinking-orb.vue_vue_type_script_setup_true_lang.js +1 -1
  390. package/es/time-picker/panel.vue_vue_type_script_setup_true_lang.js +1 -1
  391. package/es/time-picker/range-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  392. package/es/time-picker/time-column.vue_vue_type_script_setup_true_lang.js +1 -1
  393. package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +1 -1
  394. package/es/timeline/item.vue_vue_type_script_setup_true_lang.js +1 -1
  395. package/es/timeline/timeline.vue_vue_type_script_setup_true_lang.js +1 -1
  396. package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +1 -1
  397. package/es/tooltip/tooltip.vue_vue_type_script_setup_true_lang.js +1 -1
  398. package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +2 -2
  399. package/es/transfer/transfer-list-item.vue_vue_type_script_setup_true_lang.js +1 -1
  400. package/es/transfer/transfer-view.vue_vue_type_script_setup_true_lang.js +1 -1
  401. package/es/transfer/transfer.vue_vue_type_script_setup_true_lang.js +1 -1
  402. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +1 -1
  403. package/es/tree/expand-transition.vue_vue_type_script_setup_true_lang.js +1 -1
  404. package/es/tree/node-switcher.vue_vue_type_script_setup_true_lang.js +1 -1
  405. package/es/tree/node.vue_vue_type_script_setup_true_lang.js +1 -1
  406. package/es/tree/transition-node-list.vue_vue_type_script_setup_true_lang.js +1 -1
  407. package/es/tree/tree.vue_vue_type_script_setup_true_lang.js +2 -2
  408. package/es/tree/utils/tree-data.js +1 -1
  409. package/es/tree-select/hooks/use-selected-state.js +1 -1
  410. package/es/tree-select/panel.vue_vue_type_script_setup_true_lang.js +1 -1
  411. package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +1 -1
  412. package/es/trigger/trigger.vue_vue_type_script_setup_true_lang.js +1 -1
  413. package/es/typography/base.vue_vue_type_script_setup_true_lang.js +1 -1
  414. package/es/typography/edit-content.vue_vue_type_script_setup_true_lang.js +1 -1
  415. package/es/typography/operations.vue_vue_type_script_setup_true_lang.js +1 -1
  416. package/es/typography/paragraph.vue_vue_type_script_setup_true_lang.js +1 -1
  417. package/es/typography/text.vue_vue_type_script_setup_true_lang.js +1 -1
  418. package/es/typography/title.vue_vue_type_script_setup_true_lang.js +1 -1
  419. package/es/typography/typography-content.vue_vue_type_script_setup_true_lang.js +1 -1
  420. package/es/typography/typography-operations.vue_vue_type_script_setup_true_lang.js +1 -1
  421. package/es/typography/typography.vue_vue_type_script_setup_true_lang.js +1 -1
  422. package/es/typography/utils/inner-text-renderer.vue_vue_type_script_setup_true_lang.js +1 -1
  423. package/es/upload/upload-button.vue_vue_type_script_setup_true_lang.js +1 -1
  424. package/es/upload/upload-list-item.vue_vue_type_script_setup_true_lang.js +1 -1
  425. package/es/upload/upload-list.vue_vue_type_script_setup_true_lang.js +1 -1
  426. package/es/upload/upload-picture-item.vue_vue_type_script_setup_true_lang.js +1 -1
  427. package/es/upload/upload-progress.vue_vue_type_script_setup_true_lang.js +1 -1
  428. package/es/upload/upload.vue_vue_type_script_setup_true_lang.js +1 -1
  429. package/es/verification-code/verification-code.vue_vue_type_script_setup_true_lang.js +1 -1
  430. package/es/watermark/hooks/use-mutation-observer.js +1 -1
  431. package/es/watermark/watermark.vue_vue_type_script_setup_true_lang.js +1 -1
  432. package/json/vetur-attributes.json +47 -24
  433. package/json/vetur-tags.json +26 -11
  434. package/json/web-types.json +134 -53
  435. package/package.json +5 -4
  436. package/es/resize-box/index.d.ts +0 -131
  437. package/es/resize-box/index.js +0 -10
  438. package/es/resize-box/resize-box.js +0 -5
  439. package/es/resize-box/resize-box.vue.d.ts +0 -74
  440. package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +0 -240
  441. package/es/resize-box/style/index.css +0 -60
  442. package/es/resize-box/style/index.scss +0 -62
  443. package/es/resize-box/style/token.scss +0 -14
  444. /package/es/{resize-box → panel-group}/style/css.js +0 -0
  445. /package/es/{resize-box → panel-group}/style/index.d.ts +0 -0
  446. /package/es/{resize-box → panel-group}/style/index.js +0 -0
@@ -0,0 +1,277 @@
1
+ import _objectSpread2 from "../../_virtual/_@oxc-project_runtime@0.148.0/helpers/esm/objectSpread2.js";
2
+ import { emitter } from "./utils.js";
3
+ import { FILL_ATTRIBUTE, hasFillAfter, isRtl, isSeparator, lockBody } from "./dom.js";
4
+ import { timing } from "./transition.js";
5
+ import { MotionValue } from "./motion.js";
6
+ import { clamp } from "es-toolkit";
7
+ //#region components/panel-group/core/panel.ts
8
+ var KEY_STEP = 10;
9
+ var KEY_STEP_FAST = 50;
10
+ var toPixels = (value, extent) => typeof value === "string" ? Number(value.slice(0, -1)) / 100 * extent : value;
11
+ var createPanel = (group, initial) => {
12
+ const { axes, fill, panels } = group;
13
+ const { emit: notify, subscribe, clear } = emitter();
14
+ let element = null;
15
+ let options = initial;
16
+ const extent = () => {
17
+ var _element$parentElemen3, _element$parentElemen4;
18
+ return (_element$parentElemen3 = element === null || element === void 0 || (_element$parentElemen4 = element.parentElement) === null || _element$parentElemen4 === void 0 ? void 0 : _element$parentElemen4[axes.client]) !== null && _element$parentElemen3 !== void 0 ? _element$parentElemen3 : 0;
19
+ };
20
+ const measure = () => {
21
+ const pixels = toPixels(options.size, extent());
22
+ return typeof options.size === "string" ? Math.round(pixels) : pixels;
23
+ };
24
+ const report = (value) => {
25
+ if (typeof options.size !== "string") return value;
26
+ const total = extent();
27
+ return `${total > 0 ? Math.round(value / total * 1e4) / 100 : 0}%`;
28
+ };
29
+ const size = new MotionValue(initial.collapsed ? 0 : measure());
30
+ const content = new MotionValue(measure());
31
+ let target = size.get();
32
+ let state = {
33
+ bare: false,
34
+ dragging: false,
35
+ end: void 0,
36
+ folding: false
37
+ };
38
+ let unlock;
39
+ const session = {
40
+ collapsed: false,
41
+ max: 0,
42
+ min: 0,
43
+ sign: 1,
44
+ start: 0,
45
+ wasCollapsed: false
46
+ };
47
+ const patch = (next) => {
48
+ if (Object.entries(next).some(([key, value]) => state[key] !== value)) {
49
+ state = _objectSpread2(_objectSpread2({}, state), next);
50
+ notify();
51
+ }
52
+ };
53
+ const available = () => {
54
+ var _element$parentElemen5, _element$parentElemen6;
55
+ const filler = [...(_element$parentElemen5 = element === null || element === void 0 || (_element$parentElemen6 = element.parentElement) === null || _element$parentElemen6 === void 0 ? void 0 : _element$parentElemen6.children) !== null && _element$parentElemen5 !== void 0 ? _element$parentElemen5 : []].find((node) => node.hasAttribute(FILL_ATTRIBUTE));
56
+ let room = filler ? Number.parseFloat(getComputedStyle(filler)[axes.extent]) : 0;
57
+ for (const panel of panels.values()) room += panel.motion.size.get() - (panel === controller ? 0 : panel.target);
58
+ return Math.max(0, room);
59
+ };
60
+ const bounds = () => {
61
+ const room = available();
62
+ const total = extent();
63
+ const min = Math.min(options.minSize === void 0 ? 0 : toPixels(options.minSize, total), room);
64
+ const max = options.maxSize === void 0 ? room : toPixels(options.maxSize, total);
65
+ return {
66
+ max: Math.max(min, Math.min(max, room)),
67
+ min
68
+ };
69
+ };
70
+ const growSign = () => (state.end ? 1 : -1) * (axes.point === "x" && isRtl(element) ? -1 : 1);
71
+ const setFolding = (folding) => {
72
+ if (folding === state.folding) return;
73
+ patch({ folding });
74
+ if (folding) {
75
+ fill.anchor = state.end ? "flex-end" : "flex-start";
76
+ fill.size = available() - target;
77
+ } else if (![...panels.values()].some((panel) => panel.state.folding)) fill.size = "100%";
78
+ };
79
+ const fold = (to, from, mounting) => {
80
+ setFolding(true);
81
+ const closed = size.get() === 0;
82
+ if (closed) content.jump(to);
83
+ const start = () => {
84
+ if (!closed && to > 0) content.animate(to, timing());
85
+ const transition = from === 0 || to === 0 ? timing(options.transition) : timing();
86
+ size.animate(to, transition);
87
+ };
88
+ if (closed && mounting) queueMicrotask(start);
89
+ else start();
90
+ };
91
+ const stopSettle = size.on("animationComplete", () => {
92
+ if (size.get() === target) setFolding(false);
93
+ });
94
+ const release = () => {
95
+ unlock === null || unlock === void 0 || unlock();
96
+ unlock = void 0;
97
+ };
98
+ const stopDragging = () => {
99
+ release();
100
+ patch({ dragging: false });
101
+ };
102
+ const drag = {
103
+ start: (cursor = axes.cursor) => {
104
+ const collapsed = !!options.collapsed;
105
+ Object.assign(session, _objectSpread2(_objectSpread2({}, bounds()), {}, {
106
+ collapsed,
107
+ sign: growSign(),
108
+ start: size.get(),
109
+ wasCollapsed: collapsed
110
+ }));
111
+ release();
112
+ unlock = lockBody(cursor, drag.cancel);
113
+ setFolding(false);
114
+ patch({ dragging: true });
115
+ },
116
+ move: (offset) => {
117
+ if (!state.dragging) return;
118
+ const pixels = session.start + offset[axes.point] * session.sign;
119
+ const collapsed = !!options.onCollapsedChange && pixels < session.min / 2;
120
+ const next = collapsed ? 0 : Math.round(clamp(pixels, session.min, session.max));
121
+ if (collapsed !== session.collapsed) {
122
+ var _options$onCollapsedC;
123
+ (_options$onCollapsedC = options.onCollapsedChange) === null || _options$onCollapsedC === void 0 || _options$onCollapsedC.call(options, collapsed);
124
+ }
125
+ size.jump(next);
126
+ if (!collapsed) content.jump(next);
127
+ session.collapsed = collapsed;
128
+ },
129
+ end: () => {
130
+ if (!state.dragging) return;
131
+ stopDragging();
132
+ if (!session.collapsed) {
133
+ var _options$onSizeChange;
134
+ (_options$onSizeChange = options.onSizeChange) === null || _options$onSizeChange === void 0 || _options$onSizeChange.call(options, report(size.get()));
135
+ }
136
+ if (size.get() !== target) fold(target, size.get());
137
+ },
138
+ cancel: () => {
139
+ if (!state.dragging) return;
140
+ size.jump(session.start);
141
+ content.jump(session.start);
142
+ if (session.collapsed !== session.wasCollapsed) {
143
+ var _options$onCollapsedC2;
144
+ (_options$onCollapsedC2 = options.onCollapsedChange) === null || _options$onCollapsedC2 === void 0 || _options$onCollapsedC2.call(options, session.wasCollapsed);
145
+ }
146
+ stopDragging();
147
+ }
148
+ };
149
+ const resizeByKey = (event) => {
150
+ var _options$onSizeChange2;
151
+ if (event.key === "Enter") {
152
+ if (options.onCollapsedChange) {
153
+ event.preventDefault();
154
+ options.onCollapsedChange(!options.collapsed);
155
+ }
156
+ return;
157
+ }
158
+ const { max, min } = bounds();
159
+ const step = (event.shiftKey || event.key === "PageUp" || event.key === "PageDown" ? KEY_STEP_FAST : KEY_STEP) * growSign();
160
+ const next = {
161
+ End: max,
162
+ Home: min,
163
+ PageDown: target + step,
164
+ PageUp: target - step,
165
+ [axes.grow]: target + step,
166
+ [axes.shrink]: target - step
167
+ }[event.key];
168
+ if (next === void 0) return;
169
+ event.preventDefault();
170
+ const value = clamp(next, min, max);
171
+ if (options.collapsed && value > 0) {
172
+ var _options$onCollapsedC3;
173
+ (_options$onCollapsedC3 = options.onCollapsedChange) === null || _options$onCollapsedC3 === void 0 || _options$onCollapsedC3.call(options, false);
174
+ }
175
+ (_options$onSizeChange2 = options.onSizeChange) === null || _options$onSizeChange2 === void 0 || _options$onSizeChange2.call(options, report(value));
176
+ };
177
+ const unplace = () => {
178
+ for (const [side, panel] of panels) if (panel === controller) panels.delete(side);
179
+ };
180
+ const place = () => {
181
+ if (!element) return;
182
+ const end = hasFillAfter(element);
183
+ const side = end ? "start" : "end";
184
+ if (panels.get(side) !== controller) {
185
+ unplace();
186
+ panels.set(side, controller);
187
+ group.notify();
188
+ }
189
+ const neighbour = end ? element.nextElementSibling : element.previousElementSibling;
190
+ patch({
191
+ bare: !isSeparator(neighbour),
192
+ end
193
+ });
194
+ };
195
+ const refit = () => {
196
+ if (typeof options.size !== "string" || state.dragging || state.folding) return;
197
+ const value = options.collapsed ? 0 : measure();
198
+ content.jump(measure());
199
+ if (value === target) return;
200
+ target = value;
201
+ size.jump(target);
202
+ notify();
203
+ group.notify();
204
+ };
205
+ const sync = (next, mounting) => {
206
+ options = next;
207
+ place();
208
+ const measured = measure();
209
+ if (size.get() === 0 && !state.dragging) content.jump(measured);
210
+ const value = next.collapsed ? 0 : measured;
211
+ if (value === target) return;
212
+ const from = target;
213
+ target = value;
214
+ notify();
215
+ group.notify();
216
+ if (state.dragging) return;
217
+ if (size.get() === target) {
218
+ setFolding(false);
219
+ size.jump(target);
220
+ content.jump(target);
221
+ } else fold(target, from, mounting);
222
+ };
223
+ const controller = {
224
+ attach: (node) => {
225
+ element = node;
226
+ place();
227
+ refit();
228
+ const parent = node.parentElement;
229
+ const watch = parent ? new ResizeObserver(refit) : void 0;
230
+ if (parent) watch === null || watch === void 0 || watch.observe(parent);
231
+ return () => {
232
+ watch === null || watch === void 0 || watch.disconnect();
233
+ release();
234
+ unplace();
235
+ element = null;
236
+ group.notify();
237
+ };
238
+ },
239
+ bounds,
240
+ destroy: () => {
241
+ release();
242
+ size.stop();
243
+ content.stop();
244
+ setFolding(false);
245
+ stopSettle();
246
+ clear();
247
+ },
248
+ drag,
249
+ motion: {
250
+ content,
251
+ size
252
+ },
253
+ get options() {
254
+ return options;
255
+ },
256
+ reset: () => {
257
+ var _options$onSizeChange3, _options$defaultSize;
258
+ if (options.collapsed) {
259
+ var _options$onCollapsedC4;
260
+ (_options$onCollapsedC4 = options.onCollapsedChange) === null || _options$onCollapsedC4 === void 0 || _options$onCollapsedC4.call(options, false);
261
+ }
262
+ (_options$onSizeChange3 = options.onSizeChange) === null || _options$onSizeChange3 === void 0 || _options$onSizeChange3.call(options, (_options$defaultSize = options.defaultSize) !== null && _options$defaultSize !== void 0 ? _options$defaultSize : initial.size);
263
+ },
264
+ resizeByKey,
265
+ get state() {
266
+ return state;
267
+ },
268
+ subscribe,
269
+ sync,
270
+ get target() {
271
+ return target;
272
+ }
273
+ };
274
+ return controller;
275
+ };
276
+ //#endregion
277
+ export { createPanel };
@@ -0,0 +1,6 @@
1
+ import type { PanelTransition } from '../types';
2
+ import type { Axes } from './axes';
3
+ export declare const reorder: {
4
+ measure: (root: HTMLElement, axes: Axes) => Map<Element, number>;
5
+ play: (before: Map<Element, number>, axes: Axes, transition?: PanelTransition) => void;
6
+ };
@@ -0,0 +1,23 @@
1
+ import "./dom.js";
2
+ import { cssEasing, timing } from "./transition.js";
3
+ //#region components/panel-group/core/reorder.ts
4
+ var reorder = {
5
+ measure: (root, axes) => new Map([...root.children].map((child) => [child, child.getBoundingClientRect()[axes.edge]])),
6
+ play: (before, axes, transition) => {
7
+ for (const [child, from] of before) {
8
+ if (!(child instanceof HTMLElement) || !child.isConnected) continue;
9
+ const delta = from - child.getBoundingClientRect()[axes.edge];
10
+ if (delta === 0) continue;
11
+ const lift = !child.hasAttribute("data-sd-panels-fill") && !child.hasAttribute("data-sd-panels-separator");
12
+ if (lift) child.style.zIndex = "1";
13
+ child.animate([{ transform: `translate${axes.point.toUpperCase()}(${delta}px)` }, { transform: "none" }], {
14
+ duration: timing(transition).duration,
15
+ easing: cssEasing(transition)
16
+ }).finished.finally(() => {
17
+ if (lift) child.style.zIndex = "";
18
+ }).catch(() => {});
19
+ }
20
+ }
21
+ };
22
+ //#endregion
23
+ export { reorder };
@@ -0,0 +1,3 @@
1
+ import type { EngineGroup } from './group';
2
+ import type { PanelController } from './panel';
3
+ export declare const attachSeparator: (element: HTMLElement, group: EngineGroup, own?: PanelController) => () => void;
@@ -0,0 +1,130 @@
1
+ import { noop } from "./utils.js";
2
+ import { SEPARATOR_ATTRIBUTE, hasFillAfter } from "./dom.js";
3
+ import { grips } from "./grips.js";
4
+ //#region components/panel-group/core/separator.ts
5
+ var PAN_THRESHOLD = 3;
6
+ var attachSeparator = (element, group, own) => {
7
+ const slot = element.closest(`[${SEPARATOR_ATTRIBUTE}]`);
8
+ const findPanel = () => own !== null && own !== void 0 ? own : group.panels.get(hasFillAfter(slot) ? "start" : "end");
9
+ let panel;
10
+ let unregister = noop;
11
+ let unwatch = noop;
12
+ let partners = [];
13
+ let pressed = null;
14
+ let dragging = false;
15
+ let dragged = false;
16
+ let joint = false;
17
+ let cursor = "";
18
+ const resizing = () => grips.state(element) === "held" || !!(panel === null || panel === void 0 ? void 0 : panel.state.dragging);
19
+ const each = (act) => {
20
+ for (const target of [panel, ...partners]) if (target) act(target);
21
+ };
22
+ const render = () => {
23
+ const hit = grips.state(element);
24
+ element.toggleAttribute("data-resizing", resizing());
25
+ element.toggleAttribute("data-crossing", hit === "crossed" && !resizing());
26
+ if (joint !== (hit !== null)) {
27
+ joint = !joint;
28
+ if (joint) {
29
+ cursor = element.style.getPropertyValue("cursor");
30
+ element.style.cursor = "move";
31
+ } else element.style.cursor = cursor;
32
+ }
33
+ if (panel) {
34
+ const { max, min } = panel.bounds();
35
+ element.setAttribute("aria-valuenow", String(panel.target));
36
+ element.setAttribute("aria-valuetext", `${panel.target} pixels`);
37
+ element.setAttribute("aria-valuemin", String(min));
38
+ element.setAttribute("aria-valuemax", String(max));
39
+ }
40
+ };
41
+ const bind = () => {
42
+ const next = findPanel();
43
+ if (next !== panel) {
44
+ unregister();
45
+ unwatch();
46
+ panel = next;
47
+ unregister = panel ? grips.register(element, panel) : noop;
48
+ unwatch = panel ? panel.subscribe(render) : noop;
49
+ }
50
+ render();
51
+ };
52
+ const settle = () => {
53
+ partners = [];
54
+ pressed = null;
55
+ dragging = false;
56
+ };
57
+ const cancel = () => {
58
+ grips.mark("held", []);
59
+ each((target) => target.drag.cancel());
60
+ settle();
61
+ };
62
+ const listeners = {
63
+ pointerdown: (event) => {
64
+ if (event.button > 0 || pressed) return;
65
+ dragged = false;
66
+ pressed = {
67
+ clientX: event.clientX,
68
+ clientY: event.clientY
69
+ };
70
+ try {
71
+ element.setPointerCapture(event.pointerId);
72
+ } catch (_unused) {}
73
+ grips.invalidate();
74
+ grips.mark("held", grips.at(event));
75
+ },
76
+ pointermove: (event) => {
77
+ if (!pressed) {
78
+ if (!resizing()) grips.mark("crossed", grips.at(event));
79
+ return;
80
+ }
81
+ const offset = {
82
+ x: event.clientX - pressed.clientX,
83
+ y: event.clientY - pressed.clientY
84
+ };
85
+ if (!dragging) {
86
+ if (Math.hypot(offset.x, offset.y) < PAN_THRESHOLD) return;
87
+ dragging = true;
88
+ dragged = true;
89
+ partners = grips.partners(grips.at(pressed), element);
90
+ each((target) => target.drag.start(partners.length > 0 ? "move" : void 0));
91
+ }
92
+ each((target) => target.drag.move(offset));
93
+ },
94
+ pointerup: (event) => {
95
+ grips.mark("held", []);
96
+ if (dragging) {
97
+ each((target) => target.drag.end());
98
+ grips.invalidate();
99
+ grips.mark("crossed", grips.at(event));
100
+ }
101
+ settle();
102
+ },
103
+ pointercancel: cancel,
104
+ lostpointercapture: cancel,
105
+ pointerenter: () => grips.invalidate(),
106
+ pointerleave: () => {
107
+ if (!resizing()) grips.mark("crossed", []);
108
+ },
109
+ dblclick: (event) => {
110
+ if (!dragged) for (const target of [panel, ...grips.partners(grips.at(event), element)]) target === null || target === void 0 || target.reset();
111
+ },
112
+ keydown: (event) => panel === null || panel === void 0 ? void 0 : panel.resizeByKey(event)
113
+ };
114
+ const controller = new AbortController();
115
+ window.addEventListener("keydown", (event) => {
116
+ if (event.key === "Escape" && pressed) cancel();
117
+ }, { signal: controller.signal });
118
+ for (const [type, listener] of Object.entries(listeners)) element.addEventListener(type, listener, { signal: controller.signal });
119
+ const unsubscribe = [group.subscribe(bind), grips.subscribe(render)];
120
+ bind();
121
+ return () => {
122
+ if (pressed) cancel();
123
+ controller.abort();
124
+ for (const stop of unsubscribe) stop();
125
+ unregister();
126
+ unwatch();
127
+ };
128
+ };
129
+ //#endregion
130
+ export { attachSeparator };
@@ -0,0 +1,9 @@
1
+ import type { PanelTransition } from '../types';
2
+ export declare const bezier: (x1: number, y1: number, x2: number, y2: number) => (t: number) => number;
3
+ export declare const DEFAULT_TRANSITION: Required<Pick<PanelTransition, 'duration' | 'easing'>>;
4
+ export interface ResolvedTransition extends Omit<PanelTransition, 'duration' | 'easing'> {
5
+ duration: number;
6
+ easing: (t: number) => number;
7
+ }
8
+ export declare const timing: (transition?: PanelTransition) => ResolvedTransition;
9
+ export declare const cssEasing: (transition?: PanelTransition) => string;
@@ -0,0 +1,56 @@
1
+ import _objectSpread2 from "../../_virtual/_@oxc-project_runtime@0.148.0/helpers/esm/objectSpread2.js";
2
+ import { reducedMotion } from "./env.js";
3
+ //#region components/panel-group/core/transition.ts
4
+ /** cubic-bezier 缓动求值器(参数反解 + y 值采样)。 */
5
+ var bezier = (x1, y1, x2, y2) => {
6
+ const bezier1d = (t, c1, c2) => 3 * t * Math.pow(1 - t, 2) * c1 + 3 * Math.pow(t, 2) * (1 - t) * c2 + Math.pow(t, 3);
7
+ const invert = (t) => {
8
+ let lo = 0;
9
+ let hi = 1;
10
+ for (let i = 0; i < 12; i += 1) {
11
+ const mid = (lo + hi) / 2;
12
+ if (bezier1d(mid, x1, x2) < t) lo = mid;
13
+ else hi = mid;
14
+ }
15
+ return (lo + hi) / 2;
16
+ };
17
+ return (t) => {
18
+ if (t <= 0) return 0;
19
+ if (t >= 1) return 1;
20
+ const s = invert(t);
21
+ return bezier1d(s, y1, y2);
22
+ };
23
+ };
24
+ /** 默认过渡:与 vendor 一致的缓动曲线,时长单位毫秒。 */
25
+ var DEFAULT_TRANSITION = {
26
+ duration: 250,
27
+ easing: [
28
+ .32,
29
+ .72,
30
+ 0,
31
+ 1
32
+ ]
33
+ };
34
+ /** 应用 reduced-motion;无自定义时长/缓动时使用默认曲线。 */
35
+ var timing = (transition) => {
36
+ var _config$easing, _config$duration;
37
+ if (reducedMotion.get()) return {
38
+ duration: 0,
39
+ easing: (t) => t
40
+ };
41
+ const config = transition !== null && transition !== void 0 ? transition : DEFAULT_TRANSITION;
42
+ const easingTuple = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : DEFAULT_TRANSITION.easing;
43
+ const duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : DEFAULT_TRANSITION.duration;
44
+ return _objectSpread2(_objectSpread2({}, config), {}, {
45
+ duration,
46
+ easing: bezier(...easingTuple)
47
+ });
48
+ };
49
+ /** 转换为 CSS 缓动字符串(供 WAAPI / inline style 使用)。 */
50
+ var cssEasing = (transition) => {
51
+ var _transition$easing;
52
+ const [x1, y1, x2, y2] = (_transition$easing = transition === null || transition === void 0 ? void 0 : transition.easing) !== null && _transition$easing !== void 0 ? _transition$easing : DEFAULT_TRANSITION.easing;
53
+ return `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`;
54
+ };
55
+ //#endregion
56
+ export { DEFAULT_TRANSITION, bezier, cssEasing, timing };
@@ -0,0 +1,11 @@
1
+ export declare const noop: () => void;
2
+ export interface Emitter {
3
+ clear: () => void;
4
+ emit: () => void;
5
+ subscribe: (listener: () => void) => () => void;
6
+ }
7
+ export declare const emitter: () => {
8
+ clear: () => void;
9
+ emit: () => void;
10
+ subscribe: (listener: () => void) => () => void;
11
+ };
@@ -0,0 +1,19 @@
1
+ //#region components/panel-group/core/utils.ts
2
+ var noop = () => {};
3
+ var emitter = () => {
4
+ const listeners = /* @__PURE__ */ new Set();
5
+ return {
6
+ clear: () => listeners.clear(),
7
+ emit: () => {
8
+ for (const listener of [...listeners]) listener();
9
+ },
10
+ subscribe: (listener) => {
11
+ listeners.add(listener);
12
+ return () => {
13
+ listeners.delete(listener);
14
+ };
15
+ }
16
+ };
17
+ };
18
+ //#endregion
19
+ export { emitter, noop };
@@ -0,0 +1,134 @@
1
+ import type { App } from 'vue';
2
+ import type { SDOptions } from '../_utils/types';
3
+ import _PanelGroup from './panel-group.vue';
4
+ import _PanelSeparator from './panel-separator.vue';
5
+ import _Panel from './panel.vue';
6
+ declare const PanelGroup: {
7
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
8
+ orientation?: 'horizontal' | 'vertical';
9
+ reorder?: boolean;
10
+ transition?: import("./types").PanelTransition;
11
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
12
+ P: {};
13
+ B: {};
14
+ D: {};
15
+ C: {};
16
+ M: {};
17
+ Defaults: {};
18
+ }, Readonly<{
19
+ orientation?: 'horizontal' | 'vertical';
20
+ reorder?: boolean;
21
+ transition?: import("./types").PanelTransition;
22
+ }> & Readonly<{}>, {}, {}, {}, {}, {}>;
23
+ __isFragment?: never;
24
+ __isTeleport?: never;
25
+ __isSuspense?: never;
26
+ } & import("vue").ComponentOptionsBase<Readonly<{
27
+ orientation?: 'horizontal' | 'vertical';
28
+ reorder?: boolean;
29
+ transition?: import("./types").PanelTransition;
30
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
31
+ $slots: {
32
+ default?: () => unknown;
33
+ };
34
+ }) & {
35
+ install: (app: App, options?: SDOptions) => void;
36
+ };
37
+ declare const Panel: {
38
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
39
+ size?: import("./types").PanelSize;
40
+ collapsed?: boolean;
41
+ defaultSize?: import("./types").PanelSize;
42
+ fold?: import("./types").PanelFold;
43
+ minSize?: import("./types").PanelSize;
44
+ maxSize?: import("./types").PanelSize;
45
+ pin?: boolean;
46
+ keepMounted?: boolean;
47
+ transition?: import("./types").PanelTransition;
48
+ }> & Readonly<{
49
+ "onUpdate:collapsed"?: ((collapsed: boolean) => any) | undefined;
50
+ "onUpdate:size"?: ((size: import("./types").PanelSize) => any) | undefined;
51
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
52
+ "update:collapsed": (collapsed: boolean) => any;
53
+ "update:size": (size: import("./types").PanelSize) => any;
54
+ }, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
55
+ P: {};
56
+ B: {};
57
+ D: {};
58
+ C: {};
59
+ M: {};
60
+ Defaults: {};
61
+ }, Readonly<{
62
+ size?: import("./types").PanelSize;
63
+ collapsed?: boolean;
64
+ defaultSize?: import("./types").PanelSize;
65
+ fold?: import("./types").PanelFold;
66
+ minSize?: import("./types").PanelSize;
67
+ maxSize?: import("./types").PanelSize;
68
+ pin?: boolean;
69
+ keepMounted?: boolean;
70
+ transition?: import("./types").PanelTransition;
71
+ }> & Readonly<{
72
+ "onUpdate:collapsed"?: ((collapsed: boolean) => any) | undefined;
73
+ "onUpdate:size"?: ((size: import("./types").PanelSize) => any) | undefined;
74
+ }>, {}, {}, {}, {}, {}>;
75
+ __isFragment?: never;
76
+ __isTeleport?: never;
77
+ __isSuspense?: never;
78
+ } & import("vue").ComponentOptionsBase<Readonly<{
79
+ size?: import("./types").PanelSize;
80
+ collapsed?: boolean;
81
+ defaultSize?: import("./types").PanelSize;
82
+ fold?: import("./types").PanelFold;
83
+ minSize?: import("./types").PanelSize;
84
+ maxSize?: import("./types").PanelSize;
85
+ pin?: boolean;
86
+ keepMounted?: boolean;
87
+ transition?: import("./types").PanelTransition;
88
+ }> & Readonly<{
89
+ "onUpdate:collapsed"?: ((collapsed: boolean) => any) | undefined;
90
+ "onUpdate:size"?: ((size: import("./types").PanelSize) => any) | undefined;
91
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
92
+ "update:collapsed": (collapsed: boolean) => any;
93
+ "update:size": (size: import("./types").PanelSize) => any;
94
+ }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
95
+ $slots: {
96
+ default?: (props: import("./types").PanelSlotProps) => unknown;
97
+ };
98
+ }) & {
99
+ install: (app: App, options?: SDOptions) => void;
100
+ };
101
+ declare const PanelSeparator: {
102
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
103
+ ariaLabel?: string;
104
+ own?: import("./core/panel").PanelController;
105
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
106
+ P: {};
107
+ B: {};
108
+ D: {};
109
+ C: {};
110
+ M: {};
111
+ Defaults: {};
112
+ }, Readonly<{
113
+ ariaLabel?: string;
114
+ own?: import("./core/panel").PanelController;
115
+ }> & Readonly<{}>, {}, {}, {}, {}, {}>;
116
+ __isFragment?: never;
117
+ __isTeleport?: never;
118
+ __isSuspense?: never;
119
+ } & import("vue").ComponentOptionsBase<Readonly<{
120
+ ariaLabel?: string;
121
+ own?: import("./core/panel").PanelController;
122
+ }> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
123
+ $slots: {
124
+ default?: () => unknown;
125
+ };
126
+ }) & {
127
+ install: (app: App, options?: SDOptions) => void;
128
+ };
129
+ export type PanelGroupInstance = InstanceType<typeof _PanelGroup>;
130
+ export type PanelInstance = InstanceType<typeof _Panel>;
131
+ export type PanelSeparatorInstance = InstanceType<typeof _PanelSeparator>;
132
+ export type { PanelFold, PanelPose, PanelSize, PanelSlotProps, PanelTransition } from './types';
133
+ export { Panel, PanelSeparator };
134
+ export default PanelGroup;