@caseparts-org/caseblocks 0.0.180 → 0.0.182

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.
@@ -1 +1 @@
1
- ._footer_ttcme_2{background-color:var(--surface-surface-quaternary);padding-block:var(--spacing-2)}._footer_ttcme_2 a{color:var(--text-text-footer);font-size:var(--font-size-sm);font-weight:var(--font-weight-extra-light);text-decoration:none}._footer_ttcme_2 a:hover{text-decoration:underline}._grid_ttcme_18,._bottom-grid_ttcme_19{padding-block:var(--spacing-2-5);padding-inline:var(--spacing-1-5);width:100%;max-width:1440px;margin:0 auto;box-sizing:border-box;overflow:hidden}._title_ttcme_31{margin-top:var(--spacing-1);margin-bottom:var(--spacing-2)}._title-help_ttcme_36{margin-left:var(--spacing-2)}._columnContent_ttcme_40{gap:var(--spacing-1)}._columnContentMain_ttcme_44{padding-left:var(--spacing-3-5)}._history_ttcme_48{min-width:0;padding-left:1rem;max-width:295px;width:100%;box-sizing:border-box;overflow-wrap:anywhere}._history-text_ttcme_57{min-width:0;line-height:1.75rem}._logo_ttcme_62{padding-bottom:var(--spacing-2);width:256px;height:44px}._icon-gap_ttcme_68{gap:var(--spacing-0-5)}._location_ttcme_72{cursor:default}._copyright-text_ttcme_76{white-space:normal;overflow-wrap:anywhere;word-break:break-word}@media (max-width: 1281px){._title-help_ttcme_36{margin-left:0}._grid_ttcme_18,._bottom-grid_ttcme_19{padding-inline:var(--spacing-4)}._history-text_ttcme_57{line-height:1.25rem}._logo_ttcme_62{padding-bottom:var(--spacing-2);width:200px}}@media (max-width: 768px){._history_ttcme_48{max-width:100%;max-width:295px;padding-left:0;margin-top:var(--spacing-1);margin-bottom:var(--spacing-2)}}
1
+ ._footer_1uyfm_2{background-color:var(--surface-surface-quaternary);padding-block:var(--spacing-2)}._footer_1uyfm_2 a{color:var(--text-text-footer);font-size:var(--font-size-sm);font-weight:var(--font-weight-extra-light);text-decoration:none}._footer_1uyfm_2 a:hover{text-decoration:underline}._grid_1uyfm_18,._bottom-grid_1uyfm_19{padding-block:var(--spacing-2-5);padding-inline:var(--spacing-1-5);width:100%;max-width:1440px;margin:0 auto;box-sizing:border-box;overflow:hidden}._title_1uyfm_31{margin-top:var(--spacing-1);margin-bottom:var(--spacing-2)}._title-help_1uyfm_36{margin-left:var(--spacing-2)}._columnContent_1uyfm_40{gap:var(--spacing-1)}._columnContentMain_1uyfm_44{padding-left:var(--spacing-3-5)}._history_1uyfm_48{min-width:0;padding-left:1rem;max-width:295px;width:100%;box-sizing:border-box;overflow-wrap:anywhere}._history-text_1uyfm_57{min-width:0;line-height:1.75rem}._logo_1uyfm_62{padding-bottom:var(--spacing-2);width:256px;height:44px}._icon-gap_1uyfm_68{gap:var(--spacing-0-5)}._location_1uyfm_72{cursor:default}._part-research-interactive_1uyfm_76{cursor:pointer}._live-chat-interactive_1uyfm_80{cursor:pointer;display:inline-block}._copyright-text_1uyfm_85{white-space:normal;overflow-wrap:anywhere;word-break:break-word}@media (max-width: 1281px){._title-help_1uyfm_36{margin-left:0}._grid_1uyfm_18,._bottom-grid_1uyfm_19{padding-inline:var(--spacing-4)}._history-text_1uyfm_57{line-height:1.25rem}._logo_1uyfm_62{padding-bottom:var(--spacing-2);width:200px}}@media (max-width: 768px){._history_1uyfm_48{max-width:100%;max-width:295px;padding-left:0;margin-top:var(--spacing-1);margin-bottom:var(--spacing-2)}}
@@ -43,6 +43,6 @@ export type { ProductProps, ProductView } from './organisms/Product/Product';
43
43
  export { Carousel } from './organisms/Carousel/Carousel';
44
44
  export type { CarouselProps } from './organisms/Carousel/Carousel';
45
45
  export { Footer } from './organisms/Footer/Footer';
46
- export type { FooterProps } from './organisms/Footer/Footer';
46
+ export type { FooterProps, FooterNavLink, FooterBranch, FooterCustomerCareLinks, FooterCustomPartsLinks, FooterLegalLinks, } from './organisms/Footer/Footer';
47
47
  export { SpinZoomViewer } from './organisms/SpinZoomViewer/SpinZoomViewer';
48
48
  export type { SpinZoomViewerProps } from './organisms/SpinZoomViewer/SpinZoomViewer';
@@ -1,5 +1,66 @@
1
+ export type FooterNavLink = {
2
+ label: string;
3
+ href: string;
4
+ unstyled?: boolean;
5
+ target?: React.HTMLAttributeAnchorTarget;
6
+ rel?: string;
7
+ };
8
+ export type FooterCustomerCareLink = Omit<FooterNavLink, 'href'> & {
9
+ href?: string;
10
+ };
11
+ export type FooterBranch = {
12
+ office: string;
13
+ phone: string;
14
+ hours: string;
15
+ tooltipOffice: string;
16
+ addressLine1: string;
17
+ addressLine2: string;
18
+ mapUrl: string;
19
+ };
20
+ export type FooterCustomerCareLinks = {
21
+ customerService?: FooterCustomerCareLink;
22
+ accounting?: FooterCustomerCareLink;
23
+ about?: FooterCustomerCareLink;
24
+ contact?: FooterCustomerCareLink;
25
+ faq?: FooterCustomerCareLink;
26
+ orderStatus?: FooterCustomerCareLink;
27
+ paymentMethods?: FooterCustomerCareLink;
28
+ returnsPolicy?: FooterCustomerCareLink;
29
+ shippingAndDelivery?: FooterCustomerCareLink;
30
+ salesTaxCertificates?: FooterCustomerCareLink;
31
+ };
32
+ export type FooterCustomPartsLinks = {
33
+ title: FooterNavLink;
34
+ cuttingBoards: FooterNavLink;
35
+ gaskets: FooterNavLink;
36
+ heatersAndPans: FooterNavLink;
37
+ walkInDoors: FooterNavLink;
38
+ warmerWires: FooterNavLink;
39
+ wireShelving: FooterNavLink;
40
+ };
41
+ export type FooterLegalLinks = {
42
+ terms: FooterNavLink;
43
+ privacyPolicy: FooterNavLink;
44
+ };
1
45
  export interface FooterProps extends React.HTMLAttributes<HTMLDivElement> {
2
- homeRoute: string;
3
- isOnline: boolean;
46
+ homeRoute?: string;
47
+ isOnline?: boolean;
48
+ companyHistoryText?: string;
49
+ customerCareTitle?: string;
50
+ customerCareLinks?: FooterCustomerCareLinks;
51
+ customPartsLinks?: FooterCustomPartsLinks;
52
+ helpTitle?: string;
53
+ branches?: FooterBranch[];
54
+ liveChatLabel?: string;
55
+ liveChatOnlineText?: string;
56
+ liveChatOfflineText?: string;
57
+ liveChatHref?: string;
58
+ onLiveChatClick?: React.MouseEventHandler<HTMLAnchorElement>;
59
+ partResearchLabel?: string;
60
+ partResearchDescription?: string;
61
+ partResearchHref?: string;
62
+ onPartResearchClick?: React.MouseEventHandler<HTMLAnchorElement>;
63
+ legalLinks?: FooterLegalLinks;
64
+ copyrightText?: string;
4
65
  }
5
- export declare function Footer({ homeRoute, isOnline, className, ...otherProps }: FooterProps): import("react/jsx-runtime").JSX.Element;
66
+ export declare function Footer({ homeRoute, isOnline, className, companyHistoryText, customerCareTitle, customerCareLinks, customPartsLinks, helpTitle, branches, liveChatLabel, liveChatOnlineText, liveChatOfflineText, liveChatHref, onLiveChatClick, partResearchLabel, partResearchDescription, partResearchHref, onPartResearchClick, legalLinks, copyrightText, ...otherProps }: FooterProps): import("react/jsx-runtime").JSX.Element;
@@ -1,177 +1,216 @@
1
- import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
- import { Grid as m, Column as s } from "../../atoms/Grid/Grid.js";
3
- import { Flex as l } from "../../atoms/Flex/Flex.js";
4
- import { Link as i } from "../../atoms/Link/Link.js";
5
- import { Icon as n } from "../../atoms/Icon/Icon.js";
6
- import { Logo as p } from "../../molecules/Logo/Logo.js";
7
- import { Text as o } from "../../atoms/Text/Text.js";
8
- import { Tooltip as a } from "../../atoms/Tooltip/Tooltip.js";
9
- import { c as h } from "../../clsx-OuTLNxxd.js";
10
- import '../../assets/Footer.css';const y = "_footer_ttcme_2", x = "_grid_ttcme_18", C = "_title_ttcme_31", _ = "_columnContent_ttcme_40", b = "_history_ttcme_48", w = "_logo_ttcme_62", k = "_location_ttcme_72", t = {
11
- footer: y,
12
- grid: x,
13
- "bottom-grid": "_bottom-grid_ttcme_19",
14
- title: C,
15
- "title-help": "_title-help_ttcme_36",
16
- columnContent: _,
17
- history: b,
18
- "history-text": "_history-text_ttcme_57",
19
- logo: w,
20
- "icon-gap": "_icon-gap_ttcme_68",
21
- location: k,
22
- "copyright-text": "_copyright-text_ttcme_76"
1
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
+ import { Grid as N, Column as h } from "../../atoms/Grid/Grid.js";
3
+ import { Flex as c } from "../../atoms/Flex/Flex.js";
4
+ import { Link as n } from "../../atoms/Link/Link.js";
5
+ import { Icon as _ } from "../../atoms/Icon/Icon.js";
6
+ import { Logo as $ } from "../../molecules/Logo/Logo.js";
7
+ import { Text as l } from "../../atoms/Text/Text.js";
8
+ import { Tooltip as K } from "../../atoms/Tooltip/Tooltip.js";
9
+ import { c as m } from "../../clsx-OuTLNxxd.js";
10
+ import '../../assets/Footer.css';const B = "_footer_1uyfm_2", I = "_grid_1uyfm_18", j = "_title_1uyfm_31", q = "_columnContent_1uyfm_40", G = "_history_1uyfm_48", R = "_logo_1uyfm_62", Q = "_location_1uyfm_72", r = {
11
+ footer: B,
12
+ grid: I,
13
+ "bottom-grid": "_bottom-grid_1uyfm_19",
14
+ title: j,
15
+ "title-help": "_title-help_1uyfm_36",
16
+ columnContent: q,
17
+ history: G,
18
+ "history-text": "_history-text_1uyfm_57",
19
+ logo: R,
20
+ "icon-gap": "_icon-gap_1uyfm_68",
21
+ location: Q,
22
+ "part-research-interactive": "_part-research-interactive_1uyfm_76",
23
+ "live-chat-interactive": "_live-chat-interactive_1uyfm_80",
24
+ "copyright-text": "_copyright-text_1uyfm_85"
25
+ }, Y = "CaseParts has been a leading distributor of commercial refrigeration parts since 1972. Our team of experts are dedicated to helping every customer source parts at great prices.", X = {
26
+ customerService: { label: "Customer Service", href: "mailto:customerservice@caseparts.com" },
27
+ accounting: { label: "Accounting Dept", href: "mailto:accounting@caseparts.com" },
28
+ about: { label: "About Us", href: "/about", unstyled: !0 },
29
+ contact: { label: "Contact Us", href: "/contact", unstyled: !0 },
30
+ faq: { label: "FAQs", href: "/faq", unstyled: !0 },
31
+ orderStatus: { label: "Order Status", href: "/account", unstyled: !0 },
32
+ paymentMethods: { label: "Payment Methods", href: "#", unstyled: !0 },
33
+ returnsPolicy: { label: "Returns Policy", href: "#", unstyled: !0 },
34
+ shippingAndDelivery: { label: "Shipping & Delivery", href: "#", unstyled: !0 },
35
+ salesTaxCertificates: { label: "Sales Tax Certificates", href: "#", unstyled: !0 }
36
+ }, J = {
37
+ title: { label: "Custom Parts", href: "/custom", unstyled: !0 },
38
+ cuttingBoards: { label: "Cutting Boards", href: "/custom", unstyled: !0 },
39
+ gaskets: { label: "Gaskets", href: "/custom", unstyled: !0 },
40
+ heatersAndPans: { label: "Heaters & Pans", href: "/custom", unstyled: !0 },
41
+ walkInDoors: { label: "Walk-in Doors", href: "/custom", unstyled: !0 },
42
+ warmerWires: { label: "Warmer Wires", href: "/custom", unstyled: !0 },
43
+ wireShelving: { label: "Wire Shelving", href: "/custom", unstyled: !0 }
44
+ }, V = [
45
+ {
46
+ office: "Los Angeles",
47
+ phone: "(800) 421-0291",
48
+ hours: "Weekdays | 8:00AM - 4:30PM PT",
49
+ tooltipOffice: "Case Parts - Los Angeles",
50
+ addressLine1: "877 Monterey Pass Road",
51
+ addressLine2: "Monterey Park, CA 91754",
52
+ mapUrl: "https://goo.gl/maps/PzF4o1beyyTanKVk6"
53
+ },
54
+ {
55
+ office: "St. Louis",
56
+ phone: "(800) 423-9397",
57
+ hours: "Weekdays | 8:00AM - 4:30PM CDT",
58
+ tooltipOffice: "Case Parts - St. Louis",
59
+ addressLine1: "3218 Rider Trail South",
60
+ addressLine2: "Earth City, MO 63045",
61
+ mapUrl: "https://goo.gl/maps/JgBTWQ8LyaXR2UrS9"
62
+ },
63
+ {
64
+ office: "Seattle",
65
+ phone: "(800) 731-5416",
66
+ hours: "Weekdays | 8:30AM - 5:00PM PT",
67
+ tooltipOffice: "Case Parts - Seattle",
68
+ addressLine1: "25315 74th Ave South, Suite 101",
69
+ addressLine2: "Kent, WA 98032",
70
+ mapUrl: "https://goo.gl/maps/BhvC7NY94vXQG8uW8"
71
+ }
72
+ ], H = {
73
+ terms: { label: "Terms", href: "#", unstyled: !0 },
74
+ privacyPolicy: { label: "Privacy Policy", href: "#", unstyled: !0 }
23
75
  };
24
- function M({ homeRoute: g, isOnline: d = !0, className: c, ...f }) {
25
- const u = h(t.footer, c);
26
- return /* @__PURE__ */ r("footer", { className: u, ...f, children: [
27
- /* @__PURE__ */ r(m, { gridWrapperClassName: h(c, t.grid), children: [
28
- /* @__PURE__ */ r(s, { span: [4, 6, 3], className: t.gridColumn, children: [
29
- /* @__PURE__ */ e(i, { href: g, children: /* @__PURE__ */ e(p, { variant: "white", className: t.logo }) }),
30
- /* @__PURE__ */ e("div", { className: t.history, children: /* @__PURE__ */ e(o, { size: "sm", weight: "extra-light", colorToken: "footer", className: t["history-text"], children: "CaseParts has been a leading distributor of commercial refrigeration parts since 1972. Our team of experts are dedicated to helping every customer source parts at great prices." }) })
76
+ function se({
77
+ homeRoute: w = "/",
78
+ isOnline: y = !0,
79
+ className: g,
80
+ companyHistoryText: S = Y,
81
+ customerCareTitle: A = "Customer Care",
82
+ customerCareLinks: i = X,
83
+ customPartsLinks: a = J,
84
+ helpTitle: D = "How May We Help?",
85
+ branches: C = V,
86
+ liveChatLabel: x = "Live Chat Support",
87
+ liveChatOnlineText: b = "Currently Online",
88
+ liveChatOfflineText: v = "Currently Offline",
89
+ liveChatHref: p,
90
+ onLiveChatClick: f,
91
+ partResearchLabel: T = "Part Research Request",
92
+ partResearchDescription: z = "Ask Our Experts to Source a Part",
93
+ partResearchHref: u,
94
+ onPartResearchClick: d,
95
+ legalLinks: s = H,
96
+ copyrightText: P = "Copyright 1972-2025 Case Parts Company | All Rights Reserved.",
97
+ ...M
98
+ }) {
99
+ const W = m(r.footer, g), U = [
100
+ a.cuttingBoards,
101
+ a.gaskets,
102
+ a.heatersAndPans,
103
+ a.walkInDoors,
104
+ a.warmerWires,
105
+ a.wireShelving
106
+ ], E = [
107
+ i.customerService,
108
+ i.accounting,
109
+ i.about,
110
+ i.contact,
111
+ i.faq,
112
+ i.orderStatus,
113
+ i.paymentMethods,
114
+ i.returnsPolicy,
115
+ i.shippingAndDelivery,
116
+ i.salesTaxCertificates
117
+ ].filter((t) => !!(t != null && t.href)), O = (t) => {
118
+ u || t.preventDefault(), d == null || d(t);
119
+ }, F = (t) => {
120
+ p || t.preventDefault(), f == null || f(t);
121
+ };
122
+ return /* @__PURE__ */ o("footer", { className: W, ...M, children: [
123
+ /* @__PURE__ */ o(N, { gridWrapperClassName: m(g, r.grid), children: [
124
+ /* @__PURE__ */ o(h, { span: [4, 6, 3], className: r.gridColumn, children: [
125
+ /* @__PURE__ */ e(n, { href: w, children: /* @__PURE__ */ e($, { variant: "white", className: r.logo }) }),
126
+ /* @__PURE__ */ e("div", { className: r.history, children: /* @__PURE__ */ e(l, { size: "sm", weight: "extra-light", colorToken: "footer", className: r["history-text"], children: S }) })
31
127
  ] }),
32
- /* @__PURE__ */ r(s, { span: [4, 6, 3], className: t.gridColumn, children: [
33
- /* @__PURE__ */ e(o, { size: "sm", colorToken: "footer", weight: "semibold", as: "div", className: t.title, children: "Customer Care" }),
34
- /* @__PURE__ */ r(l, { flexDirection: "column", className: t.columnContent, children: [
35
- /* @__PURE__ */ e(i, { href: "mailto:customerservice@caseparts.com", children: "Customer Service" }),
36
- /* @__PURE__ */ e(i, { href: "mailto:accounting@caseparts.com", children: "Accounting Dept" }),
37
- /* @__PURE__ */ e(i, { href: "/about", unstyled: !0, children: "About Us" }),
38
- /* @__PURE__ */ e(i, { href: "/contact", unstyled: !0, children: "Contact Us" }),
39
- /* @__PURE__ */ e(i, { href: "/faq", unstyled: !0, children: "FAQs" }),
40
- /* @__PURE__ */ e(i, { href: "/account", unstyled: !0, children: "Order Status" }),
41
- /* @__PURE__ */ e(i, { href: "#", unstyled: !0, children: "Payment Methods" }),
42
- /* @__PURE__ */ e(i, { href: "#", unstyled: !0, children: "Returns Policy" }),
43
- /* @__PURE__ */ e(i, { href: "#", unstyled: !0, children: "Shipping & Delivery" }),
44
- /* @__PURE__ */ e(i, { href: "#", unstyled: !0, children: "Sales Tax Certificates" })
45
- ] })
128
+ /* @__PURE__ */ o(h, { span: [4, 6, 3], className: r.gridColumn, children: [
129
+ /* @__PURE__ */ e(l, { size: "sm", colorToken: "footer", weight: "semibold", as: "div", className: r.title, children: A }),
130
+ /* @__PURE__ */ e(c, { flexDirection: "column", className: r.columnContent, children: E.map((t) => /* @__PURE__ */ e(n, { href: t.href, unstyled: t.unstyled, target: t.target, rel: t.rel, children: t.label }, `${t.label}-${t.href}`)) })
46
131
  ] }),
47
- /* @__PURE__ */ r(s, { span: [4, 6, 3], className: t.gridColumn, children: [
48
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: /* @__PURE__ */ e(o, { size: "sm", colorToken: "footer", weight: "semibold", as: "div", className: t.title, children: "Custom Parts" }) }),
49
- /* @__PURE__ */ r(l, { flexDirection: "column", className: t.columnContent, children: [
50
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: "Cutting Boards" }),
51
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: "Gaskets" }),
52
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: "Heaters & Pans" }),
53
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: "Walk-in Doors" }),
54
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: "Warmer Wires" }),
55
- /* @__PURE__ */ e(i, { href: "/custom", unstyled: !0, children: "Wire Shelving" })
56
- ] })
132
+ /* @__PURE__ */ o(h, { span: [4, 6, 3], className: r.gridColumn, children: [
133
+ /* @__PURE__ */ e(n, { href: a.title.href, unstyled: a.title.unstyled, children: /* @__PURE__ */ e(l, { size: "sm", colorToken: "footer", weight: "semibold", as: "div", className: r.title, children: a.title.label }) }),
134
+ /* @__PURE__ */ e(c, { flexDirection: "column", className: r.columnContent, children: U.map((t) => /* @__PURE__ */ e(n, { href: t.href, unstyled: t.unstyled, target: t.target, rel: t.rel, children: t.label }, `${t.label}-${t.href}`)) })
57
135
  ] }),
58
- /* @__PURE__ */ r(s, { span: [4, 6, 3], className: t.gridColumn, children: [
59
- /* @__PURE__ */ e(o, { size: "sm", weight: "semibold", colorToken: "footer", as: "div", className: `${t.title} ${t["title-help"]}`, children: "How May We Help?" }),
60
- /* @__PURE__ */ r(l, { flexDirection: "column", className: t.columnContent, children: [
61
- /* @__PURE__ */ r(l, { flexDirection: "row", justifyContent: "flex-start", className: t["icon-gap"], children: [
62
- /* @__PURE__ */ e(n, { iconKey: "fa-solid fa-location-dot", size: "sm", colorToken: "warning" }),
136
+ /* @__PURE__ */ o(h, { span: [4, 6, 3], className: r.gridColumn, children: [
137
+ /* @__PURE__ */ e(l, { size: "sm", weight: "semibold", colorToken: "footer", as: "div", className: `${r.title} ${r["title-help"]}`, children: D }),
138
+ /* @__PURE__ */ o(c, { flexDirection: "column", className: r.columnContent, children: [
139
+ C.map((t) => /* @__PURE__ */ o(c, { flexDirection: "row", justifyContent: "flex-start", className: r["icon-gap"], children: [
140
+ /* @__PURE__ */ e(_, { iconKey: "fa-solid fa-location-dot", size: "sm", colorToken: "warning" }),
63
141
  /* @__PURE__ */ e(
64
- a,
142
+ K,
65
143
  {
66
- trigger: /* @__PURE__ */ r("div", { className: t.location, children: [
67
- /* @__PURE__ */ e(o, { size: "sm", weight: "extra-light", colorToken: "footer", children: "Los Angeles (800) 421-0291" }),
68
- /* @__PURE__ */ e("br", {}),
69
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Weekdays | 8:00AM – 4:30PM PT" })
70
- ] }),
71
- position: "left center",
72
- openDelay: 200,
73
- closeDelay: 50,
74
- tooltipOffset: 4,
75
- children: /* @__PURE__ */ r("div", { children: [
76
- /* @__PURE__ */ e(o, { size: "xs", weight: "semibold", children: "Case Parts - Los Angeles" }),
77
- /* @__PURE__ */ e("br", {}),
78
- /* @__PURE__ */ r(o, { size: "xs", weight: "regular", children: [
79
- "877 Monterey Pass Road",
80
- /* @__PURE__ */ e("br", {}),
81
- "Monterey Park, CA 91754"
144
+ trigger: /* @__PURE__ */ o("div", { className: r.location, children: [
145
+ /* @__PURE__ */ o(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: [
146
+ t.office,
147
+ " ",
148
+ t.phone
82
149
  ] }),
83
150
  /* @__PURE__ */ e("br", {}),
84
- /* @__PURE__ */ e(o, { size: "xs", weight: "semibold", children: /* @__PURE__ */ e(i, { href: "https://goo.gl/maps/PzF4o1beyyTanKVk6", target: "_blank", rel: "noopener noreferrer", children: "Directions" }) })
85
- ] })
86
- }
87
- )
88
- ] }),
89
- /* @__PURE__ */ r(l, { flexDirection: "row", justifyContent: "flex-start", className: t["icon-gap"], children: [
90
- /* @__PURE__ */ e(n, { iconKey: "fa-solid fa-location-dot", size: "sm", colorToken: "warning" }),
91
- /* @__PURE__ */ e(
92
- a,
93
- {
94
- trigger: /* @__PURE__ */ r("div", { className: t.location, children: [
95
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "St. Louis (800) 423-9397" }),
96
- /* @__PURE__ */ e("br", {}),
97
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Weekdays | 8:00AM – 4:30PM CDT" })
151
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: t.hours })
98
152
  ] }),
99
153
  position: "left center",
100
154
  openDelay: 200,
101
155
  closeDelay: 50,
102
156
  tooltipOffset: 4,
103
- children: /* @__PURE__ */ r("div", { children: [
104
- /* @__PURE__ */ e(o, { size: "xs", weight: "semibold", children: "Case Parts - St. Louis" }),
157
+ children: /* @__PURE__ */ o("div", { children: [
158
+ /* @__PURE__ */ e(l, { size: "xs", weight: "semibold", children: t.tooltipOffice }),
105
159
  /* @__PURE__ */ e("br", {}),
106
- /* @__PURE__ */ r(o, { size: "xs", weight: "regular", children: [
107
- "3218 Rider Trail South",
160
+ /* @__PURE__ */ o(l, { size: "xs", weight: "regular", children: [
161
+ t.addressLine1,
108
162
  /* @__PURE__ */ e("br", {}),
109
- "Earth City, MO 63045"
163
+ t.addressLine2
110
164
  ] }),
111
165
  /* @__PURE__ */ e("br", {}),
112
- /* @__PURE__ */ e(o, { size: "xs", weight: "semibold", children: /* @__PURE__ */ e(i, { href: "https://goo.gl/maps/JgBTWQ8LyaXR2UrS9", target: "_blank", rel: "noopener noreferrer", children: "Directions" }) })
166
+ /* @__PURE__ */ e(l, { size: "xs", weight: "semibold", children: /* @__PURE__ */ e(n, { href: t.mapUrl, target: "_blank", rel: "noopener noreferrer", children: "Directions" }) })
113
167
  ] })
114
168
  }
115
169
  )
116
- ] }),
117
- /* @__PURE__ */ r(l, { flexDirection: "row", justifyContent: "flex-start", className: t["icon-gap"], children: [
118
- /* @__PURE__ */ e(n, { iconKey: "fa-solid fa-location-dot", size: "sm", colorToken: "warning" }),
119
- /* @__PURE__ */ e(
120
- a,
170
+ ] }, `${t.office}-${t.phone}`)),
171
+ /* @__PURE__ */ o(c, { flexDirection: "row", justifyContent: "flex-start", className: r["icon-gap"], children: [
172
+ /* @__PURE__ */ e(_, { iconKey: "fa-kit fa-chat", size: "sm", colorToken: y ? "success" : "default-inverted" }),
173
+ p || f ? /* @__PURE__ */ o(
174
+ n,
121
175
  {
122
- trigger: /* @__PURE__ */ r("div", { className: t.location, children: [
123
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Seattle (800) 731-5416" }),
176
+ href: p || "#",
177
+ unstyled: !0,
178
+ onClick: F,
179
+ className: r["live-chat-interactive"],
180
+ children: [
181
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: x }),
124
182
  /* @__PURE__ */ e("br", {}),
125
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Weekdays | 8:30AM – 5:00PM PT" })
126
- ] }),
127
- position: "left center",
128
- openDelay: 200,
129
- closeDelay: 50,
130
- tooltipOffset: 4,
131
- children: /* @__PURE__ */ r("div", { children: [
132
- /* @__PURE__ */ e(o, { size: "xs", weight: "semibold", children: "Case Parts - Seattle" }),
133
- /* @__PURE__ */ e("br", {}),
134
- /* @__PURE__ */ r(o, { size: "xs", weight: "regular", children: [
135
- "25315 74th Ave South, Suite 101",
136
- /* @__PURE__ */ e("br", {}),
137
- "Kent, WA 98032"
138
- ] }),
139
- /* @__PURE__ */ e("br", {}),
140
- /* @__PURE__ */ e(o, { size: "xs", weight: "semibold", children: /* @__PURE__ */ e(i, { href: "https://goo.gl/maps/BhvC7NY94vXQG8uW8", target: "_blank", rel: "noopener noreferrer", children: "Directions" }) })
141
- ] })
183
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: y ? b : v })
184
+ ]
142
185
  }
143
- )
144
- ] }),
145
- /* @__PURE__ */ r(l, { flexDirection: "row", justifyContent: "flex-start", className: t["icon-gap"], children: [
146
- /* @__PURE__ */ e(n, { iconKey: "fa-kit fa-chat", size: "sm", colorToken: d ? "success" : "default-inverted" }),
147
- /* @__PURE__ */ r("div", { children: [
148
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Live Chat Support" }),
186
+ ) : /* @__PURE__ */ o("div", { children: [
187
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: x }),
149
188
  /* @__PURE__ */ e("br", {}),
150
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: d ? "Currently Online" : "Currently Offline" })
189
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: y ? b : v })
151
190
  ] })
152
191
  ] }),
153
- /* @__PURE__ */ r(l, { flexDirection: "row", justifyContent: "flex-start", className: t["icon-gap"], children: [
154
- /* @__PURE__ */ e(n, { iconKey: "fa-solid fa-megaphone", size: "sm", colorToken: "default-inverted" }),
155
- /* @__PURE__ */ r("div", { children: [
156
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Part Research Request" }),
192
+ /* @__PURE__ */ o(c, { flexDirection: "row", justifyContent: "flex-start", className: r["icon-gap"], children: [
193
+ /* @__PURE__ */ e(_, { iconKey: "fa-solid fa-megaphone", size: "sm", colorToken: "default-inverted" }),
194
+ /* @__PURE__ */ o("div", { className: m((u || d) && r["part-research-interactive"]), children: [
195
+ u || d ? /* @__PURE__ */ e(n, { href: u || "#", unstyled: !0, onClick: O, children: T }) : /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: T }),
157
196
  /* @__PURE__ */ e("br", {}),
158
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", colorToken: "footer", children: "Ask Our Experts to Source a Part" })
197
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", colorToken: "footer", children: z })
159
198
  ] })
160
199
  ] })
161
200
  ] })
162
201
  ] })
163
202
  ] }),
164
- /* @__PURE__ */ e(m, { gridWrapperClassName: h(c, t["bottom-grid"]), children: /* @__PURE__ */ e(s, { span: [4, 6, 12], className: t.gridColumn, children: /* @__PURE__ */ r("div", { className: t.columnContent, children: [
165
- /* @__PURE__ */ e(i, { href: "#", unstyled: !0, children: "Terms" }),
203
+ /* @__PURE__ */ e(N, { gridWrapperClassName: m(g, r["bottom-grid"]), children: /* @__PURE__ */ e(h, { span: [4, 6, 12], className: r.gridColumn, children: /* @__PURE__ */ o("div", { className: r.columnContent, children: [
204
+ /* @__PURE__ */ e(n, { href: s.terms.href, unstyled: s.terms.unstyled, target: s.terms.target, rel: s.terms.rel, children: s.terms.label }),
166
205
  "  ",
167
- /* @__PURE__ */ e(o, { size: "xs", weight: "extra-light", variant: "body", colorToken: "footer", children: "|" }),
206
+ /* @__PURE__ */ e(l, { size: "xs", weight: "extra-light", variant: "body", colorToken: "footer", children: "|" }),
168
207
  "  ",
169
- /* @__PURE__ */ e(i, { href: "#", children: "Privacy Policy" }),
208
+ /* @__PURE__ */ e(n, { href: s.privacyPolicy.href, unstyled: s.privacyPolicy.unstyled, target: s.privacyPolicy.target, rel: s.privacyPolicy.rel, children: s.privacyPolicy.label }),
170
209
  /* @__PURE__ */ e("br", {}),
171
- /* @__PURE__ */ e(o, { size: "xxs", weight: "extra-light", variant: "body", colorToken: "footer", className: t["copyright-text"], children: "©Copyright 1972-2025 Case Parts Company | All Rights Reserved." })
210
+ /* @__PURE__ */ e(l, { size: "xxs", weight: "extra-light", variant: "body", colorToken: "footer", className: r["copyright-text"], children: `©${P}` })
172
211
  ] }) }) })
173
212
  ] });
174
213
  }
175
214
  export {
176
- M as Footer
215
+ se as Footer
177
216
  };
@@ -1,19 +1,5 @@
1
1
  import { Meta, StoryObj } from '@storybook/react';
2
2
  import { Footer as FooterComponent } from './Footer';
3
- /**
4
- * Footer organism.
5
- *
6
- * The [`Footer`](./Footer.tsx) composes two stacked horizontal regions.
7
- *
8
- * Current props (inferred from implementation usage):
9
- * - `homeRoute: string` – URL for the brand / home navigation link (if rendered).
10
- * - `isOnline: boolean` – Flag that can toggle an online / offline indicator (e.g., support status).
11
- *
12
- * Extension ideas:
13
- * - Supply structured link groups (support, company, legal).
14
- * - Accept `children` or dedicated slots (`topContent`, `bottomContent`).
15
- * - Add theming via design tokens instead of hard‑coded colors.
16
- */
17
3
  declare const meta: Meta<typeof FooterComponent>;
18
4
  export default meta;
19
5
  type Story = StoryObj<typeof FooterComponent>;
@@ -34,3 +20,7 @@ export declare const Offline: Story;
34
20
  * Custom home route.
35
21
  */
36
22
  export declare const CustomHomeRoute: Story;
23
+ /**
24
+ * Fully customized content for branch/contact and legal links.
25
+ */
26
+ export declare const CustomContent: Story;
@@ -1,32 +1,98 @@
1
- import { Footer as e } from "./Footer.js";
2
- const t = {
1
+ import { Footer as a } from "./Footer.js";
2
+ const e = {
3
+ customerService: { label: "Customer Service", href: "mailto:customerservice@caseparts.com" },
4
+ accounting: { label: "Accounting Dept", href: "mailto:accounting@caseparts.com" },
5
+ about: { label: "About Us", href: "/about", unstyled: !0 },
6
+ contact: { label: "Contact Us", href: "/contact", unstyled: !0 },
7
+ faq: { label: "FAQs", href: "/faq", unstyled: !0 },
8
+ orderStatus: { label: "Order Status", href: "/account", unstyled: !0 },
9
+ paymentMethods: { label: "Payment Methods", href: "/payment-methods", unstyled: !0 },
10
+ returnsPolicy: { label: "Returns Policy", href: "/returns", unstyled: !0 },
11
+ shippingAndDelivery: { label: "Shipping & Delivery", href: "/shipping", unstyled: !0 },
12
+ salesTaxCertificates: { label: "Sales Tax Certificates", href: "/sales-tax-certificates", unstyled: !0 }
13
+ }, t = {
14
+ title: { label: "Custom Parts", href: "/custom", unstyled: !0 },
15
+ cuttingBoards: { label: "Cutting Boards", href: "/custom", unstyled: !0 },
16
+ gaskets: { label: "Gaskets", href: "/custom", unstyled: !0 },
17
+ heatersAndPans: { label: "Heaters & Pans", href: "/custom", unstyled: !0 },
18
+ walkInDoors: { label: "Walk-in Doors", href: "/custom", unstyled: !0 },
19
+ warmerWires: { label: "Warmer Wires", href: "/custom", unstyled: !0 },
20
+ wireShelving: { label: "Wire Shelving", href: "/custom", unstyled: !0 }
21
+ }, s = [
22
+ {
23
+ office: "Los Angeles",
24
+ phone: "(323) 729-6000",
25
+ hours: "Monday - Friday 7:30AM - 5:00PM PT",
26
+ tooltipOffice: "Case Parts - Los Angeles",
27
+ addressLine1: "877 Monterey Pass Rd",
28
+ addressLine2: "Monterey Park, CA 91754",
29
+ mapUrl: "https://goo.gl/maps/PzF4o1beyyTanKVk6"
30
+ },
31
+ {
32
+ office: "St. Louis",
33
+ phone: "(314) 739-9694",
34
+ hours: "Monday - Friday 8:00AM - 4:30PM CT",
35
+ tooltipOffice: "Case Parts - St. Louis",
36
+ addressLine1: "3218 Rider Trail South",
37
+ addressLine2: "Earth City, MO 63045",
38
+ mapUrl: "https://goo.gl/maps/JgBTWQ8LyaXR2UrS9"
39
+ },
40
+ {
41
+ office: "Seattle",
42
+ phone: "(253) 854-4900",
43
+ hours: "Monday - Friday 7:30AM - 5:00PM PT",
44
+ tooltipOffice: "Case Parts - Seattle",
45
+ addressLine1: "25315 74th Ave South Suite 101",
46
+ addressLine2: "Kent, WA 98032",
47
+ mapUrl: "https://goo.gl/maps/BhvC7NY94vXQG8uW8"
48
+ }
49
+ ], r = {
50
+ terms: { label: "Terms", href: "/terms", unstyled: !0 },
51
+ privacyPolicy: { label: "Privacy Policy", href: "/privacy", unstyled: !0 }
52
+ }, n = {
3
53
  title: "Case Parts/Organisms/Footer",
4
- component: e,
54
+ component: a,
5
55
  args: {
6
56
  homeRoute: "/",
7
- isOnline: !0
57
+ isOnline: !0,
58
+ customerCareLinks: e,
59
+ customPartsLinks: t,
60
+ branches: s,
61
+ legalLinks: r
8
62
  },
9
63
  argTypes: {
10
64
  homeRoute: {
11
65
  control: "text",
12
- description: "Destination URL for the primary / home link region."
66
+ description: "Destination URL for the logo link."
13
67
  },
14
68
  isOnline: {
15
69
  control: "boolean",
16
- description: "Toggles online vs offline visual indicator (badge / text)."
70
+ description: "Toggles live chat status text and indicator color."
71
+ },
72
+ customerCareLinks: { control: "object" },
73
+ customPartsLinks: { control: "object" },
74
+ branches: { control: "object" },
75
+ legalLinks: { control: "object" },
76
+ onLiveChatClick: {
77
+ control: !1,
78
+ description: "Click handler for the live chat section (for opening chat widgets/modals)."
79
+ },
80
+ onPartResearchClick: {
81
+ control: !1,
82
+ description: "Click handler for the part research link (useful for opening modals like ResearchChatModal)."
17
83
  }
18
84
  },
19
85
  parameters: {
20
86
  docs: {
21
87
  description: {
22
- component: "Structural footer wrapper with two horizontal bands. This story demonstrates prop variations. Enhance the underlying implementation to inject navigation groups or dynamic content as needed."
88
+ component: "Configurable footer wrapper that supports centralized content injection for links and branch data."
23
89
  }
24
90
  }
25
91
  },
26
92
  tags: ["autodocs"]
27
- }, n = {
93
+ }, l = {
28
94
  name: "Playground"
29
- }, r = {
95
+ }, i = {
30
96
  args: {
31
97
  isOnline: !0,
32
98
  homeRoute: "/"
@@ -38,7 +104,7 @@ const t = {
38
104
  }
39
105
  }
40
106
  }
41
- }, s = {
107
+ }, c = {
42
108
  args: {
43
109
  isOnline: !1,
44
110
  homeRoute: "/"
@@ -50,7 +116,7 @@ const t = {
50
116
  }
51
117
  }
52
118
  }
53
- }, a = {
119
+ }, u = {
54
120
  args: {
55
121
  isOnline: !0,
56
122
  homeRoute: "/dashboard"
@@ -62,11 +128,37 @@ const t = {
62
128
  }
63
129
  }
64
130
  }
131
+ }, h = {
132
+ args: {
133
+ isOnline: !0,
134
+ homeRoute: "/",
135
+ companyHistoryText: "CaseParts helps foodservice teams keep equipment running with fast support and dependable replacement parts.",
136
+ customerCareTitle: "Support",
137
+ customPartsLinks: t,
138
+ customerCareLinks: e,
139
+ branches: s,
140
+ helpTitle: "Need Help Fast?",
141
+ liveChatLabel: "Live Chat",
142
+ liveChatOnlineText: "Agents Available",
143
+ liveChatOfflineText: "Offline - leave a message",
144
+ onLiveChatClick: () => {
145
+ console.log("Live chat clicked");
146
+ },
147
+ partResearchLabel: "Part Research",
148
+ partResearchDescription: "Submit a request and our team will locate your part.",
149
+ partResearchHref: "/research",
150
+ onPartResearchClick: () => {
151
+ console.log("Part research clicked");
152
+ },
153
+ legalLinks: r,
154
+ copyrightText: "Copyright 1972-2026 Case Parts Company | All Rights Reserved."
155
+ }
65
156
  };
66
157
  export {
67
- a as CustomHomeRoute,
68
- s as Offline,
69
- r as Online,
70
- n as Playground,
71
- t as default
158
+ h as CustomContent,
159
+ u as CustomHomeRoute,
160
+ c as Offline,
161
+ i as Online,
162
+ l as Playground,
163
+ n as default
72
164
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@caseparts-org/caseblocks",
3
3
  "private": false,
4
- "version": "0.0.180",
4
+ "version": "0.0.182",
5
5
  "type": "module",
6
6
  "module": "dist/main.js",
7
7
  "types": "dist/main.d.ts",