@athbnb/ui 0.0.2 → 0.0.3

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,255 @@
1
+ import { Button as e } from "./Button.js";
2
+ import { c as t } from "react/compiler-runtime";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ import { useState as a } from "react";
5
+ //#region src/ui/Accordion.tsx
6
+ function o(e) {
7
+ let n = t(3), { className: i } = e, a;
8
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ r("path", {
9
+ strokeLinecap: "round",
10
+ strokeLinejoin: "round",
11
+ strokeWidth: 2,
12
+ d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
13
+ }), n[0] = a) : a = n[0];
14
+ let o;
15
+ return n[1] === i ? o = n[2] : (o = /* @__PURE__ */ r("svg", {
16
+ className: i,
17
+ fill: "none",
18
+ stroke: "currentColor",
19
+ viewBox: "0 0 24 24",
20
+ "aria-hidden": !0,
21
+ children: a
22
+ }), n[1] = i, n[2] = o), o;
23
+ }
24
+ function s(e) {
25
+ let n = t(2), { expanded: i } = e, a;
26
+ return n[0] === i ? a = n[1] : (a = /* @__PURE__ */ r("span", {
27
+ className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary sm:h-[30px] sm:w-[30px]",
28
+ "aria-hidden": !0,
29
+ children: /* @__PURE__ */ r("svg", {
30
+ viewBox: "0 0 24 24",
31
+ className: "h-[18px] w-[18px] sm:h-[22px] sm:w-[22px]",
32
+ fill: "none",
33
+ children: i ? /* @__PURE__ */ r("path", {
34
+ stroke: "white",
35
+ strokeLinecap: "round",
36
+ strokeWidth: 2.75,
37
+ d: "M5 12h14"
38
+ }) : /* @__PURE__ */ r("path", {
39
+ stroke: "white",
40
+ strokeLinecap: "round",
41
+ strokeWidth: 2.75,
42
+ d: "M12 5v14M5 12h14"
43
+ })
44
+ })
45
+ }), n[0] = i, n[1] = a), a;
46
+ }
47
+ function c(o) {
48
+ let c = t(13), { filteredFaqs: l, emptyMessage: u } = o, [d, f] = a(null), p;
49
+ if (c[0] !== l || c[1] !== d) {
50
+ let t;
51
+ c[3] === d ? t = c[4] : (t = (t, n) => /* @__PURE__ */ i("div", {
52
+ className: "border-b border-primary bg-white",
53
+ children: [/* @__PURE__ */ r(e, {
54
+ type: "button",
55
+ outline: !0,
56
+ width: "full",
57
+ title: /* @__PURE__ */ i("div", {
58
+ className: "flex w-full items-center justify-between",
59
+ children: [/* @__PURE__ */ i("div", {
60
+ className: "flex items-center gap-2 sm:gap-4",
61
+ children: [/* @__PURE__ */ r("span", {
62
+ className: "title-text font-bold text-primary/50",
63
+ children: String(n + 1).padStart(2, "0")
64
+ }), /* @__PURE__ */ r("span", {
65
+ className: "title-text font-bold",
66
+ children: t.question
67
+ })]
68
+ }), /* @__PURE__ */ r("div", {
69
+ className: "ml-2 shrink-0 sm:ml-4",
70
+ children: /* @__PURE__ */ r(s, { expanded: d === n })
71
+ })]
72
+ }),
73
+ onClick: () => f((e) => e === n ? null : n),
74
+ className: "!h-auto !min-h-0 !justify-start !rounded-none !border-0 !bg-transparent !px-0 !pt-0 !pb-2 !text-left !shadow-none !ring-0 !outline-none sm:!pb-4 text-xs sm:text-base"
75
+ }), d === n ? /* @__PURE__ */ r("div", {
76
+ className: "pb-2 sm:pb-4",
77
+ children: t.answerHtml != null && t.answerHtml !== "" ? /* @__PURE__ */ r("div", {
78
+ className: "faq-answer-content paragraph-text text-secondary",
79
+ dangerouslySetInnerHTML: { __html: t.answerHtml }
80
+ }) : /* @__PURE__ */ r("div", {
81
+ className: "faq-answer-content paragraph-text text-secondary",
82
+ children: t.answer
83
+ })
84
+ }) : null]
85
+ }, `${t.question}-${n}`), c[3] = d, c[4] = t), p = l.map(t), c[0] = l, c[1] = d, c[2] = p;
86
+ } else p = c[2];
87
+ let m;
88
+ c[5] === p ? m = c[6] : (m = /* @__PURE__ */ r("div", {
89
+ className: "flex flex-col gap-2 sm:gap-4",
90
+ children: p
91
+ }), c[5] = p, c[6] = m);
92
+ let h;
93
+ c[7] !== u || c[8] !== l.length ? (h = l.length === 0 ? /* @__PURE__ */ r("div", {
94
+ className: "py-8 text-center text-sm text-primary sm:text-base",
95
+ children: u
96
+ }) : null, c[7] = u, c[8] = l.length, c[9] = h) : h = c[9];
97
+ let g;
98
+ return c[10] !== m || c[11] !== h ? (g = /* @__PURE__ */ i(n, { children: [m, h] }), c[10] = m, c[11] = h, c[12] = g) : g = c[12], g;
99
+ }
100
+ function l(e) {
101
+ let n = t(36), { faqs: s, categories: l, showCategories: u, showSearch: d, className: f, activeCategory: p, defaultActiveCategory: m, onActiveCategoryChange: h, searchPlaceholder: g, emptyMessage: _ } = e, v;
102
+ n[0] === s ? v = n[1] : (v = s === void 0 ? [] : s, n[0] = s, n[1] = v);
103
+ let y = v, b;
104
+ n[2] === l ? b = n[3] : (b = l === void 0 ? [] : l, n[2] = l, n[3] = b);
105
+ let x = b, S = u === void 0 ? !0 : u, C = d === void 0 ? !0 : d, w = f === void 0 ? "" : f, T = g === void 0 ? "Search here..." : g, E = _ === void 0 ? "No FAQs match your search." : _, [D, O] = a(""), [k, A] = a(m ?? x[0] ?? ""), j = p !== void 0, M = j ? p : k, N;
106
+ n[4] !== j || n[5] !== h ? (N = (e) => {
107
+ h?.(e), j || A(e);
108
+ }, n[4] = j, n[5] = h, n[6] = N) : N = n[6];
109
+ let P = N, F;
110
+ if (n[7] !== M || n[8] !== y || n[9] !== D || n[10] !== S) {
111
+ let e;
112
+ n[12] !== M || n[13] !== D || n[14] !== S ? (e = (e) => {
113
+ let t = !S || !e.category || e.category === M, n = e.question.toLowerCase(), r = (e.answerHtml ?? "").toLowerCase(), i = !D || n.includes(D.toLowerCase()) || r.includes(D.toLowerCase());
114
+ return t && i;
115
+ }, n[12] = M, n[13] = D, n[14] = S, n[15] = e) : e = n[15], F = y.filter(e), n[7] = M, n[8] = y, n[9] = D, n[10] = S, n[11] = F;
116
+ } else F = n[11];
117
+ let I = F, L = `mx-auto flex flex-col ${w}`, R;
118
+ n[16] === L ? R = n[17] : (R = L.trim(), n[16] = L, n[17] = R);
119
+ let z;
120
+ n[18] !== M || n[19] !== x || n[20] !== P || n[21] !== S ? (z = S && x.length > 1 ? /* @__PURE__ */ r("div", {
121
+ className: "mb-4 flex flex-wrap justify-center gap-2",
122
+ children: x.map((e) => /* @__PURE__ */ r("button", {
123
+ type: "button",
124
+ className: `rounded-button-text cursor-pointer rounded-full border px-4 py-2 font-bold transition-colors duration-150 ${M === e ? "border-primary bg-primary text-white" : "border-primary/50 bg-white text-primary hover:border-primary"}`,
125
+ onClick: () => P(e),
126
+ children: e
127
+ }, e))
128
+ }) : null, n[18] = M, n[19] = x, n[20] = P, n[21] = S, n[22] = z) : z = n[22];
129
+ let B;
130
+ n[23] !== T || n[24] !== D || n[25] !== C ? (B = C ? /* @__PURE__ */ i("div", {
131
+ className: "relative mb-4 sm:mb-6",
132
+ children: [/* @__PURE__ */ r("input", {
133
+ type: "search",
134
+ placeholder: T,
135
+ value: D,
136
+ onChange: (e) => O(e.target.value),
137
+ className: "w-full rounded-full border border-primary py-2 pr-3 pl-9 text-sm text-primary outline-none focus:border-primary focus:shadow-none focus:outline-none focus:ring-0 focus:ring-offset-0 focus-visible:outline-none focus-visible:ring-0 sm:py-3 sm:pl-10 sm:text-base",
138
+ "aria-label": T
139
+ }), /* @__PURE__ */ r(o, { className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-primary sm:h-5 sm:w-5" })]
140
+ }) : null, n[23] = T, n[24] = D, n[25] = C, n[26] = B) : B = n[26];
141
+ let V = `${M}\u0000${D}`, H;
142
+ n[27] !== E || n[28] !== I || n[29] !== V ? (H = /* @__PURE__ */ r(c, {
143
+ filteredFaqs: I,
144
+ emptyMessage: E
145
+ }, V), n[27] = E, n[28] = I, n[29] = V, n[30] = H) : H = n[30];
146
+ let U;
147
+ return n[31] !== R || n[32] !== z || n[33] !== B || n[34] !== H ? (U = /* @__PURE__ */ i("div", {
148
+ className: R,
149
+ children: [
150
+ z,
151
+ B,
152
+ H
153
+ ]
154
+ }), n[31] = R, n[32] = z, n[33] = B, n[34] = H, n[35] = U) : U = n[35], U;
155
+ }
156
+ var u = l;
157
+ function d(e) {
158
+ let n = t(44), o, s, c, l, u, d, f, p, m, h, g;
159
+ n[0] === e ? (o = n[1], s = n[2], c = n[3], l = n[4], u = n[5], d = n[6], f = n[7], p = n[8], m = n[9], h = n[10], g = n[11]) : ({onDelete: l, header: c, children: o, showDeleteButton: p, className: m, expanded: s, defaultExpanded: h, onExpandedChange: u, onToggle: d, keepMounted: g, ...f} = e, n[0] = e, n[1] = o, n[2] = s, n[3] = c, n[4] = l, n[5] = u, n[6] = d, n[7] = f, n[8] = p, n[9] = m, n[10] = h, n[11] = g);
160
+ let _ = p === void 0 ? !0 : p, v = m === void 0 ? "" : m, y = h === void 0 ? !1 : h, b = g === void 0 ? !1 : g, [x, S] = a(y), C = s !== void 0, w = C ? s : x, T;
161
+ n[12] !== C || n[13] !== w || n[14] !== u || n[15] !== d ? (T = () => {
162
+ if (d) {
163
+ d();
164
+ return;
165
+ }
166
+ let e = !w;
167
+ C ? u?.(e) : S(e);
168
+ }, n[12] = C, n[13] = w, n[14] = u, n[15] = d, n[16] = T) : T = n[16];
169
+ let E = T, D = `overflow-hidden rounded-lg border border-primary ${v}`, O;
170
+ n[17] === D ? O = n[18] : (O = D.trim(), n[17] = D, n[18] = O);
171
+ let k;
172
+ n[19] === c ? k = n[20] : (k = /* @__PURE__ */ r("div", {
173
+ className: "flex items-center gap-3",
174
+ children: /* @__PURE__ */ r("span", {
175
+ className: "paragraph-text font-semibold",
176
+ children: c
177
+ })
178
+ }), n[19] = c, n[20] = k);
179
+ let A;
180
+ n[21] !== l || n[22] !== _ ? (A = _ && l ? /* @__PURE__ */ r("button", {
181
+ type: "button",
182
+ onClick: (e) => {
183
+ e.stopPropagation(), l();
184
+ },
185
+ className: "cursor-pointer border-0 bg-transparent p-0 text-white transition-colors hover:text-red-200",
186
+ title: "Delete item",
187
+ children: /* @__PURE__ */ r("svg", {
188
+ className: "h-5 w-5",
189
+ fill: "none",
190
+ stroke: "currentColor",
191
+ viewBox: "0 0 24 24",
192
+ "aria-hidden": !0,
193
+ children: /* @__PURE__ */ r("path", {
194
+ strokeLinecap: "round",
195
+ strokeLinejoin: "round",
196
+ strokeWidth: 2,
197
+ d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
198
+ })
199
+ })
200
+ }) : null, n[21] = l, n[22] = _, n[23] = A) : A = n[23];
201
+ let j = `h-5 w-5 transform transition-transform ${w ? "rotate-180" : ""}`, M;
202
+ n[24] === Symbol.for("react.memo_cache_sentinel") ? (M = /* @__PURE__ */ r("path", {
203
+ strokeLinecap: "round",
204
+ strokeLinejoin: "round",
205
+ strokeWidth: 2,
206
+ d: "M19 9l-7 7-7-7"
207
+ }), n[24] = M) : M = n[24];
208
+ let N;
209
+ n[25] === j ? N = n[26] : (N = /* @__PURE__ */ r("span", {
210
+ className: "text-white",
211
+ "aria-hidden": !0,
212
+ children: /* @__PURE__ */ r("svg", {
213
+ className: j,
214
+ fill: "none",
215
+ stroke: "currentColor",
216
+ viewBox: "0 0 24 24",
217
+ children: M
218
+ })
219
+ }), n[25] = j, n[26] = N);
220
+ let P;
221
+ n[27] !== N || n[28] !== A ? (P = /* @__PURE__ */ i("div", {
222
+ className: "flex items-center gap-2",
223
+ children: [A, N]
224
+ }), n[27] = N, n[28] = A, n[29] = P) : P = n[29];
225
+ let F;
226
+ n[30] !== w || n[31] !== P || n[32] !== k || n[33] !== E ? (F = /* @__PURE__ */ i("button", {
227
+ type: "button",
228
+ className: "flex w-full cursor-pointer items-center justify-between bg-primary p-4 text-left text-white",
229
+ onClick: E,
230
+ "aria-expanded": w,
231
+ children: [k, P]
232
+ }), n[30] = w, n[31] = P, n[32] = k, n[33] = E, n[34] = F) : F = n[34];
233
+ let I;
234
+ n[35] !== o || n[36] !== w || n[37] !== b ? (I = b ? /* @__PURE__ */ r("div", {
235
+ className: `bg-white p-4 ${w ? "" : "hidden"}`,
236
+ children: /* @__PURE__ */ r("div", {
237
+ className: "space-y-4",
238
+ children: o
239
+ })
240
+ }) : w ? /* @__PURE__ */ r("div", {
241
+ className: "bg-white p-4",
242
+ children: /* @__PURE__ */ r("div", {
243
+ className: "space-y-4",
244
+ children: o
245
+ })
246
+ }) : null, n[35] = o, n[36] = w, n[37] = b, n[38] = I) : I = n[38];
247
+ let L;
248
+ return n[39] !== f || n[40] !== F || n[41] !== I || n[42] !== O ? (L = /* @__PURE__ */ i("div", {
249
+ ...f,
250
+ className: O,
251
+ children: [F, I]
252
+ }), n[39] = f, n[40] = F, n[41] = I, n[42] = O, n[43] = L) : L = n[43], L;
253
+ }
254
+ //#endregion
255
+ export { u as Accordion, l as FaqAccordion, d as ReusableAccordion };
@@ -0,0 +1,122 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { NavLink as t } from "react-router-dom";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/ui/BookingDetailsCard.tsx
5
+ function a(t) {
6
+ let n = e(4), { className: a } = t, o, s;
7
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ r("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }), s = /* @__PURE__ */ r("polyline", { points: "9 22 9 12 15 12 15 22" }), n[0] = o, n[1] = s) : (o = n[0], s = n[1]);
8
+ let c;
9
+ return n[2] === a ? c = n[3] : (c = /* @__PURE__ */ i("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ viewBox: "0 0 24 24",
12
+ fill: "none",
13
+ stroke: "currentColor",
14
+ strokeWidth: "1.75",
15
+ strokeLinecap: "round",
16
+ strokeLinejoin: "round",
17
+ className: a,
18
+ "aria-hidden": !0,
19
+ children: [o, s]
20
+ }), n[2] = a, n[3] = c), c;
21
+ }
22
+ function o(e, t) {
23
+ return t != null && t > 0 && typeof e == "string" && e.length > t ? /* @__PURE__ */ i(n, { children: [e.slice(0, t), /* @__PURE__ */ r("span", {
24
+ className: "text-primary",
25
+ children: "..."
26
+ })] }) : e;
27
+ }
28
+ var s = "relative block cursor-pointer rounded-secondary border border-gray-100 bg-white p-4 shadow-primary transition-shadow duration-200 hover:shadow-sm sm:p-4";
29
+ function c(c) {
30
+ let u = e(35), { title: d, description: f, icon: p, iconSrc: m, iconAlt: h, to: g, onClick: _, amenities: v, credits: y, descriptionMaxLength: b, className: x } = c, S = h === void 0 ? "" : h, C = b === void 0 ? 150 : b, w = x === void 0 ? "" : x, T;
31
+ u[0] !== p || u[1] !== S || u[2] !== m ? (T = /* @__PURE__ */ r("div", {
32
+ className: "absolute -top-3 left-4 h-12 w-12 overflow-hidden rounded-xl bg-white shadow-[0_12px_40px_rgba(0,0,0,0.12),0_4px_12px_rgba(0,0,0,0.08)] sm:-top-5 sm:left-6 sm:h-16 sm:w-16",
33
+ children: p ? /* @__PURE__ */ r("span", {
34
+ className: "flex h-full w-full items-center justify-center p-1.5 text-primary [&_svg]:max-h-full [&_svg]:max-w-full [&_img]:max-h-full [&_img]:max-w-full [&_img]:object-contain",
35
+ children: p
36
+ }) : m ? /* @__PURE__ */ r("img", {
37
+ src: m,
38
+ alt: S,
39
+ className: "h-full w-full object-cover",
40
+ loading: "lazy"
41
+ }) : /* @__PURE__ */ r("div", {
42
+ className: "flex h-full w-full items-center justify-center p-1.5",
43
+ children: /* @__PURE__ */ r(a, { className: "h-8 w-8 text-primary sm:h-10 sm:w-10" })
44
+ })
45
+ }), u[0] = p, u[1] = S, u[2] = m, u[3] = T) : T = u[3];
46
+ let E;
47
+ u[4] === d ? E = u[5] : (E = /* @__PURE__ */ r("h3", {
48
+ className: "title-text mb-1 font-bold text-primary sm:mb-1",
49
+ children: d
50
+ }), u[4] = d, u[5] = E);
51
+ let D;
52
+ u[6] !== f || u[7] !== C ? (D = o(f, C), u[6] = f, u[7] = C, u[8] = D) : D = u[8];
53
+ let O;
54
+ u[9] === D ? O = u[10] : (O = /* @__PURE__ */ r("p", {
55
+ className: "paragraph-text mb-4 leading-relaxed text-secondary sm:mb-4",
56
+ children: D
57
+ }), u[9] = D, u[10] = O);
58
+ let k;
59
+ u[11] === v ? k = u[12] : (k = v && v.length > 0 ? /* @__PURE__ */ r("div", {
60
+ className: "mb-4 grid grid-cols-2 gap-x-2 gap-y-2 sm:mb-6 sm:gap-y-3",
61
+ children: v.map(l)
62
+ }) : null, u[11] = v, u[12] = k);
63
+ let A;
64
+ u[13] === y ? A = u[14] : (A = y ? /* @__PURE__ */ i("div", {
65
+ className: "flex items-center gap-2",
66
+ children: [/* @__PURE__ */ r("div", {
67
+ className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-primary sm:h-6 sm:w-6",
68
+ children: /* @__PURE__ */ r("span", {
69
+ className: "paragraph-text font-bold text-white",
70
+ children: y.badgeText
71
+ })
72
+ }), /* @__PURE__ */ r("span", {
73
+ className: "paragraph-text text-secondary",
74
+ children: y.label
75
+ })]
76
+ }) : null, u[13] = y, u[14] = A);
77
+ let j;
78
+ u[15] !== E || u[16] !== O || u[17] !== k || u[18] !== A ? (j = /* @__PURE__ */ i("div", {
79
+ className: "mt-10",
80
+ children: [
81
+ E,
82
+ O,
83
+ k,
84
+ A
85
+ ]
86
+ }), u[15] = E, u[16] = O, u[17] = k, u[18] = A, u[19] = j) : j = u[19];
87
+ let M;
88
+ u[20] !== j || u[21] !== T ? (M = /* @__PURE__ */ i(n, { children: [T, j] }), u[20] = j, u[21] = T, u[22] = M) : M = u[22];
89
+ let N = M;
90
+ if (g) {
91
+ let e = `${s} ${w}`, n;
92
+ u[23] === e ? n = u[24] : (n = e.trim(), u[23] = e, u[24] = n);
93
+ let i;
94
+ return u[25] !== N || u[26] !== n || u[27] !== g ? (i = /* @__PURE__ */ r(t, {
95
+ to: g,
96
+ className: n,
97
+ children: N
98
+ }), u[25] = N, u[26] = n, u[27] = g, u[28] = i) : i = u[28], i;
99
+ }
100
+ let P = `${s} ${w}`, F;
101
+ u[29] === P ? F = u[30] : (F = P.trim(), u[29] = P, u[30] = F);
102
+ let I;
103
+ return u[31] !== N || u[32] !== _ || u[33] !== F ? (I = /* @__PURE__ */ r("div", {
104
+ className: F,
105
+ onClick: _,
106
+ children: N
107
+ }), u[31] = N, u[32] = _, u[33] = F, u[34] = I) : I = u[34], I;
108
+ }
109
+ function l(e, t) {
110
+ return /* @__PURE__ */ i("div", {
111
+ className: "flex gap-2 sm:gap-3",
112
+ children: [/* @__PURE__ */ r("div", {
113
+ className: "h-4 w-4 shrink-0 text-primary sm:h-5 sm:w-5 [&_svg]:h-full [&_svg]:w-full",
114
+ children: e.icon
115
+ }), /* @__PURE__ */ r("span", {
116
+ className: "paragraph-text capitalize text-secondary",
117
+ children: e.label
118
+ })]
119
+ }, t);
120
+ }
121
+ //#endregion
122
+ export { c as BookingDetailsCard };
@@ -0,0 +1,83 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { NavLink as t, useMatches as n, useSearchParams as r } from "react-router-dom";
3
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ //#region src/ui/Breadcrumbs.tsx
5
+ function s(t) {
6
+ let n = e(3), { className: r } = t, i;
7
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ a("path", {
8
+ strokeLinecap: "round",
9
+ strokeLinejoin: "round",
10
+ d: "M9 5l7 7-7 7"
11
+ }), n[0] = i) : i = n[0];
12
+ let o;
13
+ return n[1] === r ? o = n[2] : (o = /* @__PURE__ */ a("svg", {
14
+ className: r,
15
+ viewBox: "0 0 24 24",
16
+ fill: "none",
17
+ stroke: "currentColor",
18
+ strokeWidth: 2,
19
+ "aria-hidden": !0,
20
+ children: i
21
+ }), n[1] = r, n[2] = o), o;
22
+ }
23
+ var c = "max-w-[120px] cursor-pointer truncate text-secondary hover:underline sm:max-w-[180px] md:max-w-[240px]", l = "max-w-[120px] truncate font-bold text-primary sm:max-w-[180px] md:max-w-[240px]", u = "max-w-[120px] truncate text-secondary sm:max-w-[180px] md:max-w-[240px]";
24
+ function d(n) {
25
+ let r = e(11), { items: d, className: f, separatorClassName: p } = n, m = f === void 0 ? "" : f, h = p === void 0 ? "ms-2 me-2 h-2 w-2 shrink-0 text-secondary sm:h-4 sm:w-4" : p, g = `breadcrum-text mt-10 flex flex-wrap items-center gap-x-1 gap-y-2 px-6 ${m}`, _;
26
+ r[0] === g ? _ = r[1] : (_ = g.trim(), r[0] = g, r[1] = _);
27
+ let v;
28
+ if (r[2] !== d || r[3] !== h) {
29
+ let e;
30
+ r[5] !== d.length || r[6] !== h ? (e = (e, n) => /* @__PURE__ */ a("span", {
31
+ className: "flex items-center justify-center",
32
+ children: n === d.length - 1 ? /* @__PURE__ */ a("span", {
33
+ className: l,
34
+ children: e.label
35
+ }) : /* @__PURE__ */ o(i, { children: [e.to == null ? /* @__PURE__ */ a("span", {
36
+ className: u,
37
+ children: e.label
38
+ }) : /* @__PURE__ */ a(t, {
39
+ to: e.to,
40
+ className: c,
41
+ children: e.label
42
+ }), /* @__PURE__ */ a(s, { className: h })] })
43
+ }, `${String(e.to ?? "item")}-${n}`), r[5] = d.length, r[6] = h, r[7] = e) : e = r[7], v = d.map(e), r[2] = d, r[3] = h, r[4] = v;
44
+ } else v = r[4];
45
+ let y;
46
+ return r[8] !== _ || r[9] !== v ? (y = /* @__PURE__ */ a("nav", {
47
+ className: _,
48
+ "aria-label": "Breadcrumb",
49
+ children: v
50
+ }), r[8] = _, r[9] = v, r[10] = y) : y = r[10], y;
51
+ }
52
+ function f(t) {
53
+ let i = e(11), { className: o, separatorClassName: s } = t, c = o === void 0 ? "" : o, l = s === void 0 ? "ms-2 me-2 h-2 w-2 shrink-0 text-secondary sm:h-4 sm:w-4" : s, u = n(), [f] = r(), m;
54
+ i[0] === f ? m = i[1] : (m = f.toString() ? `?${f.toString()}` : "", i[0] = f, i[1] = m);
55
+ let h = m, g;
56
+ if (i[2] !== u || i[3] !== h) {
57
+ let e;
58
+ i[5] === h ? e = i[6] : (e = (e) => ({
59
+ name: e.handle.crumb,
60
+ pathname: e.pathname,
61
+ search: h
62
+ }), i[5] = h, i[6] = e);
63
+ let t = u.filter(p).map(e);
64
+ g = t.map((e, n) => ({
65
+ label: e.name,
66
+ to: n < t.length - 1 ? e.pathname + e.search : void 0
67
+ })), i[2] = u, i[3] = h, i[4] = g;
68
+ } else g = i[4];
69
+ let _ = g;
70
+ if (_.length === 0) return null;
71
+ let v;
72
+ return i[7] !== c || i[8] !== _ || i[9] !== l ? (v = /* @__PURE__ */ a(d, {
73
+ items: _,
74
+ className: c,
75
+ separatorClassName: l
76
+ }), i[7] = c, i[8] = _, i[9] = l, i[10] = v) : v = i[10], v;
77
+ }
78
+ function p(e) {
79
+ let t = e.handle;
80
+ return t != null && t.crumb != null && t.crumb !== "";
81
+ }
82
+ //#endregion
83
+ export { d as BreadcrumbTrail, f as Breadcrumbs };
@@ -0,0 +1,66 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { NavLink as t } from "react-router-dom";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/ui/Button.tsx
5
+ var a = {
6
+ fit: "w-fit",
7
+ full: "w-full",
8
+ auto: "w-auto",
9
+ min: "w-min",
10
+ max: "w-max"
11
+ };
12
+ function o(o) {
13
+ let s = e(27), { title: c, outline: l, className: u, width: d, onClick: f, disabled: p, loading: m, loadingClass: h, pulseDotClass: g, type: _, icon: v, to: y, children: b } = o, x = l === void 0 ? !1 : l, S = u === void 0 ? "h-fit" : u, C = d === void 0 ? "fit" : d, w = p === void 0 ? !1 : p, T = m === void 0 ? !1 : m, E = h === void 0 ? "" : h, D = g === void 0 ? "" : g, O = _ === void 0 ? "button" : _, k = a[C] ?? a.fit, A = x ? "border bg-transparent border-primary text-primary font-bold" : "bg-primary text-white font-bold border border-primary", j;
14
+ s[0] !== S || s[1] !== A || s[2] !== k ? (j = [
15
+ A,
16
+ "flex",
17
+ "cursor-pointer",
18
+ "px-5 py-2.5",
19
+ k,
20
+ "rounded-button-primary",
21
+ "items-center",
22
+ "justify-center",
23
+ "text-sm",
24
+ "transition-all",
25
+ "duration-200",
26
+ "ease-in-out",
27
+ "disabled:opacity-50",
28
+ "disabled:cursor-not-allowed",
29
+ S
30
+ ].filter(Boolean), s[0] = S, s[1] = A, s[2] = k, s[3] = j) : j = s[3];
31
+ let M = j.join(" "), N = b ?? c, P;
32
+ s[4] !== N || s[5] !== T || s[6] !== E || s[7] !== x || s[8] !== D ? (P = T ? /* @__PURE__ */ r("div", {
33
+ className: `flex space-x-2.5 py-2 items-center ${E}`,
34
+ role: "status",
35
+ "aria-label": "Loading",
36
+ children: Array.from({ length: 3 }, (e, t) => /* @__PURE__ */ r("div", { className: `w-2 h-2 rounded-full pulse-scale-dot ${x ? "bg-primary" : "bg-white"} ${D}` }, t))
37
+ }) : N, s[4] = N, s[5] = T, s[6] = E, s[7] = x, s[8] = D, s[9] = P) : P = s[9];
38
+ let F;
39
+ s[10] === v ? F = s[11] : (F = v ? /* @__PURE__ */ r("span", {
40
+ className: "ml-2",
41
+ children: v
42
+ }) : null, s[10] = v, s[11] = F);
43
+ let I;
44
+ s[12] !== P || s[13] !== F ? (I = /* @__PURE__ */ i(n, { children: [P, F] }), s[12] = P, s[13] = F, s[14] = I) : I = s[14];
45
+ let L = I;
46
+ if (y) {
47
+ let e = w || T, n;
48
+ return s[15] !== M || s[16] !== L || s[17] !== f || s[18] !== e || s[19] !== y ? (n = /* @__PURE__ */ r(t, {
49
+ to: y,
50
+ className: M,
51
+ onClick: f,
52
+ "aria-disabled": e,
53
+ children: L
54
+ }), s[15] = M, s[16] = L, s[17] = f, s[18] = e, s[19] = y, s[20] = n) : n = s[20], n;
55
+ }
56
+ let R = w || T, z;
57
+ return s[21] !== M || s[22] !== L || s[23] !== f || s[24] !== R || s[25] !== O ? (z = /* @__PURE__ */ r("button", {
58
+ className: M,
59
+ disabled: R,
60
+ onClick: f,
61
+ type: O,
62
+ children: L
63
+ }), s[21] = M, s[22] = L, s[23] = f, s[24] = R, s[25] = O, s[26] = z) : z = s[26], z;
64
+ }
65
+ //#endregion
66
+ export { o as Button };
@@ -0,0 +1,155 @@
1
+ import { c as e } from "react/compiler-runtime";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/ui/Card.tsx
4
+ function r(r) {
5
+ let i = e(25), { title: a, description: o, image: s, imageAlt: c, onClick: l, className: u, style: d } = r, f = u === void 0 ? "" : u, p = c ?? (typeof a == "string" ? a : "Card image"), m = `shrink-0 px-2 ${f}`, h;
6
+ i[0] === m ? h = i[1] : (h = m.trim(), i[0] = m, i[1] = h);
7
+ let g;
8
+ i[2] === l ? g = i[3] : (g = l ? (e) => {
9
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), l());
10
+ } : void 0, i[2] = l, i[3] = g);
11
+ let _ = l ? "button" : void 0, v = l ? 0 : void 0, y;
12
+ i[4] !== p || i[5] !== s ? (y = /* @__PURE__ */ t("div", {
13
+ className: "relative h-[220px] w-full sm:h-[280px] md:h-[320px] lg:h-[360px]",
14
+ children: /* @__PURE__ */ t("img", {
15
+ src: s,
16
+ alt: p,
17
+ className: "absolute inset-0 h-full w-full rounded-2xl object-cover",
18
+ loading: "lazy",
19
+ decoding: "async"
20
+ })
21
+ }), i[4] = p, i[5] = s, i[6] = y) : y = i[6];
22
+ let b;
23
+ i[7] === a ? b = i[8] : (b = /* @__PURE__ */ t("h3", {
24
+ className: "text-center text-lg font-bold text-primary transition-colors duration-200 sm:text-xl md:text-2xl",
25
+ children: a
26
+ }), i[7] = a, i[8] = b);
27
+ let x;
28
+ i[9] === o ? x = i[10] : (x = /* @__PURE__ */ t("p", {
29
+ className: "mb-3 text-center text-sm text-secondary sm:text-base",
30
+ children: o
31
+ }), i[9] = o, i[10] = x);
32
+ let S;
33
+ i[11] !== b || i[12] !== x ? (S = /* @__PURE__ */ n("div", {
34
+ className: "mt-4 flex w-full flex-1 flex-col justify-between px-2 text-center sm:px-4",
35
+ children: [b, x]
36
+ }), i[11] = b, i[12] = x, i[13] = S) : S = i[13];
37
+ let C;
38
+ i[14] !== S || i[15] !== y ? (C = /* @__PURE__ */ n("div", {
39
+ className: "flex h-full flex-col overflow-hidden bg-transparent transition-all duration-300",
40
+ children: [y, S]
41
+ }), i[14] = S, i[15] = y, i[16] = C) : C = i[16];
42
+ let w;
43
+ return i[17] !== l || i[18] !== d || i[19] !== C || i[20] !== h || i[21] !== g || i[22] !== _ || i[23] !== v ? (w = /* @__PURE__ */ t("div", {
44
+ className: h,
45
+ style: d,
46
+ onClick: l,
47
+ onKeyDown: g,
48
+ role: _,
49
+ tabIndex: v,
50
+ children: C
51
+ }), i[17] = l, i[18] = d, i[19] = C, i[20] = h, i[21] = g, i[22] = _, i[23] = v, i[24] = w) : w = i[24], w;
52
+ }
53
+ function i(r) {
54
+ let i = e(53), { title: a, description: o, img: s, imgMobile: c, imageAlt: l, logo: u, isReverse: d, className: f } = r, p = l === void 0 ? "Info image" : l, m = d === void 0 ? !1 : d, h = `w-full ${f === void 0 ? "" : f}`, g;
55
+ i[0] === h ? g = i[1] : (g = h.trim(), i[0] = h, i[1] = g);
56
+ let _ = `relative mb-4 aspect-square w-1/2 ${m ? "float-left mr-5" : "float-right ml-5"}`, v = c ?? s, y;
57
+ i[2] !== p || i[3] !== v ? (y = /* @__PURE__ */ t("img", {
58
+ src: v,
59
+ alt: p,
60
+ className: "h-full w-full rounded-2xl object-cover",
61
+ loading: "lazy",
62
+ decoding: "async"
63
+ }), i[2] = p, i[3] = v, i[4] = y) : y = i[4];
64
+ let b;
65
+ i[5] !== m || i[6] !== u ? (b = u ? /* @__PURE__ */ t("div", {
66
+ className: `absolute -bottom-4 scale-75 transform ${m ? "-right-4" : "-left-4"}`,
67
+ children: u
68
+ }) : null, i[5] = m, i[6] = u, i[7] = b) : b = i[7];
69
+ let x;
70
+ i[8] !== _ || i[9] !== y || i[10] !== b ? (x = /* @__PURE__ */ n("div", {
71
+ className: _,
72
+ children: [y, b]
73
+ }), i[8] = _, i[9] = y, i[10] = b, i[11] = x) : x = i[11];
74
+ let S;
75
+ i[12] === a ? S = i[13] : (S = /* @__PURE__ */ t("h2", {
76
+ className: "section-header-text mb-3 text-left font-bold leading-[1.2] text-primary",
77
+ children: a
78
+ }), i[12] = a, i[13] = S);
79
+ let C;
80
+ i[14] === o ? C = i[15] : (C = /* @__PURE__ */ t("p", {
81
+ className: "paragraph-text whitespace-pre-line leading-relaxed text-secondary",
82
+ children: o
83
+ }), i[14] = o, i[15] = C);
84
+ let w;
85
+ i[16] !== x || i[17] !== S || i[18] !== C ? (w = /* @__PURE__ */ n("div", {
86
+ className: "relative",
87
+ children: [
88
+ x,
89
+ S,
90
+ C
91
+ ]
92
+ }), i[16] = x, i[17] = S, i[18] = C, i[19] = w) : w = i[19];
93
+ let T;
94
+ i[20] === Symbol.for("react.memo_cache_sentinel") ? (T = /* @__PURE__ */ t("div", { className: "clear-both" }), i[20] = T) : T = i[20];
95
+ let E;
96
+ i[21] === w ? E = i[22] : (E = /* @__PURE__ */ n("div", {
97
+ className: "block w-full lg:hidden",
98
+ children: [w, T]
99
+ }), i[21] = w, i[22] = E);
100
+ let D = `hidden w-full items-center gap-0 lg:flex ${m ? "flex-row-reverse" : "flex-row"}`, O = `flex flex-1 flex-col justify-center gap-6 text-left ${m ? "items-start pl-16" : "items-end pr-16"}`, k;
101
+ i[23] === a ? k = i[24] : (k = /* @__PURE__ */ t("h2", {
102
+ className: "section-header-text mb-4 font-bold leading-tight text-primary",
103
+ children: a
104
+ }), i[23] = a, i[24] = k);
105
+ let A;
106
+ i[25] === o ? A = i[26] : (A = /* @__PURE__ */ t("p", {
107
+ className: "paragraph-text whitespace-pre-line leading-relaxed text-secondary",
108
+ children: o
109
+ }), i[25] = o, i[26] = A);
110
+ let j;
111
+ i[27] !== k || i[28] !== A ? (j = /* @__PURE__ */ n("div", {
112
+ className: "w-full max-w-md",
113
+ children: [k, A]
114
+ }), i[27] = k, i[28] = A, i[29] = j) : j = i[29];
115
+ let M;
116
+ i[30] !== O || i[31] !== j ? (M = /* @__PURE__ */ t("div", {
117
+ className: O,
118
+ children: j
119
+ }), i[30] = O, i[31] = j, i[32] = M) : M = i[32];
120
+ let N = `relative flex flex-1 ${m ? "justify-end pr-16" : "justify-start pl-16"}`, P;
121
+ i[33] !== p || i[34] !== s ? (P = /* @__PURE__ */ t("img", {
122
+ src: s,
123
+ alt: p,
124
+ className: "aspect-square w-full rounded-3xl object-cover",
125
+ loading: "lazy",
126
+ decoding: "async"
127
+ }), i[33] = p, i[34] = s, i[35] = P) : P = i[35];
128
+ let F;
129
+ i[36] !== m || i[37] !== u ? (F = u ? /* @__PURE__ */ t("div", {
130
+ className: `absolute -bottom-4 rounded-full transform ${m ? "-right-4" : "-left-4"}`,
131
+ children: u
132
+ }) : null, i[36] = m, i[37] = u, i[38] = F) : F = i[38];
133
+ let I;
134
+ i[39] !== P || i[40] !== F ? (I = /* @__PURE__ */ n("div", {
135
+ className: "relative w-full max-w-md",
136
+ children: [P, F]
137
+ }), i[39] = P, i[40] = F, i[41] = I) : I = i[41];
138
+ let L;
139
+ i[42] !== N || i[43] !== I ? (L = /* @__PURE__ */ t("div", {
140
+ className: N,
141
+ children: I
142
+ }), i[42] = N, i[43] = I, i[44] = L) : L = i[44];
143
+ let R;
144
+ i[45] !== D || i[46] !== M || i[47] !== L ? (R = /* @__PURE__ */ n("div", {
145
+ className: D,
146
+ children: [M, L]
147
+ }), i[45] = D, i[46] = M, i[47] = L, i[48] = R) : R = i[48];
148
+ let z;
149
+ return i[49] !== E || i[50] !== R || i[51] !== g ? (z = /* @__PURE__ */ n("div", {
150
+ className: g,
151
+ children: [E, R]
152
+ }), i[49] = E, i[50] = R, i[51] = g, i[52] = z) : z = i[52], z;
153
+ }
154
+ //#endregion
155
+ export { i as AboutCard, r as Card };