@x-plat/design-system 0.5.3 → 0.5.5
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.
- package/dist/components/Accordion/index.css +1 -0
- package/dist/components/Calendar/index.css +1 -0
- package/dist/components/Card/index.css +1 -1
- package/dist/components/Chart/index.css +1 -0
- package/dist/components/Dropdown/index.css +1 -0
- package/dist/components/EmptyState/index.css +1 -0
- package/dist/components/FileUpload/index.css +1 -0
- package/dist/components/Select/index.css +1 -0
- package/dist/components/Swiper/index.css +1 -0
- package/dist/components/Table/index.cjs +8 -2
- package/dist/components/Table/index.css +15 -0
- package/dist/components/Table/index.d.cts +2 -0
- package/dist/components/Table/index.d.ts +2 -0
- package/dist/components/Table/index.js +8 -2
- package/dist/components/Video/index.cjs +580 -37
- package/dist/components/Video/index.css +203 -20
- package/dist/components/Video/index.d.cts +11 -0
- package/dist/components/Video/index.d.ts +11 -0
- package/dist/components/Video/index.js +580 -37
- package/dist/components/index.cjs +440 -38
- package/dist/components/index.css +227 -21
- package/dist/components/index.js +440 -38
- package/dist/index.cjs +324 -38
- package/dist/index.css +227 -21
- package/dist/index.js +324 -38
- package/package.json +1 -1
|
@@ -117,6 +117,18 @@ var PlayCircleIcon_default = PlayCircleIcon;
|
|
|
117
117
|
|
|
118
118
|
// src/tokens/svg/media/PlayIcon.tsx
|
|
119
119
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
120
|
+
var PlayIcon = () => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
121
|
+
"svg",
|
|
122
|
+
{
|
|
123
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
124
|
+
width: "1em",
|
|
125
|
+
height: "1em",
|
|
126
|
+
viewBox: "0 0 20 20",
|
|
127
|
+
fill: "none",
|
|
128
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.80762 1.84203C4.0483 1.71076 4.3416 1.72119 4.57227 1.86937L16.2393 9.36937C16.4536 9.50742 16.584 9.74522 16.584 10.0002C16.5839 10.2552 16.4537 10.4931 16.2393 10.6311L4.57227 18.1311C4.34166 18.2792 4.04826 18.2896 3.80762 18.1584C3.56689 18.027 3.4161 17.7745 3.41602 17.5002V2.50023C3.41602 2.22588 3.56682 1.9735 3.80762 1.84203ZM4.91699 16.1262L14.4463 10.0002L4.91699 3.87328V16.1262Z", fill: "currentColor" })
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
var PlayIcon_default = PlayIcon;
|
|
120
132
|
|
|
121
133
|
// src/tokens/svg/media/RepeatIcon.tsx
|
|
122
134
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
@@ -147,12 +159,263 @@ var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
|
147
159
|
|
|
148
160
|
// src/tokens/svg/media/Volume2Icon.tsx
|
|
149
161
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
162
|
+
var Volume2Icon = () => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
163
|
+
"svg",
|
|
164
|
+
{
|
|
165
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
166
|
+
width: "1em",
|
|
167
|
+
height: "1em",
|
|
168
|
+
viewBox: "0 0 20 20",
|
|
169
|
+
fill: "none",
|
|
170
|
+
children: [
|
|
171
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { d: "M15.3613 3.57827C15.6542 3.28549 16.129 3.28554 16.4219 3.57827C18.1247 5.28162 19.082 7.59163 19.082 10.0001C19.082 12.4087 18.1247 14.7187 16.4219 16.422C16.129 16.7147 15.6542 16.7147 15.3613 16.422C15.0687 16.1292 15.0687 15.6543 15.3613 15.3615C16.7829 13.9394 17.582 12.0109 17.582 10.0001C17.582 7.98938 16.7829 6.06088 15.3613 4.63882C15.0686 4.34597 15.0687 3.87112 15.3613 3.57827Z", fill: "currentColor" }),
|
|
172
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.69824 3.5812C8.92336 3.40117 9.23238 3.36648 9.49219 3.49135C9.75153 3.61641 9.91699 3.87916 9.91699 4.16714V15.8341C9.91671 16.122 9.75157 16.385 9.49219 16.5099C9.23253 16.6347 8.92333 16.5988 8.69824 16.4191L4.7373 13.2501H1.66699C1.25291 13.2501 0.916235 12.9142 0.916016 12.5001V7.50014C0.916192 7.08608 1.25289 6.75014 1.66699 6.75014H4.73828L8.69824 3.5812ZM5.46875 8.08608C5.3359 8.19235 5.17011 8.25003 5 8.25014H2.41699V11.7501H5C5.17013 11.7503 5.33589 11.8089 5.46875 11.9152L8.41699 14.2726V5.72768L5.46875 8.08608Z", fill: "currentColor" }),
|
|
173
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { d: "M12.4199 6.51967C12.7128 6.22695 13.1876 6.22696 13.4805 6.51967C14.4022 7.44168 14.9199 8.69255 14.9199 9.99624C14.9198 11.2998 14.4021 12.5499 13.4805 13.4718C13.1876 13.7647 12.7128 13.7646 12.4199 13.4718C12.1273 13.179 12.1272 12.7041 12.4199 12.4113C13.0602 11.7707 13.4198 10.902 13.4199 9.99624C13.4199 9.0903 13.0604 8.22093 12.4199 7.58022C12.1271 7.28731 12.1271 6.81251 12.4199 6.51967Z", fill: "currentColor" })
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
);
|
|
177
|
+
var Volume2Icon_default = Volume2Icon;
|
|
150
178
|
|
|
151
179
|
// src/tokens/svg/media/VolumeIcon.tsx
|
|
152
180
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
181
|
+
var VolumeIcon = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
182
|
+
"svg",
|
|
183
|
+
{
|
|
184
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
185
|
+
width: "1em",
|
|
186
|
+
height: "1em",
|
|
187
|
+
viewBox: "0 0 20 20",
|
|
188
|
+
fill: "none",
|
|
189
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.69824 3.58112C8.92336 3.40111 9.23239 3.36641 9.49219 3.49127C9.75155 3.61632 9.91699 3.87906 9.91699 4.16705V15.834C9.91675 16.1219 9.75157 16.3849 9.49219 16.5098C9.23251 16.6346 8.92333 16.5988 8.69824 16.419L4.7373 13.2501H1.66699C1.25288 13.2501 0.916186 12.9141 0.916016 12.5001V7.50006C0.916192 7.086 1.25289 6.75006 1.66699 6.75006H4.73828L8.69824 3.58112ZM5.46875 8.086C5.3359 8.19226 5.17011 8.24995 5 8.25006H2.41699V11.7501H5C5.17013 11.7502 5.33589 11.8088 5.46875 11.9151L8.41699 14.2725V5.7276L5.46875 8.086Z", fill: "currentColor" })
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
var VolumeIcon_default = VolumeIcon;
|
|
153
193
|
|
|
154
194
|
// src/tokens/svg/media/VolumeXIcon.tsx
|
|
155
195
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
196
|
+
var VolumeXIcon = () => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
197
|
+
"svg",
|
|
198
|
+
{
|
|
199
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
200
|
+
width: "1em",
|
|
201
|
+
height: "1em",
|
|
202
|
+
viewBox: "0 0 20 20",
|
|
203
|
+
fill: "none",
|
|
204
|
+
children: [
|
|
205
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.69824 3.58112C8.92336 3.40111 9.23239 3.36641 9.49219 3.49127C9.75155 3.61632 9.91699 3.87906 9.91699 4.16705V15.834C9.91675 16.1219 9.75157 16.3849 9.49219 16.5098C9.23251 16.6346 8.92333 16.5988 8.69824 16.419L4.7373 13.2501H1.66699C1.25288 13.2501 0.916186 12.9141 0.916016 12.5001V7.50006C0.916192 7.086 1.25289 6.75006 1.66699 6.75006H4.73828L8.69824 3.58112ZM5.46875 8.086C5.3359 8.19226 5.17011 8.24995 5 8.25006H2.41699V11.7501H5C5.17013 11.7502 5.33589 11.8088 5.46875 11.9151L8.41699 14.2725V5.7276L5.46875 8.086Z", fill: "currentColor" }),
|
|
206
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { d: "M18.6367 6.96979C18.9296 6.6771 19.4044 6.67696 19.6973 6.96979C19.9898 7.26263 19.9899 7.73752 19.6973 8.03033L17.7275 10.0001L19.6973 11.9698C19.9898 12.2626 19.9899 12.7375 19.6973 13.0303C19.4045 13.3231 18.9296 13.3229 18.6367 13.0303L16.667 11.0606L14.6973 13.0303C14.4045 13.3231 13.9296 13.3229 13.6367 13.0303C13.3438 12.7374 13.3438 12.2627 13.6367 11.9698L15.6064 10.0001L13.6367 8.03033C13.3438 7.73744 13.3438 7.26268 13.6367 6.96979C13.9296 6.6771 14.4044 6.67696 14.6973 6.96979L16.667 8.93951L18.6367 6.96979Z", fill: "currentColor" })
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
var VolumeXIcon_default = VolumeXIcon;
|
|
211
|
+
|
|
212
|
+
// src/tokens/svg/layout/ColumnsIcon.tsx
|
|
213
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
214
|
+
|
|
215
|
+
// src/tokens/svg/layout/GridIcon.tsx
|
|
216
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
217
|
+
|
|
218
|
+
// src/tokens/svg/layout/LayoutIcon.tsx
|
|
219
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
220
|
+
|
|
221
|
+
// src/tokens/svg/layout/ListIcon.tsx
|
|
222
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
223
|
+
|
|
224
|
+
// src/tokens/svg/layout/Maximize2Icon.tsx
|
|
225
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
226
|
+
|
|
227
|
+
// src/tokens/svg/layout/MaximizeIcon.tsx
|
|
228
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
229
|
+
var MaximizeIcon = () => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
230
|
+
"svg",
|
|
231
|
+
{
|
|
232
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
233
|
+
width: "1em",
|
|
234
|
+
height: "1em",
|
|
235
|
+
viewBox: "0 0 20 20",
|
|
236
|
+
fill: "none",
|
|
237
|
+
children: [
|
|
238
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("path", { d: "M2.5 12.583C2.91411 12.583 3.24982 12.9189 3.25 13.333V15.833C3.25 16.0761 3.34665 16.3095 3.51855 16.4814C3.69046 16.6534 3.92388 16.75 4.16699 16.75H6.66699C7.08106 16.7502 7.41699 17.0859 7.41699 17.5C7.41699 17.9141 7.08106 18.2498 6.66699 18.25H4.16699C3.52605 18.25 2.91122 17.9952 2.45801 17.542C2.00479 17.0888 1.75 16.4739 1.75 15.833V13.333C1.75018 12.9189 2.08589 12.583 2.5 12.583Z", fill: "currentColor" }),
|
|
239
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("path", { d: "M17.5 12.583C17.9141 12.583 18.2498 12.9189 18.25 13.333V15.833C18.25 16.4739 17.9952 17.0888 17.542 17.542C17.0888 17.9952 16.4739 18.25 15.833 18.25H13.333C12.9189 18.2498 12.583 17.9141 12.583 17.5C12.583 17.0859 12.9189 16.7502 13.333 16.75H15.833C16.0761 16.75 16.3095 16.6534 16.4814 16.4814C16.6534 16.3095 16.75 16.0761 16.75 15.833V13.333C16.7502 12.9189 17.0859 12.583 17.5 12.583Z", fill: "currentColor" }),
|
|
240
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("path", { d: "M6.66699 1.75C7.08106 1.75018 7.41699 2.08589 7.41699 2.5C7.41699 2.91411 7.08106 3.24982 6.66699 3.25H4.16699C3.92388 3.25 3.69046 3.34665 3.51855 3.51855C3.34665 3.69046 3.25 3.92388 3.25 4.16699V6.66699C3.24982 7.08106 2.91411 7.41699 2.5 7.41699C2.08589 7.41699 1.75018 7.08106 1.75 6.66699V4.16699C1.75 3.52605 2.00479 2.91122 2.45801 2.45801C2.91122 2.00479 3.52605 1.75 4.16699 1.75H6.66699Z", fill: "currentColor" }),
|
|
241
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("path", { d: "M15.833 1.75C16.4739 1.75 17.0888 2.00479 17.542 2.45801C17.9952 2.91122 18.25 3.52605 18.25 4.16699V6.66699C18.2498 7.08106 17.9141 7.41699 17.5 7.41699C17.0859 7.41699 16.7502 7.08106 16.75 6.66699V4.16699C16.75 3.92388 16.6534 3.69046 16.4814 3.51855C16.3095 3.34665 16.0761 3.25 15.833 3.25H13.333C12.9189 3.24982 12.583 2.91411 12.583 2.5C12.583 2.08589 12.9189 1.75018 13.333 1.75H15.833Z", fill: "currentColor" })
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
);
|
|
245
|
+
var MaximizeIcon_default = MaximizeIcon;
|
|
246
|
+
|
|
247
|
+
// src/tokens/svg/layout/MenuIcon.tsx
|
|
248
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
249
|
+
|
|
250
|
+
// src/tokens/svg/layout/Minimize2Icon.tsx
|
|
251
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
252
|
+
|
|
253
|
+
// src/tokens/svg/layout/MinimizeIcon.tsx
|
|
254
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
255
|
+
var MinimizeIcon = () => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
256
|
+
"svg",
|
|
257
|
+
{
|
|
258
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
259
|
+
width: "1em",
|
|
260
|
+
height: "1em",
|
|
261
|
+
viewBox: "0 0 20 20",
|
|
262
|
+
fill: "none",
|
|
263
|
+
children: [
|
|
264
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M5 12.583C5.64094 12.583 6.25577 12.8378 6.70898 13.291C7.1622 13.7442 7.41699 14.3591 7.41699 15V17.5C7.41699 17.9141 7.08106 18.2498 6.66699 18.25C6.25278 18.25 5.91699 17.9142 5.91699 17.5V15C5.91699 14.7569 5.82035 14.5235 5.64844 14.3516C5.47653 14.1797 5.24311 14.083 5 14.083H2.5C2.08579 14.083 1.75 13.7472 1.75 13.333C1.75018 12.9189 2.08589 12.583 2.5 12.583H5Z", fill: "currentColor" }),
|
|
265
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M17.5 12.583C17.9141 12.583 18.2498 12.9189 18.25 13.333C18.25 13.7472 17.9142 14.083 17.5 14.083H15C14.7569 14.083 14.5235 14.1797 14.3516 14.3516C14.1797 14.5235 14.083 14.7569 14.083 15V17.5C14.083 17.9142 13.7472 18.25 13.333 18.25C12.9189 18.2498 12.583 17.9141 12.583 17.5V15C12.583 14.3591 12.8378 13.7442 13.291 13.291C13.7442 12.8378 14.3591 12.583 15 12.583H17.5Z", fill: "currentColor" }),
|
|
266
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M6.66699 1.75C7.08106 1.75018 7.41699 2.08589 7.41699 2.5V5C7.41699 5.64094 7.1622 6.25577 6.70898 6.70898C6.25577 7.1622 5.64094 7.41699 5 7.41699H2.5C2.08589 7.41699 1.75018 7.08106 1.75 6.66699C1.75 6.25278 2.08579 5.91699 2.5 5.91699H5C5.24312 5.91699 5.47653 5.82035 5.64844 5.64844C5.82035 5.47653 5.91699 5.24312 5.91699 5V2.5C5.91699 2.08579 6.25278 1.75 6.66699 1.75Z", fill: "currentColor" }),
|
|
267
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M13.333 1.75C13.7472 1.75 14.083 2.08579 14.083 2.5V5C14.083 5.24311 14.1797 5.47653 14.3516 5.64844C14.5235 5.82035 14.7569 5.91699 15 5.91699H17.5C17.9142 5.91699 18.25 6.25278 18.25 6.66699C18.2498 7.08106 17.9141 7.41699 17.5 7.41699H15C14.3591 7.41699 13.7442 7.1622 13.291 6.70898C12.8378 6.25577 12.583 5.64094 12.583 5V2.5C12.583 2.08589 12.9189 1.75018 13.333 1.75Z", fill: "currentColor" })
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
var MinimizeIcon_default = MinimizeIcon;
|
|
272
|
+
|
|
273
|
+
// src/tokens/svg/layout/MoreHorizontalIcon.tsx
|
|
274
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
275
|
+
|
|
276
|
+
// src/tokens/svg/layout/MoreVerticalIcon.tsx
|
|
277
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
278
|
+
|
|
279
|
+
// src/tokens/svg/layout/SidebarIcon.tsx
|
|
280
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
281
|
+
|
|
282
|
+
// src/tokens/svg/action/CopyIcon.tsx
|
|
283
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
284
|
+
|
|
285
|
+
// src/tokens/svg/action/CropIcon.tsx
|
|
286
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
287
|
+
|
|
288
|
+
// src/tokens/svg/action/DeleteIcon.tsx
|
|
289
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
290
|
+
|
|
291
|
+
// src/tokens/svg/action/DownloadCloudIcon.tsx
|
|
292
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
293
|
+
|
|
294
|
+
// src/tokens/svg/action/DownloadIcon.tsx
|
|
295
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
296
|
+
var DownloadIcon = () => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
297
|
+
"svg",
|
|
298
|
+
{
|
|
299
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
300
|
+
width: "1em",
|
|
301
|
+
height: "1em",
|
|
302
|
+
viewBox: "0 0 20 20",
|
|
303
|
+
fill: "none",
|
|
304
|
+
children: [
|
|
305
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("path", { d: "M17.5 11.75C17.9142 11.75 18.25 12.0858 18.25 12.5V15.833C18.25 16.4739 17.9952 17.0888 17.542 17.542C17.0888 17.9952 16.4739 18.25 15.833 18.25H4.16699C3.52605 18.25 2.91122 17.9952 2.45801 17.542C2.00479 17.0888 1.75 16.4739 1.75 15.833V12.5C1.75 12.0858 2.08579 11.75 2.5 11.75C2.91421 11.75 3.25 12.0858 3.25 12.5V15.833C3.25 16.0761 3.34665 16.3095 3.51855 16.4814C3.69046 16.6534 3.92388 16.75 4.16699 16.75H15.833C16.0761 16.75 16.3095 16.6534 16.4814 16.4814C16.6534 16.3095 16.75 16.0761 16.75 15.833V12.5C16.75 12.0858 17.0858 11.75 17.5 11.75Z", fill: "currentColor" }),
|
|
306
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("path", { d: "M10 1.75C10.4142 1.75 10.75 2.08579 10.75 2.5V10.6885L13.6367 7.80273C13.9296 7.51026 14.4045 7.51013 14.6973 7.80273C14.9899 8.09552 14.9898 8.5704 14.6973 8.86328L10.5312 13.0303C10.4709 13.0906 10.4007 13.1354 10.3281 13.1709C10.3146 13.1776 10.3021 13.1865 10.2881 13.1924C10.253 13.207 10.2163 13.2156 10.1797 13.2246C10.1691 13.2272 10.1592 13.2322 10.1484 13.2344C10.1429 13.2355 10.1374 13.2363 10.1318 13.2373C10.0896 13.2448 10.0463 13.2489 10.002 13.249L10 13.25C9.95423 13.25 9.90972 13.2442 9.86621 13.2363C9.86168 13.2355 9.85706 13.2353 9.85254 13.2344C9.82836 13.2295 9.80551 13.221 9.78223 13.2139C9.76008 13.2071 9.73738 13.2022 9.71582 13.1934C9.68772 13.1818 9.66201 13.1661 9.63574 13.1514C9.5804 13.1204 9.52713 13.0842 9.47949 13.0381C9.47469 13.0334 9.46952 13.0292 9.46484 13.0244L5.30371 8.86328C5.01082 8.57039 5.01082 8.09563 5.30371 7.80273C5.59663 7.51021 6.07149 7.50996 6.36426 7.80273L9.25 10.6885V2.5C9.25 2.08579 9.58579 1.75 10 1.75Z", fill: "currentColor" })
|
|
307
|
+
]
|
|
308
|
+
}
|
|
309
|
+
);
|
|
310
|
+
var DownloadIcon_default = DownloadIcon;
|
|
311
|
+
|
|
312
|
+
// src/tokens/svg/action/Edit2Icon.tsx
|
|
313
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
314
|
+
|
|
315
|
+
// src/tokens/svg/action/Edit3Icon.tsx
|
|
316
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
317
|
+
|
|
318
|
+
// src/tokens/svg/action/EditIcon.tsx
|
|
319
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
320
|
+
|
|
321
|
+
// src/tokens/svg/action/ExternalLinkIcon.tsx
|
|
322
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
323
|
+
|
|
324
|
+
// src/tokens/svg/action/FilterIcon.tsx
|
|
325
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
326
|
+
|
|
327
|
+
// src/tokens/svg/action/Link2Icon.tsx
|
|
328
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
329
|
+
|
|
330
|
+
// src/tokens/svg/action/LinkIcon.tsx
|
|
331
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
332
|
+
|
|
333
|
+
// src/tokens/svg/action/MoveIcon.tsx
|
|
334
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
335
|
+
|
|
336
|
+
// src/tokens/svg/action/RefreshCcwIcon.tsx
|
|
337
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
338
|
+
|
|
339
|
+
// src/tokens/svg/action/RefreshCwIcon.tsx
|
|
340
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
341
|
+
|
|
342
|
+
// src/tokens/svg/action/RotateCcwIcon.tsx
|
|
343
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
344
|
+
|
|
345
|
+
// src/tokens/svg/action/RotateCwIcon.tsx
|
|
346
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
347
|
+
|
|
348
|
+
// src/tokens/svg/action/SaveIcon.tsx
|
|
349
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
350
|
+
|
|
351
|
+
// src/tokens/svg/action/ScissorsIcon.tsx
|
|
352
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
353
|
+
|
|
354
|
+
// src/tokens/svg/action/SearchIcon.tsx
|
|
355
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
356
|
+
|
|
357
|
+
// src/tokens/svg/action/Share2Icon.tsx
|
|
358
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
359
|
+
|
|
360
|
+
// src/tokens/svg/action/ShareIcon.tsx
|
|
361
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
362
|
+
|
|
363
|
+
// src/tokens/svg/action/Trash2Icon.tsx
|
|
364
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
365
|
+
|
|
366
|
+
// src/tokens/svg/action/TrashIcon.tsx
|
|
367
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
368
|
+
|
|
369
|
+
// src/tokens/svg/action/UploadCloudIcon.tsx
|
|
370
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
371
|
+
|
|
372
|
+
// src/tokens/svg/action/UploadIcon.tsx
|
|
373
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
374
|
+
|
|
375
|
+
// src/tokens/svg/action/ZoomInIcon.tsx
|
|
376
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
377
|
+
|
|
378
|
+
// src/tokens/svg/action/ZoomOutIcon.tsx
|
|
379
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
380
|
+
|
|
381
|
+
// src/tokens/svg/edit/AlignCenterIcon.tsx
|
|
382
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
383
|
+
|
|
384
|
+
// src/tokens/svg/edit/AlignJustifyIcon.tsx
|
|
385
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
386
|
+
|
|
387
|
+
// src/tokens/svg/edit/AlignLeftIcon.tsx
|
|
388
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
389
|
+
|
|
390
|
+
// src/tokens/svg/edit/AlignRightIcon.tsx
|
|
391
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
392
|
+
|
|
393
|
+
// src/tokens/svg/edit/BoldIcon.tsx
|
|
394
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
395
|
+
|
|
396
|
+
// src/tokens/svg/edit/ItalicIcon.tsx
|
|
397
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
398
|
+
|
|
399
|
+
// src/tokens/svg/edit/PenToolIcon.tsx
|
|
400
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
401
|
+
|
|
402
|
+
// src/tokens/svg/edit/TypeIcon.tsx
|
|
403
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
404
|
+
var TypeIcon = () => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
405
|
+
"svg",
|
|
406
|
+
{
|
|
407
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
408
|
+
width: "1em",
|
|
409
|
+
height: "1em",
|
|
410
|
+
viewBox: "0 0 20 20",
|
|
411
|
+
fill: "none",
|
|
412
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M16.667 2.58301C17.0809 2.58327 17.4169 2.91907 17.417 3.33301V5.83301C17.417 6.24706 17.081 6.58274 16.667 6.58301C16.2529 6.58283 15.917 6.24711 15.917 5.83301V4.08301H10.75V15.917H12.5C12.9142 15.917 13.25 16.2528 13.25 16.667C13.2499 17.0811 12.9141 17.417 12.5 17.417H7.5C7.08587 17.417 6.75013 17.0811 6.75 16.667C6.75 16.2528 7.08579 15.917 7.5 15.917H9.25V4.08301H4.08398V5.83301C4.08398 6.24706 3.74797 6.58274 3.33398 6.58301C2.91977 6.58301 2.58301 6.24722 2.58301 5.83301V3.33301C2.58314 2.91891 2.91985 2.58301 3.33398 2.58301H16.667Z", fill: "currentColor" })
|
|
413
|
+
}
|
|
414
|
+
);
|
|
415
|
+
var TypeIcon_default = TypeIcon;
|
|
416
|
+
|
|
417
|
+
// src/tokens/svg/edit/UnderlineIcon.tsx
|
|
418
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
156
419
|
|
|
157
420
|
// ../../node_modules/clsx/dist/clsx.mjs
|
|
158
421
|
function r(e) {
|
|
@@ -171,7 +434,17 @@ function clsx() {
|
|
|
171
434
|
var clsx_default = clsx;
|
|
172
435
|
|
|
173
436
|
// src/components/Video/Video.tsx
|
|
174
|
-
var
|
|
437
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
438
|
+
var PipIcon = () => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
439
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
|
|
440
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
|
|
441
|
+
] });
|
|
442
|
+
var formatTime = (sec) => {
|
|
443
|
+
if (!Number.isFinite(sec) || sec < 0) return "0:00";
|
|
444
|
+
const m = Math.floor(sec / 60);
|
|
445
|
+
const s = Math.floor(sec % 60);
|
|
446
|
+
return `${m}:${s.toString().padStart(2, "0")}`;
|
|
447
|
+
};
|
|
175
448
|
var Video = import_react.default.forwardRef((props, ref) => {
|
|
176
449
|
const {
|
|
177
450
|
src,
|
|
@@ -180,13 +453,36 @@ var Video = import_react.default.forwardRef((props, ref) => {
|
|
|
180
453
|
muted,
|
|
181
454
|
loop,
|
|
182
455
|
playsInline,
|
|
456
|
+
showControls = true,
|
|
457
|
+
showCenterPlay = true,
|
|
458
|
+
playbackRates,
|
|
459
|
+
showCaptions = false,
|
|
460
|
+
showPip = false,
|
|
461
|
+
showDownload = false,
|
|
462
|
+
downloadFileName,
|
|
183
463
|
onPlay,
|
|
184
464
|
onPause,
|
|
465
|
+
onTimeUpdate,
|
|
466
|
+
onVolumeChange,
|
|
467
|
+
onLoadedMetadata,
|
|
468
|
+
onRateChange,
|
|
469
|
+
children,
|
|
185
470
|
...rest
|
|
186
471
|
} = props;
|
|
472
|
+
const containerRef = import_react.default.useRef(null);
|
|
187
473
|
const videoRef = import_react.default.useRef(null);
|
|
188
474
|
const [isPlaying, setIsPlaying] = import_react.default.useState(Boolean(autoPlay));
|
|
189
475
|
const [isLoaded, setIsLoaded] = import_react.default.useState(false);
|
|
476
|
+
const [currentTime, setCurrentTime] = import_react.default.useState(0);
|
|
477
|
+
const [duration, setDuration] = import_react.default.useState(0);
|
|
478
|
+
const [buffered, setBuffered] = import_react.default.useState(0);
|
|
479
|
+
const [volume, setVolume] = import_react.default.useState(1);
|
|
480
|
+
const [isMuted, setIsMuted] = import_react.default.useState(Boolean(muted));
|
|
481
|
+
const [isFullscreen, setIsFullscreen] = import_react.default.useState(false);
|
|
482
|
+
const [playbackRate, setPlaybackRate] = import_react.default.useState(1);
|
|
483
|
+
const [rateMenuOpen, setRateMenuOpen] = import_react.default.useState(false);
|
|
484
|
+
const [captionsOn, setCaptionsOn] = import_react.default.useState(false);
|
|
485
|
+
const [isPip, setIsPip] = import_react.default.useState(false);
|
|
190
486
|
const setRefs = import_react.default.useCallback(
|
|
191
487
|
(el) => {
|
|
192
488
|
videoRef.current = el;
|
|
@@ -195,6 +491,25 @@ var Video = import_react.default.forwardRef((props, ref) => {
|
|
|
195
491
|
},
|
|
196
492
|
[ref]
|
|
197
493
|
);
|
|
494
|
+
import_react.default.useEffect(() => {
|
|
495
|
+
const onFsChange = () => {
|
|
496
|
+
setIsFullscreen(document.fullscreenElement === containerRef.current);
|
|
497
|
+
};
|
|
498
|
+
document.addEventListener("fullscreenchange", onFsChange);
|
|
499
|
+
return () => document.removeEventListener("fullscreenchange", onFsChange);
|
|
500
|
+
}, []);
|
|
501
|
+
import_react.default.useEffect(() => {
|
|
502
|
+
const v = videoRef.current;
|
|
503
|
+
if (!v) return;
|
|
504
|
+
const onEnter = () => setIsPip(true);
|
|
505
|
+
const onLeave = () => setIsPip(false);
|
|
506
|
+
v.addEventListener("enterpictureinpicture", onEnter);
|
|
507
|
+
v.addEventListener("leavepictureinpicture", onLeave);
|
|
508
|
+
return () => {
|
|
509
|
+
v.removeEventListener("enterpictureinpicture", onEnter);
|
|
510
|
+
v.removeEventListener("leavepictureinpicture", onLeave);
|
|
511
|
+
};
|
|
512
|
+
}, []);
|
|
198
513
|
const handlePlay = (e) => {
|
|
199
514
|
setIsPlaying(true);
|
|
200
515
|
onPlay?.(e);
|
|
@@ -203,50 +518,278 @@ var Video = import_react.default.forwardRef((props, ref) => {
|
|
|
203
518
|
setIsPlaying(false);
|
|
204
519
|
onPause?.(e);
|
|
205
520
|
};
|
|
206
|
-
const
|
|
521
|
+
const handleLoadedMetadata = (e) => {
|
|
522
|
+
const v = e.currentTarget;
|
|
523
|
+
setDuration(v.duration);
|
|
207
524
|
setIsLoaded(true);
|
|
525
|
+
onLoadedMetadata?.(e);
|
|
526
|
+
};
|
|
527
|
+
const handleTimeUpdate = (e) => {
|
|
528
|
+
const v = e.currentTarget;
|
|
529
|
+
setCurrentTime(v.currentTime);
|
|
530
|
+
if (v.buffered.length > 0) {
|
|
531
|
+
setBuffered(v.buffered.end(v.buffered.length - 1));
|
|
532
|
+
}
|
|
533
|
+
onTimeUpdate?.(e);
|
|
534
|
+
};
|
|
535
|
+
const handleVolumeChange = (e) => {
|
|
536
|
+
const v = e.currentTarget;
|
|
537
|
+
setVolume(v.volume);
|
|
538
|
+
setIsMuted(v.muted);
|
|
539
|
+
onVolumeChange?.(e);
|
|
540
|
+
};
|
|
541
|
+
const handleRateChange = (e) => {
|
|
542
|
+
setPlaybackRate(e.currentTarget.playbackRate);
|
|
543
|
+
onRateChange?.(e);
|
|
208
544
|
};
|
|
209
545
|
const togglePlay = () => {
|
|
210
|
-
|
|
211
|
-
if (
|
|
212
|
-
|
|
546
|
+
const v = videoRef.current;
|
|
547
|
+
if (!v) return;
|
|
548
|
+
if (v.paused) v.play();
|
|
549
|
+
else v.pause();
|
|
550
|
+
};
|
|
551
|
+
const toggleMute = () => {
|
|
552
|
+
const v = videoRef.current;
|
|
553
|
+
if (!v) return;
|
|
554
|
+
v.muted = !v.muted;
|
|
555
|
+
};
|
|
556
|
+
const toggleFullscreen = () => {
|
|
557
|
+
const el = containerRef.current;
|
|
558
|
+
if (!el) return;
|
|
559
|
+
if (document.fullscreenElement === el) {
|
|
560
|
+
document.exitFullscreen();
|
|
213
561
|
} else {
|
|
214
|
-
|
|
562
|
+
el.requestFullscreen?.();
|
|
215
563
|
}
|
|
216
564
|
};
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
muted,
|
|
226
|
-
loop,
|
|
227
|
-
playsInline: playsInline ?? true,
|
|
228
|
-
onPlay: handlePlay,
|
|
229
|
-
onPause: handlePause,
|
|
230
|
-
onLoadedData: handleLoadedData,
|
|
231
|
-
onClick: togglePlay,
|
|
232
|
-
...rest
|
|
565
|
+
const togglePip = async () => {
|
|
566
|
+
const v = videoRef.current;
|
|
567
|
+
if (!v) return;
|
|
568
|
+
try {
|
|
569
|
+
if (document.pictureInPictureElement === v) {
|
|
570
|
+
await document.exitPictureInPicture?.();
|
|
571
|
+
} else {
|
|
572
|
+
await v.requestPictureInPicture?.();
|
|
233
573
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
"aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
|
|
246
|
-
children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PauseIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(PlayCircleIcon_default, {}) })
|
|
574
|
+
} catch {
|
|
575
|
+
}
|
|
576
|
+
};
|
|
577
|
+
const toggleCaptions = () => {
|
|
578
|
+
const v = videoRef.current;
|
|
579
|
+
if (!v) return;
|
|
580
|
+
const next = !captionsOn;
|
|
581
|
+
for (let i = 0; i < v.textTracks.length; i++) {
|
|
582
|
+
const t = v.textTracks[i];
|
|
583
|
+
if (t.kind === "captions" || t.kind === "subtitles") {
|
|
584
|
+
t.mode = next ? "showing" : "hidden";
|
|
247
585
|
}
|
|
248
|
-
|
|
249
|
-
|
|
586
|
+
}
|
|
587
|
+
setCaptionsOn(next);
|
|
588
|
+
};
|
|
589
|
+
const selectRate = (rate) => {
|
|
590
|
+
const v = videoRef.current;
|
|
591
|
+
if (!v) return;
|
|
592
|
+
v.playbackRate = rate;
|
|
593
|
+
setRateMenuOpen(false);
|
|
594
|
+
};
|
|
595
|
+
const handleSeek = (e) => {
|
|
596
|
+
const v = videoRef.current;
|
|
597
|
+
if (!v) return;
|
|
598
|
+
const next = Number(e.target.value);
|
|
599
|
+
v.currentTime = next;
|
|
600
|
+
setCurrentTime(next);
|
|
601
|
+
};
|
|
602
|
+
const handleVolumeSlider = (e) => {
|
|
603
|
+
const v = videoRef.current;
|
|
604
|
+
if (!v) return;
|
|
605
|
+
const next = Number(e.target.value);
|
|
606
|
+
v.volume = next;
|
|
607
|
+
if (next > 0 && v.muted) v.muted = false;
|
|
608
|
+
if (next === 0) v.muted = true;
|
|
609
|
+
};
|
|
610
|
+
const progressPct = duration > 0 ? currentTime / duration * 100 : 0;
|
|
611
|
+
const bufferedPct = duration > 0 ? buffered / duration * 100 : 0;
|
|
612
|
+
const volumePct = (isMuted ? 0 : volume) * 100;
|
|
613
|
+
const VolumeGlyph = isMuted || volume === 0 ? VolumeXIcon_default : volume < 0.5 ? VolumeIcon_default : Volume2Icon_default;
|
|
614
|
+
const pipSupported = typeof document !== "undefined" && "pictureInPictureEnabled" in document && document.pictureInPictureEnabled;
|
|
615
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
616
|
+
"div",
|
|
617
|
+
{
|
|
618
|
+
ref: containerRef,
|
|
619
|
+
className: clsx_default("lib-xplat-video", showControls && "has-controls"),
|
|
620
|
+
children: [
|
|
621
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
622
|
+
"video",
|
|
623
|
+
{
|
|
624
|
+
ref: setRefs,
|
|
625
|
+
src,
|
|
626
|
+
poster,
|
|
627
|
+
autoPlay,
|
|
628
|
+
muted,
|
|
629
|
+
loop,
|
|
630
|
+
playsInline: playsInline ?? true,
|
|
631
|
+
onPlay: handlePlay,
|
|
632
|
+
onPause: handlePause,
|
|
633
|
+
onLoadedMetadata: handleLoadedMetadata,
|
|
634
|
+
onTimeUpdate: handleTimeUpdate,
|
|
635
|
+
onVolumeChange: handleVolumeChange,
|
|
636
|
+
onRateChange: handleRateChange,
|
|
637
|
+
onClick: togglePlay,
|
|
638
|
+
...rest,
|
|
639
|
+
children
|
|
640
|
+
}
|
|
641
|
+
),
|
|
642
|
+
showCenterPlay && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
643
|
+
"button",
|
|
644
|
+
{
|
|
645
|
+
type: "button",
|
|
646
|
+
className: clsx_default(
|
|
647
|
+
"center-play",
|
|
648
|
+
isPlaying && "is-playing",
|
|
649
|
+
!isLoaded && "is-loading"
|
|
650
|
+
),
|
|
651
|
+
onClick: togglePlay,
|
|
652
|
+
"aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
|
|
653
|
+
tabIndex: -1,
|
|
654
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "center-play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PlayCircleIcon_default, {}) })
|
|
655
|
+
}
|
|
656
|
+
),
|
|
657
|
+
showControls && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
|
|
658
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
659
|
+
"input",
|
|
660
|
+
{
|
|
661
|
+
type: "range",
|
|
662
|
+
className: "seekbar",
|
|
663
|
+
min: 0,
|
|
664
|
+
max: duration || 0,
|
|
665
|
+
step: 0.1,
|
|
666
|
+
value: currentTime,
|
|
667
|
+
onChange: handleSeek,
|
|
668
|
+
"aria-label": "\uC7AC\uC0DD \uC704\uCE58",
|
|
669
|
+
style: {
|
|
670
|
+
["--progress"]: `${progressPct}%`,
|
|
671
|
+
["--buffered"]: `${bufferedPct}%`
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
),
|
|
675
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "controls-row", children: [
|
|
676
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
677
|
+
"button",
|
|
678
|
+
{
|
|
679
|
+
type: "button",
|
|
680
|
+
className: "control-btn",
|
|
681
|
+
onClick: togglePlay,
|
|
682
|
+
"aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
|
|
683
|
+
children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PauseIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PlayIcon_default, {})
|
|
684
|
+
}
|
|
685
|
+
),
|
|
686
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "volume-group", children: [
|
|
687
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
688
|
+
"button",
|
|
689
|
+
{
|
|
690
|
+
type: "button",
|
|
691
|
+
className: "control-btn",
|
|
692
|
+
onClick: toggleMute,
|
|
693
|
+
"aria-label": isMuted ? "\uC74C\uC18C\uAC70 \uD574\uC81C" : "\uC74C\uC18C\uAC70",
|
|
694
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(VolumeGlyph, {})
|
|
695
|
+
}
|
|
696
|
+
),
|
|
697
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
698
|
+
"input",
|
|
699
|
+
{
|
|
700
|
+
type: "range",
|
|
701
|
+
className: "volume-slider",
|
|
702
|
+
min: 0,
|
|
703
|
+
max: 1,
|
|
704
|
+
step: 0.05,
|
|
705
|
+
value: isMuted ? 0 : volume,
|
|
706
|
+
onChange: handleVolumeSlider,
|
|
707
|
+
"aria-label": "\uBCFC\uB968",
|
|
708
|
+
style: { ["--volume"]: `${volumePct}%` }
|
|
709
|
+
}
|
|
710
|
+
)
|
|
711
|
+
] }),
|
|
712
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { className: "time", children: [
|
|
713
|
+
formatTime(currentTime),
|
|
714
|
+
" / ",
|
|
715
|
+
formatTime(duration)
|
|
716
|
+
] }),
|
|
717
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "controls-spacer" }),
|
|
718
|
+
playbackRates && playbackRates.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
|
|
719
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
720
|
+
"button",
|
|
721
|
+
{
|
|
722
|
+
type: "button",
|
|
723
|
+
className: "control-btn rate-btn",
|
|
724
|
+
onClick: () => setRateMenuOpen((o) => !o),
|
|
725
|
+
"aria-label": "\uC7AC\uC0DD \uC18D\uB3C4",
|
|
726
|
+
"aria-expanded": rateMenuOpen,
|
|
727
|
+
children: [
|
|
728
|
+
playbackRate,
|
|
729
|
+
"x"
|
|
730
|
+
]
|
|
731
|
+
}
|
|
732
|
+
),
|
|
733
|
+
rateMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
734
|
+
"button",
|
|
735
|
+
{
|
|
736
|
+
type: "button",
|
|
737
|
+
role: "menuitem",
|
|
738
|
+
className: clsx_default("rate-item", r2 === playbackRate && "is-active"),
|
|
739
|
+
onClick: () => selectRate(r2),
|
|
740
|
+
children: [
|
|
741
|
+
r2,
|
|
742
|
+
"x"
|
|
743
|
+
]
|
|
744
|
+
}
|
|
745
|
+
) }, r2)) })
|
|
746
|
+
] }),
|
|
747
|
+
showCaptions && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
748
|
+
"button",
|
|
749
|
+
{
|
|
750
|
+
type: "button",
|
|
751
|
+
className: clsx_default("control-btn", captionsOn && "is-active"),
|
|
752
|
+
onClick: toggleCaptions,
|
|
753
|
+
"aria-label": captionsOn ? "\uC790\uB9C9 \uB044\uAE30" : "\uC790\uB9C9 \uCF1C\uAE30",
|
|
754
|
+
"aria-pressed": captionsOn,
|
|
755
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TypeIcon_default, {})
|
|
756
|
+
}
|
|
757
|
+
),
|
|
758
|
+
showPip && pipSupported && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
759
|
+
"button",
|
|
760
|
+
{
|
|
761
|
+
type: "button",
|
|
762
|
+
className: clsx_default("control-btn", isPip && "is-active"),
|
|
763
|
+
onClick: togglePip,
|
|
764
|
+
"aria-label": isPip ? "PIP \uC885\uB8CC" : "PIP",
|
|
765
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(PipIcon, {})
|
|
766
|
+
}
|
|
767
|
+
),
|
|
768
|
+
showDownload && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
769
|
+
"a",
|
|
770
|
+
{
|
|
771
|
+
className: "control-btn",
|
|
772
|
+
href: src,
|
|
773
|
+
download: downloadFileName ?? true,
|
|
774
|
+
"aria-label": "\uB2E4\uC6B4\uB85C\uB4DC",
|
|
775
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(DownloadIcon_default, {})
|
|
776
|
+
}
|
|
777
|
+
),
|
|
778
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
779
|
+
"button",
|
|
780
|
+
{
|
|
781
|
+
type: "button",
|
|
782
|
+
className: "control-btn",
|
|
783
|
+
onClick: toggleFullscreen,
|
|
784
|
+
"aria-label": isFullscreen ? "\uC804\uCCB4\uD654\uBA74 \uC885\uB8CC" : "\uC804\uCCB4\uD654\uBA74",
|
|
785
|
+
children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(MinimizeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(MaximizeIcon_default, {})
|
|
786
|
+
}
|
|
787
|
+
)
|
|
788
|
+
] })
|
|
789
|
+
] })
|
|
790
|
+
]
|
|
791
|
+
}
|
|
792
|
+
);
|
|
250
793
|
});
|
|
251
794
|
Video.displayName = "Video";
|
|
252
795
|
var Video_default = Video;
|