@dododog/ui 0.8.1 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-P2SGBTKS.mjs +138 -0
- package/dist/chunk-ZCQJN4IT.js +160 -0
- package/dist/components/FloatingDock/index.d.mts +26 -5
- package/dist/components/FloatingDock/index.d.ts +26 -5
- package/dist/components/FloatingDock/index.js +2 -2
- package/dist/components/FloatingDock/index.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +76 -76
- package/dist/index.mjs +12 -12
- package/package.json +1 -1
- package/dist/chunk-PBDPZTHK.mjs +0 -53
- package/dist/chunk-S732LTPT.js +0 -75
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { cn } from './chunk-IMKLN273.mjs';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var FloatingDock = React.forwardRef(
|
|
6
|
+
({ items, className, ariaLabel = "Navigation rapide", onNavigate }, ref) => {
|
|
7
|
+
const [openKey, setOpenKey] = React.useState(null);
|
|
8
|
+
const navRef = React.useRef(null);
|
|
9
|
+
const setNavRef = React.useCallback(
|
|
10
|
+
(node) => {
|
|
11
|
+
navRef.current = node;
|
|
12
|
+
if (typeof ref === "function") ref(node);
|
|
13
|
+
else if (ref) ref.current = node;
|
|
14
|
+
},
|
|
15
|
+
[ref]
|
|
16
|
+
);
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (!openKey) return;
|
|
19
|
+
const onPointerDown = (e) => {
|
|
20
|
+
if (navRef.current && !navRef.current.contains(e.target)) {
|
|
21
|
+
setOpenKey(null);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const onKeyDown = (e) => {
|
|
25
|
+
if (e.key === "Escape") setOpenKey(null);
|
|
26
|
+
};
|
|
27
|
+
document.addEventListener("pointerdown", onPointerDown);
|
|
28
|
+
document.addEventListener("keydown", onKeyDown);
|
|
29
|
+
return () => {
|
|
30
|
+
document.removeEventListener("pointerdown", onPointerDown);
|
|
31
|
+
document.removeEventListener("keydown", onKeyDown);
|
|
32
|
+
};
|
|
33
|
+
}, [openKey]);
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
"nav",
|
|
36
|
+
{
|
|
37
|
+
ref: setNavRef,
|
|
38
|
+
"aria-label": ariaLabel,
|
|
39
|
+
className: cn(
|
|
40
|
+
"inline-flex items-center gap-1 rounded-full border border-black/5 bg-white/95 px-2 py-2 shadow-[0_8px_30px_rgba(0,0,0,0.12)] backdrop-blur",
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
children: items.map((item) => {
|
|
44
|
+
const subItems = item.menuItems ?? [];
|
|
45
|
+
const hasMenu = subItems.length > 0;
|
|
46
|
+
const isOpen = openKey === item.key;
|
|
47
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
48
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", "aria-hidden": "true", children: item.icon }),
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
"span",
|
|
51
|
+
{
|
|
52
|
+
className: cn(
|
|
53
|
+
"overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",
|
|
54
|
+
item.isActive ? "ml-2 max-w-[8rem] opacity-100" : "ml-0 max-w-0 opacity-0"
|
|
55
|
+
),
|
|
56
|
+
children: item.label
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
] });
|
|
60
|
+
const triggerClass = cn(
|
|
61
|
+
"flex min-h-[44px] items-center justify-center rounded-full outline-none transition-colors focus-visible:ring-2 focus-visible:ring-secondary focus-visible:ring-offset-2",
|
|
62
|
+
item.isActive ? "bg-secondary px-4 text-white" : "w-11 text-primary/70 hover:bg-secondary/5 hover:text-secondary"
|
|
63
|
+
);
|
|
64
|
+
if (hasMenu) {
|
|
65
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
66
|
+
isOpen && /* @__PURE__ */ jsx(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
role: "menu",
|
|
70
|
+
"aria-label": item.label,
|
|
71
|
+
className: "absolute bottom-full left-1/2 z-10 mb-3 w-56 -translate-x-1/2 overflow-hidden rounded-2xl border border-black/5 bg-white shadow-[0_8px_30px_rgba(0,0,0,0.18)]",
|
|
72
|
+
children: subItems.map((sub) => /* @__PURE__ */ jsxs(
|
|
73
|
+
"a",
|
|
74
|
+
{
|
|
75
|
+
href: sub.href,
|
|
76
|
+
role: "menuitem",
|
|
77
|
+
"aria-current": sub.isActive ? "page" : void 0,
|
|
78
|
+
onClick: (event) => {
|
|
79
|
+
if (onNavigate) {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
onNavigate(sub);
|
|
82
|
+
}
|
|
83
|
+
setOpenKey(null);
|
|
84
|
+
},
|
|
85
|
+
className: cn(
|
|
86
|
+
"flex items-center gap-3 px-4 py-3 text-sm outline-none transition-colors focus-visible:bg-secondary/10",
|
|
87
|
+
sub.isActive ? "bg-secondary/10 font-semibold text-secondary" : "text-primary/80 hover:bg-secondary/5 hover:text-secondary"
|
|
88
|
+
),
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", "aria-hidden": "true", children: sub.icon }),
|
|
91
|
+
/* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: sub.label })
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
sub.key
|
|
95
|
+
))
|
|
96
|
+
}
|
|
97
|
+
),
|
|
98
|
+
/* @__PURE__ */ jsx(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
type: "button",
|
|
102
|
+
"aria-label": item.label,
|
|
103
|
+
"aria-haspopup": "menu",
|
|
104
|
+
"aria-expanded": isOpen,
|
|
105
|
+
title: item.label,
|
|
106
|
+
onClick: () => {
|
|
107
|
+
setOpenKey(isOpen ? null : item.key);
|
|
108
|
+
},
|
|
109
|
+
className: triggerClass,
|
|
110
|
+
children: content
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
] }, item.key);
|
|
114
|
+
}
|
|
115
|
+
return /* @__PURE__ */ jsx(
|
|
116
|
+
"a",
|
|
117
|
+
{
|
|
118
|
+
href: item.href,
|
|
119
|
+
"aria-label": item.label,
|
|
120
|
+
"aria-current": item.isActive ? "page" : void 0,
|
|
121
|
+
title: item.label,
|
|
122
|
+
onClick: onNavigate ? (event) => {
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
onNavigate(item);
|
|
125
|
+
} : void 0,
|
|
126
|
+
className: triggerClass,
|
|
127
|
+
children: content
|
|
128
|
+
},
|
|
129
|
+
item.key
|
|
130
|
+
);
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
);
|
|
136
|
+
FloatingDock.displayName = "FloatingDock";
|
|
137
|
+
|
|
138
|
+
export { FloatingDock };
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
|
+
|
|
27
|
+
var FloatingDock = React__namespace.forwardRef(
|
|
28
|
+
({ items, className, ariaLabel = "Navigation rapide", onNavigate }, ref) => {
|
|
29
|
+
const [openKey, setOpenKey] = React__namespace.useState(null);
|
|
30
|
+
const navRef = React__namespace.useRef(null);
|
|
31
|
+
const setNavRef = React__namespace.useCallback(
|
|
32
|
+
(node) => {
|
|
33
|
+
navRef.current = node;
|
|
34
|
+
if (typeof ref === "function") ref(node);
|
|
35
|
+
else if (ref) ref.current = node;
|
|
36
|
+
},
|
|
37
|
+
[ref]
|
|
38
|
+
);
|
|
39
|
+
React__namespace.useEffect(() => {
|
|
40
|
+
if (!openKey) return;
|
|
41
|
+
const onPointerDown = (e) => {
|
|
42
|
+
if (navRef.current && !navRef.current.contains(e.target)) {
|
|
43
|
+
setOpenKey(null);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const onKeyDown = (e) => {
|
|
47
|
+
if (e.key === "Escape") setOpenKey(null);
|
|
48
|
+
};
|
|
49
|
+
document.addEventListener("pointerdown", onPointerDown);
|
|
50
|
+
document.addEventListener("keydown", onKeyDown);
|
|
51
|
+
return () => {
|
|
52
|
+
document.removeEventListener("pointerdown", onPointerDown);
|
|
53
|
+
document.removeEventListener("keydown", onKeyDown);
|
|
54
|
+
};
|
|
55
|
+
}, [openKey]);
|
|
56
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
57
|
+
"nav",
|
|
58
|
+
{
|
|
59
|
+
ref: setNavRef,
|
|
60
|
+
"aria-label": ariaLabel,
|
|
61
|
+
className: chunkADIDI7AJ_js.cn(
|
|
62
|
+
"inline-flex items-center gap-1 rounded-full border border-black/5 bg-white/95 px-2 py-2 shadow-[0_8px_30px_rgba(0,0,0,0.12)] backdrop-blur",
|
|
63
|
+
className
|
|
64
|
+
),
|
|
65
|
+
children: items.map((item) => {
|
|
66
|
+
const subItems = item.menuItems ?? [];
|
|
67
|
+
const hasMenu = subItems.length > 0;
|
|
68
|
+
const isOpen = openKey === item.key;
|
|
69
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", "aria-hidden": "true", children: item.icon }),
|
|
71
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
72
|
+
"span",
|
|
73
|
+
{
|
|
74
|
+
className: chunkADIDI7AJ_js.cn(
|
|
75
|
+
"overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",
|
|
76
|
+
item.isActive ? "ml-2 max-w-[8rem] opacity-100" : "ml-0 max-w-0 opacity-0"
|
|
77
|
+
),
|
|
78
|
+
children: item.label
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
] });
|
|
82
|
+
const triggerClass = chunkADIDI7AJ_js.cn(
|
|
83
|
+
"flex min-h-[44px] items-center justify-center rounded-full outline-none transition-colors focus-visible:ring-2 focus-visible:ring-secondary focus-visible:ring-offset-2",
|
|
84
|
+
item.isActive ? "bg-secondary px-4 text-white" : "w-11 text-primary/70 hover:bg-secondary/5 hover:text-secondary"
|
|
85
|
+
);
|
|
86
|
+
if (hasMenu) {
|
|
87
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
88
|
+
isOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
89
|
+
"div",
|
|
90
|
+
{
|
|
91
|
+
role: "menu",
|
|
92
|
+
"aria-label": item.label,
|
|
93
|
+
className: "absolute bottom-full left-1/2 z-10 mb-3 w-56 -translate-x-1/2 overflow-hidden rounded-2xl border border-black/5 bg-white shadow-[0_8px_30px_rgba(0,0,0,0.18)]",
|
|
94
|
+
children: subItems.map((sub) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
95
|
+
"a",
|
|
96
|
+
{
|
|
97
|
+
href: sub.href,
|
|
98
|
+
role: "menuitem",
|
|
99
|
+
"aria-current": sub.isActive ? "page" : void 0,
|
|
100
|
+
onClick: (event) => {
|
|
101
|
+
if (onNavigate) {
|
|
102
|
+
event.preventDefault();
|
|
103
|
+
onNavigate(sub);
|
|
104
|
+
}
|
|
105
|
+
setOpenKey(null);
|
|
106
|
+
},
|
|
107
|
+
className: chunkADIDI7AJ_js.cn(
|
|
108
|
+
"flex items-center gap-3 px-4 py-3 text-sm outline-none transition-colors focus-visible:bg-secondary/10",
|
|
109
|
+
sub.isActive ? "bg-secondary/10 font-semibold text-secondary" : "text-primary/80 hover:bg-secondary/5 hover:text-secondary"
|
|
110
|
+
),
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", "aria-hidden": "true", children: sub.icon }),
|
|
113
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: sub.label })
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
sub.key
|
|
117
|
+
))
|
|
118
|
+
}
|
|
119
|
+
),
|
|
120
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
"button",
|
|
122
|
+
{
|
|
123
|
+
type: "button",
|
|
124
|
+
"aria-label": item.label,
|
|
125
|
+
"aria-haspopup": "menu",
|
|
126
|
+
"aria-expanded": isOpen,
|
|
127
|
+
title: item.label,
|
|
128
|
+
onClick: () => {
|
|
129
|
+
setOpenKey(isOpen ? null : item.key);
|
|
130
|
+
},
|
|
131
|
+
className: triggerClass,
|
|
132
|
+
children: content
|
|
133
|
+
}
|
|
134
|
+
)
|
|
135
|
+
] }, item.key);
|
|
136
|
+
}
|
|
137
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
+
"a",
|
|
139
|
+
{
|
|
140
|
+
href: item.href,
|
|
141
|
+
"aria-label": item.label,
|
|
142
|
+
"aria-current": item.isActive ? "page" : void 0,
|
|
143
|
+
title: item.label,
|
|
144
|
+
onClick: onNavigate ? (event) => {
|
|
145
|
+
event.preventDefault();
|
|
146
|
+
onNavigate(item);
|
|
147
|
+
} : void 0,
|
|
148
|
+
className: triggerClass,
|
|
149
|
+
children: content
|
|
150
|
+
},
|
|
151
|
+
item.key
|
|
152
|
+
);
|
|
153
|
+
})
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
FloatingDock.displayName = "FloatingDock";
|
|
159
|
+
|
|
160
|
+
exports.FloatingDock = FloatingDock;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
|
+
/** Sous-item d'un menu de dock (ex: choix de carte). Rendu en `<a href>` crawlable. */
|
|
4
|
+
interface FloatingDockMenuItem {
|
|
5
|
+
/** Identifiant stable. */
|
|
6
|
+
key: string;
|
|
7
|
+
/** Libellé affiché dans le menu. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Icône (dimensionnée par l'appelant). */
|
|
10
|
+
icon: React.ReactNode;
|
|
11
|
+
/** Destination (crawlable même si `onNavigate` intercepte). */
|
|
12
|
+
href: string;
|
|
13
|
+
/** Marque l'entrée comme courante (surbrillance). */
|
|
14
|
+
isActive?: boolean;
|
|
15
|
+
}
|
|
3
16
|
interface FloatingDockItem {
|
|
4
17
|
/** Identifiant stable de l'item. */
|
|
5
18
|
key: string;
|
|
@@ -11,6 +24,12 @@ interface FloatingDockItem {
|
|
|
11
24
|
href: string;
|
|
12
25
|
/** Item courant → bulle colorée + label visible. */
|
|
13
26
|
isActive?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Sous-menu optionnel. Quand fourni, l'item devient un déclencheur : le tap
|
|
29
|
+
* ouvre un petit popover AU-DESSUS du dock listant ces entrées (au lieu de
|
|
30
|
+
* naviguer). `href` sert de repli crawlable/accessible.
|
|
31
|
+
*/
|
|
32
|
+
menuItems?: FloatingDockMenuItem[];
|
|
14
33
|
}
|
|
15
34
|
interface FloatingDockProps {
|
|
16
35
|
/** Items de navigation (3 à 5 recommandés). */
|
|
@@ -20,11 +39,11 @@ interface FloatingDockProps {
|
|
|
20
39
|
/** Libellé ARIA de la navigation. */
|
|
21
40
|
ariaLabel?: string;
|
|
22
41
|
/**
|
|
23
|
-
* Intercepte le clic d'un item (ex: navigation client Next,
|
|
24
|
-
* Quand fourni, le `preventDefault` par défaut est appliqué
|
|
25
|
-
* l'appelant gère lui-même la navigation.
|
|
42
|
+
* Intercepte le clic d'un item ou d'un sous-item (ex: navigation client Next,
|
|
43
|
+
* redirection login). Quand fourni, le `preventDefault` par défaut est appliqué
|
|
44
|
+
* avant l'appel — l'appelant gère lui-même la navigation.
|
|
26
45
|
*/
|
|
27
|
-
onNavigate?: (item: FloatingDockItem) => void;
|
|
46
|
+
onNavigate?: (item: FloatingDockItem | FloatingDockMenuItem) => void;
|
|
28
47
|
}
|
|
29
48
|
/**
|
|
30
49
|
* Barre de navigation flottante mobile — « dock » à bulle active.
|
|
@@ -37,8 +56,10 @@ interface FloatingDockProps {
|
|
|
37
56
|
* - Item inactif : icône seule, cible tap 44px minimum.
|
|
38
57
|
* - Item actif : bulle colorée (token `secondary`) + label qui apparaît via une
|
|
39
58
|
* transition de largeur.
|
|
59
|
+
* - Item avec `menuItems` : agit comme déclencheur d'un popover ouvrant AU-DESSUS
|
|
60
|
+
* du dock (choix de sous-destinations). Ferme au tap extérieur / Échap.
|
|
40
61
|
* - Rendu en `<a href>` (crawlable / accessible), interceptable par `onNavigate`.
|
|
41
62
|
*/
|
|
42
63
|
declare const FloatingDock: React.ForwardRefExoticComponent<FloatingDockProps & React.RefAttributes<HTMLElement>>;
|
|
43
64
|
|
|
44
|
-
export { FloatingDock, type FloatingDockItem, type FloatingDockProps };
|
|
65
|
+
export { FloatingDock, type FloatingDockItem, type FloatingDockMenuItem, type FloatingDockProps };
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
|
+
/** Sous-item d'un menu de dock (ex: choix de carte). Rendu en `<a href>` crawlable. */
|
|
4
|
+
interface FloatingDockMenuItem {
|
|
5
|
+
/** Identifiant stable. */
|
|
6
|
+
key: string;
|
|
7
|
+
/** Libellé affiché dans le menu. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Icône (dimensionnée par l'appelant). */
|
|
10
|
+
icon: React.ReactNode;
|
|
11
|
+
/** Destination (crawlable même si `onNavigate` intercepte). */
|
|
12
|
+
href: string;
|
|
13
|
+
/** Marque l'entrée comme courante (surbrillance). */
|
|
14
|
+
isActive?: boolean;
|
|
15
|
+
}
|
|
3
16
|
interface FloatingDockItem {
|
|
4
17
|
/** Identifiant stable de l'item. */
|
|
5
18
|
key: string;
|
|
@@ -11,6 +24,12 @@ interface FloatingDockItem {
|
|
|
11
24
|
href: string;
|
|
12
25
|
/** Item courant → bulle colorée + label visible. */
|
|
13
26
|
isActive?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Sous-menu optionnel. Quand fourni, l'item devient un déclencheur : le tap
|
|
29
|
+
* ouvre un petit popover AU-DESSUS du dock listant ces entrées (au lieu de
|
|
30
|
+
* naviguer). `href` sert de repli crawlable/accessible.
|
|
31
|
+
*/
|
|
32
|
+
menuItems?: FloatingDockMenuItem[];
|
|
14
33
|
}
|
|
15
34
|
interface FloatingDockProps {
|
|
16
35
|
/** Items de navigation (3 à 5 recommandés). */
|
|
@@ -20,11 +39,11 @@ interface FloatingDockProps {
|
|
|
20
39
|
/** Libellé ARIA de la navigation. */
|
|
21
40
|
ariaLabel?: string;
|
|
22
41
|
/**
|
|
23
|
-
* Intercepte le clic d'un item (ex: navigation client Next,
|
|
24
|
-
* Quand fourni, le `preventDefault` par défaut est appliqué
|
|
25
|
-
* l'appelant gère lui-même la navigation.
|
|
42
|
+
* Intercepte le clic d'un item ou d'un sous-item (ex: navigation client Next,
|
|
43
|
+
* redirection login). Quand fourni, le `preventDefault` par défaut est appliqué
|
|
44
|
+
* avant l'appel — l'appelant gère lui-même la navigation.
|
|
26
45
|
*/
|
|
27
|
-
onNavigate?: (item: FloatingDockItem) => void;
|
|
46
|
+
onNavigate?: (item: FloatingDockItem | FloatingDockMenuItem) => void;
|
|
28
47
|
}
|
|
29
48
|
/**
|
|
30
49
|
* Barre de navigation flottante mobile — « dock » à bulle active.
|
|
@@ -37,8 +56,10 @@ interface FloatingDockProps {
|
|
|
37
56
|
* - Item inactif : icône seule, cible tap 44px minimum.
|
|
38
57
|
* - Item actif : bulle colorée (token `secondary`) + label qui apparaît via une
|
|
39
58
|
* transition de largeur.
|
|
59
|
+
* - Item avec `menuItems` : agit comme déclencheur d'un popover ouvrant AU-DESSUS
|
|
60
|
+
* du dock (choix de sous-destinations). Ferme au tap extérieur / Échap.
|
|
40
61
|
* - Rendu en `<a href>` (crawlable / accessible), interceptable par `onNavigate`.
|
|
41
62
|
*/
|
|
42
63
|
declare const FloatingDock: React.ForwardRefExoticComponent<FloatingDockProps & React.RefAttributes<HTMLElement>>;
|
|
43
64
|
|
|
44
|
-
export { FloatingDock, type FloatingDockItem, type FloatingDockProps };
|
|
65
|
+
export { FloatingDock, type FloatingDockItem, type FloatingDockMenuItem, type FloatingDockProps };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkZCQJN4IT_js = require('../../chunk-ZCQJN4IT.js');
|
|
4
4
|
require('../../chunk-ADIDI7AJ.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "FloatingDock", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkZCQJN4IT_js.FloatingDock; }
|
|
11
11
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { FloatingDock } from '../../chunk-
|
|
1
|
+
export { FloatingDock } from '../../chunk-P2SGBTKS.mjs';
|
|
2
2
|
import '../../chunk-IMKLN273.mjs';
|
package/dist/index.d.mts
CHANGED
|
@@ -21,7 +21,7 @@ export { EmptyState, EmptyStateProps } from './components/EmptyState/index.mjs';
|
|
|
21
21
|
export { Stepper, StepperProps, StepperStep } from './components/Stepper/index.mjs';
|
|
22
22
|
export { Sidebar, SidebarItem, SidebarProps } from './components/Sidebar/index.mjs';
|
|
23
23
|
export { BottomNavBar, BottomNavBarProps, BottomNavItem } from './components/BottomNavBar/index.mjs';
|
|
24
|
-
export { FloatingDock, FloatingDockItem, FloatingDockProps } from './components/FloatingDock/index.mjs';
|
|
24
|
+
export { FloatingDock, FloatingDockItem, FloatingDockMenuItem, FloatingDockProps } from './components/FloatingDock/index.mjs';
|
|
25
25
|
export { SegmentedControl, SegmentedControlOption, SegmentedControlProps } from './components/SegmentedControl/index.mjs';
|
|
26
26
|
export { Drawer, DrawerProps } from './components/Drawer/index.mjs';
|
|
27
27
|
export { TabItem, Tabs, TabsProps } from './components/Tabs/index.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export { EmptyState, EmptyStateProps } from './components/EmptyState/index.js';
|
|
|
21
21
|
export { Stepper, StepperProps, StepperStep } from './components/Stepper/index.js';
|
|
22
22
|
export { Sidebar, SidebarItem, SidebarProps } from './components/Sidebar/index.js';
|
|
23
23
|
export { BottomNavBar, BottomNavBarProps, BottomNavItem } from './components/BottomNavBar/index.js';
|
|
24
|
-
export { FloatingDock, FloatingDockItem, FloatingDockProps } from './components/FloatingDock/index.js';
|
|
24
|
+
export { FloatingDock, FloatingDockItem, FloatingDockMenuItem, FloatingDockProps } from './components/FloatingDock/index.js';
|
|
25
25
|
export { SegmentedControl, SegmentedControlOption, SegmentedControlProps } from './components/SegmentedControl/index.js';
|
|
26
26
|
export { Drawer, DrawerProps } from './components/Drawer/index.js';
|
|
27
27
|
export { TabItem, Tabs, TabsProps } from './components/Tabs/index.js';
|
package/dist/index.js
CHANGED
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkL7OYR6U3_js = require('./chunk-L7OYR6U3.js');
|
|
4
4
|
var chunkVTELEOT7_js = require('./chunk-VTELEOT7.js');
|
|
5
|
-
var chunkDTIYZ3TQ_js = require('./chunk-DTIYZ3TQ.js');
|
|
6
|
-
var chunkN3JU7JS7_js = require('./chunk-N3JU7JS7.js');
|
|
7
5
|
var chunkE6ZNND75_js = require('./chunk-E6ZNND75.js');
|
|
6
|
+
var chunkN3JU7JS7_js = require('./chunk-N3JU7JS7.js');
|
|
7
|
+
var chunkDTIYZ3TQ_js = require('./chunk-DTIYZ3TQ.js');
|
|
8
8
|
var chunkXHRDPJTF_js = require('./chunk-XHRDPJTF.js');
|
|
9
9
|
var chunkTT7L3ZU7_js = require('./chunk-TT7L3ZU7.js');
|
|
10
10
|
var chunkDFXXGKMI_js = require('./chunk-DFXXGKMI.js');
|
|
11
|
-
var chunkDS4LM7OS_js = require('./chunk-DS4LM7OS.js');
|
|
12
11
|
var chunk3VU6TPAT_js = require('./chunk-3VU6TPAT.js');
|
|
13
12
|
var chunkI4S3R6C6_js = require('./chunk-I4S3R6C6.js');
|
|
14
13
|
var chunk762LQMWP_js = require('./chunk-762LQMWP.js');
|
|
@@ -16,33 +15,34 @@ var chunk7IJOHVNJ_js = require('./chunk-7IJOHVNJ.js');
|
|
|
16
15
|
var chunkGXKON34B_js = require('./chunk-GXKON34B.js');
|
|
17
16
|
var chunkTZHT7NZU_js = require('./chunk-TZHT7NZU.js');
|
|
18
17
|
var chunk3JM2X4I2_js = require('./chunk-3JM2X4I2.js');
|
|
18
|
+
var chunkNCU5PY34_js = require('./chunk-NCU5PY34.js');
|
|
19
19
|
var chunkHS3MAW3G_js = require('./chunk-HS3MAW3G.js');
|
|
20
20
|
var chunkQWDKSY6Y_js = require('./chunk-QWDKSY6Y.js');
|
|
21
21
|
var chunk3R7PT3JG_js = require('./chunk-3R7PT3JG.js');
|
|
22
|
+
var chunkDS4LM7OS_js = require('./chunk-DS4LM7OS.js');
|
|
22
23
|
var chunkWXSBKARZ_js = require('./chunk-WXSBKARZ.js');
|
|
23
|
-
var chunkNCU5PY34_js = require('./chunk-NCU5PY34.js');
|
|
24
24
|
var chunkTE4WHZ4Q_js = require('./chunk-TE4WHZ4Q.js');
|
|
25
25
|
var chunkHN6B4TAW_js = require('./chunk-HN6B4TAW.js');
|
|
26
26
|
var chunkKZSGVMUG_js = require('./chunk-KZSGVMUG.js');
|
|
27
|
-
var chunkSCGN5H6D_js = require('./chunk-SCGN5H6D.js');
|
|
28
27
|
var chunkNBDPT3XQ_js = require('./chunk-NBDPT3XQ.js');
|
|
28
|
+
var chunkSCGN5H6D_js = require('./chunk-SCGN5H6D.js');
|
|
29
29
|
var chunkB4LR4H6R_js = require('./chunk-B4LR4H6R.js');
|
|
30
|
-
var chunkPRDIS2VR_js = require('./chunk-PRDIS2VR.js');
|
|
31
30
|
var chunkPG4I4NWO_js = require('./chunk-PG4I4NWO.js');
|
|
31
|
+
var chunkPRDIS2VR_js = require('./chunk-PRDIS2VR.js');
|
|
32
32
|
var chunkIRKM5UF4_js = require('./chunk-IRKM5UF4.js');
|
|
33
33
|
var chunkECVKFE6U_js = require('./chunk-ECVKFE6U.js');
|
|
34
34
|
var chunkYN4HPIRC_js = require('./chunk-YN4HPIRC.js');
|
|
35
35
|
var chunkMKOKWME3_js = require('./chunk-MKOKWME3.js');
|
|
36
36
|
var chunkDLOHAW74_js = require('./chunk-DLOHAW74.js');
|
|
37
|
-
var chunkU3XWNFHH_js = require('./chunk-U3XWNFHH.js');
|
|
38
37
|
var chunk77WKG2D7_js = require('./chunk-77WKG2D7.js');
|
|
38
|
+
var chunkU3XWNFHH_js = require('./chunk-U3XWNFHH.js');
|
|
39
39
|
var chunkW7DZZS6L_js = require('./chunk-W7DZZS6L.js');
|
|
40
|
+
var chunkIEHX4DU6_js = require('./chunk-IEHX4DU6.js');
|
|
40
41
|
var chunkTDGU5Y2P_js = require('./chunk-TDGU5Y2P.js');
|
|
41
42
|
var chunkS5TLUDNM_js = require('./chunk-S5TLUDNM.js');
|
|
42
|
-
var chunkIEHX4DU6_js = require('./chunk-IEHX4DU6.js');
|
|
43
43
|
var chunk7W3TFPIF_js = require('./chunk-7W3TFPIF.js');
|
|
44
|
-
var chunkS732LTPT_js = require('./chunk-S732LTPT.js');
|
|
45
44
|
var chunkTJDHGNMR_js = require('./chunk-TJDHGNMR.js');
|
|
45
|
+
var chunkZCQJN4IT_js = require('./chunk-ZCQJN4IT.js');
|
|
46
46
|
var chunkC4RZBOKH_js = require('./chunk-C4RZBOKH.js');
|
|
47
47
|
var chunkKOO5ZXLD_js = require('./chunk-KOO5ZXLD.js');
|
|
48
48
|
var chunkP7GAKOCX_js = require('./chunk-P7GAKOCX.js');
|
|
@@ -54,17 +54,17 @@ var chunkXXC2YD3D_js = require('./chunk-XXC2YD3D.js');
|
|
|
54
54
|
var chunkVWFY24XF_js = require('./chunk-VWFY24XF.js');
|
|
55
55
|
var chunkT5FLQQP6_js = require('./chunk-T5FLQQP6.js');
|
|
56
56
|
var chunkNHB2TI2B_js = require('./chunk-NHB2TI2B.js');
|
|
57
|
-
var chunkZ5S7LHMY_js = require('./chunk-Z5S7LHMY.js');
|
|
58
57
|
var chunk6EG6EAHW_js = require('./chunk-6EG6EAHW.js');
|
|
59
58
|
var chunkPND5YKFN_js = require('./chunk-PND5YKFN.js');
|
|
60
|
-
var
|
|
59
|
+
var chunkZ5S7LHMY_js = require('./chunk-Z5S7LHMY.js');
|
|
61
60
|
var chunkYZTVHCLK_js = require('./chunk-YZTVHCLK.js');
|
|
62
61
|
var chunkZAUYE2EI_js = require('./chunk-ZAUYE2EI.js');
|
|
62
|
+
var chunkH3JNRTAI_js = require('./chunk-H3JNRTAI.js');
|
|
63
63
|
var chunkMY6BYO5F_js = require('./chunk-MY6BYO5F.js');
|
|
64
64
|
var chunkMCF3EQTV_js = require('./chunk-MCF3EQTV.js');
|
|
65
|
-
var chunkWBRVUWGC_js = require('./chunk-WBRVUWGC.js');
|
|
66
65
|
var chunkWXEZA6NE_js = require('./chunk-WXEZA6NE.js');
|
|
67
66
|
var chunkEY4ZIR3P_js = require('./chunk-EY4ZIR3P.js');
|
|
67
|
+
var chunkWBRVUWGC_js = require('./chunk-WBRVUWGC.js');
|
|
68
68
|
var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
|
|
69
69
|
var React = require('react');
|
|
70
70
|
var classVarianceAuthority = require('class-variance-authority');
|
|
@@ -501,17 +501,17 @@ Object.defineProperty(exports, "toastVariants", {
|
|
|
501
501
|
enumerable: true,
|
|
502
502
|
get: function () { return chunkVTELEOT7_js.toastVariants; }
|
|
503
503
|
});
|
|
504
|
-
Object.defineProperty(exports, "
|
|
504
|
+
Object.defineProperty(exports, "Tooltip", {
|
|
505
505
|
enumerable: true,
|
|
506
|
-
get: function () { return
|
|
506
|
+
get: function () { return chunkE6ZNND75_js.Tooltip; }
|
|
507
507
|
});
|
|
508
508
|
Object.defineProperty(exports, "VerticalMarquee", {
|
|
509
509
|
enumerable: true,
|
|
510
510
|
get: function () { return chunkN3JU7JS7_js.VerticalMarquee; }
|
|
511
511
|
});
|
|
512
|
-
Object.defineProperty(exports, "
|
|
512
|
+
Object.defineProperty(exports, "Toggle", {
|
|
513
513
|
enumerable: true,
|
|
514
|
-
get: function () { return
|
|
514
|
+
get: function () { return chunkDTIYZ3TQ_js.Toggle; }
|
|
515
515
|
});
|
|
516
516
|
Object.defineProperty(exports, "Spinner", {
|
|
517
517
|
enumerable: true,
|
|
@@ -533,10 +533,6 @@ Object.defineProperty(exports, "statusBadgeVariants", {
|
|
|
533
533
|
enumerable: true,
|
|
534
534
|
get: function () { return chunkDFXXGKMI_js.statusBadgeVariants; }
|
|
535
535
|
});
|
|
536
|
-
Object.defineProperty(exports, "Sidebar", {
|
|
537
|
-
enumerable: true,
|
|
538
|
-
get: function () { return chunkDS4LM7OS_js.Sidebar; }
|
|
539
|
-
});
|
|
540
536
|
Object.defineProperty(exports, "Stepper", {
|
|
541
537
|
enumerable: true,
|
|
542
538
|
get: function () { return chunk3VU6TPAT_js.Stepper; }
|
|
@@ -581,6 +577,22 @@ Object.defineProperty(exports, "RoomTypeCardSkeleton", {
|
|
|
581
577
|
enumerable: true,
|
|
582
578
|
get: function () { return chunk3JM2X4I2_js.RoomTypeCardSkeleton; }
|
|
583
579
|
});
|
|
580
|
+
Object.defineProperty(exports, "Skeleton", {
|
|
581
|
+
enumerable: true,
|
|
582
|
+
get: function () { return chunkNCU5PY34_js.Skeleton; }
|
|
583
|
+
});
|
|
584
|
+
Object.defineProperty(exports, "SkeletonCircle", {
|
|
585
|
+
enumerable: true,
|
|
586
|
+
get: function () { return chunkNCU5PY34_js.SkeletonCircle; }
|
|
587
|
+
});
|
|
588
|
+
Object.defineProperty(exports, "SkeletonImage", {
|
|
589
|
+
enumerable: true,
|
|
590
|
+
get: function () { return chunkNCU5PY34_js.SkeletonImage; }
|
|
591
|
+
});
|
|
592
|
+
Object.defineProperty(exports, "SkeletonText", {
|
|
593
|
+
enumerable: true,
|
|
594
|
+
get: function () { return chunkNCU5PY34_js.SkeletonText; }
|
|
595
|
+
});
|
|
584
596
|
Object.defineProperty(exports, "SearchBar", {
|
|
585
597
|
enumerable: true,
|
|
586
598
|
get: function () { return chunkHS3MAW3G_js.SearchBar; }
|
|
@@ -597,6 +609,10 @@ Object.defineProperty(exports, "selectVariants", {
|
|
|
597
609
|
enumerable: true,
|
|
598
610
|
get: function () { return chunk3R7PT3JG_js.selectVariants; }
|
|
599
611
|
});
|
|
612
|
+
Object.defineProperty(exports, "Sidebar", {
|
|
613
|
+
enumerable: true,
|
|
614
|
+
get: function () { return chunkDS4LM7OS_js.Sidebar; }
|
|
615
|
+
});
|
|
600
616
|
Object.defineProperty(exports, "SignInCallout", {
|
|
601
617
|
enumerable: true,
|
|
602
618
|
get: function () { return chunkWXSBKARZ_js.SignInCallout; }
|
|
@@ -605,22 +621,6 @@ Object.defineProperty(exports, "signInCalloutVariants", {
|
|
|
605
621
|
enumerable: true,
|
|
606
622
|
get: function () { return chunkWXSBKARZ_js.signInCalloutVariants; }
|
|
607
623
|
});
|
|
608
|
-
Object.defineProperty(exports, "Skeleton", {
|
|
609
|
-
enumerable: true,
|
|
610
|
-
get: function () { return chunkNCU5PY34_js.Skeleton; }
|
|
611
|
-
});
|
|
612
|
-
Object.defineProperty(exports, "SkeletonCircle", {
|
|
613
|
-
enumerable: true,
|
|
614
|
-
get: function () { return chunkNCU5PY34_js.SkeletonCircle; }
|
|
615
|
-
});
|
|
616
|
-
Object.defineProperty(exports, "SkeletonImage", {
|
|
617
|
-
enumerable: true,
|
|
618
|
-
get: function () { return chunkNCU5PY34_js.SkeletonImage; }
|
|
619
|
-
});
|
|
620
|
-
Object.defineProperty(exports, "SkeletonText", {
|
|
621
|
-
enumerable: true,
|
|
622
|
-
get: function () { return chunkNCU5PY34_js.SkeletonText; }
|
|
623
|
-
});
|
|
624
624
|
Object.defineProperty(exports, "LoadingOverlay", {
|
|
625
625
|
enumerable: true,
|
|
626
626
|
get: function () { return chunkTE4WHZ4Q_js.LoadingOverlay; }
|
|
@@ -633,25 +633,17 @@ Object.defineProperty(exports, "MobileMenu", {
|
|
|
633
633
|
enumerable: true,
|
|
634
634
|
get: function () { return chunkKZSGVMUG_js.MobileMenu; }
|
|
635
635
|
});
|
|
636
|
-
Object.defineProperty(exports, "Pagination", {
|
|
637
|
-
enumerable: true,
|
|
638
|
-
get: function () { return chunkSCGN5H6D_js.Pagination; }
|
|
639
|
-
});
|
|
640
636
|
Object.defineProperty(exports, "Modal", {
|
|
641
637
|
enumerable: true,
|
|
642
638
|
get: function () { return chunkNBDPT3XQ_js.Modal; }
|
|
643
639
|
});
|
|
644
|
-
Object.defineProperty(exports, "
|
|
645
|
-
enumerable: true,
|
|
646
|
-
get: function () { return chunkB4LR4H6R_js.PriceDisplay; }
|
|
647
|
-
});
|
|
648
|
-
Object.defineProperty(exports, "PromoBanner", {
|
|
640
|
+
Object.defineProperty(exports, "Pagination", {
|
|
649
641
|
enumerable: true,
|
|
650
|
-
get: function () { return
|
|
642
|
+
get: function () { return chunkSCGN5H6D_js.Pagination; }
|
|
651
643
|
});
|
|
652
|
-
Object.defineProperty(exports, "
|
|
644
|
+
Object.defineProperty(exports, "PriceDisplay", {
|
|
653
645
|
enumerable: true,
|
|
654
|
-
get: function () { return
|
|
646
|
+
get: function () { return chunkB4LR4H6R_js.PriceDisplay; }
|
|
655
647
|
});
|
|
656
648
|
Object.defineProperty(exports, "ProgressBar", {
|
|
657
649
|
enumerable: true,
|
|
@@ -665,6 +657,14 @@ Object.defineProperty(exports, "progressFillVariants", {
|
|
|
665
657
|
enumerable: true,
|
|
666
658
|
get: function () { return chunkPG4I4NWO_js.progressFillVariants; }
|
|
667
659
|
});
|
|
660
|
+
Object.defineProperty(exports, "PromoBanner", {
|
|
661
|
+
enumerable: true,
|
|
662
|
+
get: function () { return chunkPRDIS2VR_js.PromoBanner; }
|
|
663
|
+
});
|
|
664
|
+
Object.defineProperty(exports, "promoBannerVariants", {
|
|
665
|
+
enumerable: true,
|
|
666
|
+
get: function () { return chunkPRDIS2VR_js.promoBannerVariants; }
|
|
667
|
+
});
|
|
668
668
|
Object.defineProperty(exports, "Header", {
|
|
669
669
|
enumerable: true,
|
|
670
670
|
get: function () { return chunkIRKM5UF4_js.Header; }
|
|
@@ -689,10 +689,6 @@ Object.defineProperty(exports, "ImageWithFallback", {
|
|
|
689
689
|
enumerable: true,
|
|
690
690
|
get: function () { return chunkDLOHAW74_js.ImageWithFallback; }
|
|
691
691
|
});
|
|
692
|
-
Object.defineProperty(exports, "Lightbox", {
|
|
693
|
-
enumerable: true,
|
|
694
|
-
get: function () { return chunkU3XWNFHH_js.Lightbox; }
|
|
695
|
-
});
|
|
696
692
|
Object.defineProperty(exports, "Input", {
|
|
697
693
|
enumerable: true,
|
|
698
694
|
get: function () { return chunk77WKG2D7_js.Input; }
|
|
@@ -701,10 +697,18 @@ Object.defineProperty(exports, "inputVariants", {
|
|
|
701
697
|
enumerable: true,
|
|
702
698
|
get: function () { return chunk77WKG2D7_js.inputVariants; }
|
|
703
699
|
});
|
|
700
|
+
Object.defineProperty(exports, "Lightbox", {
|
|
701
|
+
enumerable: true,
|
|
702
|
+
get: function () { return chunkU3XWNFHH_js.Lightbox; }
|
|
703
|
+
});
|
|
704
704
|
Object.defineProperty(exports, "LinkCard", {
|
|
705
705
|
enumerable: true,
|
|
706
706
|
get: function () { return chunkW7DZZS6L_js.LinkCard; }
|
|
707
707
|
});
|
|
708
|
+
Object.defineProperty(exports, "EmptyState", {
|
|
709
|
+
enumerable: true,
|
|
710
|
+
get: function () { return chunkIEHX4DU6_js.EmptyState; }
|
|
711
|
+
});
|
|
708
712
|
Object.defineProperty(exports, "DualRangeSlider", {
|
|
709
713
|
enumerable: true,
|
|
710
714
|
get: function () { return chunkTDGU5Y2P_js.DualRangeSlider; }
|
|
@@ -713,22 +717,18 @@ Object.defineProperty(exports, "ErrorBoundary", {
|
|
|
713
717
|
enumerable: true,
|
|
714
718
|
get: function () { return chunkS5TLUDNM_js.ErrorBoundary; }
|
|
715
719
|
});
|
|
716
|
-
Object.defineProperty(exports, "EmptyState", {
|
|
717
|
-
enumerable: true,
|
|
718
|
-
get: function () { return chunkIEHX4DU6_js.EmptyState; }
|
|
719
|
-
});
|
|
720
720
|
Object.defineProperty(exports, "FilterAccordion", {
|
|
721
721
|
enumerable: true,
|
|
722
722
|
get: function () { return chunk7W3TFPIF_js.FilterAccordion; }
|
|
723
723
|
});
|
|
724
|
-
Object.defineProperty(exports, "FloatingDock", {
|
|
725
|
-
enumerable: true,
|
|
726
|
-
get: function () { return chunkS732LTPT_js.FloatingDock; }
|
|
727
|
-
});
|
|
728
724
|
Object.defineProperty(exports, "FilterPill", {
|
|
729
725
|
enumerable: true,
|
|
730
726
|
get: function () { return chunkTJDHGNMR_js.FilterPill; }
|
|
731
727
|
});
|
|
728
|
+
Object.defineProperty(exports, "FloatingDock", {
|
|
729
|
+
enumerable: true,
|
|
730
|
+
get: function () { return chunkZCQJN4IT_js.FloatingDock; }
|
|
731
|
+
});
|
|
732
732
|
Object.defineProperty(exports, "Footer", {
|
|
733
733
|
enumerable: true,
|
|
734
734
|
get: function () { return chunkC4RZBOKH_js.Footer; }
|
|
@@ -781,14 +781,6 @@ Object.defineProperty(exports, "autocompleteInputVariants", {
|
|
|
781
781
|
enumerable: true,
|
|
782
782
|
get: function () { return chunkNHB2TI2B_js.autocompleteInputVariants; }
|
|
783
783
|
});
|
|
784
|
-
Object.defineProperty(exports, "Badge", {
|
|
785
|
-
enumerable: true,
|
|
786
|
-
get: function () { return chunkZ5S7LHMY_js.Badge; }
|
|
787
|
-
});
|
|
788
|
-
Object.defineProperty(exports, "badgeVariants", {
|
|
789
|
-
enumerable: true,
|
|
790
|
-
get: function () { return chunkZ5S7LHMY_js.badgeVariants; }
|
|
791
|
-
});
|
|
792
784
|
Object.defineProperty(exports, "Banner", {
|
|
793
785
|
enumerable: true,
|
|
794
786
|
get: function () { return chunk6EG6EAHW_js.Banner; }
|
|
@@ -801,13 +793,13 @@ Object.defineProperty(exports, "BottomNavBar", {
|
|
|
801
793
|
enumerable: true,
|
|
802
794
|
get: function () { return chunkPND5YKFN_js.BottomNavBar; }
|
|
803
795
|
});
|
|
804
|
-
Object.defineProperty(exports, "
|
|
796
|
+
Object.defineProperty(exports, "Badge", {
|
|
805
797
|
enumerable: true,
|
|
806
|
-
get: function () { return
|
|
798
|
+
get: function () { return chunkZ5S7LHMY_js.Badge; }
|
|
807
799
|
});
|
|
808
|
-
Object.defineProperty(exports, "
|
|
800
|
+
Object.defineProperty(exports, "badgeVariants", {
|
|
809
801
|
enumerable: true,
|
|
810
|
-
get: function () { return
|
|
802
|
+
get: function () { return chunkZ5S7LHMY_js.badgeVariants; }
|
|
811
803
|
});
|
|
812
804
|
Object.defineProperty(exports, "Button", {
|
|
813
805
|
enumerable: true,
|
|
@@ -845,6 +837,14 @@ Object.defineProperty(exports, "cardVariants", {
|
|
|
845
837
|
enumerable: true,
|
|
846
838
|
get: function () { return chunkZAUYE2EI_js.cardVariants; }
|
|
847
839
|
});
|
|
840
|
+
Object.defineProperty(exports, "Breadcrumb", {
|
|
841
|
+
enumerable: true,
|
|
842
|
+
get: function () { return chunkH3JNRTAI_js.Breadcrumb; }
|
|
843
|
+
});
|
|
844
|
+
Object.defineProperty(exports, "breadcrumbVariants", {
|
|
845
|
+
enumerable: true,
|
|
846
|
+
get: function () { return chunkH3JNRTAI_js.breadcrumbVariants; }
|
|
847
|
+
});
|
|
848
848
|
Object.defineProperty(exports, "CardList", {
|
|
849
849
|
enumerable: true,
|
|
850
850
|
get: function () { return chunkMY6BYO5F_js.CardList; }
|
|
@@ -853,10 +853,6 @@ Object.defineProperty(exports, "Accordion", {
|
|
|
853
853
|
enumerable: true,
|
|
854
854
|
get: function () { return chunkMCF3EQTV_js.Accordion; }
|
|
855
855
|
});
|
|
856
|
-
Object.defineProperty(exports, "Alert", {
|
|
857
|
-
enumerable: true,
|
|
858
|
-
get: function () { return chunkWBRVUWGC_js.Alert; }
|
|
859
|
-
});
|
|
860
856
|
Object.defineProperty(exports, "AnchorTabs", {
|
|
861
857
|
enumerable: true,
|
|
862
858
|
get: function () { return chunkWXEZA6NE_js.AnchorTabs; }
|
|
@@ -865,6 +861,10 @@ Object.defineProperty(exports, "Avatar", {
|
|
|
865
861
|
enumerable: true,
|
|
866
862
|
get: function () { return chunkEY4ZIR3P_js.Avatar; }
|
|
867
863
|
});
|
|
864
|
+
Object.defineProperty(exports, "Alert", {
|
|
865
|
+
enumerable: true,
|
|
866
|
+
get: function () { return chunkWBRVUWGC_js.Alert; }
|
|
867
|
+
});
|
|
868
868
|
Object.defineProperty(exports, "cn", {
|
|
869
869
|
enumerable: true,
|
|
870
870
|
get: function () { return chunkADIDI7AJ_js.cn; }
|
package/dist/index.mjs
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export { Textarea, textareaVariants } from './chunk-ZZ4EWC53.mjs';
|
|
2
2
|
export { Toast, toastVariants } from './chunk-YVTUUNAX.mjs';
|
|
3
|
-
export { Toggle } from './chunk-2AB5ZHY5.mjs';
|
|
4
|
-
export { VerticalMarquee } from './chunk-JP5ZR2HI.mjs';
|
|
5
3
|
export { Tooltip } from './chunk-2MJTZ6RR.mjs';
|
|
4
|
+
export { VerticalMarquee } from './chunk-JP5ZR2HI.mjs';
|
|
5
|
+
export { Toggle } from './chunk-2AB5ZHY5.mjs';
|
|
6
6
|
export { Spinner, spinnerVariants } from './chunk-NCSFXSOZ.mjs';
|
|
7
7
|
export { StatCard } from './chunk-O2W7NR33.mjs';
|
|
8
8
|
export { StatusBadge, statusBadgeVariants } from './chunk-FZ7UNXSC.mjs';
|
|
9
|
-
export { Sidebar } from './chunk-MPL35D5G.mjs';
|
|
10
9
|
export { Stepper } from './chunk-2ASKBL63.mjs';
|
|
11
10
|
export { Switch, switchThumbVariants, switchTrackVariants } from './chunk-DMCMWOBJ.mjs';
|
|
12
11
|
export { Tabs } from './chunk-VOZPGXQD.mjs';
|
|
@@ -14,33 +13,34 @@ export { Tag, tagVariants } from './chunk-WOG6V7OW.mjs';
|
|
|
14
13
|
export { RadioGroup } from './chunk-F2BUMJYW.mjs';
|
|
15
14
|
export { Rating } from './chunk-SGDC4IVX.mjs';
|
|
16
15
|
export { RoomTypeCard, RoomTypeCardSkeleton } from './chunk-BFGRWOQM.mjs';
|
|
16
|
+
export { Skeleton, SkeletonCircle, SkeletonImage, SkeletonText } from './chunk-PAHSQMXV.mjs';
|
|
17
17
|
export { SearchBar } from './chunk-KQK7LFWM.mjs';
|
|
18
18
|
export { SegmentedControl } from './chunk-36Y7UU32.mjs';
|
|
19
19
|
export { Select, selectVariants } from './chunk-333YD5QI.mjs';
|
|
20
|
+
export { Sidebar } from './chunk-MPL35D5G.mjs';
|
|
20
21
|
export { SignInCallout, signInCalloutVariants } from './chunk-Z3KRMKHP.mjs';
|
|
21
|
-
export { Skeleton, SkeletonCircle, SkeletonImage, SkeletonText } from './chunk-PAHSQMXV.mjs';
|
|
22
22
|
export { LoadingOverlay } from './chunk-WVEJS2J2.mjs';
|
|
23
23
|
export { MegaMenu } from './chunk-EUEM2D5M.mjs';
|
|
24
24
|
export { MobileMenu } from './chunk-R4DC7XPP.mjs';
|
|
25
|
-
export { Pagination } from './chunk-XQVODPHL.mjs';
|
|
26
25
|
export { Modal } from './chunk-74B2EGKT.mjs';
|
|
26
|
+
export { Pagination } from './chunk-XQVODPHL.mjs';
|
|
27
27
|
export { PriceDisplay } from './chunk-REXLQTNE.mjs';
|
|
28
|
-
export { PromoBanner, promoBannerVariants } from './chunk-FNDR3WOZ.mjs';
|
|
29
28
|
export { ProgressBar, progressBarVariants, progressFillVariants } from './chunk-UGYMWWKT.mjs';
|
|
29
|
+
export { PromoBanner, promoBannerVariants } from './chunk-FNDR3WOZ.mjs';
|
|
30
30
|
export { Header } from './chunk-PPDKQ3FF.mjs';
|
|
31
31
|
export { HotelCard } from './chunk-XSSRFA5O.mjs';
|
|
32
32
|
export { IconBadge, iconBadgeVariants } from './chunk-I4WCNTNP.mjs';
|
|
33
33
|
export { ImageGallery } from './chunk-QU6ZRLKO.mjs';
|
|
34
34
|
export { ImageWithFallback } from './chunk-BUXVK2HE.mjs';
|
|
35
|
-
export { Lightbox } from './chunk-GBWVIY3C.mjs';
|
|
36
35
|
export { Input, inputVariants } from './chunk-GRG4USTC.mjs';
|
|
36
|
+
export { Lightbox } from './chunk-GBWVIY3C.mjs';
|
|
37
37
|
export { LinkCard } from './chunk-UYDZKAGZ.mjs';
|
|
38
|
+
export { EmptyState } from './chunk-OCUHCDAQ.mjs';
|
|
38
39
|
export { DualRangeSlider } from './chunk-ERL3WXNY.mjs';
|
|
39
40
|
export { ErrorBoundary } from './chunk-5257MWFI.mjs';
|
|
40
|
-
export { EmptyState } from './chunk-OCUHCDAQ.mjs';
|
|
41
41
|
export { FilterAccordion } from './chunk-VQVRKRSM.mjs';
|
|
42
|
-
export { FloatingDock } from './chunk-PBDPZTHK.mjs';
|
|
43
42
|
export { FilterPill } from './chunk-YKBASX5A.mjs';
|
|
43
|
+
export { FloatingDock } from './chunk-P2SGBTKS.mjs';
|
|
44
44
|
export { Footer } from './chunk-SZ3SV4SJ.mjs';
|
|
45
45
|
export { GuestPicker } from './chunk-EJ7LDW7E.mjs';
|
|
46
46
|
export { Carousel } from './chunk-OOPP4ES2.mjs';
|
|
@@ -52,17 +52,17 @@ export { Divider } from './chunk-E4B6LXK7.mjs';
|
|
|
52
52
|
export { Drawer } from './chunk-ZLF7IL3Y.mjs';
|
|
53
53
|
export { DropdownMenu } from './chunk-Q7BKR6O7.mjs';
|
|
54
54
|
export { Autocomplete, autocompleteInputVariants } from './chunk-B47HQHX3.mjs';
|
|
55
|
-
export { Badge, badgeVariants } from './chunk-XZU2SISM.mjs';
|
|
56
55
|
export { Banner, bannerVariants } from './chunk-LFIZX2S6.mjs';
|
|
57
56
|
export { BottomNavBar } from './chunk-UQRQZLMQ.mjs';
|
|
58
|
-
export {
|
|
57
|
+
export { Badge, badgeVariants } from './chunk-XZU2SISM.mjs';
|
|
59
58
|
export { Button, buttonVariants } from './chunk-4U5MNA3B.mjs';
|
|
60
59
|
export { Card, CardContent, CardDescription, CardImage, CardTitle, cardImageVariants, cardVariants } from './chunk-V5J2XLPD.mjs';
|
|
60
|
+
export { Breadcrumb, breadcrumbVariants } from './chunk-UKCH6RYL.mjs';
|
|
61
61
|
export { CardList } from './chunk-RJWHPHHX.mjs';
|
|
62
62
|
export { Accordion } from './chunk-NZ7GF6RF.mjs';
|
|
63
|
-
export { Alert } from './chunk-BQWVWK74.mjs';
|
|
64
63
|
export { AnchorTabs } from './chunk-M2H6QUAL.mjs';
|
|
65
64
|
export { Avatar } from './chunk-2POGTS27.mjs';
|
|
65
|
+
export { Alert } from './chunk-BQWVWK74.mjs';
|
|
66
66
|
import { cn } from './chunk-IMKLN273.mjs';
|
|
67
67
|
export { cn } from './chunk-IMKLN273.mjs';
|
|
68
68
|
import * as React from 'react';
|
package/package.json
CHANGED
package/dist/chunk-PBDPZTHK.mjs
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-IMKLN273.mjs';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
var FloatingDock = React.forwardRef(
|
|
6
|
-
({ items, className, ariaLabel = "Navigation rapide", onNavigate }, ref) => {
|
|
7
|
-
return /* @__PURE__ */ jsx(
|
|
8
|
-
"nav",
|
|
9
|
-
{
|
|
10
|
-
ref,
|
|
11
|
-
"aria-label": ariaLabel,
|
|
12
|
-
className: cn(
|
|
13
|
-
"inline-flex items-center gap-1 rounded-full border border-black/5 bg-white/95 px-2 py-2 shadow-[0_8px_30px_rgba(0,0,0,0.12)] backdrop-blur",
|
|
14
|
-
className
|
|
15
|
-
),
|
|
16
|
-
children: items.map((item) => /* @__PURE__ */ jsxs(
|
|
17
|
-
"a",
|
|
18
|
-
{
|
|
19
|
-
href: item.href,
|
|
20
|
-
"aria-label": item.label,
|
|
21
|
-
"aria-current": item.isActive ? "page" : void 0,
|
|
22
|
-
title: item.label,
|
|
23
|
-
onClick: onNavigate ? (event) => {
|
|
24
|
-
event.preventDefault();
|
|
25
|
-
onNavigate(item);
|
|
26
|
-
} : void 0,
|
|
27
|
-
className: cn(
|
|
28
|
-
"flex min-h-[44px] items-center justify-center rounded-full outline-none transition-colors focus-visible:ring-2 focus-visible:ring-secondary focus-visible:ring-offset-2",
|
|
29
|
-
item.isActive ? "bg-secondary px-4 text-white" : "w-11 text-primary/70 hover:bg-secondary/5 hover:text-secondary"
|
|
30
|
-
),
|
|
31
|
-
children: [
|
|
32
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0", "aria-hidden": "true", children: item.icon }),
|
|
33
|
-
/* @__PURE__ */ jsx(
|
|
34
|
-
"span",
|
|
35
|
-
{
|
|
36
|
-
className: cn(
|
|
37
|
-
"overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",
|
|
38
|
-
item.isActive ? "ml-2 max-w-[8rem] opacity-100" : "ml-0 max-w-0 opacity-0"
|
|
39
|
-
),
|
|
40
|
-
children: item.label
|
|
41
|
-
}
|
|
42
|
-
)
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
item.key
|
|
46
|
-
))
|
|
47
|
-
}
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
);
|
|
51
|
-
FloatingDock.displayName = "FloatingDock";
|
|
52
|
-
|
|
53
|
-
export { FloatingDock };
|
package/dist/chunk-S732LTPT.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
|
|
7
|
-
function _interopNamespace(e) {
|
|
8
|
-
if (e && e.__esModule) return e;
|
|
9
|
-
var n = Object.create(null);
|
|
10
|
-
if (e) {
|
|
11
|
-
Object.keys(e).forEach(function (k) {
|
|
12
|
-
if (k !== 'default') {
|
|
13
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return e[k]; }
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
n.default = e;
|
|
22
|
-
return Object.freeze(n);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
|
-
|
|
27
|
-
var FloatingDock = React__namespace.forwardRef(
|
|
28
|
-
({ items, className, ariaLabel = "Navigation rapide", onNavigate }, ref) => {
|
|
29
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
-
"nav",
|
|
31
|
-
{
|
|
32
|
-
ref,
|
|
33
|
-
"aria-label": ariaLabel,
|
|
34
|
-
className: chunkADIDI7AJ_js.cn(
|
|
35
|
-
"inline-flex items-center gap-1 rounded-full border border-black/5 bg-white/95 px-2 py-2 shadow-[0_8px_30px_rgba(0,0,0,0.12)] backdrop-blur",
|
|
36
|
-
className
|
|
37
|
-
),
|
|
38
|
-
children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
39
|
-
"a",
|
|
40
|
-
{
|
|
41
|
-
href: item.href,
|
|
42
|
-
"aria-label": item.label,
|
|
43
|
-
"aria-current": item.isActive ? "page" : void 0,
|
|
44
|
-
title: item.label,
|
|
45
|
-
onClick: onNavigate ? (event) => {
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
onNavigate(item);
|
|
48
|
-
} : void 0,
|
|
49
|
-
className: chunkADIDI7AJ_js.cn(
|
|
50
|
-
"flex min-h-[44px] items-center justify-center rounded-full outline-none transition-colors focus-visible:ring-2 focus-visible:ring-secondary focus-visible:ring-offset-2",
|
|
51
|
-
item.isActive ? "bg-secondary px-4 text-white" : "w-11 text-primary/70 hover:bg-secondary/5 hover:text-secondary"
|
|
52
|
-
),
|
|
53
|
-
children: [
|
|
54
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", "aria-hidden": "true", children: item.icon }),
|
|
55
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
-
"span",
|
|
57
|
-
{
|
|
58
|
-
className: chunkADIDI7AJ_js.cn(
|
|
59
|
-
"overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",
|
|
60
|
-
item.isActive ? "ml-2 max-w-[8rem] opacity-100" : "ml-0 max-w-0 opacity-0"
|
|
61
|
-
),
|
|
62
|
-
children: item.label
|
|
63
|
-
}
|
|
64
|
-
)
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
|
-
item.key
|
|
68
|
-
))
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
FloatingDock.displayName = "FloatingDock";
|
|
74
|
-
|
|
75
|
-
exports.FloatingDock = FloatingDock;
|