@dktunited-techoff/techoff-suite-ui 0.9.3 → 0.9.5
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/esm/assets/fonts/Montserrat-Medium.ttf +0 -0
- package/esm/assets/fonts/Roboto-Light.ttf +0 -0
- package/esm/components/Button/Button.css +93 -0
- package/esm/components/Button/Button.d.ts +5 -0
- package/esm/components/Button/Button.js +17 -0
- package/esm/components/Button/Button.js.map +1 -0
- package/esm/components/Button/Button.types.d.ts +9 -0
- package/esm/components/Button/Button.types.js +2 -0
- package/esm/components/Button/Button.types.js.map +1 -0
- package/esm/components/Button/__stories__/Button.stories.mdx +74 -0
- package/esm/components/Checkbox/Checkbox.css +72 -0
- package/esm/components/Checkbox/Checkbox.d.ts +4 -0
- package/esm/components/Checkbox/Checkbox.js +18 -0
- package/esm/components/Checkbox/Checkbox.js.map +1 -0
- package/esm/components/Checkbox/Checkbox.types.d.ts +7 -0
- package/esm/components/Checkbox/Checkbox.types.js +2 -0
- package/esm/components/Checkbox/Checkbox.types.js.map +1 -0
- package/esm/components/Checkbox/__stories__/Checkbox.stories.mdx +56 -0
- package/esm/components/Icon/Icon.css +26 -0
- package/esm/components/Icon/Icon.d.ts +4 -0
- package/esm/components/Icon/Icon.js +12 -0
- package/esm/components/Icon/Icon.js.map +1 -0
- package/esm/components/Icon/Icon.types.d.ts +4 -0
- package/esm/components/Icon/Icon.types.js +2 -0
- package/esm/components/Icon/Icon.types.js.map +1 -0
- package/esm/components/Icon/__stories__/Icon.stories.mdx +89 -0
- package/esm/components/Icon/icons/add-circle.svg +1 -0
- package/esm/components/Icon/icons/add.svg +1 -0
- package/esm/components/Icon/icons/alert-circle-filled.svg +1 -0
- package/esm/components/Icon/icons/alert-circle.svg +1 -0
- package/esm/components/Icon/icons/alert-triangle-filled.svg +1 -0
- package/esm/components/Icon/icons/alert-triangle.svg +1 -0
- package/esm/components/Icon/icons/arrow-diagonal-collapse.svg +1 -0
- package/esm/components/Icon/icons/arrow-diagonal-expand.svg +1 -0
- package/esm/components/Icon/icons/arrow-down.svg +1 -0
- package/esm/components/Icon/icons/arrow-go-back.svg +1 -0
- package/esm/components/Icon/icons/arrow-left-right.svg +1 -0
- package/esm/components/Icon/icons/arrow-left.svg +1 -0
- package/esm/components/Icon/icons/arrow-right.svg +1 -0
- package/esm/components/Icon/icons/arrow-up-down.svg +1 -0
- package/esm/components/Icon/icons/arrow-up.svg +1 -0
- package/esm/components/Icon/icons/check-circle-filled.svg +1 -0
- package/esm/components/Icon/icons/check-circle.svg +1 -0
- package/esm/components/Icon/icons/check-square-filled.svg +1 -0
- package/esm/components/Icon/icons/check-square.svg +1 -0
- package/esm/components/Icon/icons/check.svg +1 -0
- package/esm/components/Icon/icons/chevron-down.svg +1 -0
- package/esm/components/Icon/icons/chevron-left.svg +1 -0
- package/esm/components/Icon/icons/chevron-right.svg +1 -0
- package/esm/components/Icon/icons/chevron-up.svg +1 -0
- package/esm/components/Icon/icons/circle.svg +1 -0
- package/esm/components/Icon/icons/close-circle.svg +1 -0
- package/esm/components/Icon/icons/close.svg +1 -0
- package/esm/components/Icon/icons/currency-euro.svg +1 -0
- package/esm/components/Icon/icons/download.svg +1 -0
- package/esm/components/Icon/icons/edit.svg +1 -0
- package/esm/components/Icon/icons/external-link.svg +1 -0
- package/esm/components/Icon/icons/filter-off.svg +1 -0
- package/esm/components/Icon/icons/filter.svg +1 -0
- package/esm/components/Icon/icons/flashlight-off.svg +1 -0
- package/esm/components/Icon/icons/flashlight.svg +1 -0
- package/esm/components/Icon/icons/header-bikestudio.svg +32 -0
- package/esm/components/Icon/icons/header-nsc-helmet.svg +32 -0
- package/esm/components/Icon/icons/header-opticost.svg +32 -0
- package/esm/components/Icon/icons/header-repairability.svg +32 -0
- package/esm/components/Icon/icons/heart-filled.svg +1 -0
- package/esm/components/Icon/icons/heart.svg +1 -0
- package/esm/components/Icon/icons/home.svg +1 -0
- package/esm/components/Icon/icons/index.d.ts +3 -0
- package/esm/components/Icon/icons/index.js +53 -0
- package/esm/components/Icon/icons/index.js.map +1 -0
- package/esm/components/Icon/icons/index.ts +52 -0
- package/esm/components/Icon/icons/link.svg +1 -0
- package/esm/components/Icon/icons/list-settings.svg +1 -0
- package/esm/components/Icon/icons/lock.svg +1 -0
- package/esm/components/Icon/icons/save.svg +1 -0
- package/esm/components/Icon/icons/search.svg +1 -0
- package/esm/components/Icon/icons/square.svg +1 -0
- package/esm/components/Icon/icons/tools.svg +1 -0
- package/esm/components/Icon/icons/user.svg +1 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.css +58 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.d.ts +4 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.js +13 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.js.map +1 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.tsx +24 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.types.d.ts +8 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.types.js +2 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.types.js.map +1 -0
- package/esm/components/Inputs/BooleanInput/BooleanInput.types.ts +8 -0
- package/esm/components/Inputs/BooleanInput/__stories__/BooleanInput.stories.mdx +53 -0
- package/esm/components/Inputs/TextInput/TextInput.css +58 -0
- package/esm/components/Inputs/TextInput/TextInput.d.ts +4 -0
- package/esm/components/Inputs/TextInput/TextInput.js +17 -0
- package/esm/components/Inputs/TextInput/TextInput.js.map +1 -0
- package/esm/components/Inputs/TextInput/TextInput.tsx +46 -0
- package/esm/components/Inputs/TextInput/TextInput.types.d.ts +12 -0
- package/esm/components/Inputs/TextInput/TextInput.types.js +2 -0
- package/esm/components/Inputs/TextInput/TextInput.types.js.map +1 -0
- package/esm/components/Inputs/TextInput/TextInput.types.ts +12 -0
- package/esm/components/Inputs/TextInput/__stories__/TextInput.stories.mdx +76 -0
- package/esm/components/Loader/Loader.css +42 -0
- package/esm/components/Loader/Loader.d.ts +4 -0
- package/esm/components/Loader/Loader.js +6 -0
- package/esm/components/Loader/Loader.js.map +1 -0
- package/esm/components/Loader/Loader.types.d.ts +3 -0
- package/esm/components/Loader/Loader.types.js +2 -0
- package/esm/components/Loader/Loader.types.js.map +1 -0
- package/esm/components/Loader/__stories__/Loader.stories.mdx +30 -0
- package/esm/components/Select/Select.css +30 -0
- package/esm/components/Select/Select.d.ts +4 -0
- package/esm/components/Select/Select.js +16 -0
- package/esm/components/Select/Select.js.map +1 -0
- package/esm/components/Select/Select.types.d.ts +6 -0
- package/esm/components/Select/Select.types.js +2 -0
- package/esm/components/Select/Select.types.js.map +1 -0
- package/esm/components/Select/__stories__/Select.stories.mdx +40 -0
- package/esm/hooks/use-click-outside.d.ts +2 -0
- package/esm/hooks/use-click-outside.js +14 -0
- package/esm/hooks/use-click-outside.js.map +1 -0
- package/esm/index.d.ts +10 -0
- package/esm/index.js +11 -0
- package/esm/index.js.map +1 -0
- package/esm/layouts/Header/Header.css +125 -0
- package/esm/layouts/Header/Header.d.ts +4 -0
- package/esm/layouts/Header/Header.js +14 -0
- package/esm/layouts/Header/Header.js.map +1 -0
- package/esm/layouts/Header/Header.types.d.ts +10 -0
- package/esm/layouts/Header/Header.types.js +2 -0
- package/esm/layouts/Header/Header.types.js.map +1 -0
- package/esm/layouts/Header/HeaderProfile.d.ts +3 -0
- package/esm/layouts/Header/HeaderProfile.js +35 -0
- package/esm/layouts/Header/HeaderProfile.js.map +1 -0
- package/esm/layouts/Header/__stories__/Header.stories.mdx +41 -0
- package/esm/layouts/Navigation/Navigation.css +74 -0
- package/esm/layouts/Navigation/Navigation.d.ts +6 -0
- package/esm/layouts/Navigation/Navigation.js +27 -0
- package/esm/layouts/Navigation/Navigation.js.map +1 -0
- package/esm/layouts/Navigation/Navigation.types.d.ts +10 -0
- package/esm/layouts/Navigation/Navigation.types.js +2 -0
- package/esm/layouts/Navigation/Navigation.types.js.map +1 -0
- package/esm/layouts/Navigation/__stories__/Navigation.stories.mdx +45 -0
- package/esm/utils/string.utils.d.ts +1 -0
- package/esm/utils/string.utils.js +2 -0
- package/esm/utils/string.utils.js.map +1 -0
- package/lib/assets/fonts/Montserrat-Medium.ttf +0 -0
- package/lib/assets/fonts/Roboto-Light.ttf +0 -0
- package/lib/components/Button/Button.css +93 -0
- package/lib/components/Button/Button.d.ts +5 -0
- package/lib/components/Button/Button.js +21 -0
- package/lib/components/Button/Button.js.map +1 -0
- package/lib/components/Button/Button.types.d.ts +9 -0
- package/lib/components/Button/Button.types.js +3 -0
- package/lib/components/Button/Button.types.js.map +1 -0
- package/lib/components/Button/__stories__/Button.stories.mdx +74 -0
- package/lib/components/Checkbox/Checkbox.css +72 -0
- package/lib/components/Checkbox/Checkbox.d.ts +4 -0
- package/lib/components/Checkbox/Checkbox.js +22 -0
- package/lib/components/Checkbox/Checkbox.js.map +1 -0
- package/lib/components/Checkbox/Checkbox.types.d.ts +7 -0
- package/lib/components/Checkbox/Checkbox.types.js +3 -0
- package/lib/components/Checkbox/Checkbox.types.js.map +1 -0
- package/lib/components/Checkbox/__stories__/Checkbox.stories.mdx +56 -0
- package/lib/components/Icon/Icon.css +26 -0
- package/lib/components/Icon/Icon.d.ts +4 -0
- package/lib/components/Icon/Icon.js +16 -0
- package/lib/components/Icon/Icon.js.map +1 -0
- package/lib/components/Icon/Icon.types.d.ts +4 -0
- package/lib/components/Icon/Icon.types.js +3 -0
- package/lib/components/Icon/Icon.types.js.map +1 -0
- package/lib/components/Icon/__stories__/Icon.stories.mdx +89 -0
- package/lib/components/Icon/icons/add-circle.svg +1 -0
- package/lib/components/Icon/icons/add.svg +1 -0
- package/lib/components/Icon/icons/alert-circle-filled.svg +1 -0
- package/lib/components/Icon/icons/alert-circle.svg +1 -0
- package/lib/components/Icon/icons/alert-triangle-filled.svg +1 -0
- package/lib/components/Icon/icons/alert-triangle.svg +1 -0
- package/lib/components/Icon/icons/arrow-diagonal-collapse.svg +1 -0
- package/lib/components/Icon/icons/arrow-diagonal-expand.svg +1 -0
- package/lib/components/Icon/icons/arrow-down.svg +1 -0
- package/lib/components/Icon/icons/arrow-go-back.svg +1 -0
- package/lib/components/Icon/icons/arrow-left-right.svg +1 -0
- package/lib/components/Icon/icons/arrow-left.svg +1 -0
- package/lib/components/Icon/icons/arrow-right.svg +1 -0
- package/lib/components/Icon/icons/arrow-up-down.svg +1 -0
- package/lib/components/Icon/icons/arrow-up.svg +1 -0
- package/lib/components/Icon/icons/check-circle-filled.svg +1 -0
- package/lib/components/Icon/icons/check-circle.svg +1 -0
- package/lib/components/Icon/icons/check-square-filled.svg +1 -0
- package/lib/components/Icon/icons/check-square.svg +1 -0
- package/lib/components/Icon/icons/check.svg +1 -0
- package/lib/components/Icon/icons/chevron-down.svg +1 -0
- package/lib/components/Icon/icons/chevron-left.svg +1 -0
- package/lib/components/Icon/icons/chevron-right.svg +1 -0
- package/lib/components/Icon/icons/chevron-up.svg +1 -0
- package/lib/components/Icon/icons/circle.svg +1 -0
- package/lib/components/Icon/icons/close-circle.svg +1 -0
- package/lib/components/Icon/icons/close.svg +1 -0
- package/lib/components/Icon/icons/currency-euro.svg +1 -0
- package/lib/components/Icon/icons/download.svg +1 -0
- package/lib/components/Icon/icons/edit.svg +1 -0
- package/lib/components/Icon/icons/external-link.svg +1 -0
- package/lib/components/Icon/icons/filter-off.svg +1 -0
- package/lib/components/Icon/icons/filter.svg +1 -0
- package/lib/components/Icon/icons/flashlight-off.svg +1 -0
- package/lib/components/Icon/icons/flashlight.svg +1 -0
- package/lib/components/Icon/icons/header-bikestudio.svg +32 -0
- package/lib/components/Icon/icons/header-nsc-helmet.svg +32 -0
- package/lib/components/Icon/icons/header-opticost.svg +32 -0
- package/lib/components/Icon/icons/header-repairability.svg +32 -0
- package/lib/components/Icon/icons/heart-filled.svg +1 -0
- package/lib/components/Icon/icons/heart.svg +1 -0
- package/lib/components/Icon/icons/home.svg +1 -0
- package/lib/components/Icon/icons/index.d.ts +3 -0
- package/lib/components/Icon/icons/index.js +56 -0
- package/lib/components/Icon/icons/index.js.map +1 -0
- package/lib/components/Icon/icons/index.ts +52 -0
- package/lib/components/Icon/icons/link.svg +1 -0
- package/lib/components/Icon/icons/list-settings.svg +1 -0
- package/lib/components/Icon/icons/lock.svg +1 -0
- package/lib/components/Icon/icons/save.svg +1 -0
- package/lib/components/Icon/icons/search.svg +1 -0
- package/lib/components/Icon/icons/square.svg +1 -0
- package/lib/components/Icon/icons/tools.svg +1 -0
- package/lib/components/Icon/icons/user.svg +1 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.css +58 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.d.ts +4 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.js +17 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.js.map +1 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.tsx +24 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.types.d.ts +8 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.types.js +3 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.types.js.map +1 -0
- package/lib/components/Inputs/BooleanInput/BooleanInput.types.ts +8 -0
- package/lib/components/Inputs/BooleanInput/__stories__/BooleanInput.stories.mdx +53 -0
- package/lib/components/Inputs/TextInput/TextInput.css +58 -0
- package/lib/components/Inputs/TextInput/TextInput.d.ts +4 -0
- package/lib/components/Inputs/TextInput/TextInput.js +21 -0
- package/lib/components/Inputs/TextInput/TextInput.js.map +1 -0
- package/lib/components/Inputs/TextInput/TextInput.tsx +46 -0
- package/lib/components/Inputs/TextInput/TextInput.types.d.ts +12 -0
- package/lib/components/Inputs/TextInput/TextInput.types.js +3 -0
- package/lib/components/Inputs/TextInput/TextInput.types.js.map +1 -0
- package/lib/components/Inputs/TextInput/TextInput.types.ts +12 -0
- package/lib/components/Inputs/TextInput/__stories__/TextInput.stories.mdx +76 -0
- package/lib/components/Loader/Loader.css +42 -0
- package/lib/components/Loader/Loader.d.ts +4 -0
- package/lib/components/Loader/Loader.js +10 -0
- package/lib/components/Loader/Loader.js.map +1 -0
- package/lib/components/Loader/Loader.types.d.ts +3 -0
- package/lib/components/Loader/Loader.types.js +3 -0
- package/lib/components/Loader/Loader.types.js.map +1 -0
- package/lib/components/Loader/__stories__/Loader.stories.mdx +30 -0
- package/lib/components/Select/Select.css +30 -0
- package/lib/components/Select/Select.d.ts +4 -0
- package/lib/components/Select/Select.js +20 -0
- package/lib/components/Select/Select.js.map +1 -0
- package/lib/components/Select/Select.types.d.ts +6 -0
- package/lib/components/Select/Select.types.js +3 -0
- package/lib/components/Select/Select.types.js.map +1 -0
- package/lib/components/Select/__stories__/Select.stories.mdx +40 -0
- package/lib/hooks/use-click-outside.d.ts +2 -0
- package/lib/hooks/use-click-outside.js +18 -0
- package/lib/hooks/use-click-outside.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +27 -0
- package/lib/index.js.map +1 -0
- package/lib/layouts/Header/Header.css +125 -0
- package/lib/layouts/Header/Header.d.ts +4 -0
- package/lib/layouts/Header/Header.js +18 -0
- package/lib/layouts/Header/Header.js.map +1 -0
- package/lib/layouts/Header/Header.types.d.ts +10 -0
- package/lib/layouts/Header/Header.types.js +3 -0
- package/lib/layouts/Header/Header.types.js.map +1 -0
- package/lib/layouts/Header/HeaderProfile.d.ts +3 -0
- package/lib/layouts/Header/HeaderProfile.js +39 -0
- package/lib/layouts/Header/HeaderProfile.js.map +1 -0
- package/lib/layouts/Header/__stories__/Header.stories.mdx +41 -0
- package/lib/layouts/Navigation/Navigation.css +74 -0
- package/lib/layouts/Navigation/Navigation.d.ts +6 -0
- package/lib/layouts/Navigation/Navigation.js +32 -0
- package/lib/layouts/Navigation/Navigation.js.map +1 -0
- package/lib/layouts/Navigation/Navigation.types.d.ts +10 -0
- package/lib/layouts/Navigation/Navigation.types.js +3 -0
- package/lib/layouts/Navigation/Navigation.types.js.map +1 -0
- package/lib/layouts/Navigation/__stories__/Navigation.stories.mdx +45 -0
- package/lib/utils/string.utils.d.ts +1 -0
- package/lib/utils/string.utils.js +6 -0
- package/lib/utils/string.utils.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/layouts/Navigation/Navigation.tsx +1 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { TextInputProps } from './TextInput.types';
|
|
3
|
+
import './TextInput.css';
|
|
4
|
+
export declare const TextInput: ({ errorLabel, icon, label, placeholder, value, autofocus, disabled, onBlur, onChange, onFocus, }: TextInputProps) => React.JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TextInput = void 0;
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const Icon_1 = require("../../Icon/Icon");
|
|
6
|
+
require("./TextInput.css");
|
|
7
|
+
const TextInput = ({ errorLabel, icon, label, placeholder, value, autofocus, disabled, onBlur, onChange, onFocus, }) => {
|
|
8
|
+
// ########
|
|
9
|
+
// Handlers
|
|
10
|
+
const handleChange = (e) => onChange(e.target.value);
|
|
11
|
+
// #########
|
|
12
|
+
// Rendering
|
|
13
|
+
return (React.createElement("div", { className: `text-input ${disabled ? 'text-input--disabled' : ''}` },
|
|
14
|
+
label && React.createElement("label", null, label),
|
|
15
|
+
React.createElement("div", { className: `text-input-container ${errorLabel ? 'text-input-container--error' : ''}` },
|
|
16
|
+
React.createElement("input", { type: "text", placeholder: placeholder, value: value, autoFocus: autofocus, disabled: disabled, onBlur: onBlur, onChange: handleChange, onFocus: onFocus }),
|
|
17
|
+
icon && React.createElement(Icon_1.Icon, { name: icon, size: "16" })),
|
|
18
|
+
errorLabel && React.createElement("div", { className: "text-input--error" }, errorLabel)));
|
|
19
|
+
};
|
|
20
|
+
exports.TextInput = TextInput;
|
|
21
|
+
//# sourceMappingURL=TextInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../../../src/components/Inputs/TextInput/TextInput.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B,0CAAuC;AAEvC,2BAAyB;AAElB,MAAM,SAAS,GAAG,CAAC,EACxB,UAAU,EACV,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,GACQ,EAAE,EAAE;IACnB,WAAW;IACX,WAAW;IACX,MAAM,YAAY,GAAG,CAAC,CAAgC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpF,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,6BAAK,SAAS,EAAE,cAAc,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,KAAK,IAAI,mCAAQ,KAAK,CAAS;QAEhC,6BAAK,SAAS,EAAE,wBAAwB,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE;YACvF,+BACE,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,GAChB;YACD,IAAI,IAAI,oBAAC,WAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,GAAG,CACnC;QAEL,UAAU,IAAI,6BAAK,SAAS,EAAC,mBAAmB,IAAE,UAAU,CAAO,CAChE,CACP,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,SAAS,aAuCpB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChangeEvent } from 'react';
|
|
3
|
+
import { Icon } from '../../Icon/Icon';
|
|
4
|
+
import { TextInputProps } from './TextInput.types';
|
|
5
|
+
import './TextInput.css';
|
|
6
|
+
|
|
7
|
+
export const TextInput = ({
|
|
8
|
+
errorLabel,
|
|
9
|
+
icon,
|
|
10
|
+
label,
|
|
11
|
+
placeholder,
|
|
12
|
+
value,
|
|
13
|
+
autofocus,
|
|
14
|
+
disabled,
|
|
15
|
+
onBlur,
|
|
16
|
+
onChange,
|
|
17
|
+
onFocus,
|
|
18
|
+
}: TextInputProps) => {
|
|
19
|
+
// ########
|
|
20
|
+
// Handlers
|
|
21
|
+
const handleChange = (e: ChangeEvent<HTMLInputElement>) => onChange(e.target.value);
|
|
22
|
+
|
|
23
|
+
// #########
|
|
24
|
+
// Rendering
|
|
25
|
+
return (
|
|
26
|
+
<div className={`text-input ${disabled ? 'text-input--disabled' : ''}`}>
|
|
27
|
+
{label && <label>{label}</label>}
|
|
28
|
+
|
|
29
|
+
<div className={`text-input-container ${errorLabel ? 'text-input-container--error' : ''}`}>
|
|
30
|
+
<input
|
|
31
|
+
type="text"
|
|
32
|
+
placeholder={placeholder}
|
|
33
|
+
value={value}
|
|
34
|
+
autoFocus={autofocus}
|
|
35
|
+
disabled={disabled}
|
|
36
|
+
onBlur={onBlur}
|
|
37
|
+
onChange={handleChange}
|
|
38
|
+
onFocus={onFocus}
|
|
39
|
+
/>
|
|
40
|
+
{icon && <Icon name={icon} size="16" />}
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
{errorLabel && <div className="text-input--error">{errorLabel}</div>}
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type TextInputProps = {
|
|
2
|
+
errorLabel?: string;
|
|
3
|
+
icon?: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
value: string;
|
|
7
|
+
autofocus?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
onBlur?: () => void;
|
|
10
|
+
onChange: (value: string) => void;
|
|
11
|
+
onFocus?: () => void;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.types.js","sourceRoot":"","sources":["../../../../src/components/Inputs/TextInput/TextInput.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type TextInputProps = {
|
|
2
|
+
errorLabel?: string;
|
|
3
|
+
icon?: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
value: string;
|
|
7
|
+
autofocus?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
onBlur?: () => void;
|
|
10
|
+
onChange: (value: string) => void;
|
|
11
|
+
onFocus?: () => void;
|
|
12
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArgsTable, Canvas, Meta, Story } from '@storybook/blocks';
|
|
3
|
+
import { TextInput } from '../TextInput';
|
|
4
|
+
import { icons } from '../../../Icon/icons';
|
|
5
|
+
|
|
6
|
+
<Meta title="Components/Inputs/TextInput" />
|
|
7
|
+
|
|
8
|
+
export const inputArgTypes = {
|
|
9
|
+
errorLabel: { control: 'text', description: 'Show error on the input.' },
|
|
10
|
+
icon: {
|
|
11
|
+
control: 'select',
|
|
12
|
+
options: Object.keys(icons),
|
|
13
|
+
description: 'Name of an icon.',
|
|
14
|
+
},
|
|
15
|
+
label: {
|
|
16
|
+
control: 'text',
|
|
17
|
+
description: 'Label of the input.',
|
|
18
|
+
},
|
|
19
|
+
placeholder: {
|
|
20
|
+
control: 'text',
|
|
21
|
+
description: 'Placeholder displayed when the input is empty.',
|
|
22
|
+
},
|
|
23
|
+
value: {
|
|
24
|
+
control: 'text',
|
|
25
|
+
description: 'Value of the input.',
|
|
26
|
+
},
|
|
27
|
+
autofocus: {
|
|
28
|
+
control: 'boolean',
|
|
29
|
+
description: 'Auto focus the input once mounted',
|
|
30
|
+
table: { defaultValue: { summary: 'false' } },
|
|
31
|
+
},
|
|
32
|
+
disabled: {
|
|
33
|
+
control: 'boolean',
|
|
34
|
+
description: 'Auto focus the input once mounted',
|
|
35
|
+
table: { defaultValue: { summary: 'false' } },
|
|
36
|
+
},
|
|
37
|
+
onBlur: {
|
|
38
|
+
control: 'function',
|
|
39
|
+
description: 'The handler called when the user blur the input.',
|
|
40
|
+
},
|
|
41
|
+
onChange: {
|
|
42
|
+
control: 'function',
|
|
43
|
+
description: 'The handler called when the value of the input changes.',
|
|
44
|
+
},
|
|
45
|
+
onFocus: {
|
|
46
|
+
control: 'function',
|
|
47
|
+
description: 'The handler called when the user focus the input.',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
# Text Input
|
|
52
|
+
|
|
53
|
+
Text input allows the user to enter content and data when the expected user input is a single line of text.
|
|
54
|
+
|
|
55
|
+
## Overview
|
|
56
|
+
|
|
57
|
+
<Canvas>
|
|
58
|
+
<Story
|
|
59
|
+
name="Overview"
|
|
60
|
+
args={{
|
|
61
|
+
errorLabel: '',
|
|
62
|
+
label: 'Label',
|
|
63
|
+
placeholder: 'This is a placeholder',
|
|
64
|
+
value: '',
|
|
65
|
+
autofocus: false,
|
|
66
|
+
disabled: false,
|
|
67
|
+
}}
|
|
68
|
+
argTypes={inputArgTypes}
|
|
69
|
+
>
|
|
70
|
+
{args => <TextInput {...args} />}
|
|
71
|
+
</Story>
|
|
72
|
+
</Canvas>
|
|
73
|
+
|
|
74
|
+
## Props
|
|
75
|
+
|
|
76
|
+
<ArgsTable story="Overview" of={TextInput} />
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@keyframes rotation {
|
|
2
|
+
0% {
|
|
3
|
+
transform: rotate(0deg);
|
|
4
|
+
}
|
|
5
|
+
100% {
|
|
6
|
+
transform: rotate(360deg);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.loader {
|
|
11
|
+
border: 2px solid;
|
|
12
|
+
border-color: #00689d transparent;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
display: inline-block;
|
|
15
|
+
box-sizing: border-box;
|
|
16
|
+
animation: rotation 1.5s linear infinite;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* ####### */
|
|
20
|
+
/* SIZES */
|
|
21
|
+
.loader--sm {
|
|
22
|
+
width: 24px;
|
|
23
|
+
height: 24px;
|
|
24
|
+
}
|
|
25
|
+
.loader--md {
|
|
26
|
+
width: 32px;
|
|
27
|
+
height: 32px;
|
|
28
|
+
}
|
|
29
|
+
.loader--lg {
|
|
30
|
+
width: 44px;
|
|
31
|
+
height: 44px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ######### */
|
|
35
|
+
/* GLOBALS */
|
|
36
|
+
* {
|
|
37
|
+
font-size: 14px;
|
|
38
|
+
outline: none;
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
|
|
41
|
+
'Helvetica Neue', sans-serif;
|
|
42
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Loader = void 0;
|
|
4
|
+
const React = require("react");
|
|
5
|
+
require("./Loader.css");
|
|
6
|
+
const Loader = ({ size = 'md' }) => {
|
|
7
|
+
return React.createElement("div", { className: `loader loader--${size}` });
|
|
8
|
+
};
|
|
9
|
+
exports.Loader = Loader;
|
|
10
|
+
//# sourceMappingURL=Loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../../src/components/Loader/Loader.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B,wBAAsB;AAEf,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAe,EAAE,EAAE;IACrD,OAAO,6BAAK,SAAS,EAAE,kBAAkB,IAAI,EAAE,GAAI,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loader.types.js","sourceRoot":"","sources":["../../../src/components/Loader/Loader.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArgsTable, Canvas, Meta, Story } from '@storybook/blocks';
|
|
3
|
+
import { Loader } from '../Loader';
|
|
4
|
+
|
|
5
|
+
<Meta title="Components/Loader" />
|
|
6
|
+
|
|
7
|
+
export const loaderArgTypes = {
|
|
8
|
+
size: {
|
|
9
|
+
control: 'inline-radio',
|
|
10
|
+
options: ['sm', 'md', 'lg'],
|
|
11
|
+
description: 'Define the size of the loader.',
|
|
12
|
+
table: { defaultValue: { summary: 'md' } },
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
# Loader
|
|
17
|
+
|
|
18
|
+
Loader express to user that an action is occuring.
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
<Canvas>
|
|
23
|
+
<Story name="Overview" args={{ size: 'md' }} argTypes={loaderArgTypes}>
|
|
24
|
+
{args => <Loader {...args}>{args.children}</Loader>}
|
|
25
|
+
</Story>
|
|
26
|
+
</Canvas>
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
<ArgsTable story="Overview" of={Loader} />
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
.select-container {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
}
|
|
5
|
+
.select-container > label {
|
|
6
|
+
display: block;
|
|
7
|
+
margin-bottom: 4px;
|
|
8
|
+
color: #012b49;
|
|
9
|
+
font-weight: 700;
|
|
10
|
+
}
|
|
11
|
+
.select-container > select {
|
|
12
|
+
width: 100%;
|
|
13
|
+
height: 32px;
|
|
14
|
+
padding: 0 40px 0 12px;
|
|
15
|
+
border: 1px solid #d4d4d4;
|
|
16
|
+
border-radius: 6px;
|
|
17
|
+
color: #007dbc;
|
|
18
|
+
font-weight: 700;
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* ######### */
|
|
23
|
+
/* GLOBALS */
|
|
24
|
+
* {
|
|
25
|
+
font-size: 14px;
|
|
26
|
+
outline: none;
|
|
27
|
+
box-sizing: border-box;
|
|
28
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
|
|
29
|
+
'Helvetica Neue', sans-serif;
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Select = void 0;
|
|
4
|
+
const React = require("react");
|
|
5
|
+
require("./Select.css");
|
|
6
|
+
const Select = ({ label, options, onChange }) => {
|
|
7
|
+
// ########
|
|
8
|
+
// Handlers
|
|
9
|
+
const handleChange = (e) => onChange(e.target.value);
|
|
10
|
+
// #########
|
|
11
|
+
// Rendering
|
|
12
|
+
return (React.createElement("div", { className: "select-container" },
|
|
13
|
+
label && React.createElement("label", null, label),
|
|
14
|
+
React.createElement("select", { onChange: handleChange },
|
|
15
|
+
React.createElement(React.Fragment, null,
|
|
16
|
+
React.createElement("option", null, "-"),
|
|
17
|
+
options))));
|
|
18
|
+
};
|
|
19
|
+
exports.Select = Select;
|
|
20
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAG/B,wBAAsB;AAEf,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAe,EAAE,EAAE;IAClE,WAAW;IACX,WAAW;IACX,MAAM,YAAY,GAAG,CAAC,CAAiC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAErF,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;QAC9B,KAAK,IAAI,mCAAQ,KAAK,CAAS;QAChC,gCAAQ,QAAQ,EAAE,YAAY;YAC5B;gBACE,wCAAkB;gBACjB,OAAO,CACP,CACI,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,MAAM,UAkBjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.types.js","sourceRoot":"","sources":["../../../src/components/Select/Select.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArgsTable, Canvas, Meta, Story } from '@storybook/blocks';
|
|
3
|
+
import { Select } from '../Select';
|
|
4
|
+
|
|
5
|
+
<Meta title="Components/Select" />
|
|
6
|
+
|
|
7
|
+
export const selectArgTypes = {
|
|
8
|
+
label: {
|
|
9
|
+
control: 'text',
|
|
10
|
+
description: 'Label of the input.',
|
|
11
|
+
},
|
|
12
|
+
onChange: {
|
|
13
|
+
control: 'function',
|
|
14
|
+
description: 'The handler called when the value of the select changes.',
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
# Loader
|
|
19
|
+
|
|
20
|
+
Loader express to user that an action is occuring.
|
|
21
|
+
|
|
22
|
+
## Overview
|
|
23
|
+
|
|
24
|
+
<Canvas>
|
|
25
|
+
<Story
|
|
26
|
+
name="Overview"
|
|
27
|
+
args={{
|
|
28
|
+
label: 'Label',
|
|
29
|
+
options: [<option value="orange">Orange</option>, <option value="apple">Apple</option>],
|
|
30
|
+
onChange: () => {},
|
|
31
|
+
}}
|
|
32
|
+
argTypes={selectArgTypes}
|
|
33
|
+
>
|
|
34
|
+
{args => <Select {...args} />}
|
|
35
|
+
</Story>
|
|
36
|
+
</Canvas>
|
|
37
|
+
|
|
38
|
+
## Props
|
|
39
|
+
|
|
40
|
+
<ArgsTable story="Overview" of={Select} />
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useClickOutside = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useClickOutside = (callback) => {
|
|
6
|
+
const ref = (0, react_1.useRef)(null);
|
|
7
|
+
const handleClickOutside = (event) => {
|
|
8
|
+
if (ref.current && !ref.current.contains(event.target))
|
|
9
|
+
callback();
|
|
10
|
+
};
|
|
11
|
+
(0, react_1.useEffect)(() => {
|
|
12
|
+
document.addEventListener('click', handleClickOutside);
|
|
13
|
+
return () => document.removeEventListener('click', handleClickOutside);
|
|
14
|
+
}, []);
|
|
15
|
+
return ref;
|
|
16
|
+
};
|
|
17
|
+
exports.useClickOutside = useClickOutside;
|
|
18
|
+
//# sourceMappingURL=use-click-outside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-click-outside.js","sourceRoot":"","sources":["../../src/hooks/use-click-outside.tsx"],"names":[],"mappings":";;;AAAA,iCAA0C;AAEnC,MAAM,eAAe,GAAG,CAAC,QAAoB,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAEzC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;QAC/C,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;YAAE,QAAQ,EAAE,CAAC;IAC7E,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './components/Button/Button';
|
|
2
|
+
export * from './components/Checkbox/Checkbox';
|
|
3
|
+
export * from './components/Icon/Icon';
|
|
4
|
+
export * from './components/Inputs/BooleanInput/BooleanInput';
|
|
5
|
+
export * from './components/Inputs/TextInput/TextInput';
|
|
6
|
+
export * from './components/Loader/Loader';
|
|
7
|
+
export * from './components/Select/Select';
|
|
8
|
+
export * from './layouts/Header/Header';
|
|
9
|
+
export * from './layouts/Header/HeaderProfile';
|
|
10
|
+
export * from './layouts/Navigation/Navigation';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./components/Button/Button"), exports);
|
|
18
|
+
__exportStar(require("./components/Checkbox/Checkbox"), exports);
|
|
19
|
+
__exportStar(require("./components/Icon/Icon"), exports);
|
|
20
|
+
__exportStar(require("./components/Inputs/BooleanInput/BooleanInput"), exports);
|
|
21
|
+
__exportStar(require("./components/Inputs/TextInput/TextInput"), exports);
|
|
22
|
+
__exportStar(require("./components/Loader/Loader"), exports);
|
|
23
|
+
__exportStar(require("./components/Select/Select"), exports);
|
|
24
|
+
__exportStar(require("./layouts/Header/Header"), exports);
|
|
25
|
+
__exportStar(require("./layouts/Header/HeaderProfile"), exports);
|
|
26
|
+
__exportStar(require("./layouts/Navigation/Navigation"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,iEAA+C;AAC/C,yDAAuC;AACvC,gFAA8D;AAC9D,0EAAwD;AACxD,6DAA2C;AAC3C,6DAA2C;AAC3C,0DAAwC;AACxC,iEAA+C;AAC/C,kEAAgD"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: 'Montserrat-Medium';
|
|
3
|
+
src: url('../../assets/fonts/Montserrat-Medium.ttf');
|
|
4
|
+
}
|
|
5
|
+
@font-face {
|
|
6
|
+
font-family: 'Roboto-Light';
|
|
7
|
+
src: url('../../assets/fonts/Roboto-Light.ttf');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* ######## */
|
|
11
|
+
/* HEADER */
|
|
12
|
+
header {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 64px;
|
|
18
|
+
padding: 0 24px;
|
|
19
|
+
}
|
|
20
|
+
.header-left-side {
|
|
21
|
+
display: flex;
|
|
22
|
+
flex: 1;
|
|
23
|
+
align-items: center;
|
|
24
|
+
height: 100%;
|
|
25
|
+
}
|
|
26
|
+
.header-actions {
|
|
27
|
+
display: flex;
|
|
28
|
+
}
|
|
29
|
+
.header-actions > * {
|
|
30
|
+
margin-left: 12px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* ################ */
|
|
34
|
+
/* HEADER TECHOFF */
|
|
35
|
+
.header-techoff {
|
|
36
|
+
display: flex;
|
|
37
|
+
height: 18px;
|
|
38
|
+
margin-left: 4px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ################ */
|
|
42
|
+
/* HEADER PROFILE */
|
|
43
|
+
.header-profile-container {
|
|
44
|
+
position: relative;
|
|
45
|
+
}
|
|
46
|
+
.header-profile-dropdown {
|
|
47
|
+
display: flex;
|
|
48
|
+
height: 40px;
|
|
49
|
+
border-radius: 9999px;
|
|
50
|
+
box-shadow: 0px 12px 12px 0px #00537d1a;
|
|
51
|
+
color: #4e5d6b;
|
|
52
|
+
background-color: #ffffff;
|
|
53
|
+
cursor: pointer;
|
|
54
|
+
}
|
|
55
|
+
.header-profile-img-container {
|
|
56
|
+
width: 40px;
|
|
57
|
+
height: 40px;
|
|
58
|
+
padding: 4px;
|
|
59
|
+
border-radius: 9999px;
|
|
60
|
+
}
|
|
61
|
+
.header-profile-img-icon {
|
|
62
|
+
display: flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
justify-content: center;
|
|
65
|
+
width: 32px;
|
|
66
|
+
height: 32px;
|
|
67
|
+
border-radius: 9999px;
|
|
68
|
+
background-color: rgb(229, 229, 229);
|
|
69
|
+
}
|
|
70
|
+
.header-profile-name {
|
|
71
|
+
display: flex;
|
|
72
|
+
flex: 1;
|
|
73
|
+
align-items: center;
|
|
74
|
+
padding-left: 4px;
|
|
75
|
+
}
|
|
76
|
+
.header-profile-chevron {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
justify-content: center;
|
|
80
|
+
width: 40px;
|
|
81
|
+
height: 40px;
|
|
82
|
+
border-radius: 9999px;
|
|
83
|
+
}
|
|
84
|
+
.header-profile-menu {
|
|
85
|
+
position: absolute;
|
|
86
|
+
right: 0;
|
|
87
|
+
top: 48px;
|
|
88
|
+
width: 288px;
|
|
89
|
+
padding: 4px;
|
|
90
|
+
border-radius: 8px;
|
|
91
|
+
box-shadow: 0px 12px 12px 0px #00537d1a;
|
|
92
|
+
background-color: #ffffff;
|
|
93
|
+
z-index: 10;
|
|
94
|
+
}
|
|
95
|
+
.header-profile-menu-item {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
height: 40px;
|
|
99
|
+
border-radius: 6px;
|
|
100
|
+
cursor: pointer;
|
|
101
|
+
}
|
|
102
|
+
.header-profile-menu-item:hover {
|
|
103
|
+
background-color: #e7f3f9;
|
|
104
|
+
}
|
|
105
|
+
.header-profile-menu-item-icon {
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
justify-content: center;
|
|
109
|
+
width: 40px;
|
|
110
|
+
height: 40px;
|
|
111
|
+
}
|
|
112
|
+
.header-profile-menu-item-label {
|
|
113
|
+
flex: 1;
|
|
114
|
+
padding: 0 2px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* ######### */
|
|
118
|
+
/* GLOBALS */
|
|
119
|
+
* {
|
|
120
|
+
font-size: 14px;
|
|
121
|
+
outline: none;
|
|
122
|
+
box-sizing: border-box;
|
|
123
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
|
|
124
|
+
'Helvetica Neue', sans-serif;
|
|
125
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Header = void 0;
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const icons_1 = require("../../components/Icon/icons");
|
|
7
|
+
require("./Header.css");
|
|
8
|
+
const Header = ({ actions, appName }) => {
|
|
9
|
+
// #########
|
|
10
|
+
// Rendering
|
|
11
|
+
return (React.createElement("header", null,
|
|
12
|
+
React.createElement("div", { className: "header-left-side" },
|
|
13
|
+
React.createElement("div", { className: "header-techoff", dangerouslySetInnerHTML: { __html: icons_1.icons[`header-${appName}`] } })),
|
|
14
|
+
React.createElement("div", null,
|
|
15
|
+
React.createElement("div", { className: "header-actions" }, actions.map((action, index) => (0, react_1.cloneElement)(action, { key: index, ...action.props }))))));
|
|
16
|
+
};
|
|
17
|
+
exports.Header = Header;
|
|
18
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/layouts/Header/Header.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,iCAAqC;AACrC,uDAAoD;AAEpD,wBAAsB;AAEf,MAAM,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAe,EAAE,EAAE;IAC1D,YAAY;IACZ,YAAY;IACZ,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,kBAAkB;YAC/B,6BAAK,SAAS,EAAC,gBAAgB,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAK,CAAC,UAAU,OAAO,EAAE,CAAC,EAAE,GAAI,CAC/F;QACN;YACE,6BAAK,SAAS,EAAC,gBAAgB,IAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAClF,CACF,CACC,CACV,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,MAAM,UAejB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
export type HeaderProps = {
|
|
3
|
+
actions: ReactElement[];
|
|
4
|
+
appName: 'bikestudio' | 'nsc-helmet' | 'opticost' | 'repairability';
|
|
5
|
+
};
|
|
6
|
+
export type HeaderProfileProps = {
|
|
7
|
+
firstname: string;
|
|
8
|
+
lastname: string;
|
|
9
|
+
supportLink?: string;
|
|
10
|
+
};
|