kelt-ui-kit-react 2.1.4 → 2.1.6

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kelt-ui-kit-react",
3
3
  "type": "module",
4
- "version": "2.1.4",
4
+ "version": "2.1.6",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",
package/src/card/Card.tsx CHANGED
@@ -44,6 +44,11 @@ export const Card = ({
44
44
  const onClickCard = useCallback(
45
45
  (e: React.MouseEvent, item: CardInterface) => {
46
46
  e.stopPropagation();
47
+ // Clic dans le menu d'actions (rendu en portal) : l'événement remonte
48
+ // dans l'arbre React mais ne doit pas refermer/repositionner le menu
49
+ if (!e.currentTarget.contains(e.target as Node)) {
50
+ return;
51
+ }
47
52
  if (openActions) {
48
53
  setPositions(undefined);
49
54
  return setOpenActions(false);
@@ -89,7 +89,7 @@ export const CardAction = ({
89
89
  ),
90
90
  };
91
91
  }) as MenuInterface[];
92
- }, [actions]);
92
+ }, [actions, item, closeOverlay]);
93
93
  return (
94
94
  <div className="card-actions">
95
95
  <div
@@ -35,6 +35,8 @@ export type OverlayPanelProps = {
35
35
  closeOverlay?: (close: boolean) => void;
36
36
  usePortal?: boolean;
37
37
  matchReferenceWidth?: boolean;
38
+ // sans cadre (padding, fond, ombre) ni croix de fermeture : le contenu porte son propre style
39
+ bare?: boolean;
38
40
  };
39
41
 
40
42
  export const OverlayPanel = forwardRef(
@@ -50,6 +52,7 @@ export const OverlayPanel = forwardRef(
50
52
  closeOverlay,
51
53
  usePortal = true,
52
54
  matchReferenceWidth = false,
55
+ bare = false,
53
56
  }: OverlayPanelProps,
54
57
  ref: React.Ref<{
55
58
  setCoords?: (coords: { top: number; left: number }) => void;
@@ -234,19 +237,22 @@ export const OverlayPanel = forwardRef(
234
237
  $left={coords.left}
235
238
  $minWidth={referenceWidth}
236
239
  $visible={isPositioned}
240
+ $bare={bare}
237
241
  >
238
242
  <div
239
243
  className={`overlayPanel ${className ? className : ""} ${
240
244
  coords.top > 0 || coords.left > 0 ? "visible" : "hide"
241
245
  }`}
242
246
  >
243
- <button
244
- id={id ?? ""}
245
- className="toggle-btn"
246
- onClick={closeOverlayHandler}
247
- >
248
- <Icon classIcon="bi-x-lg" />
249
- </button>
247
+ {!bare && (
248
+ <button
249
+ id={id ?? ""}
250
+ className="toggle-btn"
251
+ onClick={closeOverlayHandler}
252
+ >
253
+ <Icon classIcon="bi-x-lg" />
254
+ </button>
255
+ )}
250
256
  <div onClick={(e) => e.stopPropagation()}>{children}</div>
251
257
  </div>
252
258
  </OverlayPanelStyled>
@@ -5,6 +5,7 @@ interface OverlayPanelStyledProps {
5
5
  $left?: number;
6
6
  $minWidth?: number;
7
7
  $visible?: boolean;
8
+ $bare?: boolean;
8
9
  }
9
10
 
10
11
  export const OverlayPanelStyled = styled.div<OverlayPanelStyledProps>`
@@ -20,4 +21,14 @@ export const OverlayPanelStyled = styled.div<OverlayPanelStyledProps>`
20
21
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
21
22
  border-radius: 2px;
22
23
  border: 1px solid #ede;
24
+ ${({ $bare }) =>
25
+ $bare
26
+ ? `
27
+ background-color: transparent;
28
+ padding: 0;
29
+ box-shadow: none;
30
+ border: none;
31
+ border-radius: 0;
32
+ `
33
+ : ""}
23
34
  `;
@@ -215,6 +215,7 @@ export const Select = ({
215
215
  referenceElement={overlayRef}
216
216
  usePortal={usePortal}
217
217
  matchReferenceWidth={usePortal}
218
+ bare
218
219
  children={
219
220
  <>
220
221
  {searchable && (
@@ -131,8 +131,6 @@
131
131
 
132
132
  .select-overlay-search {
133
133
  padding-bottom: 0.5rem;
134
- /* laisse la place à la croix de fermeture de l'overlay (.toggle-btn) */
135
- padding-right: 1.5rem;
136
134
 
137
135
  input {
138
136
  width: 100%;