@tomny-dev/uzi 0.2.12 → 0.3.0

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.
Files changed (109) hide show
  1. package/README.md +9 -0
  2. package/dist/components/application-scaffolding.test.d.ts +2 -0
  3. package/dist/components/application-scaffolding.test.d.ts.map +1 -0
  4. package/dist/components/empty-state/EmptyState.d.ts +14 -0
  5. package/dist/components/empty-state/EmptyState.d.ts.map +1 -0
  6. package/dist/components/layout-primitives/LayoutPrimitives.d.ts +16 -0
  7. package/dist/components/layout-primitives/LayoutPrimitives.d.ts.map +1 -0
  8. package/dist/components/page-container/PageContainer.d.ts +10 -0
  9. package/dist/components/page-container/PageContainer.d.ts.map +1 -0
  10. package/dist/components/page-header/PageHeader.d.ts +11 -0
  11. package/dist/components/page-header/PageHeader.d.ts.map +1 -0
  12. package/dist/components/section-header/SectionHeader.d.ts +10 -0
  13. package/dist/components/section-header/SectionHeader.d.ts.map +1 -0
  14. package/dist/components/stat/Stat.d.ts +12 -0
  15. package/dist/components/stat/Stat.d.ts.map +1 -0
  16. package/dist/index.cjs +19 -5
  17. package/dist/index.d.ts +12 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +12 -6
  20. package/dist/index41.js +12 -10
  21. package/dist/index41.js.map +1 -1
  22. package/dist/index42.cjs +14 -11
  23. package/dist/index42.cjs.map +1 -1
  24. package/dist/index42.js +14 -13
  25. package/dist/index42.js.map +1 -1
  26. package/dist/index43.cjs +14 -13
  27. package/dist/index43.cjs.map +1 -1
  28. package/dist/index43.js +15 -11
  29. package/dist/index43.js.map +1 -1
  30. package/dist/index44.cjs +21 -13
  31. package/dist/index44.cjs.map +1 -1
  32. package/dist/index44.js +28 -17
  33. package/dist/index44.js.map +1 -1
  34. package/dist/index45.cjs +27 -16
  35. package/dist/index45.cjs.map +1 -1
  36. package/dist/index45.js +13 -9
  37. package/dist/index45.js.map +1 -1
  38. package/dist/index46.cjs +18 -12
  39. package/dist/index46.cjs.map +1 -1
  40. package/dist/index46.js +22 -90
  41. package/dist/index46.js.map +1 -1
  42. package/dist/index47.cjs +21 -91
  43. package/dist/index47.cjs.map +1 -1
  44. package/dist/index47.js +17 -21
  45. package/dist/index47.js.map +1 -1
  46. package/dist/index48.cjs +24 -30
  47. package/dist/index48.cjs.map +1 -1
  48. package/dist/index48.js +30 -45
  49. package/dist/index48.js.map +1 -1
  50. package/dist/index49.cjs +29 -46
  51. package/dist/index49.cjs.map +1 -1
  52. package/dist/index49.js +14 -57
  53. package/dist/index49.js.map +1 -1
  54. package/dist/index50.cjs +17 -84
  55. package/dist/index50.cjs.map +1 -1
  56. package/dist/index50.js +24 -428
  57. package/dist/index50.js.map +1 -1
  58. package/dist/index51.cjs +24 -431
  59. package/dist/index51.cjs.map +1 -1
  60. package/dist/index51.js +21 -0
  61. package/dist/index51.js.map +1 -0
  62. package/dist/index52.cjs +26 -0
  63. package/dist/index52.cjs.map +1 -0
  64. package/dist/index52.js +35 -0
  65. package/dist/index52.js.map +1 -0
  66. package/dist/index53.cjs +36 -0
  67. package/dist/index53.cjs.map +1 -0
  68. package/dist/index53.js +14 -0
  69. package/dist/index53.js.map +1 -0
  70. package/dist/index54.cjs +15 -0
  71. package/dist/index54.cjs.map +1 -0
  72. package/dist/index54.js +21 -0
  73. package/dist/index54.js.map +1 -0
  74. package/dist/index55.cjs +21 -0
  75. package/dist/index55.cjs.map +1 -0
  76. package/dist/index55.js +15 -0
  77. package/dist/index55.js.map +1 -0
  78. package/dist/index56.cjs +17 -0
  79. package/dist/index56.cjs.map +1 -0
  80. package/dist/index56.js +24 -0
  81. package/dist/index56.js.map +1 -0
  82. package/dist/index57.cjs +24 -0
  83. package/dist/index57.cjs.map +1 -0
  84. package/dist/index57.js +13 -0
  85. package/dist/index57.js.map +1 -0
  86. package/dist/index58.cjs +16 -0
  87. package/dist/index58.cjs.map +1 -0
  88. package/dist/index58.js +96 -0
  89. package/dist/index58.js.map +1 -0
  90. package/dist/index59.cjs +98 -0
  91. package/dist/index59.cjs.map +1 -0
  92. package/dist/index59.js +25 -0
  93. package/dist/index59.js.map +1 -0
  94. package/dist/index60.cjs +34 -0
  95. package/dist/index60.cjs.map +1 -0
  96. package/dist/index60.js +50 -0
  97. package/dist/index60.js.map +1 -0
  98. package/dist/index61.cjs +52 -0
  99. package/dist/index61.cjs.map +1 -0
  100. package/dist/index61.js +61 -0
  101. package/dist/index61.js.map +1 -0
  102. package/dist/index62.cjs +88 -0
  103. package/dist/index62.cjs.map +1 -0
  104. package/dist/index62.js +439 -0
  105. package/dist/index62.js.map +1 -0
  106. package/dist/index63.cjs +443 -0
  107. package/dist/index63.cjs.map +1 -0
  108. package/dist/style.css +237 -0
  109. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index60.js","names":[],"sources":["../src/components/auth-card/AuthCard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./auth-card.module.css\";\n\nexport interface AuthCardProps {\n /** Title displayed at the top of the card. */\n title: React.ReactNode;\n /** Subtitle displayed below the title. */\n subtitle?: React.ReactNode;\n /** Primary form content rendered in the card body. */\n children: React.ReactNode;\n /** Footer links rendered below the divider (e.g., \"No account? Sign up\"). */\n footer?: React.ReactNode;\n /** Optional brand/logo element rendered above the title. */\n brand?: React.ReactNode;\n /** Additional class name for the outer wrapper. */\n className?: string;\n}\n\n/**\n * AuthCard — a centered card layout for auth pages.\n *\n * - Centered vertically and horizontally on screen\n * - Brand → title → subtitle → form → divider → footer\n * - No auth logic — just the visual template\n */\nexport const AuthCard = React.forwardRef<HTMLDivElement, AuthCardProps>(\n ({ title, subtitle, children, footer, brand, className }, ref) => {\n return (\n <div className={cx(styles.authLayout, className)} ref={ref}>\n <div className={styles.authCard}>\n {brand && <div className={styles.authBrand}>{brand}</div>}\n <div className={styles.authHeader}>\n <h1 className={styles.authTitle}>{title}</h1>\n {subtitle && <p className={styles.authSubtitle}>{subtitle}</p>}\n </div>\n <div className={styles.authBody}>{children}</div>\n {footer && (\n <>\n <hr className={styles.divider} />\n <p className={styles.authFooter}>{footer}</p>\n </>\n )}\n </div>\n </div>\n );\n },\n);\n\nAuthCard.displayName = \"AuthCard\";\n"],"mappings":";;;;;;;;;;;;AA0BA,IAAa,WAAW,MAAM,YAC3B,EAAE,OAAO,UAAU,UAAU,QAAQ,OAAO,aAAa,QAAQ;CAChE,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,yBAAO,YAAY,SAAS;EAAQ;YACrD,qBAAC,OAAD;GAAK,WAAW,yBAAO;aAAvB;IACG,SAAS,oBAAC,OAAD;KAAK,WAAW,yBAAO;eAAY;IAAW,CAAA;IACxD,qBAAC,OAAD;KAAK,WAAW,yBAAO;eAAvB,CACE,oBAAC,MAAD;MAAI,WAAW,yBAAO;gBAAY;KAAU,CAAA,GAC3C,YAAY,oBAAC,KAAD;MAAG,WAAW,yBAAO;gBAAe;KAAY,CAAA,CAC1D;;IACL,oBAAC,OAAD;KAAK,WAAW,yBAAO;KAAW;IAAc,CAAA;IAC/C,UACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,MAAD,EAAI,WAAW,yBAAO,QAAU,CAAA,GAChC,oBAAC,KAAD;KAAG,WAAW,yBAAO;eAAa;IAAU,CAAA,CAC5C,EAAA,CAAA;GAED;;CACF,CAAA;AAET,CACF;AAEA,SAAS,cAAc"}
@@ -0,0 +1,52 @@
1
+ const require_runtime = require("./index2.cjs");
2
+ const require_cx = require("./index4.cjs");
3
+ const require_auth_card_module = require("./index60.cjs");
4
+ let react = require("react");
5
+ react = require_runtime.__toESM(react, 1);
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ //#region src/components/auth-card/AuthCard.tsx
8
+ /**
9
+ * AuthCard — a centered card layout for auth pages.
10
+ *
11
+ * - Centered vertically and horizontally on screen
12
+ * - Brand → title → subtitle → form → divider → footer
13
+ * - No auth logic — just the visual template
14
+ */
15
+ var AuthCard = react.forwardRef(({ title, subtitle, children, footer, brand, className }, ref) => {
16
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
17
+ className: require_cx.cx(require_auth_card_module.default.authLayout, className),
18
+ ref,
19
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20
+ className: require_auth_card_module.default.authCard,
21
+ children: [
22
+ brand && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
23
+ className: require_auth_card_module.default.authBrand,
24
+ children: brand
25
+ }),
26
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27
+ className: require_auth_card_module.default.authHeader,
28
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
29
+ className: require_auth_card_module.default.authTitle,
30
+ children: title
31
+ }), subtitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
32
+ className: require_auth_card_module.default.authSubtitle,
33
+ children: subtitle
34
+ })]
35
+ }),
36
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
37
+ className: require_auth_card_module.default.authBody,
38
+ children
39
+ }),
40
+ footer && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", { className: require_auth_card_module.default.divider }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
41
+ className: require_auth_card_module.default.authFooter,
42
+ children: footer
43
+ })] })
44
+ ]
45
+ })
46
+ });
47
+ });
48
+ AuthCard.displayName = "AuthCard";
49
+ //#endregion
50
+ exports.AuthCard = AuthCard;
51
+
52
+ //# sourceMappingURL=index61.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index61.cjs","names":[],"sources":["../src/components/auth-card/AuthCard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./auth-card.module.css\";\n\nexport interface AuthCardProps {\n /** Title displayed at the top of the card. */\n title: React.ReactNode;\n /** Subtitle displayed below the title. */\n subtitle?: React.ReactNode;\n /** Primary form content rendered in the card body. */\n children: React.ReactNode;\n /** Footer links rendered below the divider (e.g., \"No account? Sign up\"). */\n footer?: React.ReactNode;\n /** Optional brand/logo element rendered above the title. */\n brand?: React.ReactNode;\n /** Additional class name for the outer wrapper. */\n className?: string;\n}\n\n/**\n * AuthCard — a centered card layout for auth pages.\n *\n * - Centered vertically and horizontally on screen\n * - Brand → title → subtitle → form → divider → footer\n * - No auth logic — just the visual template\n */\nexport const AuthCard = React.forwardRef<HTMLDivElement, AuthCardProps>(\n ({ title, subtitle, children, footer, brand, className }, ref) => {\n return (\n <div className={cx(styles.authLayout, className)} ref={ref}>\n <div className={styles.authCard}>\n {brand && <div className={styles.authBrand}>{brand}</div>}\n <div className={styles.authHeader}>\n <h1 className={styles.authTitle}>{title}</h1>\n {subtitle && <p className={styles.authSubtitle}>{subtitle}</p>}\n </div>\n <div className={styles.authBody}>{children}</div>\n {footer && (\n <>\n <hr className={styles.divider} />\n <p className={styles.authFooter}>{footer}</p>\n </>\n )}\n </div>\n </div>\n );\n },\n);\n\nAuthCard.displayName = \"AuthCard\";\n"],"mappings":";;;;;;;;;;;;;;AA0BA,IAAa,WAAW,MAAM,YAC3B,EAAE,OAAO,UAAU,UAAU,QAAQ,OAAO,aAAa,QAAQ;CAChE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAW,WAAA,GAAG,yBAAA,QAAO,YAAY,SAAS;EAAQ;YACrD,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAW,yBAAA,QAAO;aAAvB;IACG,SAAS,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAW,yBAAA,QAAO;eAAY;IAAW,CAAA;IACxD,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,WAAW,yBAAA,QAAO;eAAvB,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;MAAI,WAAW,yBAAA,QAAO;gBAAY;KAAU,CAAA,GAC3C,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MAAG,WAAW,yBAAA,QAAO;gBAAe;KAAY,CAAA,CAC1D;;IACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAW,yBAAA,QAAO;KAAW;IAAc,CAAA;IAC/C,UACC,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD,EAAI,WAAW,yBAAA,QAAO,QAAU,CAAA,GAChC,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;KAAG,WAAW,yBAAA,QAAO;eAAa;IAAU,CAAA,CAC5C,EAAA,CAAA;GAED;;CACF,CAAA;AAET,CACF;AAEA,SAAS,cAAc"}
@@ -0,0 +1,61 @@
1
+ //#region src/components/auth-pages/auth-pages.module.css
2
+ var authLayout = "uzi-auth-pages-module__authLayout__i-FlB";
3
+ var authCard = "uzi-auth-pages-module__authCard__toOGS";
4
+ var authBrand = "uzi-auth-pages-module__authBrand__7yOdw";
5
+ var authHeader = "uzi-auth-pages-module__authHeader__V-wcl";
6
+ var authTitle = "uzi-auth-pages-module__authTitle__1bgLI";
7
+ var authSubtitle = "uzi-auth-pages-module__authSubtitle__sGXxg";
8
+ var authForm = "uzi-auth-pages-module__authForm__4MucP";
9
+ var field = "uzi-auth-pages-module__field__Ajl6w";
10
+ var label = "uzi-auth-pages-module__label__MdsqJ";
11
+ var input = "uzi-auth-pages-module__input__yijT9";
12
+ var error = "uzi-auth-pages-module__error__7Mhyi";
13
+ var passwordWrapper = "uzi-auth-pages-module__passwordWrapper__P0bez";
14
+ var toggle = "uzi-auth-pages-module__toggle__T7HaZ";
15
+ var eyeIcon = "uzi-auth-pages-module__eyeIcon__ab2Ts";
16
+ var checkboxRow = "uzi-auth-pages-module__checkboxRow__Rq-84";
17
+ var checkboxLabel = "uzi-auth-pages-module__checkboxLabel__poKs-";
18
+ var checkbox = "uzi-auth-pages-module__checkbox__KOQQe";
19
+ var forgotLink = "uzi-auth-pages-module__forgotLink__5q-vL";
20
+ var checkboxLink = "uzi-auth-pages-module__checkboxLink__kAkKg";
21
+ var submitButton = "uzi-auth-pages-module__submitButton__mlGxT";
22
+ var spinner = "uzi-auth-pages-module__spinner__seK4F";
23
+ var spin = "uzi-auth-pages-module__spin__hYpWH";
24
+ var divider = "uzi-auth-pages-module__divider__Debmu";
25
+ var authFooter = "uzi-auth-pages-module__authFooter__SEaGh";
26
+ var sentMessage = "uzi-auth-pages-module__sentMessage__vLBoY";
27
+ var sentText = "uzi-auth-pages-module__sentText__qyJkF";
28
+ var backLink = "uzi-auth-pages-module__backLink__ezB3X";
29
+ var auth_pages_module_default = {
30
+ authLayout,
31
+ authCard,
32
+ authBrand,
33
+ authHeader,
34
+ authTitle,
35
+ authSubtitle,
36
+ authForm,
37
+ field,
38
+ label,
39
+ input,
40
+ error,
41
+ passwordWrapper,
42
+ toggle,
43
+ eyeIcon,
44
+ checkboxRow,
45
+ checkboxLabel,
46
+ checkbox,
47
+ forgotLink,
48
+ checkboxLink,
49
+ submitButton,
50
+ spinner,
51
+ spin,
52
+ divider,
53
+ authFooter,
54
+ sentMessage,
55
+ sentText,
56
+ backLink
57
+ };
58
+ //#endregion
59
+ export { authBrand, authCard, authFooter, authForm, authHeader, authLayout, authSubtitle, authTitle, backLink, checkbox, checkboxLabel, checkboxLink, checkboxRow, auth_pages_module_default as default, divider, error, eyeIcon, field, forgotLink, input, label, passwordWrapper, sentMessage, sentText, spin, spinner, submitButton, toggle };
60
+
61
+ //# sourceMappingURL=index61.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index61.js","names":[],"sources":["../src/components/auth-pages/auth-pages.module.css"],"sourcesContent":["/* ── Layout ── */\n.authLayout {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n min-height: 100dvh;\n padding: 24px;\n background: var(--background);\n}\n\n.authCard {\n width: 100%;\n max-width: 400px;\n border-radius: var(--ts-card-radius, 12px);\n border: 1px solid var(--ts-card-border, var(--border));\n background: var(--ts-card-bg, var(--card));\n color: var(--ts-card-fg, var(--foreground));\n box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.authBrand {\n display: flex;\n justify-content: center;\n margin-bottom: 4px;\n}\n\n.authBrand svg {\n width: 40px;\n height: 40px;\n color: var(--primary);\n}\n\n.authHeader {\n text-align: center;\n}\n\n.authTitle {\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.4;\n margin: 0;\n color: var(--foreground);\n}\n\n.authSubtitle {\n font-size: 0.875rem;\n color: var(--muted-foreground);\n margin-top: 4px;\n margin-bottom: 0;\n line-height: 1.4;\n}\n\n/* ── Form ── */\n.authForm {\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n/* ── Field ── */\n.field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.label {\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--foreground);\n}\n\n.input {\n display: flex;\n width: 100%;\n min-height: 2.25rem;\n border-radius: 0.5rem;\n border: 1px solid var(--input);\n background: var(--background);\n color: var(--foreground);\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n box-shadow: var(--ts-input-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));\n transition: border-color 0.15s ease, background 0.15s ease;\n font-family: inherit;\n}\n\n.input::placeholder {\n color: var(--muted-foreground);\n}\n\n.input:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ── Error ── */\n.error {\n font-size: 0.8rem;\n color: var(--destructive);\n margin-top: 2px;\n}\n\n/* ── Password wrapper ── */\n.passwordWrapper {\n position: relative;\n}\n\n.passwordWrapper .input {\n padding-right: 2.5rem;\n}\n\n.toggle {\n position: absolute;\n right: 0.5rem;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n padding: 0.25rem;\n cursor: pointer;\n color: var(--muted-foreground);\n border-radius: 4px;\n transition: color 0.15s, background 0.15s;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.toggle:hover {\n color: var(--foreground);\n background: var(--accent);\n}\n\n.toggle:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.eyeIcon {\n width: 1.125rem;\n height: 1.125rem;\n}\n\n/* ── Checkbox row ── */\n.checkboxRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.checkboxLabel {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.875rem;\n color: var(--foreground);\n cursor: pointer;\n}\n\n.checkbox {\n width: 1rem;\n height: 1rem;\n accent-color: var(--primary);\n border-radius: 4px;\n cursor: pointer;\n}\n\n.checkbox:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.forgotLink {\n font-size: 0.875rem;\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.forgotLink:hover {\n text-decoration: underline;\n}\n\n.checkboxLink {\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.checkboxLink:hover {\n text-decoration: underline;\n}\n\n/* ── Submit button ── */\n.submitButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition: opacity 0.15s, border-color 0.15s, color 0.15s, background 0.15s;\n white-space: nowrap;\n line-height: 1;\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n background: var(--primary);\n color: var(--primary-foreground);\n}\n\n.submitButton:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.submitButton:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.submitButton:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n/* ── Spinner ── */\n.spinner {\n width: 1rem;\n height: 1rem;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top-color: white;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n}\n\n@keyframes spin {\n to { transform: rotate(360deg); }\n}\n\n/* ── Divider ── */\n.divider {\n border: none;\n border-top: 1px solid var(--border);\n margin: 0;\n}\n\n/* ── Footer ── */\n.authFooter {\n text-align: center;\n font-size: 0.875rem;\n color: var(--muted-foreground);\n margin: 0;\n}\n\n.authFooter a {\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.authFooter a:hover {\n text-decoration: underline;\n}\n\n/* ── Sent state ── */\n.sentMessage {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.sentText {\n font-size: 0.875rem;\n color: var(--foreground);\n line-height: 1.5;\n}\n\n.sentText strong {\n font-weight: 600;\n}\n\n.backLink {\n font-size: 0.875rem;\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.backLink:hover {\n text-decoration: underline;\n}\n"],"mappings":""}
@@ -0,0 +1,88 @@
1
+ //#region src/components/auth-pages/auth-pages.module.css
2
+ var authLayout = "uzi-auth-pages-module__authLayout__i-FlB";
3
+ var authCard = "uzi-auth-pages-module__authCard__toOGS";
4
+ var authBrand = "uzi-auth-pages-module__authBrand__7yOdw";
5
+ var authHeader = "uzi-auth-pages-module__authHeader__V-wcl";
6
+ var authTitle = "uzi-auth-pages-module__authTitle__1bgLI";
7
+ var authSubtitle = "uzi-auth-pages-module__authSubtitle__sGXxg";
8
+ var authForm = "uzi-auth-pages-module__authForm__4MucP";
9
+ var field = "uzi-auth-pages-module__field__Ajl6w";
10
+ var label = "uzi-auth-pages-module__label__MdsqJ";
11
+ var input = "uzi-auth-pages-module__input__yijT9";
12
+ var error = "uzi-auth-pages-module__error__7Mhyi";
13
+ var passwordWrapper = "uzi-auth-pages-module__passwordWrapper__P0bez";
14
+ var toggle = "uzi-auth-pages-module__toggle__T7HaZ";
15
+ var eyeIcon = "uzi-auth-pages-module__eyeIcon__ab2Ts";
16
+ var checkboxRow = "uzi-auth-pages-module__checkboxRow__Rq-84";
17
+ var checkboxLabel = "uzi-auth-pages-module__checkboxLabel__poKs-";
18
+ var checkbox = "uzi-auth-pages-module__checkbox__KOQQe";
19
+ var forgotLink = "uzi-auth-pages-module__forgotLink__5q-vL";
20
+ var checkboxLink = "uzi-auth-pages-module__checkboxLink__kAkKg";
21
+ var submitButton = "uzi-auth-pages-module__submitButton__mlGxT";
22
+ var spinner = "uzi-auth-pages-module__spinner__seK4F";
23
+ var spin = "uzi-auth-pages-module__spin__hYpWH";
24
+ var divider = "uzi-auth-pages-module__divider__Debmu";
25
+ var authFooter = "uzi-auth-pages-module__authFooter__SEaGh";
26
+ var sentMessage = "uzi-auth-pages-module__sentMessage__vLBoY";
27
+ var sentText = "uzi-auth-pages-module__sentText__qyJkF";
28
+ var backLink = "uzi-auth-pages-module__backLink__ezB3X";
29
+ var auth_pages_module_default = {
30
+ authLayout,
31
+ authCard,
32
+ authBrand,
33
+ authHeader,
34
+ authTitle,
35
+ authSubtitle,
36
+ authForm,
37
+ field,
38
+ label,
39
+ input,
40
+ error,
41
+ passwordWrapper,
42
+ toggle,
43
+ eyeIcon,
44
+ checkboxRow,
45
+ checkboxLabel,
46
+ checkbox,
47
+ forgotLink,
48
+ checkboxLink,
49
+ submitButton,
50
+ spinner,
51
+ spin,
52
+ divider,
53
+ authFooter,
54
+ sentMessage,
55
+ sentText,
56
+ backLink
57
+ };
58
+ //#endregion
59
+ exports.authBrand = authBrand;
60
+ exports.authCard = authCard;
61
+ exports.authFooter = authFooter;
62
+ exports.authForm = authForm;
63
+ exports.authHeader = authHeader;
64
+ exports.authLayout = authLayout;
65
+ exports.authSubtitle = authSubtitle;
66
+ exports.authTitle = authTitle;
67
+ exports.backLink = backLink;
68
+ exports.checkbox = checkbox;
69
+ exports.checkboxLabel = checkboxLabel;
70
+ exports.checkboxLink = checkboxLink;
71
+ exports.checkboxRow = checkboxRow;
72
+ exports.default = auth_pages_module_default;
73
+ exports.divider = divider;
74
+ exports.error = error;
75
+ exports.eyeIcon = eyeIcon;
76
+ exports.field = field;
77
+ exports.forgotLink = forgotLink;
78
+ exports.input = input;
79
+ exports.label = label;
80
+ exports.passwordWrapper = passwordWrapper;
81
+ exports.sentMessage = sentMessage;
82
+ exports.sentText = sentText;
83
+ exports.spin = spin;
84
+ exports.spinner = spinner;
85
+ exports.submitButton = submitButton;
86
+ exports.toggle = toggle;
87
+
88
+ //# sourceMappingURL=index62.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index62.cjs","names":[],"sources":["../src/components/auth-pages/auth-pages.module.css"],"sourcesContent":["/* ── Layout ── */\n.authLayout {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n min-height: 100dvh;\n padding: 24px;\n background: var(--background);\n}\n\n.authCard {\n width: 100%;\n max-width: 400px;\n border-radius: var(--ts-card-radius, 12px);\n border: 1px solid var(--ts-card-border, var(--border));\n background: var(--ts-card-bg, var(--card));\n color: var(--ts-card-fg, var(--foreground));\n box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.authBrand {\n display: flex;\n justify-content: center;\n margin-bottom: 4px;\n}\n\n.authBrand svg {\n width: 40px;\n height: 40px;\n color: var(--primary);\n}\n\n.authHeader {\n text-align: center;\n}\n\n.authTitle {\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.4;\n margin: 0;\n color: var(--foreground);\n}\n\n.authSubtitle {\n font-size: 0.875rem;\n color: var(--muted-foreground);\n margin-top: 4px;\n margin-bottom: 0;\n line-height: 1.4;\n}\n\n/* ── Form ── */\n.authForm {\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n/* ── Field ── */\n.field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.label {\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--foreground);\n}\n\n.input {\n display: flex;\n width: 100%;\n min-height: 2.25rem;\n border-radius: 0.5rem;\n border: 1px solid var(--input);\n background: var(--background);\n color: var(--foreground);\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n box-shadow: var(--ts-input-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));\n transition: border-color 0.15s ease, background 0.15s ease;\n font-family: inherit;\n}\n\n.input::placeholder {\n color: var(--muted-foreground);\n}\n\n.input:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ── Error ── */\n.error {\n font-size: 0.8rem;\n color: var(--destructive);\n margin-top: 2px;\n}\n\n/* ── Password wrapper ── */\n.passwordWrapper {\n position: relative;\n}\n\n.passwordWrapper .input {\n padding-right: 2.5rem;\n}\n\n.toggle {\n position: absolute;\n right: 0.5rem;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n padding: 0.25rem;\n cursor: pointer;\n color: var(--muted-foreground);\n border-radius: 4px;\n transition: color 0.15s, background 0.15s;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.toggle:hover {\n color: var(--foreground);\n background: var(--accent);\n}\n\n.toggle:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.eyeIcon {\n width: 1.125rem;\n height: 1.125rem;\n}\n\n/* ── Checkbox row ── */\n.checkboxRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.checkboxLabel {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.875rem;\n color: var(--foreground);\n cursor: pointer;\n}\n\n.checkbox {\n width: 1rem;\n height: 1rem;\n accent-color: var(--primary);\n border-radius: 4px;\n cursor: pointer;\n}\n\n.checkbox:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.forgotLink {\n font-size: 0.875rem;\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.forgotLink:hover {\n text-decoration: underline;\n}\n\n.checkboxLink {\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.checkboxLink:hover {\n text-decoration: underline;\n}\n\n/* ── Submit button ── */\n.submitButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-family: inherit;\n font-weight: 600;\n border-radius: 8px;\n border: 1px solid transparent;\n cursor: pointer;\n text-decoration: none;\n transition: opacity 0.15s, border-color 0.15s, color 0.15s, background 0.15s;\n white-space: nowrap;\n line-height: 1;\n font-size: 0.95rem;\n min-height: 2.25rem;\n padding: 10px 22px;\n background: var(--primary);\n color: var(--primary-foreground);\n}\n\n.submitButton:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n\n.submitButton:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.submitButton:hover:not(:disabled) {\n opacity: 0.88;\n}\n\n/* ── Spinner ── */\n.spinner {\n width: 1rem;\n height: 1rem;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top-color: white;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n}\n\n@keyframes spin {\n to { transform: rotate(360deg); }\n}\n\n/* ── Divider ── */\n.divider {\n border: none;\n border-top: 1px solid var(--border);\n margin: 0;\n}\n\n/* ── Footer ── */\n.authFooter {\n text-align: center;\n font-size: 0.875rem;\n color: var(--muted-foreground);\n margin: 0;\n}\n\n.authFooter a {\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.authFooter a:hover {\n text-decoration: underline;\n}\n\n/* ── Sent state ── */\n.sentMessage {\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.sentText {\n font-size: 0.875rem;\n color: var(--foreground);\n line-height: 1.5;\n}\n\n.sentText strong {\n font-weight: 600;\n}\n\n.backLink {\n font-size: 0.875rem;\n color: var(--primary);\n text-decoration: none;\n font-weight: 500;\n}\n\n.backLink:hover {\n text-decoration: underline;\n}\n"],"mappings":""}