allaw-ui 0.1.21 → 0.1.23

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.
@@ -4,7 +4,6 @@
4
4
 
5
5
  .select {
6
6
  display: flex;
7
- width: 100%;
8
7
  padding: 8px 16px;
9
8
  justify-content: space-between;
10
9
  align-items: center;
@@ -37,9 +36,8 @@
37
36
  }
38
37
 
39
38
  .select-list {
40
- display: none; /* Masquer par défaut */
39
+ display: none;
41
40
  flex-direction: column;
42
- width: 480px;
43
41
  background: var(--secondary-light-grey, #f4f7fb);
44
42
  border-radius: 8px;
45
43
  margin-top: 8px;
@@ -12,6 +12,7 @@ export interface SelectProps<T extends string | string[]> {
12
12
  multiple?: boolean;
13
13
  isRequired?: boolean;
14
14
  showError?: boolean;
15
+ width?: number;
15
16
  onChange?: (selected: T) => void;
16
17
  onError?: (error: string) => void;
17
18
  }
@@ -13,10 +13,10 @@ import "../../../styles/global.css";
13
13
  import TinyInfo from "../typography/TinyInfo";
14
14
  function Select(_a, ref) {
15
15
  var _b;
16
- var items = _a.items, selectedItem = _a.selectedItem, _c = _a.placeholder, placeholder = _c === void 0 ? "Select..." : _c, _d = _a.multiple, multiple = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, _f = _a.showError, showError = _f === void 0 ? false : _f, onChange = _a.onChange, onError = _a.onError;
17
- var _g = useState(false), isOpen = _g[0], setIsOpen = _g[1];
18
- var _h = useState((multiple ? selectedItem || [] : selectedItem || "")), selected = _h[0], setSelected = _h[1];
19
- var _j = useState(""), error = _j[0], setError = _j[1];
16
+ var items = _a.items, selectedItem = _a.selectedItem, _c = _a.placeholder, placeholder = _c === void 0 ? "Select..." : _c, _d = _a.multiple, multiple = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, _f = _a.showError, showError = _f === void 0 ? false : _f, _g = _a.width, width = _g === void 0 ? 100 : _g, onChange = _a.onChange, onError = _a.onError;
17
+ var _h = useState(false), isOpen = _h[0], setIsOpen = _h[1];
18
+ var _j = useState((multiple ? selectedItem || [] : selectedItem || "")), selected = _j[0], setSelected = _j[1];
19
+ var _k = useState(""), error = _k[0], setError = _k[1];
20
20
  var selectRef = useRef(null);
21
21
  useEffect(function () {
22
22
  setSelected((multiple ? selectedItem || [] : selectedItem || ""));
@@ -63,8 +63,8 @@ function Select(_a, ref) {
63
63
  useImperativeHandle(ref, function () { return ({
64
64
  validate: function () { return validateSelect(selected); },
65
65
  }); });
66
- return (React.createElement("div", { ref: selectRef, className: "select-container ".concat(isOpen ? "select-pressed" : "") },
67
- React.createElement("button", { className: "select ".concat(isOpen ? "select-pressed" : "select-default"), onClick: toggleOpen },
66
+ return (React.createElement("div", { ref: selectRef, className: "select-container ".concat(isOpen ? "select-pressed" : ""), style: { width: "".concat(width, "%") } },
67
+ React.createElement("button", { className: "select ".concat(isOpen ? "select-pressed" : "select-default"), onClick: toggleOpen, style: { width: "100%" } },
68
68
  React.createElement("span", { className: "select-text" }, Array.isArray(selected) && selected.length > 0
69
69
  ? selected
70
70
  .map(function (val) { var _a; return (_a = items.find(function (item) { return item.value === val; })) === null || _a === void 0 ? void 0 : _a.label; })
@@ -73,7 +73,7 @@ function Select(_a, ref) {
73
73
  ? (_b = items.find(function (item) { return item.value === selected; })) === null || _b === void 0 ? void 0 : _b.label
74
74
  : placeholder),
75
75
  React.createElement("span", { className: "select-icon ".concat(isOpen ? "allaw-icon-chevron-up" : "allaw-icon-chevron-down") })),
76
- isOpen && (React.createElement("div", { className: "select-list" }, items.map(function (item) { return (React.createElement("div", { key: item.value, className: "select-item ".concat(Array.isArray(selected) && selected.includes(item.value)
76
+ isOpen && (React.createElement("div", { className: "select-list", style: { width: "100%" } }, items.map(function (item) { return (React.createElement("div", { key: item.value, className: "select-item ".concat(Array.isArray(selected) && selected.includes(item.value)
77
77
  ? "selected"
78
78
  : "", " ").concat(!multiple ? "single-select" : ""), onClick: function () { return handleSelect(item); } },
79
79
  multiple && (React.createElement("span", { className: "select-item-icon allaw-icon-check" })),
@@ -0,0 +1,9 @@
1
+ .select-form {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 8px;
5
+ }
6
+
7
+ .select-form-required {
8
+ color: #e15151;
9
+ }
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import "./SelectForm.css";
3
+ import "../../../styles/global.css";
4
+ import { SelectItem } from "../../atoms/selects/Select";
5
+ export interface SelectFormProps {
6
+ label: string;
7
+ isRequired: boolean;
8
+ options: SelectItem[];
9
+ isMultiple: boolean;
10
+ width?: number;
11
+ selectedItem?: string | string[];
12
+ onChange?: (selected: string | string[]) => void;
13
+ }
14
+ declare const SelectForm: React.FC<SelectFormProps>;
15
+ export default SelectForm;
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import "./SelectForm.css";
3
+ import "../../../styles/global.css";
4
+ import Paragraph from "../../atoms/typography/Paragraph";
5
+ import Select from "../../atoms/selects/Select";
6
+ var SelectForm = function (_a) {
7
+ var label = _a.label, isRequired = _a.isRequired, options = _a.options, isMultiple = _a.isMultiple, _b = _a.width, width = _b === void 0 ? 100 : _b, selectedItem = _a.selectedItem, onChange = _a.onChange;
8
+ return (React.createElement("div", { className: "select-form" },
9
+ React.createElement(Paragraph, { variant: "medium", color: "noir", text: React.createElement(React.Fragment, null,
10
+ label,
11
+ " ",
12
+ isRequired && React.createElement("span", { className: "select-form-required" }, "*")), size: "default" }),
13
+ React.createElement(Select, { items: options, multiple: isMultiple, isRequired: isRequired, width: width, selectedItem: selectedItem, onChange: onChange })));
14
+ };
15
+ export default SelectForm;
@@ -0,0 +1,2 @@
1
+ export { default as SelectForm } from "./SelectForm";
2
+ export type { SelectFormProps } from "./SelectForm";
@@ -0,0 +1 @@
1
+ export { default as SelectForm } from "./SelectForm";
@@ -17,6 +17,10 @@ export interface StepperProps {
17
17
  primaryButton?: {
18
18
  show: boolean;
19
19
  label: string;
20
+ startIcon?: React.ReactNode;
21
+ endIcon?: React.ReactNode;
22
+ startIconName?: string;
23
+ endIconName?: string;
20
24
  onPrimaryButtonClick?: (step: number) => void;
21
25
  }[];
22
26
  showProgressBar?: boolean[];
@@ -73,7 +73,7 @@ var Stepper = function (_a) {
73
73
  (currentSecondaryButton === null || currentSecondaryButton === void 0 ? void 0 : currentSecondaryButton.show) && (React.createElement("div", { className: "stepper-button-container secondary-button-container" },
74
74
  React.createElement(SecondaryButton, { label: currentSecondaryButton.label, startIcon: currentSecondaryButton.icon, onClick: function () { var _a; return (_a = currentSecondaryButton.onSecondaryButtonClick) === null || _a === void 0 ? void 0 : _a.call(currentSecondaryButton, step); } }))),
75
75
  (currentPrimaryButton === null || currentPrimaryButton === void 0 ? void 0 : currentPrimaryButton.show) && (React.createElement("div", { className: "stepper-button-container primary-button-container" },
76
- React.createElement(PrimaryButton, { label: currentPrimaryButton.label, onClick: handleNext })))))));
76
+ React.createElement(PrimaryButton, { label: currentPrimaryButton.label, startIcon: currentPrimaryButton.startIconName ? true : undefined, endIcon: currentPrimaryButton.endIconName ? true : undefined, startIconName: currentPrimaryButton.startIconName, endIconName: currentPrimaryButton.endIconName, onClick: handleNext })))))));
77
77
  return portalContainerRef.current && isVisible
78
78
  ? ReactDOM.createPortal(stepperContent, portalContainerRef.current)
79
79
  : null;
package/dist/index.d.ts CHANGED
@@ -39,5 +39,6 @@ export { default as Stepper } from "./components/molecules/stepper/Stepper";
39
39
  export type { StepperProps } from "./components/molecules/stepper/Stepper";
40
40
  export { default as CheckboxForm } from "./components/molecules/checkboxForm/CheckboxForm";
41
41
  export { default as RadioForm } from "./components/molecules/radioForm/RadioForm";
42
+ export { default as SelectForm } from "./components/molecules/selectForm/SelectForm";
42
43
  export { default as Breadcrumb } from "./components/molecules/breadcrumb/Breadcrumb";
43
44
  export { default as ProCard } from "./components/molecules/proCard/ProCard";
package/dist/index.js CHANGED
@@ -56,6 +56,8 @@ export { default as Stepper } from "./components/molecules/stepper/Stepper";
56
56
  export { default as CheckboxForm } from "./components/molecules/checkboxForm/CheckboxForm";
57
57
  // RadioForm
58
58
  export { default as RadioForm } from "./components/molecules/radioForm/RadioForm";
59
+ // SelectForm
60
+ export { default as SelectForm } from "./components/molecules/selectForm/SelectForm";
59
61
  // Breadcrumb
60
62
  export { default as Breadcrumb } from "./components/molecules/breadcrumb/Breadcrumb";
61
63
  // ProCard
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allaw-ui",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "Composants UI pour l'application Allaw",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",