@sudobility/building_blocks 0.0.202 → 0.0.204
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/{SafeSubscriptionContext-CNuEKeqJ.js → SafeSubscriptionContext-D4q_l1Kw.js} +8 -2
- package/dist/SafeSubscriptionContext-D4q_l1Kw.js.map +1 -0
- package/dist/{SubscriptionProviderWrapper-CBJ_psbw.js → SubscriptionProviderWrapper-B-B08xjD.js} +2 -2
- package/dist/{SubscriptionProviderWrapper-CBJ_psbw.js.map → SubscriptionProviderWrapper-B-B08xjD.js.map} +1 -1
- package/dist/components/pages/login-page.d.ts +3 -1
- package/dist/firebase.js +2 -2
- package/dist/index.js +209 -177
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/SafeSubscriptionContext-CNuEKeqJ.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b, a, S, u } from "./SafeSubscriptionContext-
|
|
1
|
+
import { b, a, S, u } from "./SafeSubscriptionContext-D4q_l1Kw.js";
|
|
2
2
|
import { clsx } from "clsx";
|
|
3
3
|
import { twMerge } from "tailwind-merge";
|
|
4
4
|
import i18n from "i18next";
|
|
@@ -10,7 +10,7 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
|
10
10
|
import React, { useState, useRef, useMemo, useCallback, useEffect } from "react";
|
|
11
11
|
import { TopbarProvider, Topbar, TopbarLeft, TopbarNavigation, TopbarLogo, Logo, TopbarCenter, TopbarRight, TopbarActions, TopbarMobileContent, Footer, FooterCompact, FooterCompactLeft, FooterVersion, FooterCopyright, FooterCompactRight, FooterGrid, FooterLinkSection, FooterLink, FooterBottom, FooterBrand, FooterSocialLinks, LayoutProvider, AspectFitView, Label, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, MasterListItem, MasterDetailLayout, Section } from "@sudobility/components";
|
|
12
12
|
import { ChevronDownIcon, CalendarDaysIcon, PaintBrushIcon, LanguageIcon, ChevronRightIcon, EnvelopeIcon, DocumentTextIcon, CogIcon, HomeIcon } from "@heroicons/react/24/outline";
|
|
13
|
-
import { GRADIENT_CLASSES, textVariants } from "@sudobility/design";
|
|
13
|
+
import { ui, GRADIENT_CLASSES, buttonVariant, textVariants, colors, focusRing } from "@sudobility/design";
|
|
14
14
|
import { cva } from "class-variance-authority";
|
|
15
15
|
function cn(...inputs) {
|
|
16
16
|
return twMerge(clsx(inputs));
|
|
@@ -103,12 +103,18 @@ const LanguageSelector = ({
|
|
|
103
103
|
"aria-haspopup": "listbox",
|
|
104
104
|
children: [
|
|
105
105
|
/* @__PURE__ */ jsx("span", { className: "text-lg leading-none", children: currentLang == null ? void 0 : currentLang.flag }),
|
|
106
|
-
/* @__PURE__ */ jsx(
|
|
106
|
+
/* @__PURE__ */ jsx(
|
|
107
|
+
"span",
|
|
108
|
+
{
|
|
109
|
+
className: `hidden sm:block text-sm font-medium ${ui.text.label}`,
|
|
110
|
+
children: currentLang == null ? void 0 : currentLang.name
|
|
111
|
+
}
|
|
112
|
+
),
|
|
107
113
|
/* @__PURE__ */ jsx(
|
|
108
114
|
ChevronDownIcon,
|
|
109
115
|
{
|
|
110
116
|
className: cn(
|
|
111
|
-
|
|
117
|
+
`h-4 w-4 ${ui.text.muted} transition-transform`,
|
|
112
118
|
isOpen && "rotate-180"
|
|
113
119
|
)
|
|
114
120
|
}
|
|
@@ -121,8 +127,8 @@ const LanguageSelector = ({
|
|
|
121
127
|
{
|
|
122
128
|
className: cn(
|
|
123
129
|
"absolute right-0 mt-2 w-48 py-1 z-50",
|
|
124
|
-
|
|
125
|
-
|
|
130
|
+
ui.background.surface,
|
|
131
|
+
`border ${ui.border.default}`,
|
|
126
132
|
"rounded-lg shadow-lg"
|
|
127
133
|
),
|
|
128
134
|
role: "listbox",
|
|
@@ -141,7 +147,7 @@ const LanguageSelector = ({
|
|
|
141
147
|
"aria-selected": lang.code === currentLanguage,
|
|
142
148
|
children: [
|
|
143
149
|
/* @__PURE__ */ jsx("span", { className: "text-lg leading-none", children: lang.flag }),
|
|
144
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
150
|
+
/* @__PURE__ */ jsx("span", { className: `text-sm ${ui.text.label}`, children: lang.name })
|
|
145
151
|
]
|
|
146
152
|
},
|
|
147
153
|
lang.code
|
|
@@ -151,7 +157,7 @@ const LanguageSelector = ({
|
|
|
151
157
|
] });
|
|
152
158
|
}
|
|
153
159
|
return /* @__PURE__ */ jsxs("div", { ref: dropdownRef, className: cn("space-y-2", className), children: [
|
|
154
|
-
/* @__PURE__ */ jsx("label", { className:
|
|
160
|
+
/* @__PURE__ */ jsx("label", { className: `${ui.text.label} flex items-center gap-2`, children: /* @__PURE__ */ jsx("span", { children: label }) }),
|
|
155
161
|
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
156
162
|
/* @__PURE__ */ jsxs(
|
|
157
163
|
"button",
|
|
@@ -159,8 +165,8 @@ const LanguageSelector = ({
|
|
|
159
165
|
onClick: () => setIsOpen(!isOpen),
|
|
160
166
|
className: cn(
|
|
161
167
|
"flex items-center justify-between w-full px-3 py-2 text-left",
|
|
162
|
-
|
|
163
|
-
|
|
168
|
+
ui.background.surface,
|
|
169
|
+
`border ${ui.border.default}`,
|
|
164
170
|
"rounded-md",
|
|
165
171
|
"hover:bg-gray-50 dark:hover:bg-gray-700",
|
|
166
172
|
"transition-colors"
|
|
@@ -170,13 +176,13 @@ const LanguageSelector = ({
|
|
|
170
176
|
children: [
|
|
171
177
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
172
178
|
/* @__PURE__ */ jsx("span", { className: "text-lg leading-none", children: currentLang == null ? void 0 : currentLang.flag }),
|
|
173
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
179
|
+
/* @__PURE__ */ jsx("span", { className: `text-sm ${ui.text.label}`, children: currentLang == null ? void 0 : currentLang.name })
|
|
174
180
|
] }),
|
|
175
181
|
/* @__PURE__ */ jsx(
|
|
176
182
|
ChevronDownIcon,
|
|
177
183
|
{
|
|
178
184
|
className: cn(
|
|
179
|
-
|
|
185
|
+
`h-4 w-4 ${ui.text.muted} transition-transform`,
|
|
180
186
|
isOpen && "rotate-180"
|
|
181
187
|
)
|
|
182
188
|
}
|
|
@@ -189,8 +195,8 @@ const LanguageSelector = ({
|
|
|
189
195
|
{
|
|
190
196
|
className: cn(
|
|
191
197
|
"absolute left-0 right-0 mt-1 py-1 z-50",
|
|
192
|
-
|
|
193
|
-
|
|
198
|
+
ui.background.surface,
|
|
199
|
+
`border ${ui.border.default}`,
|
|
194
200
|
"rounded-md shadow-lg"
|
|
195
201
|
),
|
|
196
202
|
role: "listbox",
|
|
@@ -209,7 +215,7 @@ const LanguageSelector = ({
|
|
|
209
215
|
"aria-selected": lang.code === currentLanguage,
|
|
210
216
|
children: [
|
|
211
217
|
/* @__PURE__ */ jsx("span", { className: "text-lg leading-none", children: lang.flag }),
|
|
212
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
218
|
+
/* @__PURE__ */ jsx("span", { className: `text-sm ${ui.text.label}`, children: lang.name })
|
|
213
219
|
]
|
|
214
220
|
},
|
|
215
221
|
lang.code
|
|
@@ -217,7 +223,7 @@ const LanguageSelector = ({
|
|
|
217
223
|
}
|
|
218
224
|
)
|
|
219
225
|
] }),
|
|
220
|
-
helperText && /* @__PURE__ */ jsx("p", { className:
|
|
226
|
+
helperText && /* @__PURE__ */ jsx("p", { className: `text-xs ${ui.text.muted}`, children: helperText })
|
|
221
227
|
] });
|
|
222
228
|
};
|
|
223
229
|
const DefaultLinkComponent$1 = ({
|
|
@@ -371,7 +377,10 @@ const DefaultConnectButton = ({ onClick, content = "Connect Wallet", className,
|
|
|
371
377
|
{
|
|
372
378
|
onClick,
|
|
373
379
|
className: cn(
|
|
374
|
-
useGradient ? GRADIENT_CLASSES.headerButton :
|
|
380
|
+
useGradient ? GRADIENT_CLASSES.headerButton : cn(
|
|
381
|
+
"px-4 py-2 text-sm font-medium rounded-lg transition-colors",
|
|
382
|
+
buttonVariant("primary")
|
|
383
|
+
),
|
|
375
384
|
className
|
|
376
385
|
),
|
|
377
386
|
children: content
|
|
@@ -380,12 +389,12 @@ const DefaultConnectButton = ({ onClick, content = "Connect Wallet", className,
|
|
|
380
389
|
const FallbackWalletDisplay = ({ walletAddress, onDisconnect }) => {
|
|
381
390
|
const truncatedAddress = `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)}`;
|
|
382
391
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
383
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
392
|
+
/* @__PURE__ */ jsx("span", { className: `text-sm font-medium ${ui.text.label}`, children: truncatedAddress }),
|
|
384
393
|
/* @__PURE__ */ jsx(
|
|
385
394
|
"button",
|
|
386
395
|
{
|
|
387
396
|
onClick: () => onDisconnect(),
|
|
388
|
-
className:
|
|
397
|
+
className: `text-xs ${ui.text.muted} hover:text-gray-700 dark:hover:text-gray-200`,
|
|
389
398
|
children: "Disconnect"
|
|
390
399
|
}
|
|
391
400
|
)
|
|
@@ -447,9 +456,9 @@ const AppTopBarWithWallet = ({
|
|
|
447
456
|
const breadcrumbContainerVariants = cva("border-b", {
|
|
448
457
|
variants: {
|
|
449
458
|
variant: {
|
|
450
|
-
default:
|
|
459
|
+
default: `${ui.background.surface} ${ui.border.default}`,
|
|
451
460
|
transparent: "bg-transparent border-transparent",
|
|
452
|
-
subtle:
|
|
461
|
+
subtle: `${ui.background.subtle} ${ui.border.default}`
|
|
453
462
|
}
|
|
454
463
|
},
|
|
455
464
|
defaultVariants: {
|
|
@@ -729,7 +738,7 @@ const ShareDropdown = ({
|
|
|
729
738
|
isOpen && /* @__PURE__ */ jsxs(
|
|
730
739
|
"div",
|
|
731
740
|
{
|
|
732
|
-
className:
|
|
741
|
+
className: `absolute right-0 top-10 z-[999999] w-40 ${ui.background.surface} rounded-lg shadow-xl border ${ui.border.default} py-1`,
|
|
733
742
|
role: "menu",
|
|
734
743
|
"aria-label": "Share options",
|
|
735
744
|
onKeyDown: handleMenuKeyDown,
|
|
@@ -751,7 +760,7 @@ const ShareDropdown = ({
|
|
|
751
760
|
/* @__PURE__ */ jsx(
|
|
752
761
|
"div",
|
|
753
762
|
{
|
|
754
|
-
className:
|
|
763
|
+
className: `border-t ${ui.border.default} my-1`,
|
|
755
764
|
role: "separator"
|
|
756
765
|
}
|
|
757
766
|
),
|
|
@@ -785,7 +794,7 @@ const ShareDropdown = ({
|
|
|
785
794
|
hasImageShare && /* @__PURE__ */ jsx(
|
|
786
795
|
"div",
|
|
787
796
|
{
|
|
788
|
-
className:
|
|
797
|
+
className: `border-t ${ui.border.default} my-1`,
|
|
789
798
|
role: "separator"
|
|
790
799
|
}
|
|
791
800
|
),
|
|
@@ -799,7 +808,7 @@ const ShareDropdown = ({
|
|
|
799
808
|
className: "w-full flex items-center px-3 py-1.5 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer transition-colors focus:bg-gray-50 dark:focus:bg-gray-700 focus:outline-none",
|
|
800
809
|
role: "menuitem",
|
|
801
810
|
tabIndex: focusedIndex === sharePlatforms.length + extraItemCount ? 0 : -1,
|
|
802
|
-
children: /* @__PURE__ */ jsx("span", { className:
|
|
811
|
+
children: /* @__PURE__ */ jsx("span", { className: `text-sm ${ui.text.label}`, children: showCopiedFeedback ? "Copied!" : "Copy Link" })
|
|
803
812
|
}
|
|
804
813
|
)
|
|
805
814
|
]
|
|
@@ -848,15 +857,15 @@ const AppBreadcrumbs = ({
|
|
|
848
857
|
}
|
|
849
858
|
return /* @__PURE__ */ jsx("div", { className: cn(breadcrumbContainerVariants({ variant }), className), children: /* @__PURE__ */ jsx("div", { className: cn("max-w-7xl mx-auto px-4 py-2", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
850
859
|
/* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx("ol", { className: "flex items-center text-sm space-x-2", children: items.map((item, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
851
|
-
/* @__PURE__ */ jsx("li", { children: item.current || !item.href ? /* @__PURE__ */ jsx("span", { className:
|
|
860
|
+
/* @__PURE__ */ jsx("li", { children: item.current || !item.href ? /* @__PURE__ */ jsx("span", { className: ui.text.body, children: item.label }) : /* @__PURE__ */ jsx(
|
|
852
861
|
"a",
|
|
853
862
|
{
|
|
854
863
|
href: item.href,
|
|
855
|
-
className:
|
|
864
|
+
className: `${ui.text.linkSubtle} transition-colors`,
|
|
856
865
|
children: item.label
|
|
857
866
|
}
|
|
858
867
|
) }),
|
|
859
|
-
index < items.length - 1 && /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("span", { className:
|
|
868
|
+
index < items.length - 1 && /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("span", { className: ui.text.muted, children: "/" }) })
|
|
860
869
|
] }, index)) }) }),
|
|
861
870
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
862
871
|
talkToFounder && /* @__PURE__ */ jsx(TalkToFounderButton, { config: talkToFounder }),
|
|
@@ -920,7 +929,7 @@ const AppFooter = ({
|
|
|
920
929
|
LinkComponent,
|
|
921
930
|
{
|
|
922
931
|
href: companyUrl,
|
|
923
|
-
className:
|
|
932
|
+
className: cn(ui.text.linkSubtle, ui.transition.default),
|
|
924
933
|
children: companyName
|
|
925
934
|
}
|
|
926
935
|
) : void 0;
|
|
@@ -962,7 +971,7 @@ const AppFooter = ({
|
|
|
962
971
|
link.href,
|
|
963
972
|
link.onClick
|
|
964
973
|
),
|
|
965
|
-
className:
|
|
974
|
+
className: cn(ui.text.linkMuted, ui.transition.default),
|
|
966
975
|
children: link.label
|
|
967
976
|
}
|
|
968
977
|
) : /* @__PURE__ */ jsx(
|
|
@@ -970,7 +979,7 @@ const AppFooter = ({
|
|
|
970
979
|
{
|
|
971
980
|
href: link.href,
|
|
972
981
|
onClick: createTrackedLinkHandler(link.label, link.href),
|
|
973
|
-
className:
|
|
982
|
+
className: cn(ui.text.linkMuted, ui.transition.default),
|
|
974
983
|
children: link.label
|
|
975
984
|
}
|
|
976
985
|
) }, link.href || index)) })
|
|
@@ -1039,7 +1048,7 @@ const AppFooterForHomePage = ({
|
|
|
1039
1048
|
LinkComponent,
|
|
1040
1049
|
{
|
|
1041
1050
|
href: companyUrl,
|
|
1042
|
-
className:
|
|
1051
|
+
className: cn(ui.text.linkSubtle, ui.transition.default),
|
|
1043
1052
|
children: companyName
|
|
1044
1053
|
}
|
|
1045
1054
|
) : void 0;
|
|
@@ -1140,7 +1149,7 @@ const AppFooterForHomePage = ({
|
|
|
1140
1149
|
const layoutVariants = cva("flex flex-col", {
|
|
1141
1150
|
variants: {
|
|
1142
1151
|
background: {
|
|
1143
|
-
default:
|
|
1152
|
+
default: ui.background.subtle,
|
|
1144
1153
|
white: "bg-white dark:bg-gray-900",
|
|
1145
1154
|
gradient: "bg-gradient-to-br from-gray-50 to-blue-50 dark:from-gray-900 dark:to-gray-800"
|
|
1146
1155
|
}
|
|
@@ -1315,13 +1324,7 @@ const AppearanceSettings = ({
|
|
|
1315
1324
|
return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
1316
1325
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1317
1326
|
/* @__PURE__ */ jsx("h2", { className: `${textVariants.heading.h4()} mb-2`, children: getText("heading") }),
|
|
1318
|
-
/* @__PURE__ */ jsx(
|
|
1319
|
-
"p",
|
|
1320
|
-
{
|
|
1321
|
-
className: `${textVariants.body.sm()} text-gray-600 dark:text-gray-400`,
|
|
1322
|
-
children: getText("description")
|
|
1323
|
-
}
|
|
1324
|
-
)
|
|
1327
|
+
/* @__PURE__ */ jsx("p", { className: textVariants.body.sm(), children: getText("description") })
|
|
1325
1328
|
] }),
|
|
1326
1329
|
/* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
1327
1330
|
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
@@ -1348,13 +1351,7 @@ const AppearanceSettings = ({
|
|
|
1348
1351
|
]
|
|
1349
1352
|
}
|
|
1350
1353
|
),
|
|
1351
|
-
/* @__PURE__ */ jsx(
|
|
1352
|
-
"p",
|
|
1353
|
-
{
|
|
1354
|
-
className: `${textVariants.body.xs()} text-gray-500 dark:text-gray-400`,
|
|
1355
|
-
children: getText("themeDescription")
|
|
1356
|
-
}
|
|
1357
|
-
)
|
|
1354
|
+
/* @__PURE__ */ jsx("p", { className: textVariants.body.xs(), children: getText("themeDescription") })
|
|
1358
1355
|
] }),
|
|
1359
1356
|
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
1360
1357
|
/* @__PURE__ */ jsx(
|
|
@@ -1385,19 +1382,19 @@ const AppearanceSettings = ({
|
|
|
1385
1382
|
]
|
|
1386
1383
|
}
|
|
1387
1384
|
),
|
|
1388
|
-
/* @__PURE__ */ jsx(
|
|
1389
|
-
"p",
|
|
1390
|
-
{
|
|
1391
|
-
className: `${textVariants.body.xs()} text-gray-500 dark:text-gray-400`,
|
|
1392
|
-
children: getText("fontSizeDescription")
|
|
1393
|
-
}
|
|
1394
|
-
)
|
|
1385
|
+
/* @__PURE__ */ jsx("p", { className: textVariants.body.xs(), children: getText("fontSizeDescription") })
|
|
1395
1386
|
] })
|
|
1396
1387
|
] }),
|
|
1397
|
-
showInfoBox && /* @__PURE__ */ jsxs(
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1388
|
+
showInfoBox && /* @__PURE__ */ jsxs(
|
|
1389
|
+
"div",
|
|
1390
|
+
{
|
|
1391
|
+
className: `${colors.component.alert.info.base} ${colors.component.alert.info.dark} rounded-lg p-4 border`,
|
|
1392
|
+
children: [
|
|
1393
|
+
/* @__PURE__ */ jsx("h4", { className: `${ui.text.info} text-sm mb-2`, children: getText("infoHeading") }),
|
|
1394
|
+
/* @__PURE__ */ jsx("p", { className: `${ui.text.info} text-sm font-normal`, children: getText("infoDescription") })
|
|
1395
|
+
]
|
|
1396
|
+
}
|
|
1397
|
+
)
|
|
1401
1398
|
] }) });
|
|
1402
1399
|
};
|
|
1403
1400
|
const defaultTranslations = {
|
|
@@ -1564,48 +1561,83 @@ const AppSitemapPage = ({
|
|
|
1564
1561
|
}) => {
|
|
1565
1562
|
const content = /* @__PURE__ */ jsxs(Section, { spacing: "3xl", maxWidth: "6xl", className: cn(className), children: [
|
|
1566
1563
|
/* @__PURE__ */ jsxs("div", { className: "text-center mb-12", children: [
|
|
1567
|
-
/* @__PURE__ */ jsx("h1", { className:
|
|
1568
|
-
/* @__PURE__ */ jsx("p", { className:
|
|
1569
|
-
] }),
|
|
1570
|
-
languages.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-12 p-6 bg-blue-50 dark:bg-blue-900/20 rounded-lg", children: [
|
|
1571
|
-
/* @__PURE__ */ jsxs("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white mb-4 flex items-center", children: [
|
|
1572
|
-
/* @__PURE__ */ jsx(LanguageIcon, { className: "w-6 h-6 mr-2" }),
|
|
1573
|
-
text.languagesSectionTitle
|
|
1574
|
-
] }),
|
|
1575
|
-
/* @__PURE__ */ jsx("p", { className: "text-gray-600 dark:text-gray-300 mb-6", children: text.languagesDescription }),
|
|
1576
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6 gap-4", children: languages.map((lang) => /* @__PURE__ */ jsxs(
|
|
1577
|
-
LinkComponent,
|
|
1578
|
-
{
|
|
1579
|
-
href: languageLinkPath ?? "/",
|
|
1580
|
-
language: lang.code,
|
|
1581
|
-
className: "flex items-center space-x-2 p-3 bg-white dark:bg-gray-800 rounded-lg hover:shadow-md transition-shadow",
|
|
1582
|
-
children: [
|
|
1583
|
-
/* @__PURE__ */ jsx("span", { className: "text-2xl", children: lang.flag }),
|
|
1584
|
-
/* @__PURE__ */ jsx("div", { className: "font-medium text-gray-900 dark:text-white", children: lang.name })
|
|
1585
|
-
]
|
|
1586
|
-
},
|
|
1587
|
-
lang.code
|
|
1588
|
-
)) })
|
|
1564
|
+
/* @__PURE__ */ jsx("h1", { className: `text-4xl font-bold ${ui.text.strong} mb-4`, children: text.title }),
|
|
1565
|
+
/* @__PURE__ */ jsx("p", { className: `text-xl ${ui.text.muted}`, children: text.subtitle })
|
|
1589
1566
|
] }),
|
|
1567
|
+
languages.length > 0 && /* @__PURE__ */ jsxs(
|
|
1568
|
+
"div",
|
|
1569
|
+
{
|
|
1570
|
+
className: `mb-12 p-6 ${colors.component.alert.info.base} ${colors.component.alert.info.dark} rounded-lg`,
|
|
1571
|
+
children: [
|
|
1572
|
+
/* @__PURE__ */ jsxs(
|
|
1573
|
+
"h2",
|
|
1574
|
+
{
|
|
1575
|
+
className: `text-xl font-semibold ${ui.text.strong} mb-4 flex items-center`,
|
|
1576
|
+
children: [
|
|
1577
|
+
/* @__PURE__ */ jsx(LanguageIcon, { className: "w-6 h-6 mr-2" }),
|
|
1578
|
+
text.languagesSectionTitle
|
|
1579
|
+
]
|
|
1580
|
+
}
|
|
1581
|
+
),
|
|
1582
|
+
/* @__PURE__ */ jsx("p", { className: `${ui.text.body} mb-6`, children: text.languagesDescription }),
|
|
1583
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6 gap-4", children: languages.map((lang) => /* @__PURE__ */ jsxs(
|
|
1584
|
+
LinkComponent,
|
|
1585
|
+
{
|
|
1586
|
+
href: languageLinkPath ?? "/",
|
|
1587
|
+
language: lang.code,
|
|
1588
|
+
className: `flex items-center space-x-2 p-3 ${ui.background.surface} rounded-lg hover:shadow-md transition-shadow`,
|
|
1589
|
+
children: [
|
|
1590
|
+
/* @__PURE__ */ jsx("span", { className: "text-2xl", children: lang.flag }),
|
|
1591
|
+
/* @__PURE__ */ jsx("div", { className: `font-medium ${ui.text.strong}`, children: lang.name })
|
|
1592
|
+
]
|
|
1593
|
+
},
|
|
1594
|
+
lang.code
|
|
1595
|
+
)) })
|
|
1596
|
+
]
|
|
1597
|
+
}
|
|
1598
|
+
),
|
|
1590
1599
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", children: sections.map((section, index) => /* @__PURE__ */ jsxs(
|
|
1591
1600
|
"div",
|
|
1592
1601
|
{
|
|
1593
|
-
className:
|
|
1602
|
+
className: `${ui.background.surface} rounded-lg shadow-sm p-6`,
|
|
1594
1603
|
children: [
|
|
1595
|
-
/* @__PURE__ */ jsxs(
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1604
|
+
/* @__PURE__ */ jsxs(
|
|
1605
|
+
"h2",
|
|
1606
|
+
{
|
|
1607
|
+
className: `text-lg font-semibold ${ui.text.strong} mb-4 flex items-center`,
|
|
1608
|
+
children: [
|
|
1609
|
+
getIcon(section.icon),
|
|
1610
|
+
section.title
|
|
1611
|
+
]
|
|
1612
|
+
}
|
|
1613
|
+
),
|
|
1599
1614
|
/* @__PURE__ */ jsx("ul", { className: "space-y-2", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
1600
1615
|
LinkComponent,
|
|
1601
1616
|
{
|
|
1602
1617
|
href: link.path,
|
|
1603
|
-
className:
|
|
1618
|
+
className: `group flex items-start text-sm ${ui.text.linkSubtle} transition-colors`,
|
|
1604
1619
|
children: [
|
|
1605
|
-
/* @__PURE__ */ jsx(
|
|
1620
|
+
/* @__PURE__ */ jsx(
|
|
1621
|
+
ChevronRightIcon,
|
|
1622
|
+
{
|
|
1623
|
+
className: `w-4 h-4 mt-0.5 mr-2 flex-shrink-0 ${ui.text.muted} group-hover:text-blue-600 dark:group-hover:text-blue-400`
|
|
1624
|
+
}
|
|
1625
|
+
),
|
|
1606
1626
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1607
|
-
/* @__PURE__ */ jsx(
|
|
1608
|
-
|
|
1627
|
+
/* @__PURE__ */ jsx(
|
|
1628
|
+
"span",
|
|
1629
|
+
{
|
|
1630
|
+
className: `font-medium ${ui.text.label} group-hover:text-blue-600 dark:group-hover:text-blue-400`,
|
|
1631
|
+
children: link.label
|
|
1632
|
+
}
|
|
1633
|
+
),
|
|
1634
|
+
link.description && /* @__PURE__ */ jsx(
|
|
1635
|
+
"span",
|
|
1636
|
+
{
|
|
1637
|
+
className: `block text-xs ${ui.text.muted} mt-0.5`,
|
|
1638
|
+
children: link.description
|
|
1639
|
+
}
|
|
1640
|
+
)
|
|
1609
1641
|
] })
|
|
1610
1642
|
]
|
|
1611
1643
|
}
|
|
@@ -1614,16 +1646,18 @@ const AppSitemapPage = ({
|
|
|
1614
1646
|
},
|
|
1615
1647
|
index
|
|
1616
1648
|
)) }),
|
|
1617
|
-
quickLinks.length > 0 && /* @__PURE__ */ jsxs("div", { className:
|
|
1618
|
-
/* @__PURE__ */ jsx("h3", { className:
|
|
1649
|
+
quickLinks.length > 0 && /* @__PURE__ */ jsxs("div", { className: `mt-12 p-6 ${ui.background.subtle} rounded-lg`, children: [
|
|
1650
|
+
/* @__PURE__ */ jsx("h3", { className: `text-lg font-semibold ${ui.text.strong} mb-4`, children: text.quickLinksTitle }),
|
|
1619
1651
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3", children: quickLinks.map((link, index) => {
|
|
1620
|
-
const baseClasses = "inline-flex items-center px-4 py-2 rounded-lg
|
|
1621
|
-
const variantClasses =
|
|
1652
|
+
const baseClasses = "inline-flex items-center px-4 py-2 rounded-lg";
|
|
1653
|
+
const variantClasses = buttonVariant(
|
|
1654
|
+
link.variant === "primary" ? "primary" : link.variant === "secondary" ? "secondary" : "outline"
|
|
1655
|
+
);
|
|
1622
1656
|
return /* @__PURE__ */ jsxs(
|
|
1623
1657
|
LinkComponent,
|
|
1624
1658
|
{
|
|
1625
1659
|
href: link.path,
|
|
1626
|
-
className:
|
|
1660
|
+
className: cn(baseClasses, variantClasses),
|
|
1627
1661
|
children: [
|
|
1628
1662
|
link.icon === "envelope" && /* @__PURE__ */ jsx(EnvelopeIcon, { className: "w-5 h-5 mr-2" }),
|
|
1629
1663
|
link.icon === "document" && /* @__PURE__ */ jsx(DocumentTextIcon, { className: "w-5 h-5 mr-2" }),
|
|
@@ -1646,13 +1680,13 @@ function isSectionWithList(section) {
|
|
|
1646
1680
|
function isSectionWithSubsections(section) {
|
|
1647
1681
|
return "subsections" in section && Array.isArray(section.subsections);
|
|
1648
1682
|
}
|
|
1649
|
-
const SectionHeading = ({ children }) => /* @__PURE__ */ jsx("h2", { className:
|
|
1650
|
-
const SubsectionHeading = ({ children }) => /* @__PURE__ */ jsx("h3", { className:
|
|
1683
|
+
const SectionHeading = ({ children }) => /* @__PURE__ */ jsx("h2", { className: `text-2xl font-bold ${ui.text.strong} mt-8 mb-4`, children });
|
|
1684
|
+
const SubsectionHeading = ({ children }) => /* @__PURE__ */ jsx("h3", { className: `text-xl font-semibold ${ui.text.strong} mt-6 mb-3`, children });
|
|
1651
1685
|
const Paragraph = ({
|
|
1652
1686
|
children,
|
|
1653
1687
|
className = ""
|
|
1654
|
-
}) => /* @__PURE__ */ jsx("p", { className:
|
|
1655
|
-
const List = ({ items }) => /* @__PURE__ */ jsx("ul", { className:
|
|
1688
|
+
}) => /* @__PURE__ */ jsx("p", { className: cn(ui.text.body, "mb-6", className), children });
|
|
1689
|
+
const List = ({ items }) => /* @__PURE__ */ jsx("ul", { className: `list-disc list-inside ${ui.text.body} mb-6 space-y-1`, children: items.map((item, index) => /* @__PURE__ */ jsx("li", { dangerouslySetInnerHTML: { __html: item } }, index)) });
|
|
1656
1690
|
const AppTextPage = ({
|
|
1657
1691
|
text,
|
|
1658
1692
|
lastUpdatedDate = (/* @__PURE__ */ new Date()).toLocaleDateString(),
|
|
@@ -1660,7 +1694,7 @@ const AppTextPage = ({
|
|
|
1660
1694
|
className
|
|
1661
1695
|
}) => {
|
|
1662
1696
|
const content = /* @__PURE__ */ jsxs(Section, { spacing: "3xl", maxWidth: "4xl", className: cn(className), children: [
|
|
1663
|
-
/* @__PURE__ */ jsx("h1", { className:
|
|
1697
|
+
/* @__PURE__ */ jsx("h1", { className: `text-4xl font-bold ${ui.text.strong} mb-8`, children: text.title }),
|
|
1664
1698
|
/* @__PURE__ */ jsxs("div", { className: "prose prose-lg dark:prose-invert max-w-none", children: [
|
|
1665
1699
|
text.lastUpdated && /* @__PURE__ */ jsx(Paragraph, { className: "mb-6", children: text.lastUpdated.replace("{{date}}", lastUpdatedDate) }),
|
|
1666
1700
|
text.sections.map((section, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
@@ -1694,28 +1728,21 @@ const AppTextPage = ({
|
|
|
1694
1728
|
dangerouslySetInnerHTML: { __html: text.contact.description }
|
|
1695
1729
|
}
|
|
1696
1730
|
) }) : /* @__PURE__ */ jsx(Paragraph, { children: text.contact.description }),
|
|
1697
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
1731
|
+
/* @__PURE__ */ jsx("div", { className: `${ui.background.subtle} p-4 rounded-lg`, children: /* @__PURE__ */ jsxs("p", { className: ui.text.body, children: [
|
|
1698
1732
|
text.contact.info.emailLabel,
|
|
1699
1733
|
" ",
|
|
1700
1734
|
/* @__PURE__ */ jsx(
|
|
1701
1735
|
"a",
|
|
1702
1736
|
{
|
|
1703
1737
|
href: `mailto:${text.contact.info.email}`,
|
|
1704
|
-
className:
|
|
1738
|
+
className: ui.text.link,
|
|
1705
1739
|
children: text.contact.info.email
|
|
1706
1740
|
}
|
|
1707
1741
|
),
|
|
1708
1742
|
/* @__PURE__ */ jsx("br", {}),
|
|
1709
1743
|
text.contact.info.websiteLabel,
|
|
1710
1744
|
" ",
|
|
1711
|
-
/* @__PURE__ */ jsx(
|
|
1712
|
-
"a",
|
|
1713
|
-
{
|
|
1714
|
-
href: text.contact.info.websiteUrl,
|
|
1715
|
-
className: "text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300",
|
|
1716
|
-
children: text.contact.info.websiteUrl
|
|
1717
|
-
}
|
|
1718
|
-
),
|
|
1745
|
+
/* @__PURE__ */ jsx("a", { href: text.contact.info.websiteUrl, className: ui.text.link, children: text.contact.info.websiteUrl }),
|
|
1719
1746
|
text.contact.info.dpoLabel && text.contact.info.dpoEmail && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1720
1747
|
/* @__PURE__ */ jsx("br", {}),
|
|
1721
1748
|
text.contact.info.dpoLabel,
|
|
@@ -1724,27 +1751,33 @@ const AppTextPage = ({
|
|
|
1724
1751
|
"a",
|
|
1725
1752
|
{
|
|
1726
1753
|
href: `mailto:${text.contact.info.dpoEmail}`,
|
|
1727
|
-
className:
|
|
1754
|
+
className: ui.text.link,
|
|
1728
1755
|
children: text.contact.info.dpoEmail
|
|
1729
1756
|
}
|
|
1730
1757
|
)
|
|
1731
1758
|
] })
|
|
1732
1759
|
] }) }),
|
|
1733
|
-
text.contact.gdprNotice && /* @__PURE__ */ jsxs(
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
"
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1760
|
+
text.contact.gdprNotice && /* @__PURE__ */ jsxs(
|
|
1761
|
+
"div",
|
|
1762
|
+
{
|
|
1763
|
+
className: `mt-8 p-4 ${colors.component.alert.info.base} ${colors.component.alert.info.dark} rounded-lg`,
|
|
1764
|
+
children: [
|
|
1765
|
+
/* @__PURE__ */ jsx("h3", { className: `text-lg font-semibold ${ui.text.info} mb-2`, children: text.contact.gdprNotice.title }),
|
|
1766
|
+
/* @__PURE__ */ jsxs("p", { className: ui.text.info, children: [
|
|
1767
|
+
text.contact.gdprNotice.content,
|
|
1768
|
+
" ",
|
|
1769
|
+
text.contact.info.dpoEmail && /* @__PURE__ */ jsx(
|
|
1770
|
+
"a",
|
|
1771
|
+
{
|
|
1772
|
+
href: `mailto:${text.contact.info.dpoEmail}`,
|
|
1773
|
+
className: ui.text.link,
|
|
1774
|
+
children: text.contact.info.dpoEmail
|
|
1775
|
+
}
|
|
1776
|
+
)
|
|
1777
|
+
] })
|
|
1778
|
+
]
|
|
1779
|
+
}
|
|
1780
|
+
)
|
|
1748
1781
|
] })
|
|
1749
1782
|
] })
|
|
1750
1783
|
] });
|
|
@@ -1806,52 +1839,31 @@ const USER_ACTION_ERROR_CODES = [
|
|
|
1806
1839
|
];
|
|
1807
1840
|
const colorVariantClasses = {
|
|
1808
1841
|
primary: {
|
|
1809
|
-
title: "text-
|
|
1810
|
-
|
|
1811
|
-
submitButton: "bg-primary-600 hover:bg-primary-700 focus:ring-primary-500 disabled:bg-primary-300",
|
|
1812
|
-
googleButtonFocusRing: "focus:ring-primary-500",
|
|
1813
|
-
toggleLink: "text-primary-600 hover:text-primary-500"
|
|
1842
|
+
title: "text-blue-600",
|
|
1843
|
+
toggleLink: "text-blue-600 hover:text-blue-500"
|
|
1814
1844
|
},
|
|
1815
1845
|
blue: {
|
|
1816
1846
|
title: "text-blue-600",
|
|
1817
|
-
inputFocus: "focus:ring-blue-500 focus:border-blue-500",
|
|
1818
|
-
submitButton: "bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 disabled:bg-blue-300",
|
|
1819
|
-
googleButtonFocusRing: "focus:ring-blue-500",
|
|
1820
1847
|
toggleLink: "text-blue-600 hover:text-blue-500"
|
|
1821
1848
|
},
|
|
1822
1849
|
indigo: {
|
|
1823
1850
|
title: "text-indigo-600",
|
|
1824
|
-
inputFocus: "focus:ring-indigo-500 focus:border-indigo-500",
|
|
1825
|
-
submitButton: "bg-indigo-600 hover:bg-indigo-700 focus:ring-indigo-500 disabled:bg-indigo-300",
|
|
1826
|
-
googleButtonFocusRing: "focus:ring-indigo-500",
|
|
1827
1851
|
toggleLink: "text-indigo-600 hover:text-indigo-500"
|
|
1828
1852
|
},
|
|
1829
1853
|
violet: {
|
|
1830
1854
|
title: "text-violet-600",
|
|
1831
|
-
inputFocus: "focus:ring-violet-500 focus:border-violet-500",
|
|
1832
|
-
submitButton: "bg-violet-600 hover:bg-violet-700 focus:ring-violet-500 disabled:bg-violet-300",
|
|
1833
|
-
googleButtonFocusRing: "focus:ring-violet-500",
|
|
1834
1855
|
toggleLink: "text-violet-600 hover:text-violet-500"
|
|
1835
1856
|
},
|
|
1836
1857
|
orange: {
|
|
1837
1858
|
title: "text-orange-600",
|
|
1838
|
-
inputFocus: "focus:ring-orange-500 focus:border-orange-500",
|
|
1839
|
-
submitButton: "bg-orange-600 hover:bg-orange-700 focus:ring-orange-500 disabled:bg-orange-300",
|
|
1840
|
-
googleButtonFocusRing: "focus:ring-orange-500",
|
|
1841
1859
|
toggleLink: "text-orange-600 hover:text-orange-500"
|
|
1842
1860
|
},
|
|
1843
1861
|
emerald: {
|
|
1844
1862
|
title: "text-emerald-600",
|
|
1845
|
-
inputFocus: "focus:ring-emerald-500 focus:border-emerald-500",
|
|
1846
|
-
submitButton: "bg-emerald-600 hover:bg-emerald-700 focus:ring-emerald-500 disabled:bg-emerald-300",
|
|
1847
|
-
googleButtonFocusRing: "focus:ring-emerald-500",
|
|
1848
1863
|
toggleLink: "text-emerald-600 hover:text-emerald-500"
|
|
1849
1864
|
},
|
|
1850
1865
|
rose: {
|
|
1851
1866
|
title: "text-rose-600",
|
|
1852
|
-
inputFocus: "focus:ring-rose-500 focus:border-rose-500",
|
|
1853
|
-
submitButton: "bg-rose-600 hover:bg-rose-700 focus:ring-rose-500 disabled:bg-rose-300",
|
|
1854
|
-
googleButtonFocusRing: "focus:ring-rose-500",
|
|
1855
1867
|
toggleLink: "text-rose-600 hover:text-rose-500"
|
|
1856
1868
|
}
|
|
1857
1869
|
};
|
|
@@ -1863,6 +1875,7 @@ function LoginPage({
|
|
|
1863
1875
|
onGoogleSignIn,
|
|
1864
1876
|
onSuccess,
|
|
1865
1877
|
onAuthError,
|
|
1878
|
+
text: textOverrides,
|
|
1866
1879
|
showGoogleSignIn = true,
|
|
1867
1880
|
showSignUp = true,
|
|
1868
1881
|
className = "",
|
|
@@ -1887,7 +1900,7 @@ function LoginPage({
|
|
|
1887
1900
|
const [isLoading, setIsLoading] = useState(false);
|
|
1888
1901
|
const [isGoogleSignInPending, setIsGoogleSignInPending] = useState(false);
|
|
1889
1902
|
const googleSignInStartTime = useRef(null);
|
|
1890
|
-
const colors = colorVariantClasses[colorVariant];
|
|
1903
|
+
const colors$1 = colorVariantClasses[colorVariant];
|
|
1891
1904
|
useEffect(() => {
|
|
1892
1905
|
const handleFocus = () => {
|
|
1893
1906
|
if (isGoogleSignInPending && googleSignInStartTime.current) {
|
|
@@ -1947,39 +1960,38 @@ function LoginPage({
|
|
|
1947
1960
|
googleSignInStartTime.current = null;
|
|
1948
1961
|
}
|
|
1949
1962
|
};
|
|
1950
|
-
const text = defaultText;
|
|
1963
|
+
const text = { ...defaultText, ...textOverrides };
|
|
1951
1964
|
return /* @__PURE__ */ jsx(
|
|
1952
1965
|
"div",
|
|
1953
1966
|
{
|
|
1954
1967
|
className: cn(
|
|
1955
|
-
|
|
1968
|
+
`min-h-screen flex items-center justify-center ${ui.background.subtle} py-12 px-4 sm:px-6 lg:px-8`,
|
|
1956
1969
|
className
|
|
1957
1970
|
),
|
|
1958
1971
|
children: /* @__PURE__ */ jsxs("div", { className: "max-w-md w-full space-y-8", children: [
|
|
1959
1972
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1960
1973
|
logo && /* @__PURE__ */ jsx("div", { className: "flex justify-center mb-4", children: logo }),
|
|
1961
|
-
/* @__PURE__ */ jsx("h1", { className: cn("text-center text-3xl font-bold", colors.title), children: appName }),
|
|
1962
|
-
/* @__PURE__ */ jsx(
|
|
1974
|
+
/* @__PURE__ */ jsx("h1", { className: cn("text-center text-3xl font-bold", colors$1.title), children: appName }),
|
|
1975
|
+
/* @__PURE__ */ jsx(
|
|
1976
|
+
"h2",
|
|
1977
|
+
{
|
|
1978
|
+
className: `mt-6 text-center text-2xl font-semibold ${ui.text.strong}`,
|
|
1979
|
+
children: isSignUp && showSignUp ? text.createAccount : text.signInToAccount
|
|
1980
|
+
}
|
|
1981
|
+
)
|
|
1963
1982
|
] }),
|
|
1964
1983
|
/* @__PURE__ */ jsxs("form", { className: "mt-8 space-y-6", onSubmit: handleSubmit, children: [
|
|
1965
1984
|
error && /* @__PURE__ */ jsx(
|
|
1966
1985
|
"div",
|
|
1967
1986
|
{
|
|
1968
|
-
className:
|
|
1987
|
+
className: `${colors.component.alert.error.base} ${colors.component.alert.error.dark} border px-4 py-3 rounded-md text-sm`,
|
|
1969
1988
|
role: "alert",
|
|
1970
1989
|
children: error
|
|
1971
1990
|
}
|
|
1972
1991
|
),
|
|
1973
1992
|
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
1974
1993
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1975
|
-
/* @__PURE__ */ jsx(
|
|
1976
|
-
"label",
|
|
1977
|
-
{
|
|
1978
|
-
htmlFor: "login-email",
|
|
1979
|
-
className: "block text-sm font-medium text-gray-700",
|
|
1980
|
-
children: text.emailLabel
|
|
1981
|
-
}
|
|
1982
|
-
),
|
|
1994
|
+
/* @__PURE__ */ jsx("label", { htmlFor: "login-email", className: `block ${ui.text.label}`, children: text.emailLabel }),
|
|
1983
1995
|
/* @__PURE__ */ jsx(
|
|
1984
1996
|
"input",
|
|
1985
1997
|
{
|
|
@@ -1992,8 +2004,8 @@ function LoginPage({
|
|
|
1992
2004
|
onChange: (e) => setEmail(e.target.value),
|
|
1993
2005
|
placeholder: text.emailPlaceholder,
|
|
1994
2006
|
className: cn(
|
|
1995
|
-
|
|
1996
|
-
|
|
2007
|
+
`mt-1 appearance-none block w-full px-3 py-2 border rounded-md shadow-sm sm:text-sm ${colors.component.input.default.base} ${colors.component.input.default.dark}`,
|
|
2008
|
+
focusRing
|
|
1997
2009
|
)
|
|
1998
2010
|
}
|
|
1999
2011
|
)
|
|
@@ -2003,7 +2015,7 @@ function LoginPage({
|
|
|
2003
2015
|
"label",
|
|
2004
2016
|
{
|
|
2005
2017
|
htmlFor: "login-password",
|
|
2006
|
-
className:
|
|
2018
|
+
className: `block ${ui.text.label}`,
|
|
2007
2019
|
children: text.passwordLabel
|
|
2008
2020
|
}
|
|
2009
2021
|
),
|
|
@@ -2019,8 +2031,8 @@ function LoginPage({
|
|
|
2019
2031
|
onChange: (e) => setPassword(e.target.value),
|
|
2020
2032
|
placeholder: text.passwordPlaceholder,
|
|
2021
2033
|
className: cn(
|
|
2022
|
-
|
|
2023
|
-
|
|
2034
|
+
`mt-1 appearance-none block w-full px-3 py-2 border rounded-md shadow-sm sm:text-sm ${colors.component.input.default.base} ${colors.component.input.default.dark}`,
|
|
2035
|
+
focusRing
|
|
2024
2036
|
)
|
|
2025
2037
|
}
|
|
2026
2038
|
)
|
|
@@ -2032,8 +2044,9 @@ function LoginPage({
|
|
|
2032
2044
|
type: "submit",
|
|
2033
2045
|
disabled: isLoading,
|
|
2034
2046
|
className: cn(
|
|
2035
|
-
"w-full inline-flex items-center justify-center font-medium rounded-md
|
|
2036
|
-
|
|
2047
|
+
"w-full inline-flex items-center justify-center font-medium rounded-md px-4 py-2 text-sm",
|
|
2048
|
+
buttonVariant("primary"),
|
|
2049
|
+
"disabled:opacity-50 disabled:cursor-not-allowed"
|
|
2037
2050
|
),
|
|
2038
2051
|
children: [
|
|
2039
2052
|
isLoading && /* @__PURE__ */ jsxs(
|
|
@@ -2073,8 +2086,14 @@ function LoginPage({
|
|
|
2073
2086
|
) }),
|
|
2074
2087
|
showGoogleSignIn && onGoogleSignIn && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2075
2088
|
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
2076
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className:
|
|
2077
|
-
/* @__PURE__ */ jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsx(
|
|
2089
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className: `w-full border-t ${ui.border.default}` }) }),
|
|
2090
|
+
/* @__PURE__ */ jsx("div", { className: "relative flex justify-center text-sm", children: /* @__PURE__ */ jsx(
|
|
2091
|
+
"span",
|
|
2092
|
+
{
|
|
2093
|
+
className: `px-2 ${ui.background.subtle} ${ui.text.muted}`,
|
|
2094
|
+
children: text.orContinueWith
|
|
2095
|
+
}
|
|
2096
|
+
) })
|
|
2078
2097
|
] }),
|
|
2079
2098
|
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
|
|
2080
2099
|
"button",
|
|
@@ -2083,8 +2102,9 @@ function LoginPage({
|
|
|
2083
2102
|
onClick: handleGoogleSignIn,
|
|
2084
2103
|
disabled: isLoading,
|
|
2085
2104
|
className: cn(
|
|
2086
|
-
"w-full inline-flex items-center justify-center font-medium rounded-md
|
|
2087
|
-
|
|
2105
|
+
"w-full inline-flex items-center justify-center font-medium rounded-md px-4 py-2 text-sm",
|
|
2106
|
+
buttonVariant("outline"),
|
|
2107
|
+
`${ui.background.surface} ${ui.text.label} disabled:opacity-50 disabled:cursor-not-allowed`
|
|
2088
2108
|
),
|
|
2089
2109
|
children: [
|
|
2090
2110
|
isLoading ? /* @__PURE__ */ jsxs(
|
|
@@ -2124,7 +2144,7 @@ function LoginPage({
|
|
|
2124
2144
|
) })
|
|
2125
2145
|
] })
|
|
2126
2146
|
] }),
|
|
2127
|
-
showSignUp && /* @__PURE__ */ jsxs("p", { className:
|
|
2147
|
+
showSignUp && /* @__PURE__ */ jsxs("p", { className: `text-center text-sm ${ui.text.muted}`, children: [
|
|
2128
2148
|
isSignUp ? text.alreadyHaveAccount : text.dontHaveAccount,
|
|
2129
2149
|
" ",
|
|
2130
2150
|
/* @__PURE__ */ jsx(
|
|
@@ -2132,7 +2152,7 @@ function LoginPage({
|
|
|
2132
2152
|
{
|
|
2133
2153
|
type: "button",
|
|
2134
2154
|
onClick: () => setIsSignUp(!isSignUp),
|
|
2135
|
-
className: cn("font-medium", colors.toggleLink),
|
|
2155
|
+
className: cn("font-medium", colors$1.toggleLink),
|
|
2136
2156
|
children: isSignUp ? text.signIn : text.signUp
|
|
2137
2157
|
}
|
|
2138
2158
|
)
|
|
@@ -2147,13 +2167,25 @@ const EmptyState = ({
|
|
|
2147
2167
|
onPress
|
|
2148
2168
|
}) => {
|
|
2149
2169
|
return /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col items-center justify-center px-8", children: [
|
|
2150
|
-
/* @__PURE__ */ jsx(
|
|
2170
|
+
/* @__PURE__ */ jsx(
|
|
2171
|
+
"p",
|
|
2172
|
+
{
|
|
2173
|
+
className: cn(
|
|
2174
|
+
ui.text.muted,
|
|
2175
|
+
"text-center text-[15px] leading-relaxed mb-5"
|
|
2176
|
+
),
|
|
2177
|
+
children: message
|
|
2178
|
+
}
|
|
2179
|
+
),
|
|
2151
2180
|
/* @__PURE__ */ jsx(
|
|
2152
2181
|
"button",
|
|
2153
2182
|
{
|
|
2154
2183
|
type: "button",
|
|
2155
2184
|
onClick: onPress,
|
|
2156
|
-
className:
|
|
2185
|
+
className: cn(
|
|
2186
|
+
buttonVariant("primary"),
|
|
2187
|
+
"rounded-md px-6 py-2 text-sm font-medium min-h-[44px]"
|
|
2188
|
+
),
|
|
2157
2189
|
children: buttonLabel
|
|
2158
2190
|
}
|
|
2159
2191
|
)
|