@xola/ui-kit 1.4.2

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 (74) hide show
  1. package/.github/ISSUE_TEMPLATE/v2-component.md +12 -0
  2. package/.nvmrc +1 -0
  3. package/.prettierrc +6 -0
  4. package/.storybook/main.js +17 -0
  5. package/.storybook/preview.js +3 -0
  6. package/README.md +1 -0
  7. package/babel.config.json +13 -0
  8. package/build/favicon.ico +0 -0
  9. package/build/style.css +1 -0
  10. package/build/ui-kit.mjs +12455 -0
  11. package/build/ui-kit.umd.js +33 -0
  12. package/lib/index.js +1 -0
  13. package/package.json +48 -0
  14. package/src/components/CountrySelect/CountrySelect.js +15 -0
  15. package/src/components/CountrySelect/index.js +1 -0
  16. package/src/components/DatePicker/DatePicker.js +80 -0
  17. package/src/components/DatePicker/DatePicker.module.scss +3 -0
  18. package/src/components/DatePicker/DatePicker.scss +18 -0
  19. package/src/components/DatePicker/index.js +3 -0
  20. package/src/components/FormInput/FormInput.js +23 -0
  21. package/src/components/FormInput/index.js +3 -0
  22. package/src/components/MiniStepper/MiniStepper.js +39 -0
  23. package/src/components/MiniStepper/MiniStepper.module.scss +9 -0
  24. package/src/components/MiniStepper/index.js +1 -0
  25. package/src/components/PhoneInput/PhoneInput.js +44 -0
  26. package/src/components/PhoneInput/index.js +1 -0
  27. package/src/components/ProductSelector/ProductListItem/ProductListItem.js +41 -0
  28. package/src/components/ProductSelector/ProductListItem/ProductListItem.module.scss +32 -0
  29. package/src/components/ProductSelector/ProductSelector.js +71 -0
  30. package/src/components/ProductSelector/index.js +3 -0
  31. package/src/components/ScheduleEditor/ScheduleEditor.js +277 -0
  32. package/src/components/ScheduleEditor/ScheduleEditorRow.js +26 -0
  33. package/src/components/ScheduleEditor/TimeRangeSelector/TimeRangeSelector.js +94 -0
  34. package/src/components/ScheduleEditor/TimeRangeSelector/TimeRangeSelector.module.scss +13 -0
  35. package/src/components/ScheduleEditor/TimeSlotSelector/TimeSlotSelector.js +62 -0
  36. package/src/components/ScheduleEditor/TimeSlotSelector/TimeSlotSelector.module.scss +21 -0
  37. package/src/components/ScheduleEditor/WeekSelector/WeekSelector.js +50 -0
  38. package/src/components/ScheduleEditor/helpers/schedule.js +15 -0
  39. package/src/components/ScheduleEditor/helpers/scheduleSummary.js +128 -0
  40. package/src/components/ScheduleEditor/index.js +4 -0
  41. package/src/components/Stepper/Step.js +31 -0
  42. package/src/components/Stepper/Step.module.scss +25 -0
  43. package/src/components/Stepper/Stepper.js +25 -0
  44. package/src/components/Stepper/Stepper.module.scss +5 -0
  45. package/src/components/Stepper/index.js +4 -0
  46. package/src/components/TimePicker/TimePicker.js +51 -0
  47. package/src/components/TimePicker/TimePicker.module.scss +16 -0
  48. package/src/components/TimePicker/TimePickerPopover.js +94 -0
  49. package/src/components/TimePicker/TimePickerPopover.module.scss +48 -0
  50. package/src/components/TimePicker/index.js +3 -0
  51. package/src/icons/CheckIcon.js +9 -0
  52. package/src/icons/TrashIcon.js +17 -0
  53. package/src/index.js +18 -0
  54. package/src/stories/Button.stories.js +66 -0
  55. package/src/stories/CountrySelect.stories.js +18 -0
  56. package/src/stories/DatePicker.stories.js +96 -0
  57. package/src/stories/FormInput.stories.js +25 -0
  58. package/src/stories/Forms.stories.js +43 -0
  59. package/src/stories/Icons.stories.js +21 -0
  60. package/src/stories/MiniStepper.stories.js +15 -0
  61. package/src/stories/PhoneInput.stories.js +26 -0
  62. package/src/stories/ProductSelector.stories.js +42 -0
  63. package/src/stories/ScheduleEditor.stories.js +37 -0
  64. package/src/stories/Stepper.stories.js +36 -0
  65. package/src/stories/TimePicker.stories.js +14 -0
  66. package/src/stories/Typography.stories.js +18 -0
  67. package/src/styles/custom.scss +60 -0
  68. package/src/styles/index.scss +3 -0
  69. package/src/styles/variables.scss +43 -0
  70. package/src/theme.js +359 -0
  71. package/src/values/countries.js +196 -0
  72. package/src/values/products.js +86 -0
  73. package/src/values/sellers.js +5 -0
  74. package/webpack.config.js +47 -0
@@ -0,0 +1,48 @@
1
+ @import "../../styles/variables.scss";
2
+
3
+ .timepickerPopover {
4
+ z-index: 200;
5
+ width: 500px;
6
+ box-shadow: 0 0 5px $box-shadow-color;
7
+ }
8
+
9
+ .minuteContainer {
10
+ width: 126px;
11
+ .minutes {
12
+ width: 126px;
13
+ }
14
+ }
15
+
16
+ .hourContainer {
17
+ width: 334px;
18
+ .meridian {
19
+ width: 58px;
20
+ p {
21
+ margin-top: 40px;
22
+ }
23
+ }
24
+ .hours {
25
+ width: 252px;
26
+ }
27
+ }
28
+
29
+ .slotButton {
30
+ margin: 2px;
31
+ width: 38px !important;
32
+ height: 38px !important;
33
+ font-size: 14px;
34
+ background: white;
35
+ color: $input-color;
36
+ outline: none;
37
+ &:hover,
38
+ &:active,
39
+ &:focus {
40
+ background-color: theme-color("primary");
41
+ color: white;
42
+ }
43
+ }
44
+
45
+ .selected {
46
+ background-color: theme-color("primary");
47
+ color: white;
48
+ }
@@ -0,0 +1,3 @@
1
+ import TimePicker from "./TimePicker";
2
+
3
+ export { TimePicker };
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+
3
+ export const CheckIcon = (props) => {
4
+ return (
5
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none" viewBox="0 0 14 14" {...props}>
6
+ <path stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" d="M2 7.545l2.727 2.728L12 3" />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+
3
+ export const TrashIcon = (props) => {
4
+ return (
5
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none" viewBox="0 0 14 14" {...props}>
6
+ <g stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" clipPath="url(#clip0)">
7
+ <path d="M1.829 3.324H12.15M8.095 1.85H5.884v0a.737.737 0 00-.738.737v.737h3.687v-.737 0a.737.737 0 00-.738-.737v0zM5.884 9.591V5.905M8.095 9.591V5.905M10.364 11.495v0a.737.737 0 01-.735.677H4.351v0a.737.737 0 01-.735-.677l-.681-8.17h8.11l-.681 8.17z"></path>
8
+ </g>
9
+
10
+ <defs>
11
+ <clipPath id="clip0">
12
+ <path fill="currentColor" d="M0 0H11.796V11.796H0z" transform="translate(1.091 1.113)"></path>
13
+ </clipPath>
14
+ </defs>
15
+ </svg>
16
+ );
17
+ };
package/src/index.js ADDED
@@ -0,0 +1,18 @@
1
+ import "./styles/index.scss";
2
+
3
+ // Components
4
+ export { Stepper, Step } from "./components/Stepper";
5
+ export { FormInput } from "./components/FormInput";
6
+ export { CountrySelect } from "./components/CountrySelect";
7
+ export { PhoneInput } from "./components/PhoneInput";
8
+ export { MiniStepper } from "./components/MiniStepper";
9
+ export { ProductSelector } from "./components/ProductSelector";
10
+ export { ScheduleEditor, getScheduleSummary } from "./components/ScheduleEditor";
11
+ export { DatePicker, formatDate } from "./components/DatePicker";
12
+ export { TimePicker } from "./components/TimePicker";
13
+
14
+ // Icons
15
+ export { CheckIcon } from "./icons/CheckIcon";
16
+ export { TrashIcon } from "./icons/TrashIcon";
17
+
18
+ export * from "reactstrap";
@@ -0,0 +1,66 @@
1
+ import { Button } from "..";
2
+ import React from "react";
3
+
4
+ export default {
5
+ title: "Button",
6
+ component: Button,
7
+ };
8
+
9
+ export const Default = () => {
10
+ return <Button>Default</Button>;
11
+ };
12
+
13
+ export const Colors = () => {
14
+ return (
15
+ <div>
16
+ <Button color="primary">Primary</Button> <Button color="secondary">Secondary</Button>{" "}
17
+ <Button color="success">Success</Button> <Button color="info">Info</Button>{" "}
18
+ <Button color="warning">Warning</Button> <Button color="danger">Danger</Button>{" "}
19
+ <Button color="link">Link</Button>{" "}
20
+ </div>
21
+ );
22
+ };
23
+
24
+ export const Outlined = () => {
25
+ return (
26
+ <div>
27
+ <Button color="primary" outline>
28
+ Primary
29
+ </Button>{" "}
30
+ <Button color="secondary" outline>
31
+ Secondary
32
+ </Button>{" "}
33
+ <Button color="success" outline>
34
+ Success
35
+ </Button>{" "}
36
+ <Button color="info" outline>
37
+ Info
38
+ </Button>{" "}
39
+ <Button color="warning" outline>
40
+ Warning
41
+ </Button>{" "}
42
+ <Button color="danger" outline>
43
+ Danger
44
+ </Button>{" "}
45
+ <Button color="link" outline>
46
+ Link
47
+ </Button>
48
+ </div>
49
+ );
50
+ };
51
+
52
+ export const Sizes = () => {
53
+ return (
54
+ <div>
55
+ <Button size="sm" color="primary">
56
+ Small
57
+ </Button>{" "}
58
+ <Button size="md" color="secondary">
59
+ Medium
60
+ </Button>{" "}
61
+ <Button size="lg" color="success">
62
+ Large
63
+ </Button>
64
+ </div>
65
+ );
66
+ };
@@ -0,0 +1,18 @@
1
+ import { CountrySelect, FormInput } from "..";
2
+ import React from "react";
3
+
4
+ export default {
5
+ title: "CountrySelect",
6
+ };
7
+
8
+ export const Default = () => {
9
+ return <CountrySelect />;
10
+ };
11
+
12
+ export const WithFormInput = () => {
13
+ return (
14
+ <FormInput label="Select Country">
15
+ <CountrySelect />
16
+ </FormInput>
17
+ );
18
+ };
@@ -0,0 +1,96 @@
1
+ import React, { Component, useState } from "react";
2
+ import { Fragment } from "react";
3
+ import { DatePicker } from "..";
4
+
5
+ export default {
6
+ title: "DatePicker",
7
+ };
8
+
9
+ export const Calendar = () => {
10
+ const [selectedValue, setSelectedValue] = useState(new Date("2021-03-17"));
11
+ const handleChange = (value) => {
12
+ setSelectedValue(value);
13
+ };
14
+ return <DatePicker onChange={handleChange} isDatePicker={false} value={selectedValue} />;
15
+ };
16
+
17
+ export const CalendarWithMultipleDates = () => {
18
+ const [selectedDates, setSelectedDates] = useState([
19
+ new Date("2021-03-01"),
20
+ new Date("2021-03-14"),
21
+ new Date("2021-03-20"),
22
+ ]);
23
+ const handleChange = (value) => {
24
+ setSelectedDates([...selectedDates, ...value]);
25
+ };
26
+ return <DatePicker onChange={handleChange} isDatePicker={false} value={selectedDates} />;
27
+ };
28
+
29
+ export const Datepicker = () => {
30
+ const [selectedValue, setSelectedValue] = useState();
31
+ const handleChange = (value) => {
32
+ setSelectedValue(value);
33
+ console.log(selectedValue);
34
+ };
35
+ return (
36
+ <DatePicker
37
+ isDatePicker={true}
38
+ placeholder="Select Date"
39
+ format="dd MMM, yyyy"
40
+ value={selectedValue}
41
+ onChange={(v) => handleChange(v)}
42
+ />
43
+ );
44
+ };
45
+
46
+ export const MultiDatePicker = () => {
47
+ const [selectedDates, setSelectedDates] = useState();
48
+ const handleChange = (value) => {
49
+ setSelectedDates([...value]);
50
+ console.log(selectedDates);
51
+ };
52
+ return (
53
+ <DatePicker
54
+ isDatePicker={true}
55
+ isMultiple={true}
56
+ placeholder="Select Date"
57
+ format="dd MMM, yyyy"
58
+ value={selectedDates}
59
+ onChange={(v) => handleChange(v)}
60
+ />
61
+ );
62
+ };
63
+
64
+ export const RangePicker = () => {
65
+ const [range, setRange] = useState({ from: null, to: null });
66
+ const today = new Date();
67
+ const handleChange = (value, key) => {
68
+ let currentRange = { ...range };
69
+ currentRange[key] = value;
70
+ setRange(currentRange);
71
+ };
72
+ return (
73
+ <Fragment>
74
+ <DatePicker
75
+ isDatePicker={true}
76
+ placeholder="From"
77
+ value={range.from}
78
+ minDate={today}
79
+ format="MM-dd-yyyy"
80
+ maxDate={range.to}
81
+ onChange={(v) => handleChange(v, "from")}
82
+ name="from"
83
+ />{" "}
84
+ untill{" "}
85
+ <DatePicker
86
+ isDatePicker={true}
87
+ placeholder="To"
88
+ value={range.to}
89
+ minDate={range.from ? range.from : today}
90
+ format="MM-dd-yyyy"
91
+ onChange={(v) => handleChange(v, "to")}
92
+ name="to"
93
+ />
94
+ </Fragment>
95
+ );
96
+ };
@@ -0,0 +1,25 @@
1
+ import { FormInput } from "..";
2
+ import React from "react";
3
+
4
+ export default {
5
+ title: "FormInput",
6
+ // component: Input,
7
+ };
8
+
9
+ export const Default = () => {
10
+ return <FormInput label="Name" />;
11
+ };
12
+
13
+ export const WithError = () => {
14
+ return <FormInput label="Name" error="is required and the rest of the message is really long" />;
15
+ };
16
+
17
+ export const Select = () => {
18
+ return (
19
+ <FormInput label="Select Number" type="select">
20
+ <option value="one">One</option>
21
+ <option value="two">Two</option>
22
+ <option value="three">Three</option>
23
+ </FormInput>
24
+ );
25
+ };
@@ -0,0 +1,43 @@
1
+ import React from "react";
2
+ import { CustomInput, FormGroup, Input, Label } from "..";
3
+
4
+ export default {
5
+ title: "Form",
6
+ };
7
+
8
+ export const Default = () => {
9
+ return (
10
+ <FormGroup>
11
+ <Label>Name</Label>
12
+ <Input />
13
+ </FormGroup>
14
+ );
15
+ };
16
+
17
+ export const Checkboxes = () => {
18
+ return (
19
+ <div>
20
+ <FormGroup check>
21
+ <Label check>
22
+ <Input type="checkbox" /> Native
23
+ </Label>
24
+ </FormGroup>
25
+
26
+ <CustomInput type="checkbox" id="checkbox-example" label="Custom" />
27
+ </div>
28
+ );
29
+ };
30
+
31
+ export const Radios = () => {
32
+ return (
33
+ <div>
34
+ <FormGroup check>
35
+ <Label check>
36
+ <Input type="radio" /> Native
37
+ </Label>
38
+ </FormGroup>
39
+
40
+ <CustomInput type="radio" id="radio-example" label="Custom" />
41
+ </div>
42
+ );
43
+ };
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import { CheckIcon } from "..";
3
+ import { TrashIcon } from "..";
4
+
5
+ export default {
6
+ title: "Icons",
7
+ };
8
+
9
+ export const Default = () => {
10
+ return (
11
+ <div>
12
+ <div>
13
+ CheckIcon <CheckIcon />
14
+ </div>
15
+
16
+ <div>
17
+ TrashIcon <TrashIcon />
18
+ </div>
19
+ </div>
20
+ );
21
+ };
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import { MiniStepper } from "..";
3
+
4
+ export default {
5
+ title: "MiniStepper",
6
+ component: MiniStepper,
7
+ };
8
+
9
+ export const Default = () => {
10
+ return <MiniStepper count={10} value={3} />;
11
+ };
12
+
13
+ export const Resized = () => {
14
+ return <MiniStepper count={10} value={3} size={30} />;
15
+ };
@@ -0,0 +1,26 @@
1
+ import { PhoneInput, FormInput } from "..";
2
+ import React, { useState } from "react";
3
+
4
+ export default {
5
+ title: "PhoneInput",
6
+ };
7
+
8
+ export const Default = () => {
9
+ const [value, setValue] = useState("");
10
+ return <PhoneInput onChange={setValue} value={value} />;
11
+ };
12
+
13
+ export const WithDefaultCountry = () => {
14
+ const [value, setValue] = useState("+1");
15
+ return <PhoneInput onChange={setValue} value={value} defaultCountry="US" />;
16
+ };
17
+
18
+ export const WithFormInput = () => {
19
+ const [value, setValue] = useState("");
20
+
21
+ return (
22
+ <FormInput label="Select Country">
23
+ <PhoneInput onChange={setValue} value={value} />
24
+ </FormInput>
25
+ );
26
+ };
@@ -0,0 +1,42 @@
1
+ import { ProductSelector } from "..";
2
+ import React, { useState } from "react";
3
+ import products from "../values/products";
4
+
5
+ export default {
6
+ title: "ProductSelector",
7
+ };
8
+
9
+ export const Default = () => {
10
+ const onChange = (selectedProducts) => {
11
+ console.log("Selected Products are", selectedProducts);
12
+ };
13
+ return <ProductSelector onChange={onChange} products={products} />;
14
+ };
15
+
16
+ export const withValues = () => {
17
+ const [selectedProducts, setSelectedProducts] = useState([
18
+ {
19
+ id: "1",
20
+ name: "Bird Watching Experience",
21
+ seller: { id: "1" },
22
+ photo: { src: "https://placeimg.com/140/105/animals" },
23
+ },
24
+ {
25
+ id: "2",
26
+ name: "1 Hour deep dive Scuba diving",
27
+ seller: { id: "2" },
28
+ photo: { src: "https://placeimg.com/140/105/nature" },
29
+ },
30
+ {
31
+ id: "3",
32
+ name: "Paragliding Experience",
33
+ seller: { id: "1" },
34
+ photo: { src: "https://placeimg.com/140/105/nature" },
35
+ },
36
+ ]);
37
+ const onChange = (selectedProducts) => {
38
+ console.log("Selected Products are", selectedProducts);
39
+ setSelectedProducts(selectedProducts);
40
+ };
41
+ return <ProductSelector onChange={onChange} value={selectedProducts} products={products} />;
42
+ };
@@ -0,0 +1,37 @@
1
+ import React, { useState } from "react";
2
+ import { ScheduleEditor } from "..";
3
+
4
+ export default {
5
+ title: "ScheduleEditor",
6
+ };
7
+
8
+ export const Default = () => {
9
+ const handleChange = (schedule) => {
10
+ console.log("Updated Schedule", schedule);
11
+ };
12
+ return <ScheduleEditor onChange={handleChange} />;
13
+ };
14
+
15
+ export const WithValues = () => {
16
+ const [schedule, setSchedule] = useState({
17
+ name: "Every Thursday",
18
+ type: "available",
19
+ repeat: "custom",
20
+ days: [4],
21
+ dates: ["2021-04-14", "2021-03-14", "2021-03-21"],
22
+ departure: "fixed",
23
+ priceDelta: 60,
24
+ priceDeltaType: "increase",
25
+ times: [1235, 855],
26
+ timeRanges: [{ startTime: 600, endTime: 1645 }, { endTime: 2240 }],
27
+ start: new Date("2021-03-18"),
28
+ end: new Date("2021-03-25"),
29
+ });
30
+
31
+ const handleChange = (schedule) => {
32
+ console.log("Updated Schedule in STORIES", schedule);
33
+ setSchedule(schedule);
34
+ };
35
+
36
+ return <ScheduleEditor value={schedule} price={200} onChange={handleChange} />;
37
+ };
@@ -0,0 +1,36 @@
1
+ import { Stepper, Step } from "..";
2
+ import React from "react";
3
+
4
+ export default {
5
+ title: "Stepper",
6
+ component: Stepper,
7
+ };
8
+
9
+ export const Default = () => {
10
+ return (
11
+ <Stepper>
12
+ <Step label="Basic Info" current>
13
+ 1
14
+ </Step>
15
+
16
+ <Step label="Feature Menu">2</Step>
17
+ <Step label="Use Xola">3</Step>
18
+ </Stepper>
19
+ );
20
+ };
21
+
22
+ export const Resized = () => {
23
+ return (
24
+ <Stepper size={40}>
25
+ <Step label="Basic Info" done>
26
+ 1
27
+ </Step>
28
+
29
+ <Step label="Feature Menu" current>
30
+ 2
31
+ </Step>
32
+
33
+ <Step label="Use Xola">3</Step>
34
+ </Stepper>
35
+ );
36
+ };
@@ -0,0 +1,14 @@
1
+ import React, { Fragment } from "react";
2
+ import { TimePicker } from "..";
3
+
4
+ export default {
5
+ title: "TimePicker",
6
+ };
7
+
8
+ export const Default = () => {
9
+ return <TimePicker onChange={(value) => console.log(value)} />;
10
+ };
11
+
12
+ export const WithValue = () => {
13
+ return <TimePicker value={1825} onChange={(value) => console.log(value)} />;
14
+ };
@@ -0,0 +1,18 @@
1
+ import React, { Fragment } from "react";
2
+
3
+ export default {
4
+ title: "Typography",
5
+ };
6
+
7
+ export const Default = () => {
8
+ return (
9
+ <Fragment>
10
+ <h1>Heading 1</h1>
11
+ <h2>Heading 2</h2>
12
+ <h3>Heading 3</h3>
13
+ <h4>Heading 4</h4>
14
+ <h5>Heading 5</h5>
15
+ <h6>Heading 6</h6>
16
+ </Fragment>
17
+ );
18
+ };
@@ -0,0 +1,60 @@
1
+ @import "./variables.scss";
2
+
3
+ // Removes the "x" icon from invalid form inputs.
4
+ .form-control.is-invalid {
5
+ background-image: none;
6
+ padding-right: $input-padding-x;
7
+ }
8
+
9
+ .cover {
10
+ object-fit: cover;
11
+ }
12
+
13
+ .bg-cover {
14
+ background-size: cover;
15
+ }
16
+
17
+ .form-group label {
18
+ font-size: 0.75rem;
19
+ font-weight: bold;
20
+ margin-bottom: 0.25rem;
21
+ }
22
+
23
+ .form-check-label,
24
+ .custom-control-label {
25
+ font-size: 0.875rem !important;
26
+ font-weight: normal !important;
27
+ margin-bottom: 0 !important;
28
+ color: $secondary;
29
+ }
30
+
31
+ .form-check-label .form-check-input {
32
+ margin-top: 0.25rem; // To compensate for smaller base font size.
33
+ }
34
+
35
+ .custom-control-label::before,
36
+ .custom-control-label::after {
37
+ top: 0.1rem;
38
+ }
39
+
40
+ .cursor-pointer {
41
+ cursor: pointer;
42
+ }
43
+
44
+ .modal-header {
45
+ border-bottom: none;
46
+ justify-content: center;
47
+
48
+ .modal-title {
49
+ flex: 1;
50
+ text-align: center;
51
+ }
52
+
53
+ .close {
54
+ margin-left: 0;
55
+ }
56
+ }
57
+
58
+ .modal-footer {
59
+ border-top: none;
60
+ }
@@ -0,0 +1,3 @@
1
+ @import "./variables.scss";
2
+ @import "~bootstrap/scss/bootstrap";
3
+ @import "./custom.scss";
@@ -0,0 +1,43 @@
1
+ $font-size-base: 0.875rem; // ~14px
2
+
3
+ // Base body color.
4
+ $body-color: #222324;
5
+ $dark: #222324;
6
+ $light: #f0f2f4;
7
+
8
+ // Theme colors.
9
+ $theme-colors: (
10
+ "primary": #1352c6,
11
+ "secondary": #505254,
12
+ "success": #27ce70,
13
+ "info": #3fe2ee,
14
+ "danger": #ff5a5a,
15
+ "warning": #ffc03d,
16
+ );
17
+
18
+ // Fonts.
19
+ $font-family-sans-serif: "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;
20
+
21
+ // Fixes button label contrast issue when theme colors are changed.
22
+ // The yiq lightness value that determines when the lightness of color changes from "dark" to "light".
23
+ // Acceptable values are between 0 and 255.
24
+ $yiq-contrasted-threshold: 200;
25
+
26
+ // Border radius.
27
+ $border-color: #d3d3d3;
28
+ $border-radius: 0.25rem; // 4px
29
+ $border-radius-lg: 0.375rem; // 6px
30
+ $border-radius-sm: 0.1875rem; // 3px
31
+
32
+ //Hover
33
+ $hover-background: #f2f2f2;
34
+
35
+ //Input Border
36
+ $input-border: #ced4da;
37
+ $input-color: #495057;
38
+
39
+ //Box Shadow
40
+ $box-shadow-color: #8798ad;
41
+ @import "~bootstrap/scss/functions";
42
+ @import "~bootstrap/scss/variables";
43
+ @import "~bootstrap/scss/mixins";