allaw-ui 0.0.335 → 0.0.337

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.
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export type FilterButtonPrimaryProps = {
3
+ onClick: any;
4
+ zIndex?: string;
5
+ children: any;
6
+ props?: any;
7
+ };
8
+ declare function FilterButtonPrimary({ onClick, zIndex, children, ...props }: FilterButtonPrimaryProps | any): React.JSX.Element;
9
+ export default FilterButtonPrimary;
@@ -0,0 +1,46 @@
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 from "react";
24
+ function FilterButtonPrimary(_a) {
25
+ var onClick = _a.onClick, _b = _a.zIndex, zIndex = _b === void 0 ? "100" : _b, children = _a.children, props = __rest(_a, ["onClick", "zIndex", "children"]);
26
+ return (React.createElement("button", __assign({ style: {
27
+ fontWeight: "600",
28
+ backgroundColor: "var(--primary-light-grey, #F4F7FB)",
29
+ padding: "10px",
30
+ borderRadius: "5px",
31
+ fontSize: "14px",
32
+ textWrap: "nowrap",
33
+ border: "1px solid var(--primary-venom-grey, #E6EDF5)",
34
+ position: "sticky",
35
+ color: "#000",
36
+ display: "flex",
37
+ cursor: "pointer",
38
+ flexDirection: "row",
39
+ gap: "0.5rem",
40
+ alignItems: "center",
41
+ zIndex: zIndex,
42
+ }, onClick: function () { return onClick && onClick(); } }, props),
43
+ React.createElement("i", { className: "allaw-icon-filter", style: { fontSize: "14px", color: "#25BEEB" } }),
44
+ children));
45
+ }
46
+ export default FilterButtonPrimary;
@@ -1,4 +1,5 @@
1
1
  export { default as FavoriteToggle } from "./FavoriteToggle";
2
+ export { default as FilterButtonPrimary } from "./FilterButtonPrimary";
2
3
  export { default as FilterButton } from "./FilterButton";
3
4
  export { default as GhostButton } from "./GhostButton";
4
5
  export { default as IconButton } from "./IconButton";
@@ -18,3 +19,4 @@ export type { SecondaryButtonProps } from "./SecondaryButton";
18
19
  export type { TabNavigationProps } from "./TabNavigation";
19
20
  export type { TertiaryButtonProps } from "./TertiaryButton";
20
21
  export type { OAuthProviderButtonProps } from "./OAuthProviderButton";
22
+ export type { FilterButtonPrimaryProps } from "./FilterButtonPrimary";
@@ -1,4 +1,5 @@
1
1
  export { default as FavoriteToggle } from "./FavoriteToggle";
2
+ export { default as FilterButtonPrimary } from "./FilterButtonPrimary";
2
3
  export { default as FilterButton } from "./FilterButton";
3
4
  export { default as GhostButton } from "./GhostButton";
4
5
  export { default as IconButton } from "./IconButton";
@@ -0,0 +1,80 @@
1
+ .backdrop {
2
+ position: absolute;
3
+ top: 0;
4
+ left: 0;
5
+ height: 100vh;
6
+ width: 100vw;
7
+ background: linear-gradient(180deg, rgba(26, 50, 56, 0.00) 0%, rgba(2, 9, 11, 0.45) 100%);
8
+ z-index: 1000;
9
+ }
10
+
11
+ .baseFilter {
12
+ position: relative;
13
+ width: fit-content;
14
+ }
15
+
16
+ .options {
17
+ position: absolute;
18
+ top: 120%;
19
+ left: 0;
20
+ width: fit-content;
21
+ border: 0.5px solid #ddd;
22
+ border-radius: 4px;
23
+ background-color: #ffffff;
24
+ box-shadow: rgba(9, 30, 66, 0.15) 0px 8px 12px 0px;
25
+ z-index: 2000;
26
+ padding: 0.4rem 0rem;
27
+ }
28
+
29
+ .item {
30
+ background: none;
31
+ border: none;
32
+ display: flex;
33
+ flex-direction: row;
34
+ align-items: center;
35
+ gap: 0.75rem;
36
+ padding: 0.5rem 1rem;
37
+ cursor: pointer;
38
+ border-left: 2px solid #FFF;
39
+ width: 100%;
40
+ color: #0000
41
+ }
42
+
43
+ .round {
44
+
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ border: 1px solid #D1DCE7;
49
+ border-radius: 3rem;
50
+ padding: 2px;
51
+ }
52
+
53
+ .selected {
54
+ background-color: #25BEEB;
55
+ min-width: 0.6rem;
56
+ min-height: 0.6rem;
57
+ border-radius: 1rem;
58
+ display: block;
59
+ }
60
+
61
+ .notSelected {
62
+ background-color: #FFF;
63
+ min-width: 0.6rem;
64
+ min-height: 0.6rem;
65
+ border-radius: 1rem;
66
+ display: block;
67
+ }
68
+
69
+ .item > span {
70
+ text-wrap: nowrap;
71
+ font-family: var(--font-open-sans);
72
+ font-size: 14px;
73
+ font-weight: 500;
74
+ color: #000;
75
+ }
76
+
77
+ .item:hover {
78
+ background-color: #EFF2F5;
79
+ border-left: 2px solid #25BEEB;
80
+ }
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import "./Basefiler.css";
3
+ export type FilterProps = {
4
+ tooltipContent: string;
5
+ tooltipId: string;
6
+ showIcon: boolean;
7
+ defaultSelectedValues?: string[];
8
+ filterData: {
9
+ value: string;
10
+ name: string;
11
+ }[];
12
+ setFilters: any;
13
+ multiselect?: boolean;
14
+ iconName?: string;
15
+ children?: any;
16
+ props?: any;
17
+ required?: boolean;
18
+ showNumIndic?: boolean;
19
+ isStatusTag?: boolean;
20
+ };
21
+ declare function BaseFilter({ tooltipContent, tooltipId, showNumIndic, required, isStatusTag, defaultSelectedValues, filterData, multiselect, setFilters, showIcon, iconName, children, ...props }: FilterProps): React.JSX.Element;
22
+ export default BaseFilter;
@@ -0,0 +1,87 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ import React, { useState } from "react";
33
+ import "./Basefiler.css";
34
+ import { AppointementStatusTag } from "../tags";
35
+ import { FilterButtonPrimary } from "../buttons";
36
+ function BaseFilter(_a) {
37
+ var tooltipContent = _a.tooltipContent, tooltipId = _a.tooltipId, _b = _a.showNumIndic, showNumIndic = _b === void 0 ? true : _b, _c = _a.required, required = _c === void 0 ? true : _c, isStatusTag = _a.isStatusTag, defaultSelectedValues = _a.defaultSelectedValues, filterData = _a.filterData, _d = _a.multiselect, multiselect = _d === void 0 ? false : _d, setFilters = _a.setFilters, showIcon = _a.showIcon, iconName = _a.iconName, children = _a.children, props = __rest(_a, ["tooltipContent", "tooltipId", "showNumIndic", "required", "isStatusTag", "defaultSelectedValues", "filterData", "multiselect", "setFilters", "showIcon", "iconName", "children"]);
38
+ var _e = useState(false), isOpen = _e[0], setIsOpen = _e[1];
39
+ var _f = useState(defaultSelectedValues ? defaultSelectedValues : []), selectedValues = _f[0], setSelectedValues = _f[1];
40
+ var handleButtonTap = function () {
41
+ isOpen ? handleClose() : setIsOpen(true);
42
+ };
43
+ var selectItem = function (value) {
44
+ if (multiselect) {
45
+ if (selectedValues &&
46
+ selectedValues.length > 0 &&
47
+ selectedValues.includes(value)) {
48
+ if (required && selectedValues.length == 1) {
49
+ return;
50
+ }
51
+ setSelectedValues(function (prevItems) {
52
+ return prevItems.filter(function (item) { return item !== value; });
53
+ });
54
+ }
55
+ else {
56
+ setSelectedValues(function (prevItems) { return __spreadArray(__spreadArray([], prevItems, true), [value], false); });
57
+ }
58
+ }
59
+ else {
60
+ setSelectedValues(value);
61
+ handleClose([value]);
62
+ }
63
+ };
64
+ var handleClose = function (values) {
65
+ setFilters(values ? values : selectedValues);
66
+ setIsOpen(false);
67
+ };
68
+ var Item = function (_a) {
69
+ var name = _a.name, value = _a.value;
70
+ return (React.createElement("button", { className: "item", onClick: function () { return selectItem(value); } },
71
+ React.createElement("div", { className: "round" },
72
+ React.createElement("div", { className: (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(value))
73
+ ? "selected"
74
+ : "notSelected" })),
75
+ isStatusTag ? (React.createElement(AppointementStatusTag, { status: value })) : (React.createElement("span", null, name))));
76
+ };
77
+ return (React.createElement(React.Fragment, null,
78
+ React.createElement("div", __assign({ className: "baseFilter" }, props),
79
+ React.createElement(FilterButtonPrimary, { onClick: function () { return handleButtonTap(); }, zIndex: isOpen ? "2000" : "+1" },
80
+ children,
81
+ React.createElement("p", { style: { color: "#25BEEB", fontWeight: "600" } }, showNumIndic && "(".concat(selectedValues.length, ")"))),
82
+ isOpen && (React.createElement("div", { className: "options" }, filterData &&
83
+ (filterData === null || filterData === void 0 ? void 0 : filterData.length) > 0 &&
84
+ filterData.map(function (item, idx) { return (React.createElement(Item, { name: item === null || item === void 0 ? void 0 : item.name, value: item === null || item === void 0 ? void 0 : item.value, key: idx })); })))),
85
+ isOpen && (React.createElement("div", { className: "backdrop", onClick: function () { return handleClose(); } }))));
86
+ }
87
+ export default BaseFilter;
@@ -0,0 +1,2 @@
1
+ export { default } from "./Filter";
2
+ export type { FilterProps } from "./Filter";
@@ -0,0 +1 @@
1
+ export { default } from "./Filter";
@@ -3,7 +3,7 @@ import "./Paragraph.css";
3
3
  export interface ParagraphProps {
4
4
  variant: "bold" | "semiBold" | "medium";
5
5
  color?: "bleu-allaw" | "mid-grey" | "dark-grey" | "noir" | "pure-white";
6
- text: string;
6
+ text: React.ReactNode;
7
7
  maxLines?: number;
8
8
  maxChars?: number;
9
9
  }
@@ -9,7 +9,9 @@ var Paragraph = function (_a) {
9
9
  return text.slice(0, maxChars) + "...";
10
10
  };
11
11
  // Tronquer le texte si maxChars est défini
12
- var truncatedText = maxChars ? truncateText(text, maxChars) : text;
12
+ var truncatedText = maxChars
13
+ ? truncateText(text, maxChars)
14
+ : text;
13
15
  return (React.createElement("p", { className: "paragraph ".concat(variant, " ").concat(color ? "color-".concat(color) : ""), style: maxLines
14
16
  ? {
15
17
  WebkitLineClamp: maxLines,
@@ -17,6 +19,6 @@ var Paragraph = function (_a) {
17
19
  WebkitBoxOrient: "vertical",
18
20
  overflow: "hidden",
19
21
  }
20
- : {}, dangerouslySetInnerHTML: { __html: truncatedText } }));
22
+ : {} }, truncatedText));
21
23
  };
22
24
  export default Paragraph;
@@ -1,7 +1,7 @@
1
1
  .checkbox-form {
2
2
  display: flex;
3
3
  align-items: center;
4
- gap: 8px;
4
+ gap: 0.75rem;
5
5
  cursor: pointer;
6
6
  }
7
7
 
@@ -22,3 +22,9 @@
22
22
  .checkbox-form-required {
23
23
  color: var(--dark-grey, #456073);
24
24
  }
25
+
26
+ .checkbox-form-link {
27
+ color: var(--allaw-blue, #25beeb);
28
+ text-decoration: underline;
29
+ cursor: pointer;
30
+ }
@@ -4,7 +4,7 @@ export interface CheckboxFormProps {
4
4
  checked?: boolean;
5
5
  onChange?: (checked: boolean) => void;
6
6
  isWhite?: boolean;
7
- label?: string;
7
+ label?: React.ReactNode;
8
8
  isRequired?: boolean;
9
9
  }
10
10
  declare const CheckboxForm: React.FC<CheckboxFormProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allaw-ui",
3
- "version": "0.0.335",
3
+ "version": "0.0.337",
4
4
  "description": "Composants UI pour l'application Allaw",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",