astryx-dracula 0.3.0 → 0.4.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/USAGE.md CHANGED
@@ -139,17 +139,43 @@ README. Not required for this kit.
139
139
  - Wrong colors after a theme edit: rebuild with `bun run theme:build`; `bun run theme:check` confirms staleness (it ignores `astryx-dracula.js` by design — that file is a build artifact, not a freshness signal).
140
140
  - Old `:root` `--color-*` overrides winning: delete them.
141
141
 
142
+ ## Known upstream defects in `@astryxdesign/core@0.6.3`
143
+
144
+ This kit carries local patches for three defects in core, committed under `patches/` and wired through
145
+ `patchedDependencies`. **Read this before assuming the patches reach you: they do not.** Bun and npm
146
+ honour `patchedDependencies` only from the *root* project of an install. The patches apply when you
147
+ clone or work in this repository; they do **not** propagate to a downstream app that installs
148
+ `astryx-dracula` from npm, because core resolves through your own dependency tree. If you hit one of
149
+ these in your own app, the fix is yours to carry.
150
+
151
+ | Defect | Symptom | Workaround |
152
+ |---|---|---|
153
+ | `ChatToolCalls` discards its `label` prop | The `label` prop is typed and documented ("Auto-generated from count if omitted") but the expanded group header always renders `"{count} tool calls"`. The prop is destructured away, so it cannot reach the DOM either. | Render your own header above the component, or wrap it. The internal header markup is not exported. |
154
+ | `ToggleButton` drops `className` | A `className` passed to `ToggleButton` never reaches the DOM, even though `BaseProps` documents that it is kept. A sweep of all of core's `dist` found this to be the only component doing it, so it reads as an oversight rather than policy. | Style via `style` or `xstyle`, both of which do forward. Or use `Button` with `aria-pressed`, which honours `className`. |
155
+ | `ChatToolCalls` `defaultIsExpanded` JSDoc is wrong | The type comment claims "true for ≤3 calls, false for >3". The implementation is an unconditional `?? false`. The behaviour is the JSDoc that is wrong, so no action is needed. | None. Documented so nobody codes against the comment. |
156
+
157
+ If you want the patches, copy `patches/@astryxdesign%2Fcore@0.6.3.patch` from the repository into
158
+ your own root `package.json` under `patchedDependencies`. They are version-locked to `0.6.3`, so
159
+ upgrading core makes them stop applying rather than silently mis-apply — which is the intended
160
+ signal to delete them. Each hunk carries a comment naming the defect, so they are easy to drop once
161
+ upstream ships a fix.
162
+
142
163
  ## Rules
143
164
 
144
165
  - Never invent hexes. New color need goes through `astryx-theme.ts` + audit, not a one-off.
145
166
  - Never override `--color-*` in app `:root`. Brand changes live in `astryx-theme.ts` via `defineTheme`, then `bun run theme:build`.
146
167
  - Tokens for every value: `var(--color-*|--space-*|--radius-*)`. No raw hex or px in components.
147
168
  - Component styling: props first, then theme `components` overrides in `astryx-theme.ts`. No per-app CSS wars.
148
- - A chart mark takes a `--color-data-*` role token, never a `--dracula-*` primitive. The `chart-hues` / `chart-legend` / `data-bar` types reject anything else at compile time.
169
+ - A chart mark takes a `--color-data-*` role token, never a `--dracula-*` primitive. The `chart-hues` / `chart-legend` / `data-bar` types reject anything else at compile time, and `bun run audit` tree-walks the chart modules. Values are byte-identical to the primitives, so this is vocabulary, not appearance. Scene ART is exempt and deliberately so: `SCENE_HUES` is a separate remit where purple is banned as a series identity but legitimate as pigment.
149
170
  - `--dracula-comment` is legal on a **graphical** mark (3.36:1 clears WCAG 1.4.11) and illegal on **text** (fails 4.5:1). Any `fillOpacity` under 0.9 makes it worse. Text in a scene uses `--color-text-paragraph`.
150
171
  - A `Layout height="fill"` needs `style={{height: '100dvh'}}` or it silently degrades to document scroll. `minHeight: '100%'` computes to 0 against an indefinite parent, so it is a no-op.
151
172
  - Derive any count a page prints from its data. Hardcoded numerals are how `documentation.tsx` came to say "twenty-eight components" over 31 entries.
152
173
  - A `.tsx` exports components only; shared data lives in a sibling `.ts`, so React Fast Refresh works.
174
+ - **Do not add your own Tooltip override.** Core's `useTooltip` paints `background-color: var(--color-text-primary)` with `color: var(--color-background-surface)` — an inversion that only reads correctly on a light theme, and on dark it is a near-white box with light-grey text. This theme already overrides it (`components.tooltip.base` in `astryx-theme.ts`, shipping as `.astryx-tooltip` in `theme.css`) onto the popover tier with `--shadow-low`, at 9.06:1. Core renders the Tooltip internally, so this reaches `Selector`, `TimeInput`, `Typeahead`, `CheckboxInput`, `CheckboxList`, `Tokenizer`, `DateRangeInput` and `Tooltip` whether or not you use one. If you are carrying your own `.astryx-tooltip` rule, it is computing the same two values and can be deleted.
175
+ - **A link is a destination; a button is an action.** If the thing navigates somewhere (`href`, a route, an anchor, a file) it is a `Link`. If it changes state in place — submit, save, delete, deactivate, disconnect, log out, request, toggle, expand — it is a `Button`. Rendering an action as `<Link href="#">` is the single most common way these templates went wrong: it draws a purple underlined affordance for something that is not navigation, and a screen reader announces "link" for a control that does not act like one. `SELF_HASH` placeholders are for genuine destinations only.
176
+ - **Underline rules, from W3C.** Links **inside running prose** (a sentence in a description, help text, legal copy) stay underlined, because that is the only persistent cue a reader has and colour alone fails WCAG 1.4.1 (F73). Links in **navigation** — a header, sidebar, tab list, breadcrumb, pagination, a rail of settings sections — are not underlined; the grouping and the current-item indicator carry that job. Anything ambiguous is prose, so underline it.
177
+ - **A divider is a section boundary, not a row background.** Use `Divider` to separate genuinely different groups, not between every field, every row of a list, or every setting inside one panel. A stack of rules reads as a form grid and flattens the hierarchy it was meant to express. Prefer `Stack gap` and, inside a panel, one divider at most; if two adjacent groups are only separated by a rule, they are one group.
178
+ - Spacing comes from the spacing scale via `Stack gap` or the kit's own layout props. Do not hand-tune `margin`/`padding` to make a panel look right — a panel that needs 20 rules to assemble is a panel that should be a `Stack`.
153
179
 
154
180
  ## Release checklist
155
181
 
@@ -2,8 +2,8 @@
2
2
  * @generated by `astryx theme build` — do not edit manually.
3
3
  * Source: astryx-theme.ts
4
4
  * Command: astryx theme build astryx-theme.ts --out theme.css
5
- * CLI: @astryxdesign/cli@0.3.0
6
- * Core: @astryxdesign/core@0.3.0
5
+ * CLI: @astryxdesign/cli@0.6.3
6
+ * Core: @astryxdesign/core@0.6.3
7
7
  */
8
8
 
9
9
  /// <reference path="./astryx-dracula.variants.d.ts" />
package/astryx-dracula.js CHANGED
@@ -2,11 +2,11 @@
2
2
  * @generated by `astryx theme build` — do not edit manually.
3
3
  * Source: astryx-theme.ts
4
4
  * Command: astryx theme build astryx-theme.ts --out theme.css
5
- * CLI: @astryxdesign/cli@0.3.0
6
- * Core: @astryxdesign/core@0.3.0
5
+ * CLI: @astryxdesign/cli@0.6.3
6
+ * Core: @astryxdesign/core@0.6.3
7
7
  */
8
8
 
9
- import { draculaIconRegistry } from './icons';
9
+ import { draculaIconRegistry } from "./icons.mjs";
10
10
  /**
11
11
  * astryx-dracula theme — built by `bunx astryx theme build`
12
12
  * Import the CSS file alongside this module:
@@ -179,6 +179,8 @@ export const astryxDraculaTheme = {
179
179
  "--color-data-categorical-pink": "light-dark(#FF79C6, #FF79C6)",
180
180
  "--color-data-categorical-cyan": "light-dark(#8BE9FD, #8BE9FD)",
181
181
  "--color-data-categorical-red": "light-dark(#FF5555, #FF5555)",
182
+ "--color-data-categorical-purple": "light-dark(#BD93F9, #BD93F9)",
183
+ "--color-data-categorical-brown": "light-dark(#FFB86C, #FFB86C)",
182
184
  "--color-data-categorical-teal": "light-dark(#A4FFFF, #A4FFFF)",
183
185
  "--color-data-categorical-indigo": "light-dark(#D6ACFF, #D6ACFF)",
184
186
  "--color-background-blue": "light-dark(#6272A41A, #6272A41A)",
@@ -295,6 +297,385 @@ export const astryxDraculaTheme = {
295
297
  "--color-tag-green": "light-dark(#50FA7B, #50FA7B)",
296
298
  "--color-tag-purple": "light-dark(#BD93F9, #BD93F9)"
297
299
  },
300
+ components: {
301
+ "heading": {
302
+ "level:1": {
303
+ "fontFamily": "var(--font-family-heading)",
304
+ "fontSize": "var(--text-heading-1-size)",
305
+ "fontWeight": "var(--text-heading-1-weight)",
306
+ "lineHeight": "var(--text-heading-1-leading)"
307
+ },
308
+ "level:2": {
309
+ "fontFamily": "var(--font-family-heading)",
310
+ "fontSize": "var(--text-heading-2-size)",
311
+ "fontWeight": "var(--text-heading-2-weight)",
312
+ "lineHeight": "var(--text-heading-2-leading)"
313
+ },
314
+ "level:3": {
315
+ "fontFamily": "var(--font-family-heading)",
316
+ "fontSize": "var(--text-heading-3-size)",
317
+ "fontWeight": "var(--text-heading-3-weight)",
318
+ "lineHeight": "var(--text-heading-3-leading)"
319
+ },
320
+ "level:4": {
321
+ "fontFamily": "var(--font-family-heading)",
322
+ "fontSize": "var(--text-heading-4-size)",
323
+ "fontWeight": "var(--text-heading-4-weight)",
324
+ "lineHeight": "var(--text-heading-4-leading)"
325
+ },
326
+ "level:5": {
327
+ "fontFamily": "var(--font-family-heading)",
328
+ "fontSize": "var(--text-heading-5-size)",
329
+ "fontWeight": "var(--text-heading-5-weight)",
330
+ "lineHeight": "var(--text-heading-5-leading)"
331
+ },
332
+ "level:6": {
333
+ "fontFamily": "var(--font-family-heading)",
334
+ "fontSize": "var(--text-heading-6-size)",
335
+ "fontWeight": "var(--text-heading-6-weight)",
336
+ "lineHeight": "var(--text-heading-6-leading)"
337
+ },
338
+ "type:display-1": {
339
+ "fontFamily": "var(--font-family-heading)",
340
+ "fontSize": "var(--text-display-1-size)",
341
+ "lineHeight": "var(--text-display-1-leading)"
342
+ },
343
+ "type:display-2": {
344
+ "fontFamily": "var(--font-family-heading)",
345
+ "fontSize": "var(--text-display-2-size)",
346
+ "lineHeight": "var(--text-display-2-leading)"
347
+ },
348
+ "type:display-3": {
349
+ "fontFamily": "var(--font-family-heading)",
350
+ "fontSize": "var(--text-display-3-size)",
351
+ "lineHeight": "var(--text-display-3-leading)"
352
+ }
353
+ },
354
+ "text": {
355
+ "type:body": {
356
+ "fontFamily": "var(--font-family-body)",
357
+ "fontSize": "var(--text-body-size)",
358
+ "lineHeight": "var(--text-body-leading)"
359
+ },
360
+ "type:large": {
361
+ "fontFamily": "var(--font-family-body)",
362
+ "fontSize": "var(--text-large-size)",
363
+ "lineHeight": "var(--text-large-leading)"
364
+ },
365
+ "type:label": {
366
+ "fontFamily": "var(--font-family-body)",
367
+ "fontSize": "var(--text-label-size)",
368
+ "lineHeight": "var(--text-label-leading)"
369
+ },
370
+ "type:code": {
371
+ "fontFamily": "var(--font-family-code)",
372
+ "fontSize": "var(--text-code-size)",
373
+ "lineHeight": "var(--text-code-leading)"
374
+ },
375
+ "type:supporting": {
376
+ "fontFamily": "var(--font-family-body)",
377
+ "fontSize": "var(--text-supporting-size)",
378
+ "lineHeight": "var(--text-supporting-leading)"
379
+ },
380
+ "type:display-1": {
381
+ "fontFamily": "var(--font-family-heading)",
382
+ "fontSize": "var(--text-display-1-size)",
383
+ "lineHeight": "var(--text-display-1-leading)"
384
+ },
385
+ "type:display-2": {
386
+ "fontFamily": "var(--font-family-heading)",
387
+ "fontSize": "var(--text-display-2-size)",
388
+ "lineHeight": "var(--text-display-2-leading)"
389
+ },
390
+ "type:display-3": {
391
+ "fontFamily": "var(--font-family-heading)",
392
+ "fontSize": "var(--text-display-3-size)",
393
+ "lineHeight": "var(--text-display-3-leading)"
394
+ }
395
+ },
396
+ "app-shell": {
397
+ "variant:wash": {
398
+ "backgroundColor": "var(--color-background-body)"
399
+ },
400
+ "variant:elevated": {
401
+ "backgroundColor": "var(--color-background-body)"
402
+ },
403
+ "variant:surface": {
404
+ "backgroundColor": "var(--color-background-surface)"
405
+ },
406
+ "variant:section": {
407
+ "backgroundColor": "var(--color-background-surface)"
408
+ }
409
+ },
410
+ "link": {
411
+ "base": {
412
+ "color": "var(--color-text-accent)",
413
+ ":hover": {
414
+ "color": "var(--color-text-highlight)"
415
+ }
416
+ }
417
+ },
418
+ "card": {
419
+ "base": {
420
+ "backgroundColor": "var(--color-widget-background)",
421
+ "border": "1px solid var(--color-widget-content-border)",
422
+ "borderRadius": "var(--border-radius)"
423
+ }
424
+ },
425
+ "button": {
426
+ "base": {
427
+ "borderRadius": "var(--border-radius)",
428
+ "fontWeight": "var(--font-weight-normal)"
429
+ }
430
+ },
431
+ "banner": {
432
+ "base": {
433
+ "borderRadius": "var(--border-radius)",
434
+ "borderWidth": "1px",
435
+ "borderStyle": "solid",
436
+ "color": "var(--color-text-primary)"
437
+ },
438
+ "status:info": {
439
+ "--color-accent-muted": "var(--color-background-cyan)",
440
+ "borderColor": "var(--color-info)"
441
+ },
442
+ "status:success": {
443
+ "--color-success-muted": "var(--color-background-green)",
444
+ "borderColor": "var(--color-success)"
445
+ },
446
+ "status:warning": {
447
+ "--color-warning-muted": "var(--color-background-yellow)",
448
+ "borderColor": "var(--color-warning)"
449
+ },
450
+ "status:error": {
451
+ "--color-error-muted": "var(--color-background-red)",
452
+ "borderColor": "var(--color-error)"
453
+ }
454
+ },
455
+ "statusdot": {
456
+ "variant:info": {
457
+ "backgroundColor": "#8BE9FD"
458
+ }
459
+ },
460
+ "progressbar-fill": {
461
+ "variant:accent": {
462
+ "backgroundColor": "#BD93F9"
463
+ },
464
+ "variant:success": {
465
+ "backgroundColor": "#50FA7B"
466
+ },
467
+ "variant:warning": {
468
+ "backgroundColor": "#F1FA8C"
469
+ },
470
+ "variant:error": {
471
+ "backgroundColor": "#FF5555"
472
+ },
473
+ "variant:neutral": {
474
+ "backgroundColor": "var(--color-progress-value)"
475
+ },
476
+ "variant:disabled": {
477
+ "backgroundColor": "var(--color-progress-value)"
478
+ }
479
+ },
480
+ "text-input": {
481
+ "status:success": {
482
+ "--color-success": "#50FA7B"
483
+ },
484
+ "status:warning": {
485
+ "--color-warning": "#F1FA8C"
486
+ },
487
+ "status:error": {
488
+ "--color-error": "#FF5555"
489
+ }
490
+ },
491
+ "textarea": {
492
+ "status:success": {
493
+ "--color-success": "#50FA7B"
494
+ },
495
+ "status:warning": {
496
+ "--color-warning": "#F1FA8C"
497
+ },
498
+ "status:error": {
499
+ "--color-error": "#FF5555"
500
+ }
501
+ },
502
+ "number-input": {
503
+ "status:success": {
504
+ "--color-success": "#50FA7B"
505
+ },
506
+ "status:warning": {
507
+ "--color-warning": "#F1FA8C"
508
+ },
509
+ "status:error": {
510
+ "--color-error": "#FF5555"
511
+ }
512
+ },
513
+ "date-input": {
514
+ "status:success": {
515
+ "--color-success": "#50FA7B"
516
+ },
517
+ "status:warning": {
518
+ "--color-warning": "#F1FA8C"
519
+ },
520
+ "status:error": {
521
+ "--color-error": "#FF5555"
522
+ }
523
+ },
524
+ "time-input": {
525
+ "status:success": {
526
+ "--color-success": "#50FA7B"
527
+ },
528
+ "status:warning": {
529
+ "--color-warning": "#F1FA8C"
530
+ },
531
+ "status:error": {
532
+ "--color-error": "#FF5555"
533
+ }
534
+ },
535
+ "selector": {
536
+ "status:success": {
537
+ "--color-success": "#50FA7B"
538
+ },
539
+ "status:warning": {
540
+ "--color-warning": "#F1FA8C"
541
+ },
542
+ "status:error": {
543
+ "--color-error": "#FF5555"
544
+ }
545
+ },
546
+ "multi-selector": {
547
+ "status:success": {
548
+ "--color-success": "#50FA7B"
549
+ },
550
+ "status:warning": {
551
+ "--color-warning": "#F1FA8C"
552
+ },
553
+ "status:error": {
554
+ "--color-error": "#FF5555"
555
+ }
556
+ },
557
+ "typeahead": {
558
+ "status:success": {
559
+ "--color-success": "#50FA7B"
560
+ },
561
+ "status:warning": {
562
+ "--color-warning": "#F1FA8C"
563
+ },
564
+ "status:error": {
565
+ "--color-error": "#FF5555"
566
+ }
567
+ },
568
+ "tokenizer": {
569
+ "status:success": {
570
+ "--color-success": "#50FA7B"
571
+ },
572
+ "status:warning": {
573
+ "--color-warning": "#F1FA8C"
574
+ },
575
+ "status:error": {
576
+ "--color-error": "#FF5555"
577
+ }
578
+ },
579
+ "switch": {
580
+ "base": {
581
+ "--color-background-gray": "var(--color-skeleton)"
582
+ }
583
+ },
584
+ "toast": {
585
+ "type:info": {
586
+ "backgroundColor": "var(--color-background-inverted)",
587
+ "color": "var(--color-on-light)"
588
+ },
589
+ "type:error": {
590
+ "backgroundColor": "var(--color-background-error-inverted)",
591
+ "color": "var(--color-on-light)"
592
+ }
593
+ },
594
+ "field-status": {
595
+ "type:success": {
596
+ "backgroundColor": "var(--color-background-green)"
597
+ },
598
+ "type:warning": {
599
+ "backgroundColor": "var(--color-background-yellow)"
600
+ },
601
+ "type:error": {
602
+ "backgroundColor": "var(--color-background-red)"
603
+ }
604
+ },
605
+ "tooltip": {
606
+ "base": {
607
+ "backgroundColor": "var(--color-background-popover)",
608
+ "color": "var(--color-text-primary)",
609
+ "boxShadow": "var(--shadow-low)"
610
+ }
611
+ },
612
+ "hovercard": {
613
+ "base": {
614
+ "backgroundColor": "var(--color-background-popover)"
615
+ }
616
+ },
617
+ "avatar-status-dot": {
618
+ "variant:success": {
619
+ "color": "var(--color-on-success)"
620
+ },
621
+ "variant:error": {
622
+ "color": "var(--color-on-error)"
623
+ }
624
+ }
625
+ },
626
+ __onDark: {
627
+ "tokens": {
628
+ "color-scheme": "dark",
629
+ "--color-text-primary": "var(--color-on-dark)",
630
+ "--color-icon-primary": "var(--color-on-dark)",
631
+ "--color-accent": "light-dark(#BD93F9, #BD93F9)"
632
+ }
633
+ },
634
+ __onLight: {
635
+ "tokens": {
636
+ "color-scheme": "light",
637
+ "--color-text-primary": "var(--color-on-light)",
638
+ "--color-icon-primary": "var(--color-on-light)",
639
+ "--color-accent": "var(--color-on-light)"
640
+ }
641
+ },
642
+ __adaptations: {
643
+ "widthBreakpoints": {
644
+ "sm": 640,
645
+ "md": 768,
646
+ "lg": 1024,
647
+ "xl": 1280,
648
+ "2xl": 1536
649
+ },
650
+ "rules": []
651
+ },
652
+ __axes: {
653
+ "typography": {
654
+ "scale": {
655
+ "base": 14,
656
+ "ratio": 1.2
657
+ },
658
+ "body": {
659
+ "family": "JetBrains Mono",
660
+ "fallbacks": "monospace"
661
+ },
662
+ "heading": {
663
+ "family": "JetBrains Mono",
664
+ "fallbacks": "monospace",
665
+ "weight": "normal"
666
+ },
667
+ "code": {
668
+ "family": "JetBrains Mono",
669
+ "fallbacks": "monospace"
670
+ }
671
+ },
672
+ "motion": {
673
+ "fast": 175,
674
+ "medium": 410,
675
+ "slow": 975,
676
+ "ratio": 0.75
677
+ }
678
+ },
298
679
  icons: draculaIconRegistry,
299
680
  };
300
681
 
@@ -2,8 +2,8 @@
2
2
  * @generated by `astryx theme build` — do not edit manually.
3
3
  * Source: astryx-theme.ts
4
4
  * Command: astryx theme build astryx-theme.ts --out theme.css
5
- * CLI: @astryxdesign/cli@0.3.0
6
- * Core: @astryxdesign/core@0.3.0
5
+ * CLI: @astryxdesign/cli@0.6.3
6
+ * Core: @astryxdesign/core@0.6.3
7
7
  */
8
8
 
9
9
  // Generated by astryx theme build
@@ -17,18 +17,6 @@ declare module '@astryxdesign/core/StatusDot' {
17
17
 
18
18
  declare module '@astryxdesign/core/ProgressBar' {
19
19
  interface ProgressBarVariantMap {
20
- 'accent': true;
21
- 'success': true;
22
- 'warning': true;
23
- 'error': true;
24
- 'neutral': true;
25
20
  'disabled': true;
26
21
  }
27
22
  }
28
-
29
- declare module '@astryxdesign/core/Avatar' {
30
- interface AvatarStatusDotVariantMap {
31
- 'success': true;
32
- 'error': true;
33
- }
34
- }
package/icons.mjs ADDED
@@ -0,0 +1,125 @@
1
+ // icons.tsx
2
+ import {
3
+ X,
4
+ ChevronDown,
5
+ ChevronLeft,
6
+ ChevronRight,
7
+ ChevronsLeft,
8
+ ChevronsRight,
9
+ Check,
10
+ CheckCircle,
11
+ XCircle,
12
+ AlertTriangle,
13
+ Info,
14
+ Calendar,
15
+ Clock,
16
+ ExternalLink,
17
+ Menu,
18
+ MoreHorizontal,
19
+ Search,
20
+ ArrowUp,
21
+ ArrowDown,
22
+ ArrowUpDown,
23
+ Filter,
24
+ EyeOff,
25
+ Columns,
26
+ Copy,
27
+ CheckCheck,
28
+ Wrench,
29
+ Square,
30
+ Mic
31
+ } from "lucide-react";
32
+ import { jsx } from "react/jsx-runtime";
33
+ var iconProps = {
34
+ size: "1em",
35
+ "aria-hidden": true
36
+ };
37
+ var draculaIconRegistry = {
38
+ close: /* @__PURE__ */ jsx(X, {
39
+ ...iconProps
40
+ }),
41
+ chevronDown: /* @__PURE__ */ jsx(ChevronDown, {
42
+ ...iconProps
43
+ }),
44
+ chevronLeft: /* @__PURE__ */ jsx(ChevronLeft, {
45
+ ...iconProps
46
+ }),
47
+ chevronRight: /* @__PURE__ */ jsx(ChevronRight, {
48
+ ...iconProps
49
+ }),
50
+ chevronsLeft: /* @__PURE__ */ jsx(ChevronsLeft, {
51
+ ...iconProps
52
+ }),
53
+ chevronsRight: /* @__PURE__ */ jsx(ChevronsRight, {
54
+ ...iconProps
55
+ }),
56
+ check: /* @__PURE__ */ jsx(Check, {
57
+ ...iconProps
58
+ }),
59
+ success: /* @__PURE__ */ jsx(CheckCircle, {
60
+ ...iconProps
61
+ }),
62
+ error: /* @__PURE__ */ jsx(XCircle, {
63
+ ...iconProps
64
+ }),
65
+ warning: /* @__PURE__ */ jsx(AlertTriangle, {
66
+ ...iconProps
67
+ }),
68
+ info: /* @__PURE__ */ jsx(Info, {
69
+ ...iconProps
70
+ }),
71
+ calendar: /* @__PURE__ */ jsx(Calendar, {
72
+ ...iconProps
73
+ }),
74
+ clock: /* @__PURE__ */ jsx(Clock, {
75
+ ...iconProps
76
+ }),
77
+ externalLink: /* @__PURE__ */ jsx(ExternalLink, {
78
+ ...iconProps
79
+ }),
80
+ menu: /* @__PURE__ */ jsx(Menu, {
81
+ ...iconProps
82
+ }),
83
+ moreHorizontal: /* @__PURE__ */ jsx(MoreHorizontal, {
84
+ ...iconProps
85
+ }),
86
+ search: /* @__PURE__ */ jsx(Search, {
87
+ ...iconProps
88
+ }),
89
+ arrowUp: /* @__PURE__ */ jsx(ArrowUp, {
90
+ ...iconProps
91
+ }),
92
+ arrowDown: /* @__PURE__ */ jsx(ArrowDown, {
93
+ ...iconProps
94
+ }),
95
+ arrowsUpDown: /* @__PURE__ */ jsx(ArrowUpDown, {
96
+ ...iconProps
97
+ }),
98
+ funnel: /* @__PURE__ */ jsx(Filter, {
99
+ ...iconProps
100
+ }),
101
+ eyeSlash: /* @__PURE__ */ jsx(EyeOff, {
102
+ ...iconProps
103
+ }),
104
+ viewColumns: /* @__PURE__ */ jsx(Columns, {
105
+ ...iconProps
106
+ }),
107
+ copy: /* @__PURE__ */ jsx(Copy, {
108
+ ...iconProps
109
+ }),
110
+ checkDouble: /* @__PURE__ */ jsx(CheckCheck, {
111
+ ...iconProps
112
+ }),
113
+ wrench: /* @__PURE__ */ jsx(Wrench, {
114
+ ...iconProps
115
+ }),
116
+ stop: /* @__PURE__ */ jsx(Square, {
117
+ ...iconProps
118
+ }),
119
+ microphone: /* @__PURE__ */ jsx(Mic, {
120
+ ...iconProps
121
+ })
122
+ };
123
+ export {
124
+ draculaIconRegistry
125
+ };