@lukeashford/aurelius 2.12.0 → 2.14.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.
@@ -179,6 +179,8 @@
179
179
  --animate-slide-out-right: slide-out-right 200ms ease-in;
180
180
  --animate-pulse-glow: pulse-glow 2s ease-in-out infinite;
181
181
  --animate-cursor-blink: cursor-blink 1s steps(1) infinite;
182
+ --animate-snake-spin: snake-spin 1.5s linear infinite;
183
+ --animate-snake-travel: snake-travel 1.5s ease-in-out infinite;
182
184
 
183
185
  /* ===== LAYOUT TOKENS ===== */
184
186
  --container-sm: 640px;
@@ -249,6 +251,24 @@
249
251
  }
250
252
  }
251
253
 
254
+ @keyframes snake-spin {
255
+ 0% {
256
+ transform: rotate(0deg);
257
+ }
258
+ 100% {
259
+ transform: rotate(360deg);
260
+ }
261
+ }
262
+
263
+ @keyframes snake-travel {
264
+ 0% {
265
+ stroke-dashoffset: 0;
266
+ }
267
+ 100% {
268
+ stroke-dashoffset: -56;
269
+ }
270
+ }
271
+
252
272
  /* ===== BASE STYLES (applied via @layer base) ===== */
253
273
  @layer base {
254
274
  html {
package/llms.md CHANGED
@@ -101,6 +101,7 @@ Import from `@lukeashford/aurelius`:
101
101
  | Accordion | type, defaultValue, value, onValueChange, value, disabled |
102
102
  | Alert | variant (info, success, warning, error), title |
103
103
  | AttachmentPreview | attachments, onRemove, removable, maxVisible |
104
+ | AudioCard | src, title, subtitle, playing, controls, volume, muted, loop, mediaClassName, contentClassName, playerProps |
104
105
  | Avatar | src, alt, name, size (xs, sm, md, lg, xl, 2xl), status (online, offline, busy) |
105
106
  | Badge | variant (default, gold, success, error, warning, info) |
106
107
  | BrandIcon | size (sm, md, lg), variant (solid, outline) |
@@ -131,6 +132,7 @@ Import from `@lukeashford/aurelius`:
131
132
  | Progress | value, max, size (sm, md, lg), variant (default, success, warning, error), showValue, formatValue, indeterminate |
132
133
  | Radio | label |
133
134
  | Row | gutter, gutterX, gutterY, justify (start, center, end, between, around, evenly), align (start, center, end, stretch, baseline) |
135
+ | ScriptCard | title, subtitle, elements, maxHeight |
134
136
  | SectionHeading | level (h2, h3) |
135
137
  | Select | error, options |
136
138
  | Skeleton | children |
@@ -146,14 +148,26 @@ Import from `@lukeashford/aurelius`:
146
148
  | Toast | children, position (top-right, top-left, bottom-right, bottom-left, top-center, bottom-center), defaultDuration |
147
149
  | Tooltip | content, children, open, side (top, right, bottom, left) |
148
150
  | VideoCard | src, title, subtitle, aspectRatio (${number}/${number}), playing, controls, light, volume, muted, loop, mediaClassName, contentClassName, playerProps |
149
- | ArtifactsPanel | artifacts, isOpen, onClose, isLoading, width, onResizeStart, artifactCount, onExpand |
151
+ | ArtifactsPanel | artifacts, isOpen, onClose, isLoading, width, widthPercent, onResizeStart, artifactCount, onExpand |
150
152
  | BranchNavigator | current, total, onPrevious, onNext, size, showIcon |
151
153
  | ChatInput | position (centered, bottom), placeholder, helperText, onSubmit, disabled, animate, isStreaming, onStop, attachments, onAttachmentsChange, showAttachmentButton, acceptedFileTypes |
152
- | ChatInterface | messages, conversationTree, onTreeChange, conversations, onMessageSubmit, onEditMessage, onRetryMessage, onStop, onSelectConversation, onNewChat, isStreaming, isThinking, placeholder, emptyStateHelper, initialSidebarCollapsed, emptyState, showAttachmentButton, enableMessageActions, attachments, onAttachmentsChange, artifacts, isArtifactsPanelOpen, onArtifactsPanelOpenChange |
154
+ | ChatInterface | messages, conversationTree, onTreeChange, conversations, onMessageSubmit, onEditMessage, onRetryMessage, onStop, onSelectConversation, onNewChat, isStreaming, isThinking, placeholder, emptyStateHelper, initialSidebarCollapsed, emptyState, showAttachmentButton, enableMessageActions, attachments, onAttachmentsChange, artifacts, isArtifactsPanelOpen, onArtifactsPanelOpenChange, tasks, tasksTitle |
153
155
  | ChatView | messages, latestUserMessageIndex, isStreaming, isThinking, onScroll |
154
156
  | ConversationSidebar | conversations, isCollapsed, onSelectConversation, onNewChat, onToggleCollapse, width, onResizeStart, onExpand |
155
157
  | MessageActions | variant (user, assistant), content, onEdit, onRetry, isEditing, onEditingChange, editValue |
156
158
  | ThinkingIndicator | isVisible, phraseInterval, phrases |
159
+ | TodosList | tasks, title |
160
+ | CheckSquareIcon | children |
161
+ | ChevronLeftIcon | children |
162
+ | ChevronRightIcon | children |
163
+ | CloseIcon | children |
164
+ | CrossSquareIcon | variant |
165
+ | EmptySquareIcon | children |
166
+ | ExpandIcon | children |
167
+ | HistoryIcon | children |
168
+ | LayersIcon | children |
169
+ | PlusIcon | children |
170
+ | SquareLoaderIcon | children |
157
171
 
158
172
  ### Component Notes
159
173
 
@@ -213,6 +227,21 @@ Import from `@lukeashford/aurelius`:
213
227
  - **onOpenChange**: Callback when open state changes
214
228
  - **closeOnClickOutside**: Close when clicking outside
215
229
 
230
+ **ScriptCard**
231
+ ScriptCard displays a formatted movie/video script.
232
+
233
+ Follows standard screenplay formatting conventions:
234
+ - Scene headings: uppercase, gold, left-aligned
235
+ - Action: silver, full width
236
+ - Character names: uppercase, centered-left
237
+ - Dialogue: indented from both sides
238
+ - Transitions: uppercase, right-aligned
239
+
240
+ - **title**: * Title of the script (shown at top)
241
+ - **subtitle**: * Subtitle/metadata (e.g., "30-second spot • Directed by AI Creative")
242
+ - **elements**: * Array of script elements in order
243
+ - **maxHeight**: * Maximum height before scrolling (default: 16rem / 256px)
244
+
216
245
  **Stepper**
217
246
  - **steps**: Array of steps. Each requires: id (string | number), label (string).
218
247
  - **currentStep**: ID of the current step (must match a step.id from the steps array).
@@ -230,12 +259,16 @@ ArtifactsPanel displays rich content artifacts in a slide-in panel.
230
259
 
231
260
  When collapsed, shows a thin strip with layers icon at top.
232
261
  When expanded, shows chevron at top-right to collapse.
262
+ Click on artifacts to expand them to full screen modal.
263
+
264
+ Supports fullWidth artifacts that span all columns in the grid.
233
265
 
234
266
  - **artifacts**: * Array of artifacts to display
235
267
  - **isOpen**: * Whether the panel is visible
236
268
  - **onClose**: * Callback to close/collapse the panel
237
269
  - **isLoading**: * Whether artifacts are still loading (show skeletons)
238
- - **width**: * Current width of the panel (when expanded)
270
+ - **width**: * Current width of the panel as CSS value (e.g., "50vw", "400px").
271
+ - **widthPercent**: * Width as percentage of viewport (0-100) for column calculations.
239
272
  - **onResizeStart**: * Callback to start resizing
240
273
 
241
274
  **BranchNavigator**
@@ -317,6 +350,8 @@ Artifacts are controlled externally via the useArtifacts hook:
317
350
  - **artifacts**: * Artifacts to display in the side panel. Best managed via the useArtifacts hook and passed here.
318
351
  - **isArtifactsPanelOpen**: * Whether the artifacts panel is currently open (controlled).
319
352
  - **onArtifactsPanelOpenChange**: * Called when the artifacts panel is opened or closed (controlled).
353
+ - **tasks**: * Tasks to display in the todos list below the artifacts panel. Shows a list of tasks with status indicators.
354
+ - **tasksTitle**: * Title for the todos list @default "Tasks"
320
355
 
321
356
  **ChatView**
322
357
  ChatView displays a conversation thread with smart scrolling behavior.
@@ -345,7 +380,7 @@ When expanded, shows chevron at top-left to collapse.
345
380
  - **onSelectConversation**: * Callback when a conversation is selected
346
381
  - **onNewChat**: * Callback when "New Chat" is clicked
347
382
  - **onToggleCollapse**: * Callback to toggle collapse state
348
- - **width**: * Current width of the sidebar (when expanded)
383
+ - **width**: * Current width of the sidebar (when expanded). Accepts CSS width value (e.g., "15vw", "256px").
349
384
  - **onResizeStart**: * Callback to start resizing
350
385
 
351
386
  **MessageActions**
@@ -365,6 +400,35 @@ but has not yet started streaming tokens. It cycles through flavorful "thinking"
365
400
  - **phraseInterval**: * Interval between phrase changes in ms @default 2500
366
401
  - **phrases**: * Custom phrases to cycle through (defaults to built-in phrases)
367
402
 
403
+ **TodosList**
404
+ TodosList displays a structured list of tasks with status indicators.
405
+
406
+ Features:
407
+ - Nested tasks with indentation
408
+ - Status indicators: done (checkmark), in_progress (snake animation), pending (empty), cancelled, failed
409
+ - Done tasks are crossed out with golden checkmark
410
+ - Cancelled/failed tasks are crossed out with subtle styling and sorted to bottom of their local group
411
+ - Max 1/4 screen height with scroll
412
+ - Subtasks appear when parent task is in_progress or done
413
+
414
+ The component automatically sorts cancelled/failed tasks to the bottom of their local group
415
+ (not globally), so just changing a task's status will reorder it appropriately.
416
+
417
+ - **Task.id**: * Unique identifier for the task
418
+ - **Task.label**: * Task description text
419
+ - **Task.status**: * Current status of the task
420
+ - **Task.subtasks**: * Optional subtasks (shown when parent is in_progress or done)
421
+ - **tasks**: * Array of tasks to display
422
+ - **title**: * Title for the todos list @default "Tasks"
423
+
424
+ **CrossSquareIcon**
425
+ - **variant**: * Visual variant for different states - 'cancelled': subtle ash coloring - 'failed': error red coloring
426
+
427
+ **SquareLoaderIcon**
428
+ Square loading spinner with "snake" animation.
429
+ A golden stroke travels around a square border.
430
+
431
+
368
432
 
369
433
  ### Component usage example
370
434
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lukeashford/aurelius",
3
- "version": "2.12.0",
3
+ "version": "2.14.0",
4
4
  "description": "Design system for Aurelius applications — A cohesive visual language for creative technologists",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",