@pollinations/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 (48) hide show
  1. package/README.md +15 -10
  2. package/dist/{Button-DMJ2K6Gr.d.ts → Button-Bn8pGg6N.d.ts} +1 -1
  3. package/dist/{Button-CNzpisJf.d.cts → Button-CWUBCiIc.d.cts} +1 -1
  4. package/dist/{Chip-BS8ronOu.d.ts → Chip-C5impfYd.d.ts} +2 -2
  5. package/dist/{Chip-DyqWrq0r.d.cts → Chip-SM52sUbZ.d.cts} +2 -2
  6. package/dist/app.css +1 -1
  7. package/dist/auth/index.cjs +1 -9
  8. package/dist/auth/index.cjs.map +1 -1
  9. package/dist/auth/index.d.cts +1 -2
  10. package/dist/auth/index.d.ts +1 -2
  11. package/dist/auth/index.js +1 -9
  12. package/dist/auth/index.js.map +1 -1
  13. package/dist/auth/sdk.d.cts +2 -2
  14. package/dist/auth/sdk.d.ts +2 -2
  15. package/dist/index.cjs +354 -177
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +47 -9
  18. package/dist/index.d.ts +47 -9
  19. package/dist/index.js +346 -176
  20. package/dist/index.js.map +1 -1
  21. package/dist/modality/index.cjs +6 -38
  22. package/dist/modality/index.cjs.map +1 -1
  23. package/dist/modality/index.d.cts +7 -27
  24. package/dist/modality/index.d.ts +7 -27
  25. package/dist/modality/index.js +6 -37
  26. package/dist/modality/index.js.map +1 -1
  27. package/dist/styles.css +1 -1
  28. package/dist/theme-VMRlhqST.d.cts +9 -0
  29. package/dist/theme-VMRlhqST.d.ts +9 -0
  30. package/dist/wallet/index.cjs +4 -1
  31. package/dist/wallet/index.cjs.map +1 -1
  32. package/dist/wallet/index.d.cts +2 -2
  33. package/dist/wallet/index.d.ts +2 -2
  34. package/dist/wallet/index.js +4 -1
  35. package/dist/wallet/index.js.map +1 -1
  36. package/dist/wallet/sdk.cjs +4 -1
  37. package/dist/wallet/sdk.cjs.map +1 -1
  38. package/dist/wallet/sdk.js +4 -1
  39. package/dist/wallet/sdk.js.map +1 -1
  40. package/package.json +3 -8
  41. package/dist/showcase/index.cjs +0 -2851
  42. package/dist/showcase/index.cjs.map +0 -1
  43. package/dist/showcase/index.d.cts +0 -19
  44. package/dist/showcase/index.d.ts +0 -19
  45. package/dist/showcase/index.js +0 -2839
  46. package/dist/showcase/index.js.map +0 -1
  47. package/dist/theme-DfHMjWB7.d.cts +0 -16
  48. package/dist/theme-DfHMjWB7.d.ts +0 -16
package/dist/index.js CHANGED
@@ -167,15 +167,46 @@ function cn2(...inputs) {
167
167
  return twMerge2(clsx2(...inputs));
168
168
  }
169
169
 
170
+ // src/primitives/Alert.tsx
171
+ import { jsx, jsxs } from "react/jsx-runtime";
172
+ var intentClasses = {
173
+ info: "polli:border-theme-border polli:bg-theme-bg-pale polli:text-theme-text-strong",
174
+ success: "polli:border-intent-success-border polli:bg-intent-success-bg-light polli:text-intent-success-text",
175
+ warning: "polli:border-intent-warning-border polli:bg-intent-warning-bg-light polli:text-intent-warning-text",
176
+ danger: "polli:border-intent-danger-border polli:bg-intent-danger-bg-light polli:text-intent-danger-text"
177
+ };
178
+ var Alert = ({
179
+ intent = "info",
180
+ title,
181
+ className,
182
+ children,
183
+ ...rest
184
+ }) => /* @__PURE__ */ jsxs(
185
+ "div",
186
+ {
187
+ ...rest,
188
+ role: intent === "danger" ? "alert" : "status",
189
+ className: cn2(
190
+ "polli:rounded-xl polli:border polli:px-3 polli:py-2 polli:text-sm",
191
+ intentClasses[intent],
192
+ className
193
+ ),
194
+ children: [
195
+ title && /* @__PURE__ */ jsx("div", { className: "polli:mb-1 polli:text-xs polli:font-bold polli:uppercase polli:tracking-wide", children: title }),
196
+ /* @__PURE__ */ jsx("div", { children })
197
+ ]
198
+ }
199
+ );
200
+
170
201
  // src/primitives/Button.tsx
171
- import { jsx } from "react/jsx-runtime";
202
+ import { jsx as jsx2 } from "react/jsx-runtime";
172
203
  var sizes = {
173
204
  small: "polli:px-2 polli:pt-0.5 polli:pb-1",
174
205
  medium: "polli:px-4 polli:pt-1.5 polli:pb-2",
175
206
  large: "polli:px-6 polli:py-3"
176
207
  };
177
208
  var themeClasses = "polli:bg-theme-bg-active polli:text-theme-text-base polli:hover:bg-theme-bg-hover polli:transition-colors";
178
- var intentClasses = {
209
+ var intentClasses2 = {
179
210
  danger: "polli:bg-intent-danger-bg-light polli:text-intent-danger-text polli:hover:bg-[oklch(0.88_0.075_25)] polli:transition-colors"
180
211
  };
181
212
  var buttonClasses = ({
@@ -185,7 +216,7 @@ var buttonClasses = ({
185
216
  className,
186
217
  disabled
187
218
  }) => {
188
- const colorClasses = intent ? intentClasses[intent] : themeClasses;
219
+ const colorClasses = intent ? intentClasses2[intent] : themeClasses;
189
220
  return cn2(
190
221
  "polli:inline-flex polli:items-center polli:justify-center polli:rounded-full polli:self-center polli:placeholder-green-950 polli:font-medium polli:leading-normal polli:box-border",
191
222
  disabled ? "polli:opacity-50 polli:cursor-not-allowed" : "polli:hover:filter polli:hover:brightness-105 polli:cursor-pointer",
@@ -205,7 +236,7 @@ function Button({
205
236
  ...buttonProps
206
237
  }) {
207
238
  const Component = as || "button";
208
- return /* @__PURE__ */ jsx(
239
+ return /* @__PURE__ */ jsx2(
209
240
  Component,
210
241
  {
211
242
  "data-theme": intent ? void 0 : theme,
@@ -223,9 +254,31 @@ function Button({
223
254
  );
224
255
  }
225
256
 
257
+ // src/primitives/ButtonGroup.tsx
258
+ import { jsx as jsx3 } from "react/jsx-runtime";
259
+ var ButtonGroup = ({
260
+ wrap = true,
261
+ className,
262
+ children,
263
+ role = "group",
264
+ ...rest
265
+ }) => /* @__PURE__ */ jsx3(
266
+ "div",
267
+ {
268
+ ...rest,
269
+ role,
270
+ className: cn2(
271
+ "polli:flex polli:min-w-0 polli:items-center polli:gap-1.5",
272
+ wrap ? "polli:flex-wrap" : "polli:flex-nowrap",
273
+ className
274
+ ),
275
+ children
276
+ }
277
+ );
278
+
226
279
  // src/primitives/ChevronIcon.tsx
227
- import { jsx as jsx2 } from "react/jsx-runtime";
228
- var ChevronIcon = ({ expanded, className }) => /* @__PURE__ */ jsx2(
280
+ import { jsx as jsx4 } from "react/jsx-runtime";
281
+ var ChevronIcon = ({ expanded, className }) => /* @__PURE__ */ jsx4(
229
282
  "svg",
230
283
  {
231
284
  "aria-hidden": "true",
@@ -237,7 +290,7 @@ var ChevronIcon = ({ expanded, className }) => /* @__PURE__ */ jsx2(
237
290
  expanded && "polli:rotate-180",
238
291
  className
239
292
  ),
240
- children: /* @__PURE__ */ jsx2(
293
+ children: /* @__PURE__ */ jsx4(
241
294
  "path",
242
295
  {
243
296
  d: "M3 4.5 6 7.5l3-3",
@@ -252,16 +305,19 @@ var ChevronIcon = ({ expanded, className }) => /* @__PURE__ */ jsx2(
252
305
  );
253
306
 
254
307
  // src/primitives/Chip.tsx
255
- import { jsx as jsx3 } from "react/jsx-runtime";
308
+ import { jsx as jsx5 } from "react/jsx-runtime";
256
309
  var chipSizes = {
257
310
  sm: "polli:px-2 polli:py-0.5 polli:text-xs",
258
311
  md: "polli:px-2.5 polli:py-0.5 polli:text-sm",
259
312
  lg: "polli:px-3 polli:py-1 polli:text-sm"
260
313
  };
261
- var intentClasses2 = {
314
+ var intentClasses3 = {
262
315
  news: "polli:bg-[oklch(0.935_0.06_158)] polli:text-[oklch(0.46_0.13_158)]",
263
316
  alpha: "polli:bg-[oklch(0.93_0.06_300)] polli:text-[oklch(0.42_0.18_300)]",
264
- neutral: "polli:border polli:border-gray-400/70 polli:bg-gray-100/80 polli:text-gray-900"
317
+ neutral: "polli:border polli:border-gray-400/70 polli:bg-gray-100/80 polli:text-gray-900",
318
+ success: "polli:border polli:border-intent-success-border polli:bg-intent-success-bg-light polli:text-intent-success-text",
319
+ warning: "polli:border polli:border-intent-warning-border polli:bg-intent-warning-bg-light polli:text-intent-warning-text",
320
+ danger: "polli:border polli:border-intent-danger-border polli:bg-intent-danger-bg-light polli:text-intent-danger-text"
265
321
  };
266
322
  var Chip = ({
267
323
  theme,
@@ -271,8 +327,8 @@ var Chip = ({
271
327
  children,
272
328
  ...rest
273
329
  }) => {
274
- const intentClass = intent ? intentClasses2[intent] : "polli:bg-theme-bg-active polli:text-theme-text-strong";
275
- return /* @__PURE__ */ jsx3(
330
+ const intentClass = intent ? intentClasses3[intent] : "polli:bg-theme-bg-active polli:text-theme-text-strong";
331
+ return /* @__PURE__ */ jsx5(
276
332
  "span",
277
333
  {
278
334
  ...rest,
@@ -289,7 +345,7 @@ var Chip = ({
289
345
  };
290
346
 
291
347
  // src/primitives/Collapsible.tsx
292
- import { jsx as jsx4, jsxs } from "react/jsx-runtime";
348
+ import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
293
349
  var Collapsible = ({
294
350
  label,
295
351
  expanded,
@@ -301,7 +357,7 @@ var Collapsible = ({
301
357
  focusClassName,
302
358
  panelClassName = "polli:border-t polli:border-theme-border polli:px-3 polli:pt-3 polli:pb-3",
303
359
  ariaLabel
304
- }) => /* @__PURE__ */ jsxs(
360
+ }) => /* @__PURE__ */ jsxs2(
305
361
  "div",
306
362
  {
307
363
  className: cn2(
@@ -310,7 +366,7 @@ var Collapsible = ({
310
366
  disabled && "polli:opacity-50"
311
367
  ),
312
368
  children: [
313
- /* @__PURE__ */ jsxs(
369
+ /* @__PURE__ */ jsxs2(
314
370
  "button",
315
371
  {
316
372
  type: "button",
@@ -326,8 +382,8 @@ var Collapsible = ({
326
382
  disabled ? "polli:cursor-not-allowed" : "polli:cursor-pointer"
327
383
  ),
328
384
  children: [
329
- /* @__PURE__ */ jsx4("div", { className: "polli:flex-1 polli:min-w-0", children: label }),
330
- /* @__PURE__ */ jsx4(
385
+ /* @__PURE__ */ jsx6("div", { className: "polli:flex-1 polli:min-w-0", children: label }),
386
+ /* @__PURE__ */ jsx6(
331
387
  ChevronIcon,
332
388
  {
333
389
  expanded,
@@ -337,7 +393,7 @@ var Collapsible = ({
337
393
  ]
338
394
  }
339
395
  ),
340
- expanded && /* @__PURE__ */ jsx4("div", { className: panelClassName, children })
396
+ expanded && /* @__PURE__ */ jsx6("div", { className: panelClassName, children })
341
397
  ]
342
398
  }
343
399
  );
@@ -354,7 +410,7 @@ import {
354
410
  useRef,
355
411
  useState
356
412
  } from "react";
357
- import { Fragment, jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
413
+ import { Fragment, jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
358
414
  var TOOLTIP_MAX_WIDTH = 288;
359
415
  var TOOLTIP_VIEWPORT_MARGIN = 12;
360
416
  var Tooltip = ({
@@ -401,9 +457,9 @@ var Tooltip = ({
401
457
  );
402
458
  const cursorClass = displayContents ? "polli:contents" : "polli:cursor-help";
403
459
  const popupClasses = "polli:fixed polli:w-max polli:px-2 polli:py-1 polli:bg-theme-bg-pale polli:text-theme-text-strong polli:border polli:border-theme-border polli:text-xs polli:rounded-md polli:shadow-sm polli:z-50 polli:pointer-events-none polli:transition-opacity polli:whitespace-pre-line polli:break-words";
404
- const contentNode = /* @__PURE__ */ jsxs2(Fragment, { children: [
405
- /* @__PURE__ */ jsx5("span", { className: cursorClass, children }),
406
- /* @__PURE__ */ jsx5(
460
+ const contentNode = /* @__PURE__ */ jsxs3(Fragment, { children: [
461
+ /* @__PURE__ */ jsx7("span", { className: cursorClass, children }),
462
+ /* @__PURE__ */ jsx7(
407
463
  "span",
408
464
  {
409
465
  style: {
@@ -438,7 +494,7 @@ var Tooltip = ({
438
494
  style
439
495
  };
440
496
  if (triggerAs === "span") {
441
- return /* @__PURE__ */ jsx5(
497
+ return /* @__PURE__ */ jsx7(
442
498
  "span",
443
499
  {
444
500
  ref: (node) => {
@@ -449,7 +505,7 @@ var Tooltip = ({
449
505
  }
450
506
  );
451
507
  }
452
- return /* @__PURE__ */ jsx5(
508
+ return /* @__PURE__ */ jsx7(
453
509
  "button",
454
510
  {
455
511
  ref: (node) => {
@@ -468,7 +524,7 @@ var Tooltip = ({
468
524
  };
469
525
 
470
526
  // src/primitives/CopyButton.tsx
471
- import { jsx as jsx6 } from "react/jsx-runtime";
527
+ import { jsx as jsx8 } from "react/jsx-runtime";
472
528
  function CopyButton({
473
529
  value,
474
530
  children,
@@ -505,7 +561,7 @@ function CopyButton({
505
561
  onCopyError?.(error);
506
562
  }
507
563
  }
508
- const button = /* @__PURE__ */ jsx6(
564
+ const button = /* @__PURE__ */ jsx8(
509
565
  "button",
510
566
  {
511
567
  ...buttonProps,
@@ -517,7 +573,7 @@ function CopyButton({
517
573
  children: typeof children === "function" ? children(copied) : children
518
574
  }
519
575
  );
520
- return /* @__PURE__ */ jsx6(
576
+ return /* @__PURE__ */ jsx8(
521
577
  Tooltip,
522
578
  {
523
579
  triggerAs: "span",
@@ -531,7 +587,7 @@ function CopyButton({
531
587
  // src/primitives/Dialog.tsx
532
588
  import { Dialog as ArkDialog } from "@ark-ui/react/dialog";
533
589
  import { Portal } from "@ark-ui/react/portal";
534
- import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
590
+ import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
535
591
  var sizeClasses = {
536
592
  sm: "polli:max-w-md",
537
593
  md: "polli:max-w-xl",
@@ -554,13 +610,13 @@ var Dialog = ({
554
610
  positionerClassName,
555
611
  contentClassName,
556
612
  children
557
- }) => /* @__PURE__ */ jsxs3(
613
+ }) => /* @__PURE__ */ jsxs4(
558
614
  ArkDialog.Root,
559
615
  {
560
616
  open,
561
617
  onOpenChange: (details) => onOpenChange?.(details.open),
562
618
  children: [
563
- trigger && /* @__PURE__ */ jsx7(
619
+ trigger && /* @__PURE__ */ jsx9(
564
620
  ArkDialog.Trigger,
565
621
  {
566
622
  asChild: triggerAsChild,
@@ -568,8 +624,8 @@ var Dialog = ({
568
624
  children: trigger
569
625
  }
570
626
  ),
571
- /* @__PURE__ */ jsxs3(Portal, { children: [
572
- showBackdrop && /* @__PURE__ */ jsx7(
627
+ /* @__PURE__ */ jsxs4(Portal, { children: [
628
+ showBackdrop && /* @__PURE__ */ jsx9(
573
629
  ArkDialog.Backdrop,
574
630
  {
575
631
  className: cn2(
@@ -578,14 +634,14 @@ var Dialog = ({
578
634
  )
579
635
  }
580
636
  ),
581
- /* @__PURE__ */ jsx7(
637
+ /* @__PURE__ */ jsx9(
582
638
  ArkDialog.Positioner,
583
639
  {
584
640
  className: cn2(
585
641
  "polli:fixed polli:inset-0 polli:z-[110] polli:flex polli:h-dvh polli:items-start polli:justify-center polli:overflow-hidden polli:p-4",
586
642
  positionerClassName
587
643
  ),
588
- children: /* @__PURE__ */ jsxs3(
644
+ children: /* @__PURE__ */ jsxs4(
589
645
  ArkDialog.Content,
590
646
  {
591
647
  "data-theme": theme,
@@ -597,7 +653,7 @@ var Dialog = ({
597
653
  contentClassName
598
654
  ),
599
655
  children: [
600
- title && /* @__PURE__ */ jsx7(
656
+ title && /* @__PURE__ */ jsx9(
601
657
  DialogTitle,
602
658
  {
603
659
  className: cn2(
@@ -623,7 +679,7 @@ var DialogTitle = ArkDialog.Title;
623
679
  import { Popover } from "@ark-ui/react/popover";
624
680
  import { Portal as Portal2 } from "@ark-ui/react/portal";
625
681
  import { useState as useState3 } from "react";
626
- import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
682
+ import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
627
683
  var DEFAULT_PANEL = "polli:rounded-lg polli:border polli:border-theme-border polli:bg-surface-white polli:shadow-lg";
628
684
  var Dropdown = ({
629
685
  theme,
@@ -642,7 +698,7 @@ var Dropdown = ({
642
698
  if (!isControlled) setInternalOpen(next);
643
699
  onOpenChange?.(next);
644
700
  };
645
- return /* @__PURE__ */ jsxs4(
701
+ return /* @__PURE__ */ jsxs5(
646
702
  Popover.Root,
647
703
  {
648
704
  open,
@@ -651,8 +707,8 @@ var Dropdown = ({
651
707
  placement: align === "end" ? "bottom-end" : "bottom-start"
652
708
  },
653
709
  children: [
654
- /* @__PURE__ */ jsx8(Popover.Trigger, { asChild: true, children: trigger(open) }),
655
- /* @__PURE__ */ jsx8(Portal2, { children: /* @__PURE__ */ jsx8(Popover.Positioner, { children: /* @__PURE__ */ jsx8(
710
+ /* @__PURE__ */ jsx10(Popover.Trigger, { asChild: true, children: trigger(open) }),
711
+ /* @__PURE__ */ jsx10(Portal2, { children: /* @__PURE__ */ jsx10(Popover.Positioner, { children: /* @__PURE__ */ jsx10(
656
712
  Popover.Content,
657
713
  {
658
714
  "data-theme": theme,
@@ -670,7 +726,7 @@ var Dropdown = ({
670
726
  };
671
727
 
672
728
  // src/primitives/icons/index.tsx
673
- import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
729
+ import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
674
730
  var strokeProps = {
675
731
  fill: "none",
676
732
  stroke: "currentColor",
@@ -679,26 +735,26 @@ var strokeProps = {
679
735
  strokeLinejoin: "round"
680
736
  };
681
737
  function AppIcon(props) {
682
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
683
- /* @__PURE__ */ jsx9("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2" }),
684
- /* @__PURE__ */ jsx9("path", { d: "M2 20h20" })
738
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
739
+ /* @__PURE__ */ jsx11("rect", { x: "2", y: "4", width: "20", height: "14", rx: "2" }),
740
+ /* @__PURE__ */ jsx11("path", { d: "M2 20h20" })
685
741
  ] });
686
742
  }
687
743
  function BeakerIcon(props) {
688
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
689
- /* @__PURE__ */ jsx9("path", { d: "M9 3h6" }),
690
- /* @__PURE__ */ jsx9("path", { d: "M10 3v6.5L4.5 18a2 2 0 0 0 1.7 3h11.6a2 2 0 0 0 1.7-3L14 9.5V3" }),
691
- /* @__PURE__ */ jsx9("path", { d: "M7 14h10" })
744
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
745
+ /* @__PURE__ */ jsx11("path", { d: "M9 3h6" }),
746
+ /* @__PURE__ */ jsx11("path", { d: "M10 3v6.5L4.5 18a2 2 0 0 0 1.7 3h11.6a2 2 0 0 0 1.7-3L14 9.5V3" }),
747
+ /* @__PURE__ */ jsx11("path", { d: "M7 14h10" })
692
748
  ] });
693
749
  }
694
750
  function BookIcon(props) {
695
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
696
- /* @__PURE__ */ jsx9("path", { d: "M4 4h5a3 3 0 0 1 3 3v13a2 2 0 0 0-2-2H4z" }),
697
- /* @__PURE__ */ jsx9("path", { d: "M20 4h-5a3 3 0 0 0-3 3v13a2 2 0 0 1 2-2h6z" })
751
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
752
+ /* @__PURE__ */ jsx11("path", { d: "M4 4h5a3 3 0 0 1 3 3v13a2 2 0 0 0-2-2H4z" }),
753
+ /* @__PURE__ */ jsx11("path", { d: "M20 4h-5a3 3 0 0 0-3 3v13a2 2 0 0 1 2-2h6z" })
698
754
  ] });
699
755
  }
700
756
  function CheckIcon(props) {
701
- return /* @__PURE__ */ jsx9(
757
+ return /* @__PURE__ */ jsx11(
702
758
  "svg",
703
759
  {
704
760
  "aria-hidden": "true",
@@ -706,24 +762,24 @@ function CheckIcon(props) {
706
762
  ...strokeProps,
707
763
  strokeWidth: 2.5,
708
764
  ...props,
709
- children: /* @__PURE__ */ jsx9("polyline", { points: "20 6 9 17 4 12" })
765
+ children: /* @__PURE__ */ jsx11("polyline", { points: "20 6 9 17 4 12" })
710
766
  }
711
767
  );
712
768
  }
713
769
  function ClipboardIcon(props) {
714
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
715
- /* @__PURE__ */ jsx9("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }),
716
- /* @__PURE__ */ jsx9("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
770
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
771
+ /* @__PURE__ */ jsx11("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }),
772
+ /* @__PURE__ */ jsx11("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
717
773
  ] });
718
774
  }
719
775
  function ClockIcon(props) {
720
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
721
- /* @__PURE__ */ jsx9("circle", { cx: "12", cy: "12", r: "9" }),
722
- /* @__PURE__ */ jsx9("path", { d: "M12 7v5l3 2" })
776
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
777
+ /* @__PURE__ */ jsx11("circle", { cx: "12", cy: "12", r: "9" }),
778
+ /* @__PURE__ */ jsx11("path", { d: "M12 7v5l3 2" })
723
779
  ] });
724
780
  }
725
781
  function DiscordIcon(props) {
726
- return /* @__PURE__ */ jsx9("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx9(
782
+ return /* @__PURE__ */ jsx11("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx11(
727
783
  "path",
728
784
  {
729
785
  fill: "currentColor",
@@ -732,23 +788,23 @@ function DiscordIcon(props) {
732
788
  ) });
733
789
  }
734
790
  function DownloadIcon(props) {
735
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
736
- /* @__PURE__ */ jsx9("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
737
- /* @__PURE__ */ jsx9("polyline", { points: "7 10 12 15 17 10" }),
738
- /* @__PURE__ */ jsx9("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
791
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
792
+ /* @__PURE__ */ jsx11("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
793
+ /* @__PURE__ */ jsx11("polyline", { points: "7 10 12 15 17 10" }),
794
+ /* @__PURE__ */ jsx11("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
739
795
  ] });
740
796
  }
741
797
  function ExternalLinkIcon(props) {
742
- return /* @__PURE__ */ jsx9("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx9("path", { d: "M7 17 17 7M9 7h8v8" }) });
798
+ return /* @__PURE__ */ jsx11("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx11("path", { d: "M7 17 17 7M9 7h8v8" }) });
743
799
  }
744
800
  function GenApiIcon(props) {
745
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
746
- /* @__PURE__ */ jsx9("path", { d: "m8 3 4 1.5L16 3v18l-4-1.5L8 21z" }),
747
- /* @__PURE__ */ jsx9("path", { d: "M8 3v18M16 3v18" })
801
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
802
+ /* @__PURE__ */ jsx11("path", { d: "m8 3 4 1.5L16 3v18l-4-1.5L8 21z" }),
803
+ /* @__PURE__ */ jsx11("path", { d: "M8 3v18M16 3v18" })
748
804
  ] });
749
805
  }
750
806
  function GitHubIcon(props) {
751
- return /* @__PURE__ */ jsx9("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx9(
807
+ return /* @__PURE__ */ jsx11("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", ...props, children: /* @__PURE__ */ jsx11(
752
808
  "path",
753
809
  {
754
810
  fill: "currentColor",
@@ -757,69 +813,69 @@ function GitHubIcon(props) {
757
813
  ) });
758
814
  }
759
815
  function ImageIcon(props) {
760
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
761
- /* @__PURE__ */ jsx9("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
762
- /* @__PURE__ */ jsx9("circle", { cx: "9", cy: "9", r: "2" }),
763
- /* @__PURE__ */ jsx9("path", { d: "m21 15-5-5L5 21" })
816
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
817
+ /* @__PURE__ */ jsx11("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }),
818
+ /* @__PURE__ */ jsx11("circle", { cx: "9", cy: "9", r: "2" }),
819
+ /* @__PURE__ */ jsx11("path", { d: "m21 15-5-5L5 21" })
764
820
  ] });
765
821
  }
766
822
  function LockIcon(props) {
767
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
768
- /* @__PURE__ */ jsx9("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }),
769
- /* @__PURE__ */ jsx9("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
823
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
824
+ /* @__PURE__ */ jsx11("rect", { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }),
825
+ /* @__PURE__ */ jsx11("path", { d: "M7 11V7a5 5 0 0 1 10 0v4" })
770
826
  ] });
771
827
  }
772
828
  function MailIcon(props) {
773
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
774
- /* @__PURE__ */ jsx9("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
775
- /* @__PURE__ */ jsx9("path", { d: "m3 7 9 7 9-7" })
829
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
830
+ /* @__PURE__ */ jsx11("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
831
+ /* @__PURE__ */ jsx11("path", { d: "m3 7 9 7 9-7" })
776
832
  ] });
777
833
  }
778
834
  function McpIcon(props) {
779
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
780
- /* @__PURE__ */ jsx9("rect", { x: "2", y: "7", width: "8", height: "10", rx: "1.5" }),
781
- /* @__PURE__ */ jsx9("rect", { x: "14", y: "7", width: "8", height: "10", rx: "1.5" }),
782
- /* @__PURE__ */ jsx9("path", { d: "M10 12h4" })
835
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
836
+ /* @__PURE__ */ jsx11("rect", { x: "2", y: "7", width: "8", height: "10", rx: "1.5" }),
837
+ /* @__PURE__ */ jsx11("rect", { x: "14", y: "7", width: "8", height: "10", rx: "1.5" }),
838
+ /* @__PURE__ */ jsx11("path", { d: "M10 12h4" })
783
839
  ] });
784
840
  }
785
841
  function MenuIcon(props) {
786
- return /* @__PURE__ */ jsx9("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx9("path", { d: "M4 7h16M4 12h16M4 17h16" }) });
842
+ return /* @__PURE__ */ jsx11("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx11("path", { d: "M4 7h16M4 12h16M4 17h16" }) });
787
843
  }
788
844
  function TerminalIcon(props) {
789
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
790
- /* @__PURE__ */ jsx9("polyline", { points: "4 8 8 12 4 16" }),
791
- /* @__PURE__ */ jsx9("line", { x1: "12", y1: "20", x2: "20", y2: "20" })
845
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
846
+ /* @__PURE__ */ jsx11("polyline", { points: "4 8 8 12 4 16" }),
847
+ /* @__PURE__ */ jsx11("line", { x1: "12", y1: "20", x2: "20", y2: "20" })
792
848
  ] });
793
849
  }
794
850
  function TokensIcon(props) {
795
- return /* @__PURE__ */ jsx9("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx9("path", { d: "M4 9h16M4 15h16M10 3 8 21M16 3l-2 18" }) });
851
+ return /* @__PURE__ */ jsx11("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx11("path", { d: "M4 9h16M4 15h16M10 3 8 21M16 3l-2 18" }) });
796
852
  }
797
853
  function TrendUpIcon(props) {
798
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
799
- /* @__PURE__ */ jsx9("polyline", { points: "3 17 9 11 13 15 21 7" }),
800
- /* @__PURE__ */ jsx9("polyline", { points: "15 7 21 7 21 13" })
854
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
855
+ /* @__PURE__ */ jsx11("polyline", { points: "3 17 9 11 13 15 21 7" }),
856
+ /* @__PURE__ */ jsx11("polyline", { points: "15 7 21 7 21 13" })
801
857
  ] });
802
858
  }
803
859
  function WalletIcon(props) {
804
- return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
805
- /* @__PURE__ */ jsx9("path", { d: "M3 7a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2v2H5a2 2 0 0 0-2 2V7Z" }),
806
- /* @__PURE__ */ jsx9("path", { d: "M3 11a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6Z" }),
807
- /* @__PURE__ */ jsx9("circle", { cx: "17", cy: "14", r: "1.25", fill: "currentColor" })
860
+ return /* @__PURE__ */ jsxs6("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: [
861
+ /* @__PURE__ */ jsx11("path", { d: "M3 7a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2v2H5a2 2 0 0 0-2 2V7Z" }),
862
+ /* @__PURE__ */ jsx11("path", { d: "M3 11a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6Z" }),
863
+ /* @__PURE__ */ jsx11("circle", { cx: "17", cy: "14", r: "1.25", fill: "currentColor" })
808
864
  ] });
809
865
  }
810
866
  function XIcon(props) {
811
- return /* @__PURE__ */ jsx9("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx9("path", { d: "M18 6 6 18M6 6l12 12" }) });
867
+ return /* @__PURE__ */ jsx11("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", ...strokeProps, ...props, children: /* @__PURE__ */ jsx11("path", { d: "M18 6 6 18M6 6l12 12" }) });
812
868
  }
813
869
 
814
870
  // src/primitives/ExternalLinkButton.tsx
815
- import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
871
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
816
872
  var ExternalLinkButton = ({
817
873
  theme,
818
874
  href,
819
875
  size = "medium",
820
876
  className,
821
877
  children
822
- }) => /* @__PURE__ */ jsxs6(
878
+ }) => /* @__PURE__ */ jsxs7(
823
879
  Button,
824
880
  {
825
881
  as: "a",
@@ -830,8 +886,8 @@ var ExternalLinkButton = ({
830
886
  size,
831
887
  className: cn2("polli:gap-2", className),
832
888
  children: [
833
- /* @__PURE__ */ jsx10("span", { children }),
834
- /* @__PURE__ */ jsx10(
889
+ /* @__PURE__ */ jsx12("span", { children }),
890
+ /* @__PURE__ */ jsx12(
835
891
  ExternalLinkIcon,
836
892
  {
837
893
  className: "polli:h-4 polli:w-4 polli:shrink-0 polli:opacity-60",
@@ -846,8 +902,8 @@ var ExternalLinkButton = ({
846
902
  import { Field } from "@ark-ui/react/field";
847
903
 
848
904
  // src/primitives/IconButton.tsx
849
- import { jsx as jsx11 } from "react/jsx-runtime";
850
- var intentClasses3 = {
905
+ import { jsx as jsx13 } from "react/jsx-runtime";
906
+ var intentClasses4 = {
851
907
  danger: "polli:bg-intent-danger-bg-light polli:hover:bg-[oklch(0.88_0.075_25)] polli:text-intent-danger-text"
852
908
  };
853
909
  var defaultClasses = "polli:bg-theme-bg-active polli:hover:bg-theme-bg-hover polli:text-theme-text-soft polli:hover:text-theme-text-strong";
@@ -857,7 +913,7 @@ var IconButton = ({
857
913
  onClick,
858
914
  children,
859
915
  className
860
- }) => /* @__PURE__ */ jsx11(
916
+ }) => /* @__PURE__ */ jsx13(
861
917
  "button",
862
918
  {
863
919
  type: "button",
@@ -866,7 +922,7 @@ var IconButton = ({
866
922
  "aria-label": title,
867
923
  className: cn2(
868
924
  "polli:inline-flex polli:h-6 polli:w-6 polli:cursor-pointer polli:items-center polli:justify-center polli:rounded polli:transition-colors",
869
- intent ? intentClasses3[intent] : defaultClasses,
925
+ intent ? intentClasses4[intent] : defaultClasses,
870
926
  className
871
927
  ),
872
928
  children
@@ -874,18 +930,18 @@ var IconButton = ({
874
930
  );
875
931
 
876
932
  // src/primitives/InfoTip.tsx
877
- import { jsx as jsx12 } from "react/jsx-runtime";
933
+ import { jsx as jsx14 } from "react/jsx-runtime";
878
934
  var InfoTip = ({
879
935
  text,
880
936
  content,
881
937
  label = "More info"
882
- }) => /* @__PURE__ */ jsx12(Tooltip, { content: content ?? text, ariaLabel: label, className: "polli:ml-1", children: /* @__PURE__ */ jsx12("span", { className: "polli:inline-flex polli:h-3.5 polli:w-3.5 polli:items-center polli:justify-center polli:rounded-full polli:border polli:border-theme-border polli:bg-theme-bg-active polli:font-bold polli:text-micro polli:text-theme-text-strong polli:transition-colors", children: "i" }) });
938
+ }) => /* @__PURE__ */ jsx14(Tooltip, { content: content ?? text, ariaLabel: label, className: "polli:ml-1", children: /* @__PURE__ */ jsx14("span", { className: "polli:inline-flex polli:h-3.5 polli:w-3.5 polli:items-center polli:justify-center polli:rounded-full polli:border polli:border-theme-border polli:bg-theme-bg-active polli:font-bold polli:text-micro polli:text-theme-text-strong polli:transition-colors", children: "i" }) });
883
939
 
884
940
  // src/primitives/Input.tsx
885
941
  import { forwardRef } from "react";
886
- import { jsx as jsx13 } from "react/jsx-runtime";
942
+ import { jsx as jsx15 } from "react/jsx-runtime";
887
943
  var Input = forwardRef(
888
- ({ className, error, hideNumberSteppers, ...props }, ref) => /* @__PURE__ */ jsx13(
944
+ ({ className, error, hideNumberSteppers, ...props }, ref) => /* @__PURE__ */ jsx15(
889
945
  "input",
890
946
  {
891
947
  ref,
@@ -908,18 +964,17 @@ import {
908
964
  useEffect as useEffect3,
909
965
  useRef as useRef3
910
966
  } from "react";
911
- import { jsx as jsx14 } from "react/jsx-runtime";
967
+ import { jsx as jsx16 } from "react/jsx-runtime";
912
968
  var axisClasses = {
913
969
  y: "polli:overflow-y-auto polli:overflow-x-hidden",
914
- x: "polli:overflow-x-auto polli:overflow-y-hidden",
915
- both: "polli:overflow-auto"
970
+ x: "polli:overflow-x-auto polli:overflow-y-hidden"
916
971
  };
917
972
  function assignRef(ref, value) {
918
973
  if (typeof ref === "function") ref(value);
919
974
  else if (ref) ref.current = value;
920
975
  }
921
976
  var ScrollArea = forwardRef2(
922
- ({ theme, axis = "y", hideDelayMs = 2e3, className, children, ...rest }, externalRef) => {
977
+ ({ theme, axis = "y", className, children, ...rest }, externalRef) => {
923
978
  const innerRef = useRef3(null);
924
979
  const setRef = useCallback(
925
980
  (node) => {
@@ -948,7 +1003,7 @@ var ScrollArea = forwardRef2(
948
1003
  };
949
1004
  const scheduleHide = () => {
950
1005
  clearHideTimer();
951
- hideTimer = window.setTimeout(hide, hideDelayMs);
1006
+ hideTimer = window.setTimeout(hide, 2e3);
952
1007
  };
953
1008
  const handleInteraction = () => {
954
1009
  show();
@@ -978,15 +1033,15 @@ var ScrollArea = forwardRef2(
978
1033
  element.removeEventListener("focusin", handleInteraction);
979
1034
  element.removeEventListener("focusout", scheduleHide);
980
1035
  };
981
- }, [hideDelayMs]);
982
- return /* @__PURE__ */ jsx14(
1036
+ }, []);
1037
+ return /* @__PURE__ */ jsx16(
983
1038
  "div",
984
1039
  {
985
1040
  ...rest,
986
1041
  ref: setRef,
987
1042
  "data-theme": theme,
988
1043
  className: cn2(
989
- "polli-scrollbar-subtle",
1044
+ "polli-scrollbar-subtle polli:min-w-0 polli:max-w-full",
990
1045
  axisClasses[axis],
991
1046
  className
992
1047
  ),
@@ -998,7 +1053,7 @@ var ScrollArea = forwardRef2(
998
1053
  ScrollArea.displayName = "ScrollArea";
999
1054
 
1000
1055
  // src/primitives/MultiSelect.tsx
1001
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
1056
+ import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1002
1057
  var TRIGGER_BASE = "polli:inline-flex polli:min-h-8 polli:min-w-[140px] polli:items-center polli:gap-2 polli:rounded-full polli:border polli:px-3 polli:py-1.5 polli:text-xs polli:font-medium polli:transition-all polli:duration-200";
1003
1058
  var ROW_BASE = "polli:flex polli:w-full polli:items-center polli:gap-3 polli:px-3 polli:py-2 polli:text-left polli:text-xs polli:transition-colors";
1004
1059
  var CHECK_BASE = "polli:flex polli:h-4 polli:w-4 polli:flex-shrink-0 polli:items-center polli:justify-center polli:rounded polli:border polli:border-theme-border polli:text-xs";
@@ -1023,16 +1078,16 @@ var MultiSelect = ({
1023
1078
  };
1024
1079
  const selectAll = () => onChange([]);
1025
1080
  const displayText = disabled ? disabledText : isAllSelected ? "All" : `${selected.length} selected`;
1026
- const labelNode = label ? /* @__PURE__ */ jsx15("span", { className: "polli:text-xs polli:font-medium polli:text-theme-text-soft", children: label }) : null;
1081
+ const labelNode = label ? /* @__PURE__ */ jsx17("span", { className: "polli:text-xs polli:font-medium polli:text-theme-text-soft", children: label }) : null;
1027
1082
  if (disabled) {
1028
- return /* @__PURE__ */ jsxs7(
1083
+ return /* @__PURE__ */ jsxs8(
1029
1084
  "div",
1030
1085
  {
1031
1086
  "data-theme": theme,
1032
1087
  className: "polli:group polli:relative polli:flex polli:items-center polli:gap-2",
1033
1088
  children: [
1034
1089
  labelNode,
1035
- /* @__PURE__ */ jsxs7(
1090
+ /* @__PURE__ */ jsxs8(
1036
1091
  "button",
1037
1092
  {
1038
1093
  type: "button",
@@ -1042,8 +1097,8 @@ var MultiSelect = ({
1042
1097
  "polli:cursor-not-allowed polli:border-theme-border polli:bg-theme-bg-subtle polli:opacity-60"
1043
1098
  ),
1044
1099
  children: [
1045
- /* @__PURE__ */ jsx15("span", { className: "polli:flex-1 polli:truncate polli:text-left polli:text-theme-text-soft/60", children: displayText }),
1046
- /* @__PURE__ */ jsx15(
1100
+ /* @__PURE__ */ jsx17("span", { className: "polli:flex-1 polli:truncate polli:text-left polli:text-theme-text-soft/60", children: displayText }),
1101
+ /* @__PURE__ */ jsx17(
1047
1102
  ChevronIcon,
1048
1103
  {
1049
1104
  expanded: false,
@@ -1053,25 +1108,25 @@ var MultiSelect = ({
1053
1108
  ]
1054
1109
  }
1055
1110
  ),
1056
- /* @__PURE__ */ jsx15("span", { className: "polli:pointer-events-none polli:absolute polli:-top-8 polli:left-1/2 polli:z-[100] polli:-translate-x-1/2 polli:whitespace-nowrap polli:rounded-md polli:border polli:border-theme-border polli:bg-theme-bg-pale polli:px-2 polli:py-1 polli:text-xs polli:text-theme-text-strong polli:opacity-0 polli:shadow-sm polli:transition-opacity polli:group-hover:opacity-100", children: "No items available" })
1111
+ /* @__PURE__ */ jsx17("span", { className: "polli:pointer-events-none polli:absolute polli:-top-8 polli:left-1/2 polli:z-[100] polli:-translate-x-1/2 polli:whitespace-nowrap polli:rounded-md polli:border polli:border-theme-border polli:bg-theme-bg-pale polli:px-2 polli:py-1 polli:text-xs polli:text-theme-text-strong polli:opacity-0 polli:shadow-sm polli:transition-opacity polli:group-hover:opacity-100", children: "No items available" })
1057
1112
  ]
1058
1113
  }
1059
1114
  );
1060
1115
  }
1061
- return /* @__PURE__ */ jsxs7(
1116
+ return /* @__PURE__ */ jsxs8(
1062
1117
  "div",
1063
1118
  {
1064
1119
  "data-theme": theme,
1065
1120
  className: "polli:flex polli:items-center polli:gap-2",
1066
1121
  children: [
1067
1122
  labelNode,
1068
- /* @__PURE__ */ jsx15(
1123
+ /* @__PURE__ */ jsx17(
1069
1124
  Dropdown,
1070
1125
  {
1071
1126
  theme,
1072
1127
  align,
1073
1128
  className: "polli:min-w-[320px]",
1074
- trigger: (open) => /* @__PURE__ */ jsxs7(
1129
+ trigger: (open) => /* @__PURE__ */ jsxs8(
1075
1130
  "button",
1076
1131
  {
1077
1132
  type: "button",
@@ -1080,7 +1135,7 @@ var MultiSelect = ({
1080
1135
  open ? "polli:border-theme-border polli:bg-theme-bg-active" : "polli:border-theme-border polli:bg-theme-bg-subtle polli:hover:bg-theme-bg-pale"
1081
1136
  ),
1082
1137
  children: [
1083
- /* @__PURE__ */ jsx15(
1138
+ /* @__PURE__ */ jsx17(
1084
1139
  "span",
1085
1140
  {
1086
1141
  className: cn2(
@@ -1090,7 +1145,7 @@ var MultiSelect = ({
1090
1145
  children: displayText
1091
1146
  }
1092
1147
  ),
1093
- /* @__PURE__ */ jsx15(
1148
+ /* @__PURE__ */ jsx17(
1094
1149
  ChevronIcon,
1095
1150
  {
1096
1151
  expanded: open,
@@ -1103,8 +1158,8 @@ var MultiSelect = ({
1103
1158
  ]
1104
1159
  }
1105
1160
  ),
1106
- children: /* @__PURE__ */ jsxs7(ScrollArea, { theme, className: "polli:max-h-64", children: [
1107
- /* @__PURE__ */ jsxs7(
1161
+ children: /* @__PURE__ */ jsxs8(ScrollArea, { theme, className: "polli:max-h-64", children: [
1162
+ /* @__PURE__ */ jsxs8(
1108
1163
  "button",
1109
1164
  {
1110
1165
  type: "button",
@@ -1114,7 +1169,7 @@ var MultiSelect = ({
1114
1169
  isAllSelected ? "polli:bg-theme-bg-active polli:font-medium polli:text-theme-text-strong" : "polli:text-theme-text-base polli:hover:bg-theme-bg-subtle"
1115
1170
  ),
1116
1171
  children: [
1117
- /* @__PURE__ */ jsx15(
1172
+ /* @__PURE__ */ jsx17(
1118
1173
  "span",
1119
1174
  {
1120
1175
  className: cn2(
@@ -1130,7 +1185,7 @@ var MultiSelect = ({
1130
1185
  ),
1131
1186
  options.map((opt) => {
1132
1187
  const isChecked = selected.includes(opt.value);
1133
- return /* @__PURE__ */ jsxs7(
1188
+ return /* @__PURE__ */ jsxs8(
1134
1189
  "button",
1135
1190
  {
1136
1191
  type: "button",
@@ -1140,7 +1195,7 @@ var MultiSelect = ({
1140
1195
  isChecked ? "polli:bg-theme-bg-active polli:text-theme-text-strong" : "polli:text-theme-text-base polli:hover:bg-theme-bg-subtle"
1141
1196
  ),
1142
1197
  children: [
1143
- /* @__PURE__ */ jsx15(
1198
+ /* @__PURE__ */ jsx17(
1144
1199
  "span",
1145
1200
  {
1146
1201
  className: cn2(
@@ -1150,7 +1205,7 @@ var MultiSelect = ({
1150
1205
  children: isChecked && "\u2713"
1151
1206
  }
1152
1207
  ),
1153
- /* @__PURE__ */ jsx15("span", { className: "polli:whitespace-nowrap", children: opt.label })
1208
+ /* @__PURE__ */ jsx17("span", { className: "polli:whitespace-nowrap", children: opt.label })
1154
1209
  ]
1155
1210
  },
1156
1211
  opt.value
@@ -1168,7 +1223,7 @@ var MultiSelect = ({
1168
1223
  import { useEffect as useEffect4, useMemo, useState as useState4 } from "react";
1169
1224
 
1170
1225
  // src/primitives/TabButton.tsx
1171
- import { jsx as jsx16 } from "react/jsx-runtime";
1226
+ import { jsx as jsx18 } from "react/jsx-runtime";
1172
1227
  var sizeClasses2 = {
1173
1228
  medium: "polli:px-4 polli:py-1.5 polli:text-base",
1174
1229
  small: "polli:px-3 polli:py-1.5 polli:text-sm"
@@ -1183,7 +1238,7 @@ var TabButton = ({
1183
1238
  disabled = false,
1184
1239
  className
1185
1240
  }) => {
1186
- return /* @__PURE__ */ jsx16(
1241
+ return /* @__PURE__ */ jsx18(
1187
1242
  "button",
1188
1243
  {
1189
1244
  type: "button",
@@ -1205,7 +1260,7 @@ var TabButton = ({
1205
1260
  };
1206
1261
 
1207
1262
  // src/primitives/PeriodPicker.tsx
1208
- import { Fragment as Fragment2, jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1263
+ import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
1209
1264
  var WEEKDAY_LABELS = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
1210
1265
  var MONTH_LABELS = [
1211
1266
  "Jan",
@@ -1285,14 +1340,14 @@ var PeriodPicker = ({
1285
1340
  month: "long",
1286
1341
  year: "numeric"
1287
1342
  });
1288
- return /* @__PURE__ */ jsxs8(
1343
+ return /* @__PURE__ */ jsxs9(
1289
1344
  "div",
1290
1345
  {
1291
1346
  "data-theme": theme,
1292
1347
  className: "polli:flex polli:flex-wrap polli:items-center polli:gap-2",
1293
1348
  children: [
1294
- /* @__PURE__ */ jsx17("div", { className: "polli:flex polli:flex-wrap polli:gap-1.5", children: ["day", "week", "month"].map(
1295
- (granularity2) => /* @__PURE__ */ jsx17(
1349
+ /* @__PURE__ */ jsx19("div", { className: "polli:flex polli:flex-wrap polli:gap-1.5", children: ["day", "week", "month"].map(
1350
+ (granularity2) => /* @__PURE__ */ jsx19(
1296
1351
  TabButton,
1297
1352
  {
1298
1353
  active: value.granularity === granularity2,
@@ -1302,14 +1357,14 @@ var PeriodPicker = ({
1302
1357
  granularity2
1303
1358
  )
1304
1359
  ) }),
1305
- /* @__PURE__ */ jsxs8(
1360
+ /* @__PURE__ */ jsxs9(
1306
1361
  Dropdown,
1307
1362
  {
1308
1363
  theme,
1309
1364
  open,
1310
1365
  onOpenChange: setOpen,
1311
1366
  className: "polli:w-[304px] polli:rounded-xl polli:p-3",
1312
- trigger: (isOpen) => /* @__PURE__ */ jsxs8(
1367
+ trigger: (isOpen) => /* @__PURE__ */ jsxs9(
1313
1368
  "button",
1314
1369
  {
1315
1370
  type: "button",
@@ -1321,14 +1376,14 @@ var PeriodPicker = ({
1321
1376
  isOpen && "polli:bg-theme-bg-active polli:text-theme-text-strong polli:shadow-sm"
1322
1377
  ),
1323
1378
  children: [
1324
- /* @__PURE__ */ jsx17("span", { children: formatPeriodLabel(value) }),
1325
- /* @__PURE__ */ jsx17(ChevronIcon, { expanded: isOpen })
1379
+ /* @__PURE__ */ jsx19("span", { children: formatPeriodLabel(value) }),
1380
+ /* @__PURE__ */ jsx19(ChevronIcon, { expanded: isOpen })
1326
1381
  ]
1327
1382
  }
1328
1383
  ),
1329
1384
  children: [
1330
- /* @__PURE__ */ jsxs8("div", { className: "polli:mb-3 polli:flex polli:items-center polli:justify-between", children: [
1331
- /* @__PURE__ */ jsx17(
1385
+ /* @__PURE__ */ jsxs9("div", { className: "polli:mb-3 polli:flex polli:items-center polli:justify-between", children: [
1386
+ /* @__PURE__ */ jsx19(
1332
1387
  "button",
1333
1388
  {
1334
1389
  type: "button",
@@ -1342,8 +1397,8 @@ var PeriodPicker = ({
1342
1397
  children: "<"
1343
1398
  }
1344
1399
  ),
1345
- /* @__PURE__ */ jsx17("div", { className: "polli:text-sm polli:font-bold polli:text-theme-text-base", children: viewLabel }),
1346
- /* @__PURE__ */ jsx17(
1400
+ /* @__PURE__ */ jsx19("div", { className: "polli:text-sm polli:font-bold polli:text-theme-text-base", children: viewLabel }),
1401
+ /* @__PURE__ */ jsx19(
1347
1402
  "button",
1348
1403
  {
1349
1404
  type: "button",
@@ -1358,7 +1413,7 @@ var PeriodPicker = ({
1358
1413
  }
1359
1414
  )
1360
1415
  ] }),
1361
- value.granularity === "month" ? /* @__PURE__ */ jsx17("div", { className: "polli:grid polli:grid-cols-3 polli:gap-1.5", children: MONTH_LABELS.map((label, monthIndex) => {
1416
+ value.granularity === "month" ? /* @__PURE__ */ jsx19("div", { className: "polli:grid polli:grid-cols-3 polli:gap-1.5", children: MONTH_LABELS.map((label, monthIndex) => {
1362
1417
  const date = new Date(
1363
1418
  Date.UTC(
1364
1419
  viewDate.getUTCFullYear(),
@@ -1377,7 +1432,7 @@ var PeriodPicker = ({
1377
1432
  year: "numeric"
1378
1433
  });
1379
1434
  const selected = date.getUTCFullYear() === selectedWindow.start.getUTCFullYear() && date.getUTCMonth() === selectedWindow.start.getUTCMonth();
1380
- return /* @__PURE__ */ jsx17(
1435
+ return /* @__PURE__ */ jsx19(
1381
1436
  "button",
1382
1437
  {
1383
1438
  type: "button",
@@ -1393,9 +1448,9 @@ var PeriodPicker = ({
1393
1448
  },
1394
1449
  label
1395
1450
  );
1396
- }) }) : /* @__PURE__ */ jsxs8(Fragment2, { children: [
1397
- /* @__PURE__ */ jsx17("div", { className: "polli:mb-1 polli:grid polli:grid-cols-7 polli:gap-1 polli:text-center polli:text-micro polli:font-bold polli:uppercase polli:text-gray-400", children: WEEKDAY_LABELS.map((label) => /* @__PURE__ */ jsx17("div", { children: label }, label)) }),
1398
- /* @__PURE__ */ jsx17("div", { className: "polli:grid polli:grid-cols-7 polli:gap-1", children: dates.map((date) => {
1451
+ }) }) : /* @__PURE__ */ jsxs9(Fragment2, { children: [
1452
+ /* @__PURE__ */ jsx19("div", { className: "polli:mb-1 polli:grid polli:grid-cols-7 polli:gap-1 polli:text-center polli:text-micro polli:font-bold polli:uppercase polli:text-gray-400", children: WEEKDAY_LABELS.map((label) => /* @__PURE__ */ jsx19("div", { children: label }, label)) }),
1453
+ /* @__PURE__ */ jsx19("div", { className: "polli:grid polli:grid-cols-7 polli:gap-1", children: dates.map((date) => {
1399
1454
  const inCurrentMonth = date.getUTCMonth() === viewDate.getUTCMonth();
1400
1455
  const selectable = isPeriodSelectable(
1401
1456
  periodFromDate(value.granularity, date),
@@ -1413,7 +1468,7 @@ var PeriodPicker = ({
1413
1468
  }
1414
1469
  )}`;
1415
1470
  const selected = value.granularity === "day" ? sameUtcDay(date, selectedWindow.start) : date >= selectedWindow.start && date < selectedWindow.end;
1416
- return /* @__PURE__ */ jsx17(
1471
+ return /* @__PURE__ */ jsx19(
1417
1472
  "button",
1418
1473
  {
1419
1474
  type: "button",
@@ -1442,7 +1497,7 @@ var PeriodPicker = ({
1442
1497
  };
1443
1498
 
1444
1499
  // src/primitives/Surface.tsx
1445
- import { jsx as jsx18 } from "react/jsx-runtime";
1500
+ import { jsx as jsx20 } from "react/jsx-runtime";
1446
1501
  var variantClasses = {
1447
1502
  panel: "polli:rounded-2xl polli:border polli:border-theme-border polli:bg-theme-bg-subtle polli:p-6",
1448
1503
  card: "polli:rounded-xl polli:bg-surface-white polli:p-4",
@@ -1454,7 +1509,7 @@ var Surface = ({
1454
1509
  className,
1455
1510
  children,
1456
1511
  ...rest
1457
- }) => /* @__PURE__ */ jsx18(
1512
+ }) => /* @__PURE__ */ jsx20(
1458
1513
  "div",
1459
1514
  {
1460
1515
  ...rest,
@@ -1465,7 +1520,7 @@ var Surface = ({
1465
1520
  );
1466
1521
 
1467
1522
  // src/primitives/Section.tsx
1468
- import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
1523
+ import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
1469
1524
  var Section = ({
1470
1525
  title,
1471
1526
  theme,
@@ -1475,9 +1530,9 @@ var Section = ({
1475
1530
  actionClassName,
1476
1531
  children,
1477
1532
  className
1478
- }) => /* @__PURE__ */ jsxs9("section", { id, className: cn2("scroll-mt-10 space-y-2", className), children: [
1479
- /* @__PURE__ */ jsxs9("div", { className: "flex flex-wrap items-center justify-between gap-3 px-1", children: [
1480
- /* @__PURE__ */ jsx19(
1533
+ }) => /* @__PURE__ */ jsxs10("section", { id, className: cn2("scroll-mt-10 space-y-2", className), children: [
1534
+ /* @__PURE__ */ jsxs10("div", { className: "flex flex-wrap items-center justify-between gap-3 px-1", children: [
1535
+ /* @__PURE__ */ jsx21(
1481
1536
  "h2",
1482
1537
  {
1483
1538
  "data-theme": theme,
@@ -1485,14 +1540,14 @@ var Section = ({
1485
1540
  children: title
1486
1541
  }
1487
1542
  ),
1488
- action && /* @__PURE__ */ jsx19("div", { className: cn2("shrink-0", actionClassName), children: action })
1543
+ action && /* @__PURE__ */ jsx21("div", { className: cn2("shrink-0", actionClassName), children: action })
1489
1544
  ] }),
1490
- framed ? /* @__PURE__ */ jsx19(Surface, { variant: "panel", theme, children }) : children
1545
+ framed ? /* @__PURE__ */ jsx21(Surface, { variant: "panel", theme, children }) : children
1491
1546
  ] });
1492
1547
 
1493
1548
  // src/primitives/Slider.tsx
1494
1549
  import { forwardRef as forwardRef3 } from "react";
1495
- import { jsx as jsx20 } from "react/jsx-runtime";
1550
+ import { jsx as jsx22 } from "react/jsx-runtime";
1496
1551
  var toNumber = (value) => {
1497
1552
  if (typeof value === "number") return value;
1498
1553
  if (typeof value !== "string" || value.trim() === "") return void 0;
@@ -1532,7 +1587,7 @@ var Slider = forwardRef3(
1532
1587
  ...style,
1533
1588
  ...progressPercent === void 0 ? null : { "--polli-slider-progress": `${progressPercent}%` }
1534
1589
  };
1535
- return /* @__PURE__ */ jsx20(
1590
+ return /* @__PURE__ */ jsx22(
1536
1591
  "input",
1537
1592
  {
1538
1593
  ref,
@@ -1550,7 +1605,7 @@ var Slider = forwardRef3(
1550
1605
  );
1551
1606
 
1552
1607
  // src/primitives/StatCard.tsx
1553
- import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
1608
+ import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
1554
1609
  var StatCard = ({
1555
1610
  label,
1556
1611
  value,
@@ -1560,8 +1615,8 @@ var StatCard = ({
1560
1615
  labelClassName,
1561
1616
  valueClassName,
1562
1617
  detailClassName
1563
- }) => /* @__PURE__ */ jsxs10("div", { "data-theme": theme, className: cn2("polli:text-sm", className), children: [
1564
- /* @__PURE__ */ jsx21(
1618
+ }) => /* @__PURE__ */ jsxs11("div", { "data-theme": theme, className: cn2("polli:text-sm", className), children: [
1619
+ /* @__PURE__ */ jsx23(
1565
1620
  "div",
1566
1621
  {
1567
1622
  className: cn2(
@@ -1571,7 +1626,7 @@ var StatCard = ({
1571
1626
  children: label
1572
1627
  }
1573
1628
  ),
1574
- /* @__PURE__ */ jsx21(
1629
+ /* @__PURE__ */ jsx23(
1575
1630
  "div",
1576
1631
  {
1577
1632
  className: cn2(
@@ -1581,7 +1636,7 @@ var StatCard = ({
1581
1636
  children: value
1582
1637
  }
1583
1638
  ),
1584
- detail && /* @__PURE__ */ jsx21(
1639
+ detail && /* @__PURE__ */ jsx23(
1585
1640
  "div",
1586
1641
  {
1587
1642
  className: cn2(
@@ -1594,7 +1649,7 @@ var StatCard = ({
1594
1649
  ] });
1595
1650
 
1596
1651
  // src/primitives/Switch.tsx
1597
- import { jsx as jsx22 } from "react/jsx-runtime";
1652
+ import { jsx as jsx24 } from "react/jsx-runtime";
1598
1653
  var trackClasses = {
1599
1654
  off: "polli:bg-gray-200",
1600
1655
  on: "polli:bg-[oklch(0.88_0.12_158)]",
@@ -1610,7 +1665,7 @@ var Switch = ({
1610
1665
  }) => {
1611
1666
  const effectiveStatus = status ?? (checked ? "on" : "off");
1612
1667
  const resolvedAriaLabel = ariaLabel ?? (checked ? "Turn off toggle" : "Turn on toggle");
1613
- return /* @__PURE__ */ jsx22(
1668
+ return /* @__PURE__ */ jsx24(
1614
1669
  "button",
1615
1670
  {
1616
1671
  type: "button",
@@ -1624,7 +1679,7 @@ var Switch = ({
1624
1679
  trackClasses[effectiveStatus],
1625
1680
  className
1626
1681
  ),
1627
- children: /* @__PURE__ */ jsx22(
1682
+ children: /* @__PURE__ */ jsx24(
1628
1683
  "span",
1629
1684
  {
1630
1685
  className: cn2(
@@ -1637,6 +1692,118 @@ var Switch = ({
1637
1692
  );
1638
1693
  };
1639
1694
 
1695
+ // src/primitives/Table.tsx
1696
+ import { Fragment as Fragment3, jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
1697
+ var alignClasses = {
1698
+ left: "polli:text-left",
1699
+ center: "polli:text-center",
1700
+ right: "polli:text-right"
1701
+ };
1702
+ var rowIntentClasses = {
1703
+ default: "",
1704
+ success: "polli:bg-intent-success-bg-light/55",
1705
+ warning: "polli:bg-intent-warning-bg-light/65",
1706
+ danger: "polli:bg-intent-danger-bg-light/65"
1707
+ };
1708
+ var Table = ({ className, ...rest }) => /* @__PURE__ */ jsx25(
1709
+ "table",
1710
+ {
1711
+ ...rest,
1712
+ className: cn2(
1713
+ "polli:w-full polli:border-collapse polli:text-sm",
1714
+ className
1715
+ )
1716
+ }
1717
+ );
1718
+ var TableHead = ({ className, ...rest }) => /* @__PURE__ */ jsx25(
1719
+ "thead",
1720
+ {
1721
+ ...rest,
1722
+ className: cn2(
1723
+ "polli:bg-theme-bg-active polli:text-micro polli:text-theme-text-muted",
1724
+ className
1725
+ )
1726
+ }
1727
+ );
1728
+ var TableBody = ({ className, ...rest }) => /* @__PURE__ */ jsx25(
1729
+ "tbody",
1730
+ {
1731
+ ...rest,
1732
+ className: cn2("polli:divide-y polli:divide-theme-border/65", className)
1733
+ }
1734
+ );
1735
+ var TableRow = ({
1736
+ intent = "default",
1737
+ className,
1738
+ ...rest
1739
+ }) => /* @__PURE__ */ jsx25(
1740
+ "tr",
1741
+ {
1742
+ ...rest,
1743
+ className: cn2(
1744
+ "polli:transition-colors polli:hover:bg-theme-bg-subtle",
1745
+ rowIntentClasses[intent],
1746
+ className
1747
+ )
1748
+ }
1749
+ );
1750
+ var TableHeaderCell = ({
1751
+ align = "left",
1752
+ active = false,
1753
+ sortDirection,
1754
+ onSort,
1755
+ className,
1756
+ children,
1757
+ ...rest
1758
+ }) => {
1759
+ const content = /* @__PURE__ */ jsxs12(Fragment3, { children: [
1760
+ /* @__PURE__ */ jsx25("span", { children }),
1761
+ active && sortDirection && /* @__PURE__ */ jsx25("span", { "aria-hidden": "true", children: sortDirection === "asc" ? "^" : "v" })
1762
+ ] });
1763
+ const classes = cn2(
1764
+ "polli:px-3 polli:py-2 polli:font-bold polli:uppercase polli:tracking-wide",
1765
+ alignClasses[align],
1766
+ active && "polli:text-theme-text-strong",
1767
+ onSort && "polli:cursor-pointer polli:select-none polli:hover:text-theme-text-strong",
1768
+ className
1769
+ );
1770
+ if (!onSort) {
1771
+ return /* @__PURE__ */ jsx25("th", { ...rest, className: classes, children: content });
1772
+ }
1773
+ return /* @__PURE__ */ jsx25("th", { ...rest, className: classes, children: /* @__PURE__ */ jsx25(
1774
+ "button",
1775
+ {
1776
+ type: "button",
1777
+ onClick: onSort,
1778
+ className: cn2(
1779
+ "polli:inline-flex polli:w-full polli:items-center polli:gap-1 polli:bg-transparent polli:p-0 polli:font-bold polli:text-inherit",
1780
+ align === "right" && "polli:justify-end",
1781
+ align === "center" && "polli:justify-center"
1782
+ ),
1783
+ children: content
1784
+ }
1785
+ ) });
1786
+ };
1787
+ var TableCell = ({
1788
+ align = "left",
1789
+ numeric = false,
1790
+ muted = false,
1791
+ className,
1792
+ ...rest
1793
+ }) => /* @__PURE__ */ jsx25(
1794
+ "td",
1795
+ {
1796
+ ...rest,
1797
+ className: cn2(
1798
+ "polli:px-3 polli:py-2 polli:align-middle",
1799
+ alignClasses[align],
1800
+ numeric && "polli:tabular-nums",
1801
+ muted && "polli:text-theme-text-muted",
1802
+ className
1803
+ )
1804
+ }
1805
+ );
1806
+
1640
1807
  // src/theme.ts
1641
1808
  var themes = [
1642
1809
  "amber",
@@ -1646,15 +1813,13 @@ var themes = [
1646
1813
  "violet",
1647
1814
  "green"
1648
1815
  ];
1649
- var themeColors = {
1650
- amber: "#FEF3C7",
1651
- blue: "#DBEAFE"
1652
- };
1653
1816
  export {
1817
+ Alert,
1654
1818
  AppIcon,
1655
1819
  BeakerIcon,
1656
1820
  BookIcon,
1657
1821
  Button,
1822
+ ButtonGroup,
1658
1823
  CheckIcon,
1659
1824
  ChevronIcon,
1660
1825
  Chip,
@@ -1689,6 +1854,12 @@ export {
1689
1854
  Surface,
1690
1855
  Switch,
1691
1856
  TabButton,
1857
+ Table,
1858
+ TableBody,
1859
+ TableCell,
1860
+ TableHead,
1861
+ TableHeaderCell,
1862
+ TableRow,
1692
1863
  TerminalIcon,
1693
1864
  TokensIcon,
1694
1865
  Tooltip,
@@ -1699,7 +1870,6 @@ export {
1699
1870
  currentPeriod,
1700
1871
  getPeriodBucketKeys,
1701
1872
  periodBucketKeyToDate,
1702
- themeColors,
1703
1873
  themes,
1704
1874
  useScrollLock
1705
1875
  };