@alishenriques/design-system 0.4.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/components/Quote/Quote.d.ts +9 -1
- package/dist/components/SidePanel/SidePanel.d.ts +18 -0
- package/dist/components/SidePanel/index.d.ts +2 -0
- package/dist/components/Timeline/Timeline.d.ts +19 -0
- package/dist/components/Timeline/index.d.ts +2 -0
- package/dist/design-system.css +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +297 -189
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,10 +35,12 @@ yarn dev # build em watch
|
|
|
35
35
|
- `LoadingButton` — botão com estado de carregamento embutido (`isLoading`, `loadingText`)
|
|
36
36
|
- `Panel` — superfície elevada com borda, com fundo em grade de pontos opcional
|
|
37
37
|
- `PipelineBadges` — chips estilo pipeline de CI
|
|
38
|
-
- `Quote` — citação em destaque estilo terminal (`#`/marcador customizável, cursor piscando opcional)
|
|
38
|
+
- `Quote` — citação em destaque estilo terminal (`#`/marcador customizável, cursor piscando opcional, `float` para puxar para a lateral)
|
|
39
|
+
- `SidePanel` — painel lateral deslizante estilo GitKraken (`open`/`onClose` controlados, fecha no ×/Escape/clique fora)
|
|
39
40
|
- `StatGrid` — grade de estatísticas
|
|
40
41
|
- `TagList` — lista de tags
|
|
41
42
|
- `TerminalPrompt` — linha de prompt de terminal com cursor piscando
|
|
43
|
+
- `Timeline` — grafo vertical estilo GitKraken (nós empilhados e clicáveis, ligados por linhas coloridas em rotação automática)
|
|
42
44
|
|
|
43
45
|
Estilos via CSS Modules e tokens `--ds-*` (`src/tokens.css`).
|
|
44
46
|
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { BlockquoteHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type QuoteFloat = "none" | "left" | "right";
|
|
2
3
|
export type QuoteProps = {
|
|
3
4
|
children: ReactNode;
|
|
4
5
|
/** Small comment-style marker before the text. Default: "#". */
|
|
5
6
|
marker?: string;
|
|
6
7
|
/** Shows a blinking block cursor after the text. Default: true. */
|
|
7
8
|
cursor?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Pulls the quote to a side, magazine-style, with surrounding text
|
|
11
|
+
* wrapping around it — only from the sm breakpoint up (640px); below that
|
|
12
|
+
* it always stacks in normal flow, since a floated quote has no room to
|
|
13
|
+
* breathe on a narrow screen. Default: "none" (stays inline, full width).
|
|
14
|
+
*/
|
|
15
|
+
float?: QuoteFloat;
|
|
8
16
|
} & Omit<BlockquoteHTMLAttributes<HTMLQuoteElement>, "children">;
|
|
9
17
|
/**
|
|
10
18
|
* A terminal-styled pull-quote: an accent left border, a comment-style marker
|
|
@@ -13,4 +21,4 @@ export type QuoteProps = {
|
|
|
13
21
|
* calling out a key sentence from a longer piece of copy (a bio, an article)
|
|
14
22
|
* as its own visual beat, semantically a `<blockquote>`.
|
|
15
23
|
*/
|
|
16
|
-
export declare function Quote({ children, marker, cursor, className, ...props }: QuoteProps): import("react").JSX.Element;
|
|
24
|
+
export declare function Quote({ children, marker, cursor, float, className, ...props }: QuoteProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type SidePanelProps = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
/** Accessible label for the dialog, e.g. the selected item's name. */
|
|
6
|
+
label: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
/** Accessible label for the × button that closes the panel. Default: "Close". */
|
|
9
|
+
closeLabel?: string;
|
|
10
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, "children">;
|
|
11
|
+
/**
|
|
12
|
+
* A lateral drawer that slides in from the right over a dimming backdrop —
|
|
13
|
+
* the GitKraken-style detail panel. Stays mounted while closed (slides
|
|
14
|
+
* off-screen via a CSS transform, `aria-hidden` toggled) so the same
|
|
15
|
+
* transition plays going out, not just coming in. Closed by the × button, a
|
|
16
|
+
* backdrop click, or Escape.
|
|
17
|
+
*/
|
|
18
|
+
export declare function SidePanel({ open, onClose, label, children, closeLabel, className, ...props }: SidePanelProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
export type TimelineItem = {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
/** Small square logo shown inside the node. Falls back to the label's first letter. */
|
|
6
|
+
iconUrl?: string | null;
|
|
7
|
+
};
|
|
8
|
+
export type TimelineProps = {
|
|
9
|
+
items: TimelineItem[];
|
|
10
|
+
/** The currently selected item's id, if any. */
|
|
11
|
+
selectedId?: string | null;
|
|
12
|
+
onSelect?: (id: string) => void;
|
|
13
|
+
} & Omit<HTMLAttributes<HTMLOListElement>, "children">;
|
|
14
|
+
/**
|
|
15
|
+
* A vertical, GitKraken-style commit graph: stacked, clickable nodes
|
|
16
|
+
* connected by colored lines, in the order given. Pair with `SidePanel` for
|
|
17
|
+
* the GitKraken-style sliding detail view.
|
|
18
|
+
*/
|
|
19
|
+
export declare function Timeline({ items, selectedId, onSelect, className, ...props }: TimelineProps): import("react").JSX.Element;
|
package/dist/design-system.css
CHANGED
|
@@ -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}._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}}
|
|
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_sjisa_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)}@media(min-width:640px){._floatLeft_sjisa_13,._floatRight_sjisa_14{max-width:320px;margin-top:4px;margin-bottom:16px}._floatLeft_sjisa_13{float:left;margin-right:24px}._floatRight_sjisa_14{float:right;margin-left:24px}}._marker_sjisa_31{flex-shrink:0;font-family:var(--ds-font-mono);font-weight:600;color:var(--ds-color-accent)}._text_sjisa_38{margin:0;font-family:var(--ds-font-mono);font-size:15px;line-height:1.6;color:var(--ds-color-fg)}._cursor_sjisa_46{display:inline-block;width:8px;height:15px;margin-left:4px;vertical-align:text-bottom;background:var(--ds-color-accent);animation:_blink_sjisa_1 1s step-end infinite}@media(prefers-reduced-motion:reduce){._cursor_sjisa_46{animation:none}}@keyframes _blink_sjisa_1{50%{opacity:0}}._backdrop_ihclc_1{position:fixed;inset:0;z-index:60;background:#0009;opacity:0;pointer-events:none;transition:opacity var(--ds-motion-fast)}._backdropVisible_ihclc_11{opacity:1;pointer-events:auto}._panel_ihclc_16{position:fixed;top:0;right:0;bottom:0;z-index:61;display:flex;flex-direction:column;width:min(420px,100vw);overflow-y:auto;background:var(--ds-color-bg-raised);border-left:1px solid var(--ds-color-border-strong);box-shadow:-24px 0 48px #00000073;padding:var(--ds-space-6) var(--ds-space-5);padding-top:calc(var(--ds-space-6) + env(safe-area-inset-top,0px));transform:translate(100%);transition:transform var(--ds-motion-fast)}._panelOpen_ihclc_35{transform:translate(0)}._closeButton_ihclc_39{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--ds-color-border-strong);border-radius:999px;background:none;color:var(--ds-color-muted);cursor:pointer;font-size:18px;line-height:1;flex:none}._closeButton_ihclc_39:hover{color:var(--ds-color-fg)}._content_ihclc_60{display:flex;flex-direction:column;gap:var(--ds-space-4);margin-top:var(--ds-space-5)}._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}}._list_nynky_1{--timeline-node-size: 48px;list-style:none;margin:0;padding:0;display:flex;flex-direction:column}._row_nynky_10{position:relative;padding-bottom:var(--ds-space-5)}._row_nynky_10:last-child{padding-bottom:0}._line_nynky_19{position:absolute;top:var(--timeline-node-size);bottom:0;left:calc(var(--timeline-node-size) / 2 - 1px);width:2px;background:var(--timeline-color);opacity:.55}._button_nynky_29{display:flex;align-items:center;gap:var(--ds-space-4);width:100%;background:none;border:0;padding:0;cursor:pointer;font-family:var(--ds-font-sans);text-align:left}._node_nynky_42{flex:none;display:flex;align-items:center;justify-content:center;width:var(--timeline-node-size);height:var(--timeline-node-size);border-radius:50%;background:var(--ds-color-bg-raised);border:2px solid var(--timeline-color);box-shadow:0 0 0 4px var(--ds-color-bg);overflow:hidden;transition:transform var(--ds-motion-fast),box-shadow var(--ds-motion-fast)}._button_nynky_29:hover ._node_nynky_42,._button_nynky_29:focus-visible ._node_nynky_42{transform:scale(1.06)}._nodeSelected_nynky_64{box-shadow:0 0 0 4px var(--ds-color-bg),0 0 0 7px var(--timeline-color)}._icon_nynky_68{width:100%;height:100%;object-fit:cover}._fallback_nynky_74{font-family:var(--ds-font-mono);font-weight:700;font-size:16px;color:var(--timeline-color)}._label_nynky_81{font-size:15px;font-weight:500;color:var(--ds-color-fg)}._button_nynky_29:focus-visible{outline:2px solid var(--ds-color-accent);outline-offset:4px;border-radius:var(--ds-radius-sm)}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,9 +14,13 @@ export { PipelineBadges } from './components/PipelineBadges';
|
|
|
14
14
|
export type { PipelineBadgesProps, PipelineStep } from './components/PipelineBadges';
|
|
15
15
|
export { Quote } from './components/Quote';
|
|
16
16
|
export type { QuoteProps } from './components/Quote';
|
|
17
|
+
export { SidePanel } from './components/SidePanel';
|
|
18
|
+
export type { SidePanelProps } from './components/SidePanel';
|
|
17
19
|
export { StatGrid } from './components/StatGrid';
|
|
18
20
|
export type { Stat, StatGridProps } from './components/StatGrid';
|
|
19
21
|
export { TagList } from './components/TagList';
|
|
20
22
|
export type { TagListProps } from './components/TagList';
|
|
21
23
|
export { TerminalPrompt } from './components/TerminalPrompt';
|
|
22
24
|
export type { TerminalPromptProps } from './components/TerminalPrompt';
|
|
25
|
+
export { Timeline } from './components/Timeline';
|
|
26
|
+
export type { TimelineItem, TimelineProps } from './components/Timeline';
|
package/dist/index.js
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as r, Fragment as L, jsx as e } from "react/jsx-runtime";
|
|
3
|
-
import { useState as
|
|
4
|
-
const
|
|
5
|
-
trigger:
|
|
6
|
-
image:
|
|
7
|
-
backdrop:
|
|
8
|
-
backdropVisible:
|
|
9
|
-
frame:
|
|
10
|
-
frameVisible:
|
|
3
|
+
import { useState as w, useEffect as $, useRef as O } from "react";
|
|
4
|
+
const q = "_trigger_e3bgf_1", T = "_image_e3bgf_19", F = "_backdrop_e3bgf_26", I = "_backdropVisible_e3bgf_48", K = "_frame_e3bgf_55", R = "_frameVisible_e3bgf_61", P = "_circle_e3bgf_53", U = "_expandedImage_e3bgf_80", G = "_closeButton_e3bgf_87", m = {
|
|
5
|
+
trigger: q,
|
|
6
|
+
image: T,
|
|
7
|
+
backdrop: F,
|
|
8
|
+
backdropVisible: I,
|
|
9
|
+
frame: K,
|
|
10
|
+
frameVisible: R,
|
|
11
11
|
circle: P,
|
|
12
|
-
expandedImage:
|
|
13
|
-
closeButton:
|
|
14
|
-
},
|
|
15
|
-
function
|
|
16
|
-
src:
|
|
17
|
-
alt:
|
|
18
|
-
size:
|
|
19
|
-
expandedSize:
|
|
20
|
-
objectPosition:
|
|
21
|
-
closeLabel:
|
|
22
|
-
className:
|
|
23
|
-
...
|
|
12
|
+
expandedImage: U,
|
|
13
|
+
closeButton: G
|
|
14
|
+
}, Q = 96, Z = "min(70vw, 60vh, 440px)";
|
|
15
|
+
function Qe({
|
|
16
|
+
src: n,
|
|
17
|
+
alt: t,
|
|
18
|
+
size: s = Q,
|
|
19
|
+
expandedSize: l = Z,
|
|
20
|
+
objectPosition: o = "center",
|
|
21
|
+
closeLabel: i = "Close",
|
|
22
|
+
className: a,
|
|
23
|
+
...d
|
|
24
24
|
}) {
|
|
25
|
-
const [
|
|
25
|
+
const [_, u] = w(!1), [b, h] = w(!1);
|
|
26
26
|
$(() => {
|
|
27
|
-
if (!
|
|
28
|
-
function
|
|
29
|
-
|
|
27
|
+
if (!_) return;
|
|
28
|
+
function y(D) {
|
|
29
|
+
D.key === "Escape" && u(!1);
|
|
30
30
|
}
|
|
31
|
-
document.addEventListener("keydown",
|
|
32
|
-
const
|
|
31
|
+
document.addEventListener("keydown", y);
|
|
32
|
+
const j = document.body.style.overflow;
|
|
33
33
|
document.body.style.overflow = "hidden";
|
|
34
|
-
const
|
|
34
|
+
const A = requestAnimationFrame(() => h(!0));
|
|
35
35
|
return () => {
|
|
36
|
-
document.removeEventListener("keydown",
|
|
36
|
+
document.removeEventListener("keydown", y), document.body.style.overflow = j, cancelAnimationFrame(A), h(!1);
|
|
37
37
|
};
|
|
38
|
-
}, [
|
|
39
|
-
const
|
|
38
|
+
}, [_]);
|
|
39
|
+
const B = [m.trigger, a].filter(Boolean).join(" "), c = [m.frame, b && m.frameVisible].filter(Boolean).join(" "), f = [m.backdrop, b && m.backdropVisible].filter(Boolean).join(" ");
|
|
40
40
|
return /* @__PURE__ */ r(L, { children: [
|
|
41
41
|
/* @__PURE__ */ e(
|
|
42
42
|
"button",
|
|
43
43
|
{
|
|
44
44
|
type: "button",
|
|
45
|
-
className:
|
|
46
|
-
style: { width:
|
|
47
|
-
onClick: () =>
|
|
45
|
+
className: B,
|
|
46
|
+
style: { width: s, height: s },
|
|
47
|
+
onClick: () => u(!0),
|
|
48
48
|
"aria-haspopup": "dialog",
|
|
49
|
-
...
|
|
49
|
+
...d,
|
|
50
50
|
children: /* @__PURE__ */ e(
|
|
51
51
|
"img",
|
|
52
52
|
{
|
|
53
|
-
src:
|
|
54
|
-
alt:
|
|
55
|
-
className:
|
|
56
|
-
style: { objectPosition:
|
|
53
|
+
src: n,
|
|
54
|
+
alt: t,
|
|
55
|
+
className: m.image,
|
|
56
|
+
style: { objectPosition: o },
|
|
57
57
|
loading: "lazy"
|
|
58
58
|
}
|
|
59
59
|
)
|
|
60
60
|
}
|
|
61
61
|
),
|
|
62
|
-
|
|
62
|
+
_ && /* @__PURE__ */ e("div", { className: f, onClick: (y) => y.target === y.currentTarget && u(!1), children: /* @__PURE__ */ r(
|
|
63
63
|
"div",
|
|
64
64
|
{
|
|
65
|
-
className:
|
|
66
|
-
style: { width:
|
|
65
|
+
className: c,
|
|
66
|
+
style: { width: l, height: l },
|
|
67
67
|
role: "dialog",
|
|
68
68
|
"aria-modal": "true",
|
|
69
|
-
"aria-label":
|
|
69
|
+
"aria-label": t,
|
|
70
70
|
children: [
|
|
71
|
-
/* @__PURE__ */ e("div", { className:
|
|
71
|
+
/* @__PURE__ */ e("div", { className: m.circle, children: /* @__PURE__ */ e(
|
|
72
72
|
"img",
|
|
73
73
|
{
|
|
74
|
-
src:
|
|
75
|
-
alt:
|
|
76
|
-
className:
|
|
77
|
-
style: { objectPosition:
|
|
74
|
+
src: n,
|
|
75
|
+
alt: t,
|
|
76
|
+
className: m.expandedImage,
|
|
77
|
+
style: { objectPosition: o }
|
|
78
78
|
}
|
|
79
79
|
) }),
|
|
80
80
|
/* @__PURE__ */ e(
|
|
81
81
|
"button",
|
|
82
82
|
{
|
|
83
83
|
type: "button",
|
|
84
|
-
className:
|
|
85
|
-
onClick: () =>
|
|
86
|
-
"aria-label":
|
|
84
|
+
className: m.closeButton,
|
|
85
|
+
onClick: () => u(!1),
|
|
86
|
+
"aria-label": i,
|
|
87
87
|
children: "×"
|
|
88
88
|
}
|
|
89
89
|
)
|
|
@@ -92,208 +92,316 @@ function we({
|
|
|
92
92
|
) })
|
|
93
93
|
] });
|
|
94
94
|
}
|
|
95
|
-
const
|
|
96
|
-
button:
|
|
97
|
-
primary:
|
|
98
|
-
ghost:
|
|
95
|
+
const M = "_button_1jhtl_1", X = "_primary_1jhtl_33", z = "_ghost_1jhtl_43", E = {
|
|
96
|
+
button: M,
|
|
97
|
+
primary: X,
|
|
98
|
+
ghost: z
|
|
99
99
|
};
|
|
100
|
-
function
|
|
101
|
-
children:
|
|
102
|
-
variant:
|
|
103
|
-
type:
|
|
104
|
-
className:
|
|
105
|
-
...
|
|
100
|
+
function Ze({
|
|
101
|
+
children: n,
|
|
102
|
+
variant: t = "primary",
|
|
103
|
+
type: s = "button",
|
|
104
|
+
className: l,
|
|
105
|
+
...o
|
|
106
106
|
}) {
|
|
107
|
-
const
|
|
108
|
-
return /* @__PURE__ */ e("button", { type:
|
|
107
|
+
const i = [E.button, E[t], l].filter(Boolean).join(" ");
|
|
108
|
+
return /* @__PURE__ */ e("button", { type: s, className: i, "data-variant": t, ...o, children: n });
|
|
109
109
|
}
|
|
110
|
-
const H = "_trigger_10bud_1", J = "_kbd_10bud_23",
|
|
110
|
+
const H = "_trigger_10bud_1", J = "_kbd_10bud_23", W = "_backdrop_10bud_31", Y = "_dialog_10bud_42", ee = "_input_10bud_53", ne = "_list_10bud_69", g = {
|
|
111
111
|
trigger: H,
|
|
112
112
|
kbd: J,
|
|
113
|
-
backdrop:
|
|
114
|
-
dialog:
|
|
115
|
-
input:
|
|
116
|
-
list:
|
|
113
|
+
backdrop: W,
|
|
114
|
+
dialog: Y,
|
|
115
|
+
input: ee,
|
|
116
|
+
list: ne
|
|
117
117
|
};
|
|
118
|
-
function
|
|
119
|
-
items:
|
|
120
|
-
triggerLabel:
|
|
121
|
-
placeholder:
|
|
122
|
-
label:
|
|
123
|
-
className:
|
|
124
|
-
...
|
|
118
|
+
function Me({
|
|
119
|
+
items: n,
|
|
120
|
+
triggerLabel: t = "Search",
|
|
121
|
+
placeholder: s = "Type a command or search…",
|
|
122
|
+
label: l = "Command palette",
|
|
123
|
+
className: o,
|
|
124
|
+
...i
|
|
125
125
|
}) {
|
|
126
|
-
const [
|
|
126
|
+
const [a, d] = w(!1), [_, u] = w(""), b = O(null);
|
|
127
127
|
$(() => {
|
|
128
|
-
|
|
129
|
-
}, [
|
|
130
|
-
function
|
|
131
|
-
if ((
|
|
132
|
-
|
|
128
|
+
a && b.current?.focus();
|
|
129
|
+
}, [a]), $(() => {
|
|
130
|
+
function c(f) {
|
|
131
|
+
if ((f.metaKey || f.ctrlKey) && f.key.toLowerCase() === "k") {
|
|
132
|
+
f.preventDefault(), d((j) => !j);
|
|
133
133
|
return;
|
|
134
134
|
}
|
|
135
|
-
|
|
135
|
+
f.key === "Escape" && d(!1);
|
|
136
136
|
}
|
|
137
|
-
return document.addEventListener("keydown",
|
|
137
|
+
return document.addEventListener("keydown", c), () => document.removeEventListener("keydown", c);
|
|
138
138
|
}, []);
|
|
139
|
-
const h =
|
|
139
|
+
const h = n.filter((c) => `${c.label} ${c.hint ?? ""}`.toLowerCase().includes(_.trim().toLowerCase())), B = [g.trigger, o].filter(Boolean).join(" ");
|
|
140
140
|
return /* @__PURE__ */ r(L, { children: [
|
|
141
|
-
/* @__PURE__ */ r("button", { type: "button", className:
|
|
142
|
-
/* @__PURE__ */ e("span", { children:
|
|
143
|
-
/* @__PURE__ */ e("kbd", { className:
|
|
141
|
+
/* @__PURE__ */ r("button", { type: "button", className: B, onClick: () => d(!0), ...i, children: [
|
|
142
|
+
/* @__PURE__ */ e("span", { children: t }),
|
|
143
|
+
/* @__PURE__ */ e("kbd", { className: g.kbd, children: "⌘K" })
|
|
144
144
|
] }),
|
|
145
|
-
|
|
145
|
+
a && /* @__PURE__ */ e("div", { className: g.backdrop, onClick: (c) => c.target === c.currentTarget && d(!1), children: /* @__PURE__ */ r("div", { className: g.dialog, role: "dialog", "aria-modal": "true", "aria-label": l, children: [
|
|
146
146
|
/* @__PURE__ */ e(
|
|
147
147
|
"input",
|
|
148
148
|
{
|
|
149
|
-
ref:
|
|
149
|
+
ref: b,
|
|
150
150
|
type: "text",
|
|
151
|
-
className:
|
|
152
|
-
placeholder:
|
|
153
|
-
value:
|
|
154
|
-
onChange: (
|
|
151
|
+
className: g.input,
|
|
152
|
+
placeholder: s,
|
|
153
|
+
value: _,
|
|
154
|
+
onChange: (c) => u(c.target.value),
|
|
155
155
|
autoComplete: "off"
|
|
156
156
|
}
|
|
157
157
|
),
|
|
158
|
-
/* @__PURE__ */ e("ul", { className:
|
|
158
|
+
/* @__PURE__ */ e("ul", { className: g.list, children: h.map((c) => (
|
|
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:
|
|
162
|
-
/* @__PURE__ */ e("span", { children:
|
|
163
|
-
|
|
164
|
-
] }) },
|
|
161
|
+
/* @__PURE__ */ e("li", { children: /* @__PURE__ */ r("a", { href: c.href, onClick: () => d(!1), children: [
|
|
162
|
+
/* @__PURE__ */ e("span", { children: c.label }),
|
|
163
|
+
c.hint && /* @__PURE__ */ e("small", { children: c.hint })
|
|
164
|
+
] }) }, c.href)
|
|
165
165
|
)) })
|
|
166
166
|
] }) })
|
|
167
167
|
] });
|
|
168
168
|
}
|
|
169
|
-
const
|
|
170
|
-
eyebrow:
|
|
169
|
+
const te = "_eyebrow_1a4gy_1", oe = {
|
|
170
|
+
eyebrow: te
|
|
171
171
|
};
|
|
172
|
-
function
|
|
173
|
-
const
|
|
174
|
-
return /* @__PURE__ */ e("p", { className:
|
|
172
|
+
function Xe({ children: n, className: t, ...s }) {
|
|
173
|
+
const l = [oe.eyebrow, t].filter(Boolean).join(" ");
|
|
174
|
+
return /* @__PURE__ */ e("p", { className: l, ...s, children: n });
|
|
175
175
|
}
|
|
176
|
-
const se = "_loadingLabel_1yug9_1",
|
|
176
|
+
const se = "_loadingLabel_1yug9_1", le = "_cursor_1yug9_10", x = {
|
|
177
177
|
loadingLabel: se,
|
|
178
|
-
cursor:
|
|
178
|
+
cursor: le
|
|
179
179
|
};
|
|
180
|
-
function
|
|
181
|
-
isLoading:
|
|
182
|
-
loadingText:
|
|
183
|
-
children:
|
|
184
|
-
className:
|
|
185
|
-
style:
|
|
186
|
-
disabled:
|
|
187
|
-
type:
|
|
188
|
-
...
|
|
180
|
+
function ze({
|
|
181
|
+
isLoading: n,
|
|
182
|
+
loadingText: t,
|
|
183
|
+
children: s,
|
|
184
|
+
className: l,
|
|
185
|
+
style: o,
|
|
186
|
+
disabled: i,
|
|
187
|
+
type: a = "button",
|
|
188
|
+
...d
|
|
189
189
|
}) {
|
|
190
|
-
const
|
|
190
|
+
const _ = [l].filter(Boolean).join(" ");
|
|
191
191
|
return /* @__PURE__ */ e(
|
|
192
192
|
"button",
|
|
193
193
|
{
|
|
194
|
-
type:
|
|
195
|
-
className:
|
|
196
|
-
style: { ...
|
|
194
|
+
type: a,
|
|
195
|
+
className: _,
|
|
196
|
+
style: { ...o, ...n ? {
|
|
197
197
|
background: "var(--ds-color-bg)",
|
|
198
198
|
border: "1px solid var(--ds-color-accent)",
|
|
199
199
|
color: "var(--ds-color-accent)",
|
|
200
200
|
opacity: 1
|
|
201
201
|
} : void 0 },
|
|
202
|
-
disabled: !!
|
|
203
|
-
"aria-busy":
|
|
204
|
-
...
|
|
205
|
-
children:
|
|
202
|
+
disabled: !!i || n,
|
|
203
|
+
"aria-busy": n || void 0,
|
|
204
|
+
...d,
|
|
205
|
+
children: n ? /* @__PURE__ */ r("span", { className: x.loadingLabel, children: [
|
|
206
206
|
/* @__PURE__ */ e("span", { "aria-hidden": "true", children: "$" }),
|
|
207
|
-
|
|
208
|
-
/* @__PURE__ */ e("span", { "aria-hidden": "true", className:
|
|
209
|
-
] }) :
|
|
207
|
+
t,
|
|
208
|
+
/* @__PURE__ */ e("span", { "aria-hidden": "true", className: x.cursor })
|
|
209
|
+
] }) : s
|
|
210
210
|
}
|
|
211
211
|
);
|
|
212
212
|
}
|
|
213
|
-
const ae = "_panel_m16j3_1",
|
|
213
|
+
const ae = "_panel_m16j3_1", ce = {
|
|
214
214
|
panel: ae
|
|
215
215
|
};
|
|
216
|
-
function
|
|
217
|
-
const
|
|
218
|
-
return /* @__PURE__ */ e("div", { className:
|
|
216
|
+
function He({ children: n, dots: t = !1, className: s, ...l }) {
|
|
217
|
+
const o = [ce.panel, t && "ds-dot-grid", s].filter(Boolean).join(" ");
|
|
218
|
+
return /* @__PURE__ */ e("div", { className: o, ...l, children: n });
|
|
219
219
|
}
|
|
220
|
-
const
|
|
221
|
-
list:
|
|
222
|
-
step:
|
|
220
|
+
const re = "_list_27va3_1", ie = "_step_27va3_12", S = {
|
|
221
|
+
list: re,
|
|
222
|
+
step: ie
|
|
223
223
|
};
|
|
224
|
-
function
|
|
225
|
-
const
|
|
226
|
-
return /* @__PURE__ */ e("ul", { className:
|
|
227
|
-
|
|
224
|
+
function Je({ steps: n, className: t, ...s }) {
|
|
225
|
+
const l = [S.list, t].filter(Boolean).join(" ");
|
|
226
|
+
return /* @__PURE__ */ e("ul", { className: l, ...s, children: n.map((o) => /* @__PURE__ */ r("li", { className: S.step, children: [
|
|
227
|
+
o.label,
|
|
228
228
|
" ",
|
|
229
|
-
/* @__PURE__ */ e("b", { children:
|
|
230
|
-
] },
|
|
229
|
+
/* @__PURE__ */ e("b", { children: o.value })
|
|
230
|
+
] }, o.label)) });
|
|
231
231
|
}
|
|
232
|
-
const
|
|
233
|
-
quote:
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
232
|
+
const de = "_quote_sjisa_1", ue = "_floatLeft_sjisa_13", _e = "_floatRight_sjisa_14", be = "_marker_sjisa_31", me = "_text_sjisa_38", pe = "_cursor_sjisa_46", v = {
|
|
233
|
+
quote: de,
|
|
234
|
+
floatLeft: ue,
|
|
235
|
+
floatRight: _e,
|
|
236
|
+
marker: be,
|
|
237
|
+
text: me,
|
|
238
|
+
cursor: pe
|
|
239
|
+
}, fe = {
|
|
240
|
+
none: void 0,
|
|
241
|
+
left: v.floatLeft,
|
|
242
|
+
right: v.floatRight
|
|
237
243
|
};
|
|
238
|
-
function
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
244
|
+
function We({
|
|
245
|
+
children: n,
|
|
246
|
+
marker: t = "#",
|
|
247
|
+
cursor: s = !0,
|
|
248
|
+
float: l = "none",
|
|
249
|
+
className: o,
|
|
250
|
+
...i
|
|
251
|
+
}) {
|
|
252
|
+
const a = [v.quote, fe[l], o].filter(Boolean).join(" ");
|
|
253
|
+
return /* @__PURE__ */ r("blockquote", { className: a, ...i, children: [
|
|
254
|
+
/* @__PURE__ */ e("span", { className: v.marker, "aria-hidden": "true", children: t }),
|
|
255
|
+
/* @__PURE__ */ r("p", { className: v.text, children: [
|
|
256
|
+
n,
|
|
257
|
+
s && /* @__PURE__ */ e("span", { className: v.cursor, "aria-hidden": "true" })
|
|
245
258
|
] })
|
|
246
259
|
] });
|
|
247
260
|
}
|
|
248
|
-
const
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
261
|
+
const he = "_backdrop_ihclc_1", ye = "_backdropVisible_ihclc_11", ge = "_panel_ihclc_16", ke = "_panelOpen_ihclc_35", ve = "_closeButton_ihclc_39", Ne = "_content_ihclc_60", k = {
|
|
262
|
+
backdrop: he,
|
|
263
|
+
backdropVisible: ye,
|
|
264
|
+
panel: ge,
|
|
265
|
+
panelOpen: ke,
|
|
266
|
+
closeButton: ve,
|
|
267
|
+
content: Ne
|
|
253
268
|
};
|
|
254
|
-
function
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
269
|
+
function Ye({
|
|
270
|
+
open: n,
|
|
271
|
+
onClose: t,
|
|
272
|
+
label: s,
|
|
273
|
+
children: l,
|
|
274
|
+
closeLabel: o = "Close",
|
|
275
|
+
className: i,
|
|
276
|
+
...a
|
|
277
|
+
}) {
|
|
278
|
+
$(() => {
|
|
279
|
+
if (!n) return;
|
|
280
|
+
function u(h) {
|
|
281
|
+
h.key === "Escape" && t();
|
|
282
|
+
}
|
|
283
|
+
document.addEventListener("keydown", u);
|
|
284
|
+
const b = document.body.style.overflow;
|
|
285
|
+
return document.body.style.overflow = "hidden", () => {
|
|
286
|
+
document.removeEventListener("keydown", u), document.body.style.overflow = b;
|
|
287
|
+
};
|
|
288
|
+
}, [n, t]);
|
|
289
|
+
const d = [k.backdrop, n && k.backdropVisible].filter(Boolean).join(" "), _ = [k.panel, n && k.panelOpen, i].filter(Boolean).join(" ");
|
|
290
|
+
return /* @__PURE__ */ r(L, { children: [
|
|
291
|
+
/* @__PURE__ */ e("div", { className: d, "aria-hidden": "true", onClick: () => n && t() }),
|
|
292
|
+
/* @__PURE__ */ r(
|
|
293
|
+
"div",
|
|
294
|
+
{
|
|
295
|
+
className: _,
|
|
296
|
+
role: "dialog",
|
|
297
|
+
"aria-modal": "true",
|
|
298
|
+
"aria-label": s,
|
|
299
|
+
"aria-hidden": !n,
|
|
300
|
+
inert: !n,
|
|
301
|
+
...a,
|
|
302
|
+
children: [
|
|
303
|
+
/* @__PURE__ */ e("button", { type: "button", className: k.closeButton, onClick: t, "aria-label": o, children: "×" }),
|
|
304
|
+
/* @__PURE__ */ e("div", { className: k.content, children: l })
|
|
305
|
+
]
|
|
306
|
+
}
|
|
307
|
+
)
|
|
308
|
+
] });
|
|
260
309
|
}
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
310
|
+
const we = "_grid_94gwu_1", $e = "_cell_94gwu_12", Be = "_value_94gwu_19", je = "_label_94gwu_28", N = {
|
|
311
|
+
grid: we,
|
|
312
|
+
cell: $e,
|
|
313
|
+
value: Be,
|
|
314
|
+
label: je
|
|
264
315
|
};
|
|
265
|
-
function
|
|
266
|
-
const
|
|
267
|
-
return /* @__PURE__ */ e("
|
|
316
|
+
function en({ stats: n, className: t, ...s }) {
|
|
317
|
+
const l = [N.grid, t].filter(Boolean).join(" ");
|
|
318
|
+
return /* @__PURE__ */ e("dl", { className: l, ...s, children: n.map((o) => /* @__PURE__ */ r("div", { className: N.cell, children: [
|
|
319
|
+
/* @__PURE__ */ e("dd", { className: N.value, children: o.value }),
|
|
320
|
+
/* @__PURE__ */ e("dt", { className: N.label, children: o.label })
|
|
321
|
+
] }, o.label)) });
|
|
268
322
|
}
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
cursor: ke
|
|
323
|
+
const Ce = "_list_17qxg_1", Le = "_tag_17qxg_10", V = {
|
|
324
|
+
list: Ce,
|
|
325
|
+
tag: Le
|
|
273
326
|
};
|
|
274
|
-
function
|
|
275
|
-
const
|
|
276
|
-
return /* @__PURE__ */
|
|
277
|
-
|
|
278
|
-
|
|
327
|
+
function nn({ tags: n, className: t, ...s }) {
|
|
328
|
+
const l = [V.list, t].filter(Boolean).join(" ");
|
|
329
|
+
return /* @__PURE__ */ e("ul", { className: l, ...s, children: n.map((o) => /* @__PURE__ */ e("li", { className: V.tag, children: o }, o)) });
|
|
330
|
+
}
|
|
331
|
+
const Ee = "_prompt_vxkw7_1", xe = "_path_vxkw7_11", Se = "_cursor_vxkw7_15", C = {
|
|
332
|
+
prompt: Ee,
|
|
333
|
+
path: xe,
|
|
334
|
+
cursor: Se
|
|
335
|
+
};
|
|
336
|
+
function tn({ user: n, host: t, command: s, className: l, ...o }) {
|
|
337
|
+
const i = [C.prompt, l].filter(Boolean).join(" ");
|
|
338
|
+
return /* @__PURE__ */ r("p", { className: i, ...o, children: [
|
|
339
|
+
/* @__PURE__ */ r("span", { className: C.path, children: [
|
|
340
|
+
n,
|
|
279
341
|
"@",
|
|
280
|
-
|
|
342
|
+
t
|
|
281
343
|
] }),
|
|
282
344
|
" ~$ ",
|
|
283
|
-
|
|
284
|
-
/* @__PURE__ */ e("span", { className:
|
|
345
|
+
s,
|
|
346
|
+
/* @__PURE__ */ e("span", { className: C.cursor, "aria-hidden": "true" })
|
|
285
347
|
] });
|
|
286
348
|
}
|
|
349
|
+
const Ve = "_list_nynky_1", Ae = "_row_nynky_10", De = "_line_nynky_19", Oe = "_button_nynky_29", qe = "_node_nynky_42", Te = "_nodeSelected_nynky_64", Fe = "_icon_nynky_68", Ie = "_fallback_nynky_74", Ke = "_label_nynky_81", p = {
|
|
350
|
+
list: Ve,
|
|
351
|
+
row: Ae,
|
|
352
|
+
line: De,
|
|
353
|
+
button: Oe,
|
|
354
|
+
node: qe,
|
|
355
|
+
nodeSelected: Te,
|
|
356
|
+
icon: Fe,
|
|
357
|
+
fallback: Ie,
|
|
358
|
+
label: Ke
|
|
359
|
+
}, Re = 137.508;
|
|
360
|
+
function Pe(n) {
|
|
361
|
+
return `hsl(${Math.round(n * Re % 360)}deg 70% 60%)`;
|
|
362
|
+
}
|
|
363
|
+
function on({ items: n, selectedId: t, onSelect: s, className: l, ...o }) {
|
|
364
|
+
const i = [p.list, l].filter(Boolean).join(" ");
|
|
365
|
+
return /* @__PURE__ */ e("ol", { className: i, ...o, children: n.map((a, d) => {
|
|
366
|
+
const _ = Pe(d), u = a.id === t, b = [p.node, u && p.nodeSelected].filter(Boolean).join(" ");
|
|
367
|
+
return /* @__PURE__ */ r(
|
|
368
|
+
"li",
|
|
369
|
+
{
|
|
370
|
+
className: p.row,
|
|
371
|
+
style: { "--timeline-color": _ },
|
|
372
|
+
children: [
|
|
373
|
+
/* @__PURE__ */ r(
|
|
374
|
+
"button",
|
|
375
|
+
{
|
|
376
|
+
type: "button",
|
|
377
|
+
className: p.button,
|
|
378
|
+
onClick: () => s?.(a.id),
|
|
379
|
+
"aria-pressed": u,
|
|
380
|
+
children: [
|
|
381
|
+
/* @__PURE__ */ e("span", { className: b, children: a.iconUrl ? /* @__PURE__ */ e("img", { src: a.iconUrl, alt: "", className: p.icon, loading: "lazy" }) : /* @__PURE__ */ e("span", { className: p.fallback, "aria-hidden": "true", children: a.label.charAt(0).toUpperCase() }) }),
|
|
382
|
+
/* @__PURE__ */ e("span", { className: p.label, children: a.label })
|
|
383
|
+
]
|
|
384
|
+
}
|
|
385
|
+
),
|
|
386
|
+
d < n.length - 1 && /* @__PURE__ */ e("span", { className: p.line, "aria-hidden": "true" })
|
|
387
|
+
]
|
|
388
|
+
},
|
|
389
|
+
a.id
|
|
390
|
+
);
|
|
391
|
+
}) });
|
|
392
|
+
}
|
|
287
393
|
export {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
394
|
+
Qe as Avatar,
|
|
395
|
+
Ze as Button,
|
|
396
|
+
Me as CommandPalette,
|
|
397
|
+
Xe as Eyebrow,
|
|
398
|
+
ze as LoadingButton,
|
|
399
|
+
He as Panel,
|
|
400
|
+
Je as PipelineBadges,
|
|
401
|
+
We as Quote,
|
|
402
|
+
Ye as SidePanel,
|
|
403
|
+
en as StatGrid,
|
|
404
|
+
nn as TagList,
|
|
405
|
+
tn as TerminalPrompt,
|
|
406
|
+
on as Timeline
|
|
299
407
|
};
|