@nurix/etna 0.19.11 → 0.19.13
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 +6 -4
- package/data/harness-index.json +1 -1
- package/data/harnesses/code/agents/maintenance.md +1 -1
- package/data/harnesses/code/harness.json +1 -1
- package/data/harnesses/code/rules/frontend.md +5 -5
- package/data/harnesses/code/skills/design/SKILL.md +70 -50
- package/data/harnesses/code/skills/design/components/charts.md +76 -0
- package/data/harnesses/code/skills/design/components/collections.md +132 -0
- package/data/harnesses/code/skills/design/components/feedback.md +47 -0
- package/data/harnesses/code/skills/design/components/hooks.md +35 -0
- package/data/harnesses/code/skills/design/components/index.md +143 -0
- package/data/harnesses/code/skills/design/components/inputs.md +327 -0
- package/data/harnesses/code/skills/design/components/layout.md +52 -0
- package/data/harnesses/code/skills/design/components/media.md +66 -0
- package/data/harnesses/code/skills/design/components/motion.md +82 -0
- package/data/harnesses/code/skills/design/components/navigation.md +29 -0
- package/data/harnesses/code/skills/design/components/overlays.md +72 -0
- package/data/harnesses/code/skills/design/components/setup.md +40 -0
- package/data/harnesses/code/skills/design/components/typography.md +46 -0
- package/data/harnesses/code/skills/design/components/utils.md +37 -0
- package/data/harnesses/code/skills/design/data/blueprints/browse.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/creation-flow.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/dashboard.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/grid.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/queue.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/record-detail.md +38 -0
- package/data/harnesses/code/skills/design/data/blueprints/settings.md +38 -0
- package/data/harnesses/code/skills/design/data/chart-styling/Readme.md +33 -0
- package/data/harnesses/code/skills/design/data/chart-styling/carbon-accessible-alert-semantic.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/carbon-monochrome-sequential-trend.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/datadog-classic-six-aligned.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/datawrapper-tiered-gray-hierarchy.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/econ-red-rule-horizontal.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/financial-diverging-threshold-overlay.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/ft-vocabulary-ranked-muted.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/grafana-dark-threshold-bands.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/material-rounded-explicit-label.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/nyt-ghost-grid-direct-label.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/plot-currentcolor-inherit.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/saas-gradient-glow-area.md +19 -0
- package/data/harnesses/code/skills/design/data/chart-styling/shadcn-composable-css-vars.md +19 -0
- package/data/harnesses/code/skills/design/data/charts/census.csv +58 -0
- package/data/harnesses/code/skills/design/data/checklists/browse.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/creation-flow.md +20 -0
- package/data/harnesses/code/skills/design/data/checklists/dashboard.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/grid.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/queue.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/record-detail.md +21 -0
- package/data/harnesses/code/skills/design/data/checklists/settings.md +21 -0
- package/data/harnesses/code/skills/design/data/chrome/board-column.md +68 -0
- package/data/harnesses/code/skills/design/data/chrome/data-table.md +63 -0
- package/data/harnesses/code/skills/design/data/chrome/side-panel.md +60 -0
- package/data/harnesses/code/skills/design/data/chrome/sidebar.md +78 -0
- package/data/harnesses/code/skills/design/data/chrome/stat-cards.md +62 -0
- package/data/harnesses/code/skills/design/data/chrome/topbar.md +65 -0
- package/data/harnesses/code/skills/design/data/color/accent-presets.md +90 -0
- package/data/harnesses/code/skills/design/data/color/aesop-earth-mute.md +91 -0
- package/data/harnesses/code/skills/design/data/color/arc-peach-play.md +90 -0
- package/data/harnesses/code/skills/design/data/color/attio-hunter-teal.md +90 -0
- package/data/harnesses/code/skills/design/data/color/carbon-cyan-signal.md +90 -0
- package/data/harnesses/code/skills/design/data/color/clay-parchment.md +90 -0
- package/data/harnesses/code/skills/design/data/color/duolingo-feather.md +90 -0
- package/data/harnesses/code/skills/design/data/color/geist-mono-signal.md +90 -0
- package/data/harnesses/code/skills/design/data/color/linear-graphite-violet.md +90 -0
- package/data/harnesses/code/skills/design/data/color/mercury-onyx-cobalt.md +90 -0
- package/data/harnesses/code/skills/design/data/color/notion-paper-ink.md +90 -0
- package/data/harnesses/code/skills/design/data/color/radix-slate-iris.md +90 -0
- package/data/harnesses/code/skills/design/data/color/raycast-void-spectrum.md +90 -0
- package/data/harnesses/code/skills/design/data/color/spectrum-celery-fuchsia.md +90 -0
- package/data/harnesses/code/skills/design/data/color/stripe-blurple-ruby.md +90 -0
- package/data/harnesses/code/skills/design/data/color/superhuman-cod-picton.md +89 -0
- package/data/harnesses/code/skills/design/data/corpora/operations-review/companies.csv +15 -0
- package/data/harnesses/code/skills/design/data/corpora/operations-review/corpus.md +87 -0
- package/data/harnesses/code/skills/design/data/corpora/operations-review/people.csv +25 -0
- package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/companies.csv +15 -0
- package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/corpus.md +83 -0
- package/data/harnesses/code/skills/design/data/corpora/procurement-approvals/people.csv +25 -0
- package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/companies.csv +15 -0
- package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/corpus.md +89 -0
- package/data/harnesses/code/skills/design/data/corpora/revenue-analytics/people.csv +25 -0
- package/data/harnesses/code/skills/design/data/elevation/ant-design-directional-shadow.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/apple-liquid-glass-material.md +18 -0
- package/data/harnesses/code/skills/design/data/elevation/atlassian-surface-shadow-pairing.md +20 -0
- package/data/harnesses/code/skills/design/data/elevation/fluent-2-key-ambient-ramp.md +20 -0
- package/data/harnesses/code/skills/design/data/elevation/github-primer-sparing-shadow.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/ibm-carbon-layer-and-border.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/linear-dark-surface-ladder.md +17 -0
- package/data/harnesses/code/skills/design/data/elevation/material-2-key-ambient-dp-ramp.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/material-3-tonal-elevation.md +21 -0
- package/data/harnesses/code/skills/design/data/elevation/neobrutalist-hard-offset.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/neumorphic-soft-dual-shadow.md +18 -0
- package/data/harnesses/code/skills/design/data/elevation/notion-warm-minimal-hairline.md +17 -0
- package/data/harnesses/code/skills/design/data/elevation/polaris-elevation-inset-bevel.md +21 -0
- package/data/harnesses/code/skills/design/data/elevation/radix-themes-alpha-ring-scale.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/shadcn-neutral-derived-radius.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/stripe-brand-tinted-dual-shadow.md +18 -0
- package/data/harnesses/code/skills/design/data/elevation/tailwind-default-utility-scale.md +19 -0
- package/data/harnesses/code/skills/design/data/elevation/vercel-geist-shadow-as-border.md +20 -0
- package/data/harnesses/code/skills/design/data/gradients/amber-attention-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/cloud-shadow-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/confident-lavender-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/ember-ship-flare.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/full-metal-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/indigo-ruby-cta-band.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/linear-graphite-wash.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/marble-quartz-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/midnight-aurora-panel.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/neutral-volume-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/revenue-uptrend-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/risk-decline-fill.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/signal-blue-develop.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/slate-mist-wash.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/stripe-atmosphere-mesh.md +18 -0
- package/data/harnesses/code/skills/design/data/gradients/teal-signal-accent.md +16 -0
- package/data/harnesses/code/skills/design/data/gradients/violet-magenta-promo.md +16 -0
- package/data/harnesses/code/skills/design/data/iconography.md +199 -0
- package/data/harnesses/code/skills/design/data/motion/accordion-expand.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/destructive-hold-confirm.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/drag-dismiss-momentum.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/empty-state-arrive.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/hover-lift.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/modal-center-arrive.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/number-ticker-roll.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/onboarding-bounce.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/panel-slide.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/press-feedback.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/progress-linear-loop.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/route-crossfade.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/rubber-band-overscroll.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/skeleton-shimmer.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/stagger-arrive.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/toast-enter-stack.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/tooltip-chain-instant.md +18 -0
- package/data/harnesses/code/skills/design/data/motion/trigger-anchored-reveal.md +18 -0
- package/data/harnesses/code/skills/design/data/tells.csv +34 -0
- package/data/harnesses/code/skills/design/data/typography/anton-work-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/archivo-black-archivo.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/bitter-karla.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/dm-serif-dm-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/fraunces-inter.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/geist-geist-mono.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/hubot-sans-mona-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/ibm-plex-sans-operator-single-family.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/instrument-serif-instrument-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/inter-operator-single-family.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/libre-baskerville-libre-franklin.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/newsreader-inter.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/playfair-display-source-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/public-sans-operator-single-family.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/sohne-inter-fintech.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/source-serif-source-sans.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/space-grotesk-work-sans-space-mono.md +17 -0
- package/data/harnesses/code/skills/design/data/typography/spectral-manrope.md +17 -0
- package/data/harnesses/code/skills/design/data/voices/bright-collaborator.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/direct-operator.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/earnest-helper.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/editorial-composed.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/quiet-concierge.md +29 -0
- package/data/harnesses/code/skills/design/data/voices/warm-guide.md +29 -0
- package/data/harnesses/code/skills/design/design-md/SCHEMA.md +179 -0
- package/data/harnesses/code/skills/design/design-md/index.csv +67 -0
- package/data/harnesses/code/skills/design/design-md/library/airbnb.md +207 -0
- package/data/harnesses/code/skills/design/design-md/library/airtable.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/anthropic-claude.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/apple.md +206 -0
- package/data/harnesses/code/skills/design/design-md/library/binance.md +210 -0
- package/data/harnesses/code/skills/design/design-md/library/bmw.md +210 -0
- package/data/harnesses/code/skills/design/design-md/library/cal.md +209 -0
- package/data/harnesses/code/skills/design/design-md/library/clay.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/clickhouse.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/cohere.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/coinbase.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/composio.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/cursor.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/elevenlabs.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/expo.md +200 -0
- package/data/harnesses/code/skills/design/design-md/library/figma.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/framer.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/hashicorp.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/ibm.md +205 -0
- package/data/harnesses/code/skills/design/design-md/library/intercom.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/kraken.md +200 -0
- package/data/harnesses/code/skills/design/design-md/library/linear-app.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/lovable.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/meta.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/minimax.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/mintlify.md +210 -0
- package/data/harnesses/code/skills/design/design-md/library/miro.md +209 -0
- package/data/harnesses/code/skills/design/design-md/library/mistral-ai.md +201 -0
- package/data/harnesses/code/skills/design/design-md/library/mongodb.md +201 -0
- package/data/harnesses/code/skills/design/design-md/library/notion.md +204 -0
- package/data/harnesses/code/skills/design/design-md/library/nvidia.md +215 -0
- package/data/harnesses/code/skills/design/design-md/library/ollama.md +213 -0
- package/data/harnesses/code/skills/design/design-md/library/opencode-ai.md +216 -0
- package/data/harnesses/code/skills/design/design-md/library/posthog.md +218 -0
- package/data/harnesses/code/skills/design/design-md/library/raycast.md +214 -0
- package/data/harnesses/code/skills/design/design-md/library/replicate.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/resend.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/revolut.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/runwayml.md +203 -0
- package/data/harnesses/code/skills/design/design-md/library/sanity.md +200 -0
- package/data/harnesses/code/skills/design/design-md/library/sentry.md +201 -0
- package/data/harnesses/code/skills/design/design-md/library/shopify.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/slack.md +202 -0
- package/data/harnesses/code/skills/design/design-md/library/spacex.md +206 -0
- package/data/harnesses/code/skills/design/design-md/library/spotify.md +206 -0
- package/data/harnesses/code/skills/design/design-md/library/stripe.md +196 -0
- package/data/harnesses/code/skills/design/design-md/library/supabase.md +196 -0
- package/data/harnesses/code/skills/design/design-md/library/superhuman.md +194 -0
- package/data/harnesses/code/skills/design/design-md/library/tesla.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/theverge.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/together-ai.md +193 -0
- package/data/harnesses/code/skills/design/design-md/library/uber.md +195 -0
- package/data/harnesses/code/skills/design/design-md/library/vercel.md +195 -0
- package/data/harnesses/code/skills/design/design-md/library/voltagent.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/warp.md +196 -0
- package/data/harnesses/code/skills/design/design-md/library/webflow.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/wired.md +197 -0
- package/data/harnesses/code/skills/design/design-md/library/wise.md +198 -0
- package/data/harnesses/code/skills/design/design-md/library/x-ai.md +199 -0
- package/data/harnesses/code/skills/design/design-md/library/zapier.md +198 -0
- package/data/harnesses/code/skills/design/design-md/nurix.md +214 -0
- package/data/harnesses/code/skills/design/design-md/variants/editorial-luxury.md +184 -0
- package/data/harnesses/code/skills/design/design-md/variants/expressive-saas.md +216 -0
- package/data/harnesses/code/skills/design/design-md/variants/quiet-premium.md +211 -0
- package/data/harnesses/code/skills/design/design-md/variants/terse-dense-operator.md +212 -0
- package/data/harnesses/code/skills/design/design-md/variants/warm-approachable.md +216 -0
- package/data/harnesses/code/skills/design/references/compose.md +23 -0
- package/data/harnesses/code/skills/design/references/content.md +28 -0
- package/data/harnesses/code/skills/design/references/emission.md +21 -0
- package/data/harnesses/code/skills/design/references/existing-apps.md +27 -0
- package/data/harnesses/code/skills/design/references/intake.md +36 -0
- package/data/harnesses/code/skills/design/references/object-pass.md +24 -0
- package/data/harnesses/code/skills/design/references/ship-gate.md +29 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/Readme.md +195 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/ai-layer.md +49 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/attributes-lifecycle.md +43 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/container-choice.md +44 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/creation-paths.md +46 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/dashboards.md +42 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/modes.md +42 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/object-model.md +46 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/page-archetype.md +48 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/promotion-demotion.md +37 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/settings.md +42 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/standard-pages.md +46 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/state-matrix.md +41 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/table-mechanics.md +48 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/verbs.md +45 -0
- package/data/harnesses/code/skills/design/references/ux-patterns/viewer-context.md +40 -0
- package/data/harnesses/code/skills/design/scripts/README-validator.md +27 -0
- package/data/harnesses/code/skills/design/scripts/select-chart.mjs +596 -0
- package/data/harnesses/code/skills/design/scripts/validate-design-md.mjs +1198 -0
- package/data/harnesses/discussion/agents/discussion-baseline.md +1 -1
- package/data/harnesses/discussion/harness.json +1 -1
- package/data/harnesses/etna/agents/maintenance.md +1 -1
- package/data/harnesses/etna/harness.json +1 -1
- package/data/harnesses/hr/CLAUDE.md +1 -1
- package/data/harnesses/hr/harness.json +1 -1
- package/package.json +1 -1
- package/data/harnesses/code/skills/design/data/catalog/rules.csv +0 -137
- package/data/harnesses/code/skills/design/data/combinations/Readme.md +0 -33
- package/data/harnesses/code/skills/design/data/combinations/accent-presets.md +0 -113
- package/data/harnesses/code/skills/design/data/combinations/charts.csv +0 -33
- package/data/harnesses/code/skills/design/data/combinations/fonts-known.json +0 -448
- package/data/harnesses/code/skills/design/data/combinations/icons.csv +0 -157
- package/data/harnesses/code/skills/design/data/combinations/landing.csv +0 -38
- package/data/harnesses/code/skills/design/data/combinations/lucide-names.json +0 -2001
- package/data/harnesses/code/skills/design/data/combinations/manifest.json +0 -330
- package/data/harnesses/code/skills/design/data/combinations/motion.csv +0 -10
- package/data/harnesses/code/skills/design/data/combinations/palettes.csv +0 -92
- package/data/harnesses/code/skills/design/data/combinations/product-router.csv +0 -80
- package/data/harnesses/code/skills/design/data/combinations/styles.csv +0 -67
- package/data/harnesses/code/skills/design/data/combinations/typography.csv +0 -64
- package/data/harnesses/code/skills/design/data/design-md/SCHEMA.md +0 -106
- package/data/harnesses/code/skills/design/data/design-md/library/airbnb.md +0 -154
- package/data/harnesses/code/skills/design/data/design-md/library/airtable.md +0 -151
- package/data/harnesses/code/skills/design/data/design-md/library/anthropic-claude.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/apple.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/binance.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/bmw.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/cal.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/clay.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/clickhouse.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/cohere.md +0 -147
- package/data/harnesses/code/skills/design/data/design-md/library/coinbase.md +0 -156
- package/data/harnesses/code/skills/design/data/design-md/library/composio.md +0 -138
- package/data/harnesses/code/skills/design/data/design-md/library/cursor.md +0 -138
- package/data/harnesses/code/skills/design/data/design-md/library/elevenlabs.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/expo.md +0 -148
- package/data/harnesses/code/skills/design/data/design-md/library/figma.md +0 -141
- package/data/harnesses/code/skills/design/data/design-md/library/framer.md +0 -156
- package/data/harnesses/code/skills/design/data/design-md/library/hashicorp.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/ibm.md +0 -153
- package/data/harnesses/code/skills/design/data/design-md/library/intercom.md +0 -158
- package/data/harnesses/code/skills/design/data/design-md/library/kraken.md +0 -156
- package/data/harnesses/code/skills/design/data/design-md/library/linear-app.md +0 -122
- package/data/harnesses/code/skills/design/data/design-md/library/lovable.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/meta.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/minimax.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/mintlify.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/miro.md +0 -153
- package/data/harnesses/code/skills/design/data/design-md/library/mistral-ai.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/mongodb.md +0 -155
- package/data/harnesses/code/skills/design/data/design-md/library/notion.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/nvidia.md +0 -141
- package/data/harnesses/code/skills/design/data/design-md/library/ollama.md +0 -145
- package/data/harnesses/code/skills/design/data/design-md/library/opencode-ai.md +0 -142
- package/data/harnesses/code/skills/design/data/design-md/library/posthog.md +0 -152
- package/data/harnesses/code/skills/design/data/design-md/library/raycast.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/replicate.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/resend.md +0 -170
- package/data/harnesses/code/skills/design/data/design-md/library/revolut.md +0 -145
- package/data/harnesses/code/skills/design/data/design-md/library/runwayml.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/sanity.md +0 -168
- package/data/harnesses/code/skills/design/data/design-md/library/sentry.md +0 -163
- package/data/harnesses/code/skills/design/data/design-md/library/shopify.md +0 -147
- package/data/harnesses/code/skills/design/data/design-md/library/slack.md +0 -158
- package/data/harnesses/code/skills/design/data/design-md/library/spacex.md +0 -171
- package/data/harnesses/code/skills/design/data/design-md/library/spotify.md +0 -166
- package/data/harnesses/code/skills/design/data/design-md/library/stripe.md +0 -160
- package/data/harnesses/code/skills/design/data/design-md/library/supabase.md +0 -173
- package/data/harnesses/code/skills/design/data/design-md/library/superhuman.md +0 -145
- package/data/harnesses/code/skills/design/data/design-md/library/tesla.md +0 -153
- package/data/harnesses/code/skills/design/data/design-md/library/theverge.md +0 -167
- package/data/harnesses/code/skills/design/data/design-md/library/together-ai.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/uber.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/vercel.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/voltagent.md +0 -130
- package/data/harnesses/code/skills/design/data/design-md/library/warp.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/webflow.md +0 -140
- package/data/harnesses/code/skills/design/data/design-md/library/wired.md +0 -139
- package/data/harnesses/code/skills/design/data/design-md/library/wise.md +0 -137
- package/data/harnesses/code/skills/design/data/design-md/library/x-ai.md +0 -138
- package/data/harnesses/code/skills/design/data/design-md/library/zapier.md +0 -158
- package/data/harnesses/code/skills/design/data/design-md/nurix.md +0 -138
- package/data/harnesses/code/skills/design/data/design-tokens/SCHEMA.md +0 -695
- package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/airbnb/design.tokens.json +0 -1272
- package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/airtable/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/anthropic-claude/design.tokens.json +0 -1273
- package/data/harnesses/code/skills/design/data/design-tokens/apple/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/apple/design.tokens.json +0 -1262
- package/data/harnesses/code/skills/design/data/design-tokens/binance/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/binance/design.tokens.json +0 -1257
- package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/bmw/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/cal/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/cal/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/clay/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/clay/design.tokens.json +0 -1261
- package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/clickhouse/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/cohere/design.tokens.json +0 -1281
- package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/coinbase/design.tokens.json +0 -1262
- package/data/harnesses/code/skills/design/data/design-tokens/composio/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/composio/design.tokens.json +0 -1271
- package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/cursor/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/elevenlabs/design.tokens.json +0 -1293
- package/data/harnesses/code/skills/design/data/design-tokens/expo/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/expo/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/figma/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/figma/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/framer/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/framer/design.tokens.json +0 -1267
- package/data/harnesses/code/skills/design/data/design-tokens/goldens.json +0 -251
- package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/hashicorp/design.tokens.json +0 -1273
- package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/ibm/design.tokens.json +0 -1286
- package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/intercom/design.tokens.json +0 -1290
- package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/kraken/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.resolver.json +0 -23
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.dark.json +0 -599
- package/data/harnesses/code/skills/design/data/design-tokens/linear-app/design.tokens.json +0 -1272
- package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/lovable/design.tokens.json +0 -1267
- package/data/harnesses/code/skills/design/data/design-tokens/meta/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/meta/design.tokens.json +0 -1289
- package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/minimax/design.tokens.json +0 -1258
- package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/mintlify/design.tokens.json +0 -1284
- package/data/harnesses/code/skills/design/data/design-tokens/miro/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/miro/design.tokens.json +0 -1291
- package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/mistral-ai/design.tokens.json +0 -1263
- package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/mongodb/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/notion/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/notion/design.tokens.json +0 -1261
- package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/nurix/design.tokens.json +0 -1209
- package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/nvidia/design.tokens.json +0 -1265
- package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/ollama/design.tokens.json +0 -1253
- package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/opencode-ai/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/posthog/design.tokens.json +0 -1261
- package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/raycast/design.tokens.json +0 -1263
- package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/replicate/design.tokens.json +0 -1266
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.resolver.json +0 -23
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.dark.json +0 -623
- package/data/harnesses/code/skills/design/data/design-tokens/resend/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/revolut/design.tokens.json +0 -1264
- package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/runwayml/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/sanity/design.tokens.json +0 -1270
- package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/sentry/design.tokens.json +0 -1288
- package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/shopify/design.tokens.json +0 -1272
- package/data/harnesses/code/skills/design/data/design-tokens/slack/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/slack/design.tokens.json +0 -1265
- package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/spacex/design.tokens.json +0 -1287
- package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/spotify/design.tokens.json +0 -1286
- package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/stripe/design.tokens.json +0 -1285
- package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/supabase/design.tokens.json +0 -1287
- package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/superhuman/design.tokens.json +0 -1278
- package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/tesla/design.tokens.json +0 -1269
- package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/theverge/design.tokens.json +0 -1285
- package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/together-ai/design.tokens.json +0 -1303
- package/data/harnesses/code/skills/design/data/design-tokens/uber/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/uber/design.tokens.json +0 -1274
- package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/vercel/design.tokens.json +0 -1296
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.resolver.json +0 -23
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.dark.json +0 -612
- package/data/harnesses/code/skills/design/data/design-tokens/voltagent/design.tokens.json +0 -1282
- package/data/harnesses/code/skills/design/data/design-tokens/warp/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/warp/design.tokens.json +0 -1287
- package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/webflow/design.tokens.json +0 -1268
- package/data/harnesses/code/skills/design/data/design-tokens/wired/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/wired/design.tokens.json +0 -1276
- package/data/harnesses/code/skills/design/data/design-tokens/wise/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/wise/design.tokens.json +0 -1273
- package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/x-ai/design.tokens.json +0 -1296
- package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.resolver.json +0 -20
- package/data/harnesses/code/skills/design/data/design-tokens/zapier/design.tokens.json +0 -1286
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/command-center.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/create-edit.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/dashboard.tsx +0 -225
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/entity-detail.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/list-detail.tsx +0 -224
- package/data/harnesses/code/skills/design/data/operator-pack/exemplars/log-stream.tsx +0 -249
- package/data/harnesses/code/skills/design/data/operator-pack/fixtures.md +0 -88
- package/data/harnesses/code/skills/design/data/operator-pack/surface-catalog.md +0 -132
- package/data/harnesses/code/skills/design/data/operator-pack/trust-rubric.md +0 -76
- package/data/harnesses/code/skills/design/references/create.md +0 -173
- package/data/harnesses/code/skills/design/references/diagnosis.md +0 -108
- package/data/harnesses/code/skills/design/references/hard-rules.md +0 -177
- package/data/harnesses/code/skills/design/references/improve.md +0 -116
- package/data/harnesses/code/skills/design/references/interaction.md +0 -77
- package/data/harnesses/code/skills/design/references/introspect.md +0 -100
- package/data/harnesses/code/skills/design/references/lifecycle.md +0 -73
- package/data/harnesses/code/skills/design/references/personality.md +0 -575
- package/data/harnesses/code/skills/design/references/structure.md +0 -159
- package/data/harnesses/code/skills/design/scripts/convert-design-md.mjs +0 -1312
- package/data/harnesses/code/skills/design/scripts/derive-personality.mjs +0 -1498
- package/data/harnesses/code/skills/design/scripts/generate-fixtures.mjs +0 -551
- package/data/harnesses/code/skills/design/scripts/lib/checks.mjs +0 -1092
- package/data/harnesses/code/skills/design/scripts/lib/golden.mjs +0 -26
- package/data/harnesses/code/skills/design/scripts/lib/vocabulary.mjs +0 -65
- package/data/harnesses/code/skills/design/scripts/phase-gate.mjs +0 -538
- package/data/harnesses/code/skills/design/scripts/preship-sweep.mjs +0 -312
- package/data/harnesses/code/skills/design/scripts/render-rung.mjs +0 -890
- package/data/harnesses/code/skills/design/scripts/scaffold.mjs +0 -769
- package/data/harnesses/code/skills/design/scripts/self-integrity.mjs +0 -675
- package/data/harnesses/code/skills/design/scripts/snapshot-goldens.mjs +0 -164
- package/data/harnesses/code/skills/design/scripts/validate-combinations.mjs +0 -439
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Component catalog — the fused index
|
|
2
|
+
|
|
3
|
+
> **Generated folder — never hand-edit.** Everything under `skills/design/components/` is emitted by the components-repo regen instruction set (`docs/architecture/skills/case-studies/components-regen-spec.md`, run against the `@nurix/components` library checkout). Regeneration may reshape any file beneath this one; the design skill's only seam with this folder is this index.
|
|
4
|
+
|
|
5
|
+
**Load contract.** This index loads in **both** positions of the project's `primitives` switch (`design.md`, `primitives: nurix | native`) — it is how the skill knows what chrome *exists* to compose with. The per-category deep references beside it ([inputs](inputs.md), [overlays](overlays.md), [collections](collections.md), [navigation](navigation.md), [layout](layout.md), [feedback](feedback.md), [charts](charts.md), [typography](typography.md), [media](media.md), [motion](motion.md), [hooks](hooks.md), [utils](utils.md), plus [setup](setup.md) for install/Tailwind wiring) load **only under `primitives: nurix`**, and only when that category is touched.
|
|
6
|
+
|
|
7
|
+
**The ratchet.** Deep references bind only when `@nurix/components` is actually importable in the target project: the intake probe defaults the switch, the recorded `primitives:` line is the authority. Under `nurix`, a row binds to its **nurix** column and the category reference supplies the API. Under `native`, the per-category references never load; a row binds to its **shadcn** column (when the project uses shadcn/ui) or to the **fallback** column — a semantic-HTML/behavior spec the model implements with the incumbent stack.
|
|
8
|
+
|
|
9
|
+
Columns: `concept` (the composable idea) · `category` (which deep reference covers it) · `nurix` (symbols + `@nurix/components/<subpath>`; empty = the library has no primitive for this concept) · `shadcn` (shadcn/ui equivalent; `—` = none) · `fallback` (plain spec, always present).
|
|
10
|
+
|
|
11
|
+
```csv
|
|
12
|
+
concept,category,nurix,shadcn,fallback
|
|
13
|
+
button,inputs,Button (button),Button,"native <button>, variants via class, focus-visible ring"
|
|
14
|
+
text-input,inputs,"Input (input) — onSave commit, regex validator",Input,"<input type=text>, commit on blur/Enter"
|
|
15
|
+
number-input,inputs,"NumberInput (number-input) — min/max/step",—,"<input inputmode=numeric>, clamp on commit, Escape reverts"
|
|
16
|
+
textarea,inputs,"Textarea (textarea) — Cmd/Ctrl+Enter commits",Textarea,"<textarea>, blur commits, Escape resets draft"
|
|
17
|
+
checkbox,inputs,Checkbox (checkbox),Checkbox,"<input type=checkbox> + label, indeterminate via JS"
|
|
18
|
+
switch,inputs,Switch (switch),Switch,"role=switch button, aria-checked, Space toggles"
|
|
19
|
+
radio-group,inputs,"RadioGroup + card/segmented variants (radio-group)",RadioGroup,"fieldset of <input type=radio>, arrow-key roving focus"
|
|
20
|
+
select,inputs,"Select — searchable, multi, async (select)","Select; Combobox (Popover + Command)","<select> or listbox popover, typeahead, option objects not raw values"
|
|
21
|
+
native-select,inputs,"Select* Radix family (native-select)",Select,"plain <select> behind a styled trigger"
|
|
22
|
+
date-picker,inputs,DatePicker (date-picker),Date Picker (Calendar + Popover),"<input type=date> or calendar popover, ISO value"
|
|
23
|
+
date-range-picker,inputs,"DateRangePicker — presets sidebar (date-range-picker)",—,"two bound date inputs, partial selection reverts on close"
|
|
24
|
+
calendar,inputs,"Calendar (calendar) — react-day-picker",Calendar,"month grid <table>, arrow-key day navigation"
|
|
25
|
+
slider,inputs,Slider (slider),Slider,"<input type=range> with visible value readout"
|
|
26
|
+
rating,inputs,Rating (rating),—,"radio group of icon buttons, half-step optional"
|
|
27
|
+
toggle,inputs,"Toggle · ToggleGroup (toggle, toggle-group)","Toggle, Toggle Group","aria-pressed buttons, single or multiple selection"
|
|
28
|
+
otp-input,inputs,InputOTP (input-otp),Input OTP,"segmented one-char inputs, paste distributes across slots"
|
|
29
|
+
icon-picker,inputs,"IconPicker · Icon (icon-picker)",—,"searchable icon grid in a popover, categorized"
|
|
30
|
+
file-upload,inputs,MediaFilePicker (media-file-picker),—,"<input type=file> + drop zone, previews, size and count caps"
|
|
31
|
+
form-field,inputs,"Cell — label/content/helper/error slots (cell)",Form + FormField (react-hook-form),"label + control + helper in one block, error slot below control"
|
|
32
|
+
form-validation,inputs,,Form (react-hook-form),"form element with submit-time validation and inline field errors"
|
|
33
|
+
rich-text-editor,inputs,,—,"@tiptap/react editor with toolbar and markdown shortcuts"
|
|
34
|
+
code-editor,inputs,,—,"@monaco-editor/react, mono, optional read-only diff mode"
|
|
35
|
+
modal-dialog,overlays,Dialog (dialog),Dialog,"<dialog> or fixed layer, focus trap, ESC closes, header→body→footer"
|
|
36
|
+
confirm-dialog,overlays,"Dialog variant=danger — non-dismissible (dialog)",Alert Dialog,"modal with explicit confirm/cancel, no outside-click dismiss"
|
|
37
|
+
side-panel,overlays,Sheet (sheet),Sheet,"fixed aside, focus-trapped, ESC closes, interruptible slide"
|
|
38
|
+
bottom-drawer,overlays,Sheet side=bottom (sheet),Drawer (vaul),"fixed bottom panel spanning full width"
|
|
39
|
+
command-palette,overlays,Command (command),Command (cmdk),"filtered list in a dialog, ⌘K opens, arrow-key + Enter"
|
|
40
|
+
dropdown-menu,overlays,DropdownMenu (dropdown-menu),Dropdown Menu,"role=menu under a trigger, arrow-key nav, outside click closes"
|
|
41
|
+
context-menu,overlays,ContextMenu (context-menu),Context Menu,"right-click menu at pointer position"
|
|
42
|
+
popover,overlays,Popover (popover),Popover,"anchored floating panel, dismiss on outside/ESC"
|
|
43
|
+
hover-card,overlays,HoverCard (hover-card),Hover Card,"preview panel on hover intent, delayed open/close"
|
|
44
|
+
tooltip,overlays,Tooltip (tooltip),Tooltip,"short hint on hover/focus, never load-bearing content"
|
|
45
|
+
data-table,collections,"Table + defineColumn (table)","<Table> + TanStack Table","semantic <table>, sticky header, tabular-nums, real pagination, status chips"
|
|
46
|
+
table-primitives,collections,UiTable* family (ui-table),Table,"bare styled <table>/<thead>/<tbody> parts"
|
|
47
|
+
list,collections,"List + ListToolbar + ListPagination (list)",—,"<ul> of rows with toolbar and pager"
|
|
48
|
+
record-header,collections,"Header — config-driven (header)",—,"page-top block: breadcrumbs, title, status bar, actions"
|
|
49
|
+
page-header-stats,collections,"PageHeader — Stat/Crumb/BackLink (page-header)",—,"title row + KPI strip + back link"
|
|
50
|
+
gantt-timeline,collections,GanttChart (activity-timeline),—,"time-scaled task rows, date axis, horizontal scroll"
|
|
51
|
+
changes-feed,collections,ChangesList (changes-list),—,"grouped change-history feed, entity + operation labels"
|
|
52
|
+
message-thread,collections,"Message family + MessageScroller (message, message-scroller)",—,"scrolling feed pinned to bottom, jump-to-new button"
|
|
53
|
+
chat-bubble,collections,BubbleGroup + Bubble (bubble),—,"aligned bubble rows with reactions row"
|
|
54
|
+
attachment,collections,Attachment family (attachment),—,"file card: media, title, actions, error state, dashed idle border"
|
|
55
|
+
thread-marker,collections,"Marker — separator/border variants (marker)",—,"inline separator row with icon and label"
|
|
56
|
+
json-viewer,collections,,—,"react18-json-view collapsible tree, mono"
|
|
57
|
+
virtualized-list,collections,,—,"react-window fixed-row virtualization for 1k+ rows"
|
|
58
|
+
kanban-board,collections,,—,"flex columns of cards, @dnd-kit drag between columns, per-column count"
|
|
59
|
+
event-calendar,collections,,—,"month/week grid of events, today marker, overflow +N"
|
|
60
|
+
description-list,collections,,—,"<dl> two-column key/value grid, tabular values"
|
|
61
|
+
filter-toolbar,collections,,—,"row of faceted filter chips + clear-all + result count"
|
|
62
|
+
vertical-timeline,collections,,—,"ordered event list with time rail and node markers"
|
|
63
|
+
sidebar,navigation,"Sidebar family + Brand/Switcher/ItemGroup/UserMenu/Callout (sidebar)",Sidebar,"fixed <nav>: brand + icon sections + badges + user footer, collapsible to icons"
|
|
64
|
+
file-tree,navigation,FileTree (sidebar),—,"nested tree with disclosure carets, keyboard nav"
|
|
65
|
+
breadcrumb,navigation,Breadcrumb (breadcrumb),Breadcrumb,"<nav aria-label=breadcrumb>, current page unlinked"
|
|
66
|
+
tabs,navigation,Tabs (tabs),Tabs,"role=tablist, arrow-key switching, one panel per tab"
|
|
67
|
+
pagination,navigation,Pagination (pagination),Pagination,"page buttons + prev/next, aria-current on active page"
|
|
68
|
+
navbar,navigation,Navbar (navbar),—,"horizontal top <nav> with links and actions"
|
|
69
|
+
navigation-menu,navigation,NavigationMenu (navigation-menu),Navigation Menu,"top-level nav with flyout panels"
|
|
70
|
+
menubar,navigation,Menubar (menubar),Menubar,"desktop-app menu strip with full keyboard model"
|
|
71
|
+
slide-out-menu,navigation,SlideOutMenu (slide-out-menu),—,"off-canvas nav panel for narrow viewports"
|
|
72
|
+
icon-rail,navigation,VerticalIconBar (vertical-icon-bar),—,"narrow vertical icon strip with tooltips"
|
|
73
|
+
stepper,navigation,,—,"ordered steps with done/current/todo states, aria-current=step"
|
|
74
|
+
alert,feedback,Alert (alert),Alert,"role=alert block, tone via border + icon"
|
|
75
|
+
empty-state,feedback,EmptyState (empty-state),Empty,"icon + heading + motivation line + primary action"
|
|
76
|
+
error-boundary,feedback,ErrorBoundary (error-boundary),—,"React boundary rendering a retry block"
|
|
77
|
+
not-found,feedback,NotFound (not-found),—,"404 block with a way back"
|
|
78
|
+
skeleton,feedback,Skeleton (skeleton),Skeleton,"pulsing placeholder matching the final layout"
|
|
79
|
+
loader,feedback,Loader (loader),Spinner,"centered spinner with optional label"
|
|
80
|
+
text-spinner,feedback,"Braille (braille) · spinner frames (inline-spinner)",—,"animated unicode frames inline with text"
|
|
81
|
+
progress,feedback,Progress (progress),Progress,"role=progressbar with aria-valuenow"
|
|
82
|
+
toast,feedback,Toaster (sonner),Sonner,"stacked corner notifications, auto-dismiss, action slot"
|
|
83
|
+
typing-indicator,feedback,TypingIndicator (typing-indicator),—,"three-dot pulse row"
|
|
84
|
+
sparkline,charts,"Spark — line|bar|pie (spark) · Sparkline (sparkline)",—,"inline no-axis SVG mark, token or self-contained color"
|
|
85
|
+
inline-bar,charts,BarGraph (bar-graph),—,"compact bar SVG with skeleton, token colors"
|
|
86
|
+
inline-line,charts,LineGraph (line-graph),—,"compact line SVG with skeleton"
|
|
87
|
+
pie-donut,charts,"PieGraph — pie|half-pie|doughnut|half-doughnut (pie-graph)",—,"SVG arcs, max ~6 slices, center slot in doughnut"
|
|
88
|
+
segmented-progress,charts,ProgressBar (progress-bar),—,"stacked horizontal segments with legend"
|
|
89
|
+
area-chart,charts,"AreaChart + Area/RangeArea marks (charts)",Chart (recharts),"axes + gridlines + filled series + tooltip"
|
|
90
|
+
bar-chart,charts,"BarChart + ParetoLine, BarSort, stack modes (charts)",Chart (recharts),"grouped/stacked bars, value labels opt-in"
|
|
91
|
+
line-chart,charts,"LineChart + projection/reference overlays (charts)",Chart (recharts),"multi-series lines, reference lines, brush"
|
|
92
|
+
scatter-chart,charts,ScatterChart + Scatter (charts),—,"x/y point field, hover ring, box select"
|
|
93
|
+
composed-chart,charts,ComposedChart (charts),—,"mixed marks over one shared scale pair"
|
|
94
|
+
histogram,charts,Histogram + computeHistogramBins (charts),—,"binned bars over a continuous axis"
|
|
95
|
+
bullet-chart,charts,"Bullet (gauge; also charts)",—,"measure bar + target tick + zone bands"
|
|
96
|
+
funnel,charts,"Funnel + FunnelTooltip/FunnelLegend (funnel)",—,"ordered stage bands, percent-of-previous labels"
|
|
97
|
+
gauge,charts,"Gauge — arc or notch track, zones, target (gauge)",—,"value arc with threshold zones and center readout"
|
|
98
|
+
contribution-heatmap,charts,Heatmap + chrome (heatmap),—,"calendar cell grid with level legend"
|
|
99
|
+
matrix-heatmap,charts,MatrixHeatmap + legend/tooltip (heatmap),—,"x-by-y cell matrix on the tokenized ramp"
|
|
100
|
+
radar,charts,Radar (radar),—,"spider axes with series polygons"
|
|
101
|
+
ring,charts,Ring (ring),—,"segmented circular progress with center info"
|
|
102
|
+
chart-chrome,charts,"ChartEmpty · ChartHoverCard · ChartLegend (chart-primitives)",—,"shared empty/tooltip/legend chrome for inline charts"
|
|
103
|
+
card,layout,Card family (card),Card,"bordered section: header, content, footer"
|
|
104
|
+
stat-card,layout,Statistics family (statistics),—,"number + comparison + trend + state + door, composable regions"
|
|
105
|
+
accordion,layout,Accordion (accordion),Accordion,"stacked disclosure sections, single or multiple open"
|
|
106
|
+
collapsible,layout,"Collapsible (collapsible) · CollapsiblePanel (collapsible-panel)",Collapsible,"button-controlled region with hidden state"
|
|
107
|
+
split-panes,layout,ResizablePanelGroup (resizable),Resizable,"draggable divider panes, keyboard resize"
|
|
108
|
+
scroll-area,layout,ScrollArea (scroll-area),Scroll Area,"styled overflow container, visible-on-hover scrollbar"
|
|
109
|
+
separator,layout,"Separator (separator) · SeparatorWithText (separator-with-text)",Separator,"<hr>/role=separator, optional centered label"
|
|
110
|
+
aspect-ratio,layout,AspectRatio (aspect-ratio),Aspect Ratio,"CSS aspect-ratio box"
|
|
111
|
+
carousel,layout,Carousel (carousel),Carousel,"scroll-snap track with prev/next controls"
|
|
112
|
+
bento-grid,layout,BentoGrid + BentoCard (bento-grid),—,"asymmetric feature grid with spanning cells"
|
|
113
|
+
editable-card,layout,EditableCard (editable-card),—,"card with edit-in-place body and commit footer"
|
|
114
|
+
drag-reorder,layout,Sortable family (sortable),—,"dnd-kit list reorder, keyboard sortable, drag overlay ghost"
|
|
115
|
+
text,typography,Text (text),Typography,"semantic p/span with size and weight scale"
|
|
116
|
+
badge,typography,Badge (badge),Badge,"small status pill, tokenized tone"
|
|
117
|
+
chip,typography,"Chip (chip) · Option display (select)",—,"removable tag, optional color dot"
|
|
118
|
+
code,typography,Code (code),—,"inline <code>, mono"
|
|
119
|
+
kbd,typography,Kbd (kbd),Kbd,"<kbd> keycap"
|
|
120
|
+
label,typography,Label (label),Label,"<label for> bound to a control"
|
|
121
|
+
link,typography,Link (link),—,"<a> with underline discipline"
|
|
122
|
+
secure-text,typography,SecureText (secure-text),—,"masked value with reveal toggle, mono"
|
|
123
|
+
markdown,typography,Markdown (markdown),—,"react-markdown rendering with typographic defaults"
|
|
124
|
+
avatar,media,Avatar (avatar),Avatar,"image with initials fallback, round"
|
|
125
|
+
copy-button,media,CopyButton (copy-button),—,"clipboard write with copied-state swap"
|
|
126
|
+
icon,media,"IconRenderer (icon-renderer) + icons-data (icons-data)",—,"lucide icon by name, consistent stroke and size grid"
|
|
127
|
+
voice-waveform,media,"LiveWaveform (live-waveform) · MicIcon (mic-icon)",—,"animated level bars from mic input"
|
|
128
|
+
brand-logo,media,"NurixLogo — color|monochrome (nurix-logo)",—,"inline SVG wordmark sized by height"
|
|
129
|
+
shine-border,media,ShineBorder (shine-border),—,"animated gradient border wrapper, decorative"
|
|
130
|
+
theme-toggle,media,ThemeToggler (theme-toggler),—,"light/dark switch writing data-theme"
|
|
131
|
+
view-switcher,media,ViewSwitcher (view-switcher),—,"segmented control switching view-type projections"
|
|
132
|
+
animated-number,motion,"AnimatedNumber (animated-number) · SlidingNumber (motion-primitives/sliding-number)",—,"tick-up numerals, renders plain text until JS ready"
|
|
133
|
+
stagger-entrance,motion,AnimatedGroup (motion-primitives/animated-group),—,"staggered child arrival, identity moments only, never on 100×/day actions"
|
|
134
|
+
text-effects,motion,"TextEffect · TextMorph · TextScramble · TextShimmer (motion-primitives/*)",—,"per-character text animation, low-frequency surfaces only"
|
|
135
|
+
morphing-overlay,motion,"MorphingDialog · MorphingPopover (motion-primitives/*)",—,"trigger morphs into overlay, interruptible"
|
|
136
|
+
panel-transitions,motion,"TransitionPanel · Disclosure · motion Accordion (motion-primitives/*) · animated Tabs (animate-ui)",—,"crossfade/slide between sibling panels, height-animated reveal, interruptible"
|
|
137
|
+
decorative-effects,motion,"Spotlight · GlowEffect · AnimatedBackground · InfiniteSlider · Highlight (motion-primitives/*, animate-ui/*)",—,"pointer-tracked washes and loops, decorative only, never on data"
|
|
138
|
+
dynamic-toolbar,motion,ToolbarDynamic (motion-primitives/toolbar-dynamic),—,"toolbar expanding to contextual actions"
|
|
139
|
+
utility-hooks,hooks,"useClickOutside · useFileUpload · useMediaQuery · useIsMobile (hooks/*)",—,"outside-click, file-upload state, matchMedia boolean, <768px boolean"
|
|
140
|
+
class-merge,utils,cn (utils),cn,"clsx + tailwind-merge"
|
|
141
|
+
formatting-utils,utils,"formatDate (format) · generateId (id) · getErrorMessage (handle-error)",—,"Intl date formatting, nanoid ids, error-to-message normalization"
|
|
142
|
+
composition-utils,utils,"getStrictContext (get-strict-context) · composeRefs (compose-refs)",—,"throwing Provider/hook pair, ref composition"
|
|
143
|
+
```
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
# Input Components
|
|
2
|
+
|
|
3
|
+
> Generated reference (regen-owned; see [index.md](index.md)). Binds only under `primitives: nurix`.
|
|
4
|
+
|
|
5
|
+
## Shared Props
|
|
6
|
+
|
|
7
|
+
Enhanced form components support these props where applicable:
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Description |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `value` | `any` | Controlled value |
|
|
12
|
+
| `onChange` | `(value) => void` | Change handler (text inputs receive the event) |
|
|
13
|
+
| `onSave` | `(value) => void` | Commit on blur/Enter/selection |
|
|
14
|
+
| `disabled` | `boolean` | Prevents interaction |
|
|
15
|
+
| `readOnly` | `boolean` | Display-only mode |
|
|
16
|
+
| `inline` | `boolean` | Click-to-edit mode |
|
|
17
|
+
|
|
18
|
+
## Cell
|
|
19
|
+
|
|
20
|
+
Compound component for form field layout with label, content, and helpers.
|
|
21
|
+
|
|
22
|
+
**Props:** `mode` [default|inline], `size` [sm|md|lg], `editable`, `labelPosition` [top|left], `disabled`
|
|
23
|
+
|
|
24
|
+
**Sub-components:** `Cell.Label`, `Cell.Content`, `Cell.Prefix`, `Cell.Suffix`, `Cell.Stepper`, `Cell.Helper`, `Cell.Error`
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
<Cell mode="default" labelPosition="top">
|
|
28
|
+
<Cell.Label>Email</Cell.Label>
|
|
29
|
+
<Cell.Content>
|
|
30
|
+
<Input value={email} onChange={(e) => setEmail(e.target.value)} />
|
|
31
|
+
</Cell.Content>
|
|
32
|
+
<Cell.Helper>We'll never share your email</Cell.Helper>
|
|
33
|
+
</Cell>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Input
|
|
37
|
+
|
|
38
|
+
Text input with optional regex validation; commits on blur via `onSave`.
|
|
39
|
+
|
|
40
|
+
**Props:** `onSave`, `validator`, `onValidationError`, `hideBorder`
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
<Input
|
|
44
|
+
value={name}
|
|
45
|
+
onChange={(e) => setName(e.target.value)}
|
|
46
|
+
onSave={saveName}
|
|
47
|
+
placeholder="Enter name"
|
|
48
|
+
/>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## NumberInput
|
|
52
|
+
|
|
53
|
+
Numeric input with constraints; commits on blur/Enter, Escape reverts.
|
|
54
|
+
|
|
55
|
+
**Props:** `min`, `max`, `step`, `allowDecimals`, `allowNegative`, `onSave`, `onValidationError`, `hideBorder`
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<NumberInput value={count} onSave={setCount} min={0} max={100} step={1} />
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Textarea
|
|
62
|
+
|
|
63
|
+
Multi-line text input. Controlled when `value` is set; otherwise `defaultValue` seeds an internal draft and Escape resets it. Blur and Cmd/Ctrl+Enter commit via `onSave`.
|
|
64
|
+
|
|
65
|
+
**Props:** `onSave`, `hideBorder`
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
<Textarea
|
|
69
|
+
value={description}
|
|
70
|
+
onChange={(e) => setDescription(e.target.value)}
|
|
71
|
+
onSave={saveDescription}
|
|
72
|
+
/>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Checkbox
|
|
76
|
+
|
|
77
|
+
Boolean toggle supporting both `value`/`onChange` and `checked`/`onCheckedChange` APIs.
|
|
78
|
+
|
|
79
|
+
**Props:** `checked`, `onCheckedChange`, `value`, `onChange`, `indeterminate`
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
<Checkbox checked={agreed} onCheckedChange={setAgreed} />
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Switch
|
|
86
|
+
|
|
87
|
+
Toggle switch supporting both `value`/`onChange` and `checked`/`onCheckedChange` APIs.
|
|
88
|
+
|
|
89
|
+
**Props:** `checked`, `onCheckedChange`, `value`, `onChange`, `size` [sm|default]
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<Switch checked={enabled} onCheckedChange={setEnabled} />
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Select
|
|
96
|
+
|
|
97
|
+
Compound select with search, multi-select, and async loading. `onChange`/`onSave` receive the selected option object(s), not raw values.
|
|
98
|
+
|
|
99
|
+
**Props:** `options`, `mode` [single|multi], `clearable`, `maxSelections`, `selectionIndicator` [checkbox|check-end|bg-only], `compact`, `loading`, `onSearch`, `onLoadMore`, `debounceMs`
|
|
100
|
+
|
|
101
|
+
**Sub-components:** `Select.Trigger` (`display` [tags|comma|count]), `Select.Content` (`searchable`, `searchPlaceholder`, `showSelectAll`, `maxHeight`), `Select.Item`, `Select.Search`, `Select.Loading`, `Select.Empty`, `Select.SelectAll`
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
<Select
|
|
105
|
+
options={statusOptions}
|
|
106
|
+
value={status}
|
|
107
|
+
onChange={(opt) => setStatus(opt?.value)}
|
|
108
|
+
>
|
|
109
|
+
<Select.Trigger display="tags" />
|
|
110
|
+
<Select.Content searchable>
|
|
111
|
+
<Select.Item value="active">Active</Select.Item>
|
|
112
|
+
</Select.Content>
|
|
113
|
+
</Select>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Option
|
|
117
|
+
|
|
118
|
+
Standalone option display chip (exported from the `select` subpath).
|
|
119
|
+
|
|
120
|
+
**Props:** `variant` [text|pill|outline|ghost|soft], `color`, `prefix` ["dot"|ReactNode]
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
<Option variant="pill" color="#ef4444" prefix="dot">
|
|
124
|
+
High Priority
|
|
125
|
+
</Option>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## DatePicker
|
|
129
|
+
|
|
130
|
+
Date selection with calendar popover; accepts `Date`, ISO string, or null values.
|
|
131
|
+
|
|
132
|
+
**Props:** `onSave`, `inline`, `relativeFormat`, `formatPattern`, `showIcon`, `captionLayout` [label|dropdown|dropdown-months|dropdown-years], `buttonVariant`, `showOutsideDays`, `numberOfMonths`, `fromYear`, `toYear`, `fromDate`, `toDate`, `weekStartsOn`, `compact`
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
<DatePicker
|
|
136
|
+
value={date}
|
|
137
|
+
onChange={setDate}
|
|
138
|
+
onSave={handleSave}
|
|
139
|
+
relativeFormat
|
|
140
|
+
placeholder="Pick a date"
|
|
141
|
+
/>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Slider
|
|
145
|
+
|
|
146
|
+
Range input with optional value display.
|
|
147
|
+
|
|
148
|
+
**Props:** `min`, `max`, `step`, `defaultValue`, `onSave`, `inline`, `showValue`, `showMinMax`, `formatValue`, `compact`
|
|
149
|
+
|
|
150
|
+
```tsx
|
|
151
|
+
<Slider
|
|
152
|
+
value={volume}
|
|
153
|
+
onChange={setVolume}
|
|
154
|
+
onSave={handleSave}
|
|
155
|
+
min={0}
|
|
156
|
+
max={100}
|
|
157
|
+
/>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Rating
|
|
161
|
+
|
|
162
|
+
Icon-based rating input.
|
|
163
|
+
|
|
164
|
+
**Props:** `maxRating`, `size`, `icon` [Star|Heart|ThumbsUp|Circle|Flame|Zap|Trophy|Diamond], `allowHalf`, `showValue`, `onSave`, `inline`, `compact`
|
|
165
|
+
|
|
166
|
+
```tsx
|
|
167
|
+
<Rating
|
|
168
|
+
value={rating}
|
|
169
|
+
onChange={setRating}
|
|
170
|
+
onSave={handleSave}
|
|
171
|
+
maxRating={5}
|
|
172
|
+
allowHalf
|
|
173
|
+
/>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Button
|
|
177
|
+
|
|
178
|
+
Standard action button.
|
|
179
|
+
|
|
180
|
+
**Props:** `variant` [default|destructive|outline|secondary|ghost|link], `size` [default|sm|lg|icon], `asChild`
|
|
181
|
+
|
|
182
|
+
```tsx
|
|
183
|
+
<Button variant="outline" size="sm">
|
|
184
|
+
Cancel
|
|
185
|
+
</Button>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Calendar
|
|
189
|
+
|
|
190
|
+
Calendar grid built on `react-day-picker`; accepts all `DayPicker` props. Also exports `CalendarDayButton`.
|
|
191
|
+
|
|
192
|
+
**Props:** `mode` [single|multiple|range], `selected`, `onSelect`, `captionLayout` [label|dropdown|dropdown-months|dropdown-years], `numberOfMonths`, `showOutsideDays`, `buttonVariant`
|
|
193
|
+
|
|
194
|
+
```tsx
|
|
195
|
+
<Calendar
|
|
196
|
+
mode="single"
|
|
197
|
+
selected={date}
|
|
198
|
+
onSelect={setDate}
|
|
199
|
+
captionLayout="dropdown"
|
|
200
|
+
/>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## DateRangePicker
|
|
204
|
+
|
|
205
|
+
Date range selection with calendar popover and optional presets sidebar; `onSave` fires only when both ends are selected, and closing with a partial selection reverts.
|
|
206
|
+
|
|
207
|
+
**Props:** `onSave`, `inline`, `showPresets`, `presets`, `relativeFormat`, `formatPattern`, `showIcon`, `captionLayout`, `numberOfMonths`, `fromDate`, `toDate`, `weekStartsOn`, `compact`
|
|
208
|
+
|
|
209
|
+
```tsx
|
|
210
|
+
<DateRangePicker
|
|
211
|
+
value={range}
|
|
212
|
+
onChange={setRange}
|
|
213
|
+
onSave={handleSave}
|
|
214
|
+
showPresets
|
|
215
|
+
/>
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## IconPicker
|
|
219
|
+
|
|
220
|
+
Searchable Lucide icon picker popover; also exports `Icon` for rendering a picked icon by name.
|
|
221
|
+
|
|
222
|
+
**Props:** `value`, `defaultValue`, `onValueChange`, `open`, `onOpenChange`, `searchable`, `searchPlaceholder`, `triggerPlaceholder`, `iconsList`, `categorized`, `modal`
|
|
223
|
+
|
|
224
|
+
```tsx
|
|
225
|
+
<IconPicker value={iconName} onValueChange={setIconName} />
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## InputOTP
|
|
229
|
+
|
|
230
|
+
One-time code input built on `input-otp`.
|
|
231
|
+
|
|
232
|
+
**Props:** `maxLength`, `value`, `onChange`, `containerClassName`
|
|
233
|
+
|
|
234
|
+
**Sub-components:** `InputOTPGroup`, `InputOTPSlot` (`index` required), `InputOTPSeparator`
|
|
235
|
+
|
|
236
|
+
```tsx
|
|
237
|
+
<InputOTP maxLength={4} value={code} onChange={setCode}>
|
|
238
|
+
<InputOTPGroup>
|
|
239
|
+
<InputOTPSlot index={0} />
|
|
240
|
+
<InputOTPSlot index={1} />
|
|
241
|
+
<InputOTPSlot index={2} />
|
|
242
|
+
<InputOTPSlot index={3} />
|
|
243
|
+
</InputOTPGroup>
|
|
244
|
+
</InputOTP>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## MediaFilePicker
|
|
248
|
+
|
|
249
|
+
File upload with drag-and-drop dialog and previews. `value` is `MediaFileOption` object(s): `{ value, label, type, previewUrl, size, file }`.
|
|
250
|
+
|
|
251
|
+
**Props:** `mode` [single|multi], `maxFiles`, `maxFileSize`, `acceptedTypes`, `viewMode` [card|list], `display` [thumbnails|comma|tags], `renderPlainText`, `renderComponent`
|
|
252
|
+
|
|
253
|
+
```tsx
|
|
254
|
+
<MediaFilePicker value={files} onChange={setFiles} mode="multi" maxFiles={5} />
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## NativeSelect
|
|
258
|
+
|
|
259
|
+
Radix-based select primitive family on the `native-select` subpath (distinct from the compound `Select` above); exported symbols are named `Select*`.
|
|
260
|
+
|
|
261
|
+
**Props:** `value`, `onValueChange`, `defaultValue`, `disabled` (root passes through all Radix Select props)
|
|
262
|
+
|
|
263
|
+
**Sub-components:** `Select`, `SelectTrigger` (`size` [sm|default]), `SelectValue`, `SelectContent`, `SelectGroup`, `SelectLabel`, `SelectItem`
|
|
264
|
+
|
|
265
|
+
```tsx
|
|
266
|
+
<Select value={fruit} onValueChange={setFruit}>
|
|
267
|
+
<SelectTrigger>
|
|
268
|
+
<SelectValue placeholder="Pick one" />
|
|
269
|
+
</SelectTrigger>
|
|
270
|
+
<SelectContent>
|
|
271
|
+
<SelectItem value="apple">Apple</SelectItem>
|
|
272
|
+
</SelectContent>
|
|
273
|
+
</Select>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## RadioGroup
|
|
277
|
+
|
|
278
|
+
Radix radio group with card and segmented-control variants.
|
|
279
|
+
|
|
280
|
+
**Props:** `value`, `defaultValue`, `onValueChange`
|
|
281
|
+
|
|
282
|
+
**Sub-components:** `RadioGroupItem`, `RadioGroupCard` (`variant` [card|list|chip]), `RadioGroupCardItem`, `RadioGroupLabel` (`clickable`), `RadioGroupDescription`, `RadioGroupItemHeader/Title/Subtitle/Description/Content/Indicator`, `RadioGroupSegmented`, `RadioGroupSegmentedItem` (`icon`)
|
|
283
|
+
|
|
284
|
+
```tsx
|
|
285
|
+
<RadioGroup value={plan} onValueChange={setPlan}>
|
|
286
|
+
<RadioGroupCard>
|
|
287
|
+
<RadioGroupItem value="free" />
|
|
288
|
+
<RadioGroupLabel clickable>Free</RadioGroupLabel>
|
|
289
|
+
</RadioGroupCard>
|
|
290
|
+
<RadioGroupCard>
|
|
291
|
+
<RadioGroupItem value="pro" />
|
|
292
|
+
<RadioGroupLabel clickable>Pro</RadioGroupLabel>
|
|
293
|
+
</RadioGroupCard>
|
|
294
|
+
</RadioGroup>
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Toggle
|
|
298
|
+
|
|
299
|
+
Pressed-state button supporting both `value`/`onChange` and `pressed`/`onPressedChange` APIs.
|
|
300
|
+
|
|
301
|
+
**Props:** `pressed`, `onPressedChange`, `value`, `onChange`, `variant` [default|outline|primary], `size` [default|sm|lg], `density` [compact|comfortable|spacious]
|
|
302
|
+
|
|
303
|
+
```tsx
|
|
304
|
+
<Toggle pressed={isBold} onPressedChange={setIsBold} variant="outline">
|
|
305
|
+
B
|
|
306
|
+
</Toggle>
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
## ToggleGroup
|
|
310
|
+
|
|
311
|
+
Group of toggles with single or multiple selection; `variant`/`size`/`density` cascade to items.
|
|
312
|
+
|
|
313
|
+
**Props:** `type` [single|multiple], `value`, `defaultValue`, `onValueChange`, `variant` [default|outline|primary], `size` [default|sm|lg], `density` [compact|comfortable|spacious]
|
|
314
|
+
|
|
315
|
+
**Sub-components:** `ToggleGroupItem`
|
|
316
|
+
|
|
317
|
+
```tsx
|
|
318
|
+
<ToggleGroup
|
|
319
|
+
type="single"
|
|
320
|
+
value={align}
|
|
321
|
+
onValueChange={setAlign}
|
|
322
|
+
variant="outline"
|
|
323
|
+
>
|
|
324
|
+
<ToggleGroupItem value="left">Left</ToggleGroupItem>
|
|
325
|
+
<ToggleGroupItem value="right">Right</ToggleGroupItem>
|
|
326
|
+
</ToggleGroup>
|
|
327
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Layout Components
|
|
2
|
+
|
|
3
|
+
> Generated reference (regen-owned; see [index.md](index.md)). Binds only under `primitives: nurix`.
|
|
4
|
+
|
|
5
|
+
Content structure and containers. Import each from its own subpath, e.g. `import { Card, CardContent } from "@nurix/components/card";`.
|
|
6
|
+
|
|
7
|
+
## Statistics
|
|
8
|
+
|
|
9
|
+
Compound schema for dashboard stat / KPI cards — compose only the regions a card needs. Import from `@nurix/components/statistics`. Sub-components throw if rendered outside `<Statistics>`. The wrapper is `bare` (invisible — just a flex column) by default so consumers own its look; opt into a surface with `variant`.
|
|
10
|
+
|
|
11
|
+
**Sub-components:** `StatisticsHeader`, `StatisticsIcon`, `StatisticsHeading`, `StatisticsTitle`, `StatisticsDescription`, `StatisticsActions`, `StatisticsSection`, `StatisticsMetric`, `StatisticsValue`, `StatisticsUnit`, `StatisticsTrend`, `StatisticsComparison`, `StatisticsGroup`, `StatisticsVisual`, `StatisticsGauge`, `StatisticsProgress`, `StatisticsSegmentedBar`, `StatisticsSparkline`, `StatisticsLegend`, `StatisticsLegendItem`, `StatisticsContent`, `StatisticsFooter`, `StatisticsCaption`, `StatisticsLink`
|
|
12
|
+
|
|
13
|
+
**Statistics props:** `size` [sm|md|lg] (headline value scale), `variant` [bare|card|elevated|outline|soft|ghost] (default `bare` draws nothing; the rest add padding + surface), `accent` [none|primary|success|warning|danger|info], `gap` [none|sm|md|lg], `justify` [start|center|end|between|around|evenly], `comparisonLabel`
|
|
14
|
+
**StatisticsTitle:** `size` [sm|md|lg], `align` [left|center|right]
|
|
15
|
+
**StatisticsTrend:** `value:number`, `direction?` [up|down], `invert?` (flip color, keep arrow), `pill?`, `format?:(n)=>string`
|
|
16
|
+
**StatisticsIcon:** `variant` [default|primary|success|warning|danger|info], `tone` [soft|solid|outline|plain], `size` [xs|sm|md|lg|xl|oversized] (oversized bleeds out the top-right corner — needs a clipping surface variant), `shape` [circle|rounded|square]
|
|
17
|
+
**StatisticsGauge:** `value` (0–100), `sweep?` [180|270], `size?`, `thickness?`, `trackColor?`, `fillColor?` — renders children centered in the dial
|
|
18
|
+
**StatisticsSection:** `gap`, `justify` — a vertical group; nest two (top + bottom) in a `justify="between"` card to pin clusters to the top and bottom. `StatisticsVisual` is a generic slot: drop in a built-in visual or any chart (`PieGraph`, `LineGraph`, `BarGraph`, `ProgressBar`).
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
<Statistics variant="card" comparisonLabel="vs last week">
|
|
22
|
+
<StatisticsHeader>
|
|
23
|
+
<StatisticsHeading>
|
|
24
|
+
<StatisticsTitle>Revenue</StatisticsTitle>
|
|
25
|
+
</StatisticsHeading>
|
|
26
|
+
<StatisticsActions>
|
|
27
|
+
<StatisticsIcon variant="success">{/* icon */}</StatisticsIcon>
|
|
28
|
+
</StatisticsActions>
|
|
29
|
+
</StatisticsHeader>
|
|
30
|
+
<StatisticsMetric>
|
|
31
|
+
<StatisticsValue>$21,434</StatisticsValue>
|
|
32
|
+
<StatisticsTrend value={-12.2} invert pill />
|
|
33
|
+
<StatisticsComparison />
|
|
34
|
+
</StatisticsMetric>
|
|
35
|
+
</Statistics>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Other layout components
|
|
39
|
+
|
|
40
|
+
- `accordion` — Accordion, AccordionItem, AccordionTrigger, AccordionContent
|
|
41
|
+
- `aspect-ratio` — AspectRatio
|
|
42
|
+
- `bento-grid` — BentoGrid, BentoCard
|
|
43
|
+
- `card` — Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, CardAction, CardImage
|
|
44
|
+
- `carousel` — Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext
|
|
45
|
+
- `collapsible` — Collapsible, CollapsibleTrigger, CollapsibleContent
|
|
46
|
+
- `collapsible-panel` — CollapsiblePanel
|
|
47
|
+
- `editable-card` — EditableCard, EditableCardHeader, EditableCardBody, EditableCardFooter
|
|
48
|
+
- `resizable` — ResizablePanelGroup, ResizablePanel, ResizableHandle
|
|
49
|
+
- `scroll-area` — ScrollArea, ScrollBar
|
|
50
|
+
- `separator` — Separator
|
|
51
|
+
- `separator-with-text` — SeparatorWithText
|
|
52
|
+
- `sortable` — Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Media Components
|
|
2
|
+
|
|
3
|
+
> Generated reference (regen-owned; see [index.md](index.md)). Binds only under `primitives: nurix`.
|
|
4
|
+
|
|
5
|
+
Icons, avatars, and media display; import each from its kebab-case subpath, e.g. `import { Avatar } from "@nurix/components/avatar"`.
|
|
6
|
+
|
|
7
|
+
## Avatar
|
|
8
|
+
|
|
9
|
+
Wraps `facehash` (deterministic identicon fallback) with default sizing.
|
|
10
|
+
|
|
11
|
+
**Props:** `size` (number, default 32) — sets both `width`/`height` and drives the round mask
|
|
12
|
+
|
|
13
|
+
**Sub-components:** `AvatarImage`, `AvatarFallback` (`colors` — palette forwarded to facehash for its generated background, defaults to a 10-color set)
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Avatar size={40}>
|
|
17
|
+
<AvatarImage src="/photo.jpg" />
|
|
18
|
+
<AvatarFallback name="jane@example.com" />
|
|
19
|
+
</Avatar>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## CopyButton
|
|
23
|
+
|
|
24
|
+
Click-to-copy button with a check/copy icon swap.
|
|
25
|
+
|
|
26
|
+
**Props:** `value`, `onCopy`, `copiedDuration` (ms before reverting, default 2000), `variant` [default|outline], `size` [sm|default|lg]
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
<CopyButton value={apiKey} size="sm" />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## NurixLogo
|
|
33
|
+
|
|
34
|
+
Official Nurix wordmark, inline SVG.
|
|
35
|
+
|
|
36
|
+
**Props:** `type` [color|monochrome] (color = ink + blue X kicker; monochrome = every path in `color`, for dark/animated backdrops), `height` (number|string, sizes via intrinsic aspect ratio), `color` (ink, default `#222222`), `accentColor` (X-kicker, `type="color"` only, default `#4660EC`)
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
<NurixLogo type="monochrome" color="currentColor" height={20} />
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## ThemeToggler
|
|
43
|
+
|
|
44
|
+
Light/dark toggle with a directional wipe reveal; cycles light → dark → system → light and persists to `localStorage`.
|
|
45
|
+
|
|
46
|
+
**Props:** `style` [icon|text-icon|icon-text], `size` [sm|md|lg], `duration` (ms, default 700)
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<ThemeToggler style="icon-text" size="md" />
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## ViewSwitcher
|
|
53
|
+
|
|
54
|
+
Segmented control for switching a view-type projection (e.g. table/card), with an animated sliding background.
|
|
55
|
+
|
|
56
|
+
**Props:** `value`/`onChange` (controlled), `defaultValue` (default `"table"`), `options` (`{ value, label, icon }[]`, defaults to Table/Card), `size` [sm|md|lg]
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<ViewSwitcher value={view} onChange={setView} size="sm" />
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Other Components
|
|
63
|
+
|
|
64
|
+
- `icon-renderer` + `icons-data` — `IconRenderer`: `icon`/`family`/`size` [sm|md|lg|xl]/`color`; resolves a remote SVG (`https://static.amoga.io/fa/<family>/<icon>.svg`) tinted via CSS filter, with a built-in fallback icon on load error. `icons-data` exports `iconsData` — `{ name, categories, tags }[]` — for building icon pickers over the local Lucide set (distinct from the remote family above).
|
|
65
|
+
- `live-waveform` + `mic-icon` — `LiveWaveform`: canvas mic-level visualizer; `active`, `processing`, `mode` [static|history|frequency], `barWidth`/`barGap`/`barRadius`/`barColor`, `sensitivity`, `onStreamReady`/`onStreamEnd`/`onError` (draft API — most props are untyped passthroughs). `MicIcon`: animated mic glyph with an imperative ref (`startAnimation`/`stopAnimation`); `size`, `duration`, `isAnimated`.
|
|
66
|
+
- `shine-border` — `ShineBorder`: absolutely-positioned animated gradient border overlay (parent needs `position: relative`); `borderWidth`, `duration` (seconds), `shineColor` (string or array, cycled through a radial gradient sweep)
|