@epicbagel/saas-kit 1.5.0 → 1.7.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.
- package/README.md +33 -1
- package/dist/{chunk-GFG2R5BZ.js → chunk-2V7AVB2U.js} +1 -1
- package/dist/{chunk-LI5EOSQG.js → chunk-43UMPZWD.js} +1 -1
- package/dist/{chunk-XABXUP6L.cjs → chunk-5VMKDVB6.cjs} +2 -2
- package/dist/{chunk-QNZYQLNP.js → chunk-6S6GD43V.js} +1 -1
- package/dist/{chunk-WQJKUKBL.cjs → chunk-6YXKFVZU.cjs} +4 -4
- package/dist/{chunk-RIWLAMME.cjs → chunk-7LDJAXRX.cjs} +2 -2
- package/dist/{chunk-FNDBM67K.cjs → chunk-7YCKII7G.cjs} +2 -2
- package/dist/{chunk-2TKLS73N.js → chunk-C3VZMTVB.js} +1 -1
- package/dist/{chunk-G54TQV2R.cjs → chunk-CLYAASFN.cjs} +2 -2
- package/dist/{chunk-SGW4FWBX.cjs → chunk-CRTH5GJ5.cjs} +13 -13
- package/dist/{chunk-EZCKWTH7.js → chunk-CYDICVH2.js} +1 -1
- package/dist/{chunk-J3GQXM37.js → chunk-EEHIMPD7.js} +1 -1
- package/dist/{chunk-4NN7EA3W.js → chunk-ET4THLFX.js} +1 -1
- package/dist/{chunk-PNWNU6JW.cjs → chunk-EUFV25KL.cjs} +4 -4
- package/dist/{chunk-HHV4G77I.js → chunk-F3B4M6DU.js} +1 -1
- package/dist/{chunk-32Q4XOTU.cjs → chunk-FYRQFEU4.cjs} +2 -2
- package/dist/{chunk-VLXPLKFR.cjs → chunk-GTVSRRE3.cjs} +2 -2
- package/dist/{chunk-RRRD5EUI.js → chunk-H2CCBRVG.js} +1 -1
- package/dist/{chunk-FGISSYXG.js → chunk-H4XH2PPU.js} +1 -1
- package/dist/{chunk-M7FYGAGO.js → chunk-HBRVOGLA.js} +1 -1
- package/dist/{chunk-NW3OWKBN.js → chunk-HREEZUKL.js} +1 -1
- package/dist/{chunk-THWIJG5C.js → chunk-IJG2B3Y2.js} +1 -1
- package/dist/{chunk-L4DH72UF.cjs → chunk-JDEXZGIY.cjs} +2 -1
- package/dist/{chunk-HRLP4BHJ.js → chunk-JN6JOSZG.js} +4 -4
- package/dist/{chunk-NE3ZVJ6G.cjs → chunk-KM5FHCXU.cjs} +8 -8
- package/dist/{chunk-MLHNYRFX.js → chunk-KNKV25WS.js} +2 -2
- package/dist/{chunk-23UMHZ4S.cjs → chunk-LIUYHYFN.cjs} +3 -3
- package/dist/{chunk-EOUO3ORO.cjs → chunk-LKPM6DQP.cjs} +3 -3
- package/dist/{chunk-SUB4BAYE.cjs → chunk-M4V7OJNF.cjs} +2 -2
- package/dist/{chunk-VKIGJNJR.cjs → chunk-MU4F3DSW.cjs} +2 -2
- package/dist/{chunk-LAN3K2JI.cjs → chunk-NWDPH2Z7.cjs} +2 -2
- package/dist/{chunk-MHYAVXOE.js → chunk-QTPPNK6F.js} +1 -1
- package/dist/{chunk-IH3COANJ.cjs → chunk-QTWJQQDH.cjs} +12 -12
- package/dist/chunk-QZBPZLAB.js +24 -0
- package/dist/{chunk-HAC32ALJ.js → chunk-TI57GAQP.js} +1 -1
- package/dist/{chunk-GRY77463.cjs → chunk-TP74SBRH.cjs} +3 -3
- package/dist/chunk-VMXKT67E.cjs +24 -0
- package/dist/{chunk-R5L4CM6V.cjs → chunk-VOTCYG3F.cjs} +4 -4
- package/dist/{chunk-HQRWRRZJ.js → chunk-W326GKML.js} +2 -1
- package/dist/{chunk-HYSWE75T.js → chunk-WL73DFE3.js} +1 -1
- package/dist/{chunk-KADJ56AH.cjs → chunk-Z3JJSNR5.cjs} +2 -2
- package/dist/{chunk-FLPYZNWZ.js → chunk-ZLU32SRP.js} +1 -1
- package/dist/primitives/activity-feed.cjs +3 -3
- package/dist/primitives/activity-feed.js +2 -2
- package/dist/primitives/activity-log.cjs +3 -3
- package/dist/primitives/activity-log.js +2 -2
- package/dist/primitives/alert-dialog.cjs +3 -3
- package/dist/primitives/alert-dialog.js +2 -2
- package/dist/primitives/alert.d.cts +1 -1
- package/dist/primitives/alert.d.ts +1 -1
- package/dist/primitives/archive-confirmation-dialog.cjs +4 -4
- package/dist/primitives/archive-confirmation-dialog.js +3 -3
- package/dist/primitives/attachment.cjs +3 -3
- package/dist/primitives/attachment.d.cts +1 -1
- package/dist/primitives/attachment.d.ts +1 -1
- package/dist/primitives/attachment.js +2 -2
- package/dist/primitives/badge.d.cts +1 -1
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/board-view.cjs +7 -7
- package/dist/primitives/board-view.js +6 -6
- package/dist/primitives/bubble.d.cts +1 -1
- package/dist/primitives/bubble.d.ts +1 -1
- package/dist/primitives/button.cjs +2 -2
- package/dist/primitives/button.d.cts +3 -3
- package/dist/primitives/button.d.ts +3 -3
- package/dist/primitives/button.js +1 -1
- package/dist/primitives/calendar.cjs +3 -3
- package/dist/primitives/calendar.js +2 -2
- package/dist/primitives/chat.cjs +155 -80
- package/dist/primitives/chat.d.cts +32 -3
- package/dist/primitives/chat.d.ts +32 -3
- package/dist/primitives/chat.js +120 -45
- package/dist/primitives/code-block.cjs +4 -4
- package/dist/primitives/code-block.js +3 -3
- package/dist/primitives/confirm-bar.cjs +3 -3
- package/dist/primitives/confirm-bar.js +1 -1
- package/dist/primitives/connection-status-bar.cjs +4 -4
- package/dist/primitives/connection-status-bar.js +1 -1
- package/dist/primitives/connection.cjs +13 -13
- package/dist/primitives/connection.js +3 -3
- package/dist/primitives/copy-button.cjs +3 -3
- package/dist/primitives/copy-button.js +2 -2
- package/dist/primitives/decision-actions.cjs +2 -2
- package/dist/primitives/decision-actions.js +1 -1
- package/dist/primitives/delete-confirmation-dialog.cjs +4 -4
- package/dist/primitives/delete-confirmation-dialog.js +3 -3
- package/dist/primitives/document-preview.cjs +4 -4
- package/dist/primitives/document-preview.js +2 -2
- package/dist/primitives/editable-list.cjs +6 -6
- package/dist/primitives/editable-list.js +1 -1
- package/dist/primitives/empty-state.cjs +3 -3
- package/dist/primitives/empty-state.js +2 -2
- package/dist/primitives/file-dropzone.cjs +3 -3
- package/dist/primitives/file-dropzone.js +2 -2
- package/dist/primitives/file-preview-internals.cjs +3 -3
- package/dist/primitives/file-preview-internals.js +2 -2
- package/dist/primitives/file-preview.cjs +15 -15
- package/dist/primitives/file-preview.js +4 -4
- package/dist/primitives/filter-bar.cjs +4 -4
- package/dist/primitives/filter-bar.js +3 -3
- package/dist/primitives/input-group.cjs +3 -3
- package/dist/primitives/input-group.js +2 -2
- package/dist/primitives/item.d.cts +2 -2
- package/dist/primitives/item.d.ts +2 -2
- package/dist/primitives/load-more-button.cjs +3 -3
- package/dist/primitives/load-more-button.js +2 -2
- package/dist/primitives/message-scroller.cjs +3 -3
- package/dist/primitives/message-scroller.js +2 -2
- package/dist/primitives/message.cjs +3 -3
- package/dist/primitives/message.js +2 -2
- package/dist/primitives/page-header-actions.cjs +3 -3
- package/dist/primitives/page-header-actions.js +2 -2
- package/dist/primitives/quick-filters.cjs +3 -3
- package/dist/primitives/quick-filters.js +2 -2
- package/dist/primitives/resource-list.cjs +7 -7
- package/dist/primitives/resource-list.js +6 -6
- package/dist/primitives/search-input.cjs +101 -0
- package/dist/primitives/search-input.d.cts +23 -0
- package/dist/primitives/search-input.d.ts +23 -0
- package/dist/primitives/search-input.js +101 -0
- package/dist/primitives/section-header.d.cts +1 -1
- package/dist/primitives/section-header.d.ts +1 -1
- package/dist/primitives/spinner.cjs +3 -18
- package/dist/primitives/spinner.js +3 -18
- package/dist/primitives/split-action-button.cjs +3 -3
- package/dist/primitives/split-action-button.js +1 -1
- package/dist/primitives/suggestion.cjs +3 -3
- package/dist/primitives/suggestion.js +2 -2
- package/dist/primitives/tag-input.cjs +3 -3
- package/dist/primitives/tag-input.js +1 -1
- package/dist/primitives/toggle-group.d.cts +2 -2
- package/dist/primitives/toggle-group.d.ts +2 -2
- package/dist/primitives/toggle.d.cts +2 -2
- package/dist/primitives/toggle.d.ts +2 -2
- package/dist/primitives/voice-dictation-button.cjs +3 -3
- package/dist/primitives/voice-dictation-button.js +2 -2
- package/package.json +11 -1
package/README.md
CHANGED
|
@@ -70,6 +70,19 @@ CommonJS builds are included, each with type declarations.
|
|
|
70
70
|
built on `@shadcn/react`, which takes `ref` as a plain prop; on React 18 they
|
|
71
71
|
render, but a ref passed to them is dropped with a warning.
|
|
72
72
|
|
|
73
|
+
## Search input
|
|
74
|
+
|
|
75
|
+
`SearchInput` (`@epicbagel/saas-kit/primitives/search-input`) is a full-width,
|
|
76
|
+
rounded search field on a muted surface, composed from `InputGroup`. Supply
|
|
77
|
+
its controlled `value`, `onValueChange` and accessible `label`; the label is
|
|
78
|
+
also its default placeholder. `loading` replaces the search icon with a
|
|
79
|
+
spinner (`loadingLabel`). The inline clear button (`clearLabel`) and Escape
|
|
80
|
+
clear the query while keeping focus in the input. Disabled and read-only
|
|
81
|
+
fields cannot be cleared. `controlSize="default"` is 44px high and `"lg"`
|
|
82
|
+
is 48px, independent of root font size. Search timing and result fetching
|
|
83
|
+
belong to the caller. Pair it with `Button`'s `shape="pill"` for a matching
|
|
84
|
+
rounded action.
|
|
85
|
+
|
|
73
86
|
## Chat
|
|
74
87
|
|
|
75
88
|
`primitives/chat` composes the kit's lifts of the shadcn/ui AI Elements parts
|
|
@@ -81,7 +94,8 @@ public in 1.1.0, and these were the decisions about its props then:
|
|
|
81
94
|
("Thinking…"), `scrollButtonLabel` ("Scroll to latest message"),
|
|
82
95
|
`uploadingLabel` ("Uploading…"), `voiceHeroLabel` ("Tap to speak"),
|
|
83
96
|
`voiceHeroSwitchLabel` ("or type instead"), `examplePromptsLabel` ("Try"),
|
|
84
|
-
`examplePromptsLoadingLabel` ("Loading suggestions…"),
|
|
97
|
+
`examplePromptsLoadingLabel` ("Loading suggestions…"),
|
|
98
|
+
`replySuggestionsLabel` ("Suggested replies"), `addFilesLabel`,
|
|
85
99
|
`placeholder` and `activePlaceholder`. The defaults are plain English with
|
|
86
100
|
no product voice, and the empty state has no title unless you pass
|
|
87
101
|
`emptyTitle`. The icon buttons' accessible names ("Send", "Add to
|
|
@@ -89,9 +103,27 @@ public in 1.1.0, and these were the decisions about its props then:
|
|
|
89
103
|
- **Composer height.** `ChatInput` takes a `size` token (`sm`, `md`, `lg`)
|
|
90
104
|
for the textarea's starting height; there is no class-name or `rows` prop.
|
|
91
105
|
The textarea grows with its text (`field-sizing: content`).
|
|
106
|
+
- **Compact mobile replies.** Opt into `Chat.mobileCompactComposer` to fold
|
|
107
|
+
an active conversation's empty composer into one row below 768px. Focusing
|
|
108
|
+
its textarea expands it; leaving the composer folds it again only when
|
|
109
|
+
there is no draft or staged file. The same textarea stays mounted, and
|
|
110
|
+
its file menu and voice dialog keep an editing session open. New
|
|
111
|
+
conversations and desktop keep their normal size. `ChatInput` exposes
|
|
112
|
+
the underlying `compactOnBlur` behavior for other compositions. The
|
|
113
|
+
compact row keeps 44px controls and hides only its helper copy; any
|
|
114
|
+
privacy note remains visible.
|
|
92
115
|
- **Example prompts.** `examplePromptsVariant` is `chips` (the default: chips
|
|
93
116
|
that wrap onto as many lines as they need), `row` (one line that scrolls
|
|
94
117
|
sideways) or `cards` (a two-column grid).
|
|
118
|
+
- **Reply suggestions (1.7.0).** `replySuggestions` are the replies the
|
|
119
|
+
conversation offers next. They show once the conversation has started, at
|
|
120
|
+
the composer, directly above the input, as the example prompts' chips (one
|
|
121
|
+
implementation draws both), and wrap rather than cover the input on a
|
|
122
|
+
phone. `replySuggestionsLabel` ("Suggested replies") names the group.
|
|
123
|
+
Picking a suggestion of either kind sends only its words, `onSend(text,
|
|
124
|
+
[])`: the draft and staged files stay, and a failure is reported without
|
|
125
|
+
touching them. Suggestions are disabled while `pending`; pass none once
|
|
126
|
+
they no longer apply.
|
|
95
127
|
- **Failed sends.** When `onSend` rejects, Chat puts the text back in the
|
|
96
128
|
composer and calls `onSendError`; without one it reports the rejection
|
|
97
129
|
through `reportError`, so a failure is never silent.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -109,7 +109,7 @@ function MessageScrollerButton({
|
|
|
109
109
|
"cn-message-scroller-button absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180",
|
|
110
110
|
className
|
|
111
111
|
),
|
|
112
|
-
render: _nullishCoalesce(render, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
112
|
+
render: _nullishCoalesce(render, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDEXZGIYcjs.Button, { variant, size }))),
|
|
113
113
|
...props,
|
|
114
114
|
children: _nullishCoalesce(children, () => ( /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
115
115
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArrowDown, { className: "h-4 w-4" }),
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
var _chunkZAITUDYDcjs = require('./chunk-ZAITUDYD.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -76,7 +76,7 @@ function PageHeaderActions({
|
|
|
76
76
|
children: desktopActions.map(
|
|
77
77
|
(action) => _optionalChain([action, 'access', _3 => _3.items, 'optionalAccess', _4 => _4.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZAITUDYDcjs.DropdownMenu, { children: [
|
|
78
78
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZAITUDYDcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
79
|
-
|
|
79
|
+
_chunkJDEXZGIYcjs.Button,
|
|
80
80
|
{
|
|
81
81
|
type: "button",
|
|
82
82
|
size: "sm",
|
|
@@ -92,7 +92,7 @@ function PageHeaderActions({
|
|
|
92
92
|
) }),
|
|
93
93
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZAITUDYDcjs.DropdownMenuContent, { align: "end", width: "compact", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuActions, { actions: action.items }) })
|
|
94
94
|
] }, action.id) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
95
|
-
|
|
95
|
+
_chunkJDEXZGIYcjs.Button,
|
|
96
96
|
{
|
|
97
97
|
type: "button",
|
|
98
98
|
size: "sm",
|
|
@@ -111,7 +111,7 @@ function PageHeaderActions({
|
|
|
111
111
|
}
|
|
112
112
|
),
|
|
113
113
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sm:hidden", "data-slot": "page-header-actions-mobile", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZAITUDYDcjs.DropdownMenu, { children: [
|
|
114
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZAITUDYDcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
114
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZAITUDYDcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJDEXZGIYcjs.Button, { type: "button", size: "sm", variant: "outline", "aria-label": mobileAriaLabel, children: [
|
|
115
115
|
mobileLabel,
|
|
116
116
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, { "aria-hidden": "true" })
|
|
117
117
|
] }) }),
|
|
@@ -7,7 +7,7 @@ var _chunk2HV2KKOEcjs = require('./chunk-2HV2KKOE.cjs');
|
|
|
7
7
|
var _chunkPQUSJEXLcjs = require('./chunk-PQUSJEXL.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -91,7 +91,7 @@ function InputGroupButton({
|
|
|
91
91
|
...props
|
|
92
92
|
}) {
|
|
93
93
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
94
|
-
|
|
94
|
+
_chunkJDEXZGIYcjs.Button,
|
|
95
95
|
{
|
|
96
96
|
type,
|
|
97
97
|
size: "bare",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -43,7 +43,7 @@ function LoadMoreButton({
|
|
|
43
43
|
);
|
|
44
44
|
}
|
|
45
45
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "mt-4 flex justify-center", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
46
|
-
|
|
46
|
+
_chunkJDEXZGIYcjs.Button,
|
|
47
47
|
{
|
|
48
48
|
type: "button",
|
|
49
49
|
variant: "outline",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -189,7 +189,7 @@ function EmptyState({
|
|
|
189
189
|
}
|
|
190
190
|
),
|
|
191
191
|
action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
192
|
-
|
|
192
|
+
_chunkJDEXZGIYcjs.Button,
|
|
193
193
|
{
|
|
194
194
|
type: "button",
|
|
195
195
|
variant: action.variant || "outline",
|
|
@@ -15,7 +15,7 @@ var _chunkWNXVGUBFcjs = require('./chunk-WNXVGUBF.cjs');
|
|
|
15
15
|
var _chunkIQZLUT2Ycjs = require('./chunk-IQZLUT2Y.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkVOTCYG3Fcjs = require('./chunk-VOTCYG3F.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
var _chunkJH4GAGOQcjs = require('./chunk-JH4GAGOQ.cjs');
|
|
@@ -37,7 +37,7 @@ var _chunkVGTINL5Qcjs = require('./chunk-VGTINL5Q.cjs');
|
|
|
37
37
|
var _chunkI6GUOEBOcjs = require('./chunk-I6GUOEBO.cjs');
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
var
|
|
40
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
var _chunkR35FT53Gcjs = require('./chunk-R35FT53G.cjs');
|
|
@@ -141,7 +141,7 @@ function FilterBar({
|
|
|
141
141
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkI6GUOEBOcjs.Badge, { variant: "secondary", className: "text-xs", children: [
|
|
142
142
|
_optionalChain([option, 'optionalAccess', _12 => _12.label]),
|
|
143
143
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
144
|
-
|
|
144
|
+
_chunkJDEXZGIYcjs.Button,
|
|
145
145
|
{
|
|
146
146
|
variant: "ghost",
|
|
147
147
|
size: "sm",
|
|
@@ -164,7 +164,7 @@ function FilterBar({
|
|
|
164
164
|
const calendarSelected = rangeFrom ? { from: toDate(rangeFrom), to: toDate(rangeTo) } : void 0;
|
|
165
165
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWNXVGUBFcjs.Popover, { children: [
|
|
166
166
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWNXVGUBFcjs.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
167
|
-
|
|
167
|
+
_chunkJDEXZGIYcjs.Button,
|
|
168
168
|
{
|
|
169
169
|
variant: "outline",
|
|
170
170
|
className: "justify-start text-left font-normal w-full",
|
|
@@ -175,7 +175,7 @@ function FilterBar({
|
|
|
175
175
|
}
|
|
176
176
|
) }),
|
|
177
177
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWNXVGUBFcjs.PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
178
|
-
|
|
178
|
+
_chunkVOTCYG3Fcjs.Calendar,
|
|
179
179
|
{
|
|
180
180
|
mode: "range",
|
|
181
181
|
selected: calendarSelected,
|
|
@@ -190,7 +190,7 @@ function FilterBar({
|
|
|
190
190
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 gap-2", children: [
|
|
191
191
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWNXVGUBFcjs.Popover, { children: [
|
|
192
192
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWNXVGUBFcjs.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
193
|
-
|
|
193
|
+
_chunkJDEXZGIYcjs.Button,
|
|
194
194
|
{
|
|
195
195
|
variant: "outline",
|
|
196
196
|
className: "justify-start text-left font-normal",
|
|
@@ -201,7 +201,7 @@ function FilterBar({
|
|
|
201
201
|
}
|
|
202
202
|
) }),
|
|
203
203
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWNXVGUBFcjs.PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
204
|
-
|
|
204
|
+
_chunkVOTCYG3Fcjs.Calendar,
|
|
205
205
|
{
|
|
206
206
|
mode: "single",
|
|
207
207
|
selected: _optionalChain([value, 'optionalAccess', _18 => _18.from]),
|
|
@@ -212,7 +212,7 @@ function FilterBar({
|
|
|
212
212
|
] }),
|
|
213
213
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkWNXVGUBFcjs.Popover, { children: [
|
|
214
214
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWNXVGUBFcjs.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
215
|
-
|
|
215
|
+
_chunkJDEXZGIYcjs.Button,
|
|
216
216
|
{
|
|
217
217
|
variant: "outline",
|
|
218
218
|
className: "justify-start text-left font-normal",
|
|
@@ -223,7 +223,7 @@ function FilterBar({
|
|
|
223
223
|
}
|
|
224
224
|
) }),
|
|
225
225
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWNXVGUBFcjs.PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
226
|
-
|
|
226
|
+
_chunkVOTCYG3Fcjs.Calendar,
|
|
227
227
|
{
|
|
228
228
|
mode: "single",
|
|
229
229
|
selected: _optionalChain([value, 'optionalAccess', _20 => _20.to]),
|
|
@@ -287,7 +287,7 @@ function FilterBar({
|
|
|
287
287
|
};
|
|
288
288
|
const activeFilterCount = getActiveFilterCount();
|
|
289
289
|
const trigger = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
290
|
-
|
|
290
|
+
_chunkJDEXZGIYcjs.Button,
|
|
291
291
|
{
|
|
292
292
|
variant: "outline",
|
|
293
293
|
size: triggerSize === "lg" ? includeLabel || activeFilterCount > 0 ? "toolbar" : "icon-lg" : includeLabel || activeFilterCount > 0 ? "default" : "icon",
|
|
@@ -309,7 +309,7 @@ function FilterBar({
|
|
|
309
309
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 border-b p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
|
|
310
310
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h4", { className: "font-medium", children: "Filters" }),
|
|
311
311
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
312
|
-
|
|
312
|
+
_chunkJDEXZGIYcjs.Button,
|
|
313
313
|
{
|
|
314
314
|
variant: "ghost",
|
|
315
315
|
size: "sm",
|
|
@@ -364,8 +364,8 @@ function FilterBar({
|
|
|
364
364
|
"data-slot": "filter-bar-actions",
|
|
365
365
|
className: "z-10 shrink-0 border-t bg-popover p-4 pb-[max(1rem,env(safe-area-inset-bottom))]",
|
|
366
366
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-end space-x-2", children: [
|
|
367
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
368
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
367
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDEXZGIYcjs.Button, { variant: "outline", onClick: () => setIsOpen(false), children: "Cancel" }),
|
|
368
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJDEXZGIYcjs.Button, { onClick: applyFilters, children: "Apply Filters" })
|
|
369
369
|
] })
|
|
370
370
|
}
|
|
371
371
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -70,7 +70,7 @@ function QuickFilters({
|
|
|
70
70
|
const isActive2 = (qf) => areFiltersEqual(activeFilters, qf.filters);
|
|
71
71
|
const handleClick2 = (qf) => isActive2(qf) ? onFilterClick({}) : onFilterClick(qf.filters);
|
|
72
72
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Shell, { showLabel, appearance, className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "flex items-center flex-wrap", appearance === "underline" ? "gap-6" : "gap-2"), children: quickFilters.map((filter) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
73
|
-
|
|
73
|
+
_chunkJDEXZGIYcjs.Button,
|
|
74
74
|
{
|
|
75
75
|
variant: appearance === "underline" ? "ghost" : isActive2(filter) ? "default" : "outline",
|
|
76
76
|
size: "sm",
|
|
@@ -121,7 +121,7 @@ function QuickFilters({
|
|
|
121
121
|
if (fs.length === 1) {
|
|
122
122
|
const filter = fs[0];
|
|
123
123
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
124
|
-
|
|
124
|
+
_chunkJDEXZGIYcjs.Button,
|
|
125
125
|
{
|
|
126
126
|
variant: appearance === "underline" ? "ghost" : isActive(filter) ? "default" : "outline",
|
|
127
127
|
size: "sm",
|
|
@@ -145,7 +145,7 @@ function QuickFilters({
|
|
|
145
145
|
appearance === "underline" ? "gap-6" : "gap-1 rounded-md border p-0.5"
|
|
146
146
|
),
|
|
147
147
|
children: fs.map((filter) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
148
|
-
|
|
148
|
+
_chunkJDEXZGIYcjs.Button,
|
|
149
149
|
{
|
|
150
150
|
variant: appearance === "underline" ? "ghost" : isActive(filter) ? "default" : "ghost",
|
|
151
151
|
size: "sm",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -147,7 +147,7 @@ function AttachmentAction({
|
|
|
147
147
|
...props
|
|
148
148
|
}) {
|
|
149
149
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
150
|
-
|
|
150
|
+
_chunkJDEXZGIYcjs.Button,
|
|
151
151
|
{
|
|
152
152
|
"data-slot": "attachment-action",
|
|
153
153
|
variant: _nullishCoalesce(variant, () => ( "ghost")),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkMU4F3DSWcjs = require('./chunk-MU4F3DSW.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -38,7 +38,7 @@ function CodeBlock({
|
|
|
38
38
|
}
|
|
39
39
|
),
|
|
40
40
|
copy ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
41
|
-
|
|
41
|
+
_chunkMU4F3DSWcjs.CopyButton,
|
|
42
42
|
{
|
|
43
43
|
text: copyText,
|
|
44
44
|
label: copyLabel,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
QuickFilters
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-43UMPZWD.js";
|
|
5
5
|
import {
|
|
6
6
|
LoadMoreButton
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EEHIMPD7.js";
|
|
8
8
|
import {
|
|
9
9
|
FilterBar
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KNKV25WS.js";
|
|
11
11
|
import {
|
|
12
12
|
Heading
|
|
13
13
|
} from "./chunk-H2O6NMLZ.js";
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
} from "./chunk-QMA3WVB7.js";
|
|
30
30
|
import {
|
|
31
31
|
Button
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-W326GKML.js";
|
|
33
33
|
import {
|
|
34
34
|
useIsMobile
|
|
35
35
|
} from "./chunk-PIU5SSUV.js";
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkLIUYHYFNcjs = require('./chunk-LIUYHYFN.cjs');
|
|
12
12
|
|
|
13
13
|
// src/primitives/delete-confirmation-dialog.tsx
|
|
14
14
|
var _lucidereact = require('lucide-react');
|
|
@@ -29,13 +29,13 @@ function DeleteConfirmationDialog({
|
|
|
29
29
|
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-5 w-5 text-destructive" }),
|
|
30
30
|
descriptionSuffix = "? This action cannot be undone."
|
|
31
31
|
}) {
|
|
32
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
34
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
32
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLIUYHYFNcjs.AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLIUYHYFNcjs.AlertDialogContent, { children: [
|
|
33
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLIUYHYFNcjs.AlertDialogHeader, { children: [
|
|
34
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLIUYHYFNcjs.AlertDialogTitle, { className: "flex items-center gap-2", children: [
|
|
35
35
|
icon,
|
|
36
36
|
title
|
|
37
37
|
] }),
|
|
38
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
38
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLIUYHYFNcjs.AlertDialogDescription, { children: [
|
|
39
39
|
description,
|
|
40
40
|
itemName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "font-semibold text-foreground", children: [
|
|
41
41
|
" ",
|
|
@@ -44,10 +44,10 @@ function DeleteConfirmationDialog({
|
|
|
44
44
|
descriptionSuffix
|
|
45
45
|
] })
|
|
46
46
|
] }),
|
|
47
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
48
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
47
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLIUYHYFNcjs.AlertDialogFooter, { children: [
|
|
48
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLIUYHYFNcjs.AlertDialogCancel, { disabled: loading, children: cancelText }),
|
|
49
49
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
50
|
-
|
|
50
|
+
_chunkLIUYHYFNcjs.AlertDialogAction,
|
|
51
51
|
{
|
|
52
52
|
onClick: (event) => {
|
|
53
53
|
if (!closeOnConfirm) event.preventDefault();
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-E2TQMDO7.js";
|
|
16
16
|
import {
|
|
17
17
|
Calendar
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-H2CCBRVG.js";
|
|
19
19
|
import {
|
|
20
20
|
Checkbox
|
|
21
21
|
} from "./chunk-OICAYRVH.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
} from "./chunk-D4ZL2OEQ.js";
|
|
38
38
|
import {
|
|
39
39
|
Button
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-W326GKML.js";
|
|
41
41
|
import {
|
|
42
42
|
useIsMobile
|
|
43
43
|
} from "./chunk-PIU5SSUV.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -90,7 +90,7 @@ var AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
90
90
|
AlertDialogPrimitive.Action,
|
|
91
91
|
{
|
|
92
92
|
ref,
|
|
93
|
-
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
93
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, _chunkJDEXZGIYcjs.buttonVariants.call(void 0, ), "flex-1", className),
|
|
94
94
|
...props
|
|
95
95
|
}
|
|
96
96
|
));
|
|
@@ -100,7 +100,7 @@ var AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
100
100
|
{
|
|
101
101
|
ref,
|
|
102
102
|
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
103
|
-
|
|
103
|
+
_chunkJDEXZGIYcjs.buttonVariants.call(void 0, { variant: "outline" }),
|
|
104
104
|
"flex-1",
|
|
105
105
|
className
|
|
106
106
|
),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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
|
|
4
|
+
var _chunkJDEXZGIYcjs = require('./chunk-JDEXZGIY.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
@@ -128,7 +128,7 @@ function VoiceDictationButton({
|
|
|
128
128
|
children
|
|
129
129
|
}
|
|
130
130
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
131
|
-
|
|
131
|
+
_chunkJDEXZGIYcjs.Button,
|
|
132
132
|
{
|
|
133
133
|
type: "button",
|
|
134
134
|
onClick: openOverlay,
|
|
@@ -211,7 +211,7 @@ function VoiceDictationButton({
|
|
|
211
211
|
] }),
|
|
212
212
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border-t border-border px-4 py-4 pb-[calc(1rem+env(safe-area-inset-bottom))] md:pb-4 md:rounded-b-xl flex flex-col items-stretch gap-2", children: [
|
|
213
213
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
214
|
-
|
|
214
|
+
_chunkJDEXZGIYcjs.Button,
|
|
215
215
|
{
|
|
216
216
|
size: "lg",
|
|
217
217
|
className: "h-12 w-full",
|