Skip to content

Set up @artisanpack-ui/react base package scaffolding #3

Description

@ViewFromTheBox

Problem Statement

Is your feature request related to a problem?
The React component library package needs its base structure, exports, and TypeScript configuration before individual components can be ported.

Proposed Solution

What would you like to happen?
Scaffold the @artisanpack-ui/react package with:

  • Package entry point: Barrel exports (index.ts) for tree-shakeable component imports
  • TypeScript config: Strict mode, JSX support, path aliases
  • Build output: ESM and CJS bundles with TypeScript declarations
  • Component directory structure: Organized by category (Form, Layout, Navigation, DataDisplay, Feedback, Utility)
  • Shared component utilities: Common hooks, context providers, and prop types used across components
  • Tailwind CSS + DaisyUI integration: Ensure components consume design tokens from @artisanpack-ui/tokens
  • Testing setup: Vitest + React Testing Library configured for component tests

Alternatives Considered

  • Flat component directory — rejected in favor of category-based organization matching the Livewire package structure

Use Cases

  1. Developers install @artisanpack-ui/react and import components: import { Button, Card } from '@artisanpack-ui/react'
  2. Tree shaking ensures only imported components are bundled
  3. TypeScript provides full autocompletion and type safety for all component props

Additional Context

The package workspace exists at packages/react. This issue sets up the skeleton — individual component issues handle the actual component implementations.

Priority: High — blocks all component work
Effort: Medium (1-3 days)

Activity

  1. updated Priority High and Effort Medium on Mar 27, 2026
  2. moved this from Backlog to To Do in React & Vue Pivoton Mar 27, 2026
  3. ViewFromTheBox commented on Mar 27, 2026

    @ViewFromTheBox
    MemberAuthor

    Progress Update

    This issue is mostly complete. The following has been done:

    • ✅ Package scaffolded at packages/react with package.json, tsconfig.json, tsup.config.ts, vitest.config.ts
    • ✅ Multi-entry build configured — 7 entry points: index, form, layout, navigation, display, data, utility with separate dist bundles
    • ✅ Sub-path exports defined in package.json (e.g., @artisanpack-ui/react/form)
    • ✅ Component directory structure created: components/form/, components/layout/, components/navigation/, components/display/, components/data/, components/utility/
    • ✅ Barrel exports in src/index.ts re-exporting all categories + types
    • ✅ Shared TypeScript types defined:
      • DaisyColor enum (primary, secondary, accent, success, warning, error, info, neutral)
      • Size type (xs, sm, md, lg)
      • GlassProps and ColorProps interfaces
      • FormFieldProps interface (label, error, hint)
    • ✅ @artisanpack-ui/tokens linked as workspace dependency
    • ✅ React 18/19 peer dependency support
    • ✅ Vitest + React Testing Library + jsdom configured with test-setup.ts
    • ✅ Tree-shakeable ESM output with TypeScript declarations

    Remaining (minor):

    • Shared hooks and context providers (e.g., ThemeProvider) — these will likely emerge as components are built
    • Feedback component category directory (form, layout, navigation, display, data, utility exist but there's no feedback/ — feedback components may be folded into another category or added when needed)
  4. moved this from To Do to In Progress in React & Vue Pivoton Mar 28, 2026
  5. added a commit that references this issue on Mar 28, 2026
    a14bea3
  6. moved this from In Progress to In Review in React & Vue Pivoton Mar 28, 2026
  7. moved this from In Review to Done in React & Vue Pivoton Mar 28, 2026
  8. moved this from Done to In Progress in React & Vue Pivoton Mar 28, 2026
  9. moved this from In Progress to Done in React & Vue Pivoton Mar 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Fields

Priority

High

Start date

None yet

Target date

None yet

Effort

Medium

Breaking change

None yet

Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions