@tolle_/tolle-ui 21.1.2 → 21.2.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.
Files changed (128) hide show
  1. package/fesm2022/tolle-ui.mjs +30099 -5285
  2. package/fesm2022/tolle-ui.mjs.map +1 -1
  3. package/package.json +17 -5
  4. package/preset.js +35 -1
  5. package/registry/docs-content.json +11486 -0
  6. package/registry/llms-full.txt +4067 -0
  7. package/registry/llms.txt +127 -0
  8. package/registry/manifest.json +12656 -0
  9. package/registry/r/accordion-item.json +21 -0
  10. package/registry/r/accordion.json +23 -0
  11. package/registry/r/alert-dialog-dynamic.json +31 -0
  12. package/registry/r/alert-dialog.json +26 -0
  13. package/registry/r/alert.json +23 -0
  14. package/registry/r/aspect-ratio.json +21 -0
  15. package/registry/r/attachment.json +23 -0
  16. package/registry/r/avatar-fallback.json +16 -0
  17. package/registry/r/avatar.json +23 -0
  18. package/registry/r/badge.json +23 -0
  19. package/registry/r/bar-list.json +21 -0
  20. package/registry/r/breadcrumb-item.json +16 -0
  21. package/registry/r/breadcrumb-link.json +16 -0
  22. package/registry/r/breadcrumb-separator.json +16 -0
  23. package/registry/r/breadcrumb.json +21 -0
  24. package/registry/r/bubble.json +23 -0
  25. package/registry/r/button-group.json +21 -0
  26. package/registry/r/button.json +23 -0
  27. package/registry/r/calendar.json +23 -0
  28. package/registry/r/card.json +21 -0
  29. package/registry/r/carousel.json +18 -0
  30. package/registry/r/category-bar.json +21 -0
  31. package/registry/r/chain-of-thought.json +23 -0
  32. package/registry/r/chart-pie.json +30 -0
  33. package/registry/r/chart-spark.json +30 -0
  34. package/registry/r/chart.json +28 -0
  35. package/registry/r/checkbox.json +23 -0
  36. package/registry/r/checkpoint.json +23 -0
  37. package/registry/r/collapsible.json +21 -0
  38. package/registry/r/combobox.json +31 -0
  39. package/registry/r/command-dialog.json +21 -0
  40. package/registry/r/command.json +26 -0
  41. package/registry/r/confirmation.json +23 -0
  42. package/registry/r/context-menu-trigger.json +23 -0
  43. package/registry/r/context-menu.json +28 -0
  44. package/registry/r/context.json +26 -0
  45. package/registry/r/conversation.json +23 -0
  46. package/registry/r/country-selector.json +31 -0
  47. package/registry/r/data-table.json +38 -0
  48. package/registry/r/date-picker.json +27 -0
  49. package/registry/r/date-range-picker.json +32 -0
  50. package/registry/r/date-time-picker.json +28 -0
  51. package/registry/r/direction.json +16 -0
  52. package/registry/r/dropdown-item.json +21 -0
  53. package/registry/r/dropdown-label.json +16 -0
  54. package/registry/r/dropdown-menu.json +16 -0
  55. package/registry/r/dropdown-separator.json +16 -0
  56. package/registry/r/dropdown-trigger.json +20 -0
  57. package/registry/r/empty-state.json +23 -0
  58. package/registry/r/field.json +23 -0
  59. package/registry/r/hover-card.json +23 -0
  60. package/registry/r/inline-citation.json +26 -0
  61. package/registry/r/input-group.json +23 -0
  62. package/registry/r/input.json +21 -0
  63. package/registry/r/item.json +23 -0
  64. package/registry/r/kbd.json +23 -0
  65. package/registry/r/label.json +21 -0
  66. package/registry/r/marker.json +23 -0
  67. package/registry/r/masked-input.json +21 -0
  68. package/registry/r/menubar.json +24 -0
  69. package/registry/r/message-scroller.json +26 -0
  70. package/registry/r/message.json +23 -0
  71. package/registry/r/modal.json +36 -0
  72. package/registry/r/model-selector.json +32 -0
  73. package/registry/r/multi-select.json +33 -0
  74. package/registry/r/native-select.json +23 -0
  75. package/registry/r/navigation-menu.json +24 -0
  76. package/registry/r/otp-group.json +16 -0
  77. package/registry/r/otp-slot.json +21 -0
  78. package/registry/r/otp.json +21 -0
  79. package/registry/r/pagination.json +33 -0
  80. package/registry/r/phone-number-input.json +34 -0
  81. package/registry/r/plan.json +23 -0
  82. package/registry/r/popover-content.json +21 -0
  83. package/registry/r/popover.json +18 -0
  84. package/registry/r/progress-circle.json +21 -0
  85. package/registry/r/progress.json +21 -0
  86. package/registry/r/prompt-input.json +23 -0
  87. package/registry/r/queue.json +23 -0
  88. package/registry/r/radio-group.json +26 -0
  89. package/registry/r/radio-item.json +26 -0
  90. package/registry/r/range-calendar.json +28 -0
  91. package/registry/r/reasoning.json +23 -0
  92. package/registry/r/resizable-panel-item.json +23 -0
  93. package/registry/r/resizable-panel.json +23 -0
  94. package/registry/r/resizable.json +21 -0
  95. package/registry/r/scroll-area.json +21 -0
  96. package/registry/r/segment.json +21 -0
  97. package/registry/r/select-group.json +21 -0
  98. package/registry/r/select-item.json +26 -0
  99. package/registry/r/select-separator.json +21 -0
  100. package/registry/r/select.json +32 -0
  101. package/registry/r/separator.json +21 -0
  102. package/registry/r/sheet-wrapper.json +31 -0
  103. package/registry/r/sheet.json +21 -0
  104. package/registry/r/shimmer.json +23 -0
  105. package/registry/r/sidebar.json +21 -0
  106. package/registry/r/skeleton.json +23 -0
  107. package/registry/r/slider.json +21 -0
  108. package/registry/r/sources.json +23 -0
  109. package/registry/r/spinner.json +23 -0
  110. package/registry/r/suggestion.json +23 -0
  111. package/registry/r/switch.json +23 -0
  112. package/registry/r/table.json +21 -0
  113. package/registry/r/tabs.json +23 -0
  114. package/registry/r/tag-input.json +25 -0
  115. package/registry/r/task.json +23 -0
  116. package/registry/r/textarea.json +21 -0
  117. package/registry/r/time-picker.json +24 -0
  118. package/registry/r/toaster.json +26 -0
  119. package/registry/r/toggle-group.json +25 -0
  120. package/registry/r/toggle.json +23 -0
  121. package/registry/r/tolle-cell.json +16 -0
  122. package/registry/r/tool.json +23 -0
  123. package/registry/r/tooltip.json +23 -0
  124. package/registry/r/tracker.json +25 -0
  125. package/registry/r/typography.json +23 -0
  126. package/registry/registry.json +2545 -0
  127. package/theme.css +230 -10
  128. package/types/tolle-ui.d.ts +7433 -823
package/theme.css CHANGED
@@ -34,14 +34,37 @@
34
34
  /* #ef4444 in RGB */
35
35
  --destructive-foreground: 250 250 250;
36
36
 
37
+ /* --- Status colors (success / warning / info) --- */
38
+ --success: 22 163 74;
39
+ /* green-600 */
40
+ --success-foreground: 255 255 255;
41
+ --warning: 217 119 6;
42
+ /* amber-600 */
43
+ --warning-foreground: 255 255 255;
44
+ --info: 37 99 235;
45
+ /* blue-600 */
46
+ --info-foreground: 255 255 255;
47
+
37
48
  /* --- UI Elements --- */
38
49
  --border: 228 228 231;
39
50
  /* #e4e4e7 in RGB */
40
51
  --input: 228 228 231;
41
- --ring: 96 165 250;
42
- /* #60a5fa in RGB - lighter blue */
52
+ --ring: var(--primary);
53
+ /* derives from primary color */
43
54
  --radius: 0.5rem;
44
55
 
56
+ /* --- Typography (themeable via the theme generator / ThemeService) --- */
57
+ --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
58
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
59
+ --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
60
+
61
+ /* --- Charts (themeable via the theme generator / ThemeService) --- */
62
+ --chart-1: 37 99 235;
63
+ --chart-2: 20 184 166;
64
+ --chart-3: 234 88 12;
65
+ --chart-4: 139 92 246;
66
+ --chart-5: 236 72 153;
67
+
45
68
  /* --- Shadows --- */
46
69
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
47
70
  --shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
@@ -75,10 +98,33 @@
75
98
  /* #7f1d1d in RGB */
76
99
  --destructive-foreground: 254 242 242;
77
100
 
101
+ /* --- Status colors (brighter for dark surfaces) --- */
102
+ --success: 74 222 128;
103
+ /* green-400 */
104
+ --success-foreground: 5 46 22;
105
+ --warning: 251 191 36;
106
+ /* amber-400 */
107
+ --warning-foreground: 66 32 6;
108
+ --info: 96 165 250;
109
+ /* blue-400 */
110
+ --info-foreground: 23 37 84;
111
+
78
112
  --border: 39 39 42;
79
113
  --input: 39 39 42;
80
- --ring: 147 197 253;
81
- /* #93c5fd in RGB - even lighter blue */
114
+ --ring: var(--primary);
115
+ /* derives from primary color */
116
+
117
+ /* Dark chart steps are SELECTED, not a lightened flip of the light ones: the
118
+ Tailwind-400 steps previously used here sat at OKLCH L 0.71–0.79, too bright
119
+ to read as distinct marks on a dark surface. These keep each series' hue
120
+ (blue, teal, orange, violet, pink) so a series holds its identity across
121
+ themes, re-stepped into the dark lightness band. Validated for lightness,
122
+ chroma, CVD separation and contrast. */
123
+ --chart-1: 85 140 255;
124
+ --chart-2: 14 169 152;
125
+ --chart-3: 235 97 36;
126
+ --chart-4: 153 115 254;
127
+ --chart-5: 234 79 154;
82
128
 
83
129
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
84
130
  --shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
@@ -96,7 +142,41 @@
96
142
 
97
143
  /* Base text color inheritance - THIS IS KEY */
98
144
  * {
99
- border-color: var(--border, #e4e4e7);
145
+ scrollbar-width: thin;
146
+ scrollbar-color: rgba(156, 163, 175, 0.3) transparent;
147
+ }
148
+
149
+ /*
150
+ * Default border color for every element that uses a bare `border` utility.
151
+ * Two bugs made bare borders render as a near-white `currentColor` line on dark
152
+ * overlays (calendars, popovers, dropdowns…):
153
+ * 1. `--border` is an RGB triplet ("39 39 42"), so it must be wrapped in rgb();
154
+ * used raw the declaration is invalid and silently dropped.
155
+ * 2. The docs pipeline emits `@tailwind base` a second time AFTER this file, so
156
+ * a plain `*` selector loses to preflight's gray-200 default by source order.
157
+ * The `html *` selector (specificity 0,0,1) beats preflight's `*` (0,0,0)
158
+ * regardless of order, while still yielding to any `border-<color>` utility (0,1,0).
159
+ */
160
+ html * {
161
+ border-color: rgb(var(--border, 228 228 231));
162
+ }
163
+
164
+ *::-webkit-scrollbar {
165
+ width: 5px;
166
+ height: 5px;
167
+ }
168
+
169
+ *::-webkit-scrollbar-track {
170
+ background: transparent;
171
+ }
172
+
173
+ *::-webkit-scrollbar-thumb {
174
+ background-color: rgba(156, 163, 175, 0.3);
175
+ border-radius: 20px;
176
+ }
177
+
178
+ *::-webkit-scrollbar-thumb:hover {
179
+ background-color: rgba(156, 163, 175, 0.5);
100
180
  }
101
181
 
102
182
  html {
@@ -104,8 +184,9 @@ html {
104
184
  }
105
185
 
106
186
  body {
107
- background-color: var(--background, #ffffff);
108
- color: var(--foreground, #0a0a0a);
187
+ background-color: rgb(var(--background));
188
+ color: rgb(var(--foreground));
189
+ font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif);
109
190
  -webkit-font-smoothing: antialiased;
110
191
  -moz-osx-font-smoothing: grayscale;
111
192
  font-feature-settings: "rlig" 1, "calt" 1;
@@ -113,7 +194,7 @@ body {
113
194
 
114
195
  /* Links */
115
196
  a {
116
- color: var(--primary, #2563eb);
197
+ color: rgb(var(--primary));
117
198
  text-underline-offset: 4px;
118
199
  }
119
200
 
@@ -122,8 +203,7 @@ a:hover {
122
203
  }
123
204
 
124
205
  /* Remix Icons */
125
- i[class^="ri-"],
126
- i[class*=" ri-"] {
206
+ :where(i[class^="ri-"], i[class*=" ri-"]) {
127
207
  display: inline-flex;
128
208
  align-items: center;
129
209
  justify-content: center;
@@ -310,6 +390,113 @@ i[class*=" ri-"] {
310
390
  }
311
391
  }
312
392
 
393
+ /* -------------------------------------------------------------------------- */
394
+ /* 5b. CHAT / TRANSCRIPT UTILITIES */
395
+ /* -------------------------------------------------------------------------- */
396
+ /*
397
+ * Deliberately OUTSIDE `@layer utilities`. Anything inside that layer is subject
398
+ * to Tailwind's content scan, and these classes are applied from library source
399
+ * (or by consumers in their own markup) that a consuming app's `content` globs
400
+ * may not cover — inside the layer they would be silently purged.
401
+ */
402
+
403
+ /*
404
+ * Scroll-aware edge fades.
405
+ *
406
+ * The fade is a `mask-image` on the scroll container itself, so the container's
407
+ * own pixels dissolve as they approach its padding-box edge. Long transcripts
408
+ * and chip rows therefore hint at more content with no overlay elements, no
409
+ * gradient pseudo-elements sitting on top of the background, and no scroll
410
+ * listeners to keep in sync. Because the mask travels with the scroller, it
411
+ * works the same in light and dark, and over any backdrop.
412
+ *
413
+ * Tune the fade depth per-element with `--scroll-fade-size`.
414
+ */
415
+ .scroll-fade,
416
+ .scroll-fade-y {
417
+ --scroll-fade-size: 1.5rem;
418
+ -webkit-mask-image: linear-gradient(to bottom,
419
+ transparent 0,
420
+ #000 var(--scroll-fade-size),
421
+ #000 calc(100% - var(--scroll-fade-size)),
422
+ transparent 100%);
423
+ mask-image: linear-gradient(to bottom,
424
+ transparent 0,
425
+ #000 var(--scroll-fade-size),
426
+ #000 calc(100% - var(--scroll-fade-size)),
427
+ transparent 100%);
428
+ }
429
+
430
+ .scroll-fade-x {
431
+ --scroll-fade-size: 1.5rem;
432
+ -webkit-mask-image: linear-gradient(to right,
433
+ transparent 0,
434
+ #000 var(--scroll-fade-size),
435
+ #000 calc(100% - var(--scroll-fade-size)),
436
+ transparent 100%);
437
+ mask-image: linear-gradient(to right,
438
+ transparent 0,
439
+ #000 var(--scroll-fade-size),
440
+ #000 calc(100% - var(--scroll-fade-size)),
441
+ transparent 100%);
442
+ }
443
+
444
+ /*
445
+ * Text shimmer for live status — "Thinking…", "Searching…".
446
+ *
447
+ * A gradient sweeps across the text itself via `background-clip: text`, rather
448
+ * than animating opacity, so the wording stays legible throughout. The gradient
449
+ * is built from the theme's own foreground tokens, so it tracks light and dark.
450
+ */
451
+ .shimmer {
452
+ background-image: linear-gradient(90deg,
453
+ rgb(var(--muted-foreground)) 0%,
454
+ rgb(var(--muted-foreground)) 40%,
455
+ rgb(var(--foreground)) 50%,
456
+ rgb(var(--muted-foreground)) 60%,
457
+ rgb(var(--muted-foreground)) 100%);
458
+ background-size: 200% 100%;
459
+ /*
460
+ * `no-repeat` was the actual bug: the gradient image is only 200% wide, so
461
+ * as `background-position` swept it across the text, whatever fraction of
462
+ * the text the (finite) image no longer reached had nothing behind the
463
+ * transparent fill — not dimmed, genuinely invisible. That showed up two
464
+ * ways: fully blank for a stretch once the image swept completely past
465
+ * the text, and, on every sweep, part of the text (whichever side the
466
+ * image had already vacated) rendering as if cut off. The gradient's
467
+ * first and last stops both resolve to the same muted-foreground colour,
468
+ * so tiling it seamlessly loops — repeating keeps the text fully covered,
469
+ * always at least muted, for the entire animation.
470
+ */
471
+ background-repeat: repeat;
472
+ -webkit-background-clip: text;
473
+ background-clip: text;
474
+ color: transparent;
475
+ -webkit-text-fill-color: transparent;
476
+ animation: tolle-shimmer 2.4s linear infinite;
477
+ }
478
+
479
+ @keyframes tolle-shimmer {
480
+ from {
481
+ background-position: 100% 0;
482
+ }
483
+
484
+ to {
485
+ background-position: -100% 0;
486
+ }
487
+ }
488
+
489
+ /* A sweeping highlight is exactly the motion this query exists to suppress: fall
490
+ back to flat muted text rather than a paused, half-transparent gradient. */
491
+ @media (prefers-reduced-motion: reduce) {
492
+ .shimmer {
493
+ animation: none;
494
+ background-image: none;
495
+ color: rgb(var(--muted-foreground));
496
+ -webkit-text-fill-color: currentColor;
497
+ }
498
+ }
499
+
313
500
  /* Remove default browser focus styles */
314
501
  tolle-textarea textarea:focus {
315
502
  outline: none !important;
@@ -411,4 +598,37 @@ tolle-input:focus-within {
411
598
  /* Error state ring color */
412
599
  .ring-destructive {
413
600
  --tw-ring-color: var(--destructive) !important;
601
+ }
602
+
603
+ /* In your global styles.css or tailwind.config.js if using Tailwind */
604
+ .rounded-sm {
605
+ border-radius: var(--radius-sm, 0.125rem);
606
+ }
607
+
608
+ .rounded {
609
+ border-radius: var(--radius, 0.25rem);
610
+ }
611
+
612
+ .rounded-md {
613
+ border-radius: var(--radius-md, 0.375rem);
614
+ }
615
+
616
+ .rounded-lg {
617
+ border-radius: var(--radius-lg, 0.5rem);
618
+ }
619
+
620
+ .rounded-xl {
621
+ border-radius: var(--radius-xl, 0.75rem);
622
+ }
623
+
624
+ .rounded-2xl {
625
+ border-radius: var(--radius-2xl, 1rem);
626
+ }
627
+
628
+ .rounded-3xl {
629
+ border-radius: var(--radius-3xl, 1.5rem);
630
+ }
631
+
632
+ .rounded-full {
633
+ border-radius: var(--radius-full, 9999px);
414
634
  }