@kushagradhawan/kookie-ui 0.1.32 → 0.1.34

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 (120) hide show
  1. package/components.css +937 -458
  2. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  3. package/dist/cjs/components/_internal/base-button.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  5. package/dist/cjs/components/chatbar.d.ts +202 -0
  6. package/dist/cjs/components/chatbar.d.ts.map +1 -0
  7. package/dist/cjs/components/chatbar.js +2 -0
  8. package/dist/cjs/components/chatbar.js.map +7 -0
  9. package/dist/cjs/components/icon-button.d.ts.map +1 -1
  10. package/dist/cjs/components/icon-button.js +2 -2
  11. package/dist/cjs/components/icon-button.js.map +3 -3
  12. package/dist/cjs/components/icons.d.ts +6 -1
  13. package/dist/cjs/components/icons.d.ts.map +1 -1
  14. package/dist/cjs/components/icons.js +1 -1
  15. package/dist/cjs/components/icons.js.map +3 -3
  16. package/dist/cjs/components/index.d.ts +3 -0
  17. package/dist/cjs/components/index.d.ts.map +1 -1
  18. package/dist/cjs/components/index.js +1 -1
  19. package/dist/cjs/components/index.js.map +3 -3
  20. package/dist/cjs/components/popover.d.ts +13 -1
  21. package/dist/cjs/components/popover.d.ts.map +1 -1
  22. package/dist/cjs/components/popover.js +1 -1
  23. package/dist/cjs/components/popover.js.map +3 -3
  24. package/dist/cjs/components/sheet.d.ts +82 -0
  25. package/dist/cjs/components/sheet.d.ts.map +1 -0
  26. package/dist/cjs/components/sheet.js +2 -0
  27. package/dist/cjs/components/sheet.js.map +7 -0
  28. package/dist/cjs/components/shell.d.ts +180 -0
  29. package/dist/cjs/components/shell.d.ts.map +1 -0
  30. package/dist/cjs/components/shell.js +2 -0
  31. package/dist/cjs/components/shell.js.map +7 -0
  32. package/dist/cjs/components/sidebar.d.ts +4 -33
  33. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  34. package/dist/cjs/components/sidebar.js +1 -1
  35. package/dist/cjs/components/sidebar.js.map +3 -3
  36. package/dist/cjs/components/skeleton.d.ts.map +1 -1
  37. package/dist/cjs/components/skeleton.js +1 -1
  38. package/dist/cjs/components/skeleton.js.map +2 -2
  39. package/dist/cjs/helpers/inert.d.ts +1 -1
  40. package/dist/cjs/helpers/inert.d.ts.map +1 -1
  41. package/dist/cjs/helpers/inert.js +1 -1
  42. package/dist/cjs/helpers/inert.js.map +2 -2
  43. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  44. package/dist/esm/components/_internal/base-button.js +1 -1
  45. package/dist/esm/components/_internal/base-button.js.map +3 -3
  46. package/dist/esm/components/chatbar.d.ts +202 -0
  47. package/dist/esm/components/chatbar.d.ts.map +1 -0
  48. package/dist/esm/components/chatbar.js +2 -0
  49. package/dist/esm/components/chatbar.js.map +7 -0
  50. package/dist/esm/components/icon-button.d.ts.map +1 -1
  51. package/dist/esm/components/icon-button.js +2 -2
  52. package/dist/esm/components/icon-button.js.map +3 -3
  53. package/dist/esm/components/icons.d.ts +6 -1
  54. package/dist/esm/components/icons.d.ts.map +1 -1
  55. package/dist/esm/components/icons.js +1 -1
  56. package/dist/esm/components/icons.js.map +3 -3
  57. package/dist/esm/components/index.d.ts +3 -0
  58. package/dist/esm/components/index.d.ts.map +1 -1
  59. package/dist/esm/components/index.js +1 -1
  60. package/dist/esm/components/index.js.map +3 -3
  61. package/dist/esm/components/popover.d.ts +13 -1
  62. package/dist/esm/components/popover.d.ts.map +1 -1
  63. package/dist/esm/components/popover.js +1 -1
  64. package/dist/esm/components/popover.js.map +3 -3
  65. package/dist/esm/components/sheet.d.ts +82 -0
  66. package/dist/esm/components/sheet.d.ts.map +1 -0
  67. package/dist/esm/components/sheet.js +2 -0
  68. package/dist/esm/components/sheet.js.map +7 -0
  69. package/dist/esm/components/shell.d.ts +180 -0
  70. package/dist/esm/components/shell.d.ts.map +1 -0
  71. package/dist/esm/components/shell.js +2 -0
  72. package/dist/esm/components/shell.js.map +7 -0
  73. package/dist/esm/components/sidebar.d.ts +4 -33
  74. package/dist/esm/components/sidebar.d.ts.map +1 -1
  75. package/dist/esm/components/sidebar.js +1 -1
  76. package/dist/esm/components/sidebar.js.map +3 -3
  77. package/dist/esm/components/skeleton.d.ts.map +1 -1
  78. package/dist/esm/components/skeleton.js.map +2 -2
  79. package/dist/esm/helpers/inert.d.ts +1 -1
  80. package/dist/esm/helpers/inert.d.ts.map +1 -1
  81. package/dist/esm/helpers/inert.js +1 -1
  82. package/dist/esm/helpers/inert.js.map +2 -2
  83. package/package.json +2 -1
  84. package/src/components/_internal/base-button.tsx +8 -0
  85. package/src/components/_internal/base-card.css +18 -18
  86. package/src/components/_internal/base-dialog.css +11 -49
  87. package/src/components/_internal/base-menu.css +2 -2
  88. package/src/components/_internal/base-sidebar-menu.css +3 -3
  89. package/src/components/accordion.css +6 -6
  90. package/src/components/animations.css +65 -81
  91. package/src/components/callout.css +3 -3
  92. package/src/components/chatbar.css +214 -0
  93. package/src/components/chatbar.tsx +1181 -0
  94. package/src/components/icon-button.tsx +11 -0
  95. package/src/components/icons.tsx +97 -2
  96. package/src/components/image.css +3 -3
  97. package/src/components/index.css +3 -0
  98. package/src/components/index.tsx +3 -0
  99. package/src/components/popover.css +53 -8
  100. package/src/components/popover.tsx +180 -2
  101. package/src/components/scroll-area.css +3 -3
  102. package/src/components/segmented-control.css +3 -3
  103. package/src/components/sheet.css +90 -0
  104. package/src/components/sheet.tsx +247 -0
  105. package/src/components/shell.css +137 -0
  106. package/src/components/shell.tsx +1032 -0
  107. package/src/components/sidebar.css +55 -268
  108. package/src/components/sidebar.tsx +40 -262
  109. package/src/components/skeleton.tsx +1 -2
  110. package/src/components/text-area.css +6 -5
  111. package/src/components/tooltip.css +2 -2
  112. package/src/helpers/inert.ts +3 -3
  113. package/src/styles/tokens/constants.css +6 -3
  114. package/src/styles/tokens/index.css +1 -0
  115. package/src/styles/tokens/radius.css +7 -2
  116. package/src/styles/tokens/space.css +6 -0
  117. package/src/styles/tokens/transition.css +91 -46
  118. package/styles.css +998 -496
  119. package/tokens/base.css +57 -35
  120. package/tokens.css +61 -38
@@ -1,92 +1,28 @@
1
- @keyframes rt-fade-in {
2
- from {
3
- opacity: 0;
4
- }
5
- to {
6
- opacity: 1;
7
- }
1
+ @keyframes rt-fade-in {
2
+ from { opacity: 0; }
3
+ to { opacity: 1; }
8
4
  }
9
5
 
10
6
  @keyframes rt-fade-out {
11
- from {
12
- opacity: 1;
13
- }
14
- to {
15
- opacity: 0;
16
- }
7
+ from { opacity: 1; }
8
+ to { opacity: 0; }
17
9
  }
18
10
 
19
- @keyframes rt-slide-from-top {
20
- from {
21
- transform: translateY(4px) scale(0.97);
22
- }
23
- to {
24
- transform: translateY(0) scale(1);
25
- }
26
- }
11
+ @keyframes rt-slide-from-top { from { transform: translateY(4px) scale(0.97); opacity: 0.5; } to { transform: translateY(0) scale(1); opacity: 1; } }
27
12
 
28
- @keyframes rt-slide-to-top {
29
- from {
30
- transform: translateY(0) scale(1);
31
- }
32
- to {
33
- transform: translateY(4px) scale(0.97);
34
- }
35
- }
13
+ @keyframes rt-slide-to-top { from { transform: translateY(0) scale(1); opacity: 1; } to { transform: translateY(4px) scale(0.97); opacity: 0.5; } }
36
14
 
37
- @keyframes rt-slide-from-bottom {
38
- from {
39
- transform: translateY(-4px) scale(0.97);
40
- }
41
- to {
42
- transform: translateY(0) scale(1);
43
- }
44
- }
15
+ @keyframes rt-slide-from-bottom { from { transform: translateY(-4px) scale(0.97); opacity: 0.5; } to { transform: translateY(0) scale(1); opacity: 1; } }
45
16
 
46
- @keyframes rt-slide-to-bottom {
47
- from {
48
- transform: translateY(0) scale(1);
49
- }
50
- to {
51
- transform: translateY(-4px) scale(0.97);
52
- }
53
- }
17
+ @keyframes rt-slide-to-bottom { from { transform: translateY(0) scale(1); opacity: 1; } to { transform: translateY(-4px) scale(0.97); opacity: 0.5; } }
54
18
 
55
- @keyframes rt-slide-from-left {
56
- from {
57
- transform: translateX(4px) scale(0.97);
58
- }
59
- to {
60
- transform: translateX(0) scale(1);
61
- }
62
- }
19
+ @keyframes rt-slide-from-left { from { transform: translateX(4px) scale(0.97); opacity: 0.5; } to { transform: translateX(0) scale(1); opacity: 1; } }
63
20
 
64
- @keyframes rt-slide-to-left {
65
- from {
66
- transform: translateX(0) scale(1);
67
- }
68
- to {
69
- transform: translateX(4px) scale(0.97);
70
- }
71
- }
21
+ @keyframes rt-slide-to-left { from { transform: translateX(0) scale(1); opacity: 1; } to { transform: translateX(4px) scale(0.97); opacity: 0.5; } }
72
22
 
73
- @keyframes rt-slide-from-right {
74
- from {
75
- transform: translateX(-4px) scale(0.97);
76
- }
77
- to {
78
- transform: translateX(0) scale(1);
79
- }
80
- }
23
+ @keyframes rt-slide-from-right { from { transform: translateX(-4px) scale(0.97); opacity: 0.5; } to { transform: translateX(0) scale(1); opacity: 1; } }
81
24
 
82
- @keyframes rt-slide-to-right {
83
- from {
84
- transform: translateX(0) scale(1);
85
- }
86
- to {
87
- transform: translateX(-4px) scale(0.97);
88
- }
89
- }
25
+ @keyframes rt-slide-to-right { from { transform: translateX(0) scale(1); opacity: 1; } to { transform: translateX(-4px) scale(0.97); opacity: 0.5; } }
90
26
 
91
27
  @keyframes rt-tab-indicator-appear {
92
28
  0% {
@@ -104,10 +40,10 @@
104
40
 
105
41
  @media (prefers-reduced-motion: no-preference) {
106
42
  .rt-PopperContent {
107
- animation-timing-function: var(--ease-3);
43
+ animation-timing-function: var(--motion-spring-snappy);
108
44
 
109
45
  &:where([data-state='open']) {
110
- animation-duration: var(--duration-2);
46
+ animation-duration: var(--motion-duration-small);
111
47
 
112
48
  /* Direction-aware animations (for dropdown menus with data-side) */
113
49
  &:where([data-side='top']) {
@@ -130,7 +66,7 @@
130
66
  }
131
67
 
132
68
  &:where([data-state='closed']) {
133
- animation-duration: var(--duration-1);
69
+ animation-duration: var(--motion-duration-small);
134
70
 
135
71
  /* Direction-aware animations (for dropdown menus with data-side) */
136
72
  &:where([data-side='top']) {
@@ -155,6 +91,54 @@
155
91
 
156
92
  /* Tab indicator animations - only when motion is preferred */
157
93
  .rt-BaseTabListTrigger:where([data-state='active'], [data-active])::before {
158
- animation: rt-tab-indicator-appear var(--duration-2) var(--ease-3);
94
+ animation: rt-tab-indicator-appear var(--motion-duration-small) var(--motion-spring-snappy);
159
95
  }
160
96
  }
97
+
98
+ /* Dialog keyframes (centralized) */
99
+ @keyframes rt-dialog-overlay-no-op {
100
+ from { opacity: 1; }
101
+ to { opacity: 1; }
102
+ }
103
+ @keyframes rt-dialog-content-show {
104
+ from { opacity: 0; transform: translateY(5px) scale(0.97); }
105
+ to { opacity: 1; transform: translateY(0px) scale(1); }
106
+ }
107
+ @keyframes rt-dialog-content-hide {
108
+ from { opacity: 1; transform: translateY(0px) scale(1); }
109
+ to { opacity: 0; transform: translateY(5px) scale(0.99); }
110
+ }
111
+
112
+ /* Sheet keyframes (centralized, off-screen slide) */
113
+ @keyframes rt-sheet-open-from-start {
114
+ from { transform: translate3d(calc(-1 * var(--sheet-slide-distance)), 0, 0); }
115
+ to { transform: translate3d(0, 0, 0); }
116
+ }
117
+ @keyframes rt-sheet-close-to-start {
118
+ from { transform: translate3d(0, 0, 0); }
119
+ to { transform: translate3d(calc(-1 * var(--sheet-slide-distance)), 0, 0); }
120
+ }
121
+ @keyframes rt-sheet-open-from-end {
122
+ from { transform: translate3d(var(--sheet-slide-distance), 0, 0); }
123
+ to { transform: translate3d(0, 0, 0); }
124
+ }
125
+ @keyframes rt-sheet-close-to-end {
126
+ from { transform: translate3d(0, 0, 0); }
127
+ to { transform: translate3d(var(--sheet-slide-distance), 0, 0); }
128
+ }
129
+ @keyframes rt-sheet-open-from-top {
130
+ from { transform: translate3d(0, calc(-1 * var(--sheet-slide-distance)), 0); }
131
+ to { transform: translate3d(0, 0, 0); }
132
+ }
133
+ @keyframes rt-sheet-close-to-top {
134
+ from { transform: translate3d(0, 0, 0); }
135
+ to { transform: translate3d(0, calc(-1 * var(--sheet-slide-distance)), 0); }
136
+ }
137
+ @keyframes rt-sheet-open-from-bottom {
138
+ from { transform: translate3d(0, var(--sheet-slide-distance), 0); }
139
+ to { transform: translate3d(0, 0, 0); }
140
+ }
141
+ @keyframes rt-sheet-close-to-bottom {
142
+ from { transform: translate3d(0, 0, 0); }
143
+ to { transform: translate3d(0, var(--sheet-slide-distance), 0); }
144
+ }
@@ -79,7 +79,7 @@
79
79
  row-gap: var(--space-2);
80
80
  column-gap: var(--space-2);
81
81
  padding: var(--space-3);
82
- border-radius: var(--radius-3);
82
+ border-radius: var(--radius-1);
83
83
  --callout-icon-height: var(--line-height-1);
84
84
  --callout-icon-size: var(--content-icon-size-1);
85
85
  }
@@ -87,7 +87,7 @@
87
87
  row-gap: var(--space-2);
88
88
  column-gap: var(--space-3);
89
89
  padding: var(--space-4);
90
- border-radius: var(--radius-4);
90
+ border-radius: var(--radius-2);
91
91
  --callout-icon-height: var(--line-height-2);
92
92
  --callout-icon-size: var(--content-icon-size-2);
93
93
  }
@@ -95,7 +95,7 @@
95
95
  row-gap: var(--space-3);
96
96
  column-gap: var(--space-4);
97
97
  padding: var(--space-5);
98
- border-radius: var(--radius-5);
98
+ border-radius: var(--radius-3);
99
99
  --callout-icon-height: var(--line-height-3);
100
100
  --callout-icon-size: var(--content-icon-size-3);
101
101
  }
@@ -0,0 +1,214 @@
1
+ /* Container */
2
+ .rt-ChatbarField {
3
+ position: relative;
4
+ width: 100%;
5
+ min-width: 0;
6
+ }
7
+
8
+ /* Defaults */
9
+ .rt-ChatbarRoot {
10
+ --chatbar-attachment-thumb: var(--space-8);
11
+ }
12
+
13
+ /* Unstyled textarea (reset) */
14
+ .rt-ChatbarInput {
15
+ display: block;
16
+ width: 100%;
17
+ min-width: 0;
18
+ resize: none;
19
+ border: 0;
20
+ outline: 0;
21
+ background: transparent;
22
+ padding: 0;
23
+ margin: 0;
24
+ color: inherit;
25
+ font: inherit;
26
+ line-height: inherit;
27
+ text-align: start;
28
+ transition: height 150ms ease-out;
29
+ }
30
+
31
+ /* Main container - flex layout */
32
+ .rt-ChatbarCard :where(.rt-ChatbarGrid) {
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: var(--space-4);
36
+ width: 100%;
37
+ }
38
+
39
+ /* Compact state - horizontal flex */
40
+ .rt-ChatbarRoot:where([data-state="closed"]) :where(.rt-ChatbarGrid) {
41
+ flex-direction: row;
42
+ align-items: center;
43
+ flex-wrap: wrap;
44
+ }
45
+
46
+ /* In compact mode, keep attachments on a dedicated row above inline content */
47
+ .rt-ChatbarRoot:where([data-state="closed"]) :where(.rt-ChatbarAttachmentsRow) {
48
+ flex-basis: 100%;
49
+ order: -1;
50
+ }
51
+
52
+ /* Textarea flex behavior */
53
+ .rt-ChatbarTextarea {
54
+ flex: 1;
55
+ min-width: 0;
56
+ }
57
+
58
+ /* Send button smooth transitions */
59
+ .rt-ChatbarSend {
60
+ transition: opacity 150ms ease-in-out;
61
+ }
62
+
63
+ /* Row visibility and layout */
64
+ .rt-ChatbarRoot:where([data-state="closed"]) :where(.rt-ChatbarRow) { display: none; }
65
+ .rt-ChatbarRoot:where([data-state="open"]) :where(.rt-ChatbarRow) {
66
+ display: block;
67
+ width: 100%;
68
+ }
69
+
70
+ /* Attachments row */
71
+ .rt-ChatbarAttachmentsRow {
72
+ /* ScrollArea needs a defined width to enable scrolling */
73
+ width: 100%;
74
+ }
75
+
76
+ /* ScrollArea radius scaling */
77
+ .rt-ChatbarScrollArea {
78
+ border-radius: var(--chatbar-attachments-radius);
79
+ }
80
+
81
+ /* Hide scrollbars completely */
82
+ .rt-ChatbarScrollArea :where(.rt-ScrollAreaScrollbar) {
83
+ display: none;
84
+ }
85
+
86
+ /* Attachment tile now uses Card + Flex, no custom layout needed */
87
+
88
+ .rt-ChatbarAttachmentPreview {
89
+ height: var(--chatbar-attachment-thumb);
90
+ width: var(--chatbar-attachment-thumb);
91
+ min-width: var(--chatbar-attachment-thumb);
92
+ flex-shrink: 0;
93
+ border-radius: var(--radius-1);
94
+ overflow: hidden;
95
+ display: inline-flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ background: var(--gray-a3);
99
+ }
100
+
101
+ .rt-ChatbarAttachmentImage {
102
+ height: 100%;
103
+ width: auto;
104
+ object-fit: contain;
105
+ max-width: none;
106
+ }
107
+
108
+ /* PaperclipIcon handles its own sizing via IconButton */
109
+
110
+ .rt-ChatbarAttachment {
111
+ position: relative;
112
+ }
113
+
114
+ .rt-ChatbarAttachmentRemove {
115
+ position: absolute;
116
+ top: var(--chatbar-remove-offset);
117
+ right: var(--chatbar-remove-offset);
118
+ }
119
+
120
+ /* Text components handle styling, no custom classes needed */
121
+
122
+ /* Container widths */
123
+ .rt-ChatbarCard {
124
+ width: 100%;
125
+ transition: all var(--motion-duration-small) var(--motion-spring-snappy);
126
+ }
127
+
128
+ /* Dropzone states */
129
+ .rt-ChatbarRoot {
130
+ transition: outline var(--motion-duration-small) var(--motion-spring-snappy);
131
+ }
132
+
133
+ /* Drop overlay */
134
+ .rt-ChatbarDropOverlay {
135
+ position: absolute;
136
+ top: 0;
137
+ left: 0;
138
+ right: 0;
139
+ bottom: 0;
140
+ background: var(--gray-a3);
141
+ border-radius: inherit;
142
+ display: flex;
143
+ align-items: center;
144
+ justify-content: center;
145
+ z-index: 10;
146
+ animation: rt-fade-in var(--motion-duration-small) var(--motion-spring-snappy);
147
+ }
148
+
149
+ .rt-ChatbarDropContent {
150
+ display: flex;
151
+ flex-direction: column;
152
+ align-items: center;
153
+ gap: var(--space-2);
154
+ color: var(--accent-11);
155
+ }
156
+
157
+ .rt-ChatbarDropIcon {
158
+ width: var(--space-6);
159
+ height: var(--space-6);
160
+ }
161
+
162
+
163
+ /* Inline slot positioning */
164
+ .rt-ChatbarInlineStart,
165
+ .rt-ChatbarInlineEnd {
166
+ flex-shrink: 0;
167
+ display: inline-flex;
168
+ align-items: center;
169
+ gap: var(--space-2);
170
+ }
171
+
172
+ /* Row slot positioning */
173
+ .rt-ChatbarRowStart {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ gap: var(--space-2);
177
+ flex-shrink: 0;
178
+ }
179
+
180
+ .rt-ChatbarRowEnd {
181
+ display: inline-flex;
182
+ align-items: center;
183
+ gap: var(--space-2);
184
+ flex-shrink: 0;
185
+ margin-left: auto;
186
+ }
187
+
188
+ /* Size-based font sizing for chatbar */
189
+ @breakpoints {
190
+ .rt-ChatbarRoot {
191
+ &:where(.rt-r-size-1) {
192
+ font-size: var(--font-size-1);
193
+ line-height: var(--line-height-1);
194
+ --chatbar-attachment-thumb: var(--space-8);
195
+ --chatbar-remove-offset: var(--space-1);
196
+ --chatbar-attachments-radius: min(var(--radius-5), calc(var(--radius-1) + var(--space-1)));
197
+ }
198
+ &:where(.rt-r-size-2) {
199
+ font-size: var(--font-size-2);
200
+ line-height: var(--line-height-2);
201
+ --chatbar-attachment-thumb: var(--space-9);
202
+ --chatbar-remove-offset: var(--space-2);
203
+ --chatbar-attachments-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
204
+ }
205
+ &:where(.rt-r-size-3) {
206
+ font-size: var(--font-size-3);
207
+ line-height: var(--line-height-3);
208
+ --chatbar-attachment-thumb: var(--space-9);
209
+ --chatbar-remove-offset: var(--space-3);
210
+ --chatbar-attachments-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
211
+ }
212
+ }
213
+ }
214
+