m1/org/openalice-ui

openalice-ui

> Atelier — the OpenAlice ecosystem design system. Editorial precision × cinematic depth × agentic confidence. Linear-meets-Twitch-meets-Apple-Pro-app.

Features
54
Status
·unknown
Last activity
12d ago
Branch
mvp

ui/api-hooks

11 features
  • ui.api-hooks.errors
    src/api-hooks/errors.ts:2
    Shared error message helpers for API hooks — extracts user-facing message from ApiRequestError, generic Error, or unknown, and strips bearer tokens / auth credentials before display.
    function:errorMessagefunction:sanitizeError
    since 0.5.0
  • ui.api-hooks.useAsyncState
    src/api-hooks/useAsyncState.ts:19
    Tiny generic helper that owns {data, loading, error} for an async fetch — collapses three useStates into one.
    hook:useAsyncState
    since 0.5.0
  • ui.api-hooks.useAuthGuard
    src/api-hooks/useAuthGuard.ts:44
    Verify the current session against /auth/me on mount. On 401 or missing token, clear auth + redirect to /login. Returns the authenticated user once verified.
    hook:useAuthGuard
    since 0.5.0
  • ui.api-hooks.useBilling
    src/api-hooks/hooks.ts:162
    Fetch billing status + plans, expose changePlan against the active OpenAliceClient.
    hook:useBilling
    since 0.5.0
  • ui.api-hooks.useKeys
    src/api-hooks/hooks.ts:90
    List/create/delete API keys against the active OpenAliceClient. Exposes newKey + clearNewKey for one-shot reveal.
    hook:useKeys
    since 0.5.0
  • ui.api-hooks.useLoginAction
    src/api-hooks/actions.ts:33
    Returns an async (email, password) → AuthActionResult that drives AuthProvider.login + sets the SSO sessionStorage flag. Translates RateLimitError into a UI-friendly message with retryAfter seconds.
    hook:useLoginAction
    since 0.5.0
  • ui.api-hooks.useLogoutAction
    src/api-hooks/actions.ts:107
    Returns an async () → void that drives AuthProvider.logout, then clears the SSO sessionStorage flag. Errors during logout are swallowed — local state is cleared regardless.
    hook:useLogoutAction
    since 0.5.0
  • ui.api-hooks.useMe
    src/api-hooks/hooks.ts:55
    Fetch the currently authenticated PublicUser from the active OpenAliceClient and expose loading/error/refetch.
    hook:useMe
    since 0.5.0
  • ui.api-hooks.useRegisterAction
    src/api-hooks/actions.ts:67
    Returns an async (name, email, password, _confirm?) → AuthActionResult that drives AuthProvider.register + sets the SSO sessionStorage flag. Translates RateLimitError into a UI-friendly message.
    hook:useRegisterAction
    since 0.5.0
  • ui.api-hooks.useUsage
    src/api-hooks/hooks.ts:232
    Fetch usage rollup for the last N days from the active OpenAliceClient.
    hook:useUsage
    since 0.5.0
  • ui.api-hooks.useUser
    src/api-hooks/hooks.ts:20
    Legacy adapter — fetch the current User (legacy shape) from the active OpenAliceClient. Prefer useMe() for new code.
    hook:useUser
    since 0.5.0

ui/auth

3 features
  • ui.auth.gate
    src/auth/AuthGate.tsx:25
    Client-side route guard — renders skeleton until auth resolves, redirects to /login if unauthenticated.
    component:AuthGate
    since 0.4.0
  • ui.auth.provider
    src/auth/AuthProvider.tsx:67
    Shared React context for cross-domain SSO — JWT in localStorage, HttpOnly cookie probe, cross-tab sync.
    component:AuthProviderhook:useAuthcomponent:AuthGate
    since 0.4.0
  • ui.auth.realtime-ws
    src/auth/useAuthWs.ts:7
    Hook that opens a WebSocket to /auth/ws while the user is signed in, dispatches each incoming event envelope to a handler, and reconnects with exponential backoff on disconnect.
    hook:useAuthWs
    since 0.5.0

ui/composite

8 features
  • ui.composite.auth-shell
    src/composites/AuthShell.tsx:28
    Centered auth-page layout — atmospheric grain + halo, brand mark, card, footer.
    component:AuthShell
    since 0.6.0
  • ui.composite.brand-mark
    src/composites/BrandMark.tsx:17
    OpenAlice wordmark / monogram — SVG, crisp at any size.
    component:BrandMark
    since 0.6.0
  • ui.composite.dashboard-grid
    src/composites/DashboardGrid.tsx:21
    Responsive auto-fit grid for stat / card lists.
    component:DashboardGrid
    since 0.6.0
  • ui.composite.live-indicator
    src/composites/LiveIndicator.tsx:16
    Pulsing chip for live/recording state. Plasma cyan or warm red tone.
    component:LiveIndicator
    since 0.6.0
  • ui.composite.page-header
    src/composites/PageHeader.tsx:22
    Standard page title + description + actions row.
    component:PageHeader
    since 0.6.0
  • ui.composite.section-header
    src/composites/SectionHeader.tsx:13
    Sub-section title row (h2-weight) inside a page.
    component:SectionHeader
    since 0.6.0
  • ui.composite.settings-shell
    src/composites/SettingsShell.tsx:29
    Left-nav + main-content layout for settings/account pages.
    component:SettingsShell
    since 0.6.0
  • ui.composite.theme-provider
    src/composites/ThemeProvider.tsx:22
    Sets data-theme on document root, persists to localStorage, optional system mode.
    component:ThemeProvider
    since 0.6.0

ui/primitive

30 features
  • ui.primitive.avatar
    src/primitives/Avatar.tsx:14
    Circular avatar with image fallback to initials and optional ring.
    component:Avatar
    since 0.1.0
  • ui.primitive.badge
    src/primitives/Badge.tsx:21
    Chip / tag — 2px radius, hairline ring, semantic + brand variants.
    component:Badge
    since 0.1.0
  • ui.primitive.banner
    src/primitives/Banner.tsx:28
    Full-width persistent message with left-edge accent and optional dismiss.
    component:Banner
    since 0.6.0
  • ui.primitive.breadcrumbs
    src/primitives/Breadcrumbs.tsx:14
    Chevron-separated path navigation. Last item is current page.
    component:Breadcrumbs
    since 0.6.0
  • ui.primitive.button
    src/primitives/Button.tsx:28
    Tactile button primitive — five variants, three sizes, loading state, spring press.
    component:Button
    since 0.1.0
  • ui.primitive.card
    src/primitives/Card.tsx:17
    Surface card with hairline border. Optional hover-lift via `interactive`.
    component:Card
    since 0.1.0
  • ui.primitive.checkbox
    src/primitives/Checkbox.tsx:17
    Square checkbox with smooth check animation, native semantics, validators.
    component:Checkbox
    since 0.6.0
  • ui.primitive.combobox
    src/primitives/Combobox.tsx:18
    Searchable typeahead select. Custom filter, keyboard nav, validators.
    component:Combobox
    since 0.6.0
  • ui.primitive.copy-button
    src/primitives/CopyButton.tsx:17
    Clipboard copy with success-state animation.
    component:CopyButton
    since 0.6.0
  • ui.primitive.dialog
    src/primitives/Dialog.tsx:31
    Compositional dialog API on top of Modal — header, title, description, footer slots.
    component:Dialog
    since 0.4.0
  • ui.primitive.dropdown
    src/primitives/Dropdown.tsx:26
    Compound dropdown menu — trigger / content / item / separator / label, click-outside + ESC close.
    component:Dropdown
    since 0.1.0
  • ui.primitive.empty-state
    src/primitives/EmptyState.tsx:21
    Centered empty-state panel — icon/illustration slot, title, body, optional CTA.
    component:EmptyState
    since 0.6.0
  • ui.primitive.form-field
    src/primitives/FormField.tsx:32
    Composes Label + control + helper/error + optional validators. Universal form row.
    component:FormField
    since 0.6.0
  • ui.primitive.input
    src/primitives/Input.tsx:20
    Hairline text input — supports validators, helper text, icon slots, monospace mode.
    component:Input
    since 0.1.0
  • ui.primitive.kbd-key
    src/primitives/KbdKey.tsx:21
    Keyboard-shortcut chip. Multi-key combos via `combo` (string) or `keys` (array).
    component:KbdKey
    since 0.6.0
  • ui.primitive.label
    src/primitives/Label.tsx:12
    Semantic form label with required-star slot.
    component:Label
    since 0.6.0
  • ui.primitive.modal
    src/primitives/Modal.tsx:19
    Centered dialog primitive — focus trap, ESC, scroll-lock, glass backdrop with grain.
    component:Modal
    since 0.1.0
  • ui.primitive.pagination
    src/primitives/Pagination.tsx:14
    Page-number navigator with prev/next + ellipsis.
    component:Pagination
    since 0.6.0
  • ui.primitive.progress
    src/primitives/Progress.tsx:13
    Bar progress — determinate (0-100) or indeterminate sliding bar.
    component:Progress
    since 0.6.0
  • ui.primitive.radio-group
    src/primitives/RadioGroup.tsx:20
    Radio button group with native semantics + Atelier styling + validators.
    component:RadioGroup
    since 0.6.0
  • ui.primitive.scroll-area
    src/primitives/ScrollArea.tsx:13
    Scrollable container with Atelier scrollbar styling.
    component:ScrollArea
    since 0.1.0
  • ui.primitive.select
    src/primitives/Select.tsx:18
    Headless select with keyboard nav, click-outside close, and validators.
    component:Select
    since 0.6.0
  • ui.primitive.separator
    src/primitives/Separator.tsx:13
    Hairline horizontal/vertical divider with optional decorative gradient variant.
    component:Separator
    since 0.1.0
  • ui.primitive.skeleton
    src/primitives/Skeleton.tsx:14
    Loading placeholder with warm shimmer.
    component:Skeleton
    since 0.1.0
  • ui.primitive.slider
    src/primitives/Slider.tsx:14
    Range slider — native input semantics, brand-500 fill, focus ring.
    component:Slider
    since 0.6.0
  • ui.primitive.spinner
    src/primitives/Spinner.tsx:14
    Indeterminate circular loader. Matches button sizes for inline use.
    component:Spinner
    since 0.6.0
  • ui.primitive.switch
    src/primitives/Switch.tsx:16
    Pill toggle. Solar amber active state, hairline ring, native checkbox semantics.
    component:Switch
    since 0.1.0
  • ui.primitive.tabs
    src/primitives/Tabs.tsx:27
    Hairline-underline tabs with keyboard arrow nav.
    component:Tabs
    since 0.6.0
  • ui.primitive.textarea
    src/primitives/Textarea.tsx:13
    Multi-line text input with auto-resize, char count, and validators.
    component:Textarea
    since 0.1.0
  • ui.primitive.tooltip
    src/primitives/Tooltip.tsx:14
    Hover hint with 4-position support, configurable delay, hairline border.
    component:Tooltip
    since 0.1.0

ui/shell

2 features
  • ui.command-palette
    src/composites/CommandPalette.tsx:7
    Cmd+K / Ctrl+K command palette — modal overlay with fuzzy filter over a flat list of commands. Mounted by EcosystemShell so every product gets the same shortcut surface.
    component:CommandPalette
    since 0.5.0
  • ui.ecosystem.shell
    src/composites/EcosystemShell.tsx:11
    Persistent cross-product chrome — left sidebar with product switcher, top bar with account chip. Wraps each product's layout so the 5 products feel like one app.
    component:EcosystemShell
    since 0.4.0