@fastyshop/ui 0.1.0 → 0.2.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.
Files changed (60) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +142 -3
  3. package/dist/generated/components.d.ts +19 -0
  4. package/dist/generated/components.d.ts.map +1 -0
  5. package/dist/generated/components.js +12 -0
  6. package/dist/generated/components.js.map +1 -0
  7. package/dist/hooks/useCopyToClipboard/useCopyToClipboard.d.ts +23 -0
  8. package/dist/hooks/useCopyToClipboard/useCopyToClipboard.d.ts.map +1 -0
  9. package/dist/hooks/useCopyToClipboard/useCopyToClipboard.js +78 -0
  10. package/dist/hooks/useCopyToClipboard/useCopyToClipboard.js.map +1 -0
  11. package/dist/hooks/useMediaQuery/useMediaQuery.d.ts +27 -0
  12. package/dist/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -0
  13. package/dist/hooks/useMediaQuery/useMediaQuery.js +114 -0
  14. package/dist/hooks/useMediaQuery/useMediaQuery.js.map +1 -0
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/primitives/Button/Button.d.ts +11 -0
  20. package/dist/primitives/Button/Button.d.ts.map +1 -0
  21. package/dist/{button.js → primitives/Button/Button.js} +14 -22
  22. package/dist/primitives/Button/Button.js.map +1 -0
  23. package/dist/primitives/Button/types/button.types.d.ts +34 -0
  24. package/dist/primitives/Button/types/button.types.d.ts.map +1 -0
  25. package/dist/primitives/Button/types/button.types.js +2 -0
  26. package/dist/primitives/Button/types/button.types.js.map +1 -0
  27. package/dist/primitives/Button/utils/hasVisibleLabel.d.ts +3 -0
  28. package/dist/primitives/Button/utils/hasVisibleLabel.d.ts.map +1 -0
  29. package/dist/primitives/Button/utils/hasVisibleLabel.js +17 -0
  30. package/dist/primitives/Button/utils/hasVisibleLabel.js.map +1 -0
  31. package/dist/primitives/Separator/Separator.d.ts +25 -0
  32. package/dist/primitives/Separator/Separator.d.ts.map +1 -0
  33. package/dist/primitives/Separator/Separator.js +24 -0
  34. package/dist/primitives/Separator/Separator.js.map +1 -0
  35. package/dist/primitives/Skeleton/Skeleton.d.ts +14 -0
  36. package/dist/primitives/Skeleton/Skeleton.d.ts.map +1 -0
  37. package/dist/primitives/Skeleton/Skeleton.js +32 -0
  38. package/dist/primitives/Skeleton/Skeleton.js.map +1 -0
  39. package/dist/primitives/Spinner/Spinner.d.ts +23 -0
  40. package/dist/primitives/Spinner/Spinner.d.ts.map +1 -0
  41. package/dist/primitives/Spinner/Spinner.js +27 -0
  42. package/dist/primitives/Spinner/Spinner.js.map +1 -0
  43. package/dist/primitives/Typography/Typography.d.ts +30 -0
  44. package/dist/primitives/Typography/Typography.d.ts.map +1 -0
  45. package/dist/primitives/Typography/Typography.js +48 -0
  46. package/dist/primitives/Typography/Typography.js.map +1 -0
  47. package/dist/primitives/Typography/types/typography.types.d.ts +31 -0
  48. package/dist/primitives/Typography/types/typography.types.d.ts.map +1 -0
  49. package/dist/primitives/Typography/types/typography.types.js +2 -0
  50. package/dist/primitives/Typography/types/typography.types.js.map +1 -0
  51. package/dist/runtime/clipboard/clipboard.d.ts +4 -0
  52. package/dist/runtime/clipboard/clipboard.d.ts.map +1 -0
  53. package/dist/runtime/clipboard/clipboard.js +22 -0
  54. package/dist/runtime/clipboard/clipboard.js.map +1 -0
  55. package/dist/styles.css +216 -15
  56. package/dist/tailwind-theme.css +5 -1
  57. package/package.json +5 -4
  58. package/dist/button.d.ts +0 -44
  59. package/dist/button.d.ts.map +0 -1
  60. package/dist/button.js.map +0 -1
package/dist/styles.css CHANGED
@@ -1,4 +1,4 @@
1
- /* @generated by scripts/tokens/build.mjs; dataset 1.0.1; source-sha256 15d6333e284ffa92b707f3bc034208848c9e35409b5f8179552ab48814ad6002 */
1
+ /* @generated by scripts/tokens/build.mjs; dataset 1.1.0; source-sha256 4e92238eeddd7378ce6517e9396a0a6c87a0a77c6eb621c1c09b740acd2fa7f0 */
2
2
  @font-face {
3
3
  font-family: "InterVariable";
4
4
  src: url("./fonts/InterVariable.woff2") format("woff2");
@@ -128,6 +128,8 @@
128
128
  --fs-layout-panel-padding: 1rem;
129
129
  --fs-layout-section-gap: 2rem;
130
130
  --fs-layout-marketing-gap: 3rem;
131
+ --fs-layout-grid-columns: 4;
132
+ --fs-layout-grid-column-gap: 1rem;
131
133
  --fs-control-visible-dense: 2rem;
132
134
  --fs-control-visible-default: 2.75rem;
133
135
  --fs-control-visible-touch: 2.75rem;
@@ -136,6 +138,8 @@
136
138
  --fs-control-target-touch: 2.75rem;
137
139
  --fs-focus-width: 2px;
138
140
  --fs-focus-offset: 2px;
141
+ --fs-layout-content-form-max: 32rem;
142
+ --fs-layout-content-prose-max: 42rem;
139
143
  --fs-font-family-sans: "InterVariable", "Inter", ui-sans-serif, system-ui, sans-serif;
140
144
  --fs-radius-sm: 0.25rem;
141
145
  --fs-radius-md: 0.5rem;
@@ -300,6 +304,8 @@
300
304
  --fs-layout-panel-padding: 1.25rem;
301
305
  --fs-layout-section-gap: 3rem;
302
306
  --fs-layout-marketing-gap: 4rem;
307
+ --fs-layout-grid-columns: 8;
308
+ --fs-layout-grid-column-gap: 1.5rem;
303
309
  --fs-control-visible-default: 2.5rem;
304
310
  }
305
311
  }
@@ -310,6 +316,7 @@
310
316
  --fs-layout-panel-padding: 1.5rem;
311
317
  --fs-layout-section-gap: 4rem;
312
318
  --fs-layout-marketing-gap: 5rem;
319
+ --fs-layout-grid-columns: 12;
313
320
  }
314
321
  }
315
322
 
@@ -472,6 +479,7 @@
472
479
  .fs-button__loading-indicator .fs-button__spinner {
473
480
  inline-size: min(var(--fs-button-icon-size), var(--fs-button-padding-inline));
474
481
  block-size: min(var(--fs-button-icon-size), var(--fs-button-padding-inline));
482
+ flex-basis: min(var(--fs-button-icon-size), var(--fs-button-padding-inline));
475
483
  }
476
484
 
477
485
  .fs-button__icon,
@@ -479,20 +487,10 @@
479
487
  inline-size: var(--fs-button-icon-size);
480
488
  block-size: var(--fs-button-icon-size);
481
489
  flex: 0 0 var(--fs-button-icon-size);
482
- stroke-width: var(--fs-icon-stroke-default);
483
- }
484
-
485
- .fs-button__spinner {
486
- fill: none;
487
- stroke: currentColor;
488
- stroke-linecap: round;
489
- animation: fs-button-spin var(--fs-motion-duration-slow) linear infinite;
490
490
  }
491
491
 
492
- @keyframes fs-button-spin {
493
- to {
494
- transform: rotate(360deg);
495
- }
492
+ .fs-button__icon {
493
+ stroke-width: var(--fs-icon-stroke-default);
496
494
  }
497
495
 
498
496
  @media (min-width: 48rem) {
@@ -511,8 +509,211 @@
511
509
  }
512
510
  }
513
511
 
512
+ .fs-separator {
513
+ box-sizing: border-box;
514
+ flex-shrink: 0;
515
+ margin: 0;
516
+ padding: 0;
517
+ border: 0 solid var(--fs-color-border);
518
+ }
519
+
520
+ .fs-separator[data-orientation="horizontal"] {
521
+ inline-size: 100%;
522
+ border-block-start-width: var(--fs-border-width);
523
+ }
524
+
525
+ .fs-separator[data-orientation="vertical"] {
526
+ align-self: stretch;
527
+ border-inline-start-width: var(--fs-border-width);
528
+ }
529
+
530
+ @media (forced-colors: active) {
531
+ .fs-separator {
532
+ border-color: CanvasText;
533
+ forced-color-adjust: auto;
534
+ }
535
+ }
536
+
537
+ .fs-skeleton {
538
+ display: block;
539
+ box-sizing: border-box;
540
+ border: var(--fs-border-width) solid var(--fs-color-border-subtle);
541
+ background: var(--fs-color-surface-subtle);
542
+ animation: fs-skeleton-pulse 2s ease-in-out infinite;
543
+ }
544
+
545
+ @layer components {
546
+ .fs-skeleton {
547
+ border-radius: var(--fs-radius-md);
548
+ }
549
+ }
550
+
551
+ @keyframes fs-skeleton-pulse {
552
+ 0%,
553
+ 100% {
554
+ opacity: 1;
555
+ }
556
+
557
+ 50% {
558
+ opacity: 0.5;
559
+ }
560
+ }
561
+
562
+ @media (prefers-reduced-motion: reduce) {
563
+ .fs-skeleton {
564
+ animation: none;
565
+ opacity: 1;
566
+ }
567
+ }
568
+
569
+ @media (forced-colors: active) {
570
+ .fs-skeleton {
571
+ border-color: CanvasText;
572
+ background: Canvas;
573
+ animation: none;
574
+ opacity: 1;
575
+ }
576
+ }
577
+
578
+ .fs-spinner {
579
+ --fs-spinner-size: var(--fs-icon-size-md);
580
+
581
+ display: inline-block;
582
+ inline-size: var(--fs-spinner-size);
583
+ block-size: var(--fs-spinner-size);
584
+ flex: 0 0 var(--fs-spinner-size);
585
+ overflow: visible;
586
+ color: inherit;
587
+ stroke: currentColor;
588
+ stroke-width: var(--fs-icon-stroke-default);
589
+ stroke-linecap: round;
590
+ vertical-align: middle;
591
+ }
592
+
593
+ .fs-spinner > path {
594
+ transform-origin: center;
595
+ transform-box: view-box;
596
+ animation: fs-spinner-rotate 900ms linear infinite;
597
+ }
598
+
599
+ .fs-spinner[data-fs-size="sm"] {
600
+ --fs-spinner-size: var(--fs-icon-size-sm);
601
+ }
602
+
603
+ .fs-spinner[data-fs-size="lg"] {
604
+ --fs-spinner-size: var(--fs-icon-size-lg);
605
+ }
606
+
607
+ @keyframes fs-spinner-rotate {
608
+ to {
609
+ transform: rotate(360deg);
610
+ }
611
+ }
612
+
514
613
  @media (prefers-reduced-motion: reduce) {
515
- .fs-button__spinner {
516
- animation-duration: var(--fs-motion-duration-slow);
614
+ .fs-spinner > path {
615
+ animation: none;
616
+ }
617
+ }
618
+
619
+ @media (forced-colors: active) {
620
+ .fs-spinner {
621
+ forced-color-adjust: auto;
622
+ stroke: currentColor;
517
623
  }
518
624
  }
625
+
626
+ @layer components {
627
+ .fs-typography {
628
+ margin: 0;
629
+ color: inherit;
630
+ }
631
+ }
632
+
633
+ .fs-typography[data-fs-variant="display-lg"] {
634
+ font-family: var(--fs-type-display-lg-font-family);
635
+ font-size: var(--fs-type-display-lg-font-size);
636
+ font-weight: var(--fs-type-display-lg-font-weight);
637
+ line-height: var(--fs-type-display-lg-line-height);
638
+ letter-spacing: var(--fs-type-display-lg-letter-spacing);
639
+ }
640
+
641
+ .fs-typography[data-fs-variant="display-md"] {
642
+ font-family: var(--fs-type-display-md-font-family);
643
+ font-size: var(--fs-type-display-md-font-size);
644
+ font-weight: var(--fs-type-display-md-font-weight);
645
+ line-height: var(--fs-type-display-md-line-height);
646
+ letter-spacing: var(--fs-type-display-md-letter-spacing);
647
+ }
648
+
649
+ .fs-typography[data-fs-variant="heading-lg"] {
650
+ font-family: var(--fs-type-heading-lg-font-family);
651
+ font-size: var(--fs-type-heading-lg-font-size);
652
+ font-weight: var(--fs-type-heading-lg-font-weight);
653
+ line-height: var(--fs-type-heading-lg-line-height);
654
+ letter-spacing: var(--fs-type-heading-lg-letter-spacing);
655
+ }
656
+
657
+ .fs-typography[data-fs-variant="heading-md"] {
658
+ font-family: var(--fs-type-heading-md-font-family);
659
+ font-size: var(--fs-type-heading-md-font-size);
660
+ font-weight: var(--fs-type-heading-md-font-weight);
661
+ line-height: var(--fs-type-heading-md-line-height);
662
+ letter-spacing: var(--fs-type-heading-md-letter-spacing);
663
+ }
664
+
665
+ .fs-typography[data-fs-variant="heading-sm"] {
666
+ font-family: var(--fs-type-heading-sm-font-family);
667
+ font-size: var(--fs-type-heading-sm-font-size);
668
+ font-weight: var(--fs-type-heading-sm-font-weight);
669
+ line-height: var(--fs-type-heading-sm-line-height);
670
+ letter-spacing: var(--fs-type-heading-sm-letter-spacing);
671
+ }
672
+
673
+ .fs-typography[data-fs-variant="body-lg"] {
674
+ font-family: var(--fs-type-body-lg-font-family);
675
+ font-size: var(--fs-type-body-lg-font-size);
676
+ font-weight: var(--fs-type-body-lg-font-weight);
677
+ line-height: var(--fs-type-body-lg-line-height);
678
+ letter-spacing: var(--fs-type-body-lg-letter-spacing);
679
+ }
680
+
681
+ .fs-typography[data-fs-variant="body-md"] {
682
+ font-family: var(--fs-type-body-md-font-family);
683
+ font-size: var(--fs-type-body-md-font-size);
684
+ font-weight: var(--fs-type-body-md-font-weight);
685
+ line-height: var(--fs-type-body-md-line-height);
686
+ letter-spacing: var(--fs-type-body-md-letter-spacing);
687
+ }
688
+
689
+ .fs-typography[data-fs-variant="body-sm"] {
690
+ font-family: var(--fs-type-body-sm-font-family);
691
+ font-size: var(--fs-type-body-sm-font-size);
692
+ font-weight: var(--fs-type-body-sm-font-weight);
693
+ line-height: var(--fs-type-body-sm-line-height);
694
+ letter-spacing: var(--fs-type-body-sm-letter-spacing);
695
+ }
696
+
697
+ .fs-typography[data-fs-variant="label-md"] {
698
+ font-family: var(--fs-type-label-md-font-family);
699
+ font-size: var(--fs-type-label-md-font-size);
700
+ font-weight: var(--fs-type-label-md-font-weight);
701
+ line-height: var(--fs-type-label-md-line-height);
702
+ letter-spacing: var(--fs-type-label-md-letter-spacing);
703
+ }
704
+
705
+ .fs-typography[data-fs-variant="label-sm"] {
706
+ font-family: var(--fs-type-label-sm-font-family);
707
+ font-size: var(--fs-type-label-sm-font-size);
708
+ font-weight: var(--fs-type-label-sm-font-weight);
709
+ line-height: var(--fs-type-label-sm-line-height);
710
+ letter-spacing: var(--fs-type-label-sm-letter-spacing);
711
+ }
712
+
713
+ .fs-typography[data-fs-variant="caption"] {
714
+ font-family: var(--fs-type-caption-font-family);
715
+ font-size: var(--fs-type-caption-font-size);
716
+ font-weight: var(--fs-type-caption-font-weight);
717
+ line-height: var(--fs-type-caption-line-height);
718
+ letter-spacing: var(--fs-type-caption-letter-spacing);
719
+ }
@@ -1,5 +1,8 @@
1
- /* @generated by scripts/tokens/build.mjs; dataset 1.0.1; source-sha256 15d6333e284ffa92b707f3bc034208848c9e35409b5f8179552ab48814ad6002 */
1
+ /* @generated by scripts/tokens/build.mjs; dataset 1.1.0; source-sha256 4e92238eeddd7378ce6517e9396a0a6c87a0a77c6eb621c1c09b740acd2fa7f0 */
2
2
  @theme inline {
3
+ --breakpoint-*: initial;
4
+ --breakpoint-md: 48rem;
5
+ --breakpoint-lg: 64rem;
3
6
  --color-fs-canvas: var(--fs-color-canvas);
4
7
  --color-fs-surface: var(--fs-color-surface);
5
8
  --color-fs-surface-subtle: var(--fs-color-surface-subtle);
@@ -109,6 +112,7 @@
109
112
  --spacing-fs-page-gutter: var(--fs-layout-page-gutter);
110
113
  --spacing-fs-panel-padding: var(--fs-layout-panel-padding);
111
114
  --spacing-fs-section-gap: var(--fs-layout-section-gap);
115
+ --spacing-fs-grid-column-gap: var(--fs-layout-grid-column-gap);
112
116
  --spacing-fs-control-default: var(--fs-control-visible-default);
113
117
  --spacing-fs-target-touch: var(--fs-control-target-touch);
114
118
  --radius-fs-sm: var(--fs-radius-sm);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastyshop/ui",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,14 +46,15 @@
46
46
  "react-dom": "19.2.8"
47
47
  },
48
48
  "dependencies": {
49
- "@base-ui/react": "1.7.0"
49
+ "@base-ui/react": "1.7.0",
50
+ "clsx": "2.1.1"
50
51
  },
51
52
  "scripts": {
52
53
  "clean": "node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"",
53
- "build:js": "tsc -p tsconfig.build.json",
54
+ "build:js": "node ../../scripts/catalog/build.mjs --write && tsc -p tsconfig.build.json",
54
55
  "build:css": "node ./scripts/copy-assets.mjs",
55
56
  "build": "pnpm clean && pnpm build:js && pnpm build:css",
56
- "typecheck": "tsc -p tsconfig.json --noEmit",
57
+ "typecheck": "node ../../scripts/catalog/build.mjs --write && tsc -p tsconfig.json --noEmit",
57
58
  "verify:font": "node ./scripts/verify-font.mjs && node --test ./scripts/tests/*.test.mjs",
58
59
  "verify": "pnpm verify:font && node ./scripts/verify-package.mjs && tsc -p ./scripts/tsconfig.json"
59
60
  }
package/dist/button.d.ts DELETED
@@ -1,44 +0,0 @@
1
- import { type ButtonHTMLAttributes, type ComponentType, type ReactNode, type SVGProps } from "react";
2
- /** @inline */
3
- type ButtonVariant = "primary" | "secondary" | "ghost" | "destructive";
4
- /** @inline */
5
- type ButtonSize = "sm" | "md" | "lg";
6
- /** @inline */
7
- type ButtonIcon = ComponentType<SVGProps<SVGSVGElement>>;
8
- /** @inline */
9
- type ButtonOwnProps = {
10
- /** Visual and semantic emphasis of the action. */
11
- variant?: ButtonVariant;
12
- /** Visible face size. Medium resolves to 44px on mobile and 40px at tablet widths. */
13
- size?: ButtonSize;
14
- /** Controlled pending state. It preserves the label and blocks native activation. */
15
- loading?: boolean;
16
- /** Consumer-provided Lucide-compatible SVG component. */
17
- icon?: ButtonIcon;
18
- /** Placement of a decorative icon next to a visible label. */
19
- iconPosition?: "start" | "end";
20
- };
21
- /** @inline */
22
- type NativeButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof ButtonOwnProps | "children">;
23
- /** @inline */
24
- type TextButtonProps = ButtonOwnProps & NativeButtonProps & {
25
- children: Exclude<ReactNode, boolean | null | undefined>;
26
- };
27
- /** @inline */
28
- type IconOnlyButtonProps = Omit<ButtonOwnProps, "iconPosition"> & NativeButtonProps & {
29
- "aria-label": string;
30
- children?: never;
31
- icon: ButtonIcon;
32
- iconPosition?: never;
33
- };
34
- /** Public props for the FastyShop action Button. */
35
- export type ButtonProps = TextButtonProps | IconOnlyButtonProps;
36
- /**
37
- * Production action primitive backed by Base UI.
38
- *
39
- * Use a link for navigation. `loading` is controlled by the consumer and does
40
- * not own an async lifecycle, success state or error copy.
41
- */
42
- export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
43
- export {};
44
- //# sourceMappingURL=button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,OAAO,CAAC;AAEf,cAAc;AACd,KAAK,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AACvE,cAAc;AACd,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACrC,cAAc;AACd,KAAK,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAEzD,cAAc;AACd,KAAK,cAAc,GAAG;IACpB,kDAAkD;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,sFAAsF;IACtF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CAChC,CAAC;AAEF,cAAc;AACd,KAAK,iBAAiB,GAAG,IAAI,CAC3B,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,MAAM,cAAc,GAAG,UAAU,CAClC,CAAC;AAEF,cAAc;AACd,KAAK,eAAe,GAAG,cAAc,GACnC,iBAAiB,GAAG;IAClB,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC1D,CAAC;AAEJ,cAAc;AACd,KAAK,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,GAC7D,iBAAiB,GAAG;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,CAAC;AAEJ,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAwBhE;;;;;GAKG;AACH,eAAO,MAAM,MAAM,2GAkEjB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,cAAc,GAKf,MAAM,OAAO,CAAC;AA+Cf,SAAS,eAAe,CAAC,QAAmB;IAC1C,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACxE,IAAI,CAAC,cAAc,CAA2B,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEnE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9D,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO;IACd,OAAO,CACL,6BAAiB,MAAM,EAAC,SAAS,EAAC,oBAAoB,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,YAC1F,eAAM,CAAC,EAAC,4BAA4B,GAAG,GACnC,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAiC,SAAS,MAAM,CAC9E,EACE,WAAW,EAAE,QAAQ,EACrB,YAAY,EAAE,SAAS,EACvB,QAAQ,EACR,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,IAAI,EAAE,IAAI,EACV,YAAY,GAAG,OAAO,EACtB,OAAO,GAAG,KAAK,EACf,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,QAAQ,EACf,OAAO,GAAG,SAAS,EACnB,GAAG,WAAW,EACf,EACD,GAAG;IAEH,MAAM,QAAQ,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,CAAC;IACpC,MAAM,kBAAkB,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,MAAM,MAAM,GACV,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAChB,KAAC,OAAO,KAAG,CACZ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACT,KAAC,IAAI,mBAAa,MAAM,EAAC,SAAS,EAAC,iBAAiB,EAAC,SAAS,EAAC,OAAO,GAAG,CAC1E,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnE,OAAO,CACL,MAAC,YAAY,OACP,WAAW,eACJ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,gBACxB,SAAS,EACrB,SAAS,EAAE,OAAO,uBACC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,qBAC/B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,kBAC/B,IAAI,qBACD,OAAO,EACxB,QAAQ,EAAE,OAAO,EACjB,YAAY,QACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,aAET,kBAAkB,CAAC,CAAC,CAAC,CACpB,8BAAkB,MAAM,EAAC,SAAS,EAAC,8BAA8B,YAC/D,KAAC,OAAO,KAAG,GACN,CACR,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,CAAC,CAAC,CAAC,CACV,MAAM,CACP,CAAC,CAAC,CAAC,CACF,gBAAM,SAAS,EAAC,oBAAoB,aACjC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACzC,eAAM,SAAS,EAAC,kBAAkB,YAAE,QAAQ,GAAQ,EACnD,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAClC,CACR,IACY,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}