jcicl 0.0.333 → 0.0.337

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.
@@ -0,0 +1,14 @@
1
+ import { ForwardRefExoticComponent } from 'react';
2
+ import { LucideProps } from 'lucide-react';
3
+ export type CircularIconButtonProps = CircularIconWrapperProps & {
4
+ icon: ForwardRefExoticComponent<Omit<LucideProps, 'ref'>>;
5
+ onClick: () => void;
6
+ size?: number;
7
+ };
8
+ interface CircularIconWrapperProps {
9
+ backgroundColor?: string;
10
+ color?: string;
11
+ size?: number;
12
+ }
13
+ declare const CircularIconButton: React.FC<CircularIconButtonProps>;
14
+ export default CircularIconButton;
@@ -0,0 +1,42 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { n as c } from "../.chunks/emotion-styled.browser.esm.js";
3
+ import { c as a } from "../.chunks/emotion-react.browser.esm.js";
4
+ import n from "../theme.js";
5
+ const l = c("div")(({ backgroundColor: t, size: r, color: o }) => ({
6
+ ...a`
7
+ background-color: ${t};
8
+ color: ${o};
9
+ border-radius: 50%;
10
+ width: ${r}px;
11
+ height: ${r}px;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ cursor: pointer;
16
+ transition: all 0.21s ease;
17
+ transform: scale(1);
18
+
19
+ &:hover {
20
+ filter: brightness(92%);
21
+ transform: scale(1.1);
22
+ }
23
+ `
24
+ })), d = ({
25
+ color: t = n.colors.white,
26
+ backgroundColor: r = n.colors.green,
27
+ size: o = 20,
28
+ onClick: s,
29
+ icon: i
30
+ }) => /* @__PURE__ */ e(
31
+ l,
32
+ {
33
+ color: t,
34
+ backgroundColor: r,
35
+ size: o * 1.2,
36
+ onClick: s,
37
+ children: /* @__PURE__ */ e(i, { size: o * 0.8 })
38
+ }
39
+ );
40
+ export {
41
+ d as default
42
+ };
@@ -0,0 +1 @@
1
+ export { default, type CircularIconButtonProps } from './CircularIconButton';
@@ -0,0 +1,4 @@
1
+ import { default as o } from "./CircularIconButton.js";
2
+ export {
3
+ o as default
4
+ };
package/Pill/Pill.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export interface PillProps {
2
+ backgroundColor?: string;
3
+ textColor?: string;
4
+ }
5
+ export declare const Pill: React.FC<PillProps & {
6
+ children: React.ReactNode;
7
+ }>;
8
+ export default Pill;
package/Pill/Pill.js ADDED
@@ -0,0 +1,24 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { n as l } from "../.chunks/emotion-styled.browser.esm.js";
3
+ import { c } from "../.chunks/emotion-react.browser.esm.js";
4
+ import o from "../theme.js";
5
+ const i = l("span")(
6
+ ({ backgroundColor: r = o.colors.whiteGreen, textColor: t = o.colors.darkGreen }) => ({
7
+ ...c`
8
+ font-family: ${o.fonts.roboto};
9
+ font-size: 13px;
10
+ font-weight: 500;
11
+ color: ${t};
12
+ background-color: ${r};
13
+ padding: 3px 13px;
14
+ border-radius: 21px;
15
+ `
16
+ })
17
+ ), m = (r) => {
18
+ const { backgroundColor: t = o.colors.green, textColor: e = o.colors.white, children: n } = r;
19
+ return /* @__PURE__ */ s(i, { backgroundColor: t, textColor: e, children: n });
20
+ };
21
+ export {
22
+ m as Pill,
23
+ m as default
24
+ };
@@ -0,0 +1 @@
1
+ export { default, type PillProps } from './Pill';
package/Pill/index.js ADDED
@@ -0,0 +1,4 @@
1
+ import { Pill as e } from "./Pill.js";
2
+ export {
3
+ e as default
4
+ };
package/Table/Table.js CHANGED
@@ -1,7 +1,8 @@
1
- import { jsxs as s, jsx as o } from "react/jsx-runtime";
2
- import je, { forwardRef as X, createElement as F, useState as y, useMemo as I } from "react";
3
- import N from "../theme.js";
4
- import { n as i } from "../.chunks/emotion-styled.browser.esm.js";
1
+ import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
+ import je, { forwardRef as P, createElement as R, useState as C, useMemo as _ } from "react";
3
+ import o from "../theme.js";
4
+ import { c as i } from "../.chunks/emotion-react.browser.esm.js";
5
+ import { n as c } from "../.chunks/emotion-styled.browser.esm.js";
5
6
  import { Button as ze } from "../Button/Button.js";
6
7
  import { Flex as Ae } from "../Flex/Flex.js";
7
8
  /**
@@ -10,15 +11,15 @@ import { Flex as Ae } from "../Flex/Flex.js";
10
11
  * This source code is licensed under the ISC license.
11
12
  * See the LICENSE file in the root directory of this source tree.
12
13
  */
13
- const Te = (n) => n.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Ne = (n) => n.replace(
14
+ const Te = (r) => r.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Ne = (r) => r.replace(
14
15
  /^([A-Z])|[\s-_]+(\w)/g,
15
- (r, l, u) => u ? u.toUpperCase() : l.toLowerCase()
16
- ), G = (n) => {
17
- const r = Ne(n);
18
- return r.charAt(0).toUpperCase() + r.slice(1);
19
- }, P = (...n) => n.filter((r, l, u) => !!r && r.trim() !== "" && u.indexOf(r) === l).join(" ").trim(), Be = (n) => {
20
- for (const r in n)
21
- if (r.startsWith("aria-") || r === "role" || r === "title")
16
+ (s, p, f) => f ? f.toUpperCase() : p.toLowerCase()
17
+ ), J = (r) => {
18
+ const s = Ne(r);
19
+ return s.charAt(0).toUpperCase() + s.slice(1);
20
+ }, ee = (...r) => r.filter((s, p, f) => !!s && s.trim() !== "" && f.indexOf(s) === p).join(" ").trim(), Be = (r) => {
21
+ for (const s in r)
22
+ if (s.startsWith("aria-") || s === "role" || s === "title")
22
23
  return !0;
23
24
  };
24
25
  /**
@@ -44,32 +45,32 @@ var De = {
44
45
  * This source code is licensed under the ISC license.
45
46
  * See the LICENSE file in the root directory of this source tree.
46
47
  */
47
- const Ie = X(
48
+ const _e = P(
48
49
  ({
49
- color: n = "currentColor",
50
- size: r = 24,
51
- strokeWidth: l = 2,
52
- absoluteStrokeWidth: u,
53
- className: m = "",
54
- children: g,
55
- iconNode: _,
56
- ...z
57
- }, a) => F(
50
+ color: r = "currentColor",
51
+ size: s = 24,
52
+ strokeWidth: p = 2,
53
+ absoluteStrokeWidth: f,
54
+ className: y = "",
55
+ children: w,
56
+ iconNode: M,
57
+ ...A
58
+ }, a) => R(
58
59
  "svg",
59
60
  {
60
61
  ref: a,
61
62
  ...De,
62
- width: r,
63
- height: r,
64
- stroke: n,
65
- strokeWidth: u ? Number(l) * 24 / Number(r) : l,
66
- className: P("lucide", m),
67
- ...!g && !Be(z) && { "aria-hidden": "true" },
68
- ...z
63
+ width: s,
64
+ height: s,
65
+ stroke: r,
66
+ strokeWidth: f ? Number(p) * 24 / Number(s) : p,
67
+ className: ee("lucide", y),
68
+ ...!w && !Be(A) && { "aria-hidden": "true" },
69
+ ...A
69
70
  },
70
71
  [
71
- ..._.map(([b, M]) => F(b, M)),
72
- ...Array.isArray(g) ? g : [g]
72
+ ...M.map(([m, E]) => R(m, E)),
73
+ ...Array.isArray(w) ? w : [w]
73
74
  ]
74
75
  )
75
76
  );
@@ -79,20 +80,20 @@ const Ie = X(
79
80
  * This source code is licensed under the ISC license.
80
81
  * See the LICENSE file in the root directory of this source tree.
81
82
  */
82
- const j = (n, r) => {
83
- const l = X(
84
- ({ className: u, ...m }, g) => F(Ie, {
85
- ref: g,
86
- iconNode: r,
87
- className: P(
88
- `lucide-${Te(G(n))}`,
89
- `lucide-${n}`,
90
- u
83
+ const z = (r, s) => {
84
+ const p = P(
85
+ ({ className: f, ...y }, w) => R(_e, {
86
+ ref: w,
87
+ iconNode: s,
88
+ className: ee(
89
+ `lucide-${Te(J(r))}`,
90
+ `lucide-${r}`,
91
+ f
91
92
  ),
92
- ...m
93
+ ...y
93
94
  })
94
95
  );
95
- return l.displayName = G(n), l;
96
+ return p.displayName = J(r), p;
96
97
  };
97
98
  /**
98
99
  * @license lucide-react v0.525.0 - ISC
@@ -100,14 +101,14 @@ const j = (n, r) => {
100
101
  * This source code is licensed under the ISC license.
101
102
  * See the LICENSE file in the root directory of this source tree.
102
103
  */
103
- const _e = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], $ = j("chevron-down", _e);
104
+ const Me = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], G = z("chevron-down", Me);
104
105
  /**
105
106
  * @license lucide-react v0.525.0 - ISC
106
107
  *
107
108
  * This source code is licensed under the ISC license.
108
109
  * See the LICENSE file in the root directory of this source tree.
109
110
  */
110
- const Me = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], J = j("chevron-up", Me);
111
+ const Ee = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]], Q = z("chevron-up", Ee);
111
112
  /**
112
113
  * @license lucide-react v0.525.0 - ISC
113
114
  *
@@ -131,14 +132,14 @@ const Le = [
131
132
  }
132
133
  ],
133
134
  ["path", { d: "m2 2 20 20", key: "1ooewy" }]
134
- ], Re = j("eye-off", Le);
135
+ ], Fe = z("eye-off", Le);
135
136
  /**
136
137
  * @license lucide-react v0.525.0 - ISC
137
138
  *
138
139
  * This source code is licensed under the ISC license.
139
140
  * See the LICENSE file in the root directory of this source tree.
140
141
  */
141
- const Ee = [
142
+ const Ie = [
142
143
  [
143
144
  "path",
144
145
  {
@@ -147,24 +148,24 @@ const Ee = [
147
148
  }
148
149
  ],
149
150
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
150
- ], We = j("eye", Ee);
151
+ ], Ve = z("eye", Ie);
151
152
  /**
152
153
  * @license lucide-react v0.525.0 - ISC
153
154
  *
154
155
  * This source code is licensed under the ISC license.
155
156
  * See the LICENSE file in the root directory of this source tree.
156
157
  */
157
- const $e = [
158
+ const Ge = [
158
159
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
159
160
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
160
- ], Q = j("search", $e);
161
+ ], X = z("search", Ge);
161
162
  /**
162
163
  * @license lucide-react v0.525.0 - ISC
163
164
  *
164
165
  * This source code is licensed under the ISC license.
165
166
  * See the LICENSE file in the root directory of this source tree.
166
167
  */
167
- const Fe = [
168
+ const Re = [
168
169
  [
169
170
  "path",
170
171
  {
@@ -173,74 +174,74 @@ const Fe = [
173
174
  }
174
175
  ],
175
176
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
176
- ], Ve = j("settings", Fe);
177
- let v = "";
178
- const Ze = ({
179
- data: n = [],
180
- columnTitles: r = {},
181
- rowsPerPage: l = 19,
182
- title: u = "Data Table",
183
- onRowClick: m,
184
- hiddenColumns: g = [],
185
- defaultSort: _ = { key: "", direction: "asc" },
186
- extraActions: z
177
+ ], Ue = z("settings", Re);
178
+ let j = "";
179
+ const Je = ({
180
+ data: r = [],
181
+ columnTitles: s = {},
182
+ rowsPerPage: p = 19,
183
+ title: f = "Data Table",
184
+ onRowClick: y,
185
+ hiddenColumns: w = [],
186
+ defaultSort: M = { key: "", direction: "asc" },
187
+ extraActions: A
187
188
  }) => {
188
- const [a, b] = y(1), [, M] = y(""), [h, ee] = y(_), [w, B] = y(/* @__PURE__ */ new Set()), [L, V] = y(/* @__PURE__ */ new Set()), [U, oe] = y(!1), [H, te] = y(!1), d = I(() => n.length === 0 ? [] : Object.keys(n[0]).filter((e) => !g.includes(e)), [n]);
189
+ const [a, m] = C(1), [, E] = C(""), [u, oe] = C(M), [v, B] = C(/* @__PURE__ */ new Set()), [L, U] = C(/* @__PURE__ */ new Set()), [O, te] = C(!1), [W, ne] = C(!1), h = _(() => r.length === 0 ? [] : Object.keys(r[0]).filter((e) => !w.includes(e)), [r]);
189
190
  je.useEffect(() => {
190
- d.length > 0 && (V(new Set(d)), B(new Set(d)));
191
- }, [d]);
192
- const R = I(() => {
193
- if (!v) return n;
194
- const e = w.size > 0 ? w : new Set(d);
195
- return n.filter((t) => Array.from(e).some((c) => {
196
- const f = t[c];
197
- return f && f.toString().toLowerCase().includes(v.toLowerCase());
191
+ h.length > 0 && (U(new Set(h)), B(new Set(h)));
192
+ }, [h]);
193
+ const F = _(() => {
194
+ if (!j) return r;
195
+ const e = v.size > 0 ? v : new Set(h);
196
+ return r.filter((n) => Array.from(e).some((d) => {
197
+ const x = n[d];
198
+ return x && x.toString().toLowerCase().includes(j.toLowerCase());
198
199
  }));
199
- }, [n, v, w, d]), x = I(() => h.key ? [...R].sort((e, t) => e[h.key] < t[h.key] ? h.direction === "asc" ? -1 : 1 : e[h.key] > t[h.key] ? h.direction === "asc" ? 1 : -1 : 0) : R, [R, h]), D = d.filter((e) => L.has(e)), ne = () => {
200
- if (!Array.isArray(x) || x.length === 0) return;
201
- const e = D.map((k) => r[k] || k), t = (k) => {
202
- const T = String(k ?? "");
203
- return /[",\n]/.test(T) ? `"${T.replace(/"/g, '""')}"` : T;
204
- }, f = [
200
+ }, [r, j, v, h]), b = _(() => u.key ? [...F].sort((e, n) => e[u.key] < n[u.key] ? u.direction === "asc" ? -1 : 1 : e[u.key] > n[u.key] ? u.direction === "asc" ? 1 : -1 : 0) : F, [F, u]), D = h.filter((e) => L.has(e)), re = () => {
201
+ if (!Array.isArray(b) || b.length === 0) return;
202
+ const e = D.map(($) => s[$] || $), n = ($) => {
203
+ const N = String($ ?? "");
204
+ return /[",\n]/.test(N) ? `"${N.replace(/"/g, '""')}"` : N;
205
+ }, x = [
205
206
  e.join(","),
206
207
  // header row
207
- ...x.map((k) => D.map((T) => t(k[T])).join(","))
208
+ ...b.map(($) => D.map((N) => n($[N])).join(","))
208
209
  ].join(`
209
- `), ve = new Blob([f], { type: "text/csv;charset=utf-8;" }), A = document.createElement("a");
210
- A.href = URL.createObjectURL(ve), A.download = "data.csv", document.body.appendChild(A), A.click(), document.body.removeChild(A);
211
- }, re = I(() => {
212
- const e = (a - 1) * l;
213
- return x.slice(e, e + l);
214
- }, [x, a, l]), p = Math.ceil(x.length / l), ie = (e) => {
215
- ee((t) => ({
210
+ `), $e = new Blob([x], { type: "text/csv;charset=utf-8;" }), T = document.createElement("a");
211
+ T.href = URL.createObjectURL($e), T.download = "data.csv", document.body.appendChild(T), T.click(), document.body.removeChild(T);
212
+ }, se = _(() => {
213
+ const e = (a - 1) * p;
214
+ return b.slice(e, e + p);
215
+ }, [b, a, p]), g = Math.ceil(b.length / p), ie = (e) => {
216
+ oe((n) => ({
216
217
  key: e,
217
- direction: t.key === e && t.direction === "asc" ? "desc" : "asc"
218
+ direction: n.key === e && n.direction === "asc" ? "desc" : "asc"
218
219
  }));
219
- }, ae = (e) => {
220
- B((t) => {
221
- const c = new Set(t);
222
- return c.has(e) ? c.delete(e) : c.add(e), c;
223
- });
224
- }, se = () => {
225
- w.size === d.length ? B(/* @__PURE__ */ new Set()) : B(new Set(d));
226
220
  }, ce = (e) => {
227
- V((t) => {
228
- const c = new Set(t);
229
- return c.has(e) ? c.delete(e) : c.add(e), c;
221
+ B((n) => {
222
+ const d = new Set(n);
223
+ return d.has(e) ? d.delete(e) : d.add(e), d;
230
224
  });
225
+ }, ae = () => {
226
+ v.size === h.length ? B(/* @__PURE__ */ new Set()) : B(new Set(h));
231
227
  }, le = (e) => {
232
- v = e;
233
- }, O = () => {
234
- M(v);
235
- }, C = {
228
+ U((n) => {
229
+ const d = new Set(n);
230
+ return d.has(e) ? d.delete(e) : d.add(e), d;
231
+ });
232
+ }, de = (e) => {
233
+ j = e;
234
+ }, H = () => {
235
+ E(j);
236
+ }, k = {
236
237
  thActive: {
237
- backgroundColor: N.colors.green,
238
- color: N.colors.white
238
+ backgroundColor: o.colors.green,
239
+ color: o.colors.white
239
240
  },
240
241
  paginationButtonActive: {
241
- backgroundColor: N.colors.green,
242
- color: N.colors.white,
243
- borderColor: N.colors.green
242
+ backgroundColor: o.colors.green,
243
+ color: o.colors.white,
244
+ borderColor: o.colors.green
244
245
  },
245
246
  paginationButtonDisabled: {
246
247
  opacity: 0.5,
@@ -248,382 +249,438 @@ const Ze = ({
248
249
  },
249
250
  info: {
250
251
  fontSize: "14px",
251
- color: "#666666",
252
+ color: o.colors.gray3,
252
253
  textAlign: "center",
253
254
  marginTop: "10px"
254
255
  }
255
- }, de = i("div")({
256
- backgroundColor: "#ffffff",
257
- borderRadius: "8px",
258
- boxShadow: "0 2px 10px rgba(0, 0, 0, 0.1)",
259
- padding: "20px",
260
- fontFamily: "Arial, sans-serif",
261
- width: "100%",
262
- overflow: "auto"
263
- }), pe = i("div")({
264
- display: "flex",
265
- flexDirection: "column",
266
- justifyContent: "space-between",
267
- alignItems: "center",
268
- marginBottom: "20px",
269
- flexWrap: "wrap",
270
- gap: "9px"
271
- }), he = i("div")({
272
- display: "flex",
273
- justifyContent: "space-between",
274
- width: "100%",
275
- alignItems: "center"
276
- }), fe = i("h2")({
277
- fontSize: "24px",
278
- fontWeight: "bold",
279
- color: "#000000",
280
- margin: 0
281
- }), ue = i("div")({
282
- display: "flex",
283
- justifyContent: "flex-end",
284
- width: "100%",
285
- gap: "15px",
286
- alignItems: "center",
287
- flexWrap: "wrap"
288
- }), xe = i("div")({
289
- position: "relative",
290
- display: "flex",
291
- alignItems: "center",
292
- flexGrow: 1
293
- }), ge = i(Q)({
294
- position: "absolute",
295
- left: "13px",
296
- top: "10px",
297
- color: "#666666",
298
- width: "19px",
299
- height: "19px",
300
- transition: "all 313ms ease",
301
- "&:focus, &:hover, &:focus-within": {
302
- cursor: "pointer",
303
- color: "#009200"
304
- }
305
- }), be = i("input")({
306
- padding: "10px 15px 10px 40px",
307
- border: "2px solid #e0e0e0",
308
- borderRadius: "25px",
309
- fontSize: "14px",
310
- minWidth: "270px",
311
- width: "100%",
312
- transition: "all 313ms ease",
313
- outline: "none",
314
- backgroundColor: "#ffffff",
315
- "&:focus, &:hover, &:focus-within": {
316
- borderColor: "#009200",
317
- boxShadow: "0 0 0 3px rgba(0, 146, 0, 0.1)"
318
- }
319
- }), q = i("button")({
320
- padding: "10px 15px",
321
- border: "2px solid #009200",
322
- borderRadius: "6px",
323
- backgroundColor: "#ffffff",
324
- color: "#009200",
325
- cursor: "pointer",
326
- display: "flex",
327
- alignItems: "center",
328
- gap: "8px",
329
- fontSize: "14px",
330
- fontWeight: "500",
331
- transition: "all 0.3s ease",
332
- outline: "none",
333
- "&:focus, &:hover, &:focus-within": {
334
- backgroundColor: "#009200",
335
- color: "#ffffff",
336
- transform: "translateY(-1px)",
337
- boxShadow: "0 4px 12px rgba(0, 146, 0, 0.3)"
338
- }
339
- }), K = i("div")({
340
- position: "absolute",
341
- top: "100%",
342
- right: 0,
343
- marginTop: "5px",
344
- backgroundColor: "#ffffff",
345
- border: "1px solid #e0e0e0",
346
- borderRadius: "6px",
347
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
348
- zIndex: 1e3,
349
- minWidth: "200px",
350
- maxHeight: "300px",
351
- overflowY: "auto"
352
- }), E = i("div")({
353
- padding: "12px 16px",
354
- display: "flex",
355
- alignItems: "center",
356
- gap: "10px",
357
- cursor: "pointer",
358
- fontSize: "14px",
359
- color: "#333333",
360
- transition: "all 0.2s ease",
361
- "&:focus, &:hover, &:focus-within": {
362
- backgroundColor: "#f0f8f0",
363
- color: "#005c00"
364
- }
365
- }), W = i("input")({
366
- width: "16px",
367
- height: "16px",
368
- accentColor: "#009200"
369
- }), me = i("table")({
370
- width: "100%",
371
- borderCollapse: "collapse",
372
- backgroundColor: "#ffffff",
373
- borderRadius: "8px",
374
- overflow: "hidden",
375
- boxShadow: "0 1px 3px rgba(0, 0, 0, 0.1)"
376
- }), Ce = i("th")({
377
- backgroundColor: "#f8f9fa",
378
- color: "#333333",
379
- padding: "16px 12px",
380
- textAlign: "left",
381
- fontSize: "14px",
382
- fontWeight: "600",
383
- borderBottom: "2px solid #e0e0e0",
384
- cursor: "pointer",
385
- userSelect: "none",
386
- transition: "all 0.2s ease",
387
- position: "relative",
388
- whiteSpace: "nowrap",
389
- "&:focus, &:hover, &:focus-within": {
390
- backgroundColor: "#e8f5e8",
391
- color: "#005c00"
392
- }
393
- }), ye = i("td")({
394
- padding: "14px 12px",
395
- borderBottom: "1px solid #f0f0f0",
396
- fontSize: "14px",
397
- color: "#333333",
398
- transition: "all 0.2s ease"
399
- }), we = i("span")({
400
- marginLeft: "8px",
401
- opacity: 0.6
402
- }), Y = i("tr")(({ interactableRow: e }) => ({
403
- transition: "all 0.2s ease",
404
- ...e && {
405
- "&:focus, &:hover, &:focus-within": {
406
- backgroundColor: "#f8fff8",
407
- cursor: "pointer"
256
+ }, pe = c("div")(() => ({
257
+ ...i`
258
+ background-color: ${o.colors.white};
259
+ border-radius: 8px;
260
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
261
+ padding: 20px;
262
+ font-family: Arial, sans-serif;
263
+ width: 100%;
264
+ overflow: auto;
265
+ `
266
+ })), he = c("div")(() => ({
267
+ ...i`
268
+ display: flex;
269
+ flex-direction: column;
270
+ justify-content: space-between;
271
+ align-items: center;
272
+ margin-bottom: 20px;
273
+ flex-wrap: wrap;
274
+ gap: 9px;
275
+ `
276
+ })), ge = c("div")(() => ({
277
+ ...i`
278
+ display: flex;
279
+ justify-content: space-between;
280
+ width: 100%;
281
+ align-items: center;
282
+ `
283
+ })), ue = c("h2")(() => ({
284
+ ...i`
285
+ font-size: 24px;
286
+ font-weight: bold;
287
+ color: ${o.colors.black};
288
+ margin: 0;
289
+ `
290
+ })), xe = c("div")(() => ({
291
+ ...i`
292
+ display: flex;
293
+ justify-content: flex-end;
294
+ width: 100%;
295
+ gap: 15px;
296
+ align-items: center;
297
+ flex-wrap: wrap;
298
+ `
299
+ })), fe = c("div")(() => ({
300
+ ...i`
301
+ position: relative;
302
+ display: flex;
303
+ align-items: center;
304
+ flex-grow: 1;
305
+ `
306
+ })), be = c(X)(() => ({
307
+ ...i`
308
+ position: absolute;
309
+ left: 13px;
310
+ top: 10px;
311
+ color: ${o.colors.gray3};
312
+ width: 19px;
313
+ height: 19px;
314
+ transition: all 313ms ease;
315
+ :focus,
316
+ :hover,
317
+ :focus-within {
318
+ cursor: pointer;
319
+ color: ${o.colors.green};
408
320
  }
409
- }
410
- })), Se = i("div")({
411
- display: "flex",
412
- justifyContent: "center",
413
- alignItems: "center",
414
- marginTop: "20px",
415
- gap: "10px"
416
- }), S = i("button")({
417
- padding: "8px 12px",
418
- border: "1px solid #e0e0e0",
419
- borderRadius: "4px",
420
- backgroundColor: "#ffffff",
421
- color: "#333333",
422
- cursor: "pointer",
423
- fontSize: "14px",
424
- transition: "all 0.2s ease",
425
- outline: "none",
426
- "&:focus, &:hover, &:focus-within": {
427
- backgroundColor: "#009200",
428
- color: "#ffffff",
429
- borderColor: "#009200"
430
- },
431
- "&:disabled": {
432
- opacity: 0.5,
433
- cursor: "not-allowed"
434
- }
435
- }), ke = i("div")({
436
- fontSize: "14px",
437
- color: "#666666",
438
- textAlign: "center",
439
- marginTop: "10px"
440
- }), Z = i("span")({
441
- padding: "8px 4px",
442
- color: "#666666",
443
- fontSize: "14px"
444
- });
445
- return /* @__PURE__ */ s(de, { className: "jcTableContainer", children: [
446
- /* @__PURE__ */ s(pe, { className: "jcTableHeader", children: [
447
- /* @__PURE__ */ s(he, { className: "jcTableTitleAndActions", children: [
448
- /* @__PURE__ */ o(fe, { children: u }),
449
- /* @__PURE__ */ s(Ae, { className: "jcTableExtraComponentsBox", gap: "9px", children: [
450
- z && z,
451
- /* @__PURE__ */ o(ze, { onClick: ne, children: "Export to CSV" })
321
+ `
322
+ })), we = c("input")(() => ({
323
+ ...i`
324
+ padding: 10px 15px 10px 40px;
325
+ border: 2px solid ${o.colors.gray4};
326
+ border-radius: 25px;
327
+ font-size: 14px;
328
+ min-width: 270px;
329
+ width: 100%;
330
+ transition: all 313ms ease;
331
+ outline: none;
332
+ background-color: ${o.colors.white};
333
+ :focus,
334
+ :hover,
335
+ :focus-within {
336
+ border-color: ${o.colors.green};
337
+ box-shadow: 0 0 0 3px rgba(0, 146, 0, 0.1);
338
+ }
339
+ `
340
+ })), q = c("button")(() => ({
341
+ ...i`
342
+ padding: 10px 15px;
343
+ border: 2px solid ${o.colors.green};
344
+ border-radius: 6px;
345
+ background-color: ${o.colors.white};
346
+ color: ${o.colors.green};
347
+ cursor: pointer;
348
+ display: flex;
349
+ align-items: center;
350
+ gap: 8px;
351
+ font-size: 14px;
352
+ font-weight: 500;
353
+ transition: all 0.3s ease;
354
+ outline: none;
355
+ :focus,
356
+ :hover,
357
+ :focus-within {
358
+ background-color: ${o.colors.green};
359
+ color: ${o.colors.white};
360
+ transform: translateY(-1px);
361
+ box-shadow: 0 4px 12px rgba(0, 146, 0, 0.3);
362
+ }
363
+ `
364
+ })), K = c("div")(() => ({
365
+ ...i`
366
+ position: absolute;
367
+ top: 100%;
368
+ right: 0;
369
+ margin-top: 5px;
370
+ background-color: ${o.colors.white};
371
+ border: 1px solid ${o.colors.gray4};
372
+ border-radius: 6px;
373
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
374
+ z-index: 1000;
375
+ min-width: 200px;
376
+ max-height: 300px;
377
+ overflow-y: auto;
378
+ `
379
+ })), I = c("div")(() => ({
380
+ ...i`
381
+ padding: 12px 16px;
382
+ display: flex;
383
+ align-items: center;
384
+ gap: 10px;
385
+ cursor: pointer;
386
+ font-size: 14px;
387
+ color: ${o.colors.slate};
388
+ transition: all 0.2s ease;
389
+ :focus,
390
+ :hover,
391
+ :focus-within {
392
+ background-color: ${o.colors.whiteGreenB};
393
+ color: ${o.colors.darkGreen};
394
+ }
395
+ `
396
+ })), V = c("input")(() => ({
397
+ ...i`
398
+ width: 16px;
399
+ height: 16px;
400
+ accent-color: ${o.colors.green};
401
+ `
402
+ })), me = c("table")(() => ({
403
+ ...i`
404
+ width: 100%;
405
+ border-collapse: collapse;
406
+ background-color: ${o.colors.white};
407
+ border-radius: 8px;
408
+ overflow: hidden;
409
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
410
+ `
411
+ })), ye = c("th")(() => ({
412
+ ...i`
413
+ background-color: ${o.colors.whiteBlue};
414
+ color: ${o.colors.slate};
415
+ padding: 16px 12px;
416
+ text-align: left;
417
+ font-size: 14px;
418
+ font-weight: 600;
419
+ border-bottom: 2px solid ${o.colors.gray4};
420
+ cursor: pointer;
421
+ user-select: none;
422
+ transition: all 0.2s ease;
423
+ position: relative;
424
+ white-space: nowrap;
425
+ :focus,
426
+ :hover,
427
+ :focus-within {
428
+ background-color: ${o.colors.whiteGreenC};
429
+ color: ${o.colors.darkGreen};
430
+ }
431
+ `
432
+ })), ke = c("td")(() => ({
433
+ ...i`
434
+ padding: 14px 12px;
435
+ border-bottom: 1px solid ${o.colors.almostWhite};
436
+ font-size: 14px;
437
+ color: ${o.colors.slate};
438
+ transition: all 0.2s ease;
439
+ `
440
+ })), Ce = c("span")(() => ({
441
+ ...i`
442
+ margin-left: 8px;
443
+ opacity: 0.6;
444
+ `
445
+ })), Z = c("tr")(({ interactableRow: e }) => ({
446
+ ...i`
447
+ transition: all 0.2s ease;
448
+ ${e && i`
449
+ :focus,
450
+ :hover,
451
+ :focus-within {
452
+ background-color: ${o.colors.whiteGreenD};
453
+ cursor: pointer;
454
+ }
455
+ `}
456
+ `
457
+ })), ve = c("div")(() => ({
458
+ ...i`
459
+ display: flex;
460
+ justify-content: center;
461
+ align-items: center;
462
+ margin-top: 20px;
463
+ gap: 10px;
464
+ `
465
+ })), S = c("button")(() => ({
466
+ ...i`
467
+ padding: 8px 12px;
468
+ border: 1px solid ${o.colors.gray4};
469
+ border-radius: 4px;
470
+ background-color: ${o.colors.white};
471
+ color: ${o.colors.slate};
472
+ cursor: pointer;
473
+ font-size: 14px;
474
+ transition: all 0.2s ease;
475
+ outline: none;
476
+ :focus,
477
+ :hover,
478
+ :focus-within {
479
+ background-color: ${o.colors.green};
480
+ color: ${o.colors.white};
481
+ border-color: ${o.colors.green};
482
+ }
483
+ :disabled {
484
+ opacity: 0.5;
485
+ cursor: not-allowed;
486
+ }
487
+ `
488
+ })), Se = c("div")(() => ({
489
+ ...i`
490
+ font-size: 14px;
491
+ color: ${o.colors.gray3};
492
+ text-align: center;
493
+ margin-top: 10px;
494
+ `
495
+ })), Y = c("span")(() => ({
496
+ ...i`
497
+ padding: 8px 4px;
498
+ color: ${o.colors.gray3};
499
+ font-size: 14px;
500
+ `
501
+ }));
502
+ return /* @__PURE__ */ l(pe, { className: "jcTableContainer", children: [
503
+ /* @__PURE__ */ l(he, { className: "jcTableHeader", children: [
504
+ /* @__PURE__ */ l(ge, { className: "jcTableTitleAndActions", children: [
505
+ /* @__PURE__ */ t(ue, { children: f }),
506
+ /* @__PURE__ */ l(Ae, { className: "jcTableExtraComponentsBox", gap: "9px", children: [
507
+ A && A,
508
+ /* @__PURE__ */ t(ze, { onClick: re, children: "Export to CSV" })
452
509
  ] })
453
510
  ] }),
454
- /* @__PURE__ */ s(ue, { className: "jcTableControls", children: [
455
- /* @__PURE__ */ s(xe, { className: "jcTableSearchContainer", children: [
456
- /* @__PURE__ */ o(ge, { onClick: O }),
457
- /* @__PURE__ */ o(
458
- be,
511
+ /* @__PURE__ */ l(xe, { className: "jcTableControls", children: [
512
+ /* @__PURE__ */ l(fe, { className: "jcTableSearchContainer", children: [
513
+ /* @__PURE__ */ t(be, { onClick: H }),
514
+ /* @__PURE__ */ t(
515
+ we,
459
516
  {
460
517
  type: "text",
461
518
  placeholder: "Search...",
462
- defaultValue: v,
463
- onChange: (e) => le(e.target.value),
519
+ defaultValue: j,
520
+ onChange: (e) => de(e.target.value),
464
521
  onKeyDown: (e) => {
465
- e.key === "Enter" && O();
522
+ e.key === "Enter" && H();
466
523
  }
467
524
  }
468
525
  )
469
526
  ] }),
470
- /* @__PURE__ */ s("div", { style: { position: "relative" }, children: [
471
- /* @__PURE__ */ s(
527
+ /* @__PURE__ */ l("div", { style: { position: "relative" }, children: [
528
+ /* @__PURE__ */ l(
472
529
  q,
473
530
  {
474
531
  className: "jcTableSearchFields",
475
- onClick: () => te(!H),
532
+ onClick: () => ne(!W),
476
533
  children: [
477
- /* @__PURE__ */ o(Q, { size: 16 }),
534
+ /* @__PURE__ */ t(X, { size: 16 }),
478
535
  "Fields",
479
- /* @__PURE__ */ o($, { size: 16 })
536
+ /* @__PURE__ */ t(G, { size: 16 })
480
537
  ]
481
538
  }
482
539
  ),
483
- H && /* @__PURE__ */ s(K, { className: "jcTableSearchFieldsDropdown", children: [
484
- /* @__PURE__ */ s(E, { onClick: se, children: [
485
- /* @__PURE__ */ o(
486
- W,
540
+ W && /* @__PURE__ */ l(K, { className: "jcTableSearchFieldsDropdown", children: [
541
+ /* @__PURE__ */ l(I, { onClick: ae, children: [
542
+ /* @__PURE__ */ t(
543
+ V,
487
544
  {
488
545
  type: "checkbox",
489
- checked: w.size === d.length,
546
+ checked: v.size === h.length,
490
547
  onChange: () => {
491
548
  }
492
549
  }
493
550
  ),
494
- /* @__PURE__ */ o("span", { style: { fontWeight: "bold" }, children: "All" })
551
+ /* @__PURE__ */ t("span", { style: { fontWeight: "bold" }, children: "All" })
495
552
  ] }),
496
- /* @__PURE__ */ o("div", { style: { height: "1px", backgroundColor: "#e0e0e0", margin: "4px 0" } }),
497
- d.map((e) => /* @__PURE__ */ s(E, { onClick: () => ae(e), children: [
498
- /* @__PURE__ */ o(W, { type: "checkbox", checked: w.has(e), onChange: () => {
553
+ /* @__PURE__ */ t("div", { style: { height: "1px", backgroundColor: o.colors.gray4, margin: "4px 0" } }),
554
+ h.map((e) => /* @__PURE__ */ l(I, { onClick: () => ce(e), children: [
555
+ /* @__PURE__ */ t(V, { type: "checkbox", checked: v.has(e), onChange: () => {
499
556
  } }),
500
- /* @__PURE__ */ o("span", { children: r[e] || e })
557
+ /* @__PURE__ */ t("span", { children: s[e] || e })
501
558
  ] }, e))
502
559
  ] })
503
560
  ] }),
504
- /* @__PURE__ */ s("div", { style: { position: "relative" }, children: [
505
- /* @__PURE__ */ s(
561
+ /* @__PURE__ */ l("div", { style: { position: "relative" }, children: [
562
+ /* @__PURE__ */ l(
506
563
  q,
507
564
  {
508
565
  className: "jcTableColumnSettings",
509
- onClick: () => oe(!U),
566
+ onClick: () => te(!O),
510
567
  children: [
511
- /* @__PURE__ */ o(Ve, { size: 16 }),
568
+ /* @__PURE__ */ t(Ue, { size: 16 }),
512
569
  "Columns",
513
- /* @__PURE__ */ o($, { size: 16 })
570
+ /* @__PURE__ */ t(G, { size: 16 })
514
571
  ]
515
572
  }
516
573
  ),
517
- U && /* @__PURE__ */ o(K, { className: "jcTableColumnSettingsDropdown", children: d.map((e) => /* @__PURE__ */ s(E, { onClick: () => ce(e), children: [
518
- /* @__PURE__ */ o(W, { type: "checkbox", checked: L.has(e), onChange: () => {
574
+ O && /* @__PURE__ */ t(K, { className: "jcTableColumnSettingsDropdown", children: h.map((e) => /* @__PURE__ */ l(I, { onClick: () => le(e), children: [
575
+ /* @__PURE__ */ t(V, { type: "checkbox", checked: L.has(e), onChange: () => {
519
576
  } }),
520
- L.has(e) ? /* @__PURE__ */ o(We, { size: 16 }) : /* @__PURE__ */ o(Re, { size: 16 }),
521
- /* @__PURE__ */ o("span", { children: r[e] || e })
577
+ L.has(e) ? /* @__PURE__ */ t(Ve, { size: 16 }) : /* @__PURE__ */ t(Fe, { size: 16 }),
578
+ /* @__PURE__ */ t("span", { children: s[e] || e })
522
579
  ] }, e)) })
523
580
  ] })
524
581
  ] })
525
582
  ] }),
526
- /* @__PURE__ */ s(me, { className: "jcTableContent", children: [
527
- /* @__PURE__ */ o("thead", { children: /* @__PURE__ */ o(Y, { interactableRow: !1, children: D.map((e) => /* @__PURE__ */ s(
528
- Ce,
583
+ /* @__PURE__ */ l(me, { className: "jcTableContent", children: [
584
+ /* @__PURE__ */ t("thead", { children: /* @__PURE__ */ t(Z, { interactableRow: !1, children: D.map((e) => /* @__PURE__ */ l(
585
+ ye,
529
586
  {
530
- style: h.key === e ? C.thActive : {},
587
+ style: u.key === e ? k.thActive : {},
531
588
  onClick: () => ie(e),
532
589
  children: [
533
- r[e] || e,
534
- /* @__PURE__ */ o(we, { children: h.key === e ? h.direction === "asc" ? /* @__PURE__ */ o(J, { size: 16 }) : /* @__PURE__ */ o($, { size: 16 }) : /* @__PURE__ */ o(J, { size: 16, style: { opacity: 0.313 } }) })
590
+ s[e] || e,
591
+ /* @__PURE__ */ t(Ce, { children: u.key === e ? u.direction === "asc" ? /* @__PURE__ */ t(Q, { size: 16 }) : /* @__PURE__ */ t(G, { size: 16 }) : /* @__PURE__ */ t(Q, { size: 16, style: { opacity: 0.313 } }) })
535
592
  ]
536
593
  },
537
594
  e
538
595
  )) }) }),
539
- /* @__PURE__ */ o("tbody", { children: re.map((e, t) => /* @__PURE__ */ o(Y, { onClick: () => m && m(e), interactableRow: !!m, children: D.map((c) => /* @__PURE__ */ o(ye, { children: e[c] }, c)) }, t)) })
596
+ /* @__PURE__ */ t("tbody", { children: se.map((e, n) => /* @__PURE__ */ t(Z, { onClick: () => y && y(e), interactableRow: !!y, children: D.map((d) => /* @__PURE__ */ t(ke, { children: e[d] }, d)) }, n)) })
540
597
  ] }),
541
- /* @__PURE__ */ s(Se, { children: [
542
- /* @__PURE__ */ o(
598
+ /* @__PURE__ */ l(ve, { children: [
599
+ /* @__PURE__ */ t(
543
600
  S,
544
601
  {
545
- style: a === 1 ? C.paginationButtonDisabled : {},
546
- onClick: () => b(Math.max(1, a - 1)),
602
+ style: a === 1 ? k.paginationButtonDisabled : {},
603
+ onClick: () => m(Math.max(1, a - 1)),
547
604
  disabled: a === 1,
548
605
  children: "Previous"
549
606
  }
550
607
  ),
551
608
  (() => {
552
609
  const e = [];
553
- if (p <= 5)
554
- for (let t = 1; t <= p; t++)
610
+ if (g <= 5)
611
+ for (let n = 1; n <= g; n++)
555
612
  e.push(
556
- /* @__PURE__ */ o(
613
+ /* @__PURE__ */ t(
557
614
  S,
558
615
  {
559
- style: a === t ? C.paginationButtonActive : {},
560
- onClick: () => b(t),
561
- children: t
616
+ style: a === n ? k.paginationButtonActive : {},
617
+ onClick: () => m(n),
618
+ children: n
562
619
  },
563
- t
620
+ n
564
621
  )
565
622
  );
566
623
  else {
567
624
  e.push(
568
- /* @__PURE__ */ o(
625
+ /* @__PURE__ */ t(
569
626
  S,
570
627
  {
571
- style: a === 1 ? C.paginationButtonActive : {},
572
- onClick: () => b(1),
628
+ style: a === 1 ? k.paginationButtonActive : {},
629
+ onClick: () => m(1),
573
630
  children: "1"
574
631
  },
575
632
  1
576
633
  )
577
- ), a > 3 && e.push(/* @__PURE__ */ o(Z, { children: "..." }, "ellipsis1"));
578
- const t = Math.max(2, a - 1), c = Math.min(p - 1, a + 1);
579
- for (let f = t; f <= c; f++)
634
+ ), a > 3 && e.push(/* @__PURE__ */ t(Y, { children: "..." }, "ellipsis1"));
635
+ const n = Math.max(2, a - 1), d = Math.min(g - 1, a + 1);
636
+ for (let x = n; x <= d; x++)
580
637
  e.push(
581
- /* @__PURE__ */ o(
638
+ /* @__PURE__ */ t(
582
639
  S,
583
640
  {
584
- style: a === f ? C.paginationButtonActive : {},
585
- onClick: () => b(f),
586
- children: f
641
+ style: a === x ? k.paginationButtonActive : {},
642
+ onClick: () => m(x),
643
+ children: x
587
644
  },
588
- f
645
+ x
589
646
  )
590
647
  );
591
- a < p - 2 && e.push(/* @__PURE__ */ o(Z, { children: "..." }, "ellipsis2")), p > 1 && e.push(
592
- /* @__PURE__ */ o(
648
+ a < g - 2 && e.push(/* @__PURE__ */ t(Y, { children: "..." }, "ellipsis2")), g > 1 && e.push(
649
+ /* @__PURE__ */ t(
593
650
  S,
594
651
  {
595
- style: a === p ? C.paginationButtonActive : {},
596
- onClick: () => b(p),
597
- children: p
652
+ style: a === g ? k.paginationButtonActive : {},
653
+ onClick: () => m(g),
654
+ children: g
598
655
  },
599
- p
656
+ g
600
657
  )
601
658
  );
602
659
  }
603
660
  return e;
604
661
  })(),
605
- /* @__PURE__ */ o(
662
+ /* @__PURE__ */ t(
606
663
  S,
607
664
  {
608
- style: a === p ? C.paginationButtonDisabled : {},
609
- onClick: () => b(Math.min(p, a + 1)),
610
- disabled: a === p,
665
+ style: a === g ? k.paginationButtonDisabled : {},
666
+ onClick: () => m(Math.min(g, a + 1)),
667
+ disabled: a === g,
611
668
  children: "Next"
612
669
  }
613
670
  )
614
671
  ] }),
615
- /* @__PURE__ */ s(ke, { children: [
672
+ /* @__PURE__ */ l(Se, { children: [
616
673
  "Showing ",
617
- Math.min((a - 1) * l + 1, x.length),
674
+ Math.min((a - 1) * p + 1, b.length),
618
675
  " to",
619
676
  " ",
620
- Math.min(a * l, x.length),
677
+ Math.min(a * p, b.length),
621
678
  " of ",
622
- x.length,
679
+ b.length,
623
680
  " entries"
624
681
  ] })
625
682
  ] });
626
683
  };
627
684
  export {
628
- Ze as default
685
+ Je as default
629
686
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jcicl",
3
3
  "private": false,
4
- "version": "0.0.333",
4
+ "version": "0.0.337",
5
5
  "description": "Component library for the websites of Johnson County Iowa",
6
6
  "license": "MIT",
7
7
  "homepage": "https://devops.jc.net/JCIT/Business%20Solutions%20Delivery/_git/JCComponentLibrary?path=%2FREADME.md&version=GBmaster",
package/theme.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export interface ThemeColors {
2
+ almostWhite: string;
2
3
  bibiBlue: string;
3
4
  bibiBlueHover: string;
4
5
  black: string;
@@ -24,6 +25,7 @@ export interface ThemeColors {
24
25
  gray: string;
25
26
  gray2: string;
26
27
  gray3: string;
28
+ gray4: string;
27
29
  grayO44: string;
28
30
  green: string;
29
31
  indigo: string;
@@ -42,6 +44,7 @@ export interface ThemeColors {
42
44
  qalb: string;
43
45
  sage: string;
44
46
  sky: string;
47
+ slate: string;
45
48
  sunlight: string;
46
49
  veryLightGray: string;
47
50
  veryLightGrayO33: string;
@@ -49,6 +52,10 @@ export interface ThemeColors {
49
52
  white: string;
50
53
  whiteGreen: string;
51
54
  whiteGreenA: string;
55
+ whiteGreenB: string;
56
+ whiteGreenC: string;
57
+ whiteGreenD: string;
58
+ whiteBlue: string;
52
59
  }
53
60
  export interface ThemeBoxShadows extends Partial<ThemeColors> {
54
61
  black63?: string;
package/theme.js CHANGED
@@ -4,6 +4,7 @@ const a = {
4
4
  },
5
5
  boxShadows: {},
6
6
  colors: {
7
+ almostWhite: "#f0f0f0",
7
8
  bibiBlue: "#009dde",
8
9
  bibiBlueHover: "#0088c0",
9
10
  black: "black",
@@ -29,6 +30,7 @@ const a = {
29
30
  gray: "#727272",
30
31
  gray2: "#dddddd",
31
32
  gray3: "#666666",
33
+ gray4: "#e0e0e0",
32
34
  grayO44: "#72727244",
33
35
  green: "#009200",
34
36
  indigo: "#4105c1",
@@ -47,13 +49,18 @@ const a = {
47
49
  qalb: "#c90909",
48
50
  sage: "#bdd5c1",
49
51
  sky: "#b3e0f2",
52
+ slate: "#333333",
50
53
  sunlight: "#faf9e8",
51
54
  veryLightGray: "#fafafa",
52
55
  veryLightGrayO33: "#fafafa33",
53
56
  violet: "#c1a7e2",
54
57
  white: "white",
55
58
  whiteGreen: "#f2fcf5",
56
- whiteGreenA: "#dae8de"
59
+ whiteGreenA: "#dae8de",
60
+ whiteGreenB: "#f0f8f0",
61
+ whiteGreenC: "#e8f5e8",
62
+ whiteGreenD: "#f8fff8",
63
+ whiteBlue: "#f8f9fa"
57
64
  },
58
65
  constants: {
59
66
  appHeaderHeight: 58,