zuii 1.4.16 → 1.4.18

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 (63) hide show
  1. package/dist/_virtual/fr.js +5 -0
  2. package/dist/_virtual/fr2.js +4 -0
  3. package/dist/components/Badge/style/index.css +1 -1
  4. package/dist/components/Card/js/card.d.ts +4 -0
  5. package/dist/components/Card/react/index.d.ts +29 -0
  6. package/dist/components/Card/react/index.js +20 -0
  7. package/dist/components/Card/style/index.css +1 -0
  8. package/dist/components/Color/react/index.js +9 -5
  9. package/dist/components/Errorpage/react/index.js +11 -7
  10. package/dist/components/Form/js/color.d.ts +11 -0
  11. package/dist/components/Form/js/color.js +36 -0
  12. package/dist/components/Form/js/date.d.ts +35 -0
  13. package/dist/components/Form/js/date.js +40 -0
  14. package/dist/components/Form/js/tel-input.d.ts +12 -0
  15. package/dist/components/Form/js/tel-input.js +18 -0
  16. package/dist/components/Form/react/FormColor.d.ts +37 -0
  17. package/dist/components/Form/react/FormColor.js +62 -0
  18. package/dist/components/Form/react/FormDate.d.ts +48 -0
  19. package/dist/components/Form/react/FormDate.js +57 -0
  20. package/dist/components/Form/react/NumberInput.js +2 -3
  21. package/dist/components/Form/react/PasswordConfirm.d.ts +5 -1
  22. package/dist/components/Form/react/PasswordConfirm.js +43 -40
  23. package/dist/components/Form/react/PasswordInput.js +21 -21
  24. package/dist/components/Form/react/RangeInput.js +2 -3
  25. package/dist/components/Form/react/Select.d.ts +9 -1
  26. package/dist/components/Form/react/Select.js +91 -67
  27. package/dist/components/Form/react/TelInput.js +34 -26
  28. package/dist/components/Form/react/index.d.ts +7 -2
  29. package/dist/components/Form/react/index.js +28 -24
  30. package/dist/components/Form/style/index.css +1 -1
  31. package/dist/components/Grid/react/index.d.ts +13 -2
  32. package/dist/components/Grid/react/index.js +39 -34
  33. package/dist/components/Grid/style/index.css +1 -1
  34. package/dist/components/Loader/js/loader.d.ts +5 -1
  35. package/dist/components/Loader/react/index.d.ts +5 -1
  36. package/dist/components/Loader/react/index.js +22 -18
  37. package/dist/components/Loader/style/index.css +1 -1
  38. package/dist/components/Menu/js/menu.d.ts +6 -0
  39. package/dist/components/Menu/js/menu.js +19 -0
  40. package/dist/components/Menu/react/index.d.ts +34 -0
  41. package/dist/components/Menu/react/index.js +44 -0
  42. package/dist/components/Menu/style/index.css +1 -0
  43. package/dist/components/Nav/react/index.js +5 -1
  44. package/dist/components/Placeholder/style/index.css +1 -1
  45. package/dist/components/Slider/js/slider.d.ts +11 -0
  46. package/dist/components/Slider/js/slider.js +14 -0
  47. package/dist/components/Slider/react/index.d.ts +40 -0
  48. package/dist/components/Slider/react/index.js +27 -0
  49. package/dist/components/Slider/style/index.css +1 -0
  50. package/dist/components/Tab/react/index.js +48 -42
  51. package/dist/components/Tab/style/index.css +1 -1
  52. package/dist/index.d.ts +3 -0
  53. package/dist/index.js +25 -18
  54. package/dist/node_modules/.pnpm/flatpickr@4.6.13/node_modules/flatpickr/dist/l10n/fr.js +71 -0
  55. package/dist/templates/Cards/Cards.d.ts +4 -0
  56. package/dist/templates/Cards/Cards.tsx +55 -0
  57. package/dist/templates/Forms/Forms-elements.tsx +9 -4
  58. package/dist/templates/Loaders/Loaders.tsx +5 -0
  59. package/dist/templates/Sliders/Sliders.d.ts +4 -0
  60. package/dist/templates/Sliders/Sliders.tsx +150 -0
  61. package/dist/templates/index.d.ts +2 -0
  62. package/dist/templates/index.ts +2 -0
  63. package/package.json +5 -1
@@ -0,0 +1,44 @@
1
+ import { jsxs as n, jsx as a } from "react/jsx-runtime";
2
+ import { useRef as o, useEffect as c } from "react";
3
+ import { initMenu as u } from "../js/menu.js";
4
+ import '../style/index.css';/* empty css */
5
+ const l = ({
6
+ children: s,
7
+ className: r = "",
8
+ breakpoint: m = 768
9
+ }) => {
10
+ const t = o(null), e = "menu", i = `${e} ${r}`.trim();
11
+ return c(() => t.current ? u(t.current) : void 0, []), /* @__PURE__ */ n(
12
+ "div",
13
+ {
14
+ ref: t,
15
+ className: i,
16
+ style: { "--menu-breakpoint": `${m}px` },
17
+ children: [
18
+ /* @__PURE__ */ n("div", { className: `${e}__container`, children: [
19
+ s,
20
+ /* @__PURE__ */ n(
21
+ "button",
22
+ {
23
+ className: `${e}__toggle`,
24
+ "aria-label": "Ouvrir le menu",
25
+ "aria-expanded": !1,
26
+ type: "button",
27
+ children: [
28
+ /* @__PURE__ */ a("span", { className: `${e}__toggle-bar` }),
29
+ /* @__PURE__ */ a("span", { className: `${e}__toggle-bar` }),
30
+ /* @__PURE__ */ a("span", { className: `${e}__toggle-bar` })
31
+ ]
32
+ }
33
+ )
34
+ ] }),
35
+ /* @__PURE__ */ a("div", { className: `${e}__mobile-nav`, children: s })
36
+ ]
37
+ }
38
+ );
39
+ };
40
+ l.Left = ({ children: s, className: r = "" }) => /* @__PURE__ */ a("div", { className: `menu__left ${r}`.trim(), children: s });
41
+ l.Right = ({ children: s, className: r = "" }) => /* @__PURE__ */ a("div", { className: `menu__right ${r}`.trim(), children: s });
42
+ export {
43
+ l as Menu
44
+ };
@@ -0,0 +1 @@
1
+ @charset "UTF-8";@layer components{.menu{--menu-breakpoint: 768px;position:relative;background:var(--primary)}.menu__container{padding:1rem;max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.menu__left,.menu__right{display:flex;align-items:center;gap:1rem}.menu__nav-list{margin:0;padding:0;list-style:none}.menu__nav-items{display:flex;gap:1rem}.menu__actions{display:flex;gap:1rem;align-items:center}.menu__toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:6px;border:none;border-radius:var(--border-radius-sm, .375rem);background:transparent;cursor:pointer;z-index:1002;transition:background-color .2s}.menu__toggle:hover,.menu__toggle:focus-visible{background-color:#ffffff26;outline:none}.menu__toggle-bar{display:block;width:22px;height:2px;background-color:var(--primary-contrast, #fff);border-radius:2px;transition:transform .3s ease,opacity .3s ease}.menu__toggle--open .menu__toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu__toggle--open .menu__toggle-bar:nth-child(2){opacity:0}.menu__toggle--open .menu__toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menu__overlay{display:none;position:fixed;inset:0;background-color:#00000080;z-index:999;animation:menu-overlay-in .3s ease}@keyframes menu-overlay-in{0%{opacity:0}to{opacity:1}}.menu__mobile-nav{display:none;position:fixed;top:0;right:0;width:min(320px,80vw);height:100dvh;background-color:var(--primary);z-index:1001;padding:5rem 1.5rem 2rem;flex-direction:column;gap:2rem;overflow-y:auto;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--box-shadow-xl, -4px 0 25px rgba(0, 0, 0, .15))}.menu__mobile-nav .menu__left,.menu__mobile-nav .menu__right,.menu__mobile-nav .menu__center{flex-direction:column;align-items:flex-start}.menu__mobile-nav .menu__nav-items{flex-direction:column}.menu__mobile-nav--open{display:flex;transform:translate(0)}@media(max-width:768px){.menu__container>.menu__center,.menu__container>.menu__right{display:none}.menu__toggle{display:flex}.menu__overlay{display:block}.menu__mobile-nav{display:flex;transform:translate(100%)}.menu__mobile-nav--open{transform:translate(0)}}}
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as _, Fragment as v } from "react/jsx-runtime";
2
2
  import { useEffect as u } from "react";
3
- import '../../Grid/style/index.css';import '../../Loader/style/index.css';import '../../Errorpage/style/index.css';import '../../Lang-selector/style/index.css';import '../../../node_modules/.pnpm/flag-icons@7.5.0/node_modules/flag-icons/css/flag-icons.min.css';import '../../Placeholder/style/index.css';import '../../Logo/style/index.css';import '../../Radius/style/index.css';import '../../Shadow/style/index.css';import '../../Context-menu/style/index.css';import '../../Divider/style/index.css';import '../../Badge/style/index.css';import '../../Avatar/style/index.css';import '../../Group/style/index.css';import '../../Color/style/index.css';import '../../../core/styles/main.css';import '../style/index.css';/* empty css */
3
+ import '../../Slider/style/index.css';import '../../Grid/style/index.css';import '../../Loader/style/index.css';import '../../Errorpage/style/index.css';import '../../Lang-selector/style/index.css';import '../../../node_modules/.pnpm/flag-icons@7.5.0/node_modules/flag-icons/css/flag-icons.min.css';import '../../Placeholder/style/index.css';import '../../Logo/style/index.css';import '../../Radius/style/index.css';import '../../Shadow/style/index.css';import '../../Context-menu/style/index.css';import '../../Divider/style/index.css';import '../../Badge/style/index.css';import '../../Avatar/style/index.css';import '../../Group/style/index.css';import '../../Color/style/index.css';import '../../../core/styles/main.css';import '../style/index.css';/* empty css */
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import { Button as $ } from "../../Button/react/index.js";
@@ -32,6 +32,10 @@ import { Link as N } from "react-router-dom";
32
32
  /* empty css */
33
33
  /* empty css */
34
34
  /* empty css */
35
+ import "../../Menu/react/index.js";
36
+ import "@splidejs/react-splide";
37
+ /* empty css */
38
+ import "../../Card/react/index.js";
35
39
  import { initNav as g } from "../js/nav.js";
36
40
  const h = ({
37
41
  children: s,
@@ -1 +1 @@
1
- @layer layout{.form__input,.placeholder--input{--form-placeholder-color: color-mix(in srgb, var(--body-color), transparent 70%)}.form__input:not(:has(.choices)),.placeholder--input:not(:has(.choices)){padding:var(--spacing-xs) var(--spacing-sm)}.choices__inner{padding:var(--spacing-xs) var(--spacing-sm)}.form__input,.placeholder--input{background-color:var(--white);border-radius:var(--radius-base);border:var(--border-width) solid var(--border-color);margin:var(--spacing-sm) 0;display:flex;gap:var(--spacing-xs);transition:all .2s cubic-bezier(.455,.03,.515,.955);flex:1}.form__input[type=checkbox],[type=checkbox].placeholder--input,.form__input[type=radio],[type=radio].placeholder--input{appearance:none;width:1.25rem;height:1.25rem;background-color:var(--white);border:2px solid var(--color-gray-300);border-radius:var(--radius-sm);cursor:pointer;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);vertical-align:middle;margin-top:-2px}.form__input[type=checkbox]:after,[type=checkbox].placeholder--input:after,.form__input[type=radio]:after,[type=radio].placeholder--input:after{content:"";position:absolute;top:50%;left:50%;width:.75rem;height:.75rem;background-color:var(--white);-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transform:translate(-50%,-50%) scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}.form__input[type=checkbox]:checked,[type=checkbox].placeholder--input:checked,.form__input[type=radio]:checked,[type=radio].placeholder--input:checked{background-color:var(--primary);border-color:var(--primary)}.form__input[type=checkbox]:checked:after,[type=checkbox].placeholder--input:checked:after,.form__input[type=radio]:checked:after,[type=radio].placeholder--input:checked:after{transform:translate(-50%,-50%) scale(1)}.form__input[type=checkbox]:focus,[type=checkbox].placeholder--input:focus,.form__input[type=radio]:focus,[type=radio].placeholder--input:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary),transparent 80%);border-color:var(--primary)}.form__input[type=checkbox]:hover:not(:checked):not(:disabled),[type=checkbox].placeholder--input:hover:not(:checked):not(:disabled),.form__input[type=radio]:hover:not(:checked):not(:disabled),[type=radio].placeholder--input:hover:not(:checked):not(:disabled){border-color:var(--primary);background-color:color-mix(in srgb,var(--primary),transparent 95%)}.form__input[type=checkbox]:disabled,[type=checkbox].placeholder--input:disabled,.form__input[type=radio]:disabled,[type=radio].placeholder--input:disabled{background-color:var(--color-gray-100);border-color:var(--color-gray-200);cursor:not-allowed;opacity:.7}.form__input[type=radio],[type=radio].placeholder--input{border-radius:var(--radius-pill)}.form__input[type=radio]:after,[type=radio].placeholder--input:after{-webkit-mask-image:none;mask-image:none;border-radius:var(--radius-pill);width:.5rem;height:.5rem}.form__input .form-control:not([type=checkbox]):not([type=radio]),.placeholder--input .form-control:not([type=checkbox]):not([type=radio]){padding:0;background-color:transparent;border-radius:var(--radius-none);border:none;line-height:1.3}.form__input .form-control:not([type=checkbox]):not([type=radio]):focus,.placeholder--input .form-control:not([type=checkbox]):not([type=radio]):focus{border:none;box-shadow:none}.form__input:has(.form-control:focus),.placeholder--input:has(.form-control:focus){border-color:var(--accent)}.group--vertical .form__input,.group--vertical .placeholder--input{width:100%}input[type=checkbox],input[type=radio]{--border-color: var(--primary)}.form__input:has(.form-control:disabled),.placeholder--input:has(.form-control:disabled){border-color:var(--gray-200);background-color:var(--gray-100)}.form__input:has(.form-control:disabled) .form-control,.placeholder--input:has(.form-control:disabled) .form-control,.form__input:has(.form-control:disabled) .form-control::placeholder,.placeholder--input:has(.form-control:disabled) .form-control::placeholder,.form__input:has(.form-control:disabled) .icon,.placeholder--input:has(.form-control:disabled) .icon{color:var(--form-placeholder-color)}input::placeholder{color:var(--form-placeholder-color)}.placeholder,.placeholder__item{width:100%}.placeholder--filled{width:auto}.placeholder--image{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background-color:var(--primary, #f1f5f9);border:var(--border-width, 1px) solid var(--border-color, #94a3b8);position:relative;overflow:hidden}.placeholder--image:after{content:"";width:40%;height:40%;background-color:var(--gray-200, #94a3b8);-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>');-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.placeholder--input{height:1.93rem;background:color-mix(in srgb,currentcolor,transparent 70%)}.placeholder-glow.placeholder,.placeholder-glow.placeholder__item,.placeholder-glow .placeholder,.placeholder-glow .placeholder__item{animation:placeholder-glow 2s ease-in-out infinite}.placeholder-wave.placeholder,.placeholder-wave.placeholder__item,.placeholder-wave .placeholder,.placeholder-wave .placeholder__item{-webkit-mask-image:linear-gradient(130deg,#000 40%,#00000080,#000 60%);mask-image:linear-gradient(130deg,#000 40%,#00000080,#000 60%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-glow{0%,to{opacity:.6}50%{opacity:.3}}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.25em}[variant=primary]{background-color:var(--primary, #296782)!important;opacity:.5}[variant=secondary]{background-color:var(--secondary, #49B4E8)!important;opacity:.5}[variant=accent]{background-color:var(--accent, #49B4E8)!important;opacity:.5}[variant=tertiary]{background-color:var(--tertiary, #f5524d)!important;opacity:.5}[variant=success]{background-color:var(--success, #73D3B6)!important;opacity:.5}[variant=danger]{background-color:var(--danger, #EA5F5F)!important;opacity:.5}[variant=warning]{background-color:var(--warning, #F5D762)!important;opacity:.5}[variant=info]{background-color:var(--info, #73B6D3)!important;opacity:.5}[variant=light]{background-color:var(--light, #FFFFFF)!important;opacity:.5}[variant=dark]{background-color:var(--dark, #000000)!important;opacity:.5}}
1
+ @layer layout{.form__input,.placeholder--input{--form-placeholder-color: color-mix(in srgb, var(--body-color), transparent 70%);--form-border: var(--border-width) solid var(--border-color)}.form__input:not(:has(.choices)),.placeholder--input:not(:has(.choices)){padding:var(--spacing-xs) var(--spacing-sm)}.choices__inner{padding:var(--spacing-xs) var(--spacing-sm)}.form__input,.placeholder--input{background-color:var(--white);border-radius:var(--radius-base);border:var(--form-border);margin:var(--spacing-sm) 0;display:flex;gap:var(--spacing-xs);transition:all .2s cubic-bezier(.455,.03,.515,.955);flex:1}.form__input[type=checkbox],[type=checkbox].placeholder--input,.form__input[type=radio],[type=radio].placeholder--input{appearance:none;width:1.25rem;height:1.25rem;background-color:var(--white);border:2px solid var(--color-gray-300);border-radius:var(--radius-sm);cursor:pointer;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);vertical-align:middle;margin-top:-2px}.form__input[type=checkbox]:after,[type=checkbox].placeholder--input:after,.form__input[type=radio]:after,[type=radio].placeholder--input:after{content:"";position:absolute;top:50%;left:50%;width:.75rem;height:.75rem;background-color:var(--white);-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transform:translate(-50%,-50%) scale(0);transition:transform .2s cubic-bezier(.4,0,.2,1)}.form__input[type=checkbox]:checked,[type=checkbox].placeholder--input:checked,.form__input[type=radio]:checked,[type=radio].placeholder--input:checked{background-color:var(--primary);border-color:var(--primary)}.form__input[type=checkbox]:checked:after,[type=checkbox].placeholder--input:checked:after,.form__input[type=radio]:checked:after,[type=radio].placeholder--input:checked:after{transform:translate(-50%,-50%) scale(1)}.form__input[type=checkbox]:focus,[type=checkbox].placeholder--input:focus,.form__input[type=radio]:focus,[type=radio].placeholder--input:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary),transparent 80%);border-color:var(--primary)}.form__input[type=checkbox]:hover:not(:checked):not(:disabled),[type=checkbox].placeholder--input:hover:not(:checked):not(:disabled),.form__input[type=radio]:hover:not(:checked):not(:disabled),[type=radio].placeholder--input:hover:not(:checked):not(:disabled){border-color:var(--primary);background-color:color-mix(in srgb,var(--primary),transparent 95%)}.form__input[type=checkbox]:disabled,[type=checkbox].placeholder--input:disabled,.form__input[type=radio]:disabled,[type=radio].placeholder--input:disabled{background-color:var(--color-gray-100);border-color:var(--color-gray-200);cursor:not-allowed;opacity:.7}.form__input[type=radio],[type=radio].placeholder--input{border-radius:var(--radius-pill)}.form__input[type=radio]:after,[type=radio].placeholder--input:after{-webkit-mask-image:none;mask-image:none;border-radius:var(--radius-pill);width:.5rem;height:.5rem}.form__input .form-control:not([type=checkbox]):not([type=radio]),.placeholder--input .form-control:not([type=checkbox]):not([type=radio]){padding:0;background-color:transparent;border-radius:var(--radius-none);border:none;line-height:1.3}.form__input .form-control:not([type=checkbox]):not([type=radio]):focus,.placeholder--input .form-control:not([type=checkbox]):not([type=radio]):focus{border:none;box-shadow:none}.form__input:has(.form-control:focus),.placeholder--input:has(.form-control:focus){border-color:var(--accent)}.group--vertical .form__input,.group--vertical .placeholder--input{width:100%}input[type=checkbox],input[type=radio]{--border-color: var(--primary)}.form__input:has(.form-control:disabled),.placeholder--input:has(.form-control:disabled){border-color:var(--gray-200);background-color:var(--gray-100)}.form__input:has(.form-control:disabled) .form-control,.placeholder--input:has(.form-control:disabled) .form-control,.form__input:has(.form-control:disabled) .form-control::placeholder,.placeholder--input:has(.form-control:disabled) .form-control::placeholder,.form__input:has(.form-control:disabled) .icon,.placeholder--input:has(.form-control:disabled) .icon{color:var(--form-placeholder-color)}input::placeholder{color:var(--form-placeholder-color)}.placeholder,.placeholder__item{width:100%}.placeholder--filled{width:auto}.placeholder--image{width:100px;height:100px;display:flex;align-items:center;justify-content:center;background-color:var(--primary, #f1f5f9);border:var(--border-width, 1px) solid var(--border-color, #94a3b8);position:relative;overflow:hidden}.placeholder--image:after{content:"";width:40%;height:40%;background-color:var(--gray-200, #94a3b8);-webkit-mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>');-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.placeholder--input{height:1.93rem;background:color-mix(in srgb,currentcolor,transparent 70%)}.placeholder-glow.placeholder,.placeholder-glow.placeholder__item,.placeholder-glow .placeholder,.placeholder-glow .placeholder__item{animation:placeholder-glow 2s ease-in-out infinite}.placeholder-wave.placeholder,.placeholder-wave.placeholder__item,.placeholder-wave .placeholder,.placeholder-wave .placeholder__item{-webkit-mask-image:linear-gradient(130deg,#000 40%,#00000080,#000 60%);mask-image:linear-gradient(130deg,#000 40%,#00000080,#000 60%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-glow{0%,to{opacity:.6}50%{opacity:.3}}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.25em}[variant=primary]{background-color:var(--primary, #296782)!important;opacity:.5}[variant=secondary]{background-color:var(--secondary, #49B4E8)!important;opacity:.5}[variant=accent]{background-color:var(--accent, #49B4E8)!important;opacity:.5}[variant=tertiary]{background-color:var(--tertiary, #f5524d)!important;opacity:.5}[variant=success]{background-color:var(--success, #73D3B6)!important;opacity:.5}[variant=danger]{background-color:var(--danger, #EA5F5F)!important;opacity:.5}[variant=warning]{background-color:var(--warning, #F5D762)!important;opacity:.5}[variant=info]{background-color:var(--info, #73B6D3)!important;opacity:.5}[variant=light]{background-color:var(--light, #FFFFFF)!important;opacity:.5}[variant=dark]{background-color:var(--dark, #000000)!important;opacity:.5}}
@@ -0,0 +1,11 @@
1
+ import { SplideProps } from '@splidejs/react-splide';
2
+ /**
3
+ * Prépare et fusionne les options personnalisées de Splide avec les classes CSS métiers.
4
+ *
5
+ * @param {string} bemClass - La classe de base BEM du slider.
6
+ * @param {SplideProps['options']} options - Les options initiales fournies au slider.
7
+ * @param {string} arrowClass - Les classes personnalisées pour les flèches.
8
+ * @param {string} paginationClass - Les classes personnalisées pour la pagination.
9
+ * @returns {SplideProps['options']} Les options complètes incluant les classes.
10
+ */
11
+ export declare const getSliderOptions: (bemClass: string, options?: SplideProps["options"], arrowClass?: string, paginationClass?: string) => SplideProps["options"];
@@ -0,0 +1,14 @@
1
+ const n = (r, s, a = "", i = "") => {
2
+ const t = {
3
+ ...s?.classes,
4
+ arrow: `splide__arrow ${r}__arrow ${a}`.trim(),
5
+ pagination: `splide__pagination ${r}__pagination ${i}`.trim()
6
+ };
7
+ return {
8
+ ...s,
9
+ classes: t
10
+ };
11
+ };
12
+ export {
13
+ n as getSliderOptions
14
+ };
@@ -0,0 +1,40 @@
1
+ import { default as React } from 'react';
2
+ import { SplideProps } from '@splidejs/react-splide';
3
+ export interface SliderItemProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Le contenu de la slide.
6
+ */
7
+ children: React.ReactNode;
8
+ }
9
+ /**
10
+ * Composant SliderItem (Slide).
11
+ *
12
+ * @param {SliderItemProps} props - Les propriétés de la slide.
13
+ * @returns {JSX.Element} La slide rendue.
14
+ */
15
+ export declare const SliderItem: ({ children, className, ...props }: SliderItemProps) => import("react/jsx-runtime").JSX.Element;
16
+ export interface SliderProps extends Omit<SplideProps, 'children'> {
17
+ /**
18
+ * Les slides ou contenu à afficher dans le slider.
19
+ */
20
+ children: React.ReactNode;
21
+ /**
22
+ * Options de configuration pour Splide.
23
+ */
24
+ options?: SplideProps['options'];
25
+ /**
26
+ * Classe CSS additionnelle pour les boutons de navigation (flèches).
27
+ */
28
+ arrowClass?: string;
29
+ /**
30
+ * Classe CSS additionnelle pour le conteneur de pagination.
31
+ */
32
+ paginationClass?: string;
33
+ }
34
+ /**
35
+ * Composant Slider basé sur Splide.js.
36
+ *
37
+ * @param {SliderProps} props - Les propriétés du Slider.
38
+ * @returns {JSX.Element} Le slider rendu.
39
+ */
40
+ export declare const Slider: ({ children, options, className, arrowClass, paginationClass, ...props }: SliderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { Splide as p, SplideSlide as d } from "@splidejs/react-splide";
3
+ import '../style/index.css';/* empty css */
4
+ import { getSliderOptions as a } from "../js/slider.js";
5
+ const f = ({ children: e, className: s = "", ...r }) => /* @__PURE__ */ m(d, { className: `slider__item ${s}`.trim(), ...r, children: e }), C = ({
6
+ children: e,
7
+ options: s,
8
+ className: r = "",
9
+ arrowClass: t = "",
10
+ paginationClass: o = "",
11
+ ...l
12
+ }) => {
13
+ const i = "slider", n = a(i, s, t, o);
14
+ return /* @__PURE__ */ m(
15
+ p,
16
+ {
17
+ options: n,
18
+ className: `${i} ${r}`.trim(),
19
+ ...l,
20
+ children: e
21
+ }
22
+ );
23
+ };
24
+ export {
25
+ C as Slider,
26
+ f as SliderItem
27
+ };
@@ -0,0 +1 @@
1
+ @layer components{.slider{--slider-color: var(--primary);--slider-pagination-bottom: 2rem;--slider-pagination-size: 1rem;--slider-pagination-active-size: 1.5rem;--slider-pagination-gap: .5rem;--slider-pagination-active-gap: .5rem;--slider-pagination-background: var(--gray-500);--slider-pagination-active-background: var(--slider-color);--slider-pagination-border-radius: var(--radius-base);position:relative;width:100%;margin-bottom:var(--slider-pagination-bottom)}.slider__item{display:flex;flex-direction:column;justify-content:center;align-items:center}.slider .splide__arrow{background:transparent}.slider .slider__pagination{bottom:calc(var(--slider-pagination-bottom) * -1)}.slider .splide__pagination__page{background:var(--slider-pagination-background);border-radius:var(--slider-pagination-border-radius)}.slider .splide__pagination__page.is-active{background:var(--slider-pagination-active-background)}.slider .slider__arrow svg{fill:var(--slider-color)}}
@@ -1,72 +1,78 @@
1
- import { jsx as t, jsxs as I } from "react/jsx-runtime";
2
- import { useState as L } from "react";
3
- import { TabContainer as K, TabContent as u, TabPane as _, Tabs as q, Tab as N, Nav as w } from "react-bootstrap";
1
+ import { jsx as t, jsxs as L } from "react/jsx-runtime";
2
+ import i, { useState as R } from "react";
3
+ import { TabContainer as N, TabContent as T, TabPane as g, Tabs as V, Tab as x, Nav as q } from "react-bootstrap";
4
4
  import '../style/index.css';/* empty css */
5
- import { Group as C } from "../../Group/react/index.js";
6
- import { Button as z } from "../../Button/react/index.js";
7
- const c = ({
5
+ import { Group as _ } from "../../Group/react/index.js";
6
+ import { Button as w } from "../../Button/react/index.js";
7
+ const s = ({
8
8
  items: n = [],
9
- children: T,
10
- className: l = "",
9
+ children: P,
10
+ className: $ = "",
11
11
  vertical: d = !1,
12
12
  variant: v = "",
13
- border: g = !1,
14
- color: $ = "primary",
15
- defaultActiveKey: x,
16
- activeKey: b,
13
+ border: S = !1,
14
+ color: b = "primary",
15
+ defaultActiveKey: j,
16
+ activeKey: m,
17
17
  onSelect: h,
18
- contentClassName: P = "tabs__content",
19
- ...m
18
+ contentClassName: p = "tabs__content",
19
+ ...f
20
20
  }) => {
21
- const [S, j] = L(x || (n.length > 0 ? n[0].eventKey : void 0)), o = b !== void 0 ? b : S, s = (e, r) => {
22
- e && j(e), h && h(e, r);
23
- }, a = "tabs", p = d ? `${a}--vertical` : "", y = v ? `${a}--${v}` : "", A = g ? `${a}--border` : "", f = `${a}--${$}`;
21
+ const [A, B] = R(j || (n.length > 0 ? n[0].eventKey : void 0)), o = m !== void 0 ? m : A, c = (e, r) => {
22
+ e && B(e), h && h(e, r);
23
+ }, a = "tabs", C = d ? `${a}--vertical` : "", u = v ? `${a}--${v}` : "", E = S ? `${a}--border` : "", y = `${a}--${b}`, K = `${a}__item btn btn-${b}`;
24
24
  return n.length > 0 && d ? /* @__PURE__ */ t(
25
- K,
25
+ N,
26
26
  {
27
- ...m,
27
+ ...f,
28
28
  activeKey: o,
29
- onSelect: s,
30
- children: /* @__PURE__ */ I(C, { className: `${a} ${p} ${y} ${f} ${l}`.trim(), children: [
31
- /* @__PURE__ */ t(C, { vertical: !0, className: "tabs__nav", children: n.map((e, r) => /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(
32
- z,
29
+ onSelect: c,
30
+ children: /* @__PURE__ */ L(_, { className: `${a} ${C} ${u} ${y} ${$}`.trim(), children: [
31
+ /* @__PURE__ */ t(_, { vertical: !0, className: "tabs__nav", children: n.map((e, r) => /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(
32
+ w,
33
33
  {
34
34
  variant: "transparent",
35
- onClick: (i) => s(e.eventKey, i),
35
+ onClick: (l) => c(e.eventKey, l),
36
36
  active: o === e.eventKey,
37
37
  children: e.header
38
38
  }
39
39
  ) }, r)) }),
40
- /* @__PURE__ */ t(u, { className: P, children: n.map((e, r) => /* @__PURE__ */ t(_, { eventKey: e.eventKey, children: e.body }, r)) })
40
+ /* @__PURE__ */ t(T, { className: p, children: n.map((e, r) => /* @__PURE__ */ t(g, { eventKey: e.eventKey, children: e.body }, r)) })
41
41
  ] })
42
42
  }
43
- ) : /* @__PURE__ */ t("div", { className: `${a} ${p} ${y} ${A} ${f} ${l}`.trim(), children: /* @__PURE__ */ t(
44
- q,
43
+ ) : /* @__PURE__ */ t("div", { className: `${a} ${C} ${u} ${E} ${y} ${$}`.trim(), children: /* @__PURE__ */ t(
44
+ V,
45
45
  {
46
46
  activeKey: o,
47
- onSelect: s,
48
- ...m,
47
+ onSelect: c,
48
+ contentClassName: p,
49
+ ...f,
49
50
  children: n.length > 0 ? n.map((e, r) => {
50
- const { header: i, body: B, ...G } = e;
51
+ const { header: l, body: G, ...I } = e;
51
52
  return /* @__PURE__ */ t(
52
- N,
53
+ x,
53
54
  {
54
- title: i,
55
- ...G,
56
- tabClassName: `${a}__item btn btn-${$}`,
57
- children: /* @__PURE__ */ t("div", { className: `${a}__content`, children: B })
55
+ title: l,
56
+ ...I,
57
+ tabClassName: K,
58
+ children: /* @__PURE__ */ t("div", { className: `${a}__content`, children: G })
58
59
  },
59
60
  r
60
61
  );
61
- }) : T
62
+ }) : (
63
+ // Mode composé : injecter tabClassName sur chaque Tabs.Item enfant
64
+ i.Children.map(P, (e) => i.isValidElement(e) ? i.cloneElement(e, {
65
+ tabClassName: `${K} ${e.props.tabClassName || ""}`.trim()
66
+ }) : e)
67
+ )
62
68
  }
63
69
  ) });
64
70
  };
65
- c.Item = N;
66
- c.Container = K;
67
- c.Content = u;
68
- c.Pane = _;
69
- c.Nav = w;
71
+ s.Item = x;
72
+ s.Container = N;
73
+ s.Content = T;
74
+ s.Pane = g;
75
+ s.Nav = q;
70
76
  export {
71
- c as Tabs
77
+ s as Tabs
72
78
  };
@@ -1 +1 @@
1
- @layer components{.tabs{--nav-tabs-link-active-color: var(--secondary);--tab-tinte: var(--white) 90%}.tabs .nav-tabs{--nav-tabs-border-radius: var(--radius-none, 0);--nav-tabs-border-width: 0;--nav-link-color: currentColor;--nav-link-hover-color: var(--body-color)}.tabs .nav{background:var(--tab-bg-color);align-items:stretch}.tabs__content{background:var(--tab-bg-color-content);padding:var(--spacing-lg) var(--spacing-lg);height:inherit}.tabs .nav-item{display:flex}.tabs .tabs__item{border-radius:var(--nav-tabs-border-radius);height:100%;justify-content:center;align-items:center}.tabs .tabs__item.btn:not(.active){background:transparent}.tabs .tabs__item.btn:not(.active):not(:disabled){color:var(--body-color)}.tabs .tab-content>*{height:100%}.tabs--primary{--tab-bg-color: color-mix(in srgb, var(--primary), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--primary), var(--white) 92%)}.tabs--secondary{--tab-bg-color: color-mix(in srgb, var(--secondary), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--secondary), var(--white) 92%)}.tabs--accent{--tab-bg-color: color-mix(in srgb, var(--accent), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--accent), var(--white) 92%)}.tabs--tertiary{--tab-bg-color: color-mix(in srgb, var(--tertiary), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--tertiary), var(--white) 92%)}.tabs--success{--tab-bg-color: color-mix(in srgb, var(--success), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--success), var(--white) 92%)}.tabs--danger{--tab-bg-color: color-mix(in srgb, var(--danger), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--danger), var(--white) 92%)}.tabs--warning{--tab-bg-color: color-mix(in srgb, var(--warning), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--warning), var(--white) 92%)}.tabs--info{--tab-bg-color: color-mix(in srgb, var(--info), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--info), var(--white) 92%)}.tabs--light{--tab-bg-color: color-mix(in srgb, var(--light), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--light), var(--white) 92%)}.tabs--dark{--tab-bg-color: color-mix(in srgb, var(--dark), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--dark), var(--white) 92%)}.tabs--pills{--tab-bg-color: transparent;--tab-tinte: var(--white) 50%}.tabs--pills .tabs__item{--nav-link-padding-y: .3rem;--nav-link-padding-x: .75rem;border-radius:var(--radius-lg)}.tabs--pills .tab-content{margin-top:.8rem}.tabs--border .tabs__item.active{border-width:1px;border-color:var(--btn-border-color);background:transparent;color:color-mix(in srgb,var(--btn-border-color),var(--dark) 20%)}.tabs--underline{--tab-bg-color: transparent}.tabs--underline .tabs__item{border:none;background:transparent;border-bottom:3px solid color-mix(in srgb,var(--body-color),transparent 90%)}.tabs--underline .tabs__item.active{color:color-mix(in srgb,var(--btn-border-color),var(--dark) 30%);border-bottom:3px solid var(--btn-border-color)}.tabs--underline .tabs__item:hover:not(.active),.tabs--underline .tabs__item:focus:not(.active){border-bottom:3px solid color-mix(in srgb,var(--btn-border-color),var(--dark) 10%)}.tabs--underline .tabs__item:hover,.tabs--underline .tabs__item:focus{box-shadow:none}.tabs--vertical{--tab-bg-color: transparent;width:100%}.tabs--vertical .tab-content{flex:1}.tabs--vertical .tabs__nav{padding:1.5rem}}
1
+ @layer components{.tabs{--nav-tabs-link-active-color: var(--secondary);--tab-tinte: var(--white) 90%}.tabs .nav-tabs{--nav-tabs-border-radius: var(--radius-none, 0);--nav-tabs-border-width: 0;--nav-link-color: currentColor;--nav-link-hover-color: var(--body-color)}.tabs .nav{background:var(--tab-bg-color);align-items:stretch}.tabs__content,.tabs .tab-content{background:var(--tab-bg-color-content);padding:var(--spacing-lg) var(--spacing-lg);height:inherit}.tabs .nav-item{display:flex}.tabs .tabs__item{border-radius:var(--nav-tabs-border-radius);height:100%;justify-content:center;align-items:center}.tabs .tabs__item.btn:not(.active){background:transparent}.tabs .tabs__item.btn:not(.active):not(:disabled){color:var(--body-color)}.tabs .tab-content>*{height:100%}.tabs--primary{--tab-bg-color: color-mix(in srgb, var(--primary), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--primary), transparent 85%)}.tabs--secondary{--tab-bg-color: color-mix(in srgb, var(--secondary), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--secondary), transparent 85%)}.tabs--accent{--tab-bg-color: color-mix(in srgb, var(--accent), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--accent), transparent 85%)}.tabs--tertiary{--tab-bg-color: color-mix(in srgb, var(--tertiary), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--tertiary), transparent 85%)}.tabs--success{--tab-bg-color: color-mix(in srgb, var(--success), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--success), transparent 85%)}.tabs--danger{--tab-bg-color: color-mix(in srgb, var(--danger), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--danger), transparent 85%)}.tabs--warning{--tab-bg-color: color-mix(in srgb, var(--warning), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--warning), transparent 85%)}.tabs--info{--tab-bg-color: color-mix(in srgb, var(--info), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--info), transparent 85%)}.tabs--light{--tab-bg-color: color-mix(in srgb, var(--light), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--light), transparent 85%)}.tabs--dark{--tab-bg-color: color-mix(in srgb, var(--dark), var(--tab-tinte));--tab-bg-color-content: color-mix(in srgb, var(--dark), transparent 85%)}.tabs--pills{--tab-bg-color: transparent;--tab-tinte: var(--white) 50%}.tabs--pills .tabs__item{--nav-link-padding-y: .3rem;--nav-link-padding-x: .75rem;border-radius:var(--radius-lg)}.tabs--pills .tab-content{margin-top:.8rem}.tabs--border .tabs__item.active{border-width:1px;border-color:var(--btn-border-color);background:transparent;color:color-mix(in srgb,var(--btn-border-color),var(--dark) 20%)}.tabs--underline{--tab-bg-color: transparent}.tabs--underline .tabs__item{border:none;background:transparent;border-bottom:3px solid color-mix(in srgb,var(--body-color),transparent 90%)}.tabs--underline .tabs__item.active{color:color-mix(in srgb,var(--btn-border-color),var(--dark) 30%);border-bottom:3px solid var(--btn-border-color)}.tabs--underline .tabs__item:hover:not(.active),.tabs--underline .tabs__item:focus:not(.active){border-bottom:3px solid color-mix(in srgb,var(--btn-border-color),var(--dark) 10%)}.tabs--underline .tabs__item:hover,.tabs--underline .tabs__item:focus{box-shadow:none}.tabs--vertical{--tab-bg-color: transparent;width:100%}.tabs--vertical .tab-content{flex:1}.tabs--vertical .tabs__nav{padding:1.5rem}}
package/dist/index.d.ts CHANGED
@@ -25,3 +25,6 @@ export * from './components/Auth/react';
25
25
  export * from './components/Errorpage/react';
26
26
  export * from './components/Loader/react';
27
27
  export * from './components/Grid/react';
28
+ export * from './components/Menu/react';
29
+ export * from './components/Slider/react';
30
+ export * from './components/Card/react';
package/dist/index.js CHANGED
@@ -2,17 +2,17 @@ import './core/styles/main.css';/* empty css */
2
2
  import { Color as t } from "./components/Color/react/index.js";
3
3
  import { Button as m } from "./components/Button/react/index.js";
4
4
  import { Icon as f, SizeProvider as a, useSize as d } from "./components/Icon/react/index.js";
5
- import { Group as n } from "./components/Group/react/index.js";
5
+ import { Group as l } from "./components/Group/react/index.js";
6
6
  import { Avatar as c } from "./components/Avatar/react/index.js";
7
7
  import { Badge as A } from "./components/Badge/react/index.js";
8
- import { Divider as g } from "./components/Divider/react/index.js";
8
+ import { Divider as S } from "./components/Divider/react/index.js";
9
9
  import { ContextMenu as h } from "./components/Context-menu/react/index.js";
10
10
  import { Form as B } from "./components/Form/react/index.js";
11
- import { Shadow as L } from "./components/Shadow/react/index.js";
12
- import { Radius as C } from "./components/Radius/react/index.js";
13
- import { Dropdown as T } from "./components/Dropdown/react/index.js";
14
- import { Logo as z } from "./components/Logo/react/index.js";
15
- import { Modal as M } from "./components/Modal/react/index.js";
11
+ import { Shadow as G } from "./components/Shadow/react/index.js";
12
+ import { Radius as b } from "./components/Radius/react/index.js";
13
+ import { Dropdown as I } from "./components/Dropdown/react/index.js";
14
+ import { Logo as T } from "./components/Logo/react/index.js";
15
+ import { Modal as z } from "./components/Modal/react/index.js";
16
16
  import { Placeholder as k } from "./components/Placeholder/react/index.js";
17
17
  import { Tooltip as F } from "./components/Tooltip/react/index.js";
18
18
  import { Table as N } from "./components/Table/react/index.js";
@@ -26,11 +26,14 @@ import { Auth as oo } from "./components/Auth/react/index.js";
26
26
  import { Errorpage as eo } from "./components/Errorpage/react/index.js";
27
27
  import { Loader as po } from "./components/Loader/react/index.js";
28
28
  import { Grid as xo, GridItem as fo, GridSpacer as ao } from "./components/Grid/react/index.js";
29
- import { default as no } from "./node_modules/.pnpm/react-bootstrap@2.10.10_@types_react@19.2.10_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-bootstrap/esm/AccordionContext.js";
30
- import { useAccordionButton as co } from "react-bootstrap";
29
+ import { Menu as lo } from "./components/Menu/react/index.js";
30
+ import { Slider as co, SliderItem as uo } from "./components/Slider/react/index.js";
31
+ import { Card as so } from "./components/Card/react/index.js";
32
+ import { default as go } from "./node_modules/.pnpm/react-bootstrap@2.10.10_@types_react@19.2.10_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-bootstrap/esm/AccordionContext.js";
33
+ import { useAccordionButton as vo } from "react-bootstrap";
31
34
  export {
32
35
  j as Accordion,
33
- no as AccordionContext,
36
+ go as AccordionContext,
34
37
  K as Alert,
35
38
  O as AlertBase,
36
39
  Q as AlertHeading,
@@ -39,30 +42,34 @@ export {
39
42
  c as Avatar,
40
43
  A as Badge,
41
44
  m as Button,
45
+ so as Card,
42
46
  t as Color,
43
47
  h as ContextMenu,
44
48
  W as Dashboard,
45
- g as Divider,
46
- T as Dropdown,
49
+ S as Divider,
50
+ I as Dropdown,
47
51
  eo as Errorpage,
48
52
  B as Form,
49
53
  xo as Grid,
50
54
  fo as GridItem,
51
55
  ao as GridSpacer,
52
- n as Group,
56
+ l as Group,
53
57
  f as Icon,
54
58
  _ as LangSelector,
55
59
  po as Loader,
56
- z as Logo,
57
- M as Modal,
60
+ T as Logo,
61
+ lo as Menu,
62
+ z as Modal,
58
63
  Y as Nav,
59
64
  k as Placeholder,
60
- C as Radius,
61
- L as Shadow,
65
+ b as Radius,
66
+ G as Shadow,
62
67
  a as SizeProvider,
68
+ co as Slider,
69
+ uo as SliderItem,
63
70
  N as Table,
64
71
  y as Tabs,
65
72
  F as Tooltip,
66
- co as useAccordionButton,
73
+ vo as useAccordionButton,
67
74
  d as useSize
68
75
  };
@@ -0,0 +1,71 @@
1
+ import { __module as e } from "../../../../../../../_virtual/fr2.js";
2
+ var l = e.exports, a;
3
+ function m() {
4
+ return a ? e.exports : (a = 1, (function(d, t) {
5
+ (function(r, n) {
6
+ n(t);
7
+ })(l, (function(r) {
8
+ var n = typeof window < "u" && window.flatpickr !== void 0 ? window.flatpickr : {
9
+ l10ns: {}
10
+ }, i = {
11
+ firstDayOfWeek: 1,
12
+ weekdays: {
13
+ shorthand: ["dim", "lun", "mar", "mer", "jeu", "ven", "sam"],
14
+ longhand: [
15
+ "dimanche",
16
+ "lundi",
17
+ "mardi",
18
+ "mercredi",
19
+ "jeudi",
20
+ "vendredi",
21
+ "samedi"
22
+ ]
23
+ },
24
+ months: {
25
+ shorthand: [
26
+ "janv",
27
+ "févr",
28
+ "mars",
29
+ "avr",
30
+ "mai",
31
+ "juin",
32
+ "juil",
33
+ "août",
34
+ "sept",
35
+ "oct",
36
+ "nov",
37
+ "déc"
38
+ ],
39
+ longhand: [
40
+ "janvier",
41
+ "février",
42
+ "mars",
43
+ "avril",
44
+ "mai",
45
+ "juin",
46
+ "juillet",
47
+ "août",
48
+ "septembre",
49
+ "octobre",
50
+ "novembre",
51
+ "décembre"
52
+ ]
53
+ },
54
+ ordinal: function(u) {
55
+ return u > 1 ? "" : "er";
56
+ },
57
+ rangeSeparator: " au ",
58
+ weekAbbreviation: "Sem",
59
+ scrollTitle: "Défiler pour augmenter la valeur",
60
+ toggleTitle: "Cliquer pour basculer",
61
+ time_24hr: !0
62
+ };
63
+ n.l10ns.fr = i;
64
+ var o = n.l10ns;
65
+ r.French = i, r.default = o, Object.defineProperty(r, "__esModule", { value: !0 });
66
+ }));
67
+ })(e, e.exports), e.exports);
68
+ }
69
+ export {
70
+ m as __require
71
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Template de démonstration pour le composant Card.
3
+ */
4
+ export declare const Cards: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,55 @@
1
+ import { Card, Button } from '../../index';
2
+
3
+ /**
4
+ * Template de démonstration pour le composant Card.
5
+ */
6
+ export const Cards = () => {
7
+ return (
8
+ <div className="Cards-demo">
9
+ <section className="mb-5">
10
+ <h3>Cards</h3>
11
+ <p className="text-muted mb-4">Le composant <code>Card</code> est basé sur React Bootstrap tout en utilisant les classes BEM de zuii.</p>
12
+
13
+ <h5 className='mt-4'>Basique</h5>
14
+ <p className="text-muted mb-4">Un exemple de carte simple avec un titre, du texte et un bouton.</p>
15
+ <Card>
16
+ <Card.Img variant="top" src="https://placehold.co/286x180" alt="Placeholder d'image" />
17
+ <Card.Body>
18
+ <Card.Title>Titre de la carte</Card.Title>
19
+ <Card.Text>
20
+ Un exemple rapide de texte pour construire le titre de la carte et constituer la majeure partie du contenu.
21
+ </Card.Text>
22
+ <Button variant="primary">Go somewhere</Button>
23
+ </Card.Body>
24
+ </Card>
25
+
26
+ <h5 className='mt-5'>En-tête et Pied de page</h5>
27
+ <p className="text-muted mb-4">Cartes contenant un `Card.Header` et un `Card.Footer`.</p>
28
+ <Card>
29
+ <Card.Header>Featured</Card.Header>
30
+ <Card.Body>
31
+ <Card.Title>Titre spécial</Card.Title>
32
+ <Card.Text>
33
+ Avec du texte supplémentaire à l'intérieur pour montrer l'utilisation du header.
34
+ </Card.Text>
35
+ <Button variant="primary">Action</Button>
36
+ </Card.Body>
37
+ <Card.Footer className="text-muted">Il y a 2 jours</Card.Footer>
38
+ </Card>
39
+
40
+ <h5 className='mt-5'>Superposition d'image</h5>
41
+ <p className="text-muted mb-4">Transformer une image en arrière-plan d'une carte et écrire par-dessus.</p>
42
+ <Card className="bg-dark text-white">
43
+ <Card.Img src="https://placehold.co/800x200/333/fff" alt="Card image" />
44
+ <Card.ImgOverlay>
45
+ <Card.Title>Superposition</Card.Title>
46
+ <Card.Text>
47
+ Ceci est une carte plus large avec un texte de support en dessous comme introduction naturelle à un contenu supplémentaire. Ce contenu est un peu plus long.
48
+ </Card.Text>
49
+ <Card.Text>Dernière mise à jour : 3 minutes.</Card.Text>
50
+ </Card.ImgOverlay>
51
+ </Card>
52
+ </section>
53
+ </div>
54
+ );
55
+ };
@@ -28,8 +28,8 @@ export const FormsElements = () => {
28
28
  <Form.Control id="search" type="search" placeholder="Enter search" name="search" icon="icon-search" />
29
29
  <Form.Control id="email" type="email" placeholder="Enter email" name="email" icon="icon-at-sign" />
30
30
  <Form.Control id="number" type="number" placeholder="Enter number" name="number" icon="icon-number" />
31
- {/* <Form.File id="file-simple" label="Upload simple" name="file_simple" /> */}
32
- {/* <Form.File
31
+ {/* <Form.File id="file-simple" label="Upload simple" name="file_simple" />
32
+ <Form.File
33
33
  id="simple-upload"
34
34
  name="simple-upload"
35
35
  maxNumberOfFiles={1}
@@ -41,16 +41,18 @@ export const FormsElements = () => {
41
41
  maxNumberOfFiles={5}
42
42
  maxFileSize={5 * 1024 * 1024}
43
43
  onComplete={(result: any) => console.log("Fichiers téléchargés :", result)}
44
- /> */}
45
- {/* <Form.File id="file-multiple" label="Upload multiple" name="file_multiple" multiple={true} maxFiles={5} /> */}
44
+ />
45
+ <Form.File id="file-multiple" label="Upload multiple" name="file_multiple" multiple={true} maxFiles={5} /> */}
46
46
  <Form.Check id="checkbox1" type="checkbox" label="Enter checkbox" name="checkbox" />
47
47
  <Form.Check id="checkbox2" type="checkbox" label="Enter checkbox checked" name="checkbox" defaultChecked />
48
48
  <Form.Check id="radio1" type="radio" label="Enter radio option 1" name="radio" defaultChecked />
49
49
  <Form.Check id="radio2" type="radio" label="Enter radio option 2" name="radio" />
50
+ <Form.Select name="select" value={selectValue} onChange={(val) => setSelectValue(val)} options={[]}></Form.Select>
50
51
  <Form.Select name="select" value={selectValue} onChange={(val) => setSelectValue(val)} options={[
51
52
  {
52
53
  text: 'Option 1',
53
54
  value: '1'
55
+
54
56
  },
55
57
  {
56
58
  text: 'Option 2',
@@ -88,6 +90,9 @@ export const FormsElements = () => {
88
90
  value: '3'
89
91
  }
90
92
  ]} />
93
+ <Form.Date />
94
+ <Form.Color />
95
+
91
96
  <Form.Control type="submit" value="Submit" />
92
97
  </form>
93
98