cfd-materials 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +17 -0
  2. package/build/docs/404.html +47 -0
  3. package/build/docs/_demos/:uuid +47 -0
  4. package/build/docs/cloud-visualization.html +48 -0
  5. package/build/docs/colorful-button.html +48 -0
  6. package/build/docs/colorful-input.html +48 -0
  7. package/build/docs/index.html +48 -0
  8. package/build/docs/mesh-visualization.html +48 -0
  9. package/build/docs/umi.4e426eb9.js +1 -0
  10. package/build/docs/umi.6b1604cb.css +8 -0
  11. package/build/docs/~demos/:uuid.html +47 -0
  12. package/build/docs/~demos/cloud-visualization-demo.html +47 -0
  13. package/build/docs/~demos/colorful-button-demo.html +47 -0
  14. package/build/docs/~demos/colorful-input-demo.html +47 -0
  15. package/build/docs/~demos/mesh-visualization-demo.html +47 -0
  16. package/build/index.css +2 -0
  17. package/build/index.html +1 -0
  18. package/build/index.js +53 -0
  19. package/build/lowcode/assets-daily.json +67 -0
  20. package/build/lowcode/assets-dev.json +67 -0
  21. package/build/lowcode/assets-prod.json +67 -0
  22. package/build/lowcode/designer.html +302 -0
  23. package/build/lowcode/index.html +304 -0
  24. package/build/lowcode/index.js +1 -0
  25. package/build/lowcode/meta.js +1 -0
  26. package/build/lowcode/preview.css +1 -0
  27. package/build/lowcode/preview.html +33 -0
  28. package/build/lowcode/preview.js +310 -0
  29. package/build/lowcode/render/default/view.css +1 -0
  30. package/build/lowcode/render/default/view.js +13 -0
  31. package/build/lowcode/view.css +1 -0
  32. package/build/lowcode/view.js +13 -0
  33. package/dist/BizComps.css +1 -0
  34. package/dist/BizComps.js +14 -0
  35. package/dist/BizComps.js.map +1 -0
  36. package/es/components/cloud-visualization/cloud-visualization.d.ts +20 -0
  37. package/es/components/cloud-visualization/cloud-visualization.js +738 -0
  38. package/es/components/cloud-visualization/index.d.ts +3 -0
  39. package/es/components/cloud-visualization/index.js +2 -0
  40. package/es/components/cloud-visualization/index.scss +55 -0
  41. package/es/components/colorful-button/colorful-button.d.ts +12 -0
  42. package/es/components/colorful-button/colorful-button.js +25 -0
  43. package/es/components/colorful-button/index.d.ts +3 -0
  44. package/es/components/colorful-button/index.js +2 -0
  45. package/es/components/colorful-button/index.scss +5 -0
  46. package/es/components/colorful-input/colorful-input.d.ts +8 -0
  47. package/es/components/colorful-input/colorful-input.js +19 -0
  48. package/es/components/colorful-input/index.d.ts +3 -0
  49. package/es/components/colorful-input/index.js +2 -0
  50. package/es/components/colorful-input/index.scss +5 -0
  51. package/es/components/mesh-visualization/index.d.ts +3 -0
  52. package/es/components/mesh-visualization/index.js +2 -0
  53. package/es/components/mesh-visualization/index.scss +441 -0
  54. package/es/components/mesh-visualization/mesh-visualization.d.ts +30 -0
  55. package/es/components/mesh-visualization/mesh-visualization.js +2609 -0
  56. package/es/index.d.ts +10 -0
  57. package/es/index.js +6 -0
  58. package/es/index.scss +2 -0
  59. package/es/style.js +3 -0
  60. package/es/variables.d.ts +2 -0
  61. package/es/variables.js +2 -0
  62. package/es/variables.scss +3 -0
  63. package/lib/components/cloud-visualization/cloud-visualization.d.ts +20 -0
  64. package/lib/components/cloud-visualization/cloud-visualization.js +743 -0
  65. package/lib/components/cloud-visualization/index.d.ts +3 -0
  66. package/lib/components/cloud-visualization/index.js +7 -0
  67. package/lib/components/cloud-visualization/index.scss +55 -0
  68. package/lib/components/colorful-button/colorful-button.d.ts +12 -0
  69. package/lib/components/colorful-button/colorful-button.js +31 -0
  70. package/lib/components/colorful-button/index.d.ts +3 -0
  71. package/lib/components/colorful-button/index.js +7 -0
  72. package/lib/components/colorful-button/index.scss +5 -0
  73. package/lib/components/colorful-input/colorful-input.d.ts +8 -0
  74. package/lib/components/colorful-input/colorful-input.js +25 -0
  75. package/lib/components/colorful-input/index.d.ts +3 -0
  76. package/lib/components/colorful-input/index.js +7 -0
  77. package/lib/components/colorful-input/index.scss +5 -0
  78. package/lib/components/mesh-visualization/index.d.ts +3 -0
  79. package/lib/components/mesh-visualization/index.js +7 -0
  80. package/lib/components/mesh-visualization/index.scss +441 -0
  81. package/lib/components/mesh-visualization/mesh-visualization.d.ts +30 -0
  82. package/lib/components/mesh-visualization/mesh-visualization.js +2614 -0
  83. package/lib/index.d.ts +10 -0
  84. package/lib/index.js +14 -0
  85. package/lib/index.scss +2 -0
  86. package/lib/style.js +3 -0
  87. package/lib/variables.d.ts +2 -0
  88. package/lib/variables.js +5 -0
  89. package/lib/variables.scss +3 -0
  90. package/lowcode/cloud-visualization/meta.ts +194 -0
  91. package/lowcode/colorful-button/meta.ts +102 -0
  92. package/lowcode/colorful-input/meta.ts +56 -0
  93. package/lowcode/mesh-visualization/meta.ts +278 -0
  94. package/lowcode_es/cloud-visualization/meta.d.ts +22 -0
  95. package/lowcode_es/cloud-visualization/meta.js +197 -0
  96. package/lowcode_es/colorful-button/meta.d.ts +22 -0
  97. package/lowcode_es/colorful-button/meta.js +85 -0
  98. package/lowcode_es/colorful-input/meta.d.ts +22 -0
  99. package/lowcode_es/colorful-input/meta.js +48 -0
  100. package/lowcode_es/mesh-visualization/meta.d.ts +22 -0
  101. package/lowcode_es/mesh-visualization/meta.js +285 -0
  102. package/lowcode_es/meta.js +167 -0
  103. package/lowcode_es/view.js +18 -0
  104. package/lowcode_lib/cloud-visualization/meta.d.ts +22 -0
  105. package/lowcode_lib/cloud-visualization/meta.js +202 -0
  106. package/lowcode_lib/colorful-button/meta.d.ts +22 -0
  107. package/lowcode_lib/colorful-button/meta.js +90 -0
  108. package/lowcode_lib/colorful-input/meta.d.ts +22 -0
  109. package/lowcode_lib/colorful-input/meta.js +53 -0
  110. package/lowcode_lib/mesh-visualization/meta.d.ts +22 -0
  111. package/lowcode_lib/mesh-visualization/meta.js +290 -0
  112. package/lowcode_lib/meta.js +171 -0
  113. package/lowcode_lib/view.js +28 -0
  114. package/package.json +104 -0
@@ -0,0 +1,3 @@
1
+ import CloudVisualization from './cloud-visualization';
2
+ export type { CloudVisualizationColorMap, CloudVisualizationDisplayMode, CloudVisualizationField, CloudVisualizationProps, CloudVisualizationViewMode, } from './cloud-visualization';
3
+ export default CloudVisualization;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _cloudVisualization = _interopRequireDefault(require("./cloud-visualization"));
7
+ var _default = exports["default"] = _cloudVisualization["default"];
@@ -0,0 +1,55 @@
1
+ @import '../../variables.scss';
2
+ #{$biz-css-prefix}-cloud-visualization {
3
+ width: 100%;
4
+ height: 100%;
5
+ min-height: 360px;
6
+ position: relative;
7
+ overflow: hidden;
8
+ border: 1px solid rgba(84, 156, 255, 0.38);
9
+ border-radius: 8px;
10
+ box-sizing: border-box;
11
+
12
+ &__toolbar {
13
+ height: 48px;
14
+ display: flex;
15
+ align-items: center;
16
+ gap: 18px;
17
+ padding: 0 16px;
18
+ color: #f5f9ff;
19
+ font-size: 14px;
20
+ background: rgba(0, 0, 0, 0.35);
21
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
22
+ box-sizing: border-box;
23
+ position: relative;
24
+ z-index: 2;
25
+ }
26
+
27
+ &__viewport {
28
+ width: 100%;
29
+ height: calc(100% - 48px);
30
+ min-height: 312px;
31
+ position: relative;
32
+
33
+ canvas {
34
+ display: block;
35
+ width: 100%;
36
+ height: 100%;
37
+ }
38
+ }
39
+
40
+ &__legend {
41
+ position: absolute;
42
+ right: 16px;
43
+ bottom: 16px;
44
+ z-index: 3;
45
+ min-width: 160px;
46
+ padding: 10px 12px;
47
+ border-radius: 6px;
48
+ color: #d9e9ff;
49
+ font-size: 12px;
50
+ line-height: 1.8;
51
+ background: rgba(7, 22, 40, 0.72);
52
+ border: 1px solid rgba(118, 171, 255, 0.25);
53
+ backdrop-filter: blur(6px);
54
+ }
55
+ }
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import './index.scss';
3
+ export interface ColorfulButtonProps {
4
+ /**
5
+ * 类型
6
+ */
7
+ type?: "primary" | "secondary" | "normal";
8
+ color?: string;
9
+ style?: object;
10
+ }
11
+ declare const ColorfulButton: React.FC<ColorfulButtonProps>;
12
+ export default ColorfulButton;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _button = _interopRequireDefault(require("@alifd/next/lib/button"));
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ require("./index.scss");
11
+ var _excluded = ["type", "color", "style"];
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
+ var ColorfulButton = function ColorfulButton(_ref) {
14
+ var _ref$type = _ref.type,
15
+ type = _ref$type === void 0 ? 'primary' : _ref$type,
16
+ color = _ref.color,
17
+ _ref$style = _ref.style,
18
+ style = _ref$style === void 0 ? {} : _ref$style,
19
+ otherProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
20
+ var _style = style || {};
21
+ if (color) {
22
+ _style.backgroundColor = color;
23
+ }
24
+ var _otherProps = otherProps || {};
25
+ _otherProps.style = _style;
26
+ return /*#__PURE__*/React.createElement(_button["default"], (0, _extends2["default"])({
27
+ type: type
28
+ }, _otherProps), "fusion button");
29
+ };
30
+ ColorfulButton.displayName = 'ColorfulButton';
31
+ var _default = exports["default"] = ColorfulButton;
@@ -0,0 +1,3 @@
1
+ import ColorfulButton from './colorful-button';
2
+ export type { ColorfulButtonProps } from './colorful-button';
3
+ export default ColorfulButton;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _colorfulButton = _interopRequireDefault(require("./colorful-button"));
7
+ var _default = exports["default"] = _colorfulButton["default"];
@@ -0,0 +1,5 @@
1
+ @import '../../variables.scss';
2
+
3
+ #{$biz-css-prefix}-colorful-button {
4
+ border: 2px dashed blue;
5
+ }
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import './index.scss';
3
+ export interface ColorfulInputProps {
4
+ color?: string;
5
+ style?: object;
6
+ }
7
+ declare const ColorfulInput: React.FC<ColorfulInputProps>;
8
+ export default ColorfulInput;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _input = _interopRequireDefault(require("@alifd/next/lib/input"));
7
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
8
+ var React = _interopRequireWildcard(require("react"));
9
+ require("./index.scss");
10
+ var _excluded = ["color", "style"];
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
12
+ var ColorfulInput = function ColorfulInput(_ref) {
13
+ var color = _ref.color,
14
+ _ref$style = _ref.style,
15
+ style = _ref$style === void 0 ? {} : _ref$style,
16
+ otherProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
17
+ var _style = style || {};
18
+ if (color) {
19
+ _style.backgroundColor = color;
20
+ }
21
+ var _otherProps = otherProps || {};
22
+ _otherProps.style = _style;
23
+ return /*#__PURE__*/React.createElement(_input["default"], _otherProps);
24
+ };
25
+ var _default = exports["default"] = ColorfulInput;
@@ -0,0 +1,3 @@
1
+ import ColorfulInput from './colorful-input';
2
+ export type { ColorfulInputProps } from './colorful-input';
3
+ export default ColorfulInput;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _colorfulInput = _interopRequireDefault(require("./colorful-input"));
7
+ var _default = exports["default"] = _colorfulInput["default"];
@@ -0,0 +1,5 @@
1
+ @import '../../variables.scss';
2
+
3
+ #{$biz-css-prefix}-colorful-button {
4
+ border: 2px dashed blue;
5
+ }
@@ -0,0 +1,3 @@
1
+ import MeshVisualization from './mesh-visualization';
2
+ export type { MeshCell, MeshDataset, MeshNode, MeshQualityMode, MeshType, MeshVisualizationProps, } from './mesh-visualization';
3
+ export default MeshVisualization;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports["default"] = void 0;
6
+ var _meshVisualization = _interopRequireDefault(require("./mesh-visualization"));
7
+ var _default = exports["default"] = _meshVisualization["default"];
@@ -0,0 +1,441 @@
1
+  @import '../../variables.scss';
2
+
3
+ // #{$biz-css-prefix}-mesh-visualization {
4
+ // width: 100%;
5
+ // height: 100%;
6
+ // min-height: 420px;
7
+ // position: relative;
8
+ // overflow: hidden;
9
+ // border: 1px solid rgba(93, 163, 255, 0.34);
10
+ // border-radius: 10px;
11
+ // box-sizing: border-box;
12
+ // background:
13
+ // radial-gradient(circle at top right, rgba(45, 110, 192, 0.22), transparent 34%),
14
+ // linear-gradient(145deg, #04111d, #0c2136 58%, #0f1a28);
15
+
16
+ // &__toolbar {
17
+ // display: flex;
18
+ // align-items: center;
19
+ // justify-content: space-between;
20
+ // gap: 16px;
21
+ // padding: 14px 18px;
22
+ // color: #f2f7ff;
23
+ // background: rgba(4, 14, 24, 0.62);
24
+ // border-bottom: 1px solid rgba(255, 255, 255, 0.08);
25
+ // box-sizing: border-box;
26
+ // position: relative;
27
+ // z-index: 3;
28
+ // }
29
+
30
+ // &__title {
31
+ // display: flex;
32
+ // flex-direction: column;
33
+ // gap: 4px;
34
+ // }
35
+
36
+ // &__title-main {
37
+ // font-size: 16px;
38
+ // font-weight: 600;
39
+ // letter-spacing: 0.04em;
40
+ // }
41
+
42
+ // &__title-sub {
43
+ // font-size: 12px;
44
+ // color: rgba(211, 227, 255, 0.74);
45
+ // }
46
+
47
+ // &__toolbar-meta {
48
+ // display: flex;
49
+ // flex-wrap: wrap;
50
+ // justify-content: flex-end;
51
+ // gap: 10px;
52
+ // }
53
+
54
+ // &__chip {
55
+ // padding: 6px 10px;
56
+ // border-radius: 999px;
57
+ // font-size: 12px;
58
+ // line-height: 1;
59
+ // color: #dceaff;
60
+ // background: rgba(84, 155, 255, 0.12);
61
+ // border: 1px solid rgba(132, 182, 255, 0.22);
62
+ // }
63
+
64
+ // &__body {
65
+ // display: flex;
66
+ // height: calc(100% - 72px);
67
+ // min-height: 348px;
68
+ // }
69
+
70
+ // &__viewport {
71
+ // flex: 1 1 auto;
72
+ // min-width: 0;
73
+ // position: relative;
74
+ // }
75
+
76
+ // &__viewport canvas {
77
+ // display: block;
78
+ // width: 100%;
79
+ // height: 100%;
80
+ // }
81
+
82
+ // &__empty {
83
+ // position: absolute;
84
+ // left: 18px;
85
+ // top: 18px;
86
+ // z-index: 3;
87
+ // max-width: 320px;
88
+ // padding: 12px 14px;
89
+ // border-radius: 8px;
90
+ // font-size: 12px;
91
+ // line-height: 1.8;
92
+ // color: #dce9ff;
93
+ // background: rgba(6, 19, 31, 0.76);
94
+ // border: 1px solid rgba(109, 169, 255, 0.18);
95
+ // backdrop-filter: blur(6px);
96
+ // }
97
+
98
+ // &__sidebar {
99
+ // width: 318px;
100
+ // padding: 16px;
101
+ // box-sizing: border-box;
102
+ // display: flex;
103
+ // flex-direction: column;
104
+ // gap: 14px;
105
+ // background: rgba(6, 16, 28, 0.7);
106
+ // border-left: 1px solid rgba(255, 255, 255, 0.08);
107
+ // position: relative;
108
+ // z-index: 2;
109
+ // }
110
+
111
+ // &__panel {
112
+ // padding: 14px;
113
+ // border-radius: 10px;
114
+ // background: rgba(10, 24, 40, 0.74);
115
+ // border: 1px solid rgba(100, 166, 255, 0.14);
116
+ // box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
117
+ // }
118
+
119
+ // &__panel-title {
120
+ // margin-bottom: 10px;
121
+ // font-size: 13px;
122
+ // font-weight: 600;
123
+ // color: #f6fbff;
124
+ // letter-spacing: 0.04em;
125
+ // }
126
+
127
+ // &__kv {
128
+ // display: grid;
129
+ // grid-template-columns: 1fr auto;
130
+ // gap: 8px 12px;
131
+ // font-size: 12px;
132
+ // line-height: 1.7;
133
+ // color: #d7e7ff;
134
+ // }
135
+
136
+ // &__kv-label {
137
+ // color: rgba(198, 216, 245, 0.72);
138
+ // }
139
+
140
+ // &__quality-grid {
141
+ // display: grid;
142
+ // grid-template-columns: repeat(3, minmax(0, 1fr));
143
+ // gap: 10px;
144
+ // }
145
+
146
+ // &__metric {
147
+ // padding: 10px;
148
+ // border-radius: 8px;
149
+ // background: rgba(255, 255, 255, 0.03);
150
+ // border: 1px solid rgba(255, 255, 255, 0.06);
151
+ // }
152
+
153
+ // &__metric-label {
154
+ // font-size: 11px;
155
+ // color: rgba(201, 219, 246, 0.68);
156
+ // }
157
+
158
+ // &__metric-value {
159
+ // margin-top: 6px;
160
+ // font-size: 18px;
161
+ // color: #ffffff;
162
+ // font-weight: 600;
163
+ // }
164
+
165
+ // &__bar {
166
+ // height: 8px;
167
+ // margin-top: 8px;
168
+ // border-radius: 999px;
169
+ // overflow: hidden;
170
+ // background: rgba(255, 255, 255, 0.08);
171
+ // }
172
+
173
+ // &__bar-fill {
174
+ // height: 100%;
175
+ // border-radius: inherit;
176
+ // background: linear-gradient(90deg, #31b7ff, #7af0ff);
177
+ // }
178
+
179
+ // &__progress {
180
+ // display: flex;
181
+ // flex-direction: column;
182
+ // gap: 8px;
183
+ // }
184
+
185
+ // &__progress-head {
186
+ // display: flex;
187
+ // align-items: center;
188
+ // justify-content: space-between;
189
+ // gap: 12px;
190
+ // font-size: 12px;
191
+ // color: #d7e7ff;
192
+ // }
193
+
194
+ // &__progress-text {
195
+ // color: rgba(203, 219, 246, 0.72);
196
+ // }
197
+
198
+ // &__button {
199
+ // width: 100%;
200
+ // margin-top: 12px;
201
+ // padding: 10px 12px;
202
+ // border: 0;
203
+ // border-radius: 8px;
204
+ // font-size: 13px;
205
+ // font-weight: 600;
206
+ // color: #062033;
207
+ // background: linear-gradient(90deg, #5ec8ff, #91fff2);
208
+ // cursor: pointer;
209
+ // }
210
+
211
+ // &__button[disabled] {
212
+ // cursor: default;
213
+ // opacity: 0.6;
214
+ // }
215
+
216
+ // &__legend {
217
+ // display: flex;
218
+ // justify-content: space-between;
219
+ // gap: 8px;
220
+ // margin-top: 10px;
221
+ // font-size: 11px;
222
+ // color: rgba(200, 218, 244, 0.72);
223
+ // }
224
+
225
+ // &__legend-scale {
226
+ // height: 10px;
227
+ // border-radius: 999px;
228
+ // margin-top: 8px;
229
+ // background: linear-gradient(90deg, #e84d4d, #f4cc4e, #67dc8b, #4db5ff);
230
+ // }
231
+
232
+ // &__upload {
233
+ // margin-top: 10px;
234
+ // }
235
+
236
+ // &__upload input {
237
+ // width: 100%;
238
+ // font-size: 12px;
239
+ // color: #d7e7ff;
240
+ // }
241
+
242
+ // @media (max-width: 960px) {
243
+ // &__body {
244
+ // flex-direction: column;
245
+ // height: auto;
246
+ // min-height: 0;
247
+ // }
248
+
249
+ // &__viewport {
250
+ // min-height: 320px;
251
+ // }
252
+
253
+ // &__sidebar {
254
+ // width: 100%;
255
+ // border-left: 0;
256
+ // border-top: 1px solid rgba(255, 255, 255, 0.08);
257
+ // }
258
+ // }
259
+ // }
260
+
261
+
262
+
263
+
264
+ #{$biz-css-prefix}-mesh-workbench {
265
+ display: flex;
266
+ flex-direction: column;
267
+ width: 100%;
268
+ height: 100%;
269
+ min-height: 520px;
270
+ overflow: hidden;
271
+ color: #eaf2ff;
272
+ background: #0b1726;
273
+ border: 1px solid rgba(94, 145, 255, 0.14);
274
+ border-radius: 8px;
275
+
276
+ &__topbar {
277
+ display: flex;
278
+ flex-wrap: wrap;
279
+ gap: 12px;
280
+ align-items: center;
281
+ padding: 12px 14px;
282
+ background: rgba(255, 255, 255, 0.04);
283
+ border-bottom: 1px solid rgba(94, 145, 255, 0.12);
284
+ }
285
+
286
+ &__top-item {
287
+ display: flex;
288
+ flex-direction: column;
289
+ min-width: 110px;
290
+ padding: 6px 10px;
291
+ background: rgba(255, 255, 255, 0.04);
292
+ border-radius: 6px;
293
+ }
294
+
295
+ &__top-label {
296
+ margin-bottom: 4px;
297
+ font-size: 12px;
298
+ color: #9fb6d3;
299
+ }
300
+
301
+ &__top-value {
302
+ font-size: 13px;
303
+ font-weight: 600;
304
+ color: #ffffff;
305
+ }
306
+
307
+ // &__upload {
308
+ // margin-left: auto;
309
+ // font-size: 12px;
310
+ // color: #d7e6ff;
311
+
312
+ // input {
313
+ // color: #d7e6ff;
314
+ // }
315
+ // }
316
+ &__upload {
317
+ display: flex;
318
+ align-items: center;
319
+ gap: 10px;
320
+ margin-left: auto;
321
+ font-size: 12px;
322
+ color: #d7e6ff;
323
+ }
324
+
325
+ &__upload-btn {
326
+ height: 32px;
327
+ padding: 0 14px;
328
+ color: #ffffff;
329
+ background: linear-gradient(90deg, #1677ff, #4096ff);
330
+ border: none;
331
+ border-radius: 4px;
332
+ cursor: pointer;
333
+ }
334
+
335
+ &__upload-name {
336
+ max-width: 180px;
337
+ overflow: hidden;
338
+ text-overflow: ellipsis;
339
+ white-space: nowrap;
340
+ color: #d7e6ff;
341
+ }
342
+
343
+ &__main {
344
+ display: grid;
345
+ grid-template-columns: 260px 1fr 280px;
346
+ gap: 12px;
347
+ flex: 1;
348
+ min-height: 0;
349
+ padding: 12px;
350
+ box-sizing: border-box;
351
+ }
352
+
353
+ &__left,
354
+ &__right {
355
+ overflow: auto;
356
+ padding: 12px;
357
+ background: rgba(255, 255, 255, 0.035);
358
+ border: 1px solid rgba(94, 145, 255, 0.12);
359
+ border-radius: 8px;
360
+ }
361
+
362
+ &__center {
363
+ position: relative;
364
+ display: flex;
365
+ flex-direction: column;
366
+ min-width: 0;
367
+ min-height: 0;
368
+ background: rgba(255, 255, 255, 0.025);
369
+ border: 1px solid rgba(94, 145, 255, 0.12);
370
+ border-radius: 8px;
371
+ overflow: hidden;
372
+ }
373
+
374
+ &__viewport-toolbar {
375
+ display: flex;
376
+ justify-content: space-between;
377
+ align-items: center;
378
+ padding: 10px 12px;
379
+ font-size: 12px;
380
+ color: #bcd0ea;
381
+ background: rgba(255, 255, 255, 0.04);
382
+ border-bottom: 1px solid rgba(94, 145, 255, 0.1);
383
+ }
384
+
385
+ &__viewport {
386
+ flex: 1;
387
+ min-height: 420px;
388
+ }
389
+
390
+ &__overlay-error {
391
+ position: absolute;
392
+ top: 54px;
393
+ left: 12px;
394
+ right: 12px;
395
+ padding: 10px 12px;
396
+ font-size: 13px;
397
+ color: #ffd7d7;
398
+ background: rgba(220, 53, 69, 0.22);
399
+ border: 1px solid rgba(255, 120, 120, 0.28);
400
+ border-radius: 6px;
401
+ }
402
+
403
+ &__panel-title {
404
+ margin-bottom: 12px;
405
+ font-size: 14px;
406
+ font-weight: 700;
407
+ color: #ffffff;
408
+ }
409
+
410
+ &__metric-row {
411
+ display: flex;
412
+ justify-content: space-between;
413
+ gap: 10px;
414
+ padding: 8px 0;
415
+ font-size: 13px;
416
+ color: #dbe8f8;
417
+ border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
418
+ }
419
+
420
+ &__summary-block {
421
+ margin-bottom: 14px;
422
+ padding: 10px;
423
+ background: rgba(255, 255, 255, 0.035);
424
+ border: 1px solid rgba(94, 145, 255, 0.1);
425
+ border-radius: 6px;
426
+ }
427
+
428
+ &__summary-title {
429
+ margin-bottom: 8px;
430
+ font-size: 13px;
431
+ font-weight: 700;
432
+ color: #ffffff;
433
+ }
434
+
435
+ &__summary-line {
436
+ margin-bottom: 6px;
437
+ font-size: 12px;
438
+ line-height: 1.6;
439
+ color: #cfe0f4;
440
+ }
441
+ }
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import './index.scss';
3
+ export type MeshSourceType = 'demo' | 'url' | 'local';
4
+ export type MeshDataFormat = 'custom-json' | 'stl' | 'obj';
5
+ export type MeshType = 'structured' | 'unstructured';
6
+ export type MeshDisplayMode = 'surface' | 'wireframe' | 'surface-wireframe' | 'quality';
7
+ export type MeshQualityMode = 'orthogonality' | 'skewness' | 'aspectRatio';
8
+ export interface MeshVisualizationProps {
9
+ sourceType?: MeshSourceType;
10
+ dataFormat?: MeshDataFormat;
11
+ dataUrl?: string;
12
+ meshType?: MeshType;
13
+ targetSize?: number;
14
+ refineEnabled?: boolean;
15
+ refinementLevel?: number;
16
+ boundaryLayerEnabled?: boolean;
17
+ boundaryLayerCount?: number;
18
+ boundaryLayerThickness?: number;
19
+ displayMode?: MeshDisplayMode;
20
+ qualityMode?: MeshQualityMode;
21
+ qualityThreshold?: number;
22
+ showNodes?: boolean;
23
+ showBoundaryHint?: boolean;
24
+ autoRotate?: boolean;
25
+ allowLocalUpload?: boolean;
26
+ background?: string;
27
+ style?: React.CSSProperties;
28
+ }
29
+ declare const MeshVisualization: React.FC<MeshVisualizationProps>;
30
+ export default MeshVisualization;