@krollins/blueprint 0.1.0 → 0.1.11
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 +117 -407
- package/README.npm.md +117 -0
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -1,407 +1,117 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
bp
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
bp
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
bp
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
- `README.md` - API documentation
|
|
119
|
-
|
|
120
|
-
#### 2. **Code Review** — Quality Verification
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
bp agent review <component-name>
|
|
124
|
-
# or automatically triggered by: bp agent next
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**What happens:**
|
|
128
|
-
|
|
129
|
-
- ✅ Code-review agent checks:
|
|
130
|
-
- Blueprint patterns adherence
|
|
131
|
-
- TypeScript usage
|
|
132
|
-
- Test coverage and quality
|
|
133
|
-
- Documentation completeness
|
|
134
|
-
- Accessibility implementation
|
|
135
|
-
- ✅ Increments `iterations_taken` counter
|
|
136
|
-
- ✅ Suggests specific improvements with file paths and line numbers
|
|
137
|
-
|
|
138
|
-
#### 3. **Design Review** — Visual & UX Polish
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
bp agent next # (advances from code-review)
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**What happens:**
|
|
145
|
-
|
|
146
|
-
- ✅ Designer agent reviews:
|
|
147
|
-
- Design token usage (colors, spacing, typography)
|
|
148
|
-
- Visual consistency with existing components
|
|
149
|
-
- Responsive behavior
|
|
150
|
-
- UX patterns and interaction feedback
|
|
151
|
-
- Accessibility from user experience perspective
|
|
152
|
-
|
|
153
|
-
### Quality Gates
|
|
154
|
-
|
|
155
|
-
Before advancing between phases, **4 automated quality gates** must pass:
|
|
156
|
-
|
|
157
|
-
| Gate | Command | Blocking? |
|
|
158
|
-
| ---------------------- | ---------------------- | ------------- |
|
|
159
|
-
| 1️⃣ **Code Formatting** | `npm run format:check` | ⚠️ Warning |
|
|
160
|
-
| 2️⃣ **Linting** | `npm run lint` | 🚫 **BLOCKS** |
|
|
161
|
-
| 3️⃣ **Type Checking** | `npm run typecheck` | 🚫 **BLOCKS** |
|
|
162
|
-
| 4️⃣ **Test Suite** | `npm test` | 🚫 **BLOCKS** |
|
|
163
|
-
|
|
164
|
-
**Quality gates run automatically** when you execute `bp agent next` to advance phases. If any blocking gate fails, the component status becomes `blocked` and you must fix the issues before advancing.
|
|
165
|
-
|
|
166
|
-
Run quality gates manually without advancing:
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
bp agent verify <component-name>
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Dependency Tracking
|
|
173
|
-
|
|
174
|
-
Components can declare dependencies in `.blueprint/features.toml`:
|
|
175
|
-
|
|
176
|
-
```toml
|
|
177
|
-
[[component]]
|
|
178
|
-
name = "modal"
|
|
179
|
-
description = "Dialog overlay"
|
|
180
|
-
depends_on = ["button", "icon"] # Won't start until these are complete
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
The workflow automatically checks dependencies before allowing components to advance.
|
|
184
|
-
|
|
185
|
-
### Example: Creating a Modal Component
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
# Step 1: Start creation
|
|
189
|
-
bp agent create modal
|
|
190
|
-
|
|
191
|
-
# Output shows feature metadata:
|
|
192
|
-
# 🏗️ Starting component creation for: bp-modal
|
|
193
|
-
# 📋 Feature: Dialog overlay
|
|
194
|
-
# 📊 Category: composite | Complexity: large | Priority: 4
|
|
195
|
-
# 🔗 Dependencies: button, icon
|
|
196
|
-
# 💡 Instructions sent to VS Code Copilot...
|
|
197
|
-
|
|
198
|
-
# Step 2: Component-creator builds files
|
|
199
|
-
# (agent creates modal.ts, modal.style.ts, modal.test.ts, etc.)
|
|
200
|
-
|
|
201
|
-
# Step 3: Advance to code review
|
|
202
|
-
bp agent next
|
|
203
|
-
|
|
204
|
-
# Quality gates run automatically:
|
|
205
|
-
# 🔍 Verifying quality gates...
|
|
206
|
-
# 📐 Quality Gate 1/4: Code Formatting
|
|
207
|
-
# ✅ Formatting check passed
|
|
208
|
-
# 🔎 Quality Gate 2/4: Linting (BLOCKING)
|
|
209
|
-
# ✅ Linting passed
|
|
210
|
-
# 🔤 Quality Gate 3/4: Type Checking (BLOCKING)
|
|
211
|
-
# ✅ Type checking passed
|
|
212
|
-
# 🧪 Quality Gate 4/4: Test Suite (BLOCKING)
|
|
213
|
-
# ✅ All tests passed
|
|
214
|
-
# ✅ ALL QUALITY GATES PASSED
|
|
215
|
-
# ✅ Component creation phase complete
|
|
216
|
-
# 🔍 Starting code review phase...
|
|
217
|
-
|
|
218
|
-
# Step 4: Code review suggests improvements
|
|
219
|
-
# (make changes based on feedback)
|
|
220
|
-
|
|
221
|
-
# Step 5: Advance to design review
|
|
222
|
-
bp agent next
|
|
223
|
-
|
|
224
|
-
# Step 6: Complete component
|
|
225
|
-
bp agent next
|
|
226
|
-
# 🎉 Component bp-modal is complete!
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### Agent Commands Reference
|
|
230
|
-
|
|
231
|
-
| Command | Description |
|
|
232
|
-
| ---------------------------------------------- | ------------------------------------------ |
|
|
233
|
-
| `bp agent create <name>` | Start component creation workflow |
|
|
234
|
-
| `bp agent review <name> [--type code\|design]` | Start code or design review |
|
|
235
|
-
| `bp agent next` | Advance to next phase (runs quality gates) |
|
|
236
|
-
| `bp agent verify [name]` | Run quality gates without advancing |
|
|
237
|
-
| `bp agent status [name]` | Show component development status |
|
|
238
|
-
|
|
239
|
-
### Workflow State Files
|
|
240
|
-
|
|
241
|
-
The workflow maintains state in `.blueprint/`:
|
|
242
|
-
|
|
243
|
-
- **`features.toml`** - Component definitions (name, description, category, complexity, priority, dependencies)
|
|
244
|
-
- **`agent-state.json`** - Current sessions and phase status
|
|
245
|
-
- **`progress.txt`** - Append-only log of all workflow events
|
|
246
|
-
|
|
247
|
-
### Project Structure
|
|
248
|
-
|
|
249
|
-
```
|
|
250
|
-
blueprint/
|
|
251
|
-
├── source/
|
|
252
|
-
│ ├── components/ # Individual components (Button, Input, etc.)
|
|
253
|
-
│ ├── themes/
|
|
254
|
-
│ │ ├── light.css # Design tokens and CSS variables
|
|
255
|
-
│ │ └── index.ts # Theme utilities
|
|
256
|
-
│ └── index.ts # Main library export
|
|
257
|
-
├── docs/ # Documentation site (Astro)
|
|
258
|
-
├── dist/ # Built library output (ESM only)
|
|
259
|
-
├── meta/ # Documentation and architecture notes
|
|
260
|
-
└── [configuration files] # TypeScript, ESLint, Prettier, Vite config
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Technology Stack
|
|
264
|
-
|
|
265
|
-
- **Lit 3.3** — Web component library with reactive properties
|
|
266
|
-
- **TypeScript** — Type safety and developer experience
|
|
267
|
-
- **Vite** — Fast development server and build tool
|
|
268
|
-
- **ESLint + Prettier** — Code quality and formatting
|
|
269
|
-
- **CSS Custom Properties** — Design token system
|
|
270
|
-
|
|
271
|
-
## Roadmap
|
|
272
|
-
|
|
273
|
-
### Implemented Features
|
|
274
|
-
|
|
275
|
-
- ✅ **Theming system** — CSS custom properties (design tokens) for colors, spacing, typography, shadows, transitions, and z-index
|
|
276
|
-
- ✅ **Development environment** — Vite dev server with hot reload
|
|
277
|
-
- ✅ **Code quality** — ESLint and Prettier integration
|
|
278
|
-
- ✅ **TypeScript** — Full type safety with decorators support
|
|
279
|
-
|
|
280
|
-
### Planned Features
|
|
281
|
-
|
|
282
|
-
- 🔜 **Component library** — Starting with Phase 1 foundation components
|
|
283
|
-
- 🔜 **Testing infrastructure** — Unit tests, visual regression tests, accessibility audits
|
|
284
|
-
- 🔜 **Dark mode support** — Theme switching capability
|
|
285
|
-
- 🔜 **Accessibility (a11y)** — ARIA attributes, keyboard navigation, focus management
|
|
286
|
-
- 🔜 **Localization (i18n)** — RTL support, translatable strings
|
|
287
|
-
- 🔜 **Documentation** — Interactive examples, API references, usage guidelines
|
|
288
|
-
|
|
289
|
-
### Design Tokens
|
|
290
|
-
|
|
291
|
-
A well-structured token system typically includes:
|
|
292
|
-
|
|
293
|
-
| Category | Examples |
|
|
294
|
-
| ----------- | -------------------------------------------------------------------------- |
|
|
295
|
-
| Colors | `--bp-color-primary`, `--bp-color-danger`, `--bp-color-neutral-100` |
|
|
296
|
-
| Spacing | `--bp-spacing-xs`, `--bp-spacing-sm`, `--bp-spacing-md`, `--bp-spacing-lg` |
|
|
297
|
-
| Typography | `--bp-font-size-sm`, `--bp-font-weight-bold`, `--bp-line-height-normal` |
|
|
298
|
-
| Borders | `--bp-border-radius-sm`, `--bp-border-width` |
|
|
299
|
-
| Shadows | `--bp-shadow-sm`, `--bp-shadow-md`, `--bp-shadow-lg` |
|
|
300
|
-
| Transitions | `--bp-transition-fast`, `--bp-transition-slow` |
|
|
301
|
-
|
|
302
|
-
All design tokens are defined in [`source/themes/light.css`](source/themes/light.css) and follow the `--bp-*` naming convention.
|
|
303
|
-
|
|
304
|
-
## Planned Components
|
|
305
|
-
|
|
306
|
-
Based on analysis of popular design systems (Shoelace, Carbon, Spectrum, Material, Fluent, Chakra, Radix, Open UI research), here are the components we plan to build, organized by priority:
|
|
307
|
-
|
|
308
|
-
> **Note:** No components have been implemented yet. The infrastructure is ready for development to begin.
|
|
309
|
-
|
|
310
|
-
### Phase 1: Foundation (Essential)
|
|
311
|
-
|
|
312
|
-
These components cover 80% of common UI patterns:
|
|
313
|
-
|
|
314
|
-
| Component | Status | Description |
|
|
315
|
-
| ------------------- | ------ | ------------------------------------------------------------------------ |
|
|
316
|
-
| **Button** | ✅ | Primary, secondary, outline, ghost, danger, loading states, icon support |
|
|
317
|
-
| **Input** | ✅ | Text input with labels, validation, help text, prefix/suffix slots |
|
|
318
|
-
| **Textarea** | ✅ | Multi-line text input with auto-resize option |
|
|
319
|
-
| **Checkbox** | ✅ | Standard and indeterminate states |
|
|
320
|
-
| **Radio** | ✅ | Radio buttons and radio groups |
|
|
321
|
-
| **Switch / Toggle** | ✅ | Boolean toggle control |
|
|
322
|
-
| **Select** | ✅ | Dropdown selection (single) |
|
|
323
|
-
| **Icon** | ✅ | SVG icon wrapper with sizing |
|
|
324
|
-
| **Spinner** | ✅ | Loading indicator |
|
|
325
|
-
| **Badge** | ✅ | Status indicators and counts |
|
|
326
|
-
| **Alert** | ✅ | Informational, success, warning, error messages |
|
|
327
|
-
| **Card** | ✅ | Content container with header, body, footer slots |
|
|
328
|
-
| **Dialog / Modal** | ✅ | Overlay dialogs with focus trapping |
|
|
329
|
-
| **Tooltip** | ✅ | Hover/focus information popups |
|
|
330
|
-
|
|
331
|
-
### Phase 2: Enhanced Inputs & Navigation
|
|
332
|
-
|
|
333
|
-
| Component | Status | Description |
|
|
334
|
-
| --------------------------- | ------ | ----------------------------------------- |
|
|
335
|
-
| **Multi-select** | ✅ | Dropdown with multiple selection and tags |
|
|
336
|
-
| **Combobox / Autocomplete** | ✅ | Searchable dropdown |
|
|
337
|
-
| **Date Picker** | ✅ | Calendar-based date selection |
|
|
338
|
-
| **Time Picker** | ✅ | Time input with dropdown |
|
|
339
|
-
| **Slider / Range** | ✅ | Numeric range selection |
|
|
340
|
-
| **Number Input** | ✅ | Increment/decrement numeric input |
|
|
341
|
-
| **File Upload** | ✅ | Drag-and-drop file selection |
|
|
342
|
-
| **Tabs** | ✅ | Tabbed content navigation |
|
|
343
|
-
| **Breadcrumb** | ✅ | Navigation path indicator |
|
|
344
|
-
| **Pagination** | ✅ | Page navigation controls |
|
|
345
|
-
| **Menu** | ✅ | Dropdown and context menus |
|
|
346
|
-
| **Dropdown** | ✅ | Generic popover trigger |
|
|
347
|
-
|
|
348
|
-
### Phase 3: Layout & Data Display
|
|
349
|
-
|
|
350
|
-
| Component | Status | Description |
|
|
351
|
-
| ------------------------ | ------ | ------------------------------------------------------- |
|
|
352
|
-
| **Avatar** | ✅ | User/entity image with fallback initials |
|
|
353
|
-
| **Tag / Chip** | ✅ | Removable labels and filters |
|
|
354
|
-
| **Progress Bar** | ✅ | Determinate and indeterminate progress |
|
|
355
|
-
| **Divider** | ✅ | Visual separator |
|
|
356
|
-
| **Heading** | ✅ | Typography component for headings |
|
|
357
|
-
| **Link** | ✅ | Hyperlink component |
|
|
358
|
-
| **Text** | ✅ | Text/paragraph component |
|
|
359
|
-
| **Skeleton** | ✅ | Loading placeholders |
|
|
360
|
-
| **Toast / Notification** | ✅ | Non-blocking alerts |
|
|
361
|
-
| **Accordion** | ✅ | Collapsible content sections |
|
|
362
|
-
| **Table** | ✅ | Data tables with sorting, selection (consider headless) |
|
|
363
|
-
| **Tree** | ✅ | Hierarchical data display |
|
|
364
|
-
|
|
365
|
-
### Phase 4: Advanced Components
|
|
366
|
-
|
|
367
|
-
| Component | Status | Description |
|
|
368
|
-
| -------------------- | ------ | -------------------------- |
|
|
369
|
-
| **Drawer / Sidebar** | ✅ | Slide-in panels |
|
|
370
|
-
| **Popover** | ✅ | Rich content popovers |
|
|
371
|
-
| **Color Picker** | ✅ | Color selection tool |
|
|
372
|
-
| **Stepper / Wizard** | ✅ | Multi-step form navigation |
|
|
373
|
-
|
|
374
|
-
## Reference Design Systems
|
|
375
|
-
|
|
376
|
-
These are excellent resources for API design, accessibility patterns, and component structure:
|
|
377
|
-
|
|
378
|
-
| Library | Technology | Notes |
|
|
379
|
-
| ------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------ |
|
|
380
|
-
| [Shoelace](https://shoelace.style) | Lit | Excellent reference for Lit-based components, now part of Font Awesome (Web Awesome) |
|
|
381
|
-
| [Carbon Web Components](https://carbondesignsystem.com) | Lit | IBM's design system, enterprise-grade |
|
|
382
|
-
| [Spectrum Web Components](https://opensource.adobe.com/spectrum-web-components) | Lit | Adobe's design system |
|
|
383
|
-
| [Lion](https://lion.js.org) | Lit | ING Bank's white-label components |
|
|
384
|
-
| [Ionic](https://ionicframework.com) | Stencil | Mobile-first components |
|
|
385
|
-
| [Radix UI](https://radix-ui.com) | React | Headless primitives, great a11y patterns |
|
|
386
|
-
| [Open UI](https://open-ui.org) | Research | W3C community group defining component standards |
|
|
387
|
-
|
|
388
|
-
## Contributing
|
|
389
|
-
|
|
390
|
-
### Creating a Component
|
|
391
|
-
|
|
392
|
-
1. Create a new folder in `source/components/[component-name]/`
|
|
393
|
-
2. Add the component implementation with proper TypeScript types
|
|
394
|
-
3. Export the component from `source/components/index.ts`
|
|
395
|
-
4. Create documentation page with `bp docs add <name>`
|
|
396
|
-
5. Ensure accessibility and responsive design
|
|
397
|
-
|
|
398
|
-
### Code Quality
|
|
399
|
-
|
|
400
|
-
- All code must pass ESLint and Prettier checks
|
|
401
|
-
- Components should use design tokens from the theme system
|
|
402
|
-
- Follow semantic HTML and ARIA best practices
|
|
403
|
-
- Include TypeScript types for all public APIs
|
|
404
|
-
|
|
405
|
-
## License
|
|
406
|
-
|
|
407
|
-
MIT License - see [LICENSE](LICENSE) file for details.
|
|
1
|
+
# @krollins/blueprint
|
|
2
|
+
|
|
3
|
+
A highly portable and customizable web component library built on [Lit](https://lit.dev).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @krollins/blueprint
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<script type="module">
|
|
15
|
+
import '@krollins/blueprint';
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<bp-button variant="primary">Click me</bp-button>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or import individual components:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { BpButton } from '@krollins/blueprint';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Components
|
|
28
|
+
|
|
29
|
+
| Component | Tag | Description |
|
|
30
|
+
| ------------ | ------------------- | ---------------------------------------------------------- |
|
|
31
|
+
| Button | `<bp-button>` | Primary, secondary, outline, ghost, danger, loading states |
|
|
32
|
+
| Input | `<bp-input>` | Text input with labels, validation, help text |
|
|
33
|
+
| Textarea | `<bp-textarea>` | Multi-line text input with auto-resize |
|
|
34
|
+
| Checkbox | `<bp-checkbox>` | Standard and indeterminate states |
|
|
35
|
+
| Radio | `<bp-radio>` | Radio buttons and radio groups |
|
|
36
|
+
| Switch | `<bp-switch>` | Boolean toggle control |
|
|
37
|
+
| Select | `<bp-select>` | Dropdown selection |
|
|
38
|
+
| Multi-select | `<bp-multi-select>` | Dropdown with multiple selection |
|
|
39
|
+
| Combobox | `<bp-combobox>` | Searchable dropdown |
|
|
40
|
+
| Number Input | `<bp-number-input>` | Increment/decrement numeric input |
|
|
41
|
+
| Slider | `<bp-slider>` | Numeric range selection |
|
|
42
|
+
| Date Picker | `<bp-date-picker>` | Calendar-based date selection |
|
|
43
|
+
| Time Picker | `<bp-time-picker>` | Time input with dropdown |
|
|
44
|
+
| File Upload | `<bp-file-upload>` | Drag-and-drop file selection |
|
|
45
|
+
| Color Picker | `<bp-color-picker>` | Color selection tool |
|
|
46
|
+
| Icon | `<bp-icon>` | SVG icon wrapper with sizing |
|
|
47
|
+
| Badge | `<bp-badge>` | Status indicators and counts |
|
|
48
|
+
| Tag | `<bp-tag>` | Removable labels and filters |
|
|
49
|
+
| Alert | `<bp-alert>` | Informational, success, warning, error messages |
|
|
50
|
+
| Notification | `<bp-notification>` | Non-blocking alerts |
|
|
51
|
+
| Card | `<bp-card>` | Content container with header, body, footer slots |
|
|
52
|
+
| Modal | `<bp-modal>` | Overlay dialogs with focus trapping |
|
|
53
|
+
| Drawer | `<bp-drawer>` | Slide-in panels |
|
|
54
|
+
| Tooltip | `<bp-tooltip>` | Hover/focus information popups |
|
|
55
|
+
| Popover | `<bp-popover>` | Rich content popovers |
|
|
56
|
+
| Dropdown | `<bp-dropdown>` | Generic popover trigger |
|
|
57
|
+
| Menu | `<bp-menu>` | Dropdown and context menus |
|
|
58
|
+
| Tabs | `<bp-tabs>` | Tabbed content navigation |
|
|
59
|
+
| Accordion | `<bp-accordion>` | Collapsible content sections |
|
|
60
|
+
| Breadcrumb | `<bp-breadcrumb>` | Navigation path indicator |
|
|
61
|
+
| Pagination | `<bp-pagination>` | Page navigation controls |
|
|
62
|
+
| Stepper | `<bp-stepper>` | Multi-step form navigation |
|
|
63
|
+
| Table | `<bp-table>` | Data tables with sorting, selection |
|
|
64
|
+
| Tree | `<bp-tree>` | Hierarchical data display |
|
|
65
|
+
| Progress | `<bp-progress>` | Determinate and indeterminate progress |
|
|
66
|
+
| Spinner | `<bp-spinner>` | Loading indicator |
|
|
67
|
+
| Skeleton | `<bp-skeleton>` | Loading placeholders |
|
|
68
|
+
| Avatar | `<bp-avatar>` | User/entity image with fallback initials |
|
|
69
|
+
| Divider | `<bp-divider>` | Visual separator |
|
|
70
|
+
| Heading | `<bp-heading>` | Typography component for headings |
|
|
71
|
+
| Text | `<bp-text>` | Text/paragraph component |
|
|
72
|
+
| Link | `<bp-link>` | Hyperlink component |
|
|
73
|
+
|
|
74
|
+
## Design Tokens
|
|
75
|
+
|
|
76
|
+
Blueprint uses CSS custom properties for theming. All tokens use the `--bp-` prefix:
|
|
77
|
+
|
|
78
|
+
```css
|
|
79
|
+
/* Colors */
|
|
80
|
+
--bp-color-primary
|
|
81
|
+
--bp-color-danger
|
|
82
|
+
|
|
83
|
+
/* Spacing */
|
|
84
|
+
--bp-spacing-xs, --bp-spacing-sm, --bp-spacing-md, --bp-spacing-lg
|
|
85
|
+
|
|
86
|
+
/* Typography */
|
|
87
|
+
--bp-font-size-sm, --bp-font-weight-bold
|
|
88
|
+
|
|
89
|
+
/* Borders & Shadows */
|
|
90
|
+
--bp-border-radius-sm, --bp-shadow-md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Import the default theme CSS:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import '@krollins/blueprint';
|
|
97
|
+
// Theme CSS is automatically included
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Browser Support
|
|
101
|
+
|
|
102
|
+
Blueprint targets modern browsers that support web components:
|
|
103
|
+
|
|
104
|
+
- Chrome/Edge 90+
|
|
105
|
+
- Firefox 90+
|
|
106
|
+
- Safari 15+
|
|
107
|
+
|
|
108
|
+
## Documentation
|
|
109
|
+
|
|
110
|
+
Full documentation and interactive examples:
|
|
111
|
+
|
|
112
|
+
- [Blueprint docs](https://blueprint-ui-docs.netlify.app/)
|
|
113
|
+
- [GitHub Repository](https://github.com/KyleBlankRollins/blueprint)
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
MIT
|
package/README.npm.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# @krollins/blueprint
|
|
2
|
+
|
|
3
|
+
A highly portable and customizable web component library built on [Lit](https://lit.dev).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @krollins/blueprint
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<script type="module">
|
|
15
|
+
import '@krollins/blueprint';
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<bp-button variant="primary">Click me</bp-button>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or import individual components:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { BpButton } from '@krollins/blueprint';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Components
|
|
28
|
+
|
|
29
|
+
| Component | Tag | Description |
|
|
30
|
+
| ------------ | ------------------- | ---------------------------------------------------------- |
|
|
31
|
+
| Button | `<bp-button>` | Primary, secondary, outline, ghost, danger, loading states |
|
|
32
|
+
| Input | `<bp-input>` | Text input with labels, validation, help text |
|
|
33
|
+
| Textarea | `<bp-textarea>` | Multi-line text input with auto-resize |
|
|
34
|
+
| Checkbox | `<bp-checkbox>` | Standard and indeterminate states |
|
|
35
|
+
| Radio | `<bp-radio>` | Radio buttons and radio groups |
|
|
36
|
+
| Switch | `<bp-switch>` | Boolean toggle control |
|
|
37
|
+
| Select | `<bp-select>` | Dropdown selection |
|
|
38
|
+
| Multi-select | `<bp-multi-select>` | Dropdown with multiple selection |
|
|
39
|
+
| Combobox | `<bp-combobox>` | Searchable dropdown |
|
|
40
|
+
| Number Input | `<bp-number-input>` | Increment/decrement numeric input |
|
|
41
|
+
| Slider | `<bp-slider>` | Numeric range selection |
|
|
42
|
+
| Date Picker | `<bp-date-picker>` | Calendar-based date selection |
|
|
43
|
+
| Time Picker | `<bp-time-picker>` | Time input with dropdown |
|
|
44
|
+
| File Upload | `<bp-file-upload>` | Drag-and-drop file selection |
|
|
45
|
+
| Color Picker | `<bp-color-picker>` | Color selection tool |
|
|
46
|
+
| Icon | `<bp-icon>` | SVG icon wrapper with sizing |
|
|
47
|
+
| Badge | `<bp-badge>` | Status indicators and counts |
|
|
48
|
+
| Tag | `<bp-tag>` | Removable labels and filters |
|
|
49
|
+
| Alert | `<bp-alert>` | Informational, success, warning, error messages |
|
|
50
|
+
| Notification | `<bp-notification>` | Non-blocking alerts |
|
|
51
|
+
| Card | `<bp-card>` | Content container with header, body, footer slots |
|
|
52
|
+
| Modal | `<bp-modal>` | Overlay dialogs with focus trapping |
|
|
53
|
+
| Drawer | `<bp-drawer>` | Slide-in panels |
|
|
54
|
+
| Tooltip | `<bp-tooltip>` | Hover/focus information popups |
|
|
55
|
+
| Popover | `<bp-popover>` | Rich content popovers |
|
|
56
|
+
| Dropdown | `<bp-dropdown>` | Generic popover trigger |
|
|
57
|
+
| Menu | `<bp-menu>` | Dropdown and context menus |
|
|
58
|
+
| Tabs | `<bp-tabs>` | Tabbed content navigation |
|
|
59
|
+
| Accordion | `<bp-accordion>` | Collapsible content sections |
|
|
60
|
+
| Breadcrumb | `<bp-breadcrumb>` | Navigation path indicator |
|
|
61
|
+
| Pagination | `<bp-pagination>` | Page navigation controls |
|
|
62
|
+
| Stepper | `<bp-stepper>` | Multi-step form navigation |
|
|
63
|
+
| Table | `<bp-table>` | Data tables with sorting, selection |
|
|
64
|
+
| Tree | `<bp-tree>` | Hierarchical data display |
|
|
65
|
+
| Progress | `<bp-progress>` | Determinate and indeterminate progress |
|
|
66
|
+
| Spinner | `<bp-spinner>` | Loading indicator |
|
|
67
|
+
| Skeleton | `<bp-skeleton>` | Loading placeholders |
|
|
68
|
+
| Avatar | `<bp-avatar>` | User/entity image with fallback initials |
|
|
69
|
+
| Divider | `<bp-divider>` | Visual separator |
|
|
70
|
+
| Heading | `<bp-heading>` | Typography component for headings |
|
|
71
|
+
| Text | `<bp-text>` | Text/paragraph component |
|
|
72
|
+
| Link | `<bp-link>` | Hyperlink component |
|
|
73
|
+
|
|
74
|
+
## Design Tokens
|
|
75
|
+
|
|
76
|
+
Blueprint uses CSS custom properties for theming. All tokens use the `--bp-` prefix:
|
|
77
|
+
|
|
78
|
+
```css
|
|
79
|
+
/* Colors */
|
|
80
|
+
--bp-color-primary
|
|
81
|
+
--bp-color-danger
|
|
82
|
+
|
|
83
|
+
/* Spacing */
|
|
84
|
+
--bp-spacing-xs, --bp-spacing-sm, --bp-spacing-md, --bp-spacing-lg
|
|
85
|
+
|
|
86
|
+
/* Typography */
|
|
87
|
+
--bp-font-size-sm, --bp-font-weight-bold
|
|
88
|
+
|
|
89
|
+
/* Borders & Shadows */
|
|
90
|
+
--bp-border-radius-sm, --bp-shadow-md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Import the default theme CSS:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import '@krollins/blueprint';
|
|
97
|
+
// Theme CSS is automatically included
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Browser Support
|
|
101
|
+
|
|
102
|
+
Blueprint targets modern browsers that support web components:
|
|
103
|
+
|
|
104
|
+
- Chrome/Edge 90+
|
|
105
|
+
- Firefox 90+
|
|
106
|
+
- Safari 15+
|
|
107
|
+
|
|
108
|
+
## Documentation
|
|
109
|
+
|
|
110
|
+
Full documentation and interactive examples:
|
|
111
|
+
|
|
112
|
+
- [Blueprint docs](https://blueprint-ui-docs.netlify.app/)
|
|
113
|
+
- [GitHub Repository](https://github.com/KyleBlankRollins/blueprint)
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@krollins/blueprint",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "A highly portable and customizable component library built on Lit",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
|
-
}
|
|
12
|
+
},
|
|
13
|
+
"./dist/index.css": "./dist/index.css"
|
|
13
14
|
},
|
|
14
15
|
"files": [
|
|
15
16
|
"dist",
|
|
@@ -47,7 +48,9 @@
|
|
|
47
48
|
"theme:watch-types": "npm run build:cli && node dist/cli/index.js theme generate-types --watch",
|
|
48
49
|
"storybook": "storybook dev -p 6006",
|
|
49
50
|
"build-storybook": "storybook build",
|
|
50
|
-
"generate:jsx": "npm run build:cli && node dist/cli/index.js generate jsx"
|
|
51
|
+
"generate:jsx": "npm run build:cli && node dist/cli/index.js generate jsx",
|
|
52
|
+
"prepack": "node -e \"require('fs').copyFileSync('README.npm.md','README.md')\"",
|
|
53
|
+
"postpack": "git checkout README.md"
|
|
51
54
|
},
|
|
52
55
|
"keywords": [
|
|
53
56
|
"web-components",
|