@lukeashford/aurelius 2.4.0 → 2.6.0

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 CHANGED
@@ -108,6 +108,8 @@ export default createAureliusESLintConfig({
108
108
 
109
109
  ### 4. Update package.json scripts
110
110
 
111
+ Add a lint script and wire it into your workflow:
112
+
111
113
  ```json
112
114
  {
113
115
  "scripts": {
@@ -118,6 +120,9 @@ export default createAureliusESLintConfig({
118
120
  }
119
121
  ```
120
122
 
123
+ If your project already has CI (or you're asked to add one), include `npm run lint` in that
124
+ pipeline so lint failures block merges.
125
+
121
126
  ### 5. Use components
122
127
 
123
128
  ```tsx
package/dist/index.d.mts CHANGED
@@ -19,37 +19,25 @@ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttri
19
19
 
20
20
  type CardVariant = 'default' | 'elevated' | 'outlined' | 'ghost' | 'featured';
21
21
  interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
22
- /** Visual style variant */
23
22
  variant?: CardVariant;
24
- /** Enables hover effects and cursor pointer */
25
23
  interactive?: boolean;
26
- /** Shows selected state with checkmark */
27
24
  selected?: boolean;
28
- /** Remove default padding (useful with compound components) */
29
25
  noPadding?: boolean;
30
26
  }
31
27
  interface CardHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
32
- /** Card title */
33
28
  title?: React.ReactNode;
34
- /** Subtitle or description */
35
29
  subtitle?: React.ReactNode;
36
- /** Action elements (buttons, icons, etc.) */
37
30
  action?: React.ReactNode;
38
31
  }
39
32
  interface CardBodyProps extends React.HTMLAttributes<HTMLDivElement> {
40
33
  }
41
34
  interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
42
- /** Align content */
43
35
  align?: 'start' | 'center' | 'end' | 'between';
44
36
  }
45
37
  interface CardMediaProps extends React.HTMLAttributes<HTMLDivElement> {
46
- /** Image source */
47
38
  src?: string;
48
- /** Alt text for image */
49
39
  alt?: string;
50
- /** Aspect ratio */
51
40
  aspect?: 'video' | 'square' | 'wide';
52
- /** Position in card */
53
41
  position?: 'top' | 'bottom';
54
42
  }
55
43
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>> & {
@@ -61,7 +49,6 @@ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttribu
61
49
 
62
50
  type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'fluid' | 'responsive';
63
51
  interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
64
- /** Container size variant */
65
52
  size?: ContainerSize;
66
53
  }
67
54
  declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>;
@@ -70,15 +57,10 @@ type RowGutter = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
70
57
  type RowJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
71
58
  type RowAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
72
59
  interface RowProps extends React.HTMLAttributes<HTMLDivElement> {
73
- /** Gap between columns (both directions). Use gutterX/gutterY for independent control. */
74
60
  gutter?: RowGutter;
75
- /** Horizontal gap between columns */
76
61
  gutterX?: RowGutter;
77
- /** Vertical gap between rows */
78
62
  gutterY?: RowGutter;
79
- /** Horizontal alignment of columns */
80
63
  justify?: RowJustify;
81
- /** Vertical alignment of columns */
82
64
  align?: RowAlign;
83
65
  }
84
66
  declare const Row: React.ForwardRefExoticComponent<RowProps & React.RefAttributes<HTMLDivElement>>;
@@ -86,36 +68,17 @@ declare const Row: React.ForwardRefExoticComponent<RowProps & React.RefAttribute
86
68
  type ColSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto' | 'full';
87
69
  type ColOffset = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;
88
70
  type ColOrder = 'first' | 'last' | 'none' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
89
- /** Responsive prop object for breakpoint-specific values */
90
71
  interface ResponsiveValue<T> {
91
- /** Base value (mobile-first) */
92
72
  base?: T;
93
- /** Value at sm breakpoint (640px+) */
94
73
  sm?: T;
95
- /** Value at md breakpoint (768px+) */
96
74
  md?: T;
97
- /** Value at lg breakpoint (1024px+) */
98
75
  lg?: T;
99
- /** Value at xl breakpoint (1280px+) */
100
76
  xl?: T;
101
- /** Value at 2xl breakpoint (1536px+) */
102
77
  '2xl'?: T;
103
78
  }
104
79
  interface ColProps extends React.HTMLAttributes<HTMLDivElement> {
105
- /**
106
- * Column span (1-12), 'auto' for content-based width, or 'full' for full row width.
107
- * Can be a single value or responsive object: { base: 12, md: 6, lg: 4 }
108
- */
109
80
  span?: ColSpan | ResponsiveValue<ColSpan>;
110
- /**
111
- * Column offset (0-11) - shifts column to the right.
112
- * Can be a single value or responsive object.
113
- */
114
81
  offset?: ColOffset | ResponsiveValue<ColOffset>;
115
- /**
116
- * Column order for reordering.
117
- * Can be a single value or responsive object.
118
- */
119
82
  order?: ColOrder | ResponsiveValue<ColOrder>;
120
83
  }
121
84
  declare const Col: React.ForwardRefExoticComponent<ColProps & React.RefAttributes<HTMLDivElement>>;
@@ -125,17 +88,11 @@ type StackAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
125
88
  type StackJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
126
89
  type StackGap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
127
90
  interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
128
- /** Stack direction */
129
91
  direction?: StackDirection;
130
- /** Alignment of items on the cross axis */
131
92
  align?: StackAlign;
132
- /** Justification of items on the main axis */
133
93
  justify?: StackJustify;
134
- /** Gap between items */
135
94
  gap?: StackGap;
136
- /** Whether items should wrap */
137
95
  wrap?: boolean;
138
- /** Render as a different element */
139
96
  as?: 'div' | 'section' | 'article' | 'nav' | 'aside' | 'header' | 'footer' | 'main';
140
97
  }
141
98
  declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>;
@@ -143,13 +100,9 @@ declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttri
143
100
  type DividerOrientation = 'horizontal' | 'vertical';
144
101
  type DividerVariant = 'solid' | 'dashed' | 'dotted';
145
102
  interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {
146
- /** Orientation of the divider */
147
103
  orientation?: DividerOrientation;
148
- /** Visual style variant */
149
104
  variant?: DividerVariant;
150
- /** Optional label to show in the center */
151
105
  label?: React.ReactNode;
152
- /** Color variant */
153
106
  color?: 'default' | 'gold' | 'muted';
154
107
  }
155
108
  declare const Divider: React.ForwardRefExoticComponent<DividerProps & React.RefAttributes<HTMLHRElement>>;
@@ -181,7 +134,6 @@ interface TooltipProps {
181
134
  declare const Tooltip: React.FC<TooltipProps>;
182
135
 
183
136
  interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
184
- /** Make the table horizontally scrollable */
185
137
  responsive?: boolean;
186
138
  }
187
139
  declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
@@ -195,16 +147,12 @@ interface TableFooterProps extends React.HTMLAttributes<HTMLTableSectionElement>
195
147
  }
196
148
  declare const TableFooter: React.ForwardRefExoticComponent<TableFooterProps & React.RefAttributes<HTMLTableSectionElement>>;
197
149
  interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
198
- /** Highlight row on hover */
199
150
  hoverable?: boolean;
200
- /** Show selected state */
201
151
  selected?: boolean;
202
152
  }
203
153
  declare const TableRow: React.ForwardRefExoticComponent<TableRowProps & React.RefAttributes<HTMLTableRowElement>>;
204
154
  interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
205
- /** Enable sorting indicator */
206
155
  sortable?: boolean;
207
- /** Current sort direction */
208
156
  sortDirection?: 'asc' | 'desc' | null;
209
157
  }
210
158
  declare const TableHead: React.ForwardRefExoticComponent<TableHeadProps & React.RefAttributes<HTMLTableCellElement>>;
@@ -216,29 +164,20 @@ interface TableCaptionProps extends React.HTMLAttributes<HTMLTableCaptionElement
216
164
  declare const TableCaption: React.ForwardRefExoticComponent<TableCaptionProps & React.RefAttributes<HTMLTableCaptionElement>>;
217
165
 
218
166
  interface ListProps extends React.HTMLAttributes<HTMLUListElement> {
219
- /** Visual style variant */
220
167
  variant?: 'default' | 'bordered' | 'divided';
221
- /** Ordered list (numbered) */
222
168
  ordered?: boolean;
223
169
  }
224
170
  declare const List: React.ForwardRefExoticComponent<ListProps & React.RefAttributes<HTMLUListElement>>;
225
171
  interface ListItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
226
- /** Icon or avatar on the left */
227
172
  leading?: React.ReactNode;
228
- /** Action element on the right */
229
173
  trailing?: React.ReactNode;
230
- /** Make the item interactive (clickable) */
231
174
  interactive?: boolean;
232
- /** Selected state */
233
175
  selected?: boolean;
234
- /** Disabled state */
235
176
  disabled?: boolean;
236
177
  }
237
178
  declare const ListItem: React.ForwardRefExoticComponent<ListItemProps & React.RefAttributes<HTMLLIElement>>;
238
179
  interface ListItemTextProps extends React.HTMLAttributes<HTMLDivElement> {
239
- /** Primary text */
240
180
  primary: React.ReactNode;
241
- /** Secondary text */
242
181
  secondary?: React.ReactNode;
243
182
  }
244
183
  declare const ListItemText: React.ForwardRefExoticComponent<ListItemTextProps & React.RefAttributes<HTMLDivElement>>;
@@ -290,27 +229,16 @@ interface SwitchProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
290
229
  declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLButtonElement>>;
291
230
 
292
231
  interface SliderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
293
- /** Current value */
294
232
  value?: number;
295
- /** Default value for uncontrolled mode */
296
233
  defaultValue?: number;
297
- /** Minimum value */
298
234
  min?: number;
299
- /** Maximum value */
300
235
  max?: number;
301
- /** Step increment */
302
236
  step?: number;
303
- /** Callback when value changes */
304
237
  onChange?: (value: number) => void;
305
- /** Callback when dragging ends */
306
238
  onChangeEnd?: (value: number) => void;
307
- /** Whether the slider is disabled */
308
239
  disabled?: boolean;
309
- /** Show value tooltip while dragging */
310
240
  showTooltip?: boolean;
311
- /** Format the displayed value */
312
241
  formatValue?: (value: number) => string;
313
- /** Size variant */
314
242
  size?: 'sm' | 'md' | 'lg';
315
243
  }
316
244
  declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLDivElement>>;
@@ -353,19 +281,12 @@ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.Re
353
281
  type ProgressSize = 'sm' | 'md' | 'lg';
354
282
  type ProgressVariant = 'default' | 'success' | 'warning' | 'error';
355
283
  interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {
356
- /** Current value (0-100) */
357
284
  value?: number;
358
- /** Maximum value (defaults to 100) */
359
285
  max?: number;
360
- /** Size variant */
361
286
  size?: ProgressSize;
362
- /** Color variant */
363
287
  variant?: ProgressVariant;
364
- /** Whether to show the value label */
365
288
  showValue?: boolean;
366
- /** Custom label format function */
367
289
  formatValue?: (value: number, max: number) => string;
368
- /** Whether the progress is indeterminate */
369
290
  indeterminate?: boolean;
370
291
  }
371
292
  declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
@@ -386,9 +307,7 @@ declare function useToast(): {
386
307
  };
387
308
  interface ToastProviderProps {
388
309
  children: React.ReactNode;
389
- /** Position of toasts on screen */
390
310
  position?: ToastPosition;
391
- /** Default duration for toasts (ms) */
392
311
  defaultDuration?: number;
393
312
  }
394
313
  declare const ToastProvider: React.FC<ToastProviderProps>;
@@ -407,19 +326,12 @@ declare const Modal: {
407
326
 
408
327
  type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
409
328
  interface DrawerProps {
410
- /** Whether the drawer is open */
411
329
  isOpen: boolean;
412
- /** Callback when the drawer should close */
413
330
  onClose: () => void;
414
- /** Position of the drawer */
415
331
  position?: DrawerPosition;
416
- /** Title for the drawer header */
417
332
  title?: string;
418
- /** Width/height of the drawer (depending on position) */
419
333
  size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
420
- /** Content */
421
334
  children: React.ReactNode;
422
- /** Additional class name for the drawer panel */
423
335
  className?: string;
424
336
  }
425
337
  declare const Drawer: React.FC<DrawerProps>;
@@ -444,47 +356,29 @@ interface PopoverProps {
444
356
  declare const Popover: React.FC<PopoverProps>;
445
357
 
446
358
  interface ConfirmDialogProps extends Omit<ModalProps, 'children'> {
447
- /** Description text */
448
359
  description?: React.ReactNode;
449
- /** Text for the confirm button */
450
360
  confirmText?: string;
451
- /** Text for the cancel button */
452
361
  cancelText?: string;
453
- /** Callback when confirmed */
454
362
  onConfirm: () => void | Promise<void>;
455
- /** Callback when cancelled */
456
363
  onCancel?: () => void;
457
- /** Variant of the confirm button */
458
364
  confirmVariant?: 'primary' | 'important' | 'danger';
459
- /** Whether the confirm action is loading */
460
365
  isLoading?: boolean;
461
366
  }
462
367
  declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
463
368
  interface AlertDialogProps extends Omit<ModalProps, 'children'> {
464
- /** Description text */
465
369
  description?: React.ReactNode;
466
- /** Text for the acknowledge button */
467
370
  acknowledgeText?: string;
468
- /** Variant based on alert type */
469
371
  variant?: 'default' | 'warning' | 'error';
470
372
  }
471
373
  declare const AlertDialog: React.FC<AlertDialogProps>;
472
374
  interface PromptDialogProps extends Omit<ModalProps, 'children'> {
473
- /** Description text */
474
375
  description?: React.ReactNode;
475
- /** Placeholder for the input */
476
376
  placeholder?: string;
477
- /** Default value for the input */
478
377
  defaultValue?: string;
479
- /** Text for the submit button */
480
378
  submitText?: string;
481
- /** Text for the cancel button */
482
379
  cancelText?: string;
483
- /** Callback with the input value when submitted */
484
380
  onSubmit: (value: string) => void | Promise<void>;
485
- /** Callback when cancelled */
486
381
  onCancel?: () => void;
487
- /** Whether the submit action is loading */
488
382
  isLoading?: boolean;
489
383
  }
490
384
  declare const PromptDialog: React.FC<PromptDialogProps>;
@@ -541,28 +435,21 @@ declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContent
541
435
 
542
436
  interface MenuProps {
543
437
  children: React.ReactNode;
544
- /** Controlled open state */
545
438
  open?: boolean;
546
- /** Callback when open state changes */
547
439
  onOpenChange?: (open: boolean) => void;
548
440
  }
549
441
  declare const Menu: React.FC<MenuProps>;
550
442
  interface MenuTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
551
- /** Render as a different element (using render props) */
552
443
  asChild?: boolean;
553
444
  }
554
445
  declare const MenuTrigger: React.ForwardRefExoticComponent<MenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
555
446
  interface MenuContentProps extends React.HTMLAttributes<HTMLDivElement> {
556
- /** Alignment of the menu */
557
447
  align?: 'start' | 'center' | 'end';
558
- /** Side of the trigger to render on */
559
448
  side?: 'top' | 'bottom';
560
449
  }
561
450
  declare const MenuContent: React.ForwardRefExoticComponent<MenuContentProps & React.RefAttributes<HTMLDivElement>>;
562
451
  interface MenuItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
563
- /** Icon to display before the label */
564
452
  icon?: React.ReactNode;
565
- /** Show destructive styling */
566
453
  destructive?: boolean;
567
454
  }
568
455
  declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLButtonElement>>;
@@ -570,9 +457,7 @@ declare const MenuSeparator: React.ForwardRefExoticComponent<React.HTMLAttribute
570
457
  declare const MenuLabel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
571
458
 
572
459
  interface NavbarProps extends React.HTMLAttributes<HTMLElement> {
573
- /** Fixed to top of viewport */
574
460
  fixed?: boolean;
575
- /** Add border at bottom */
576
461
  bordered?: boolean;
577
462
  }
578
463
  declare const Navbar: React.ForwardRefExoticComponent<NavbarProps & React.RefAttributes<HTMLElement>>;
@@ -580,29 +465,24 @@ interface NavbarBrandProps extends React.HTMLAttributes<HTMLDivElement> {
580
465
  }
581
466
  declare const NavbarBrand: React.ForwardRefExoticComponent<NavbarBrandProps & React.RefAttributes<HTMLDivElement>>;
582
467
  interface NavbarContentProps extends React.HTMLAttributes<HTMLDivElement> {
583
- /** Position of the content */
584
468
  position?: 'start' | 'center' | 'end';
585
469
  }
586
470
  declare const NavbarContent: React.ForwardRefExoticComponent<NavbarContentProps & React.RefAttributes<HTMLDivElement>>;
587
471
  interface NavbarItemProps extends React.HTMLAttributes<HTMLDivElement> {
588
- /** Active state */
589
472
  active?: boolean;
590
473
  }
591
474
  declare const NavbarItem: React.ForwardRefExoticComponent<NavbarItemProps & React.RefAttributes<HTMLDivElement>>;
592
475
  interface NavbarLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
593
- /** Active state */
594
476
  active?: boolean;
595
477
  }
596
478
  declare const NavbarLink: React.ForwardRefExoticComponent<NavbarLinkProps & React.RefAttributes<HTMLAnchorElement>>;
597
479
  declare const NavbarDivider: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
598
480
 
599
481
  interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
600
- /** Custom separator element */
601
482
  separator?: React.ReactNode;
602
483
  }
603
484
  declare const Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLElement>>;
604
485
  interface BreadcrumbItemProps extends React.HTMLAttributes<HTMLSpanElement> {
605
- /** Whether this is the current page */
606
486
  current?: boolean;
607
487
  }
608
488
  declare const BreadcrumbItem: React.ForwardRefExoticComponent<BreadcrumbItemProps & React.RefAttributes<HTMLSpanElement>>;
@@ -611,15 +491,10 @@ interface BreadcrumbLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorEleme
611
491
  declare const BreadcrumbLink: React.ForwardRefExoticComponent<BreadcrumbLinkProps & React.RefAttributes<HTMLAnchorElement>>;
612
492
 
613
493
  interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
614
- /** Current page (1-indexed) */
615
494
  page: number;
616
- /** Total number of pages */
617
495
  totalPages: number;
618
- /** Callback when page changes */
619
496
  onPageChange: (page: number) => void;
620
- /** Number of sibling pages to show */
621
497
  siblingCount?: number;
622
- /** Show first/last page buttons */
623
498
  showEdges?: boolean;
624
499
  }
625
500
  declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
@@ -630,7 +505,9 @@ interface Step {
630
505
  label: string;
631
506
  }
632
507
  interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {
508
+ /** Array of steps. Each requires: id (string | number), label (string). */
633
509
  steps: Step[];
510
+ /** ID of the current step (must match a step.id from the steps array). */
634
511
  currentStep: string | number;
635
512
  status?: StepStatus;
636
513
  }
@@ -649,9 +526,10 @@ interface ChatHistoryItem extends Omit<MessageProps, 'variant' | 'children'> {
649
526
  variant?: MessageVariant;
650
527
  }
651
528
  interface ChatHistoryProps extends React.HTMLAttributes<HTMLDivElement> {
529
+ /** Array of chat messages. Each item requires: content (string), variant ('user' | 'assistant'). Optional: id, isStreaming. */
652
530
  messages: ChatHistoryItem[];
653
531
  }
654
- declare const ChatHistory: React.ForwardRefExoticComponent<ChatHistoryProps & React.RefAttributes<HTMLDivElement>>;
532
+ declare const ChatHistory: React.FC<ChatHistoryProps>;
655
533
 
656
534
  interface StreamingCursorProps extends React.HTMLAttributes<HTMLSpanElement> {
657
535
  variant?: 'block' | 'line' | 'underscore';