stargazer-ui 1.5.11 → 1.5.13
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/.babelrc.json +10 -0
- package/.eslintrc.cjs +18 -0
- package/.gitattributes +2 -0
- package/LICENSE +21 -0
- package/dev/index.html +12 -0
- package/dev/index.jsx +46 -0
- package/dev/index.scss +74 -0
- package/dev/pages/ButtonPage.jsx +44 -0
- package/dev/pages/CardPage.jsx +81 -0
- package/dev/pages/DropdownPage.jsx +32 -0
- package/dev/pages/FormPage.jsx +155 -0
- package/dev/pages/ListPage.jsx +52 -0
- package/dev/pages/ModalPage.jsx +38 -0
- package/dev/pages/OverlayPage.jsx +39 -0
- package/dev/pages/components.jsx +19 -0
- package/dev/stargazerui.css +3762 -0
- package/dev/stargazerui.css.map +1 -0
- package/dev/test.jsx +87 -0
- package/package.json +79 -1
- package/rollup.config.js +140 -0
- package/scripts/writePackageJsons.js +42 -0
- package/src/Bar/Bar.tsx +0 -0
- package/src/Bar/Bar.type.ts +9 -0
- package/src/Bar/index.ts +0 -0
- package/src/Button/Button.tsx +20 -0
- package/src/Button/Button.types.ts +8 -0
- package/src/Button/index.ts +3 -0
- package/src/ButtonGroup/ButtonGroup.tsx +14 -0
- package/src/ButtonGroup/ButtonGroup.types.ts +8 -0
- package/src/ButtonGroup/index.ts +3 -0
- package/src/Card/Card.tsx +70 -0
- package/src/Card/Card.types.ts +33 -0
- package/src/Card/index.ts +3 -0
- package/src/CloseButton/CloseButton.tsx +14 -0
- package/src/CloseButton/CloseButton.types.ts +6 -0
- package/src/CloseButton/index.ts +3 -0
- package/src/Dropdown/Dropdown.tsx +440 -0
- package/src/Dropdown/Dropdown.types.ts +60 -0
- package/src/Dropdown/DropdownOld.tsx +409 -0
- package/src/Dropdown/index.ts +4 -0
- package/src/FileUploadButton/FileUploadButton.tsx +27 -0
- package/src/FileUploadButton/FileUploadButton.types.ts +9 -0
- package/src/FileUploadButton/index.ts +3 -0
- package/src/FloatingLabel/FloatingLabel.tsx +22 -0
- package/src/FloatingLabel/FloatingLabel.types.ts +11 -0
- package/src/FloatingLabel/index.ts +3 -0
- package/src/Form/Form.tsx +398 -0
- package/src/Form/Form.types.ts +169 -0
- package/src/Form/FormSelect.tsx +527 -0
- package/src/Form/index.ts +4 -0
- package/src/InputGroup/InputGroup.tsx +46 -0
- package/src/InputGroup/InputGroup.types.ts +22 -0
- package/src/InputGroup/index.ts +4 -0
- package/src/List/List.tsx +112 -0
- package/src/List/List.types.ts +34 -0
- package/src/List/index.ts +4 -0
- package/src/Modal/Modal.tsx +229 -0
- package/src/Modal/Modal.types.ts +49 -0
- package/src/Modal/index.ts +4 -0
- package/src/Nav/Nav.tsx +43 -0
- package/src/Nav/Nav.types.ts +21 -0
- package/src/Nav/index.ts +4 -0
- package/src/NavBar/Navbar.tsx +57 -0
- package/src/NavBar/Navbar.types.ts +24 -0
- package/src/NavBar/index.ts +4 -0
- package/src/NavDropdown/NavDropdown.tsx +93 -0
- package/src/NavDropdown/NavDropdown.types.ts +6 -0
- package/src/NavDropdown/index.ts +3 -0
- package/src/Overlay/Overlay.tsx +309 -0
- package/src/Overlay/Overlay.types.ts +24 -0
- package/{Overlay/index.d.ts → src/Overlay/index.ts} +3 -3
- package/src/Popout/Popout.tsx +155 -0
- package/src/Popout/Popout.types.ts +42 -0
- package/src/Popout/index.ts +3 -0
- package/src/Spinner/Spinner.tsx +15 -0
- package/src/Spinner/Spinner.types.ts +7 -0
- package/src/Spinner/index.ts +3 -0
- package/src/Table/Table.tsx +16 -0
- package/src/Table/Table.types.ts +9 -0
- package/src/Table/index.ts +3 -0
- package/src/Tabs/Tabs.tsx +233 -0
- package/src/Tabs/Tabs.types.ts +52 -0
- package/src/Tabs/index.ts +3 -0
- package/src/ToggleButton/ToggleButton.tsx +21 -0
- package/src/ToggleButton/ToggleButton.types.ts +8 -0
- package/src/ToggleButton/index.ts +3 -0
- package/src/assets/tooltip-pointer.svg +3 -0
- package/src/assets/warning.svg +39 -0
- package/{hooks/index.d.ts → src/hooks/index.ts} +7 -6
- package/src/hooks/useClassname.ts +5 -0
- package/src/hooks/useDraggable.ts +186 -0
- package/src/hooks/useKeepElementFocused.ts +37 -0
- package/src/hooks/useQueryParams.ts +12 -0
- package/src/hooks/useScreenSize.ts +24 -0
- package/src/index.ts +21 -0
- package/src/styles/_Card.scss +166 -0
- package/src/styles/_CloseButton.scss +51 -0
- package/src/styles/_CustomButton.scss +134 -0
- package/src/styles/_Dropdown.scss +127 -0
- package/src/styles/_FloatingLabel.scss +56 -0
- package/src/styles/_Forms.scss +7 -0
- package/src/styles/_Grid.scss +178 -0
- package/src/styles/_InputGroup.scss +71 -0
- package/src/styles/_List.scss +62 -0
- package/src/styles/_Modal.scss +234 -0
- package/src/styles/_ModalOld.scss +242 -0
- package/src/styles/_Nav.scss +36 -0
- package/src/styles/_NavBar.scss +116 -0
- package/src/styles/_NavDropdown.scss +33 -0
- package/src/styles/_OffCanvas.scss +260 -0
- package/src/styles/_OverLay.scss +64 -0
- package/src/styles/_Popout.scss +75 -0
- package/src/styles/_Spinner.scss +19 -0
- package/src/styles/_Table.scss +34 -0
- package/src/styles/_Tabs.scss +129 -0
- package/src/styles/_colors.scss +510 -0
- package/src/styles/_components.scss +40 -0
- package/src/styles/_functions.scss +134 -0
- package/src/styles/_mixins.scss +26 -0
- package/src/styles/_reset.scss +237 -0
- package/src/styles/_utilities.scss +2480 -0
- package/src/styles/_variables.scss +164 -0
- package/src/styles/forms/_FormCheck.scss +270 -0
- package/src/styles/forms/_FormControl.scss +135 -0
- package/src/styles/forms/_FormGroup.scss +26 -0
- package/src/styles/forms/_FormLabel.scss +3 -0
- package/src/styles/forms/_FormSelect.scss +196 -0
- package/src/styles/forms/_FormSlider.scss +116 -0
- package/src/styles/forms/_FormText.scss +6 -0
- package/{utils/BaseTypes.d.ts → src/utils/BaseTypes.ts} +32 -25
- package/src/utils/ContrastingColor.ts +25 -0
- package/src/utils/CreateSyntheticEvent.ts +30 -0
- package/src/utils/FileImportExport.js +50 -0
- package/src/utils/IsInputKey.ts +18 -0
- package/src/utils/MergeClassnames.ts +5 -0
- package/src/utils/MergeRefs.ts +12 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig-build.json +4 -0
- package/tsconfig.json +79 -0
- package/tsconfig.node.json +10 -0
- package/types/BaseTypes.d.ts +19 -0
- package/{Button → types/components/Button}/Button.types.d.ts +2 -1
- package/types/components/Button/index.d.ts +1 -0
- package/{Card → types/components/Card}/Card.types.d.ts +1 -3
- package/types/components/Card/index.d.ts +1 -0
- package/{CloseButton → types/components/CloseButton}/CloseButton.types.d.ts +1 -1
- package/types/components/CloseButton/index.d.ts +1 -0
- package/{Dropdown/DropdownOld.d.ts → types/components/Dropdown/Dropdown.d.ts} +3 -61
- package/{Dropdown → types/components/Dropdown}/Dropdown.types.d.ts +11 -10
- package/types/components/Dropdown/index.d.ts +1 -0
- package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.types.d.ts +1 -1
- package/types/components/FloatingLabel/index.d.ts +1 -0
- package/types/components/Form/Form.d.ts +17 -0
- package/types/components/Form/Form.types.d.ts +50 -0
- package/types/components/Form/index.d.ts +1 -0
- package/types/components/InputGroup/InputGroup.d.ts +6 -0
- package/types/components/InputGroup/InputGroup.types.d.ts +10 -0
- package/types/components/InputGroup/index.d.ts +1 -0
- package/{Modal → types/components/Modal}/Modal.d.ts +1 -1
- package/{Modal → types/components/Modal}/Modal.types.d.ts +2 -3
- package/types/components/Modal/index.d.ts +1 -0
- package/{Nav → types/components/Nav}/Nav.types.d.ts +1 -1
- package/types/components/Nav/index.d.ts +1 -0
- package/{NavBar → types/components/NavBar}/Navbar.d.ts +2 -1
- package/{NavBar → types/components/NavBar}/Navbar.types.d.ts +1 -2
- package/types/components/NavBar/index.d.ts +1 -0
- package/types/components/NavDropdown/NavDropdown.d.ts +35 -0
- package/types/components/NavDropdown/index.d.ts +1 -0
- package/{Popout → types/components/Popout}/Popout.types.d.ts +1 -1
- package/types/components/Popout/index.d.ts +1 -0
- package/types/components/Spinner/index.d.ts +1 -0
- package/{Table → types/components/Table}/Table.types.d.ts +1 -1
- package/types/components/Table/index.d.ts +1 -0
- package/{Tabs → types/components/Tabs}/Tabs.types.d.ts +1 -12
- package/types/components/Tabs/index.d.ts +1 -0
- package/types/components/ToggleButton/ToggleButton.d.ts +9 -0
- package/types/components/ToggleButton/ToggleButton.types.d.ts +0 -0
- package/types/components/ToggleButton/index.d.ts +1 -0
- package/types/components/index.d.ts +16 -0
- package/types/index.d.ts +1 -0
- package/vite.config.js +57 -0
- package/vite.config.js.timestamp-1708777378490-e94428ceb2bf9.mjs +42 -0
- package/Bar/Bar.type.d.ts +0 -6
- package/Bar/index.js +0 -2
- package/Bar/index.js.map +0 -1
- package/Bar/package.json +0 -1
- package/Button/Button.js +0 -15
- package/Button/Button.js.map +0 -1
- package/Button/index.d.ts +0 -3
- package/Button/index.js +0 -7
- package/Button/index.js.map +0 -1
- package/Button/package.json +0 -1
- package/ButtonGroup/ButtonGroup.d.ts +0 -4
- package/ButtonGroup/ButtonGroup.js +0 -11
- package/ButtonGroup/ButtonGroup.js.map +0 -1
- package/ButtonGroup/ButtonGroup.types.d.ts +0 -7
- package/ButtonGroup/index.d.ts +0 -3
- package/ButtonGroup/index.js +0 -7
- package/ButtonGroup/index.js.map +0 -1
- package/ButtonGroup/package.json +0 -1
- package/Card/Card.js +0 -42
- package/Card/Card.js.map +0 -1
- package/Card/index.d.ts +0 -3
- package/Card/index.js +0 -7
- package/Card/index.js.map +0 -1
- package/Card/package.json +0 -1
- package/CloseButton/CloseButton.js +0 -11
- package/CloseButton/CloseButton.js.map +0 -1
- package/CloseButton/index.d.ts +0 -3
- package/CloseButton/index.js +0 -7
- package/CloseButton/index.js.map +0 -1
- package/CloseButton/package.json +0 -1
- package/Dropdown/Dropdown.d.ts +0 -129
- package/Dropdown/Dropdown.js +0 -378
- package/Dropdown/Dropdown.js.map +0 -1
- package/Dropdown/index.d.ts +0 -4
- package/Dropdown/index.js +0 -8
- package/Dropdown/index.js.map +0 -1
- package/Dropdown/package.json +0 -1
- package/FileUploadButton/FileUploadButton.d.ts +0 -4
- package/FileUploadButton/FileUploadButton.js +0 -20
- package/FileUploadButton/FileUploadButton.js.map +0 -1
- package/FileUploadButton/FileUploadButton.types.d.ts +0 -7
- package/FileUploadButton/index.d.ts +0 -3
- package/FileUploadButton/index.js +0 -7
- package/FileUploadButton/index.js.map +0 -1
- package/FileUploadButton/package.json +0 -1
- package/FloatingLabel/FloatingLabel.js +0 -15
- package/FloatingLabel/FloatingLabel.js.map +0 -1
- package/FloatingLabel/index.d.ts +0 -3
- package/FloatingLabel/index.js +0 -7
- package/FloatingLabel/index.js.map +0 -1
- package/FloatingLabel/package.json +0 -1
- package/Form/Form.d.ts +0 -38
- package/Form/Form.js +0 -227
- package/Form/Form.js.map +0 -1
- package/Form/Form.types.d.ts +0 -159
- package/Form/FormSelect.d.ts +0 -15
- package/Form/FormSelect.js +0 -436
- package/Form/FormSelect.js.map +0 -1
- package/Form/index.d.ts +0 -4
- package/Form/index.js +0 -8
- package/Form/index.js.map +0 -1
- package/Form/package.json +0 -1
- package/InputGroup/InputGroup.d.ts +0 -7
- package/InputGroup/InputGroup.js +0 -31
- package/InputGroup/InputGroup.js.map +0 -1
- package/InputGroup/InputGroup.types.d.ts +0 -17
- package/InputGroup/index.d.ts +0 -4
- package/InputGroup/index.js +0 -7
- package/InputGroup/index.js.map +0 -1
- package/InputGroup/package.json +0 -1
- package/List/List.d.ts +0 -14
- package/List/List.js +0 -77
- package/List/List.js.map +0 -1
- package/List/List.types.d.ts +0 -28
- package/List/index.d.ts +0 -3
- package/List/index.js +0 -7
- package/List/index.js.map +0 -1
- package/List/package.json +0 -1
- package/Modal/Modal.js +0 -157
- package/Modal/Modal.js.map +0 -1
- package/Modal/index.d.ts +0 -3
- package/Modal/index.js +0 -7
- package/Modal/index.js.map +0 -1
- package/Modal/package.json +0 -1
- package/Nav/Nav.js +0 -29
- package/Nav/Nav.js.map +0 -1
- package/Nav/index.d.ts +0 -4
- package/Nav/index.js +0 -7
- package/Nav/index.js.map +0 -1
- package/Nav/package.json +0 -1
- package/NavBar/Navbar.js +0 -36
- package/NavBar/Navbar.js.map +0 -1
- package/NavBar/index.d.ts +0 -4
- package/NavBar/index.js +0 -8
- package/NavBar/index.js.map +0 -1
- package/NavBar/package.json +0 -1
- package/NavDropdown/NavDropdown.d.ts +0 -93
- package/NavDropdown/NavDropdown.js +0 -75
- package/NavDropdown/NavDropdown.js.map +0 -1
- package/NavDropdown/index.d.ts +0 -3
- package/NavDropdown/index.js +0 -7
- package/NavDropdown/index.js.map +0 -1
- package/NavDropdown/package.json +0 -1
- package/Overlay/Overlay.d.ts +0 -4
- package/Overlay/Overlay.js +0 -242
- package/Overlay/Overlay.js.map +0 -1
- package/Overlay/Overlay.types.d.ts +0 -22
- package/Overlay/index.js +0 -7
- package/Overlay/index.js.map +0 -1
- package/Overlay/package.json +0 -1
- package/Popout/Popout.js +0 -111
- package/Popout/Popout.js.map +0 -1
- package/Popout/index.d.ts +0 -3
- package/Popout/index.js +0 -7
- package/Popout/index.js.map +0 -1
- package/Popout/package.json +0 -1
- package/Spinner/Spinner.js +0 -11
- package/Spinner/Spinner.js.map +0 -1
- package/Spinner/index.d.ts +0 -3
- package/Spinner/index.js +0 -7
- package/Spinner/index.js.map +0 -1
- package/Spinner/package.json +0 -1
- package/Table/Table.js +0 -12
- package/Table/Table.js.map +0 -1
- package/Table/index.d.ts +0 -3
- package/Table/index.js +0 -7
- package/Table/index.js.map +0 -1
- package/Table/package.json +0 -1
- package/Tabs/Tabs.js +0 -162
- package/Tabs/Tabs.js.map +0 -1
- package/Tabs/index.d.ts +0 -3
- package/Tabs/index.js +0 -7
- package/Tabs/index.js.map +0 -1
- package/Tabs/package.json +0 -1
- package/ToggleButton/ToggleButton.d.ts +0 -4
- package/ToggleButton/ToggleButton.js +0 -18
- package/ToggleButton/ToggleButton.js.map +0 -1
- package/ToggleButton/ToggleButton.types.d.ts +0 -7
- package/ToggleButton/index.d.ts +0 -3
- package/ToggleButton/index.js +0 -7
- package/ToggleButton/index.js.map +0 -1
- package/ToggleButton/package.json +0 -1
- package/hooks/index.js +0 -7
- package/hooks/index.js.map +0 -1
- package/hooks/package.json +0 -1
- package/hooks/useClassname.d.ts +0 -2
- package/hooks/useClassname.js +0 -7
- package/hooks/useClassname.js.map +0 -1
- package/hooks/useDraggable.d.ts +0 -23
- package/hooks/useDraggable.js +0 -147
- package/hooks/useDraggable.js.map +0 -1
- package/hooks/useKeepElementFocused.d.ts +0 -2
- package/hooks/useKeepElementFocused.js +0 -37
- package/hooks/useKeepElementFocused.js.map +0 -1
- package/hooks/useQueryParams.d.ts +0 -2
- package/hooks/useQueryParams.js +0 -13
- package/hooks/useQueryParams.js.map +0 -1
- package/hooks/useScreenSize.d.ts +0 -5
- package/hooks/useScreenSize.js +0 -21
- package/hooks/useScreenSize.js.map +0 -1
- package/index.d.ts +0 -18
- package/index.js +0 -19
- package/index.js.map +0 -1
- package/styles/stargazerui.css +0 -6552
- package/styles/stargazerui.css.map +0 -1
- package/utils/ContrastingColor.d.ts +0 -1
- package/utils/CreateSyntheticEvent.d.ts +0 -3
- package/utils/CreateSyntheticEvent.js +0 -33
- package/utils/CreateSyntheticEvent.js.map +0 -1
- package/utils/IsInputKey.d.ts +0 -7
- package/utils/IsInputKey.js +0 -20
- package/utils/IsInputKey.js.map +0 -1
- package/utils/MergeClassnames.d.ts +0 -2
- package/utils/MergeClassnames.js +0 -7
- package/utils/MergeClassnames.js.map +0 -1
- package/utils/MergeRefs.d.ts +0 -2
- package/utils/MergeRefs.js +0 -16
- package/utils/MergeRefs.js.map +0 -1
- /package/{Button → types/components/Button}/Button.d.ts +0 -0
- /package/{Card → types/components/Card}/Card.d.ts +0 -0
- /package/{CloseButton → types/components/CloseButton}/CloseButton.d.ts +0 -0
- /package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.d.ts +0 -0
- /package/{Nav → types/components/Nav}/Nav.d.ts +0 -0
- /package/{NavDropdown → types/components/NavDropdown}/NavDropdown.types.d.ts +0 -0
- /package/{Popout → types/components/Popout}/Popout.d.ts +0 -0
- /package/{Spinner → types/components/Spinner}/Spinner.d.ts +0 -0
- /package/{Spinner → types/components/Spinner}/Spinner.types.d.ts +0 -0
- /package/{Table → types/components/Table}/Table.d.ts +0 -0
- /package/{Tabs → types/components/Tabs}/Tabs.d.ts +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
|
|
2
|
+
.sg-form-select-tag {
|
|
3
|
+
--input-text-color: #{$input-text-color};
|
|
4
|
+
--input-background-color: #{$input-background-color};
|
|
5
|
+
--input-border-color: #{$input-border-color};
|
|
6
|
+
--input-border-color-focus: #{$input-border-color-focus};
|
|
7
|
+
--input-border-color-invalid: #{$input-border-color-invalid};
|
|
8
|
+
--input-disabled-color: #{$input-disabled-color};
|
|
9
|
+
|
|
10
|
+
position: relative;
|
|
11
|
+
display: block;
|
|
12
|
+
width: 100%;
|
|
13
|
+
padding-block: $input-padding-x;
|
|
14
|
+
padding-inline: $input-padding-y calc(3 * $input-padding-y);
|
|
15
|
+
color: var(--input-text-color);
|
|
16
|
+
|
|
17
|
+
background-color: var(--input-background-color);
|
|
18
|
+
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
|
|
19
|
+
background-repeat: no-repeat;
|
|
20
|
+
background-position: right $input-padding-x center;
|
|
21
|
+
background-size: 1em 0.75em;
|
|
22
|
+
|
|
23
|
+
border: $input-border-width $input-border-style var(--input-border-color);
|
|
24
|
+
border-radius: $input-border-radius;
|
|
25
|
+
|
|
26
|
+
appearance: none;
|
|
27
|
+
|
|
28
|
+
&:focus-visible, &:focus {
|
|
29
|
+
//@include sg-focus-visible()
|
|
30
|
+
border-color: var(--input-border-color-focus);
|
|
31
|
+
outline: 0;
|
|
32
|
+
box-shadow: 0;
|
|
33
|
+
}
|
|
34
|
+
&[multiple], &[size]:not([size="1"]) {
|
|
35
|
+
padding-right: $input-padding-x;
|
|
36
|
+
background-image: none;
|
|
37
|
+
}
|
|
38
|
+
&:disabled, .disabled {
|
|
39
|
+
--input-background-color: rgba(255, 255, 255, 0.04);
|
|
40
|
+
--input-placeholder-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
|
|
41
|
+
--input-text-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
|
|
42
|
+
cursor:not-allowed;
|
|
43
|
+
opacity: 1;
|
|
44
|
+
}
|
|
45
|
+
&.invalid, &:user-invalid, &[aria-invalid="true"] {
|
|
46
|
+
box-shadow: 0 0 4px 2px var(--input-border-color-invalid);
|
|
47
|
+
z-index: 2;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
.sg-form-select {
|
|
53
|
+
--input-text-color: #{$input-text-color};
|
|
54
|
+
--input-background-color: #{$input-background-color};
|
|
55
|
+
--input-border-color: #{$input-border-color};
|
|
56
|
+
--input-border-color-focus: #{$input-border-color-focus};
|
|
57
|
+
--input-border-color-invalid: #{$input-border-color-invalid};
|
|
58
|
+
--input-disabled-color: #{$input-disabled-color};
|
|
59
|
+
|
|
60
|
+
position: relative;
|
|
61
|
+
display: block;
|
|
62
|
+
|
|
63
|
+
height: calc(1.4rem + $input-padding-x + $input-padding-x);
|
|
64
|
+
min-width: 12rem;
|
|
65
|
+
max-width: 15rem;
|
|
66
|
+
|
|
67
|
+
padding-block: $input-padding-x;
|
|
68
|
+
padding-inline: $input-padding-y calc(3 * $input-padding-y);
|
|
69
|
+
color: var(--input-text-color);
|
|
70
|
+
|
|
71
|
+
background-color: var(--input-background-color);
|
|
72
|
+
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
|
|
73
|
+
background-repeat: no-repeat;
|
|
74
|
+
background-position: right $input-padding-x center;
|
|
75
|
+
background-size: 1em 0.75em;
|
|
76
|
+
border: $input-border-width outset var(--input-border-color);
|
|
77
|
+
border-radius: $input-border-radius;
|
|
78
|
+
|
|
79
|
+
font-size: 0.85rem;
|
|
80
|
+
line-height: 1.4;
|
|
81
|
+
|
|
82
|
+
span {
|
|
83
|
+
pointer-events:visible;
|
|
84
|
+
display: inline-block;
|
|
85
|
+
width: 100%;
|
|
86
|
+
max-width: 100%;
|
|
87
|
+
white-space: nowrap;
|
|
88
|
+
overflow: hidden;
|
|
89
|
+
text-overflow: ellipsis;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&:focus-within {
|
|
93
|
+
//@include sg-focus-visible()
|
|
94
|
+
border-color: var(--input-border-color-focus);
|
|
95
|
+
outline: 0;
|
|
96
|
+
box-shadow: 0;
|
|
97
|
+
}
|
|
98
|
+
.disabled {
|
|
99
|
+
--input-background-color: rgba(255, 255, 255, 0.04);
|
|
100
|
+
--input-placeholder-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
|
|
101
|
+
--input-text-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.sg-select-control {
|
|
106
|
+
text-align: start;
|
|
107
|
+
|
|
108
|
+
cursor: default;
|
|
109
|
+
|
|
110
|
+
&:disabled {
|
|
111
|
+
--input-background-color: rgba(255, 255, 255, 0.04);
|
|
112
|
+
--input-placeholder-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
|
|
113
|
+
--input-text-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
|
|
114
|
+
cursor: not-allowed;
|
|
115
|
+
opacity: 1;
|
|
116
|
+
}
|
|
117
|
+
&:user-invalid, &.invalid, &[aria-invalid="true"] {
|
|
118
|
+
//outline: 2px solid $input-border-color-invalid;
|
|
119
|
+
box-shadow: 0 0 4px 2px var(--input-border-color-invalid);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.sg-select-input {
|
|
124
|
+
background-color: inherit;
|
|
125
|
+
border: none;
|
|
126
|
+
height: 100%;
|
|
127
|
+
max-width: 80%;
|
|
128
|
+
color: inherit;
|
|
129
|
+
|
|
130
|
+
&[multiple], &[size]:not([size="1"]) {
|
|
131
|
+
padding-right: $input-padding-x;
|
|
132
|
+
background-image: none;
|
|
133
|
+
}
|
|
134
|
+
&:disabled {
|
|
135
|
+
color: inherit;
|
|
136
|
+
background-color: inherit;
|
|
137
|
+
opacity: 1;
|
|
138
|
+
}
|
|
139
|
+
&:focus, &:focus-within, &:focus-visible {
|
|
140
|
+
border-color: transparent;
|
|
141
|
+
outline: none;
|
|
142
|
+
}
|
|
143
|
+
&::placeholder {
|
|
144
|
+
color: $input-placeholder-color;
|
|
145
|
+
opacity: 1;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.sg-select-list {
|
|
151
|
+
--bg-color: #{$input-background-color};
|
|
152
|
+
--txt-color: black;
|
|
153
|
+
--z-index: #{$zindex-dropdown};
|
|
154
|
+
overflow-y: auto;
|
|
155
|
+
|
|
156
|
+
background-color: var(--bg-color);
|
|
157
|
+
color: inherit;
|
|
158
|
+
|
|
159
|
+
position: absolute;
|
|
160
|
+
top: calc(100% + 3px);
|
|
161
|
+
left: 0;
|
|
162
|
+
width: 100%;
|
|
163
|
+
padding: 0;
|
|
164
|
+
|
|
165
|
+
border-radius: 0;// 0.375rem;
|
|
166
|
+
//border: 1px solid color-mix(in srgb, currentColor, white);
|
|
167
|
+
border: 2px outset color-mix(in oklab, $sg-body-bg, white 60%);
|
|
168
|
+
|
|
169
|
+
list-style-type: none;
|
|
170
|
+
|
|
171
|
+
z-index: var(--z-index);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.sg-select-list-item {
|
|
175
|
+
padding: 0.25rem 0.5rem;
|
|
176
|
+
font-size: 0.85rem;
|
|
177
|
+
user-select: none;
|
|
178
|
+
|
|
179
|
+
z-index: inherit;
|
|
180
|
+
|
|
181
|
+
&.focus {
|
|
182
|
+
background-color: color-mix(in oklab, var(--input-background-color), white 20%);
|
|
183
|
+
&:active {
|
|
184
|
+
background-color: color-mix(in oklab, var(--input-background-color), white 25%);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
&:first-child {
|
|
189
|
+
border-top-right-radius: inherit;
|
|
190
|
+
border-top-left-radius: inherit;
|
|
191
|
+
}
|
|
192
|
+
&:last-child {
|
|
193
|
+
border-bottom-left-radius: inherit;
|
|
194
|
+
border-bottom-right-radius: inherit;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
@mixin slider-cap {
|
|
2
|
+
--cap-height: calc( 1 - 2*var(--padding-block-fraction));
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
content: "";
|
|
5
|
+
position: absolute;
|
|
6
|
+
top: calc(100% * var(--padding-block-fraction));
|
|
7
|
+
height: calc( 100% * var(--cap-height));
|
|
8
|
+
width: calc(var(--slider-thumb-width) * 0.5);
|
|
9
|
+
// give background-color and the position of the pseudo element as a content block
|
|
10
|
+
@content
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.sg-form-slider {
|
|
14
|
+
--slider-height: #{$slider-height};
|
|
15
|
+
|
|
16
|
+
--slider-filled-color: #{$slider-filled-color};
|
|
17
|
+
--slider-filled-border-color: #{$slider-filled-border-color};
|
|
18
|
+
|
|
19
|
+
--slider-empty-color: #{$slider-empty-color};
|
|
20
|
+
--slider-empty-border-color: #{$slider-empty-border-color};
|
|
21
|
+
|
|
22
|
+
--padding-block-fraction: 1/3;
|
|
23
|
+
|
|
24
|
+
--slider-thumb-width: #{$slider-thumb-width};
|
|
25
|
+
--slider-thumb-height: #{$slider-thumb-height};
|
|
26
|
+
--slider-thumb-border-color: #{$input-border-color};
|
|
27
|
+
--filled: 40%;
|
|
28
|
+
|
|
29
|
+
&:focus-within {
|
|
30
|
+
//outline: 2px outset $danger;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
display: grid;
|
|
34
|
+
grid-template-columns: var(--filled) auto calc(100% - var(--filled));
|
|
35
|
+
position: relative;
|
|
36
|
+
height: var(--slider-height);
|
|
37
|
+
//border: $input-border-width $input-border-style $input-border-color;
|
|
38
|
+
padding-block: calc(var(--slider-height)*var(--padding-block-fraction));
|
|
39
|
+
padding-inline: calc(var(--slider-thumb-width) * 0.5);
|
|
40
|
+
|
|
41
|
+
&:hover {
|
|
42
|
+
--slider-filled-color: #{$slider-filled-hover-color};
|
|
43
|
+
--slider-filled-border-color: #{$slider-filled-border-hover-color};
|
|
44
|
+
--slider-empty-color: #{$slider-empty-bover-color};
|
|
45
|
+
--slider-empty-border-color: #{$slider-empty-border-hover-color};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.sg-form-slider-filled {
|
|
49
|
+
display: block;
|
|
50
|
+
background-color: var(--slider-filled-color);
|
|
51
|
+
border: $slider-border-width outset var(--slider-filled-border-color);
|
|
52
|
+
border-left: none;
|
|
53
|
+
border-right: none;
|
|
54
|
+
height: 100%;
|
|
55
|
+
width: 100%;
|
|
56
|
+
&::before {
|
|
57
|
+
@include slider-cap {
|
|
58
|
+
background-color: var(--slider-filled-color);
|
|
59
|
+
border: $slider-border-width outset var(--slider-filled-border-color);
|
|
60
|
+
border-right: none;
|
|
61
|
+
left: 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
.sg-form-slider-thumb {
|
|
66
|
+
cursor: grab;
|
|
67
|
+
&[data-grabbing="true"] {
|
|
68
|
+
cursor: grabbing;
|
|
69
|
+
}
|
|
70
|
+
position: relative;
|
|
71
|
+
display: block;
|
|
72
|
+
|
|
73
|
+
height: 100%;
|
|
74
|
+
//width: var(--slider-thumb-width);
|
|
75
|
+
|
|
76
|
+
&:focus-visible {
|
|
77
|
+
--slider-thumb-border-color: white;
|
|
78
|
+
}
|
|
79
|
+
&::before {
|
|
80
|
+
content: "";
|
|
81
|
+
position: absolute;
|
|
82
|
+
box-sizing: border-box;
|
|
83
|
+
left: calc(var(--slider-thumb-width) * -0.5);
|
|
84
|
+
top: calc(-1 * var(--padding-block-fraction)*100% );
|
|
85
|
+
height: calc( (2*var(--padding-block-fraction) + 1) * 100%);
|
|
86
|
+
width: var(--slider-thumb-width);
|
|
87
|
+
background-color: $input-border-color;// transparent;// $danger;
|
|
88
|
+
//background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 166 166"><polygon fill="'+$farbe+'" points="83 26.8 65.7 61.8 27.1 67.4 55 94.7 48.5 133.2 83 115 117.5 133.2 111 94.7 138.9 67.4 100.3 61.8 83 26.8 83 26.8"/></svg>');
|
|
89
|
+
border: $input-border-width $input-border-style var(--slider-thumb-border-color);
|
|
90
|
+
}
|
|
91
|
+
&:focus-visible {
|
|
92
|
+
--focus-outline: 2px outset $danger;
|
|
93
|
+
outline: 0;
|
|
94
|
+
box-shadow: none;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
.sg-form-slider-empty {
|
|
98
|
+
display: block;
|
|
99
|
+
background-color: var(--slider-empty-color);
|
|
100
|
+
border: $slider-border-width outset var(--slider-empty-border-color);
|
|
101
|
+
border-left: none;
|
|
102
|
+
border-right: none;
|
|
103
|
+
height: 100%;
|
|
104
|
+
width: 100%;
|
|
105
|
+
|
|
106
|
+
&::after {
|
|
107
|
+
@include slider-cap {
|
|
108
|
+
background-color: var(--slider-empty-color);
|
|
109
|
+
border: $slider-border-width outset var(--slider-empty-border-color);
|
|
110
|
+
border-left: none;
|
|
111
|
+
right: 0;
|
|
112
|
+
z-index: -1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -1,25 +1,32 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
type
|
|
4
|
-
type
|
|
5
|
-
type
|
|
6
|
-
type
|
|
7
|
-
type
|
|
8
|
-
type
|
|
9
|
-
type
|
|
10
|
-
type
|
|
11
|
-
type
|
|
12
|
-
type
|
|
13
|
-
type
|
|
14
|
-
type
|
|
15
|
-
type
|
|
16
|
-
type
|
|
17
|
-
type
|
|
18
|
-
type
|
|
19
|
-
type
|
|
20
|
-
type
|
|
21
|
-
type
|
|
22
|
-
type
|
|
23
|
-
type
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
type BaseAnchorType = React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
|
|
4
|
+
type BaseButtonType = React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
|
|
5
|
+
type BaseDialogType = React.DetailedHTMLProps<React.DialogHTMLAttributes<HTMLDialogElement>, HTMLDialogElement>;
|
|
6
|
+
type BaseDivType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
7
|
+
type BaseFormType = React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;
|
|
8
|
+
type BaseHeadingType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
|
|
9
|
+
type BaseInputType = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
|
|
10
|
+
type BaseHrType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement>;
|
|
11
|
+
type BaseLabelType = React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>;
|
|
12
|
+
type BaseLItemType = React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;
|
|
13
|
+
type BaseMeterType = React.DetailedHTMLProps<React.MeterHTMLAttributes<HTMLMeterElement>, HTMLMeterElement>;
|
|
14
|
+
type BaseNavType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
15
|
+
type BaseParagraphType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>;
|
|
16
|
+
type BaseProgressBarType = React.DetailedHTMLProps<React.ProgressHTMLAttributes<HTMLProgressElement>, HTMLProgressElement>;
|
|
17
|
+
type BaseSelectType = React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>;
|
|
18
|
+
type BaseSliderType = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
|
|
19
|
+
type BaseSmallType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
20
|
+
type BaseSpanType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;
|
|
21
|
+
type BaseSVGType = React.SVGProps<SVGSVGElement>
|
|
22
|
+
type BaseTableType = React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>;
|
|
23
|
+
type BaseUListType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>;
|
|
24
|
+
|
|
25
|
+
type BaseElementType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
26
|
+
type BaseElementType2 = React.DetailedHTMLProps<React.HTMLAttributes<Element>, Element>;
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
BaseAnchorType, BaseButtonType, BaseDialogType, BaseDivType, BaseElementType, BaseElementType2, BaseFormType, BaseHeadingType, BaseHrType,
|
|
30
|
+
BaseInputType, BaseLItemType, BaseLabelType, BaseSliderType, BaseMeterType, BaseNavType, BaseParagraphType, BaseProgressBarType, BaseSelectType, BaseSmallType, BaseSpanType,
|
|
31
|
+
BaseSVGType, BaseTableType, BaseUListType
|
|
32
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export default function contrastingColor(color: string)
|
|
2
|
+
{
|
|
3
|
+
return (luma(color) >= 165) ? '000' : 'fff';
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
function luma(color: string) // color can be a hx string or an array of RGB values 0-255
|
|
7
|
+
{
|
|
8
|
+
let rgb = (typeof color === 'string') ? hexToRGBArray(color) : color;
|
|
9
|
+
return (0.2126 * rgb[0]) + (0.7152 * rgb[1]) + (0.0722 * rgb[2]); // SMPTE C, Rec. 709 weightings
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function hexToRGBArray(color: string)
|
|
13
|
+
{
|
|
14
|
+
if(color.startsWith("#")) {
|
|
15
|
+
color = color.replace("#", "")
|
|
16
|
+
}
|
|
17
|
+
if (color.length === 3)
|
|
18
|
+
color = color.charAt(0) + color.charAt(0) + color.charAt(1) + color.charAt(1) + color.charAt(2) + color.charAt(2);
|
|
19
|
+
else if (color.length !== 6)
|
|
20
|
+
throw new Error('Invalid hex color: ' + color)
|
|
21
|
+
let rgb = [];
|
|
22
|
+
for (let i = 0; i <= 2; i++)
|
|
23
|
+
rgb[i] = parseInt(color.substr(i * 2, 2), 16)
|
|
24
|
+
return rgb;
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const createSyntheticEvent = <T extends Element, E extends Event>(event: E): React.SyntheticEvent<T, E> => {
|
|
2
|
+
let isDefaultPrevented = false;
|
|
3
|
+
let isPropagationStopped = false;
|
|
4
|
+
const preventDefault = () => {
|
|
5
|
+
isDefaultPrevented = true;
|
|
6
|
+
event.preventDefault();
|
|
7
|
+
}
|
|
8
|
+
const stopPropagation = () => {
|
|
9
|
+
isPropagationStopped = true;
|
|
10
|
+
event.stopPropagation();
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
nativeEvent: event,
|
|
14
|
+
currentTarget: event.currentTarget as EventTarget & T,
|
|
15
|
+
target: event.target as EventTarget & T,
|
|
16
|
+
bubbles: event.bubbles,
|
|
17
|
+
cancelable: event.cancelable,
|
|
18
|
+
defaultPrevented: event.defaultPrevented,
|
|
19
|
+
eventPhase: event.eventPhase,
|
|
20
|
+
isTrusted: event.isTrusted,
|
|
21
|
+
preventDefault,
|
|
22
|
+
isDefaultPrevented: () => isDefaultPrevented,
|
|
23
|
+
stopPropagation,
|
|
24
|
+
isPropagationStopped: () => isPropagationStopped,
|
|
25
|
+
persist: () => {},
|
|
26
|
+
timeStamp: event.timeStamp,
|
|
27
|
+
type: event.type,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export default createSyntheticEvent
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const downloadFile = ({ data, fileName, fileType }) => {
|
|
2
|
+
// Create a blob with the data we want to download as a file
|
|
3
|
+
const blob = new Blob([data], { type: fileType })
|
|
4
|
+
// Create an anchor element and dispatch a click event on it
|
|
5
|
+
// to trigger a download
|
|
6
|
+
const a = document.createElement('a')
|
|
7
|
+
a.download = fileName
|
|
8
|
+
a.href = window.URL.createObjectURL(blob)
|
|
9
|
+
const clickEvt = new MouseEvent('click', {
|
|
10
|
+
view: window,
|
|
11
|
+
bubbles: true,
|
|
12
|
+
cancelable: true,
|
|
13
|
+
})
|
|
14
|
+
a.dispatchEvent(clickEvt)
|
|
15
|
+
a.remove()
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const exportToJson = (event, charName, currentState) => {
|
|
19
|
+
event.preventDefault()
|
|
20
|
+
let test = ""
|
|
21
|
+
if(charName === "") {
|
|
22
|
+
test = "character"
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
let test1 = charName.split(" ")
|
|
26
|
+
test1.map(word => (
|
|
27
|
+
test += word
|
|
28
|
+
))
|
|
29
|
+
}
|
|
30
|
+
downloadFile({
|
|
31
|
+
data: JSON.stringify(currentState, null, "\t"),
|
|
32
|
+
fileName: test +'.json',
|
|
33
|
+
fileType: 'text/json',
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const readFileOnUpload = (uploadedFile, onUploadFunction) => {
|
|
38
|
+
const fileReader = new FileReader();
|
|
39
|
+
fileReader.onloadend = () => {
|
|
40
|
+
try {
|
|
41
|
+
//dispatch(importState(JSON.parse(fileReader.result), dispatch))
|
|
42
|
+
onUploadFunction(fileReader.result)
|
|
43
|
+
} catch(e) {
|
|
44
|
+
console.log("**Not valid JSON file!**");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if( uploadedFile!== undefined) {
|
|
48
|
+
fileReader.readAsText(uploadedFile);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type InputKeyType = {id:string, alt?:boolean, shift?: boolean, ctrl?: boolean}
|
|
2
|
+
|
|
3
|
+
export const isValidInputKey = (event: React.KeyboardEvent | KeyboardEvent, inputKeys: InputKeyType[]) => {
|
|
4
|
+
const isValidKey = inputKeys.find(inputKey => inputKey.id === event.key)
|
|
5
|
+
if(!isValidKey) return
|
|
6
|
+
|
|
7
|
+
let isCtrl = true, isAlt = true, isShift = true
|
|
8
|
+
if (event.altKey && !isValidKey.alt) {
|
|
9
|
+
isAlt = false
|
|
10
|
+
}
|
|
11
|
+
if (event.ctrlKey && !isValidKey.ctrl) {
|
|
12
|
+
isCtrl = false
|
|
13
|
+
}
|
|
14
|
+
if (event.shiftKey && !isValidKey.shift) {
|
|
15
|
+
isShift = false
|
|
16
|
+
}
|
|
17
|
+
return isValidKey && isAlt && isCtrl && isShift
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T> | undefined | null>
|
|
2
|
+
): React.RefCallback<T> {
|
|
3
|
+
return (value) => {
|
|
4
|
+
refs.forEach((ref) => {
|
|
5
|
+
if (typeof ref === "function") {
|
|
6
|
+
ref(value)
|
|
7
|
+
} else if (ref != null) {
|
|
8
|
+
(ref as React.MutableRefObject<T | null>).current = value;
|
|
9
|
+
}
|
|
10
|
+
})
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "esnext",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"lib": ["dom", "esnext"],
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"sourceMap": true,
|
|
8
|
+
"strict": true,
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"allowSyntheticDefaultImports": true,
|
|
11
|
+
"esModuleInterop": true,
|
|
12
|
+
"skipLibCheck": true,
|
|
13
|
+
"forceConsistentCasingInFileNames": true,
|
|
14
|
+
"declaration": true,
|
|
15
|
+
"declarationDir": "dist",
|
|
16
|
+
"emitDeclarationOnly": true
|
|
17
|
+
},
|
|
18
|
+
"exclude": ["node_modules", "**/*stories", "**/*types", "holding area", "legacy"]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
{
|
|
24
|
+
"compilerOptions": {
|
|
25
|
+
"declaration": true,
|
|
26
|
+
"declarationDir": "dist",
|
|
27
|
+
"emitDeclarationOnly": true,
|
|
28
|
+
"target": "ES2020",
|
|
29
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
30
|
+
"allowJs": true,
|
|
31
|
+
"skipLibCheck": true,
|
|
32
|
+
"esModuleInterop": true,
|
|
33
|
+
"allowSyntheticDefaultImports": true,
|
|
34
|
+
"strict": true,
|
|
35
|
+
"forceConsistentCasingInFileNames": true,
|
|
36
|
+
"noFallthroughCasesInSwitch": true,
|
|
37
|
+
"module": "esnext",
|
|
38
|
+
"moduleResolution": "node",
|
|
39
|
+
"resolveJsonModule": true,
|
|
40
|
+
"isolatedModules": true,
|
|
41
|
+
"jsx": "react-jsx",
|
|
42
|
+
"rootDir": "src"
|
|
43
|
+
},
|
|
44
|
+
"include": ["src"],
|
|
45
|
+
"exclude": [
|
|
46
|
+
"dist",
|
|
47
|
+
"node_modules",
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
/*
|
|
54
|
+
{
|
|
55
|
+
"compilerOptions": {
|
|
56
|
+
"target": "ES2020",
|
|
57
|
+
"useDefineForClassFields": true,
|
|
58
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
59
|
+
"module": "ESNext",
|
|
60
|
+
"skipLibCheck": true,
|
|
61
|
+
|
|
62
|
+
//Bundler mode
|
|
63
|
+
"moduleResolution": "bundler",
|
|
64
|
+
"allowImportingTsExtensions": true,
|
|
65
|
+
"resolveJsonModule": true,
|
|
66
|
+
"isolatedModules": true,
|
|
67
|
+
"noEmit": true,
|
|
68
|
+
"jsx": "react-jsx",
|
|
69
|
+
|
|
70
|
+
// Linting
|
|
71
|
+
"strict": true,
|
|
72
|
+
"noUnusedLocals": true,
|
|
73
|
+
"noUnusedParameters": true,
|
|
74
|
+
"noFallthroughCasesInSwitch": true
|
|
75
|
+
},
|
|
76
|
+
"include": ["src"],
|
|
77
|
+
"references": [{ "path": "./tsconfig.node.json" }]
|
|
78
|
+
}
|
|
79
|
+
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export type BaseAnchorType = React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
|
|
3
|
+
export type BaseButtonType = React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
|
|
4
|
+
export type BaseDialogType = React.DetailedHTMLProps<React.DialogHTMLAttributes<HTMLDialogElement>, HTMLDialogElement>;
|
|
5
|
+
export type BaseDivType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
6
|
+
export type BaseFormType = React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;
|
|
7
|
+
export type BaseHeadingType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
|
|
8
|
+
export type BaseInputType = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
|
|
9
|
+
export type BaseHrType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement>;
|
|
10
|
+
export type BaseLabelType = React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>;
|
|
11
|
+
export type BaseLItemType = React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;
|
|
12
|
+
export type BaseNavType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
13
|
+
export type BaseParagraphType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>;
|
|
14
|
+
export type BaseSelectType = React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>;
|
|
15
|
+
export type BaseSmallType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
16
|
+
export type BaseSpanType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;
|
|
17
|
+
export type BaseTableType = React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>;
|
|
18
|
+
export type BaseUListType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>;
|
|
19
|
+
export type BaseElementType = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./Button";
|