@brijbyte/agentic-ui 0.0.1 → 0.0.2

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 (135) hide show
  1. package/README.md +183 -111
  2. package/dist/accordion/accordion.css +6 -10
  3. package/dist/accordion/accordion.module.js.map +1 -1
  4. package/dist/alert-dialog/alert-dialog.css +84 -0
  5. package/dist/alert-dialog/alert-dialog.d.ts +44 -0
  6. package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
  7. package/dist/alert-dialog/alert-dialog.js +46 -0
  8. package/dist/alert-dialog/alert-dialog.js.map +1 -0
  9. package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
  10. package/dist/alert-dialog/alert-dialog.module.js +14 -0
  11. package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
  12. package/dist/alert-dialog/index.d.ts +3 -0
  13. package/dist/alert-dialog/index.js +4 -0
  14. package/dist/alert-dialog/parts.d.ts +28 -0
  15. package/dist/alert-dialog/parts.d.ts.map +1 -0
  16. package/dist/alert-dialog/parts.js +62 -0
  17. package/dist/alert-dialog/parts.js.map +1 -0
  18. package/dist/badge/badge.css +3 -7
  19. package/dist/badge/badge.module.js.map +1 -1
  20. package/dist/button/button.css +14 -14
  21. package/dist/button/button.module.js.map +1 -1
  22. package/dist/card/card.css +5 -9
  23. package/dist/card/card.module.js.map +1 -1
  24. package/dist/checkbox/checkbox.css +3 -7
  25. package/dist/checkbox/checkbox.module.js.map +1 -1
  26. package/dist/collapsible/collapsible.css +7 -11
  27. package/dist/collapsible/collapsible.module.js.map +1 -1
  28. package/dist/context-menu/context-menu.css +151 -0
  29. package/dist/context-menu/context-menu.d.ts +36 -0
  30. package/dist/context-menu/context-menu.d.ts.map +1 -0
  31. package/dist/context-menu/context-menu.js +54 -0
  32. package/dist/context-menu/context-menu.js.map +1 -0
  33. package/dist/context-menu/context-menu.module.css.d.ts +2 -0
  34. package/dist/context-menu/context-menu.module.js +18 -0
  35. package/dist/context-menu/context-menu.module.js.map +1 -0
  36. package/dist/context-menu/index.d.ts +3 -0
  37. package/dist/context-menu/index.js +4 -0
  38. package/dist/context-menu/parts.d.ts +38 -0
  39. package/dist/context-menu/parts.d.ts.map +1 -0
  40. package/dist/context-menu/parts.js +91 -0
  41. package/dist/context-menu/parts.js.map +1 -0
  42. package/dist/dialog/dialog.css +27 -22
  43. package/dist/dialog/dialog.d.ts +8 -0
  44. package/dist/dialog/dialog.d.ts.map +1 -1
  45. package/dist/dialog/dialog.js +7 -4
  46. package/dist/dialog/dialog.js.map +1 -1
  47. package/dist/dialog/dialog.module.js +2 -0
  48. package/dist/dialog/dialog.module.js.map +1 -1
  49. package/dist/drawer/drawer.css +9 -13
  50. package/dist/drawer/drawer.module.js.map +1 -1
  51. package/dist/index.css +1630 -1353
  52. package/dist/index.d.ts +24 -18
  53. package/dist/index.js +10 -1
  54. package/dist/input/input.css +5 -9
  55. package/dist/input/input.module.js.map +1 -1
  56. package/dist/layer-order.css +22 -0
  57. package/dist/menu/menu.css +13 -17
  58. package/dist/menu/menu.module.js.map +1 -1
  59. package/dist/number-field/number-field.css +12 -16
  60. package/dist/number-field/number-field.module.js.map +1 -1
  61. package/dist/progress/progress.css +1 -5
  62. package/dist/progress/progress.module.js.map +1 -1
  63. package/dist/reset.css +6 -6
  64. package/dist/select/select.css +14 -16
  65. package/dist/select/select.d.ts +5 -2
  66. package/dist/select/select.d.ts.map +1 -1
  67. package/dist/select/select.js +11 -2
  68. package/dist/select/select.js.map +1 -1
  69. package/dist/select/select.module.js.map +1 -1
  70. package/dist/separator/separator.css +1 -5
  71. package/dist/separator/separator.module.js.map +1 -1
  72. package/dist/slider/index.d.ts +3 -0
  73. package/dist/slider/index.js +4 -0
  74. package/dist/slider/parts.d.ts +38 -0
  75. package/dist/slider/parts.d.ts.map +1 -0
  76. package/dist/slider/parts.js +69 -0
  77. package/dist/slider/parts.js.map +1 -0
  78. package/dist/slider/slider.css +97 -0
  79. package/dist/slider/slider.d.ts +38 -0
  80. package/dist/slider/slider.d.ts.map +1 -0
  81. package/dist/slider/slider.js +41 -0
  82. package/dist/slider/slider.js.map +1 -0
  83. package/dist/slider/slider.module.css.d.ts +2 -0
  84. package/dist/slider/slider.module.js +15 -0
  85. package/dist/slider/slider.module.js.map +1 -0
  86. package/dist/styles/reset.css +6 -6
  87. package/dist/styles/tokens.css +73 -71
  88. package/dist/switch/switch.css +2 -6
  89. package/dist/switch/switch.module.js.map +1 -1
  90. package/dist/tabs/tabs.css +5 -9
  91. package/dist/tabs/tabs.module.js.map +1 -1
  92. package/dist/tailwind-theme.css +23 -23
  93. package/dist/toast/toast.css +11 -15
  94. package/dist/toast/toast.module.js.map +1 -1
  95. package/dist/tokens.css +79 -75
  96. package/dist/tooltip/tooltip.css +7 -11
  97. package/dist/tooltip/tooltip.module.js.map +1 -1
  98. package/package.json +17 -1
  99. package/src/accordion/accordion.module.css +6 -20
  100. package/src/alert-dialog/alert-dialog.module.css +91 -0
  101. package/src/alert-dialog/alert-dialog.tsx +69 -0
  102. package/src/alert-dialog/index.ts +7 -0
  103. package/src/alert-dialog/parts.tsx +73 -0
  104. package/src/badge/badge.module.css +3 -13
  105. package/src/button/button.module.css +15 -51
  106. package/src/card/card.module.css +5 -16
  107. package/src/checkbox/checkbox.module.css +3 -14
  108. package/src/collapsible/collapsible.module.css +7 -20
  109. package/src/context-menu/context-menu.module.css +168 -0
  110. package/src/context-menu/context-menu.tsx +75 -0
  111. package/src/context-menu/index.ts +21 -0
  112. package/src/context-menu/parts.tsx +99 -0
  113. package/src/dialog/dialog.module.css +26 -33
  114. package/src/dialog/dialog.tsx +14 -1
  115. package/src/drawer/drawer.module.css +9 -58
  116. package/src/index.ts +48 -0
  117. package/src/input/input.module.css +5 -21
  118. package/src/menu/menu.module.css +13 -43
  119. package/src/number-field/number-field.module.css +12 -28
  120. package/src/progress/progress.module.css +1 -10
  121. package/src/select/select.module.css +14 -35
  122. package/src/select/select.tsx +14 -5
  123. package/src/separator/separator.module.css +1 -5
  124. package/src/slider/index.ts +14 -0
  125. package/src/slider/parts.tsx +90 -0
  126. package/src/slider/slider.module.css +110 -0
  127. package/src/slider/slider.tsx +68 -0
  128. package/src/styles/layer-order.css +22 -0
  129. package/src/styles/reset.css +6 -6
  130. package/src/styles/tailwind-theme.css +23 -23
  131. package/src/styles/tokens.css +79 -75
  132. package/src/switch/switch.module.css +2 -12
  133. package/src/tabs/tabs.module.css +5 -18
  134. package/src/toast/toast.module.css +11 -51
  135. package/src/tooltip/tooltip.module.css +7 -18
package/dist/tokens.css CHANGED
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * @brijbyte/agentic-ui — Design Tokens
3
3
  *
4
- * macOS/iOS-inspired developer-focused design system.
4
+ * developer-focused design system, loosely inspired by native desktop and mobile UI.
5
5
  * Monospace-first, semantic color tokens, supports light & dark modes.
6
6
  */
7
- @layer base {
7
+
8
+ /* Establish layer order — must come before any @layer usage */
9
+ @layer theme, base, components, utilities;
10
+
11
+ @layer theme {
8
12
  :root {
9
13
  /* ─── Typography ──────────────────────────────────────────────── */
10
14
  /*
@@ -125,35 +129,35 @@
125
129
  [data-theme="light"] {
126
130
  color-scheme: light;
127
131
 
128
- /* Background layers (macOS vibrancy-inspired) */
129
- --color-bg-base: #f5f5f5;
130
- --color-bg-elevated: #ffffff;
131
- --color-bg-sunken: #ebebeb;
132
- --color-bg-overlay: rgba(255, 255, 255, 0.92);
133
- --color-bg-sidebar: rgba(246, 246, 246, 0.95);
132
+ /* Background layers (inspired by system vibrancy) */
133
+ --color-canvas: #f0eff0;
134
+ --color-elevated: #fafafa;
135
+ --color-sunken: #e8e7e8;
136
+ --color-overlay: rgba(250, 250, 250, 0.92);
137
+ --color-sidebar: rgba(244, 243, 244, 0.96);
134
138
 
135
139
  /* Surface (card/panel backgrounds) */
136
- --color-surface-1: #ffffff;
137
- --color-surface-2: #f9f9f9;
138
- --color-surface-3: #f4f4f4;
139
- --color-surface-hover: rgba(0, 0, 0, 0.04);
140
- --color-surface-active: rgba(0, 0, 0, 0.07);
141
- --color-surface-selected: rgba(0, 120, 212, 0.1);
140
+ --color-surface-1: #fafafa;
141
+ --color-surface-2: #f4f3f4;
142
+ --color-surface-3: #eeeded;
143
+ --color-hover: rgba(0, 0, 0, 0.04);
144
+ --color-active: rgba(0, 0, 0, 0.07);
145
+ --color-selected: rgba(0, 120, 212, 0.1);
142
146
 
143
147
  /* Text */
144
- --color-text-primary: rgba(0, 0, 0, 0.88);
145
- --color-text-secondary: rgba(0, 0, 0, 0.55);
146
- --color-text-tertiary: rgba(0, 0, 0, 0.36);
147
- --color-text-disabled: rgba(0, 0, 0, 0.24);
148
- --color-text-inverse: rgba(255, 255, 255, 0.95);
149
- --color-text-on-accent: #ffffff;
150
- --color-text-code: #0f766e;
148
+ --color-primary: rgba(0, 0, 0, 0.88);
149
+ --color-secondary: rgba(0, 0, 0, 0.55);
150
+ --color-tertiary: rgba(0, 0, 0, 0.36);
151
+ --color-disabled: rgba(0, 0, 0, 0.24);
152
+ --color-inverse: rgba(255, 255, 255, 0.95);
153
+ --color-on-accent: #ffffff;
154
+ --color-code: #0f766e;
151
155
 
152
156
  /* Borders */
153
- --color-border-base: rgba(0, 0, 0, 0.12);
154
- --color-border-strong: rgba(0, 0, 0, 0.22);
155
- --color-border-subtle: rgba(0, 0, 0, 0.06);
156
- --color-border-focus: var(--color-focus-ring);
157
+ --color-line: rgba(0, 0, 0, 0.12);
158
+ --color-line-strong: rgba(0, 0, 0, 0.22);
159
+ --color-line-subtle: rgba(0, 0, 0, 0.06);
160
+ --color-line-focus: var(--color-focus-ring);
157
161
 
158
162
  /* Accent — macOS blue
159
163
  * Semantic names instead of opaque Radix-style numbers:
@@ -181,7 +185,7 @@
181
185
  --shadow-popover: 0 8px 24px -4px rgb(0 0 0 / 0.16), 0 2px 6px -2px rgb(0 0 0 / 0.1);
182
186
  --shadow-sheet: 0 -4px 16px 0 rgb(0 0 0 / 0.12);
183
187
  --shadow-inset: inset 0 1px 2px 0 rgb(0 0 0 / 0.08);
184
- --shadow-focus: 0 0 0 2px var(--color-bg-base), 0 0 0 4px var(--color-focus-ring);
188
+ --shadow-focus: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-focus-ring);
185
189
 
186
190
  /* Status — Success */
187
191
  --color-success-bg: #f0fdf4;
@@ -208,7 +212,7 @@
208
212
  --color-info-solid: #2563eb;
209
213
 
210
214
  /* Code / terminal palette */
211
- --color-code-bg: #f6f8fa;
215
+ --color-code-canvas: #f6f8fa;
212
216
  --color-code-border: #d0d7de;
213
217
  --color-code-comment: #6e7781;
214
218
  --color-code-keyword: #cf222e;
@@ -217,8 +221,8 @@
217
221
  --color-code-function: #8250df;
218
222
 
219
223
  /* Scrollbar */
220
- --color-scrollbar-thumb: rgba(0, 0, 0, 0.2);
221
- --color-scrollbar-track: transparent;
224
+ --color-thumb: rgba(0, 0, 0, 0.2);
225
+ --color-track: transparent;
222
226
  }
223
227
 
224
228
  /* ═══════════════════════════════════════════════════════════════════
@@ -232,33 +236,33 @@
232
236
  color-scheme: dark;
233
237
 
234
238
  /* Background */
235
- --color-bg-base: #1c1c1e;
236
- --color-bg-elevated: #2c2c2e;
237
- --color-bg-sunken: #141416;
238
- --color-bg-overlay: rgba(30, 30, 32, 0.92);
239
- --color-bg-sidebar: rgba(28, 28, 30, 0.95);
239
+ --color-canvas: #1c1c1e;
240
+ --color-elevated: #2c2c2e;
241
+ --color-sunken: #141416;
242
+ --color-overlay: rgba(30, 30, 32, 0.92);
243
+ --color-sidebar: rgba(28, 28, 30, 0.95);
240
244
 
241
245
  /* Surface */
242
246
  --color-surface-1: #2c2c2e;
243
247
  --color-surface-2: #3a3a3c;
244
248
  --color-surface-3: #48484a;
245
- --color-surface-hover: rgba(255, 255, 255, 0.06);
246
- --color-surface-active: rgba(255, 255, 255, 0.1);
247
- --color-surface-selected: rgba(10, 132, 255, 0.16);
249
+ --color-hover: rgba(255, 255, 255, 0.06);
250
+ --color-active: rgba(255, 255, 255, 0.1);
251
+ --color-selected: rgba(10, 132, 255, 0.16);
248
252
 
249
253
  /* Text */
250
- --color-text-primary: rgba(255, 255, 255, 0.92);
251
- --color-text-secondary: rgba(255, 255, 255, 0.55);
252
- --color-text-tertiary: rgba(255, 255, 255, 0.36);
253
- --color-text-disabled: rgba(255, 255, 255, 0.24);
254
- --color-text-inverse: rgba(0, 0, 0, 0.88);
255
- --color-text-on-accent: #ffffff;
256
- --color-text-code: #2dd4bf;
254
+ --color-primary: rgba(255, 255, 255, 0.92);
255
+ --color-secondary: rgba(255, 255, 255, 0.55);
256
+ --color-tertiary: rgba(255, 255, 255, 0.36);
257
+ --color-disabled: rgba(255, 255, 255, 0.24);
258
+ --color-inverse: rgba(0, 0, 0, 0.88);
259
+ --color-on-accent: #ffffff;
260
+ --color-code: #2dd4bf;
257
261
 
258
262
  /* Borders */
259
- --color-border-base: rgba(255, 255, 255, 0.12);
260
- --color-border-strong: rgba(255, 255, 255, 0.22);
261
- --color-border-subtle: rgba(255, 255, 255, 0.06);
263
+ --color-line: rgba(255, 255, 255, 0.12);
264
+ --color-line-strong: rgba(255, 255, 255, 0.22);
265
+ --color-line-subtle: rgba(255, 255, 255, 0.06);
262
266
 
263
267
  /* Accent — macOS blue dark */
264
268
  --color-accent: #0a84ff;
@@ -279,7 +283,7 @@
279
283
  --shadow-popover: 0 8px 24px -4px rgb(0 0 0 / 0.5), 0 2px 6px -2px rgb(0 0 0 / 0.4);
280
284
  --shadow-sheet: 0 -4px 16px 0 rgb(0 0 0 / 0.4);
281
285
  --shadow-inset: inset 0 1px 2px 0 rgb(0 0 0 / 0.3);
282
- --shadow-focus: 0 0 0 2px var(--color-bg-base), 0 0 0 4px var(--color-focus-ring);
286
+ --shadow-focus: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-focus-ring);
283
287
 
284
288
  /* Status — Success */
285
289
  --color-success-bg: rgba(22, 163, 74, 0.12);
@@ -306,7 +310,7 @@
306
310
  --color-info-solid: #3b82f6;
307
311
 
308
312
  /* Code / terminal palette */
309
- --color-code-bg: #161b22;
313
+ --color-code-canvas: #161b22;
310
314
  --color-code-border: rgba(255, 255, 255, 0.1);
311
315
  --color-code-comment: #8b949e;
312
316
  --color-code-keyword: #ff7b72;
@@ -315,38 +319,38 @@
315
319
  --color-code-function: #d2a8ff;
316
320
 
317
321
  /* Scrollbar */
318
- --color-scrollbar-thumb: rgba(255, 255, 255, 0.2);
319
- --color-scrollbar-track: transparent;
322
+ --color-thumb: rgba(255, 255, 255, 0.2);
323
+ --color-track: transparent;
320
324
  }
321
325
  }
322
326
 
323
327
  [data-theme="dark"] {
324
328
  color-scheme: dark;
325
329
 
326
- --color-bg-base: #1c1c1e;
327
- --color-bg-elevated: #2c2c2e;
328
- --color-bg-sunken: #141416;
329
- --color-bg-overlay: rgba(30, 30, 32, 0.92);
330
- --color-bg-sidebar: rgba(28, 28, 30, 0.95);
330
+ --color-canvas: #1c1c1e;
331
+ --color-elevated: #2c2c2e;
332
+ --color-sunken: #141416;
333
+ --color-overlay: rgba(30, 30, 32, 0.92);
334
+ --color-sidebar: rgba(28, 28, 30, 0.95);
331
335
 
332
336
  --color-surface-1: #2c2c2e;
333
337
  --color-surface-2: #3a3a3c;
334
338
  --color-surface-3: #48484a;
335
- --color-surface-hover: rgba(255, 255, 255, 0.06);
336
- --color-surface-active: rgba(255, 255, 255, 0.1);
337
- --color-surface-selected: rgba(10, 132, 255, 0.16);
338
-
339
- --color-text-primary: rgba(255, 255, 255, 0.92);
340
- --color-text-secondary: rgba(255, 255, 255, 0.55);
341
- --color-text-tertiary: rgba(255, 255, 255, 0.36);
342
- --color-text-disabled: rgba(255, 255, 255, 0.24);
343
- --color-text-inverse: rgba(0, 0, 0, 0.88);
344
- --color-text-on-accent: #ffffff;
345
- --color-text-code: #2dd4bf;
346
-
347
- --color-border-base: rgba(255, 255, 255, 0.12);
348
- --color-border-strong: rgba(255, 255, 255, 0.22);
349
- --color-border-subtle: rgba(255, 255, 255, 0.06);
339
+ --color-hover: rgba(255, 255, 255, 0.06);
340
+ --color-active: rgba(255, 255, 255, 0.1);
341
+ --color-selected: rgba(10, 132, 255, 0.16);
342
+
343
+ --color-primary: rgba(255, 255, 255, 0.92);
344
+ --color-secondary: rgba(255, 255, 255, 0.55);
345
+ --color-tertiary: rgba(255, 255, 255, 0.36);
346
+ --color-disabled: rgba(255, 255, 255, 0.24);
347
+ --color-inverse: rgba(0, 0, 0, 0.88);
348
+ --color-on-accent: #ffffff;
349
+ --color-code: #2dd4bf;
350
+
351
+ --color-line: rgba(255, 255, 255, 0.12);
352
+ --color-line-strong: rgba(255, 255, 255, 0.22);
353
+ --color-line-subtle: rgba(255, 255, 255, 0.06);
350
354
 
351
355
  --color-accent: #0a84ff;
352
356
  --color-accent-hover: #0071e3;
@@ -364,7 +368,7 @@
364
368
  --shadow-popover: 0 8px 24px -4px rgb(0 0 0 / 0.5), 0 2px 6px -2px rgb(0 0 0 / 0.4);
365
369
  --shadow-sheet: 0 -4px 16px 0 rgb(0 0 0 / 0.4);
366
370
  --shadow-inset: inset 0 1px 2px 0 rgb(0 0 0 / 0.3);
367
- --shadow-focus: 0 0 0 2px var(--color-bg-base), 0 0 0 4px var(--color-focus-ring);
371
+ --shadow-focus: 0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-focus-ring);
368
372
 
369
373
  --color-success-bg: rgba(22, 163, 74, 0.12);
370
374
  --color-success-border: rgba(22, 163, 74, 0.3);
@@ -386,7 +390,7 @@
386
390
  --color-info-text: #60a5fa;
387
391
  --color-info-solid: #3b82f6;
388
392
 
389
- --color-code-bg: #161b22;
393
+ --color-code-canvas: #161b22;
390
394
  --color-code-border: rgba(255, 255, 255, 0.1);
391
395
  --color-code-comment: #8b949e;
392
396
  --color-code-keyword: #ff7b72;
@@ -394,7 +398,7 @@
394
398
  --color-code-number: #79c0ff;
395
399
  --color-code-function: #d2a8ff;
396
400
 
397
- --color-scrollbar-thumb: rgba(255, 255, 255, 0.2);
398
- --color-scrollbar-track: transparent;
401
+ --color-thumb: rgba(255, 255, 255, 0.2);
402
+ --color-track: transparent;
399
403
  }
400
404
  }
@@ -1,5 +1,3 @@
1
- @layer theme, base;
2
-
3
1
  @layer components {
4
2
  .positioner_yQZxSq {
5
3
  z-index: var(--z-tooltip);
@@ -7,19 +5,19 @@
7
5
 
8
6
  .popup_yQZxSq {
9
7
  background-color: var(--color-surface-3);
10
- border: var(--border-width-base) solid var(--color-border-base);
8
+ border: var(--border-width-base) solid var(--color-line);
11
9
  border-radius: var(--radius-sm);
12
10
  box-shadow: var(--shadow-sm);
13
11
  padding: var(--space-1) var(--space-2);
14
12
  font-family: var(--font-mono);
15
13
  font-size: var(--font-size-xs);
16
- color: var(--color-text-primary);
14
+ color: var(--color-primary);
17
15
  line-height: var(--line-height-normal);
18
16
  word-break: break-word;
19
17
  max-width: 240px;
20
18
  transform-origin: var(--transform-origin);
21
- transition: opacity .125s var(--easing-ease-out),
22
- transform .125s var(--easing-ease-out);
19
+ transition: opacity .15s var(--easing-ease-out),
20
+ transform .3s var(--easing-spring);
23
21
  }
24
22
 
25
23
  .popup_yQZxSq[data-instant] {
@@ -28,14 +26,14 @@
28
26
 
29
27
  .popup_yQZxSq[data-starting-style] {
30
28
  opacity: 0;
31
- transform: scale(.96);
29
+ transform: scale(.85);
32
30
  }
33
31
 
34
32
  .popup_yQZxSq[data-ending-style] {
35
33
  opacity: 0;
36
34
  transition: opacity 75ms var(--easing-ease-in),
37
35
  transform 75ms var(--easing-ease-in);
38
- transform: scale(.98);
36
+ transform: scale(.95);
39
37
  }
40
38
 
41
39
  @media (prefers-reduced-motion: reduce) {
@@ -56,9 +54,7 @@
56
54
  width: 8px;
57
55
  height: 8px;
58
56
  fill: var(--color-surface-3);
59
- stroke: var(--color-border-base);
57
+ stroke: var(--color-line);
60
58
  stroke-width: 1px;
61
59
  }
62
60
  }
63
-
64
- @layer utilities;
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.module.js","names":[],"sources":["../../src/tooltip/tooltip.module.css"],"sourcesContent":["@layer theme, base, components, utilities;\n\n@layer components {\n .positioner {\n z-index: var(--z-tooltip);\n }\n\n .popup {\n background-color: var(--color-surface-3);\n border: var(--border-width-base) solid var(--color-border-base);\n border-radius: var(--radius-sm);\n box-shadow: var(--shadow-sm);\n padding: var(--space-1) var(--space-2);\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n color: var(--color-text-primary);\n line-height: var(--line-height-normal);\n max-width: 240px;\n word-break: break-word;\n\n transform-origin: var(--transform-origin);\n transition:\n opacity 125ms var(--easing-ease-out),\n transform 125ms var(--easing-ease-out);\n }\n\n /* Skip animation when moving between tooltips quickly */\n .popup[data-instant] {\n transition-duration: 0ms;\n }\n\n .popup[data-starting-style] {\n opacity: 0;\n transform: scale(0.96);\n }\n\n .popup[data-ending-style] {\n opacity: 0;\n transform: scale(0.98);\n transition:\n opacity 75ms var(--easing-ease-in),\n transform 75ms var(--easing-ease-in);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .popup {\n transition: opacity 125ms var(--easing-ease-out);\n }\n\n .popup[data-ending-style] {\n transition: opacity 75ms var(--easing-ease-in);\n }\n\n .popup[data-starting-style],\n .popup[data-ending-style] {\n transform: none;\n }\n }\n\n .arrow {\n width: 8px;\n height: 8px;\n fill: var(--color-surface-3);\n stroke: var(--color-border-base);\n stroke-width: 1;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"tooltip.module.js","names":[],"sources":["../../src/tooltip/tooltip.module.css"],"sourcesContent":["@layer components {\n .positioner {\n z-index: var(--z-tooltip);\n }\n .popup {\n background-color: var(--color-surface-3);\n border: var(--border-width-base) solid var(--color-line);\n border-radius: var(--radius-sm);\n box-shadow: var(--shadow-sm);\n padding: var(--space-1) var(--space-2);\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n color: var(--color-primary);\n line-height: var(--line-height-normal);\n max-width: 240px;\n word-break: break-word;\n transform-origin: var(--transform-origin);\n transition:\n opacity 150ms var(--easing-ease-out),\n transform 300ms var(--easing-spring);\n }\n /* Skip animation when moving between tooltips quickly */\n .popup[data-instant] {\n transition-duration: 0ms;\n }\n .popup[data-starting-style] {\n opacity: 0;\n transform: scale(0.85);\n }\n .popup[data-ending-style] {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 75ms var(--easing-ease-in),\n transform 75ms var(--easing-ease-in);\n }\n @media (prefers-reduced-motion: reduce) {\n .popup {\n transition: opacity 125ms var(--easing-ease-out);\n }\n .popup[data-ending-style] {\n transition: opacity 75ms var(--easing-ease-in);\n }\n .popup[data-starting-style],\n .popup[data-ending-style] {\n transform: none;\n }\n }\n .arrow {\n width: 8px;\n height: 8px;\n fill: var(--color-surface-3);\n stroke: var(--color-line);\n stroke-width: 1;\n }\n}\n"],"mappings":";AAMA,IAAA,yBAAe;CAAC,SAAQ;CAAa,SAAU;CAAa,cAAA;CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brijbyte/agentic-ui",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,13 +24,24 @@
24
24
  "types": "./dist/index.d.ts"
25
25
  },
26
26
  "./styles": "./dist/index.css",
27
+ "./layer-order": "./dist/layer-order.css",
27
28
  "./tokens": "./dist/tokens.css",
28
29
  "./reset": "./dist/reset.css",
29
30
  "./tailwind-theme": "./dist/tailwind-theme.css",
31
+ "./alert-dialog": {
32
+ "import": "./dist/alert-dialog/index.js",
33
+ "types": "./dist/alert-dialog/index.d.ts"
34
+ },
35
+ "./context-menu": {
36
+ "import": "./dist/context-menu/index.js",
37
+ "types": "./dist/context-menu/index.d.ts"
38
+ },
30
39
  "./accordion": {
31
40
  "import": "./dist/accordion/index.js",
32
41
  "types": "./dist/accordion/index.d.ts"
33
42
  },
43
+ "./alert-dialog.css": "./dist/alert-dialog/alert-dialog.css",
44
+ "./context-menu.css": "./dist/context-menu/context-menu.css",
34
45
  "./accordion.css": "./dist/accordion/accordion.css",
35
46
  "./badge": {
36
47
  "import": "./dist/badge/index.js",
@@ -96,7 +107,12 @@
96
107
  "import": "./dist/separator/index.js",
97
108
  "types": "./dist/separator/index.d.ts"
98
109
  },
110
+ "./slider": {
111
+ "import": "./dist/slider/index.js",
112
+ "types": "./dist/slider/index.d.ts"
113
+ },
99
114
  "./separator.css": "./dist/separator/separator.css",
115
+ "./slider.css": "./dist/slider/slider.css",
100
116
  "./switch": {
101
117
  "import": "./dist/switch/index.js",
102
118
  "types": "./dist/switch/index.d.ts"
@@ -1,28 +1,22 @@
1
- @layer theme, base, components, utilities;
2
-
3
1
  @layer components {
4
2
  .root {
5
3
  display: flex;
6
4
  flex-direction: column;
7
5
  gap: 0;
8
- border: var(--border-width-base) solid var(--color-border-base);
6
+ border: var(--border-width-base) solid var(--color-line);
9
7
  border-radius: var(--radius-lg);
10
8
  overflow: hidden;
11
9
  }
12
-
13
10
  .item {
14
- border-bottom: var(--border-width-base) solid var(--color-border-subtle);
11
+ border-bottom: var(--border-width-base) solid var(--color-line-subtle);
15
12
  }
16
-
17
13
  .item:last-child {
18
14
  border-bottom: none;
19
15
  }
20
-
21
16
  .header {
22
17
  display: flex;
23
18
  align-items: center;
24
19
  }
25
-
26
20
  .trigger {
27
21
  flex: 1;
28
22
  display: flex;
@@ -33,7 +27,7 @@
33
27
  font-family: var(--font-mono);
34
28
  font-size: var(--font-size-sm);
35
29
  font-weight: var(--font-weight-medium);
36
- color: var(--color-text-primary);
30
+ color: var(--color-primary);
37
31
  background: none;
38
32
  border: none;
39
33
  cursor: pointer;
@@ -44,46 +38,38 @@
44
38
  color var(--duration-fast) var(--easing-standard);
45
39
  user-select: none;
46
40
  }
47
-
48
41
  .trigger:hover {
49
- background-color: var(--color-surface-hover);
42
+ background-color: var(--color-hover);
50
43
  }
51
-
52
44
  .trigger:focus-visible {
53
45
  box-shadow: inset var(--shadow-focus);
54
46
  }
55
-
56
47
  .trigger[data-disabled] {
57
48
  opacity: 0.44;
58
49
  cursor: not-allowed;
59
50
  }
60
-
61
51
  .trigger-icon {
62
- color: var(--color-text-tertiary);
52
+ color: var(--color-tertiary);
63
53
  flex-shrink: 0;
64
54
  transition: transform var(--duration-normal) var(--easing-standard);
65
55
  }
66
-
67
56
  .trigger[data-panel-open] .trigger-icon {
68
57
  transform: rotate(180deg);
69
58
  }
70
-
71
59
  .panel {
72
60
  height: var(--accordion-panel-height);
73
61
  overflow: hidden;
74
62
  transition: height var(--duration-normal) var(--easing-standard);
75
63
  }
76
-
77
64
  .panel[data-starting-style],
78
65
  .panel[data-ending-style] {
79
66
  height: 0;
80
67
  }
81
-
82
68
  .panel-content {
83
69
  padding: var(--space-2) var(--space-4) var(--space-4);
84
70
  font-family: var(--font-mono);
85
71
  font-size: var(--font-size-sm);
86
- color: var(--color-text-secondary);
72
+ color: var(--color-secondary);
87
73
  line-height: var(--line-height-relaxed);
88
74
  }
89
75
  }
@@ -0,0 +1,91 @@
1
+ @layer components {
2
+ .backdrop {
3
+ position: fixed;
4
+ inset: 0;
5
+ min-height: 100dvh;
6
+ background-color: rgba(0, 0, 0, 0.48);
7
+ z-index: var(--z-overlay);
8
+ transition: opacity var(--duration-slow) var(--easing-standard);
9
+
10
+ @supports (-webkit-touch-callout: none) {
11
+ position: absolute;
12
+ }
13
+ }
14
+
15
+ .backdrop[data-starting-style],
16
+ .backdrop[data-ending-style] {
17
+ opacity: 0;
18
+ }
19
+
20
+ .popup {
21
+ position: fixed;
22
+ top: 50%;
23
+ left: 50%;
24
+ transform: translate(-50%, -50%);
25
+ z-index: var(--z-modal);
26
+ background-color: var(--color-elevated);
27
+ border: var(--border-width-base) solid var(--color-line);
28
+ border-radius: var(--radius-2xl);
29
+ box-shadow: var(--shadow-xl);
30
+ padding: var(--space-5) var(--space-6);
31
+ width: min(380px, calc(100vw - var(--space-8)));
32
+ outline: none;
33
+ overflow: hidden;
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: var(--space-3);
37
+ transition:
38
+ opacity 200ms var(--easing-ease-out),
39
+ transform 200ms var(--easing-spring);
40
+ }
41
+
42
+ .popup[data-starting-style] {
43
+ opacity: 0;
44
+ transform: translate(-50%, -48%) scale(0.96);
45
+ }
46
+
47
+ .popup[data-ending-style] {
48
+ opacity: 0;
49
+ transform: translate(-50%, -50%) scale(0.98);
50
+ transition:
51
+ opacity 150ms var(--easing-ease-in),
52
+ transform 150ms var(--easing-ease-in);
53
+ }
54
+
55
+ /* ─── Header ──────────────────────────────────────────────────── */
56
+
57
+ .header {
58
+ display: flex;
59
+ flex-direction: column;
60
+ gap: var(--space-1-5);
61
+ }
62
+
63
+ .icon {
64
+ margin-bottom: var(--space-1);
65
+ }
66
+
67
+ .title {
68
+ font-family: var(--font-sans);
69
+ font-size: var(--font-size-lg);
70
+ font-weight: var(--font-weight-bold);
71
+ color: var(--color-primary);
72
+ line-height: var(--line-height-tight);
73
+ }
74
+
75
+ .description {
76
+ font-family: var(--font-sans);
77
+ font-size: var(--font-size-md);
78
+ color: var(--color-secondary);
79
+ line-height: var(--line-height-relaxed);
80
+ }
81
+
82
+ /* ─── Actions ─────────────────────────────────────────────────── */
83
+
84
+ .actions {
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: flex-end;
88
+ gap: var(--space-2);
89
+ padding-top: var(--space-1);
90
+ }
91
+ }
@@ -0,0 +1,69 @@
1
+ import type { ReactNode, ReactElement } from "react";
2
+ import { AlertDialog as BaseAlertDialog } from "@base-ui/react/alert-dialog";
3
+ import { Button } from "../button/button";
4
+ import styles from "./alert-dialog.module.css";
5
+
6
+ export interface AlertAction {
7
+ label: ReactNode;
8
+ /** Called when the action button is clicked. The dialog closes automatically. */
9
+ onAction?: () => void;
10
+ /** Renders as a filled accent button — use for the primary confirm action. */
11
+ primary?: boolean;
12
+ /** Renders as a soft destructive button. Sits on the left when combined with other actions. */
13
+ destructive?: boolean;
14
+ }
15
+
16
+ export interface AlertDialogProps {
17
+ open?: boolean;
18
+ defaultOpen?: boolean;
19
+ onOpenChange?: (open: boolean, eventDetails: unknown) => void;
20
+ trigger?: ReactElement;
21
+ /** Optional icon shown above the title. */
22
+ icon?: ReactNode;
23
+ title: ReactNode;
24
+ description?: ReactNode;
25
+ /**
26
+ * Action buttons rendered right-aligned.
27
+ * Use `primary: true` for the confirm action (solid), leave unset for cancel (outline).
28
+ * Use `destructive: true` to apply destructive tone to the confirm action.
29
+ */
30
+ actions: AlertAction[];
31
+ className?: string;
32
+ }
33
+
34
+ export function AlertDialog({ trigger, icon, title, description, actions, className, onOpenChange, ...props }: AlertDialogProps) {
35
+ return (
36
+ <BaseAlertDialog.Root onOpenChange={onOpenChange as never} {...props}>
37
+ {trigger && <BaseAlertDialog.Trigger render={trigger} />}
38
+ <BaseAlertDialog.Portal>
39
+ <BaseAlertDialog.Backdrop className={styles.backdrop} />
40
+ <BaseAlertDialog.Popup className={`${styles.popup} ${className ?? ""}`}>
41
+ <div className={styles.header}>
42
+ {icon && <div className={styles.icon}>{icon}</div>}
43
+ <BaseAlertDialog.Title className={styles.title}>{title}</BaseAlertDialog.Title>
44
+ {description && <BaseAlertDialog.Description className={styles.description}>{description}</BaseAlertDialog.Description>}
45
+ </div>
46
+ <div className={styles.actions}>
47
+ {actions.map((action, i) => (
48
+ <BaseAlertDialog.Close
49
+ key={i}
50
+ render={
51
+ <Button
52
+ variant={action.primary ? "solid" : "outline"}
53
+ tone={action.destructive ? "destructive" : "primary"}
54
+ size="sm"
55
+ onClick={action.onAction}
56
+ />
57
+ }
58
+ >
59
+ {action.label}
60
+ </BaseAlertDialog.Close>
61
+ ))}
62
+ </div>
63
+ </BaseAlertDialog.Popup>
64
+ </BaseAlertDialog.Portal>
65
+ </BaseAlertDialog.Root>
66
+ );
67
+ }
68
+
69
+ export { styles as AlertDialogStyles };
@@ -0,0 +1,7 @@
1
+ export { AlertDialog } from "./alert-dialog";
2
+ export type { AlertDialogProps, AlertAction } from "./alert-dialog";
3
+
4
+ export { AlertDialogBackdrop, AlertDialogPopup, AlertDialogTitle, AlertDialogDescription } from "./parts";
5
+ export type { AlertDialogBackdropProps, AlertDialogPopupProps, AlertDialogTitleProps, AlertDialogDescriptionProps } from "./parts";
6
+
7
+ export { AlertDialogStyles } from "./alert-dialog";