kelt-ui-kit-react 2.0.3 → 2.0.4

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 (127) hide show
  1. package/README.md +26 -0
  2. package/dist/addressSearch/AddressSearch.d.ts +20 -0
  3. package/dist/addressSearch/AddressSearch.view.d.ts +1 -0
  4. package/dist/badge/Badge.d.ts +1 -3
  5. package/dist/button/Button.d.ts +1 -1
  6. package/dist/button/button.interface.d.ts +2 -1
  7. package/dist/card/Card.d.ts +4 -1
  8. package/dist/dataTable/DataTable.d.ts +14 -17
  9. package/dist/dataTable/dataTable.interface.d.ts +19 -24
  10. package/dist/dataTable/dataTableActions/DataTableAction.d.ts +5 -3
  11. package/dist/dataTable/dataTableColumn/DataTableColumn.d.ts +7 -13
  12. package/dist/dataTable/dataTableLoading/DataTableLoading.d.ts +3 -1
  13. package/dist/dataTable/dataTableRow/DataTableRow.d.ts +6 -5
  14. package/dist/expands/Expands.d.ts +1 -0
  15. package/dist/expands/expand/expand.d.ts +3 -2
  16. package/dist/form/Form.d.ts +10 -2
  17. package/dist/form/form.enum.d.ts +3 -2
  18. package/dist/form/form.interface.d.ts +22 -3
  19. package/dist/form/input/Input.d.ts +0 -3
  20. package/dist/form/inputNumber/InputNumber.d.ts +2 -0
  21. package/dist/geocoding/GeocodingService.d.ts +13 -0
  22. package/dist/geocoding/geocoding.interface.d.ts +20 -0
  23. package/dist/grid/Grid.d.ts +5 -2
  24. package/dist/grid/col/Col.d.ts +3 -6
  25. package/dist/grid/col/colStyled/ColStyled.d.ts +8 -5
  26. package/dist/grid/grid.interface.d.ts +20 -5
  27. package/dist/grid/row/Row.d.ts +7 -0
  28. package/dist/header/Header.d.ts +1 -1
  29. package/dist/header/header.interface.d.ts +2 -1
  30. package/dist/icon/Icon.d.ts +1 -1
  31. package/dist/icon/icon.interface.d.ts +0 -1
  32. package/dist/index.d.ts +5 -1
  33. package/dist/index.js +3724 -3628
  34. package/dist/menus/menu/Menu.d.ts +1 -0
  35. package/dist/select/Select.d.ts +2 -1
  36. package/dist/style.css +1 -1
  37. package/dist/tabs/Tabs.d.ts +1 -2
  38. package/dist/toaster/store/useToasterStore.d.ts +1 -0
  39. package/index.html +1 -2
  40. package/package.json +1 -1
  41. package/src/App.menu.tsx +8 -0
  42. package/src/addressSearch/AddressSearch.tsx +246 -0
  43. package/src/addressSearch/AddressSearch.view.tsx +52 -0
  44. package/src/addressSearch/addressSearch.css +133 -0
  45. package/src/badge/Badge.tsx +1 -9
  46. package/src/badge/badge.css +0 -4
  47. package/src/button/Button.tsx +3 -1
  48. package/src/button/button.css +2 -2
  49. package/src/button/button.interface.tsx +2 -1
  50. package/src/card/Card.tsx +37 -11
  51. package/src/card/card.css +7 -28
  52. package/src/card/cardAction/CardAction.tsx +4 -4
  53. package/src/damier/Damier.tsx +16 -7
  54. package/src/damier/damier.css +11 -4
  55. package/src/dataTable/DataTable.tsx +542 -685
  56. package/src/dataTable/DataTable.view.tsx +24 -48
  57. package/src/dataTable/dataTable.css +159 -134
  58. package/src/dataTable/dataTable.interface.ts +19 -25
  59. package/src/dataTable/dataTableActions/DataTableAction.tsx +25 -14
  60. package/src/dataTable/dataTableColumn/DataTableColumn.tsx +14 -64
  61. package/src/dataTable/dataTableLoading/DataTableLoading.tsx +15 -4
  62. package/src/dataTable/dataTableRow/DataTableRow.tsx +180 -64
  63. package/src/expands/Expands.tsx +18 -2
  64. package/src/expands/expand/expand.tsx +128 -5
  65. package/src/expands/expands.css +8 -3
  66. package/src/form/Form.tsx +294 -99
  67. package/src/form/Form.view.tsx +9 -1
  68. package/src/form/form.css +64 -1
  69. package/src/form/form.enum.ts +2 -1
  70. package/src/form/form.interface.tsx +31 -3
  71. package/src/form/input/Input.tsx +7 -61
  72. package/src/form/input/input.css +1 -19
  73. package/src/form/inputNumber/InputNumber.tsx +11 -6
  74. package/src/form/inputPrice/InputPrice.tsx +4 -2
  75. package/src/geocoding/GeocodingService.ts +89 -0
  76. package/src/geocoding/geocoding.interface.ts +25 -0
  77. package/src/grid/Grid.tsx +34 -21
  78. package/src/grid/col/Col.tsx +24 -15
  79. package/src/grid/col/col.css +3 -0
  80. package/src/grid/col/colStyled/ColStyled.tsx +59 -41
  81. package/src/grid/container/container.css +2 -2
  82. package/src/grid/grid.interface.tsx +25 -5
  83. package/src/grid/row/Row.tsx +49 -12
  84. package/src/grid/row/row.css +11 -3
  85. package/src/header/Header.tsx +4 -2
  86. package/src/header/header.css +17 -0
  87. package/src/header/header.interface.tsx +2 -1
  88. package/src/icon/Icon.tsx +2 -6
  89. package/src/icon/icon.interface.tsx +0 -1
  90. package/src/index.css +58 -12
  91. package/src/index.ts +12 -2
  92. package/src/menus/Menus.tsx +1 -0
  93. package/src/menus/menu/Menu.tsx +2 -1
  94. package/src/select/Select.tsx +5 -3
  95. package/src/sidebar/Sidebar.tsx +107 -5
  96. package/src/sidebar/sidebar.css +18 -1
  97. package/src/tabs/Tabs.tsx +1 -20
  98. package/src/tabs/tabs.css +9 -3
  99. package/src/toaster/Toaster.tsx +7 -2
  100. package/src/toaster/Toaster.view.tsx +1 -0
  101. package/src/toaster/store/useToasterStore.tsx +2 -0
  102. package/src/toaster/toaster.css +7 -2
  103. package/dist/_core/type/generiqueType.d.ts +0 -4
  104. package/dist/dataTable/dataTableColumn/dataTableColumnFilter/DataTableColumnFilter.d.ts +0 -10
  105. package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDate/DataTableColumnFilterDate.d.ts +0 -9
  106. package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDateRange/dataTableColumnFilterDateRange.d.ts +0 -9
  107. package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterEnum/DataTableColumnFilterEnum.d.ts +0 -13
  108. package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterString/DataTableColumnFilterString.d.ts +0 -9
  109. package/dist/dataTable/dataTableColumn/dataTableColumnSort/DataTableColumnSort.d.ts +0 -11
  110. package/dist/dataTable/dataTableFilters/DataTableFilters.d.ts +0 -7
  111. package/dist/dataTable/dataTableRow/dataTableRowOverlay/DataTableRowOverlay.d.ts +0 -12
  112. package/dist/dataTable/dataTableRow/dataTableRowValue/DataTableRowValue.d.ts +0 -11
  113. package/package/package.json +0 -56
  114. package/package/src/sidebar/Sidebar.tsx +0 -208
  115. package/package/src/sidebar/sidebar.css +0 -104
  116. package/src/_core/type/generiqueType.tsx +0 -4
  117. package/src/dataTable/dataTableColumn/dataTableColumnFilter/DataTableColumnFilter.tsx +0 -36
  118. package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilter.css +0 -0
  119. package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDate/DataTableColumnFilterDate.tsx +0 -39
  120. package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDateRange/dataTableColumnFilterDateRange.tsx +0 -80
  121. package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterEnum/DataTableColumnFilterEnum.tsx +0 -89
  122. package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterString/DataTableColumnFilterString.tsx +0 -37
  123. package/src/dataTable/dataTableColumn/dataTableColumnSort/DataTableColumnSort.tsx +0 -42
  124. package/src/dataTable/dataTableFilters/DataTableFilters.tsx +0 -91
  125. package/src/dataTable/dataTableFilters/dataTableFilters.css +0 -16
  126. package/src/dataTable/dataTableRow/dataTableRowOverlay/DataTableRowOverlay.tsx +0 -80
  127. package/src/dataTable/dataTableRow/dataTableRowValue/DataTableRowValue.tsx +0 -123
@@ -1,7 +1,27 @@
1
- export interface GridInterface {
2
- sm?: number;
3
- xs?: number;
4
- md?: number;
5
- lg?: number;
1
+ /**
2
+ * Largeur de référence pour les breakpoints des Col :
3
+ * - "app" (défaut) : le conteneur app-container
4
+ * - "viewport" : la fenêtre (@media)
5
+ * - "row" : la Row elle-même (utile pour une grid dans une card, un panneau...)
6
+ */
7
+ export type GridResponsive = "app" | "viewport" | "row";
8
+
9
+ /**
10
+ * Nombre de colonnes sur 12, ou "auto" : la colonne partage la place restante
11
+ * de la ligne à parts égales avec les autres "auto" (ex. 5 champs sur une ligne).
12
+ */
13
+ export type GridColumnSpan =
14
+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
15
+ | "auto";
16
+
17
+ export interface GridBreakpoints {
18
+ xs?: GridColumnSpan;
19
+ sm?: GridColumnSpan;
20
+ md?: GridColumnSpan;
21
+ lg?: GridColumnSpan;
22
+ xl?: GridColumnSpan;
23
+ }
24
+
25
+ export interface GridInterface extends GridBreakpoints {
6
26
  children: React.ReactNode;
7
27
  }
@@ -1,12 +1,49 @@
1
- import "./row.css";
2
- type RowProps = {
3
- children: React.ReactNode;
4
- className?: string;
5
- scroll?: boolean;
6
- };
7
-
8
- export const Row: React.FC<RowProps> = ({ children, className, scroll }) => (
9
- <div className={`grid-row ${className ?? ""} ${scroll ? "scroll" : ""}`}>
10
- {children}
11
- </div>
12
- );
1
+ import { createContext } from "react";
2
+ import { GridResponsive } from "../grid.interface";
3
+ import "./row.css";
4
+
5
+ export type GridGap = boolean | number | string;
6
+
7
+ export const RowResponsiveContext = createContext<GridResponsive>("app");
8
+
9
+ type RowProps = {
10
+ children: React.ReactNode;
11
+ className?: string;
12
+ scroll?: boolean;
13
+ /** true (défaut) : gap par défaut, false : pas de gap, number : px, string : valeur CSS ("1rem") */
14
+ gap?: GridGap;
15
+ /** Largeur sur laquelle se basent les breakpoints des Col (défaut : "app") */
16
+ responsive?: GridResponsive;
17
+ };
18
+
19
+ const getGutter = (gap: GridGap) => {
20
+ if (gap === true) return undefined; // garde la valeur par défaut du CSS
21
+ if (gap === false) return "0px";
22
+ return typeof gap === "number" ? `${gap}px` : gap;
23
+ };
24
+
25
+ export const Row: React.FC<RowProps> = ({
26
+ children,
27
+ className,
28
+ scroll,
29
+ gap = true,
30
+ responsive = "app",
31
+ }) => {
32
+ const gutter = getGutter(gap);
33
+ return (
34
+ <RowResponsiveContext.Provider value={responsive}>
35
+ <div
36
+ className={`grid-row ${className ?? ""} ${scroll ? "scroll" : ""} ${
37
+ responsive === "row" ? "grid-row--responsive" : ""
38
+ }`}
39
+ style={
40
+ gutter
41
+ ? ({ "--grid-gutter": gutter } as React.CSSProperties)
42
+ : undefined
43
+ }
44
+ >
45
+ {children}
46
+ </div>
47
+ </RowResponsiveContext.Provider>
48
+ );
49
+ };
@@ -1,18 +1,26 @@
1
1
  .grid-row {
2
+ --grid-gutter: 15px;
2
3
  display: flex;
3
4
  flex-wrap: wrap;
4
- margin: 0 -15px;
5
+ column-gap: var(--grid-gutter);
6
+
7
+ /* responsive="row" : les breakpoints des Col se basent sur la largeur de la Row.
8
+ Attention : la Row a alors une largeur min de contenu de 0 dans un parent flex. */
9
+ &.grid-row--responsive {
10
+ container: kelt-grid / inline-size;
11
+ }
12
+
5
13
  &.scroll {
6
14
  overflow-x: auto;
7
15
  flex-wrap: nowrap;
8
16
  }
9
17
  }
10
18
 
11
- @container (min-width: 998px) {
19
+ @container app-container (min-width: 998px) {
12
20
  .grid-row {
13
21
  &.scroll {
14
22
  overflow-x: auto;
15
23
  flex-wrap: wrap;
16
24
  }
17
25
  }
18
- }
26
+ }
@@ -11,6 +11,7 @@ export const Header = ({
11
11
  onClickMenu,
12
12
  userChildren,
13
13
  positionFixed,
14
+ overlayClassName,
14
15
  onClickLogo,
15
16
  showBackNavigation,
16
17
  onClickBackNavigation,
@@ -23,7 +24,7 @@ export const Header = ({
23
24
  return (
24
25
  <div className={`header ${positionFixed ? "header--fixed" : ""}`}>
25
26
  <div className="flex-1 d-flex align-items-center">
26
- <span onClick={onClickMenu}>
27
+ <span className="header-menu-btn" onClick={onClickMenu}>
27
28
  <Icon size={IconSizeEnum.MEDIUM} classIcon="bi-list"></Icon>
28
29
  </span>
29
30
  {showBackNavigation && (
@@ -39,7 +40,7 @@ export const Header = ({
39
40
  className={`header-logo ${onClickLogo && "cursor-pointer"} `}
40
41
  onClick={onClickLogo}
41
42
  >
42
- {logo && <img src={logo} alt="logo" />}
43
+ {logo && logo}
43
44
  </span>
44
45
  </div>
45
46
  <div className="d-flex align-items-center">
@@ -49,6 +50,7 @@ export const Header = ({
49
50
  </div>
50
51
  {openOverlay && refButton.current && (
51
52
  <OverlayPanel
53
+ className={overlayClassName}
52
54
  position="bottomRight"
53
55
  show={openOverlay}
54
56
  closeOverlay={setOpenOverlay}
@@ -23,4 +23,21 @@
23
23
  .bi {
24
24
  cursor: pointer;
25
25
  }
26
+
27
+ .header-menu-btn {
28
+ display: inline-flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ position: relative;
32
+ cursor: pointer;
33
+
34
+ &::before {
35
+ content: "";
36
+ position: absolute;
37
+ top: -15px;
38
+ bottom: -15px;
39
+ left: -15px;
40
+ right: -15px;
41
+ }
42
+ }
26
43
  }
@@ -1,10 +1,11 @@
1
1
  export interface HeaderInterface {
2
- logo?: string;
2
+ logo?: React.ReactNode;
3
3
  children?: React.ReactNode;
4
4
  positionFixed?: boolean;
5
5
  onClickMenu?: () => void;
6
6
  userChildren?: React.ReactNode;
7
7
  onClickLogo?: () => void;
8
+ overlayClassName?: string;
8
9
  showBackNavigation?: boolean;
9
10
  onClickBackNavigation?: () => void;
10
11
  }
package/src/icon/Icon.tsx CHANGED
@@ -1,10 +1,6 @@
1
1
  import "./icon.css";
2
2
  import { IconInterface } from "./icon.interface";
3
3
 
4
- export const Icon = ({
5
- classIcon,
6
- size,
7
- onClick,
8
- }: IconInterface): JSX.Element => {
9
- return <i className={`bi ${classIcon} ${size ?? "sm"}`} onClick={onClick} />;
4
+ export const Icon = ({ classIcon, size }: IconInterface): JSX.Element => {
5
+ return <i className={`bi ${classIcon} ${size ?? "sm"}`} />;
10
6
  };
@@ -3,5 +3,4 @@ import { IconSizeEnum } from "./iconSize.enum";
3
3
  export interface IconInterface {
4
4
  classIcon: string;
5
5
  size?: IconSizeEnum;
6
- onClick?: (e: React.MouseEvent) => void;
7
6
  }
package/src/index.css CHANGED
@@ -1,9 +1,9 @@
1
1
  /* variables couleur */
2
2
  :root {
3
- --primary-color: #004aad;
4
- --secondary-color: #ff914d;
5
- --tertiary-color: #00ada1;
6
- --quaternary-color: #0082ad;
3
+ --primary-color: #123852;
4
+ --secondary-color: #EB5E3B;
5
+ --tertiary-color: #30B8C2;
6
+ --quaternary-color: #7dc2ef;
7
7
  --success-color: #28a745;
8
8
  --info-color: #17a2b8;
9
9
  --warning-color: #ec942c;
@@ -17,7 +17,10 @@
17
17
  html,
18
18
  body {
19
19
  margin: 0;
20
- font-family: "Raleway", sans-serif !important;
20
+ font-family: "Lexend", sans-serif;
21
+ font-optical-sizing: auto;
22
+ font-style: normal;
23
+ font-size: 18px;
21
24
  -webkit-font-smoothing: antialiased;
22
25
  -moz-osx-font-smoothing: grayscale;
23
26
  height: 100%;
@@ -28,38 +31,48 @@ body {
28
31
  width: 100%;
29
32
  background-color: #fff;
30
33
  }
34
+
31
35
  .app {
32
36
  container: app-container/ inline-size;
33
37
  }
34
38
 
35
39
  input[type="number"]::-webkit-outer-spin-button,
36
40
  input[type="number"]::-webkit-inner-spin-button {
37
- -webkit-appearance: none; /* Chrome, Safari, Edge */
41
+ -webkit-appearance: none;
42
+ /* Chrome, Safari, Edge */
38
43
  margin: 0;
39
44
  }
45
+
40
46
  /* flex properties */
41
47
 
42
48
  .d-flex {
43
49
  display: flex;
44
50
  }
51
+
45
52
  .justify-content-start {
46
53
  justify-content: start;
47
54
  }
55
+
48
56
  .justify-content-end {
49
57
  justify-content: end;
50
58
  }
59
+
51
60
  .justify-content-center {
52
61
  justify-content: center;
53
62
  }
63
+
54
64
  .justify-content-between {
55
65
  justify-content: space-between;
56
66
  }
67
+
57
68
  .justify-content-around {
58
69
  justify-content: space-around;
59
70
  }
71
+
60
72
  .justify-content-evenly {
61
73
  justify-content: space-evenly;
62
74
  }
75
+
63
76
  .align-items-start {
64
77
  align-items: start;
65
78
  }
@@ -310,63 +323,83 @@ a {
310
323
  .mb-3 {
311
324
  margin-bottom: 1rem;
312
325
  }
326
+
313
327
  .pb-0 {
314
328
  padding-bottom: 0;
315
329
  }
330
+
316
331
  .pb-1 {
317
332
  padding-bottom: 0.25rem;
318
333
  }
334
+
319
335
  .pb-2 {
320
336
  padding-bottom: 0.5rem;
321
337
  }
338
+
322
339
  .pb-3 {
323
340
  padding-bottom: 1rem;
324
341
  }
342
+
325
343
  .pt-0 {
326
344
  padding-top: 0;
327
345
  }
346
+
328
347
  .pt-1 {
329
348
  padding-top: 0.25rem;
330
349
  }
350
+
331
351
  .pt-2 {
332
352
  padding-top: 0.5rem;
333
353
  }
354
+
334
355
  .pt-3 {
335
356
  padding-top: 1rem;
336
357
  }
358
+
337
359
  .pl-0 {
338
360
  padding-left: 0;
339
361
  }
362
+
340
363
  .pl-1 {
341
364
  padding-left: 0.25rem;
342
365
  }
366
+
343
367
  .pl-2 {
344
368
  padding-left: 0.5rem;
345
369
  }
370
+
346
371
  .pl-3 {
347
372
  padding-left: 1rem;
348
373
  }
374
+
349
375
  .pr-0 {
350
376
  padding-right: 0;
351
377
  }
378
+
352
379
  .pr-1 {
353
380
  padding-right: 0.25rem;
354
381
  }
382
+
355
383
  .pr-2 {
356
384
  padding-right: 0.5rem;
357
385
  }
386
+
358
387
  .pr-3 {
359
388
  padding-right: 1rem;
360
389
  }
390
+
361
391
  .p-0 {
362
392
  padding: 0;
363
393
  }
394
+
364
395
  .p-1 {
365
396
  padding: 0.25rem;
366
397
  }
398
+
367
399
  .p-2 {
368
400
  padding: 0.5rem;
369
401
  }
402
+
370
403
  .p-3 {
371
404
  padding: 1rem;
372
405
  }
@@ -375,25 +408,32 @@ a {
375
408
  .border-bottom {
376
409
  border-bottom: 1px solid #cfbdbd;
377
410
  }
411
+
378
412
  .border-top {
379
413
  border-top: 1px solid #cfbdbd;
380
414
  }
415
+
381
416
  .border-left {
382
417
  border-left: 1px solid #cfbdbd;
383
418
  }
419
+
384
420
  .border-right {
385
421
  border-right: 1px solid #cfbdbd;
386
422
  }
423
+
387
424
  /* fonts */
388
425
  .font-weight-bold {
389
426
  font-weight: 600;
390
427
  }
428
+
391
429
  .font-weight-light {
392
430
  font-weight: 300;
393
431
  }
432
+
394
433
  .font-weight-normal {
395
434
  font-weight: 400;
396
435
  }
436
+
397
437
  .font-weight-italic {
398
438
  font-style: italic;
399
439
  }
@@ -402,32 +442,41 @@ a {
402
442
  .visible {
403
443
  visibility: visible;
404
444
  }
445
+
405
446
  .hidden {
406
447
  visibility: hidden;
407
448
  }
449
+
408
450
  .position-relative {
409
451
  position: relative;
410
452
  }
453
+
411
454
  .position-absolute {
412
455
  position: absolute;
413
456
  }
457
+
414
458
  .cursor-pointer {
415
459
  cursor: pointer;
416
460
  }
461
+
417
462
  .w-100 {
418
463
  width: 100%;
419
464
  }
465
+
420
466
  .min-width-auto {
421
467
  min-width: auto;
422
468
  }
469
+
423
470
  .disabled {
424
471
  opacity: 0.5;
425
472
  cursor: not-allowed;
426
473
  pointer-events: none;
427
474
  }
475
+
428
476
  .overflow-auto {
429
477
  overflow: auto;
430
478
  }
479
+
431
480
  .toggle-btn {
432
481
  display: flex;
433
482
  width: 100%;
@@ -492,11 +541,8 @@ a {
492
541
  /* Couleurs : gris pour la barre, transparent pour le fond */
493
542
  }
494
543
 
495
- @media (min-width: 576px) {
496
- }
544
+ @media (min-width: 576px) {}
497
545
 
498
- @media (min-width: 768px) {
499
- }
546
+ @media (min-width: 768px) {}
500
547
 
501
- @media (min-width: 992px) {
502
- }
548
+ @media (min-width: 992px) {}
package/src/index.ts CHANGED
@@ -19,13 +19,13 @@ export { useIsMobile } from "./_core/hooks/useIsMobile";
19
19
  export { useToken } from "./_core/hooks/useToken";
20
20
  export { useValidate } from "./_core/hooks/useValidate";
21
21
  export { WidgetSupport } from "./_core/hooks/widgetSupport";
22
-
23
22
  export { ButtonAction } from "./action/ButtonAction";
23
+ export { AddressSearch } from "./addressSearch/AddressSearch";
24
+ export type { AddressSearchProps } from "./addressSearch/AddressSearch";
24
25
  export { Badge } from "./badge/Badge";
25
26
  export { Button } from "./button/Button";
26
27
  export { ButtonActions } from "./button/buttonActions/ButtonActions";
27
28
  export { ButtonFile } from "./button/buttonFile/ButtonFile";
28
- export { ButtonFilters } from "./button/buttonFilters/ButtonFilters";
29
29
  export { Card } from "./card/Card";
30
30
  export { Carousel } from "./carousel/Carousel";
31
31
  export { Damier } from "./damier/Damier";
@@ -35,11 +35,21 @@ export { Expands } from "./expands/Expands";
35
35
  export { FilAriane } from "./filAriane/FilAriane";
36
36
  export { DynamicForm } from "./form/Form";
37
37
  export { TypeInputEnum } from "./form/form.enum";
38
+ export type { FormMode, FormSection } from "./form/form.interface";
38
39
  export { Input } from "./form/input/Input";
39
40
  export { InputNumber } from "./form/inputNumber/InputNumber";
40
41
  export { InputPrice } from "./form/inputPrice/InputPrice";
41
42
  export { TextArea } from "./form/textArea/TextArea";
42
43
  export { Grid } from "./grid/Grid";
44
+ export {
45
+ GeocodingService,
46
+ geocodingService,
47
+ } from "./geocoding/GeocodingService";
48
+ export type {
49
+ GeocodedAddress,
50
+ GeocodingProvider,
51
+ GeocodingSearchOptions,
52
+ } from "./geocoding/geocoding.interface";
43
53
  export { Header } from "./header/Header";
44
54
  export { Icon } from "./icon/Icon";
45
55
  export { IconSizeEnum } from "./icon/iconSize.enum";
@@ -22,6 +22,7 @@ export const Menus = (props: ExpandProps) => {
22
22
  <Menu
23
23
  item={item}
24
24
  onChange={onChange}
25
+ className={item.subMenu && item.subMenu.length > 0 ? "has-submenu" : ""}
25
26
  active={currentItem?.id === item.id}
26
27
  />
27
28
  {item.subMenu && item.subMenu.length > 0 && (
@@ -4,12 +4,13 @@ export type MenuProps = {
4
4
  active: boolean;
5
5
  item: MenuInterface;
6
6
  onChange: (item: MenuInterface) => void;
7
+ className?: string;
7
8
  };
8
9
  export const Menu = (props: MenuProps): JSX.Element => {
9
10
  return (
10
11
  <div
11
12
  onClick={() => props.onChange(props.item)}
12
- className={props.active ? "expand expand--active" : "expand"}
13
+ className={`expand ${props.active ? "expand--active" : ""} ${props.className || ""}`}
13
14
  >
14
15
  {props.item.children}
15
16
  </div>
@@ -10,6 +10,7 @@ export interface SelectProps {
10
10
  label?: string;
11
11
  title?: string;
12
12
  disabled?: boolean;
13
+ style?: React.CSSProperties;
13
14
  name?: string;
14
15
  defaultValue?: string | string[];
15
16
  multiple?: boolean;
@@ -33,6 +34,7 @@ export const Select = ({
33
34
  options,
34
35
  className,
35
36
  disabled,
37
+ style,
36
38
  multiple = false,
37
39
  showOptions = false,
38
40
  defaultValue,
@@ -151,6 +153,7 @@ export const Select = ({
151
153
  ref={triggerRef}
152
154
  id={`select-${id}`}
153
155
  disabled={disabled}
156
+ style={style}
154
157
  className="select-container-button"
155
158
  onClick={(e) => {
156
159
  setOverlayRef(e.currentTarget as HTMLElement);
@@ -203,9 +206,8 @@ export const Select = ({
203
206
  <div
204
207
  key={option.value}
205
208
  aria-valuetext={option.label}
206
- className={`select-overlay-option ${option.disabled ? "disabled" : ""} ${
207
- selectedValues.includes(option.value) ? "selected" : ""
208
- }`}
209
+ className={`select-overlay-option ${option.disabled ? "disabled" : ""} ${selectedValues.includes(option.value) ? "selected" : ""
210
+ }`}
209
211
  onClick={() =>
210
212
  !option.disabled && handleOptionClick(option.value)
211
213
  }