wssf-kage-ui 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/Anchor/index.d.ts +56 -0
  3. package/dist/cjs/Anchor/index.js +307 -0
  4. package/dist/cjs/Anchor/style.less +183 -0
  5. package/dist/cjs/AutoComplete/index.d.ts +54 -0
  6. package/dist/cjs/AutoComplete/index.js +273 -0
  7. package/dist/cjs/AutoComplete/style.less +325 -0
  8. package/dist/cjs/Breadcrumb/index.d.ts +51 -0
  9. package/dist/cjs/Breadcrumb/index.js +129 -0
  10. package/dist/cjs/Breadcrumb/style.less +96 -0
  11. package/dist/cjs/Cascader/index.d.ts +53 -0
  12. package/dist/cjs/Cascader/index.js +338 -0
  13. package/dist/cjs/Cascader/style.less +457 -0
  14. package/dist/cjs/Checkbox/index.d.ts +52 -0
  15. package/dist/cjs/Checkbox/index.js +158 -0
  16. package/dist/cjs/Checkbox/style.less +211 -0
  17. package/dist/cjs/ColorPicker/index.d.ts +28 -0
  18. package/dist/cjs/ColorPicker/index.js +381 -0
  19. package/dist/cjs/ColorPicker/style.less +276 -0
  20. package/dist/cjs/DatePicker/index.d.ts +32 -0
  21. package/dist/cjs/DatePicker/index.js +377 -0
  22. package/dist/cjs/DatePicker/style.less +498 -0
  23. package/dist/cjs/Divider/index.d.ts +24 -0
  24. package/dist/cjs/Divider/index.js +75 -0
  25. package/dist/cjs/Divider/style.less +144 -0
  26. package/dist/cjs/Dropdown/index.d.ts +88 -0
  27. package/dist/cjs/Dropdown/index.js +253 -0
  28. package/dist/cjs/Dropdown/style.less +430 -0
  29. package/dist/cjs/Flex/index.d.ts +37 -0
  30. package/dist/cjs/Flex/index.js +76 -0
  31. package/dist/cjs/Flex/style.less +13 -0
  32. package/dist/cjs/Form/index.d.ts +89 -0
  33. package/dist/cjs/Form/index.js +421 -0
  34. package/dist/cjs/Form/style.less +203 -0
  35. package/dist/cjs/Grid/index.d.ts +69 -0
  36. package/dist/cjs/Grid/index.js +171 -0
  37. package/dist/cjs/Grid/style.less +273 -0
  38. package/dist/cjs/Layout/index.d.ts +74 -0
  39. package/dist/cjs/Layout/index.js +166 -0
  40. package/dist/cjs/Layout/style.less +145 -0
  41. package/dist/cjs/Masonry/index.d.ts +18 -0
  42. package/dist/cjs/Masonry/index.js +146 -0
  43. package/dist/cjs/Masonry/style.less +15 -0
  44. package/dist/cjs/Menu/index.d.ts +87 -0
  45. package/dist/cjs/Menu/index.js +306 -0
  46. package/dist/cjs/Menu/style.less +363 -0
  47. package/dist/cjs/Pagination/index.d.ts +38 -0
  48. package/dist/cjs/Pagination/index.js +255 -0
  49. package/dist/cjs/Pagination/style.less +353 -0
  50. package/dist/cjs/Space/index.d.ts +41 -0
  51. package/dist/cjs/Space/index.js +137 -0
  52. package/dist/cjs/Space/style.less +116 -0
  53. package/dist/cjs/Splitter/index.d.ts +43 -0
  54. package/dist/cjs/Splitter/index.js +219 -0
  55. package/dist/cjs/Splitter/style.less +99 -0
  56. package/dist/cjs/Steps/index.d.ts +58 -0
  57. package/dist/cjs/Steps/index.js +180 -0
  58. package/dist/cjs/Steps/style.less +507 -0
  59. package/dist/cjs/Tabs/index.d.ts +58 -0
  60. package/dist/cjs/Tabs/index.js +196 -0
  61. package/dist/cjs/Tabs/style.less +423 -0
  62. package/dist/cjs/Typography/index.d.ts +102 -0
  63. package/dist/cjs/Typography/index.js +168 -0
  64. package/dist/cjs/Typography/style.less +246 -0
  65. package/dist/cjs/index.d.ts +42 -0
  66. package/dist/cjs/index.js +260 -1
  67. package/dist/esm/Anchor/index.d.ts +56 -0
  68. package/dist/esm/Anchor/index.js +302 -0
  69. package/dist/esm/Anchor/style.less +183 -0
  70. package/dist/esm/AutoComplete/index.d.ts +54 -0
  71. package/dist/esm/AutoComplete/index.js +268 -0
  72. package/dist/esm/AutoComplete/style.less +325 -0
  73. package/dist/esm/Breadcrumb/index.d.ts +51 -0
  74. package/dist/esm/Breadcrumb/index.js +124 -0
  75. package/dist/esm/Breadcrumb/style.less +96 -0
  76. package/dist/esm/Cascader/index.d.ts +53 -0
  77. package/dist/esm/Cascader/index.js +333 -0
  78. package/dist/esm/Cascader/style.less +457 -0
  79. package/dist/esm/Checkbox/index.d.ts +52 -0
  80. package/dist/esm/Checkbox/index.js +152 -0
  81. package/dist/esm/Checkbox/style.less +211 -0
  82. package/dist/esm/ColorPicker/index.d.ts +28 -0
  83. package/dist/esm/ColorPicker/index.js +375 -0
  84. package/dist/esm/ColorPicker/style.less +276 -0
  85. package/dist/esm/DatePicker/index.d.ts +32 -0
  86. package/dist/esm/DatePicker/index.js +371 -0
  87. package/dist/esm/DatePicker/style.less +498 -0
  88. package/dist/esm/Divider/index.d.ts +24 -0
  89. package/dist/esm/Divider/index.js +68 -0
  90. package/dist/esm/Divider/style.less +144 -0
  91. package/dist/esm/Dropdown/index.d.ts +88 -0
  92. package/dist/esm/Dropdown/index.js +249 -0
  93. package/dist/esm/Dropdown/style.less +430 -0
  94. package/dist/esm/Flex/index.d.ts +37 -0
  95. package/dist/esm/Flex/index.js +69 -0
  96. package/dist/esm/Flex/style.less +13 -0
  97. package/dist/esm/Form/index.d.ts +89 -0
  98. package/dist/esm/Form/index.js +416 -0
  99. package/dist/esm/Form/style.less +203 -0
  100. package/dist/esm/Grid/index.d.ts +69 -0
  101. package/dist/esm/Grid/index.js +165 -0
  102. package/dist/esm/Grid/style.less +273 -0
  103. package/dist/esm/Layout/index.d.ts +74 -0
  104. package/dist/esm/Layout/index.js +161 -0
  105. package/dist/esm/Layout/style.less +145 -0
  106. package/dist/esm/Masonry/index.d.ts +18 -0
  107. package/dist/esm/Masonry/index.js +138 -0
  108. package/dist/esm/Masonry/style.less +15 -0
  109. package/dist/esm/Menu/index.d.ts +87 -0
  110. package/dist/esm/Menu/index.js +301 -0
  111. package/dist/esm/Menu/style.less +363 -0
  112. package/dist/esm/Pagination/index.d.ts +38 -0
  113. package/dist/esm/Pagination/index.js +247 -0
  114. package/dist/esm/Pagination/style.less +353 -0
  115. package/dist/esm/Space/index.d.ts +41 -0
  116. package/dist/esm/Space/index.js +131 -0
  117. package/dist/esm/Space/style.less +116 -0
  118. package/dist/esm/Splitter/index.d.ts +43 -0
  119. package/dist/esm/Splitter/index.js +214 -0
  120. package/dist/esm/Splitter/style.less +99 -0
  121. package/dist/esm/Steps/index.d.ts +58 -0
  122. package/dist/esm/Steps/index.js +174 -0
  123. package/dist/esm/Steps/style.less +507 -0
  124. package/dist/esm/Tabs/index.d.ts +58 -0
  125. package/dist/esm/Tabs/index.js +193 -0
  126. package/dist/esm/Tabs/style.less +423 -0
  127. package/dist/esm/Typography/index.d.ts +102 -0
  128. package/dist/esm/Typography/index.js +161 -0
  129. package/dist/esm/Typography/style.less +246 -0
  130. package/dist/esm/index.d.ts +42 -0
  131. package/dist/esm/index.js +22 -1
  132. package/package.json +13 -10
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Space = exports.Compact = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ require("./style.less");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+ var sizeMap = {
24
+ small: 8,
25
+ middle: 16,
26
+ large: 24
27
+ };
28
+ var getSize = function getSize(size) {
29
+ if (typeof size === 'number') {
30
+ return size;
31
+ }
32
+ return sizeMap[size] || 8;
33
+ };
34
+ var Space = exports.Space = function Space(_ref) {
35
+ var _ref$direction = _ref.direction,
36
+ direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
37
+ _ref$size = _ref.size,
38
+ size = _ref$size === void 0 ? 'small' : _ref$size,
39
+ align = _ref.align,
40
+ _ref$wrap = _ref.wrap,
41
+ wrap = _ref$wrap === void 0 ? false : _ref$wrap,
42
+ split = _ref.split,
43
+ children = _ref.children,
44
+ _ref$className = _ref.className,
45
+ className = _ref$className === void 0 ? '' : _ref$className,
46
+ style = _ref.style;
47
+ // 处理 size
48
+ var _ref2 = Array.isArray(size) ? [getSize(size[0]), getSize(size[1])] : [getSize(size), getSize(size)],
49
+ _ref3 = _slicedToArray(_ref2, 2),
50
+ horizontalSize = _ref3[0],
51
+ verticalSize = _ref3[1];
52
+
53
+ // 对齐方式映射
54
+ var alignMap = {
55
+ start: 'flex-start',
56
+ end: 'flex-end',
57
+ center: 'center',
58
+ baseline: 'baseline'
59
+ };
60
+ var classNames = ['kage-space', "kage-space-".concat(direction), wrap && 'kage-space-wrap', align && "kage-space-align-".concat(align), className].filter(Boolean).join(' ');
61
+ var spaceStyle = _objectSpread({
62
+ alignItems: align ? alignMap[align] : undefined
63
+ }, style);
64
+
65
+ // 过滤有效的子元素
66
+ var childArray = _react.default.Children.toArray(children).filter(function (child) {
67
+ return child !== null && child !== undefined && child !== '';
68
+ });
69
+ if (childArray.length === 0) {
70
+ return null;
71
+ }
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
73
+ className: classNames,
74
+ style: spaceStyle,
75
+ children: childArray.map(function (child, index) {
76
+ var isLast = index === childArray.length - 1;
77
+ var itemStyle = {
78
+ marginRight: direction === 'horizontal' && !isLast ? horizontalSize : undefined,
79
+ marginBottom: direction === 'vertical' && !isLast ? verticalSize : undefined,
80
+ paddingRight: direction === 'horizontal' && wrap ? horizontalSize : undefined,
81
+ paddingBottom: wrap ? verticalSize : undefined
82
+ };
83
+
84
+ // 如果有 wrap,使用 gap 方式
85
+ if (wrap) {
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
87
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
88
+ className: "kage-space-item",
89
+ children: child
90
+ }), split && !isLast && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
91
+ className: "kage-space-split",
92
+ children: split
93
+ })]
94
+ }, index);
95
+ }
96
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
97
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
98
+ className: "kage-space-item",
99
+ style: itemStyle,
100
+ children: child
101
+ }), split && !isLast && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
102
+ className: "kage-space-split",
103
+ style: {
104
+ marginRight: direction === 'horizontal' ? horizontalSize : undefined,
105
+ marginBottom: direction === 'vertical' ? verticalSize : undefined
106
+ },
107
+ children: split
108
+ })]
109
+ }, index);
110
+ })
111
+ });
112
+ };
113
+
114
+ // Compact 紧凑组件
115
+
116
+ var Compact = exports.Compact = function Compact(_ref4) {
117
+ var _ref4$direction = _ref4.direction,
118
+ direction = _ref4$direction === void 0 ? 'horizontal' : _ref4$direction,
119
+ _ref4$block = _ref4.block,
120
+ block = _ref4$block === void 0 ? false : _ref4$block,
121
+ children = _ref4.children,
122
+ _ref4$className = _ref4.className,
123
+ className = _ref4$className === void 0 ? '' : _ref4$className,
124
+ style = _ref4.style;
125
+ var classNames = ['kage-space-compact', "kage-space-compact-".concat(direction), block && 'kage-space-compact-block', className].filter(Boolean).join(' ');
126
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
127
+ className: classNames,
128
+ style: style,
129
+ children: children
130
+ });
131
+ };
132
+
133
+ // 添加 Compact 到 Space
134
+
135
+ var SpaceWithCompact = Space;
136
+ SpaceWithCompact.Compact = Compact;
137
+ var _default = exports.default = SpaceWithCompact;
@@ -0,0 +1,116 @@
1
+ // Space 间距组件样式
2
+
3
+ @prefix: kage-space;
4
+
5
+ .@{prefix} {
6
+ display: inline-flex;
7
+
8
+ &-horizontal {
9
+ flex-direction: row;
10
+ }
11
+
12
+ &-vertical {
13
+ flex-direction: column;
14
+ }
15
+
16
+ &-wrap {
17
+ flex-wrap: wrap;
18
+ }
19
+
20
+ &-align-start {
21
+ align-items: flex-start;
22
+ }
23
+
24
+ &-align-end {
25
+ align-items: flex-end;
26
+ }
27
+
28
+ &-align-center {
29
+ align-items: center;
30
+ }
31
+
32
+ &-align-baseline {
33
+ align-items: baseline;
34
+ }
35
+
36
+ &-item {
37
+ display: inline-flex;
38
+
39
+ &:empty {
40
+ display: none;
41
+ }
42
+ }
43
+
44
+ &-split {
45
+ display: inline-flex;
46
+ align-items: center;
47
+ color: rgba(0, 0, 0, 0.45);
48
+ }
49
+ }
50
+
51
+ // ============ Compact 紧凑模式 ============
52
+ .@{prefix}-compact {
53
+ display: inline-flex;
54
+
55
+ &-block {
56
+ display: flex;
57
+ width: 100%;
58
+ }
59
+
60
+ &-horizontal {
61
+ flex-direction: row;
62
+
63
+ > *:not(:last-child) {
64
+ margin-right: -1px;
65
+ }
66
+
67
+ > *:first-child:not(:last-child) {
68
+ border-top-right-radius: 0;
69
+ border-bottom-right-radius: 0;
70
+ }
71
+
72
+ > *:last-child:not(:first-child) {
73
+ border-top-left-radius: 0;
74
+ border-bottom-left-radius: 0;
75
+ }
76
+
77
+ > *:not(:first-child):not(:last-child) {
78
+ border-radius: 0;
79
+ }
80
+
81
+ > *:hover,
82
+ > *:focus,
83
+ > *:active {
84
+ z-index: 2;
85
+ }
86
+ }
87
+
88
+ &-vertical {
89
+ flex-direction: column;
90
+
91
+ > *:not(:last-child) {
92
+ margin-bottom: -1px;
93
+ }
94
+
95
+ > *:first-child:not(:last-child) {
96
+ border-bottom-left-radius: 0;
97
+ border-bottom-right-radius: 0;
98
+ }
99
+
100
+ > *:last-child:not(:first-child) {
101
+ border-top-left-radius: 0;
102
+ border-top-right-radius: 0;
103
+ }
104
+
105
+ > *:not(:first-child):not(:last-child) {
106
+ border-radius: 0;
107
+ }
108
+
109
+ > *:hover,
110
+ > *:focus,
111
+ > *:active {
112
+ z-index: 2;
113
+ }
114
+ }
115
+ }
116
+
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import './style.less';
3
+ export interface PanelProps {
4
+ /** 默认大小(百分比或像素) */
5
+ defaultSize?: number | string;
6
+ /** 受控大小 */
7
+ size?: number | string;
8
+ /** 最小大小 */
9
+ min?: number | string;
10
+ /** 最大大小 */
11
+ max?: number | string;
12
+ /** 是否可调整大小 */
13
+ resizable?: boolean;
14
+ /** 是否可折叠 */
15
+ collapsible?: boolean;
16
+ /** 子元素 */
17
+ children?: React.ReactNode;
18
+ /** 自定义类名 */
19
+ className?: string;
20
+ /** 自定义样式 */
21
+ style?: React.CSSProperties;
22
+ }
23
+ export declare const Panel: React.FC<PanelProps>;
24
+ export interface SplitterProps {
25
+ /** 布局方向 */
26
+ layout?: 'horizontal' | 'vertical';
27
+ /** 尺寸变化回调 */
28
+ onResize?: (sizes: number[]) => void;
29
+ /** 拖拽开始回调 */
30
+ onResizeStart?: () => void;
31
+ /** 拖拽结束回调 */
32
+ onResizeEnd?: (sizes: number[]) => void;
33
+ /** 子元素(Panel) */
34
+ children?: React.ReactNode;
35
+ /** 自定义类名 */
36
+ className?: string;
37
+ /** 自定义样式 */
38
+ style?: React.CSSProperties;
39
+ }
40
+ export declare const Splitter: React.FC<SplitterProps> & {
41
+ Panel: typeof Panel;
42
+ };
43
+ export default Splitter;
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Splitter = exports.Panel = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ require("./style.less");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
19
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
22
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
26
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
27
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // ============ Panel 面板组件 ============
28
+ var Panel = exports.Panel = function Panel(_ref) {
29
+ var children = _ref.children,
30
+ _ref$className = _ref.className,
31
+ className = _ref$className === void 0 ? '' : _ref$className,
32
+ style = _ref.style;
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
34
+ className: "kage-splitter-panel ".concat(className),
35
+ style: style,
36
+ children: children
37
+ });
38
+ };
39
+ Panel.displayName = 'Panel';
40
+
41
+ // ============ Splitter 分割器组件 ============
42
+
43
+ var Splitter = exports.Splitter = function Splitter(_ref2) {
44
+ var _ref2$layout = _ref2.layout,
45
+ layout = _ref2$layout === void 0 ? 'horizontal' : _ref2$layout,
46
+ onResize = _ref2.onResize,
47
+ onResizeStart = _ref2.onResizeStart,
48
+ onResizeEnd = _ref2.onResizeEnd,
49
+ children = _ref2.children,
50
+ _ref2$className = _ref2.className,
51
+ className = _ref2$className === void 0 ? '' : _ref2$className,
52
+ style = _ref2.style;
53
+ var containerRef = (0, _react.useRef)(null);
54
+ var _useState = (0, _react.useState)([]),
55
+ _useState2 = _slicedToArray(_useState, 2),
56
+ sizes = _useState2[0],
57
+ setSizes = _useState2[1];
58
+ var _useState3 = (0, _react.useState)(false),
59
+ _useState4 = _slicedToArray(_useState3, 2),
60
+ isDragging = _useState4[0],
61
+ setIsDragging = _useState4[1];
62
+ var _useState5 = (0, _react.useState)(null),
63
+ _useState6 = _slicedToArray(_useState5, 2),
64
+ dragIndex = _useState6[0],
65
+ setDragIndex = _useState6[1];
66
+ var startPosRef = (0, _react.useRef)(0);
67
+ var startSizesRef = (0, _react.useRef)([]);
68
+
69
+ // 解析子元素
70
+ var panels = _react.default.Children.toArray(children).filter(function (child) {
71
+ var _child$type;
72
+ return /*#__PURE__*/_react.default.isValidElement(child) && ((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) === 'Panel';
73
+ });
74
+
75
+ // 初始化尺寸
76
+ (0, _react.useEffect)(function () {
77
+ if (sizes.length === 0 && panels.length > 0) {
78
+ var initialSizes = panels.map(function (panel, index) {
79
+ var defaultSize = panel.props.defaultSize;
80
+ if (defaultSize !== undefined) {
81
+ return typeof defaultSize === 'string' ? parseFloat(defaultSize) : defaultSize;
82
+ }
83
+ return 100 / panels.length;
84
+ });
85
+
86
+ // 归一化到 100%
87
+ var total = initialSizes.reduce(function (a, b) {
88
+ return a + b;
89
+ }, 0);
90
+ var normalized = initialSizes.map(function (s) {
91
+ return s / total * 100;
92
+ });
93
+ setSizes(normalized);
94
+ }
95
+ }, [panels.length]);
96
+
97
+ // 获取面板配置
98
+ var getPanelConfig = function getPanelConfig(index) {
99
+ var panel = panels[index];
100
+ if (!panel) return {};
101
+ var _panel$props = panel.props,
102
+ min = _panel$props.min,
103
+ max = _panel$props.max,
104
+ _panel$props$resizabl = _panel$props.resizable,
105
+ resizable = _panel$props$resizabl === void 0 ? true : _panel$props$resizabl,
106
+ collapsible = _panel$props.collapsible;
107
+ return {
108
+ min: min !== undefined ? typeof min === 'string' ? parseFloat(min) : min : 0,
109
+ max: max !== undefined ? typeof max === 'string' ? parseFloat(max) : max : 100,
110
+ resizable: resizable,
111
+ collapsible: collapsible
112
+ };
113
+ };
114
+
115
+ // 开始拖拽
116
+ var handleMouseDown = (0, _react.useCallback)(function (index, e) {
117
+ e.preventDefault();
118
+ setIsDragging(true);
119
+ setDragIndex(index);
120
+ startPosRef.current = layout === 'horizontal' ? e.clientX : e.clientY;
121
+ startSizesRef.current = _toConsumableArray(sizes);
122
+ onResizeStart === null || onResizeStart === void 0 || onResizeStart();
123
+ }, [layout, sizes, onResizeStart]);
124
+
125
+ // 拖拽中
126
+ var handleMouseMove = (0, _react.useCallback)(function (e) {
127
+ if (!isDragging || dragIndex === null || !containerRef.current) return;
128
+ var containerRect = containerRef.current.getBoundingClientRect();
129
+ var containerSize = layout === 'horizontal' ? containerRect.width : containerRect.height;
130
+ var currentPos = layout === 'horizontal' ? e.clientX : e.clientY;
131
+ var delta = currentPos - startPosRef.current;
132
+ var deltaPercent = delta / containerSize * 100;
133
+ var newSizes = _toConsumableArray(startSizesRef.current);
134
+ var config1 = getPanelConfig(dragIndex);
135
+ var config2 = getPanelConfig(dragIndex + 1);
136
+ var newSize1 = startSizesRef.current[dragIndex] + deltaPercent;
137
+ var newSize2 = startSizesRef.current[dragIndex + 1] - deltaPercent;
138
+
139
+ // 应用限制
140
+ var min1 = config1.min || 0;
141
+ var max1 = config1.max || 100;
142
+ var min2 = config2.min || 0;
143
+ var max2 = config2.max || 100;
144
+ if (newSize1 < min1) {
145
+ newSize1 = min1;
146
+ newSize2 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - min1;
147
+ }
148
+ if (newSize1 > max1) {
149
+ newSize1 = max1;
150
+ newSize2 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - max1;
151
+ }
152
+ if (newSize2 < min2) {
153
+ newSize2 = min2;
154
+ newSize1 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - min2;
155
+ }
156
+ if (newSize2 > max2) {
157
+ newSize2 = max2;
158
+ newSize1 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - max2;
159
+ }
160
+ newSizes[dragIndex] = newSize1;
161
+ newSizes[dragIndex + 1] = newSize2;
162
+ setSizes(newSizes);
163
+ onResize === null || onResize === void 0 || onResize(newSizes);
164
+ }, [isDragging, dragIndex, layout, onResize]);
165
+
166
+ // 结束拖拽
167
+ var handleMouseUp = (0, _react.useCallback)(function () {
168
+ if (isDragging) {
169
+ setIsDragging(false);
170
+ setDragIndex(null);
171
+ onResizeEnd === null || onResizeEnd === void 0 || onResizeEnd(sizes);
172
+ }
173
+ }, [isDragging, sizes, onResizeEnd]);
174
+
175
+ // 绑定全局事件
176
+ (0, _react.useEffect)(function () {
177
+ if (isDragging) {
178
+ document.addEventListener('mousemove', handleMouseMove);
179
+ document.addEventListener('mouseup', handleMouseUp);
180
+ document.body.style.cursor = layout === 'horizontal' ? 'col-resize' : 'row-resize';
181
+ document.body.style.userSelect = 'none';
182
+ }
183
+ return function () {
184
+ document.removeEventListener('mousemove', handleMouseMove);
185
+ document.removeEventListener('mouseup', handleMouseUp);
186
+ document.body.style.cursor = '';
187
+ document.body.style.userSelect = '';
188
+ };
189
+ }, [isDragging, handleMouseMove, handleMouseUp, layout]);
190
+ var classNames = ['kage-splitter', "kage-splitter-".concat(layout), isDragging && 'kage-splitter-dragging', className].filter(Boolean).join(' ');
191
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
192
+ ref: containerRef,
193
+ className: classNames,
194
+ style: style,
195
+ children: panels.map(function (panel, index) {
196
+ var isLast = index === panels.length - 1;
197
+ var size = sizes[index] || 100 / panels.length;
198
+ var panelStyle = _objectSpread(_defineProperty({}, layout === 'horizontal' ? 'width' : 'height', "".concat(size, "%")), panel.props.style);
199
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
200
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
201
+ className: "kage-splitter-panel ".concat(panel.props.className || ''),
202
+ style: panelStyle,
203
+ children: panel.props.children
204
+ }), !isLast && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
205
+ className: "kage-splitter-bar kage-splitter-bar-".concat(layout),
206
+ onMouseDown: function onMouseDown(e) {
207
+ return handleMouseDown(index, e);
208
+ },
209
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
210
+ className: "kage-splitter-bar-dragger"
211
+ })
212
+ })]
213
+ }, index);
214
+ })
215
+ });
216
+ };
217
+ Splitter.Panel = Panel;
218
+ Splitter.displayName = 'Splitter';
219
+ var _default = exports.default = Splitter;
@@ -0,0 +1,99 @@
1
+ // Splitter 分割面板组件样式
2
+
3
+ @prefix: kage-splitter;
4
+
5
+ // 颜色变量
6
+ @splitter-bar-bg: #f0f0f0;
7
+ @splitter-bar-hover-bg: #d9d9d9;
8
+ @splitter-bar-active-bg: #6366f1;
9
+ @splitter-bar-size: 8px;
10
+ @splitter-dragger-size: 4px;
11
+
12
+ .@{prefix} {
13
+ display: flex;
14
+ width: 100%;
15
+ height: 100%;
16
+ overflow: hidden;
17
+
18
+ &-horizontal {
19
+ flex-direction: row;
20
+ }
21
+
22
+ &-vertical {
23
+ flex-direction: column;
24
+ }
25
+
26
+ &-dragging {
27
+ .@{prefix}-panel {
28
+ pointer-events: none;
29
+ }
30
+ }
31
+ }
32
+
33
+ // ============ Panel 面板 ============
34
+ .@{prefix}-panel {
35
+ flex-shrink: 0;
36
+ overflow: auto;
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ // ============ 分割条 ============
41
+ .@{prefix}-bar {
42
+ flex-shrink: 0;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ background: @splitter-bar-bg;
47
+ transition: background-color 0.2s;
48
+ z-index: 1;
49
+
50
+ &:hover {
51
+ background: @splitter-bar-hover-bg;
52
+
53
+ .@{prefix}-bar-dragger {
54
+ background: @splitter-bar-active-bg;
55
+ }
56
+ }
57
+
58
+ &-horizontal {
59
+ width: @splitter-bar-size;
60
+ cursor: col-resize;
61
+ flex-direction: column;
62
+
63
+ .@{prefix}-bar-dragger {
64
+ width: @splitter-dragger-size;
65
+ height: 40px;
66
+ border-radius: 2px;
67
+ }
68
+ }
69
+
70
+ &-vertical {
71
+ height: @splitter-bar-size;
72
+ cursor: row-resize;
73
+ flex-direction: row;
74
+
75
+ .@{prefix}-bar-dragger {
76
+ width: 40px;
77
+ height: @splitter-dragger-size;
78
+ border-radius: 2px;
79
+ }
80
+ }
81
+ }
82
+
83
+ // ============ 拖拽手柄 ============
84
+ .@{prefix}-bar-dragger {
85
+ background: #bfbfbf;
86
+ transition: background-color 0.2s;
87
+ }
88
+
89
+ // ============ 拖拽中状态 ============
90
+ .@{prefix}-dragging {
91
+ .@{prefix}-bar {
92
+ background: @splitter-bar-hover-bg;
93
+
94
+ .@{prefix}-bar-dragger {
95
+ background: @splitter-bar-active-bg;
96
+ }
97
+ }
98
+ }
99
+
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import './style.less';
3
+ export type StepStatus = 'wait' | 'process' | 'finish' | 'error';
4
+ export interface StepItem {
5
+ /** 标题 */
6
+ title: React.ReactNode;
7
+ /** 描述 */
8
+ description?: React.ReactNode;
9
+ /** 子标题 */
10
+ subTitle?: React.ReactNode;
11
+ /** 图标 */
12
+ icon?: React.ReactNode;
13
+ /** 状态 */
14
+ status?: StepStatus;
15
+ /** 是否禁用 */
16
+ disabled?: boolean;
17
+ }
18
+ export interface StepsProps {
19
+ /** 步骤项 */
20
+ items: StepItem[];
21
+ /** 当前步骤 */
22
+ current?: number;
23
+ /** 方向 */
24
+ direction?: 'horizontal' | 'vertical';
25
+ /** 类型 */
26
+ type?: 'default' | 'navigation' | 'inline';
27
+ /** 尺寸 */
28
+ size?: 'default' | 'small';
29
+ /** 点状步骤条 */
30
+ progressDot?: boolean | ((dot: React.ReactNode, info: {
31
+ index: number;
32
+ status: StepStatus;
33
+ }) => React.ReactNode);
34
+ /** 标签位置 */
35
+ labelPlacement?: 'horizontal' | 'vertical';
36
+ /** 起始序号 */
37
+ initial?: number;
38
+ /** 全局状态 */
39
+ status?: StepStatus;
40
+ /** 点击回调 */
41
+ onChange?: (current: number) => void;
42
+ /** 是否可点击 */
43
+ clickable?: boolean;
44
+ /** 自定义类名 */
45
+ className?: string;
46
+ /** 自定义样式 */
47
+ style?: React.CSSProperties;
48
+ }
49
+ export declare const Steps: React.FC<StepsProps>;
50
+ export interface StepComponentProps extends StepItem {
51
+ children?: React.ReactNode;
52
+ }
53
+ export declare const StepComponent: React.FC<StepComponentProps>;
54
+ type StepsType = typeof Steps & {
55
+ Step: typeof StepComponent;
56
+ };
57
+ declare const ExportSteps: StepsType;
58
+ export default ExportSteps;