@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
package/dist/index48.js CHANGED
@@ -1,50 +1,35 @@
1
1
  import { cx } from "./index3.js";
2
- import auth_card_module_default from "./index47.js";
3
- import * as React from "react";
4
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
- //#region src/components/auth-card/AuthCard.tsx
6
- /**
7
- * AuthCard a centered card layout for auth pages.
8
- *
9
- * - Centered vertically and horizontally on screen
10
- * - Brand → title → subtitle → form → divider → footer
11
- * - No auth logic just the visual template
12
- */
13
- var AuthCard = React.forwardRef(({ title, subtitle, children, footer, brand, className }, ref) => {
14
- return /* @__PURE__ */ jsx("div", {
15
- className: cx(auth_card_module_default.authLayout, className),
16
- ref,
17
- children: /* @__PURE__ */ jsxs("div", {
18
- className: auth_card_module_default.authCard,
19
- children: [
20
- brand && /* @__PURE__ */ jsx("div", {
21
- className: auth_card_module_default.authBrand,
22
- children: brand
23
- }),
24
- /* @__PURE__ */ jsxs("div", {
25
- className: auth_card_module_default.authHeader,
26
- children: [/* @__PURE__ */ jsx("h1", {
27
- className: auth_card_module_default.authTitle,
28
- children: title
29
- }), subtitle && /* @__PURE__ */ jsx("p", {
30
- className: auth_card_module_default.authSubtitle,
31
- children: subtitle
32
- })]
33
- }),
34
- /* @__PURE__ */ jsx("div", {
35
- className: auth_card_module_default.authBody,
36
- children
37
- }),
38
- footer && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("hr", { className: auth_card_module_default.divider }), /* @__PURE__ */ jsx("p", {
39
- className: auth_card_module_default.authFooter,
40
- children: footer
41
- })] })
42
- ]
43
- })
2
+ import empty_state_module_default from "./index47.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/empty-state/EmptyState.tsx
5
+ function EmptyState({ title, description, visual, primaryAction, secondaryAction, size = "default", headingLevel = 2, className, ...rest }) {
6
+ const Heading = `h${headingLevel}`;
7
+ return /* @__PURE__ */ jsxs("div", {
8
+ className: cx(empty_state_module_default.root, size === "compact" && empty_state_module_default.compact, className),
9
+ ...rest,
10
+ children: [
11
+ visual != null && /* @__PURE__ */ jsx("div", {
12
+ className: empty_state_module_default.visual,
13
+ children: visual
14
+ }),
15
+ /* @__PURE__ */ jsxs("div", {
16
+ className: empty_state_module_default.content,
17
+ children: [/* @__PURE__ */ jsx(Heading, {
18
+ className: empty_state_module_default.title,
19
+ children: title
20
+ }), description != null && /* @__PURE__ */ jsx("div", {
21
+ className: empty_state_module_default.description,
22
+ children: description
23
+ })]
24
+ }),
25
+ (primaryAction != null || secondaryAction != null) && /* @__PURE__ */ jsxs("div", {
26
+ className: empty_state_module_default.actions,
27
+ children: [primaryAction, secondaryAction]
28
+ })
29
+ ]
44
30
  });
45
- });
46
- AuthCard.displayName = "AuthCard";
31
+ }
47
32
  //#endregion
48
- export { AuthCard };
33
+ export { EmptyState };
49
34
 
50
35
  //# sourceMappingURL=index48.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index48.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"}
1
+ {"version":3,"file":"index48.js","names":[],"sources":["../src/components/empty-state/EmptyState.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./empty-state.module.css\";\n\nexport type EmptyStateSize = \"compact\" | \"default\";\nexport type EmptyStateHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type EmptyStateProps = Omit<HTMLAttributes<HTMLDivElement>, \"title\"> & {\n title: ReactNode;\n description?: ReactNode;\n visual?: ReactNode;\n primaryAction?: ReactNode;\n secondaryAction?: ReactNode;\n size?: EmptyStateSize;\n headingLevel?: EmptyStateHeadingLevel;\n};\n\nexport function EmptyState({\n title,\n description,\n visual,\n primaryAction,\n secondaryAction,\n size = \"default\",\n headingLevel = 2,\n className,\n ...rest\n}: EmptyStateProps) {\n const Heading = `h${headingLevel}` as `h${EmptyStateHeadingLevel}`;\n\n return (\n <div\n className={cx(styles.root, size === \"compact\" && styles.compact, className)}\n {...rest}\n >\n {visual != null && <div className={styles.visual}>{visual}</div>}\n <div className={styles.content}>\n <Heading className={styles.title}>{title}</Heading>\n {description != null && <div className={styles.description}>{description}</div>}\n </div>\n {(primaryAction != null || secondaryAction != null) && (\n <div className={styles.actions}>\n {primaryAction}\n {secondaryAction}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAiBA,SAAgB,WAAW,EACzB,OACA,aACA,QACA,eACA,iBACA,OAAO,WACP,eAAe,GACf,WACA,GAAG,QACe;CAClB,MAAM,UAAU,IAAI;CAEpB,OACE,qBAAC,OAAD;EACE,WAAW,GAAG,2BAAO,MAAM,SAAS,aAAa,2BAAO,SAAS,SAAS;EAC1E,GAAI;YAFN;GAIG,UAAU,QAAQ,oBAAC,OAAD;IAAK,WAAW,2BAAO;cAAS;GAAY,CAAA;GAC/D,qBAAC,OAAD;IAAK,WAAW,2BAAO;cAAvB,CACE,oBAAC,SAAD;KAAS,WAAW,2BAAO;eAAQ;IAAe,CAAA,GACjD,eAAe,QAAQ,oBAAC,OAAD;KAAK,WAAW,2BAAO;eAAc;IAAiB,CAAA,CAC3E;;IACH,iBAAiB,QAAQ,mBAAmB,SAC5C,qBAAC,OAAD;IAAK,WAAW,2BAAO;cAAvB,CACG,eACA,eACE;;EAEJ;;AAET"}
package/dist/index49.cjs CHANGED
@@ -1,52 +1,35 @@
1
- const require_runtime = require("./index2.cjs");
2
1
  const require_cx = require("./index4.cjs");
3
- const require_auth_card_module = require("./index48.cjs");
4
- let react = require("react");
5
- react = require_runtime.__toESM(react, 1);
2
+ const require_empty_state_module = require("./index48.cjs");
6
3
  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
- })
4
+ //#region src/components/empty-state/EmptyState.tsx
5
+ function EmptyState({ title, description, visual, primaryAction, secondaryAction, size = "default", headingLevel = 2, className, ...rest }) {
6
+ const Heading = `h${headingLevel}`;
7
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8
+ className: require_cx.cx(require_empty_state_module.default.root, size === "compact" && require_empty_state_module.default.compact, className),
9
+ ...rest,
10
+ children: [
11
+ visual != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
12
+ className: require_empty_state_module.default.visual,
13
+ children: visual
14
+ }),
15
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16
+ className: require_empty_state_module.default.content,
17
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Heading, {
18
+ className: require_empty_state_module.default.title,
19
+ children: title
20
+ }), description != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21
+ className: require_empty_state_module.default.description,
22
+ children: description
23
+ })]
24
+ }),
25
+ (primaryAction != null || secondaryAction != null) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
26
+ className: require_empty_state_module.default.actions,
27
+ children: [primaryAction, secondaryAction]
28
+ })
29
+ ]
46
30
  });
47
- });
48
- AuthCard.displayName = "AuthCard";
31
+ }
49
32
  //#endregion
50
- exports.AuthCard = AuthCard;
33
+ exports.EmptyState = EmptyState;
51
34
 
52
35
  //# sourceMappingURL=index49.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index49.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"}
1
+ {"version":3,"file":"index49.cjs","names":[],"sources":["../src/components/empty-state/EmptyState.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./empty-state.module.css\";\n\nexport type EmptyStateSize = \"compact\" | \"default\";\nexport type EmptyStateHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type EmptyStateProps = Omit<HTMLAttributes<HTMLDivElement>, \"title\"> & {\n title: ReactNode;\n description?: ReactNode;\n visual?: ReactNode;\n primaryAction?: ReactNode;\n secondaryAction?: ReactNode;\n size?: EmptyStateSize;\n headingLevel?: EmptyStateHeadingLevel;\n};\n\nexport function EmptyState({\n title,\n description,\n visual,\n primaryAction,\n secondaryAction,\n size = \"default\",\n headingLevel = 2,\n className,\n ...rest\n}: EmptyStateProps) {\n const Heading = `h${headingLevel}` as `h${EmptyStateHeadingLevel}`;\n\n return (\n <div\n className={cx(styles.root, size === \"compact\" && styles.compact, className)}\n {...rest}\n >\n {visual != null && <div className={styles.visual}>{visual}</div>}\n <div className={styles.content}>\n <Heading className={styles.title}>{title}</Heading>\n {description != null && <div className={styles.description}>{description}</div>}\n </div>\n {(primaryAction != null || secondaryAction != null) && (\n <div className={styles.actions}>\n {primaryAction}\n {secondaryAction}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAiBA,SAAgB,WAAW,EACzB,OACA,aACA,QACA,eACA,iBACA,OAAO,WACP,eAAe,GACf,WACA,GAAG,QACe;CAClB,MAAM,UAAU,IAAI;CAEpB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,WAAW,WAAA,GAAG,2BAAA,QAAO,MAAM,SAAS,aAAa,2BAAA,QAAO,SAAS,SAAS;EAC1E,GAAI;YAFN;GAIG,UAAU,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAW,2BAAA,QAAO;cAAS;GAAY,CAAA;GAC/D,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAW,2BAAA,QAAO;cAAvB,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;KAAS,WAAW,2BAAA,QAAO;eAAQ;IAAe,CAAA,GACjD,eAAe,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAW,2BAAA,QAAO;eAAc;IAAiB,CAAA,CAC3E;;IACH,iBAAiB,QAAQ,mBAAmB,SAC5C,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAW,2BAAA,QAAO;cAAvB,CACG,eACA,eACE;;EAEJ;;AAET"}
package/dist/index49.js CHANGED
@@ -1,61 +1,18 @@
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
1
+ //#region src/components/layout-primitives/layout-primitives.module.css
2
+ var stack = "uzi-layout-primitives-module__stack__1hBwu";
3
+ var inline = "uzi-layout-primitives-module__inline__ACaEQ";
4
+ var nowrap = "uzi-layout-primitives-module__nowrap__VuAAL";
5
+ var layout_primitives_module_default = {
6
+ stack,
7
+ inline,
8
+ nowrap,
9
+ "gap-xs": "uzi-layout-primitives-module__gap-xs__e3Tkz",
10
+ "gap-sm": "uzi-layout-primitives-module__gap-sm__9ng--",
11
+ "gap-md": "uzi-layout-primitives-module__gap-md__tHIwH",
12
+ "gap-lg": "uzi-layout-primitives-module__gap-lg__iUm9X",
13
+ "gap-xl": "uzi-layout-primitives-module__gap-xl__O-6Na"
57
14
  };
58
15
  //#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 };
16
+ export { layout_primitives_module_default as default, inline, nowrap, stack };
60
17
 
61
18
  //# sourceMappingURL=index49.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index49.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":""}
1
+ {"version":3,"file":"index49.js","names":[],"sources":["../src/components/layout-primitives/layout-primitives.module.css"],"sourcesContent":[".stack {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n\n.inline {\n display: flex;\n min-width: 0;\n flex-wrap: wrap;\n}\n\n.nowrap {\n flex-wrap: nowrap;\n}\n\n.gap-xs { gap: 0.25rem; }\n.gap-sm { gap: 0.5rem; }\n.gap-md { gap: 1rem; }\n.gap-lg { gap: 1.5rem; }\n.gap-xl { gap: 2rem; }\n"],"mappings":""}
package/dist/index50.cjs CHANGED
@@ -1,88 +1,21 @@
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
1
+ //#region src/components/layout-primitives/layout-primitives.module.css
2
+ var stack = "uzi-layout-primitives-module__stack__1hBwu";
3
+ var inline = "uzi-layout-primitives-module__inline__ACaEQ";
4
+ var nowrap = "uzi-layout-primitives-module__nowrap__VuAAL";
5
+ var layout_primitives_module_default = {
6
+ stack,
7
+ inline,
8
+ nowrap,
9
+ "gap-xs": "uzi-layout-primitives-module__gap-xs__e3Tkz",
10
+ "gap-sm": "uzi-layout-primitives-module__gap-sm__9ng--",
11
+ "gap-md": "uzi-layout-primitives-module__gap-md__tHIwH",
12
+ "gap-lg": "uzi-layout-primitives-module__gap-lg__iUm9X",
13
+ "gap-xl": "uzi-layout-primitives-module__gap-xl__O-6Na"
57
14
  };
58
15
  //#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;
16
+ exports.default = layout_primitives_module_default;
17
+ exports.inline = inline;
18
+ exports.nowrap = nowrap;
19
+ exports.stack = stack;
87
20
 
88
21
  //# sourceMappingURL=index50.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index50.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":""}
1
+ {"version":3,"file":"index50.cjs","names":[],"sources":["../src/components/layout-primitives/layout-primitives.module.css"],"sourcesContent":[".stack {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n\n.inline {\n display: flex;\n min-width: 0;\n flex-wrap: wrap;\n}\n\n.nowrap {\n flex-wrap: nowrap;\n}\n\n.gap-xs { gap: 0.25rem; }\n.gap-sm { gap: 0.5rem; }\n.gap-md { gap: 1rem; }\n.gap-lg { gap: 1.5rem; }\n.gap-xl { gap: 2rem; }\n"],"mappings":""}