@datability/8ui 0.1.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.
Files changed (122) hide show
  1. package/README.md +178 -0
  2. package/dist/components/Blackdrop/index.d.ts +5 -0
  3. package/dist/components/Blackdrop/index.js +11 -0
  4. package/dist/components/Blackdrop/index.js.map +1 -0
  5. package/dist/components/Blackdrop/index.scss +16 -0
  6. package/dist/components/Blackdrop/index.type.d.ts +5 -0
  7. package/dist/components/Blackdrop/index.type.js +2 -0
  8. package/dist/components/Blackdrop/index.type.js.map +1 -0
  9. package/dist/components/Button/index.d.ts +5 -0
  10. package/dist/components/Button/index.js +14 -0
  11. package/dist/components/Button/index.js.map +1 -0
  12. package/dist/components/Button/index.scss +22 -0
  13. package/dist/components/Button/index.type.d.ts +11 -0
  14. package/dist/components/Button/index.type.js +2 -0
  15. package/dist/components/Button/index.type.js.map +1 -0
  16. package/dist/components/Chip/index.d.ts +5 -0
  17. package/dist/components/Chip/index.js +14 -0
  18. package/dist/components/Chip/index.js.map +1 -0
  19. package/dist/components/Chip/index.scss +32 -0
  20. package/dist/components/Chip/index.type.d.ts +9 -0
  21. package/dist/components/Chip/index.type.js +2 -0
  22. package/dist/components/Chip/index.type.js.map +1 -0
  23. package/dist/components/Divider/index.d.ts +4 -0
  24. package/dist/components/Divider/index.js +10 -0
  25. package/dist/components/Divider/index.js.map +1 -0
  26. package/dist/components/Divider/index.scss +4 -0
  27. package/dist/components/Input/InputAutoComplete/index.d.ts +5 -0
  28. package/dist/components/Input/InputAutoComplete/index.js +62 -0
  29. package/dist/components/Input/InputAutoComplete/index.js.map +1 -0
  30. package/dist/components/Input/InputAutoComplete/index.scss +53 -0
  31. package/dist/components/Input/InputAutoComplete/index.type.d.ts +11 -0
  32. package/dist/components/Input/InputAutoComplete/index.type.js +2 -0
  33. package/dist/components/Input/InputAutoComplete/index.type.js.map +1 -0
  34. package/dist/components/Input/InputBase/index.d.ts +5 -0
  35. package/dist/components/Input/InputBase/index.js +23 -0
  36. package/dist/components/Input/InputBase/index.js.map +1 -0
  37. package/dist/components/Input/InputBase/index.scss +14 -0
  38. package/dist/components/Input/InputBase/index.type.d.ts +9 -0
  39. package/dist/components/Input/InputBase/index.type.js +2 -0
  40. package/dist/components/Input/InputBase/index.type.js.map +1 -0
  41. package/dist/components/Input/InputBasic/index.d.ts +5 -0
  42. package/dist/components/Input/InputBasic/index.js +16 -0
  43. package/dist/components/Input/InputBasic/index.js.map +1 -0
  44. package/dist/components/Input/InputBasic/index.scss +9 -0
  45. package/dist/components/Input/InputBasic/index.type.d.ts +9 -0
  46. package/dist/components/Input/InputBasic/index.type.js +2 -0
  47. package/dist/components/Input/InputBasic/index.type.js.map +1 -0
  48. package/dist/components/Input/InputCheckbox/index.d.ts +5 -0
  49. package/dist/components/Input/InputCheckbox/index.js +19 -0
  50. package/dist/components/Input/InputCheckbox/index.js.map +1 -0
  51. package/dist/components/Input/InputCheckbox/index.scss +30 -0
  52. package/dist/components/Input/InputCheckbox/index.type.d.ts +11 -0
  53. package/dist/components/Input/InputCheckbox/index.type.js +2 -0
  54. package/dist/components/Input/InputCheckbox/index.type.js.map +1 -0
  55. package/dist/components/Input/InputDateRangePicker/index.d.ts +6 -0
  56. package/dist/components/Input/InputDateRangePicker/index.js +22 -0
  57. package/dist/components/Input/InputDateRangePicker/index.js.map +1 -0
  58. package/dist/components/Input/InputDateRangePicker/index.scss +31 -0
  59. package/dist/components/Input/InputDateRangePicker/index.type.d.ts +8 -0
  60. package/dist/components/Input/InputDateRangePicker/index.type.js +2 -0
  61. package/dist/components/Input/InputDateRangePicker/index.type.js.map +1 -0
  62. package/dist/components/Input/InputNumber/index.d.ts +5 -0
  63. package/dist/components/Input/InputNumber/index.js +49 -0
  64. package/dist/components/Input/InputNumber/index.js.map +1 -0
  65. package/dist/components/Input/InputNumber/index.scss +9 -0
  66. package/dist/components/Input/InputNumber/index.type.d.ts +9 -0
  67. package/dist/components/Input/InputNumber/index.type.js +2 -0
  68. package/dist/components/Input/InputNumber/index.type.js.map +1 -0
  69. package/dist/components/Input/InputPassword/index.d.ts +5 -0
  70. package/dist/components/Input/InputPassword/index.js +21 -0
  71. package/dist/components/Input/InputPassword/index.js.map +1 -0
  72. package/dist/components/Input/InputPassword/index.scss +22 -0
  73. package/dist/components/Input/InputPassword/index.type.d.ts +8 -0
  74. package/dist/components/Input/InputPassword/index.type.js +2 -0
  75. package/dist/components/Input/InputPassword/index.type.js.map +1 -0
  76. package/dist/components/Input/InputRadio/index.d.ts +5 -0
  77. package/dist/components/Input/InputRadio/index.js +19 -0
  78. package/dist/components/Input/InputRadio/index.js.map +1 -0
  79. package/dist/components/Input/InputRadio/index.scss +30 -0
  80. package/dist/components/Input/InputRadio/index.type.d.ts +11 -0
  81. package/dist/components/Input/InputRadio/index.type.js +2 -0
  82. package/dist/components/Input/InputRadio/index.type.js.map +1 -0
  83. package/dist/components/Input/InputSelect/index.d.ts +5 -0
  84. package/dist/components/Input/InputSelect/index.js +40 -0
  85. package/dist/components/Input/InputSelect/index.js.map +1 -0
  86. package/dist/components/Input/InputSelect/index.scss +69 -0
  87. package/dist/components/Input/InputSelect/index.type.d.ts +14 -0
  88. package/dist/components/Input/InputSelect/index.type.js +2 -0
  89. package/dist/components/Input/InputSelect/index.type.js.map +1 -0
  90. package/dist/components/Input/InputTextarea/index.d.ts +5 -0
  91. package/dist/components/Input/InputTextarea/index.js +16 -0
  92. package/dist/components/Input/InputTextarea/index.js.map +1 -0
  93. package/dist/components/Input/InputTextarea/index.scss +10 -0
  94. package/dist/components/Input/InputTextarea/index.type.d.ts +10 -0
  95. package/dist/components/Input/InputTextarea/index.type.js +2 -0
  96. package/dist/components/Input/InputTextarea/index.type.js.map +1 -0
  97. package/dist/components/Input/extend.scss +19 -0
  98. package/dist/components/Menu/index.d.ts +5 -0
  99. package/dist/components/Menu/index.js +145 -0
  100. package/dist/components/Menu/index.js.map +1 -0
  101. package/dist/components/Menu/index.scss +19 -0
  102. package/dist/components/Menu/index.type.d.ts +10 -0
  103. package/dist/components/Menu/index.type.js +2 -0
  104. package/dist/components/Menu/index.type.js.map +1 -0
  105. package/dist/components/Modal/index.d.ts +5 -0
  106. package/dist/components/Modal/index.js +81 -0
  107. package/dist/components/Modal/index.js.map +1 -0
  108. package/dist/components/Modal/index.scss +33 -0
  109. package/dist/components/Modal/index.type.d.ts +8 -0
  110. package/dist/components/Modal/index.type.js +2 -0
  111. package/dist/components/Modal/index.type.js.map +1 -0
  112. package/dist/components/assets/closed.svg +4 -0
  113. package/dist/components/assets/expandArrow.svg +3 -0
  114. package/dist/components/assets/visibility.svg +5 -0
  115. package/dist/components/assets/visibilityOff.svg +5 -0
  116. package/dist/components/context.d.ts +10 -0
  117. package/dist/components/context.js +16 -0
  118. package/dist/components/context.js.map +1 -0
  119. package/dist/components/index.d.ts +35 -0
  120. package/dist/components/index.js +18 -0
  121. package/dist/components/index.js.map +1 -0
  122. package/package.json +48 -0
package/README.md ADDED
@@ -0,0 +1,178 @@
1
+ <br />
2
+ <div align="center">
3
+ <img src="https://s3.ap-southeast-1.amazonaws.com/datability.info/logo-datability.svg" alt="Logo" width="350">
4
+ <br />
5
+ <br />
6
+ <h1>Datability UI</h1>
7
+ </div>
8
+
9
+ ## Problem that caused this project
10
+
11
+ Datability Team `[frontend]` every time they start a project they have a page that has a `collection of components` to use within the project , and then there's a components called `Base - components` that's not complicated. But when doing this in many projects , and the `Base - components is edited` , it must be followed up and edited in every project for `[frontend]` , causing difficulty and the information is not consistent
12
+
13
+ Nuk Supagorn 😎 said :
14
+
15
+ - It would be very helpful if we could make the `frontend components` we use more flexible. It becomes a `npm package` that can be downloaded from the same place
16
+
17
+ - Because if corrections occur, they will be able Can be `edited in one spot`
18
+
19
+ <br>
20
+
21
+ ## About the project
22
+
23
+ Building and publishing frontend components to `Node Package Manager(NPM)` easy to share and reuse code useful in projects , this article will guide you through the steps of building and `publishing` NPM package.
24
+
25
+ <br>
26
+
27
+ ## Prerequisites
28
+
29
+ - [NPM account](https://www.npmjs.com)
30
+ - Docker
31
+ - NodeJS
32
+ - GitHub for clone , push and others
33
+ - Basic understanding of JavaScript / TypeScript
34
+
35
+ <br>
36
+
37
+ ## Project structure
38
+
39
+ ```sh
40
+ .
41
+ ├── dist # compiled folder for `publish` to npm
42
+ ├── node_modules # package to use in project
43
+ ├── public # keep index.html for react start
44
+ ├── src # important folder
45
+ │ ├── components # components folder for usage
46
+ │ │ ├── Button # example `Button` component
47
+ │ │ │ ├── index.scss # - style css
48
+ │ │ │ ├── index.tsx # - button usage
49
+ │ │ ├── DatePicker # example `DatePicker` component
50
+ │ │ │ ├── index.scss # - style css
51
+ │ │ │ ├── index.tsx # - button usage
52
+ │ │ ├── ... # other components will append here
53
+ │ │ ├── index.ts # file to import all components and export
54
+ │ ├── App.tsx # calling component to display
55
+ │ └── index.tsx # calling component to display
56
+ ├── docker-compose.yml # docker compose file to start project
57
+ ├── package.json # package.json to script command
58
+ ├── tsconfig.json # tsconfig.json to setting script command
59
+ └──
60
+ ```
61
+
62
+ <br>
63
+
64
+ ## 📢 Getting started - `Building & Publishing` NPM Package
65
+
66
+ 1.) Clone the repo
67
+
68
+ ```sh
69
+ git clone git@github.com:datability-th/npm-components-fe.git
70
+ ```
71
+
72
+ 2.) Open 2 terminals
73
+
74
+ - 2.1 ) Terminal 1 : keep running `npm run start`
75
+
76
+ ```sh
77
+ $ docker compose up
78
+ ```
79
+
80
+ - 2.2 ) Terminal 2 : bash in to `npm-fe` container for use npm & script command
81
+
82
+ ```sh
83
+ $ sudo docker exec -it npm-fe bash
84
+ ```
85
+
86
+ 3.) Register new component in
87
+
88
+ ```sh
89
+ ├── src # important folder
90
+ │ ├── components # components folder for usage
91
+ │ │ ├── Button # example `Button` component
92
+ │ │ │ ├── index.scss # - style css
93
+ │ │ │ ├── index.tsx # - button usage
94
+ │ │ ├── DatePicker # example `DatePicker` component
95
+ │ │ │ ├── index.scss # - style css
96
+ │ │ │ ├── index.tsx # - button usage
97
+ │ │ ├── 📌 # <= Declare here & register in `index.ts` below
98
+ │ │ ├── index.ts # file to import all components and export
99
+ ```
100
+
101
+ 4.) Use command to create compiled folder `dist` to publish to `NPM`
102
+
103
+ ```sh
104
+ npm run build
105
+ ```
106
+
107
+ 5.) Before publish to `NPM` you need to login in command
108
+
109
+ - Login into Gmail : databilitynpm@gmail.com , `Password ask (Top & P'Nuk) 📢`
110
+ - Promp command below `npm login` . . . it will return url to replace digit code
111
+ - Open Gmail copy _digit code_ and replace in website
112
+ - And press enter , command will say ( Logged in ✔ )
113
+
114
+ ```sh
115
+ npm login
116
+ ```
117
+
118
+ 6.) Use command to publish `NPM` package
119
+
120
+ ```sh
121
+ npm publish --access public
122
+ ```
123
+
124
+ 7.) Let check in
125
+ https://www.npmjs.com/settings/databilitynpm/packages
126
+
127
+ <br>
128
+
129
+ ## ⚙ Getting started - `Using` NPM Package
130
+
131
+ 1.) Download `NPM` Package
132
+
133
+ ```sh
134
+ npm i npm-components-fe
135
+ ```
136
+
137
+ 2.) Calling tools from package that we did
138
+
139
+ ```sh
140
+ import './App.css';
141
+ import { All, Button, DatePicker } from 'npm-components-fe' // 👈
142
+
143
+ function App() {
144
+ return (
145
+ <div className="App">
146
+ <p>This is the result after calling component from npm </p>
147
+
148
+ <All /> // 👈
149
+ </div>
150
+ );
151
+ }
152
+
153
+ export default App;
154
+ ```
155
+
156
+ <br>
157
+
158
+ ## Contact
159
+
160
+ Top & Nuk at `Datability` 🏠
161
+
162
+ <br>
163
+
164
+ ## Acknowledgments
165
+
166
+ Thankyou for all tutorials
167
+
168
+ - [Build & Publish React component as NPM package using Typescript compiler](https://blog.anoopjadhav.in/part-1-build-publish-react-component-as-npm-package-using-typescript-compiler)
169
+
170
+ - [A Step-by-Step Guide to Publishing Your Own React NPM Package](https://blog.nonstopio.com/a-step-by-step-guide-to-publishing-your-own-react-npm-package-fa2b7f1d149)
171
+
172
+ - [How to Build and Publish Your First React NPM Package](https://dev.to/femi_akinyemi/how-to-build-and-publish-your-first-react-npm-package-24o3)
173
+
174
+ - [How to package your React Component for distribution via NPM](https://itnext.io/how-to-package-your-react-component-for-distribution-via-npm-d32d4bf71b4f)
175
+
176
+ - [How to Publish a React Component as a Package to Npm](https://hackernoon.com/how-to-publish-a-react-component-as-a-package-to-npm)
177
+
178
+ - [Quick and simple create and publish React component on npm](https://medium.com/@irekrog/quick-and-simple-create-and-publish-react-component-on-npm-df528cd26b0)
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import type { PropsBlackdrop } from './index.type';
4
+ declare const Blackdrop: React.FC<PropsBlackdrop>;
5
+ export default Blackdrop;
@@ -0,0 +1,11 @@
1
+ // Lib
2
+ import React from 'react';
3
+ // Images
4
+ // Include in project
5
+ import './index.scss';
6
+ var Blackdrop = function (_a) {
7
+ var children = _a.children, open = _a.open;
8
+ return (React.createElement("div", { className: "DBui-blackdrop", "aria-hidden": !open }, children));
9
+ };
10
+ export default Blackdrop;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Blackdrop/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,SAAS;AAET,qBAAqB;AACrB,OAAO,cAAc,CAAA;AAGrB,IAAM,SAAS,GAA6B,UAAC,EAAkB;QAAhB,QAAQ,cAAA,EAAE,IAAI,UAAA;IAC3D,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,iBAAc,CAAC,IAAI,IAC/C,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,16 @@
1
+ .DBui-blackdrop {
2
+ opacity: 1;
3
+ transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
4
+ position: fixed;
5
+ z-index: var(--z-index-backdrop);
6
+ left: 0;
7
+ top: 0;
8
+ width: 100%;
9
+ height: 100%;
10
+ background-color: rgba(0, 0, 0, 0.4);
11
+
12
+ &[aria-hidden='true'] {
13
+ opacity: 0;
14
+ visibility: hidden;
15
+ }
16
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export type PropsBlackdrop = {
3
+ children: JSX.Element | JSX.Element[];
4
+ open: boolean;
5
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../src/components/Blackdrop/index.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import type { PropsButton } from './index.type';
4
+ declare const Button: React.FC<PropsButton>;
5
+ export default Button;
@@ -0,0 +1,14 @@
1
+ // Lib
2
+ import React from 'react';
3
+ // Images
4
+ // Include in project
5
+ import './index.scss';
6
+ var Button = function (_a) {
7
+ var name = _a.name, _b = _a.type, type = _b === void 0 ? 'button' : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, onClick = _a.onClick, startIcon = _a.startIcon, endIcon = _a.endIcon, className = _a.className, style = _a.style;
8
+ return (React.createElement("button", { type: type, className: "DBui-button ".concat(className ? className : ''), onClick: onClick && onClick, disabled: disabled, style: style ? style : {} },
9
+ startIcon && React.createElement("img", { src: startIcon, alt: "startIcon" }),
10
+ name,
11
+ endIcon && React.createElement("img", { src: endIcon, alt: "endIcon" })));
12
+ };
13
+ export default Button;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,SAAS;AAET,qBAAqB;AACrB,OAAO,cAAc,CAAA;AAGrB,IAAM,MAAM,GAA0B,UAAC,EAStC;QARC,IAAI,UAAA,EACJ,YAAe,EAAf,IAAI,mBAAG,QAAQ,KAAA,EACf,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,OAAO,aAAA,EACP,SAAS,eAAA,EACT,OAAO,aAAA,EACP,SAAS,eAAA,EACT,KAAK,WAAA;IAEL,OAAO,CACL,gCACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,sBAAe,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAC3B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAExB,SAAS,IAAI,6BAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,WAAW,GAAG;QACpD,IAAI;QACJ,OAAO,IAAI,6BAAK,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC,SAAS,GAAG,CACxC,CACV,CAAA;AACH,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,22 @@
1
+ .DBui-button {
2
+ transition: opacity 0.3s;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ gap: 0.5em;
7
+ cursor: pointer;
8
+ padding: 0.4em 1em;
9
+ border-radius: 0.3em;
10
+ border: 1px solid #03287E;
11
+ background-color: #03287E;
12
+ color: #FFFFFF;
13
+
14
+ &:hover {
15
+ opacity: 0.8;
16
+ }
17
+
18
+ &:disabled {
19
+ cursor: not-allowed;
20
+ opacity: 0.5;
21
+ }
22
+ }
@@ -0,0 +1,11 @@
1
+ import { CSSProperties } from 'react';
2
+ export type PropsButton = {
3
+ name?: string;
4
+ type?: 'button' | 'submit';
5
+ disabled?: boolean;
6
+ onClick?: () => void;
7
+ startIcon?: string;
8
+ endIcon?: string;
9
+ className?: string;
10
+ style?: CSSProperties;
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../src/components/Button/index.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { PropsChip } from './index.type';
3
+ import './index.scss';
4
+ declare const Chip: React.FC<PropsChip>;
5
+ export default Chip;
@@ -0,0 +1,14 @@
1
+ // Lib
2
+ import React from 'react';
3
+ //Images
4
+ import closedSVG from '../assets/closed.svg';
5
+ // Include in project
6
+ import './index.scss';
7
+ var Chip = function (_a) {
8
+ var label = _a.label, onDelete = _a.onDelete, onClick = _a.onClick, icon = _a.icon, className = _a.className, style = _a.style;
9
+ return (React.createElement("div", { className: "DBui-chip ".concat(className ? className : ''), style: style ? style : {}, "aria-checked": Boolean(onClick), onClick: onClick && onClick },
10
+ label,
11
+ (onDelete || icon) && (React.createElement("img", { src: icon || closedSVG, alt: "icon", className: "DBui-chipIcon", "aria-checked": Boolean(onDelete), onClick: onDelete && onDelete }))));
12
+ };
13
+ export default Chip;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Chip/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,QAAQ;AACR,OAAO,SAAS,MAAM,sBAAsB,CAAA;AAE5C,qBAAqB;AACrB,OAAO,cAAc,CAAA;AAGrB,IAAM,IAAI,GAAwB,UAAC,EAAoD;QAAlD,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,KAAK,WAAA;IACnF,OAAO,CACL,6BACE,SAAS,EAAE,oBAAa,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAE,EACpD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBACX,OAAO,CAAC,OAAO,CAAC,EAC9B,OAAO,EAAE,OAAO,IAAI,OAAO;QAE1B,KAAK;QACL,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CACrB,6BACE,GAAG,EAAE,IAAI,IAAI,SAAS,EACtB,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,eAAe,kBACX,OAAO,CAAC,QAAQ,CAAC,EAC/B,OAAO,EAAE,QAAQ,IAAI,QAAQ,GAC7B,CACH,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,32 @@
1
+ .DBui-chip {
2
+ display: flex;
3
+ align-items: center;
4
+ width: fit-content;
5
+ padding: 0.4em 0.5em;
6
+ border-radius: 0.3em;
7
+ border: 1px solid #03287E;
8
+ background-color: #618aea;
9
+ gap: 0.5em;
10
+
11
+ &[aria-checked='true'] {
12
+ cursor: pointer;
13
+
14
+ &:hover {
15
+ opacity: 0.5;
16
+ }
17
+ }
18
+
19
+ .DBui-chipIcon {
20
+ width: 20px;
21
+ height: 20px;
22
+
23
+ &[aria-checked='true'] {
24
+ cursor: pointer;
25
+
26
+ &:hover {
27
+ opacity: 0.5;
28
+ }
29
+ }
30
+ }
31
+ }
32
+
@@ -0,0 +1,9 @@
1
+ import { CSSProperties } from "react";
2
+ export type PropsChip = {
3
+ label: string;
4
+ onDelete?: () => void;
5
+ onClick?: () => void;
6
+ icon?: string;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../src/components/Chip/index.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ declare const Divider: React.FC;
4
+ export default Divider;
@@ -0,0 +1,10 @@
1
+ // Lib
2
+ import React from 'react';
3
+ // Images
4
+ // Include in project
5
+ import './index.scss';
6
+ var Divider = function () {
7
+ return React.createElement("hr", { className: "DBui-divider" });
8
+ };
9
+ export default Divider;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Divider/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,SAAS;AAET,qBAAqB;AACrB,OAAO,cAAc,CAAA;AAErB,IAAM,OAAO,GAAa;IACxB,OAAO,4BAAI,SAAS,EAAC,cAAc,GAAG,CAAA;AACxC,CAAC,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -0,0 +1,4 @@
1
+ .DBui-divider {
2
+ border: 1px solid #9E9E9E;
3
+ width: 100%;
4
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import type { PropsInputAutoComplete } from './index.type';
4
+ declare const InputAutoComplete: React.FC<PropsInputAutoComplete>;
5
+ export default InputAutoComplete;
@@ -0,0 +1,62 @@
1
+ import { __spreadArray } from "tslib";
2
+ // Lib
3
+ import React, { useState } from 'react';
4
+ import { getIn, useFormikContext } from 'formik';
5
+ //Images
6
+ import closedSVG from '../../assets/closed.svg';
7
+ // Include in project
8
+ import './index.scss';
9
+ import InputBase from '../InputBase';
10
+ import Menu from '../../Menu';
11
+ import { Chip } from '../..';
12
+ var InputAutoComplete = function (_a) {
13
+ var name = _a.name, label = _a.label, placeholder = _a.placeholder, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.require, require = _c === void 0 ? false : _c, _d = _a.fullWidth, fullWidth = _d === void 0 ? false : _d, options = _a.options, _e = _a.isMultiple, isMultiple = _e === void 0 ? false : _e;
14
+ var _f = useFormikContext(), values = _f.values, touched = _f.touched, errors = _f.errors, setFieldValue = _f.setFieldValue;
15
+ var _g = useState(''), searchText = _g[0], setSearchText = _g[1];
16
+ var suggestions = options.filter(function (ele) { return ele.label.toLocaleLowerCase().search(searchText.toLocaleLowerCase()) >= 0; });
17
+ var isInvalid = getIn(touched, name) && Boolean(getIn(errors, name));
18
+ var handleClickSelectOption = function (data) {
19
+ // Clear Search
20
+ setSearchText('');
21
+ if (!isMultiple) {
22
+ // Is max one chip
23
+ setFieldValue(name, [data]);
24
+ }
25
+ else {
26
+ // Is more than one chip
27
+ setFieldValue(name, __spreadArray(__spreadArray([], getIn(values, name), true), [data], false));
28
+ }
29
+ };
30
+ var handleChange = function (value) {
31
+ setSearchText(value);
32
+ if (!isMultiple) {
33
+ setFieldValue(name, [value]);
34
+ }
35
+ };
36
+ var handleClearState = function (e, target) {
37
+ e.stopPropagation();
38
+ setSearchText('');
39
+ setFieldValue(name, getIn(values, name).filter(function (ele) { return ele !== target.value; }));
40
+ };
41
+ return (React.createElement(InputBase, { name: name, label: label, require: require, fullWidth: fullWidth, isInvalid: isInvalid },
42
+ React.createElement(Menu, { disabled: disabled, trigger: function () {
43
+ var _a;
44
+ return (React.createElement("div", { className: "DBui-wrapInputAutoComplete", "aria-invalid": isInvalid, "aria-disabled": disabled },
45
+ isMultiple &&
46
+ getIn(values, name).map(function (data, index) {
47
+ var selected = options.find(function (e) { return e.value === data; });
48
+ if (disabled)
49
+ return React.createElement(Chip, { key: index, label: selected.label });
50
+ return (React.createElement("div", { key: index, className: "DBui-wrapSelectValueInputAutoComplete" },
51
+ React.createElement("p", null,
52
+ React.createElement("small", null, (selected === null || selected === void 0 ? void 0 : selected.label) || data)),
53
+ React.createElement("img", { src: closedSVG, className: "DBui-iconInputAutoComplete", onClick: function (e) { return handleClearState(e, selected); } })));
54
+ }),
55
+ React.createElement("input", { className: "DBui-inputAutoComplete", type: "text", placeholder: !((_a = getIn(values, name)) === null || _a === void 0 ? void 0 : _a.length) ? placeholder : '', disabled: disabled, name: name, value: isMultiple ? searchText : getIn(values, name)[0] || '', onChange: function (e) { return handleChange(e.target.value); } })));
56
+ } }, suggestions.map(function (data, index) {
57
+ var isChecked = Boolean(getIn(values, name).find(function (ele) { return ele === data.value; }));
58
+ return (React.createElement("p", { key: index, className: "DBui-menuItemInputAutoComplete", onClick: function () { return !isChecked && handleClickSelectOption(data.value); }, "aria-checked": isChecked }, data.label));
59
+ }))));
60
+ };
61
+ export default InputAutoComplete;
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Input/InputAutoComplete/index.tsx"],"names":[],"mappings":";AAAA,MAAM;AACN,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAEhD,QAAQ;AACR,OAAO,SAAS,MAAM,yBAAyB,CAAA;AAE/C,qBAAqB;AACrB,OAAO,cAAc,CAAA;AACrB,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAyB,MAAM,OAAO,CAAA;AAEnD,IAAM,iBAAiB,GAAqC,UAAC,EAS5D;QARC,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EACjB,OAAO,aAAA,EACP,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA;IAEZ,IAAA,KAA6C,gBAAgB,EAAE,EAA7D,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,aAAa,mBAAuB,CAAA;IAC/D,IAAA,KAA8B,QAAQ,CAAC,EAAE,CAAC,EAAzC,UAAU,QAAA,EAAE,aAAa,QAAgB,CAAA;IAEhD,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAzE,CAAyE,CAAC,CAAA;IAEtH,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAEtE,IAAM,uBAAuB,GAAG,UAAC,IAAkB;QACjD,eAAe;QACf,aAAa,CAAC,EAAE,CAAC,CAAA;QAEjB,IAAI,CAAC,UAAU,EAAE;YACf,kBAAkB;YAClB,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;SAC5B;aAAM;YACL,wBAAwB;YACxB,aAAa,CAAC,IAAI,kCAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAE,IAAI,UAAE,CAAA;SACpD;IACH,CAAC,CAAA;IAED,IAAM,YAAY,GAAG,UAAC,KAAa;QACjC,aAAa,CAAC,KAAK,CAAC,CAAA;QAEpB,IAAI,CAAC,UAAU,EAAE;YACf,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;SAC7B;IACH,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG,UAAC,CAAiD,EAAE,MAAe;QAC1F,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,aAAa,CAAC,EAAE,CAAC,CAAA;QACjB,aAAa,CACX,IAAI,EACJ,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,GAAiB,IAAK,OAAA,GAAG,KAAK,MAAM,CAAC,KAAK,EAApB,CAAoB,CAAC,CACxE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;QAC/F,oBAAC,IAAI,IACH,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;;gBAAM,OAAA,CACb,6BAAK,SAAS,EAAC,4BAA4B,kBAAe,SAAS,mBAAiB,QAAQ;oBACzF,UAAU;wBACT,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAC,IAAkB,EAAE,KAAa;4BACxD,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,EAAhB,CAAgB,CAAY,CAAA;4BACjE,IAAI,QAAQ;gCAAE,OAAO,oBAAC,IAAI,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAI,CAAA;4BAChE,OAAO,CACL,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,uCAAuC;gCAChE;oCACE,mCAAQ,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,KAAI,IAAI,CAAS,CACtC;gCACJ,6BACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAA7B,CAA6B,GAC7C,CACE,CACP,CAAA;wBACH,CAAC,CAAC;oBACJ,+BACE,SAAS,EAAC,wBAAwB,EAClC,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,CAAC,CAAA,MAAA,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAC5D,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAC7D,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA5B,CAA4B,GAC7C,CACE,CACP,CAAA;aAAA,IAEA,WAAW,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;YAC3B,IAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,GAAiB,IAAK,OAAA,GAAG,KAAK,IAAI,CAAC,KAAK,EAAlB,CAAkB,CAAC,CAAC,CAAA;YAE9F,OAAO,CACL,2BACE,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,cAAM,OAAA,CAAC,SAAS,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAjD,CAAiD,kBAClD,SAAS,IAEtB,IAAI,CAAC,KAAK,CACT,CACL,CAAA;QACH,CAAC,CAAC,CACG,CACG,CACb,CAAA;AACH,CAAC,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,53 @@
1
+ @import '../extend.scss';
2
+
3
+ .DBui-wrapInputAutoComplete {
4
+ @extend .DBui-input;
5
+
6
+ padding: 0.4em 0.5em;
7
+ display: flex;
8
+ align-items: center;
9
+ gap: 0.3em;
10
+ height: 36px;
11
+
12
+ &[aria-disabled='true'] {
13
+ @extend .DBui-disabled;
14
+ }
15
+
16
+ .DBui-wrapSelectValueInputAutoComplete {
17
+ display: flex;
18
+ align-items: center;
19
+
20
+ .DBui-iconInputAutoComplete {
21
+ width: 20px;
22
+ color: #E3E3E8;
23
+ cursor: pointer;
24
+ }
25
+ }
26
+
27
+ .DBui-inputAutoComplete {
28
+ border: none;
29
+ background-color: #FFFFFF;
30
+ align-items: center;
31
+ width: 100%;
32
+
33
+ &:disabled {
34
+ @extend .DBui-disabled;
35
+ }
36
+ }
37
+ }
38
+
39
+ .DBui-menuItemInputAutoComplete {
40
+ background-color: #FFFFFF;
41
+ color: #000000;
42
+ padding: 0.3em 0.5em;
43
+ cursor: pointer;
44
+
45
+ &:hover {
46
+ background-color: #FAFAFA;
47
+ }
48
+
49
+ &[aria-checked='true'] {
50
+ background-color: #6F5EE0;
51
+ color: #FFFFFF;
52
+ }
53
+ }
@@ -0,0 +1,11 @@
1
+ import { TOption } from "../..";
2
+ export type PropsInputAutoComplete = {
3
+ name: string;
4
+ label?: string;
5
+ placeholder?: string;
6
+ disabled?: boolean;
7
+ require?: boolean;
8
+ fullWidth?: boolean;
9
+ options: TOption[];
10
+ isMultiple?: boolean;
11
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../../src/components/Input/InputAutoComplete/index.type.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import type { PropsInputBase } from './index.type';
4
+ declare const InputBase: React.FC<PropsInputBase>;
5
+ export default InputBase;
@@ -0,0 +1,23 @@
1
+ // Lib
2
+ import React from 'react';
3
+ import { getIn, useFormikContext } from 'formik';
4
+ // Images
5
+ // Include in project
6
+ import './index.scss';
7
+ var InputBase = function (_a) {
8
+ var name = _a.name, label = _a.label, _b = _a.require, require = _b === void 0 ? false : _b, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, children = _a.children, isInvalid = _a.isInvalid;
9
+ var _d = useFormikContext(), touched = _d.touched, errors = _d.errors;
10
+ var styleDiv = {
11
+ width: !fullWidth ? 'fit-content' : '100%'
12
+ };
13
+ return (React.createElement("div", { className: "DBui-inputBase", style: styleDiv, "aria-invalid": isInvalid },
14
+ label && (React.createElement("p", { className: "DBui-inputLabel" },
15
+ React.createElement("small", null, label),
16
+ " ",
17
+ React.createElement("span", { className: "DBui-ariaInvalid" }, require && '*'))),
18
+ children,
19
+ getIn(touched, name) && getIn(errors, name) && (React.createElement("p", { className: "DBui-ariaInvalid" },
20
+ React.createElement("small", null, getIn(errors, name))))));
21
+ };
22
+ export default InputBase;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Input/InputBase/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAEhD,SAAS;AAET,qBAAqB;AACrB,OAAO,cAAc,CAAA;AAGrB,IAAM,SAAS,GAA6B,UAAC,EAO5C;QANC,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EACjB,QAAQ,cAAA,EACR,SAAS,eAAA;IAEH,IAAA,KAAsB,gBAAgB,EAAE,EAAtC,OAAO,aAAA,EAAE,MAAM,YAAuB,CAAA;IAE9C,IAAM,QAAQ,GAAG;QACf,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;KAC3C,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,QAAQ,kBAAgB,SAAS;QACrE,KAAK,IAAI,CACR,2BAAG,SAAS,EAAC,iBAAiB;YAC5B,mCAAQ,KAAK,CAAS;;YAAC,8BAAM,SAAS,EAAC,kBAAkB,IAAE,OAAO,IAAI,GAAG,CAAQ,CAC/E,CACL;QAEA,QAAQ;QAER,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAC9C,2BAAG,SAAS,EAAC,kBAAkB;YAC7B,mCAAQ,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAS,CAClC,CACL,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,14 @@
1
+ .DBui-inputBase {
2
+ display: flex;
3
+ flex-direction: column;
4
+
5
+ &[aria-invalid='true'] {
6
+ .DBui-inputLabel {
7
+ color: #EB5757;
8
+ }
9
+ }
10
+
11
+ .DBui-ariaInvalid {
12
+ color: #EB5757;
13
+ }
14
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export type PropsInputBase = {
3
+ name: string;
4
+ label?: string;
5
+ require?: boolean;
6
+ fullWidth?: boolean;
7
+ children: JSX.Element | JSX.Element[];
8
+ isInvalid: boolean;
9
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.type.js","sourceRoot":"","sources":["../../../../src/components/Input/InputBase/index.type.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import type { PropsInputBasic } from './index.type';
4
+ declare const Input: React.FC<PropsInputBasic>;
5
+ export default Input;