@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.
@@ -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, redirection login).
24
- * Quand fourni, le `preventDefault` par défaut est appliqué avant l'appel —
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, redirection login).
24
- * Quand fourni, le `preventDefault` par défaut est appliqué avant l'appel —
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 chunkS732LTPT_js = require('../../chunk-S732LTPT.js');
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 chunkS732LTPT_js.FloatingDock; }
10
+ get: function () { return chunkZCQJN4IT_js.FloatingDock; }
11
11
  });
@@ -1,2 +1,2 @@
1
- export { FloatingDock } from '../../chunk-PBDPZTHK.mjs';
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 chunkH3JNRTAI_js = require('./chunk-H3JNRTAI.js');
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, "Toggle", {
504
+ Object.defineProperty(exports, "Tooltip", {
505
505
  enumerable: true,
506
- get: function () { return chunkDTIYZ3TQ_js.Toggle; }
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, "Tooltip", {
512
+ Object.defineProperty(exports, "Toggle", {
513
513
  enumerable: true,
514
- get: function () { return chunkE6ZNND75_js.Tooltip; }
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, "PriceDisplay", {
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 chunkPRDIS2VR_js.PromoBanner; }
642
+ get: function () { return chunkSCGN5H6D_js.Pagination; }
651
643
  });
652
- Object.defineProperty(exports, "promoBannerVariants", {
644
+ Object.defineProperty(exports, "PriceDisplay", {
653
645
  enumerable: true,
654
- get: function () { return chunkPRDIS2VR_js.promoBannerVariants; }
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, "Breadcrumb", {
796
+ Object.defineProperty(exports, "Badge", {
805
797
  enumerable: true,
806
- get: function () { return chunkH3JNRTAI_js.Breadcrumb; }
798
+ get: function () { return chunkZ5S7LHMY_js.Badge; }
807
799
  });
808
- Object.defineProperty(exports, "breadcrumbVariants", {
800
+ Object.defineProperty(exports, "badgeVariants", {
809
801
  enumerable: true,
810
- get: function () { return chunkH3JNRTAI_js.breadcrumbVariants; }
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 { Breadcrumb, breadcrumbVariants } from './chunk-UKCH6RYL.mjs';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dododog/ui",
3
- "version": "0.8.1",
3
+ "version": "0.9.1",
4
4
  "description": "React UI component library for DodoDog — pet-friendly travel platform",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",
@@ -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 };
@@ -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;