@alishenriques/design-system 0.4.2 → 0.5.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.
@@ -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;
@@ -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}}._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.js CHANGED
@@ -1,79 +1,79 @@
1
1
  "use client";
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
- trigger: T,
6
- image: A,
7
- backdrop: I,
8
- backdropVisible: S,
9
- frame: F,
10
- frameVisible: K,
11
- circle: P,
2
+ import { jsxs as r, Fragment as E, jsx as e } from "react/jsx-runtime";
3
+ import { useState as v, useEffect as B, useRef as V } from "react";
4
+ const A = "_trigger_e3bgf_1", T = "_image_e3bgf_19", D = "_backdrop_e3bgf_26", F = "_backdropVisible_e3bgf_48", I = "_frame_e3bgf_55", R = "_frameVisible_e3bgf_61", K = "_circle_e3bgf_53", O = "_expandedImage_e3bgf_80", P = "_closeButton_e3bgf_87", u = {
5
+ trigger: A,
6
+ image: T,
7
+ backdrop: D,
8
+ backdropVisible: F,
9
+ frame: I,
10
+ frameVisible: R,
11
+ circle: K,
12
12
  expandedImage: O,
13
- closeButton: Q
14
- }, R = 96, U = "min(70vw, 60vh, 440px)";
15
- function we({
13
+ closeButton: P
14
+ }, Q = 96, U = "min(70vw, 60vh, 440px)";
15
+ function Ce({
16
16
  src: t,
17
- alt: o,
18
- size: a = R,
17
+ alt: a,
18
+ size: o = Q,
19
19
  expandedSize: n = U,
20
20
  objectPosition: s = "center",
21
21
  closeLabel: c = "Close",
22
- className: m,
23
- ...i
22
+ className: i,
23
+ ...d
24
24
  }) {
25
- const [u, b] = v(!1), [f, h] = v(!1);
26
- $(() => {
27
- if (!u) return;
28
- function g(V) {
29
- V.key === "Escape" && b(!1);
25
+ const [_, f] = v(!1), [h, y] = v(!1);
26
+ B(() => {
27
+ if (!_) return;
28
+ function b(S) {
29
+ S.key === "Escape" && f(!1);
30
30
  }
31
- document.addEventListener("keydown", g);
31
+ document.addEventListener("keydown", b);
32
32
  const w = document.body.style.overflow;
33
33
  document.body.style.overflow = "hidden";
34
- const q = requestAnimationFrame(() => h(!0));
34
+ const q = requestAnimationFrame(() => y(!0));
35
35
  return () => {
36
- document.removeEventListener("keydown", g), document.body.style.overflow = w, cancelAnimationFrame(q), h(!1);
36
+ document.removeEventListener("keydown", b), document.body.style.overflow = w, cancelAnimationFrame(q), y(!1);
37
37
  };
38
- }, [u]);
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: [
38
+ }, [_]);
39
+ const N = [u.trigger, i].filter(Boolean).join(" "), l = [u.frame, h && u.frameVisible].filter(Boolean).join(" "), m = [u.backdrop, h && u.backdropVisible].filter(Boolean).join(" ");
40
+ return /* @__PURE__ */ r(E, { children: [
41
41
  /* @__PURE__ */ e(
42
42
  "button",
43
43
  {
44
44
  type: "button",
45
45
  className: N,
46
- style: { width: a, height: a },
47
- onClick: () => b(!0),
46
+ style: { width: o, height: o },
47
+ onClick: () => f(!0),
48
48
  "aria-haspopup": "dialog",
49
- ...i,
49
+ ...d,
50
50
  children: /* @__PURE__ */ e(
51
51
  "img",
52
52
  {
53
53
  src: t,
54
- alt: o,
55
- className: d.image,
54
+ alt: a,
55
+ className: u.image,
56
56
  style: { objectPosition: s },
57
57
  loading: "lazy"
58
58
  }
59
59
  )
60
60
  }
61
61
  ),
62
- u && /* @__PURE__ */ e("div", { className: _, onClick: (g) => g.target === g.currentTarget && b(!1), children: /* @__PURE__ */ r(
62
+ _ && /* @__PURE__ */ e("div", { className: m, onClick: (b) => b.target === b.currentTarget && f(!1), children: /* @__PURE__ */ r(
63
63
  "div",
64
64
  {
65
65
  className: l,
66
66
  style: { width: n, height: n },
67
67
  role: "dialog",
68
68
  "aria-modal": "true",
69
- "aria-label": o,
69
+ "aria-label": a,
70
70
  children: [
71
- /* @__PURE__ */ e("div", { className: d.circle, children: /* @__PURE__ */ e(
71
+ /* @__PURE__ */ e("div", { className: u.circle, children: /* @__PURE__ */ e(
72
72
  "img",
73
73
  {
74
74
  src: t,
75
- alt: o,
76
- className: d.expandedImage,
75
+ alt: a,
76
+ className: u.expandedImage,
77
77
  style: { objectPosition: s }
78
78
  }
79
79
  ) }),
@@ -81,8 +81,8 @@ function we({
81
81
  "button",
82
82
  {
83
83
  type: "button",
84
- className: d.closeButton,
85
- onClick: () => b(!1),
84
+ className: u.closeButton,
85
+ onClick: () => f(!1),
86
86
  "aria-label": c,
87
87
  children: "×"
88
88
  }
@@ -97,17 +97,17 @@ const Z = "_button_1jhtl_1", G = "_primary_1jhtl_33", X = "_ghost_1jhtl_43", C =
97
97
  primary: G,
98
98
  ghost: X
99
99
  };
100
- function Be({
100
+ function $e({
101
101
  children: t,
102
- variant: o = "primary",
103
- type: a = "button",
102
+ variant: a = "primary",
103
+ type: o = "button",
104
104
  className: n,
105
105
  ...s
106
106
  }) {
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 });
107
+ const c = [C.button, C[a], n].filter(Boolean).join(" ");
108
+ return /* @__PURE__ */ e("button", { type: o, className: c, "data-variant": a, ...s, children: t });
109
109
  }
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 = {
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", g = {
111
111
  trigger: H,
112
112
  kbd: J,
113
113
  backdrop: M,
@@ -115,50 +115,50 @@ const H = "_trigger_10bud_1", J = "_kbd_10bud_23", M = "_backdrop_10bud_31", W =
115
115
  input: Y,
116
116
  list: z
117
117
  };
118
- function $e({
118
+ function xe({
119
119
  items: t,
120
- triggerLabel: o = "Search",
121
- placeholder: a = "Type a command or search…",
120
+ triggerLabel: a = "Search",
121
+ placeholder: o = "Type a command or search…",
122
122
  label: n = "Command palette",
123
123
  className: s,
124
124
  ...c
125
125
  }) {
126
- const [m, i] = v(!1), [u, b] = v(""), f = D(null);
127
- $(() => {
128
- m && f.current?.focus();
129
- }, [m]), $(() => {
130
- function l(_) {
131
- if ((_.metaKey || _.ctrlKey) && _.key.toLowerCase() === "k") {
132
- _.preventDefault(), i((w) => !w);
126
+ const [i, d] = v(!1), [_, f] = v(""), h = V(null);
127
+ B(() => {
128
+ i && h.current?.focus();
129
+ }, [i]), B(() => {
130
+ function l(m) {
131
+ if ((m.metaKey || m.ctrlKey) && m.key.toLowerCase() === "k") {
132
+ m.preventDefault(), d((w) => !w);
133
133
  return;
134
134
  }
135
- _.key === "Escape" && i(!1);
135
+ m.key === "Escape" && d(!1);
136
136
  }
137
137
  return document.addEventListener("keydown", l), () => document.removeEventListener("keydown", l);
138
138
  }, []);
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" })
139
+ const y = t.filter((l) => `${l.label} ${l.hint ?? ""}`.toLowerCase().includes(_.trim().toLowerCase())), N = [g.trigger, s].filter(Boolean).join(" ");
140
+ return /* @__PURE__ */ r(E, { children: [
141
+ /* @__PURE__ */ r("button", { type: "button", className: N, onClick: () => d(!0), ...c, children: [
142
+ /* @__PURE__ */ e("span", { children: a }),
143
+ /* @__PURE__ */ e("kbd", { className: g.kbd, children: "⌘K" })
144
144
  ] }),
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: [
145
+ i && /* @__PURE__ */ e("div", { className: g.backdrop, onClick: (l) => l.target === l.currentTarget && d(!1), children: /* @__PURE__ */ r("div", { className: g.dialog, role: "dialog", "aria-modal": "true", "aria-label": n, children: [
146
146
  /* @__PURE__ */ e(
147
147
  "input",
148
148
  {
149
- ref: f,
149
+ ref: h,
150
150
  type: "text",
151
- className: p.input,
152
- placeholder: a,
153
- value: u,
154
- onChange: (l) => b(l.target.value),
151
+ className: g.input,
152
+ placeholder: o,
153
+ value: _,
154
+ onChange: (l) => f(l.target.value),
155
155
  autoComplete: "off"
156
156
  }
157
157
  ),
158
- /* @__PURE__ */ e("ul", { className: p.list, children: h.map((l) => (
158
+ /* @__PURE__ */ e("ul", { className: g.list, children: y.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: l.href, onClick: () => i(!1), children: [
161
+ /* @__PURE__ */ e("li", { children: /* @__PURE__ */ r("a", { href: l.href, onClick: () => d(!1), children: [
162
162
  /* @__PURE__ */ e("span", { children: l.label }),
163
163
  l.hint && /* @__PURE__ */ e("small", { children: l.hint })
164
164
  ] }) }, l.href)
@@ -169,30 +169,30 @@ function $e({
169
169
  const ee = "_eyebrow_1a4gy_1", te = {
170
170
  eyebrow: ee
171
171
  };
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 });
172
+ function Le({ children: t, className: a, ...o }) {
173
+ const n = [te.eyebrow, a].filter(Boolean).join(" ");
174
+ return /* @__PURE__ */ e("p", { className: n, ...o, children: t });
175
175
  }
176
- const se = "_loadingLabel_1yug9_1", oe = "_cursor_1yug9_10", j = {
176
+ const se = "_loadingLabel_1yug9_1", ae = "_cursor_1yug9_10", $ = {
177
177
  loadingLabel: se,
178
- cursor: oe
178
+ cursor: ae
179
179
  };
180
- function je({
180
+ function Ee({
181
181
  isLoading: t,
182
- loadingText: o,
183
- children: a,
182
+ loadingText: a,
183
+ children: o,
184
184
  className: n,
185
185
  style: s,
186
186
  disabled: c,
187
- type: m = "button",
188
- ...i
187
+ type: i = "button",
188
+ ...d
189
189
  }) {
190
- const u = [n].filter(Boolean).join(" ");
190
+ const _ = [n].filter(Boolean).join(" ");
191
191
  return /* @__PURE__ */ e(
192
192
  "button",
193
193
  {
194
- type: m,
195
- className: u,
194
+ type: i,
195
+ className: _,
196
196
  style: { ...s, ...t ? {
197
197
  background: "var(--ds-color-bg)",
198
198
  border: "1px solid var(--ds-color-accent)",
@@ -201,99 +201,112 @@ function je({
201
201
  } : void 0 },
202
202
  disabled: !!c || t,
203
203
  "aria-busy": t || void 0,
204
- ...i,
205
- children: t ? /* @__PURE__ */ r("span", { className: j.loadingLabel, children: [
204
+ ...d,
205
+ children: t ? /* @__PURE__ */ r("span", { className: $.loadingLabel, children: [
206
206
  /* @__PURE__ */ e("span", { "aria-hidden": "true", children: "$" }),
207
- o,
208
- /* @__PURE__ */ e("span", { "aria-hidden": "true", className: j.cursor })
209
- ] }) : a
207
+ a,
208
+ /* @__PURE__ */ e("span", { "aria-hidden": "true", className: $.cursor })
209
+ ] }) : o
210
210
  }
211
211
  );
212
212
  }
213
- const ae = "_panel_m16j3_1", ne = {
214
- panel: ae
213
+ const oe = "_panel_m16j3_1", ne = {
214
+ panel: oe
215
215
  };
216
- function xe({ children: t, dots: o = !1, className: a, ...n }) {
217
- const s = [ne.panel, o && "ds-dot-grid", a].filter(Boolean).join(" ");
216
+ function qe({ children: t, dots: a = !1, className: o, ...n }) {
217
+ const s = [ne.panel, a && "ds-dot-grid", o].filter(Boolean).join(" ");
218
218
  return /* @__PURE__ */ e("div", { className: s, ...n, children: t });
219
219
  }
220
220
  const le = "_list_27va3_1", re = "_step_27va3_12", x = {
221
221
  list: le,
222
222
  step: re
223
223
  };
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: [
224
+ function Se({ steps: t, className: a, ...o }) {
225
+ const n = [x.list, a].filter(Boolean).join(" ");
226
+ return /* @__PURE__ */ e("ul", { className: n, ...o, 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 ce = "_quote_1og2n_1", ie = "_marker_1og2n_12", de = "_text_1og2n_19", ue = "_cursor_1og2n_27", y = {
232
+ const ce = "_quote_sjisa_1", ie = "_floatLeft_sjisa_13", de = "_floatRight_sjisa_14", ue = "_marker_sjisa_31", _e = "_text_sjisa_38", me = "_cursor_sjisa_46", p = {
233
233
  quote: ce,
234
- marker: ie,
235
- text: de,
236
- cursor: ue
234
+ floatLeft: ie,
235
+ floatRight: de,
236
+ marker: ue,
237
+ text: _e,
238
+ cursor: me
239
+ }, fe = {
240
+ none: void 0,
241
+ left: p.floatLeft,
242
+ right: p.floatRight
237
243
  };
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: [
244
+ function Ve({
245
+ children: t,
246
+ marker: a = "#",
247
+ cursor: o = !0,
248
+ float: n = "none",
249
+ className: s,
250
+ ...c
251
+ }) {
252
+ const i = [p.quote, fe[n], s].filter(Boolean).join(" ");
253
+ return /* @__PURE__ */ r("blockquote", { className: i, ...c, children: [
254
+ /* @__PURE__ */ e("span", { className: p.marker, "aria-hidden": "true", children: a }),
255
+ /* @__PURE__ */ r("p", { className: p.text, children: [
243
256
  t,
244
- a && /* @__PURE__ */ e("span", { className: y.cursor, "aria-hidden": "true" })
257
+ o && /* @__PURE__ */ e("span", { className: p.cursor, "aria-hidden": "true" })
245
258
  ] })
246
259
  ] });
247
260
  }
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
261
+ const be = "_grid_94gwu_1", ge = "_cell_94gwu_12", pe = "_value_94gwu_19", he = "_label_94gwu_28", k = {
262
+ grid: be,
263
+ cell: ge,
264
+ value: pe,
265
+ label: he
253
266
  };
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: [
267
+ function Ae({ stats: t, className: a, ...o }) {
268
+ const n = [k.grid, a].filter(Boolean).join(" ");
269
+ return /* @__PURE__ */ e("dl", { className: n, ...o, children: t.map((s) => /* @__PURE__ */ r("div", { className: k.cell, children: [
257
270
  /* @__PURE__ */ e("dd", { className: k.value, children: s.value }),
258
271
  /* @__PURE__ */ e("dt", { className: k.label, children: s.label })
259
272
  ] }, s.label)) });
260
273
  }
261
- const pe = "_list_17qxg_1", fe = "_tag_17qxg_10", E = {
262
- list: pe,
263
- tag: fe
274
+ const ye = "_list_17qxg_1", ke = "_tag_17qxg_10", L = {
275
+ list: ye,
276
+ tag: ke
264
277
  };
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)) });
278
+ function Te({ tags: t, className: a, ...o }) {
279
+ const n = [L.list, a].filter(Boolean).join(" ");
280
+ return /* @__PURE__ */ e("ul", { className: n, ...o, children: t.map((s) => /* @__PURE__ */ e("li", { className: L.tag, children: s }, s)) });
268
281
  }
269
- const he = "_prompt_vxkw7_1", ye = "_path_vxkw7_11", ke = "_cursor_vxkw7_15", B = {
270
- prompt: he,
271
- path: ye,
272
- cursor: ke
282
+ const ve = "_prompt_vxkw7_1", Ne = "_path_vxkw7_11", we = "_cursor_vxkw7_15", j = {
283
+ prompt: ve,
284
+ path: Ne,
285
+ cursor: we
273
286
  };
274
- function De({ user: t, host: o, command: a, className: n, ...s }) {
275
- const c = [B.prompt, n].filter(Boolean).join(" ");
287
+ function De({ user: t, host: a, command: o, className: n, ...s }) {
288
+ const c = [j.prompt, n].filter(Boolean).join(" ");
276
289
  return /* @__PURE__ */ r("p", { className: c, ...s, children: [
277
- /* @__PURE__ */ r("span", { className: B.path, children: [
290
+ /* @__PURE__ */ r("span", { className: j.path, children: [
278
291
  t,
279
292
  "@",
280
- o
293
+ a
281
294
  ] }),
282
295
  " ~$ ",
283
- a,
284
- /* @__PURE__ */ e("span", { className: B.cursor, "aria-hidden": "true" })
296
+ o,
297
+ /* @__PURE__ */ e("span", { className: j.cursor, "aria-hidden": "true" })
285
298
  ] });
286
299
  }
287
300
  export {
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,
301
+ Ce as Avatar,
302
+ $e as Button,
303
+ xe as CommandPalette,
304
+ Le as Eyebrow,
305
+ Ee as LoadingButton,
306
+ qe as Panel,
307
+ Se as PipelineBadges,
308
+ Ve as Quote,
309
+ Ae as StatGrid,
310
+ Te as TagList,
298
311
  De as TerminalPrompt
299
312
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alishenriques/design-system",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "description": "Isolated design system for Alis portfolio and future products",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",