zuii 1.4.6 → 1.4.8

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 (31) hide show
  1. package/README.md +2 -3
  2. package/dist/components/Button/react/index.d.ts +1 -1
  3. package/dist/components/Button/style/index.css +1 -1
  4. package/dist/components/Color/react/index.js +8 -7
  5. package/dist/components/Context-menu/js/context-menu.d.ts +3 -1
  6. package/dist/components/Context-menu/js/context-menu.js +21 -18
  7. package/dist/components/Context-menu/react/index.js +46 -41
  8. package/dist/components/Dropdown/react/index.d.ts +6 -1
  9. package/dist/components/Dropdown/react/index.js +22 -20
  10. package/dist/components/Form/react/Select.d.ts +5 -1
  11. package/dist/components/Form/react/Select.js +11 -9
  12. package/dist/components/Group/react/index.d.ts +5 -1
  13. package/dist/components/Group/react/index.js +14 -13
  14. package/dist/components/Group/style/index.css +1 -1
  15. package/dist/components/Table/js/table.d.ts +134 -0
  16. package/dist/components/Table/js/table.js +11 -0
  17. package/dist/components/Table/react/TablePagination.d.ts +41 -0
  18. package/dist/components/Table/react/TablePagination.js +102 -0
  19. package/dist/components/Table/react/index.d.ts +14 -0
  20. package/dist/components/Table/react/index.js +118 -0
  21. package/dist/components/Table/style/index.css +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +12 -10
  24. package/dist/templates/Dropdowns/Dropdowns.tsx +3 -0
  25. package/dist/templates/Tables/Tables.d.ts +4 -0
  26. package/dist/templates/Tables/Tables.tsx +126 -0
  27. package/dist/templates/Tables/tables.data.d.ts +221 -0
  28. package/dist/templates/Tables/tables.data.tsx +143 -0
  29. package/dist/templates/index.d.ts +1 -0
  30. package/dist/templates/index.ts +1 -0
  31. package/package.json +5 -3
package/README.md CHANGED
@@ -38,13 +38,12 @@ npm install zuii
38
38
 
39
39
  1. **`vendor`** (Priorité basse) : Pour les frameworks externes (ex: Bootstrap).
40
40
  2. **`components`** : Pour les composants **zuii**.
41
- 3. **`utilities`** : Pour les classes utilitaires de **zuii**.
41
+ 3. **`layout`** : Pour les styles de bas niveau de **zuii**.
42
+ 4. **`utilities`** : Pour les classes utilitaires de **zuii**.
42
43
 
43
44
  #### Exemple d'implémentation dans votre `main.scss` :
44
45
 
45
46
  ```scss
46
- @layer vendor, components, utilities;
47
-
48
47
  $prefix: "";
49
48
  $enable-important-utilities: false;
50
49
 
@@ -32,5 +32,5 @@ interface Props extends Omit<ButtonProps, "size"> {
32
32
  * @param {Props} props - Les propriétés du composant.
33
33
  * @returns {JSX.Element} Le composant bouton rendu.
34
34
  */
35
- export declare const Button: ({ children, variant, reverse, size, icon, btnIcon, transparent, className, ...props }: Props & ButtonProps) => import("react/jsx-runtime").JSX.Element;
35
+ export declare const Button: ({ children, variant, reverse, size, icon, btnIcon, transparent, className, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
36
36
  export {};
@@ -1 +1 @@
1
- @layer components{.btn{background-color:var(--primary);color:var(--primary-contrast);--btn-border-color: var(--primary);--btn-hover-bg: var(--primary-dark);--btn-hover-border-color: var(--primary-dark);--btn-active-bg: var(--primary-dark);--btn-active-border-color: var(--primary-dark);--btn-disabled-bg: var(--primary);--btn-disabled-border-color: var(--primary);height:fit-content;display:flex;gap:.3rem}.btn:hover,.btn:focus{box-shadow:var(--box-shadow-md)}.btn-content{display:flex;line-height:initial;gap:.3rem;align-items:center}.btn-icon{display:flex;line-height:initial;justify-content:center;align-items:center;padding:.4rem}.btn-icon .btn-content{flex-direction:column}.btn-reverse{flex-direction:row-reverse}.btn-primary{background-color:rgba(var(--primary-rgb),var(--bg-opacity, 1));color:var(--primary-contrast);--btn-border-color: var(--primary);--btn-hover-border-color: var(--primary);--btn-active-border-color: var(--primary)}.btn-primary-light{background-color:rgba(var(--primary-light-rgb),var(--bg-opacity, 1));color:var(--primary-light-contrast);--btn-border-color: var(--primary-light);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary)}.btn-primary-dark{background-color:rgba(var(--primary-dark-rgb),var(--bg-opacity, 1));color:var(--primary-dark-contrast);--btn-border-color: var(--primary-dark);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary-dark)}.btn-outline-primary{background-color:rgba(var(--primary-rgb),var(--bg-opacity, 1));color:var(--primary-contrast);background:transparent;color:var(--primary);--btn-border-color: var(--primary);--btn-hover-border-color: var(--primary)}.btn-outline-primary-light{background-color:rgba(var(--primary-light-rgb),var(--bg-opacity, 1));color:var(--primary-light-contrast);background:transparent;color:var(--primary);--btn-border-color: var(--primary-light);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary)}.btn-outline-primary-dark{background-color:rgba(var(--primary-dark-rgb),var(--bg-opacity, 1));color:var(--primary-dark-contrast);background:transparent;color:var(--primary-dark);--btn-border-color: var(--primary-dark);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary-dark)}.btn-secondary{background-color:rgba(var(--secondary-rgb),var(--bg-opacity, 1));color:var(--secondary-contrast);--btn-border-color: var(--secondary);--btn-hover-border-color: var(--secondary);--btn-active-border-color: var(--secondary)}.btn-secondary-light{background-color:rgba(var(--secondary-light-rgb),var(--bg-opacity, 1));color:var(--secondary-light-contrast);--btn-border-color: var(--secondary-light);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary)}.btn-secondary-dark{background-color:rgba(var(--secondary-dark-rgb),var(--bg-opacity, 1));color:var(--secondary-dark-contrast);--btn-border-color: var(--secondary-dark);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary-dark)}.btn-outline-secondary{background-color:rgba(var(--secondary-rgb),var(--bg-opacity, 1));color:var(--secondary-contrast);background:transparent;color:var(--secondary);--btn-border-color: var(--secondary);--btn-hover-border-color: var(--secondary)}.btn-outline-secondary-light{background-color:rgba(var(--secondary-light-rgb),var(--bg-opacity, 1));color:var(--secondary-light-contrast);background:transparent;color:var(--secondary);--btn-border-color: var(--secondary-light);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary)}.btn-outline-secondary-dark{background-color:rgba(var(--secondary-dark-rgb),var(--bg-opacity, 1));color:var(--secondary-dark-contrast);background:transparent;color:var(--secondary-dark);--btn-border-color: var(--secondary-dark);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary-dark)}.btn-accent{background-color:rgba(var(--accent-rgb),var(--bg-opacity, 1));color:var(--accent-contrast);--btn-border-color: var(--accent);--btn-hover-border-color: var(--accent);--btn-active-border-color: var(--accent)}.btn-accent-light{background-color:rgba(var(--accent-light-rgb),var(--bg-opacity, 1));color:var(--accent-light-contrast);--btn-border-color: var(--accent-light);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent)}.btn-accent-dark{background-color:rgba(var(--accent-dark-rgb),var(--bg-opacity, 1));color:var(--accent-dark-contrast);--btn-border-color: var(--accent-dark);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent-dark)}.btn-outline-accent{background-color:rgba(var(--accent-rgb),var(--bg-opacity, 1));color:var(--accent-contrast);background:transparent;color:var(--accent);--btn-border-color: var(--accent);--btn-hover-border-color: var(--accent)}.btn-outline-accent-light{background-color:rgba(var(--accent-light-rgb),var(--bg-opacity, 1));color:var(--accent-light-contrast);background:transparent;color:var(--accent);--btn-border-color: var(--accent-light);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent)}.btn-outline-accent-dark{background-color:rgba(var(--accent-dark-rgb),var(--bg-opacity, 1));color:var(--accent-dark-contrast);background:transparent;color:var(--accent-dark);--btn-border-color: var(--accent-dark);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent-dark)}.btn-tertiary{background-color:rgba(var(--tertiary-rgb),var(--bg-opacity, 1));color:var(--tertiary-contrast);--btn-border-color: var(--tertiary);--btn-hover-border-color: var(--tertiary);--btn-active-border-color: var(--tertiary)}.btn-tertiary-light{background-color:rgba(var(--tertiary-light-rgb),var(--bg-opacity, 1));color:var(--tertiary-light-contrast);--btn-border-color: var(--tertiary-light);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary)}.btn-tertiary-dark{background-color:rgba(var(--tertiary-dark-rgb),var(--bg-opacity, 1));color:var(--tertiary-dark-contrast);--btn-border-color: var(--tertiary-dark);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary-dark)}.btn-outline-tertiary{background-color:rgba(var(--tertiary-rgb),var(--bg-opacity, 1));color:var(--tertiary-contrast);background:transparent;color:var(--tertiary);--btn-border-color: var(--tertiary);--btn-hover-border-color: var(--tertiary)}.btn-outline-tertiary-light{background-color:rgba(var(--tertiary-light-rgb),var(--bg-opacity, 1));color:var(--tertiary-light-contrast);background:transparent;color:var(--tertiary);--btn-border-color: var(--tertiary-light);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary)}.btn-outline-tertiary-dark{background-color:rgba(var(--tertiary-dark-rgb),var(--bg-opacity, 1));color:var(--tertiary-dark-contrast);background:transparent;color:var(--tertiary-dark);--btn-border-color: var(--tertiary-dark);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary-dark)}.btn-success{background-color:rgba(var(--success-rgb),var(--bg-opacity, 1));color:var(--success-contrast);--btn-border-color: var(--success);--btn-hover-border-color: var(--success);--btn-active-border-color: var(--success)}.btn-success-light{background-color:rgba(var(--success-light-rgb),var(--bg-opacity, 1));color:var(--success-light-contrast);--btn-border-color: var(--success-light);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success)}.btn-success-dark{background-color:rgba(var(--success-dark-rgb),var(--bg-opacity, 1));color:var(--success-dark-contrast);--btn-border-color: var(--success-dark);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success-dark)}.btn-outline-success{background-color:rgba(var(--success-rgb),var(--bg-opacity, 1));color:var(--success-contrast);background:transparent;color:var(--success);--btn-border-color: var(--success);--btn-hover-border-color: var(--success)}.btn-outline-success-light{background-color:rgba(var(--success-light-rgb),var(--bg-opacity, 1));color:var(--success-light-contrast);background:transparent;color:var(--success);--btn-border-color: var(--success-light);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success)}.btn-outline-success-dark{background-color:rgba(var(--success-dark-rgb),var(--bg-opacity, 1));color:var(--success-dark-contrast);background:transparent;color:var(--success-dark);--btn-border-color: var(--success-dark);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success-dark)}.btn-danger{background-color:rgba(var(--danger-rgb),var(--bg-opacity, 1));color:var(--danger-contrast);--btn-border-color: var(--danger);--btn-hover-border-color: var(--danger);--btn-active-border-color: var(--danger)}.btn-danger-light{background-color:rgba(var(--danger-light-rgb),var(--bg-opacity, 1));color:var(--danger-light-contrast);--btn-border-color: var(--danger-light);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger)}.btn-danger-dark{background-color:rgba(var(--danger-dark-rgb),var(--bg-opacity, 1));color:var(--danger-dark-contrast);--btn-border-color: var(--danger-dark);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger-dark)}.btn-outline-danger{background-color:rgba(var(--danger-rgb),var(--bg-opacity, 1));color:var(--danger-contrast);background:transparent;color:var(--danger);--btn-border-color: var(--danger);--btn-hover-border-color: var(--danger)}.btn-outline-danger-light{background-color:rgba(var(--danger-light-rgb),var(--bg-opacity, 1));color:var(--danger-light-contrast);background:transparent;color:var(--danger);--btn-border-color: var(--danger-light);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger)}.btn-outline-danger-dark{background-color:rgba(var(--danger-dark-rgb),var(--bg-opacity, 1));color:var(--danger-dark-contrast);background:transparent;color:var(--danger-dark);--btn-border-color: var(--danger-dark);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger-dark)}.btn-warning{background-color:rgba(var(--warning-rgb),var(--bg-opacity, 1));color:var(--warning-contrast);--btn-border-color: var(--warning);--btn-hover-border-color: var(--warning);--btn-active-border-color: var(--warning)}.btn-warning-light{background-color:rgba(var(--warning-light-rgb),var(--bg-opacity, 1));color:var(--warning-light-contrast);--btn-border-color: var(--warning-light);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning)}.btn-warning-dark{background-color:rgba(var(--warning-dark-rgb),var(--bg-opacity, 1));color:var(--warning-dark-contrast);--btn-border-color: var(--warning-dark);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning-dark)}.btn-outline-warning{background-color:rgba(var(--warning-rgb),var(--bg-opacity, 1));color:var(--warning-contrast);background:transparent;color:var(--warning);--btn-border-color: var(--warning);--btn-hover-border-color: var(--warning)}.btn-outline-warning-light{background-color:rgba(var(--warning-light-rgb),var(--bg-opacity, 1));color:var(--warning-light-contrast);background:transparent;color:var(--warning);--btn-border-color: var(--warning-light);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning)}.btn-outline-warning-dark{background-color:rgba(var(--warning-dark-rgb),var(--bg-opacity, 1));color:var(--warning-dark-contrast);background:transparent;color:var(--warning-dark);--btn-border-color: var(--warning-dark);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning-dark)}.btn-info{background-color:rgba(var(--info-rgb),var(--bg-opacity, 1));color:var(--info-contrast);--btn-border-color: var(--info);--btn-hover-border-color: var(--info);--btn-active-border-color: var(--info)}.btn-info-light{background-color:rgba(var(--info-light-rgb),var(--bg-opacity, 1));color:var(--info-light-contrast);--btn-border-color: var(--info-light);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info)}.btn-info-dark{background-color:rgba(var(--info-dark-rgb),var(--bg-opacity, 1));color:var(--info-dark-contrast);--btn-border-color: var(--info-dark);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info-dark)}.btn-outline-info{background-color:rgba(var(--info-rgb),var(--bg-opacity, 1));color:var(--info-contrast);background:transparent;color:var(--info);--btn-border-color: var(--info);--btn-hover-border-color: var(--info)}.btn-outline-info-light{background-color:rgba(var(--info-light-rgb),var(--bg-opacity, 1));color:var(--info-light-contrast);background:transparent;color:var(--info);--btn-border-color: var(--info-light);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info)}.btn-outline-info-dark{background-color:rgba(var(--info-dark-rgb),var(--bg-opacity, 1));color:var(--info-dark-contrast);background:transparent;color:var(--info-dark);--btn-border-color: var(--info-dark);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info-dark)}.btn-light{background-color:rgba(var(--light-rgb),var(--bg-opacity, 1));color:var(--light-contrast);--btn-border-color: var(--light);--btn-hover-border-color: var(--light);--btn-active-border-color: var(--light)}.btn-light-light{background-color:rgba(var(--light-light-rgb),var(--bg-opacity, 1));color:var(--light-light-contrast);--btn-border-color: var(--light-light);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light)}.btn-light-dark{background-color:rgba(var(--light-dark-rgb),var(--bg-opacity, 1));color:var(--light-dark-contrast);--btn-border-color: var(--light-dark);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light-dark)}.btn-outline-light{background-color:rgba(var(--light-rgb),var(--bg-opacity, 1));color:var(--light-contrast);background:transparent;color:var(--light);--btn-border-color: var(--light);--btn-hover-border-color: var(--light)}.btn-outline-light-light{background-color:rgba(var(--light-light-rgb),var(--bg-opacity, 1));color:var(--light-light-contrast);background:transparent;color:var(--light);--btn-border-color: var(--light-light);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light)}.btn-outline-light-dark{background-color:rgba(var(--light-dark-rgb),var(--bg-opacity, 1));color:var(--light-dark-contrast);background:transparent;color:var(--light-dark);--btn-border-color: var(--light-dark);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light-dark)}.btn-dark{background-color:rgba(var(--dark-rgb),var(--bg-opacity, 1));color:var(--dark-contrast);--btn-border-color: var(--dark);--btn-hover-border-color: var(--dark);--btn-active-border-color: var(--dark)}.btn-dark-light{background-color:rgba(var(--dark-light-rgb),var(--bg-opacity, 1));color:var(--dark-light-contrast);--btn-border-color: var(--dark-light);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark)}.btn-dark-dark{background-color:rgba(var(--dark-dark-rgb),var(--bg-opacity, 1));color:var(--dark-dark-contrast);--btn-border-color: var(--dark-dark);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark-dark)}.btn-outline-dark{background-color:rgba(var(--dark-rgb),var(--bg-opacity, 1));color:var(--dark-contrast);background:transparent;color:var(--dark);--btn-border-color: var(--dark);--btn-hover-border-color: var(--dark)}.btn-outline-dark-light{background-color:rgba(var(--dark-light-rgb),var(--bg-opacity, 1));color:var(--dark-light-contrast);background:transparent;color:var(--dark);--btn-border-color: var(--dark-light);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark)}.btn-outline-dark-dark{background-color:rgba(var(--dark-dark-rgb),var(--bg-opacity, 1));color:var(--dark-dark-contrast);background:transparent;color:var(--dark-dark);--btn-border-color: var(--dark-dark);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark-dark)}.btn-transparent{background:transparent;border:none;color:currentColor}.btn-transparent:hover{box-shadow:none}.btn-none{--btn-font-size: calc(var(--spacing-none) * 0);--btn-padding-y: calc(var(--spacing-none) * 0 * .5);--btn-padding-x: calc(var(--spacing-none) * 0);--btn-border-radius: var(--border-radius)}.btn-xs{--btn-font-size: calc(var(--spacing-xs) * 3);--btn-padding-y: calc(var(--spacing-xs) * 3 * .5);--btn-padding-x: calc(var(--spacing-xs) * 3);--btn-border-radius: var(--border-radius)}.btn-sm{--btn-font-size: calc(var(--spacing-sm) * 1.75);--btn-padding-y: calc(var(--spacing-sm) * 1.75 * .5);--btn-padding-x: calc(var(--spacing-sm) * 1.75);--btn-border-radius: var(--border-radius)}.btn-md{--btn-font-size: calc(var(--spacing-md) * 1);--btn-padding-y: calc(var(--spacing-md) * 1 * .5);--btn-padding-x: calc(var(--spacing-md) * 1);--btn-border-radius: var(--border-radius)}.btn-lg{--btn-font-size: calc(var(--spacing-lg) * .625);--btn-padding-y: calc(var(--spacing-lg) * .625 * .5);--btn-padding-x: calc(var(--spacing-lg) * .625);--btn-border-radius: var(--border-radius)}.btn-xl{--btn-font-size: calc(var(--spacing-xl) * .375);--btn-padding-y: calc(var(--spacing-xl) * .375 * .5);--btn-padding-x: calc(var(--spacing-xl) * .375);--btn-border-radius: var(--border-radius)}.btn-2xl{--btn-font-size: calc(var(--spacing-2xl) * .25);--btn-padding-y: calc(var(--spacing-2xl) * .25 * .5);--btn-padding-x: calc(var(--spacing-2xl) * .25);--btn-border-radius: var(--border-radius)}.btn-3xl{--btn-font-size: calc(var(--spacing-3xl) * .15);--btn-padding-y: calc(var(--spacing-3xl) * .15 * .5);--btn-padding-x: calc(var(--spacing-3xl) * .15);--btn-border-radius: var(--border-radius)}.btn-4xl{--btn-font-size: calc(var(--spacing-4xl) * .14);--btn-padding-y: calc(var(--spacing-4xl) * .14 * .5);--btn-padding-x: calc(var(--spacing-4xl) * .14);--btn-border-radius: var(--border-radius)}.btn-close{--btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e");--btn-close-opacity: .5;--btn-close-hover-opacity: .75;--btn-close-focus-shadow: 0 0 0 .1rem var(--primary);--btn-close-focus-opacity: 1;--btn-close-disabled-opacity: .25;-webkit-mask-image:var(--btn-close-bg);mask-image:var(--btn-close-bg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}
1
+ @layer components{.btn{background-color:var(--primary);color:var(--primary-contrast);--btn-border-color: var(--primary);--btn-hover-bg: var(--primary-dark);--btn-hover-border-color: var(--primary-dark);--btn-active-bg: var(--primary-dark);--btn-active-border-color: var(--primary-dark);--btn-disabled-bg: var(--gray-300);--btn-disabled-border-color: var(--gray-300);height:fit-content;display:flex;gap:.3rem}.btn:hover,.btn:focus{box-shadow:var(--box-shadow-md)}.btn-content{display:flex;line-height:initial;gap:.3rem;align-items:center}.btn-icon{display:flex;line-height:initial;justify-content:center;align-items:center;padding:.4rem}.btn-icon .btn-content{flex-direction:column}.btn-reverse{flex-direction:row-reverse}.btn-primary{background-color:rgba(var(--primary-rgb),var(--bg-opacity, 1));color:var(--primary-contrast);--btn-border-color: var(--primary);--btn-hover-border-color: var(--primary);--btn-active-border-color: var(--primary)}.btn-primary-light{background-color:rgba(var(--primary-light-rgb),var(--bg-opacity, 1));color:var(--primary-light-contrast);--btn-border-color: var(--primary-light);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary)}.btn-primary-dark{background-color:rgba(var(--primary-dark-rgb),var(--bg-opacity, 1));color:var(--primary-dark-contrast);--btn-border-color: var(--primary-dark);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary-dark)}.btn-outline-primary{background-color:rgba(var(--primary-rgb),var(--bg-opacity, 1));color:var(--primary-contrast);background:transparent;color:var(--primary);--btn-border-color: var(--primary);--btn-hover-border-color: var(--primary)}.btn-outline-primary-light{background-color:rgba(var(--primary-light-rgb),var(--bg-opacity, 1));color:var(--primary-light-contrast);background:transparent;color:var(--primary);--btn-border-color: var(--primary-light);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary)}.btn-outline-primary-dark{background-color:rgba(var(--primary-dark-rgb),var(--bg-opacity, 1));color:var(--primary-dark-contrast);background:transparent;color:var(--primary-dark);--btn-border-color: var(--primary-dark);--btn-hover-bg: var(--primary);--btn-hover-border-color: var(--primary-dark)}.btn-secondary{background-color:rgba(var(--secondary-rgb),var(--bg-opacity, 1));color:var(--secondary-contrast);--btn-border-color: var(--secondary);--btn-hover-border-color: var(--secondary);--btn-active-border-color: var(--secondary)}.btn-secondary-light{background-color:rgba(var(--secondary-light-rgb),var(--bg-opacity, 1));color:var(--secondary-light-contrast);--btn-border-color: var(--secondary-light);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary)}.btn-secondary-dark{background-color:rgba(var(--secondary-dark-rgb),var(--bg-opacity, 1));color:var(--secondary-dark-contrast);--btn-border-color: var(--secondary-dark);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary-dark)}.btn-outline-secondary{background-color:rgba(var(--secondary-rgb),var(--bg-opacity, 1));color:var(--secondary-contrast);background:transparent;color:var(--secondary);--btn-border-color: var(--secondary);--btn-hover-border-color: var(--secondary)}.btn-outline-secondary-light{background-color:rgba(var(--secondary-light-rgb),var(--bg-opacity, 1));color:var(--secondary-light-contrast);background:transparent;color:var(--secondary);--btn-border-color: var(--secondary-light);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary)}.btn-outline-secondary-dark{background-color:rgba(var(--secondary-dark-rgb),var(--bg-opacity, 1));color:var(--secondary-dark-contrast);background:transparent;color:var(--secondary-dark);--btn-border-color: var(--secondary-dark);--btn-hover-bg: var(--secondary);--btn-hover-border-color: var(--secondary-dark)}.btn-accent{background-color:rgba(var(--accent-rgb),var(--bg-opacity, 1));color:var(--accent-contrast);--btn-border-color: var(--accent);--btn-hover-border-color: var(--accent);--btn-active-border-color: var(--accent)}.btn-accent-light{background-color:rgba(var(--accent-light-rgb),var(--bg-opacity, 1));color:var(--accent-light-contrast);--btn-border-color: var(--accent-light);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent)}.btn-accent-dark{background-color:rgba(var(--accent-dark-rgb),var(--bg-opacity, 1));color:var(--accent-dark-contrast);--btn-border-color: var(--accent-dark);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent-dark)}.btn-outline-accent{background-color:rgba(var(--accent-rgb),var(--bg-opacity, 1));color:var(--accent-contrast);background:transparent;color:var(--accent);--btn-border-color: var(--accent);--btn-hover-border-color: var(--accent)}.btn-outline-accent-light{background-color:rgba(var(--accent-light-rgb),var(--bg-opacity, 1));color:var(--accent-light-contrast);background:transparent;color:var(--accent);--btn-border-color: var(--accent-light);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent)}.btn-outline-accent-dark{background-color:rgba(var(--accent-dark-rgb),var(--bg-opacity, 1));color:var(--accent-dark-contrast);background:transparent;color:var(--accent-dark);--btn-border-color: var(--accent-dark);--btn-hover-bg: var(--accent);--btn-hover-border-color: var(--accent-dark)}.btn-tertiary{background-color:rgba(var(--tertiary-rgb),var(--bg-opacity, 1));color:var(--tertiary-contrast);--btn-border-color: var(--tertiary);--btn-hover-border-color: var(--tertiary);--btn-active-border-color: var(--tertiary)}.btn-tertiary-light{background-color:rgba(var(--tertiary-light-rgb),var(--bg-opacity, 1));color:var(--tertiary-light-contrast);--btn-border-color: var(--tertiary-light);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary)}.btn-tertiary-dark{background-color:rgba(var(--tertiary-dark-rgb),var(--bg-opacity, 1));color:var(--tertiary-dark-contrast);--btn-border-color: var(--tertiary-dark);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary-dark)}.btn-outline-tertiary{background-color:rgba(var(--tertiary-rgb),var(--bg-opacity, 1));color:var(--tertiary-contrast);background:transparent;color:var(--tertiary);--btn-border-color: var(--tertiary);--btn-hover-border-color: var(--tertiary)}.btn-outline-tertiary-light{background-color:rgba(var(--tertiary-light-rgb),var(--bg-opacity, 1));color:var(--tertiary-light-contrast);background:transparent;color:var(--tertiary);--btn-border-color: var(--tertiary-light);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary)}.btn-outline-tertiary-dark{background-color:rgba(var(--tertiary-dark-rgb),var(--bg-opacity, 1));color:var(--tertiary-dark-contrast);background:transparent;color:var(--tertiary-dark);--btn-border-color: var(--tertiary-dark);--btn-hover-bg: var(--tertiary);--btn-hover-border-color: var(--tertiary-dark)}.btn-success{background-color:rgba(var(--success-rgb),var(--bg-opacity, 1));color:var(--success-contrast);--btn-border-color: var(--success);--btn-hover-border-color: var(--success);--btn-active-border-color: var(--success)}.btn-success-light{background-color:rgba(var(--success-light-rgb),var(--bg-opacity, 1));color:var(--success-light-contrast);--btn-border-color: var(--success-light);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success)}.btn-success-dark{background-color:rgba(var(--success-dark-rgb),var(--bg-opacity, 1));color:var(--success-dark-contrast);--btn-border-color: var(--success-dark);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success-dark)}.btn-outline-success{background-color:rgba(var(--success-rgb),var(--bg-opacity, 1));color:var(--success-contrast);background:transparent;color:var(--success);--btn-border-color: var(--success);--btn-hover-border-color: var(--success)}.btn-outline-success-light{background-color:rgba(var(--success-light-rgb),var(--bg-opacity, 1));color:var(--success-light-contrast);background:transparent;color:var(--success);--btn-border-color: var(--success-light);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success)}.btn-outline-success-dark{background-color:rgba(var(--success-dark-rgb),var(--bg-opacity, 1));color:var(--success-dark-contrast);background:transparent;color:var(--success-dark);--btn-border-color: var(--success-dark);--btn-hover-bg: var(--success);--btn-hover-border-color: var(--success-dark)}.btn-danger{background-color:rgba(var(--danger-rgb),var(--bg-opacity, 1));color:var(--danger-contrast);--btn-border-color: var(--danger);--btn-hover-border-color: var(--danger);--btn-active-border-color: var(--danger)}.btn-danger-light{background-color:rgba(var(--danger-light-rgb),var(--bg-opacity, 1));color:var(--danger-light-contrast);--btn-border-color: var(--danger-light);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger)}.btn-danger-dark{background-color:rgba(var(--danger-dark-rgb),var(--bg-opacity, 1));color:var(--danger-dark-contrast);--btn-border-color: var(--danger-dark);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger-dark)}.btn-outline-danger{background-color:rgba(var(--danger-rgb),var(--bg-opacity, 1));color:var(--danger-contrast);background:transparent;color:var(--danger);--btn-border-color: var(--danger);--btn-hover-border-color: var(--danger)}.btn-outline-danger-light{background-color:rgba(var(--danger-light-rgb),var(--bg-opacity, 1));color:var(--danger-light-contrast);background:transparent;color:var(--danger);--btn-border-color: var(--danger-light);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger)}.btn-outline-danger-dark{background-color:rgba(var(--danger-dark-rgb),var(--bg-opacity, 1));color:var(--danger-dark-contrast);background:transparent;color:var(--danger-dark);--btn-border-color: var(--danger-dark);--btn-hover-bg: var(--danger);--btn-hover-border-color: var(--danger-dark)}.btn-warning{background-color:rgba(var(--warning-rgb),var(--bg-opacity, 1));color:var(--warning-contrast);--btn-border-color: var(--warning);--btn-hover-border-color: var(--warning);--btn-active-border-color: var(--warning)}.btn-warning-light{background-color:rgba(var(--warning-light-rgb),var(--bg-opacity, 1));color:var(--warning-light-contrast);--btn-border-color: var(--warning-light);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning)}.btn-warning-dark{background-color:rgba(var(--warning-dark-rgb),var(--bg-opacity, 1));color:var(--warning-dark-contrast);--btn-border-color: var(--warning-dark);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning-dark)}.btn-outline-warning{background-color:rgba(var(--warning-rgb),var(--bg-opacity, 1));color:var(--warning-contrast);background:transparent;color:var(--warning);--btn-border-color: var(--warning);--btn-hover-border-color: var(--warning)}.btn-outline-warning-light{background-color:rgba(var(--warning-light-rgb),var(--bg-opacity, 1));color:var(--warning-light-contrast);background:transparent;color:var(--warning);--btn-border-color: var(--warning-light);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning)}.btn-outline-warning-dark{background-color:rgba(var(--warning-dark-rgb),var(--bg-opacity, 1));color:var(--warning-dark-contrast);background:transparent;color:var(--warning-dark);--btn-border-color: var(--warning-dark);--btn-hover-bg: var(--warning);--btn-hover-border-color: var(--warning-dark)}.btn-info{background-color:rgba(var(--info-rgb),var(--bg-opacity, 1));color:var(--info-contrast);--btn-border-color: var(--info);--btn-hover-border-color: var(--info);--btn-active-border-color: var(--info)}.btn-info-light{background-color:rgba(var(--info-light-rgb),var(--bg-opacity, 1));color:var(--info-light-contrast);--btn-border-color: var(--info-light);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info)}.btn-info-dark{background-color:rgba(var(--info-dark-rgb),var(--bg-opacity, 1));color:var(--info-dark-contrast);--btn-border-color: var(--info-dark);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info-dark)}.btn-outline-info{background-color:rgba(var(--info-rgb),var(--bg-opacity, 1));color:var(--info-contrast);background:transparent;color:var(--info);--btn-border-color: var(--info);--btn-hover-border-color: var(--info)}.btn-outline-info-light{background-color:rgba(var(--info-light-rgb),var(--bg-opacity, 1));color:var(--info-light-contrast);background:transparent;color:var(--info);--btn-border-color: var(--info-light);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info)}.btn-outline-info-dark{background-color:rgba(var(--info-dark-rgb),var(--bg-opacity, 1));color:var(--info-dark-contrast);background:transparent;color:var(--info-dark);--btn-border-color: var(--info-dark);--btn-hover-bg: var(--info);--btn-hover-border-color: var(--info-dark)}.btn-light{background-color:rgba(var(--light-rgb),var(--bg-opacity, 1));color:var(--light-contrast);--btn-border-color: var(--light);--btn-hover-border-color: var(--light);--btn-active-border-color: var(--light)}.btn-light-light{background-color:rgba(var(--light-light-rgb),var(--bg-opacity, 1));color:var(--light-light-contrast);--btn-border-color: var(--light-light);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light)}.btn-light-dark{background-color:rgba(var(--light-dark-rgb),var(--bg-opacity, 1));color:var(--light-dark-contrast);--btn-border-color: var(--light-dark);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light-dark)}.btn-outline-light{background-color:rgba(var(--light-rgb),var(--bg-opacity, 1));color:var(--light-contrast);background:transparent;color:var(--light);--btn-border-color: var(--light);--btn-hover-border-color: var(--light)}.btn-outline-light-light{background-color:rgba(var(--light-light-rgb),var(--bg-opacity, 1));color:var(--light-light-contrast);background:transparent;color:var(--light);--btn-border-color: var(--light-light);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light)}.btn-outline-light-dark{background-color:rgba(var(--light-dark-rgb),var(--bg-opacity, 1));color:var(--light-dark-contrast);background:transparent;color:var(--light-dark);--btn-border-color: var(--light-dark);--btn-hover-bg: var(--light);--btn-hover-border-color: var(--light-dark)}.btn-dark{background-color:rgba(var(--dark-rgb),var(--bg-opacity, 1));color:var(--dark-contrast);--btn-border-color: var(--dark);--btn-hover-border-color: var(--dark);--btn-active-border-color: var(--dark)}.btn-dark-light{background-color:rgba(var(--dark-light-rgb),var(--bg-opacity, 1));color:var(--dark-light-contrast);--btn-border-color: var(--dark-light);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark)}.btn-dark-dark{background-color:rgba(var(--dark-dark-rgb),var(--bg-opacity, 1));color:var(--dark-dark-contrast);--btn-border-color: var(--dark-dark);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark-dark)}.btn-outline-dark{background-color:rgba(var(--dark-rgb),var(--bg-opacity, 1));color:var(--dark-contrast);background:transparent;color:var(--dark);--btn-border-color: var(--dark);--btn-hover-border-color: var(--dark)}.btn-outline-dark-light{background-color:rgba(var(--dark-light-rgb),var(--bg-opacity, 1));color:var(--dark-light-contrast);background:transparent;color:var(--dark);--btn-border-color: var(--dark-light);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark)}.btn-outline-dark-dark{background-color:rgba(var(--dark-dark-rgb),var(--bg-opacity, 1));color:var(--dark-dark-contrast);background:transparent;color:var(--dark-dark);--btn-border-color: var(--dark-dark);--btn-hover-bg: var(--dark);--btn-hover-border-color: var(--dark-dark)}.btn-transparent{background:transparent;border:none;color:currentColor}.btn-transparent:hover{box-shadow:none}.btn-none{--btn-font-size: calc(var(--spacing-none) * 0);--btn-padding-y: calc(var(--spacing-none) * 0 * .5);--btn-padding-x: calc(var(--spacing-none) * 0);--btn-border-radius: var(--border-radius)}.btn-xs{--btn-font-size: calc(var(--spacing-xs) * 3);--btn-padding-y: calc(var(--spacing-xs) * 3 * .5);--btn-padding-x: calc(var(--spacing-xs) * 3);--btn-border-radius: var(--border-radius)}.btn-sm{--btn-font-size: calc(var(--spacing-sm) * 1.75);--btn-padding-y: calc(var(--spacing-sm) * 1.75 * .5);--btn-padding-x: calc(var(--spacing-sm) * 1.75);--btn-border-radius: var(--border-radius)}.btn-md{--btn-font-size: calc(var(--spacing-md) * 1);--btn-padding-y: calc(var(--spacing-md) * 1 * .5);--btn-padding-x: calc(var(--spacing-md) * 1);--btn-border-radius: var(--border-radius)}.btn-lg{--btn-font-size: calc(var(--spacing-lg) * .625);--btn-padding-y: calc(var(--spacing-lg) * .625 * .5);--btn-padding-x: calc(var(--spacing-lg) * .625);--btn-border-radius: var(--border-radius)}.btn-xl{--btn-font-size: calc(var(--spacing-xl) * .375);--btn-padding-y: calc(var(--spacing-xl) * .375 * .5);--btn-padding-x: calc(var(--spacing-xl) * .375);--btn-border-radius: var(--border-radius)}.btn-2xl{--btn-font-size: calc(var(--spacing-2xl) * .25);--btn-padding-y: calc(var(--spacing-2xl) * .25 * .5);--btn-padding-x: calc(var(--spacing-2xl) * .25);--btn-border-radius: var(--border-radius)}.btn-3xl{--btn-font-size: calc(var(--spacing-3xl) * .15);--btn-padding-y: calc(var(--spacing-3xl) * .15 * .5);--btn-padding-x: calc(var(--spacing-3xl) * .15);--btn-border-radius: var(--border-radius)}.btn-4xl{--btn-font-size: calc(var(--spacing-4xl) * .14);--btn-padding-y: calc(var(--spacing-4xl) * .14 * .5);--btn-padding-x: calc(var(--spacing-4xl) * .14);--btn-border-radius: var(--border-radius)}.btn-close{--btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e");--btn-close-opacity: .5;--btn-close-hover-opacity: .75;--btn-close-focus-shadow: 0 0 0 .1rem var(--primary);--btn-close-focus-opacity: 1;--btn-close-disabled-opacity: .25;-webkit-mask-image:var(--btn-close-bg);mask-image:var(--btn-close-bg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.btn:disabled{background-color:color-mix(in srgb,var(--primary),white 85%);border-color:color-mix(in srgb,var(--primary),white 85%);color:color-mix(in srgb,var(--primary),white 60%)}}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as i, jsx as o } from "react/jsx-runtime";
2
- import { tokens as t } from "../../../core/styles/tokens.js";
2
+ import { tokens as e } from "../../../core/styles/tokens.js";
3
3
  import '../../Placeholder/style/index.css';import '../../Logo/style/index.css';import '../../Radius/style/index.css';import '../../Shadow/style/index.css';import '../../../node_modules/.pnpm/flag-icons@7.5.0/node_modules/flag-icons/css/flag-icons.min.css';import '../../Context-menu/style/index.css';import '../../Divider/style/index.css';import '../../Badge/style/index.css';import '../../Avatar/style/index.css';import '../../Icon/style/index.css';import '../../Button/style/index.css';import '../style/index.css';import '../../../core/styles/main.css';/* empty css */
4
4
  /* empty css */
5
5
  import "react-bootstrap";
@@ -21,29 +21,30 @@ import "../../Dropdown/react/index.js";
21
21
  import "../../Modal/react/index.js";
22
22
  /* empty css */
23
23
  import "../../Tooltip/react/index.js";
24
- const w = ({ name: r }) => {
25
- const e = t.brands[r];
24
+ import "../../Table/react/index.js";
25
+ const y = ({ name: r }) => {
26
+ const t = e.brands[r];
26
27
  return /* @__PURE__ */ i(l, { children: [
27
28
  /* @__PURE__ */ o("div", { className: `color bg-${r} p-4`, children: /* @__PURE__ */ i(l, { vertical: !0, center: !0, children: [
28
29
  /* @__PURE__ */ o("span", { className: "color__name", children: r }),
29
- /* @__PURE__ */ o("span", { className: "color__value", children: e.value })
30
+ /* @__PURE__ */ o("span", { className: "color__value", children: t.value })
30
31
  ] }) }),
31
32
  /* @__PURE__ */ o("div", { className: `color bg-${r}-light p-4`, children: /* @__PURE__ */ i(l, { vertical: !0, center: !0, children: [
32
33
  /* @__PURE__ */ i("span", { className: "color__name", children: [
33
34
  r,
34
35
  "-light"
35
36
  ] }),
36
- /* @__PURE__ */ o("span", { className: "color__value", children: e.value })
37
+ /* @__PURE__ */ o("span", { className: "color__value", children: t.value })
37
38
  ] }) }),
38
39
  /* @__PURE__ */ o("div", { className: `color bg-${r}-dark p-4`, children: /* @__PURE__ */ i(l, { vertical: !0, center: !0, children: [
39
40
  /* @__PURE__ */ i("span", { className: "color__name", children: [
40
41
  r,
41
42
  "-dark"
42
43
  ] }),
43
- /* @__PURE__ */ o("span", { className: "color__value", children: e.value })
44
+ /* @__PURE__ */ o("span", { className: "color__value", children: t.value })
44
45
  ] }) })
45
46
  ] });
46
47
  };
47
48
  export {
48
- w as Color
49
+ y as Color
49
50
  };
@@ -31,9 +31,11 @@ export declare const isItemDisabled: (item: ContextMenuItem) => boolean;
31
31
  * @param {number} y - Position Y souhaitée.
32
32
  * @param {number} menuWidth - Largeur du menu.
33
33
  * @param {number} menuHeight - Hauteur du menu.
34
+ * @param {number} [offsetX=2] - Décalage horizontal par rapport au clic.
35
+ * @param {number} [offsetY=2] - Décalage vertical par rapport au clic.
34
36
  * @returns {{x: number, y: number}} La position corrigée.
35
37
  */
36
- export declare const calculatePosition: (x: number, y: number, menuWidth: number, menuHeight: number) => {
38
+ export declare const calculatePosition: (x: number, y: number, menuWidth: number, menuHeight: number, offsetX?: number, offsetY?: number) => {
37
39
  x: number;
38
40
  y: number;
39
41
  };
@@ -1,19 +1,22 @@
1
- const n = (t) => {
1
+ const c = (t) => {
2
2
  const e = t.items && t.items.length > 0;
3
3
  return !!(t.disabled || !e && !t.onAction && !t.action && t.type !== "separator");
4
- }, r = (t, e, o, a) => {
5
- let l = t, i = e;
6
- return t + o > window.innerWidth && (l = t - o), e + a > window.innerHeight && (i = e - a), { x: Math.max(0, l), y: Math.max(0, i) };
7
- }, s = () => {
4
+ }, s = (t, e, o, a, n = 2, r = 2) => {
5
+ let l = t + n, i = e + r;
6
+ return l + o > window.innerWidth && (l = t - o - n), i + a > window.innerHeight && (i = e - a - r), {
7
+ x: Math.max(0, Math.min(l, window.innerWidth - o)),
8
+ y: Math.max(0, Math.min(i, window.innerHeight - a))
9
+ };
10
+ }, d = () => {
8
11
  document.body.style.overflow = "hidden";
9
- }, c = () => {
12
+ }, b = () => {
10
13
  document.body.style.overflow = "";
11
- }, d = (t) => {
14
+ }, h = (t) => {
12
15
  const e = t.getBoundingClientRect();
13
16
  e.right > window.innerWidth && (t.style.left = "auto", t.style.right = "100%", t.style.marginLeft = "0", t.style.marginRight = "2px"), e.bottom > window.innerHeight && (t.style.top = "auto", t.style.bottom = "0");
14
- }, b = (t, e) => {
15
- n(t) || t.type === "separator" || (t.onAction && t.onAction(), t.action && e && e(t.action));
16
- }, p = (t) => !t || t.length === 0 ? "" : t.join(" + "), h = {
17
+ }, p = (t, e) => {
18
+ c(t) || t.type === "separator" || (t.onAction && t.onAction(), t.action && e && e(t.action));
19
+ }, u = (t) => !t || t.length === 0 ? "" : t.join(" + "), w = {
17
20
  items: [
18
21
  {
19
22
  label: "Nouveau",
@@ -74,12 +77,12 @@ const n = (t) => {
74
77
  ]
75
78
  };
76
79
  export {
77
- d as adjustSubMenuPosition,
78
- r as calculatePosition,
79
- h as contextMenuData,
80
- b as executeAction,
81
- p as getDisplayShortcut,
82
- n as isItemDisabled,
83
- s as lockScroll,
84
- c as unlockScroll
80
+ h as adjustSubMenuPosition,
81
+ s as calculatePosition,
82
+ w as contextMenuData,
83
+ p as executeAction,
84
+ u as getDisplayShortcut,
85
+ c as isItemDisabled,
86
+ d as lockScroll,
87
+ b as unlockScroll
85
88
  };
@@ -1,29 +1,29 @@
1
- import { jsxs as M, jsx as u } from "react/jsx-runtime";
2
- import { useState as b, useRef as _, useCallback as x, useEffect as S } from "react";
3
- import { calculatePosition as C, lockScroll as y, unlockScroll as h, contextMenuData as g, getDisplayShortcut as N, isItemDisabled as k, adjustSubMenuPosition as D, executeAction as E } from "../js/context-menu.js";
1
+ import { jsxs as M, jsx as l } from "react/jsx-runtime";
2
+ import { useState as b, useRef as v, useCallback as h, useEffect as x } from "react";
3
+ import { calculatePosition as C, lockScroll as g, unlockScroll as y, contextMenuData as N, getDisplayShortcut as k, isItemDisabled as D, adjustSubMenuPosition as E, executeAction as I } from "../js/context-menu.js";
4
4
  import '../style/index.css';/* empty css */
5
- const $ = ({ item: e, onAction: f, closeMenu: p }) => {
6
- const [l, o] = b(!1), c = _(null), t = "context-menu", n = !!(e.items && e.items.length > 0), r = N(e.shortcuts), i = k(e);
7
- return S(() => {
8
- l && c.current && D(c.current);
9
- }, [l]), e.type === "separator" ? /* @__PURE__ */ u("div", { className: `${t}__separator` }) : /* @__PURE__ */ M(
5
+ const $ = ({ item: s, onAction: f, closeMenu: p }) => {
6
+ const [u, o] = b(!1), r = v(null), e = "context-menu", i = !!(s.items && s.items.length > 0), t = k(s.shortcuts), c = D(s);
7
+ return x(() => {
8
+ u && r.current && E(r.current);
9
+ }, [u]), s.type === "separator" ? /* @__PURE__ */ l("div", { className: `${e}__separator` }) : /* @__PURE__ */ M(
10
10
  "div",
11
11
  {
12
- className: `${t}__item ${n ? `${t}__sub-trigger` : ""} ${i ? "disabled" : ""}`.trim(),
13
- onMouseEnter: () => n && !i && o(!0),
14
- onMouseLeave: () => n && !i && o(!1),
12
+ className: `${e}__item ${i ? `${e}__sub-trigger` : ""} ${c ? "disabled" : ""}`.trim(),
13
+ onMouseEnter: () => i && !c && o(!0),
14
+ onMouseLeave: () => i && !c && o(!1),
15
15
  onClick: (a) => {
16
- !n && !i && (a.stopPropagation(), E(e, f), p());
16
+ !i && !c && (a.stopPropagation(), I(s, f), p());
17
17
  },
18
18
  children: [
19
- e.label,
20
- r && /* @__PURE__ */ u("span", { className: `${t}__shortcut`, children: r }),
21
- n && l && /* @__PURE__ */ u(
19
+ s.label,
20
+ t && /* @__PURE__ */ l("span", { className: `${e}__shortcut`, children: t }),
21
+ i && u && /* @__PURE__ */ l(
22
22
  "div",
23
23
  {
24
- ref: c,
25
- className: `${t} ${t}__sub-menu`,
26
- children: e.items.map((a, m) => /* @__PURE__ */ u(
24
+ ref: r,
25
+ className: `${e} ${e}__sub-menu`,
26
+ children: s.items.map((a, m) => /* @__PURE__ */ l(
27
27
  $,
28
28
  {
29
29
  item: a,
@@ -37,46 +37,51 @@ const $ = ({ item: e, onAction: f, closeMenu: p }) => {
37
37
  ]
38
38
  }
39
39
  );
40
- }, w = ({
41
- items: e = g.items,
40
+ }, L = ({
41
+ items: s = N.items,
42
42
  onAction: f,
43
43
  children: p,
44
- className: l = ""
44
+ className: u = ""
45
45
  }) => {
46
- const [o, c] = b(!1), [t, n] = b({ x: 0, y: 0 }), r = _(null), i = "context-menu", a = x((s) => {
47
- s.preventDefault(), c(!0);
48
- const { x: d, y: v } = C(s.clientX, s.clientY, 160, 200);
49
- n({ x: d, y: v });
50
- }, []), m = x(() => {
51
- c(!1);
46
+ const [o, r] = b(!1), [e, i] = b({ x: 0, y: 0 }), t = v(null), c = "context-menu", a = h((n) => {
47
+ n.preventDefault(), i({ x: n.clientX, y: n.clientY }), r(!0);
48
+ }, []), m = h(() => {
49
+ r(!1);
52
50
  }, []);
53
- return S(() => {
54
- const s = (d) => {
55
- r.current && !r.current.contains(d.target) && m();
51
+ return x(() => {
52
+ if (o && t.current) {
53
+ const { offsetWidth: n, offsetHeight: d } = t.current, { x: _, y: S } = C(e.x, e.y, n, d);
54
+ t.current.style.top = `${S}px`, t.current.style.left = `${_}px`, t.current.style.visibility = "visible";
55
+ }
56
+ }, [o, e.x, e.y]), x(() => {
57
+ const n = (d) => {
58
+ t.current && !t.current.contains(d.target) && m();
56
59
  };
57
- return o ? (document.addEventListener("mousedown", s), y()) : h(), () => {
58
- document.removeEventListener("mousedown", s), h();
60
+ return o ? (document.addEventListener("mousedown", n), g()) : y(), () => {
61
+ document.removeEventListener("mousedown", n), y();
59
62
  };
60
63
  }, [o, m]), /* @__PURE__ */ M(
61
64
  "div",
62
65
  {
63
66
  onContextMenu: a,
64
- className: `context-menu-wrapper ${l}`,
67
+ className: `context-menu-wrapper ${u}`,
65
68
  children: [
66
69
  p,
67
- o && /* @__PURE__ */ u(
70
+ o && /* @__PURE__ */ l(
68
71
  "div",
69
72
  {
70
- ref: r,
71
- className: i,
73
+ ref: t,
74
+ className: c,
72
75
  style: {
73
- top: t.y,
74
- left: t.x
76
+ top: e.y,
77
+ left: e.x,
78
+ visibility: "hidden"
79
+ // Caché le temps de la mesure au premier affichage
75
80
  },
76
- children: e.map((s, d) => /* @__PURE__ */ u(
81
+ children: s.map((n, d) => /* @__PURE__ */ l(
77
82
  $,
78
83
  {
79
- item: s,
84
+ item: n,
80
85
  onAction: f,
81
86
  closeMenu: m
82
87
  },
@@ -89,5 +94,5 @@ const $ = ({ item: e, onAction: f, closeMenu: p }) => {
89
94
  );
90
95
  };
91
96
  export {
92
- w as ContextMenu
97
+ L as ContextMenu
93
98
  };
@@ -3,6 +3,7 @@ interface DropdownItem {
3
3
  label?: string;
4
4
  href?: string;
5
5
  type?: "divider" | "item";
6
+ onClick?: () => void;
6
7
  }
7
8
  interface Props extends Omit<DropdownProps, "children"> {
8
9
  /**
@@ -25,6 +26,10 @@ interface Props extends Omit<DropdownProps, "children"> {
25
26
  * Contenu optionnel.
26
27
  */
27
28
  children?: React.ReactNode;
29
+ /**
30
+ * Fonction appelée lorsque le dropdown est ouvert.
31
+ */
32
+ onClick?: () => void;
28
33
  }
29
34
  /**
30
35
  * Composant Dropdown personnalisé.
@@ -34,7 +39,7 @@ interface Props extends Omit<DropdownProps, "children"> {
34
39
  * @returns {JSX.Element} Le composant Dropdown rendu.
35
40
  */
36
41
  export declare const Dropdown: {
37
- ({ label, variant, items, align, className, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
42
+ ({ label, variant, items, align, className, children, onClick, ...props }: Props): import("react/jsx-runtime").JSX.Element;
38
43
  Toggle({ className, ...props }: any): import("react/jsx-runtime").JSX.Element;
39
44
  Menu({ className, ...props }: any): import("react/jsx-runtime").JSX.Element;
40
45
  Item({ className, ...props }: any): import("react/jsx-runtime").JSX.Element;
@@ -1,33 +1,35 @@
1
- import { jsx as o, jsxs as c, Fragment as $ } from "react/jsx-runtime";
1
+ import { jsx as o, jsxs as _, Fragment as $ } from "react/jsx-runtime";
2
2
  import { Dropdown as d } from "react-bootstrap";
3
3
  import '../style/index.css';/* empty css */
4
- const s = ({
4
+ const n = ({
5
5
  label: r = "Dropdown",
6
6
  variant: e = "primary",
7
- items: t = [],
8
- align: l = "start",
9
- className: p = "",
10
- children: a,
11
- ..._
7
+ items: l = [],
8
+ align: t = "start",
9
+ className: c = "",
10
+ children: s,
11
+ onClick: g,
12
+ ...p
12
13
  }) => {
13
- const m = "dropdown";
14
- return /* @__PURE__ */ o(d, { className: `${m} ${p}`.trim(), align: l, ..._, children: a || /* @__PURE__ */ c($, { children: [
15
- /* @__PURE__ */ o(d.Toggle, { variant: e, id: `dropdown-${r}`, className: `${m}__toggle`, children: r }),
16
- /* @__PURE__ */ o(d.Menu, { className: `${m}__menu`, children: t.map((i, n) => i.type === "divider" ? /* @__PURE__ */ o(d.Divider, { className: `${m}__divider` }, n) : /* @__PURE__ */ o(
14
+ const i = "dropdown";
15
+ return /* @__PURE__ */ o(d, { className: `${i} ${c}`.trim(), align: t, ...p, children: s || /* @__PURE__ */ _($, { children: [
16
+ /* @__PURE__ */ o(d.Toggle, { variant: e, id: `dropdown-${r}`, className: `${i}__toggle`, children: r }),
17
+ /* @__PURE__ */ o(d.Menu, { className: `${i}__menu`, children: l.map((m, a) => m.type === "divider" ? /* @__PURE__ */ o(d.Divider, { className: `${i}__divider` }, a) : /* @__PURE__ */ o(
17
18
  d.Item,
18
19
  {
19
- href: i.href,
20
- className: `${m}__item`,
21
- children: i.label
20
+ href: m.href,
21
+ className: `${i}__item`,
22
+ onClick: m.onClick,
23
+ children: m.label
22
24
  },
23
- n
25
+ a
24
26
  )) })
25
27
  ] }) });
26
28
  };
27
- s.Toggle = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Toggle, { className: `dropdown__toggle ${r}`.trim(), ...e });
28
- s.Menu = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Menu, { className: `dropdown__menu ${r}`.trim(), ...e });
29
- s.Item = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Item, { className: `dropdown__item ${r}`.trim(), ...e });
30
- s.Divider = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Divider, { className: `dropdown__divider ${r}`.trim(), ...e });
29
+ n.Toggle = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Toggle, { className: `dropdown__toggle ${r}`.trim(), ...e });
30
+ n.Menu = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Menu, { className: `dropdown__menu ${r}`.trim(), ...e });
31
+ n.Item = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Item, { className: `dropdown__item ${r}`.trim(), ...e });
32
+ n.Divider = ({ className: r = "", ...e }) => /* @__PURE__ */ o(d.Divider, { className: `dropdown__divider ${r}`.trim(), ...e });
31
33
  export {
32
- s as Dropdown
34
+ n as Dropdown
33
35
  };
@@ -33,6 +33,10 @@ interface Props {
33
33
  * Désactiver le composant.
34
34
  */
35
35
  disabled?: boolean;
36
+ /**
37
+ * Activer/Désactiver la recherche (par défaut: true).
38
+ */
39
+ searchable?: boolean;
36
40
  /**
37
41
  * Classe CSS additionnelle.
38
42
  */
@@ -44,5 +48,5 @@ interface Props {
44
48
  * @param {Props} props - Les propriétés du composant.
45
49
  * @returns {JSX.Element} Le composant Select rendu.
46
50
  */
47
- export declare const Select: ({ options, value, onChange, multiple, placeholder, disabled, className, }: Props) => import("react/jsx-runtime").JSX.Element;
51
+ export declare const Select: ({ options, value, onChange, multiple, placeholder, disabled, searchable, className, }: Props) => import("react/jsx-runtime").JSX.Element;
48
52
  export {};
@@ -1,16 +1,17 @@
1
- import { jsx as f } from "react/jsx-runtime";
2
- import { useRef as l, useEffect as a } from "react";
3
- import { initSelect as d } from "../js/select.js";
4
- const N = ({
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { useRef as f, useEffect as a } from "react";
3
+ import { initSelect as h } from "../js/select.js";
4
+ const x = ({
5
5
  options: s,
6
6
  value: r,
7
7
  onChange: u,
8
8
  multiple: i = !1,
9
9
  placeholder: o = "Sélectionnez une option",
10
10
  disabled: m = !1,
11
- className: y = ""
11
+ searchable: y = !0,
12
+ className: d = ""
12
13
  }) => {
13
- const n = l(null), e = l(null);
14
+ const n = f(null), e = f(null);
14
15
  return a(() => {
15
16
  if (s) {
16
17
  if (n.current) {
@@ -20,10 +21,11 @@ const N = ({
20
21
  label: t.text,
21
22
  selected: Array.isArray(r) ? r.includes(t.value) : r === t.value
22
23
  }));
23
- e.current = d(n.current, {
24
+ e.current = h(n.current, {
24
25
  choices: c,
25
26
  removeItemButton: i,
26
27
  placeholderValue: o,
28
+ searchEnabled: y,
27
29
  silent: !0
28
30
  }, u);
29
31
  }
@@ -36,7 +38,7 @@ const N = ({
36
38
  const c = e.current.getValue(!0), t = Array.isArray(r) ? r : [r], A = Array.isArray(c) ? c : [c];
37
39
  JSON.stringify(t.sort()) !== JSON.stringify(A.sort()) && e.current.setChoiceByValue(r);
38
40
  }
39
- }, [r]), /* @__PURE__ */ f("div", { className: `form__input ${y}`.trim(), children: /* @__PURE__ */ f(
41
+ }, [r]), /* @__PURE__ */ l("div", { className: `form__input ${d}`.trim(), children: /* @__PURE__ */ l(
40
42
  "select",
41
43
  {
42
44
  ref: n,
@@ -47,5 +49,5 @@ const N = ({
47
49
  ) });
48
50
  };
49
51
  export {
50
- N as Select
52
+ x as Select
51
53
  };
@@ -27,6 +27,10 @@ interface Props {
27
27
  * Espacement entre les éléments (gap).
28
28
  */
29
29
  gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
30
+ /**
31
+ * Alignement des éléments.
32
+ */
33
+ align?: "start" | "end" | "center";
30
34
  }
31
35
  /**
32
36
  * Composant de groupement simple.
@@ -35,5 +39,5 @@ interface Props {
35
39
  * @param {Props} props - Les propriétés du composant.
36
40
  * @returns {JSX.Element} Le composant Group rendu.
37
41
  */
38
- export declare const Group: ({ children, vertical, title, className, gap, center, ariaLabel, }: Props) => import("react/jsx-runtime").JSX.Element;
42
+ export declare const Group: ({ children, vertical, title, className, gap, center, ariaLabel, align, }: Props) => import("react/jsx-runtime").JSX.Element;
39
43
  export {};
@@ -1,24 +1,25 @@
1
- import { jsx as n } from "react/jsx-runtime";
1
+ import { jsx as $ } from "react/jsx-runtime";
2
2
  import '../style/index.css';/* empty css */
3
- const i = ({
4
- children: s,
5
- vertical: e = !1,
3
+ const d = ({
4
+ children: o,
5
+ vertical: a = !1,
6
6
  title: r = "",
7
- className: a = "",
8
- gap: o = "md",
9
- center: t = !1,
10
- ariaLabel: l = r ? `Groupe d'éléments ${r}` : "Groupe d'éléments"
7
+ className: t = "",
8
+ gap: e = "md",
9
+ center: p = !1,
10
+ ariaLabel: l = r ? `Groupe d'éléments ${r}` : "Groupe d'éléments",
11
+ align: s = "start"
11
12
  }) => {
12
- const p = e ? "group--vertical" : "", c = `group--gap-${o}`;
13
- return /* @__PURE__ */ n(
13
+ const c = a ? "group--vertical" : "", n = `group--gap-${e}`, u = p ? "group--center" : "", m = s ? `group--${s}` : "";
14
+ return /* @__PURE__ */ $(
14
15
  "div",
15
16
  {
16
17
  "aria-label": l,
17
- className: `group ${p} ${c} ${t ? "group--center" : ""} ${a}`.trim(),
18
- children: s
18
+ className: `group ${c} ${n} ${u} ${m} ${t}`.trim(),
19
+ children: o
19
20
  }
20
21
  );
21
22
  };
22
23
  export {
23
- i as Group
24
+ d as Group
24
25
  };
@@ -1 +1 @@
1
- @layer components{.group{display:flex;flex-wrap:wrap;gap:.5rem}.group--vertical{flex-direction:column;align-items:flex-start}.group--horizontal{flex-direction:row;align-items:center}.group--no-wrap{flex-wrap:nowrap}.group--gap-none{gap:0}.group--center{align-items:center;justify-content:center}}
1
+ @layer components{.group{display:flex;flex-wrap:wrap;gap:.5rem}.group--vertical{flex-direction:column;align-items:flex-start}.group--horizontal{flex-direction:row;align-items:center}.group--no-wrap{flex-wrap:nowrap}.group--gap-none{gap:0}.group--center{align-items:center;justify-content:center}.group--start{justify-content:flex-start}.group--end{justify-content:flex-end}}