@tomny-dev/uzi 0.3.0 → 0.4.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 (55) hide show
  1. package/README.md +28 -0
  2. package/dist/components/data-table/DataTable.d.ts +36 -0
  3. package/dist/components/data-table/DataTable.d.ts.map +1 -0
  4. package/dist/components/data-table/DataTable.test.d.ts +2 -0
  5. package/dist/components/data-table/DataTable.test.d.ts.map +1 -0
  6. package/dist/components/empty-state-page/EmptyStatePage.d.ts +26 -0
  7. package/dist/components/empty-state-page/EmptyStatePage.d.ts.map +1 -0
  8. package/dist/components/empty-state-page/EmptyStatePage.test.d.ts +2 -0
  9. package/dist/components/empty-state-page/EmptyStatePage.test.d.ts.map +1 -0
  10. package/dist/components/error-page/ErrorPage.d.ts +32 -0
  11. package/dist/components/error-page/ErrorPage.d.ts.map +1 -0
  12. package/dist/components/error-page/ErrorPage.test.d.ts +2 -0
  13. package/dist/components/error-page/ErrorPage.test.d.ts.map +1 -0
  14. package/dist/components/settings-page/SettingsPage.d.ts +38 -0
  15. package/dist/components/settings-page/SettingsPage.d.ts.map +1 -0
  16. package/dist/components/settings-page/SettingsPage.test.d.ts +2 -0
  17. package/dist/components/settings-page/SettingsPage.test.d.ts.map +1 -0
  18. package/dist/index.cjs +10 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +5 -1
  22. package/dist/index63.js +63 -0
  23. package/dist/index63.js.map +1 -0
  24. package/dist/index64.cjs +91 -0
  25. package/dist/index64.cjs.map +1 -0
  26. package/dist/index64.js +246 -0
  27. package/dist/index64.js.map +1 -0
  28. package/dist/index65.cjs +248 -0
  29. package/dist/index65.cjs.map +1 -0
  30. package/dist/index65.js +47 -0
  31. package/dist/index65.js.map +1 -0
  32. package/dist/index66.cjs +67 -0
  33. package/dist/index66.cjs.map +1 -0
  34. package/dist/index66.js +86 -0
  35. package/dist/index66.js.map +1 -0
  36. package/dist/index67.cjs +88 -0
  37. package/dist/index67.cjs.map +1 -0
  38. package/dist/index67.js +25 -0
  39. package/dist/index67.js.map +1 -0
  40. package/dist/index68.cjs +34 -0
  41. package/dist/index68.cjs.map +1 -0
  42. package/dist/index68.js +101 -0
  43. package/dist/index68.js.map +1 -0
  44. package/dist/index69.cjs +105 -0
  45. package/dist/index69.cjs.map +1 -0
  46. package/dist/index69.js +23 -0
  47. package/dist/index69.js.map +1 -0
  48. package/dist/index70.cjs +31 -0
  49. package/dist/index70.cjs.map +1 -0
  50. package/dist/index70.js +159 -0
  51. package/dist/index70.js.map +1 -0
  52. package/dist/index71.cjs +161 -0
  53. package/dist/index71.cjs.map +1 -0
  54. package/dist/style.css +532 -0
  55. package/package.json +9 -1
@@ -0,0 +1,67 @@
1
+ //#region src/components/settings-page/settings-page.module.css
2
+ var wrapper = "uzi-settings-page-module__wrapper__G7OOt";
3
+ var header = "uzi-settings-page-module__header__ao-nv";
4
+ var headerContent = "uzi-settings-page-module__headerContent__xwP9V";
5
+ var title = "uzi-settings-page-module__title__anF9l";
6
+ var description = "uzi-settings-page-module__description__Qw6EQ";
7
+ var content = "uzi-settings-page-module__content__MBz6q";
8
+ var sections = "uzi-settings-page-module__sections__HV2n4";
9
+ var section = "uzi-settings-page-module__section__Vjoe3";
10
+ var sectionHeader = "uzi-settings-page-module__sectionHeader__XiOWN";
11
+ var sectionTitle = "uzi-settings-page-module__sectionTitle__bN5lO";
12
+ var sectionDescription = "uzi-settings-page-module__sectionDescription__3wjhy";
13
+ var sectionBody = "uzi-settings-page-module__sectionBody__zraHK";
14
+ var dangerZone = "uzi-settings-page-module__dangerZone__GD8XX";
15
+ var dangerZoneHeader = "uzi-settings-page-module__dangerZoneHeader__2d3R1";
16
+ var dangerZoneTitle = "uzi-settings-page-module__dangerZoneTitle__ljU2k";
17
+ var dangerZoneDescription = "uzi-settings-page-module__dangerZoneDescription__Z3Ohe";
18
+ var dangerZoneBody = "uzi-settings-page-module__dangerZoneBody__zAQbu";
19
+ var footer = "uzi-settings-page-module__footer__dO4Xo";
20
+ var footerContent = "uzi-settings-page-module__footerContent__pPOdb";
21
+ var savingIndicator = "uzi-settings-page-module__savingIndicator__ujaC5";
22
+ var settings_page_module_default = {
23
+ wrapper,
24
+ header,
25
+ headerContent,
26
+ title,
27
+ description,
28
+ content,
29
+ sections,
30
+ section,
31
+ sectionHeader,
32
+ sectionTitle,
33
+ sectionDescription,
34
+ sectionBody,
35
+ dangerZone,
36
+ dangerZoneHeader,
37
+ dangerZoneTitle,
38
+ dangerZoneDescription,
39
+ dangerZoneBody,
40
+ footer,
41
+ footerContent,
42
+ savingIndicator
43
+ };
44
+ //#endregion
45
+ exports.content = content;
46
+ exports.dangerZone = dangerZone;
47
+ exports.dangerZoneBody = dangerZoneBody;
48
+ exports.dangerZoneDescription = dangerZoneDescription;
49
+ exports.dangerZoneHeader = dangerZoneHeader;
50
+ exports.dangerZoneTitle = dangerZoneTitle;
51
+ exports.default = settings_page_module_default;
52
+ exports.description = description;
53
+ exports.footer = footer;
54
+ exports.footerContent = footerContent;
55
+ exports.header = header;
56
+ exports.headerContent = headerContent;
57
+ exports.savingIndicator = savingIndicator;
58
+ exports.section = section;
59
+ exports.sectionBody = sectionBody;
60
+ exports.sectionDescription = sectionDescription;
61
+ exports.sectionHeader = sectionHeader;
62
+ exports.sectionTitle = sectionTitle;
63
+ exports.sections = sections;
64
+ exports.title = title;
65
+ exports.wrapper = wrapper;
66
+
67
+ //# sourceMappingURL=index66.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index66.cjs","names":[],"sources":["../src/components/settings-page/settings-page.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n background: var(--background);\n color: var(--foreground);\n}\n\n.header {\n padding: 2rem 2rem 0;\n flex-shrink: 0;\n}\n\n.headerContent {\n max-width: 64rem;\n margin: 0 auto;\n}\n\n.title {\n margin: 0 0 0.25rem;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.description {\n margin: 0;\n font-size: 0.9rem;\n color: var(--muted-foreground);\n line-height: 1.5;\n}\n\n.content {\n flex: 1;\n padding: 1.5rem 2rem 6rem;\n max-width: 64rem;\n margin: 0 auto;\n width: 100%;\n overflow-y: auto;\n}\n\n.sections {\n display: flex;\n flex-direction: column;\n gap: 2rem;\n}\n\n.section {\n border-bottom: 1px solid var(--border);\n padding-bottom: 1.5rem;\n}\n\n.section:last-of-type {\n border-bottom: none;\n}\n\n.sectionHeader {\n margin-bottom: 1.25rem;\n}\n\n.sectionTitle {\n margin: 0 0 0.25rem;\n font-size: 1.125rem;\n font-weight: 600;\n color: var(--foreground);\n}\n\n.sectionDescription {\n margin: 0;\n font-size: 0.85rem;\n color: var(--muted-foreground);\n line-height: 1.5;\n}\n\n.sectionBody {\n display: flex;\n flex-direction: column;\n gap: 1.25rem;\n}\n\n.dangerZone {\n margin-top: 2rem;\n border: 1px solid var(--ts-danger-border, var(--destructive));\n border-radius: 8px;\n background: var(--ts-danger-bg, color-mix(in srgb, var(--destructive) 8%, transparent));\n padding: 1.5rem;\n}\n\n.dangerZoneHeader {\n margin-bottom: 1rem;\n}\n\n.dangerZoneTitle {\n margin: 0 0 0.25rem;\n font-size: 1rem;\n font-weight: 600;\n color: var(--ts-danger-text, var(--destructive));\n}\n\n.dangerZoneDescription {\n margin: 0;\n font-size: 0.85rem;\n color: var(--muted-foreground);\n line-height: 1.5;\n}\n\n.dangerZoneBody {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.footer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n border-top: 1px solid var(--border);\n background: var(--background);\n z-index: 10;\n padding: 0.75rem 2rem;\n}\n\n.footerContent {\n max-width: 64rem;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n}\n\n.savingIndicator {\n font-size: 0.85rem;\n color: var(--muted-foreground);\n}\n\n@media (max-width: 48rem) {\n .header {\n padding: 1.5rem 1rem 0;\n }\n\n .content {\n padding: 1rem 1rem 6rem;\n }\n\n .footer {\n padding: 0.75rem 1rem;\n }\n\n .footerContent {\n flex-direction: column;\n align-items: stretch;\n gap: 0.5rem;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import { cx } from "./index3.js";
2
+ import settings_page_module_default from "./index65.js";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/settings-page/SettingsPage.tsx
6
+ /**
7
+ * SettingsPage — a settings layout with sections, a danger zone, and a sticky save footer.
8
+ *
9
+ * Layout:
10
+ * Header (title + description)
11
+ * Scrollable content:
12
+ * Section group with headings and descriptions
13
+ * Danger zone with red visual distinction
14
+ * Sticky footer: save/cancel buttons
15
+ */
16
+ function SettingsPage({ title, description, sections, dangerZone, dangerZoneTitle, dangerZoneDescription, footer, saving = false, className }) {
17
+ return /* @__PURE__ */ jsxs("div", {
18
+ className: cx(settings_page_module_default.wrapper, className),
19
+ children: [
20
+ /* @__PURE__ */ jsx("header", {
21
+ className: settings_page_module_default.header,
22
+ children: /* @__PURE__ */ jsxs("div", {
23
+ className: settings_page_module_default.headerContent,
24
+ children: [/* @__PURE__ */ jsx("h1", {
25
+ className: settings_page_module_default.title,
26
+ children: title
27
+ }), description && /* @__PURE__ */ jsx("p", {
28
+ className: settings_page_module_default.description,
29
+ children: description
30
+ })]
31
+ })
32
+ }),
33
+ /* @__PURE__ */ jsxs("div", {
34
+ className: settings_page_module_default.content,
35
+ children: [/* @__PURE__ */ jsx("div", {
36
+ className: settings_page_module_default.sections,
37
+ children: sections.map((section, index) => /* @__PURE__ */ jsxs("section", {
38
+ className: settings_page_module_default.section,
39
+ children: [/* @__PURE__ */ jsxs("div", {
40
+ className: settings_page_module_default.sectionHeader,
41
+ children: [/* @__PURE__ */ jsx("h2", {
42
+ className: settings_page_module_default.sectionTitle,
43
+ children: section.title
44
+ }), section.description && /* @__PURE__ */ jsx("p", {
45
+ className: settings_page_module_default.sectionDescription,
46
+ children: section.description
47
+ })]
48
+ }), /* @__PURE__ */ jsx("div", {
49
+ className: settings_page_module_default.sectionBody,
50
+ children: section.children
51
+ })]
52
+ }, index))
53
+ }), dangerZone && /* @__PURE__ */ jsxs("div", {
54
+ className: settings_page_module_default.dangerZone,
55
+ children: [(dangerZoneTitle || dangerZoneDescription) && /* @__PURE__ */ jsxs("div", {
56
+ className: settings_page_module_default.dangerZoneHeader,
57
+ children: [dangerZoneTitle && /* @__PURE__ */ jsx("h2", {
58
+ className: settings_page_module_default.dangerZoneTitle,
59
+ children: dangerZoneTitle
60
+ }), dangerZoneDescription && /* @__PURE__ */ jsx("p", {
61
+ className: settings_page_module_default.dangerZoneDescription,
62
+ children: dangerZoneDescription
63
+ })]
64
+ }), /* @__PURE__ */ jsx("div", {
65
+ className: settings_page_module_default.dangerZoneBody,
66
+ children: dangerZone
67
+ })]
68
+ })]
69
+ }),
70
+ /* @__PURE__ */ jsx("footer", {
71
+ className: settings_page_module_default.footer,
72
+ children: /* @__PURE__ */ jsxs("div", {
73
+ className: settings_page_module_default.footerContent,
74
+ children: [footer, saving && /* @__PURE__ */ jsx("span", {
75
+ className: settings_page_module_default.savingIndicator,
76
+ children: "Saving..."
77
+ })]
78
+ })
79
+ })
80
+ ]
81
+ });
82
+ }
83
+ //#endregion
84
+ export { SettingsPage };
85
+
86
+ //# sourceMappingURL=index66.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index66.js","names":[],"sources":["../src/components/settings-page/SettingsPage.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./settings-page.module.css\";\n\nexport interface SettingsSection {\n title: React.ReactNode;\n description?: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport interface SettingsPageProps {\n /** Page title */\n title: React.ReactNode;\n /** Page subtitle / description */\n description?: React.ReactNode;\n /** Form sections rendered in the main content area */\n sections: SettingsSection[];\n /** Content rendered in the danger zone (red visual distinction) */\n dangerZone?: React.ReactNode;\n /** Danger zone title */\n dangerZoneTitle?: React.ReactNode;\n /** Danger zone description */\n dangerZoneDescription?: React.ReactNode;\n /** Sticky footer content (e.g., Save / Cancel buttons) */\n footer: React.ReactNode;\n /** Whether the page is saving */\n saving?: boolean;\n /** Additional class name for the outer wrapper */\n className?: string;\n}\n\n/**\n * SettingsPage — a settings layout with sections, a danger zone, and a sticky save footer.\n *\n * Layout:\n * Header (title + description)\n * Scrollable content:\n * Section group with headings and descriptions\n * Danger zone with red visual distinction\n * Sticky footer: save/cancel buttons\n */\nexport function SettingsPage({\n title,\n description,\n sections,\n dangerZone,\n dangerZoneTitle,\n dangerZoneDescription,\n footer,\n saving = false,\n className,\n}: SettingsPageProps) {\n return (\n <div className={cx(styles.wrapper, className)}>\n <header className={styles.header}>\n <div className={styles.headerContent}>\n <h1 className={styles.title}>{title}</h1>\n {description && <p className={styles.description}>{description}</p>}\n </div>\n </header>\n\n <div className={styles.content}>\n <div className={styles.sections}>\n {sections.map((section, index) => (\n <section key={index} className={styles.section}>\n <div className={styles.sectionHeader}>\n <h2 className={styles.sectionTitle}>{section.title}</h2>\n {section.description && (\n <p className={styles.sectionDescription}>{section.description}</p>\n )}\n </div>\n <div className={styles.sectionBody}>{section.children}</div>\n </section>\n ))}\n </div>\n\n {dangerZone && (\n <div className={styles.dangerZone}>\n {(dangerZoneTitle || dangerZoneDescription) && (\n <div className={styles.dangerZoneHeader}>\n {dangerZoneTitle && <h2 className={styles.dangerZoneTitle}>{dangerZoneTitle}</h2>}\n {dangerZoneDescription && (\n <p className={styles.dangerZoneDescription}>{dangerZoneDescription}</p>\n )}\n </div>\n )}\n <div className={styles.dangerZoneBody}>{dangerZone}</div>\n </div>\n )}\n </div>\n\n <footer className={styles.footer}>\n <div className={styles.footerContent}>\n {footer}\n {saving && <span className={styles.savingIndicator}>Saving...</span>}\n </div>\n </footer>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAyCA,SAAgB,aAAa,EAC3B,OACA,aACA,UACA,YACA,iBACA,uBACA,QACA,SAAS,OACT,aACoB;CACpB,OACE,qBAAC,OAAD;EAAK,WAAW,GAAG,6BAAO,SAAS,SAAS;YAA5C;GACE,oBAAC,UAAD;IAAQ,WAAW,6BAAO;cACxB,qBAAC,OAAD;KAAK,WAAW,6BAAO;eAAvB,CACE,oBAAC,MAAD;MAAI,WAAW,6BAAO;gBAAQ;KAAU,CAAA,GACvC,eAAe,oBAAC,KAAD;MAAG,WAAW,6BAAO;gBAAc;KAAe,CAAA,CAC/D;;GACC,CAAA;GAER,qBAAC,OAAD;IAAK,WAAW,6BAAO;cAAvB,CACE,oBAAC,OAAD;KAAK,WAAW,6BAAO;eACpB,SAAS,KAAK,SAAS,UACtB,qBAAC,WAAD;MAAqB,WAAW,6BAAO;gBAAvC,CACE,qBAAC,OAAD;OAAK,WAAW,6BAAO;iBAAvB,CACE,oBAAC,MAAD;QAAI,WAAW,6BAAO;kBAAe,QAAQ;OAAU,CAAA,GACtD,QAAQ,eACP,oBAAC,KAAD;QAAG,WAAW,6BAAO;kBAAqB,QAAQ;OAAe,CAAA,CAEhE;UACL,oBAAC,OAAD;OAAK,WAAW,6BAAO;iBAAc,QAAQ;MAAc,CAAA,CACpD;QARK,KAQL,CACV;IACE,CAAA,GAEJ,cACC,qBAAC,OAAD;KAAK,WAAW,6BAAO;eAAvB,EACI,mBAAmB,0BACnB,qBAAC,OAAD;MAAK,WAAW,6BAAO;gBAAvB,CACG,mBAAmB,oBAAC,MAAD;OAAI,WAAW,6BAAO;iBAAkB;MAAoB,CAAA,GAC/E,yBACC,oBAAC,KAAD;OAAG,WAAW,6BAAO;iBAAwB;MAAyB,CAAA,CAErE;SAEP,oBAAC,OAAD;MAAK,WAAW,6BAAO;gBAAiB;KAAgB,CAAA,CACrD;MAEJ;;GAEL,oBAAC,UAAD;IAAQ,WAAW,6BAAO;cACxB,qBAAC,OAAD;KAAK,WAAW,6BAAO;eAAvB,CACG,QACA,UAAU,oBAAC,QAAD;MAAM,WAAW,6BAAO;gBAAiB;KAAe,CAAA,CAChE;;GACC,CAAA;EACL;;AAET"}
@@ -0,0 +1,88 @@
1
+ const require_runtime = require("./index2.cjs");
2
+ const require_cx = require("./index4.cjs");
3
+ const require_settings_page_module = require("./index66.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/settings-page/SettingsPage.tsx
8
+ /**
9
+ * SettingsPage — a settings layout with sections, a danger zone, and a sticky save footer.
10
+ *
11
+ * Layout:
12
+ * Header (title + description)
13
+ * Scrollable content:
14
+ * Section group with headings and descriptions
15
+ * Danger zone with red visual distinction
16
+ * Sticky footer: save/cancel buttons
17
+ */
18
+ function SettingsPage({ title, description, sections, dangerZone, dangerZoneTitle, dangerZoneDescription, footer, saving = false, className }) {
19
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20
+ className: require_cx.cx(require_settings_page_module.default.wrapper, className),
21
+ children: [
22
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
23
+ className: require_settings_page_module.default.header,
24
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
25
+ className: require_settings_page_module.default.headerContent,
26
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
27
+ className: require_settings_page_module.default.title,
28
+ children: title
29
+ }), description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
30
+ className: require_settings_page_module.default.description,
31
+ children: description
32
+ })]
33
+ })
34
+ }),
35
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
36
+ className: require_settings_page_module.default.content,
37
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
38
+ className: require_settings_page_module.default.sections,
39
+ children: sections.map((section, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
40
+ className: require_settings_page_module.default.section,
41
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
42
+ className: require_settings_page_module.default.sectionHeader,
43
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
44
+ className: require_settings_page_module.default.sectionTitle,
45
+ children: section.title
46
+ }), section.description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
47
+ className: require_settings_page_module.default.sectionDescription,
48
+ children: section.description
49
+ })]
50
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
51
+ className: require_settings_page_module.default.sectionBody,
52
+ children: section.children
53
+ })]
54
+ }, index))
55
+ }), dangerZone && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
56
+ className: require_settings_page_module.default.dangerZone,
57
+ children: [(dangerZoneTitle || dangerZoneDescription) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
58
+ className: require_settings_page_module.default.dangerZoneHeader,
59
+ children: [dangerZoneTitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
60
+ className: require_settings_page_module.default.dangerZoneTitle,
61
+ children: dangerZoneTitle
62
+ }), dangerZoneDescription && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
63
+ className: require_settings_page_module.default.dangerZoneDescription,
64
+ children: dangerZoneDescription
65
+ })]
66
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
67
+ className: require_settings_page_module.default.dangerZoneBody,
68
+ children: dangerZone
69
+ })]
70
+ })]
71
+ }),
72
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("footer", {
73
+ className: require_settings_page_module.default.footer,
74
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
75
+ className: require_settings_page_module.default.footerContent,
76
+ children: [footer, saving && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
77
+ className: require_settings_page_module.default.savingIndicator,
78
+ children: "Saving..."
79
+ })]
80
+ })
81
+ })
82
+ ]
83
+ });
84
+ }
85
+ //#endregion
86
+ exports.SettingsPage = SettingsPage;
87
+
88
+ //# sourceMappingURL=index67.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index67.cjs","names":[],"sources":["../src/components/settings-page/SettingsPage.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./settings-page.module.css\";\n\nexport interface SettingsSection {\n title: React.ReactNode;\n description?: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport interface SettingsPageProps {\n /** Page title */\n title: React.ReactNode;\n /** Page subtitle / description */\n description?: React.ReactNode;\n /** Form sections rendered in the main content area */\n sections: SettingsSection[];\n /** Content rendered in the danger zone (red visual distinction) */\n dangerZone?: React.ReactNode;\n /** Danger zone title */\n dangerZoneTitle?: React.ReactNode;\n /** Danger zone description */\n dangerZoneDescription?: React.ReactNode;\n /** Sticky footer content (e.g., Save / Cancel buttons) */\n footer: React.ReactNode;\n /** Whether the page is saving */\n saving?: boolean;\n /** Additional class name for the outer wrapper */\n className?: string;\n}\n\n/**\n * SettingsPage — a settings layout with sections, a danger zone, and a sticky save footer.\n *\n * Layout:\n * Header (title + description)\n * Scrollable content:\n * Section group with headings and descriptions\n * Danger zone with red visual distinction\n * Sticky footer: save/cancel buttons\n */\nexport function SettingsPage({\n title,\n description,\n sections,\n dangerZone,\n dangerZoneTitle,\n dangerZoneDescription,\n footer,\n saving = false,\n className,\n}: SettingsPageProps) {\n return (\n <div className={cx(styles.wrapper, className)}>\n <header className={styles.header}>\n <div className={styles.headerContent}>\n <h1 className={styles.title}>{title}</h1>\n {description && <p className={styles.description}>{description}</p>}\n </div>\n </header>\n\n <div className={styles.content}>\n <div className={styles.sections}>\n {sections.map((section, index) => (\n <section key={index} className={styles.section}>\n <div className={styles.sectionHeader}>\n <h2 className={styles.sectionTitle}>{section.title}</h2>\n {section.description && (\n <p className={styles.sectionDescription}>{section.description}</p>\n )}\n </div>\n <div className={styles.sectionBody}>{section.children}</div>\n </section>\n ))}\n </div>\n\n {dangerZone && (\n <div className={styles.dangerZone}>\n {(dangerZoneTitle || dangerZoneDescription) && (\n <div className={styles.dangerZoneHeader}>\n {dangerZoneTitle && <h2 className={styles.dangerZoneTitle}>{dangerZoneTitle}</h2>}\n {dangerZoneDescription && (\n <p className={styles.dangerZoneDescription}>{dangerZoneDescription}</p>\n )}\n </div>\n )}\n <div className={styles.dangerZoneBody}>{dangerZone}</div>\n </div>\n )}\n </div>\n\n <footer className={styles.footer}>\n <div className={styles.footerContent}>\n {footer}\n {saving && <span className={styles.savingIndicator}>Saving...</span>}\n </div>\n </footer>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAyCA,SAAgB,aAAa,EAC3B,OACA,aACA,UACA,YACA,iBACA,uBACA,QACA,SAAS,OACT,aACoB;CACpB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAW,WAAA,GAAG,6BAAA,QAAO,SAAS,SAAS;YAA5C;GACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;IAAQ,WAAW,6BAAA,QAAO;cACxB,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,WAAW,6BAAA,QAAO;eAAvB,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;MAAI,WAAW,6BAAA,QAAO;gBAAQ;KAAU,CAAA,GACvC,eAAe,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MAAG,WAAW,6BAAA,QAAO;gBAAc;KAAe,CAAA,CAC/D;;GACC,CAAA;GAER,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAW,6BAAA,QAAO;cAAvB,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAW,6BAAA,QAAO;eACpB,SAAS,KAAK,SAAS,UACtB,iBAAA,GAAA,kBAAA,KAAA,CAAC,WAAD;MAAqB,WAAW,6BAAA,QAAO;gBAAvC,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;OAAK,WAAW,6BAAA,QAAO;iBAAvB,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;QAAI,WAAW,6BAAA,QAAO;kBAAe,QAAQ;OAAU,CAAA,GACtD,QAAQ,eACP,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;QAAG,WAAW,6BAAA,QAAO;kBAAqB,QAAQ;OAAe,CAAA,CAEhE;UACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;OAAK,WAAW,6BAAA,QAAO;iBAAc,QAAQ;MAAc,CAAA,CACpD;QARK,KAQL,CACV;IACE,CAAA,GAEJ,cACC,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,WAAW,6BAAA,QAAO;eAAvB,EACI,mBAAmB,0BACnB,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;MAAK,WAAW,6BAAA,QAAO;gBAAvB,CACG,mBAAmB,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;OAAI,WAAW,6BAAA,QAAO;iBAAkB;MAAoB,CAAA,GAC/E,yBACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;OAAG,WAAW,6BAAA,QAAO;iBAAwB;MAAyB,CAAA,CAErE;SAEP,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MAAK,WAAW,6BAAA,QAAO;gBAAiB;KAAgB,CAAA,CACrD;MAEJ;;GAEL,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;IAAQ,WAAW,6BAAA,QAAO;cACxB,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,WAAW,6BAAA,QAAO;eAAvB,CACG,QACA,UAAU,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;MAAM,WAAW,6BAAA,QAAO;gBAAiB;KAAe,CAAA,CAChE;;GACC,CAAA;EACL;;AAET"}
@@ -0,0 +1,25 @@
1
+ //#region src/components/error-page/error-page.module.css
2
+ var layout = "uzi-error-page-module__layout__OVDE8";
3
+ var card = "uzi-error-page-module__card__2veSo";
4
+ var icon = "uzi-error-page-module__icon__vJy8E";
5
+ var iconSvg = "uzi-error-page-module__iconSvg__h4u4V";
6
+ var statusCode = "uzi-error-page-module__statusCode__Ub40l";
7
+ var content = "uzi-error-page-module__content__b2dAY";
8
+ var title = "uzi-error-page-module__title__8iioy";
9
+ var subtitle = "uzi-error-page-module__subtitle__NVk-v";
10
+ var action = "uzi-error-page-module__action__iX5fQ";
11
+ var error_page_module_default = {
12
+ layout,
13
+ card,
14
+ icon,
15
+ iconSvg,
16
+ statusCode,
17
+ content,
18
+ title,
19
+ subtitle,
20
+ action
21
+ };
22
+ //#endregion
23
+ export { action, card, content, error_page_module_default as default, icon, iconSvg, layout, statusCode, subtitle, title };
24
+
25
+ //# sourceMappingURL=index67.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index67.js","names":[],"sources":["../src/components/error-page/error-page.module.css"],"sourcesContent":[".layout {\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.card {\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.5rem;\n max-width: 40rem;\n padding: 3rem 2rem;\n}\n\n.icon {\n color: var(--muted-foreground);\n}\n\n.iconSvg {\n width: 4rem;\n height: 4rem;\n stroke-width: 1.5;\n}\n\n.statusCode {\n font-size: 6rem;\n font-weight: 700;\n line-height: 1;\n color: var(--muted-foreground);\n letter-spacing: -0.04em;\n}\n\n.content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n}\n\n.title {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.subtitle {\n margin: 0;\n font-size: 1rem;\n color: var(--muted-foreground);\n line-height: 1.6;\n max-width: 32rem;\n}\n\n.action {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.75rem;\n margin-top: 0.5rem;\n}\n\n@media (max-width: 48rem) {\n .statusCode {\n font-size: 4rem;\n }\n\n .title {\n font-size: 1.25rem;\n }\n\n .card {\n padding: 2rem 1.5rem;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,34 @@
1
+ //#region src/components/error-page/error-page.module.css
2
+ var layout = "uzi-error-page-module__layout__OVDE8";
3
+ var card = "uzi-error-page-module__card__2veSo";
4
+ var icon = "uzi-error-page-module__icon__vJy8E";
5
+ var iconSvg = "uzi-error-page-module__iconSvg__h4u4V";
6
+ var statusCode = "uzi-error-page-module__statusCode__Ub40l";
7
+ var content = "uzi-error-page-module__content__b2dAY";
8
+ var title = "uzi-error-page-module__title__8iioy";
9
+ var subtitle = "uzi-error-page-module__subtitle__NVk-v";
10
+ var action = "uzi-error-page-module__action__iX5fQ";
11
+ var error_page_module_default = {
12
+ layout,
13
+ card,
14
+ icon,
15
+ iconSvg,
16
+ statusCode,
17
+ content,
18
+ title,
19
+ subtitle,
20
+ action
21
+ };
22
+ //#endregion
23
+ exports.action = action;
24
+ exports.card = card;
25
+ exports.content = content;
26
+ exports.default = error_page_module_default;
27
+ exports.icon = icon;
28
+ exports.iconSvg = iconSvg;
29
+ exports.layout = layout;
30
+ exports.statusCode = statusCode;
31
+ exports.subtitle = subtitle;
32
+ exports.title = title;
33
+
34
+ //# sourceMappingURL=index68.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index68.cjs","names":[],"sources":["../src/components/error-page/error-page.module.css"],"sourcesContent":[".layout {\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.card {\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.5rem;\n max-width: 40rem;\n padding: 3rem 2rem;\n}\n\n.icon {\n color: var(--muted-foreground);\n}\n\n.iconSvg {\n width: 4rem;\n height: 4rem;\n stroke-width: 1.5;\n}\n\n.statusCode {\n font-size: 6rem;\n font-weight: 700;\n line-height: 1;\n color: var(--muted-foreground);\n letter-spacing: -0.04em;\n}\n\n.content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n}\n\n.title {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.subtitle {\n margin: 0;\n font-size: 1rem;\n color: var(--muted-foreground);\n line-height: 1.6;\n max-width: 32rem;\n}\n\n.action {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.75rem;\n margin-top: 0.5rem;\n}\n\n@media (max-width: 48rem) {\n .statusCode {\n font-size: 4rem;\n }\n\n .title {\n font-size: 1.25rem;\n }\n\n .card {\n padding: 2rem 1.5rem;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import { cx } from "./index3.js";
2
+ import error_page_module_default from "./index67.js";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/error-page/ErrorPage.tsx
6
+ /**
7
+ * ErrorPage — a generic error page with configurable status code, message, and action.
8
+ *
9
+ * Layout:
10
+ * Full-viewport centered card with
11
+ * Icon (optional) -> status code -> message -> subtitle -> action
12
+ */
13
+ function ErrorPage({ statusCode = 500, message = "Something went wrong", subtitle, action, showIcon = true, className }) {
14
+ return /* @__PURE__ */ jsx("div", {
15
+ className: cx(error_page_module_default.layout, className),
16
+ children: /* @__PURE__ */ jsxs("div", {
17
+ className: error_page_module_default.card,
18
+ children: [showIcon && /* @__PURE__ */ jsx("div", {
19
+ className: error_page_module_default.icon,
20
+ "aria-hidden": "true",
21
+ children: /* @__PURE__ */ jsxs("svg", {
22
+ viewBox: "0 0 24 24",
23
+ fill: "none",
24
+ className: error_page_module_default.iconSvg,
25
+ children: [
26
+ /* @__PURE__ */ jsx("circle", {
27
+ cx: "12",
28
+ cy: "12",
29
+ r: "10",
30
+ stroke: "currentColor",
31
+ strokeWidth: "2"
32
+ }),
33
+ /* @__PURE__ */ jsx("line", {
34
+ x1: "12",
35
+ y1: "8",
36
+ x2: "12",
37
+ y2: "12",
38
+ stroke: "currentColor",
39
+ strokeWidth: "2",
40
+ strokeLinecap: "round"
41
+ }),
42
+ /* @__PURE__ */ jsx("circle", {
43
+ cx: "12",
44
+ cy: "16",
45
+ r: "0.5",
46
+ fill: "currentColor"
47
+ })
48
+ ]
49
+ })
50
+ }), /* @__PURE__ */ jsxs("div", {
51
+ className: error_page_module_default.content,
52
+ children: [
53
+ /* @__PURE__ */ jsx("span", {
54
+ className: error_page_module_default.statusCode,
55
+ children: statusCode
56
+ }),
57
+ /* @__PURE__ */ jsx("h1", {
58
+ className: error_page_module_default.title,
59
+ children: message
60
+ }),
61
+ subtitle && /* @__PURE__ */ jsx("p", {
62
+ className: error_page_module_default.subtitle,
63
+ children: subtitle
64
+ }),
65
+ action && /* @__PURE__ */ jsx("div", {
66
+ className: error_page_module_default.action,
67
+ children: action
68
+ })
69
+ ]
70
+ })]
71
+ })
72
+ });
73
+ }
74
+ /**
75
+ * NotFoundPage — a 404 variant of ErrorPage.
76
+ */
77
+ function NotFoundPage({ action, className }) {
78
+ return /* @__PURE__ */ jsx(ErrorPage, {
79
+ statusCode: 404,
80
+ message: "Page not found",
81
+ subtitle: "The page you're looking for doesn't exist or has been moved.",
82
+ action,
83
+ className
84
+ });
85
+ }
86
+ /**
87
+ * MaintenancePage — a 503 variant of ErrorPage for under-maintenance sites.
88
+ */
89
+ function MaintenancePage({ action, className }) {
90
+ return /* @__PURE__ */ jsx(ErrorPage, {
91
+ statusCode: 503,
92
+ message: "Site under maintenance",
93
+ subtitle: "We're currently performing scheduled maintenance. We'll be back shortly.",
94
+ action,
95
+ className
96
+ });
97
+ }
98
+ //#endregion
99
+ export { ErrorPage, MaintenancePage, NotFoundPage };
100
+
101
+ //# sourceMappingURL=index68.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index68.js","names":[],"sources":["../src/components/error-page/ErrorPage.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./error-page.module.css\";\n\nexport interface ErrorPageProps {\n /** HTTP status code (e.g., 404, 500, 503) */\n statusCode?: number;\n /** Descriptive message for the error */\n message?: React.ReactNode;\n /** Subtitle providing additional context */\n subtitle?: React.ReactNode;\n /** Action button rendered below the message */\n action?: React.ReactNode;\n /** Whether to render a large decorative icon */\n showIcon?: boolean;\n /** Additional class name for the outer wrapper */\n className?: string;\n}\n\n/**\n * ErrorPage — a generic error page with configurable status code, message, and action.\n *\n * Layout:\n * Full-viewport centered card with\n * Icon (optional) -> status code -> message -> subtitle -> action\n */\nexport function ErrorPage({\n statusCode = 500,\n message = \"Something went wrong\",\n subtitle,\n action,\n showIcon = true,\n className,\n}: ErrorPageProps) {\n return (\n <div className={cx(styles.layout, className)}>\n <div className={styles.card}>\n {showIcon && (\n <div className={styles.icon} aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" className={styles.iconSvg}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <circle cx=\"12\" cy=\"16\" r=\"0.5\" fill=\"currentColor\" />\n </svg>\n </div>\n )}\n <div className={styles.content}>\n <span className={styles.statusCode}>{statusCode}</span>\n <h1 className={styles.title}>{message}</h1>\n {subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n {action && <div className={styles.action}>{action}</div>}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * NotFoundPage — a 404 variant of ErrorPage.\n */\nexport function NotFoundPage({\n action,\n className,\n}: Omit<ErrorPageProps, \"statusCode\" | \"message\" | \"subtitle\" | \"showIcon\">) {\n return (\n <ErrorPage\n statusCode={404}\n message=\"Page not found\"\n subtitle=\"The page you're looking for doesn't exist or has been moved.\"\n action={action}\n className={className}\n />\n );\n}\n\n/**\n * MaintenancePage — a 503 variant of ErrorPage for under-maintenance sites.\n */\nexport function MaintenancePage({\n action,\n className,\n}: Omit<ErrorPageProps, \"statusCode\" | \"message\" | \"subtitle\" | \"showIcon\">) {\n return (\n <ErrorPage\n statusCode={503}\n message=\"Site under maintenance\"\n subtitle=\"We're currently performing scheduled maintenance. We'll be back shortly.\"\n action={action}\n className={className}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AA0BA,SAAgB,UAAU,EACxB,aAAa,KACb,UAAU,wBACV,UACA,QACA,WAAW,MACX,aACiB;CACjB,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,0BAAO,QAAQ,SAAS;YACzC,qBAAC,OAAD;GAAK,WAAW,0BAAO;aAAvB,CACG,YACC,oBAAC,OAAD;IAAK,WAAW,0BAAO;IAAM,eAAY;cACvC,qBAAC,OAAD;KAAK,SAAQ;KAAY,MAAK;KAAO,WAAW,0BAAO;eAAvD;MACE,oBAAC,UAAD;OAAQ,IAAG;OAAK,IAAG;OAAK,GAAE;OAAK,QAAO;OAAe,aAAY;MAAK,CAAA;MACtE,oBAAC,QAAD;OAAM,IAAG;OAAK,IAAG;OAAI,IAAG;OAAK,IAAG;OAAK,QAAO;OAAe,aAAY;OAAI,eAAc;MAAS,CAAA;MAClG,oBAAC,UAAD;OAAQ,IAAG;OAAK,IAAG;OAAK,GAAE;OAAM,MAAK;MAAgB,CAAA;KAClD;;GACF,CAAA,GAEP,qBAAC,OAAD;IAAK,WAAW,0BAAO;cAAvB;KACE,oBAAC,QAAD;MAAM,WAAW,0BAAO;gBAAa;KAAiB,CAAA;KACtD,oBAAC,MAAD;MAAI,WAAW,0BAAO;gBAAQ;KAAY,CAAA;KACzC,YAAY,oBAAC,KAAD;MAAG,WAAW,0BAAO;gBAAW;KAAY,CAAA;KACxD,UAAU,oBAAC,OAAD;MAAK,WAAW,0BAAO;gBAAS;KAAY,CAAA;IACpD;KACF;;CACF,CAAA;AAET;;;;AAKA,SAAgB,aAAa,EAC3B,QACA,aAC2E;CAC3E,OACE,oBAAC,WAAD;EACE,YAAY;EACZ,SAAQ;EACR,UAAS;EACD;EACG;CACZ,CAAA;AAEL;;;;AAKA,SAAgB,gBAAgB,EAC9B,QACA,aAC2E;CAC3E,OACE,oBAAC,WAAD;EACE,YAAY;EACZ,SAAQ;EACR,UAAS;EACD;EACG;CACZ,CAAA;AAEL"}
@@ -0,0 +1,105 @@
1
+ const require_runtime = require("./index2.cjs");
2
+ const require_cx = require("./index4.cjs");
3
+ const require_error_page_module = require("./index68.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/error-page/ErrorPage.tsx
8
+ /**
9
+ * ErrorPage — a generic error page with configurable status code, message, and action.
10
+ *
11
+ * Layout:
12
+ * Full-viewport centered card with
13
+ * Icon (optional) -> status code -> message -> subtitle -> action
14
+ */
15
+ function ErrorPage({ statusCode = 500, message = "Something went wrong", subtitle, action, showIcon = true, className }) {
16
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
17
+ className: require_cx.cx(require_error_page_module.default.layout, className),
18
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
19
+ className: require_error_page_module.default.card,
20
+ children: [showIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21
+ className: require_error_page_module.default.icon,
22
+ "aria-hidden": "true",
23
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
24
+ viewBox: "0 0 24 24",
25
+ fill: "none",
26
+ className: require_error_page_module.default.iconSvg,
27
+ children: [
28
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
29
+ cx: "12",
30
+ cy: "12",
31
+ r: "10",
32
+ stroke: "currentColor",
33
+ strokeWidth: "2"
34
+ }),
35
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("line", {
36
+ x1: "12",
37
+ y1: "8",
38
+ x2: "12",
39
+ y2: "12",
40
+ stroke: "currentColor",
41
+ strokeWidth: "2",
42
+ strokeLinecap: "round"
43
+ }),
44
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
45
+ cx: "12",
46
+ cy: "16",
47
+ r: "0.5",
48
+ fill: "currentColor"
49
+ })
50
+ ]
51
+ })
52
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
53
+ className: require_error_page_module.default.content,
54
+ children: [
55
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
56
+ className: require_error_page_module.default.statusCode,
57
+ children: statusCode
58
+ }),
59
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", {
60
+ className: require_error_page_module.default.title,
61
+ children: message
62
+ }),
63
+ subtitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
64
+ className: require_error_page_module.default.subtitle,
65
+ children: subtitle
66
+ }),
67
+ action && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
68
+ className: require_error_page_module.default.action,
69
+ children: action
70
+ })
71
+ ]
72
+ })]
73
+ })
74
+ });
75
+ }
76
+ /**
77
+ * NotFoundPage — a 404 variant of ErrorPage.
78
+ */
79
+ function NotFoundPage({ action, className }) {
80
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ErrorPage, {
81
+ statusCode: 404,
82
+ message: "Page not found",
83
+ subtitle: "The page you're looking for doesn't exist or has been moved.",
84
+ action,
85
+ className
86
+ });
87
+ }
88
+ /**
89
+ * MaintenancePage — a 503 variant of ErrorPage for under-maintenance sites.
90
+ */
91
+ function MaintenancePage({ action, className }) {
92
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ErrorPage, {
93
+ statusCode: 503,
94
+ message: "Site under maintenance",
95
+ subtitle: "We're currently performing scheduled maintenance. We'll be back shortly.",
96
+ action,
97
+ className
98
+ });
99
+ }
100
+ //#endregion
101
+ exports.ErrorPage = ErrorPage;
102
+ exports.MaintenancePage = MaintenancePage;
103
+ exports.NotFoundPage = NotFoundPage;
104
+
105
+ //# sourceMappingURL=index69.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index69.cjs","names":[],"sources":["../src/components/error-page/ErrorPage.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./error-page.module.css\";\n\nexport interface ErrorPageProps {\n /** HTTP status code (e.g., 404, 500, 503) */\n statusCode?: number;\n /** Descriptive message for the error */\n message?: React.ReactNode;\n /** Subtitle providing additional context */\n subtitle?: React.ReactNode;\n /** Action button rendered below the message */\n action?: React.ReactNode;\n /** Whether to render a large decorative icon */\n showIcon?: boolean;\n /** Additional class name for the outer wrapper */\n className?: string;\n}\n\n/**\n * ErrorPage — a generic error page with configurable status code, message, and action.\n *\n * Layout:\n * Full-viewport centered card with\n * Icon (optional) -> status code -> message -> subtitle -> action\n */\nexport function ErrorPage({\n statusCode = 500,\n message = \"Something went wrong\",\n subtitle,\n action,\n showIcon = true,\n className,\n}: ErrorPageProps) {\n return (\n <div className={cx(styles.layout, className)}>\n <div className={styles.card}>\n {showIcon && (\n <div className={styles.icon} aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" className={styles.iconSvg}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n <circle cx=\"12\" cy=\"16\" r=\"0.5\" fill=\"currentColor\" />\n </svg>\n </div>\n )}\n <div className={styles.content}>\n <span className={styles.statusCode}>{statusCode}</span>\n <h1 className={styles.title}>{message}</h1>\n {subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n {action && <div className={styles.action}>{action}</div>}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * NotFoundPage — a 404 variant of ErrorPage.\n */\nexport function NotFoundPage({\n action,\n className,\n}: Omit<ErrorPageProps, \"statusCode\" | \"message\" | \"subtitle\" | \"showIcon\">) {\n return (\n <ErrorPage\n statusCode={404}\n message=\"Page not found\"\n subtitle=\"The page you're looking for doesn't exist or has been moved.\"\n action={action}\n className={className}\n />\n );\n}\n\n/**\n * MaintenancePage — a 503 variant of ErrorPage for under-maintenance sites.\n */\nexport function MaintenancePage({\n action,\n className,\n}: Omit<ErrorPageProps, \"statusCode\" | \"message\" | \"subtitle\" | \"showIcon\">) {\n return (\n <ErrorPage\n statusCode={503}\n message=\"Site under maintenance\"\n subtitle=\"We're currently performing scheduled maintenance. We'll be back shortly.\"\n action={action}\n className={className}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AA0BA,SAAgB,UAAU,EACxB,aAAa,KACb,UAAU,wBACV,UACA,QACA,WAAW,MACX,aACiB;CACjB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAW,WAAA,GAAG,0BAAA,QAAO,QAAQ,SAAS;YACzC,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAW,0BAAA,QAAO;aAAvB,CACG,YACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAW,0BAAA,QAAO;IAAM,eAAY;cACvC,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,SAAQ;KAAY,MAAK;KAAO,WAAW,0BAAA,QAAO;eAAvD;MACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;OAAQ,IAAG;OAAK,IAAG;OAAK,GAAE;OAAK,QAAO;OAAe,aAAY;MAAK,CAAA;MACtE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;OAAM,IAAG;OAAK,IAAG;OAAI,IAAG;OAAK,IAAG;OAAK,QAAO;OAAe,aAAY;OAAI,eAAc;MAAS,CAAA;MAClG,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;OAAQ,IAAG;OAAK,IAAG;OAAK,GAAE;OAAM,MAAK;MAAgB,CAAA;KAClD;;GACF,CAAA,GAEP,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAW,0BAAA,QAAO;cAAvB;KACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;MAAM,WAAW,0BAAA,QAAO;gBAAa;KAAiB,CAAA;KACtD,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;MAAI,WAAW,0BAAA,QAAO;gBAAQ;KAAY,CAAA;KACzC,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MAAG,WAAW,0BAAA,QAAO;gBAAW;KAAY,CAAA;KACxD,UAAU,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MAAK,WAAW,0BAAA,QAAO;gBAAS;KAAY,CAAA;IACpD;KACF;;CACF,CAAA;AAET;;;;AAKA,SAAgB,aAAa,EAC3B,QACA,aAC2E;CAC3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;EACE,YAAY;EACZ,SAAQ;EACR,UAAS;EACD;EACG;CACZ,CAAA;AAEL;;;;AAKA,SAAgB,gBAAgB,EAC9B,QACA,aAC2E;CAC3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;EACE,YAAY;EACZ,SAAQ;EACR,UAAS;EACD;EACG;CACZ,CAAA;AAEL"}
@@ -0,0 +1,23 @@
1
+ //#region src/components/empty-state-page/empty-state-page.module.css
2
+ var wrapper = "uzi-empty-state-page-module__wrapper__3f-kg";
3
+ var card = "uzi-empty-state-page-module__card__vcQUh";
4
+ var iconArea = "uzi-empty-state-page-module__iconArea__xpt5d";
5
+ var iconSvg = "uzi-empty-state-page-module__iconSvg__1TzoN";
6
+ var content = "uzi-empty-state-page-module__content__OjvBh";
7
+ var title = "uzi-empty-state-page-module__title__nvFC7";
8
+ var description = "uzi-empty-state-page-module__description__GqDMs";
9
+ var actions = "uzi-empty-state-page-module__actions__ojrjI";
10
+ var empty_state_page_module_default = {
11
+ wrapper,
12
+ card,
13
+ iconArea,
14
+ iconSvg,
15
+ content,
16
+ title,
17
+ description,
18
+ actions
19
+ };
20
+ //#endregion
21
+ export { actions, card, content, empty_state_page_module_default as default, description, iconArea, iconSvg, title, wrapper };
22
+
23
+ //# sourceMappingURL=index69.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index69.js","names":[],"sources":["../src/components/empty-state-page/empty-state-page.module.css"],"sourcesContent":[".wrapper {\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.card {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.5rem;\n max-width: 28rem;\n width: 100%;\n padding: 2.5rem 2rem;\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 box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));\n color: var(--ts-card-fg, var(--foreground));\n text-align: center;\n}\n\n.iconArea {\n display: grid;\n place-items: center;\n color: var(--muted-foreground);\n}\n\n.iconSvg {\n width: 3.5rem;\n height: 3.5rem;\n stroke-width: 1.5;\n}\n\n.content {\n display: grid;\n gap: 0.5rem;\n}\n\n.title {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.description {\n margin: 0;\n font-size: 0.9rem;\n color: var(--muted-foreground);\n line-height: 1.6;\n}\n\n.actions {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.625rem;\n}\n\n@media (max-width: 48rem) {\n .card {\n padding: 2rem 1.5rem;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,31 @@
1
+ //#region src/components/empty-state-page/empty-state-page.module.css
2
+ var wrapper = "uzi-empty-state-page-module__wrapper__3f-kg";
3
+ var card = "uzi-empty-state-page-module__card__vcQUh";
4
+ var iconArea = "uzi-empty-state-page-module__iconArea__xpt5d";
5
+ var iconSvg = "uzi-empty-state-page-module__iconSvg__1TzoN";
6
+ var content = "uzi-empty-state-page-module__content__OjvBh";
7
+ var title = "uzi-empty-state-page-module__title__nvFC7";
8
+ var description = "uzi-empty-state-page-module__description__GqDMs";
9
+ var actions = "uzi-empty-state-page-module__actions__ojrjI";
10
+ var empty_state_page_module_default = {
11
+ wrapper,
12
+ card,
13
+ iconArea,
14
+ iconSvg,
15
+ content,
16
+ title,
17
+ description,
18
+ actions
19
+ };
20
+ //#endregion
21
+ exports.actions = actions;
22
+ exports.card = card;
23
+ exports.content = content;
24
+ exports.default = empty_state_page_module_default;
25
+ exports.description = description;
26
+ exports.iconArea = iconArea;
27
+ exports.iconSvg = iconSvg;
28
+ exports.title = title;
29
+ exports.wrapper = wrapper;
30
+
31
+ //# sourceMappingURL=index70.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index70.cjs","names":[],"sources":["../src/components/empty-state-page/empty-state-page.module.css"],"sourcesContent":[".wrapper {\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.card {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1.5rem;\n max-width: 28rem;\n width: 100%;\n padding: 2.5rem 2rem;\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 box-shadow: var(--ts-card-shadow, 0 16px 36px rgba(0, 0, 0, 0.28));\n color: var(--ts-card-fg, var(--foreground));\n text-align: center;\n}\n\n.iconArea {\n display: grid;\n place-items: center;\n color: var(--muted-foreground);\n}\n\n.iconSvg {\n width: 3.5rem;\n height: 3.5rem;\n stroke-width: 1.5;\n}\n\n.content {\n display: grid;\n gap: 0.5rem;\n}\n\n.title {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--foreground);\n line-height: 1.3;\n}\n\n.description {\n margin: 0;\n font-size: 0.9rem;\n color: var(--muted-foreground);\n line-height: 1.6;\n}\n\n.actions {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.625rem;\n}\n\n@media (max-width: 48rem) {\n .card {\n padding: 2rem 1.5rem;\n }\n}\n"],"mappings":""}