@epicbagel/saas-kit 1.2.1 → 1.2.3

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 (46) hide show
  1. package/README.md +25 -0
  2. package/dist/{chunk-RSFEKQDR.cjs → chunk-J467F76I.cjs} +3 -1
  3. package/dist/{chunk-HRLP4BHJ.js → chunk-KYQPX754.js} +7 -7
  4. package/dist/{chunk-IH3COANJ.cjs → chunk-N6V3DDKU.cjs} +7 -7
  5. package/dist/{chunk-6RVPQGYS.js → chunk-WNWBKEWV.js} +3 -1
  6. package/dist/primitives/activity-feed.cjs +3 -3
  7. package/dist/primitives/activity-feed.js +4 -4
  8. package/dist/primitives/board-view.cjs +6 -6
  9. package/dist/primitives/board-view.js +5 -5
  10. package/dist/primitives/chat.cjs +57 -30
  11. package/dist/primitives/chat.d.cts +24 -5
  12. package/dist/primitives/chat.d.ts +24 -5
  13. package/dist/primitives/chat.js +50 -23
  14. package/dist/primitives/code-block.cjs +3 -3
  15. package/dist/primitives/code-block.js +2 -2
  16. package/dist/primitives/compact-app-shell.cjs +3 -3
  17. package/dist/primitives/compact-app-shell.js +1 -1
  18. package/dist/primitives/connection.cjs +6 -6
  19. package/dist/primitives/connection.js +7 -7
  20. package/dist/primitives/copy-button.cjs +3 -3
  21. package/dist/primitives/copy-button.js +2 -2
  22. package/dist/primitives/decision-actions.cjs +2 -2
  23. package/dist/primitives/decision-actions.js +1 -1
  24. package/dist/primitives/editable-list.cjs +1 -1
  25. package/dist/primitives/editable-list.js +1 -1
  26. package/dist/primitives/file-dropzone.cjs +3 -3
  27. package/dist/primitives/file-dropzone.js +2 -2
  28. package/dist/primitives/filter-bar.cjs +4 -4
  29. package/dist/primitives/filter-bar.js +3 -3
  30. package/dist/primitives/resource-list.cjs +6 -6
  31. package/dist/primitives/resource-list.js +5 -5
  32. package/dist/primitives/section.cjs +2 -2
  33. package/dist/primitives/section.js +3 -3
  34. package/dist/primitives/stack.cjs +2 -2
  35. package/dist/primitives/stack.d.cts +6 -2
  36. package/dist/primitives/stack.d.ts +6 -2
  37. package/dist/primitives/stack.js +1 -1
  38. package/dist/primitives/switch-field.cjs +2 -2
  39. package/dist/primitives/switch-field.js +3 -3
  40. package/package.json +1 -1
  41. package/dist/{chunk-KADJ56AH.cjs → chunk-6OTAGP2I.cjs} +2 -2
  42. package/dist/{chunk-SGW4FWBX.cjs → chunk-CYH63OCL.cjs} +6 -6
  43. package/dist/{chunk-M7FYGAGO.js → chunk-EHKMVJ6O.js} +3 -3
  44. package/dist/{chunk-VKIGJNJR.cjs → chunk-ENJNZ323.cjs} +2 -2
  45. package/dist/{chunk-MLHNYRFX.js → chunk-PVZ4JGDU.js} +6 -6
  46. package/dist/{chunk-NW3OWKBN.js → chunk-PWOQMTPX.js} +3 -3
@@ -8,14 +8,13 @@ import {
8
8
  import {
9
9
  VoiceDictationButton
10
10
  } from "../chunk-HAC32ALJ.js";
11
+ import {
12
+ formatRelativeLong
13
+ } from "../chunk-CS7DM3NV.js";
11
14
  import {
12
15
  Suggestion,
13
16
  Suggestions
14
17
  } from "../chunk-THWIJG5C.js";
15
- import {
16
- Marker,
17
- MarkerContent
18
- } from "../chunk-IW4ZIXXG.js";
19
18
  import {
20
19
  MessageScroller,
21
20
  MessageScrollerButton,
@@ -28,26 +27,31 @@ import {
28
27
  Message,
29
28
  MessageContent
30
29
  } from "../chunk-JZOBIPFC.js";
30
+ import {
31
+ LazyMarkdown
32
+ } from "../chunk-VY5U4VGV.js";
33
+ import "../chunk-INNGGLMZ.js";
34
+ import {
35
+ Marker,
36
+ MarkerContent
37
+ } from "../chunk-IW4ZIXXG.js";
31
38
  import {
32
39
  InputGroup,
33
40
  InputGroupAddon,
34
41
  InputGroupTextarea
35
42
  } from "../chunk-MHYAVXOE.js";
36
43
  import "../chunk-6FC65AZQ.js";
37
- import {
38
- LazyMarkdown
39
- } from "../chunk-VY5U4VGV.js";
40
- import "../chunk-INNGGLMZ.js";
41
44
  import {
42
45
  FileDropArea,
43
46
  FileDropzone
44
- } from "../chunk-M7FYGAGO.js";
47
+ } from "../chunk-EHKMVJ6O.js";
45
48
  import {
46
49
  DropdownMenu,
47
50
  DropdownMenuContent,
48
51
  DropdownMenuItem,
49
52
  DropdownMenuTrigger
50
53
  } from "../chunk-V4LE2HWP.js";
54
+ import "../chunk-ZRLUUZHK.js";
51
55
  import {
52
56
  Bubble,
53
57
  BubbleContent
@@ -65,7 +69,9 @@ import {
65
69
  AttachmentTitle,
66
70
  AttachmentTrigger
67
71
  } from "../chunk-EZCKWTH7.js";
68
- import "../chunk-ZRLUUZHK.js";
72
+ import {
73
+ useIsMobile
74
+ } from "../chunk-PIU5SSUV.js";
69
75
  import {
70
76
  ActionDock
71
77
  } from "../chunk-42RTTHND.js";
@@ -73,12 +79,6 @@ import "../chunk-QMA3WVB7.js";
73
79
  import {
74
80
  Button
75
81
  } from "../chunk-HQRWRRZJ.js";
76
- import {
77
- useIsMobile
78
- } from "../chunk-PIU5SSUV.js";
79
- import {
80
- formatRelativeLong
81
- } from "../chunk-CS7DM3NV.js";
82
82
  import {
83
83
  cn
84
84
  } from "../chunk-G6SRSWXB.js";
@@ -114,13 +114,32 @@ function useArrivingUserTurnId(messages) {
114
114
  }, [messages]);
115
115
  for (let i = messages.length - 1; i >= 0; i--) {
116
116
  const message = messages[i];
117
- if (message.role === "user") return seen.current.has(message.id) ? void 0 : message.id;
117
+ if (message.role === "user" && message.status !== "running") {
118
+ return seen.current.has(message.id) ? void 0 : message.id;
119
+ }
118
120
  }
119
121
  return void 0;
120
122
  }
123
+ function timelineMarkers(messages, now) {
124
+ let previous = null;
125
+ return messages.map((message) => {
126
+ if (message.status === "running") return null;
127
+ const relativeTime = formatRelativeLong(message.createdAt, now);
128
+ const opens = relativeTime && relativeTime !== previous ? relativeTime : null;
129
+ previous = relativeTime;
130
+ return opens;
131
+ });
132
+ }
121
133
  function TimelineMarker({ label }) {
122
134
  return /* @__PURE__ */ jsx(Marker, { variant: "separator", role: "separator", "aria-label": label, children: /* @__PURE__ */ jsx(MarkerContent, { children: label }) });
123
135
  }
136
+ function ChatRunningLine({
137
+ label,
138
+ align = "start",
139
+ workspace
140
+ }) {
141
+ return /* @__PURE__ */ jsx(Message, { align, children: /* @__PURE__ */ jsx(MessageContent, { children: /* @__PURE__ */ jsx(Trace, { className: workspace ? void 0 : "px-3.5 py-2", children: /* @__PURE__ */ jsx(TraceLine, { status: "running", children: /* @__PURE__ */ jsx(TraceTitle, { children: label }) }) }) }) });
142
+ }
124
143
  var ChatThread = forwardRef(
125
144
  function ChatThread2({
126
145
  messages,
@@ -136,7 +155,7 @@ var ChatThread = forwardRef(
136
155
  attachmentAction = "open",
137
156
  className
138
157
  }, ref) {
139
- const timelineNow = /* @__PURE__ */ new Date();
158
+ const markers = timelineMarkers(messages, /* @__PURE__ */ new Date());
140
159
  const anchorId = useArrivingUserTurnId(messages);
141
160
  const workspace = appearance === "workspace";
142
161
  return /* @__PURE__ */ jsx(MessageScrollerProvider, { autoScroll: true, children: /* @__PURE__ */ jsxs(
@@ -155,10 +174,18 @@ var ChatThread = forwardRef(
155
174
  children: [
156
175
  messages.map((m, index) => {
157
176
  const isUser = m.role === "user";
177
+ if (m.status === "running") {
178
+ return /* @__PURE__ */ jsx(MessageScrollerItem, { children: /* @__PURE__ */ jsx(
179
+ ChatRunningLine,
180
+ {
181
+ label: m.text || pendingLabel,
182
+ align: isUser ? "end" : "start",
183
+ workspace
184
+ }
185
+ ) }, m.id);
186
+ }
158
187
  const isFullWidth = m.width === "full";
159
- const relativeTime = formatRelativeLong(m.createdAt, timelineNow);
160
- const previousRelativeTime = formatRelativeLong(messages[index - 1]?.createdAt, timelineNow);
161
- const startsTimelineSection = relativeTime && relativeTime !== previousRelativeTime;
188
+ const marker = markers[index];
162
189
  return /* @__PURE__ */ jsxs(
163
190
  MessageScrollerItem,
164
191
  {
@@ -166,7 +193,7 @@ var ChatThread = forwardRef(
166
193
  scrollAnchor: m.id === anchorId,
167
194
  className: cn("flex flex-col", workspace ? "gap-5" : "gap-3"),
168
195
  children: [
169
- startsTimelineSection ? /* @__PURE__ */ jsx(TimelineMarker, { label: relativeTime }) : null,
196
+ marker ? /* @__PURE__ */ jsx(TimelineMarker, { label: marker }) : null,
170
197
  /* @__PURE__ */ jsx(Message, { align: isUser ? "end" : "start", children: /* @__PURE__ */ jsxs(MessageContent, { children: [
171
198
  (m.content || m.text) && /* @__PURE__ */ jsx(
172
199
  Bubble,
@@ -202,7 +229,7 @@ var ChatThread = forwardRef(
202
229
  m.id
203
230
  );
204
231
  }),
205
- pending && /* @__PURE__ */ jsx(MessageScrollerItem, { children: /* @__PURE__ */ jsx(Message, { align: "start", children: /* @__PURE__ */ jsx(MessageContent, { children: /* @__PURE__ */ jsx(Trace, { className: workspace ? void 0 : "px-3.5 py-2", children: /* @__PURE__ */ jsx(TraceLine, { status: "running", children: /* @__PURE__ */ jsx(TraceTitle, { children: pendingLabel }) }) }) }) }) }),
232
+ pending && /* @__PURE__ */ jsx(MessageScrollerItem, { children: /* @__PURE__ */ jsx(ChatRunningLine, { label: pendingLabel, workspace }) }),
206
233
  footer && // Always painted: content-visibility:auto would contain the
207
234
  // footer's paint and layout, clipping a ring or shadow at its
208
235
  // edge and re-parenting anything fixed inside it.
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkVKIGJNJRcjs = require('../chunk-VKIGJNJR.cjs');
5
- require('../chunk-L4DH72UF.cjs');
4
+ var _chunkENJNZ323cjs = require('../chunk-ENJNZ323.cjs');
6
5
  require('../chunk-4LXN6GLZ.cjs');
6
+ require('../chunk-L4DH72UF.cjs');
7
7
 
8
8
 
9
9
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
@@ -40,7 +40,7 @@ function CodeBlock({
40
40
  }
41
41
  ),
42
42
  copy ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
43
- _chunkVKIGJNJRcjs.CopyButton,
43
+ _chunkENJNZ323cjs.CopyButton,
44
44
  {
45
45
  text: copyText,
46
46
  label: copyLabel,
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  CopyButton
4
- } from "../chunk-NW3OWKBN.js";
5
- import "../chunk-HQRWRRZJ.js";
4
+ } from "../chunk-PWOQMTPX.js";
6
5
  import "../chunk-ZWZAAGQF.js";
6
+ import "../chunk-HQRWRRZJ.js";
7
7
  import {
8
8
  cn
9
9
  } from "../chunk-G6SRSWXB.js";
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkRSFEKQDRcjs = require('../chunk-RSFEKQDR.cjs');
4
+ var _chunkJ467F76Icjs = require('../chunk-J467F76I.cjs');
5
5
 
6
6
 
7
7
  var _chunkLELBCBDTcjs = require('../chunk-LELBCBDT.cjs');
@@ -24,8 +24,8 @@ var CompactAppShell = _react.forwardRef.call(void 0,
24
24
  ref,
25
25
  className: _chunkKWLSBTB2cjs.cn.call(void 0, "min-h-0 bg-background p-4 text-foreground", widths[width], className),
26
26
  ...props,
27
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRSFEKQDRcjs.Stack, { gap: "md", children: [
28
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRSFEKQDRcjs.Stack, { gap: "xs", children: [
27
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJ467F76Icjs.Stack, { gap: "md", children: [
28
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJ467F76Icjs.Stack, { gap: "xs", children: [
29
29
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLELBCBDTcjs.Heading, { level: 1, className: "text-base", children: title }),
30
30
  description
31
31
  ] }),
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Stack
4
- } from "../chunk-6RVPQGYS.js";
4
+ } from "../chunk-WNWBKEWV.js";
5
5
  import {
6
6
  Heading
7
7
  } from "../chunk-H2O6NMLZ.js";
@@ -12,13 +12,17 @@ var _chunkWQJKUKBLcjs = require('../chunk-WQJKUKBL.cjs');
12
12
 
13
13
 
14
14
  var _chunkWDXEJDMOcjs = require('../chunk-WDXEJDMO.cjs');
15
+ require('../chunk-ZAITUDYD.cjs');
16
+
17
+
18
+ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
15
19
 
16
20
 
17
21
  var _chunkCTYOW3V2cjs = require('../chunk-CTYOW3V2.cjs');
18
- require('../chunk-ZAITUDYD.cjs');
19
22
 
20
23
 
21
- var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
24
+
25
+ var _chunk667ZCM4Xcjs = require('../chunk-667ZCM4X.cjs');
22
26
  require('../chunk-I6GUOEBO.cjs');
23
27
 
24
28
 
@@ -35,10 +39,6 @@ var _chunk23UMHZ4Scjs = require('../chunk-23UMHZ4S.cjs');
35
39
  var _chunkL4DH72UFcjs = require('../chunk-L4DH72UF.cjs');
36
40
 
37
41
 
38
-
39
- var _chunk667ZCM4Xcjs = require('../chunk-667ZCM4X.cjs');
40
-
41
-
42
42
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
43
43
 
44
44
  // src/primitives/connection.tsx
@@ -12,13 +12,17 @@ import {
12
12
  DialogHeader,
13
13
  DialogTitle
14
14
  } from "../chunk-3QT5VYZ3.js";
15
- import {
16
- Callout
17
- } from "../chunk-GL5CV4FF.js";
18
15
  import "../chunk-V4LE2HWP.js";
19
16
  import {
20
17
  Text
21
18
  } from "../chunk-EIY5LLSP.js";
19
+ import {
20
+ Callout
21
+ } from "../chunk-GL5CV4FF.js";
22
+ import {
23
+ Alert,
24
+ AlertDescription
25
+ } from "../chunk-R4AIM3BQ.js";
22
26
  import "../chunk-D4ZL2OEQ.js";
23
27
  import {
24
28
  AlertDialog,
@@ -33,10 +37,6 @@ import {
33
37
  import {
34
38
  buttonVariants
35
39
  } from "../chunk-HQRWRRZJ.js";
36
- import {
37
- Alert,
38
- AlertDescription
39
- } from "../chunk-R4AIM3BQ.js";
40
40
  import {
41
41
  cn
42
42
  } from "../chunk-G6SRSWXB.js";
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkVKIGJNJRcjs = require('../chunk-VKIGJNJR.cjs');
5
- require('../chunk-L4DH72UF.cjs');
4
+ var _chunkENJNZ323cjs = require('../chunk-ENJNZ323.cjs');
6
5
  require('../chunk-4LXN6GLZ.cjs');
6
+ require('../chunk-L4DH72UF.cjs');
7
7
  require('../chunk-KWLSBTB2.cjs');
8
8
 
9
9
 
10
- exports.CopyButton = _chunkVKIGJNJRcjs.CopyButton;
10
+ exports.CopyButton = _chunkENJNZ323cjs.CopyButton;
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  CopyButton
4
- } from "../chunk-NW3OWKBN.js";
5
- import "../chunk-HQRWRRZJ.js";
4
+ } from "../chunk-PWOQMTPX.js";
6
5
  import "../chunk-ZWZAAGQF.js";
6
+ import "../chunk-HQRWRRZJ.js";
7
7
  import "../chunk-G6SRSWXB.js";
8
8
  export {
9
9
  CopyButton
@@ -2,7 +2,7 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkRSFEKQDRcjs = require('../chunk-RSFEKQDR.cjs');
5
+ var _chunkJ467F76Icjs = require('../chunk-J467F76I.cjs');
6
6
 
7
7
 
8
8
  var _chunkL4DH72UFcjs = require('../chunk-L4DH72UF.cjs');
@@ -23,7 +23,7 @@ function DecisionActions({
23
23
  }) {
24
24
  const fill = layout === "fill";
25
25
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26
- _chunkRSFEKQDRcjs.Stack,
26
+ _chunkJ467F76Icjs.Stack,
27
27
  {
28
28
  direction: "horizontal",
29
29
  gap: "sm",
@@ -2,7 +2,7 @@
2
2
  "use client";
3
3
  import {
4
4
  Stack
5
- } from "../chunk-6RVPQGYS.js";
5
+ } from "../chunk-WNWBKEWV.js";
6
6
  import {
7
7
  Button
8
8
  } from "../chunk-HQRWRRZJ.js";
@@ -2,6 +2,7 @@
2
2
 
3
3
 
4
4
  var _chunkW5I4FN7Gcjs = require('../chunk-W5I4FN7G.cjs');
5
+ require('../chunk-EJP2L5QV.cjs');
5
6
 
6
7
 
7
8
  var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
@@ -11,7 +12,6 @@ var _chunkPQUSJEXLcjs = require('../chunk-PQUSJEXL.cjs');
11
12
 
12
13
 
13
14
  var _chunkL4DH72UFcjs = require('../chunk-L4DH72UF.cjs');
14
- require('../chunk-EJP2L5QV.cjs');
15
15
 
16
16
 
17
17
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
@@ -2,6 +2,7 @@
2
2
  import {
3
3
  SentimentDot
4
4
  } from "../chunk-YWAQRAXP.js";
5
+ import "../chunk-F7JHSZNT.js";
5
6
  import {
6
7
  Text
7
8
  } from "../chunk-EIY5LLSP.js";
@@ -11,7 +12,6 @@ import {
11
12
  import {
12
13
  Button
13
14
  } from "../chunk-HQRWRRZJ.js";
14
- import "../chunk-F7JHSZNT.js";
15
15
  import {
16
16
  cn
17
17
  } from "../chunk-G6SRSWXB.js";
@@ -5,9 +5,9 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkKADJ56AHcjs = require('../chunk-KADJ56AH.cjs');
9
- require('../chunk-373W6VAD.cjs');
8
+ var _chunk6OTAGP2Icjs = require('../chunk-6OTAGP2I.cjs');
10
9
  require('../chunk-U2NES7VR.cjs');
10
+ require('../chunk-373W6VAD.cjs');
11
11
  require('../chunk-L4DH72UF.cjs');
12
12
  require('../chunk-KWLSBTB2.cjs');
13
13
 
@@ -15,4 +15,4 @@ require('../chunk-KWLSBTB2.cjs');
15
15
 
16
16
 
17
17
 
18
- exports.FileDropArea = _chunkKADJ56AHcjs.FileDropArea; exports.FileDropzone = _chunkKADJ56AHcjs.FileDropzone; exports.installFileDropGuard = _chunkKADJ56AHcjs.installFileDropGuard; exports.useFileDropGuard = _chunkKADJ56AHcjs.useFileDropGuard;
18
+ exports.FileDropArea = _chunk6OTAGP2Icjs.FileDropArea; exports.FileDropzone = _chunk6OTAGP2Icjs.FileDropzone; exports.installFileDropGuard = _chunk6OTAGP2Icjs.installFileDropGuard; exports.useFileDropGuard = _chunk6OTAGP2Icjs.useFileDropGuard;
@@ -5,9 +5,9 @@ import {
5
5
  FileDropzone,
6
6
  installFileDropGuard,
7
7
  useFileDropGuard
8
- } from "../chunk-M7FYGAGO.js";
9
- import "../chunk-EIY5LLSP.js";
8
+ } from "../chunk-EHKMVJ6O.js";
10
9
  import "../chunk-ZRLUUZHK.js";
10
+ import "../chunk-EIY5LLSP.js";
11
11
  import "../chunk-HQRWRRZJ.js";
12
12
  import "../chunk-G6SRSWXB.js";
13
13
  export {
@@ -2,19 +2,19 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkSGW4FWBXcjs = require('../chunk-SGW4FWBX.cjs');
5
+ var _chunkCYH63OCLcjs = require('../chunk-CYH63OCL.cjs');
6
6
  require('../chunk-PPX2VPGI.cjs');
7
7
  require('../chunk-WNXVGUBF.cjs');
8
8
  require('../chunk-IQZLUT2Y.cjs');
9
- require('../chunk-R5L4CM6V.cjs');
10
9
  require('../chunk-JH4GAGOQ.cjs');
11
10
  require('../chunk-V5SPFLKW.cjs');
11
+ require('../chunk-R5L4CM6V.cjs');
12
+ require('../chunk-R35FT53G.cjs');
12
13
  require('../chunk-PQUSJEXL.cjs');
13
14
  require('../chunk-VGTINL5Q.cjs');
14
15
  require('../chunk-I6GUOEBO.cjs');
15
16
  require('../chunk-L4DH72UF.cjs');
16
- require('../chunk-R35FT53G.cjs');
17
17
  require('../chunk-KWLSBTB2.cjs');
18
18
 
19
19
 
20
- exports.FilterBar = _chunkSGW4FWBXcjs.FilterBar;
20
+ exports.FilterBar = _chunkCYH63OCLcjs.FilterBar;
@@ -2,18 +2,18 @@
2
2
  "use client";
3
3
  import {
4
4
  FilterBar
5
- } from "../chunk-MLHNYRFX.js";
5
+ } from "../chunk-PVZ4JGDU.js";
6
6
  import "../chunk-G76JANB4.js";
7
7
  import "../chunk-YG7FBJRM.js";
8
8
  import "../chunk-E2TQMDO7.js";
9
- import "../chunk-RRRD5EUI.js";
10
9
  import "../chunk-OICAYRVH.js";
11
10
  import "../chunk-J6NXDZR5.js";
11
+ import "../chunk-RRRD5EUI.js";
12
+ import "../chunk-PIU5SSUV.js";
12
13
  import "../chunk-QMA3WVB7.js";
13
14
  import "../chunk-H7TETFLB.js";
14
15
  import "../chunk-D4ZL2OEQ.js";
15
16
  import "../chunk-HQRWRRZJ.js";
16
- import "../chunk-PIU5SSUV.js";
17
17
  import "../chunk-G6SRSWXB.js";
18
18
  export {
19
19
  FilterBar
@@ -2,27 +2,27 @@
2
2
  "use client";
3
3
 
4
4
 
5
- var _chunkIH3COANJcjs = require('../chunk-IH3COANJ.cjs');
5
+ var _chunkN6V3DDKUcjs = require('../chunk-N6V3DDKU.cjs');
6
6
  require('../chunk-PNWNU6JW.cjs');
7
7
  require('../chunk-FNDBM67K.cjs');
8
- require('../chunk-SGW4FWBX.cjs');
8
+ require('../chunk-CYH63OCL.cjs');
9
9
  require('../chunk-PPX2VPGI.cjs');
10
10
  require('../chunk-WNXVGUBF.cjs');
11
11
  require('../chunk-IQZLUT2Y.cjs');
12
- require('../chunk-LELBCBDT.cjs');
13
- require('../chunk-R5L4CM6V.cjs');
14
12
  require('../chunk-U2NES7VR.cjs');
15
13
  require('../chunk-JH4GAGOQ.cjs');
14
+ require('../chunk-LELBCBDT.cjs');
16
15
  require('../chunk-YYFVG5A6.cjs');
17
16
  require('../chunk-XLIAY56V.cjs');
18
17
  require('../chunk-V5SPFLKW.cjs');
18
+ require('../chunk-R5L4CM6V.cjs');
19
+ require('../chunk-R35FT53G.cjs');
19
20
  require('../chunk-PQUSJEXL.cjs');
20
21
  require('../chunk-VGTINL5Q.cjs');
21
22
  require('../chunk-I6GUOEBO.cjs');
22
23
  require('../chunk-VBPPFC7X.cjs');
23
24
  require('../chunk-L4DH72UF.cjs');
24
- require('../chunk-R35FT53G.cjs');
25
25
  require('../chunk-KWLSBTB2.cjs');
26
26
 
27
27
 
28
- exports.ResourceList = _chunkIH3COANJcjs.ResourceList;
28
+ exports.ResourceList = _chunkN6V3DDKUcjs.ResourceList;
@@ -2,26 +2,26 @@
2
2
  "use client";
3
3
  import {
4
4
  ResourceList
5
- } from "../chunk-HRLP4BHJ.js";
5
+ } from "../chunk-KYQPX754.js";
6
6
  import "../chunk-LI5EOSQG.js";
7
7
  import "../chunk-J3GQXM37.js";
8
- import "../chunk-MLHNYRFX.js";
8
+ import "../chunk-PVZ4JGDU.js";
9
9
  import "../chunk-G76JANB4.js";
10
10
  import "../chunk-YG7FBJRM.js";
11
11
  import "../chunk-E2TQMDO7.js";
12
- import "../chunk-H2O6NMLZ.js";
13
- import "../chunk-RRRD5EUI.js";
14
12
  import "../chunk-ZRLUUZHK.js";
15
13
  import "../chunk-OICAYRVH.js";
14
+ import "../chunk-H2O6NMLZ.js";
16
15
  import "../chunk-62UTAG2C.js";
17
16
  import "../chunk-LELFPLTE.js";
18
17
  import "../chunk-J6NXDZR5.js";
18
+ import "../chunk-RRRD5EUI.js";
19
+ import "../chunk-PIU5SSUV.js";
19
20
  import "../chunk-QMA3WVB7.js";
20
21
  import "../chunk-H7TETFLB.js";
21
22
  import "../chunk-D4ZL2OEQ.js";
22
23
  import "../chunk-YEW65ASC.js";
23
24
  import "../chunk-HQRWRRZJ.js";
24
- import "../chunk-PIU5SSUV.js";
25
25
  import "../chunk-G6SRSWXB.js";
26
26
  export {
27
27
  ResourceList
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
4
+ var _chunkLELBCBDTcjs = require('../chunk-LELBCBDT.cjs');
5
5
 
6
6
 
7
- var _chunkLELBCBDTcjs = require('../chunk-LELBCBDT.cjs');
7
+ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
8
8
 
9
9
 
10
10
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import {
3
- Text
4
- } from "../chunk-EIY5LLSP.js";
5
2
  import {
6
3
  Heading
7
4
  } from "../chunk-H2O6NMLZ.js";
5
+ import {
6
+ Text
7
+ } from "../chunk-EIY5LLSP.js";
8
8
  import {
9
9
  cn
10
10
  } from "../chunk-G6SRSWXB.js";
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkRSFEKQDRcjs = require('../chunk-RSFEKQDR.cjs');
4
+ var _chunkJ467F76Icjs = require('../chunk-J467F76I.cjs');
5
5
  require('../chunk-KWLSBTB2.cjs');
6
6
 
7
7
 
8
- exports.Stack = _chunkRSFEKQDRcjs.Stack;
8
+ exports.Stack = _chunkJ467F76Icjs.Stack;
@@ -5,9 +5,13 @@ import { HTMLAttributes, ElementType } from 'react';
5
5
  * Stack — flex container with a canonical gap scale.
6
6
  *
7
7
  * Consumers stop guessing between `gap-2`, `gap-3`, `gap-4`, etc.
8
- * Five sizes map to the shared spacing scale from no gap through large.
8
+ * Eight sizes map to the shared spacing scale: `none` (0), `xs` (0.25rem),
9
+ * `sm` (0.5rem), `compact` (0.75rem), `md` (1rem), `lg` (1.5rem), `xl`
10
+ * (2.5rem) and `2xl` (4.5rem). `xl` and `2xl` set blocks apart, such as a card
11
+ * that follows a paragraph and should read as its own block rather than the
12
+ * paragraph's continuation.
9
13
  */
10
- type StackGap = "none" | "xs" | "sm" | "compact" | "md" | "lg";
14
+ type StackGap = "none" | "xs" | "sm" | "compact" | "md" | "lg" | "xl" | "2xl";
11
15
  type StackDirection = "vertical" | "horizontal";
12
16
  interface StackProps extends HTMLAttributes<HTMLElement> {
13
17
  gap?: StackGap;
@@ -5,9 +5,13 @@ import { HTMLAttributes, ElementType } from 'react';
5
5
  * Stack — flex container with a canonical gap scale.
6
6
  *
7
7
  * Consumers stop guessing between `gap-2`, `gap-3`, `gap-4`, etc.
8
- * Five sizes map to the shared spacing scale from no gap through large.
8
+ * Eight sizes map to the shared spacing scale: `none` (0), `xs` (0.25rem),
9
+ * `sm` (0.5rem), `compact` (0.75rem), `md` (1rem), `lg` (1.5rem), `xl`
10
+ * (2.5rem) and `2xl` (4.5rem). `xl` and `2xl` set blocks apart, such as a card
11
+ * that follows a paragraph and should read as its own block rather than the
12
+ * paragraph's continuation.
9
13
  */
10
- type StackGap = "none" | "xs" | "sm" | "compact" | "md" | "lg";
14
+ type StackGap = "none" | "xs" | "sm" | "compact" | "md" | "lg" | "xl" | "2xl";
11
15
  type StackDirection = "vertical" | "horizontal";
12
16
  interface StackProps extends HTMLAttributes<HTMLElement> {
13
17
  gap?: StackGap;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Stack
4
- } from "../chunk-6RVPQGYS.js";
4
+ } from "../chunk-WNWBKEWV.js";
5
5
  import "../chunk-G6SRSWXB.js";
6
6
  export {
7
7
  Stack
@@ -7,10 +7,10 @@ var _chunk2XDFTB2Wcjs = require('../chunk-2XDFTB2W.cjs');
7
7
  var _chunkR3DQS6U4cjs = require('../chunk-R3DQS6U4.cjs');
8
8
 
9
9
 
10
- var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
10
+ var _chunkIQZLUT2Ycjs = require('../chunk-IQZLUT2Y.cjs');
11
11
 
12
12
 
13
- var _chunkIQZLUT2Ycjs = require('../chunk-IQZLUT2Y.cjs');
13
+ var _chunk373W6VADcjs = require('../chunk-373W6VAD.cjs');
14
14
 
15
15
 
16
16
  var _chunkKWLSBTB2cjs = require('../chunk-KWLSBTB2.cjs');
@@ -5,12 +5,12 @@ import {
5
5
  import {
6
6
  Card
7
7
  } from "../chunk-35YMAIEL.js";
8
- import {
9
- Text
10
- } from "../chunk-EIY5LLSP.js";
11
8
  import {
12
9
  Label
13
10
  } from "../chunk-E2TQMDO7.js";
11
+ import {
12
+ Text
13
+ } from "../chunk-EIY5LLSP.js";
14
14
  import {
15
15
  cn
16
16
  } from "../chunk-G6SRSWXB.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epicbagel/saas-kit",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
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": [