@retinalabsllc/zairusjs 16.3.0 → 16.3.2
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/index.js +40 -151
- package/dist/index.mjs +44 -154
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -107,7 +107,6 @@ var Faq = ({
|
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
109
|
{ threshold: 0.1 }
|
|
110
|
-
// Triggers when 10% of the title is visible
|
|
111
110
|
);
|
|
112
111
|
if (titleRef.current) {
|
|
113
112
|
observer.observe(titleRef.current);
|
|
@@ -121,39 +120,21 @@ var Faq = ({
|
|
|
121
120
|
"h2",
|
|
122
121
|
{
|
|
123
122
|
ref: titleRef,
|
|
124
|
-
className:
|
|
125
|
-
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
123
|
+
className: "text-3xl text-black tracking-tight leading-[1.15]"
|
|
126
124
|
},
|
|
127
125
|
"FAQ"
|
|
128
126
|
)), /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col gap-3 w-full" }, items.map((faq, index) => {
|
|
129
127
|
const isOpen = activeFaq === index;
|
|
130
|
-
const getShadowStyle = () => {
|
|
131
|
-
if (isOpen) return `
|
|
132
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.2),
|
|
133
|
-
inset 0 -3px 0 0 rgba(0, 0, 0, 0.3),
|
|
134
|
-
0 4px 0 0 #0c0c0c,
|
|
135
|
-
0 12px 24px rgba(0, 0, 0, 0.1)
|
|
136
|
-
`;
|
|
137
|
-
return "none";
|
|
138
|
-
};
|
|
139
128
|
return /* @__PURE__ */ import_react.default.createElement(
|
|
140
129
|
"div",
|
|
141
130
|
{
|
|
142
131
|
key: index,
|
|
143
|
-
className: `
|
|
144
|
-
style: { boxShadow: getShadowStyle() }
|
|
132
|
+
className: `transition-all duration-300 rounded-2xl border ${isOpen ? "bg-[#068afe] border-[#068afe]" : "bg-white border-neutral-200 hover:border-neutral-300"}`
|
|
145
133
|
},
|
|
146
|
-
isOpen && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
|
|
147
|
-
"div",
|
|
148
|
-
{
|
|
149
|
-
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
150
|
-
style: { backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }
|
|
151
|
-
}
|
|
152
|
-
), /* @__PURE__ */ import_react.default.createElement("span", { className: "absolute inset-0 rounded-4xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" })),
|
|
153
134
|
/* @__PURE__ */ import_react.default.createElement(
|
|
154
135
|
"button",
|
|
155
136
|
{
|
|
156
|
-
className: "
|
|
137
|
+
className: "flex items-center justify-between w-full gap-4 text-left px-6 py-5 outline-none cursor-pointer group",
|
|
157
138
|
onClick: () => toggleFaq(index)
|
|
158
139
|
},
|
|
159
140
|
/* @__PURE__ */ import_react.default.createElement(
|
|
@@ -161,17 +142,17 @@ var Faq = ({
|
|
|
161
142
|
{
|
|
162
143
|
className: `text-[15px] transition-colors duration-300 flex items-center gap-2 ${isOpen ? "text-white" : "text-black"}`
|
|
163
144
|
},
|
|
164
|
-
/* @__PURE__ */ import_react.default.createElement("span", { className: isOpen ? "text-
|
|
145
|
+
/* @__PURE__ */ import_react.default.createElement("span", { className: isOpen ? "text-white/70" : "text-neutral-400" }, index + 1, "."),
|
|
165
146
|
faq.question
|
|
166
147
|
),
|
|
167
|
-
/* @__PURE__ */ import_react.default.createElement("div", { className: `shrink-0 transition-colors duration-300 ${isOpen ? "text-white" : "text-
|
|
148
|
+
/* @__PURE__ */ import_react.default.createElement("div", { className: `shrink-0 transition-colors duration-300 ${isOpen ? "text-white" : "text-neutral-400"}` }, isOpen ? /* @__PURE__ */ import_react.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ import_react.default.createElement("path", { d: "M18 12H6", strokeLinecap: "round" })) : /* @__PURE__ */ import_react.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ import_react.default.createElement("path", { d: "M12 6v12M6 12h12", strokeLinecap: "round" })))
|
|
168
149
|
),
|
|
169
150
|
/* @__PURE__ */ import_react.default.createElement(
|
|
170
151
|
"div",
|
|
171
152
|
{
|
|
172
|
-
className: `
|
|
153
|
+
className: `grid transition-all duration-300 ease-in-out ${isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"}`
|
|
173
154
|
},
|
|
174
|
-
/* @__PURE__ */ import_react.default.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ import_react.default.createElement("p", { className: `text-[14px] leading-relaxed px-6 pb-6 pt-0 pr-12 transition-colors duration-300 ${isOpen ? "text-
|
|
155
|
+
/* @__PURE__ */ import_react.default.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ import_react.default.createElement("p", { className: `text-[14px] leading-relaxed px-6 pb-6 pt-0 pr-12 transition-colors duration-300 ${isOpen ? "text-white" : "text-transparent"}` }, faq.answer))
|
|
175
156
|
)
|
|
176
157
|
);
|
|
177
158
|
}))));
|
|
@@ -186,49 +167,19 @@ var ThreeDButton = ({
|
|
|
186
167
|
className = "",
|
|
187
168
|
onClick
|
|
188
169
|
}) => {
|
|
189
|
-
const baseShadow = `
|
|
190
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3),
|
|
191
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
192
|
-
0 3px 0 0 #0c0c0c,
|
|
193
|
-
0 6px 10px rgba(0, 0, 0, 0.3)
|
|
194
|
-
`;
|
|
195
|
-
const hoverShadow = `
|
|
196
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
197
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
198
|
-
0 4px 0 0 #0c0c0c,
|
|
199
|
-
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
200
|
-
`;
|
|
201
|
-
const activeShadow = `
|
|
202
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
203
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
204
|
-
0 1px 0 0 #0c0c0c,
|
|
205
|
-
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
206
|
-
`;
|
|
207
170
|
return /* @__PURE__ */ import_react2.default.createElement(
|
|
208
171
|
import_link.default,
|
|
209
172
|
{
|
|
210
173
|
href,
|
|
211
174
|
onClick,
|
|
212
|
-
className: `
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
onMouseLeave: (e) => {
|
|
219
|
-
e.currentTarget.style.boxShadow = baseShadow;
|
|
220
|
-
e.currentTarget.style.transform = "translateY(0px)";
|
|
221
|
-
},
|
|
222
|
-
onMouseDown: (e) => {
|
|
223
|
-
e.currentTarget.style.boxShadow = activeShadow;
|
|
224
|
-
e.currentTarget.style.transform = "translateY(2px)";
|
|
225
|
-
},
|
|
226
|
-
onMouseUp: (e) => {
|
|
227
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
228
|
-
}
|
|
175
|
+
className: `
|
|
176
|
+
relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
177
|
+
bg-[#068afe] hover:bg-[#0573d6] text-white text-[12px]
|
|
178
|
+
transition-colors duration-150 select-none group outline-none
|
|
179
|
+
${className}
|
|
180
|
+
`
|
|
229
181
|
},
|
|
230
|
-
/* @__PURE__ */ import_react2.default.createElement("span", { className: "
|
|
231
|
-
/* @__PURE__ */ import_react2.default.createElement("span", { className: "relative z-10 pt-1 tracking-wide text-white/95 group-hover:text-white transition-colors duration-150 flex items-center justify-center leading-none" }, children)
|
|
182
|
+
/* @__PURE__ */ import_react2.default.createElement("span", { className: "relative z-10 tracking-wide text-white/95 group-hover:text-white transition-colors duration-150 flex items-center justify-center leading-none" }, children)
|
|
232
183
|
);
|
|
233
184
|
};
|
|
234
185
|
|
|
@@ -246,64 +197,21 @@ var ThreeDActionButton = ({
|
|
|
246
197
|
className = ""
|
|
247
198
|
}) => {
|
|
248
199
|
const isInteractionDisabled = disabled || isLoading;
|
|
249
|
-
const baseShadow = `
|
|
250
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3),
|
|
251
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
252
|
-
0 3px 0 0 #0c0c0c,
|
|
253
|
-
0 6px 10px rgba(0, 0, 0, 0.3)
|
|
254
|
-
`;
|
|
255
|
-
const hoverShadow = `
|
|
256
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
257
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
258
|
-
0 4px 0 0 #0c0c0c,
|
|
259
|
-
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
260
|
-
`;
|
|
261
|
-
const activeShadow = `
|
|
262
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
263
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
264
|
-
0 1px 0 0 #0c0c0c,
|
|
265
|
-
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
266
|
-
`;
|
|
267
|
-
const disabledShadow = `
|
|
268
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.15),
|
|
269
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.3),
|
|
270
|
-
0 1px 0 0 #1c1c1c
|
|
271
|
-
`;
|
|
272
200
|
return /* @__PURE__ */ import_react3.default.createElement(
|
|
273
201
|
"button",
|
|
274
202
|
{
|
|
275
203
|
type,
|
|
276
204
|
disabled: isInteractionDisabled,
|
|
277
205
|
onClick,
|
|
206
|
+
style,
|
|
278
207
|
className: `
|
|
279
208
|
relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
280
|
-
bg-
|
|
281
|
-
transition-
|
|
282
|
-
${isInteractionDisabled ? "opacity-50 cursor-not-allowed" : "
|
|
209
|
+
bg-[#068afe] text-white text-[12px] tracking-widest
|
|
210
|
+
transition-colors duration-150 select-none group outline-none
|
|
211
|
+
${isInteractionDisabled ? "opacity-50 cursor-not-allowed" : "hover:bg-[#0573d6]"}
|
|
283
212
|
${className}
|
|
284
|
-
|
|
285
|
-
style: { boxShadow: isInteractionDisabled ? disabledShadow : baseShadow, ...style },
|
|
286
|
-
onMouseEnter: (e) => {
|
|
287
|
-
if (isInteractionDisabled) return;
|
|
288
|
-
e.currentTarget.style.boxShadow = hoverShadow;
|
|
289
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
290
|
-
},
|
|
291
|
-
onMouseLeave: (e) => {
|
|
292
|
-
if (isInteractionDisabled) return;
|
|
293
|
-
e.currentTarget.style.boxShadow = baseShadow;
|
|
294
|
-
e.currentTarget.style.transform = "translateY(0px)";
|
|
295
|
-
},
|
|
296
|
-
onMouseDown: (e) => {
|
|
297
|
-
if (isInteractionDisabled) return;
|
|
298
|
-
e.currentTarget.style.boxShadow = activeShadow;
|
|
299
|
-
e.currentTarget.style.transform = "translateY(2px)";
|
|
300
|
-
},
|
|
301
|
-
onMouseUp: (e) => {
|
|
302
|
-
if (isInteractionDisabled) return;
|
|
303
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
304
|
-
}
|
|
213
|
+
`
|
|
305
214
|
},
|
|
306
|
-
/* @__PURE__ */ import_react3.default.createElement("span", { className: "absolute inset-0 rounded-full bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none" }),
|
|
307
215
|
/* @__PURE__ */ import_react3.default.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 leading-none" }, isLoading ? /* @__PURE__ */ import_react3.default.createElement(import_react4.HugeiconsIcon, { icon: import_core_free_icons.Loading03Icon, size: 16, className: "animate-spin text-white" }) : children)
|
|
308
216
|
);
|
|
309
217
|
};
|
|
@@ -1130,7 +1038,7 @@ var UniversalHuddleDetails = ({
|
|
|
1130
1038
|
className: `relative w-11 h-6 rounded-full transition-colors outline-none shrink-0 ${isPrivate ? "bg-[#068afe]" : "bg-neutral-200"} ${!enableEdits && "opacity-50 cursor-not-allowed"}`
|
|
1131
1039
|
},
|
|
1132
1040
|
/* @__PURE__ */ import_react17.default.createElement("div", { className: `absolute top-1 left-1 bg-white w-4 h-4 rounded-full transition-transform ${isPrivate ? "translate-x-5" : "translate-x-0"}` })
|
|
1133
|
-
)), isPrivate && /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-neutral-50 p-4 rounded-xl" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[12px] text-black tracking-tight" }, "Participants"), /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[11px] text-[#068afe] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-neutral-200 text-black text-[11px] tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ import_react17.default.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react17.default.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/join/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-[#068afe] text-[#068afe] rounded-full text-center text-[
|
|
1041
|
+
)), isPrivate && /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-neutral-50 p-4 rounded-xl" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[12px] text-black tracking-tight" }, "Participants"), /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[11px] text-[#068afe] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-neutral-200 text-black text-[11px] tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ import_react17.default.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react17.default.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/join/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-[#068afe] text-[#068afe] rounded-full text-center text-[12px] transition-colors hover:bg-[#068afe]/5" }, "Join Huddle"), /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/assets/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-neutral-200 text-black rounded-full text-center text-[12px] transition-colors hover:bg-neutral-50" }, "Huddle Assets"), canDelete && liveStatus === "SCHEDULED" && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setConfirmDialog("CANCEL"), className: "flex-1 w-full py-2.5 bg-transparent border border-rose-200 text-rose-600 rounded-full text-center text-[12px] transition-colors hover:bg-rose-50" }, "Cancel Huddle"), canDelete && liveStatus !== "SCHEDULED" && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setConfirmDialog("DELETE"), className: "flex-1 w-full py-2.5 bg-transparent border border-rose-200 text-rose-600 rounded-full text-center text-[12px] transition-colors hover:bg-rose-50" }, "Delete Huddle"))), /* @__PURE__ */ import_react17.default.createElement(
|
|
1134
1042
|
CalendarPicker,
|
|
1135
1043
|
{
|
|
1136
1044
|
isOpen: calendarMode !== null,
|
|
@@ -2999,49 +2907,30 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2999
2907
|
"h2",
|
|
3000
2908
|
{
|
|
3001
2909
|
ref: titleRef,
|
|
3002
|
-
className:
|
|
3003
|
-
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
2910
|
+
className: "text-3xl tracking-tight text-black leading-[1.1]"
|
|
3004
2911
|
},
|
|
3005
2912
|
headline
|
|
3006
2913
|
))), /* @__PURE__ */ import_react46.default.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-6 gap-6" }, features.map((f, i) => {
|
|
3007
2914
|
const isWhite = i === 0;
|
|
3008
|
-
const
|
|
2915
|
+
const isBrand = i === 1;
|
|
3009
2916
|
const isNeutral = i === 2;
|
|
3010
2917
|
const getBgStyle = () => {
|
|
3011
|
-
if (isWhite) return "bg-white";
|
|
3012
|
-
if (
|
|
3013
|
-
if (isNeutral) return "bg-neutral-
|
|
3014
|
-
return "bg-neutral-200";
|
|
3015
|
-
};
|
|
3016
|
-
const getShadowStyle = () => {
|
|
3017
|
-
if (isBlack) return `
|
|
3018
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.2),
|
|
3019
|
-
inset 0 -3px 0 0 rgba(0, 0, 0, 0.3),
|
|
3020
|
-
0 4px 0 0 #0c0c0c,
|
|
3021
|
-
0 12px 24px rgba(0, 0, 0, 0.1)
|
|
3022
|
-
`;
|
|
3023
|
-
return "none";
|
|
2918
|
+
if (isWhite) return "bg-white border border-neutral-200";
|
|
2919
|
+
if (isBrand) return "bg-[#068afe] border border-[#068afe]";
|
|
2920
|
+
if (isNeutral) return "bg-neutral-100 border border-transparent";
|
|
2921
|
+
return "bg-white border border-neutral-200";
|
|
3024
2922
|
};
|
|
3025
|
-
const textColor =
|
|
3026
|
-
const subTextColor =
|
|
3027
|
-
const labelColor =
|
|
2923
|
+
const textColor = isBrand ? "text-white" : "text-black";
|
|
2924
|
+
const subTextColor = isBrand ? "text-white/80" : "text-neutral-600";
|
|
2925
|
+
const labelColor = isBrand ? "text-white/70" : "text-neutral-500";
|
|
3028
2926
|
return /* @__PURE__ */ import_react46.default.createElement(
|
|
3029
2927
|
"div",
|
|
3030
2928
|
{
|
|
3031
2929
|
key: i,
|
|
3032
|
-
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-
|
|
3033
|
-
style: { boxShadow: getShadowStyle() }
|
|
2930
|
+
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-300 group text-left ${getBgStyle()} ${f.size}`
|
|
3034
2931
|
},
|
|
3035
|
-
/* @__PURE__ */ import_react46.default.createElement(
|
|
3036
|
-
|
|
3037
|
-
{
|
|
3038
|
-
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
3039
|
-
style: { backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }
|
|
3040
|
-
}
|
|
3041
|
-
),
|
|
3042
|
-
isBlack && /* @__PURE__ */ import_react46.default.createElement("span", { className: "absolute inset-0 rounded-2xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" }),
|
|
3043
|
-
/* @__PURE__ */ import_react46.default.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBlack ? "text-white/5" : "text-black/5"}` }, /* @__PURE__ */ import_react46.default.createElement(import_react47.HugeiconsIcon, { icon: f.icon, size: 180 }))),
|
|
3044
|
-
/* @__PURE__ */ import_react46.default.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ import_react46.default.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ import_react46.default.createElement("div", { className: `p-2 rounded-full transition-colors ${isBlack ? "bg-white/10" : "bg-white/50 backdrop-blur-sm"}` }, /* @__PURE__ */ import_react46.default.createElement(import_react47.HugeiconsIcon, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ import_react46.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react46.default.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ import_react46.default.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
2932
|
+
/* @__PURE__ */ import_react46.default.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBrand ? "text-white/10" : "text-black/5"}` }, /* @__PURE__ */ import_react46.default.createElement(import_react47.HugeiconsIcon, { icon: f.icon, size: 180 }))),
|
|
2933
|
+
/* @__PURE__ */ import_react46.default.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ import_react46.default.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ import_react46.default.createElement("div", { className: `p-2 rounded-full transition-colors ${isBrand ? "bg-white/20" : "bg-neutral-100"}` }, /* @__PURE__ */ import_react46.default.createElement(import_react47.HugeiconsIcon, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ import_react46.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react46.default.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ import_react46.default.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
3045
2934
|
);
|
|
3046
2935
|
})))));
|
|
3047
2936
|
};
|
|
@@ -4957,10 +4846,10 @@ var UniversalHuddlesPage = ({
|
|
|
4957
4846
|
onHuddleClick,
|
|
4958
4847
|
onCreateHuddle
|
|
4959
4848
|
}) => {
|
|
4960
|
-
return /* @__PURE__ */ import_react84.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react84.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, headerTitle),
|
|
4849
|
+
return /* @__PURE__ */ import_react84.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react84.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, headerTitle), /* @__PURE__ */ import_react84.default.createElement(
|
|
4961
4850
|
"button",
|
|
4962
4851
|
{
|
|
4963
|
-
onClick: onCreateHuddle,
|
|
4852
|
+
onClick: () => onCreateHuddle?.(),
|
|
4964
4853
|
className: "shrink-0 px-4 py-1.5 border border-neutral-200 text-black text-[12px] tracking-wide rounded-full hover:bg-neutral-50 transition-colors outline-none"
|
|
4965
4854
|
},
|
|
4966
4855
|
"Create new"
|
|
@@ -5309,9 +5198,9 @@ var UniversalHome2 = ({
|
|
|
5309
5198
|
setIsResolving(true);
|
|
5310
5199
|
try {
|
|
5311
5200
|
await onResolveInvite(selectedNotif, resolution);
|
|
5201
|
+
window.location.reload();
|
|
5312
5202
|
} catch (error) {
|
|
5313
5203
|
import_react_hot_toast14.default.error("Failed to process invitation");
|
|
5314
|
-
} finally {
|
|
5315
5204
|
setIsResolving(false);
|
|
5316
5205
|
}
|
|
5317
5206
|
};
|
|
@@ -5424,11 +5313,11 @@ var UniversalHome2 = ({
|
|
|
5424
5313
|
},
|
|
5425
5314
|
/* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.Logout01Icon, size: 15 }),
|
|
5426
5315
|
"Log Out"
|
|
5427
|
-
)))), showNotifDialog && /* @__PURE__ */ import_react88.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#068afe] hover:text-[#068afe] transition-colors outline-none flex items-center gap-2 text-[11px] tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-[15px] text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "p-4 text-left" }, /* @__PURE__ */ import_react88.default.createElement("h4", { className: "text-[14px] text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-[12px] text-neutral-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" &&
|
|
5316
|
+
)))), showNotifDialog && /* @__PURE__ */ import_react88.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#068afe] hover:text-[#068afe] transition-colors outline-none flex items-center gap-2 text-[11px] tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-[15px] text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "mb-2" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-[10px] tracking-wide" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.Tick02Icon, size: 12 }), " Action Completed")) : /* @__PURE__ */ import_react88.default.createElement("h4", { className: "text-[14px] text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-[12px] text-neutral-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ import_react88.default.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ import_react88.default.createElement(
|
|
5428
5317
|
"button",
|
|
5429
5318
|
{
|
|
5430
5319
|
onClick: () => handleResolve("ACCEPTED"),
|
|
5431
|
-
disabled: isResolving,
|
|
5320
|
+
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5432
5321
|
className: "flex-1 py-2.5 rounded-full bg-black text-white text-[12px] tracking-wide transition-all outline-none hover:bg-neutral-800 flex justify-center items-center disabled:opacity-50"
|
|
5433
5322
|
},
|
|
5434
5323
|
isResolving ? /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, className: "animate-spin", size: 16 }) : "Accept"
|
|
@@ -5436,7 +5325,7 @@ var UniversalHome2 = ({
|
|
|
5436
5325
|
"button",
|
|
5437
5326
|
{
|
|
5438
5327
|
onClick: () => handleResolve("REJECTED"),
|
|
5439
|
-
disabled: isResolving,
|
|
5328
|
+
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5440
5329
|
className: "flex-1 py-2.5 rounded-full bg-white border border-neutral-200 text-black text-[12px] tracking-wide transition-all outline-none hover:bg-neutral-50 flex justify-center items-center disabled:opacity-50"
|
|
5441
5330
|
},
|
|
5442
5331
|
"Reject"
|
|
@@ -5714,7 +5603,7 @@ var UniversalSettings = ({
|
|
|
5714
5603
|
}, disabled: isInviting, className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-xs tracking-wide" }, "Cancel"))) : isMembersLoading || isTyping ? /* @__PURE__ */ import_react90.default.createElement(PageSpinner8, null) : /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react90.default.createElement("div", null, members.length === 0 ? /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[12px] text-neutral-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ import_react90.default.createElement("div", { key: member.id, onClick: () => setExpandedId(member.id), className: "flex items-center justify-between py-3 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react90.default.createElement(MemberAvatar3, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ import_react90.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[13px] text-black truncate" }, member.fullName), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-500 capitalize truncate" }, member.role.toLowerCase())))))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react90.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react90.default.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage - 1), disabled: membersCurrentPage <= 1 || isMembersLoading, className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons34.ArrowLeft01Icon, size: 14 })), /* @__PURE__ */ import_react90.default.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage + 1), disabled: membersCurrentPage >= membersTotalPages || isMembersLoading || membersTotalPages === 0, className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons34.ArrowRight01Icon, size: 14 })))))))), /* @__PURE__ */ import_react90.default.createElement(ReusableOptions, { isOpen: isStatusModalOpen, onClose: () => setIsStatusModalOpen(false), title: "Status Filter", options: ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"], selectedOption: activeStatusFilter, onSelect: (status) => onStatusFilterChange(status) }), /* @__PURE__ */ import_react90.default.createElement(ReusableOptions, { isOpen: isRoleModalOpen, onClose: () => setIsRoleModalOpen(false), title: "Role Filter", options: ["ALL", "ADMIN", "MANAGER", "MEMBER", "GUEST"], selectedOption: activeRoleFilter, onSelect: (role) => onRoleFilterChange(role) }), /* @__PURE__ */ import_react90.default.createElement(ReusableOptions, { isOpen: !!roleEditTarget, onClose: () => setRoleEditTarget(null), title: "Modify Access Role", options: ["ADMIN", "MANAGER", "MEMBER"], selectedOption: roleEditTarget?.role || "", onSelect: handleRoleUpdate })), activeTab === "ORGANIZATION" && isOrg && /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react90.default.createElement("div", null, /* @__PURE__ */ import_react90.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Workspace Details"), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your organizational identity and handles.")), !canManage && /* @__PURE__ */ import_react90.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons34.CircleLock02Icon, size: 18, className: "text-current" }))), /* @__PURE__ */ import_react90.default.createElement("form", { className: "flex flex-col gap-8 w-full max-w-5xl", onSubmit: handleSaveOrganization, autoComplete: "off" }, /* @__PURE__ */ import_react90.default.createElement(TextInput, { label: "Workspace Name", value: orgName, onChange: handleOrgNameChange, disabled: !canManage || isSavingOrg, placeholder: "Acme Corporation", maxLength: 50 }), /* @__PURE__ */ import_react90.default.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ import_react90.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Workspace Handle"), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-200 focus-within:border-black transition-all duration-300 overflow-hidden" }, /* @__PURE__ */ import_react90.default.createElement("input", { type: "text", value: orgSlug, disabled: !canManage || isSavingOrg, onChange: (e) => handleOrgSlugChange(e.target.value), spellCheck: "false", autoComplete: "off", className: "w-full pr-10 pl-0 py-3 text-sm bg-transparent text-black outline-none disabled:opacity-50 disabled:cursor-not-allowed", placeholder: "workspace-handle" }), /* @__PURE__ */ import_react90.default.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ import_react90.default.createElement(InputSpinner3, null), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === false && /* @__PURE__ */ import_react90.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ import_react90.default.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react90.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === true && /* @__PURE__ */ import_react90.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ import_react90.default.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react90.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ import_react90.default.createElement(ThreeDActionButton, { type: "submit", disabled: isOrgSaveDisabled, isLoading: isSavingOrg, className: "min-w-32" }, "Save Changes"), hasOrgChanges && !isSavingOrg && canManage && /* @__PURE__ */ import_react90.default.createElement("button", { type: "button", onClick: () => {
|
|
5715
5604
|
setOrgName(initialOrgName || "");
|
|
5716
5605
|
setOrgSlug(initialOrgSlug || "");
|
|
5717
|
-
}, className: "text-[11px] tracking-widest text-neutral-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react90.default.createElement("div", null, /* @__PURE__ */ import_react90.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-xs text-neutral-500" }, "Update your system display name and contact email."))), /* @__PURE__ */ import_react90.default.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ import_react90.default.createElement(TextInput, { label: "First Name", value: firstName, onChange: (v) => setFirstName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "First name", maxLength: 50 }), /* @__PURE__ */ import_react90.default.createElement(TextInput, { label: "Last Name", value: lastName, onChange: (v) => setLastName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "Last name", maxLength: 50 })), /* @__PURE__ */ import_react90.default.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ import_react90.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ import_react90.default.createElement("input", { type: "email", value: initialEmail, disabled: true, className: "w-full pb-3 pt-3 text-sm bg-transparent text-neutral-400 border-b border-neutral-200 outline-none cursor-not-allowed" })), /* @__PURE__ */ import_react90.default.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ import_react90.default.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "bg-white rounded-2xl p-6 w-full flex flex-col sm:flex-row sm:items-center justify-between gap-6 border border-neutral-100" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-400 tracking-[0.2em] mb-2 uppercase" }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ import_react90.default.createElement("div", { className: "h-8 w-32 bg-neutral-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons34.Coins01Icon, size: 28, className: "text-[#
|
|
5606
|
+
}, className: "text-[11px] tracking-widest text-neutral-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react90.default.createElement("div", null, /* @__PURE__ */ import_react90.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-xs text-neutral-500" }, "Update your system display name and contact email."))), /* @__PURE__ */ import_react90.default.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ import_react90.default.createElement(TextInput, { label: "First Name", value: firstName, onChange: (v) => setFirstName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "First name", maxLength: 50 }), /* @__PURE__ */ import_react90.default.createElement(TextInput, { label: "Last Name", value: lastName, onChange: (v) => setLastName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "Last name", maxLength: 50 })), /* @__PURE__ */ import_react90.default.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ import_react90.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ import_react90.default.createElement("input", { type: "email", value: initialEmail, disabled: true, className: "w-full pb-3 pt-3 text-sm bg-transparent text-neutral-400 border-b border-neutral-200 outline-none cursor-not-allowed" })), /* @__PURE__ */ import_react90.default.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ import_react90.default.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "bg-white rounded-2xl p-6 w-full flex flex-col sm:flex-row sm:items-center justify-between gap-6 border border-neutral-100" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-400 tracking-[0.2em] mb-2 uppercase" }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ import_react90.default.createElement("div", { className: "h-8 w-32 bg-neutral-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons34.Coins01Icon, size: 28, className: "text-[#000000]" }), /* @__PURE__ */ import_react90.default.createElement("span", { className: "text-3xl text-black tracking-tight" }, aiCredits)), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-500 mt-4 leading-relaxed" }, "AI credits are consumed when generating intelligent summaries, transcriptions, and automated huddle insights.")), /* @__PURE__ */ import_react90.default.createElement("button", { onClick: onTopUp, className: "w-12 h-12 rounded-full border border-neutral-200 flex items-center justify-center text-black hover:bg-neutral-50 transition-colors outline-none shrink-0", "aria-label": "Top Up Credits" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons34.PlusSignIcon, size: 20 })))));
|
|
5718
5607
|
};
|
|
5719
5608
|
|
|
5720
5609
|
// src/components/UniversalCreateHuddle.tsx
|
|
@@ -5826,7 +5715,7 @@ var UniversalCreateHuddle = ({
|
|
|
5826
5715
|
setIsSubmitting(false);
|
|
5827
5716
|
}
|
|
5828
5717
|
};
|
|
5829
|
-
return /* @__PURE__ */ import_react92.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react92.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react92.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react92.default.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#068afe] hover:text-[#068afe] transition-colors text-[13px] outline-none" }, /* @__PURE__ */ import_react92.default.createElement(import_react93.HugeiconsIcon, { icon: import_core_free_icons35.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ import_react92.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Create Huddle"), /* @__PURE__ */ import_react92.default.createElement("p", { className: "text-xs text-neutral-500" }, "Schedule a new workspace huddle and manage participant access.")), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react92.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSubmit, autoComplete: "off" }, !canManage && /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex items-start gap-3 p-4 bg-neutral-50 rounded-xl" }, /* @__PURE__ */ import_react92.default.createElement(import_react93.HugeiconsIcon, { icon: import_core_free_icons35.CircleLock02Icon, size: 20, className: "text-neutral-500 shrink-0 mt-0.5" }), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[13px] text-black
|
|
5718
|
+
return /* @__PURE__ */ import_react92.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react92.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react92.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react92.default.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#068afe] hover:text-[#068afe] transition-colors text-[13px] outline-none" }, /* @__PURE__ */ import_react92.default.createElement(import_react93.HugeiconsIcon, { icon: import_core_free_icons35.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ import_react92.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Create Huddle"), /* @__PURE__ */ import_react92.default.createElement("p", { className: "text-xs text-neutral-500" }, "Schedule a new workspace huddle and manage participant access.")), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react92.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSubmit, autoComplete: "off" }, !canManage && /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex items-start gap-3 p-4 bg-neutral-50 rounded-xl" }, /* @__PURE__ */ import_react92.default.createElement(import_react93.HugeiconsIcon, { icon: import_core_free_icons35.CircleLock02Icon, size: 20, className: "text-neutral-500 shrink-0 mt-0.5" }), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[13px] text-black tracking-tight" }, "Access Restricted"), /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[12px] text-neutral-500 mt-1 leading-relaxed" }, "You do not have sufficient permissions to access this page. Contact organization admin or manager."))), /* @__PURE__ */ import_react92.default.createElement(
|
|
5830
5719
|
TextInput,
|
|
5831
5720
|
{
|
|
5832
5721
|
label: "Huddle Subject",
|
package/dist/index.mjs
CHANGED
|
@@ -21,7 +21,6 @@ var Faq = ({
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
{ threshold: 0.1 }
|
|
24
|
-
// Triggers when 10% of the title is visible
|
|
25
24
|
);
|
|
26
25
|
if (titleRef.current) {
|
|
27
26
|
observer.observe(titleRef.current);
|
|
@@ -35,39 +34,21 @@ var Faq = ({
|
|
|
35
34
|
"h2",
|
|
36
35
|
{
|
|
37
36
|
ref: titleRef,
|
|
38
|
-
className:
|
|
39
|
-
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
37
|
+
className: "text-3xl text-black tracking-tight leading-[1.15]"
|
|
40
38
|
},
|
|
41
39
|
"FAQ"
|
|
42
40
|
)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3 w-full" }, items.map((faq, index) => {
|
|
43
41
|
const isOpen = activeFaq === index;
|
|
44
|
-
const getShadowStyle = () => {
|
|
45
|
-
if (isOpen) return `
|
|
46
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.2),
|
|
47
|
-
inset 0 -3px 0 0 rgba(0, 0, 0, 0.3),
|
|
48
|
-
0 4px 0 0 #0c0c0c,
|
|
49
|
-
0 12px 24px rgba(0, 0, 0, 0.1)
|
|
50
|
-
`;
|
|
51
|
-
return "none";
|
|
52
|
-
};
|
|
53
42
|
return /* @__PURE__ */ React.createElement(
|
|
54
43
|
"div",
|
|
55
44
|
{
|
|
56
45
|
key: index,
|
|
57
|
-
className: `
|
|
58
|
-
style: { boxShadow: getShadowStyle() }
|
|
46
|
+
className: `transition-all duration-300 rounded-2xl border ${isOpen ? "bg-[#068afe] border-[#068afe]" : "bg-white border-neutral-200 hover:border-neutral-300"}`
|
|
59
47
|
},
|
|
60
|
-
isOpen && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
61
|
-
"div",
|
|
62
|
-
{
|
|
63
|
-
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
64
|
-
style: { backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }
|
|
65
|
-
}
|
|
66
|
-
), /* @__PURE__ */ React.createElement("span", { className: "absolute inset-0 rounded-4xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" })),
|
|
67
48
|
/* @__PURE__ */ React.createElement(
|
|
68
49
|
"button",
|
|
69
50
|
{
|
|
70
|
-
className: "
|
|
51
|
+
className: "flex items-center justify-between w-full gap-4 text-left px-6 py-5 outline-none cursor-pointer group",
|
|
71
52
|
onClick: () => toggleFaq(index)
|
|
72
53
|
},
|
|
73
54
|
/* @__PURE__ */ React.createElement(
|
|
@@ -75,17 +56,17 @@ var Faq = ({
|
|
|
75
56
|
{
|
|
76
57
|
className: `text-[15px] transition-colors duration-300 flex items-center gap-2 ${isOpen ? "text-white" : "text-black"}`
|
|
77
58
|
},
|
|
78
|
-
/* @__PURE__ */ React.createElement("span", { className: isOpen ? "text-
|
|
59
|
+
/* @__PURE__ */ React.createElement("span", { className: isOpen ? "text-white/70" : "text-neutral-400" }, index + 1, "."),
|
|
79
60
|
faq.question
|
|
80
61
|
),
|
|
81
|
-
/* @__PURE__ */ React.createElement("div", { className: `shrink-0 transition-colors duration-300 ${isOpen ? "text-white" : "text-
|
|
62
|
+
/* @__PURE__ */ React.createElement("div", { className: `shrink-0 transition-colors duration-300 ${isOpen ? "text-white" : "text-neutral-400"}` }, isOpen ? /* @__PURE__ */ React.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ React.createElement("path", { d: "M18 12H6", strokeLinecap: "round" })) : /* @__PURE__ */ React.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ React.createElement("path", { d: "M12 6v12M6 12h12", strokeLinecap: "round" })))
|
|
82
63
|
),
|
|
83
64
|
/* @__PURE__ */ React.createElement(
|
|
84
65
|
"div",
|
|
85
66
|
{
|
|
86
|
-
className: `
|
|
67
|
+
className: `grid transition-all duration-300 ease-in-out ${isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"}`
|
|
87
68
|
},
|
|
88
|
-
/* @__PURE__ */ React.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ React.createElement("p", { className: `text-[14px] leading-relaxed px-6 pb-6 pt-0 pr-12 transition-colors duration-300 ${isOpen ? "text-
|
|
69
|
+
/* @__PURE__ */ React.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ React.createElement("p", { className: `text-[14px] leading-relaxed px-6 pb-6 pt-0 pr-12 transition-colors duration-300 ${isOpen ? "text-white" : "text-transparent"}` }, faq.answer))
|
|
89
70
|
)
|
|
90
71
|
);
|
|
91
72
|
}))));
|
|
@@ -100,49 +81,19 @@ var ThreeDButton = ({
|
|
|
100
81
|
className = "",
|
|
101
82
|
onClick
|
|
102
83
|
}) => {
|
|
103
|
-
const baseShadow = `
|
|
104
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3),
|
|
105
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
106
|
-
0 3px 0 0 #0c0c0c,
|
|
107
|
-
0 6px 10px rgba(0, 0, 0, 0.3)
|
|
108
|
-
`;
|
|
109
|
-
const hoverShadow = `
|
|
110
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
111
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
112
|
-
0 4px 0 0 #0c0c0c,
|
|
113
|
-
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
114
|
-
`;
|
|
115
|
-
const activeShadow = `
|
|
116
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
117
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
118
|
-
0 1px 0 0 #0c0c0c,
|
|
119
|
-
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
120
|
-
`;
|
|
121
84
|
return /* @__PURE__ */ React2.createElement(
|
|
122
85
|
Link,
|
|
123
86
|
{
|
|
124
87
|
href,
|
|
125
88
|
onClick,
|
|
126
|
-
className: `
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
onMouseLeave: (e) => {
|
|
133
|
-
e.currentTarget.style.boxShadow = baseShadow;
|
|
134
|
-
e.currentTarget.style.transform = "translateY(0px)";
|
|
135
|
-
},
|
|
136
|
-
onMouseDown: (e) => {
|
|
137
|
-
e.currentTarget.style.boxShadow = activeShadow;
|
|
138
|
-
e.currentTarget.style.transform = "translateY(2px)";
|
|
139
|
-
},
|
|
140
|
-
onMouseUp: (e) => {
|
|
141
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
142
|
-
}
|
|
89
|
+
className: `
|
|
90
|
+
relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
91
|
+
bg-[#068afe] hover:bg-[#0573d6] text-white text-[12px]
|
|
92
|
+
transition-colors duration-150 select-none group outline-none
|
|
93
|
+
${className}
|
|
94
|
+
`
|
|
143
95
|
},
|
|
144
|
-
/* @__PURE__ */ React2.createElement("span", { className: "
|
|
145
|
-
/* @__PURE__ */ React2.createElement("span", { className: "relative z-10 pt-1 tracking-wide text-white/95 group-hover:text-white transition-colors duration-150 flex items-center justify-center leading-none" }, children)
|
|
96
|
+
/* @__PURE__ */ React2.createElement("span", { className: "relative z-10 tracking-wide text-white/95 group-hover:text-white transition-colors duration-150 flex items-center justify-center leading-none" }, children)
|
|
146
97
|
);
|
|
147
98
|
};
|
|
148
99
|
|
|
@@ -160,64 +111,21 @@ var ThreeDActionButton = ({
|
|
|
160
111
|
className = ""
|
|
161
112
|
}) => {
|
|
162
113
|
const isInteractionDisabled = disabled || isLoading;
|
|
163
|
-
const baseShadow = `
|
|
164
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3),
|
|
165
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
166
|
-
0 3px 0 0 #0c0c0c,
|
|
167
|
-
0 6px 10px rgba(0, 0, 0, 0.3)
|
|
168
|
-
`;
|
|
169
|
-
const hoverShadow = `
|
|
170
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
171
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
172
|
-
0 4px 0 0 #0c0c0c,
|
|
173
|
-
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
174
|
-
`;
|
|
175
|
-
const activeShadow = `
|
|
176
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
177
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
178
|
-
0 1px 0 0 #0c0c0c,
|
|
179
|
-
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
180
|
-
`;
|
|
181
|
-
const disabledShadow = `
|
|
182
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.15),
|
|
183
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.3),
|
|
184
|
-
0 1px 0 0 #1c1c1c
|
|
185
|
-
`;
|
|
186
114
|
return /* @__PURE__ */ React3.createElement(
|
|
187
115
|
"button",
|
|
188
116
|
{
|
|
189
117
|
type,
|
|
190
118
|
disabled: isInteractionDisabled,
|
|
191
119
|
onClick,
|
|
120
|
+
style,
|
|
192
121
|
className: `
|
|
193
122
|
relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
194
|
-
bg-
|
|
195
|
-
transition-
|
|
196
|
-
${isInteractionDisabled ? "opacity-50 cursor-not-allowed" : "
|
|
123
|
+
bg-[#068afe] text-white text-[12px] tracking-widest
|
|
124
|
+
transition-colors duration-150 select-none group outline-none
|
|
125
|
+
${isInteractionDisabled ? "opacity-50 cursor-not-allowed" : "hover:bg-[#0573d6]"}
|
|
197
126
|
${className}
|
|
198
|
-
|
|
199
|
-
style: { boxShadow: isInteractionDisabled ? disabledShadow : baseShadow, ...style },
|
|
200
|
-
onMouseEnter: (e) => {
|
|
201
|
-
if (isInteractionDisabled) return;
|
|
202
|
-
e.currentTarget.style.boxShadow = hoverShadow;
|
|
203
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
204
|
-
},
|
|
205
|
-
onMouseLeave: (e) => {
|
|
206
|
-
if (isInteractionDisabled) return;
|
|
207
|
-
e.currentTarget.style.boxShadow = baseShadow;
|
|
208
|
-
e.currentTarget.style.transform = "translateY(0px)";
|
|
209
|
-
},
|
|
210
|
-
onMouseDown: (e) => {
|
|
211
|
-
if (isInteractionDisabled) return;
|
|
212
|
-
e.currentTarget.style.boxShadow = activeShadow;
|
|
213
|
-
e.currentTarget.style.transform = "translateY(2px)";
|
|
214
|
-
},
|
|
215
|
-
onMouseUp: (e) => {
|
|
216
|
-
if (isInteractionDisabled) return;
|
|
217
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
218
|
-
}
|
|
127
|
+
`
|
|
219
128
|
},
|
|
220
|
-
/* @__PURE__ */ React3.createElement("span", { className: "absolute inset-0 rounded-full bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none" }),
|
|
221
129
|
/* @__PURE__ */ React3.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 leading-none" }, isLoading ? /* @__PURE__ */ React3.createElement(HugeiconsIcon, { icon: Loading03Icon, size: 16, className: "animate-spin text-white" }) : children)
|
|
222
130
|
);
|
|
223
131
|
};
|
|
@@ -1059,7 +967,7 @@ var UniversalHuddleDetails = ({
|
|
|
1059
967
|
className: `relative w-11 h-6 rounded-full transition-colors outline-none shrink-0 ${isPrivate ? "bg-[#068afe]" : "bg-neutral-200"} ${!enableEdits && "opacity-50 cursor-not-allowed"}`
|
|
1060
968
|
},
|
|
1061
969
|
/* @__PURE__ */ React11.createElement("div", { className: `absolute top-1 left-1 bg-white w-4 h-4 rounded-full transition-transform ${isPrivate ? "translate-x-5" : "translate-x-0"}` })
|
|
1062
|
-
)), isPrivate && /* @__PURE__ */ React11.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-neutral-50 p-4 rounded-xl" }, /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React11.createElement("span", { className: "text-[12px] text-black tracking-tight" }, "Participants"), /* @__PURE__ */ React11.createElement("span", { className: "text-[11px] text-[#068afe] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ React11.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-neutral-200 text-black text-[11px] tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ React11.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ React11.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ React11.createElement("a", { href: `/app/join/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-[#068afe] text-[#068afe] rounded-full text-center text-[
|
|
970
|
+
)), isPrivate && /* @__PURE__ */ React11.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-neutral-50 p-4 rounded-xl" }, /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React11.createElement("span", { className: "text-[12px] text-black tracking-tight" }, "Participants"), /* @__PURE__ */ React11.createElement("span", { className: "text-[11px] text-[#068afe] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ React11.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-neutral-200 text-black text-[11px] tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ React11.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ React11.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ React11.createElement("a", { href: `/app/join/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-[#068afe] text-[#068afe] rounded-full text-center text-[12px] transition-colors hover:bg-[#068afe]/5" }, "Join Huddle"), /* @__PURE__ */ React11.createElement("a", { href: `/app/assets/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-neutral-200 text-black rounded-full text-center text-[12px] transition-colors hover:bg-neutral-50" }, "Huddle Assets"), canDelete && liveStatus === "SCHEDULED" && /* @__PURE__ */ React11.createElement("button", { onClick: () => setConfirmDialog("CANCEL"), className: "flex-1 w-full py-2.5 bg-transparent border border-rose-200 text-rose-600 rounded-full text-center text-[12px] transition-colors hover:bg-rose-50" }, "Cancel Huddle"), canDelete && liveStatus !== "SCHEDULED" && /* @__PURE__ */ React11.createElement("button", { onClick: () => setConfirmDialog("DELETE"), className: "flex-1 w-full py-2.5 bg-transparent border border-rose-200 text-rose-600 rounded-full text-center text-[12px] transition-colors hover:bg-rose-50" }, "Delete Huddle"))), /* @__PURE__ */ React11.createElement(
|
|
1063
971
|
CalendarPicker,
|
|
1064
972
|
{
|
|
1065
973
|
isOpen: calendarMode !== null,
|
|
@@ -2992,49 +2900,30 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2992
2900
|
"h2",
|
|
2993
2901
|
{
|
|
2994
2902
|
ref: titleRef,
|
|
2995
|
-
className:
|
|
2996
|
-
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
2903
|
+
className: "text-3xl tracking-tight text-black leading-[1.1]"
|
|
2997
2904
|
},
|
|
2998
2905
|
headline
|
|
2999
2906
|
))), /* @__PURE__ */ React27.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-6 gap-6" }, features.map((f, i) => {
|
|
3000
2907
|
const isWhite = i === 0;
|
|
3001
|
-
const
|
|
2908
|
+
const isBrand = i === 1;
|
|
3002
2909
|
const isNeutral = i === 2;
|
|
3003
2910
|
const getBgStyle = () => {
|
|
3004
|
-
if (isWhite) return "bg-white";
|
|
3005
|
-
if (
|
|
3006
|
-
if (isNeutral) return "bg-neutral-
|
|
3007
|
-
return "bg-neutral-200";
|
|
3008
|
-
};
|
|
3009
|
-
const getShadowStyle = () => {
|
|
3010
|
-
if (isBlack) return `
|
|
3011
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.2),
|
|
3012
|
-
inset 0 -3px 0 0 rgba(0, 0, 0, 0.3),
|
|
3013
|
-
0 4px 0 0 #0c0c0c,
|
|
3014
|
-
0 12px 24px rgba(0, 0, 0, 0.1)
|
|
3015
|
-
`;
|
|
3016
|
-
return "none";
|
|
2911
|
+
if (isWhite) return "bg-white border border-neutral-200";
|
|
2912
|
+
if (isBrand) return "bg-[#068afe] border border-[#068afe]";
|
|
2913
|
+
if (isNeutral) return "bg-neutral-100 border border-transparent";
|
|
2914
|
+
return "bg-white border border-neutral-200";
|
|
3017
2915
|
};
|
|
3018
|
-
const textColor =
|
|
3019
|
-
const subTextColor =
|
|
3020
|
-
const labelColor =
|
|
2916
|
+
const textColor = isBrand ? "text-white" : "text-black";
|
|
2917
|
+
const subTextColor = isBrand ? "text-white/80" : "text-neutral-600";
|
|
2918
|
+
const labelColor = isBrand ? "text-white/70" : "text-neutral-500";
|
|
3021
2919
|
return /* @__PURE__ */ React27.createElement(
|
|
3022
2920
|
"div",
|
|
3023
2921
|
{
|
|
3024
2922
|
key: i,
|
|
3025
|
-
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-
|
|
3026
|
-
style: { boxShadow: getShadowStyle() }
|
|
2923
|
+
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-300 group text-left ${getBgStyle()} ${f.size}`
|
|
3027
2924
|
},
|
|
3028
|
-
/* @__PURE__ */ React27.createElement(
|
|
3029
|
-
|
|
3030
|
-
{
|
|
3031
|
-
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
3032
|
-
style: { backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }
|
|
3033
|
-
}
|
|
3034
|
-
),
|
|
3035
|
-
isBlack && /* @__PURE__ */ React27.createElement("span", { className: "absolute inset-0 rounded-2xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" }),
|
|
3036
|
-
/* @__PURE__ */ React27.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ React27.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBlack ? "text-white/5" : "text-black/5"}` }, /* @__PURE__ */ React27.createElement(HugeiconsIcon20, { icon: f.icon, size: 180 }))),
|
|
3037
|
-
/* @__PURE__ */ React27.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ React27.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ React27.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ React27.createElement("div", { className: `p-2 rounded-full transition-colors ${isBlack ? "bg-white/10" : "bg-white/50 backdrop-blur-sm"}` }, /* @__PURE__ */ React27.createElement(HugeiconsIcon20, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ React27.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React27.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ React27.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
2925
|
+
/* @__PURE__ */ React27.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ React27.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBrand ? "text-white/10" : "text-black/5"}` }, /* @__PURE__ */ React27.createElement(HugeiconsIcon20, { icon: f.icon, size: 180 }))),
|
|
2926
|
+
/* @__PURE__ */ React27.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ React27.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ React27.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ React27.createElement("div", { className: `p-2 rounded-full transition-colors ${isBrand ? "bg-white/20" : "bg-neutral-100"}` }, /* @__PURE__ */ React27.createElement(HugeiconsIcon20, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ React27.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React27.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ React27.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
3038
2927
|
);
|
|
3039
2928
|
})))));
|
|
3040
2929
|
};
|
|
@@ -4986,10 +4875,10 @@ var UniversalHuddlesPage = ({
|
|
|
4986
4875
|
onHuddleClick,
|
|
4987
4876
|
onCreateHuddle
|
|
4988
4877
|
}) => {
|
|
4989
|
-
return /* @__PURE__ */ React49.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React49.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React49.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ React49.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ React49.createElement("h2", { className: "text-black text-xl tracking-tight" }, headerTitle),
|
|
4878
|
+
return /* @__PURE__ */ React49.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React49.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React49.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ React49.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ React49.createElement("h2", { className: "text-black text-xl tracking-tight" }, headerTitle), /* @__PURE__ */ React49.createElement(
|
|
4990
4879
|
"button",
|
|
4991
4880
|
{
|
|
4992
|
-
onClick: onCreateHuddle,
|
|
4881
|
+
onClick: () => onCreateHuddle?.(),
|
|
4993
4882
|
className: "shrink-0 px-4 py-1.5 border border-neutral-200 text-black text-[12px] tracking-wide rounded-full hover:bg-neutral-50 transition-colors outline-none"
|
|
4994
4883
|
},
|
|
4995
4884
|
"Create new"
|
|
@@ -5301,7 +5190,8 @@ import {
|
|
|
5301
5190
|
CancelCircleIcon as CancelCircleIcon11,
|
|
5302
5191
|
ArrowUpRight01Icon as ArrowUpRight01Icon3,
|
|
5303
5192
|
Settings03Icon,
|
|
5304
|
-
Logout01Icon
|
|
5193
|
+
Logout01Icon,
|
|
5194
|
+
Tick02Icon as Tick02Icon2
|
|
5305
5195
|
} from "@hugeicons/core-free-icons";
|
|
5306
5196
|
var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5307
5197
|
const [loaded, setLoaded] = useState37(false);
|
|
@@ -5354,9 +5244,9 @@ var UniversalHome2 = ({
|
|
|
5354
5244
|
setIsResolving(true);
|
|
5355
5245
|
try {
|
|
5356
5246
|
await onResolveInvite(selectedNotif, resolution);
|
|
5247
|
+
window.location.reload();
|
|
5357
5248
|
} catch (error) {
|
|
5358
5249
|
toast13.error("Failed to process invitation");
|
|
5359
|
-
} finally {
|
|
5360
5250
|
setIsResolving(false);
|
|
5361
5251
|
}
|
|
5362
5252
|
};
|
|
@@ -5469,11 +5359,11 @@ var UniversalHome2 = ({
|
|
|
5469
5359
|
},
|
|
5470
5360
|
/* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: Logout01Icon, size: 15 }),
|
|
5471
5361
|
"Log Out"
|
|
5472
|
-
)))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#068afe] hover:text-[#068afe] transition-colors outline-none flex items-center gap-2 text-[11px] tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-[15px] text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: CancelCircleIcon11, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, /* @__PURE__ */ React51.createElement("h4", { className: "text-[14px] text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-[12px] text-neutral-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" &&
|
|
5362
|
+
)))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#068afe] hover:text-[#068afe] transition-colors outline-none flex items-center gap-2 text-[11px] tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-[15px] text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: CancelCircleIcon11, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React51.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-[10px] tracking-wide" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: Tick02Icon2, size: 12 }), " Action Completed")) : /* @__PURE__ */ React51.createElement("h4", { className: "text-[14px] text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-[12px] text-neutral-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
|
|
5473
5363
|
"button",
|
|
5474
5364
|
{
|
|
5475
5365
|
onClick: () => handleResolve("ACCEPTED"),
|
|
5476
|
-
disabled: isResolving,
|
|
5366
|
+
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5477
5367
|
className: "flex-1 py-2.5 rounded-full bg-black text-white text-[12px] tracking-wide transition-all outline-none hover:bg-neutral-800 flex justify-center items-center disabled:opacity-50"
|
|
5478
5368
|
},
|
|
5479
5369
|
isResolving ? /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: Loading03Icon24, className: "animate-spin", size: 16 }) : "Accept"
|
|
@@ -5481,7 +5371,7 @@ var UniversalHome2 = ({
|
|
|
5481
5371
|
"button",
|
|
5482
5372
|
{
|
|
5483
5373
|
onClick: () => handleResolve("REJECTED"),
|
|
5484
|
-
disabled: isResolving,
|
|
5374
|
+
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5485
5375
|
className: "flex-1 py-2.5 rounded-full bg-white border border-neutral-200 text-black text-[12px] tracking-wide transition-all outline-none hover:bg-neutral-50 flex justify-center items-center disabled:opacity-50"
|
|
5486
5376
|
},
|
|
5487
5377
|
"Reject"
|
|
@@ -5769,7 +5659,7 @@ var UniversalSettings = ({
|
|
|
5769
5659
|
}, disabled: isInviting, className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-xs tracking-wide" }, "Cancel"))) : isMembersLoading || isTyping ? /* @__PURE__ */ React52.createElement(PageSpinner8, null) : /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", null, members.length === 0 ? /* @__PURE__ */ React52.createElement("p", { className: "text-[12px] text-neutral-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ React52.createElement("div", { key: member.id, onClick: () => setExpandedId(member.id), className: "flex items-center justify-between py-3 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React52.createElement(MemberAvatar3, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ React52.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ React52.createElement("p", { className: "text-[13px] text-black truncate" }, member.fullName), /* @__PURE__ */ React52.createElement("p", { className: "text-[11px] text-neutral-500 capitalize truncate" }, member.role.toLowerCase())))))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React52.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage - 1), disabled: membersCurrentPage <= 1 || isMembersLoading, className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon39, { icon: ArrowLeft01Icon18, size: 14 })), /* @__PURE__ */ React52.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage + 1), disabled: membersCurrentPage >= membersTotalPages || isMembersLoading || membersTotalPages === 0, className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon39, { icon: ArrowRight01Icon14, size: 14 })))))))), /* @__PURE__ */ React52.createElement(ReusableOptions, { isOpen: isStatusModalOpen, onClose: () => setIsStatusModalOpen(false), title: "Status Filter", options: ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"], selectedOption: activeStatusFilter, onSelect: (status) => onStatusFilterChange(status) }), /* @__PURE__ */ React52.createElement(ReusableOptions, { isOpen: isRoleModalOpen, onClose: () => setIsRoleModalOpen(false), title: "Role Filter", options: ["ALL", "ADMIN", "MANAGER", "MEMBER", "GUEST"], selectedOption: activeRoleFilter, onSelect: (role) => onRoleFilterChange(role) }), /* @__PURE__ */ React52.createElement(ReusableOptions, { isOpen: !!roleEditTarget, onClose: () => setRoleEditTarget(null), title: "Modify Access Role", options: ["ADMIN", "MANAGER", "MEMBER"], selectedOption: roleEditTarget?.role || "", onSelect: handleRoleUpdate })), activeTab === "ORGANIZATION" && isOrg && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Workspace Details"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your organizational identity and handles.")), !canManage && /* @__PURE__ */ React52.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon39, { icon: CircleLock02Icon3, size: 18, className: "text-current" }))), /* @__PURE__ */ React52.createElement("form", { className: "flex flex-col gap-8 w-full max-w-5xl", onSubmit: handleSaveOrganization, autoComplete: "off" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Workspace Name", value: orgName, onChange: handleOrgNameChange, disabled: !canManage || isSavingOrg, placeholder: "Acme Corporation", maxLength: 50 }), /* @__PURE__ */ React52.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ React52.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Workspace Handle"), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-200 focus-within:border-black transition-all duration-300 overflow-hidden" }, /* @__PURE__ */ React52.createElement("input", { type: "text", value: orgSlug, disabled: !canManage || isSavingOrg, onChange: (e) => handleOrgSlugChange(e.target.value), spellCheck: "false", autoComplete: "off", className: "w-full pr-10 pl-0 py-3 text-sm bg-transparent text-black outline-none disabled:opacity-50 disabled:cursor-not-allowed", placeholder: "workspace-handle" }), /* @__PURE__ */ React52.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ React52.createElement(InputSpinner3, null), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === false && /* @__PURE__ */ React52.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ React52.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React52.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === true && /* @__PURE__ */ React52.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ React52.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React52.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ React52.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: isOrgSaveDisabled, isLoading: isSavingOrg, className: "min-w-32" }, "Save Changes"), hasOrgChanges && !isSavingOrg && canManage && /* @__PURE__ */ React52.createElement("button", { type: "button", onClick: () => {
|
|
5770
5660
|
setOrgName(initialOrgName || "");
|
|
5771
5661
|
setOrgSlug(initialOrgSlug || "");
|
|
5772
|
-
}, className: "text-[11px] tracking-widest text-neutral-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-500" }, "Update your system display name and contact email."))), /* @__PURE__ */ React52.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "First Name", value: firstName, onChange: (v) => setFirstName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "First name", maxLength: 50 }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Last Name", value: lastName, onChange: (v) => setLastName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "Last name", maxLength: 50 })), /* @__PURE__ */ React52.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ React52.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ React52.createElement("input", { type: "email", value: initialEmail, disabled: true, className: "w-full pb-3 pt-3 text-sm bg-transparent text-neutral-400 border-b border-neutral-200 outline-none cursor-not-allowed" })), /* @__PURE__ */ React52.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ React52.createElement("div", { className: "bg-white rounded-2xl p-6 w-full flex flex-col sm:flex-row sm:items-center justify-between gap-6 border border-neutral-100" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ React52.createElement("p", { className: "text-[11px] text-neutral-400 tracking-[0.2em] mb-2 uppercase" }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ React52.createElement("div", { className: "h-8 w-32 bg-neutral-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon39, { icon: Coins01Icon, size: 28, className: "text-[#
|
|
5662
|
+
}, className: "text-[11px] tracking-widest text-neutral-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-500" }, "Update your system display name and contact email."))), /* @__PURE__ */ React52.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "First Name", value: firstName, onChange: (v) => setFirstName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "First name", maxLength: 50 }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Last Name", value: lastName, onChange: (v) => setLastName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "Last name", maxLength: 50 })), /* @__PURE__ */ React52.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ React52.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ React52.createElement("input", { type: "email", value: initialEmail, disabled: true, className: "w-full pb-3 pt-3 text-sm bg-transparent text-neutral-400 border-b border-neutral-200 outline-none cursor-not-allowed" })), /* @__PURE__ */ React52.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ React52.createElement("div", { className: "bg-white rounded-2xl p-6 w-full flex flex-col sm:flex-row sm:items-center justify-between gap-6 border border-neutral-100" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ React52.createElement("p", { className: "text-[11px] text-neutral-400 tracking-[0.2em] mb-2 uppercase" }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ React52.createElement("div", { className: "h-8 w-32 bg-neutral-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon39, { icon: Coins01Icon, size: 28, className: "text-[#000000]" }), /* @__PURE__ */ React52.createElement("span", { className: "text-3xl text-black tracking-tight" }, aiCredits)), /* @__PURE__ */ React52.createElement("p", { className: "text-[11px] text-neutral-500 mt-4 leading-relaxed" }, "AI credits are consumed when generating intelligent summaries, transcriptions, and automated huddle insights.")), /* @__PURE__ */ React52.createElement("button", { onClick: onTopUp, className: "w-12 h-12 rounded-full border border-neutral-200 flex items-center justify-center text-black hover:bg-neutral-50 transition-colors outline-none shrink-0", "aria-label": "Top Up Credits" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon39, { icon: PlusSignIcon3, size: 20 })))));
|
|
5773
5663
|
};
|
|
5774
5664
|
|
|
5775
5665
|
// src/components/UniversalCreateHuddle.tsx
|
|
@@ -5784,7 +5674,7 @@ import {
|
|
|
5784
5674
|
Calendar01Icon as Calendar01Icon2,
|
|
5785
5675
|
Clock01Icon as Clock01Icon2,
|
|
5786
5676
|
Globe02Icon as Globe02Icon2,
|
|
5787
|
-
Tick02Icon as
|
|
5677
|
+
Tick02Icon as Tick02Icon3,
|
|
5788
5678
|
CircleLock02Icon as CircleLock02Icon4
|
|
5789
5679
|
} from "@hugeicons/core-free-icons";
|
|
5790
5680
|
var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
@@ -5891,7 +5781,7 @@ var UniversalCreateHuddle = ({
|
|
|
5891
5781
|
setIsSubmitting(false);
|
|
5892
5782
|
}
|
|
5893
5783
|
};
|
|
5894
|
-
return /* @__PURE__ */ React53.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React53.createElement(ManagedToaster, null), /* @__PURE__ */ React53.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React53.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#068afe] hover:text-[#068afe] transition-colors text-[13px] outline-none" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon: ArrowLeft01Icon19, size: 16 }), " Back")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ React53.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Create Huddle"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-500" }, "Schedule a new workspace huddle and manage participant access.")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React53.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSubmit, autoComplete: "off" }, !canManage && /* @__PURE__ */ React53.createElement("div", { className: "flex items-start gap-3 p-4 bg-neutral-50 rounded-xl" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon: CircleLock02Icon4, size: 20, className: "text-neutral-500 shrink-0 mt-0.5" }), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[13px] text-black
|
|
5784
|
+
return /* @__PURE__ */ React53.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React53.createElement(ManagedToaster, null), /* @__PURE__ */ React53.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React53.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#068afe] hover:text-[#068afe] transition-colors text-[13px] outline-none" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon: ArrowLeft01Icon19, size: 16 }), " Back")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ React53.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Create Huddle"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-500" }, "Schedule a new workspace huddle and manage participant access.")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React53.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSubmit, autoComplete: "off" }, !canManage && /* @__PURE__ */ React53.createElement("div", { className: "flex items-start gap-3 p-4 bg-neutral-50 rounded-xl" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon: CircleLock02Icon4, size: 20, className: "text-neutral-500 shrink-0 mt-0.5" }), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[13px] text-black tracking-tight" }, "Access Restricted"), /* @__PURE__ */ React53.createElement("span", { className: "text-[12px] text-neutral-500 mt-1 leading-relaxed" }, "You do not have sufficient permissions to access this page. Contact organization admin or manager."))), /* @__PURE__ */ React53.createElement(
|
|
5895
5785
|
TextInput,
|
|
5896
5786
|
{
|
|
5897
5787
|
label: "Huddle Subject",
|
|
@@ -5991,7 +5881,7 @@ var UniversalCreateHuddle = ({
|
|
|
5991
5881
|
className: "flex items-center justify-between p-3 rounded-xl cursor-pointer hover:bg-neutral-50 transition-colors select-none"
|
|
5992
5882
|
},
|
|
5993
5883
|
/* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-3 min-w-0 flex-1" }, /* @__PURE__ */ React53.createElement(MemberAvatar4, { src: member.avatarUrl, sizeClass: "w-9 h-9" }), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[13px] text-black truncate" }, member.fullName), /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] text-neutral-400 capitalize truncate" }, member.role.toLowerCase()))),
|
|
5994
|
-
/* @__PURE__ */ React53.createElement("div", { className: "shrink-0 pl-3" }, /* @__PURE__ */ React53.createElement("div", { className: `w-5 h-5 rounded-full flex items-center justify-center transition-colors ${isChecked ? "bg-[#068afe]" : "border border-neutral-300 bg-white"}` }, isChecked && /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon:
|
|
5884
|
+
/* @__PURE__ */ React53.createElement("div", { className: "shrink-0 pl-3" }, /* @__PURE__ */ React53.createElement("div", { className: `w-5 h-5 rounded-full flex items-center justify-center transition-colors ${isChecked ? "bg-[#068afe]" : "border border-neutral-300 bg-white"}` }, isChecked && /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon: Tick02Icon3, size: 14, className: "text-white" })))
|
|
5995
5885
|
);
|
|
5996
5886
|
})), /* @__PURE__ */ React53.createElement("div", { className: "p-4 flex items-center justify-between shrink-0 bg-white" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[10px] text-neutral-400 tracking-widest" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ React53.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React53.createElement(
|
|
5997
5887
|
"button",
|