@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.
@@ -3,10 +3,14 @@
3
3
  "use client";
4
4
  import {
5
5
  InputControl_default
6
- } from "./chunk-YRNDRPUE.mjs";
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
- useEffect(() => {
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
- const timeout = window.setTimeout(() => {
148
- navigateWithoutReload(
149
- getQueryUrl({
150
- "$search": trimmedSearchText || void 0
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__ */ jsx("div", { className: "w-full max-w-xl", children: /* @__PURE__ */ jsx(
197
- InputControl_default,
213
+ showSearchBar && /* @__PURE__ */ jsxs(
214
+ "form",
198
215
  {
199
- name: "searchText",
200
- controlType: InputControlType_default.lineTextInput,
201
- value: searchText,
202
- callback: (updatedValues) => setSearchText(updatedValues.value),
203
- attributes: { placeholder: "Search" },
204
- inputClasses: "!mt-0"
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-2 text-sm", children: [
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 min-w-44"
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
- useEffect(() => {
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
- const timeout = window.setTimeout(() => {
152
- navigateWithoutReload(
153
- getQueryUrl({
154
- "$search": trimmedSearchText || void 0
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__ */ jsx("div", { className: "w-full max-w-xl", children: /* @__PURE__ */ jsx(
201
- InputControl_default,
217
+ showSearchBar && /* @__PURE__ */ jsxs(
218
+ "form",
202
219
  {
203
- name: "searchText",
204
- controlType: InputControlType_default.lineTextInput,
205
- value: searchText,
206
- callback: (updatedValues) => setSearchText(updatedValues.value),
207
- attributes: { placeholder: "Search" },
208
- inputClasses: "!mt-0"
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-2 text-sm", children: [
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 min-w-44"
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(44px, 8vmin, 80px)";
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(24px, 4.5vmin, 44px)";
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
- will-change: transform;
379
- transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
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.08);
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 1s linear infinite;
397
- filter: drop-shadow(0 0 6px rgba(243, 31, 73, 0.7))
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, 72px)",
406
- height: "clamp(44px, 8vmin, 72px)",
407
- viewBox: "0 0 72 72",
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("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: "hls-arc-grad", x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
412
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "rgba(243,31,73,0)" }),
413
- /* @__PURE__ */ jsx("stop", { offset: "40%", stopColor: "rgba(243,31,73,1)" }),
414
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "rgba(143,38,237,1)" })
415
- ] }) }),
416
- Array.from({ length: 18 }).map((_, i) => {
417
- const angle = i / 18 * 360;
418
- const opacity = 0.15 + i / 17 * 0.85;
419
- const rad = (angle - 90) * (Math.PI / 180);
420
- const r = 30;
421
- const cx = 36 + r * Math.cos(rad);
422
- const cy = 36 + r * Math.sin(rad);
423
- const t = i / 17;
424
- const r1 = Math.round(243 * (1 - t) + 143 * t);
425
- const g1 = Math.round(31 * (1 - t) + 38 * t);
426
- const b1 = Math.round(73 * (1 - t) + 237 * t);
427
- return /* @__PURE__ */ jsx(
428
- "rect",
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__ */ jsxs(
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: "none",
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: "linear-gradient(50deg, rgba(243, 31, 73, 1) 0%, rgba(143, 38, 237, 1) 100%)",
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
- /* @__PURE__ */ jsx(
483
- "div",
484
+ children: isPlaying ? (
485
+ /* Pause — clean rounded dual bars */
486
+ /* @__PURE__ */ jsxs(
487
+ "svg",
484
488
  {
485
- style: {
486
- position: "absolute",
487
- inset: 0,
488
- borderRadius: "50%",
489
- background: "radial-gradient(ellipse 70% 55% at 30% 25%, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.08) 55%, transparent 75%)",
490
- pointerEvents: "none"
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
- "div",
503
+ "svg",
496
504
  {
497
- style: {
498
- position: "absolute",
499
- inset: 0,
500
- borderRadius: "50%",
501
- background: "radial-gradient(ellipse 50% 40% at 72% 75%, rgba(255,255,255,0.18) 0%, transparent 70%)",
502
- pointerEvents: "none"
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
  }