@epicbagel/saas-kit 1.33.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +131 -0
  2. package/dist/chunk-2BNEE3U6.cjs +36 -0
  3. package/dist/{chunk-KOR2QR7I.cjs → chunk-2YW5VA2V.cjs} +5 -5
  4. package/dist/chunk-5PHOKJCT.cjs +42 -0
  5. package/dist/chunk-BB7PO2BW.js +67 -0
  6. package/dist/{chunk-PTMZTP3V.cjs → chunk-BGCNGYPL.cjs} +2 -2
  7. package/dist/chunk-BOMVE7QO.cjs +47 -0
  8. package/dist/{chunk-FPOJ2NGG.js → chunk-C3VZMTVB.js} +1 -1
  9. package/dist/chunk-EXHF3QUY.js +36 -0
  10. package/dist/chunk-FYNHRHVY.cjs +47 -0
  11. package/dist/{chunk-AWCXVYPL.js → chunk-HTPPNW74.js} +1 -1
  12. package/dist/{chunk-REGA2L5S.js → chunk-HTUYUMAH.js} +3 -3
  13. package/dist/chunk-I3GBXIFL.cjs +67 -0
  14. package/dist/{chunk-SL6ECEN6.cjs → chunk-JMNDFISN.cjs} +3 -3
  15. package/dist/{chunk-TS4MC3B3.js → chunk-NNEV5RHQ.js} +6 -6
  16. package/dist/chunk-O3G3TVPU.js +27 -0
  17. package/dist/{chunk-IZF4WCK6.js → chunk-ROUWBWEQ.js} +5 -5
  18. package/dist/chunk-TDCVZKMX.cjs +27 -0
  19. package/dist/{chunk-E2UVQXBO.cjs → chunk-TP74SBRH.cjs} +6 -6
  20. package/dist/{chunk-F3D5HA2F.cjs → chunk-VUMLLKWY.cjs} +8 -8
  21. package/dist/chunk-W5L6LQI3.js +42 -0
  22. package/dist/chunk-WMTCL463.js +47 -0
  23. package/dist/chunk-WTVL2FK7.js +47 -0
  24. package/dist/primitives/accent-theme.cjs +4 -63
  25. package/dist/primitives/accent-theme.js +3 -62
  26. package/dist/primitives/activity-feed.cjs +4 -4
  27. package/dist/primitives/activity-feed.js +5 -5
  28. package/dist/primitives/agent-audio-visualizer-bar.cjs +3 -3
  29. package/dist/primitives/agent-audio-visualizer-bar.js +2 -2
  30. package/dist/primitives/alert.d.cts +1 -1
  31. package/dist/primitives/alert.d.ts +1 -1
  32. package/dist/primitives/anchor.cjs +3 -30
  33. package/dist/primitives/anchor.js +3 -30
  34. package/dist/primitives/app-layout.cjs +5 -5
  35. package/dist/primitives/app-layout.js +2 -2
  36. package/dist/primitives/app-sidebar.cjs +3 -3
  37. package/dist/primitives/app-sidebar.js +2 -2
  38. package/dist/primitives/archive-confirmation-dialog.cjs +2 -2
  39. package/dist/primitives/archive-confirmation-dialog.js +3 -3
  40. package/dist/primitives/badge.d.cts +1 -1
  41. package/dist/primitives/badge.d.ts +1 -1
  42. package/dist/primitives/board-view-internals.cjs +3 -3
  43. package/dist/primitives/board-view-internals.js +2 -2
  44. package/dist/primitives/board-view.cjs +8 -8
  45. package/dist/primitives/board-view.js +7 -7
  46. package/dist/primitives/brand-mark.cjs +3 -21
  47. package/dist/primitives/brand-mark.js +3 -21
  48. package/dist/primitives/branded-page.cjs +201 -0
  49. package/dist/primitives/branded-page.d.cts +118 -0
  50. package/dist/primitives/branded-page.d.ts +118 -0
  51. package/dist/primitives/branded-page.js +201 -0
  52. package/dist/primitives/bubble.d.cts +1 -1
  53. package/dist/primitives/bubble.d.ts +1 -1
  54. package/dist/primitives/button.d.cts +2 -2
  55. package/dist/primitives/button.d.ts +2 -2
  56. package/dist/primitives/call-card.cjs +2 -2
  57. package/dist/primitives/call-card.js +3 -3
  58. package/dist/primitives/chat.cjs +22 -22
  59. package/dist/primitives/chat.js +16 -16
  60. package/dist/primitives/code-block.cjs +4 -4
  61. package/dist/primitives/code-block.js +3 -3
  62. package/dist/primitives/command.d.cts +1 -1
  63. package/dist/primitives/command.d.ts +1 -1
  64. package/dist/primitives/connection.cjs +5 -5
  65. package/dist/primitives/connection.js +7 -7
  66. package/dist/primitives/copy-button.cjs +3 -3
  67. package/dist/primitives/copy-button.js +2 -2
  68. package/dist/primitives/cover-banner.cjs +41 -0
  69. package/dist/primitives/cover-banner.d.cts +67 -0
  70. package/dist/primitives/cover-banner.d.ts +67 -0
  71. package/dist/primitives/cover-banner.js +41 -0
  72. package/dist/primitives/document-preview.cjs +5 -5
  73. package/dist/primitives/document-preview.js +3 -3
  74. package/dist/primitives/file-preview-internals.cjs +4 -4
  75. package/dist/primitives/file-preview-internals.js +3 -3
  76. package/dist/primitives/file-preview.cjs +16 -16
  77. package/dist/primitives/file-preview.js +6 -6
  78. package/dist/primitives/filter-bar.cjs +4 -4
  79. package/dist/primitives/filter-bar.js +3 -3
  80. package/dist/primitives/fixed-action-bar.cjs +4 -41
  81. package/dist/primitives/fixed-action-bar.js +4 -41
  82. package/dist/primitives/marketing-header.cjs +3 -36
  83. package/dist/primitives/marketing-header.js +3 -36
  84. package/dist/primitives/notes.cjs +7 -7
  85. package/dist/primitives/notes.js +7 -7
  86. package/dist/primitives/page-shell.cjs +3 -41
  87. package/dist/primitives/page-shell.js +3 -41
  88. package/dist/primitives/resource-list.cjs +8 -8
  89. package/dist/primitives/resource-list.js +7 -7
  90. package/dist/primitives/responsive-dialog.cjs +3 -3
  91. package/dist/primitives/responsive-dialog.js +2 -2
  92. package/dist/primitives/section.cjs +2 -2
  93. package/dist/primitives/section.js +3 -3
  94. package/dist/primitives/switch-field.cjs +3 -3
  95. package/dist/primitives/switch-field.js +3 -3
  96. package/dist/primitives/theme-selector.cjs +3 -3
  97. package/dist/primitives/theme-selector.js +4 -4
  98. package/dist/primitives/voice-dictation-button.cjs +5 -5
  99. package/dist/primitives/voice-dictation-button.js +4 -4
  100. package/dist/primitives/voice-session-controls.cjs +4 -4
  101. package/dist/primitives/voice-session-controls.js +3 -3
  102. package/dist/primitives/workflow-assistant.cjs +5 -5
  103. package/dist/primitives/workflow-assistant.js +3 -3
  104. package/package.json +21 -1
  105. package/src/styles/components/cover-banner.css +201 -0
  106. package/src/styles/components.css +1 -0
  107. package/src/styles/utilities.css +5 -3
  108. package/dist/{chunk-2FVFPGP5.js → chunk-5GFMSK27.js} +3 -3
  109. package/dist/{chunk-4TJBXXUE.js → chunk-5OF6D3GH.js} +3 -3
  110. package/dist/{chunk-ULZB4A2I.js → chunk-62UTAG2C.js} +3 -3
  111. package/dist/{chunk-SW4T3O7M.js → chunk-6LB37JWO.js} +6 -6
  112. package/dist/{chunk-AO56ET4F.cjs → chunk-BTHYGHOH.cjs} +2 -2
  113. package/dist/{chunk-7ZRFXJVN.js → chunk-DILYV4FI.js} +3 -3
  114. package/dist/{chunk-HHF5DEKM.cjs → chunk-FARCLWLU.cjs} +3 -3
  115. package/dist/{chunk-CRZ4INEJ.js → chunk-JTI4244T.js} +10 -10
  116. package/dist/{chunk-FB3VY2PL.cjs → chunk-NKWHDI4C.cjs} +2 -2
  117. package/dist/{chunk-GUVQAWUW.cjs → chunk-S2IMM37Q.cjs} +5 -5
  118. package/dist/{chunk-G3SF4RRA.cjs → chunk-UKYUWSF2.cjs} +3 -3
  119. package/dist/{chunk-D46FNEZ5.cjs → chunk-YYFVG5A6.cjs} +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epicbagel/saas-kit",
3
- "version": "1.33.0",
3
+ "version": "1.35.0",
4
4
  "description": "Accessible React primitives, layout components and design tokens for SaaS apps, built on Radix UI and Tailwind CSS v4.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -230,6 +230,16 @@
230
230
  "default": "./dist/primitives/brand-mark.cjs"
231
231
  }
232
232
  },
233
+ "./primitives/branded-page": {
234
+ "import": {
235
+ "types": "./dist/primitives/branded-page.d.ts",
236
+ "default": "./dist/primitives/branded-page.js"
237
+ },
238
+ "require": {
239
+ "types": "./dist/primitives/branded-page.d.cts",
240
+ "default": "./dist/primitives/branded-page.cjs"
241
+ }
242
+ },
233
243
  "./primitives/browser-preview": {
234
244
  "import": {
235
245
  "types": "./dist/primitives/browser-preview.d.ts",
@@ -480,6 +490,16 @@
480
490
  "default": "./dist/primitives/count-badge.cjs"
481
491
  }
482
492
  },
493
+ "./primitives/cover-banner": {
494
+ "import": {
495
+ "types": "./dist/primitives/cover-banner.d.ts",
496
+ "default": "./dist/primitives/cover-banner.js"
497
+ },
498
+ "require": {
499
+ "types": "./dist/primitives/cover-banner.d.cts",
500
+ "default": "./dist/primitives/cover-banner.cjs"
501
+ }
502
+ },
483
503
  "./primitives/cycling-prompt": {
484
504
  "import": {
485
505
  "types": "./dist/primitives/cycling-prompt.d.ts",
@@ -0,0 +1,201 @@
1
+ /* Cover banner — the presentation of primitives/cover-banner.tsx: a stock
2
+ * cover for anything with no cover image of its own. Every selector lands on
3
+ * the banner's data-slot, and each design on its data-variant.
4
+ *
5
+ * Every colour is mixed from the palette's tokens: the primary colour into
6
+ * the muted surface for the tints, and into the foreground for a pattern's
7
+ * ink. So a banner follows the palette, light and dark, and an AccentTheme
8
+ * around it, and nothing here names a mode, a palette or a colour. In the
9
+ * components layer, so a consumer's utility classes still win. Part of
10
+ * utilities.css. */
11
+ @layer components {
12
+ [data-slot="cover-banner"] {
13
+ /* The palette's colours, whole (the bare tokens are H S% L% triplets):
14
+ * the surface a banner is made of, the brand's colour that tints it, and
15
+ * a neighbour of that colour, which is the brand's own until the block
16
+ * below turns its hue. */
17
+ --color-cover-banner-surface: var(--color-muted);
18
+ --color-cover-banner-brand: var(--color-primary);
19
+ --color-cover-banner-near: var(--color-primary);
20
+ /* How far round the hue wheel the neighbour sits, in degrees at most.
21
+ * Each design sets its own, so two banners side by side differ in more
22
+ * than their shapes. */
23
+ --cover-banner-turn: 20;
24
+
25
+ /* The surface with the brand's colour in it, at four depths, and with
26
+ * its neighbour at two. The deepest is still four parts surface: a
27
+ * banner sits behind a face and a name. The surface is named first, so
28
+ * the fallback Tailwind writes for a browser without color-mix() is the
29
+ * plain surface. */
30
+ --color-cover-banner-1: color-mix(in oklab, var(--color-cover-banner-surface) 95%, var(--color-cover-banner-brand));
31
+ --color-cover-banner-2: color-mix(in oklab, var(--color-cover-banner-surface) 90%, var(--color-cover-banner-brand));
32
+ --color-cover-banner-3: color-mix(in oklab, var(--color-cover-banner-surface) 84%, var(--color-cover-banner-brand));
33
+ --color-cover-banner-4: color-mix(in oklab, var(--color-cover-banner-surface) 78%, var(--color-cover-banner-brand));
34
+ --color-cover-banner-near-2: color-mix(in oklab, var(--color-cover-banner-surface) 90%, var(--color-cover-banner-near));
35
+ --color-cover-banner-near-4: color-mix(in oklab, var(--color-cover-banner-surface) 78%, var(--color-cover-banner-near));
36
+ /* A pattern's ink: the text's colour and the brand's in equal parts,
37
+ * then mostly see-through. A rule covers more of the banner than a ring,
38
+ * and a ring more than a dot, so each is fainter than the next. */
39
+ --color-cover-banner-ink: color-mix(in oklab, var(--color-foreground) 50%, var(--color-cover-banner-brand));
40
+ --color-cover-banner-rule: color-mix(in oklab, transparent 91%, var(--color-cover-banner-ink));
41
+ --color-cover-banner-ring: color-mix(in oklab, transparent 86%, var(--color-cover-banner-ink));
42
+ --color-cover-banner-dot: color-mix(in oklab, transparent 78%, var(--color-cover-banner-ink));
43
+
44
+ position: relative;
45
+ display: block;
46
+ overflow: hidden;
47
+ /* Fills the frame it is put in. Where the frame gives no height, a
48
+ * percentage height is auto, and the ratio holds 4:1 instead. */
49
+ width: 100%;
50
+ height: 100%;
51
+ aspect-ratio: 4 / 1;
52
+ background-color: var(--color-cover-banner-1);
53
+ }
54
+
55
+ /* Where the browser can read a colour's channels, two refinements.
56
+ *
57
+ * A little more chroma, so a coloured brand tints the surface as clearly
58
+ * as a black one darkens it.
59
+ *
60
+ * And the neighbour's hue turned, by up to --cover-banner-turn degrees,
61
+ * always away from yellow-green (hue 110), where a tint goes muddy: a warm
62
+ * colour leans towards red, a cool one towards blue and on to pink, and a
63
+ * colour at 110 stays put. The sine is what sets the direction and eases
64
+ * the amount.
65
+ *
66
+ * A grey has no chroma to raise or turn, so a black-and-white palette
67
+ * stays black and white. Elsewhere a banner is the plain mixes above, in
68
+ * one hue. */
69
+ @supports (color: oklch(from red l calc(c * 1.3) calc(h + 20 * sin((h - 110) * 0.5deg)))) {
70
+ [data-slot="cover-banner"] {
71
+ --color-cover-banner-brand: oklch(from var(--color-primary) l calc(c * 1.3) h);
72
+ --color-cover-banner-near: oklch(
73
+ from var(--color-primary) l calc(c * 1.3) calc(h + var(--cover-banner-turn) * sin((h - 110) * 0.5deg))
74
+ );
75
+ }
76
+ }
77
+
78
+ /* A pattern is its own layer, so it can fade out across the banner. */
79
+ [data-slot="cover-banner"]::after {
80
+ position: absolute;
81
+ inset: 0;
82
+ pointer-events: none;
83
+ }
84
+
85
+ /* Each design keeps its deeper colour and its pattern on the far side, and
86
+ * its calmest part low on the near side, where an avatar overlaps it. */
87
+
88
+ /* One soft diagonal gradient, from the brand's colour to its neighbour. */
89
+ [data-slot="cover-banner"][data-variant="wash"] {
90
+ --cover-banner-turn: 20;
91
+ background-image: linear-gradient(
92
+ 112deg,
93
+ var(--color-cover-banner-1) 0%,
94
+ var(--color-cover-banner-2) 42%,
95
+ var(--color-cover-banner-near-4) 100%
96
+ );
97
+ }
98
+
99
+ /* Two soft lights: the brand's low on the near side, its neighbour's high
100
+ * on the far side. */
101
+ [data-slot="cover-banner"][data-variant="glow"] {
102
+ --cover-banner-turn: 34;
103
+ background-image:
104
+ radial-gradient(ellipse 62% 150% at 4% 122%, var(--color-cover-banner-4), transparent 72%),
105
+ radial-gradient(ellipse 58% 150% at 99% -26%, var(--color-cover-banner-near-4), transparent 72%);
106
+ }
107
+
108
+ /* A wash under a ruled grid, which fades out towards the near side. */
109
+ [data-slot="cover-banner"][data-variant="grid"] {
110
+ --cover-banner-turn: 18;
111
+ background-image: linear-gradient(
112
+ 100deg,
113
+ var(--color-cover-banner-1) 0%,
114
+ var(--color-cover-banner-2) 55%,
115
+ var(--color-cover-banner-near-4) 100%
116
+ );
117
+ }
118
+
119
+ [data-slot="cover-banner"][data-variant="grid"]::after {
120
+ content: "";
121
+ background-image:
122
+ linear-gradient(to right, var(--color-cover-banner-rule) 1px, transparent 1px),
123
+ linear-gradient(to bottom, var(--color-cover-banner-rule) 1px, transparent 1px);
124
+ background-size: 24px 24px;
125
+ background-position: center;
126
+ -webkit-mask-image: linear-gradient(100deg, transparent 8%, #000 100%);
127
+ mask-image: linear-gradient(100deg, transparent 8%, #000 100%);
128
+ }
129
+
130
+ /* A wash under a dot matrix, which fades out from the far upper corner. */
131
+ [data-slot="cover-banner"][data-variant="dots"] {
132
+ --cover-banner-turn: 28;
133
+ background-image: linear-gradient(
134
+ 200deg,
135
+ var(--color-cover-banner-near-4) 0%,
136
+ var(--color-cover-banner-2) 46%,
137
+ var(--color-cover-banner-1) 100%
138
+ );
139
+ }
140
+
141
+ [data-slot="cover-banner"][data-variant="dots"]::after {
142
+ content: "";
143
+ background-image: radial-gradient(circle, var(--color-cover-banner-dot) 1.1px, transparent 1.7px);
144
+ background-size: 14px 14px;
145
+ background-position: center;
146
+ -webkit-mask-image: radial-gradient(ellipse 86% 160% at 100% 0%, #000 8%, transparent 80%);
147
+ mask-image: radial-gradient(ellipse 86% 160% at 100% 0%, #000 8%, transparent 80%);
148
+ }
149
+
150
+ /* Contour lines spreading from under the far lower corner. */
151
+ [data-slot="cover-banner"][data-variant="rings"] {
152
+ --cover-banner-turn: 24;
153
+ background-image: linear-gradient(
154
+ 250deg,
155
+ var(--color-cover-banner-3) 0%,
156
+ var(--color-cover-banner-near-2) 40%,
157
+ var(--color-cover-banner-1) 100%
158
+ );
159
+ }
160
+
161
+ /* Each line eases in and out over three pixels, so it stays smooth where
162
+ * the browser draws a hard stop jagged. */
163
+ [data-slot="cover-banner"][data-variant="rings"]::after {
164
+ content: "";
165
+ background-image: repeating-radial-gradient(
166
+ circle at 84% 140%,
167
+ transparent 0,
168
+ transparent 18.5px,
169
+ var(--color-cover-banner-ring) 20px,
170
+ transparent 21.5px
171
+ );
172
+ -webkit-mask-image: radial-gradient(ellipse 84% 200% at 84% 140%, #000 10%, transparent 76%);
173
+ mask-image: radial-gradient(ellipse 84% 200% at 84% 140%, #000 10%, transparent 76%);
174
+ }
175
+
176
+ /* Broad tonal bands curving round the far lower corner, deepest inside. */
177
+ [data-slot="cover-banner"][data-variant="arcs"] {
178
+ --cover-banner-turn: 16;
179
+ background-image: radial-gradient(
180
+ circle at 100% 150%,
181
+ var(--color-cover-banner-near-4) 0%,
182
+ var(--color-cover-banner-near-4) 24%,
183
+ var(--color-cover-banner-3) 24.2%,
184
+ var(--color-cover-banner-3) 43%,
185
+ var(--color-cover-banner-2) 43.2%,
186
+ var(--color-cover-banner-2) 64%,
187
+ var(--color-cover-banner-1) 64.2%
188
+ );
189
+ }
190
+
191
+ /* Someone who asked for their own colours gets them, without a pattern. */
192
+ @media (forced-colors: active) {
193
+ [data-slot="cover-banner"] {
194
+ background: Canvas;
195
+ }
196
+
197
+ [data-slot="cover-banner"]::after {
198
+ content: none;
199
+ }
200
+ }
201
+ }
@@ -6,3 +6,4 @@
6
6
  @import "./components/message-scroller.css";
7
7
  @import "./components/frosted-surface.css";
8
8
  @import "./components/poster.css";
9
+ @import "./components/cover-banner.css";
@@ -1,10 +1,12 @@
1
1
  /* Palette-free utilities and component classes: shadcn's data-* variants,
2
2
  * no-scrollbar, scroll-fade and shimmer; the cn-attachment, cn-bubble,
3
3
  * cn-marker, cn-message and cn-message-scroller classes; the poster
4
- * family's data-slot rules; and the kit's keyframes. Defines no palette and no @source.
4
+ * family's and the cover banner's data-slot rules; and the kit's keyframes.
5
+ * Defines no palette and no @source.
5
6
  * The component classes @apply the semantic colours (bg-muted,
6
- * text-muted-foreground, ring-ring, …), so the host's @theme must define
7
- * them — tokens.css does. */
7
+ * text-muted-foreground, ring-ring, …), and the cover banner mixes its
8
+ * colours from them, so the host's @theme must define them — tokens.css
9
+ * does. */
8
10
  @import "./shadcn.css";
9
11
  @import "./components.css";
10
12
  @import "./keyframes.css";
@@ -8,9 +8,6 @@ import {
8
8
  SheetDescription,
9
9
  SheetTitle
10
10
  } from "./chunk-G76JANB4.js";
11
- import {
12
- useIsMobile
13
- } from "./chunk-PIU5SSUV.js";
14
11
  import {
15
12
  Tooltip,
16
13
  TooltipContent,
@@ -26,6 +23,9 @@ import {
26
23
  import {
27
24
  cn
28
25
  } from "./chunk-G6SRSWXB.js";
26
+ import {
27
+ useIsMobile
28
+ } from "./chunk-PIU5SSUV.js";
29
29
 
30
30
  // src/primitives/app-sidebar.tsx
31
31
  import { Slot } from "@radix-ui/react-slot";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import {
3
- useAgentAudioVisualizerBarAnimator
4
- } from "./chunk-GJ7S3L6R.js";
5
2
  import {
6
3
  cn
7
4
  } from "./chunk-G6SRSWXB.js";
5
+ import {
6
+ useAgentAudioVisualizerBarAnimator
7
+ } from "./chunk-GJ7S3L6R.js";
8
8
 
9
9
  // src/primitives/agent-audio-visualizer-bar.tsx
10
10
  import React, {
@@ -9,12 +9,12 @@ import {
9
9
  SelectTrigger,
10
10
  SelectValue
11
11
  } from "./chunk-J6NXDZR5.js";
12
- import {
13
- Skeleton
14
- } from "./chunk-YEW65ASC.js";
15
12
  import {
16
13
  CountBadge
17
14
  } from "./chunk-H7TETFLB.js";
15
+ import {
16
+ Skeleton
17
+ } from "./chunk-YEW65ASC.js";
18
18
 
19
19
  // src/primitives/board-view-internals.tsx
20
20
  import { ChevronRight } from "lucide-react";
@@ -10,6 +10,9 @@ import {
10
10
  import {
11
11
  Checkbox
12
12
  } from "./chunk-OICAYRVH.js";
13
+ import {
14
+ Calendar
15
+ } from "./chunk-H2CCBRVG.js";
13
16
  import {
14
17
  Select,
15
18
  SelectContent,
@@ -17,18 +20,12 @@ import {
17
20
  SelectTrigger,
18
21
  SelectValue
19
22
  } from "./chunk-J6NXDZR5.js";
20
- import {
21
- Calendar
22
- } from "./chunk-H2CCBRVG.js";
23
23
  import {
24
24
  Sheet,
25
25
  SheetContent,
26
26
  SheetTitle,
27
27
  SheetTrigger
28
28
  } from "./chunk-G76JANB4.js";
29
- import {
30
- useIsMobile
31
- } from "./chunk-PIU5SSUV.js";
32
29
  import {
33
30
  Input
34
31
  } from "./chunk-QMA3WVB7.js";
@@ -41,6 +38,9 @@ import {
41
38
  import {
42
39
  Button
43
40
  } from "./chunk-W326GKML.js";
41
+ import {
42
+ useIsMobile
43
+ } from "./chunk-PIU5SSUV.js";
44
44
 
45
45
  // src/primitives/filter-bar.tsx
46
46
  import { ArrowDown, ArrowUp, CalendarIcon, Filter, X } from "lucide-react";
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- var _chunkWDXEJDMOcjs = require('./chunk-WDXEJDMO.cjs');
11
+ var _chunk2BHI5ZWJcjs = require('./chunk-2BHI5ZWJ.cjs');
12
12
 
13
13
 
14
14
 
@@ -18,7 +18,7 @@ var _chunkWDXEJDMOcjs = require('./chunk-WDXEJDMO.cjs');
18
18
 
19
19
 
20
20
 
21
- var _chunk2BHI5ZWJcjs = require('./chunk-2BHI5ZWJ.cjs');
21
+ var _chunkWDXEJDMOcjs = require('./chunk-WDXEJDMO.cjs');
22
22
 
23
23
 
24
24
  var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- import {
3
- useCopyToClipboard
4
- } from "./chunk-ZWZAAGQF.js";
5
2
  import {
6
3
  Button
7
4
  } from "./chunk-W326GKML.js";
8
5
  import {
9
6
  cn
10
7
  } from "./chunk-G6SRSWXB.js";
8
+ import {
9
+ useCopyToClipboard
10
+ } from "./chunk-ZWZAAGQF.js";
11
11
 
12
12
  // src/primitives/copy-button.tsx
13
13
  import { forwardRef } from "react";
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunk4LXN6GLZcjs = require('./chunk-4LXN6GLZ.cjs');
5
-
6
-
7
4
  var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
8
5
 
9
6
 
10
7
  var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
11
8
 
9
+
10
+ var _chunk4LXN6GLZcjs = require('./chunk-4LXN6GLZ.cjs');
11
+
12
12
  // src/primitives/copy-button.tsx
13
13
  var _react = require('react');
14
14
  var _lucidereact = require('lucide-react');
@@ -1,14 +1,4 @@
1
1
  "use client";
2
- import {
3
- Dialog,
4
- DialogClose,
5
- DialogContent,
6
- DialogDescription,
7
- DialogFooter,
8
- DialogHeader,
9
- DialogTitle,
10
- DialogTrigger
11
- } from "./chunk-3QT5VYZ3.js";
12
2
  import {
13
3
  Drawer,
14
4
  DrawerClose,
@@ -19,6 +9,16 @@ import {
19
9
  DrawerTitle,
20
10
  DrawerTrigger
21
11
  } from "./chunk-4HWCNRK4.js";
12
+ import {
13
+ Dialog,
14
+ DialogClose,
15
+ DialogContent,
16
+ DialogDescription,
17
+ DialogFooter,
18
+ DialogHeader,
19
+ DialogTitle,
20
+ DialogTrigger
21
+ } from "./chunk-3QT5VYZ3.js";
22
22
  import {
23
23
  cn
24
24
  } from "./chunk-G6SRSWXB.js";
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
2
2
 
3
3
 
4
- var _chunk2BSFYU22cjs = require('./chunk-2BSFYU22.cjs');
4
+ var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
5
5
 
6
6
 
7
- var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
7
+ var _chunk2BSFYU22cjs = require('./chunk-2BSFYU22.cjs');
8
8
 
9
9
  // src/primitives/agent-audio-visualizer-bar.tsx
10
10
 
@@ -12,14 +12,14 @@ var _chunkIQZLUT2Ycjs = require('./chunk-IQZLUT2Y.cjs');
12
12
  var _chunkJH4GAGOQcjs = require('./chunk-JH4GAGOQ.cjs');
13
13
 
14
14
 
15
+ var _chunkVOTCYG3Fcjs = require('./chunk-VOTCYG3F.cjs');
15
16
 
16
17
 
17
18
 
18
19
 
19
- var _chunkV5SPFLKWcjs = require('./chunk-V5SPFLKW.cjs');
20
20
 
21
21
 
22
- var _chunkVOTCYG3Fcjs = require('./chunk-VOTCYG3F.cjs');
22
+ var _chunkV5SPFLKWcjs = require('./chunk-V5SPFLKW.cjs');
23
23
 
24
24
 
25
25
 
@@ -28,9 +28,6 @@ var _chunkVOTCYG3Fcjs = require('./chunk-VOTCYG3F.cjs');
28
28
  var _chunkPPX2VPGIcjs = require('./chunk-PPX2VPGI.cjs');
29
29
 
30
30
 
31
- var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
32
-
33
-
34
31
  var _chunkPQUSJEXLcjs = require('./chunk-PQUSJEXL.cjs');
35
32
 
36
33
 
@@ -42,6 +39,9 @@ var _chunkI6GUOEBOcjs = require('./chunk-I6GUOEBO.cjs');
42
39
 
43
40
  var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
44
41
 
42
+
43
+ var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
44
+
45
45
  // src/primitives/filter-bar.tsx
46
46
  var _lucidereact = require('lucide-react');
47
47
  var _datefns = require('date-fns');
@@ -10,9 +10,6 @@ var _chunkNQK5ZWC7cjs = require('./chunk-NQK5ZWC7.cjs');
10
10
  var _chunkPPX2VPGIcjs = require('./chunk-PPX2VPGI.cjs');
11
11
 
12
12
 
13
- var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
14
-
15
-
16
13
 
17
14
 
18
15
 
@@ -27,6 +24,9 @@ var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
27
24
 
28
25
  var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
29
26
 
27
+
28
+ var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
29
+
30
30
  // src/primitives/app-sidebar.tsx
31
31
  var _reactslot = require('@radix-ui/react-slot');
32
32
  var _lucidereact = require('lucide-react');
@@ -11,10 +11,10 @@ var _chunkXLIAY56Vcjs = require('./chunk-XLIAY56V.cjs');
11
11
  var _chunkV5SPFLKWcjs = require('./chunk-V5SPFLKW.cjs');
12
12
 
13
13
 
14
- var _chunkVBPPFC7Xcjs = require('./chunk-VBPPFC7X.cjs');
14
+ var _chunkVGTINL5Qcjs = require('./chunk-VGTINL5Q.cjs');
15
15
 
16
16
 
17
- var _chunkVGTINL5Qcjs = require('./chunk-VGTINL5Q.cjs');
17
+ var _chunkVBPPFC7Xcjs = require('./chunk-VBPPFC7X.cjs');
18
18
 
19
19
  // src/primitives/board-view-internals.tsx
20
20
  var _lucidereact = require('lucide-react');