yootd 0.0.8 → 0.0.9

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 (56) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +43 -43
  3. package/dist/Preview/components/preview/phone.scss +8 -8
  4. package/dist/Preview/index.scss +35 -35
  5. package/dist/Preview/types/type.d.ts +21 -21
  6. package/dist/anchor/index.scss +23 -23
  7. package/dist/approval-process/index.scss +95 -95
  8. package/dist/areas/index.scss +21 -21
  9. package/dist/areas/types/types.d.ts +39 -39
  10. package/dist/aside/components/SortableItem.scss +93 -93
  11. package/dist/aside/index.scss +25 -25
  12. package/dist/aside/types/types.d.ts +44 -44
  13. package/dist/badge/index.scss +5 -5
  14. package/dist/buildings/types/types.d.ts +21 -21
  15. package/dist/button/index.scss +30 -30
  16. package/dist/cascader/index.scss +5 -5
  17. package/dist/courses/types/types.d.ts +18 -18
  18. package/dist/dictionary/types/types.d.ts +14 -14
  19. package/dist/drawer-modal/index.scss +39 -39
  20. package/dist/drawer-modal/types/types.d.ts +3 -3
  21. package/dist/dropdown/assets/arrow-down.svg +5 -5
  22. package/dist/empty/index.scss +15 -15
  23. package/dist/group-title/index.scss +31 -31
  24. package/dist/image/index.scss +26 -26
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.js +2 -1
  27. package/dist/input/index.scss +5 -5
  28. package/dist/modal/index.scss +65 -65
  29. package/dist/pagination/index.scss +47 -47
  30. package/dist/school/index.scss +21 -21
  31. package/dist/school/types/types.d.ts +84 -84
  32. package/dist/state/index.scss +89 -89
  33. package/dist/steps/index.scss +32 -32
  34. package/dist/student-dropdown/types/types.d.ts +44 -44
  35. package/dist/table/components/primary-header-row/index.scss +58 -58
  36. package/dist/table/components/primary-tbody-row/index.scss +5 -5
  37. package/dist/table/index.module.scss +9 -9
  38. package/dist/table/index.scss +33 -33
  39. package/dist/tabs/index.scss +81 -81
  40. package/dist/tag/index.scss +4 -4
  41. package/dist/teacher/types/types.d.ts +31 -31
  42. package/dist/tree/index.scss +25 -25
  43. package/dist/upload/components/fileUpload.d.ts +1 -1
  44. package/dist/upload/components/imageUpload.d.ts +1 -1
  45. package/dist/upload/index.scss +115 -115
  46. package/dist/user-dropdown/types/types.d.ts +45 -45
  47. package/dist/video-player/assets/control-background.png +0 -0
  48. package/dist/video-player/assets/player-icon.svg +1 -0
  49. package/dist/video-player/index.d.ts +70 -0
  50. package/dist/video-player/index.js +874 -0
  51. package/dist/video-player/index.scss +309 -0
  52. package/dist/year-term/index.scss +21 -21
  53. package/dist/year-term/types/types.d.ts +28 -28
  54. package/dist/zones/index.module.scss +23 -23
  55. package/dist/zones/types/types.d.ts +26 -26
  56. package/package.json +8 -3
@@ -0,0 +1,309 @@
1
+ .yot-video-player {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+
6
+ &-container {
7
+ width: 100%;
8
+ height: 100%;
9
+ position: relative;
10
+ overflow: hidden;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ flex-shrink: 0;
15
+
16
+ &:hover & {
17
+ &__progress {
18
+ visibility: visible;
19
+ }
20
+
21
+ &__controls-bottom-progress__bar {
22
+ visibility: hidden;
23
+ }
24
+ }
25
+
26
+ &__video {
27
+ width: 100%;
28
+ height: 100%;
29
+ object-fit: fill;
30
+ }
31
+
32
+ &__controls {
33
+ position: absolute;
34
+ left: 0;
35
+ bottom: 0;
36
+ width: 100%;
37
+ height: 55px;
38
+ display: flex;
39
+ flex-direction: column;
40
+ justify-content: flex-end;
41
+ z-index: 10;
42
+ }
43
+
44
+ &__mask {
45
+ width: 100%;
46
+ height: 100px;
47
+ background-repeat: repeat-x;
48
+ background-position: bottom;
49
+ position: absolute;
50
+ left: 0;
51
+ bottom: 0;
52
+ }
53
+
54
+ &__progress {
55
+ height: 16px;
56
+ padding: 6px 0px;
57
+ margin: 0px 6px;
58
+ overflow: hidden;
59
+ position: relative;
60
+ box-sizing: border-box;
61
+ cursor: pointer;
62
+ visibility: hidden;
63
+ }
64
+
65
+ &__progress-bar {
66
+ width: 100%;
67
+ height: 3px;
68
+ background-color: #e1e1e133;
69
+ position: absolute;
70
+ }
71
+
72
+ &__controls-content {
73
+ width: 100%;
74
+ height: 100%;
75
+ display: flex;
76
+ align-items: center;
77
+ box-sizing: border-box;
78
+ padding: 0px 6px;
79
+ user-select: none;
80
+ position: relative;
81
+ z-index: 10;
82
+ }
83
+
84
+ &__controls-icon {
85
+ width: 16px;
86
+ height: 16px;
87
+ cursor: pointer;
88
+ margin-right: 20px;
89
+ }
90
+
91
+ &__controls-text {
92
+ margin-right: 20px;
93
+ font-size: 12px;
94
+ white-space: nowrap;
95
+ }
96
+
97
+ &__controls-speed {
98
+ margin-left: auto;
99
+ margin-right: 20px;
100
+ font-size: 12px;
101
+ cursor: pointer;
102
+ white-space: nowrap;
103
+ position: relative;
104
+
105
+ &--disabled {
106
+ pointer-events: none;
107
+ color: gray;
108
+ }
109
+ }
110
+
111
+ &__controls-speed-picker-container {
112
+ position: absolute;
113
+ left: 50%;
114
+ bottom: 24px;
115
+ width: 70px;
116
+ margin-left: -35px;
117
+ border-radius: 4px;
118
+ }
119
+
120
+ &__controls-speeds {
121
+ height: 36px;
122
+ display: flex;
123
+ justify-content: center;
124
+ align-items: center;
125
+ color: white;
126
+
127
+ &--selected {
128
+ color: #00aeec;
129
+ }
130
+ }
131
+
132
+ &__controls-volume {
133
+ position: relative;
134
+ margin-right: 20px;
135
+ display: flex;
136
+ align-items: center;
137
+
138
+ &__icon {
139
+ width: 16px;
140
+ height: 16px;
141
+ cursor: pointer;
142
+
143
+ &--disabled {
144
+ pointer-events: none;
145
+ }
146
+ }
147
+
148
+ &__slider {
149
+ position: absolute;
150
+ left: 50%;
151
+ bottom: 24px;
152
+ width: 30px;
153
+ height: 100px;
154
+ margin-left: -15px;
155
+ padding-bottom: 5px;
156
+ display: flex;
157
+ flex-direction: column;
158
+ align-items: center;
159
+ overflow: hidden;
160
+ background-color: rgba(0, 0, 0, 0.8);
161
+ color: white;
162
+
163
+ &__number {
164
+ height: 48px;
165
+ display: flex;
166
+ justify-content: center;
167
+ align-items: center;
168
+
169
+ &__text {
170
+ font-size: 12px;
171
+ }
172
+ }
173
+
174
+ &__progress-bar {
175
+ display: flex;
176
+ flex: 1;
177
+ position: relative;
178
+ flex-direction: column;
179
+ align-items: center;
180
+ padding-bottom: 4px;
181
+
182
+ &__line {
183
+ background-color: white;
184
+ width: 4px;
185
+ height: 100%;
186
+ border-radius: 4px;
187
+ position: relative;
188
+ overflow: hidden;
189
+
190
+ &__button-1 {
191
+ position: absolute;
192
+ width: 4px;
193
+ height: 100%;
194
+ background-color: #00aeec;
195
+ }
196
+ }
197
+
198
+ &__button-2 {
199
+ position: absolute;
200
+ width: 10px;
201
+ height: 10px;
202
+ border-radius: 50%;
203
+ background-color: #00aeec;
204
+ }
205
+ }
206
+ }
207
+ }
208
+
209
+ &__controls-capture {
210
+ position: relative;
211
+ margin-right: 20px;
212
+ display: flex;
213
+ align-items: center;
214
+
215
+ svg {
216
+ width: 16px;
217
+ height: 16px;
218
+ cursor: pointer;
219
+ }
220
+ }
221
+
222
+ &__controls-setting {
223
+ position: relative;
224
+ margin-right: 20px;
225
+ display: flex;
226
+ align-items: center;
227
+
228
+ svg {
229
+ width: 16px;
230
+ height: 16px;
231
+ cursor: pointer;
232
+ }
233
+
234
+ &__panel {
235
+ background-color: rgba(0, 0, 0, 0.8);
236
+ width: 96px;
237
+ left: 50%;
238
+ margin-left: -48px;
239
+ margin-bottom: 24px;
240
+ bottom: 0;
241
+ position: absolute;
242
+ font-size: 12px;
243
+ padding: 0 12px;
244
+ border-radius: 4px;
245
+
246
+ &__item {
247
+ color: white;
248
+ width: 100%;
249
+ height: 40px;
250
+ display: flex;
251
+ align-items: center;
252
+
253
+ &__checkbox {
254
+ margin-left: 8px;
255
+ cursor: pointer;
256
+ }
257
+ }
258
+ }
259
+ }
260
+
261
+ &__controls-full-screen {
262
+ width: 16px;
263
+ height: 16px;
264
+ cursor: pointer;
265
+ }
266
+
267
+ &__controls-bottom-progress {
268
+ &__bar {
269
+ position: relative;
270
+ left: 0px;
271
+ bottom: 0px;
272
+ width: 100%;
273
+ height: 2px;
274
+ z-index: 10;
275
+
276
+ &__item-1 {
277
+ width: 100%;
278
+ height: 100%;
279
+ background-color: #e1e1e133;
280
+ position: absolute;
281
+ }
282
+
283
+ &__item-2 {
284
+ position: absolute;
285
+ height: 100%;
286
+ background-color: #e1e1e14d;
287
+ }
288
+
289
+ &__item-3 {
290
+ height: 100%;
291
+ background-color: #00aeec;
292
+ position: absolute;
293
+ }
294
+ }
295
+ }
296
+
297
+ &__canvas {
298
+ position: absolute;
299
+ transform-origin: center;
300
+ }
301
+ }
302
+
303
+ &--full-screened {
304
+ transform: rotate(90deg);
305
+ transform-origin: center;
306
+ width: 100vh !important;
307
+ height: 100vw !important;
308
+ }
309
+ }
@@ -1,21 +1,21 @@
1
- .yot-YearTerm {
2
- border: var(--ant-line-width) var(--ant-line-type) var(--ant-color-border);
3
- border-radius: var(--ant-border-radius);
4
- &-school-select::after {
5
- content: '';
6
- position: absolute;
7
- right: 0;
8
- top: 50%; /* 从中间开始 */
9
- width: 1px; /* 边框宽度 */
10
- height: 50%; /* 设为盒子高度的百分之五十 */
11
- background-color: var(--ant-color-border); /* 边框颜色 */
12
- transform: translateY(-50%);
13
- }
14
- .ant-select.ant-select-outlined.css-var-yootd.ant-select-css-var.ant-select-single.ant-select-allow-clear.ant-select-show-arrow {
15
- .ant-select-selector {
16
- padding-left: var(--ant-padding);
17
- padding-right: var(--ant-padding);
18
- border: 0;
19
- }
20
- }
21
- }
1
+ .yot-YearTerm {
2
+ border: var(--ant-line-width) var(--ant-line-type) var(--ant-color-border);
3
+ border-radius: var(--ant-border-radius);
4
+ &-school-select::after {
5
+ content: '';
6
+ position: absolute;
7
+ right: 0;
8
+ top: 50%; /* 从中间开始 */
9
+ width: 1px; /* 边框宽度 */
10
+ height: 50%; /* 设为盒子高度的百分之五十 */
11
+ background-color: var(--ant-color-border); /* 边框颜色 */
12
+ transform: translateY(-50%);
13
+ }
14
+ .ant-select.ant-select-outlined.css-var-yootd.ant-select-css-var.ant-select-single.ant-select-allow-clear.ant-select-show-arrow {
15
+ .ant-select-selector {
16
+ padding-left: var(--ant-padding);
17
+ padding-right: var(--ant-padding);
18
+ border: 0;
19
+ }
20
+ }
21
+ }
@@ -1,28 +1,28 @@
1
- export interface PageData<T> {
2
- content: T[];
3
- page: {
4
- number: number;
5
- size: number;
6
- totalElements: number;
7
- totalPages: number;
8
- };
9
- }
10
- // 查询学年返回的数据类型
11
- export interface IYearItem {
12
- id: number; // ID
13
- yearName: string; // 学年名称
14
- }
15
- // 查询学期返回的数据类型
16
- export interface ITermItem {
17
- termId: number; // ID
18
- termName: string; // 学期名称
19
- }
20
- type YearTermProps = {
21
- type?: 'yearTerm' | 'year' | 'term';
22
- style?: React.CSSProperties;
23
- showSearch?: boolean;
24
- value?: Record<string, number>;
25
- onChange?: (record: Record<string, number | undefined>) => void;
26
- allowClear?: boolean;
27
- placeholder?: string[];
28
- };
1
+ export interface PageData<T> {
2
+ content: T[];
3
+ page: {
4
+ number: number;
5
+ size: number;
6
+ totalElements: number;
7
+ totalPages: number;
8
+ };
9
+ }
10
+ // 查询学年返回的数据类型
11
+ export interface IYearItem {
12
+ id: number; // ID
13
+ yearName: string; // 学年名称
14
+ }
15
+ // 查询学期返回的数据类型
16
+ export interface ITermItem {
17
+ termId: number; // ID
18
+ termName: string; // 学期名称
19
+ }
20
+ type YearTermProps = {
21
+ type?: 'yearTerm' | 'year' | 'term';
22
+ style?: React.CSSProperties;
23
+ showSearch?: boolean;
24
+ value?: Record<string, number>;
25
+ onChange?: (record: Record<string, number | undefined>) => void;
26
+ allowClear?: boolean;
27
+ placeholder?: string[];
28
+ };
@@ -1,23 +1,23 @@
1
- .content {
2
- border: var(--ant-line-width) var(--ant-line-type) var(--ant-color-border);
3
- border-radius: var(--ant-border-radius);
4
- :global {
5
- .zone-select::after {
6
- content: '';
7
- position: absolute;
8
- right: 0;
9
- top: 50%; /* 从中间开始 */
10
- width: 1px; /* 边框宽度 */
11
- height: 50%; /* 设为盒子高度的百分之五十 */
12
- background-color: var(--ant-color-border); /* 边框颜色 */
13
- transform: translateY(-50%);
14
- }
15
- .ant-select.ant-select-outlined.css-var-yootd.ant-select-css-var.ant-select-single.ant-select-show-arrow {
16
- .ant-select-selector {
17
- padding-left: var(--ant-padding);
18
- padding-right: var(--ant-padding);
19
- border: 0;
20
- }
21
- }
22
- }
23
- }
1
+ .content {
2
+ border: var(--ant-line-width) var(--ant-line-type) var(--ant-color-border);
3
+ border-radius: var(--ant-border-radius);
4
+ :global {
5
+ .zone-select::after {
6
+ content: '';
7
+ position: absolute;
8
+ right: 0;
9
+ top: 50%; /* 从中间开始 */
10
+ width: 1px; /* 边框宽度 */
11
+ height: 50%; /* 设为盒子高度的百分之五十 */
12
+ background-color: var(--ant-color-border); /* 边框颜色 */
13
+ transform: translateY(-50%);
14
+ }
15
+ .ant-select.ant-select-outlined.css-var-yootd.ant-select-css-var.ant-select-single.ant-select-show-arrow {
16
+ .ant-select-selector {
17
+ padding-left: var(--ant-padding);
18
+ padding-right: var(--ant-padding);
19
+ border: 0;
20
+ }
21
+ }
22
+ }
23
+ }
@@ -1,26 +1,26 @@
1
- export interface PageData<T> {
2
- content: T[];
3
- page: {
4
- number: number;
5
- size: number;
6
- totalElements: number;
7
- totalPages: number;
8
- };
9
- }
10
-
11
- export interface ZoneItem {
12
- zoneId: string; // 区域ID
13
- zoneName: string; // 区域名称
14
- zoneLevel: number; // 区域等级(1全国2省级3市级4区级)
15
- zoneLevel1Id: string;
16
- zoneLevel2Id: string;
17
- }
18
- export interface ZoneProps {
19
- zoneLevel?: 'province' | 'city' | 'district';
20
- value?: string[];
21
- onChange?: (zoneIds: string[]) => void;
22
- style?: React.CSSProperties;
23
- placeholder?: string[];
24
- allowClear?: boolean;
25
- showSearch?: boolean;
26
- }
1
+ export interface PageData<T> {
2
+ content: T[];
3
+ page: {
4
+ number: number;
5
+ size: number;
6
+ totalElements: number;
7
+ totalPages: number;
8
+ };
9
+ }
10
+
11
+ export interface ZoneItem {
12
+ zoneId: string; // 区域ID
13
+ zoneName: string; // 区域名称
14
+ zoneLevel: number; // 区域等级(1全国2省级3市级4区级)
15
+ zoneLevel1Id: string;
16
+ zoneLevel2Id: string;
17
+ }
18
+ export interface ZoneProps {
19
+ zoneLevel?: 'province' | 'city' | 'district';
20
+ value?: string[];
21
+ onChange?: (zoneIds: string[]) => void;
22
+ style?: React.CSSProperties;
23
+ placeholder?: string[];
24
+ allowClear?: boolean;
25
+ showSearch?: boolean;
26
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yootd",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",
@@ -44,6 +44,7 @@
44
44
  "prettier --parser=typescript --write"
45
45
  ]
46
46
  },
47
+ "dependencies": {},
47
48
  "devDependencies": {
48
49
  "@commitlint/cli": "^17.1.2",
49
50
  "@commitlint/config-conventional": "^17.1.0",
@@ -56,6 +57,7 @@
56
57
  "@types/react": "^18.0.0",
57
58
  "@types/react-dom": "^18.0.0",
58
59
  "@umijs/lint": "^4.0.0",
60
+ "@vladmandic/face-api": "^1.7.14",
59
61
  "antd": "^5.21.4",
60
62
  "axios": "^1.7.7",
61
63
  "dayjs": "^1.11.13",
@@ -73,7 +75,8 @@
73
75
  "react": "^18.0.0",
74
76
  "react-dom": "^18.0.0",
75
77
  "sass": "^1.80.0",
76
- "stylelint": "^14.9.1"
78
+ "stylelint": "^14.9.1",
79
+ "yootd-webrtc-sdk": "^1.0.1"
77
80
  },
78
81
  "peerDependencies": {
79
82
  "@dnd-kit/core": ">=6.1.0",
@@ -81,6 +84,7 @@
81
84
  "@dnd-kit/sortable": ">=8.0.0",
82
85
  "@dnd-kit/utilities": ">=3.2.2",
83
86
  "@tanstack/react-query": ">=5.59.15",
87
+ "@vladmandic/face-api": "^1.7.14",
84
88
  "@xyflow/react": ">=12.3.3",
85
89
  "antd": ">=5.21.4",
86
90
  "axios": ">=1.7.7",
@@ -88,7 +92,8 @@
88
92
  "lodash": ">=4.17.21",
89
93
  "nanoid": ">=5.0.8",
90
94
  "react": ">=16.9.0",
91
- "react-dom": ">=16.9.0"
95
+ "react-dom": ">=16.9.0",
96
+ "yootd-webrtc-sdk": "^1.0.1"
92
97
  },
93
98
  "publishConfig": {
94
99
  "access": "public"