learning_ai_common_plat/packages
saravanakumardb1 a55b819533 feat(ui): @bytelyst/ui@0.2.0 — Skeleton/SkeletonGroup/LoadingDots/SearchInput
Wave 9.D additions to the shared UI primitive package.

──────────────────────────────────────────────────────────────────
Skeleton — `card` shape added + new <SkeletonGroup> orchestrator
──────────────────────────────────────────────────────────────────
  packages/ui/src/components/Skeleton.tsx

  - 4 shape variants: text / block / circle / **card**
    The `card` variant uses min-h-32 + rounded-2xl + a subtle
    border so a real <Card> can swap in without CLS.
  - New <SkeletonGroup loading fallback>{children}</SkeletonGroup>
    component handles the fade-out → content swap centrally. Use
    one per loadable region rather than sprinkling <Skeleton/>
    everywhere. Supports `keepContent` for re-fetch flows.
  - In-source TODO #2 marker for the pending vitest setup.

──────────────────────────────────────────────────────────────────
LoadingDots — three-dot inline pulse
──────────────────────────────────────────────────────────────────
  packages/ui/src/components/LoadingDots.tsx  (new)

  - sm / md / lg sizes
  - `color` override, defaults to var(--bl-accent)
  - motion-safe:animate-bounce respects prefers-reduced-motion
  - role="status" + sr-only label for screen readers
  - inline-flex layout — composes inside chat bubbles + buttons

──────────────────────────────────────────────────────────────────
SearchInput — themed search field with suggestions slot
──────────────────────────────────────────────────────────────────
  packages/ui/src/components/SearchInput.tsx  (new)

  - Leading Search icon + clear-x button (visible while value !== '')
  - role="searchbox", proper aria-label fallback to placeholder
  - 3 size scales matching ButtonSize convention
  - `suggestions` slot for typeahead lists below
  - Forwards ref to <input> for imperative focus
  - Consolidates the bespoke search-field pattern from notes,
    fastgap, voice, jarvisjr (roadmap §2.2).

──────────────────────────────────────────────────────────────────
Package hygiene
──────────────────────────────────────────────────────────────────
  - package.json: 0.1.11 → 0.2.0
  - tsconfig.json: added DOM + DOM.Iterable libs to match
    motion/data-viz packages (required for e.target.value typing)
  - src/index.ts: exported SkeletonGroup, LoadingDots, SearchInput

──────────────────────────────────────────────────────────────────
Quality gates
──────────────────────────────────────────────────────────────────
  ✓ tsc --noEmit clean
  ✓ tsc build clean (no errors)
  ✓ No regression to existing ui exports

──────────────────────────────────────────────────────────────────
Roadmap tracker — 5 boxes flipped (§11)
──────────────────────────────────────────────────────────────────
  9.D.1  Skeleton extended with card shape
  9.D.2  SkeletonGroup orchestrator
  9.D.3  EmptyState verified (already shipped in 0.1.x)
  9.D.4  SearchInput added
  9.D.6  LoadingDots added + LoadingSpinner verified

§11.2 counter rewrote by scripts/count-roadmap-progress.ts:
  Wave 9 Data: 0/42 → 5/42 (12%)
  TOTAL:       5/202 → 10/202 (5%)

Open TODOs (§11.2.A):
  #2  Add vitest + happy-dom + @testing-library/react to
      @bytelyst/ui devDeps; write unit tests for the new
      Skeleton/SkeletonGroup/LoadingDots/SearchInput surfaces.
  #4  Republish @bytelyst/ui@0.2.0 to Gitea registry once #1
      (publish workflow) closes.

Showcase demos for these primitives land in the next showcase
commit (9.D.7–9.D.9).
2026-05-27 15:45:44 -07:00
..
accessibility fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
ai-ui feat(packages): Wave 2 v0.4 + Wave 3 v0.1 — ai-ui expanded, command-palette new 2026-05-27 12:43:23 -07:00
api-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
auth fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
auth-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
auth-ui fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
backend-config fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
backend-flags fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
backend-telemetry fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
billing-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
blob fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
blob-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
broadcast-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
celebrations fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
client-encrypt fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
command-palette feat(packages): Wave 2 v0.4 + Wave 3 v0.1 — ai-ui expanded, command-palette new 2026-05-27 12:43:23 -07:00
config chore: record gitea package backfill 2026-05-27 18:27:43 +00:00
cosmos fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
create-app fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
dashboard-components fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
dashboard-shell feat(packages): close ROADMAP TODOs #1, #2, #3 — density tier, react-auth fix, routePrefix 2026-05-27 11:49:20 -07:00
data-viz fix(data-viz): SSR-safe gradient id + NaN-safe ProgressRing 2026-05-27 14:46:27 -07:00
datastore fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
design-tokens feat(packages): close ROADMAP TODOs #1, #2, #3 — density tier, react-auth fix, routePrefix 2026-05-27 11:49:20 -07:00
devops fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
diagnostics-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
errors fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
event-store fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
events fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
extraction fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
fastify-auth fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
fastify-core fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
fastify-sse fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
feature-flag-client chore: record gitea package backfill 2026-05-27 18:27:43 +00:00
feedback-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
field-encrypt fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
gentle-notifications fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
kill-switch-client chore: record gitea package backfill 2026-05-27 18:27:43 +00:00
kotlin-platform-sdk feat(native-sdks): add Keychain/SecureStore key derivation to BLFieldEncrypt 2026-03-21 11:10:02 -07:00
llm fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
llm-router fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
logger fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
marketplace-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
mcp-client chore: record gitea package backfill 2026-05-27 18:27:43 +00:00
monitoring fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
motion feat(packages): Wave 4 motion + Wave 5b data-viz + Wave 7 notifications-ui 2026-05-27 13:08:30 -07:00
notifications-ui feat(packages): Wave 4 motion + Wave 5b data-viz + Wave 7 notifications-ui 2026-05-27 13:08:30 -07:00
offline-queue fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
ollama-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
org-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
palace fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
platform-client chore: record gitea package backfill 2026-05-27 18:27:43 +00:00
push fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
queue fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
quick-actions fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
react-auth feat(packages): close ROADMAP TODOs #1, #2, #3 — density tier, react-auth fix, routePrefix 2026-05-27 11:49:20 -07:00
react-native-platform-sdk chore: remove embedded Gitea package registry 2026-05-08 21:10:03 -07:00
referral-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
secure-storage-web fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
speech fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
storage fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
subscription-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
survey-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
swift-diagnostics fix(swift-diagnostics): T5.2 \u2014 replace print() with os.Logger 2026-05-23 15:21:39 -07:00
swift-platform-sdk feat(native-sdks): add Keychain/SecureStore key derivation to BLFieldEncrypt 2026-03-21 11:10:02 -07:00
sync fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
telemetry-client fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
testing fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
time-references fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
ui feat(ui): @bytelyst/ui@0.2.0 — Skeleton/SkeletonGroup/LoadingDots/SearchInput 2026-05-27 15:45:44 -07:00
use-keyboard-shortcuts fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
use-theme fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00
webhook-dispatch fix(gitea): set ROOT_URL=host.docker.internal, NO_PROXY for host (F17) 2026-05-27 01:51:43 -07:00