@xsolla/xui-pagination 0.89.0 → 0.91.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/web/index.js CHANGED
@@ -235,54 +235,10 @@ var Text = ({
235
235
  );
236
236
  };
237
237
 
238
- // ../primitives-web/src/Spinner.tsx
238
+ // ../primitives-web/src/Icon.tsx
239
239
  var import_styled_components3 = __toESM(require("styled-components"));
240
240
  var import_jsx_runtime3 = require("react/jsx-runtime");
241
- var rotate = import_styled_components3.keyframes`
242
- from {
243
- transform: rotate(0deg);
244
- }
245
- to {
246
- transform: rotate(360deg);
247
- }
248
- `;
249
- var StyledSpinner = import_styled_components3.default.div`
250
- width: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
251
- height: ${(props) => typeof props.size === "number" ? `${props.size}px` : props.size || "24px"};
252
- border: ${(props) => props.strokeWidth || 2}px solid
253
- ${(props) => props.color || "currentColor"};
254
- border-bottom-color: transparent;
255
- border-radius: 50%;
256
- display: inline-block;
257
- box-sizing: border-box;
258
- animation: ${rotate} 1s linear infinite;
259
- `;
260
- var Spinner = ({
261
- role = "status",
262
- "aria-label": ariaLabel,
263
- "aria-live": ariaLive = "polite",
264
- "aria-describedby": ariaDescribedBy,
265
- testID,
266
- ...props
267
- }) => {
268
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
269
- StyledSpinner,
270
- {
271
- role,
272
- "aria-label": ariaLabel,
273
- "aria-live": ariaLive,
274
- "aria-describedby": ariaDescribedBy,
275
- "data-testid": testID,
276
- ...props
277
- }
278
- );
279
- };
280
- Spinner.displayName = "Spinner";
281
-
282
- // ../primitives-web/src/Icon.tsx
283
- var import_styled_components4 = __toESM(require("styled-components"));
284
- var import_jsx_runtime4 = require("react/jsx-runtime");
285
- var StyledIcon = import_styled_components4.default.div`
241
+ var StyledIcon = import_styled_components3.default.div`
286
242
  display: flex;
287
243
  align-items: center;
288
244
  justify-content: center;
@@ -298,197 +254,13 @@ var StyledIcon = import_styled_components4.default.div`
298
254
  }
299
255
  `;
300
256
  var Icon = ({ children, ...props }) => {
301
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(StyledIcon, { ...props, children });
257
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(StyledIcon, { ...props, children });
302
258
  };
303
259
 
304
- // ../primitives-web/src/Divider.tsx
305
- var import_styled_components5 = __toESM(require("styled-components"));
306
- var import_jsx_runtime5 = require("react/jsx-runtime");
307
- var StyledDivider = import_styled_components5.default.div`
308
- background-color: ${(props) => props.dashStroke ? "transparent" : props.color || "rgba(255, 255, 255, 0.15)"};
309
- width: ${(props) => props.vertical ? typeof props.width === "number" ? `${props.width}px` : props.width || "1px" : "100%"};
310
- height: ${(props) => props.vertical ? "100%" : typeof props.height === "number" ? `${props.height}px` : props.height || "1px"};
311
-
312
- ${(props) => props.dashStroke && `
313
- border-style: dashed;
314
- border-color: ${props.color || "rgba(255, 255, 255, 0.15)"};
315
- border-width: 0;
316
- ${props.vertical ? `
317
- border-left-width: ${typeof props.width === "number" ? `${props.width}px` : props.width || "1px"};
318
- height: 100%;
319
- ` : `
320
- border-top-width: ${typeof props.height === "number" ? `${props.height}px` : props.height || "1px"};
321
- width: 100%;
322
- `}
323
- `}
324
- `;
325
-
326
- // ../primitives-web/src/Input.tsx
327
- var import_react2 = require("react");
328
- var import_styled_components6 = __toESM(require("styled-components"));
329
- var import_jsx_runtime6 = require("react/jsx-runtime");
330
- var StyledInput = import_styled_components6.default.input`
331
- background: transparent;
332
- border: none;
333
- outline: none;
334
- width: 100%;
335
- height: 100%;
336
- padding: 0;
337
- margin: 0;
338
- color: ${(props) => props.color || "inherit"};
339
- font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
340
- font-family: inherit;
341
- text-align: inherit;
342
-
343
- &::placeholder {
344
- color: ${(props) => props.placeholderTextColor || "rgba(255, 255, 255, 0.5)"};
345
- }
346
-
347
- &:disabled {
348
- cursor: not-allowed;
349
- }
350
- `;
351
- var InputPrimitive = (0, import_react2.forwardRef)(
352
- ({
353
- value,
354
- placeholder,
355
- onChange,
356
- onChangeText,
357
- onFocus,
358
- onBlur,
359
- onKeyDown,
360
- disabled,
361
- secureTextEntry,
362
- style,
363
- color,
364
- fontSize,
365
- placeholderTextColor,
366
- maxLength,
367
- name,
368
- type,
369
- inputMode,
370
- autoComplete,
371
- id,
372
- "aria-invalid": ariaInvalid,
373
- "aria-describedby": ariaDescribedBy,
374
- "aria-labelledby": ariaLabelledBy,
375
- "aria-label": ariaLabel,
376
- "aria-disabled": ariaDisabled,
377
- "data-testid": dataTestId,
378
- ...rest
379
- }, ref) => {
380
- const handleChange = (e) => {
381
- if (onChange) {
382
- onChange(e);
383
- }
384
- if (onChangeText) {
385
- onChangeText(e.target.value);
386
- }
387
- };
388
- const inputValue = value !== void 0 ? value : "";
389
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
390
- StyledInput,
391
- {
392
- ref,
393
- id,
394
- value: inputValue,
395
- name,
396
- placeholder,
397
- onChange: handleChange,
398
- onFocus,
399
- onBlur,
400
- onKeyDown,
401
- disabled,
402
- type: secureTextEntry ? "password" : type || "text",
403
- inputMode,
404
- autoComplete,
405
- style,
406
- color,
407
- fontSize,
408
- placeholderTextColor,
409
- maxLength,
410
- "aria-invalid": ariaInvalid,
411
- "aria-describedby": ariaDescribedBy,
412
- "aria-labelledby": ariaLabelledBy,
413
- "aria-label": ariaLabel,
414
- "aria-disabled": ariaDisabled,
415
- "data-testid": dataTestId,
416
- ...rest
417
- }
418
- );
419
- }
420
- );
421
- InputPrimitive.displayName = "InputPrimitive";
422
-
423
- // ../primitives-web/src/TextArea.tsx
424
- var import_react3 = require("react");
425
- var import_styled_components7 = __toESM(require("styled-components"));
426
- var import_jsx_runtime7 = require("react/jsx-runtime");
427
- var StyledTextArea = import_styled_components7.default.textarea`
428
- background: transparent;
429
- border: none;
430
- outline: none;
431
- width: 100%;
432
- height: 100%;
433
- padding: 0;
434
- margin: 0;
435
- color: ${(props) => props.color || "inherit"};
436
- font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
437
- font-family: inherit;
438
- text-align: inherit;
439
- resize: none;
440
-
441
- &::placeholder {
442
- color: ${(props) => props.placeholderTextColor || "rgba(255, 255, 255, 0.5)"};
443
- }
444
-
445
- &:disabled {
446
- cursor: not-allowed;
447
- }
448
- `;
449
- var TextAreaPrimitive = (0, import_react3.forwardRef)(
450
- ({
451
- value,
452
- placeholder,
453
- onChangeText,
454
- onFocus,
455
- onBlur,
456
- onKeyDown,
457
- disabled,
458
- style,
459
- color,
460
- fontSize,
461
- placeholderTextColor,
462
- maxLength,
463
- rows
464
- }, ref) => {
465
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
466
- StyledTextArea,
467
- {
468
- ref,
469
- value,
470
- placeholder,
471
- onChange: (e) => onChangeText?.(e.target.value),
472
- onFocus,
473
- onBlur,
474
- onKeyDown,
475
- disabled,
476
- style,
477
- color,
478
- fontSize,
479
- placeholderTextColor,
480
- maxLength,
481
- rows
482
- }
483
- );
484
- }
485
- );
486
- TextAreaPrimitive.displayName = "TextAreaPrimitive";
487
-
488
260
  // src/Pagination.tsx
489
261
  var import_xui_core = require("@xsolla/xui-core");
490
- var import_jsx_runtime8 = require("react/jsx-runtime");
491
- var ChevronLeft = ({ size }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
262
+ var import_jsx_runtime4 = require("react/jsx-runtime");
263
+ var ChevronLeft = ({ size }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
492
264
  "svg",
493
265
  {
494
266
  viewBox: "0 0 24 24",
@@ -499,10 +271,10 @@ var ChevronLeft = ({ size }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
499
271
  strokeWidth: "2",
500
272
  strokeLinecap: "round",
501
273
  strokeLinejoin: "round",
502
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("polyline", { points: "15 18 9 12 15 6" })
274
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("polyline", { points: "15 18 9 12 15 6" })
503
275
  }
504
276
  );
505
- var ChevronRight = ({ size }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
277
+ var ChevronRight = ({ size }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
506
278
  "svg",
507
279
  {
508
280
  viewBox: "0 0 24 24",
@@ -513,7 +285,7 @@ var ChevronRight = ({ size }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
513
285
  strokeWidth: "2",
514
286
  strokeLinecap: "round",
515
287
  strokeLinejoin: "round",
516
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("polyline", { points: "9 18 15 12 9 6" })
288
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("polyline", { points: "9 18 15 12 9 6" })
517
289
  }
518
290
  );
519
291
  var Pagination = ({
@@ -591,7 +363,7 @@ var Pagination = ({
591
363
  const pageNumbers = getPageNumbers();
592
364
  const iconSize = iconSizeMap[size];
593
365
  const itemSize = itemSizeMap[size];
594
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
366
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
595
367
  Box,
596
368
  {
597
369
  flexDirection: "row",
@@ -603,7 +375,7 @@ var Pagination = ({
603
375
  backgroundColor,
604
376
  testID,
605
377
  children: [
606
- showNavigation && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
378
+ showNavigation && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
607
379
  Box,
608
380
  {
609
381
  width: itemSize,
@@ -617,19 +389,19 @@ var Pagination = ({
617
389
  hoverStyle: !(disabled || currentPage === 1) ? { backgroundColor: theme.colors.overlay.mono } : void 0,
618
390
  role: "button",
619
391
  "aria-label": "Previous page",
620
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon, { size: iconSize, color: theme.colors.content.primary, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronLeft, { size: iconSize }) })
392
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { size: iconSize, color: theme.colors.content.primary, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ChevronLeft, { size: iconSize }) })
621
393
  }
622
394
  ),
623
395
  pageNumbers.map((page, index) => {
624
396
  if (page === "ellipsis") {
625
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
397
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
626
398
  Box,
627
399
  {
628
400
  width: itemSize,
629
401
  height: itemSize,
630
402
  alignItems: "center",
631
403
  justifyContent: "center",
632
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
404
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
633
405
  Text,
634
406
  {
635
407
  color: theme.colors.content.tertiary,
@@ -643,7 +415,7 @@ var Pagination = ({
643
415
  );
644
416
  }
645
417
  const isActive = page === currentPage;
646
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
418
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
647
419
  Box,
648
420
  {
649
421
  width: itemSize,
@@ -659,7 +431,7 @@ var Pagination = ({
659
431
  role: "button",
660
432
  "aria-label": `Go to page ${page}`,
661
433
  "aria-current": isActive ? "page" : void 0,
662
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
434
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
663
435
  Text,
664
436
  {
665
437
  color: isActive ? theme.colors.content.on.brand : theme.colors.content.primary,
@@ -672,7 +444,7 @@ var Pagination = ({
672
444
  page
673
445
  );
674
446
  }),
675
- showNavigation && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
447
+ showNavigation && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
676
448
  Box,
677
449
  {
678
450
  width: itemSize,
@@ -686,7 +458,7 @@ var Pagination = ({
686
458
  hoverStyle: !(disabled || currentPage === totalPages) ? { backgroundColor: theme.colors.overlay.mono } : void 0,
687
459
  role: "button",
688
460
  "aria-label": "Next page",
689
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Icon, { size: iconSize, color: theme.colors.content.primary, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronRight, { size: iconSize }) })
461
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { size: iconSize, color: theme.colors.content.primary, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ChevronRight, { size: iconSize }) })
690
462
  }
691
463
  )
692
464
  ]
package/web/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx","../../../primitives-web/src/Box.tsx","../../../primitives-web/src/Text.tsx","../../../primitives-web/src/Spinner.tsx","../../../primitives-web/src/Icon.tsx","../../../primitives-web/src/Divider.tsx","../../../primitives-web/src/Input.tsx","../../../primitives-web/src/TextArea.tsx","../../src/Pagination.tsx"],"sourcesContent":["export * from \"./Pagination\";\nexport * from \"./types\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { BoxProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledBox = styled.div<BoxProps>`\n display: flex;\n box-sizing: border-box;\n background-color: ${(props) => props.backgroundColor || \"transparent\"};\n border-color: ${(props) => props.borderColor || \"transparent\"};\n border-width: ${(props) =>\n typeof props.borderWidth === \"number\"\n ? `${props.borderWidth}px`\n : props.borderWidth || 0};\n\n ${(props) =>\n props.borderBottomWidth !== undefined &&\n `\n border-bottom-width: ${typeof props.borderBottomWidth === \"number\" ? `${props.borderBottomWidth}px` : props.borderBottomWidth};\n border-bottom-color: ${props.borderBottomColor || props.borderColor || \"transparent\"};\n border-bottom-style: solid;\n `}\n ${(props) =>\n props.borderTopWidth !== undefined &&\n `\n border-top-width: ${typeof props.borderTopWidth === \"number\" ? `${props.borderTopWidth}px` : props.borderTopWidth};\n border-top-color: ${props.borderTopColor || props.borderColor || \"transparent\"};\n border-top-style: solid;\n `}\n ${(props) =>\n props.borderLeftWidth !== undefined &&\n `\n border-left-width: ${typeof props.borderLeftWidth === \"number\" ? `${props.borderLeftWidth}px` : props.borderLeftWidth};\n border-left-color: ${props.borderLeftColor || props.borderColor || \"transparent\"};\n border-left-style: solid;\n `}\n ${(props) =>\n props.borderRightWidth !== undefined &&\n `\n border-right-width: ${typeof props.borderRightWidth === \"number\" ? `${props.borderRightWidth}px` : props.borderRightWidth};\n border-right-color: ${props.borderRightColor || props.borderColor || \"transparent\"};\n border-right-style: solid;\n `}\n\n border-style: ${(props) =>\n props.borderStyle ||\n (props.borderWidth ||\n props.borderBottomWidth ||\n props.borderTopWidth ||\n props.borderLeftWidth ||\n props.borderRightWidth\n ? \"solid\"\n : \"none\")};\n border-radius: ${(props) =>\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius || 0};\n height: ${(props) =>\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"auto\"};\n width: ${(props) =>\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"auto\"};\n min-width: ${(props) =>\n typeof props.minWidth === \"number\"\n ? `${props.minWidth}px`\n : props.minWidth || \"auto\"};\n min-height: ${(props) =>\n typeof props.minHeight === \"number\"\n ? `${props.minHeight}px`\n : props.minHeight || \"auto\"};\n\n padding: ${(props) =>\n typeof props.padding === \"number\"\n ? `${props.padding}px`\n : props.padding || 0};\n ${(props) =>\n props.paddingHorizontal &&\n `\n padding-left: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n padding-right: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n `}\n ${(props) =>\n props.paddingVertical &&\n `\n padding-top: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n padding-bottom: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n `}\n ${(props) =>\n props.paddingTop !== undefined &&\n `padding-top: ${typeof props.paddingTop === \"number\" ? `${props.paddingTop}px` : props.paddingTop};`}\n ${(props) =>\n props.paddingBottom !== undefined &&\n `padding-bottom: ${typeof props.paddingBottom === \"number\" ? `${props.paddingBottom}px` : props.paddingBottom};`}\n ${(props) =>\n props.paddingLeft !== undefined &&\n `padding-left: ${typeof props.paddingLeft === \"number\" ? `${props.paddingLeft}px` : props.paddingLeft};`}\n ${(props) =>\n props.paddingRight !== undefined &&\n `padding-right: ${typeof props.paddingRight === \"number\" ? `${props.paddingRight}px` : props.paddingRight};`}\n\n margin: ${(props) =>\n typeof props.margin === \"number\" ? `${props.margin}px` : props.margin || 0};\n ${(props) =>\n props.marginTop !== undefined &&\n `margin-top: ${typeof props.marginTop === \"number\" ? `${props.marginTop}px` : props.marginTop};`}\n ${(props) =>\n props.marginBottom !== undefined &&\n `margin-bottom: ${typeof props.marginBottom === \"number\" ? `${props.marginBottom}px` : props.marginBottom};`}\n ${(props) =>\n props.marginLeft !== undefined &&\n `margin-left: ${typeof props.marginLeft === \"number\" ? `${props.marginLeft}px` : props.marginLeft};`}\n ${(props) =>\n props.marginRight !== undefined &&\n `margin-right: ${typeof props.marginRight === \"number\" ? `${props.marginRight}px` : props.marginRight};`}\n\n flex-direction: ${(props) => props.flexDirection || \"column\"};\n flex-wrap: ${(props) => props.flexWrap || \"nowrap\"};\n align-items: ${(props) => props.alignItems || \"stretch\"};\n justify-content: ${(props) => props.justifyContent || \"flex-start\"};\n cursor: ${(props) =>\n props.cursor\n ? props.cursor\n : props.onClick || props.onPress\n ? \"pointer\"\n : \"inherit\"};\n position: ${(props) => props.position || \"static\"};\n top: ${(props) =>\n typeof props.top === \"number\" ? `${props.top}px` : props.top};\n bottom: ${(props) =>\n typeof props.bottom === \"number\" ? `${props.bottom}px` : props.bottom};\n left: ${(props) =>\n typeof props.left === \"number\" ? `${props.left}px` : props.left};\n right: ${(props) =>\n typeof props.right === \"number\" ? `${props.right}px` : props.right};\n flex: ${(props) => props.flex};\n flex-shrink: ${(props) => props.flexShrink ?? 1};\n gap: ${(props) =>\n typeof props.gap === \"number\" ? `${props.gap}px` : props.gap || 0};\n align-self: ${(props) => props.alignSelf || \"auto\"};\n overflow: ${(props) => props.overflow || \"visible\"};\n overflow-x: ${(props) => props.overflowX || \"visible\"};\n overflow-y: ${(props) => props.overflowY || \"visible\"};\n z-index: ${(props) => props.zIndex};\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n pointer-events: ${(props) => (props.disabled ? \"none\" : \"auto\")};\n\n &:hover {\n ${(props) =>\n props.hoverStyle?.backgroundColor &&\n `background-color: ${props.hoverStyle.backgroundColor};`}\n ${(props) =>\n props.hoverStyle?.borderColor &&\n `border-color: ${props.hoverStyle.borderColor};`}\n }\n\n &:active {\n ${(props) =>\n props.pressStyle?.backgroundColor &&\n `background-color: ${props.pressStyle.backgroundColor};`}\n }\n`;\n\nexport const Box = React.forwardRef<\n HTMLDivElement | HTMLButtonElement,\n BoxProps\n>(\n (\n {\n children,\n onPress,\n onKeyDown,\n onKeyUp,\n role,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-current\": ariaCurrent,\n \"aria-disabled\": ariaDisabled,\n \"aria-live\": ariaLive,\n \"aria-busy\": ariaBusy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-expanded\": ariaExpanded,\n \"aria-haspopup\": ariaHasPopup,\n \"aria-pressed\": ariaPressed,\n \"aria-controls\": ariaControls,\n tabIndex,\n as,\n src,\n alt,\n type,\n disabled,\n id,\n ...props\n },\n ref\n ) => {\n // Handle as=\"img\" for rendering images with proper border-radius\n if (as === \"img\" && src) {\n return (\n <img\n src={src}\n alt={alt || \"\"}\n style={{\n display: \"block\",\n objectFit: \"cover\",\n width:\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width,\n height:\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height,\n borderRadius:\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius,\n position: props.position,\n top: typeof props.top === \"number\" ? `${props.top}px` : props.top,\n left:\n typeof props.left === \"number\" ? `${props.left}px` : props.left,\n right:\n typeof props.right === \"number\"\n ? `${props.right}px`\n : props.right,\n bottom:\n typeof props.bottom === \"number\"\n ? `${props.bottom}px`\n : props.bottom,\n }}\n />\n );\n }\n\n return (\n <StyledBox\n ref={ref}\n as={as}\n id={id}\n type={as === \"button\" ? type || \"button\" : undefined}\n disabled={as === \"button\" ? disabled : undefined}\n onClick={onPress}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n role={role}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-current={ariaCurrent}\n aria-disabled={ariaDisabled}\n aria-busy={ariaBusy}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-pressed={ariaPressed}\n aria-controls={ariaControls}\n aria-live={ariaLive}\n tabIndex={tabIndex !== undefined ? tabIndex : undefined}\n {...props}\n >\n {children}\n </StyledBox>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { TextProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledText = styled.span<TextProps>`\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-weight: ${(props) => props.fontWeight || \"normal\"};\n font-family: ${(props) =>\n props.fontFamily ||\n '\"Pilat Wide Bold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important'};\n line-height: ${(props) =>\n typeof props.lineHeight === \"number\"\n ? `${props.lineHeight}px`\n : props.lineHeight || \"inherit\"};\n white-space: ${(props) => props.whiteSpace || \"normal\"};\n text-align: ${(props) => props.textAlign || \"inherit\"};\n text-decoration: ${(props) => props.textDecoration || \"none\"};\n`;\n\nexport const Text: React.FC<TextProps> = ({\n style,\n className,\n id,\n role,\n ...props\n}) => {\n return (\n <StyledText\n {...props}\n style={style}\n className={className}\n id={id}\n role={role}\n />\n );\n};\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport type { SpinnerProps } from \"@xsolla/xui-primitives-core\";\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst StyledSpinner = styled.div<SpinnerProps>`\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n border: ${(props) => props.strokeWidth || 2}px solid\n ${(props) => props.color || \"currentColor\"};\n border-bottom-color: transparent;\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: ${rotate} 1s linear infinite;\n`;\n\nexport const Spinner: React.FC<SpinnerProps> = ({\n role = \"status\",\n \"aria-label\": ariaLabel,\n \"aria-live\": ariaLive = \"polite\",\n \"aria-describedby\": ariaDescribedBy,\n testID,\n ...props\n}) => {\n return (\n <StyledSpinner\n role={role}\n aria-label={ariaLabel}\n aria-live={ariaLive}\n aria-describedby={ariaDescribedBy}\n data-testid={testID}\n {...props}\n />\n );\n};\n\nSpinner.displayName = \"Spinner\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledIcon = styled.div<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n svg {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: currentColor;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({ children, ...props }) => {\n return <StyledIcon {...props}>{children}</StyledIcon>;\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { DividerProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledDivider = styled.div<DividerProps>`\n background-color: ${(props) =>\n props.dashStroke\n ? \"transparent\"\n : props.color || \"rgba(255, 255, 255, 0.15)\"};\n width: ${(props) =>\n props.vertical\n ? typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"1px\"\n : \"100%\"};\n height: ${(props) =>\n props.vertical\n ? \"100%\"\n : typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"1px\"};\n\n ${(props) =>\n props.dashStroke &&\n `\n border-style: dashed;\n border-color: ${props.color || \"rgba(255, 255, 255, 0.15)\"};\n border-width: 0;\n ${\n props.vertical\n ? `\n border-left-width: ${typeof props.width === \"number\" ? `${props.width}px` : props.width || \"1px\"};\n height: 100%;\n `\n : `\n border-top-width: ${typeof props.height === \"number\" ? `${props.height}px` : props.height || \"1px\"};\n width: 100%;\n `\n }\n `}\n`;\n\nexport const Divider: React.FC<DividerProps> = (props) => {\n return <StyledDivider {...props} />;\n};\n","import React, { forwardRef } from \"react\";\nimport styled from \"styled-components\";\nimport { InputPrimitiveProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledInput = styled.input<InputPrimitiveProps>`\n background: transparent;\n border: none;\n outline: none;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-family: inherit;\n text-align: inherit;\n\n &::placeholder {\n color: ${(props) =>\n props.placeholderTextColor || \"rgba(255, 255, 255, 0.5)\"};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nexport const InputPrimitive = forwardRef<HTMLInputElement, InputPrimitiveProps>(\n (\n {\n value,\n placeholder,\n onChange,\n onChangeText,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n secureTextEntry,\n style,\n color,\n fontSize,\n placeholderTextColor,\n maxLength,\n name,\n type,\n inputMode,\n autoComplete,\n id,\n \"aria-invalid\": ariaInvalid,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-label\": ariaLabel,\n \"aria-disabled\": ariaDisabled,\n \"data-testid\": dataTestId,\n ...rest\n },\n ref\n ) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(e);\n }\n if (onChangeText) {\n onChangeText(e.target.value);\n }\n };\n\n // Always pass value to make it a controlled input\n const inputValue = value !== undefined ? value : \"\";\n\n return (\n <StyledInput\n ref={ref}\n id={id}\n value={inputValue}\n name={name}\n placeholder={placeholder}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n type={secureTextEntry ? \"password\" : type || \"text\"}\n inputMode={inputMode}\n autoComplete={autoComplete}\n style={style}\n color={color}\n fontSize={fontSize}\n placeholderTextColor={placeholderTextColor}\n maxLength={maxLength}\n aria-invalid={ariaInvalid}\n aria-describedby={ariaDescribedBy}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n data-testid={dataTestId}\n {...rest}\n />\n );\n }\n);\n\nInputPrimitive.displayName = \"InputPrimitive\";\n","import { forwardRef } from \"react\";\nimport styled from \"styled-components\";\nimport { TextAreaPrimitiveProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledTextArea = styled.textarea<TextAreaPrimitiveProps>`\n background: transparent;\n border: none;\n outline: none;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-family: inherit;\n text-align: inherit;\n resize: none;\n\n &::placeholder {\n color: ${(props) =>\n props.placeholderTextColor || \"rgba(255, 255, 255, 0.5)\"};\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nexport const TextAreaPrimitive = forwardRef<\n HTMLTextAreaElement,\n TextAreaPrimitiveProps\n>(\n (\n {\n value,\n placeholder,\n onChangeText,\n onFocus,\n onBlur,\n onKeyDown,\n disabled,\n style,\n color,\n fontSize,\n placeholderTextColor,\n maxLength,\n rows,\n },\n ref\n ) => {\n return (\n <StyledTextArea\n ref={ref}\n value={value}\n placeholder={placeholder}\n onChange={(e) => onChangeText?.(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n disabled={disabled}\n style={style}\n color={color}\n fontSize={fontSize}\n placeholderTextColor={placeholderTextColor}\n maxLength={maxLength}\n rows={rows}\n />\n );\n }\n);\n\nTextAreaPrimitive.displayName = \"TextAreaPrimitive\";\n","import React from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box, Text, Icon } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport type { PaginationProps, PaginationSize } from \"./types\";\n\nconst ChevronLeft = ({ size }: { size: number }) => (\n <svg\n viewBox=\"0 0 24 24\"\n width={size}\n height={size}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nconst ChevronRight = ({ size }: { size: number }) => (\n <svg\n viewBox=\"0 0 24 24\"\n width={size}\n height={size}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const Pagination: React.FC<PaginationProps> = ({\n size = \"md\",\n currentPage = 1,\n totalPages = 1,\n siblingCount = 1,\n onPageChange,\n disabled = false,\n stretched = false,\n showNavigation = true,\n backgroundColor,\n testID,\n}) => {\n const { theme } = useDesignSystem();\n\n const fontSizeMap: Record<PaginationSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const iconSizeMap: Record<PaginationSize, number> = {\n sm: 16,\n md: 18,\n lg: 20,\n };\n\n const itemSizeMap: Record<PaginationSize, number> = {\n sm: 24,\n md: 32,\n lg: 40,\n };\n\n const getPageNumbers = () => {\n const pages: (number | \"ellipsis\")[] = [];\n const totalNumbers = siblingCount * 2 + 5;\n const totalBlocks = totalNumbers;\n\n if (totalPages <= totalBlocks) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(\n currentPage + siblingCount,\n totalPages\n );\n\n const shouldShowLeftEllipsis = leftSiblingIndex > 2;\n const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const leftItemCount = 3 + 2 * siblingCount;\n for (let i = 1; i <= leftItemCount; i++) {\n pages.push(i);\n }\n pages.push(\"ellipsis\", totalPages);\n } else if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {\n const rightItemCount = 3 + 2 * siblingCount;\n pages.push(1, \"ellipsis\");\n for (let i = totalPages - rightItemCount + 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else if (shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n pages.push(1, \"ellipsis\");\n for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) {\n pages.push(i);\n }\n pages.push(\"ellipsis\", totalPages);\n }\n }\n return pages;\n };\n\n const handlePageClick = (page: number) => {\n if (disabled || page === currentPage || page < 1 || page > totalPages) {\n return;\n }\n onPageChange?.(page);\n };\n\n const pageNumbers = getPageNumbers();\n const iconSize = iconSizeMap[size];\n const itemSize = itemSizeMap[size];\n\n return (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent={stretched ? \"center\" : \"flex-start\"}\n width={stretched ? \"100%\" : \"auto\"}\n gap={4}\n flexWrap=\"wrap\"\n backgroundColor={backgroundColor}\n testID={testID}\n >\n {showNavigation && (\n <Box\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor={disabled || currentPage === 1 ? \"not-allowed\" : \"pointer\"}\n opacity={disabled || currentPage === 1 ? 0.6 : 1}\n borderRadius={4}\n onPress={() => currentPage > 1 && handlePageClick(currentPage - 1)}\n hoverStyle={\n !(disabled || currentPage === 1)\n ? { backgroundColor: theme.colors.overlay.mono }\n : undefined\n }\n role=\"button\"\n aria-label=\"Previous page\"\n >\n <Icon size={iconSize} color={theme.colors.content.primary}>\n <ChevronLeft size={iconSize} />\n </Icon>\n </Box>\n )}\n\n {pageNumbers.map((page, index) => {\n if (page === \"ellipsis\") {\n return (\n <Box\n key={`ellipsis-${index}`}\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Text\n color={theme.colors.content.tertiary}\n fontSize={fontSizeMap[size]}\n fontWeight=\"400\"\n >\n ...\n </Text>\n </Box>\n );\n }\n\n const isActive = page === currentPage;\n\n return (\n <Box\n key={page}\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius={4}\n backgroundColor={\n isActive ? theme.colors.background.brand.primary : \"transparent\"\n }\n cursor={disabled || isActive ? \"default\" : \"pointer\"}\n opacity={disabled ? 0.6 : 1}\n onPress={() => handlePageClick(page as number)}\n hoverStyle={\n !disabled && !isActive\n ? { backgroundColor: theme.colors.overlay.mono }\n : undefined\n }\n role=\"button\"\n aria-label={`Go to page ${page}`}\n aria-current={isActive ? \"page\" : undefined}\n >\n <Text\n color={\n isActive\n ? theme.colors.content.on.brand\n : theme.colors.content.primary\n }\n fontSize={fontSizeMap[size]}\n fontWeight={isActive ? \"600\" : \"400\"}\n >\n {page}\n </Text>\n </Box>\n );\n })}\n\n {showNavigation && (\n <Box\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor={\n disabled || currentPage === totalPages ? \"not-allowed\" : \"pointer\"\n }\n opacity={disabled || currentPage === totalPages ? 0.6 : 1}\n borderRadius={4}\n onPress={() =>\n currentPage < totalPages && handlePageClick(currentPage + 1)\n }\n hoverStyle={\n !(disabled || currentPage === totalPages)\n ? { backgroundColor: theme.colors.overlay.mono }\n : undefined\n }\n role=\"button\"\n aria-label=\"Next page\"\n >\n <Icon size={iconSize} color={theme.colors.content.primary}>\n <ChevronRight size={iconSize} />\n </Icon>\n </Box>\n )}\n </Box>\n );\n};\n\nPagination.displayName = \"Pagination\";\n"],"mappings":"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","names":["styled","React","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_react","import_styled_components","import_jsx_runtime","styled","import_react","import_styled_components","import_jsx_runtime","styled","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/index.tsx","../../../primitives-web/src/Box.tsx","../../../primitives-web/src/Text.tsx","../../../primitives-web/src/Icon.tsx","../../src/Pagination.tsx"],"sourcesContent":["export * from \"./Pagination\";\nexport * from \"./types\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport type { BoxProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledBox = styled.div<BoxProps>`\n display: flex;\n box-sizing: border-box;\n background-color: ${(props) => props.backgroundColor || \"transparent\"};\n border-color: ${(props) => props.borderColor || \"transparent\"};\n border-width: ${(props) =>\n typeof props.borderWidth === \"number\"\n ? `${props.borderWidth}px`\n : props.borderWidth || 0};\n\n ${(props) =>\n props.borderBottomWidth !== undefined &&\n `\n border-bottom-width: ${typeof props.borderBottomWidth === \"number\" ? `${props.borderBottomWidth}px` : props.borderBottomWidth};\n border-bottom-color: ${props.borderBottomColor || props.borderColor || \"transparent\"};\n border-bottom-style: solid;\n `}\n ${(props) =>\n props.borderTopWidth !== undefined &&\n `\n border-top-width: ${typeof props.borderTopWidth === \"number\" ? `${props.borderTopWidth}px` : props.borderTopWidth};\n border-top-color: ${props.borderTopColor || props.borderColor || \"transparent\"};\n border-top-style: solid;\n `}\n ${(props) =>\n props.borderLeftWidth !== undefined &&\n `\n border-left-width: ${typeof props.borderLeftWidth === \"number\" ? `${props.borderLeftWidth}px` : props.borderLeftWidth};\n border-left-color: ${props.borderLeftColor || props.borderColor || \"transparent\"};\n border-left-style: solid;\n `}\n ${(props) =>\n props.borderRightWidth !== undefined &&\n `\n border-right-width: ${typeof props.borderRightWidth === \"number\" ? `${props.borderRightWidth}px` : props.borderRightWidth};\n border-right-color: ${props.borderRightColor || props.borderColor || \"transparent\"};\n border-right-style: solid;\n `}\n\n border-style: ${(props) =>\n props.borderStyle ||\n (props.borderWidth ||\n props.borderBottomWidth ||\n props.borderTopWidth ||\n props.borderLeftWidth ||\n props.borderRightWidth\n ? \"solid\"\n : \"none\")};\n border-radius: ${(props) =>\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius || 0};\n height: ${(props) =>\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height || \"auto\"};\n width: ${(props) =>\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width || \"auto\"};\n min-width: ${(props) =>\n typeof props.minWidth === \"number\"\n ? `${props.minWidth}px`\n : props.minWidth || \"auto\"};\n min-height: ${(props) =>\n typeof props.minHeight === \"number\"\n ? `${props.minHeight}px`\n : props.minHeight || \"auto\"};\n\n padding: ${(props) =>\n typeof props.padding === \"number\"\n ? `${props.padding}px`\n : props.padding || 0};\n ${(props) =>\n props.paddingHorizontal &&\n `\n padding-left: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n padding-right: ${typeof props.paddingHorizontal === \"number\" ? `${props.paddingHorizontal}px` : props.paddingHorizontal};\n `}\n ${(props) =>\n props.paddingVertical &&\n `\n padding-top: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n padding-bottom: ${typeof props.paddingVertical === \"number\" ? `${props.paddingVertical}px` : props.paddingVertical};\n `}\n ${(props) =>\n props.paddingTop !== undefined &&\n `padding-top: ${typeof props.paddingTop === \"number\" ? `${props.paddingTop}px` : props.paddingTop};`}\n ${(props) =>\n props.paddingBottom !== undefined &&\n `padding-bottom: ${typeof props.paddingBottom === \"number\" ? `${props.paddingBottom}px` : props.paddingBottom};`}\n ${(props) =>\n props.paddingLeft !== undefined &&\n `padding-left: ${typeof props.paddingLeft === \"number\" ? `${props.paddingLeft}px` : props.paddingLeft};`}\n ${(props) =>\n props.paddingRight !== undefined &&\n `padding-right: ${typeof props.paddingRight === \"number\" ? `${props.paddingRight}px` : props.paddingRight};`}\n\n margin: ${(props) =>\n typeof props.margin === \"number\" ? `${props.margin}px` : props.margin || 0};\n ${(props) =>\n props.marginTop !== undefined &&\n `margin-top: ${typeof props.marginTop === \"number\" ? `${props.marginTop}px` : props.marginTop};`}\n ${(props) =>\n props.marginBottom !== undefined &&\n `margin-bottom: ${typeof props.marginBottom === \"number\" ? `${props.marginBottom}px` : props.marginBottom};`}\n ${(props) =>\n props.marginLeft !== undefined &&\n `margin-left: ${typeof props.marginLeft === \"number\" ? `${props.marginLeft}px` : props.marginLeft};`}\n ${(props) =>\n props.marginRight !== undefined &&\n `margin-right: ${typeof props.marginRight === \"number\" ? `${props.marginRight}px` : props.marginRight};`}\n\n flex-direction: ${(props) => props.flexDirection || \"column\"};\n flex-wrap: ${(props) => props.flexWrap || \"nowrap\"};\n align-items: ${(props) => props.alignItems || \"stretch\"};\n justify-content: ${(props) => props.justifyContent || \"flex-start\"};\n cursor: ${(props) =>\n props.cursor\n ? props.cursor\n : props.onClick || props.onPress\n ? \"pointer\"\n : \"inherit\"};\n position: ${(props) => props.position || \"static\"};\n top: ${(props) =>\n typeof props.top === \"number\" ? `${props.top}px` : props.top};\n bottom: ${(props) =>\n typeof props.bottom === \"number\" ? `${props.bottom}px` : props.bottom};\n left: ${(props) =>\n typeof props.left === \"number\" ? `${props.left}px` : props.left};\n right: ${(props) =>\n typeof props.right === \"number\" ? `${props.right}px` : props.right};\n flex: ${(props) => props.flex};\n flex-shrink: ${(props) => props.flexShrink ?? 1};\n gap: ${(props) =>\n typeof props.gap === \"number\" ? `${props.gap}px` : props.gap || 0};\n align-self: ${(props) => props.alignSelf || \"auto\"};\n overflow: ${(props) => props.overflow || \"visible\"};\n overflow-x: ${(props) => props.overflowX || \"visible\"};\n overflow-y: ${(props) => props.overflowY || \"visible\"};\n z-index: ${(props) => props.zIndex};\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n pointer-events: ${(props) => (props.disabled ? \"none\" : \"auto\")};\n\n &:hover {\n ${(props) =>\n props.hoverStyle?.backgroundColor &&\n `background-color: ${props.hoverStyle.backgroundColor};`}\n ${(props) =>\n props.hoverStyle?.borderColor &&\n `border-color: ${props.hoverStyle.borderColor};`}\n }\n\n &:active {\n ${(props) =>\n props.pressStyle?.backgroundColor &&\n `background-color: ${props.pressStyle.backgroundColor};`}\n }\n`;\n\nexport const Box = React.forwardRef<\n HTMLDivElement | HTMLButtonElement,\n BoxProps\n>(\n (\n {\n children,\n onPress,\n onKeyDown,\n onKeyUp,\n role,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-current\": ariaCurrent,\n \"aria-disabled\": ariaDisabled,\n \"aria-live\": ariaLive,\n \"aria-busy\": ariaBusy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-expanded\": ariaExpanded,\n \"aria-haspopup\": ariaHasPopup,\n \"aria-pressed\": ariaPressed,\n \"aria-controls\": ariaControls,\n tabIndex,\n as,\n src,\n alt,\n type,\n disabled,\n id,\n ...props\n },\n ref\n ) => {\n // Handle as=\"img\" for rendering images with proper border-radius\n if (as === \"img\" && src) {\n return (\n <img\n src={src}\n alt={alt || \"\"}\n style={{\n display: \"block\",\n objectFit: \"cover\",\n width:\n typeof props.width === \"number\"\n ? `${props.width}px`\n : props.width,\n height:\n typeof props.height === \"number\"\n ? `${props.height}px`\n : props.height,\n borderRadius:\n typeof props.borderRadius === \"number\"\n ? `${props.borderRadius}px`\n : props.borderRadius,\n position: props.position,\n top: typeof props.top === \"number\" ? `${props.top}px` : props.top,\n left:\n typeof props.left === \"number\" ? `${props.left}px` : props.left,\n right:\n typeof props.right === \"number\"\n ? `${props.right}px`\n : props.right,\n bottom:\n typeof props.bottom === \"number\"\n ? `${props.bottom}px`\n : props.bottom,\n }}\n />\n );\n }\n\n return (\n <StyledBox\n ref={ref}\n as={as}\n id={id}\n type={as === \"button\" ? type || \"button\" : undefined}\n disabled={as === \"button\" ? disabled : undefined}\n onClick={onPress}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n role={role}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-current={ariaCurrent}\n aria-disabled={ariaDisabled}\n aria-busy={ariaBusy}\n aria-describedby={ariaDescribedBy}\n aria-expanded={ariaExpanded}\n aria-haspopup={ariaHasPopup}\n aria-pressed={ariaPressed}\n aria-controls={ariaControls}\n aria-live={ariaLive}\n tabIndex={tabIndex !== undefined ? tabIndex : undefined}\n {...props}\n >\n {children}\n </StyledBox>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { TextProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledText = styled.span<TextProps>`\n color: ${(props) => props.color || \"inherit\"};\n font-size: ${(props) =>\n typeof props.fontSize === \"number\"\n ? `${props.fontSize}px`\n : props.fontSize || \"inherit\"};\n font-weight: ${(props) => props.fontWeight || \"normal\"};\n font-family: ${(props) =>\n props.fontFamily ||\n '\"Pilat Wide Bold\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important'};\n line-height: ${(props) =>\n typeof props.lineHeight === \"number\"\n ? `${props.lineHeight}px`\n : props.lineHeight || \"inherit\"};\n white-space: ${(props) => props.whiteSpace || \"normal\"};\n text-align: ${(props) => props.textAlign || \"inherit\"};\n text-decoration: ${(props) => props.textDecoration || \"none\"};\n`;\n\nexport const Text: React.FC<TextProps> = ({\n style,\n className,\n id,\n role,\n ...props\n}) => {\n return (\n <StyledText\n {...props}\n style={style}\n className={className}\n id={id}\n role={role}\n />\n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { IconProps } from \"@xsolla/xui-primitives-core\";\n\nconst StyledIcon = styled.div<IconProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n height: ${(props) =>\n typeof props.size === \"number\" ? `${props.size}px` : props.size || \"24px\"};\n color: ${(props) => props.color || \"currentColor\"};\n\n svg {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: currentColor;\n }\n`;\n\nexport const Icon: React.FC<IconProps> = ({ children, ...props }) => {\n return <StyledIcon {...props}>{children}</StyledIcon>;\n};\n","import React from \"react\";\n// @ts-expect-error - this will be resolved at build time\nimport { Box, Text, Icon } from \"@xsolla/xui-primitives\";\nimport { useDesignSystem } from \"@xsolla/xui-core\";\nimport type { PaginationProps, PaginationSize } from \"./types\";\n\nconst ChevronLeft = ({ size }: { size: number }) => (\n <svg\n viewBox=\"0 0 24 24\"\n width={size}\n height={size}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nconst ChevronRight = ({ size }: { size: number }) => (\n <svg\n viewBox=\"0 0 24 24\"\n width={size}\n height={size}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const Pagination: React.FC<PaginationProps> = ({\n size = \"md\",\n currentPage = 1,\n totalPages = 1,\n siblingCount = 1,\n onPageChange,\n disabled = false,\n stretched = false,\n showNavigation = true,\n backgroundColor,\n testID,\n}) => {\n const { theme } = useDesignSystem();\n\n const fontSizeMap: Record<PaginationSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const iconSizeMap: Record<PaginationSize, number> = {\n sm: 16,\n md: 18,\n lg: 20,\n };\n\n const itemSizeMap: Record<PaginationSize, number> = {\n sm: 24,\n md: 32,\n lg: 40,\n };\n\n const getPageNumbers = () => {\n const pages: (number | \"ellipsis\")[] = [];\n const totalNumbers = siblingCount * 2 + 5;\n const totalBlocks = totalNumbers;\n\n if (totalPages <= totalBlocks) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(\n currentPage + siblingCount,\n totalPages\n );\n\n const shouldShowLeftEllipsis = leftSiblingIndex > 2;\n const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n const leftItemCount = 3 + 2 * siblingCount;\n for (let i = 1; i <= leftItemCount; i++) {\n pages.push(i);\n }\n pages.push(\"ellipsis\", totalPages);\n } else if (shouldShowLeftEllipsis && !shouldShowRightEllipsis) {\n const rightItemCount = 3 + 2 * siblingCount;\n pages.push(1, \"ellipsis\");\n for (let i = totalPages - rightItemCount + 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else if (shouldShowLeftEllipsis && shouldShowRightEllipsis) {\n pages.push(1, \"ellipsis\");\n for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) {\n pages.push(i);\n }\n pages.push(\"ellipsis\", totalPages);\n }\n }\n return pages;\n };\n\n const handlePageClick = (page: number) => {\n if (disabled || page === currentPage || page < 1 || page > totalPages) {\n return;\n }\n onPageChange?.(page);\n };\n\n const pageNumbers = getPageNumbers();\n const iconSize = iconSizeMap[size];\n const itemSize = itemSizeMap[size];\n\n return (\n <Box\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent={stretched ? \"center\" : \"flex-start\"}\n width={stretched ? \"100%\" : \"auto\"}\n gap={4}\n flexWrap=\"wrap\"\n backgroundColor={backgroundColor}\n testID={testID}\n >\n {showNavigation && (\n <Box\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor={disabled || currentPage === 1 ? \"not-allowed\" : \"pointer\"}\n opacity={disabled || currentPage === 1 ? 0.6 : 1}\n borderRadius={4}\n onPress={() => currentPage > 1 && handlePageClick(currentPage - 1)}\n hoverStyle={\n !(disabled || currentPage === 1)\n ? { backgroundColor: theme.colors.overlay.mono }\n : undefined\n }\n role=\"button\"\n aria-label=\"Previous page\"\n >\n <Icon size={iconSize} color={theme.colors.content.primary}>\n <ChevronLeft size={iconSize} />\n </Icon>\n </Box>\n )}\n\n {pageNumbers.map((page, index) => {\n if (page === \"ellipsis\") {\n return (\n <Box\n key={`ellipsis-${index}`}\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Text\n color={theme.colors.content.tertiary}\n fontSize={fontSizeMap[size]}\n fontWeight=\"400\"\n >\n ...\n </Text>\n </Box>\n );\n }\n\n const isActive = page === currentPage;\n\n return (\n <Box\n key={page}\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius={4}\n backgroundColor={\n isActive ? theme.colors.background.brand.primary : \"transparent\"\n }\n cursor={disabled || isActive ? \"default\" : \"pointer\"}\n opacity={disabled ? 0.6 : 1}\n onPress={() => handlePageClick(page as number)}\n hoverStyle={\n !disabled && !isActive\n ? { backgroundColor: theme.colors.overlay.mono }\n : undefined\n }\n role=\"button\"\n aria-label={`Go to page ${page}`}\n aria-current={isActive ? \"page\" : undefined}\n >\n <Text\n color={\n isActive\n ? theme.colors.content.on.brand\n : theme.colors.content.primary\n }\n fontSize={fontSizeMap[size]}\n fontWeight={isActive ? \"600\" : \"400\"}\n >\n {page}\n </Text>\n </Box>\n );\n })}\n\n {showNavigation && (\n <Box\n width={itemSize}\n height={itemSize}\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor={\n disabled || currentPage === totalPages ? \"not-allowed\" : \"pointer\"\n }\n opacity={disabled || currentPage === totalPages ? 0.6 : 1}\n borderRadius={4}\n onPress={() =>\n currentPage < totalPages && handlePageClick(currentPage + 1)\n }\n hoverStyle={\n !(disabled || currentPage === totalPages)\n ? { backgroundColor: theme.colors.overlay.mono }\n : undefined\n }\n role=\"button\"\n aria-label=\"Next page\"\n >\n <Icon size={iconSize} color={theme.colors.content.primary}>\n <ChevronRight size={iconSize} />\n </Icon>\n </Box>\n )}\n </Box>\n );\n};\n\nPagination.displayName = \"Pagination\";\n"],"mappings":"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","names":["styled","React","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","styled","import_jsx_runtime"]}