@clyrex-digital/clyrex-controls-dev 0.8.1-dev.20260914095913 → 0.8.1-dev.20260916090938
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/{DataBindingControls-TF7XLJ5C.mjs → DataBindingControls-2CSX5L5I.mjs} +78 -24
- package/dist/{DataBindingControls-SKC472JJ.mjs → DataBindingControls-F72KPWHV.mjs} +77 -23
- package/dist/{HlsPlayer-IW52N5RG.mjs → HlsPlayer-AUZ42WTT.mjs} +83 -107
- package/dist/{HlsPlayer-BVS6BVF7.mjs → HlsPlayer-ZGFEVSKL.mjs} +83 -107
- package/dist/{chunk-YRNDRPUE.mjs → chunk-6GVLDYCQ.mjs} +1 -1
- package/dist/index.js +159 -131
- package/dist/index.mjs +11 -11
- package/dist/server.js +159 -131
- package/dist/server.mjs +4 -4
- package/package.json +1 -1
- package/dist/{InputControlClient-BC66BGHI.mjs → InputControlClient-DZGLI4DU.mjs} +5 -5
- package/dist/{Pagination-CQKMBXXJ.mjs → Pagination-PGAK7KDA.mjs} +1 -1
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
"use client";
|
|
4
4
|
import {
|
|
5
5
|
InputControl_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6GVLDYCQ.mjs";
|
|
7
|
+
import {
|
|
8
|
+
Button_default
|
|
9
|
+
} from "./chunk-LSKD5U3S.mjs";
|
|
7
10
|
import {
|
|
8
11
|
InputControlType_default
|
|
9
12
|
} from "./chunk-DTWPZPSX.mjs";
|
|
13
|
+
import "./chunk-IMNQO57B.mjs";
|
|
10
14
|
|
|
11
15
|
// src/components/pageRenderingEngine/nodes/DataBindingControls.tsx
|
|
12
16
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
@@ -40,6 +44,21 @@ var parseODataSearch = (value) => {
|
|
|
40
44
|
}
|
|
41
45
|
return trimmedValue;
|
|
42
46
|
};
|
|
47
|
+
var SearchIcon = ({ className = "" }) => /* @__PURE__ */ jsxs(
|
|
48
|
+
"svg",
|
|
49
|
+
{
|
|
50
|
+
"aria-hidden": "true",
|
|
51
|
+
className,
|
|
52
|
+
fill: "none",
|
|
53
|
+
viewBox: "0 0 24 24",
|
|
54
|
+
stroke: "currentColor",
|
|
55
|
+
strokeWidth: "2",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "7" }),
|
|
58
|
+
/* @__PURE__ */ jsx("path", { strokeLinecap: "round", d: "m20 20-4-4" })
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
);
|
|
43
62
|
var normalizeSortOption = (option) => {
|
|
44
63
|
const direction = option.direction.trim();
|
|
45
64
|
return {
|
|
@@ -139,19 +158,17 @@ var DataBindingControls = ({
|
|
|
139
158
|
},
|
|
140
159
|
[router]
|
|
141
160
|
);
|
|
142
|
-
|
|
161
|
+
const handleSearch = useCallback(async () => {
|
|
143
162
|
const trimmedSearchText = searchText.trim();
|
|
144
163
|
if (trimmedSearchText === currentSearch.trim()) {
|
|
145
|
-
return;
|
|
164
|
+
return { isSuccessful: true };
|
|
146
165
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}, 500);
|
|
154
|
-
return () => window.clearTimeout(timeout);
|
|
166
|
+
navigateWithoutReload(
|
|
167
|
+
getQueryUrl({
|
|
168
|
+
"$search": trimmedSearchText || void 0
|
|
169
|
+
})
|
|
170
|
+
);
|
|
171
|
+
return { isSuccessful: true };
|
|
155
172
|
}, [currentSearch, getQueryUrl, navigateWithoutReload, searchText]);
|
|
156
173
|
const hasFacetControls = showFacets && facetGroups.length > 0;
|
|
157
174
|
const hasSortControls = showSortOptions && normalizedSortOptions.length > 0;
|
|
@@ -193,20 +210,57 @@ var DataBindingControls = ({
|
|
|
193
210
|
] });
|
|
194
211
|
return /* @__PURE__ */ jsxs("div", { className: mode === "toolbar" ? "my-6" : "flex flex-col gap-2", children: [
|
|
195
212
|
shouldShowToolbar && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 md:flex-row md:items-center md:justify-between", children: [
|
|
196
|
-
showSearchBar && /* @__PURE__ */
|
|
197
|
-
|
|
213
|
+
showSearchBar && /* @__PURE__ */ jsxs(
|
|
214
|
+
"form",
|
|
198
215
|
{
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
216
|
+
role: "search",
|
|
217
|
+
className: "flex w-full flex-col gap-3 rounded-2xl border border-info bg-info-soft p-3 sm:flex-row sm:items-center md:min-w-0 md:flex-1",
|
|
218
|
+
onSubmit: (event) => {
|
|
219
|
+
event.preventDefault();
|
|
220
|
+
void handleSearch();
|
|
221
|
+
},
|
|
222
|
+
children: [
|
|
223
|
+
/* @__PURE__ */ jsxs("div", { className: "relative bg-default rounded-xl min-w-0 flex-1", children: [
|
|
224
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "pointer-events-none absolute left-4 top-1/2 z-10 h-5 w-5 -translate-y-1/2" }),
|
|
225
|
+
/* @__PURE__ */ jsx(
|
|
226
|
+
InputControl_default,
|
|
227
|
+
{
|
|
228
|
+
name: "searchText",
|
|
229
|
+
controlType: InputControlType_default.lineTextInput,
|
|
230
|
+
value: searchText,
|
|
231
|
+
callback: (updatedValues) => setSearchText(updatedValues.value),
|
|
232
|
+
attributes: {
|
|
233
|
+
placeholder: "Search discussions, topics, or keywords..."
|
|
234
|
+
},
|
|
235
|
+
inputClasses: "!mt-0 !rounded-xl !py-3 !pl-11 !pr-4 !shadow-sm"
|
|
236
|
+
}
|
|
237
|
+
)
|
|
238
|
+
] }),
|
|
239
|
+
/* @__PURE__ */ jsxs(
|
|
240
|
+
Button_default,
|
|
241
|
+
{
|
|
242
|
+
ButtonType: "Primary" /* Solid */,
|
|
243
|
+
onClick: handleSearch,
|
|
244
|
+
className: "!rounded-xl !px-6 !py-3 sm:self-stretch",
|
|
245
|
+
children: [
|
|
246
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "h-5 w-5" }),
|
|
247
|
+
/* @__PURE__ */ jsx("span", { children: "Search" })
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
)
|
|
251
|
+
]
|
|
205
252
|
}
|
|
206
|
-
)
|
|
207
|
-
hasSortControls && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-
|
|
208
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium", children: "Sort by" }),
|
|
253
|
+
),
|
|
254
|
+
hasSortControls && /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-3 rounded-2xl border border-info bg-info-soft p-3 text-sm md:ml-auto md:w-auto md:min-w-72 md:self-stretch", children: [
|
|
209
255
|
/* @__PURE__ */ jsx(
|
|
256
|
+
"label",
|
|
257
|
+
{
|
|
258
|
+
htmlFor: "sortOptions",
|
|
259
|
+
className: "shrink-0 whitespace-nowrap font-medium",
|
|
260
|
+
children: "Sort by"
|
|
261
|
+
}
|
|
262
|
+
),
|
|
263
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 rounded-xl bg-default md:min-w-48", children: /* @__PURE__ */ jsx(
|
|
210
264
|
InputControl_default,
|
|
211
265
|
{
|
|
212
266
|
name: "sortOptions",
|
|
@@ -222,9 +276,9 @@ var DataBindingControls = ({
|
|
|
222
276
|
})
|
|
223
277
|
),
|
|
224
278
|
attributes: { placeholder: "Default" },
|
|
225
|
-
inputClasses: "!mt-0
|
|
279
|
+
inputClasses: "!mt-0 !rounded-xl !border-info !bg-default !px-4 !py-3 !text-body !shadow-sm focus:!border-primary focus:!ring-primary-base"
|
|
226
280
|
}
|
|
227
|
-
)
|
|
281
|
+
) })
|
|
228
282
|
] })
|
|
229
283
|
] }),
|
|
230
284
|
shouldShowFacets && facetGroups.length === 1 && /* @__PURE__ */ jsx("nav", { "aria-label": `${humanize(facetGroups[0][0])} filters`, children: renderFacetLinks(facetGroups[0][0], facetGroups[0][1]) }),
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
InputControlType_default
|
|
4
4
|
} from "./chunk-IEY342PD.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Button_default
|
|
7
|
+
} from "./chunk-4WMSS6CE.mjs";
|
|
8
|
+
import "./chunk-56HSDML5.mjs";
|
|
5
9
|
|
|
6
10
|
// src/components/pageRenderingEngine/nodes/DataBindingControls.tsx
|
|
7
11
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
@@ -44,6 +48,21 @@ var parseODataSearch = (value) => {
|
|
|
44
48
|
}
|
|
45
49
|
return trimmedValue;
|
|
46
50
|
};
|
|
51
|
+
var SearchIcon = ({ className = "" }) => /* @__PURE__ */ jsxs(
|
|
52
|
+
"svg",
|
|
53
|
+
{
|
|
54
|
+
"aria-hidden": "true",
|
|
55
|
+
className,
|
|
56
|
+
fill: "none",
|
|
57
|
+
viewBox: "0 0 24 24",
|
|
58
|
+
stroke: "currentColor",
|
|
59
|
+
strokeWidth: "2",
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ jsx("circle", { cx: "11", cy: "11", r: "7" }),
|
|
62
|
+
/* @__PURE__ */ jsx("path", { strokeLinecap: "round", d: "m20 20-4-4" })
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
);
|
|
47
66
|
var normalizeSortOption = (option) => {
|
|
48
67
|
const direction = option.direction.trim();
|
|
49
68
|
return {
|
|
@@ -143,19 +162,17 @@ var DataBindingControls = ({
|
|
|
143
162
|
},
|
|
144
163
|
[router]
|
|
145
164
|
);
|
|
146
|
-
|
|
165
|
+
const handleSearch = useCallback(async () => {
|
|
147
166
|
const trimmedSearchText = searchText.trim();
|
|
148
167
|
if (trimmedSearchText === currentSearch.trim()) {
|
|
149
|
-
return;
|
|
168
|
+
return { isSuccessful: true };
|
|
150
169
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}, 500);
|
|
158
|
-
return () => window.clearTimeout(timeout);
|
|
170
|
+
navigateWithoutReload(
|
|
171
|
+
getQueryUrl({
|
|
172
|
+
"$search": trimmedSearchText || void 0
|
|
173
|
+
})
|
|
174
|
+
);
|
|
175
|
+
return { isSuccessful: true };
|
|
159
176
|
}, [currentSearch, getQueryUrl, navigateWithoutReload, searchText]);
|
|
160
177
|
const hasFacetControls = showFacets && facetGroups.length > 0;
|
|
161
178
|
const hasSortControls = showSortOptions && normalizedSortOptions.length > 0;
|
|
@@ -197,20 +214,57 @@ var DataBindingControls = ({
|
|
|
197
214
|
] });
|
|
198
215
|
return /* @__PURE__ */ jsxs("div", { className: mode === "toolbar" ? "my-6" : "flex flex-col gap-2", children: [
|
|
199
216
|
shouldShowToolbar && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 md:flex-row md:items-center md:justify-between", children: [
|
|
200
|
-
showSearchBar && /* @__PURE__ */
|
|
201
|
-
|
|
217
|
+
showSearchBar && /* @__PURE__ */ jsxs(
|
|
218
|
+
"form",
|
|
202
219
|
{
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
220
|
+
role: "search",
|
|
221
|
+
className: "flex w-full flex-col gap-3 rounded-2xl border border-info bg-info-soft p-3 sm:flex-row sm:items-center md:min-w-0 md:flex-1",
|
|
222
|
+
onSubmit: (event) => {
|
|
223
|
+
event.preventDefault();
|
|
224
|
+
void handleSearch();
|
|
225
|
+
},
|
|
226
|
+
children: [
|
|
227
|
+
/* @__PURE__ */ jsxs("div", { className: "relative bg-default rounded-xl min-w-0 flex-1", children: [
|
|
228
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "pointer-events-none absolute left-4 top-1/2 z-10 h-5 w-5 -translate-y-1/2" }),
|
|
229
|
+
/* @__PURE__ */ jsx(
|
|
230
|
+
InputControl_default,
|
|
231
|
+
{
|
|
232
|
+
name: "searchText",
|
|
233
|
+
controlType: InputControlType_default.lineTextInput,
|
|
234
|
+
value: searchText,
|
|
235
|
+
callback: (updatedValues) => setSearchText(updatedValues.value),
|
|
236
|
+
attributes: {
|
|
237
|
+
placeholder: "Search discussions, topics, or keywords..."
|
|
238
|
+
},
|
|
239
|
+
inputClasses: "!mt-0 !rounded-xl !py-3 !pl-11 !pr-4 !shadow-sm"
|
|
240
|
+
}
|
|
241
|
+
)
|
|
242
|
+
] }),
|
|
243
|
+
/* @__PURE__ */ jsxs(
|
|
244
|
+
Button_default,
|
|
245
|
+
{
|
|
246
|
+
ButtonType: "Primary" /* Solid */,
|
|
247
|
+
onClick: handleSearch,
|
|
248
|
+
className: "!rounded-xl !px-6 !py-3 sm:self-stretch",
|
|
249
|
+
children: [
|
|
250
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "h-5 w-5" }),
|
|
251
|
+
/* @__PURE__ */ jsx("span", { children: "Search" })
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
)
|
|
255
|
+
]
|
|
209
256
|
}
|
|
210
|
-
)
|
|
211
|
-
hasSortControls && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-
|
|
212
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium", children: "Sort by" }),
|
|
257
|
+
),
|
|
258
|
+
hasSortControls && /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-3 rounded-2xl border border-info bg-info-soft p-3 text-sm md:ml-auto md:w-auto md:min-w-72 md:self-stretch", children: [
|
|
213
259
|
/* @__PURE__ */ jsx(
|
|
260
|
+
"label",
|
|
261
|
+
{
|
|
262
|
+
htmlFor: "sortOptions",
|
|
263
|
+
className: "shrink-0 whitespace-nowrap font-medium",
|
|
264
|
+
children: "Sort by"
|
|
265
|
+
}
|
|
266
|
+
),
|
|
267
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 rounded-xl bg-default md:min-w-48", children: /* @__PURE__ */ jsx(
|
|
214
268
|
InputControl_default,
|
|
215
269
|
{
|
|
216
270
|
name: "sortOptions",
|
|
@@ -226,9 +280,9 @@ var DataBindingControls = ({
|
|
|
226
280
|
})
|
|
227
281
|
),
|
|
228
282
|
attributes: { placeholder: "Default" },
|
|
229
|
-
inputClasses: "!mt-0
|
|
283
|
+
inputClasses: "!mt-0 !rounded-xl !border-info !bg-default !px-4 !py-3 !text-body !shadow-sm focus:!border-primary focus:!ring-primary-base"
|
|
230
284
|
}
|
|
231
|
-
)
|
|
285
|
+
) })
|
|
232
286
|
] })
|
|
233
287
|
] }),
|
|
234
288
|
shouldShowFacets && facetGroups.length === 1 && /* @__PURE__ */ jsx("nav", { "aria-label": `${humanize(facetGroups[0][0])} filters`, children: renderFacetLinks(facetGroups[0][0], facetGroups[0][1]) }),
|
|
@@ -282,10 +282,10 @@ var HlsPlayer = React.memo(
|
|
|
282
282
|
}, [isMobile, resetInactivityTimer]);
|
|
283
283
|
const posterSources = resolvedSources.filter((s) => s.media && s.posterUrl);
|
|
284
284
|
const fallbackPoster = posterUrl ?? resolvedSources.find((s) => !s.media)?.posterUrl ?? resolvedSources[0]?.posterUrl;
|
|
285
|
-
const playBtnSize = "clamp(
|
|
285
|
+
const playBtnSize = "clamp(40px, 6.5vmin, 68px)";
|
|
286
286
|
const iconBtnSize = "clamp(28px, 4.5vmin, 40px)";
|
|
287
287
|
const iconSvgSize = "clamp(14px, 2.5vmin, 20px)";
|
|
288
|
-
const playIconSize = "clamp(
|
|
288
|
+
const playIconSize = "clamp(18px, 3.2vmin, 32px)";
|
|
289
289
|
const iconButtonStyle = {
|
|
290
290
|
pointerEvents: isControlsVisible ? "auto" : "none",
|
|
291
291
|
width: iconBtnSize,
|
|
@@ -375,11 +375,24 @@ var HlsPlayer = React.memo(
|
|
|
375
375
|
),
|
|
376
376
|
/* @__PURE__ */ jsx("style", { children: `
|
|
377
377
|
.hls-play-btn {
|
|
378
|
-
|
|
379
|
-
|
|
378
|
+
transform: translateZ(0);
|
|
379
|
+
-webkit-transform: translateZ(0);
|
|
380
|
+
backface-visibility: hidden;
|
|
381
|
+
-webkit-backface-visibility: hidden;
|
|
382
|
+
transform-origin: center center;
|
|
383
|
+
transition: transform 0.24s cubic-bezier(0.25, 1, 0.5, 1),
|
|
384
|
+
box-shadow 0.24s cubic-bezier(0.25, 1, 0.5, 1),
|
|
385
|
+
background-color 0.2s ease;
|
|
380
386
|
}
|
|
381
387
|
.hls-play-btn:hover {
|
|
382
|
-
transform: scale(1.
|
|
388
|
+
transform: scale(1.05) translateZ(0);
|
|
389
|
+
-webkit-transform: scale(1.05) translateZ(0);
|
|
390
|
+
background-color: #ffffff !important;
|
|
391
|
+
box-shadow: 0 12px 28px -4px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.9), inset 0 1px 1px #ffffff !important;
|
|
392
|
+
}
|
|
393
|
+
.hls-play-btn:active {
|
|
394
|
+
transform: scale(0.96) translateZ(0);
|
|
395
|
+
-webkit-transform: scale(0.96) translateZ(0);
|
|
383
396
|
}
|
|
384
397
|
` }),
|
|
385
398
|
isBuffering && /* @__PURE__ */ jsxs(
|
|
@@ -393,51 +406,39 @@ var HlsPlayer = React.memo(
|
|
|
393
406
|
to { transform: rotate(360deg); }
|
|
394
407
|
}
|
|
395
408
|
.hls-spinner {
|
|
396
|
-
animation: hls-spin
|
|
397
|
-
filter: drop-shadow(0
|
|
398
|
-
drop-shadow(0 0 12px rgba(143, 38, 237, 0.5));
|
|
409
|
+
animation: hls-spin 0.85s linear infinite;
|
|
410
|
+
filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.5));
|
|
399
411
|
}
|
|
400
412
|
` }),
|
|
401
413
|
/* @__PURE__ */ jsxs(
|
|
402
414
|
"svg",
|
|
403
415
|
{
|
|
404
416
|
className: "hls-spinner",
|
|
405
|
-
width: "clamp(44px, 8vmin,
|
|
406
|
-
height: "clamp(44px, 8vmin,
|
|
407
|
-
viewBox: "0 0
|
|
417
|
+
width: "clamp(44px, 8vmin, 64px)",
|
|
418
|
+
height: "clamp(44px, 8vmin, 64px)",
|
|
419
|
+
viewBox: "0 0 48 48",
|
|
408
420
|
fill: "none",
|
|
409
421
|
xmlns: "http://www.w3.org/2000/svg",
|
|
410
422
|
children: [
|
|
411
|
-
/* @__PURE__ */ jsx(
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
x: cx - 2.2,
|
|
431
|
-
y: cy - 5.5,
|
|
432
|
-
width: 4.4,
|
|
433
|
-
height: 11,
|
|
434
|
-
rx: 2.2,
|
|
435
|
-
fill: `rgba(${r1},${g1},${b1},${opacity})`,
|
|
436
|
-
transform: `rotate(${angle}, ${cx}, ${cy})`
|
|
437
|
-
},
|
|
438
|
-
i
|
|
439
|
-
);
|
|
440
|
-
})
|
|
423
|
+
/* @__PURE__ */ jsx(
|
|
424
|
+
"circle",
|
|
425
|
+
{
|
|
426
|
+
cx: "24",
|
|
427
|
+
cy: "24",
|
|
428
|
+
r: "18",
|
|
429
|
+
stroke: "rgba(255, 255, 255, 0.25)",
|
|
430
|
+
strokeWidth: "3.5"
|
|
431
|
+
}
|
|
432
|
+
),
|
|
433
|
+
/* @__PURE__ */ jsx(
|
|
434
|
+
"path",
|
|
435
|
+
{
|
|
436
|
+
d: "M24 6a18 18 0 0 1 18 18",
|
|
437
|
+
stroke: "#ffffff",
|
|
438
|
+
strokeWidth: "3.5",
|
|
439
|
+
strokeLinecap: "round"
|
|
440
|
+
}
|
|
441
|
+
)
|
|
441
442
|
]
|
|
442
443
|
}
|
|
443
444
|
)
|
|
@@ -452,7 +453,7 @@ var HlsPlayer = React.memo(
|
|
|
452
453
|
opacity: isControlsVisible ? 1 : 0,
|
|
453
454
|
transition: "opacity 0.3s ease"
|
|
454
455
|
},
|
|
455
|
-
children: /* @__PURE__ */
|
|
456
|
+
children: /* @__PURE__ */ jsx(
|
|
456
457
|
"button",
|
|
457
458
|
{
|
|
458
459
|
type: "button",
|
|
@@ -468,83 +469,58 @@ var HlsPlayer = React.memo(
|
|
|
468
469
|
width: playBtnSize,
|
|
469
470
|
height: playBtnSize,
|
|
470
471
|
borderRadius: "50%",
|
|
471
|
-
border: "
|
|
472
|
+
border: "1px solid rgba(255, 255, 255, 0.8)",
|
|
472
473
|
cursor: "pointer",
|
|
473
474
|
display: "flex",
|
|
474
475
|
alignItems: "center",
|
|
475
476
|
justifyContent: "center",
|
|
476
|
-
background: "
|
|
477
|
+
background: "rgba(255, 255, 255, 0.92)",
|
|
478
|
+
backdropFilter: "blur(12px)",
|
|
479
|
+
WebkitBackdropFilter: "blur(12px)",
|
|
480
|
+
boxShadow: "0 10px 30px -5px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(0, 0, 0, 0.12), inset 0 1px 1px rgba(255, 255, 255, 1)",
|
|
477
481
|
flexShrink: 0,
|
|
478
|
-
position: "relative"
|
|
479
|
-
overflow: "hidden"
|
|
482
|
+
position: "relative"
|
|
480
483
|
},
|
|
481
|
-
children:
|
|
482
|
-
/*
|
|
483
|
-
|
|
484
|
+
children: isPlaying ? (
|
|
485
|
+
/* Pause — clean rounded dual bars */
|
|
486
|
+
/* @__PURE__ */ jsxs(
|
|
487
|
+
"svg",
|
|
484
488
|
{
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
489
|
+
width: playIconSize,
|
|
490
|
+
height: playIconSize,
|
|
491
|
+
viewBox: "0 0 24 24",
|
|
492
|
+
fill: "none",
|
|
493
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
494
|
+
children: [
|
|
495
|
+
/* @__PURE__ */ jsx("rect", { x: "6.5", y: "4.5", width: "3.5", height: "15", rx: "1.75", fill: "#0f172a" }),
|
|
496
|
+
/* @__PURE__ */ jsx("rect", { x: "14", y: "4.5", width: "3.5", height: "15", rx: "1.75", fill: "#0f172a" })
|
|
497
|
+
]
|
|
492
498
|
}
|
|
493
|
-
)
|
|
499
|
+
)
|
|
500
|
+
) : (
|
|
501
|
+
/* Play — clean rounded triangle with standard optical balance */
|
|
494
502
|
/* @__PURE__ */ jsx(
|
|
495
|
-
"
|
|
503
|
+
"svg",
|
|
496
504
|
{
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
505
|
+
width: playIconSize,
|
|
506
|
+
height: playIconSize,
|
|
507
|
+
viewBox: "0 0 24 24",
|
|
508
|
+
fill: "none",
|
|
509
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
510
|
+
children: /* @__PURE__ */ jsx(
|
|
511
|
+
"polygon",
|
|
512
|
+
{
|
|
513
|
+
points: "6 3 20 12 6 21 6 3",
|
|
514
|
+
fill: "#0f172a",
|
|
515
|
+
stroke: "#0f172a",
|
|
516
|
+
strokeWidth: "2",
|
|
517
|
+
strokeLinejoin: "round",
|
|
518
|
+
strokeLinecap: "round"
|
|
519
|
+
}
|
|
520
|
+
)
|
|
504
521
|
}
|
|
505
|
-
),
|
|
506
|
-
isPlaying ? (
|
|
507
|
-
/* Pause — two rounded bars, sized to match play icon proportions */
|
|
508
|
-
/* @__PURE__ */ jsxs(
|
|
509
|
-
"svg",
|
|
510
|
-
{
|
|
511
|
-
width: playIconSize,
|
|
512
|
-
height: playIconSize,
|
|
513
|
-
viewBox: "0 0 20 20",
|
|
514
|
-
fill: "none",
|
|
515
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
516
|
-
children: [
|
|
517
|
-
/* @__PURE__ */ jsx("rect", { x: "3.5", y: "2.5", width: "4.5", height: "15", rx: "1.5", fill: "white" }),
|
|
518
|
-
/* @__PURE__ */ jsx("rect", { x: "12", y: "2.5", width: "4.5", height: "15", rx: "1.5", fill: "white" })
|
|
519
|
-
]
|
|
520
|
-
}
|
|
521
|
-
)
|
|
522
|
-
) : (
|
|
523
|
-
/*
|
|
524
|
-
* Play — rounded-corner triangle from the provided SVG path.
|
|
525
|
-
* Original viewBox is "0,0,240,250" (with a 5.33x scale group inside).
|
|
526
|
-
* We flatten the transform: effective drawing area is 240×250 units.
|
|
527
|
-
*/
|
|
528
|
-
/* @__PURE__ */ jsx(
|
|
529
|
-
"svg",
|
|
530
|
-
{
|
|
531
|
-
width: playIconSize,
|
|
532
|
-
height: playIconSize,
|
|
533
|
-
viewBox: "0 0 240 250",
|
|
534
|
-
fill: "none",
|
|
535
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
536
|
-
style: { transform: "translateX(4%)" },
|
|
537
|
-
children: /* @__PURE__ */ jsx(
|
|
538
|
-
"path",
|
|
539
|
-
{
|
|
540
|
-
d: "M60.78 21.93C48.57 22.41 37.33 32.78 37.33 45.87v164.26c0 17.92 19.96 29.67 35.64 20.99l148.31-82.17c16.12-8.93 16.12-33.04 0-41.97L72.97 24.81c-3.92-2.17-8.11-3.07-12.19-2.88z",
|
|
541
|
-
fill: "white"
|
|
542
|
-
}
|
|
543
|
-
)
|
|
544
|
-
}
|
|
545
|
-
)
|
|
546
522
|
)
|
|
547
|
-
|
|
523
|
+
)
|
|
548
524
|
}
|
|
549
525
|
)
|
|
550
526
|
}
|