allaw-ui 0.0.351 → 0.0.354

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.
@@ -12,5 +12,5 @@ export interface PrimaryButtonProps extends ButtonHTMLAttributes<HTMLButtonEleme
12
12
  fullWidth?: boolean;
13
13
  type?: "button" | "submit" | "reset";
14
14
  }
15
- declare const PrimaryButton: React.FC<PrimaryButtonProps>;
15
+ declare const PrimaryButton: React.ForwardRefExoticComponent<PrimaryButtonProps & React.RefAttributes<HTMLButtonElement>>;
16
16
  export default PrimaryButton;
@@ -1,11 +1,36 @@
1
- import React from "react";
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { forwardRef, useImperativeHandle, } from "react";
2
24
  import "./PrimaryButton.css";
3
25
  import "../../../styles/global.css";
4
- var PrimaryButton = function (_a) {
5
- var startIcon = _a.startIcon, endIcon = _a.endIcon, startIconName = _a.startIconName, endIconName = _a.endIconName, label = _a.label, _b = _a.disabled, disabled = _b === void 0 ? false : _b, onClick = _a.onClick, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, _d = _a.type, type = _d === void 0 ? "button" : _d;
6
- return (React.createElement("button", { className: "primary-button ".concat(disabled ? "primary-button-disabled" : "primary-button-enabled", " ").concat(fullWidth ? "primary-button-full-width" : ""), disabled: disabled, onClick: onClick, type: type },
7
- startIcon && React.createElement("span", { className: "primary-button-icon ".concat(startIconName) }),
26
+ var PrimaryButton = forwardRef(function (_a, ref) {
27
+ var startIcon = _a.startIcon, endIcon = _a.endIcon, startIconName = _a.startIconName, endIconName = _a.endIconName, label = _a.label, _b = _a.disabled, disabled = _b === void 0 ? false : _b, onClick = _a.onClick, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c, _d = _a.type, type = _d === void 0 ? "button" : _d, props = __rest(_a, ["startIcon", "endIcon", "startIconName", "endIconName", "label", "disabled", "onClick", "fullWidth", "type"]);
28
+ var buttonRef = React.useRef(null);
29
+ useImperativeHandle(ref, function () { return buttonRef.current; });
30
+ return (React.createElement("button", __assign({ ref: buttonRef, className: "primary-button ".concat(disabled ? "primary-button-disabled" : "primary-button-enabled", " ").concat(fullWidth ? "primary-button-full-width" : ""), disabled: disabled, onClick: onClick, type: type }, props),
31
+ startIcon && (React.createElement("span", { className: "primary-button-icon ".concat(startIconName) })),
8
32
  React.createElement("span", { className: "primary-button-label" }, label),
9
33
  endIcon && React.createElement("span", { className: "primary-button-icon ".concat(endIconName) })));
10
- };
34
+ });
35
+ PrimaryButton.displayName = "PrimaryButton";
11
36
  export default PrimaryButton;
@@ -0,0 +1,172 @@
1
+ .backdrop {
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ height: 100vh;
6
+ width: 100vw;
7
+ z-index: 4500;
8
+ }
9
+
10
+ .baseFilter {
11
+ position: relative;
12
+ width: fit-content;
13
+ }
14
+
15
+ .smallOpenFilter{
16
+ position: relative;
17
+ width: fit-content;
18
+ }
19
+
20
+ .options {
21
+ position: absolute;
22
+ top: 120%;
23
+ left: 0;
24
+ width: fit-content;
25
+ border: 0.5px solid #ddd;
26
+ border-radius: 4px;
27
+ background-color: #ffffff;
28
+ box-shadow: rgba(9, 30, 66, 0.15) 0px 8px 12px 0px;
29
+ z-index: 5000;
30
+ padding: 0.4rem 0rem;
31
+ }
32
+
33
+ .item {
34
+ background: none;
35
+ border: none;
36
+ display: flex;
37
+ flex-direction: row;
38
+ align-items: center;
39
+ gap: 0.75rem;
40
+ padding: 0.5rem 1rem;
41
+ cursor: pointer;
42
+ border-left: 2px solid #FFF;
43
+ width: 100%;
44
+ color: #0000
45
+ }
46
+
47
+ .round {
48
+
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ border: 1px solid #D1DCE7;
53
+ border-radius: 3rem;
54
+ padding: 2px;
55
+ }
56
+
57
+ .selected {
58
+ background-color: #25BEEB;
59
+ min-width: 0.6rem;
60
+ min-height: 0.6rem;
61
+ border-radius: 1rem;
62
+ display: block;
63
+ }
64
+
65
+ .notSelected {
66
+ background-color: #FFF;
67
+ min-width: 0.6rem;
68
+ min-height: 0.6rem;
69
+ border-radius: 1rem;
70
+ display: block;
71
+ }
72
+
73
+ .item > span {
74
+ text-wrap: nowrap;
75
+ font-family: var(--font-open-sans);
76
+ font-size: 14px;
77
+ font-weight: 500;
78
+ color: #000;
79
+ }
80
+
81
+ .item:hover {
82
+ background-color: #EFF2F5;
83
+ border-left: 2px solid #25BEEB;
84
+ }
85
+
86
+ .optionsSmall {
87
+ position: fixed;
88
+ right: 0;
89
+ transition: bottom 225ms cubic-bezier(0, 0, 0.2, 1);
90
+ max-height: 90dvh;
91
+ background-color: white;
92
+ width: 100vw;
93
+ display: none;
94
+ border-radius: 16px 16px 0 0;
95
+ padding: 1rem;
96
+ flex-direction: column;
97
+ gap: 2rem;
98
+ }
99
+
100
+ .smallItem {
101
+ background: none;
102
+ border: none;
103
+ display: flex;
104
+ flex-direction: row-reverse;
105
+ align-items: center;
106
+ justify-content: space-between;
107
+ padding: 1.5rem 1rem;
108
+ cursor: pointer;
109
+ border-left: 2px solid #FFF;
110
+ width: 100%;
111
+ color: #0000;
112
+ border-top: 1px solid #e4edf6;
113
+ }
114
+
115
+ .smallItem:first-child {
116
+ border-top: none;
117
+ }
118
+
119
+ .smallItem > span {
120
+ text-wrap: nowrap;
121
+ font-family: var(--font-open-sans);
122
+ font-size: 14px;
123
+ font-weight: 500;
124
+ color: #000;
125
+ }
126
+
127
+ .choices {
128
+ display: flex;
129
+ flex-direction: column;
130
+ }
131
+
132
+ .closeButton {
133
+ height: fit-content;
134
+ border: none;
135
+ color: #000;
136
+ background: transparent;
137
+ cursor: pointer;
138
+ width: 20px;
139
+ display: flex;
140
+ align-items: center;
141
+ justify-content: center;
142
+ }
143
+
144
+ .closeButton > i {
145
+ font-size: 16px;
146
+ }
147
+
148
+ .row {
149
+ width: 100%;
150
+ height: fit-content;
151
+ display: flex;
152
+ flex-direction: row;
153
+ justify-content: space-between;
154
+ align-items: center;
155
+ gap: 1rem;
156
+ padding: 1rem 0.5rem;
157
+ }
158
+
159
+ @media screen and (max-width: 800px) {
160
+ .options {
161
+ display: none;
162
+ }
163
+
164
+ .optionsSmall {
165
+ z-index: 5000;
166
+ display: flex;
167
+ }
168
+
169
+ .backdrop {
170
+ background: linear-gradient(180deg, rgba(26, 50, 56, 0.00) 0%, rgba(2, 9, 11, 0.45) 100%);
171
+ }
172
+ }
@@ -0,0 +1,17 @@
1
+ import "./SingleFilter.css";
2
+ import React from "react";
3
+ export type SingleFilterProps = {
4
+ defaultSelectedValue?: string;
5
+ filterData: {
6
+ value: string;
7
+ name: string;
8
+ }[];
9
+ setFilter: (selectedValue: string) => void;
10
+ children?: React.ReactNode;
11
+ required?: boolean;
12
+ showNumIndic?: boolean;
13
+ showBackdrop?: boolean;
14
+ isStatusTag?: boolean;
15
+ };
16
+ declare const SingleFilter: ({ showNumIndic, required, defaultSelectedValue, filterData, setFilter, showBackdrop, children, ...props }: SingleFilterProps) => React.JSX.Element;
17
+ export default SingleFilter;
@@ -0,0 +1,70 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import "./SingleFilter.css";
24
+ import { FilterButtonPrimary, PrimaryButton } from "../buttons";
25
+ import { TinyInfo } from "../typography";
26
+ import React, { useState } from "react";
27
+ var SingleFilter = function (_a) {
28
+ var _b = _a.showNumIndic, showNumIndic = _b === void 0 ? false : _b, _c = _a.required, required = _c === void 0 ? true : _c, defaultSelectedValue = _a.defaultSelectedValue, filterData = _a.filterData, setFilter = _a.setFilter, _d = _a.showBackdrop, showBackdrop = _d === void 0 ? false : _d, children = _a.children, props = __rest(_a, ["showNumIndic", "required", "defaultSelectedValue", "filterData", "setFilter", "showBackdrop", "children"]);
29
+ var _e = useState(false), isOpen = _e[0], setIsOpen = _e[1];
30
+ var _f = useState(defaultSelectedValue || ""), selectedValue = _f[0], setSelectedValue = _f[1];
31
+ var handleClose = function () {
32
+ setFilter(selectedValue);
33
+ setIsOpen(false);
34
+ };
35
+ var handleButtonTap = function () {
36
+ isOpen ? handleClose() : setIsOpen(true);
37
+ };
38
+ var Item = function (_a) {
39
+ var name = _a.name, value = _a.value;
40
+ return (React.createElement("button", { className: "item", onClick: function () { setSelectedValue(value); handleClose(); } },
41
+ React.createElement("div", { className: "round" },
42
+ React.createElement("div", { className: selectedValue === value ? "selected" : "notSelected" })),
43
+ React.createElement("span", null, name)));
44
+ };
45
+ var SmallItem = function (_a) {
46
+ var name = _a.name, value = _a.value;
47
+ return (React.createElement("button", { className: "smallItem", onClick: function () { setSelectedValue(value); } },
48
+ React.createElement("div", { className: "round" },
49
+ React.createElement("div", { className: selectedValue === value ? "selected" : "notSelected" })),
50
+ React.createElement("span", null, name)));
51
+ };
52
+ return (React.createElement(React.Fragment, null,
53
+ React.createElement("div", __assign({ className: "baseFilter" }, props),
54
+ React.createElement(FilterButtonPrimary, { onClick: handleButtonTap, zIndex: "2000" },
55
+ children,
56
+ React.createElement("p", { style: { color: "#25BEEB", fontWeight: "600" } }, showNumIndic && "(".concat(selectedValue.length, ")"))),
57
+ isOpen && (React.createElement("div", { className: "options" }, filterData && filterData.length > 0 &&
58
+ filterData.map(function (item, idx) { return (React.createElement(Item, { name: item.name, value: item.value, key: idx })); }))),
59
+ React.createElement("div", { className: "optionsSmall", style: { bottom: isOpen ? "0" : "-100%" } },
60
+ React.createElement("div", { className: "row" },
61
+ React.createElement("div", { style: { minWidth: "20px" } }),
62
+ React.createElement(TinyInfo, { text: children, variant: "bold14", color: "noir" }),
63
+ React.createElement("button", { className: "closeButton", onClick: handleClose },
64
+ React.createElement("i", { className: "allaw-icon-close" }))),
65
+ React.createElement("div", { className: "choices" }, filterData && filterData.length > 0 &&
66
+ filterData.map(function (item, idx) { return (React.createElement(SmallItem, { name: item.name, value: item.value, key: idx })); })),
67
+ React.createElement(PrimaryButton, { label: "Voir les r\u00E9sultats", onClick: handleClose }))),
68
+ isOpen && (React.createElement("div", { className: "backdrop", onClick: handleClose }))));
69
+ };
70
+ export default SingleFilter;
@@ -0,0 +1,2 @@
1
+ export { default as SingleFilter } from "./SingleFilter";
2
+ export type { SingleFilterProps } from "./SingleFilter";
@@ -0,0 +1 @@
1
+ export { default as SingleFilter } from "./SingleFilter";
package/dist/index.d.ts CHANGED
@@ -10,12 +10,13 @@ export { default as TabNavigation } from "./components/atoms/buttons/TabNavigati
10
10
  export { default as TertiaryButton } from "./components/atoms/buttons/TertiaryButton";
11
11
  export { default as OAuthProviderButton } from "./components/atoms/buttons/OAuthProviderButton";
12
12
  export { default as Checkbox } from "./components/atoms/checkboxes/Checkbox";
13
- export { default as BaseFilter } from "./components/atoms/filter/Filter";
13
+ export { default as Fitler } from "./components/atoms/filter/Filter";
14
14
  export { default as Input } from "./components/atoms/inputs/Input";
15
15
  export type { InputProps, InputRef } from "./components/atoms/inputs/Input";
16
16
  export { default as SearchBar } from "./components/atoms/inputs/SearchBar";
17
17
  export { default as ProgressBar } from "./components/atoms/progressBars/ProgressBar";
18
18
  export { default as RadioButton } from "./components/atoms/radios/RadioButton";
19
+ export { default as SingleFilter } from "./components/atoms/filters/SingleFilter";
19
20
  export { default as Select } from "./components/atoms/selects/Select";
20
21
  export type { SelectItem, SelectProps, SelectRef, } from "./components/atoms/selects/Select";
21
22
  export { default as AppointementStatusTag } from "./components/atoms/tags/AppointementStatusTag";
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ export { default as OAuthProviderButton } from "./components/atoms/buttons/OAuth
14
14
  // Checkboxes
15
15
  export { default as Checkbox } from "./components/atoms/checkboxes/Checkbox";
16
16
  // Checkboxes
17
- export { default as BaseFilter } from "./components/atoms/filter/Filter";
17
+ export { default as Fitler } from "./components/atoms/filter/Filter";
18
18
  // Inputs
19
19
  export { default as Input } from "./components/atoms/inputs/Input";
20
20
  export { default as SearchBar } from "./components/atoms/inputs/SearchBar";
@@ -22,6 +22,7 @@ export { default as SearchBar } from "./components/atoms/inputs/SearchBar";
22
22
  export { default as ProgressBar } from "./components/atoms/progressBars/ProgressBar";
23
23
  // Radios
24
24
  export { default as RadioButton } from "./components/atoms/radios/RadioButton";
25
+ export { default as SingleFilter } from "./components/atoms/filters/SingleFilter";
25
26
  // Selects
26
27
  export { default as Select } from "./components/atoms/selects/Select";
27
28
  // Tags
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allaw-ui",
3
- "version": "0.0.351",
3
+ "version": "0.0.354",
4
4
  "description": "Composants UI pour l'application Allaw",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",