@eloisallena/web_components 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -26
- package/dist/src/component/breadcrumbs/Breadcrumbs.d.ts +1 -2
- package/dist/src/component/breadcrumbs/index.d.ts +1 -0
- package/dist/src/component/button/index.d.ts +1 -0
- package/dist/src/component/card/Card.d.ts +1 -2
- package/dist/src/component/card/CardContent.d.ts +1 -2
- package/dist/src/component/card/CardFooter.d.ts +1 -2
- package/dist/src/component/card/CardImage.d.ts +2 -2
- package/dist/src/component/card/index.d.ts +5 -1
- package/dist/src/component/footer/Cfooter.d.ts +1 -2
- package/dist/src/component/footer/FooterBottom.d.ts +1 -2
- package/dist/src/component/footer/FooterContact.d.ts +1 -2
- package/dist/src/component/footer/FooterIcon.d.ts +1 -2
- package/dist/src/component/footer/QuickLink.d.ts +1 -2
- package/dist/src/component/footer/index.d.ts +6 -1
- package/dist/src/component/form/Cform.d.ts +1 -2
- package/dist/src/component/form/index.d.ts +1 -0
- package/dist/src/component/header/Cheader.d.ts +1 -2
- package/dist/src/component/header/Drawer.d.ts +1 -2
- package/dist/src/component/header/Icon.d.ts +1 -2
- package/dist/src/component/header/NavBar.d.ts +1 -2
- package/dist/src/component/header/SearchBar.d.ts +1 -2
- package/dist/src/component/header/index.d.ts +7 -2
- package/dist/src/component/input/CheckBox.d.ts +2 -2
- package/dist/src/component/input/Select.d.ts +2 -2
- package/dist/src/component/input/TextField.d.ts +1 -2
- package/dist/src/component/input/index.d.ts +4 -1
- package/dist/src/component/modal/Modal.d.ts +2 -2
- package/dist/src/component/modal/index.d.ts +1 -0
- package/dist/src/component/section/Section.d.ts +1 -2
- package/dist/src/component/section/index.d.ts +1 -0
- package/dist/src/component/stories/LandingLayout.d.ts +2 -3
- package/dist/src/component/stories/index.d.ts +1 -0
- package/dist/src/component/table/Ctable.d.ts +1 -2
- package/dist/src/component/table/TableBody.d.ts +1 -2
- package/dist/src/component/table/TableCell.d.ts +1 -2
- package/dist/src/component/table/TableHead.d.ts +1 -2
- package/dist/src/component/table/TableRow.d.ts +1 -2
- package/dist/src/component/table/index.d.ts +9 -2
- package/dist/src/component/table/types.d.ts +3 -2
- package/dist/web-components.cjs.ts +275 -0
- package/dist/{web-components.es.js → web-components.es.ts} +109 -120
- package/dist/web_components.css +3 -0
- package/package.json +8 -11
- package/dist/component/breadcrumbs/Breadcrumbs.d.ts +0 -9
- package/dist/component/breadcrumbs/Breadcrumbs.js +0 -7
- package/dist/component/breadcrumbs/index.d.ts +0 -1
- package/dist/component/breadcrumbs/index.js +0 -1
- package/dist/component/button/Button.d.ts +0 -8
- package/dist/component/button/Button.js +0 -15
- package/dist/component/button/index.d.ts +0 -1
- package/dist/component/button/index.js +0 -2
- package/dist/component/card/Card.d.ts +0 -6
- package/dist/component/card/Card.js +0 -4
- package/dist/component/card/CardContent.d.ts +0 -6
- package/dist/component/card/CardContent.js +0 -4
- package/dist/component/card/CardFooter.d.ts +0 -5
- package/dist/component/card/CardFooter.js +0 -4
- package/dist/component/card/CardImage.d.ts +0 -7
- package/dist/component/card/CardImage.js +0 -4
- package/dist/component/card/index.d.ts +0 -4
- package/dist/component/card/index.js +0 -4
- package/dist/component/footer/Cfooter.d.ts +0 -6
- package/dist/component/footer/Cfooter.js +0 -4
- package/dist/component/footer/FooterBottom.d.ts +0 -5
- package/dist/component/footer/FooterBottom.js +0 -4
- package/dist/component/footer/FooterContact.d.ts +0 -11
- package/dist/component/footer/FooterContact.js +0 -4
- package/dist/component/footer/FooterIcon.d.ts +0 -7
- package/dist/component/footer/FooterIcon.js +0 -4
- package/dist/component/footer/QuickLink.d.ts +0 -11
- package/dist/component/footer/QuickLink.js +0 -4
- package/dist/component/footer/index.d.ts +0 -5
- package/dist/component/footer/index.js +0 -5
- package/dist/component/form/Cform.d.ts +0 -6
- package/dist/component/form/Cform.js +0 -4
- package/dist/component/form/index.d.ts +0 -1
- package/dist/component/form/index.js +0 -1
- package/dist/component/header/Cheader.d.ts +0 -7
- package/dist/component/header/Cheader.js +0 -4
- package/dist/component/header/Drawer.d.ts +0 -12
- package/dist/component/header/Drawer.js +0 -22
- package/dist/component/header/Icon.d.ts +0 -9
- package/dist/component/header/Icon.js +0 -11
- package/dist/component/header/NavBar.d.ts +0 -12
- package/dist/component/header/NavBar.js +0 -14
- package/dist/component/header/SearchBar.d.ts +0 -8
- package/dist/component/header/SearchBar.js +0 -7
- package/dist/component/header/index.d.ts +0 -5
- package/dist/component/header/index.js +0 -5
- package/dist/component/input/CheckBox.d.ts +0 -12
- package/dist/component/input/CheckBox.js +0 -18
- package/dist/component/input/Select.d.ts +0 -17
- package/dist/component/input/Select.js +0 -12
- package/dist/component/input/TextField.d.ts +0 -11
- package/dist/component/input/TextField.js +0 -7
- package/dist/component/input/index.d.ts +0 -3
- package/dist/component/input/index.js +0 -3
- package/dist/component/modal/Modal.d.ts +0 -8
- package/dist/component/modal/Modal.js +0 -6
- package/dist/component/modal/index.d.ts +0 -1
- package/dist/component/modal/index.js +0 -1
- package/dist/component/section/Section.d.ts +0 -9
- package/dist/component/section/Section.js +0 -14
- package/dist/component/section/index.d.ts +0 -1
- package/dist/component/section/index.js +0 -1
- package/dist/component/spinner/Loader.d.ts +0 -1
- package/dist/component/spinner/Loader.js +0 -4
- package/dist/component/spinner/index.d.ts +0 -1
- package/dist/component/spinner/index.js +0 -1
- package/dist/component/stories/LandingLayout.d.ts +0 -6
- package/dist/component/stories/LandingLayout.js +0 -33
- package/dist/component/stories/index.d.ts +0 -1
- package/dist/component/stories/index.js +0 -1
- package/dist/component/table/Ctable.d.ts +0 -8
- package/dist/component/table/Ctable.js +0 -13
- package/dist/component/table/TableBody.d.ts +0 -7
- package/dist/component/table/TableBody.js +0 -4
- package/dist/component/table/TableCell.d.ts +0 -8
- package/dist/component/table/TableCell.js +0 -12
- package/dist/component/table/TableHead.d.ts +0 -7
- package/dist/component/table/TableHead.js +0 -16
- package/dist/component/table/TableRow.d.ts +0 -8
- package/dist/component/table/TableRow.js +0 -27
- package/dist/component/table/alignment.d.ts +0 -5
- package/dist/component/table/alignment.js +0 -5
- package/dist/component/table/index.d.ts +0 -5
- package/dist/component/table/index.js +0 -5
- package/dist/component/table/types.d.ts +0 -13
- package/dist/component/table/types.js +0 -1
- package/dist/index.js +0 -26
- package/dist/themes/tailwind.css +0 -47
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface FooterContactProps {
|
|
2
|
-
email: string;
|
|
3
|
-
phone: string;
|
|
4
|
-
socials: {
|
|
5
|
-
id: number;
|
|
6
|
-
label: string;
|
|
7
|
-
href: string;
|
|
8
|
-
}[];
|
|
9
|
-
}
|
|
10
|
-
export declare const FooterContact: ({ email, phone, socials, }: FooterContactProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const FooterContact = ({ email, phone, socials, }) => {
|
|
3
|
-
return (_jsxs("div", { className: "text-white", children: [_jsx("h3", { className: "\r\n mb-3\r\n text-lg\r\n font-semibold\r\n ", children: "Contact" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("p", { children: email }), _jsx("p", { children: phone })] }), _jsx("h4", { className: "\r\n mt-5\r\n mb-2\r\n font-medium\r\n ", children: "Follow Us" }), _jsx("div", { className: "flex flex-wrap gap-3", children: socials.map((social) => (_jsx("a", { href: social.href, className: "hover:underline", children: social.label }, social.id))) })] }));
|
|
4
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const FooterIcon = ({ children, description, }) => {
|
|
3
|
-
return (_jsxs("div", { className: "flex flex-col gap-4", children: [children, _jsx("p", { className: "\r\n max-w-sm\r\n text-sm\r\n text-white\r\n ", children: description })] }));
|
|
4
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface QuickLinkProps {
|
|
2
|
-
title: string;
|
|
3
|
-
links: {
|
|
4
|
-
id: number;
|
|
5
|
-
label: string;
|
|
6
|
-
href: string;
|
|
7
|
-
}[];
|
|
8
|
-
onItemClick?: (label: string) => void;
|
|
9
|
-
}
|
|
10
|
-
export declare const QuickLink: ({ title, links, onItemClick, }: QuickLinkProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const QuickLink = ({ title, links, onItemClick, }) => {
|
|
3
|
-
return (_jsxs("div", { className: "text-white", children: [_jsx("h3", { className: "\r\n mb-3\r\n text-lg\r\n font-semibold\r\n ", children: title }), _jsx("div", { className: "flex flex-col gap-2", children: links.map((link) => (_jsx("a", { href: link.href, onClick: () => onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(link.label), className: "hover:underline", children: link.label }, link.id))) })] }));
|
|
4
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Cform } from "./Cform";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Cform } from "./Cform";
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export const Cheader = ({ children, style }) => {
|
|
3
|
-
return (_jsx("header", { className: `w-full bg-white border-b border-light-gray shadow-sm ${style}`, children: _jsx("div", { className: "flex items-center justify-between px-6 py-4", children: children }) }));
|
|
4
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
export const Drawer = ({ navDrawer = [], style, onItemClick }) => {
|
|
4
|
-
const [openDrawer, setOpenDrawer] = useState(false);
|
|
5
|
-
return (_jsxs(_Fragment, { children: [_jsx("button", { onClick: () => setOpenDrawer(true), className: " flex md:hidden items-center justify-center h-10 w-10 rounded-md hover:bg-gray-100", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "\r\n h-6\r\n w-6\r\n text-gray-700\r\n ", children: _jsx("path", { fillRule: "evenodd", d: "M3 6.75A.75.75 0 0 1 3.75 6h16.5a.75.75 0 0 1 0 1.5H3.75A.75.75 0 0 1 3 6.75ZM3 12a.75.75 0 0 1 .75-.75h16.5a.75.75 0 0 1 0 1.5H3.75A.75.75 0 0 1 3 12Zm0 5.25a.75.75 0 0 1 .75-.75h16.5a.75.75 0 0 1 0 1.5H3.75a.75.75 0 0 1-.75-.75Z", clipRule: "evenodd" }) }) }), openDrawer && (_jsx("div", { onClick: () => setOpenDrawer(false), className: "fixed inset-0 z-40 bg-black/40 md:hidden" })), _jsxs("aside", { className: `
|
|
6
|
-
fixed top-0
|
|
7
|
-
left-0 z-50
|
|
8
|
-
h-screen w-65
|
|
9
|
-
bg-white
|
|
10
|
-
shadow-lg
|
|
11
|
-
transition-transform duration-300
|
|
12
|
-
|
|
13
|
-
${openDrawer ? "translate-x-0" : "-translate-x-full"}
|
|
14
|
-
|
|
15
|
-
md:hidden
|
|
16
|
-
|
|
17
|
-
${style || ""}
|
|
18
|
-
`, children: [_jsxs("div", { className: "\r\n flex\r\n items-center\r\n justify-between\r\n\r\n border-b\r\n border-light-gray\r\n\r\n px-5\r\n py-4\r\n ", children: [_jsx("h2", { className: "text-lg font-semibold", children: "Menu" }), _jsx("button", { onClick: () => setOpenDrawer(false), className: "\r\n flex\r\n items-center\r\n justify-center\r\n\r\n h-10\r\n w-10\r\n\r\n rounded-md\r\n\r\n hover:bg-gray-100\r\n ", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "\r\n h-6\r\n w-6\r\n\r\n text-gray-700\r\n ", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 01-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06Z", clipRule: "evenodd" }) }) })] }), _jsx("div", { className: "flex flex-col p-4", children: navDrawer.map((item) => (_jsx("a", { href: item.href || "#", onClick: () => {
|
|
19
|
-
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item.label);
|
|
20
|
-
setOpenDrawer(false);
|
|
21
|
-
}, className: "\r\n rounded-md\r\n px-4\r\n py-3\r\n hover:bg-gray-100\r\n ", children: item.label }, item.id))) })] })] }));
|
|
22
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const Icon = ({ logo = "/logo.svg", title = "my Company", style, alt = "", }) => {
|
|
3
|
-
return (_jsxs("div", { className: `
|
|
4
|
-
flex
|
|
5
|
-
items-center
|
|
6
|
-
gap-2
|
|
7
|
-
sm:gap-3
|
|
8
|
-
shrink-0
|
|
9
|
-
${style || ""}
|
|
10
|
-
`, children: [_jsx("img", { src: logo, alt: alt, className: "\r\n h-8\r\n w-8\r\n sm:h-10\r\n sm:w-10\r\n object-contain\r\n " }), _jsx("h1", { className: "\r\n text-sm\r\n sm:text-lg\r\n font-bold\r\n text-blue\r\n ", children: title })] }));
|
|
11
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export const NavBar = ({ navBar = [], style, onItemClick, }) => {
|
|
3
|
-
return (_jsx("nav", { className: `
|
|
4
|
-
hidden
|
|
5
|
-
md:flex
|
|
6
|
-
gap-12
|
|
7
|
-
justify-center
|
|
8
|
-
items-center
|
|
9
|
-
absolute
|
|
10
|
-
left-1/2
|
|
11
|
-
-translate-x-1/2
|
|
12
|
-
${style || ""}
|
|
13
|
-
`, children: navBar.map((item) => (_jsx("a", { href: item.href || "#", onClick: () => onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item.label), className: "\r\n text-lg\r\n font-bold\r\n text-black\r\n hover:text-green\r\n cursor-pointer\r\n ", children: item.label }, item.id))) }));
|
|
14
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { Modal } from "../modal/Modal";
|
|
4
|
-
export const SearchBar = ({ placeholder = "Search...", style, children, }) => {
|
|
5
|
-
const [openSearch, setOpenSearch] = useState(false);
|
|
6
|
-
return (_jsxs("div", { className: `relative ${style || ""}`, children: [_jsxs("div", { className: "hidden md:block relative", children: [_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, className: "\r\n absolute\r\n left-3\r\n top-1/2\r\n h-4\r\n w-4\r\n -translate-y-1/2\r\n text-gray-400\r\n ", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21 21l-4.35-4.35m1.85-5.15a7 7 0 11-14 0 7 7 0 0114 0z" }) }), _jsx("input", { type: "text", placeholder: placeholder, className: "\r\n w-27.5\r\n sm:w-40\r\n md:w-50\r\n lg:w-60\r\n rounded-md\r\n border\r\n border-light-gray\r\n bg-white\r\n px-3\r\n py-2\r\n pl-9\r\n text-xs\r\n sm:text-sm\r\n focus:outline-none\r\n focus:ring-2\r\n focus:ring-blue\r\n " })] }), _jsx("button", { onClick: () => setOpenSearch(true), className: "\r\n flex\r\n md:hidden\r\n items-center\r\n justify-center\r\n h-10\r\n w-10\r\n rounded-md\r\n hover:bg-gray-100\r\n ", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, className: "\r\n h-6\r\n w-6\r\n text-gray-700\r\n ", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21 21l-4.35-4.35m1.85-5.15a7 7 0 11-14 0 7 7 0 0114 0z" }) }) }), _jsx(Modal, { isOpen: openSearch, title: "Search", onClose: () => setOpenSearch(false), children: children ? (children) : (_jsxs("div", { className: "relative", children: [_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, className: "\r\n absolute\r\n left-3\r\n top-1/2\r\n h-4\r\n w-4\r\n -translate-y-1/2\r\n text-gray-400\r\n ", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21 21l-4.35-4.35m1.85-5.15a7 7 0 11-14 0 7 7 0 0114 0z" }) }), _jsx("input", { autoFocus: true, type: "text", placeholder: placeholder, className: "\r\n w-full\r\n rounded-md\r\n border\r\n border-light-gray\r\n bg-white\r\n px-3\r\n py-2\r\n pl-9\r\n text-sm\r\n focus:outline-none\r\n focus:ring-2\r\n focus:ring-blue\r\n " })] })) })] }));
|
|
7
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface CheckBoxProps {
|
|
3
|
-
id: string;
|
|
4
|
-
label: string;
|
|
5
|
-
required?: boolean;
|
|
6
|
-
disabled?: boolean;
|
|
7
|
-
defaultChecked?: boolean;
|
|
8
|
-
error?: boolean;
|
|
9
|
-
helperText?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare const CheckBox: React.FC<CheckBoxProps>;
|
|
12
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
export const CheckBox = ({ id, label, required, disabled, defaultChecked, error, helperText, }) => {
|
|
4
|
-
const [isChecked, setIsChecked] = useState(defaultChecked || false);
|
|
5
|
-
const handleChange = (e) => {
|
|
6
|
-
const checked = e.target.checked;
|
|
7
|
-
setIsChecked(checked);
|
|
8
|
-
};
|
|
9
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { id: id, type: "checkbox", checked: isChecked, onChange: handleChange, disabled: disabled, className: `
|
|
10
|
-
w-4 h-4 border rounded-xs
|
|
11
|
-
bg-neutral-secondary-medium
|
|
12
|
-
focus:ring-2 focus:ring-brand-soft
|
|
13
|
-
${disabled ? "border-light cursor-not-allowed" : "border-default-medium hover:cursor-pointer"}
|
|
14
|
-
` }), _jsxs("label", { htmlFor: id, className: `
|
|
15
|
-
select-none ms-2 text-sm font-medium
|
|
16
|
-
${disabled ? "text-fg-disabled text-light-gray" : "text-heading"}
|
|
17
|
-
`, children: [label, " ", required && _jsx("span", { className: "text-red", children: "*" })] })] }), _jsx("div", { className: error ? "text-red text-sm font-medium" : "text-gray text-sm font-medium", children: helperText })] }));
|
|
18
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
interface SelectProps {
|
|
2
|
-
label: string;
|
|
3
|
-
options: {
|
|
4
|
-
key: number;
|
|
5
|
-
name: string;
|
|
6
|
-
value: string;
|
|
7
|
-
image?: string;
|
|
8
|
-
}[];
|
|
9
|
-
required?: boolean;
|
|
10
|
-
disabled?: boolean;
|
|
11
|
-
helperText?: string;
|
|
12
|
-
error?: boolean;
|
|
13
|
-
value?: string;
|
|
14
|
-
onChange?: (value: string) => void;
|
|
15
|
-
}
|
|
16
|
-
export declare const Select: React.FC<SelectProps>;
|
|
17
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export const Select = ({ label, options, required, disabled, helperText, error, value, onChange, }) => {
|
|
3
|
-
const handleChange = (event) => {
|
|
4
|
-
if (onChange) {
|
|
5
|
-
onChange(event.target.value);
|
|
6
|
-
}
|
|
7
|
-
};
|
|
8
|
-
return (_jsxs("div", { className: "w-full flex flex-col gap-1", children: [_jsxs("label", { className: "text-sm font-medium text-gray", children: [label, " ", required && "*"] }), _jsx("select", { className: `h-10 border-r-8 border-transparent px-4 outline outline-neutral-700 block w-full p-2 bg-neutral-secondary-medium
|
|
9
|
-
border border-default-medium text-heading text-sm font-normal rounded-base focus:ring-brand focus:border-brand shadow-xs
|
|
10
|
-
placeholder:text-body
|
|
11
|
-
${disabled ? "cursor-not-allowed" : "hover:cursor-pointer"}`, disabled: disabled, onChange: handleChange, value: value, children: options.map((option) => (_jsx("option", { value: option.name, children: option.value }, option.key))) }), helperText && error && (_jsx("div", { className: "text-red text-sm font-normal", children: helperText }))] }));
|
|
12
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface TextFieldProps {
|
|
3
|
-
id: string;
|
|
4
|
-
labelText: string;
|
|
5
|
-
placeholder: string;
|
|
6
|
-
error?: boolean;
|
|
7
|
-
helperText?: string;
|
|
8
|
-
type: "text" | "email" | "password" | "number";
|
|
9
|
-
}
|
|
10
|
-
export declare const TextField: React.FC<TextFieldProps>;
|
|
11
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
const errorColor = "border-red";
|
|
3
|
-
const errorTextColor = "text-red";
|
|
4
|
-
const defaultColor = "border-gray";
|
|
5
|
-
export const TextField = ({ id, labelText, placeholder, type, error, helperText, }) => {
|
|
6
|
-
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("label", { htmlFor: id, className: "text-sm font-medium text-gray", children: labelText }), _jsx("input", { id: id, placeholder: placeholder, type: type, className: `block w-full px-3 py-2.5 bg-neutral-secondary-medium border ${error ? errorColor : defaultColor} text-heading text-sm rounded-base shadow-xs placeholder:text-body focus:ring-brand focus:border-brand` }), helperText && (_jsx("p", { className: `${error ? errorTextColor : "text-light-gray"} text-xs`, children: helperText }))] }));
|
|
7
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
export const Modal = ({ isOpen, onClose, title, children }) => {
|
|
3
|
-
if (!isOpen)
|
|
4
|
-
return null;
|
|
5
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40 bg-black/40", onClick: onClose }), _jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: _jsxs("div", { className: "w-full max-w-md bg-white shadow-lg", role: "dialog", "aria-modal": "true", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-gray-200 px-5 py-4", children: [_jsx("h2", { className: "text-lg font-semibold", children: title }), _jsx("button", { onClick: onClose, className: "flex h-10 w-10 items-center justify-center hover:bg-gray-100 rounded-md", "aria-label": "Close modal", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 2, stroke: "currentColor", className: "h-5 w-5", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" }) }) })] }), _jsx("div", { className: "p-5", children: children })] }) })] }));
|
|
6
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Modal } from './Modal';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Modal } from './Modal';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
export const Section = ({ id, title, children, style, }) => {
|
|
3
|
-
return (_jsx("section", { id: id, className: `
|
|
4
|
-
min-h-screen
|
|
5
|
-
w-full
|
|
6
|
-
px-6
|
|
7
|
-
py-6
|
|
8
|
-
scroll-mt-32
|
|
9
|
-
md:px-10
|
|
10
|
-
lg:px-16
|
|
11
|
-
|
|
12
|
-
${style || ""}
|
|
13
|
-
`, children: _jsxs("div", { className: "mx-auto flex w-full max-w-7xl flex-col gap-10", children: [title && (_jsx("h2", { className: "\r\n text-3xl\r\n font-bold\r\n md:text-4xl\r\n ", children: title })), children] }) }));
|
|
14
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Section } from './Section';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Section } from './Section';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const Loader: React.FC;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Loader } from './Loader';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Loader } from './Loader';
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { Cheader } from "../header/Cheader";
|
|
4
|
-
import { NavBar } from "../header/NavBar";
|
|
5
|
-
import { Drawer } from "../header/Drawer";
|
|
6
|
-
import { Icon } from "../header/Icon";
|
|
7
|
-
import { Breadcrumbs } from "../breadcrumbs/Breadcrumbs";
|
|
8
|
-
import { SearchBar } from "../header/SearchBar";
|
|
9
|
-
import { Cfooter } from "../footer/Cfooter";
|
|
10
|
-
import { FooterIcon } from "../footer/FooterIcon";
|
|
11
|
-
import { QuickLink } from "../footer/QuickLink";
|
|
12
|
-
import { FooterContact } from "../footer/FooterContact";
|
|
13
|
-
import { FooterBottom } from "../footer/FooterBottom";
|
|
14
|
-
export const LandingLayout = ({ children, }) => {
|
|
15
|
-
const [currentPage, setCurrentPage] = React.useState("Home");
|
|
16
|
-
const navItems = [
|
|
17
|
-
{ id: 1, href: "#home", label: "Home" },
|
|
18
|
-
{ id: 2, href: "#about", label: "About" },
|
|
19
|
-
{ id: 3, href: "#services", label: "Services" },
|
|
20
|
-
{ id: 4, href: "#contact", label: "Contact" },
|
|
21
|
-
];
|
|
22
|
-
return (_jsxs("div", { className: "w-full scroll-smooth", children: [_jsx("div", { className: "sticky top-0 z-50 bg-white", children: _jsxs(Cheader, { children: [_jsxs("div", { className: "flex items-center gap-4 lg:gap-10", children: [_jsx(Icon, { logo: "/icon.svg", title: "QTEK" }), _jsx(NavBar, { navBar: navItems, onItemClick: setCurrentPage })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2 sm:gap-3", children: [_jsx(SearchBar, {}), _jsx(Drawer, { navDrawer: navItems, onItemClick: setCurrentPage })] })] }) }), _jsx("div", { className: " \r\n mx-auto\r\n max-w-full\r\n px-6\r\n py-4\r\n sticky\r\n z-40\r\n top-16\r\n bg-light-gray", children: _jsx(Breadcrumbs, { items: [
|
|
23
|
-
{
|
|
24
|
-
id: 1,
|
|
25
|
-
label: currentPage,
|
|
26
|
-
href: "#",
|
|
27
|
-
},
|
|
28
|
-
] }) }), children, _jsxs(Cfooter, { children: [_jsx(FooterIcon, { description: "Building modern and scalable digital solutions.", children: _jsx("div", { className: "scale-150 origin-left", children: _jsx(Icon, { logo: "/icon.svg", title: "QTEK" }) }) }), _jsx(QuickLink, { title: "Quick Links", links: navItems, onItemClick: setCurrentPage }), _jsx(FooterContact, { email: "hello@qtek.com", phone: "+63 900 000 0000", socials: [
|
|
29
|
-
{ id: 1, label: "Facebook", href: "#" },
|
|
30
|
-
{ id: 2, label: "LinkedIn", href: "#" },
|
|
31
|
-
{ id: 3, label: "GitHub", href: "#" },
|
|
32
|
-
] }), _jsx(FooterBottom, { copyright: "\u00A9 2026 QTEK. All rights reserved." })] })] }));
|
|
33
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { LandingLayout } from './LandingLayout';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { LandingLayout } from './LandingLayout';
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export const Ctable = ({ children, style, maxRows = 5, }) => {
|
|
3
|
-
return (_jsx("div", { className: `
|
|
4
|
-
w-full
|
|
5
|
-
overflow-hidden
|
|
6
|
-
rounded-md
|
|
7
|
-
bg-white
|
|
8
|
-
shadow-lg
|
|
9
|
-
${style || ""}
|
|
10
|
-
`, children: _jsx("div", { className: "overflow-auto", style: {
|
|
11
|
-
maxHeight: `${maxRows * 56}px`,
|
|
12
|
-
}, children: _jsx("table", { className: "w-full border-separate border-spacing-0", children: children }) }) }));
|
|
13
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
export const TableCell = ({ children, align = "left", style, }) => {
|
|
3
|
-
return (_jsx("td", { className: `
|
|
4
|
-
px-4
|
|
5
|
-
py-3
|
|
6
|
-
text-sm
|
|
7
|
-
${align === "center" ? "text-center" : ""}
|
|
8
|
-
${align === "right" ? "text-right" : ""}
|
|
9
|
-
${align === "left" ? "text-left" : ""}
|
|
10
|
-
${style || ""}
|
|
11
|
-
`, children: children }));
|
|
12
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { alignment } from "./alignment";
|
|
3
|
-
export const TableHead = ({ rowData }) => {
|
|
4
|
-
return (_jsx("thead", { children: _jsx("tr", { className: "\r\n sticky\r\n top-0\r\n z-10\r\n bg-white\r\n ", children: rowData.map((cell) => (_jsx("th", { className: `
|
|
5
|
-
px-3 sm:px-4 md:px-6
|
|
6
|
-
py-2 md:py-4
|
|
7
|
-
text-xs sm:text-sm
|
|
8
|
-
text-gray
|
|
9
|
-
font-semibold
|
|
10
|
-
|
|
11
|
-
border-b
|
|
12
|
-
border-light-gray
|
|
13
|
-
${alignment[cell.align || "left"]}
|
|
14
|
-
${cell.style || ""}
|
|
15
|
-
`, children: cell.value }, cell.key))) }) }));
|
|
16
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { alignment } from "./alignment";
|
|
3
|
-
export const TableRow = ({ rowData, style }) => {
|
|
4
|
-
return (_jsx("tr", { className: `
|
|
5
|
-
|
|
6
|
-
transition-colors
|
|
7
|
-
hover:bg-gray-50
|
|
8
|
-
[&:last-child_td]:border-b-0
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
${style || ""}
|
|
12
|
-
`, children: rowData.map((cell) => (_jsx("td", { className: `
|
|
13
|
-
px-3 sm:px-4 md:px-6
|
|
14
|
-
py-2 md:py-4
|
|
15
|
-
text-xs sm:text-sm
|
|
16
|
-
text-gray
|
|
17
|
-
whitespace-nowrap
|
|
18
|
-
|
|
19
|
-
border-b
|
|
20
|
-
border-light-gray
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
${alignment[cell.align || "left"]}
|
|
25
|
-
${cell.style || ""}
|
|
26
|
-
`, children: cell.value }, cell.key))) }));
|
|
27
|
-
};
|