@canlooks/can-ui 0.0.67 → 0.0.69

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 (139) hide show
  1. package/dist/cjs/components/accordion/accordion.js +2 -2
  2. package/dist/cjs/components/alert/alert.js +4 -3
  3. package/dist/cjs/components/anchorList/anchorList.js +26 -20
  4. package/dist/cjs/components/boundary/errorBoundary.js +2 -2
  5. package/dist/cjs/components/bubbleConfirm/bubbleConfirm.js +2 -2
  6. package/dist/cjs/components/calendar/panelYear.js +2 -2
  7. package/dist/cjs/components/cascade/cascade.js +5 -5
  8. package/dist/cjs/components/cascade/cascadePanel.js +2 -2
  9. package/dist/cjs/components/checkboxBase/checkboxBase.js +2 -2
  10. package/dist/cjs/components/counter/counter.js +3 -3
  11. package/dist/cjs/components/curd/curd.js +5 -5
  12. package/dist/cjs/components/curd/curd.style.js +5 -0
  13. package/dist/cjs/components/curd/curdColumnConfig.js +4 -3
  14. package/dist/cjs/components/curd/curdDialog.js +2 -2
  15. package/dist/cjs/components/curd/curdFilter.js +3 -3
  16. package/dist/cjs/components/curd/curdResizable.js +2 -2
  17. package/dist/cjs/components/dataGrid/dataGrid.js +3 -2
  18. package/dist/cjs/components/dataGrid/dataGridHead.js +2 -2
  19. package/dist/cjs/components/dataGrid/dataGridRows.js +3 -3
  20. package/dist/cjs/components/dateTimePicker/dateTimePicker.js +3 -3
  21. package/dist/cjs/components/dialog/dialog.js +2 -2
  22. package/dist/cjs/components/drawer/drawer.js +2 -2
  23. package/dist/cjs/components/gallery/gallery.js +7 -7
  24. package/dist/cjs/components/image/image.d.ts +1 -1
  25. package/dist/cjs/components/image/image.js +5 -4
  26. package/dist/cjs/components/inputBase/inputBase.js +2 -2
  27. package/dist/cjs/components/menu/menu.js +2 -2
  28. package/dist/cjs/components/menuItem/menuItem.js +2 -2
  29. package/dist/cjs/components/overlayBase/overlayBase.d.ts +3 -1
  30. package/dist/cjs/components/overlayBase/overlayBase.js +5 -5
  31. package/dist/cjs/components/pagination/pager.js +3 -3
  32. package/dist/cjs/components/palette/palette.js +2 -2
  33. package/dist/cjs/components/pickerDialog/pickerDialog.js +2 -2
  34. package/dist/cjs/components/pinchable/pinchable.js +7 -0
  35. package/dist/cjs/components/popper/popper.d.ts +3 -1
  36. package/dist/cjs/components/popper/popper.js +6 -6
  37. package/dist/cjs/components/progress/progress.js +7 -5
  38. package/dist/cjs/components/rating/rating.js +2 -2
  39. package/dist/cjs/components/select/select.js +3 -3
  40. package/dist/cjs/components/snackbarBase/snackbarBase.d.ts +3 -2
  41. package/dist/cjs/components/snackbarBase/snackbarBase.js +6 -6
  42. package/dist/cjs/components/stepper/step.js +5 -5
  43. package/dist/cjs/components/tabs/tabsEllipsis.js +2 -2
  44. package/dist/cjs/components/tag/tag.js +2 -2
  45. package/dist/cjs/components/theme/themeVariables.d.ts +1 -0
  46. package/dist/cjs/components/theme/themeVariables.js +1 -0
  47. package/dist/cjs/components/touchRipple/index.d.ts +1 -0
  48. package/dist/cjs/components/touchRipple/index.js +1 -0
  49. package/dist/cjs/components/touchRipple/touchRipple.d.ts +6 -14
  50. package/dist/cjs/components/touchRipple/touchRipple.js +54 -39
  51. package/dist/cjs/components/touchRipple/touchRipple.style.js +25 -27
  52. package/dist/cjs/components/transfer/transfer.js +5 -5
  53. package/dist/cjs/components/transfer/transferPanel.js +2 -1
  54. package/dist/cjs/components/tree/tree.js +2 -2
  55. package/dist/cjs/components/tree/treeNode.js +2 -2
  56. package/dist/cjs/components/treeSelect/treeSelect.js +2 -2
  57. package/dist/cjs/components/typography/typography.js +4 -4
  58. package/dist/cjs/components/upload/dropArea.js +2 -2
  59. package/dist/cjs/components/upload/fileItem.js +5 -5
  60. package/dist/cjs/components/upload/imageItem.js +3 -3
  61. package/dist/cjs/components/upload/upload.js +5 -5
  62. package/dist/cjs/components/waterfall/waterfallItem.js +1 -1
  63. package/dist/cjs/extensions/documentViewer/documentViewer.js +4 -3
  64. package/dist/cjs/extensions/documentViewer/documentViewer.style.js +2 -1
  65. package/dist/cjs/extensions/documentViewer/svgViewer.d.ts +2 -2
  66. package/dist/cjs/extensions/documentViewer/svgViewer.js +13 -9
  67. package/dist/cjs/utils/hooks.d.ts +8 -0
  68. package/dist/cjs/utils/hooks.js +22 -0
  69. package/dist/esm/components/accordion/accordion.js +1 -1
  70. package/dist/esm/components/alert/alert.js +2 -1
  71. package/dist/esm/components/anchorList/anchorList.js +26 -20
  72. package/dist/esm/components/boundary/errorBoundary.js +1 -1
  73. package/dist/esm/components/bubbleConfirm/bubbleConfirm.js +1 -1
  74. package/dist/esm/components/calendar/panelYear.js +1 -1
  75. package/dist/esm/components/cascade/cascade.js +3 -3
  76. package/dist/esm/components/cascade/cascadePanel.js +1 -1
  77. package/dist/esm/components/checkboxBase/checkboxBase.js +1 -1
  78. package/dist/esm/components/counter/counter.js +1 -1
  79. package/dist/esm/components/curd/curd.js +1 -1
  80. package/dist/esm/components/curd/curd.style.js +5 -0
  81. package/dist/esm/components/curd/curdColumnConfig.js +3 -2
  82. package/dist/esm/components/curd/curdDialog.js +1 -1
  83. package/dist/esm/components/curd/curdFilter.js +1 -1
  84. package/dist/esm/components/curd/curdResizable.js +1 -1
  85. package/dist/esm/components/dataGrid/dataGrid.js +3 -2
  86. package/dist/esm/components/dataGrid/dataGridHead.js +1 -1
  87. package/dist/esm/components/dataGrid/dataGridRows.js +1 -1
  88. package/dist/esm/components/dateTimePicker/dateTimePicker.js +1 -1
  89. package/dist/esm/components/dialog/dialog.js +1 -1
  90. package/dist/esm/components/drawer/drawer.js +1 -1
  91. package/dist/esm/components/gallery/gallery.js +3 -3
  92. package/dist/esm/components/image/image.d.ts +1 -1
  93. package/dist/esm/components/image/image.js +3 -2
  94. package/dist/esm/components/inputBase/inputBase.js +1 -1
  95. package/dist/esm/components/menu/menu.js +2 -2
  96. package/dist/esm/components/menuItem/menuItem.js +1 -1
  97. package/dist/esm/components/overlayBase/overlayBase.d.ts +3 -1
  98. package/dist/esm/components/overlayBase/overlayBase.js +6 -6
  99. package/dist/esm/components/pagination/pager.js +1 -1
  100. package/dist/esm/components/palette/palette.js +1 -1
  101. package/dist/esm/components/pickerDialog/pickerDialog.js +1 -1
  102. package/dist/esm/components/pinchable/pinchable.js +7 -0
  103. package/dist/esm/components/popper/popper.d.ts +3 -1
  104. package/dist/esm/components/popper/popper.js +7 -7
  105. package/dist/esm/components/progress/progress.js +5 -3
  106. package/dist/esm/components/rating/rating.js +1 -1
  107. package/dist/esm/components/select/select.js +1 -1
  108. package/dist/esm/components/snackbarBase/snackbarBase.d.ts +3 -2
  109. package/dist/esm/components/snackbarBase/snackbarBase.js +5 -5
  110. package/dist/esm/components/stepper/step.js +1 -1
  111. package/dist/esm/components/tabs/tabsEllipsis.js +1 -1
  112. package/dist/esm/components/tag/tag.js +1 -1
  113. package/dist/esm/components/theme/themeVariables.d.ts +1 -0
  114. package/dist/esm/components/theme/themeVariables.js +1 -0
  115. package/dist/esm/components/touchRipple/index.d.ts +1 -0
  116. package/dist/esm/components/touchRipple/index.js +1 -0
  117. package/dist/esm/components/touchRipple/touchRipple.d.ts +6 -14
  118. package/dist/esm/components/touchRipple/touchRipple.js +54 -39
  119. package/dist/esm/components/touchRipple/touchRipple.style.js +25 -27
  120. package/dist/esm/components/transfer/transfer.js +3 -3
  121. package/dist/esm/components/transfer/transferPanel.js +2 -1
  122. package/dist/esm/components/tree/tree.js +1 -1
  123. package/dist/esm/components/tree/treeNode.js +1 -1
  124. package/dist/esm/components/treeSelect/treeSelect.js +1 -1
  125. package/dist/esm/components/typography/typography.js +1 -1
  126. package/dist/esm/components/upload/dropArea.js +1 -1
  127. package/dist/esm/components/upload/fileItem.js +1 -1
  128. package/dist/esm/components/upload/imageItem.js +1 -1
  129. package/dist/esm/components/upload/upload.js +3 -3
  130. package/dist/esm/components/waterfall/waterfallItem.js +2 -2
  131. package/dist/esm/extensions/documentViewer/documentViewer.js +2 -1
  132. package/dist/esm/extensions/documentViewer/documentViewer.style.js +2 -1
  133. package/dist/esm/extensions/documentViewer/svgViewer.d.ts +2 -2
  134. package/dist/esm/extensions/documentViewer/svgViewer.js +12 -8
  135. package/dist/esm/utils/hooks.d.ts +8 -0
  136. package/dist/esm/utils/hooks.js +21 -0
  137. package/documentation/dist/assets/{index-GiFWv3kZ.js → index-DvrKS6Tv.js} +2978 -2957
  138. package/documentation/dist/index.html +1 -1
  139. package/package.json +1 -2
@@ -8,7 +8,7 @@ const utils_1 = require("../../utils");
8
8
  const gallery_style_1 = require("./gallery.style");
9
9
  const button_1 = require("../button");
10
10
  const tooltip_1 = require("../tooltip");
11
- const __1 = require("../..");
11
+ const icon_1 = require("../icon");
12
12
  const faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
13
13
  const faExpand_1 = require("@fortawesome/free-solid-svg-icons/faExpand");
14
14
  const faAngleLeft_1 = require("@fortawesome/free-solid-svg-icons/faAngleLeft");
@@ -25,8 +25,8 @@ const commonControlProps = {
25
25
  color: 'text'
26
26
  };
27
27
  const bounceBezier = (0, utils_1.cubicBezier)(0, 0, 0, 1);
28
- exports.Gallery = (0, react_1.memo)(({ src = [], defaultIndex = 0, index, onIndexChange, defaultOpen = false, open, onOpenChange, showRotation = true, showZoom = true, showClose = true, renderControl, bounceElementTranslate = 24, bounceDragDistance = 240, effectiveSpeed = 450, ...props }) => {
29
- const srcArr = (0, utils_1.useSync)((0, utils_1.toArray)(src));
28
+ exports.Gallery = (0, react_1.memo)(({ src, defaultIndex = 0, index, onIndexChange, defaultOpen = false, open, onOpenChange, showRotation = true, showZoom = true, showClose = true, renderControl, bounceElementTranslate = 24, bounceDragDistance = 240, effectiveSpeed = 450, ...props }) => {
29
+ const srcArr = (0, utils_1.useSync)((0, utils_1.toArray)(src || []));
30
30
  const [innerOpen, setInnerOpen] = (0, utils_1.useControlled)(defaultOpen, open, onOpenChange);
31
31
  const close = () => {
32
32
  setInnerOpen(false);
@@ -154,10 +154,10 @@ exports.Gallery = (0, react_1.memo)(({ src = [], defaultIndex = 0, index, onInde
154
154
  return ((0, jsx_runtime_1.jsx)(modal_1.Modal, { ...props, css: gallery_style_1.style, className: (0, utils_1.clsx)(gallery_style_1.classes.root, props.className), open: innerOpen.current, onClosed: resetAll, maskProps: {
155
155
  ...props.maskProps,
156
156
  children: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: gallery_style_1.classes.control, children: [renderControl, showRotation &&
157
- (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u65CB\u8F6C-90\u00B0", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: rotateLeft, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faArrowRotateLeft_1.faArrowRotateLeft }) }) }), (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u65CB\u8F6C90\u00B0", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: rotateRight, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faArrowRotateRight_1.faArrowRotateRight }) }) })] }), showZoom &&
158
- (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u7F29\u5C0F", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: zoomOut, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faMagnifyingGlassMinus_1.faMagnifyingGlassMinus }) }) }), (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u653E\u5927", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: zoomIn, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faMagnifyingGlassPlus_1.faMagnifyingGlassPlus }) }) }), (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u9002\u5E94\u5C4F\u5E55", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: reset, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faExpand_1.faExpand }) }) })] }), showClose &&
159
- (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: close, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faXmark_1.faXmark }) })] }), srcArr.current.length > 1 &&
160
- (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: gallery_style_1.classes.swap, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: goPrevLoop, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faAngleLeft_1.faAngleLeft }) }), (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: goNextLoop, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faAngleRight_1.faAngleRight }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: gallery_style_1.classes.counter, children: [innerIndex.current + 1, " / ", srcArr.current.length] })] })] }))
157
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u65CB\u8F6C-90\u00B0", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: rotateLeft, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faArrowRotateLeft_1.faArrowRotateLeft }) }) }), (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u65CB\u8F6C90\u00B0", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: rotateRight, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faArrowRotateRight_1.faArrowRotateRight }) }) })] }), showZoom &&
158
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u7F29\u5C0F", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: zoomOut, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faMagnifyingGlassMinus_1.faMagnifyingGlassMinus }) }) }), (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u653E\u5927", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: zoomIn, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faMagnifyingGlassPlus_1.faMagnifyingGlassPlus }) }) }), (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u9002\u5E94\u5C4F\u5E55", children: (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: reset, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faExpand_1.faExpand }) }) })] }), showClose &&
159
+ (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: close, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faXmark_1.faXmark }) })] }), srcArr.current.length > 1 &&
160
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: gallery_style_1.classes.swap, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: goPrevLoop, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faAngleLeft_1.faAngleLeft }) }), (0, jsx_runtime_1.jsx)(button_1.Button, { ...commonControlProps, onClick: goNextLoop, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faAngleRight_1.faAngleRight }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: gallery_style_1.classes.counter, children: [innerIndex.current + 1, " / ", srcArr.current.length] })] })] }))
161
161
  }, children: srcArr.current.length > 0 &&
162
162
  (0, jsx_runtime_1.jsx)("div", { className: gallery_style_1.classes.galleryContainer, ...draggableHandles, onDoubleClick: doubleClickHandler, children: (0, jsx_runtime_1.jsx)("div", { ref: wrapperRef, className: gallery_style_1.classes.galleryWrapper, style: { left: -innerIndex.current * 100 + '%' }, onTransitionEnd: e => e.currentTarget.dataset.transition = '', children: srcArr.current.map((src, i) => (0, jsx_runtime_1.jsx)(imageItem_1.ImageItem, { ref: r => {
163
163
  r && imageItemRefs.current.push(r);
@@ -1,6 +1,6 @@
1
1
  import React, { CSSProperties, ReactNode, JSX, ReactElement } from 'react';
2
2
  import { DivProps } from '../../types';
3
- import { Gallery, ImagePreviewProps } from '../gallery/gallery';
3
+ import { Gallery, ImagePreviewProps } from '../gallery';
4
4
  export interface ImageProps extends DivProps {
5
5
  src?: string;
6
6
  fallback?: string;
@@ -5,8 +5,9 @@ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const image_style_1 = require("./image.style");
7
7
  const utils_1 = require("../../utils");
8
- const gallery_1 = require("../gallery/gallery");
9
- const __1 = require("../..");
8
+ const gallery_1 = require("../gallery");
9
+ const icon_1 = require("../icon");
10
+ const skeleton_1 = require("../skeleton");
10
11
  const faEye_1 = require("@fortawesome/free-regular-svg-icons/faEye");
11
12
  exports.Image = (0, react_1.memo)(({ src, fallback, onLoad, onError, renderLoading, alt = '', width, height, objectFit = 'cover', objectPosition = 'center', imgProps, actions, previewable = true, previewProps, onPreview, ...props }) => {
12
13
  const imgRef = (0, react_1.useRef)(null);
@@ -35,7 +36,7 @@ exports.Image = (0, react_1.memo)(({ src, fallback, onLoad, onError, renderLoadi
35
36
  };
36
37
  const renderedActions = (() => {
37
38
  if (typeof actions === 'undefined' && previewable) {
38
- return ((0, jsx_runtime_1.jsxs)("div", { className: image_style_1.classes.previewButton, onClick: previewHandler, children: [(0, jsx_runtime_1.jsx)(__1.Icon, { icon: faEye_1.faEye }), (0, jsx_runtime_1.jsx)("div", { children: "\u9884\u89C8" })] }));
39
+ return ((0, jsx_runtime_1.jsxs)("div", { className: image_style_1.classes.previewButton, onClick: previewHandler, children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faEye_1.faEye }), (0, jsx_runtime_1.jsx)("div", { children: "\u9884\u89C8" })] }));
39
40
  }
40
41
  return actions;
41
42
  })();
@@ -44,7 +45,7 @@ exports.Image = (0, react_1.memo)(({ src, fallback, onLoad, onError, renderLoadi
44
45
  objectPosition,
45
46
  ...imgProps?.style
46
47
  }, onLoad: loadHandler, onError: errorHandler }), loading.current &&
47
- (renderLoading ?? (0, jsx_runtime_1.jsx)(__1.Skeleton, { className: image_style_1.classes.skeleton })), !!renderedActions && !failed.current &&
48
+ (renderLoading ?? (0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, { className: image_style_1.classes.skeleton })), !!renderedActions && !failed.current &&
48
49
  (0, jsx_runtime_1.jsx)("div", { className: image_style_1.classes.mask, children: renderedActions }), previewable && src &&
49
50
  (0, jsx_runtime_1.jsx)(gallery_1.Gallery, { src: [src], ...previewProps, open: previewOpen.current, onOpenChange: setPreviewOpen })] }));
50
51
  });
@@ -8,7 +8,7 @@ const utils_1 = require("../../utils");
8
8
  const theme_1 = require("../theme");
9
9
  const button_1 = require("../button");
10
10
  const loadingIndicator_1 = require("../loadingIndicator");
11
- const __1 = require("../..");
11
+ const icon_1 = require("../icon");
12
12
  const faCircleXmark_1 = require("@fortawesome/free-solid-svg-icons/faCircleXmark");
13
13
  exports.InputBase = (({ variant = 'outlined', size, shape, color = 'primary', children, prefix, suffix, onClear, loading, type, clearable = type !== 'number',
14
14
  // 以下属性传递给<input/>
@@ -76,6 +76,6 @@ min, max, step, precision, placeholder, disabled, readOnly, autoFocus, defaultVa
76
76
  onKeyDown: (e) => e.key === 'Enter' && blurHandler(e)
77
77
  }) }), loading &&
78
78
  (0, jsx_runtime_1.jsx)(loadingIndicator_1.LoadingIndicator, {}), clearable && !disabled && !readOnly && (Array.isArray(innerValue.current) ? !!innerValue.current.length : !!innerValue.current) &&
79
- (0, jsx_runtime_1.jsx)(button_1.Button, { className: inputBase_style_1.classes.clear, variant: "plain", color: "text.disabled", onClick: clear, tabIndex: -1, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faCircleXmark_1.faCircleXmark }) }), !!suffix &&
79
+ (0, jsx_runtime_1.jsx)(button_1.Button, { className: inputBase_style_1.classes.clear, variant: "plain", color: "text.disabled", onClick: clear, tabIndex: -1, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faCircleXmark_1.faCircleXmark }) }), !!suffix &&
80
80
  (0, jsx_runtime_1.jsx)("div", { className: inputBase_style_1.classes.suffix, children: suffix })] }));
81
81
  });
@@ -16,10 +16,10 @@ function useMenuContext() {
16
16
  const { size = theme.size, ellipsis = true, indent = theme.spacing[8], ...context } = (0, react_2.useContext)(MenuContext);
17
17
  return { size, ellipsis, indent, ...context };
18
18
  }
19
- exports.Menu = (0, react_2.memo)(({ items, primaryKey = 'value', labelKey = 'label', childrenKey = 'children', defaultExpanded = [], expanded, onExpandedChange, multiple, defaultValue, value, onChange,
19
+ exports.Menu = (0, react_2.memo)(({ items, primaryKey = 'value', labelKey = 'label', childrenKey = 'children', defaultExpanded, expanded, onExpandedChange, multiple, defaultValue, value, onChange,
20
20
  // 以下属性传递给<MenuItem/>
21
21
  size = 'large', showCheckbox, ellipsis, indent, ...props }) => {
22
- const [innerExpanded, setInnerExpanded] = (0, utils_1.useControlled)(defaultExpanded, expanded);
22
+ const [innerExpanded, setInnerExpanded] = (0, utils_1.useControlled)(defaultExpanded || [], expanded);
23
23
  const expandedSet = (0, react_2.useMemo)(() => {
24
24
  return new Set(innerExpanded.current);
25
25
  }, [innerExpanded.current]);
@@ -9,7 +9,7 @@ const checkbox_1 = require("../checkbox");
9
9
  const popper_1 = require("../popper");
10
10
  const menu_1 = require("../menu");
11
11
  const transitionBase_1 = require("../transitionBase");
12
- const __1 = require("../..");
12
+ const icon_1 = require("../icon");
13
13
  const faChevronDown_1 = require("@fortawesome/free-solid-svg-icons/faChevronDown");
14
14
  exports.MenuItem = (0, react_1.memo)(({ value, size, color = 'primary', emphasized = false, selected, focused = false, disabled = false, showCheckbox, checkboxProps, ellipsis, prefix, label, suffix, searchToken, _level = 0, indent, expandIcon, defaultExpanded = false, expanded, onExpandedChange, ...props }) => {
15
15
  const context = (0, menu_1.useMenuContext)();
@@ -43,7 +43,7 @@ exports.MenuItem = (0, react_1.memo)(({ value, size, color = 'primary', emphasiz
43
43
  return;
44
44
  }
45
45
  if (!expandIcon) {
46
- return ((0, jsx_runtime_1.jsx)("div", { className: menuItem_style_1.classes.arrow, "data-open": innerExpanded.current, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faChevronDown_1.faChevronDown }) }));
46
+ return ((0, jsx_runtime_1.jsx)("div", { className: menuItem_style_1.classes.arrow, "data-open": innerExpanded.current, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faChevronDown_1.faChevronDown }) }));
47
47
  }
48
48
  if (typeof expandIcon === 'function') {
49
49
  return expandIcon(innerExpanded.current);
@@ -4,6 +4,8 @@ import { TransitionBaseProps } from '../transitionBase';
4
4
  export interface OverlayBaseProps extends DivProps {
5
5
  /** 模态的容器元素,默认为document.body */
6
6
  container?: DefineElement<HTMLElement>;
7
+ /** 同{@link container},但会在useEffect后取值,且只会执行一次 */
8
+ effectContainer?: DefineElement<HTMLElement>;
7
9
  /**
8
10
  * @enum {true} 跟随父组件强制渲染
9
11
  * @enum {false} 打开时渲染,关闭后销毁
@@ -22,4 +24,4 @@ export interface OverlayBaseProps extends DivProps {
22
24
  removeFocusOnOpen?: boolean;
23
25
  }
24
26
  export declare const overlayBaseTransitionDuration = 300;
25
- export declare function OverlayBase({ container, forceRender, open, onMaskClick, singleLayer, onOpened, onClosed, maskProps, removeFocusOnOpen, ...props }: OverlayBaseProps): false | React.ReactPortal;
27
+ export declare function OverlayBase({ container, effectContainer, forceRender, open, onMaskClick, singleLayer, onOpened, onClosed, maskProps, removeFocusOnOpen, ...props }: OverlayBaseProps): false | React.ReactPortal;
@@ -9,22 +9,22 @@ const utils_1 = require("../../utils");
9
9
  const react_dom_1 = require("react-dom");
10
10
  const transitionBase_1 = require("../transitionBase");
11
11
  exports.overlayBaseTransitionDuration = 300;
12
- function OverlayBase({ container, forceRender, open, onMaskClick, singleLayer, onOpened, onClosed, maskProps, removeFocusOnOpen = true, ...props }) {
12
+ function OverlayBase({ container, effectContainer, forceRender, open, onMaskClick, singleLayer, onOpened, onClosed, maskProps, removeFocusOnOpen = true, ...props }) {
13
13
  const [shouldRender, setShouldRender] = (0, utils_1.useDerivedState)((prev = false) => {
14
14
  if (open) {
15
15
  return true;
16
16
  }
17
17
  return forceRender === true || prev;
18
18
  }, [open, forceRender]);
19
- const containerEl = (typeof container === 'function' ? container() : container) || document.body;
19
+ const containerEl = (0, utils_1.useContainer)(container, effectContainer);
20
20
  (0, react_1.useEffect)(() => {
21
21
  if (!open) {
22
22
  return;
23
23
  }
24
24
  removeFocusOnOpen && document.activeElement?.blur?.();
25
- containerEl.style.overflow = 'hidden';
25
+ containerEl.current.style.overflow = 'hidden';
26
26
  return () => {
27
- containerEl.style.overflow = '';
27
+ containerEl.current.style.overflow = '';
28
28
  };
29
29
  }, [open]);
30
30
  const clickHandler = (e) => {
@@ -40,5 +40,5 @@ function OverlayBase({ container, forceRender, open, onMaskClick, singleLayer, o
40
40
  onClosed?.();
41
41
  forceRender === false && setShouldRender(false);
42
42
  };
43
- return shouldRender.current && (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsxs)("div", { ...props, css: overlayBase_style_1.style, className: (0, utils_1.clsx)(overlayBase_style_1.classes.root, props.className), "data-open": open, "data-custom-container": containerEl !== document.body, children: [(0, jsx_runtime_1.jsx)(transitionBase_1.Fade, { timeout: exports.overlayBaseTransitionDuration, ...maskProps, in: open, className: (0, utils_1.clsx)(overlayBase_style_1.classes.mask, maskProps?.className), onClick: clickHandler, onEntered: onEntered, onExited: onExited }), props.children] }), containerEl);
43
+ return shouldRender.current && (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsxs)("div", { ...props, css: overlayBase_style_1.style, className: (0, utils_1.clsx)(overlayBase_style_1.classes.root, props.className), "data-open": open, "data-custom-container": containerEl.current !== document.body, children: [(0, jsx_runtime_1.jsx)(transitionBase_1.Fade, { timeout: exports.overlayBaseTransitionDuration, ...maskProps, in: open, className: (0, utils_1.clsx)(overlayBase_style_1.classes.mask, maskProps?.className), onClick: clickHandler, onEntered: onEntered, onExited: onExited }), props.children] }), containerEl.current);
44
44
  }
@@ -8,7 +8,7 @@ const pagination_style_1 = require("./pagination.style");
8
8
  const pagination_1 = require("./pagination");
9
9
  const utils_1 = require("../../utils");
10
10
  const theme_1 = require("../theme");
11
- const __1 = require("../..");
11
+ const icon_1 = require("../icon");
12
12
  const faEllipsis_1 = require("@fortawesome/free-solid-svg-icons/faEllipsis");
13
13
  const faAngleLeft_1 = require("@fortawesome/free-solid-svg-icons/faAngleLeft");
14
14
  const faAngleRight_1 = require("@fortawesome/free-solid-svg-icons/faAngleRight");
@@ -18,7 +18,7 @@ exports.PaginationPager = (0, react_1.memo)((props) => {
18
18
  const renderPageButton = (i, ellipsis) => {
19
19
  const btnPage = i + 1;
20
20
  const isActive = !ellipsis && btnPage === page;
21
- return ((0, jsx_runtime_1.jsx)(button_1.Button, { className: pagination_style_1.classes.button, variant: isActive ? 'outlined' : 'text', color: isActive ? 'primary' : text.primary, size: size, readOnly: isActive, onClick: () => onPageChange(btnPage), children: ellipsis ? (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faEllipsis_1.faEllipsis }) : btnPage }, i));
21
+ return ((0, jsx_runtime_1.jsx)(button_1.Button, { className: pagination_style_1.classes.button, variant: isActive ? 'outlined' : 'text', color: isActive ? 'primary' : text.primary, size: size, readOnly: isActive, onClick: () => onPageChange(btnPage), children: ellipsis ? (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faEllipsis_1.faEllipsis }) : btnPage }, i));
22
22
  };
23
23
  const renderPageList = () => {
24
24
  if (pageCount <= 9) {
@@ -52,5 +52,5 @@ exports.PaginationPager = (0, react_1.memo)((props) => {
52
52
  : renderPageButton(page + i - 5, i === 1 || i === 7);
53
53
  });
54
54
  };
55
- return ((0, jsx_runtime_1.jsxs)("div", { ...props, className: (0, utils_1.clsx)(pagination_style_1.classes.pager, props.className), children: [(0, jsx_runtime_1.jsx)(button_1.Button, { className: pagination_style_1.classes.button, variant: "text", size: size, color: "text.secondary", disabled: page === 1, onClick: () => onPageChange(page - 1), children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faAngleLeft_1.faAngleLeft }) }), renderPageList(), (0, jsx_runtime_1.jsx)(button_1.Button, { className: pagination_style_1.classes.button, variant: "text", size: size, color: "text.secondary", disabled: page === pageCount, onClick: () => onPageChange(page + 1), children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faAngleRight_1.faAngleRight }) })] }));
55
+ return ((0, jsx_runtime_1.jsxs)("div", { ...props, className: (0, utils_1.clsx)(pagination_style_1.classes.pager, props.className), children: [(0, jsx_runtime_1.jsx)(button_1.Button, { className: pagination_style_1.classes.button, variant: "text", size: size, color: "text.secondary", disabled: page === 1, onClick: () => onPageChange(page - 1), children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faAngleLeft_1.faAngleLeft }) }), renderPageList(), (0, jsx_runtime_1.jsx)(button_1.Button, { className: pagination_style_1.classes.button, variant: "text", size: size, color: "text.secondary", disabled: page === pageCount, onClick: () => onPageChange(page + 1), children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faAngleRight_1.faAngleRight }) })] }));
56
56
  });
@@ -11,7 +11,7 @@ const slider_1 = require("../slider");
11
11
  const color_1 = tslib_1.__importDefault(require("color"));
12
12
  const button_1 = require("../button");
13
13
  const colorValueInput_1 = require("./colorValueInput");
14
- const __1 = require("../..");
14
+ const icon_1 = require("../icon");
15
15
  const faChevronDown_1 = require("@fortawesome/free-solid-svg-icons/faChevronDown");
16
16
  const sliderProps = {
17
17
  railSize: 9,
@@ -114,5 +114,5 @@ exports.Palette = (0, react_1.memo)(({ defaultValue, value, onChange, gestureOpt
114
114
  }, ...draggableHandles })] }), (0, jsx_runtime_1.jsxs)("div", { className: palette_style_1.classes.slidersRow, children: [(0, jsx_runtime_1.jsxs)("div", { className: palette_style_1.classes.sliders, children: [(0, jsx_runtime_1.jsx)(slider_1.Slider, { ...sliderProps, className: palette_style_1.classes.hue, value: colorObject.hue / 359 * 100, onChange: hueChangeHandler }), (0, jsx_runtime_1.jsx)(slider_1.Slider, { ...sliderProps, className: palette_style_1.classes.alpha, renderRail: (_, railProps) => (0, jsx_runtime_1.jsxs)("div", { ...railProps, children: [railProps.children, (0, jsx_runtime_1.jsx)("div", { className: palette_style_1.classes.alphaMask, style: { backgroundImage: `linear-gradient(90deg, transparent, ${colorObject.saturated})` } })] }), value: colorObject.alpha * 100, onChange: alphaChangeHandler })] }), (0, jsx_runtime_1.jsx)("div", { className: palette_style_1.classes.preview, children: (0, jsx_runtime_1.jsx)("div", { className: palette_style_1.classes.previewColor, style: {
115
115
  backgroundColor: colorObject.hex,
116
116
  opacity: colorObject.alpha
117
- } }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: palette_style_1.classes.inputRow, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "plain", color: "text.secondary", suffix: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faChevronDown_1.faChevronDown }), onClick: formatChangeHandler, children: availableFormat[activeFormat] }), renderInputs()] })] }));
117
+ } }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: palette_style_1.classes.inputRow, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "plain", color: "text.secondary", suffix: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faChevronDown_1.faChevronDown }), onClick: formatChangeHandler, children: availableFormat[activeFormat] }), renderInputs()] })] }));
118
118
  });
@@ -10,7 +10,7 @@ const selectionContext_1 = require("../selectionContext");
10
10
  const divider_1 = require("../divider");
11
11
  const selectedList_1 = require("../selectedList");
12
12
  const button_1 = require("../button");
13
- const __1 = require("../..");
13
+ const icon_1 = require("../icon");
14
14
  const faTrashCan_1 = require("@fortawesome/free-regular-svg-icons/faTrashCan");
15
15
  exports.PickerDialog = (({ ref, dialogRef, multiple, children, showSelectedList = !!multiple, selectedListPlacement = 'right', selectedListProps, selectedItemProps, onConfirm, rows, nodes,
16
16
  // 以下属性从SelectionContextBaseProps继承
@@ -70,6 +70,6 @@ options = rows ?? nodes, primaryKey = 'id', childrenKey = 'children', relation =
70
70
  ...props.modalProps
71
71
  }, ...showSelectedList && {
72
72
  [selectedListPlacement === 'left' ? 'prefix' : 'suffix']: ((0, jsx_runtime_1.jsxs)("div", { className: pickerDialog_style_1.classes.selectedArea, children: [(0, jsx_runtime_1.jsxs)(divider_1.Divider, { className: pickerDialog_style_1.classes.count, textAlign: "start", children: [(0, jsx_runtime_1.jsxs)("div", { children: ["\u5DF2\u9009\u62E9", (0, jsx_runtime_1.jsx)("b", { children: selectedCount }), "\u9879"] }), clearable &&
73
- (0, jsx_runtime_1.jsx)(button_1.Button, { prefix: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faTrashCan_1.faTrashCan }), variant: "plain", color: "text.secondary", onClick: () => setInnerValue(multiple ? [] : null), children: "\u6E05\u7A7A" })] }), (0, jsx_runtime_1.jsx)(selectedList_1.SelectedList, { itemProps: selectedItemProps, ...selectedListProps, className: (0, utils_1.clsx)(pickerDialog_style_1.classes.list, selectedListProps?.className) }), (0, jsx_runtime_1.jsx)(button_1.Button, { className: pickerDialog_style_1.classes.confirm, disabled: selectedCount === 0, onClick: () => confirmHandler(), children: "\u786E\u5B9A" })] }))
73
+ (0, jsx_runtime_1.jsx)(button_1.Button, { prefix: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faTrashCan_1.faTrashCan }), variant: "plain", color: "text.secondary", onClick: () => setInnerValue(multiple ? [] : null), children: "\u6E05\u7A7A" })] }), (0, jsx_runtime_1.jsx)(selectedList_1.SelectedList, { itemProps: selectedItemProps, ...selectedListProps, className: (0, utils_1.clsx)(pickerDialog_style_1.classes.list, selectedListProps?.className) }), (0, jsx_runtime_1.jsx)(button_1.Button, { className: pickerDialog_style_1.classes.confirm, disabled: selectedCount === 0, onClick: () => confirmHandler(), children: "\u786E\u5B9A" })] }))
74
74
  }, children: renderChildren() }) }));
75
75
  });
@@ -143,6 +143,12 @@ exports.Pinchable = (({ component: Component = 'div', ref, gestureOptions, defau
143
143
  resetZoom();
144
144
  }
145
145
  };
146
+ const wheelHandler = (e) => {
147
+ childrenProps.onMouseWheel?.(e);
148
+ e.deltaY > 0
149
+ ? zoomFn(innerScale.current * .8, e.clientX, e.clientY)
150
+ : zoomFn(innerScale.current * 1.2, e.clientX, e.clientY);
151
+ };
146
152
  return ((0, jsx_runtime_1.jsx)(Component, { ...props, ref: wrapperRef, css: pinchable_style_1.style, className: (0, utils_1.clsx)(pinchable_style_1.classes.root, props.className), ...pinchableHandles, children: (0, react_1.cloneElement)(children, {
147
153
  ref: (0, utils_1.cloneRef)(contentRef, childrenProps.ref),
148
154
  className: (0, utils_1.clsx)(pinchable_style_1.classes.content, childrenProps.className),
@@ -155,6 +161,7 @@ exports.Pinchable = (({ component: Component = 'div', ref, gestureOptions, defau
155
161
  },
156
162
  ...draggableHandles,
157
163
  onDoubleClick: doubleClickHandler,
164
+ onWheel: wheelHandler,
158
165
  onTransitionEnd: e => e.currentTarget.dataset.transition = 'false'
159
166
  }) }));
160
167
  });
@@ -7,6 +7,8 @@ export interface PopperProps extends Omit<DivProps, 'content' | 'children'> {
7
7
  anchorElement?: DefineElement<HTMLElement>;
8
8
  /** 弹框渲染的容器元素,默认为{@link document.body} */
9
9
  container?: DefineElement<HTMLElement>;
10
+ /** 同{@link container},但会在useEffect后取值,且只会执行一次 */
11
+ effectContainer?: DefineElement<HTMLElement>;
10
12
  /** 汽泡里的内容 */
11
13
  content?: ReactNode;
12
14
  /** 弹框偏离元素的距离 */
@@ -46,4 +48,4 @@ export interface PopperRef extends HTMLDivElement {
46
48
  openAnimation?: boolean;
47
49
  }, beforeOpen?: () => void): void;
48
50
  }
49
- export declare function Popper({ ref, popperRef, anchorElement, container, content, offset, trigger, placement, variant, sizeAdaptable, mouseEnterDelay, mouseLeaveDelay, defaultOpen, open, onOpenChange, onOpenChangeEnd, disabled, autoClose, forceRender, children, ...props }: PopperProps): import("@emotion/react/jsx-runtime").JSX.Element;
51
+ export declare function Popper({ ref, popperRef, anchorElement, container, effectContainer, content, offset, trigger, placement, variant, sizeAdaptable, mouseEnterDelay, mouseLeaveDelay, defaultOpen, open, onOpenChange, onOpenChangeEnd, disabled, autoClose, forceRender, children, ...props }: PopperProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -22,7 +22,7 @@ const getAttemptOrder = (placement) => {
22
22
  }
23
23
  return order;
24
24
  };
25
- function Popper({ ref, popperRef, anchorElement, container = document.body, content, offset, trigger = 'hover', placement = 'top', variant = 'zoom', sizeAdaptable = variant === 'collapse', mouseEnterDelay = 100, mouseLeaveDelay = 150, defaultOpen = false, open, onOpenChange, onOpenChangeEnd, disabled, autoClose = false, forceRender, children, ...props }) {
25
+ function Popper({ ref, popperRef, anchorElement, container = document.body, effectContainer, content, offset, trigger = 'hover', placement = 'top', variant = 'zoom', sizeAdaptable = variant === 'collapse', mouseEnterDelay = 100, mouseLeaveDelay = 150, defaultOpen = false, open, onOpenChange, onOpenChangeEnd, disabled, autoClose = false, forceRender, children, ...props }) {
26
26
  const { spacing } = (0, theme_1.useTheme)();
27
27
  offset ??= spacing[2];
28
28
  (0, react_1.useImperativeHandle)(popperRef, () => {
@@ -104,14 +104,14 @@ function Popper({ ref, popperRef, anchorElement, container = document.body, cont
104
104
  const getAnchorElement = () => {
105
105
  return anchorRef.current || (typeof syncAnchorElement.current === 'function' ? syncAnchorElement.current() : syncAnchorElement.current);
106
106
  };
107
- const containerRef = (0, utils_1.useSync)((typeof container === 'function' ? container() : container) || document.body);
107
+ const containerEl = (0, utils_1.useContainer)(container, effectContainer);
108
108
  const innerPopperRef = (0, react_1.useRef)(null);
109
109
  const [popperBounding, setPopperBounding] = (0, react_1.useState)();
110
110
  const [openNextFrame, setOpenNextFrame] = (0, utils_1.useDerivedState)(!innerOpen.current, [innerOpen.current, contextMenuEvent.current]);
111
111
  const placeA = (0, react_1.useRef)(void 0);
112
112
  const placeB = (0, react_1.useRef)(void 0);
113
113
  const fitPosition = (options, beforeOpen) => {
114
- const containerRect = containerRef.current.getBoundingClientRect();
114
+ const containerRect = containerEl.current.getBoundingClientRect();
115
115
  const popperEl = innerPopperRef.current;
116
116
  let { offsetWidth: popperWidth, offsetHeight: popperHeight } = popperEl;
117
117
  let pA, pB;
@@ -187,7 +187,7 @@ function Popper({ ref, popperRef, anchorElement, container = document.body, cont
187
187
  }
188
188
  popperEl.style.left = left + 'px';
189
189
  popperEl.style.top = top + 'px';
190
- return (0, utils_1.isElementVisibleCompletely)(popperEl, containerRef.current === document.body ? void 0 : containerRef.current);
190
+ return (0, utils_1.isElementVisibleCompletely)(popperEl, containerEl.current === document.body ? void 0 : containerEl.current);
191
191
  };
192
192
  }
193
193
  else {
@@ -258,7 +258,7 @@ function Popper({ ref, popperRef, anchorElement, container = document.body, cont
258
258
  }
259
259
  popperEl.style.left = left + 'px';
260
260
  popperEl.style.top = top + 'px';
261
- return (0, utils_1.isElementVisibleCompletely)(popperEl, containerRef.current === document.body ? void 0 : containerRef.current);
261
+ return (0, utils_1.isElementVisibleCompletely)(popperEl, containerEl.current === document.body ? void 0 : containerEl.current);
262
262
  };
263
263
  }
264
264
  if (options?.forcePlacement) {
@@ -502,5 +502,5 @@ function Popper({ ref, popperRef, anchorElement, container = document.body, cont
502
502
  transform: 'scale(1)'
503
503
  },
504
504
  ...props.style
505
- }, "data-open": innerOpen.current, "data-variant": variant, "data-place-a": placeA.current, "data-place-b": placeB.current, onTransitionEnd: onTransitionEnd, children: (0, jsx_runtime_1.jsx)(popperContext_1.PopperContext, { value: contextValue, children: content }) }) }), containerRef.current)] }));
505
+ }, "data-open": innerOpen.current, "data-variant": variant, "data-place-a": placeA.current, "data-place-b": placeB.current, onTransitionEnd: onTransitionEnd, children: (0, jsx_runtime_1.jsx)(popperContext_1.PopperContext, { value: contextValue, children: content }) }) }), containerEl.current)] }));
506
506
  }
@@ -7,10 +7,12 @@ const progress_style_1 = require("./progress.style");
7
7
  const utils_1 = require("../../utils");
8
8
  const theme_1 = require("../theme");
9
9
  const react_2 = require("@emotion/react");
10
- const __1 = require("../..");
10
+ const icon_1 = require("../icon");
11
11
  const faCircleCheck_1 = require("@fortawesome/free-solid-svg-icons/faCircleCheck");
12
12
  const faCircleXmark_1 = require("@fortawesome/free-solid-svg-icons/faCircleXmark");
13
- exports.Progress = (0, react_1.memo)(({ showInfo = true, renderInfo, color = 'primary', status = 'default', variant = 'linear', gapDegree = 90, size = 60, indeterminate = false, barWidth = 4, strokeLinecap = variant === 'gauge' ? 'butt' : 'round', value = 0, ...props }) => {
13
+ exports.Progress = (0, react_1.memo)(({ showInfo = true, renderInfo, color, status = 'default', variant = 'linear', gapDegree = 90, size = 60, indeterminate = false, barWidth = 4, strokeLinecap = variant === 'gauge' ? 'butt' : 'round', value = 0, ...props }) => {
14
+ const isColorSpecified = !!color;
15
+ color ??= 'primary';
14
16
  const { colors: { success, error } } = (0, theme_1.useTheme)();
15
17
  const isSucceed = status === 'success' || (status !== 'error' && value === 100 && variant !== 'gauge');
16
18
  const renderInfoFn = () => {
@@ -18,10 +20,10 @@ exports.Progress = (0, react_1.memo)(({ showInfo = true, renderInfo, color = 'pr
18
20
  return renderInfo(value);
19
21
  }
20
22
  if (isSucceed) {
21
- return (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faCircleCheck_1.faCircleCheck, className: progress_style_1.classes.icon, style: { color: success.main } });
23
+ return (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faCircleCheck_1.faCircleCheck, className: progress_style_1.classes.icon, style: { color: success.main } });
22
24
  }
23
25
  if (status === 'error') {
24
- return (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faCircleXmark_1.faCircleXmark, className: progress_style_1.classes.icon, style: { color: error.main } });
26
+ return (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faCircleXmark_1.faCircleXmark, className: progress_style_1.classes.icon, style: { color: error.main } });
25
27
  }
26
28
  return value + '%';
27
29
  };
@@ -55,7 +57,7 @@ exports.Progress = (0, react_1.memo)(({ showInfo = true, renderInfo, color = 'pr
55
57
  }
56
58
  return;
57
59
  }, [indeterminate, variant, strokeLinecap, size, barWidth]);
58
- return ((0, jsx_runtime_1.jsx)("div", { ...props, css: (0, progress_style_1.useStyle)({ color: color || 'primary', variant }), className: (0, utils_1.clsx)(progress_style_1.classes.root, props.className), "data-variant": variant, "data-indeterminate": indeterminate, "data-processing": value < 100 && status === 'processing', "data-success": isSucceed, "data-error": status === 'error', children: variant === 'linear'
60
+ return ((0, jsx_runtime_1.jsx)("div", { ...props, css: (0, progress_style_1.useStyle)({ color: color || 'primary', variant }), className: (0, utils_1.clsx)(progress_style_1.classes.root, props.className), "data-variant": variant, "data-indeterminate": indeterminate, "data-processing": value < 100 && status === 'processing', "data-success": isColorSpecified ? void 0 : isSucceed, "data-error": isColorSpecified ? void 0 : status === 'error', children: variant === 'linear'
59
61
  ? (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: progress_style_1.classes.track, style: {
60
62
  height: barWidth,
61
63
  ...props.style
@@ -6,9 +6,9 @@ const react_1 = require("react");
6
6
  const utils_1 = require("../../utils");
7
7
  const rating_style_1 = require("./rating.style");
8
8
  const theme_1 = require("../theme");
9
- const __1 = require("../..");
9
+ const icon_1 = require("../icon");
10
10
  const faStar_1 = require("@fortawesome/free-solid-svg-icons/faStar");
11
- exports.Rating = (0, react_1.memo)(({ color = '#FFCC00', size, count = 5, renderStar = (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faStar_1.faStar }), allowHalf, highlightSelectedOnly = false, defaultValue = 0, value, onChange, readOnly, disabled, ...props }) => {
11
+ exports.Rating = (0, react_1.memo)(({ color = '#FFCC00', size, count = 5, renderStar = (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faStar_1.faStar }), allowHalf, highlightSelectedOnly = false, defaultValue = 0, value, onChange, readOnly, disabled, ...props }) => {
12
12
  const theme = (0, theme_1.useTheme)();
13
13
  size ??= theme.size;
14
14
  const [innerValue, setInnerValue] = (0, utils_1.useControlled)(defaultValue, value, onChange);
@@ -14,7 +14,7 @@ const input_1 = require("../input");
14
14
  const loadingIndicator_1 = require("../loadingIndicator");
15
15
  const popper_style_1 = require("../popper/popper.style");
16
16
  const selectionContext_1 = require("../selectionContext");
17
- const __1 = require("../..");
17
+ const icon_1 = require("../icon");
18
18
  const faChevronDown_1 = require("@fortawesome/free-solid-svg-icons/faChevronDown");
19
19
  const faMagnifyingGlass_1 = require("@fortawesome/free-solid-svg-icons/faMagnifyingGlass");
20
20
  exports.Select = (0, react_1.memo)(({ inputProps, popperProps, popperRef, defaultOpen = false, open, onOpenChange, sizeAdaptable = true, children, multiple, defaultValue, value, onChange, renderBackfill, searchable, defaultSearchValue = '', searchValue, onSearchChange, searchInputProps,
@@ -82,7 +82,7 @@ showCheckbox = !!multiple, loading, options, labelKey = 'label', primaryKey = 'v
82
82
  return ((0, jsx_runtime_1.jsx)("div", { className: select_style_1.classes.backfillWrap, children: optionsMap.get(innerValue)?.[labelKey] ?? innerValue }));
83
83
  };
84
84
  return ((0, jsx_runtime_1.jsx)(popper_1.Popper, { css: popper_style_1.popperStyle, open: innerOpen.current, onOpenChange: openChangeHandler, onOpenChangeEnd: openChangeEnd, placement: "bottom", variant: "collapse", trigger: ['click', 'enter'], disabled: props.disabled || props.readOnly, sizeAdaptable: sizeAdaptable, content: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [searchable &&
85
- (0, jsx_runtime_1.jsx)(input_1.Input, { inputProps: { ref: searchInputRef }, prefix: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faMagnifyingGlass_1.faMagnifyingGlass }), placeholder: "\u641C\u7D22", value: innerSearchValue.current, ...searchInputProps, onChange: e => {
85
+ (0, jsx_runtime_1.jsx)(input_1.Input, { inputProps: { ref: searchInputRef }, prefix: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faMagnifyingGlass_1.faMagnifyingGlass }), placeholder: "\u641C\u7D22", value: innerSearchValue.current, ...searchInputProps, onChange: e => {
86
86
  searchInputProps?.onChange?.(e);
87
87
  setInnerSearchValue?.(e.target.value);
88
88
  }, onBlur: e => {
@@ -95,6 +95,6 @@ showCheckbox = !!multiple, loading, options, labelKey = 'label', primaryKey = 'v
95
95
  ? (0, jsx_runtime_1.jsx)("div", { className: select_style_1.classes.placeholder, children: props.placeholder ?? '请选择' })
96
96
  : (0, jsx_runtime_1.jsx)("div", { className: select_style_1.classes.backfill, children: renderBackfillFn() }), (0, jsx_runtime_1.jsx)("input", { size: 1, ...inputBaseProps, ...inputProps, "data-hidden": "true" }), (0, jsx_runtime_1.jsx)("div", { className: select_style_1.classes.arrow, "data-open": innerOpen.current, children: loading
97
97
  ? (0, jsx_runtime_1.jsx)(loadingIndicator_1.LoadingIndicator, {})
98
- : (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faChevronDown_1.faChevronDown }) })] }) }) }));
98
+ : (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faChevronDown_1.faChevronDown }) })] }) }) }));
99
99
  });
100
100
  exports.Option = exports.Select.Option = menuItem_1.MenuItem;
@@ -24,11 +24,12 @@ export declare class SnackbarBaseMethods<P extends SnackbarBaseProps = SnackbarB
24
24
  error(content: ReactNode): Promise<void>;
25
25
  error(props: P): Promise<void>;
26
26
  }
27
- export declare const SnackbarBase: React.MemoExoticComponent<({ methods, useTo, max, container }: {
27
+ export declare const SnackbarBase: React.MemoExoticComponent<({ methods, useTo, max, container, effectContainer }: {
28
28
  methods: SnackbarBaseMethods;
29
29
  useTo: "message" | "notification";
30
30
  max?: number;
31
- container?: DefineElement;
31
+ container?: DefineElement<HTMLElement>;
32
+ effectContainer?: DefineElement<HTMLElement>;
32
33
  }) => React.ReactPortal>;
33
34
  interface SnackbarBaseItemProps extends Omit<SnackbarBaseProps, 'duration' | 'onAutoClose'> {
34
35
  id: string;
@@ -11,7 +11,7 @@ const react_transition_group_1 = require("react-transition-group");
11
11
  const status_1 = require("../status");
12
12
  const button_1 = require("../button");
13
13
  const react_dom_1 = require("react-dom");
14
- const __1 = require("../..");
14
+ const icon_1 = require("../icon");
15
15
  const faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
16
16
  class SnackbarBaseMethods {
17
17
  async info(_) {
@@ -37,7 +37,7 @@ const placementToIndex = {
37
37
  bottomRight: 5,
38
38
  rightBottom: 5
39
39
  };
40
- exports.SnackbarBase = (0, react_2.memo)(({ methods, useTo, max = useTo === 'message' ? 5 : 4, container }) => {
40
+ exports.SnackbarBase = (0, react_2.memo)(({ methods, useTo, max = useTo === 'message' ? 5 : 4, container, effectContainer }) => {
41
41
  const [stacks, setStacks] = (0, react_2.useState)([]);
42
42
  const timers = (0, react_2.useRef)([]);
43
43
  (0, react_2.useEffect)(() => () => {
@@ -85,10 +85,10 @@ exports.SnackbarBase = (0, react_2.memo)(({ methods, useTo, max = useTo === 'mes
85
85
  methods.warning = defineMethod('warning');
86
86
  methods.error = defineMethod('error');
87
87
  const css = (0, snackbarBase_style_1.style)();
88
- const containerEl = (typeof container === 'function' ? container() : container) || document.body;
88
+ const containerEl = (0, utils_1.useContainer)(container, effectContainer);
89
89
  return (0, react_dom_1.createPortal)(stacks.flatMap((stack, i) => stack
90
90
  ? (0, jsx_runtime_1.jsx)(react_transition_group_1.TransitionGroup, { css: css, className: snackbarBase_style_1.classes.root, "data-place": i, "data-use-to": useTo, children: stack.map(p => (0, react_1.createElement)(exports.SnackbarBaseItem, { ...p, key: p.id })) }, i)
91
- : []), containerEl);
91
+ : []), containerEl.current);
92
92
  });
93
93
  /**
94
94
  * ----------------------------------------------------------------------
@@ -115,7 +115,7 @@ exports.SnackbarBaseItem = (0, react_2.memo)(({ id, type, useTo, resolve, varian
115
115
  const colorValue = (0, utils_1.useColor)(color);
116
116
  const renderedIcon = icon ?? (variant === 'outlined'
117
117
  ? (0, jsx_runtime_1.jsx)(status_1.StatusIcon, { status: type })
118
- : (0, jsx_runtime_1.jsx)(__1.Icon, { icon: status_1.statusMapToIconDefinition[type] }));
118
+ : (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: status_1.statusMapToIconDefinition[type] }));
119
119
  const closeHandler = (e) => {
120
120
  e.stopPropagation();
121
121
  onCloseButtonClick?.(e);
@@ -128,5 +128,5 @@ exports.SnackbarBaseItem = (0, react_2.memo)(({ id, type, useTo, resolve, varian
128
128
  (0, jsx_runtime_1.jsxs)("div", { className: snackbarBase_style_1.classes.text, children: [!!title &&
129
129
  (0, jsx_runtime_1.jsx)("div", { className: snackbarBase_style_1.classes.title, children: title }), !!content &&
130
130
  (0, jsx_runtime_1.jsx)("div", { className: snackbarBase_style_1.classes.content, children: content })] }), showClose &&
131
- (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "text", shape: "circular", color: "text.disabled", size: "small", className: snackbarBase_style_1.classes.close, onClick: closeHandler, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faXmark_1.faXmark }) })] }) }));
131
+ (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "text", shape: "circular", color: "text.disabled", size: "small", className: snackbarBase_style_1.classes.close, onClick: closeHandler, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faXmark_1.faXmark }) })] }) }));
132
132
  });
@@ -7,7 +7,7 @@ const utils_1 = require("../../utils");
7
7
  const step_style_1 = require("./step.style");
8
8
  const stepper_1 = require("./stepper");
9
9
  const theme_1 = require("../theme");
10
- const __1 = require("../..");
10
+ const icon_1 = require("../icon");
11
11
  const faCheck_1 = require("@fortawesome/free-solid-svg-icons/faCheck");
12
12
  const faCircleInfo_1 = require("@fortawesome/free-solid-svg-icons/faCircleInfo");
13
13
  const faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
@@ -37,13 +37,13 @@ size, gap, color, variant, labelPlacement, clickable, status = 'waiting', ...pro
37
37
  case 'processing':
38
38
  return step + 1;
39
39
  case 'finished':
40
- return (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faCheck_1.faCheck });
40
+ return (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faCheck_1.faCheck });
41
41
  case 'warning':
42
- return (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faCircleInfo_1.faCircleInfo });
42
+ return (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faCircleInfo_1.faCircleInfo });
43
43
  case 'error':
44
- return (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faXmark_1.faXmark });
44
+ return (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faXmark_1.faXmark });
45
45
  case 'skipped':
46
- return (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faMinus_1.faMinus });
46
+ return (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faMinus_1.faMinus });
47
47
  }
48
48
  })() }) }), (0, jsx_runtime_1.jsxs)("div", { className: step_style_1.classes.label, children: [(0, jsx_runtime_1.jsx)("div", { className: step_style_1.classes.title, children: (0, jsx_runtime_1.jsx)("div", { className: step_style_1.classes.titleText, children: renderInner(title) }) }), (0, jsx_runtime_1.jsx)("div", { className: step_style_1.classes.description, children: renderInner(description) })] })] }));
49
49
  });
@@ -7,7 +7,7 @@ const tabs_style_1 = require("./tabs.style");
7
7
  const popper_1 = require("../popper");
8
8
  const tabsEllipsis_style_1 = require("./tabsEllipsis.style");
9
9
  const optionsBase_1 = require("../optionsBase");
10
- const __1 = require("../..");
10
+ const icon_1 = require("../icon");
11
11
  const faEllipsis_1 = require("@fortawesome/free-solid-svg-icons/faEllipsis");
12
12
  exports.TabsEllipsis = (0, react_1.memo)(({ tabs, children, labelKey = 'label', primaryKey = 'value', value, onToggleSelected }) => {
13
13
  const [open, setOpen] = (0, react_1.useState)(false);
@@ -26,5 +26,5 @@ exports.TabsEllipsis = (0, react_1.memo)(({ tabs, children, labelKey = 'label',
26
26
  onToggleSelected(value);
27
27
  setOpen(false);
28
28
  };
29
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(popper_1.Popper, { css: tabsEllipsis_style_1.tabsEllipsisPopperStyle, placement: "bottomRight", trigger: "hover", open: open, onOpenChange: setOpen, content: (0, jsx_runtime_1.jsx)(optionsBase_1.OptionsBase, { options: getOptions(), selectedValue: value, onToggleSelected: _onToggleSelected }), children: (0, jsx_runtime_1.jsx)("div", { className: tabs_style_1.classes.ellipsis, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faEllipsis_1.faEllipsis }) }) }) }));
29
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(popper_1.Popper, { css: tabsEllipsis_style_1.tabsEllipsisPopperStyle, placement: "bottomRight", trigger: "hover", open: open, onOpenChange: setOpen, content: (0, jsx_runtime_1.jsx)(optionsBase_1.OptionsBase, { options: getOptions(), selectedValue: value, onToggleSelected: _onToggleSelected }), children: (0, jsx_runtime_1.jsx)("div", { className: tabs_style_1.classes.ellipsis, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faEllipsis_1.faEllipsis }) }) }) }));
30
30
  });
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const tag_style_1 = require("./tag.style");
7
7
  const utils_1 = require("../../utils");
8
- const __1 = require("../..");
8
+ const icon_1 = require("../icon");
9
9
  const faXmark_1 = require("@fortawesome/free-solid-svg-icons/faXmark");
10
10
  exports.Tag = (0, react_1.memo)(({ variant = 'outlined', color = 'text.secondary', shape = 'square', size = 'small', prefix, suffix, clickable, closable, onClose, ...props }) => {
11
11
  const closeHandler = (e) => {
@@ -16,5 +16,5 @@ exports.Tag = (0, react_1.memo)(({ variant = 'outlined', color = 'text.secondary
16
16
  return ((0, jsx_runtime_1.jsxs)("div", { ...props, css: (0, tag_style_1.useStyle)({ color: color || 'text.secondary' }), className: (0, utils_1.clsx)(tag_style_1.classes.root, props.className), "data-variant": variant, "data-size": size, "data-shape": shape, "data-clickable": clickable, children: [!!prefix &&
17
17
  (0, jsx_runtime_1.jsx)("div", { className: tag_style_1.classes.prefix, children: prefix }), (0, jsx_runtime_1.jsx)("div", { className: tag_style_1.classes.content, children: props.children }), !!suffix &&
18
18
  (0, jsx_runtime_1.jsx)("div", { className: tag_style_1.classes.suffix, children: suffix }), closable &&
19
- (0, jsx_runtime_1.jsx)("div", { className: tag_style_1.classes.close, onClick: closeHandler, children: (0, jsx_runtime_1.jsx)(__1.Icon, { icon: faXmark_1.faXmark }) })] }));
19
+ (0, jsx_runtime_1.jsx)("div", { className: tag_style_1.classes.close, onClick: closeHandler, children: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faXmark_1.faXmark }) })] }));
20
20
  });
@@ -15,6 +15,7 @@ export declare function restoreThemeDefinition(theme: PartialTheme): ThemeDefini
15
15
  * 统一全局zIndex
16
16
  */
17
17
  export declare const zIndex: {
18
+ touchRipple: number;
18
19
  overlay: number;
19
20
  popper: number;
20
21
  dropdown: number;
@@ -97,6 +97,7 @@ function restoreThemeDefinition(theme) {
97
97
  * 统一全局zIndex
98
98
  */
99
99
  exports.zIndex = {
100
+ touchRipple: 900,
100
101
  overlay: 1000,
101
102
  popper: 1100,
102
103
  dropdown: 1200,
@@ -1 +1,2 @@
1
1
  export * from './touchRipple';
2
+ export * from './touchRipple';
@@ -2,3 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./touchRipple"), exports);
5
+ tslib_1.__exportStar(require("./touchRipple"), exports);