@lukeashford/aurelius 1.1.0 → 2.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 lukeashford
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Aurelius
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@lukeashford/aurelius.svg)](https://www.npmjs.com/package/@lukeashford/aurelius)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
3
6
  **A dark-mode design system for creative technologists** — combining technical sophistication with a
4
7
  cinematic aesthetic.
5
8
 
@@ -53,62 +56,55 @@ while staying within design system constraints.
53
56
 
54
57
  ```bash
55
58
  npm install @lukeashford/aurelius
56
- npm install -D eslint eslint-plugin-tailwindcss
59
+ npm install -D eslint @typescript-eslint/parser eslint-plugin-better-tailwindcss @poupe/eslint-plugin-tailwindcss @eslint/css tailwind-csstree
57
60
  ```
58
61
 
59
- ### 2. Configure Tailwind
62
+ ### 2. Import the design system
60
63
 
61
- ```javascript
62
- // tailwind.config.js
63
- const aureliusPreset = require('@lukeashford/aurelius/tailwind.preset')
64
-
65
- module.exports = {
66
- presets: [aureliusPreset],
67
- content: [
68
- './src/**/*.{js,ts,jsx,tsx}',
69
- './node_modules/@lukeashford/aurelius/dist/**/*.{js,mjs}',
70
- ],
71
- }
64
+ Create or update your `index.css`:
65
+
66
+ ```css
67
+ /* Import the complete Aurelius design system (includes Tailwind v4, fonts, and theme) */
68
+ @import '@lukeashford/aurelius/styles/base.css';
69
+
70
+ /* Tell Tailwind to scan the Aurelius package for utility classes */
71
+ @source "../node_modules/@lukeashford/aurelius/dist";
72
+ ```
73
+
74
+ Then import it in your entry file:
75
+
76
+ ```typescript
77
+ // main.tsx or index.tsx
78
+ import './index.css'
72
79
  ```
73
80
 
74
- ### 3. Configure ESLint
81
+ ### 3. Configure ESLint (simplest form)
75
82
 
76
- This enforces the design system agents and developers get errors when using arbitrary values or
77
- non-Aurelius classes.
83
+ Aurelius ships with a default ESLint config you can re-export in one line. It enforces design system
84
+ constraints — if ESLint complains, you're leaving the rails.
78
85
 
79
86
  ```javascript
80
- // eslint.config.js
81
- import tailwindcss from 'eslint-plugin-tailwindcss';
82
-
83
- export default [
84
- {
85
- plugins: {tailwindcss},
86
- rules: {
87
- 'tailwindcss/no-arbitrary-value': 'error',
88
- 'tailwindcss/no-custom-classname': 'error',
89
- },
90
- settings: {
91
- tailwindcss: {config: './tailwind.config.js'},
92
- },
93
- },
94
- ];
87
+ // eslint.config.mjs
88
+ export {default} from '@lukeashford/aurelius/eslint';
95
89
  ```
96
90
 
97
- <details>
98
- <summary>Legacy .eslintrc.js format</summary>
91
+ **Need a different CSS entry point?**
92
+
99
93
  ```javascript
100
- module.exports = {
101
- plugins: ['tailwindcss'],
102
- rules: {
103
- 'tailwindcss/no-arbitrary-value': 'error',
104
- 'tailwindcss/no-custom-classname': 'error',
105
- },
106
- settings: {
107
- tailwindcss: { config: './tailwind.config.js' },
108
- },
109
- }
94
+ // eslint.config.mjs
95
+ import {createAureliusESLintConfig} from '@lukeashford/aurelius/eslint';
96
+
97
+ export default createAureliusESLintConfig({
98
+ entryPoint: './app/styles.css'
99
+ });
110
100
  ```
111
- </details>
101
+
102
+ **What this enforces:**
103
+
104
+ - **JS/TS/JSX/TSX files:** No custom/non-Aurelius class names, no arbitrary value utilities like
105
+ `bg-[#123456]` or `text-[15px]`
106
+ - **CSS files:** Tailwind v4 CSS best practices, valid `@apply` directives, no arbitrary value
107
+ overuse, and proper theme token usage
112
108
 
113
109
  ### 4. Update package.json scripts
114
110
 
@@ -122,22 +118,7 @@ module.exports = {
122
118
  }
123
119
  ```
124
120
 
125
- ### 5. Import fonts and create index.css
126
-
127
- ```typescript
128
- // main.tsx
129
- import '@lukeashford/aurelius/styles/fonts.css'
130
- import './index.css'
131
- ```
132
-
133
- ```css
134
- /* index.css */
135
- @tailwind base;
136
- @tailwind components;
137
- @tailwind utilities;
138
- ```
139
-
140
- ### 6. Use components
121
+ ### 5. Use components
141
122
 
142
123
  ```tsx
143
124
  import {Button, Card, Input} from '@lukeashford/aurelius'
@@ -155,15 +136,4 @@ function LoginForm() {
155
136
  }
156
137
  ```
157
138
 
158
- ---
159
-
160
- ## Non-Tailwind Users
161
-
162
- Import the precompiled CSS instead:
163
-
164
- ```typescript
165
- // main.tsx
166
- import '@lukeashford/aurelius/styles/base.css'
167
- ```
168
-
169
- This includes all base styles, utilities, and fonts. Components work identically.
139
+ ---
package/dist/index.d.mts CHANGED
@@ -1,7 +1,4 @@
1
- export { default as tailwindPreset } from './tailwind.preset.mjs';
2
- export { ColorToken, DurationToken, EasingToken, RadiusToken, ShadowToken, SpacingToken, TypographyToken, colors, duration, easing, radii, shadows, spacing, typography } from './tokens/index.mjs';
3
1
  import React from 'react';
4
- import 'tailwindcss';
5
2
 
6
3
  type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
7
4
  type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
@@ -27,12 +24,13 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
27
24
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
28
25
 
29
26
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
27
+ type AvatarStatus = 'online' | 'offline' | 'busy';
30
28
  interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
31
29
  src?: string;
32
30
  alt?: string;
33
31
  name?: string;
34
32
  size?: AvatarSize;
35
- status?: 'online' | 'offline' | 'busy';
33
+ status?: AvatarStatus;
36
34
  }
37
35
  declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
38
36
 
@@ -42,11 +40,12 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
42
40
  }
43
41
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
44
42
 
43
+ type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
45
44
  interface TooltipProps {
46
45
  content: React.ReactNode;
47
46
  children: React.ReactElement;
48
47
  open?: boolean;
49
- side?: 'top' | 'right' | 'bottom' | 'left';
48
+ side?: TooltipSide;
50
49
  }
51
50
  declare const Tooltip: React.FC<TooltipProps>;
52
51
 
@@ -100,8 +99,9 @@ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
100
99
  }
101
100
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
102
101
 
102
+ type SpinnerSize = 'sm' | 'md' | 'lg';
103
103
  interface SpinnerProps extends React.SVGAttributes<SVGElement> {
104
- size?: 'sm' | 'md' | 'lg';
104
+ size?: SpinnerSize;
105
105
  }
106
106
  declare const Spinner: {
107
107
  ({ className, size, ...rest }: SpinnerProps): React.JSX.Element;
@@ -129,8 +129,11 @@ declare const Modal: {
129
129
  *
130
130
  * A cohesive visual language for creative technologists.
131
131
  * Combines technical sophistication with artistic sensibility.
132
+ *
133
+ * CSS-first Tailwind v4 design system.
134
+ * Import '@lukeashford/aurelius/styles/base.css' for complete styling.
132
135
  */
133
136
 
134
- declare const version = "1.0.0";
137
+ declare const version = "2.0.0";
135
138
 
136
139
  export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, Modal, type ModalProps, Radio, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Textarea, type TextareaProps, Tooltip, type TooltipProps, version };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- export { default as tailwindPreset } from './tailwind.preset.js';
2
- export { ColorToken, DurationToken, EasingToken, RadiusToken, ShadowToken, SpacingToken, TypographyToken, colors, duration, easing, radii, shadows, spacing, typography } from './tokens/index.js';
3
1
  import React from 'react';
4
- import 'tailwindcss';
5
2
 
6
3
  type ButtonVariant = 'primary' | 'important' | 'elevated' | 'outlined' | 'featured' | 'ghost' | 'danger';
7
4
  type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
@@ -27,12 +24,13 @@ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
27
24
  declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
28
25
 
29
26
  type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
27
+ type AvatarStatus = 'online' | 'offline' | 'busy';
30
28
  interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
31
29
  src?: string;
32
30
  alt?: string;
33
31
  name?: string;
34
32
  size?: AvatarSize;
35
- status?: 'online' | 'offline' | 'busy';
33
+ status?: AvatarStatus;
36
34
  }
37
35
  declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
38
36
 
@@ -42,11 +40,12 @@ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
42
40
  }
43
41
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
44
42
 
43
+ type TooltipSide = 'top' | 'right' | 'bottom' | 'left';
45
44
  interface TooltipProps {
46
45
  content: React.ReactNode;
47
46
  children: React.ReactElement;
48
47
  open?: boolean;
49
- side?: 'top' | 'right' | 'bottom' | 'left';
48
+ side?: TooltipSide;
50
49
  }
51
50
  declare const Tooltip: React.FC<TooltipProps>;
52
51
 
@@ -100,8 +99,9 @@ interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
100
99
  }
101
100
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
102
101
 
102
+ type SpinnerSize = 'sm' | 'md' | 'lg';
103
103
  interface SpinnerProps extends React.SVGAttributes<SVGElement> {
104
- size?: 'sm' | 'md' | 'lg';
104
+ size?: SpinnerSize;
105
105
  }
106
106
  declare const Spinner: {
107
107
  ({ className, size, ...rest }: SpinnerProps): React.JSX.Element;
@@ -129,8 +129,11 @@ declare const Modal: {
129
129
  *
130
130
  * A cohesive visual language for creative technologists.
131
131
  * Combines technical sophistication with artistic sensibility.
132
+ *
133
+ * CSS-first Tailwind v4 design system.
134
+ * Import '@lukeashford/aurelius/styles/base.css' for complete styling.
132
135
  */
133
136
 
134
- declare const version = "1.0.0";
137
+ declare const version = "2.0.0";
135
138
 
136
139
  export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, Modal, type ModalProps, Radio, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Textarea, type TextareaProps, Tooltip, type TooltipProps, version };