@otmc/ui 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,12 @@
1
+ OTMC License
2
+ Copyright (c) 2026 OTMC Softwares. All rights reserved.
3
+
4
+ Contributors:
5
+ * Nguyen Van Trung
6
+ * OTMC Contributors
7
+
8
+ This software and all related source code, assets, and documentation are the
9
+ property of OTMC Softwares. Unauthorized copying, modification, distribution,
10
+ or use of this software is prohibited without prior written permission from
11
+ OTMC Softwares.
12
+
package/README.md CHANGED
@@ -1,3 +1,2 @@
1
- # Temporary Holding Version
2
1
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
2
+
package/dist/index.cjs ADDED
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ Footer: () => Footer
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+
27
+ // src/branding/Footer.tsx
28
+ var import_core = require("@mantine/core");
29
+ var import_icons_react = require("@tabler/icons-react");
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var DEFAULT_COPYRIGHT = "OTMC Softwares. All rights reserved.";
32
+ var DEFAULT_AUTHOR = "Nguyen Van Trung, OTMC Contributors.";
33
+ var DEFAULT_AUTHOR_HREF = "https://github.com";
34
+ var DEFAULT_SOCIAL_LINKS = [
35
+ {
36
+ label: "Facebook",
37
+ href: "https://www.facebook.com",
38
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_react.IconBrandFacebook, { size: 20 }),
39
+ color: "blue.8",
40
+ external: true
41
+ },
42
+ {
43
+ label: "GitHub",
44
+ href: "https://github.com",
45
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_react.IconBrandGithub, { size: 20 }),
46
+ color: "gray.6",
47
+ external: true
48
+ },
49
+ {
50
+ label: "Gmail",
51
+ href: "mailto:test@gmail.com",
52
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_react.IconMail, { size: 20 }),
53
+ color: "red.8",
54
+ external: false
55
+ }
56
+ ];
57
+ function Footer({
58
+ copyright = DEFAULT_COPYRIGHT,
59
+ author = DEFAULT_AUTHOR,
60
+ authorHref = DEFAULT_AUTHOR_HREF,
61
+ socialLinks = DEFAULT_SOCIAL_LINKS,
62
+ showSocialLinks = true
63
+ }) {
64
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Stack, { gap: "sm", mt: "md", align: "center", children: [
65
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Stack, { gap: 2, align: "center", children: [
66
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Group, { gap: 4, wrap: "nowrap", children: [
67
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Text, { c: "dimmed", size: "xs", children: [
68
+ "Copyright",
69
+ " "
70
+ ] }),
71
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons_react.IconCopyright, { size: 15 }),
72
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Text, { size: "xs", c: "dimmed", children: [
73
+ (/* @__PURE__ */ new Date()).getFullYear(),
74
+ " ",
75
+ copyright
76
+ ] })
77
+ ] }),
78
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Group, { gap: 4, wrap: "nowrap", children: [
79
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Text, { size: "xs", c: "dimmed", children: "Built with" }),
80
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
+ import_icons_react.IconHeart,
82
+ {
83
+ size: 15,
84
+ style: { color: "var(--mantine-color-red-7)" }
85
+ }
86
+ ),
87
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Text, { size: "xs", c: "dimmed", children: "by" }),
88
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ import_core.Anchor,
90
+ {
91
+ href: authorHref,
92
+ size: "xs",
93
+ fw: 500,
94
+ target: "_blank",
95
+ children: author
96
+ }
97
+ )
98
+ ] })
99
+ ] }),
100
+ showSocialLinks && socialLinks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Group, { gap: "sm", children: socialLinks.map((link) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Tooltip, { label: link.label, withArrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
101
+ import_core.ActionIcon,
102
+ {
103
+ variant: "subtle",
104
+ color: link.color,
105
+ component: "a",
106
+ href: link.href,
107
+ target: link.external ? "_blank" : void 0,
108
+ rel: link.external ? "noopener noreferrer" : void 0,
109
+ children: link.icon
110
+ }
111
+ ) }, link.href)) })
112
+ ] });
113
+ }
114
+ // Annotate the CommonJS export names for ESM import in node:
115
+ 0 && (module.exports = {
116
+ Footer
117
+ });
118
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/branding/Footer.tsx"],"sourcesContent":["/*\r\n * OTMC License.\r\n * Copyright (c) 2026 OTMC Softwares. All rights reserved.\r\n * Contributors: Nguyen Van Trung, OTMC Authors.\r\n */\r\n\r\nexport * from './branding';\r\n","/***\r\n * OTMC License.\r\n * Copyright (c) 2026 OTMC Softwares. All rights reserved.\r\n * Contributors: Nguyen Van Trung, OTMC Contributors.\r\n***/\r\n\r\nimport { Stack, Group, Text, Anchor, Tooltip, ActionIcon } from '@mantine/core';\r\nimport {\r\n IconCopyright,\r\n IconHeart,\r\n IconBrandFacebook,\r\n IconBrandGithub,\r\n IconMail,\r\n} from '@tabler/icons-react';\r\nimport { ReactNode } from 'react';\r\n\r\nexport interface FooterSocialLink {\r\n label: string;\r\n href: string;\r\n icon: ReactNode;\r\n color?: string;\r\n external?: boolean;\r\n}\r\n\r\nexport interface FooterProps {\r\n copyright?: string;\r\n author?: string;\r\n authorHref?: string;\r\n socialLinks?: FooterSocialLink[];\r\n showCopyright?: boolean;\r\n showAuthor?: boolean;\r\n showSocialLinks?: boolean;\r\n}\r\n\r\nconst DEFAULT_COPYRIGHT = 'OTMC Softwares. All rights reserved.';\r\nconst DEFAULT_AUTHOR = 'Nguyen Van Trung, OTMC Contributors.';\r\nconst DEFAULT_AUTHOR_HREF = 'https://github.com';\r\nconst DEFAULT_SOCIAL_LINKS: FooterSocialLink[] = [\r\n {\r\n label: 'Facebook',\r\n href: 'https://www.facebook.com',\r\n icon: <IconBrandFacebook size={20} />,\r\n color: 'blue.8',\r\n external: true,\r\n },\r\n {\r\n label: 'GitHub',\r\n href: 'https://github.com',\r\n icon: <IconBrandGithub size={20} />,\r\n color: 'gray.6',\r\n external: true,\r\n },\r\n {\r\n label: 'Gmail',\r\n href: 'mailto:test@gmail.com',\r\n icon: <IconMail size={20} />,\r\n color: 'red.8',\r\n external: false,\r\n },\r\n];\r\n\r\nexport function Footer({\r\n copyright = DEFAULT_COPYRIGHT,\r\n author = DEFAULT_AUTHOR,\r\n authorHref = DEFAULT_AUTHOR_HREF,\r\n socialLinks = DEFAULT_SOCIAL_LINKS,\r\n showSocialLinks = true,\r\n}: FooterProps) {\r\n\r\n return (\r\n <Stack gap=\"sm\" mt=\"md\" align=\"center\">\r\n <Stack gap={2} align=\"center\">\r\n <Group gap={4} wrap=\"nowrap\">\r\n <Text c=\"dimmed\" size=\"xs\">\r\n Copyright{' '}\r\n </Text>\r\n <IconCopyright size={15} />\r\n <Text size=\"xs\" c=\"dimmed\">\r\n {new Date().getFullYear()} {copyright}\r\n </Text>\r\n </Group>\r\n <Group gap={4} wrap=\"nowrap\">\r\n <Text size=\"xs\" c=\"dimmed\">\r\n Built with\r\n </Text>\r\n <IconHeart\r\n size={15}\r\n style={{ color: 'var(--mantine-color-red-7)' }}\r\n />\r\n <Text size=\"xs\" c=\"dimmed\">\r\n by\r\n </Text>\r\n <Anchor\r\n href={authorHref}\r\n size=\"xs\"\r\n fw={500}\r\n target=\"_blank\"\r\n >\r\n {author}\r\n </Anchor>\r\n </Group>\r\n </Stack>\r\n\r\n {showSocialLinks && socialLinks.length > 0 && (\r\n <Group gap=\"sm\">\r\n {socialLinks.map((link) => (\r\n <Tooltip key={link.href} label={link.label} withArrow>\r\n <ActionIcon\r\n variant=\"subtle\"\r\n color={link.color}\r\n component=\"a\"\r\n href={link.href}\r\n target={link.external ? '_blank' : undefined}\r\n rel={link.external ? 'noopener noreferrer' : undefined}\r\n >\r\n {link.icon}\r\n </ActionIcon>\r\n </Tooltip>\r\n ))}\r\n </Group>\r\n )}\r\n </Stack>\r\n );\r\n}\r\n\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,kBAAgE;AAChE,yBAMO;AA4BG;AAPV,IAAM,oBAAoB;AAC1B,IAAM,iBAAiB;AACvB,IAAM,sBAAsB;AAC5B,IAAM,uBAA2C;AAAA,EAC/C;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM,4CAAC,wCAAkB,MAAM,IAAI;AAAA,IACnC,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM,4CAAC,sCAAgB,MAAM,IAAI;AAAA,IACjC,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM,4CAAC,+BAAS,MAAM,IAAI;AAAA,IAC1B,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACF;AAEO,SAAS,OAAO;AAAA,EACrB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,cAAc;AAAA,EACd,kBAAkB;AACpB,GAAgB;AAEd,SACE,6CAAC,qBAAM,KAAI,MAAK,IAAG,MAAK,OAAM,UAC5B;AAAA,iDAAC,qBAAM,KAAK,GAAG,OAAM,UACnB;AAAA,mDAAC,qBAAM,KAAK,GAAG,MAAK,UAClB;AAAA,qDAAC,oBAAK,GAAE,UAAS,MAAK,MAAK;AAAA;AAAA,UACf;AAAA,WACZ;AAAA,QACA,4CAAC,oCAAc,MAAM,IAAI;AAAA,QACzB,6CAAC,oBAAK,MAAK,MAAK,GAAE,UACf;AAAA,+BAAI,KAAK,GAAE,YAAY;AAAA,UAAE;AAAA,UAAE;AAAA,WAC9B;AAAA,SACF;AAAA,MACA,6CAAC,qBAAM,KAAK,GAAG,MAAK,UAClB;AAAA,oDAAC,oBAAK,MAAK,MAAK,GAAE,UAAS,wBAE3B;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,OAAO,EAAE,OAAO,6BAA6B;AAAA;AAAA,QAC/C;AAAA,QACA,4CAAC,oBAAK,MAAK,MAAK,GAAE,UAAS,gBAE3B;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,MAAK;AAAA,YACL,IAAI;AAAA,YACJ,QAAO;AAAA,YAEN;AAAA;AAAA,QACH;AAAA,SACF;AAAA,OACF;AAAA,IAEC,mBAAmB,YAAY,SAAS,KACvC,4CAAC,qBAAM,KAAI,MACR,sBAAY,IAAI,CAAC,SAChB,4CAAC,uBAAwB,OAAO,KAAK,OAAO,WAAS,MACnD;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,OAAO,KAAK;AAAA,QACZ,WAAU;AAAA,QACV,MAAM,KAAK;AAAA,QACX,QAAQ,KAAK,WAAW,WAAW;AAAA,QACnC,KAAK,KAAK,WAAW,wBAAwB;AAAA,QAE5C,eAAK;AAAA;AAAA,IACR,KAVY,KAAK,IAWnB,CACD,GACH;AAAA,KAEJ;AAEJ;","names":[]}
@@ -0,0 +1,22 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface FooterSocialLink {
5
+ label: string;
6
+ href: string;
7
+ icon: ReactNode;
8
+ color?: string;
9
+ external?: boolean;
10
+ }
11
+ interface FooterProps {
12
+ copyright?: string;
13
+ author?: string;
14
+ authorHref?: string;
15
+ socialLinks?: FooterSocialLink[];
16
+ showCopyright?: boolean;
17
+ showAuthor?: boolean;
18
+ showSocialLinks?: boolean;
19
+ }
20
+ declare function Footer({ copyright, author, authorHref, socialLinks, showSocialLinks, }: FooterProps): react.JSX.Element;
21
+
22
+ export { Footer, type FooterProps, type FooterSocialLink };
@@ -0,0 +1,22 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface FooterSocialLink {
5
+ label: string;
6
+ href: string;
7
+ icon: ReactNode;
8
+ color?: string;
9
+ external?: boolean;
10
+ }
11
+ interface FooterProps {
12
+ copyright?: string;
13
+ author?: string;
14
+ authorHref?: string;
15
+ socialLinks?: FooterSocialLink[];
16
+ showCopyright?: boolean;
17
+ showAuthor?: boolean;
18
+ showSocialLinks?: boolean;
19
+ }
20
+ declare function Footer({ copyright, author, authorHref, socialLinks, showSocialLinks, }: FooterProps): react.JSX.Element;
21
+
22
+ export { Footer, type FooterProps, type FooterSocialLink };
package/dist/index.js ADDED
@@ -0,0 +1,97 @@
1
+ // src/branding/Footer.tsx
2
+ import { Stack, Group, Text, Anchor, Tooltip, ActionIcon } from "@mantine/core";
3
+ import {
4
+ IconCopyright,
5
+ IconHeart,
6
+ IconBrandFacebook,
7
+ IconBrandGithub,
8
+ IconMail
9
+ } from "@tabler/icons-react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var DEFAULT_COPYRIGHT = "OTMC Softwares. All rights reserved.";
12
+ var DEFAULT_AUTHOR = "Nguyen Van Trung, OTMC Contributors.";
13
+ var DEFAULT_AUTHOR_HREF = "https://github.com";
14
+ var DEFAULT_SOCIAL_LINKS = [
15
+ {
16
+ label: "Facebook",
17
+ href: "https://www.facebook.com",
18
+ icon: /* @__PURE__ */ jsx(IconBrandFacebook, { size: 20 }),
19
+ color: "blue.8",
20
+ external: true
21
+ },
22
+ {
23
+ label: "GitHub",
24
+ href: "https://github.com",
25
+ icon: /* @__PURE__ */ jsx(IconBrandGithub, { size: 20 }),
26
+ color: "gray.6",
27
+ external: true
28
+ },
29
+ {
30
+ label: "Gmail",
31
+ href: "mailto:test@gmail.com",
32
+ icon: /* @__PURE__ */ jsx(IconMail, { size: 20 }),
33
+ color: "red.8",
34
+ external: false
35
+ }
36
+ ];
37
+ function Footer({
38
+ copyright = DEFAULT_COPYRIGHT,
39
+ author = DEFAULT_AUTHOR,
40
+ authorHref = DEFAULT_AUTHOR_HREF,
41
+ socialLinks = DEFAULT_SOCIAL_LINKS,
42
+ showSocialLinks = true
43
+ }) {
44
+ return /* @__PURE__ */ jsxs(Stack, { gap: "sm", mt: "md", align: "center", children: [
45
+ /* @__PURE__ */ jsxs(Stack, { gap: 2, align: "center", children: [
46
+ /* @__PURE__ */ jsxs(Group, { gap: 4, wrap: "nowrap", children: [
47
+ /* @__PURE__ */ jsxs(Text, { c: "dimmed", size: "xs", children: [
48
+ "Copyright",
49
+ " "
50
+ ] }),
51
+ /* @__PURE__ */ jsx(IconCopyright, { size: 15 }),
52
+ /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", children: [
53
+ (/* @__PURE__ */ new Date()).getFullYear(),
54
+ " ",
55
+ copyright
56
+ ] })
57
+ ] }),
58
+ /* @__PURE__ */ jsxs(Group, { gap: 4, wrap: "nowrap", children: [
59
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Built with" }),
60
+ /* @__PURE__ */ jsx(
61
+ IconHeart,
62
+ {
63
+ size: 15,
64
+ style: { color: "var(--mantine-color-red-7)" }
65
+ }
66
+ ),
67
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "by" }),
68
+ /* @__PURE__ */ jsx(
69
+ Anchor,
70
+ {
71
+ href: authorHref,
72
+ size: "xs",
73
+ fw: 500,
74
+ target: "_blank",
75
+ children: author
76
+ }
77
+ )
78
+ ] })
79
+ ] }),
80
+ showSocialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsx(Group, { gap: "sm", children: socialLinks.map((link) => /* @__PURE__ */ jsx(Tooltip, { label: link.label, withArrow: true, children: /* @__PURE__ */ jsx(
81
+ ActionIcon,
82
+ {
83
+ variant: "subtle",
84
+ color: link.color,
85
+ component: "a",
86
+ href: link.href,
87
+ target: link.external ? "_blank" : void 0,
88
+ rel: link.external ? "noopener noreferrer" : void 0,
89
+ children: link.icon
90
+ }
91
+ ) }, link.href)) })
92
+ ] });
93
+ }
94
+ export {
95
+ Footer
96
+ };
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/branding/Footer.tsx"],"sourcesContent":["/***\r\n * OTMC License.\r\n * Copyright (c) 2026 OTMC Softwares. All rights reserved.\r\n * Contributors: Nguyen Van Trung, OTMC Contributors.\r\n***/\r\n\r\nimport { Stack, Group, Text, Anchor, Tooltip, ActionIcon } from '@mantine/core';\r\nimport {\r\n IconCopyright,\r\n IconHeart,\r\n IconBrandFacebook,\r\n IconBrandGithub,\r\n IconMail,\r\n} from '@tabler/icons-react';\r\nimport { ReactNode } from 'react';\r\n\r\nexport interface FooterSocialLink {\r\n label: string;\r\n href: string;\r\n icon: ReactNode;\r\n color?: string;\r\n external?: boolean;\r\n}\r\n\r\nexport interface FooterProps {\r\n copyright?: string;\r\n author?: string;\r\n authorHref?: string;\r\n socialLinks?: FooterSocialLink[];\r\n showCopyright?: boolean;\r\n showAuthor?: boolean;\r\n showSocialLinks?: boolean;\r\n}\r\n\r\nconst DEFAULT_COPYRIGHT = 'OTMC Softwares. All rights reserved.';\r\nconst DEFAULT_AUTHOR = 'Nguyen Van Trung, OTMC Contributors.';\r\nconst DEFAULT_AUTHOR_HREF = 'https://github.com';\r\nconst DEFAULT_SOCIAL_LINKS: FooterSocialLink[] = [\r\n {\r\n label: 'Facebook',\r\n href: 'https://www.facebook.com',\r\n icon: <IconBrandFacebook size={20} />,\r\n color: 'blue.8',\r\n external: true,\r\n },\r\n {\r\n label: 'GitHub',\r\n href: 'https://github.com',\r\n icon: <IconBrandGithub size={20} />,\r\n color: 'gray.6',\r\n external: true,\r\n },\r\n {\r\n label: 'Gmail',\r\n href: 'mailto:test@gmail.com',\r\n icon: <IconMail size={20} />,\r\n color: 'red.8',\r\n external: false,\r\n },\r\n];\r\n\r\nexport function Footer({\r\n copyright = DEFAULT_COPYRIGHT,\r\n author = DEFAULT_AUTHOR,\r\n authorHref = DEFAULT_AUTHOR_HREF,\r\n socialLinks = DEFAULT_SOCIAL_LINKS,\r\n showSocialLinks = true,\r\n}: FooterProps) {\r\n\r\n return (\r\n <Stack gap=\"sm\" mt=\"md\" align=\"center\">\r\n <Stack gap={2} align=\"center\">\r\n <Group gap={4} wrap=\"nowrap\">\r\n <Text c=\"dimmed\" size=\"xs\">\r\n Copyright{' '}\r\n </Text>\r\n <IconCopyright size={15} />\r\n <Text size=\"xs\" c=\"dimmed\">\r\n {new Date().getFullYear()} {copyright}\r\n </Text>\r\n </Group>\r\n <Group gap={4} wrap=\"nowrap\">\r\n <Text size=\"xs\" c=\"dimmed\">\r\n Built with\r\n </Text>\r\n <IconHeart\r\n size={15}\r\n style={{ color: 'var(--mantine-color-red-7)' }}\r\n />\r\n <Text size=\"xs\" c=\"dimmed\">\r\n by\r\n </Text>\r\n <Anchor\r\n href={authorHref}\r\n size=\"xs\"\r\n fw={500}\r\n target=\"_blank\"\r\n >\r\n {author}\r\n </Anchor>\r\n </Group>\r\n </Stack>\r\n\r\n {showSocialLinks && socialLinks.length > 0 && (\r\n <Group gap=\"sm\">\r\n {socialLinks.map((link) => (\r\n <Tooltip key={link.href} label={link.label} withArrow>\r\n <ActionIcon\r\n variant=\"subtle\"\r\n color={link.color}\r\n component=\"a\"\r\n href={link.href}\r\n target={link.external ? '_blank' : undefined}\r\n rel={link.external ? 'noopener noreferrer' : undefined}\r\n >\r\n {link.icon}\r\n </ActionIcon>\r\n </Tooltip>\r\n ))}\r\n </Group>\r\n )}\r\n </Stack>\r\n );\r\n}\r\n\r\n"],"mappings":";AAMA,SAAS,OAAO,OAAO,MAAM,QAAQ,SAAS,kBAAkB;AAChE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA4BG,cAgCA,YAhCA;AAPV,IAAM,oBAAoB;AAC1B,IAAM,iBAAiB;AACvB,IAAM,sBAAsB;AAC5B,IAAM,uBAA2C;AAAA,EAC/C;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM,oBAAC,qBAAkB,MAAM,IAAI;AAAA,IACnC,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM,oBAAC,mBAAgB,MAAM,IAAI;AAAA,IACjC,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM,oBAAC,YAAS,MAAM,IAAI;AAAA,IAC1B,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACF;AAEO,SAAS,OAAO;AAAA,EACrB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,cAAc;AAAA,EACd,kBAAkB;AACpB,GAAgB;AAEd,SACE,qBAAC,SAAM,KAAI,MAAK,IAAG,MAAK,OAAM,UAC5B;AAAA,yBAAC,SAAM,KAAK,GAAG,OAAM,UACnB;AAAA,2BAAC,SAAM,KAAK,GAAG,MAAK,UAClB;AAAA,6BAAC,QAAK,GAAE,UAAS,MAAK,MAAK;AAAA;AAAA,UACf;AAAA,WACZ;AAAA,QACA,oBAAC,iBAAc,MAAM,IAAI;AAAA,QACzB,qBAAC,QAAK,MAAK,MAAK,GAAE,UACf;AAAA,+BAAI,KAAK,GAAE,YAAY;AAAA,UAAE;AAAA,UAAE;AAAA,WAC9B;AAAA,SACF;AAAA,MACA,qBAAC,SAAM,KAAK,GAAG,MAAK,UAClB;AAAA,4BAAC,QAAK,MAAK,MAAK,GAAE,UAAS,wBAE3B;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,OAAO,EAAE,OAAO,6BAA6B;AAAA;AAAA,QAC/C;AAAA,QACA,oBAAC,QAAK,MAAK,MAAK,GAAE,UAAS,gBAE3B;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,MAAK;AAAA,YACL,IAAI;AAAA,YACJ,QAAO;AAAA,YAEN;AAAA;AAAA,QACH;AAAA,SACF;AAAA,OACF;AAAA,IAEC,mBAAmB,YAAY,SAAS,KACvC,oBAAC,SAAM,KAAI,MACR,sBAAY,IAAI,CAAC,SAChB,oBAAC,WAAwB,OAAO,KAAK,OAAO,WAAS,MACnD;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,OAAO,KAAK;AAAA,QACZ,WAAU;AAAA,QACV,MAAM,KAAK;AAAA,QACX,QAAQ,KAAK,WAAW,WAAW;AAAA,QACnC,KAAK,KAAK,WAAW,wBAAwB;AAAA,QAE5C,eAAK;AAAA;AAAA,IACR,KAVY,KAAK,IAWnB,CACD,GACH;AAAA,KAEJ;AAEJ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,60 @@
1
- {
2
- "name": "@otmc/ui",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
1
+ {
2
+ "name": "@otmc/ui",
3
+ "version": "0.1.1",
4
+ "description": "OTMC shared React component library",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "import": {
13
+ "types": "./dist/index.d.ts",
14
+ "default": "./dist/index.js"
15
+ },
16
+ "require": {
17
+ "types": "./dist/index.d.cts",
18
+ "default": "./dist/index.cjs"
19
+ }
20
+ }
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "README.md",
25
+ "LICENSE"
26
+ ],
27
+ "keywords": [
28
+ "otmc",
29
+ "ui",
30
+ "components",
31
+ "react",
32
+ "mantine"
33
+ ],
34
+ "peerDependencies": {
35
+ "@mantine/core": ">=8",
36
+ "react": ">=18",
37
+ "react-dom": ">=18",
38
+ "@tabler/icons-react": ">=3"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "devDependencies": {
44
+ "@mantine/core": "^7.0.0",
45
+ "@mantine/hooks": "^7.0.0",
46
+ "@types/react": "^18.0.0",
47
+ "@types/react-dom": "^18.0.0",
48
+ "react": "^18.0.0",
49
+ "react-dom": "^18.0.0",
50
+ "tsup": "^8.0.0",
51
+ "typescript": "^5.0.0"
52
+ },
53
+ "scripts": {
54
+ "dev": "tsup --watch",
55
+ "build": "tsup",
56
+ "preview": "http-server dist -p 4000",
57
+ "typecheck": "tsc --noEmit",
58
+ "prepublishOnly": "npm run typecheck && npm run build"
59
+ }
60
+ }