@mastra/playground-ui 34.1.0-alpha.3 → 35.0.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/CHANGELOG.md +188 -0
- package/dist/{code-block-CcVa6fM8.cjs → code-block-C4Zp_ewI.cjs} +18 -7
- package/dist/code-block-C4Zp_ewI.cjs.map +1 -0
- package/dist/{code-block-DPy5IAR8.js → code-block-CnRVTecy.js} +18 -7
- package/dist/code-block-CnRVTecy.js.map +1 -0
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +1 -1
- package/dist/components/DateTimePicker.es.js +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/{date-time-picker-t67keTZg.js → date-time-picker-BKSdFrHR.js} +2 -2
- package/dist/{date-time-picker-t67keTZg.js.map → date-time-picker-BKSdFrHR.js.map} +1 -1
- package/dist/{date-time-picker-BKqGpw5w.cjs → date-time-picker-Bjr6V3AR.cjs} +2 -2
- package/dist/{date-time-picker-BKqGpw5w.cjs.map → date-time-picker-Bjr6V3AR.cjs.map} +1 -1
- package/dist/{date-time-range-picker-iMvwOfiZ.js → date-time-range-picker-DKvS9c4j.js} +2 -2
- package/dist/{date-time-range-picker-iMvwOfiZ.js.map → date-time-range-picker-DKvS9c4j.js.map} +1 -1
- package/dist/{date-time-range-picker-Do-3VVvo.cjs → date-time-range-picker-DjcVeD-Z.cjs} +2 -2
- package/dist/{date-time-range-picker-Do-3VVvo.cjs.map → date-time-range-picker-DjcVeD-Z.cjs.map} +1 -1
- package/dist/index.cjs.js +344 -26
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +114 -26
- package/dist/index.es.js +349 -32
- package/dist/index.es.js.map +1 -1
- package/dist/{main-sidebar-Bk2U9O57.js → main-sidebar-1GVDTtcD.js} +16 -33
- package/dist/main-sidebar-1GVDTtcD.js.map +1 -0
- package/dist/{main-sidebar-CWoM-yrH.cjs → main-sidebar-Djs_3tGw.cjs} +16 -33
- package/dist/main-sidebar-Djs_3tGw.cjs.map +1 -0
- package/dist/{popover-ttQgAb0m.cjs → popover-B8RFw-D-.cjs} +12 -2
- package/dist/popover-B8RFw-D-.cjs.map +1 -0
- package/dist/{popover-CRLP2Ay_.js → popover-C65fxQ7m.js} +12 -2
- package/dist/popover-C65fxQ7m.js.map +1 -0
- package/dist/{property-filter-creator-CnuA0Otn.js → property-filter-creator-B9tK0VY3.js} +2 -2
- package/dist/{property-filter-creator-CnuA0Otn.js.map → property-filter-creator-B9tK0VY3.js.map} +1 -1
- package/dist/{property-filter-creator-Cl7xhaML.cjs → property-filter-creator-DU8pl6-6.cjs} +2 -2
- package/dist/{property-filter-creator-Cl7xhaML.cjs.map → property-filter-creator-DU8pl6-6.cjs.map} +1 -1
- package/dist/src/ds/components/CodeBlock/code-block.d.ts +3 -1
- package/dist/src/ds/components/Popover/popover.d.ts +1 -1
- package/dist/src/hooks/use-is-mobile.d.ts +1 -0
- package/dist/src/index.d.ts +4 -1
- package/dist/src/lib/resize/collapsible-panel.d.ts +1 -1
- package/dist/src/lib/resize/panel-drawer.d.ts +8 -0
- package/dist/src/lib/resize/panel-edge-icon.d.ts +4 -0
- package/dist/src/lib/resize/panel-icon-button.d.ts +1 -0
- package/dist/src/lib/resize/use-clamped-element-cursor.d.ts +16 -0
- package/dist/{tabs-tab-Cjv_3xGC.js → tabs-tab-Bv9aRRTl.js} +15 -15
- package/dist/tabs-tab-Bv9aRRTl.js.map +1 -0
- package/dist/{tabs-tab-Dl9FqQhm.cjs → tabs-tab-CulV7e_n.cjs} +15 -15
- package/dist/tabs-tab-CulV7e_n.cjs.map +1 -0
- package/package.json +7 -7
- package/dist/code-block-CcVa6fM8.cjs.map +0 -1
- package/dist/code-block-DPy5IAR8.js.map +0 -1
- package/dist/main-sidebar-Bk2U9O57.js.map +0 -1
- package/dist/main-sidebar-CWoM-yrH.cjs.map +0 -1
- package/dist/popover-CRLP2Ay_.js.map +0 -1
- package/dist/popover-ttQgAb0m.cjs.map +0 -1
- package/dist/src/hooks/index.d.ts +0 -3
- package/dist/src/lib/resize/index.d.ts +0 -2
- package/dist/tabs-tab-Cjv_3xGC.js.map +0 -1
- package/dist/tabs-tab-Dl9FqQhm.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,193 @@
|
|
|
1
1
|
# @mastra/playground-ui
|
|
2
2
|
|
|
3
|
+
## 35.0.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Random bump ([#18178](https://github.com/mastra-ai/mastra/pull/18178))
|
|
8
|
+
|
|
9
|
+
- Added reusable UI support for redesigned Studio panels and code surfaces. ([#17970](https://github.com/mastra-ai/mastra/pull/17970))
|
|
10
|
+
|
|
11
|
+
**Resizable panels.** Collapsing a side panel no longer reserves a wide empty rail with a permanent arrow button: the panel collapses to zero width while its content fades and slides out as one block. A ghost panel icon stays visible at the top of the edge so the panel remains discoverable, and hovering the edge or the resize handle peeks the content back in by a translucent sliver — a hint that clicking the edge opens it.
|
|
12
|
+
|
|
13
|
+
**Smooth open and close.** Expanding animates the panel width so the neighboring layout reflows smoothly instead of jumping, and a panel restored in its collapsed state first paints collapsed instead of loading open and snapping shut. Content holds a minimum width while the panel moves so text never rewraps mid-flight, and stays mounted while collapsed, preserving scroll position and inputs.
|
|
14
|
+
|
|
15
|
+
**Mobile gets drawers.** Below the mobile breakpoint, resizable side panels become near-full-width edge drawers (new `PanelDrawer` component) opened from the same ghost icon, with content kept mounted so panel state survives open/close. A new `useIsMobile` hook is exported for viewport-dependent rendering.
|
|
16
|
+
|
|
17
|
+
**CodeBlock actions.** `CodeBlock` has a new `actions` prop for controls that belong with the code surface, such as a mode toggle next to language tabs. The slot renders at the inline end of the header row in all three header modes (tabs, select, file name), and gets its own header row when no other header is present.
|
|
18
|
+
|
|
19
|
+
**Popover alignment.** `PopoverContent` now exposes collision avoidance controls so consumers can keep start-aligned popovers while still avoiding viewport overflow.
|
|
20
|
+
|
|
21
|
+
The resize wrapper also preserves the original resize callback arguments from `react-resizable-panels`, `useIsMobile` handles environments where media query APIs are unavailable, and the `SearchWithDropdown` ButtonsGroup story now keeps the segmented control heights aligned.
|
|
22
|
+
|
|
23
|
+
**Example**
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
import { PanelDrawer, useIsMobile, CodeBlock } from '@mastra/playground-ui';
|
|
27
|
+
|
|
28
|
+
function Panel({ code }: { code: string }) {
|
|
29
|
+
const isMobile = useIsMobile();
|
|
30
|
+
|
|
31
|
+
if (isMobile) {
|
|
32
|
+
return (
|
|
33
|
+
<PanelDrawer direction="left" label="Open panel">
|
|
34
|
+
<CodeBlock code={code} actions={<button type="button">Toggle view</button>} />
|
|
35
|
+
</PanelDrawer>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return <CodeBlock code={code} actions={<button type="button">Toggle view</button>} />;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- Improved the mobile sidebar menu to use native drawer interactions. ([#18154](https://github.com/mastra-ai/mastra/pull/18154))
|
|
46
|
+
|
|
47
|
+
- Improved mobile breakpoint detection to avoid unnecessary listener updates. ([#17970](https://github.com/mastra-ai/mastra/pull/17970))
|
|
48
|
+
|
|
49
|
+
- Updated dependencies [[`7c0d868`](https://github.com/mastra-ai/mastra/commit/7c0d868d97d0fdbc04c14d0166dbf44d4c5a4a62), [`d9d2273`](https://github.com/mastra-ai/mastra/commit/d9d2273c702690c9a26eab2aebea879701d4355a), [`b04369d`](https://github.com/mastra-ai/mastra/commit/b04369d6b167c698ef103981171a8bf92808e756), [`8f3c262`](https://github.com/mastra-ai/mastra/commit/8f3c262587b335588a02d96b17fd6aca34c885b3)]:
|
|
50
|
+
- @mastra/core@1.45.0
|
|
51
|
+
- @mastra/client-js@1.26.0
|
|
52
|
+
- @mastra/react@1.1.0
|
|
53
|
+
|
|
54
|
+
## 35.0.0-alpha.0
|
|
55
|
+
|
|
56
|
+
### Minor Changes
|
|
57
|
+
|
|
58
|
+
- Random bump ([#18178](https://github.com/mastra-ai/mastra/pull/18178))
|
|
59
|
+
|
|
60
|
+
- Added reusable UI support for redesigned Studio panels and code surfaces. ([#17970](https://github.com/mastra-ai/mastra/pull/17970))
|
|
61
|
+
|
|
62
|
+
**Resizable panels.** Collapsing a side panel no longer reserves a wide empty rail with a permanent arrow button: the panel collapses to zero width while its content fades and slides out as one block. A ghost panel icon stays visible at the top of the edge so the panel remains discoverable, and hovering the edge or the resize handle peeks the content back in by a translucent sliver — a hint that clicking the edge opens it.
|
|
63
|
+
|
|
64
|
+
**Smooth open and close.** Expanding animates the panel width so the neighboring layout reflows smoothly instead of jumping, and a panel restored in its collapsed state first paints collapsed instead of loading open and snapping shut. Content holds a minimum width while the panel moves so text never rewraps mid-flight, and stays mounted while collapsed, preserving scroll position and inputs.
|
|
65
|
+
|
|
66
|
+
**Mobile gets drawers.** Below the mobile breakpoint, resizable side panels become near-full-width edge drawers (new `PanelDrawer` component) opened from the same ghost icon, with content kept mounted so panel state survives open/close. A new `useIsMobile` hook is exported for viewport-dependent rendering.
|
|
67
|
+
|
|
68
|
+
**CodeBlock actions.** `CodeBlock` has a new `actions` prop for controls that belong with the code surface, such as a mode toggle next to language tabs. The slot renders at the inline end of the header row in all three header modes (tabs, select, file name), and gets its own header row when no other header is present.
|
|
69
|
+
|
|
70
|
+
**Popover alignment.** `PopoverContent` now exposes collision avoidance controls so consumers can keep start-aligned popovers while still avoiding viewport overflow.
|
|
71
|
+
|
|
72
|
+
The resize wrapper also preserves the original resize callback arguments from `react-resizable-panels`, `useIsMobile` handles environments where media query APIs are unavailable, and the `SearchWithDropdown` ButtonsGroup story now keeps the segmented control heights aligned.
|
|
73
|
+
|
|
74
|
+
**Example**
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
import { PanelDrawer, useIsMobile, CodeBlock } from '@mastra/playground-ui';
|
|
78
|
+
|
|
79
|
+
function Panel({ code }: { code: string }) {
|
|
80
|
+
const isMobile = useIsMobile();
|
|
81
|
+
|
|
82
|
+
if (isMobile) {
|
|
83
|
+
return (
|
|
84
|
+
<PanelDrawer direction="left" label="Open panel">
|
|
85
|
+
<CodeBlock code={code} actions={<button type="button">Toggle view</button>} />
|
|
86
|
+
</PanelDrawer>
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return <CodeBlock code={code} actions={<button type="button">Toggle view</button>} />;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Patch Changes
|
|
95
|
+
|
|
96
|
+
- Improved the mobile sidebar menu to use native drawer interactions. ([#18154](https://github.com/mastra-ai/mastra/pull/18154))
|
|
97
|
+
|
|
98
|
+
- Improved mobile breakpoint detection to avoid unnecessary listener updates. ([#17970](https://github.com/mastra-ai/mastra/pull/17970))
|
|
99
|
+
|
|
100
|
+
- Updated dependencies [[`7c0d868`](https://github.com/mastra-ai/mastra/commit/7c0d868d97d0fdbc04c14d0166dbf44d4c5a4a62), [`d9d2273`](https://github.com/mastra-ai/mastra/commit/d9d2273c702690c9a26eab2aebea879701d4355a), [`b04369d`](https://github.com/mastra-ai/mastra/commit/b04369d6b167c698ef103981171a8bf92808e756), [`8f3c262`](https://github.com/mastra-ai/mastra/commit/8f3c262587b335588a02d96b17fd6aca34c885b3)]:
|
|
101
|
+
- @mastra/core@1.45.0-alpha.0
|
|
102
|
+
- @mastra/client-js@1.26.0-alpha.0
|
|
103
|
+
- @mastra/react@1.1.0-alpha.0
|
|
104
|
+
|
|
105
|
+
## 34.1.0
|
|
106
|
+
|
|
107
|
+
### Minor Changes
|
|
108
|
+
|
|
109
|
+
- Added drawer overlay modes for floating panels: ([#17770](https://github.com/mastra-ai/mastra/pull/17770))
|
|
110
|
+
- `auto`: keeps default drawer behavior and renders floating drawers without an overlay.
|
|
111
|
+
- `transparent`: blocks background interaction without drawing a visible backdrop.
|
|
112
|
+
- `visible`: renders the standard dimmed backdrop and blocks background interaction.
|
|
113
|
+
|
|
114
|
+
Each overlay-enabled floating drawer keeps native outside-click and drag dismissal.
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
<Drawer side="right" variant="floating" overlay="auto">
|
|
118
|
+
<DrawerContent>...</DrawerContent>
|
|
119
|
+
</Drawer>
|
|
120
|
+
|
|
121
|
+
<Drawer side="right" variant="floating" overlay="transparent">
|
|
122
|
+
<DrawerContent>...</DrawerContent>
|
|
123
|
+
</Drawer>
|
|
124
|
+
|
|
125
|
+
<Drawer side="right" variant="floating" overlay="visible">
|
|
126
|
+
<DrawerContent>...</DrawerContent>
|
|
127
|
+
</Drawer>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
- Added a floating Drawer variant for inset panels without a backdrop. ([#17770](https://github.com/mastra-ai/mastra/pull/17770))
|
|
131
|
+
|
|
132
|
+
Usage:
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
<Drawer side="right" variant="floating">
|
|
136
|
+
<DrawerContent>...</DrawerContent>
|
|
137
|
+
</Drawer>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
- Added a lined DataList variant with transparent rows and subtle separators. ([#18089](https://github.com/mastra-ai/mastra/pull/18089))
|
|
141
|
+
|
|
142
|
+
```tsx
|
|
143
|
+
<DataList columns="1fr auto" variant="lined">
|
|
144
|
+
<DataList.Top>
|
|
145
|
+
<DataList.TopCell>Name</DataList.TopCell>
|
|
146
|
+
<DataList.TopCell>Status</DataList.TopCell>
|
|
147
|
+
</DataList.Top>
|
|
148
|
+
<DataList.RowButton onClick={() => {}}>
|
|
149
|
+
<DataList.Cell>Research Agent</DataList.Cell>
|
|
150
|
+
<DataList.Cell>Active</DataList.Cell>
|
|
151
|
+
</DataList.RowButton>
|
|
152
|
+
</DataList>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Patch Changes
|
|
156
|
+
|
|
157
|
+
- Improved keyboard navigation and accessibility metadata in Tree. ([#18097](https://github.com/mastra-ai/mastra/pull/18097))
|
|
158
|
+
|
|
159
|
+
Tree now supports roving keyboard focus across visible items, Arrow Right/Left folder expansion, and Enter/Space activation through the existing public API:
|
|
160
|
+
|
|
161
|
+
```tsx
|
|
162
|
+
<Tree>
|
|
163
|
+
<Tree.Folder id="src" defaultOpen>
|
|
164
|
+
<Tree.FolderTrigger>
|
|
165
|
+
<Tree.Label>src</Tree.Label>
|
|
166
|
+
</Tree.FolderTrigger>
|
|
167
|
+
<Tree.FolderContent>
|
|
168
|
+
<Tree.File id="src/index.ts">
|
|
169
|
+
<Tree.Label>index.ts</Tree.Label>
|
|
170
|
+
</Tree.File>
|
|
171
|
+
</Tree.FolderContent>
|
|
172
|
+
</Tree.Folder>
|
|
173
|
+
</Tree>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
- Security remediation for the 2026-06-17 "easy-day-js" supply-chain incident. Patch bump to publish clean versions and move the `latest` dist-tag forward, superseding the compromised versions that declared the malicious `easy-day-js` dependency. ([#18056](https://github.com/mastra-ai/mastra/pull/18056))
|
|
177
|
+
|
|
178
|
+
- Fixed badges so they keep their intrinsic width in data list cells. ([#18090](https://github.com/mastra-ai/mastra/pull/18090))
|
|
179
|
+
|
|
180
|
+
- Added small badge size options for Playground UI badges. ([#18132](https://github.com/mastra-ai/mastra/pull/18132))
|
|
181
|
+
|
|
182
|
+
- Improved workflow UI helper components. ([#18079](https://github.com/mastra-ai/mastra/pull/18079))
|
|
183
|
+
|
|
184
|
+
- Improved Drawer content with a default top-right close button that can be hidden and kept floating side handles visible only on mobile and tablet viewports. ([#17770](https://github.com/mastra-ai/mastra/pull/17770))
|
|
185
|
+
|
|
186
|
+
- Updated dependencies [[`339c57c`](https://github.com/mastra-ai/mastra/commit/339c57c5b2c6dbe75a125e138228e0556528976f), [`1dd4117`](https://github.com/mastra-ai/mastra/commit/1dd4117dcbd8e031ede9f0489436bfbc6f0315b8), [`2b11d1f`](https://github.com/mastra-ai/mastra/commit/2b11d1f6ac7024c5dd2b2dd12a48a956ac9d63bd), [`77a2351`](https://github.com/mastra-ai/mastra/commit/77a2351ee79296e360bce822cb3391f7cfd6489d), [`b7dff0a`](https://github.com/mastra-ai/mastra/commit/b7dff0a3d1022eb6868f48dc40a2b1febd5c277f), [`02087e1`](https://github.com/mastra-ai/mastra/commit/02087e1fbc54aa07f3071f7a200df1bf5be601a8), [`49af8df`](https://github.com/mastra-ai/mastra/commit/49af8df589c4ff71a5015a4553b377b32704b691), [`30ce559`](https://github.com/mastra-ai/mastra/commit/30ce55902ecf819b8ab8697398dd68b108228063), [`c241b92`](https://github.com/mastra-ai/mastra/commit/c241b929dc8c8d6a7b7219c99ed13ac1f3124a77), [`7d6ff70`](https://github.com/mastra-ai/mastra/commit/7d6ff708727297a0526ca0e26e93eeb5bbaaa187), [`ab975d4`](https://github.com/mastra-ai/mastra/commit/ab975d4dd9488752f05bda7afa03166d207e3e2a), [`9d6aa1b`](https://github.com/mastra-ai/mastra/commit/9d6aa1bae407e2afa6a089abc2a6accbbcb287b8)]:
|
|
187
|
+
- @mastra/core@1.44.0
|
|
188
|
+
- @mastra/client-js@1.25.1
|
|
189
|
+
- @mastra/react@1.0.3
|
|
190
|
+
|
|
3
191
|
## 34.1.0-alpha.3
|
|
4
192
|
|
|
5
193
|
### Patch Changes
|
|
@@ -4,7 +4,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const code = require('./code-B3WONxnA.cjs');
|
|
5
5
|
const copyButton = require('./copy-button-BaAuAgdC.cjs');
|
|
6
6
|
const select = require('./select-DDgw1wG-.cjs');
|
|
7
|
-
const tabsTab = require('./tabs-tab-
|
|
7
|
+
const tabsTab = require('./tabs-tab-CulV7e_n.cjs');
|
|
8
8
|
const transitions = require('./transitions-DpczSjmD.cjs');
|
|
9
9
|
const utils = require('./utils-vA5sWo9W.cjs');
|
|
10
10
|
|
|
@@ -19,6 +19,7 @@ function CodeBlock({
|
|
|
19
19
|
overflow = "wrap",
|
|
20
20
|
copyMessage,
|
|
21
21
|
copyTooltip,
|
|
22
|
+
actions,
|
|
22
23
|
className
|
|
23
24
|
}) {
|
|
24
25
|
const hasOptions = options && options.length > 0;
|
|
@@ -34,12 +35,22 @@ function CodeBlock({
|
|
|
34
35
|
),
|
|
35
36
|
children: [
|
|
36
37
|
useTabs && options && /* @__PURE__ */ jsxRuntime.jsx(tabsTab.Tabs, { defaultTab: options[0].value, value: activeValue, onValueChange: onValueChange ?? (() => {
|
|
37
|
-
}), children: /* @__PURE__ */ jsxRuntime.
|
|
38
|
-
|
|
39
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
40
|
-
/* @__PURE__ */ jsxRuntime.jsx(select.SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
38
|
+
}), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-stretch", children: [
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(tabsTab.TabList, { children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(tabsTab.Tab, { value: opt.value, children: opt.label }, opt.value)) }) }),
|
|
40
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center border-b border-border1 pr-2 pl-3", children: actions })
|
|
41
41
|
] }) }),
|
|
42
|
-
|
|
42
|
+
useSelect && options && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b border-border2/40 px-2 py-1.5", children: [
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsxs(select.Select, { value: activeValue, onValueChange, children: [
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsx(select.SelectTrigger, { size: "sm", variant: "ghost", children: /* @__PURE__ */ jsxRuntime.jsx(select.SelectValue, {}) }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(select.SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
46
|
+
] }),
|
|
47
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto flex items-center", children: actions })
|
|
48
|
+
] }),
|
|
49
|
+
!hasOptions && fileName && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b border-border2/40 px-4 py-2", children: [
|
|
50
|
+
/* @__PURE__ */ jsxRuntime.jsx("figcaption", { className: "font-mono text-ui-sm text-neutral4", children: fileName }),
|
|
51
|
+
actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto flex items-center", children: actions })
|
|
52
|
+
] }),
|
|
53
|
+
!hasOptions && !fileName && actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-end border-b border-border2/40 px-2 py-1.5", children: actions }),
|
|
43
54
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
44
55
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45
56
|
code.Code,
|
|
@@ -72,4 +83,4 @@ function CodeBlock({
|
|
|
72
83
|
}
|
|
73
84
|
|
|
74
85
|
exports.CodeBlock = CodeBlock;
|
|
75
|
-
//# sourceMappingURL=code-block-
|
|
86
|
+
//# sourceMappingURL=code-block-C4Zp_ewI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block-C4Zp_ewI.cjs","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const activeValue = value ?? options?.[0]?.value;\n\n return (\n <figure\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border2/40 bg-surface2',\n className,\n )}\n >\n {useTabs && options && (\n <Tabs defaultTab={options[0].value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"flex shrink-0 items-center border-b border-border1 pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"flex items-center border-b border-border2/40 px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"flex items-center border-b border-border2/40 px-4 py-2\">\n <figcaption className=\"font-mono text-ui-sm text-neutral4\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"flex items-center justify-end border-b border-border2/40 px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-ui-sm text-neutral5',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'whitespace-pre-wrap break-all',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 pointer-fine:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":["code","jsxs","cn","jsx","Tabs","TabList","Tab","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Code","CopyButton","transitions"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { C as Code } from './code-C5KVVzOZ.js';
|
|
3
3
|
import { C as CopyButton } from './copy-button-BfiqaCtC.js';
|
|
4
4
|
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-D2w0zRz4.js';
|
|
5
|
-
import { b as Tabs, a as TabList, T as Tab } from './tabs-tab-
|
|
5
|
+
import { b as Tabs, a as TabList, T as Tab } from './tabs-tab-Bv9aRRTl.js';
|
|
6
6
|
import { t as transitions } from './transitions-tFfqxz40.js';
|
|
7
7
|
import { c as cn } from './utils-CzYGxqbG.js';
|
|
8
8
|
|
|
@@ -17,6 +17,7 @@ function CodeBlock({
|
|
|
17
17
|
overflow = "wrap",
|
|
18
18
|
copyMessage,
|
|
19
19
|
copyTooltip,
|
|
20
|
+
actions,
|
|
20
21
|
className
|
|
21
22
|
}) {
|
|
22
23
|
const hasOptions = options && options.length > 0;
|
|
@@ -32,12 +33,22 @@ function CodeBlock({
|
|
|
32
33
|
),
|
|
33
34
|
children: [
|
|
34
35
|
useTabs && options && /* @__PURE__ */ jsx(Tabs, { defaultTab: options[0].value, value: activeValue, onValueChange: onValueChange ?? (() => {
|
|
35
|
-
}), children: /* @__PURE__ */
|
|
36
|
-
|
|
37
|
-
/* @__PURE__ */ jsx(
|
|
38
|
-
/* @__PURE__ */ jsx(SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
36
|
+
}), children: /* @__PURE__ */ jsxs("div", { className: "flex items-stretch", children: [
|
|
37
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx(TabList, { children: options.map((opt) => /* @__PURE__ */ jsx(Tab, { value: opt.value, children: opt.label }, opt.value)) }) }),
|
|
38
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center border-b border-border1 pr-2 pl-3", children: actions })
|
|
39
39
|
] }) }),
|
|
40
|
-
|
|
40
|
+
useSelect && options && /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-border2/40 px-2 py-1.5", children: [
|
|
41
|
+
/* @__PURE__ */ jsxs(Select, { value: activeValue, onValueChange, children: [
|
|
42
|
+
/* @__PURE__ */ jsx(SelectTrigger, { size: "sm", variant: "ghost", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
|
|
43
|
+
/* @__PURE__ */ jsx(SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
44
|
+
] }),
|
|
45
|
+
actions && /* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center", children: actions })
|
|
46
|
+
] }),
|
|
47
|
+
!hasOptions && fileName && /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-border2/40 px-4 py-2", children: [
|
|
48
|
+
/* @__PURE__ */ jsx("figcaption", { className: "font-mono text-ui-sm text-neutral4", children: fileName }),
|
|
49
|
+
actions && /* @__PURE__ */ jsx("div", { className: "ml-auto flex items-center", children: actions })
|
|
50
|
+
] }),
|
|
51
|
+
!hasOptions && !fileName && actions && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-end border-b border-border2/40 px-2 py-1.5", children: actions }),
|
|
41
52
|
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
42
53
|
/* @__PURE__ */ jsx(
|
|
43
54
|
Code,
|
|
@@ -70,4 +81,4 @@ function CodeBlock({
|
|
|
70
81
|
}
|
|
71
82
|
|
|
72
83
|
export { CodeBlock as C };
|
|
73
|
-
//# sourceMappingURL=code-block-
|
|
84
|
+
//# sourceMappingURL=code-block-CnRVTecy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block-CnRVTecy.js","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const activeValue = value ?? options?.[0]?.value;\n\n return (\n <figure\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border2/40 bg-surface2',\n className,\n )}\n >\n {useTabs && options && (\n <Tabs defaultTab={options[0].value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"flex shrink-0 items-center border-b border-border1 pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"flex items-center border-b border-border2/40 px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"flex items-center border-b border-border2/40 px-4 py-2\">\n <figcaption className=\"font-mono text-ui-sm text-neutral4\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"flex items-center justify-end border-b border-border2/40 px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-ui-sm text-neutral5',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'whitespace-pre-wrap break-all',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 pointer-fine:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as CodeBlock } from '../code-block-
|
|
1
|
+
export { C as CodeBlock } from '../code-block-CnRVTecy.js';
|
|
2
2
|
//# sourceMappingURL=CodeBlock.es.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const dateTimePicker = require('../date-time-picker-
|
|
5
|
+
const dateTimePicker = require('../date-time-picker-Bjr6V3AR.cjs');
|
|
6
6
|
const timePicker = require('../time-picker-DWrxHBfR.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { D as DateTimePicker, a as DateTimePickerContent, b as DefaultTrigger } from '../date-time-picker-
|
|
1
|
+
export { D as DateTimePicker, a as DateTimePickerContent, b as DefaultTrigger } from '../date-time-picker-BKSdFrHR.js';
|
|
2
2
|
export { D as DatePicker, T as TimePicker } from '../time-picker-BtJz6IU2.js';
|
|
3
3
|
//# sourceMappingURL=DateTimePicker.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DateTimeRangePicker } from '../date-time-range-picker-
|
|
1
|
+
export { D as DateTimeRangePicker } from '../date-time-range-picker-DKvS9c4j.js';
|
|
2
2
|
//# sourceMappingURL=DateTimeRangePicker.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { M as MainSidebar, a as MainSidebarMobileTrigger, b as MainSidebarProvider, c as MainSidebarTrigger, g as getIsLinkActive, n as navItemClasses, u as useMainSidebar, d as useMaybeSidebar } from '../main-sidebar-
|
|
1
|
+
export { M as MainSidebar, a as MainSidebarMobileTrigger, b as MainSidebarProvider, c as MainSidebarTrigger, g as getIsLinkActive, n as navItemClasses, u as useMainSidebar, d as useMaybeSidebar } from '../main-sidebar-1GVDTtcD.js';
|
|
2
2
|
//# sourceMappingURL=MainSidebar.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { H as HoverPopover, P as Popover, a as PopoverContent, b as PopoverTrigger } from '../popover-
|
|
1
|
+
export { H as HoverPopover, P as Popover, a as PopoverContent, b as PopoverTrigger } from '../popover-C65fxQ7m.js';
|
|
2
2
|
//# sourceMappingURL=Popover.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { P as PickMultiPanel, a as PropertyFilterActions, b as PropertyFilterApplied, c as PropertyFilterCreator } from '../property-filter-creator-
|
|
1
|
+
export { P as PickMultiPanel, a as PropertyFilterActions, b as PropertyFilterApplied, c as PropertyFilterCreator } from '../property-filter-creator-B9tK0VY3.js';
|
|
2
2
|
//# sourceMappingURL=PropertyFilter.es.js.map
|
|
@@ -6,7 +6,7 @@ import { useDebouncedCallback } from 'use-debounce';
|
|
|
6
6
|
import { T as TextFieldBlock } from './text-field-block-gjrZyIFr.js';
|
|
7
7
|
import { D as DatePicker, T as TimePicker } from './time-picker-BtJz6IU2.js';
|
|
8
8
|
import { B as Button } from './Button-DoOEJwa_.js';
|
|
9
|
-
import { P as Popover, b as PopoverTrigger, a as PopoverContent } from './popover-
|
|
9
|
+
import { P as Popover, b as PopoverTrigger, a as PopoverContent } from './popover-C65fxQ7m.js';
|
|
10
10
|
import { c as cn } from './utils-CzYGxqbG.js';
|
|
11
11
|
|
|
12
12
|
const DateTimePicker = ({
|
|
@@ -242,4 +242,4 @@ const DefaultTrigger = React.forwardRef(
|
|
|
242
242
|
);
|
|
243
243
|
|
|
244
244
|
export { DateTimePicker as D, DateTimePickerContent as a, DefaultTrigger as b };
|
|
245
|
-
//# sourceMappingURL=date-time-picker-
|
|
245
|
+
//# sourceMappingURL=date-time-picker-BKSdFrHR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-picker-t67keTZg.js","sources":["../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, CircleAlertIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { TextFieldBlock } from '../FormFieldBlocks/fields/text-field-block';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\nexport type DateTimePickerProps =\n | (CommonProps & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & { children: React.ReactNode; className?: never; placeholder?: string });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto p-0! bg-surface4 max-w-[16.5rem]\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <TextFieldBlock\n name=\"date-range\"\n type=\"text\"\n value={dateInputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className=\"m-4 mb-0 w-auto!\"\n />\n\n {localErrorMsg && (\n <div\n className={cn(\n 'text-ui-md m-4 mb-0 text-neutral3',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:mt-0.5 [&>svg]:text-red-500 [&>svg]:float-left [&>svg]:mr-2',\n )}\n >\n <CircleAlertIcon /> {localErrorMsg}\n </div>\n )}\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"grid grid-cols-[1fr_2fr] gap-2 m-4 mt-0\">\n {newValueDefined && (\n <Button tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, className, ...props }, ref) => {\n return (\n <Button ref={ref} className={cn('justify-start', className)} {...props}>\n <CalendarIcon className=\"h-4 w-4\" />\n {value ? (\n <span className=\"text-white\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-gray\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-time-picker-BKSdFrHR.js","sources":["../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, CircleAlertIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { TextFieldBlock } from '../FormFieldBlocks/fields/text-field-block';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\nexport type DateTimePickerProps =\n | (CommonProps & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & { children: React.ReactNode; className?: never; placeholder?: string });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto p-0! bg-surface4 max-w-[16.5rem]\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <TextFieldBlock\n name=\"date-range\"\n type=\"text\"\n value={dateInputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className=\"m-4 mb-0 w-auto!\"\n />\n\n {localErrorMsg && (\n <div\n className={cn(\n 'text-ui-md m-4 mb-0 text-neutral3',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:mt-0.5 [&>svg]:text-red-500 [&>svg]:float-left [&>svg]:mr-2',\n )}\n >\n <CircleAlertIcon /> {localErrorMsg}\n </div>\n )}\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"grid grid-cols-[1fr_2fr] gap-2 m-4 mt-0\">\n {newValueDefined && (\n <Button tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, className, ...props }, ref) => {\n return (\n <Button ref={ref} className={cn('justify-start', className)} {...props}>\n <CalendarIcon className=\"h-4 w-4\" />\n {value ? (\n <span className=\"text-white\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-gray\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const useDebounce = require('use-debounce');
|
|
|
8
8
|
const textFieldBlock = require('./text-field-block-CGzVPqnF.cjs');
|
|
9
9
|
const timePicker = require('./time-picker-DWrxHBfR.cjs');
|
|
10
10
|
const Button = require('./Button-DpIX8JMz.cjs');
|
|
11
|
-
const popover = require('./popover-
|
|
11
|
+
const popover = require('./popover-B8RFw-D-.cjs');
|
|
12
12
|
const utils = require('./utils-vA5sWo9W.cjs');
|
|
13
13
|
|
|
14
14
|
function _interopNamespaceDefault(e) {
|
|
@@ -265,4 +265,4 @@ const DefaultTrigger = React__namespace.forwardRef(
|
|
|
265
265
|
exports.DateTimePicker = DateTimePicker;
|
|
266
266
|
exports.DateTimePickerContent = DateTimePickerContent;
|
|
267
267
|
exports.DefaultTrigger = DefaultTrigger;
|
|
268
|
-
//# sourceMappingURL=date-time-picker-
|
|
268
|
+
//# sourceMappingURL=date-time-picker-Bjr6V3AR.cjs.map
|