@overmap-ai/blocks 1.0.26-table-row-loading.1 → 1.0.27-alpha.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/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from "./DropdownMenu";
13
13
  export * from "./DropdownItemMenu";
14
14
  export * from "./DropdownSelect";
15
15
  export * from "./DropdownMultiSelect";
16
+ export * from "./DownloadButtonUtility";
16
17
  export * from "./HoverUtility";
17
18
  export * from "./Select";
18
19
  export * from "./MultiSelect";
@@ -31,11 +32,13 @@ export * from "./ToggleGroup";
31
32
  export * from "./Toolbar";
32
33
  export * from "./Toast";
33
34
  export * from "./Tooltip";
35
+ export * from "./ToggleButton";
34
36
  export * from "./Text";
35
37
  export * from "./Theme";
36
38
  export * from "./Separator";
37
39
  export * from "./OvermapErrorBoundary";
38
- export { useSeverityColor, useViewportSize, useKeyboardShortcut, useStopEventPropagation, useTextFilter, splitTextForEllipsisAndExpansion, } from "./utils.ts";
40
+ export * from "./OvermapItem";
41
+ export { useSeverityColor, useViewportSize, useKeyboardShortcut, useStopEventPropagation, useTextFilter, splitTextForEllipsisAndExpansion, useSize, } from "./utils";
39
42
  export * from "./Checkbox";
40
43
  export * from "./Table";
41
44
  export * from "./Spinner";
package/dist/style.css CHANGED
@@ -85,6 +85,14 @@
85
85
  border-bottom-left-radius: 0;
86
86
  }._separators_1f7v1_1 > *:not(:last-of-type) {
87
87
  border-bottom: 1px solid var(--gray-a6);
88
+ }._OverlayContent_1nr9w_1 {
89
+ position: fixed;
90
+ inset: 0;
91
+ }
92
+
93
+ ._OverlayOverlay_1nr9w_6 {
94
+ position: fixed;
95
+ inset: 0;
88
96
  }._BaseMenuItem_5r3et_1 {
89
97
  font-size: var(--font-size-2);
90
98
  }
@@ -497,27 +505,40 @@
497
505
  }
498
506
  ._default_1odpt_1 span {
499
507
  display: none;
508
+ }._ToggleButton_13aus_1[data-state=on][data-variant=solid] {
509
+ outline: 2px solid var(--color-focus-root);
510
+ outline-offset: 2px;
511
+ }
512
+ ._ToggleButton_13aus_1[data-state=on][data-variant=solid][data-accent-color=gray] {
513
+ outline-color: var(--accent-8);
514
+ }
515
+ ._ToggleButton_13aus_1[data-state=on][data-variant=soft], ._ToggleButton_13aus_1[data-state=on][data-variant=surface], ._ToggleButton_13aus_1[data-state=on][data-variant=outline] {
516
+ background: var(--accent-9);
517
+ color: var(--accent-9-contrast);
518
+ }
519
+ ._ToggleButton_13aus_1[data-state=on][data-variant=ghost] {
520
+ background-color: var(--accent-a5);
500
521
  }._noWrap_1wpa5_1 {
501
522
  white-space: nowrap;
502
523
  overflow: hidden;
503
524
  text-overflow: ellipsis;
504
525
  display: block;
505
- }/*
506
- Doubling up on the radix-themes class to increase specificity over the default.
507
- Note: the class name must be "radix-themes" for nested themes to work.
508
-
509
- See documentation at https://www.radix-ui.com/themes/docs/theme/token-reference
510
- */
511
- .radix-themes.radix-themes {
512
- --cursor-button: pointer;
513
- --cursor-menu-item: pointer;
514
- --cursor-checkbox: pointer;
515
- }
516
-
517
- .rt-BaseButton {
518
- /* fix the cursor token only being applied to HTML buttons */
519
- cursor: var(--cursor-button);
520
- }
526
+ }/*
527
+ Doubling up on the radix-themes class to increase specificity over the default.
528
+ Note: the class name must be "radix-themes" for nested themes to work.
529
+
530
+ See documentation at https://www.radix-ui.com/themes/docs/theme/token-reference
531
+ */
532
+ .radix-themes.radix-themes {
533
+ --cursor-button: pointer;
534
+ --cursor-menu-item: pointer;
535
+ --cursor-checkbox: pointer;
536
+ }
537
+
538
+ .rt-BaseButton {
539
+ /* fix the cursor token only being applied to HTML buttons */
540
+ cursor: var(--cursor-button);
541
+ }
521
542
  ._light_1u8fs_1 span {
522
543
  color: var(--gray-a3);
523
544
  }
@@ -545,12 +566,7 @@
545
566
  all: unset;
546
567
  }
547
568
 
548
- ._checkboxContainer_pb9za_5 {
549
- display: flex;
550
- align-items: center;
551
- }
552
-
553
- ._checkbox_pb9za_5 {
569
+ ._checkbox_yl8iy_5 {
554
570
  background-color: var(--color-panel-solid);
555
571
  width: 15px;
556
572
  height: 15px;
@@ -562,12 +578,12 @@
562
578
  box-shadow: inset 0 0 0 1px var(--gray-a7);
563
579
  cursor: var(--cursor-checkbox);
564
580
  }
565
- ._checkbox_pb9za_5 [data-state=checked], ._checkbox_pb9za_5 [data-state=indeterminate] {
581
+ ._checkbox_yl8iy_5 [data-state=checked], ._checkbox_yl8iy_5 [data-state=indeterminate] {
566
582
  background-color: var(--accent-9);
567
583
  color: var(--accent-9-contrast);
568
584
  }
569
585
 
570
- ._checkboxIndicator_pb9za_27 {
586
+ ._checkboxIndicator_yl8iy_22 {
571
587
  display: flex;
572
588
  align-items: center;
573
589
  justify-content: center;
@@ -578,11 +594,11 @@
578
594
  padding-right: 0.5px;
579
595
  }
580
596
 
581
- ._checkboxLabel_pb9za_38 {
597
+ ._checkboxLabel_yl8iy_33 {
582
598
  padding-left: 0.5rem;
583
599
  }
584
600
 
585
- ._noTextHighlight_pb9za_42 {
601
+ ._noTextHighlight_yl8iy_37 {
586
602
  -webkit-touch-callout: none;
587
603
  -webkit-user-select: none;
588
604
  -khtml-user-select: none;
@@ -591,141 +607,140 @@
591
607
  user-select: none;
592
608
  }
593
609
 
594
- ._checkboxHidden_pb9za_51 {
610
+ ._checkboxHidden_yl8iy_46 {
595
611
  visibility: hidden;
596
- }._disabled_ybi8a_1 {
612
+ }._disabled_5i91d_1 {
597
613
  color: var(--gray-a10);
598
614
  }
599
615
 
600
- ._outerTableContainer_ybi8a_5 {
616
+ ._outerTableContainer_5i91d_5 {
601
617
  padding: 30px;
602
618
  border: 1px solid var(--gray-a4);
603
619
  border-radius: 0.5rem;
604
620
  box-shadow: var(--shadow-4);
605
621
  }
606
622
  @media only screen and (max-width: 600px) {
607
- ._outerTableContainer_ybi8a_5 {
623
+ ._outerTableContainer_5i91d_5 {
608
624
  padding: 10px;
609
625
  }
610
626
  }
611
627
 
612
- ._headerContainer_ybi8a_17 {
628
+ ._headerContainer_5i91d_17 {
613
629
  padding-bottom: 1rem;
614
630
  }
615
631
 
616
- ._tableTopContainer_ybi8a_21 {
632
+ ._tableTopContainer_5i91d_21 {
617
633
  padding: 10px 0;
618
634
  }
619
635
 
620
- ._tableContainer_ybi8a_25 {
636
+ ._tableContainer_5i91d_25 {
621
637
  flex: 1;
622
638
  overflow-y: auto;
623
639
  }
624
640
 
625
- ._searchContainer_ybi8a_30 {
641
+ ._searchContainer_5i91d_30 {
626
642
  display: block;
627
643
  width: 250px;
628
644
  }
629
645
  @media only screen and (max-width: 600px) {
630
- ._searchContainer_ybi8a_30 {
646
+ ._searchContainer_5i91d_30 {
631
647
  width: auto;
632
648
  }
633
649
  }
634
650
 
635
- ._columnFilterSelect_ybi8a_40 {
651
+ ._columnFilterSelect_5i91d_40 {
636
652
  display: block;
637
653
  box-shadow: none;
638
654
  }
639
- ._columnFilterSelect_ybi8a_40 svg {
655
+ ._columnFilterSelect_5i91d_40 svg {
640
656
  display: none;
641
657
  }
642
- ._columnFilterSelect_ybi8a_40:hover {
658
+ ._columnFilterSelect_5i91d_40:hover {
643
659
  background-color: rgba(0, 0, 0, 0.01);
644
660
  cursor: pointer;
645
661
  }
646
662
 
647
- ._table_ybi8a_21 {
663
+ ._table_5i91d_21 {
648
664
  border: 1px solid var(--gray-a4);
649
665
  border-radius: 3px !important;
650
666
  background-color: inherit;
651
- height: auto !important;
652
667
  }
653
668
 
654
- ._tableHeaderCell_ybi8a_59 {
669
+ ._tableHeaderCell_5i91d_58 {
655
670
  background-color: var(--color-background) !important;
656
671
  padding: 10px !important;
657
672
  border-bottom: 1px solid var(--gray-4);
658
673
  max-height: 110px;
659
674
  }
660
- ._tableHeaderCell_ybi8a_59 svg {
675
+ ._tableHeaderCell_5i91d_58 svg {
661
676
  visibility: hidden;
662
677
  }
663
678
  @media only screen and (max-width: 600px) {
664
- ._tableHeaderCell_ybi8a_59 div[title] > div:first-child {
679
+ ._tableHeaderCell_5i91d_58 div[title] > div:first-child {
665
680
  overflow: visible;
666
681
  white-space: normal;
667
682
  }
668
683
  }
669
684
 
670
- ._showSortIcon_ybi8a_75 svg {
685
+ ._showSortIcon_5i91d_74 svg {
671
686
  visibility: visible;
672
687
  }
673
688
 
674
- ._tableRow_ybi8a_79 {
689
+ ._tableRow_5i91d_78 {
675
690
  background-color: inherit;
676
691
  /* This for the CellSelect checkbox component as it does not accept a className prop */
677
692
  }
678
- ._tableRow_ybi8a_79 span, ._tableRow_ybi8a_79 i {
693
+ ._tableRow_5i91d_78 span, ._tableRow_5i91d_78 i {
679
694
  display: inline-flex;
680
695
  place-self: center;
681
696
  }
682
- ._tableRow_ybi8a_79 td {
697
+ ._tableRow_5i91d_78 td {
683
698
  padding-left: 10px !important;
684
699
  }
685
- ._tableRow_ybi8a_79:hover:not(._disabled_ybi8a_1) {
700
+ ._tableRow_5i91d_78:hover:not(._disabled_5i91d_1) {
686
701
  background-color: var(--gray-a4);
687
702
  }
688
703
 
689
- ._tableCell_ybi8a_94 {
704
+ ._tableCell_5i91d_93 {
690
705
  padding: 10px !important;
691
706
  }
692
- ._tableCell_ybi8a_94 > div > span:first-child {
707
+ ._tableCell_5i91d_93 > div > span:first-child {
693
708
  width: 100%;
694
709
  }
695
- ._tableCell_ybi8a_94:not(:last-of-type) {
710
+ ._tableCell_5i91d_93:not(:last-of-type) {
696
711
  padding-right: 20px !important;
697
712
  }
698
713
 
699
- ._noDataTextContainer_ybi8a_104 {
714
+ ._noDataTextContainer_5i91d_103 {
700
715
  padding: 0.5rem 10px;
701
716
  color: #616161;
702
717
  width: max-content;
703
718
  }
704
719
 
705
- ._tableBottomContainer_ybi8a_110 {
720
+ ._tableBottomContainer_5i91d_109 {
706
721
  padding: 15px 0;
707
722
  }
708
723
 
709
- ._rowsPerPageContainer_ybi8a_114 {
724
+ ._rowsPerPageContainer_5i91d_113 {
710
725
  flex: 1;
711
726
  }
712
727
  @media only screen and (max-width: 600px) {
713
- ._rowsPerPageContainer_ybi8a_114 {
728
+ ._rowsPerPageContainer_5i91d_113 {
714
729
  justify-content: center;
715
730
  padding-top: 5px;
716
731
  }
717
732
  }
718
733
 
719
- ._rowsPerPageText_ybi8a_124 {
734
+ ._rowsPerPageText_5i91d_123 {
720
735
  padding-right: 10px;
721
736
  padding-top: 4px;
722
737
  }
723
738
 
724
- ._pageText_ybi8a_129 {
739
+ ._pageText_5i91d_128 {
725
740
  padding-top: 4px;
726
741
  }
727
742
 
728
- ._descriptionSecondLine_ybi8a_133 {
743
+ ._descriptionSecondLine_5i91d_132 {
729
744
  white-space: nowrap;
730
745
  overflow: hidden;
731
746
  text-overflow: ellipsis;
package/dist/typings.d.ts CHANGED
@@ -6,3 +6,7 @@ export type PropsWithClassNameAndStyle = {
6
6
  className?: string;
7
7
  style?: CSSProperties;
8
8
  };
9
+ export type ViewportSizes = "initial" | "xs" | "sm" | "md" | "lg" | "xl";
10
+ /** Type used to create a mapping from ViewportSizes to the desired value type T. Used to make values responsive and
11
+ * dynamic when the viewport size changes. */
12
+ export type OvermapResponsive<T> = Partial<Record<ViewportSizes, T>> | T;
package/dist/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Responsive, ThemeOptions } from "@radix-ui/themes";
2
- import { ReactNode, ReactElement, SetStateAction, Dispatch } from "react";
3
- import { Severity } from "./typings";
2
+ import { ReactNode, ReactElement, SetStateAction, Dispatch, RefObject } from "react";
3
+ import { OvermapResponsive, Severity, ViewportSizes } from "./typings";
4
4
  /**
5
5
  * Returns an object with mapped key values or a single mapped value
6
6
  * @param value an object or string
@@ -11,8 +11,8 @@ export type AccentColor = ThemeOptions["accentColor"];
11
11
  /** Performs theme-sensitive mapping of a severity to radix color */
12
12
  export declare const useSeverityColor: (severity?: Severity) => AccentColor | undefined;
13
13
  export interface ViewportSize {
14
- size: "initial" | "xs" | "sm" | "md" | "lg" | "xl";
15
- prevSize: "initial" | "xs" | "sm" | "md" | "lg" | "xl";
14
+ size: ViewportSizes;
15
+ prevSize: ViewportSizes;
16
16
  xs: boolean;
17
17
  sm: boolean;
18
18
  md: boolean;
@@ -40,6 +40,7 @@ export declare const useStopEventPropagation: () => (event: Event) => void;
40
40
  * @param filterFunction make sure this is wrapped in a useCallback
41
41
  * @param values items that should be filtered on (of type T) */
42
42
  export declare function useTextFilter<T>(values: T[], filterFunction: (value: T, filterValue: string) => boolean): [T[], string, Dispatch<SetStateAction<string>>];
43
+ export declare const useSize: (target: RefObject<HTMLDivElement>) => DOMRectReadOnly | undefined;
43
44
  /** Temporary solution for text overflow where we want the container to expand up to a max height and use ellipsis if
44
45
  * overflow still occurs. Manually break up the text into two lines and conditionally render them in separate divs.
45
46
  * The second line/div should have styling that enables ellipsis.
@@ -51,3 +52,8 @@ export declare const genericMemo: <T>(component: T) => T;
51
52
  export type AllOrNone<T> = T | {
52
53
  [K in keyof T]?: never;
53
54
  };
55
+ /** Custom hook used to activate an OvermapResponsive value, which is simply a mapping from the different viewport sizes,
56
+ * those being "initial", "xs", "sm", "md", "lg", "xl", to a desired value type.
57
+ * @param value an OvermapResponsive value.
58
+ * NOTE: "initial" key must be specified on otherwise an error will be thrown */
59
+ export declare function useOvermapResponsiveValue<T>(value: OvermapResponsive<T>): T | undefined;
package/package.json CHANGED
@@ -1,104 +1,106 @@
1
- {
2
- "name": "@overmap-ai/blocks",
3
- "version": "1.0.26-table-row-loading.1",
4
- "description": "A collection of React components for building Overmap's UI.",
5
- "private": false,
6
- "author": "Wôrdn Inc.",
7
- "license": "UNLICENSED",
8
- "type": "module",
9
- "main": "dist/blocks.umd.cjs",
10
- "module": "dist/blocks.js",
11
- "types": "dist/index.d.ts",
12
- "scripts": {
13
- "dev": "yarn storybook",
14
- "storybook": "storybook dev -p 6006",
15
- "build": "tsc --noEmit && vite build",
16
- "lint": "eslint src .storybook stories --ext ts,tsx,js,jsx --report-unused-disable-directives --max-warnings 0",
17
- "lint:fix": "yarn lint --fix",
18
- "preview": "vite preview",
19
- "prepare": "husky install",
20
- "build-storybook": "storybook build"
21
- },
22
- "dependencies": {
23
- "@emotion/react": "^11.11.1",
24
- "@radix-ui/colors": "^3.0.0",
25
- "@radix-ui/react-accordion": "^1.1.2",
26
- "@radix-ui/react-context-menu": "^2.1.5",
27
- "@radix-ui/react-dialog": "^1.0.5",
28
- "@radix-ui/react-dismissable-layer": "^1.0.5",
29
- "@radix-ui/react-dropdown-menu": "^2.0.6",
30
- "@radix-ui/react-icons": "^1.3.0",
31
- "@radix-ui/react-menu": "^2.0.6",
32
- "@radix-ui/react-slot": "^1.0.2",
33
- "@radix-ui/react-toast": "^1.1.5",
34
- "@radix-ui/react-toggle-group": "^1.0.4",
35
- "@radix-ui/react-toolbar": "^1.0.4",
36
- "@radix-ui/themes": "^2.0.0",
37
- "@table-library/react-table-library": "^4.1.7",
38
- "feather-icons-react": "^0.6.2",
39
- "re-resizable": "^6.9.11",
40
- "react-device-detect": "^2.2.3",
41
- "react-error-boundary": "^4.0.13",
42
- "react-responsive": "^9.0.2",
43
- "react-transition-group": "^4.4.5"
44
- },
45
- "peerDependencies": {
46
- "react": "^18.2.0",
47
- "react-dom": "^18.2.0"
48
- },
49
- "devDependencies": {
50
- "@faker-js/faker": "^8.3.1",
51
- "@rollup/plugin-commonjs": "^25.0.7",
52
- "@storybook/addon-a11y": "^7.4.5",
53
- "@storybook/addon-essentials": "^7.4.3",
54
- "@storybook/addon-interactions": "^7.4.3",
55
- "@storybook/addon-links": "^7.4.3",
56
- "@storybook/blocks": "^7.4.3",
57
- "@storybook/react": "^7.4.3",
58
- "@storybook/react-vite": "^7.4.3",
59
- "@storybook/testing-library": "^0.2.1",
60
- "@storybook/types": "^7.4.6",
61
- "@types/node": "^20.8.10",
62
- "@types/react": "^18.2.15",
63
- "@types/react-dom": "^18.2.7",
64
- "@types/react-responsive": "^8.0.7",
65
- "@types/react-transition-group": "^4.4.8",
66
- "@typescript-eslint/eslint-plugin": "^6.0.0",
67
- "@typescript-eslint/parser": "^6.0.0",
68
- "@vitejs/plugin-react-swc": "^3.3.2",
69
- "classnames": "^2.3.2",
70
- "eslint": "^8.45.0",
71
- "eslint-config-prettier": "^9.0.0",
72
- "eslint-plugin-prettier": "^5.0.0",
73
- "eslint-plugin-react": "^7.33.2",
74
- "eslint-plugin-react-hooks": "^4.6.0",
75
- "eslint-plugin-react-refresh": "^0.4.3",
76
- "eslint-plugin-storybook": "^0.6.13",
77
- "husky": "^8.0.3",
78
- "lint-staged": "^14.0.1",
79
- "prettier": "^3.0.3",
80
- "react": "^18.2.0",
81
- "react-dom": "^18.2.0",
82
- "rollup-plugin-polyfill-node": "^0.12.0",
83
- "sass": "^1.68.0",
84
- "storybook": "^7.4.3",
85
- "typescript": "^5.0.2",
86
- "vite": "^4.4.5",
87
- "vite-plugin-dts": "^3.5.3",
88
- "vite-plugin-externalize-deps": "^0.7.0"
89
- },
90
- "lint-staged": {
91
- "*.{js,jsx,ts,tsx}": [
92
- "yarn eslint --fix"
93
- ],
94
- "*.{css,scss}": [
95
- "prettier --write"
96
- ]
97
- },
98
- "files": [
99
- "dist"
100
- ],
101
- "resolutions": {
102
- "jackspeak": "2.1.1"
103
- }
104
- }
1
+ {
2
+ "name": "@overmap-ai/blocks",
3
+ "version": "1.0.27-alpha.0",
4
+ "description": "A collection of React components for building Overmap's UI.",
5
+ "private": false,
6
+ "author": "Wôrdn Inc.",
7
+ "license": "UNLICENSED",
8
+ "type": "module",
9
+ "main": "dist/blocks.umd.cjs",
10
+ "module": "dist/blocks.js",
11
+ "types": "dist/index.d.ts",
12
+ "scripts": {
13
+ "dev": "yarn storybook",
14
+ "storybook": "storybook dev -p 6006",
15
+ "build": "tsc --noEmit && vite build",
16
+ "lint": "eslint src .storybook stories --ext ts,tsx,js,jsx --report-unused-disable-directives --max-warnings 0",
17
+ "lint:fix": "yarn lint --fix",
18
+ "preview": "vite preview",
19
+ "prepare": "husky install",
20
+ "build-storybook": "storybook build"
21
+ },
22
+ "dependencies": {
23
+ "@emotion/react": "^11.11.1",
24
+ "@radix-ui/colors": "^3.0.0",
25
+ "@radix-ui/react-accordion": "^1.1.2",
26
+ "@radix-ui/react-context-menu": "^2.1.5",
27
+ "@radix-ui/react-dialog": "^1.0.5",
28
+ "@radix-ui/react-dismissable-layer": "^1.0.5",
29
+ "@radix-ui/react-dropdown-menu": "^2.0.6",
30
+ "@radix-ui/react-icons": "^1.3.0",
31
+ "@radix-ui/react-menu": "^2.0.6",
32
+ "@radix-ui/react-slot": "^1.0.2",
33
+ "@radix-ui/react-toast": "^1.1.5",
34
+ "@radix-ui/react-toggle": "^1.0.3",
35
+ "@radix-ui/react-toggle-group": "^1.0.4",
36
+ "@radix-ui/react-toolbar": "^1.0.4",
37
+ "@radix-ui/themes": "^2.0.0",
38
+ "@react-hook/resize-observer": "^1.2.6",
39
+ "@table-library/react-table-library": "^4.1.7",
40
+ "feather-icons-react": "^0.6.2",
41
+ "re-resizable": "^6.9.11",
42
+ "react-device-detect": "^2.2.3",
43
+ "react-error-boundary": "^4.0.13",
44
+ "react-responsive": "^9.0.2",
45
+ "react-transition-group": "^4.4.5"
46
+ },
47
+ "peerDependencies": {
48
+ "react": "^18.2.0",
49
+ "react-dom": "^18.2.0"
50
+ },
51
+ "devDependencies": {
52
+ "@faker-js/faker": "^8.3.1",
53
+ "@rollup/plugin-commonjs": "^25.0.7",
54
+ "@storybook/addon-a11y": "^7.4.5",
55
+ "@storybook/addon-essentials": "^7.4.3",
56
+ "@storybook/addon-interactions": "^7.4.3",
57
+ "@storybook/addon-links": "^7.4.3",
58
+ "@storybook/blocks": "^7.4.3",
59
+ "@storybook/react": "^7.4.3",
60
+ "@storybook/react-vite": "^7.4.3",
61
+ "@storybook/testing-library": "^0.2.1",
62
+ "@storybook/types": "^7.4.6",
63
+ "@types/node": "^20.8.10",
64
+ "@types/react": "^18.2.15",
65
+ "@types/react-dom": "^18.2.7",
66
+ "@types/react-responsive": "^8.0.7",
67
+ "@types/react-transition-group": "^4.4.8",
68
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
69
+ "@typescript-eslint/parser": "^6.0.0",
70
+ "@vitejs/plugin-react-swc": "^3.3.2",
71
+ "classnames": "^2.3.2",
72
+ "eslint": "^8.45.0",
73
+ "eslint-config-prettier": "^9.0.0",
74
+ "eslint-plugin-prettier": "^5.0.0",
75
+ "eslint-plugin-react": "^7.33.2",
76
+ "eslint-plugin-react-hooks": "^4.6.0",
77
+ "eslint-plugin-react-refresh": "^0.4.3",
78
+ "eslint-plugin-storybook": "^0.6.13",
79
+ "husky": "^8.0.3",
80
+ "lint-staged": "^14.0.1",
81
+ "prettier": "^3.0.3",
82
+ "react": "^18.2.0",
83
+ "react-dom": "^18.2.0",
84
+ "rollup-plugin-polyfill-node": "^0.12.0",
85
+ "sass": "^1.68.0",
86
+ "storybook": "^7.4.3",
87
+ "typescript": "^5.0.2",
88
+ "vite": "^4.4.5",
89
+ "vite-plugin-dts": "^3.5.3",
90
+ "vite-plugin-externalize-deps": "^0.7.0"
91
+ },
92
+ "lint-staged": {
93
+ "*.{js,jsx,ts,tsx}": [
94
+ "yarn eslint --fix"
95
+ ],
96
+ "*.{css,scss}": [
97
+ "prettier --write"
98
+ ]
99
+ },
100
+ "files": [
101
+ "dist"
102
+ ],
103
+ "resolutions": {
104
+ "jackspeak": "2.1.1"
105
+ }
106
+ }