@yuva-devlab/ui 2.0.0 → 2.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 (71) hide show
  1. package/dist/common.css +0 -40
  2. package/dist/components/badge/badge.css +31 -27
  3. package/dist/components/badge/badge.mdx +6 -4
  4. package/dist/components/chain-of-thought/chain-of-thought.css +72 -0
  5. package/dist/components/chain-of-thought/chain-of-thought.mdx +18 -0
  6. package/dist/components/checkpoint/checkpoint.css +54 -0
  7. package/dist/components/checkpoint/checkpoint.mdx +18 -0
  8. package/dist/components/code-block/code-block.css +84 -0
  9. package/dist/components/code-block/code-block.mdx +26 -0
  10. package/dist/components/confirmation/confirmation.css +75 -0
  11. package/dist/components/confirmation/confirmation.mdx +22 -0
  12. package/dist/components/context/context.css +80 -0
  13. package/dist/components/context/context.mdx +18 -0
  14. package/dist/components/data-table/data-table.css +71 -0
  15. package/dist/components/data-table/data-table.mdx +22 -0
  16. package/dist/components/file-tree/file-tree.css +58 -0
  17. package/dist/components/file-tree/file-tree.mdx +18 -0
  18. package/dist/components/input-number/input-number.css +95 -0
  19. package/dist/components/input-number/input-number.mdx +34 -0
  20. package/dist/components/kbd/kbd.css +78 -0
  21. package/dist/components/kbd/kbd.mdx +30 -0
  22. package/dist/components/legal-footer/legal-footer.css +98 -0
  23. package/dist/components/legal-footer/legal-footer.mdx +38 -0
  24. package/dist/components/message/message.css +89 -0
  25. package/dist/components/message/message.mdx +14 -0
  26. package/dist/components/model-selector/model-selector.css +138 -0
  27. package/dist/components/model-selector/model-selector.mdx +26 -0
  28. package/dist/components/multi-select/multi-select.css +212 -0
  29. package/dist/components/multi-select/multi-select.mdx +30 -0
  30. package/dist/components/password-input/password-input.css +21 -0
  31. package/dist/components/password-input/password-input.mdx +30 -0
  32. package/dist/components/plan/plan.css +106 -0
  33. package/dist/components/plan/plan.mdx +22 -0
  34. package/dist/components/popover/popover.css +0 -5
  35. package/dist/components/prompt-input/prompt-input.css +140 -0
  36. package/dist/components/prompt-input/prompt-input.mdx +22 -0
  37. package/dist/components/queue/queue.css +76 -0
  38. package/dist/components/queue/queue.mdx +18 -0
  39. package/dist/components/search-input/search-input.css +21 -0
  40. package/dist/components/search-input/search-input.mdx +30 -0
  41. package/dist/components/select/select.css +1 -1
  42. package/dist/components/sonner/sonner.css +68 -17
  43. package/dist/components/sonner/sonner.mdx +5 -3
  44. package/dist/components/sources/sources.css +105 -0
  45. package/dist/components/sources/sources.mdx +18 -0
  46. package/dist/components/stack-trace/stack-trace.css +105 -0
  47. package/dist/components/stack-trace/stack-trace.mdx +18 -0
  48. package/dist/components/subagent/subagent.css +70 -0
  49. package/dist/components/subagent/subagent.mdx +18 -0
  50. package/dist/components/suggestion/suggestion.css +52 -0
  51. package/dist/components/suggestion/suggestion.mdx +14 -0
  52. package/dist/components/terminal/terminal.css +60 -0
  53. package/dist/components/terminal/terminal.mdx +26 -0
  54. package/dist/components/test-results/test-results.css +108 -0
  55. package/dist/components/test-results/test-results.mdx +18 -0
  56. package/dist/components/tool-call/tool-call.css +111 -0
  57. package/dist/components/tool-call/tool-call.mdx +22 -0
  58. package/dist/components/trace/trace.css +100 -0
  59. package/dist/components/trace/trace.mdx +18 -0
  60. package/dist/components.css +2716 -333
  61. package/dist/index.cjs +3605 -793
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.cts +1065 -8
  64. package/dist/index.d.ts +1065 -8
  65. package/dist/index.js +3638 -842
  66. package/dist/index.js.map +1 -1
  67. package/dist/preset.css +0 -1
  68. package/dist/styles/common.css +0 -40
  69. package/dist/styles/components.css +2716 -333
  70. package/dist/styles/preset.css +0 -1
  71. package/package.json +4 -3
@@ -0,0 +1,22 @@
1
+ import { Meta, Title, Description, Canvas } from "@storybook/blocks";
2
+ import * as DataTableStories from "./data-table.stories";
3
+
4
+ <Meta of={DataTableStories} />
5
+
6
+ <Title />
7
+
8
+ # Data Table
9
+
10
+ Enterprise-grade data table uniting `@yuva-devlab/ui` Table and Pagination primitives with column sorting, customizable cell renderers, and empty state fallbacks.
11
+
12
+ ## Default with Pagination
13
+
14
+ <Canvas of={DataTableStories.Default} />
15
+
16
+ ## Static (No Pagination)
17
+
18
+ <Canvas of={DataTableStories.WithoutPagination} />
19
+
20
+ ## Empty State Fallback
21
+
22
+ <Canvas of={DataTableStories.Empty} />
@@ -0,0 +1,58 @@
1
+ .dl-file-tree {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ font-size: 0.8125rem;
6
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
7
+ user-select: none;
8
+ background-color: var(--card, var(--background));
9
+ border: 1px solid var(--border);
10
+ border-radius: var(--radius-md, 0.375rem);
11
+ padding: 0.375rem;
12
+ }
13
+
14
+ .dl-file-tree__node {
15
+ display: flex;
16
+ align-items: center;
17
+ gap: 0.375rem;
18
+ padding: 0.25rem 0.5rem;
19
+ border-radius: var(--radius-sm, 0.25rem);
20
+ cursor: pointer;
21
+ color: var(--muted-foreground);
22
+ transition: all 0.12s ease;
23
+ }
24
+
25
+ .dl-file-tree__node:hover {
26
+ background-color: var(--accent);
27
+ color: var(--accent-foreground);
28
+ }
29
+
30
+ .dl-file-tree__node--active {
31
+ background-color: var(--accent);
32
+ color: var(--foreground);
33
+ font-weight: 500;
34
+ }
35
+
36
+ .dl-file-tree__icon {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ width: 1rem;
41
+ height: 1rem;
42
+ flex-shrink: 0;
43
+ }
44
+
45
+ .dl-file-tree__name {
46
+ overflow: hidden;
47
+ text-overflow: ellipsis;
48
+ white-space: nowrap;
49
+ }
50
+
51
+ .dl-file-tree__children {
52
+ display: flex;
53
+ flex-direction: column;
54
+ position: relative;
55
+ margin-left: 0.75rem;
56
+ padding-left: 0.5rem;
57
+ border-left: 1px solid var(--border);
58
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as FileTreeStories from "./file-tree.stories";
3
+
4
+ <Meta of={FileTreeStories} />
5
+
6
+ <Title />
7
+
8
+ # File Tree
9
+
10
+ Interactive file and folder tree navigation structure for agent workspace inspection and code repositories.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={FileTreeStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,95 @@
1
+ .dl-input-number {
2
+ position: relative;
3
+ display: inline-flex;
4
+ align-items: center;
5
+ width: 100%;
6
+ max-width: 10rem;
7
+ height: var(--control-height-md, 2.25rem);
8
+ border-radius: var(--radius-md, 0.375rem);
9
+ border: 1px solid var(--input, var(--border));
10
+ background-color: var(--background);
11
+ color: var(--foreground);
12
+ font-size: 0.875rem;
13
+ transition:
14
+ border-color 0.15s ease,
15
+ box-shadow 0.15s ease;
16
+ overflow: hidden;
17
+ }
18
+
19
+ .dl-input-number:focus-within {
20
+ outline: none;
21
+ border-color: var(--ring);
22
+ box-shadow: 0 0 0 1px var(--ring);
23
+ }
24
+
25
+ .dl-input-number--disabled {
26
+ opacity: 0.5;
27
+ cursor: not-allowed;
28
+ background-color: var(--muted);
29
+ }
30
+
31
+ .dl-input-number__input {
32
+ flex: 1;
33
+ width: 100%;
34
+ height: 100%;
35
+ padding: 0 0.75rem;
36
+ background: transparent;
37
+ border: none;
38
+ color: inherit;
39
+ font-family: inherit;
40
+ font-size: inherit;
41
+ text-align: left;
42
+ }
43
+
44
+ .dl-input-number__input:focus {
45
+ outline: none;
46
+ }
47
+
48
+ .dl-input-number__controls {
49
+ display: flex;
50
+ flex-direction: column;
51
+ height: 100%;
52
+ width: 1.5rem;
53
+ border-left: 1px solid var(--border);
54
+ background-color: var(--secondary);
55
+ }
56
+
57
+ .dl-input-number__btn {
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ height: 50%;
62
+ width: 100%;
63
+ background: transparent;
64
+ border: none;
65
+ padding: 0;
66
+ cursor: pointer;
67
+ color: var(--muted-foreground);
68
+ transition:
69
+ color 0.15s ease,
70
+ background-color 0.15s ease;
71
+ }
72
+
73
+ .dl-input-number__btn:hover:not(:disabled) {
74
+ background-color: var(--accent);
75
+ color: var(--foreground);
76
+ }
77
+
78
+ .dl-input-number__btn:disabled {
79
+ opacity: 0.35;
80
+ cursor: not-allowed;
81
+ }
82
+
83
+ .dl-input-number__btn--up {
84
+ border-bottom: 1px solid var(--border);
85
+ }
86
+
87
+ .dl-input-number__prefix,
88
+ .dl-input-number__suffix {
89
+ display: flex;
90
+ align-items: center;
91
+ padding: 0 0.5rem;
92
+ color: var(--muted-foreground);
93
+ font-size: 0.75rem;
94
+ user-select: none;
95
+ }
@@ -0,0 +1,34 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as InputNumberStories from "./input-number.stories";
3
+
4
+ <Meta of={InputNumberStories} />
5
+
6
+ <Title />
7
+
8
+ # Input Number
9
+
10
+ Precision numeric input control with integrated stepper buttons, keyboard arrow controls, min/max guards, and prefix/suffix support.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={InputNumberStories.Default} />
15
+
16
+ ## With Min and Max Bounds
17
+
18
+ <Canvas of={InputNumberStories.WithMinMax} />
19
+
20
+ ## Decimal Precision & Step
21
+
22
+ <Canvas of={InputNumberStories.DecimalPrecision} />
23
+
24
+ ## Prefix and Suffix Units
25
+
26
+ <Canvas of={InputNumberStories.WithPrefixAndSuffix} />
27
+
28
+ ## Disabled State
29
+
30
+ <Canvas of={InputNumberStories.Disabled} />
31
+
32
+ ## Component Properties
33
+
34
+ <Controls />
@@ -0,0 +1,78 @@
1
+ .dl-kbd {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ font-family: var(
6
+ --font-mono,
7
+ ui-monospace,
8
+ SFMono-Regular,
9
+ Menlo,
10
+ Monaco,
11
+ Consolas,
12
+ monospace
13
+ );
14
+ font-weight: 500;
15
+ user-select: none;
16
+ pointer-events: none;
17
+ white-space: nowrap;
18
+ vertical-align: baseline;
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ /* ── Sizes ── */
23
+ .dl-kbd--sm {
24
+ min-width: 1.125rem;
25
+ height: 1.125rem;
26
+ padding: 0 0.25rem;
27
+ font-size: 0.625rem;
28
+ border-radius: var(--radius-sm, 0.25rem);
29
+ }
30
+
31
+ .dl-kbd--md {
32
+ min-width: 1.375rem;
33
+ height: 1.375rem;
34
+ padding: 0 0.375rem;
35
+ font-size: 0.6875rem;
36
+ border-radius: var(--radius-sm, 0.25rem);
37
+ }
38
+
39
+ .dl-kbd--lg {
40
+ min-width: 1.625rem;
41
+ height: 1.625rem;
42
+ padding: 0 0.5rem;
43
+ font-size: 0.75rem;
44
+ border-radius: var(--radius-md, 0.375rem);
45
+ }
46
+
47
+ /* ── Variants ── */
48
+ .dl-kbd--default {
49
+ background-color: var(--muted);
50
+ color: var(--muted-foreground);
51
+ border: 1px solid var(--border);
52
+ box-shadow: 0 1px 0 0 var(--border);
53
+ }
54
+
55
+ .dl-kbd--outline {
56
+ background-color: transparent;
57
+ color: var(--foreground);
58
+ border: 1px solid var(--border);
59
+ }
60
+
61
+ .dl-kbd--ghost {
62
+ background-color: transparent;
63
+ color: var(--muted-foreground);
64
+ border: none;
65
+ }
66
+
67
+ /* ── KbdGroup ── */
68
+ .dl-kbd-group {
69
+ display: inline-flex;
70
+ align-items: center;
71
+ gap: 0.25rem;
72
+ }
73
+
74
+ .dl-kbd-separator {
75
+ color: var(--muted-foreground);
76
+ font-size: 0.6875rem;
77
+ user-select: none;
78
+ }
@@ -0,0 +1,30 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as KbdStories from "./kbd.stories";
3
+
4
+ <Meta of={KbdStories} />
5
+
6
+ <Title />
7
+
8
+ # Kbd
9
+
10
+ Semantic keycap element and sequence container for displaying keyboard shortcuts and hotkeys.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={KbdStories.Default} />
15
+
16
+ ## Sizes
17
+
18
+ <Canvas of={KbdStories.Sizes} />
19
+
20
+ ## Variants
21
+
22
+ <Canvas of={KbdStories.Variants} />
23
+
24
+ ## Shortcut Combination Groups
25
+
26
+ <Canvas of={KbdStories.ShortcutGroup} />
27
+
28
+ ## Component Properties
29
+
30
+ <Controls />
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @file legal-footer.css
3
+ * @description Scoped styles for the LegalFooter component.
4
+ * Governed by semantic design tokens and W3C Cascade Layers.
5
+ */
6
+
7
+ .dl-legal-footer {
8
+ box-sizing: border-box;
9
+ color: var(--muted-foreground);
10
+ font-family: inherit;
11
+ }
12
+
13
+ .dl-legal-footer--login {
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ justify-content: center;
18
+ gap: 0.375rem;
19
+ width: 100%;
20
+ padding-top: 1rem;
21
+ padding-bottom: 1rem;
22
+ text-align: center;
23
+ font-size: 0.75rem;
24
+ line-height: 1rem;
25
+ }
26
+
27
+ .dl-legal-footer__links {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ flex-wrap: wrap;
32
+ gap: 0.75rem;
33
+ font-size: 0.75rem;
34
+ color: var(--muted-foreground);
35
+ }
36
+
37
+ .dl-legal-footer__app-name {
38
+ font-weight: 500;
39
+ color: var(--foreground);
40
+ }
41
+
42
+ .dl-legal-footer__divider {
43
+ opacity: 0.4;
44
+ user-select: none;
45
+ }
46
+
47
+ .dl-legal-footer__link {
48
+ color: var(--muted-foreground);
49
+ text-decoration: none;
50
+ transition: color 0.15s ease-in-out;
51
+ }
52
+
53
+ .dl-legal-footer__link:hover {
54
+ color: var(--foreground);
55
+ }
56
+
57
+ .dl-legal-footer__copyright {
58
+ margin: 0;
59
+ font-size: 0.6875rem;
60
+ opacity: 0.75;
61
+ }
62
+
63
+ .dl-legal-footer--sidebar {
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ width: 100%;
68
+ padding: 0.5rem 0.75rem;
69
+ font-size: 0.6875rem;
70
+ border-top: 1px solid color-mix(in oklab, var(--border) 40%, transparent);
71
+ color: var(--muted-foreground);
72
+ opacity: 0.8;
73
+ }
74
+
75
+ .dl-legal-footer--settings {
76
+ display: flex;
77
+ flex-direction: column;
78
+ gap: 0.25rem;
79
+ width: 100%;
80
+ font-size: 0.75rem;
81
+ }
82
+
83
+ .dl-legal-footer__meta-row {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: space-between;
87
+ font-weight: 500;
88
+ color: var(--foreground);
89
+ }
90
+
91
+ .dl-legal-footer__version-badge {
92
+ font-family: monospace;
93
+ font-size: 0.6875rem;
94
+ color: var(--muted-foreground);
95
+ background-color: color-mix(in oklab, var(--muted) 50%, transparent);
96
+ padding: 0.125rem 0.375rem;
97
+ border-radius: var(--radius-sm, 0.25rem);
98
+ }
@@ -0,0 +1,38 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as LegalFooterStories from "./legal-footer.stories";
3
+
4
+ <Meta of={LegalFooterStories} />
5
+
6
+ <Title />
7
+
8
+ # Legal Footer
9
+
10
+ Universal enterprise legal, copyright, and compliance footer. Dynamically adopts host application themes, OKLCH tokens, and dark mode palettes.
11
+
12
+ ## Login Screen Variant
13
+
14
+ Standard centered legal footer for authentication, single sign-on (SSO), and public landing views.
15
+
16
+ <Canvas of={LegalFooterStories.DefaultLogin} />
17
+
18
+ ## FinAI Branded Login
19
+
20
+ Shows host application name prefixing the legal navigation links.
21
+
22
+ <Canvas of={LegalFooterStories.FinAILogin} />
23
+
24
+ ## Sidebar Navigation Variant
25
+
26
+ Compact single-row footer designed for docking at the base of primary left-hand navigation rails.
27
+
28
+ <Canvas of={LegalFooterStories.SidebarVariant} />
29
+
30
+ ## Settings / About Platform Variant
31
+
32
+ Summary block suitable for Settings dialogs, About modals, and system telemetry drawers.
33
+
34
+ <Canvas of={LegalFooterStories.SettingsVariant} />
35
+
36
+ ## Component Properties
37
+
38
+ <Controls />
@@ -0,0 +1,89 @@
1
+ .dl-message {
2
+ display: flex;
3
+ gap: 0.75rem;
4
+ width: 100%;
5
+ padding: 0.75rem 0;
6
+ color: var(--foreground);
7
+ font-size: 0.875rem;
8
+ line-height: 1.5;
9
+ }
10
+
11
+ .dl-message--user {
12
+ flex-direction: row-reverse;
13
+ }
14
+
15
+ .dl-message__avatar {
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ width: 2rem;
20
+ height: 2rem;
21
+ border-radius: 9999px;
22
+ background-color: var(--secondary);
23
+ color: var(--secondary-foreground);
24
+ font-weight: 600;
25
+ font-size: 0.75rem;
26
+ flex-shrink: 0;
27
+ border: 1px solid var(--border);
28
+ }
29
+
30
+ .dl-message--assistant .dl-message__avatar {
31
+ background-color: color-mix(in oklch, var(--primary) 12%, transparent);
32
+ color: var(--primary);
33
+ border-color: color-mix(in oklch, var(--primary) 25%, transparent);
34
+ }
35
+
36
+ .dl-message__body {
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: 0.375rem;
40
+ max-width: 80%;
41
+ }
42
+
43
+ .dl-message--user .dl-message__body {
44
+ align-items: flex-end;
45
+ }
46
+
47
+ .dl-message__content {
48
+ border-radius: var(--radius-lg, 0.5rem);
49
+ padding: 0.625rem 0.875rem;
50
+ background-color: var(--card, var(--background));
51
+ border: 1px solid var(--border);
52
+ }
53
+
54
+ .dl-message--user .dl-message__content {
55
+ background-color: var(--primary);
56
+ color: var(--primary-foreground);
57
+ border-color: var(--primary);
58
+ }
59
+
60
+ .dl-message__actions {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 0.25rem;
64
+ opacity: 0.8;
65
+ transition: opacity 0.15s ease;
66
+ }
67
+
68
+ .dl-message:hover .dl-message__actions {
69
+ opacity: 1;
70
+ }
71
+
72
+ .dl-message__action-btn {
73
+ display: inline-flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ width: 1.5rem;
77
+ height: 1.5rem;
78
+ border-radius: var(--radius-sm, 0.25rem);
79
+ border: none;
80
+ background: transparent;
81
+ color: var(--muted-foreground);
82
+ cursor: pointer;
83
+ transition: all 0.15s ease;
84
+ }
85
+
86
+ .dl-message__action-btn:hover {
87
+ background-color: var(--secondary);
88
+ color: var(--foreground);
89
+ }
@@ -0,0 +1,14 @@
1
+ import { Meta, Title, Description, Canvas } from "@storybook/blocks";
2
+ import * as MessageStories from "./message.stories";
3
+
4
+ <Meta of={MessageStories} />
5
+
6
+ <Title />
7
+
8
+ # Message
9
+
10
+ Conversational turn wrapper for user, assistant, and system messages with avatar slots, message bubble styling, and action toolbars (copy, retry, feedback).
11
+
12
+ ## Interactive Chat Thread
13
+
14
+ <Canvas of={MessageStories.Thread} />