@alexgorbatchev/shadcn 0.0.49 → 0.0.50

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 (33) hide show
  1. package/README.md +2 -2
  2. package/dist/{chunk-jhvy8jay.js → chunk-f43963xy.js} +361 -434
  3. package/dist/{chunk-880zr7gb.js → chunk-p894n7r6.js} +9 -22
  4. package/dist/{chunk-t6w8vcvf.js → chunk-rc99vk8d.js} +19 -1
  5. package/dist/chunk-xfryhw7e.js +225 -0
  6. package/dist/{chunk-trwye0d6.js → chunk-yrp7xtb5.js} +21 -1
  7. package/dist/{chunk-62ggz655.js → chunk-zs4h45d8.js} +8 -9
  8. package/dist/components/OptionSelect.d.ts +29 -0
  9. package/dist/components/PageIntro.d.ts +22 -0
  10. package/dist/components/assistant-ui/native/McpConfigDialog.js +2 -1
  11. package/dist/components/assistant-ui/native/index.js +2 -1
  12. package/dist/components/calendar/Calendar.d.ts +3 -2
  13. package/dist/components/calendar/index.js +2 -1
  14. package/dist/components/data-grid/index.js +2 -2
  15. package/dist/components/gantt/index.js +9 -19
  16. package/dist/components/json-render/index.js +9 -8
  17. package/dist/components/persian-calendar/index.js +5 -3
  18. package/dist/components/virtual-data-grid/index.js +2 -2
  19. package/dist/index.d.ts +4 -1
  20. package/dist/index.js +18 -20
  21. package/dist/prototype.js +1 -1
  22. package/llms/components/data-display/Table.md +1 -1
  23. package/llms/components/forms/OptionSelect.md +100 -0
  24. package/llms/components/layout/PageIntro.md +102 -0
  25. package/llms/components/navigation/ContextMenu.md +25 -25
  26. package/llms/setup.md +2 -2
  27. package/llms.txt +2 -1
  28. package/package.json +1 -1
  29. package/templates/prototype/src/components/Workbench.tsx +45 -35
  30. package/templates/prototype/src/prototypes/dashboard/components/Dashboard.tsx +8 -7
  31. package/dist/chunk-sp4g23m0.js +0 -60
  32. package/dist/components/NativeSelect.d.ts +0 -12
  33. package/llms/components/forms/NativeSelect.md +0 -136
@@ -12,9 +12,8 @@ import {
12
12
  TableColumn2
13
13
  } from "./chunk-tjn53x34.js";
14
14
  import {
15
- NativeSelect2,
16
- NativeSelectOption2
17
- } from "./chunk-sp4g23m0.js";
15
+ OptionSelect2
16
+ } from "./chunk-xfryhw7e.js";
18
17
  import {
19
18
  Input2
20
19
  } from "./chunk-7vg045gd.js";
@@ -334,26 +333,14 @@ function DataGridPagination2({ table }) {
334
333
  /* @__PURE__ */ jsxs("div", {
335
334
  className: "flex items-center gap-2",
336
335
  children: [
337
- /* @__PURE__ */ jsxs(NativeSelect2, {
336
+ /* @__PURE__ */ jsx2(OptionSelect2, {
338
337
  "aria-label": "Rows per page",
339
- value: table.state.pagination.pageSize,
340
- onChange: (event) => table.setPageSize(Number(event.target.value)),
341
- children: [
342
- [10, 20, 50, 100].map((size) => /* @__PURE__ */ jsxs(NativeSelectOption2, {
343
- value: size,
344
- children: [
345
- size,
346
- " rows"
347
- ]
348
- }, size)),
349
- ![10, 20, 50, 100].includes(table.state.pagination.pageSize) && /* @__PURE__ */ jsxs(NativeSelectOption2, {
350
- value: table.state.pagination.pageSize,
351
- children: [
352
- table.state.pagination.pageSize,
353
- " rows"
354
- ]
355
- })
356
- ]
338
+ value: String(table.state.pagination.pageSize),
339
+ onValueChange: (next) => table.setPageSize(Number(next)),
340
+ options: [...new Set([10, 20, 50, 100, table.state.pagination.pageSize])].map((size) => ({
341
+ value: String(size),
342
+ label: `${size} rows`
343
+ }))
357
344
  }),
358
345
  /* @__PURE__ */ jsx2(Button2, {
359
346
  type: "button",
@@ -7,6 +7,9 @@ import {
7
7
  import {
8
8
  cn2
9
9
  } from "./chunk-en44w1pn.js";
10
+ import {
11
+ OptionSelect2
12
+ } from "./chunk-xfryhw7e.js";
10
13
  import {
11
14
  Badge2
12
15
  } from "./chunk-9t530p75.js";
@@ -205,6 +208,20 @@ function McpConfigDialog2({ children }) {
205
208
  });
206
209
  }
207
210
  McpConfigDialog2.displayName = "McpConfigDialog";
211
+ var MCP_AUTH_OPTIONS = [
212
+ { value: "oauth", label: "OAuth" },
213
+ { value: "bearer", label: "Bearer token" },
214
+ { value: "none", label: "None" }
215
+ ];
216
+ function McpAuthSelect({ id, value, onChange }) {
217
+ return /* @__PURE__ */ jsx(OptionSelect2, {
218
+ id,
219
+ width: "full",
220
+ value,
221
+ options: MCP_AUTH_OPTIONS,
222
+ onValueChange: (next) => onChange?.({ target: { value: next } })
223
+ });
224
+ }
208
225
  var ConnectorsSection = () => {
209
226
  return /* @__PURE__ */ jsxs("section", {
210
227
  className: "aui-mcp-connectors flex flex-col gap-2",
@@ -490,7 +507,8 @@ var AddServerForm = ({ onClose }) => {
490
507
  htmlFor: fieldIds.auth,
491
508
  children: /* @__PURE__ */ jsx(McpAddFormPrimitive.AuthSelect, {
492
509
  id: fieldIds.auth,
493
- className: "aui-mcp-auth-select bg-background h-control w-full rounded-sm border px-control-x text-control"
510
+ asChild: true,
511
+ children: /* @__PURE__ */ jsx(McpAuthSelect, {})
494
512
  })
495
513
  }),
496
514
  /* @__PURE__ */ jsx(McpAddFormPrimitive.AuthFields, {
@@ -0,0 +1,225 @@
1
+ import {
2
+ useDensity
3
+ } from "./chunk-e6hk39ev.js";
4
+ import {
5
+ usePortalContainer2,
6
+ usePortalNode,
7
+ PortalProvider2
8
+ } from "./chunk-x90xmrba.js";
9
+ import {
10
+ cn2
11
+ } from "./chunk-en44w1pn.js";
12
+ import {
13
+ useAnalyticsCallback
14
+ } from "./chunk-5mydsjp3.js";
15
+
16
+ // src/components/Select.tsx
17
+ import { Select as SelectPrimitive } from "@base-ui/react/select";
18
+ import { useDirection } from "@base-ui/react/direction-provider";
19
+ import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
20
+ import { jsx, jsxs } from "react/jsx-runtime";
21
+ "use client";
22
+ function Select2({
23
+ analytics,
24
+ ...props
25
+ }) {
26
+ const onValueChange = useAnalyticsCallback("Select", analytics, { name: "ui.change-request" }, props.onValueChange);
27
+ const onOpenChange = useAnalyticsCallback("Select", analytics, (open, _details) => ({ name: "ui.open-request", open }), props.onOpenChange);
28
+ return /* @__PURE__ */ jsx(SelectPrimitive.Root, {
29
+ ...props,
30
+ onValueChange,
31
+ onOpenChange
32
+ });
33
+ }
34
+ function SelectGroup2({ density, className, ...props }) {
35
+ return /* @__PURE__ */ jsx(SelectPrimitive.Group, {
36
+ "data-density": density,
37
+ "data-slot": "select-group",
38
+ className: (state) => cn2("scroll-my-1 p-1", typeof className === "function" ? className(state) : className),
39
+ ...props
40
+ });
41
+ }
42
+ function SelectValue2({ density, className, ...props }) {
43
+ return /* @__PURE__ */ jsx(SelectPrimitive.Value, {
44
+ "data-density": density,
45
+ "data-slot": "select-value",
46
+ className: (state) => cn2("flex flex-1 text-start", typeof className === "function" ? className(state) : className),
47
+ ...props
48
+ });
49
+ }
50
+ function SelectTrigger2({ density, className, size = "default", children, ...props }) {
51
+ return /* @__PURE__ */ jsxs(SelectPrimitive.Trigger, {
52
+ "data-density": density,
53
+ "data-slot": "select-trigger",
54
+ "data-size": size,
55
+ className: (state) => cn2("flex w-fit items-center justify-between gap-control-gap rounded-sm border border-input bg-transparent py-2 pe-2 ps-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive data-placeholder:text-muted-foreground data-[size=default]:h-control data-[size=sm]:h-control-sm data-[size=sm]:rounded-sm *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-control-gap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
56
+ ...props,
57
+ children: [
58
+ children,
59
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, {
60
+ render: /* @__PURE__ */ jsx(ChevronDownIcon, {
61
+ className: "pointer-events-none size-4 text-muted-foreground"
62
+ })
63
+ })
64
+ ]
65
+ });
66
+ }
67
+ function SelectContent2({
68
+ density,
69
+ className,
70
+ children,
71
+ side = "bottom",
72
+ sideOffset = 4,
73
+ align = "center",
74
+ alignOffset = 0,
75
+ alignItemWithTrigger = true,
76
+ ...props
77
+ }) {
78
+ const resolvedDensity = useDensity(density);
79
+ const direction = useDirection();
80
+ const container = usePortalContainer2();
81
+ const portal = usePortalNode();
82
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, {
83
+ container,
84
+ ref: portal.ref,
85
+ children: /* @__PURE__ */ jsx(PortalProvider2, {
86
+ container: portal.node,
87
+ children: /* @__PURE__ */ jsx(SelectPrimitive.Positioner, {
88
+ side,
89
+ sideOffset,
90
+ align,
91
+ alignOffset,
92
+ alignItemWithTrigger,
93
+ className: "isolate ",
94
+ children: /* @__PURE__ */ jsxs(SelectPrimitive.Popup, {
95
+ dir: direction,
96
+ "data-density": resolvedDensity,
97
+ "data-slot": "select-content",
98
+ "data-align-trigger": alignItemWithTrigger,
99
+ className: (state) => cn2("relative isolate max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[align-trigger=true]:animate-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:animate-none", typeof className === "function" ? className(state) : className),
100
+ ...props,
101
+ children: [
102
+ /* @__PURE__ */ jsx(SelectScrollUpButton2, {}),
103
+ /* @__PURE__ */ jsx(SelectPrimitive.List, {
104
+ children
105
+ }),
106
+ /* @__PURE__ */ jsx(SelectScrollDownButton2, {})
107
+ ]
108
+ })
109
+ })
110
+ })
111
+ });
112
+ }
113
+ function SelectLabel2({ density, className, ...props }) {
114
+ return /* @__PURE__ */ jsx(SelectPrimitive.GroupLabel, {
115
+ "data-density": density,
116
+ "data-slot": "select-label",
117
+ className: (state) => cn2("px-1.5 py-1 text-xs text-muted-foreground", typeof className === "function" ? className(state) : className),
118
+ ...props
119
+ });
120
+ }
121
+ function SelectItem2({ density, className, children, ...props }) {
122
+ return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
123
+ "data-density": density,
124
+ "data-slot": "select-item",
125
+ className: (state) => cn2("relative flex w-full cursor-default items-center gap-control-gap rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", typeof className === "function" ? className(state) : className),
126
+ ...props,
127
+ children: [
128
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, {
129
+ className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap",
130
+ children
131
+ }),
132
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, {
133
+ render: /* @__PURE__ */ jsx("span", {
134
+ className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center"
135
+ }),
136
+ children: /* @__PURE__ */ jsx(CheckIcon, {
137
+ className: "pointer-events-none"
138
+ })
139
+ })
140
+ ]
141
+ });
142
+ }
143
+ function SelectSeparator2({ density, className, ...props }) {
144
+ return /* @__PURE__ */ jsx(SelectPrimitive.Separator, {
145
+ "data-density": density,
146
+ "data-slot": "select-separator",
147
+ className: (state) => cn2("pointer-events-none -mx-1 my-1 h-px bg-border", typeof className === "function" ? className(state) : className),
148
+ ...props
149
+ });
150
+ }
151
+ function SelectScrollUpButton2({ density, className, ...props }) {
152
+ return /* @__PURE__ */ jsx(SelectPrimitive.ScrollUpArrow, {
153
+ "data-density": density,
154
+ "data-slot": "select-scroll-up-button",
155
+ className: (state) => cn2("top-0 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
156
+ ...props,
157
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, {})
158
+ });
159
+ }
160
+ function SelectScrollDownButton2({ density, className, ...props }) {
161
+ return /* @__PURE__ */ jsx(SelectPrimitive.ScrollDownArrow, {
162
+ "data-density": density,
163
+ "data-slot": "select-scroll-down-button",
164
+ className: (state) => cn2("bottom-0 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", typeof className === "function" ? className(state) : className),
165
+ ...props,
166
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {})
167
+ });
168
+ }
169
+
170
+ // src/components/OptionSelect.tsx
171
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
172
+ function OptionSelect2({
173
+ options,
174
+ value,
175
+ defaultValue,
176
+ onValueChange,
177
+ placeholder,
178
+ name,
179
+ id,
180
+ disabled,
181
+ required,
182
+ size = "default",
183
+ width = "fit",
184
+ density,
185
+ analytics,
186
+ "aria-label": ariaLabel
187
+ }) {
188
+ return /* @__PURE__ */ jsxs2(Select2, {
189
+ items: options,
190
+ analytics,
191
+ name,
192
+ disabled,
193
+ required,
194
+ ...value === undefined ? {} : { value },
195
+ ...defaultValue === undefined ? {} : { defaultValue },
196
+ onValueChange: (next) => {
197
+ if (next !== null)
198
+ onValueChange?.(next);
199
+ },
200
+ children: [
201
+ /* @__PURE__ */ jsx2(SelectTrigger2, {
202
+ id,
203
+ "aria-label": ariaLabel,
204
+ density,
205
+ size,
206
+ className: cn2(width === "full" && "w-full"),
207
+ children: /* @__PURE__ */ jsx2(SelectValue2, {
208
+ placeholder
209
+ })
210
+ }),
211
+ /* @__PURE__ */ jsx2(SelectContent2, {
212
+ density,
213
+ children: /* @__PURE__ */ jsx2(SelectGroup2, {
214
+ children: options.map((option) => /* @__PURE__ */ jsx2(SelectItem2, {
215
+ value: option.value,
216
+ disabled: option.disabled,
217
+ children: option.label
218
+ }, option.value))
219
+ })
220
+ })
221
+ ]
222
+ });
223
+ }
224
+
225
+ export { Select2, SelectGroup2, SelectValue2, SelectTrigger2, SelectContent2, SelectLabel2, SelectItem2, SelectSeparator2, SelectScrollUpButton2, SelectScrollDownButton2, OptionSelect2 };
@@ -4,6 +4,9 @@ import {
4
4
  import {
5
5
  buttonVariants2
6
6
  } from "./chunk-bd09gygt.js";
7
+ import {
8
+ OptionSelect2
9
+ } from "./chunk-xfryhw7e.js";
7
10
  import {
8
11
  useAnalyticsCallback
9
12
  } from "./chunk-5mydsjp3.js";
@@ -78,6 +81,7 @@ function Calendar2({
78
81
  classNames: getCalendarClassNames({ buttonVariant, classNames }),
79
82
  components: {
80
83
  DayButton: CalendarDayButton2,
84
+ Dropdown: CalendarDropdown,
81
85
  ...components
82
86
  },
83
87
  ...props,
@@ -97,5 +101,21 @@ function CalendarDayButton2({ className, day, modifiers, ...props }) {
97
101
  ...props
98
102
  });
99
103
  }
104
+ function CalendarDropdown({
105
+ options,
106
+ value,
107
+ onChange,
108
+ disabled,
109
+ "aria-label": ariaLabel
110
+ }) {
111
+ return /* @__PURE__ */ jsx(OptionSelect2, {
112
+ "aria-label": ariaLabel,
113
+ disabled,
114
+ size: "sm",
115
+ value: String(value),
116
+ options: (options ?? []).map((option) => ({ ...option, value: String(option.value) })),
117
+ onValueChange: (next) => onChange?.({ target: { value: next } })
118
+ });
119
+ }
100
120
 
101
- export { getCalendarClassNames, Calendar2, CalendarDayButton2 };
121
+ export { getCalendarClassNames, Calendar2, CalendarDayButton2, CalendarDropdown };
@@ -11,9 +11,8 @@ import {
11
11
  Button2
12
12
  } from "./chunk-bd09gygt.js";
13
13
  import {
14
- NativeSelect2,
15
- NativeSelectOption2
16
- } from "./chunk-sp4g23m0.js";
14
+ OptionSelect2
15
+ } from "./chunk-xfryhw7e.js";
17
16
  import {
18
17
  useAnalyticsCallback
19
18
  } from "./chunk-5mydsjp3.js";
@@ -395,16 +394,16 @@ function Kanban2({
395
394
  /* @__PURE__ */ jsxs3("div", {
396
395
  className: "flex items-center gap-1",
397
396
  children: [
398
- /* @__PURE__ */ jsx4(NativeSelect2, {
397
+ /* @__PURE__ */ jsx4(OptionSelect2, {
399
398
  "aria-label": `Move ${item.title} to`,
400
399
  value: column.id,
401
400
  disabled,
402
- onChange: (event) => move(item.id, event.target.value),
403
- children: columns.map((target) => /* @__PURE__ */ jsx4(NativeSelectOption2, {
401
+ onValueChange: (next) => move(item.id, next),
402
+ options: columns.map((target) => ({
404
403
  value: target.id,
405
- disabled: Boolean(canMove && !canMove(item, target.id)),
406
- children: target.label
407
- }, target.id))
404
+ label: target.label,
405
+ disabled: Boolean(canMove && !canMove(item, target.id))
406
+ }))
408
407
  }),
409
408
  /* @__PURE__ */ jsx4(Button2, {
410
409
  type: "button",
@@ -0,0 +1,29 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import type { IAnalyticsProps } from "../analytics/types.js";
3
+ import type { IDensityProps } from "../density/types.js";
4
+ type OptionSelectOption = {
5
+ value: string;
6
+ label: ReactNode;
7
+ disabled?: boolean;
8
+ };
9
+ type OptionSelectProps = IDensityProps & IAnalyticsProps & {
10
+ options: readonly OptionSelectOption[];
11
+ value?: string;
12
+ defaultValue?: string;
13
+ onValueChange?: (value: string) => void;
14
+ /** Shown while nothing is selected. */
15
+ placeholder?: ReactNode;
16
+ /** Submits the selected value with the surrounding form under this name. */
17
+ name?: string;
18
+ id?: string;
19
+ disabled?: boolean;
20
+ required?: boolean;
21
+ size?: "sm" | "default";
22
+ /** `full` fills a form field; `fit` sits inline in a toolbar. */
23
+ width?: "fit" | "full";
24
+ "aria-label"?: string;
25
+ };
26
+ /** A styled single-value `Select` for the common case of a flat list of options. */
27
+ declare function OptionSelect({ options, value, defaultValue, onValueChange, placeholder, name, id, disabled, required, size, width, density, analytics, "aria-label": ariaLabel, }: OptionSelectProps): ReactElement;
28
+ export { OptionSelect };
29
+ export type { OptionSelectOption, OptionSelectProps };
@@ -0,0 +1,22 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import type { IDensityProps } from "../density/types.js";
3
+ type PageIntroHighlight = {
4
+ title: string;
5
+ description: ReactNode;
6
+ icon?: ReactNode;
7
+ };
8
+ type PageIntroProps = IDensityProps & {
9
+ title: string;
10
+ /** One inviting sentence on what this page is for. */
11
+ description: ReactNode;
12
+ /** Context above the page title without introducing another heading. */
13
+ eyebrow?: ReactNode;
14
+ /** Decorative mark for the page; hidden from assistive technology. */
15
+ icon?: ReactNode;
16
+ actions?: ReactNode;
17
+ /** Short items naming what people can do here, laid out in as many columns as the intro's width allows. */
18
+ highlights?: readonly PageIntroHighlight[];
19
+ };
20
+ declare function PageIntro({ title, description, eyebrow, icon, actions, highlights, density }: PageIntroProps): ReactElement;
21
+ export { PageIntro };
22
+ export type { PageIntroHighlight, PageIntroProps };
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  McpConfigDialog2
3
- } from "../../../chunk-t6w8vcvf.js";
3
+ } from "../../../chunk-rc99vk8d.js";
4
4
  import"../../../chunk-m4geb1s5.js";
5
5
  import"../../../chunk-9t530p75.js";
6
6
  import"../../../chunk-m32ptxf3.js";
7
7
  import"../../../chunk-tcefvfr8.js";
8
+ import"../../../chunk-xfryhw7e.js";
8
9
  import"../../../chunk-4t23yhc0.js";
9
10
  import"../../../chunk-7vg045gd.js";
10
11
  import"../../../chunk-7jpsybag.js";
@@ -133,11 +133,12 @@ import"../../../chunk-dyg4pwcd.js";
133
133
  import {
134
134
  DirectiveText2
135
135
  } from "../../../chunk-n8n3gp71.js";
136
+ import"../../../chunk-xfryhw7e.js";
136
137
  import"../../../chunk-m32ptxf3.js";
137
138
  import"../../../chunk-52aadmkc.js";
138
139
  import {
139
140
  McpConfigDialog2
140
- } from "../../../chunk-t6w8vcvf.js";
141
+ } from "../../../chunk-rc99vk8d.js";
141
142
  import"../../../chunk-ptdr68cq.js";
142
143
  import"../../../chunk-65xd5we6.js";
143
144
  import {
@@ -1,6 +1,7 @@
1
1
  import type { ComponentProps, ReactElement } from "react";
2
2
  import type { CalendarProps } from "./types.js";
3
- import { DayButton } from "@daypicker/react";
3
+ import { DayButton, type DropdownProps } from "@daypicker/react";
4
4
  declare function Calendar({ analytics, density, className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, ...props }: CalendarProps): ReactElement;
5
5
  declare function CalendarDayButton({ className, day, modifiers, ...props }: ComponentProps<typeof DayButton>): ReactElement;
6
- export { Calendar, CalendarDayButton };
6
+ declare function CalendarDropdown({ options, value, onChange, disabled, "aria-label": ariaLabel, }: DropdownProps): ReactElement;
7
+ export { Calendar, CalendarDayButton, CalendarDropdown };
@@ -10,7 +10,8 @@ import {
10
10
  import {
11
11
  Calendar2,
12
12
  CalendarDayButton2
13
- } from "../../chunk-trwye0d6.js";
13
+ } from "../../chunk-yrp7xtb5.js";
14
+ import"../../chunk-xfryhw7e.js";
14
15
  import {
15
16
  Popover2,
16
17
  PopoverTrigger2,
@@ -8,7 +8,7 @@ import {
8
8
  Button2
9
9
  } from "../../chunk-bd09gygt.js";
10
10
  import"../../chunk-tjn53x34.js";
11
- import"../../chunk-sp4g23m0.js";
11
+ import"../../chunk-xfryhw7e.js";
12
12
  import"../../chunk-7jpsybag.js";
13
13
  import"../../chunk-7vg045gd.js";
14
14
  import {
@@ -19,7 +19,7 @@ import {
19
19
  DataGridColumnHeader2,
20
20
  DataGridFilter2,
21
21
  DataGridPagination2
22
- } from "../../chunk-880zr7gb.js";
22
+ } from "../../chunk-p894n7r6.js";
23
23
  import {
24
24
  Checkbox2
25
25
  } from "../../chunk-b5s5y5wq.js";
@@ -7,7 +7,7 @@ import {
7
7
  DragSource2,
8
8
  DropTarget2,
9
9
  Kanban2
10
- } from "../../chunk-62ggz655.js";
10
+ } from "../../chunk-zs4h45d8.js";
11
11
  import"../../chunk-en44w1pn.js";
12
12
  import"../../chunk-9t530p75.js";
13
13
  import"../../chunk-7ny0vyek.js";
@@ -19,9 +19,8 @@ import {
19
19
  Button2
20
20
  } from "../../chunk-bd09gygt.js";
21
21
  import {
22
- NativeSelect2,
23
- NativeSelectOption2
24
- } from "../../chunk-sp4g23m0.js";
22
+ OptionSelect2
23
+ } from "../../chunk-xfryhw7e.js";
25
24
  import {
26
25
  Table2,
27
26
  TableHeader2,
@@ -75,23 +74,14 @@ function Gantt({
75
74
  className: "font-semibold",
76
75
  children: label
77
76
  }),
78
- /* @__PURE__ */ jsxs(NativeSelect2, {
77
+ /* @__PURE__ */ jsx(OptionSelect2, {
79
78
  "aria-label": "Timeline zoom",
80
79
  value: zoom,
81
- onChange: (event) => setZoom(event.target.value),
82
- children: [
83
- /* @__PURE__ */ jsx(NativeSelectOption2, {
84
- value: "day",
85
- children: "Day scale"
86
- }),
87
- /* @__PURE__ */ jsx(NativeSelectOption2, {
88
- value: "week",
89
- children: "Week scale"
90
- }),
91
- /* @__PURE__ */ jsx(NativeSelectOption2, {
92
- value: "month",
93
- children: "Month scale"
94
- })
80
+ onValueChange: setZoom,
81
+ options: [
82
+ { value: "day", label: "Day scale" },
83
+ { value: "week", label: "Week scale" },
84
+ { value: "month", label: "Month scale" }
95
85
  ]
96
86
  })
97
87
  ]
@@ -19,11 +19,6 @@ import {
19
19
  AccordionItem2,
20
20
  AccordionTrigger2,
21
21
  AccordionContent2,
22
- Select2,
23
- SelectValue2,
24
- SelectTrigger2,
25
- SelectContent2,
26
- SelectItem2,
27
22
  Pagination2,
28
23
  PaginationContent2,
29
24
  PaginationItem2,
@@ -36,7 +31,7 @@ import {
36
31
  DrawerHeader2,
37
32
  DrawerTitle2,
38
33
  DrawerDescription2
39
- } from "../../chunk-jhvy8jay.js";
34
+ } from "../../chunk-f43963xy.js";
40
35
  import {
41
36
  MenuPopup,
42
37
  MenuItem2,
@@ -104,7 +99,7 @@ import {
104
99
  Tabs2,
105
100
  TabsList2,
106
101
  TabsTrigger2
107
- } from "../../chunk-62ggz655.js";
102
+ } from "../../chunk-zs4h45d8.js";
108
103
  import {
109
104
  Badge2
110
105
  } from "../../chunk-9t530p75.js";
@@ -112,6 +107,13 @@ import"../../chunk-4e96tpw0.js";
112
107
  import {
113
108
  Checkbox2
114
109
  } from "../../chunk-b5s5y5wq.js";
110
+ import {
111
+ Select2,
112
+ SelectValue2,
113
+ SelectTrigger2,
114
+ SelectContent2,
115
+ SelectItem2
116
+ } from "../../chunk-xfryhw7e.js";
115
117
  import"../../chunk-1j2hz3w9.js";
116
118
  import"../../chunk-k99h6evz.js";
117
119
  import {
@@ -144,7 +146,6 @@ import {
144
146
  TableCell2,
145
147
  TableCaption2
146
148
  } from "../../chunk-tjn53x34.js";
147
- import"../../chunk-sp4g23m0.js";
148
149
  import"../../chunk-7vnpp3ya.js";
149
150
  import"../../chunk-m4geb1s5.js";
150
151
  import"../../chunk-9ecf92s6.js";
@@ -9,8 +9,10 @@ import"../../chunk-jpvw9xqy.js";
9
9
  import"../../chunk-bd09gygt.js";
10
10
  import {
11
11
  getCalendarClassNames,
12
- CalendarDayButton2
13
- } from "../../chunk-trwye0d6.js";
12
+ CalendarDayButton2,
13
+ CalendarDropdown
14
+ } from "../../chunk-yrp7xtb5.js";
15
+ import"../../chunk-xfryhw7e.js";
14
16
  import {
15
17
  useAnalyticsCallback
16
18
  } from "../../chunk-5mydsjp3.js";
@@ -38,7 +40,7 @@ function PersianCalendar({
38
40
  captionLayout,
39
41
  className: cn2("group/calendar bg-background p-panel [--cell-size:var(--ag-control-h)]", className),
40
42
  classNames: getCalendarClassNames({ buttonVariant, classNames }),
41
- components: { DayButton: CalendarDayButton2, ...components },
43
+ components: { DayButton: CalendarDayButton2, Dropdown: CalendarDropdown, ...components },
42
44
  ...props,
43
45
  onDayClick,
44
46
  onMonthChange
@@ -8,7 +8,7 @@ import"../../chunk-e6hk39ev.js";
8
8
  import"../../chunk-x90xmrba.js";
9
9
  import"../../chunk-jpvw9xqy.js";
10
10
  import"../../chunk-bd09gygt.js";
11
- import"../../chunk-sp4g23m0.js";
11
+ import"../../chunk-xfryhw7e.js";
12
12
  import"../../chunk-7jpsybag.js";
13
13
  import"../../chunk-7vg045gd.js";
14
14
  import {
@@ -16,7 +16,7 @@ import {
16
16
  DataGridHeaderRows,
17
17
  DataGridCells2,
18
18
  DataGridColumns
19
- } from "../../chunk-880zr7gb.js";
19
+ } from "../../chunk-p894n7r6.js";
20
20
  import {
21
21
  VirtualTable2
22
22
  } from "../../chunk-k7cvfw0f.js";