@alishenriques/design-system 0.4.1 → 0.4.2

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
- :root{--ds-color-bg: #0b0b0f;--ds-color-bg-raised: #131318;--ds-color-fg: #f4f1ea;--ds-color-muted: #9a958c;--ds-color-accent: #c8ff00;--ds-color-accent-ink: #111111;--ds-color-accent-soft: rgba(200, 255, 0, .1);--ds-color-border: rgba(244, 241, 234, .1);--ds-color-border-strong: rgba(244, 241, 234, .16);--ds-radius-sm: 8px;--ds-radius-md: 16px;--ds-space-1: .25rem;--ds-space-2: .5rem;--ds-space-3: .75rem;--ds-space-4: 1rem;--ds-space-5: 1.5rem;--ds-space-6: 2rem;--ds-space-8: 3rem;--ds-font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--ds-font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--ds-font-display: "Archivo", system-ui, -apple-system, sans-serif;--ds-motion-fast: .18s cubic-bezier(.22, 1, .36, 1)}.ds-dot-grid{background-image:radial-gradient(circle at 1px 1px,var(--ds-color-border-strong) 1px,transparent 0);background-size:22px 22px}._trigger_e3bgf_1{display:inline-flex;padding:0;border:2px solid var(--ds-color-accent);border-radius:50%;overflow:hidden;cursor:pointer;background:var(--ds-color-bg-raised);transition:transform var(--ds-motion-fast),box-shadow var(--ds-motion-fast)}._trigger_e3bgf_1:hover,._trigger_e3bgf_1:focus-visible{transform:scale(1.03);outline:none;box-shadow:0 0 0 4px var(--ds-color-accent-soft)}._image_e3bgf_19{width:100%;height:100%;object-fit:cover;display:block}._backdrop_e3bgf_26{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0b0b0fb8;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;transition:opacity .22s ease-out}._backdropVisible_e3bgf_48{opacity:1}._frame_e3bgf_55{position:relative;opacity:0;transition:opacity .26s ease-out}._frameVisible_e3bgf_61{opacity:1}._circle_e3bgf_53{position:absolute;inset:0;border-radius:50%;overflow:hidden;border:3px solid var(--ds-color-accent);box-shadow:0 20px 60px #00000080;transform:scale(.85);transition:transform .26s cubic-bezier(.22,1,.36,1)}._frameVisible_e3bgf_61 ._circle_e3bgf_53{transform:scale(1)}._expandedImage_e3bgf_80{width:100%;height:100%;object-fit:cover;display:block}._closeButton_e3bgf_87{position:absolute;top:-10px;right:-10px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--ds-color-border-strong);background:var(--ds-color-bg-raised);color:var(--ds-color-fg);font-size:20px;line-height:1;cursor:pointer;transition:border-color var(--ds-motion-fast),color var(--ds-motion-fast)}._closeButton_e3bgf_87:hover,._closeButton_e3bgf_87:focus-visible{border-color:var(--ds-color-accent);color:var(--ds-color-accent);outline:none}@media(prefers-reduced-motion:reduce){._backdrop_e3bgf_26,._frame_e3bgf_55,._circle_e3bgf_53{transition:none}}._button_1jhtl_1{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);border:0;border-radius:var(--ds-radius-sm);padding:var(--ds-space-3) var(--ds-space-4);font-family:var(--ds-font-sans);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:transform var(--ds-motion-fast),background-color var(--ds-motion-fast),box-shadow var(--ds-motion-fast)}._button_1jhtl_1:hover{transform:translateY(-1px)}._button_1jhtl_1:active{transform:translateY(0)}._button_1jhtl_1:disabled{cursor:not-allowed;opacity:.5;transform:none}._primary_1jhtl_33{background:var(--ds-color-accent);color:var(--ds-color-accent-ink);box-shadow:0 0 0 0 transparent}._primary_1jhtl_33:hover:not(:disabled){box-shadow:0 8px 24px color-mix(in srgb,var(--ds-color-accent) 35%,transparent)}._ghost_1jhtl_43{background:transparent;color:var(--ds-color-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-color-fg) 22%,transparent)}._trigger_10bud_1{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ds-color-border-strong);background:var(--ds-color-bg-raised);color:var(--ds-color-muted);padding:7px 12px;border-radius:8px;cursor:pointer;font-family:var(--ds-font-mono);font-size:12px;white-space:nowrap;transition:color var(--ds-motion-fast),border-color var(--ds-motion-fast)}._trigger_10bud_1:hover,._trigger_10bud_1:focus-visible{color:var(--ds-color-fg);border-color:var(--ds-color-accent)}._kbd_10bud_23{background:var(--ds-color-bg);border:1px solid var(--ds-color-border-strong);border-radius:4px;padding:1px 5px;font-family:var(--ds-font-mono)}._backdrop_10bud_31{position:fixed;inset:0;background:#0b0b0fb3;display:flex;align-items:flex-start;justify-content:center;padding:14vh 16px 16px;z-index:100}._dialog_10bud_42{width:100%;max-width:520px;background:var(--ds-color-bg-raised);border:1px solid var(--ds-color-border-strong);border-radius:12px;overflow:hidden;font-family:var(--ds-font-mono);box-shadow:0 20px 60px #00000080}._input_10bud_53{width:100%;background:transparent;border:0;border-bottom:1px solid var(--ds-color-border);color:var(--ds-color-fg);padding:16px 18px;font-family:var(--ds-font-mono);font-size:14px;outline:none}._input_10bud_53::placeholder{color:var(--ds-color-muted)}._list_10bud_69{list-style:none;margin:0;padding:8px;max-height:280px;overflow:auto}._list_10bud_69 a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ds-color-fg);font-size:13px}._list_10bud_69 a:hover,._list_10bud_69 a:focus-visible{background:var(--ds-color-accent-soft);color:var(--ds-color-accent)}._list_10bud_69 small{color:var(--ds-color-muted);font-size:11px}._eyebrow_1a4gy_1{margin:0;font-family:var(--ds-font-mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ds-color-muted)}._loadingLabel_1yug9_1{display:flex;align-items:center;justify-content:center;gap:4px;font-family:var(--ds-font-mono);text-transform:lowercase}._cursor_1yug9_10{display:inline-block;width:7px;height:14px;background:var(--ds-color-accent);animation:_blink_1yug9_1 1s step-end infinite}@media(prefers-reduced-motion:reduce){._cursor_1yug9_10{animation:none}}@keyframes _blink_1yug9_1{50%{opacity:0}}._panel_m16j3_1{position:relative;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);background:var(--ds-color-bg-raised);padding:clamp(28px,5vw,64px)}._list_27va3_1{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin:0;padding:0;list-style:none;font-family:var(--ds-font-mono);font-size:12px}._step_27va3_12{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ds-color-border-strong);border-radius:6px;padding:6px 10px;color:var(--ds-color-muted)}._step_27va3_12 b{color:var(--ds-color-accent);font-weight:600}._grid_94gwu_1{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0;background:var(--ds-color-border);border:1px solid var(--ds-color-border);border-radius:10px;overflow:hidden}._cell_94gwu_12{background:var(--ds-color-bg-raised);padding:var(--ds-space-4);display:flex;flex-direction:column-reverse}._value_94gwu_19{margin:0;font-family:var(--ds-font-mono);font-weight:700;font-size:22px;color:var(--ds-color-fg);font-variant-numeric:tabular-nums}._label_94gwu_28{font-family:var(--ds-font-mono);font-size:11px;color:var(--ds-color-muted);text-transform:uppercase;letter-spacing:.04em}._list_17qxg_1{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}._tag_17qxg_10{font-family:var(--ds-font-mono);font-size:12px;color:var(--ds-color-fg);border:1px solid var(--ds-color-border-strong);border-radius:999px;padding:6px 12px}._prompt_vxkw7_1{margin:0;display:flex;align-items:center;gap:2px;font-family:var(--ds-font-mono);font-size:13px;color:var(--ds-color-accent)}._path_vxkw7_11{color:var(--ds-color-muted)}._cursor_vxkw7_15{display:inline-block;width:7px;height:15px;margin-left:2px;background:var(--ds-color-accent);animation:_blink_vxkw7_1 1.1s step-end infinite}@media(prefers-reduced-motion:reduce){._cursor_vxkw7_15{animation:none;opacity:.7}}@keyframes _blink_vxkw7_1{50%{opacity:0}}
1
+ :root{--ds-color-bg: #0b0b0f;--ds-color-bg-raised: #131318;--ds-color-fg: #f4f1ea;--ds-color-muted: #9a958c;--ds-color-accent: #c8ff00;--ds-color-accent-ink: #111111;--ds-color-accent-soft: rgba(200, 255, 0, .1);--ds-color-border: rgba(244, 241, 234, .1);--ds-color-border-strong: rgba(244, 241, 234, .16);--ds-radius-sm: 8px;--ds-radius-md: 16px;--ds-space-1: .25rem;--ds-space-2: .5rem;--ds-space-3: .75rem;--ds-space-4: 1rem;--ds-space-5: 1.5rem;--ds-space-6: 2rem;--ds-space-8: 3rem;--ds-font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--ds-font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--ds-font-display: "Archivo", system-ui, -apple-system, sans-serif;--ds-motion-fast: .18s cubic-bezier(.22, 1, .36, 1)}.ds-dot-grid{background-image:radial-gradient(circle at 1px 1px,var(--ds-color-border-strong) 1px,transparent 0);background-size:22px 22px}._trigger_e3bgf_1{display:inline-flex;padding:0;border:2px solid var(--ds-color-accent);border-radius:50%;overflow:hidden;cursor:pointer;background:var(--ds-color-bg-raised);transition:transform var(--ds-motion-fast),box-shadow var(--ds-motion-fast)}._trigger_e3bgf_1:hover,._trigger_e3bgf_1:focus-visible{transform:scale(1.03);outline:none;box-shadow:0 0 0 4px var(--ds-color-accent-soft)}._image_e3bgf_19{width:100%;height:100%;object-fit:cover;display:block}._backdrop_e3bgf_26{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0b0b0fb8;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;transition:opacity .22s ease-out}._backdropVisible_e3bgf_48{opacity:1}._frame_e3bgf_55{position:relative;opacity:0;transition:opacity .26s ease-out}._frameVisible_e3bgf_61{opacity:1}._circle_e3bgf_53{position:absolute;inset:0;border-radius:50%;overflow:hidden;border:3px solid var(--ds-color-accent);box-shadow:0 20px 60px #00000080;transform:scale(.85);transition:transform .26s cubic-bezier(.22,1,.36,1)}._frameVisible_e3bgf_61 ._circle_e3bgf_53{transform:scale(1)}._expandedImage_e3bgf_80{width:100%;height:100%;object-fit:cover;display:block}._closeButton_e3bgf_87{position:absolute;top:-10px;right:-10px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--ds-color-border-strong);background:var(--ds-color-bg-raised);color:var(--ds-color-fg);font-size:20px;line-height:1;cursor:pointer;transition:border-color var(--ds-motion-fast),color var(--ds-motion-fast)}._closeButton_e3bgf_87:hover,._closeButton_e3bgf_87:focus-visible{border-color:var(--ds-color-accent);color:var(--ds-color-accent);outline:none}@media(prefers-reduced-motion:reduce){._backdrop_e3bgf_26,._frame_e3bgf_55,._circle_e3bgf_53{transition:none}}._button_1jhtl_1{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);border:0;border-radius:var(--ds-radius-sm);padding:var(--ds-space-3) var(--ds-space-4);font-family:var(--ds-font-sans);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:transform var(--ds-motion-fast),background-color var(--ds-motion-fast),box-shadow var(--ds-motion-fast)}._button_1jhtl_1:hover{transform:translateY(-1px)}._button_1jhtl_1:active{transform:translateY(0)}._button_1jhtl_1:disabled{cursor:not-allowed;opacity:.5;transform:none}._primary_1jhtl_33{background:var(--ds-color-accent);color:var(--ds-color-accent-ink);box-shadow:0 0 0 0 transparent}._primary_1jhtl_33:hover:not(:disabled){box-shadow:0 8px 24px color-mix(in srgb,var(--ds-color-accent) 35%,transparent)}._ghost_1jhtl_43{background:transparent;color:var(--ds-color-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-color-fg) 22%,transparent)}._trigger_10bud_1{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ds-color-border-strong);background:var(--ds-color-bg-raised);color:var(--ds-color-muted);padding:7px 12px;border-radius:8px;cursor:pointer;font-family:var(--ds-font-mono);font-size:12px;white-space:nowrap;transition:color var(--ds-motion-fast),border-color var(--ds-motion-fast)}._trigger_10bud_1:hover,._trigger_10bud_1:focus-visible{color:var(--ds-color-fg);border-color:var(--ds-color-accent)}._kbd_10bud_23{background:var(--ds-color-bg);border:1px solid var(--ds-color-border-strong);border-radius:4px;padding:1px 5px;font-family:var(--ds-font-mono)}._backdrop_10bud_31{position:fixed;inset:0;background:#0b0b0fb3;display:flex;align-items:flex-start;justify-content:center;padding:14vh 16px 16px;z-index:100}._dialog_10bud_42{width:100%;max-width:520px;background:var(--ds-color-bg-raised);border:1px solid var(--ds-color-border-strong);border-radius:12px;overflow:hidden;font-family:var(--ds-font-mono);box-shadow:0 20px 60px #00000080}._input_10bud_53{width:100%;background:transparent;border:0;border-bottom:1px solid var(--ds-color-border);color:var(--ds-color-fg);padding:16px 18px;font-family:var(--ds-font-mono);font-size:14px;outline:none}._input_10bud_53::placeholder{color:var(--ds-color-muted)}._list_10bud_69{list-style:none;margin:0;padding:8px;max-height:280px;overflow:auto}._list_10bud_69 a{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ds-color-fg);font-size:13px}._list_10bud_69 a:hover,._list_10bud_69 a:focus-visible{background:var(--ds-color-accent-soft);color:var(--ds-color-accent)}._list_10bud_69 small{color:var(--ds-color-muted);font-size:11px}._eyebrow_1a4gy_1{margin:0;font-family:var(--ds-font-mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ds-color-muted)}._loadingLabel_1yug9_1{display:flex;align-items:center;justify-content:center;gap:4px;font-family:var(--ds-font-mono);text-transform:lowercase}._cursor_1yug9_10{display:inline-block;width:7px;height:14px;background:var(--ds-color-accent);animation:_blink_1yug9_1 1s step-end infinite}@media(prefers-reduced-motion:reduce){._cursor_1yug9_10{animation:none}}@keyframes _blink_1yug9_1{50%{opacity:0}}._panel_m16j3_1{position:relative;border:1px solid var(--ds-color-border);border-radius:var(--ds-radius-md);background:var(--ds-color-bg-raised);padding:clamp(28px,5vw,64px)}._list_27va3_1{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin:0;padding:0;list-style:none;font-family:var(--ds-font-mono);font-size:12px}._step_27va3_12{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ds-color-border-strong);border-radius:6px;padding:6px 10px;color:var(--ds-color-muted)}._step_27va3_12 b{color:var(--ds-color-accent);font-weight:600}._quote_1og2n_1{display:flex;align-items:flex-start;gap:var(--ds-space-3);margin:0;border-left:3px solid var(--ds-color-accent);border-radius:0 var(--ds-radius-sm) var(--ds-radius-sm) 0;background:var(--ds-color-accent-soft);padding:var(--ds-space-4) var(--ds-space-5)}._marker_1og2n_12{flex-shrink:0;font-family:var(--ds-font-mono);font-weight:600;color:var(--ds-color-accent)}._text_1og2n_19{margin:0;font-family:var(--ds-font-mono);font-size:15px;line-height:1.6;color:var(--ds-color-fg)}._cursor_1og2n_27{display:inline-block;width:8px;height:15px;margin-left:4px;vertical-align:text-bottom;background:var(--ds-color-accent);animation:_blink_1og2n_1 1s step-end infinite}@media(prefers-reduced-motion:reduce){._cursor_1og2n_27{animation:none}}@keyframes _blink_1og2n_1{50%{opacity:0}}._grid_94gwu_1{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0;background:var(--ds-color-border);border:1px solid var(--ds-color-border);border-radius:10px;overflow:hidden}._cell_94gwu_12{background:var(--ds-color-bg-raised);padding:var(--ds-space-4);display:flex;flex-direction:column-reverse}._value_94gwu_19{margin:0;font-family:var(--ds-font-mono);font-weight:700;font-size:22px;color:var(--ds-color-fg);font-variant-numeric:tabular-nums}._label_94gwu_28{font-family:var(--ds-font-mono);font-size:11px;color:var(--ds-color-muted);text-transform:uppercase;letter-spacing:.04em}._list_17qxg_1{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}._tag_17qxg_10{font-family:var(--ds-font-mono);font-size:12px;color:var(--ds-color-fg);border:1px solid var(--ds-color-border-strong);border-radius:999px;padding:6px 12px}._prompt_vxkw7_1{margin:0;display:flex;align-items:center;gap:2px;font-family:var(--ds-font-mono);font-size:13px;color:var(--ds-color-accent)}._path_vxkw7_11{color:var(--ds-color-muted)}._cursor_vxkw7_15{display:inline-block;width:7px;height:15px;margin-left:2px;background:var(--ds-color-accent);animation:_blink_vxkw7_1 1.1s step-end infinite}@media(prefers-reduced-motion:reduce){._cursor_vxkw7_15{animation:none;opacity:.7}}@keyframes _blink_vxkw7_1{50%{opacity:0}}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,8 @@ export { Panel } from './components/Panel';
12
12
  export type { PanelProps } from './components/Panel';
13
13
  export { PipelineBadges } from './components/PipelineBadges';
14
14
  export type { PipelineBadgesProps, PipelineStep } from './components/PipelineBadges';
15
+ export { Quote } from './components/Quote';
16
+ export type { QuoteProps } from './components/Quote';
15
17
  export { StatGrid } from './components/StatGrid';
16
18
  export type { Stat, StatGridProps } from './components/StatGrid';
17
19
  export { TagList } from './components/TagList';
package/dist/index.js CHANGED
@@ -1,49 +1,49 @@
1
1
  "use client";
2
- import { jsxs as r, Fragment as E, jsx as e } from "react/jsx-runtime";
3
- import { useState as k, useEffect as B, useRef as D } from "react";
4
- const T = "_trigger_e3bgf_1", A = "_image_e3bgf_19", I = "_backdrop_e3bgf_26", S = "_backdropVisible_e3bgf_48", F = "_frame_e3bgf_55", K = "_frameVisible_e3bgf_61", q = "_circle_e3bgf_53", P = "_expandedImage_e3bgf_80", O = "_closeButton_e3bgf_87", d = {
2
+ import { jsxs as r, Fragment as L, jsx as e } from "react/jsx-runtime";
3
+ import { useState as v, useEffect as $, useRef as D } from "react";
4
+ const T = "_trigger_e3bgf_1", A = "_image_e3bgf_19", I = "_backdrop_e3bgf_26", S = "_backdropVisible_e3bgf_48", F = "_frame_e3bgf_55", K = "_frameVisible_e3bgf_61", P = "_circle_e3bgf_53", O = "_expandedImage_e3bgf_80", Q = "_closeButton_e3bgf_87", d = {
5
5
  trigger: T,
6
6
  image: A,
7
7
  backdrop: I,
8
8
  backdropVisible: S,
9
9
  frame: F,
10
10
  frameVisible: K,
11
- circle: q,
12
- expandedImage: P,
13
- closeButton: O
11
+ circle: P,
12
+ expandedImage: O,
13
+ closeButton: Q
14
14
  }, R = 96, U = "min(70vw, 60vh, 440px)";
15
- function he({
15
+ function we({
16
16
  src: t,
17
- alt: a,
18
- size: l = R,
17
+ alt: o,
18
+ size: a = R,
19
19
  expandedSize: n = U,
20
20
  objectPosition: s = "center",
21
21
  closeLabel: c = "Close",
22
22
  className: m,
23
23
  ...i
24
24
  }) {
25
- const [u, b] = k(!1), [f, h] = k(!1);
26
- B(() => {
25
+ const [u, b] = v(!1), [f, h] = v(!1);
26
+ $(() => {
27
27
  if (!u) return;
28
- function p(V) {
28
+ function g(V) {
29
29
  V.key === "Escape" && b(!1);
30
30
  }
31
- document.addEventListener("keydown", p);
32
- const N = document.body.style.overflow;
31
+ document.addEventListener("keydown", g);
32
+ const w = document.body.style.overflow;
33
33
  document.body.style.overflow = "hidden";
34
- const L = requestAnimationFrame(() => h(!0));
34
+ const q = requestAnimationFrame(() => h(!0));
35
35
  return () => {
36
- document.removeEventListener("keydown", p), document.body.style.overflow = N, cancelAnimationFrame(L), h(!1);
36
+ document.removeEventListener("keydown", g), document.body.style.overflow = w, cancelAnimationFrame(q), h(!1);
37
37
  };
38
38
  }, [u]);
39
- const v = [d.trigger, m].filter(Boolean).join(" "), o = [d.frame, f && d.frameVisible].filter(Boolean).join(" "), _ = [d.backdrop, f && d.backdropVisible].filter(Boolean).join(" ");
40
- return /* @__PURE__ */ r(E, { children: [
39
+ const N = [d.trigger, m].filter(Boolean).join(" "), l = [d.frame, f && d.frameVisible].filter(Boolean).join(" "), _ = [d.backdrop, f && d.backdropVisible].filter(Boolean).join(" ");
40
+ return /* @__PURE__ */ r(L, { children: [
41
41
  /* @__PURE__ */ e(
42
42
  "button",
43
43
  {
44
44
  type: "button",
45
- className: v,
46
- style: { width: l, height: l },
45
+ className: N,
46
+ style: { width: a, height: a },
47
47
  onClick: () => b(!0),
48
48
  "aria-haspopup": "dialog",
49
49
  ...i,
@@ -51,7 +51,7 @@ function he({
51
51
  "img",
52
52
  {
53
53
  src: t,
54
- alt: a,
54
+ alt: o,
55
55
  className: d.image,
56
56
  style: { objectPosition: s },
57
57
  loading: "lazy"
@@ -59,20 +59,20 @@ function he({
59
59
  )
60
60
  }
61
61
  ),
62
- u && /* @__PURE__ */ e("div", { className: _, onClick: (p) => p.target === p.currentTarget && b(!1), children: /* @__PURE__ */ r(
62
+ u && /* @__PURE__ */ e("div", { className: _, onClick: (g) => g.target === g.currentTarget && b(!1), children: /* @__PURE__ */ r(
63
63
  "div",
64
64
  {
65
- className: o,
65
+ className: l,
66
66
  style: { width: n, height: n },
67
67
  role: "dialog",
68
68
  "aria-modal": "true",
69
- "aria-label": a,
69
+ "aria-label": o,
70
70
  children: [
71
71
  /* @__PURE__ */ e("div", { className: d.circle, children: /* @__PURE__ */ e(
72
72
  "img",
73
73
  {
74
74
  src: t,
75
- alt: a,
75
+ alt: o,
76
76
  className: d.expandedImage,
77
77
  style: { objectPosition: s }
78
78
  }
@@ -92,95 +92,95 @@ function he({
92
92
  ) })
93
93
  ] });
94
94
  }
95
- const Z = "_button_1jhtl_1", G = "_primary_1jhtl_33", Q = "_ghost_1jhtl_43", C = {
95
+ const Z = "_button_1jhtl_1", G = "_primary_1jhtl_33", X = "_ghost_1jhtl_43", C = {
96
96
  button: Z,
97
97
  primary: G,
98
- ghost: Q
98
+ ghost: X
99
99
  };
100
- function ye({
100
+ function Be({
101
101
  children: t,
102
- variant: a = "primary",
103
- type: l = "button",
102
+ variant: o = "primary",
103
+ type: a = "button",
104
104
  className: n,
105
105
  ...s
106
106
  }) {
107
- const c = [C.button, C[a], n].filter(Boolean).join(" ");
108
- return /* @__PURE__ */ e("button", { type: l, className: c, "data-variant": a, ...s, children: t });
107
+ const c = [C.button, C[o], n].filter(Boolean).join(" ");
108
+ return /* @__PURE__ */ e("button", { type: a, className: c, "data-variant": o, ...s, children: t });
109
109
  }
110
- const X = "_trigger_10bud_1", H = "_kbd_10bud_23", J = "_backdrop_10bud_31", M = "_dialog_10bud_42", W = "_input_10bud_53", Y = "_list_10bud_69", g = {
111
- trigger: X,
112
- kbd: H,
113
- backdrop: J,
114
- dialog: M,
115
- input: W,
116
- list: Y
110
+ const H = "_trigger_10bud_1", J = "_kbd_10bud_23", M = "_backdrop_10bud_31", W = "_dialog_10bud_42", Y = "_input_10bud_53", z = "_list_10bud_69", p = {
111
+ trigger: H,
112
+ kbd: J,
113
+ backdrop: M,
114
+ dialog: W,
115
+ input: Y,
116
+ list: z
117
117
  };
118
- function ke({
118
+ function $e({
119
119
  items: t,
120
- triggerLabel: a = "Search",
121
- placeholder: l = "Type a command or search…",
120
+ triggerLabel: o = "Search",
121
+ placeholder: a = "Type a command or search…",
122
122
  label: n = "Command palette",
123
123
  className: s,
124
124
  ...c
125
125
  }) {
126
- const [m, i] = k(!1), [u, b] = k(""), f = D(null);
127
- B(() => {
126
+ const [m, i] = v(!1), [u, b] = v(""), f = D(null);
127
+ $(() => {
128
128
  m && f.current?.focus();
129
- }, [m]), B(() => {
130
- function o(_) {
129
+ }, [m]), $(() => {
130
+ function l(_) {
131
131
  if ((_.metaKey || _.ctrlKey) && _.key.toLowerCase() === "k") {
132
- _.preventDefault(), i((N) => !N);
132
+ _.preventDefault(), i((w) => !w);
133
133
  return;
134
134
  }
135
135
  _.key === "Escape" && i(!1);
136
136
  }
137
- return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
137
+ return document.addEventListener("keydown", l), () => document.removeEventListener("keydown", l);
138
138
  }, []);
139
- const h = t.filter((o) => `${o.label} ${o.hint ?? ""}`.toLowerCase().includes(u.trim().toLowerCase())), v = [g.trigger, s].filter(Boolean).join(" ");
140
- return /* @__PURE__ */ r(E, { children: [
141
- /* @__PURE__ */ r("button", { type: "button", className: v, onClick: () => i(!0), ...c, children: [
142
- /* @__PURE__ */ e("span", { children: a }),
143
- /* @__PURE__ */ e("kbd", { className: g.kbd, children: "⌘K" })
139
+ const h = t.filter((l) => `${l.label} ${l.hint ?? ""}`.toLowerCase().includes(u.trim().toLowerCase())), N = [p.trigger, s].filter(Boolean).join(" ");
140
+ return /* @__PURE__ */ r(L, { children: [
141
+ /* @__PURE__ */ r("button", { type: "button", className: N, onClick: () => i(!0), ...c, children: [
142
+ /* @__PURE__ */ e("span", { children: o }),
143
+ /* @__PURE__ */ e("kbd", { className: p.kbd, children: "⌘K" })
144
144
  ] }),
145
- m && /* @__PURE__ */ e("div", { className: g.backdrop, onClick: (o) => o.target === o.currentTarget && i(!1), children: /* @__PURE__ */ r("div", { className: g.dialog, role: "dialog", "aria-modal": "true", "aria-label": n, children: [
145
+ m && /* @__PURE__ */ e("div", { className: p.backdrop, onClick: (l) => l.target === l.currentTarget && i(!1), children: /* @__PURE__ */ r("div", { className: p.dialog, role: "dialog", "aria-modal": "true", "aria-label": n, children: [
146
146
  /* @__PURE__ */ e(
147
147
  "input",
148
148
  {
149
149
  ref: f,
150
150
  type: "text",
151
- className: g.input,
152
- placeholder: l,
151
+ className: p.input,
152
+ placeholder: a,
153
153
  value: u,
154
- onChange: (o) => b(o.target.value),
154
+ onChange: (l) => b(l.target.value),
155
155
  autoComplete: "off"
156
156
  }
157
157
  ),
158
- /* @__PURE__ */ e("ul", { className: g.list, children: h.map((o) => (
158
+ /* @__PURE__ */ e("ul", { className: p.list, children: h.map((l) => (
159
159
  // Keyed by href, not label: two items can share a label (e.g.
160
160
  // a nav link and a more specific shortcut to the same topic).
161
- /* @__PURE__ */ e("li", { children: /* @__PURE__ */ r("a", { href: o.href, onClick: () => i(!1), children: [
162
- /* @__PURE__ */ e("span", { children: o.label }),
163
- o.hint && /* @__PURE__ */ e("small", { children: o.hint })
164
- ] }) }, o.href)
161
+ /* @__PURE__ */ e("li", { children: /* @__PURE__ */ r("a", { href: l.href, onClick: () => i(!1), children: [
162
+ /* @__PURE__ */ e("span", { children: l.label }),
163
+ l.hint && /* @__PURE__ */ e("small", { children: l.hint })
164
+ ] }) }, l.href)
165
165
  )) })
166
166
  ] }) })
167
167
  ] });
168
168
  }
169
- const z = "_eyebrow_1a4gy_1", ee = {
170
- eyebrow: z
169
+ const ee = "_eyebrow_1a4gy_1", te = {
170
+ eyebrow: ee
171
171
  };
172
- function ve({ children: t, className: a, ...l }) {
173
- const n = [ee.eyebrow, a].filter(Boolean).join(" ");
174
- return /* @__PURE__ */ e("p", { className: n, ...l, children: t });
172
+ function Ce({ children: t, className: o, ...a }) {
173
+ const n = [te.eyebrow, o].filter(Boolean).join(" ");
174
+ return /* @__PURE__ */ e("p", { className: n, ...a, children: t });
175
175
  }
176
- const te = "_loadingLabel_1yug9_1", se = "_cursor_1yug9_10", $ = {
177
- loadingLabel: te,
178
- cursor: se
176
+ const se = "_loadingLabel_1yug9_1", oe = "_cursor_1yug9_10", j = {
177
+ loadingLabel: se,
178
+ cursor: oe
179
179
  };
180
- function Ne({
180
+ function je({
181
181
  isLoading: t,
182
- loadingText: a,
183
- children: l,
182
+ loadingText: o,
183
+ children: a,
184
184
  className: n,
185
185
  style: s,
186
186
  disabled: c,
@@ -202,81 +202,98 @@ function Ne({
202
202
  disabled: !!c || t,
203
203
  "aria-busy": t || void 0,
204
204
  ...i,
205
- children: t ? /* @__PURE__ */ r("span", { className: $.loadingLabel, children: [
205
+ children: t ? /* @__PURE__ */ r("span", { className: j.loadingLabel, children: [
206
206
  /* @__PURE__ */ e("span", { "aria-hidden": "true", children: "$" }),
207
- a,
208
- /* @__PURE__ */ e("span", { "aria-hidden": "true", className: $.cursor })
209
- ] }) : l
207
+ o,
208
+ /* @__PURE__ */ e("span", { "aria-hidden": "true", className: j.cursor })
209
+ ] }) : a
210
210
  }
211
211
  );
212
212
  }
213
- const ae = "_panel_m16j3_1", le = {
213
+ const ae = "_panel_m16j3_1", ne = {
214
214
  panel: ae
215
215
  };
216
- function we({ children: t, dots: a = !1, className: l, ...n }) {
217
- const s = [le.panel, a && "ds-dot-grid", l].filter(Boolean).join(" ");
216
+ function xe({ children: t, dots: o = !1, className: a, ...n }) {
217
+ const s = [ne.panel, o && "ds-dot-grid", a].filter(Boolean).join(" ");
218
218
  return /* @__PURE__ */ e("div", { className: s, ...n, children: t });
219
219
  }
220
- const ne = "_list_27va3_1", oe = "_step_27va3_12", j = {
221
- list: ne,
222
- step: oe
220
+ const le = "_list_27va3_1", re = "_step_27va3_12", x = {
221
+ list: le,
222
+ step: re
223
223
  };
224
- function Be({ steps: t, className: a, ...l }) {
225
- const n = [j.list, a].filter(Boolean).join(" ");
226
- return /* @__PURE__ */ e("ul", { className: n, ...l, children: t.map((s) => /* @__PURE__ */ r("li", { className: j.step, children: [
224
+ function Ee({ steps: t, className: o, ...a }) {
225
+ const n = [x.list, o].filter(Boolean).join(" ");
226
+ return /* @__PURE__ */ e("ul", { className: n, ...a, children: t.map((s) => /* @__PURE__ */ r("li", { className: x.step, children: [
227
227
  s.label,
228
228
  " ",
229
229
  /* @__PURE__ */ e("b", { children: s.value })
230
230
  ] }, s.label)) });
231
231
  }
232
- const re = "_grid_94gwu_1", ce = "_cell_94gwu_12", ie = "_value_94gwu_19", de = "_label_94gwu_28", y = {
233
- grid: re,
234
- cell: ce,
235
- value: ie,
236
- label: de
232
+ const ce = "_quote_1og2n_1", ie = "_marker_1og2n_12", de = "_text_1og2n_19", ue = "_cursor_1og2n_27", y = {
233
+ quote: ce,
234
+ marker: ie,
235
+ text: de,
236
+ cursor: ue
237
237
  };
238
- function Ce({ stats: t, className: a, ...l }) {
239
- const n = [y.grid, a].filter(Boolean).join(" ");
240
- return /* @__PURE__ */ e("dl", { className: n, ...l, children: t.map((s) => /* @__PURE__ */ r("div", { className: y.cell, children: [
241
- /* @__PURE__ */ e("dd", { className: y.value, children: s.value }),
242
- /* @__PURE__ */ e("dt", { className: y.label, children: s.label })
238
+ function Le({ children: t, marker: o = "#", cursor: a = !0, className: n, ...s }) {
239
+ const c = [y.quote, n].filter(Boolean).join(" ");
240
+ return /* @__PURE__ */ r("blockquote", { className: c, ...s, children: [
241
+ /* @__PURE__ */ e("span", { className: y.marker, "aria-hidden": "true", children: o }),
242
+ /* @__PURE__ */ r("p", { className: y.text, children: [
243
+ t,
244
+ a && /* @__PURE__ */ e("span", { className: y.cursor, "aria-hidden": "true" })
245
+ ] })
246
+ ] });
247
+ }
248
+ const _e = "_grid_94gwu_1", me = "_cell_94gwu_12", be = "_value_94gwu_19", ge = "_label_94gwu_28", k = {
249
+ grid: _e,
250
+ cell: me,
251
+ value: be,
252
+ label: ge
253
+ };
254
+ function qe({ stats: t, className: o, ...a }) {
255
+ const n = [k.grid, o].filter(Boolean).join(" ");
256
+ return /* @__PURE__ */ e("dl", { className: n, ...a, children: t.map((s) => /* @__PURE__ */ r("div", { className: k.cell, children: [
257
+ /* @__PURE__ */ e("dd", { className: k.value, children: s.value }),
258
+ /* @__PURE__ */ e("dt", { className: k.label, children: s.label })
243
259
  ] }, s.label)) });
244
260
  }
245
- const ue = "_list_17qxg_1", _e = "_tag_17qxg_10", x = {
246
- list: ue,
247
- tag: _e
261
+ const pe = "_list_17qxg_1", fe = "_tag_17qxg_10", E = {
262
+ list: pe,
263
+ tag: fe
248
264
  };
249
- function $e({ tags: t, className: a, ...l }) {
250
- const n = [x.list, a].filter(Boolean).join(" ");
251
- return /* @__PURE__ */ e("ul", { className: n, ...l, children: t.map((s) => /* @__PURE__ */ e("li", { className: x.tag, children: s }, s)) });
265
+ function Ve({ tags: t, className: o, ...a }) {
266
+ const n = [E.list, o].filter(Boolean).join(" ");
267
+ return /* @__PURE__ */ e("ul", { className: n, ...a, children: t.map((s) => /* @__PURE__ */ e("li", { className: E.tag, children: s }, s)) });
252
268
  }
253
- const me = "_prompt_vxkw7_1", be = "_path_vxkw7_11", pe = "_cursor_vxkw7_15", w = {
254
- prompt: me,
255
- path: be,
256
- cursor: pe
269
+ const he = "_prompt_vxkw7_1", ye = "_path_vxkw7_11", ke = "_cursor_vxkw7_15", B = {
270
+ prompt: he,
271
+ path: ye,
272
+ cursor: ke
257
273
  };
258
- function je({ user: t, host: a, command: l, className: n, ...s }) {
259
- const c = [w.prompt, n].filter(Boolean).join(" ");
274
+ function De({ user: t, host: o, command: a, className: n, ...s }) {
275
+ const c = [B.prompt, n].filter(Boolean).join(" ");
260
276
  return /* @__PURE__ */ r("p", { className: c, ...s, children: [
261
- /* @__PURE__ */ r("span", { className: w.path, children: [
277
+ /* @__PURE__ */ r("span", { className: B.path, children: [
262
278
  t,
263
279
  "@",
264
- a
280
+ o
265
281
  ] }),
266
282
  " ~$ ",
267
- l,
268
- /* @__PURE__ */ e("span", { className: w.cursor, "aria-hidden": "true" })
283
+ a,
284
+ /* @__PURE__ */ e("span", { className: B.cursor, "aria-hidden": "true" })
269
285
  ] });
270
286
  }
271
287
  export {
272
- he as Avatar,
273
- ye as Button,
274
- ke as CommandPalette,
275
- ve as Eyebrow,
276
- Ne as LoadingButton,
277
- we as Panel,
278
- Be as PipelineBadges,
279
- Ce as StatGrid,
280
- $e as TagList,
281
- je as TerminalPrompt
288
+ we as Avatar,
289
+ Be as Button,
290
+ $e as CommandPalette,
291
+ Ce as Eyebrow,
292
+ je as LoadingButton,
293
+ xe as Panel,
294
+ Ee as PipelineBadges,
295
+ Le as Quote,
296
+ qe as StatGrid,
297
+ Ve as TagList,
298
+ De as TerminalPrompt
282
299
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alishenriques/design-system",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Isolated design system for Alis portfolio and future products",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,8 @@
25
25
  "lint": "eslint src",
26
26
  "typecheck": "tsc --noEmit",
27
27
  "test": "vitest run",
28
- "test:watch": "vitest"
28
+ "test:watch": "vitest",
29
+ "prepack": "yarn build"
29
30
  },
30
31
  "peerDependencies": {
31
32
  "react": "^19.0.0",