jcicl 1.0.78 → 1.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.
@@ -1,40 +1,41 @@
1
- import { jsx as r, jsxs as g, Fragment as O } from "react/jsx-runtime";
2
- import { useState as b, useMemo as A } from "react";
3
- import { n as y } from "../.chunks/emotion-styled.browser.esm.js";
4
- import { c as C } from "../.chunks/emotion-react.browser.esm.js";
5
- import o, { defaultTheme as T } from "../theme.js";
6
- import { getHueFromHex as u, updateTheme as p } from "../themeUtils.js";
7
- import { ThemeContext as L } from "../ThemeContext.js";
8
- import j from "../AppContainer/AppContainer.js";
9
- import D from "../WithLoading/WithLoading.js";
10
- import { TopFade as W, BottomFade as B } from "../Overlays/Overlays.js";
11
- import { SiteBanner as H } from "../SiteBanner/SiteBanner.js";
12
- import { P as G } from "../.chunks/AppHeader.js";
13
- import { u as S } from "../.chunks/useMediaQuery.js";
14
- const Q = ["loading", "hasPagination", "loadingColor", "hasFade", "isTablet"], N = y("div", { shouldForwardProp: (t) => !Q.includes(t) })(({ loading: t, hasPagination: i, hasFade: m, loadingColor: l = o.colors.green }) => ({
15
- ...C`
1
+ import { jsx as i, jsxs as u, Fragment as L } from "react/jsx-runtime";
2
+ import { useState as S, useMemo as y } from "react";
3
+ import { n as T } from "../.chunks/emotion-styled.browser.esm.js";
4
+ import { c as k } from "../.chunks/emotion-react.browser.esm.js";
5
+ import o, { defaultTheme as v } from "../theme.js";
6
+ import { getHueFromHex as p, updateTheme as f } from "../themeUtils.js";
7
+ import { camelToKebab as D } from "../camelToKebab.js";
8
+ import { ThemeContext as W } from "../ThemeContext.js";
9
+ import B from "../AppContainer/AppContainer.js";
10
+ import H from "../WithLoading/WithLoading.js";
11
+ import { TopFade as G, BottomFade as N } from "../Overlays/Overlays.js";
12
+ import { SiteBanner as Q } from "../SiteBanner/SiteBanner.js";
13
+ import { P as K } from "../.chunks/AppHeader.js";
14
+ import { u as C } from "../.chunks/useMediaQuery.js";
15
+ const V = ["loading", "hasPagination", "loadingColor", "hasFade", "isTablet"], q = T("div", { shouldForwardProp: (r) => !V.includes(r) })(({ loading: r, hasPagination: m, hasFade: h, loadingColor: n = o.colors.green }) => ({
16
+ ...k`
16
17
  color: ${o.colors.midnight};
17
- height: ${t ? "100%" : "auto"};
18
+ height: ${r ? "100%" : "auto"};
18
19
  padding: 19px;
19
20
  padding-top: 36px;
20
21
  display: flex;
21
22
  flex-direction: column;
22
- justify-content: ${t ? "center" : "start"};
23
+ justify-content: ${r ? "center" : "start"};
23
24
  align-items: center;
24
25
  width: 100%;
25
26
  min-height: 100%;
26
27
  box-sizing: border-box;
27
- padding-bottom: ${m ? i ? "114px" : "72px" : "19px"};
28
+ padding-bottom: ${h ? m ? "114px" : "72px" : "19px"};
28
29
  > * div {
29
30
  box-sizing: border-box;
30
31
  }
31
32
 
32
33
  .MuiCircularProgress-svg {
33
- color: ${l};
34
+ color: ${n};
34
35
  }
35
36
  `
36
- })), q = y("div")(() => ({
37
- ...C`
37
+ })), E = T("div")(() => ({
38
+ ...k`
38
39
  border-radius: 8px;
39
40
  padding: 0;
40
41
  display: flex;
@@ -47,48 +48,48 @@ const Q = ["loading", "hasPagination", "loadingColor", "hasFade", "isTablet"], N
47
48
  box-sizing: border-box;
48
49
  `
49
50
  }));
50
- function E(t, i) {
51
- return t == "green" ? T : p(i);
51
+ function J(r, m) {
52
+ return r == "green" ? v : f(m);
52
53
  }
53
- const ie = ({
54
- children: t,
55
- loading: i = !1,
56
- hasPagination: m = !1,
57
- fade: l = !0,
58
- siteBannerText: n,
54
+ const ne = ({
55
+ children: r,
56
+ loading: m = !1,
57
+ hasPagination: h = !1,
58
+ fade: n = !0,
59
+ siteBannerText: l,
59
60
  siteBannerBackgroundColor: w,
60
- siteBannerTextColor: k,
61
- userProfileMenuItems: I,
61
+ siteBannerTextColor: I,
62
+ userProfileMenuItems: M,
62
63
  ...s
63
64
  }) => {
64
- const M = localStorage.getItem("theme") || "green", f = localStorage.getItem("hue") || u(o.themeOptions.green).toString(), x = S(`(max-width: ${o.screenSizes.mobile})`), P = S(`(max-width: ${o.screenSizes.tablet})`), [e, d] = b(
65
- () => E(M, parseFloat(f))
66
- ), [v, c] = b({ h: Math.max(parseFloat(f), 0) * 360, s: 0, v: 68, a: 1 }), F = [
65
+ const P = localStorage.getItem("theme") || "green", b = localStorage.getItem("hue") || p(o.themeOptions.green).toString(), x = C(`(max-width: ${o.screenSizes.mobile})`), F = C(`(max-width: ${o.screenSizes.tablet})`), [e, d] = S(
66
+ () => J(P, parseFloat(b))
67
+ ), [$, g] = S({ h: Math.max(parseFloat(b), 0) * 360, s: 0, v: 68, a: 1 }), O = [
67
68
  {
68
69
  label: "Default Theme",
69
70
  onClick: () => {
70
- localStorage.setItem("theme", "green"), localStorage.setItem("hue", u(o.themeOptions.green).toString()), c((h) => ({ ...h, h: u(o.themeOptions.green) * 360 })), d(T);
71
+ localStorage.setItem("theme", "green"), localStorage.setItem("hue", p(o.themeOptions.green).toString()), g((a) => ({ ...a, h: p(o.themeOptions.green) * 360 })), d(v);
71
72
  }
72
73
  },
73
74
  {
74
75
  label: "Grayscale",
75
76
  onClick: () => {
76
- localStorage.setItem("theme", "grayscale"), localStorage.setItem("hue", "-1"), c((h) => ({ ...h, h: 0 }));
77
- const a = p(-1);
78
- d(a);
77
+ localStorage.setItem("theme", "grayscale"), localStorage.setItem("hue", "-1"), g((a) => ({ ...a, h: 0 }));
78
+ const t = f(-1);
79
+ d(t);
79
80
  }
80
81
  },
81
82
  {
82
83
  label: "Hue",
83
- hue: v.h,
84
- onChange: (a) => {
85
- localStorage.setItem("theme", "custom"), localStorage.setItem("hue", (a.h / 360).toString()), c((z) => ({ ...z, h: a.h }));
86
- const h = p(a.h / 360);
87
- d(h);
84
+ hue: $.h,
85
+ onChange: (t) => {
86
+ localStorage.setItem("theme", "custom"), localStorage.setItem("hue", (t.h / 360).toString()), g((c) => ({ ...c, h: t.h }));
87
+ const a = f(t.h / 360);
88
+ d(a);
88
89
  }
89
90
  },
90
- ...I || []
91
- ], $ = A(
91
+ ...M || []
92
+ ], j = y(
92
93
  () => ({
93
94
  backgroundPrimary: e.themeLight,
94
95
  backgroundSecondary: e.themeLightA,
@@ -102,7 +103,7 @@ const ie = ({
102
103
  scrollColor: e.themeShadowA,
103
104
  loadingColor: e.themeColor,
104
105
  iconColors: {
105
- icon: /* @__PURE__ */ r(G, {}),
106
+ icon: /* @__PURE__ */ i(K, {}),
106
107
  iconColor: e.themeDark ?? o.colors.darkGreen,
107
108
  backgroundColor: e.themeMediumA ?? o.colors.mint
108
109
  },
@@ -111,47 +112,55 @@ const ie = ({
111
112
  highlightTertiary: e.highlightTertiary
112
113
  }),
113
114
  [e]
114
- );
115
- return /* @__PURE__ */ g(L.Provider, { value: e, children: [
116
- n && /* @__PURE__ */ r(
117
- H,
115
+ ), z = y(() => {
116
+ const t = {};
117
+ for (const [a, c] of Object.entries(e)) {
118
+ if (typeof c != "string") continue;
119
+ const A = D(a).replace(/^theme-?/, "");
120
+ t[`--jc-theme-${A}`] = c;
121
+ }
122
+ return t;
123
+ }, [e]);
124
+ return /* @__PURE__ */ i(W.Provider, { value: e, children: /* @__PURE__ */ u("div", { className: "contents", style: z, children: [
125
+ l && /* @__PURE__ */ i(
126
+ Q,
118
127
  {
119
- text: n,
128
+ text: l,
120
129
  backgroundColor: w,
121
- textColor: k
130
+ textColor: I
122
131
  }
123
132
  ),
124
- /* @__PURE__ */ r(
125
- j,
133
+ /* @__PURE__ */ i(
134
+ B,
126
135
  {
127
136
  ...s,
128
- userProfileMenuItems: F,
129
- themeColors: $ ?? (s == null ? void 0 : s.themeColors),
130
- hasSiteBanner: !!n,
131
- children: /* @__PURE__ */ r(
132
- N,
137
+ userProfileMenuItems: O,
138
+ themeColors: j ?? (s == null ? void 0 : s.themeColors),
139
+ hasSiteBanner: !!l,
140
+ children: /* @__PURE__ */ i(
141
+ q,
133
142
  {
134
143
  className: "jcPageWrapper",
135
- loading: i,
144
+ loading: m,
136
145
  loadingColor: e.themeColor,
137
- hasPagination: m,
138
- hasFade: l,
139
- isTablet: P,
140
- children: /* @__PURE__ */ g(D, { loading: i, size: x ? 114 : 201, children: [
141
- l && /* @__PURE__ */ g(O, { children: [
142
- /* @__PURE__ */ r(W, { color: e.themeLight, hasSiteBanner: !!n }),
143
- /* @__PURE__ */ r(B, { hasPagination: m, isMobile: x, color: e.themeLight })
146
+ hasPagination: h,
147
+ hasFade: n,
148
+ isTablet: F,
149
+ children: /* @__PURE__ */ u(H, { loading: m, size: x ? 114 : 201, children: [
150
+ n && /* @__PURE__ */ u(L, { children: [
151
+ /* @__PURE__ */ i(G, { color: e.themeLight, hasSiteBanner: !!l }),
152
+ /* @__PURE__ */ i(N, { hasPagination: h, isMobile: x, color: e.themeLight })
144
153
  ] }),
145
- /* @__PURE__ */ r(q, { children: t })
154
+ /* @__PURE__ */ i(E, { children: r })
146
155
  ] })
147
156
  }
148
157
  )
149
158
  }
150
159
  )
151
- ] });
160
+ ] }) });
152
161
  };
153
162
  export {
154
- q as MainContentContainer,
155
- N as PageWrapper,
156
- ie as default
163
+ E as MainContentContainer,
164
+ q as PageWrapper,
165
+ ne as default
157
166
  };
@@ -3,6 +3,18 @@ import { PropsWithChildren } from 'react';
3
3
  interface WithCustomTheme {
4
4
  customTheme: CustomThemeProps;
5
5
  }
6
+ interface DetailItemContainerProps {
7
+ /** Override the default grey hover shadow with a custom value (e.g. `customTheme.themeShadowC` for a theme-primary glow). */
8
+ hoverShadow?: string;
9
+ /** Disable the hover slide + shadow entirely. Useful for static header cards. */
10
+ disableHover?: boolean;
11
+ className?: string;
12
+ role?: string;
13
+ tabIndex?: number;
14
+ onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
15
+ onKeyDown?: (e: React.KeyboardEvent<HTMLDivElement>) => void;
16
+ style?: React.CSSProperties;
17
+ }
6
18
  export declare const DetailHeader: import('@emotion/styled').StyledComponent<{
7
19
  theme?: import('@emotion/react').Theme;
8
20
  as?: React.ElementType;
@@ -15,11 +27,18 @@ export declare const DetailItemHeader: import('@emotion/styled').StyledComponent
15
27
  theme?: import('@emotion/react').Theme;
16
28
  as?: React.ElementType;
17
29
  }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, {}>;
18
- export declare const DetailItemContainer: React.FC<PropsWithChildren>;
30
+ export declare const DetailItemContainer: React.FC<PropsWithChildren<DetailItemContainerProps>>;
31
+ /**
32
+ * @deprecated Prefer the `DetailItemContainer` wrapper. This Emotion-based styled
33
+ * component is kept for backward compatibility with consumers that pass a `customTheme`
34
+ * directly. New code should use `<DetailItemContainer>`.
35
+ */
19
36
  export declare const DetailItemContainerStyles: import('@emotion/styled').StyledComponent<{
20
37
  theme?: import('@emotion/react').Theme;
21
38
  as?: React.ElementType;
22
- } & WithCustomTheme, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
39
+ } & WithCustomTheme & {
40
+ hoverShadow?: string;
41
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
23
42
  export interface DetailiconProps {
24
43
  iconColor?: string;
25
44
  backgroundColor?: string;
@@ -1,10 +1,10 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { n as i } from "../.chunks/emotion-styled.browser.esm.js";
3
- import { c as r } from "../.chunks/emotion-react.browser.esm.js";
4
- import t from "../theme.js";
5
- import { useThemeColors as l } from "../ThemeContext.js";
6
- const f = i("div")(() => ({
7
- ...r`
1
+ import { jsxs as m, jsx as l } from "react/jsx-runtime";
2
+ import { n as r } from "../.chunks/emotion-styled.browser.esm.js";
3
+ import { c as n } from "../.chunks/emotion-react.browser.esm.js";
4
+ import o from "../theme.js";
5
+ import { useThemeColors as d } from "../ThemeContext.js";
6
+ const k = r("div")(() => ({
7
+ ...n`
8
8
  display: flex;
9
9
  flex-direction: column;
10
10
  padding: 27px 0;
@@ -14,7 +14,7 @@ const f = i("div")(() => ({
14
14
  font-size: 36px;
15
15
  }
16
16
 
17
- border-bottom: 1px solid ${t.colors.gray2};
17
+ border-bottom: 1px solid ${o.colors.gray2};
18
18
 
19
19
  button {
20
20
  font-size: 1rem;
@@ -26,9 +26,9 @@ const f = i("div")(() => ({
26
26
  }
27
27
  }
28
28
  `
29
- })), u = i("p")(() => ({
30
- ...r`
31
- color: ${t.colors.gray};
29
+ })), I = r("p")(() => ({
30
+ ...n`
31
+ color: ${o.colors.gray};
32
32
  line-height: 1;
33
33
  display: flex;
34
34
  align-items: flex-end;
@@ -39,8 +39,8 @@ const f = i("div")(() => ({
39
39
  width: 18px;
40
40
  }
41
41
  `
42
- })), b = i("h2")(() => ({
43
- ...r`
42
+ })), D = r("h2")(() => ({
43
+ ...n`
44
44
  font-size: 27px;
45
45
  font-weight: 600;
46
46
  text-align: left;
@@ -53,18 +53,54 @@ const f = i("div")(() => ({
53
53
  margin-right: 9px;
54
54
  }
55
55
  `
56
- })), y = ({ children: e }) => {
57
- const o = l();
58
- return /* @__PURE__ */ a(p, { customTheme: o, children: e });
59
- }, p = i("div", {
60
- shouldForwardProp: (e) => !["customTheme"].includes(e)
61
- })(({ customTheme: e }) => ({
62
- ...r`
63
- font-family: ${t.fonts.roboto};
56
+ })), f = "relative overflow-hidden flex flex-col gap-[13px] bg-jc-very-light-gray rounded-md p-[21px] mb-[15px] transition-all duration-[313ms] ease-out", u = "hover:translate-x-[5px] hover:shadow-[var(--detail-hover-shadow)]", A = ({
57
+ children: e,
58
+ hoverShadow: t,
59
+ disableHover: i = !1,
60
+ className: a = "",
61
+ style: p,
62
+ ...c
63
+ }) => {
64
+ const s = d(), g = `linear-gradient(90deg, ${o.colors.gold}, ${s.themeIconBackgroundA})`, x = `linear-gradient(180deg, ${o.colors.gold}, ${s.themeIconBackgroundA})`, h = {
65
+ ...p ?? {},
66
+ "--detail-hover-shadow": t ?? "0 5px 15px rgba(0, 0, 0, 0.1)"
67
+ };
68
+ return /* @__PURE__ */ m(
69
+ "div",
70
+ {
71
+ ...c,
72
+ className: [f, i ? "" : u, a].join(" "),
73
+ style: h,
74
+ children: [
75
+ /* @__PURE__ */ l(
76
+ "div",
77
+ {
78
+ "aria-hidden": !0,
79
+ className: "absolute top-0 left-0 w-full h-[3px] pointer-events-none",
80
+ style: { background: g }
81
+ }
82
+ ),
83
+ /* @__PURE__ */ l(
84
+ "div",
85
+ {
86
+ "aria-hidden": !0,
87
+ className: "absolute top-0 left-0 w-[3px] h-full pointer-events-none",
88
+ style: { background: x }
89
+ }
90
+ ),
91
+ e
92
+ ]
93
+ }
94
+ );
95
+ }, j = r("div", {
96
+ shouldForwardProp: (e) => !["customTheme", "hoverShadow"].includes(e)
97
+ })(({ customTheme: e, hoverShadow: t }) => ({
98
+ ...n`
99
+ font-family: ${o.fonts.roboto};
64
100
  display: flex;
65
101
  flex-direction: column;
66
102
  gap: 13px;
67
- background: ${t.colors.veryLightGray};
103
+ background: ${o.colors.veryLightGray};
68
104
  border-radius: 6px;
69
105
  padding: 21px;
70
106
  margin-bottom: 15px;
@@ -73,7 +109,7 @@ const f = i("div")(() => ({
73
109
  overflow: hidden;
74
110
 
75
111
  p {
76
- color: ${t.colors.gray};
112
+ color: ${o.colors.gray};
77
113
  font-size: 18px;
78
114
  line-height: 1;
79
115
  display: flex;
@@ -87,17 +123,17 @@ const f = i("div")(() => ({
87
123
 
88
124
  &:hover {
89
125
  transform: translateX(5px);
90
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
126
+ box-shadow: ${t ?? "0 5px 15px rgba(0, 0, 0, 0.1)"};
91
127
  }
92
128
 
93
129
  &::before {
94
130
  content: '';
95
131
  position: absolute;
96
- top: 1px;
132
+ top: 0;
97
133
  left: 0;
98
134
  width: 100%;
99
- height: 1px;
100
- background: linear-gradient(90deg, ${t.colors.gold}, ${e.themeIconBackgroundA});
135
+ height: 3px;
136
+ background: linear-gradient(90deg, ${o.colors.gold}, ${e.themeIconBackgroundA});
101
137
  }
102
138
 
103
139
  &::after {
@@ -107,22 +143,22 @@ const f = i("div")(() => ({
107
143
  left: 0;
108
144
  width: 3px;
109
145
  height: 100%;
110
- background: linear-gradient(180deg, ${t.colors.gold}, ${e.themeIconBackgroundA});
146
+ background: linear-gradient(180deg, ${o.colors.gold}, ${e.themeIconBackgroundA});
111
147
  }
112
148
  `
113
- })), w = ({
149
+ })), B = ({
114
150
  backgroundColor: e,
115
- iconColor: o,
116
- children: n
151
+ iconColor: t,
152
+ children: i
117
153
  }) => {
118
- const s = l();
119
- return /* @__PURE__ */ a(d, { backgroundColor: e, iconColor: o, customTheme: s, children: n });
120
- }, d = i("div")(
121
- ({ iconColor: e = t.colors.white, backgroundColor: o, customTheme: n }) => ({
122
- ...r`
154
+ const a = d();
155
+ return /* @__PURE__ */ l(b, { backgroundColor: e, iconColor: t, customTheme: a, children: i });
156
+ }, b = r("div")(
157
+ ({ iconColor: e = o.colors.white, backgroundColor: t, customTheme: i }) => ({
158
+ ...n`
123
159
  width: 72px;
124
160
  height: 72px;
125
- background-color: ${o || n.themeDark};
161
+ background-color: ${t || i.themeDark};
126
162
  color: ${e};
127
163
  border-radius: 36px;
128
164
  display: flex;
@@ -133,11 +169,11 @@ const f = i("div")(() => ({
133
169
  })
134
170
  );
135
171
  export {
136
- f as DetailHeader,
137
- w as DetailHeaderIcon,
138
- d as DetailHeaderIconStyles,
139
- y as DetailItemContainer,
140
- p as DetailItemContainerStyles,
141
- b as DetailItemHeader,
142
- u as DetailSubtext
172
+ k as DetailHeader,
173
+ B as DetailHeaderIcon,
174
+ b as DetailHeaderIconStyles,
175
+ A as DetailItemContainer,
176
+ j as DetailItemContainerStyles,
177
+ D as DetailItemHeader,
178
+ I as DetailSubtext
143
179
  };
@@ -0,0 +1,19 @@
1
+ import { default as React, PropsWithChildren } from 'react';
2
+ export interface ExpandableSectionProps {
3
+ /** When true, the section animates from 0fr to 1fr (collapsed to expanded). */
4
+ expanded: boolean;
5
+ /** Optional top margin when expanded. Defaults to '0.25rem'. */
6
+ expandedMarginTop?: string;
7
+ /** Duration of the expand/collapse transition. Defaults to '300ms'. */
8
+ duration?: string;
9
+ }
10
+ /**
11
+ * Smooth height-animated expand/collapse using the grid-template-rows 0fr ↔ 1fr
12
+ * trick. Renders children inside an overflow-hidden wrapper so they're clipped
13
+ * during collapse without an explicit max-height calculation.
14
+ *
15
+ * Used by ClientMatchCard, IntakeMatchHeader, and similar cards that toggle
16
+ * expanded body content via a chevron.
17
+ */
18
+ export declare const ExpandableSection: React.FC<PropsWithChildren<ExpandableSectionProps>>;
19
+ export default ExpandableSection;
@@ -0,0 +1,23 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ const r = ({
3
+ expanded: e,
4
+ expandedMarginTop: t = "0.25rem",
5
+ duration: o = "300ms",
6
+ children: a
7
+ }) => /* @__PURE__ */ s(
8
+ "div",
9
+ {
10
+ className: "grid",
11
+ style: {
12
+ gridTemplateRows: e ? "1fr" : "0fr",
13
+ opacity: e ? 1 : 0,
14
+ marginTop: e ? t : 0,
15
+ transition: `grid-template-rows ${o} ease-out, opacity ${o} ease-out, margin-top ${o} ease-out`
16
+ },
17
+ children: /* @__PURE__ */ s("div", { className: "overflow-hidden", children: a })
18
+ }
19
+ );
20
+ export {
21
+ r as ExpandableSection,
22
+ r as default
23
+ };
@@ -0,0 +1,3 @@
1
+ export { default } from './ExpandableSection';
2
+ export { ExpandableSection } from './ExpandableSection';
3
+ export type { ExpandableSectionProps } from './ExpandableSection';
@@ -0,0 +1,5 @@
1
+ import { ExpandableSection as n, ExpandableSection as o } from "./ExpandableSection.js";
2
+ export {
3
+ n as ExpandableSection,
4
+ o as default
5
+ };
@@ -22,15 +22,21 @@ import "../InfoCard/InfoCard.js";
22
22
  import "../LabeledInput/LabeledInput.js";
23
23
  import "../List/List.js";
24
24
  import "../LogoLoop/LogoLoop.js";
25
+ import "../Pagination/Pagination.js";
25
26
  import "../SiteBanner/SiteBanner.js";
26
27
  import "../WithLabel/WithLabel.js";
27
28
  import "../WithLoading/WithLoading.js";
28
29
  import "../RecordCard/RecordCard.js";
30
+ import "../theme.js";
31
+ import "../ThemeContext.js";
32
+ import "../DetailPageComponents/DetailPageComponents.js";
33
+ import "../Toast/Toast.js";
29
34
  import "../.chunks/AppHeader.js";
30
35
  import "../EditableInfoCard/EditableInfoCard.js";
31
36
  import "../Nav/Nav.js";
32
37
  import "../AppContainer/AppContainer.js";
33
- const eo = ({
38
+ import "../DefaultTemplate/DefaultTemplate.js";
39
+ const Fo = ({
34
40
  title: a,
35
41
  fields: h,
36
42
  columns: f,
@@ -39,20 +45,20 @@ const eo = ({
39
45
  noLabel: x = !1,
40
46
  checkboxContainer: F = !1,
41
47
  compact: v = !1,
42
- formDefaults: n,
48
+ formDefaults: l,
43
49
  onChange: d
44
50
  }) => {
45
51
  const D = G();
46
52
  return /* @__PURE__ */ b(T, { children: [
47
53
  a && /* @__PURE__ */ m(g, { children: a }),
48
- !F && /* @__PURE__ */ m(j, { columns: f ?? (D ? 2 : 3), columnsOverride: w, gap: C, children: h.map(({ key: r, label: p, type: o, limit: c, options: e, defaultValue: t, ...u }) => {
49
- const i = n[r] !== void 0 ? n[r] : t !== void 0 ? t : o === "multiDropdown" ? [] : o === "checkbox" ? !1 : "";
54
+ !F && /* @__PURE__ */ m(j, { columns: f ?? (D ? 2 : 3), columnsOverride: w, gap: C, children: h.map(({ key: r, label: n, type: o, limit: c, options: e, defaultValue: t, ...u }) => {
55
+ const i = l[r] !== void 0 ? l[r] : t !== void 0 ? t : o === "multiDropdown" ? [] : o === "checkbox" ? !1 : "";
50
56
  return v ? /* @__PURE__ */ b(V, { column: !0, gap: "21px", children: [
51
- /* @__PURE__ */ m(I, { children: p }),
57
+ /* @__PURE__ */ m(I, { children: n }),
52
58
  /* @__PURE__ */ m(
53
59
  s,
54
60
  {
55
- onChange: (l) => d(r, l, o),
61
+ onChange: (p) => d(r, p, o),
56
62
  type: o,
57
63
  limit: c,
58
64
  ...o === "checkbox" ? { checked: !!i } : { value: i },
@@ -65,8 +71,8 @@ const eo = ({
65
71
  ] }, r) : /* @__PURE__ */ m(
66
72
  s,
67
73
  {
68
- onChange: (l) => d(r, l, o),
69
- label: p,
74
+ onChange: (p) => d(r, p, o),
75
+ label: n,
70
76
  type: o,
71
77
  limit: c,
72
78
  ...o === "checkbox" ? { checked: !!i } : { value: i },
@@ -78,13 +84,13 @@ const eo = ({
78
84
  r
79
85
  );
80
86
  }) }),
81
- F && /* @__PURE__ */ m(L, { children: h.map(({ key: r, label: p, type: o, limit: c, options: e, defaultValue: t, ...u }) => {
82
- const i = n[r] !== void 0 ? n[r] : t !== void 0 ? t : o === "multiDropdown" ? [] : o === "checkbox" ? !1 : "";
87
+ F && /* @__PURE__ */ m(L, { children: h.map(({ key: r, label: n, type: o, limit: c, options: e, defaultValue: t, ...u }) => {
88
+ const i = l[r] !== void 0 ? l[r] : t !== void 0 ? t : o === "multiDropdown" ? [] : o === "checkbox" ? !1 : "";
83
89
  return /* @__PURE__ */ m(
84
90
  s,
85
91
  {
86
- onChange: (l) => d(r, l, o),
87
- label: p,
92
+ onChange: (p) => d(r, p, o),
93
+ label: n,
88
94
  type: o,
89
95
  limit: c,
90
96
  ...o === "checkbox" ? { checked: !!i } : { defaultValue: i },
@@ -99,5 +105,5 @@ const eo = ({
99
105
  ] });
100
106
  };
101
107
  export {
102
- eo as default
108
+ Fo as default
103
109
  };
package/Pill/Pill.d.ts CHANGED
@@ -3,6 +3,19 @@ export interface PillProps {
3
3
  textColor?: string;
4
4
  type?: 'primary' | 'secondary';
5
5
  squared?: boolean;
6
+ /** Optional icon rendered before the children. */
7
+ icon?: React.ReactNode;
8
+ /**
9
+ * Size variant.
10
+ * - `'sm'` (default): 13px text, 3px×13px padding — original Pill size.
11
+ * - `'md'`: 16px text, 8px×14px padding — for prominent badges (e.g. "Currently assigned to client #N").
12
+ */
13
+ size?: 'sm' | 'md';
14
+ /**
15
+ * Optional 1px ring around the pill, using the textColor (or a custom color string).
16
+ * Use `true` for the default textColor-based ring, or pass a CSS color for a custom ring.
17
+ */
18
+ ring?: boolean | string;
6
19
  }
7
20
  export declare const Pill: React.FC<PillProps & {
8
21
  children: React.ReactNode;