@prototyperco/ui 0.5.0-alpha.0 → 0.5.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/dist/components/accordion.cjs +154 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.d.cts +14 -0
- package/dist/components/accordion.d.ts +14 -0
- package/dist/components/accordion.js +127 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.cjs +324 -0
- package/dist/components/alert-dialog.cjs.map +1 -0
- package/dist/components/alert-dialog.d.cts +30 -0
- package/dist/components/alert-dialog.d.ts +30 -0
- package/dist/components/alert-dialog.js +289 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.cjs +105 -0
- package/dist/components/alert.cjs.map +1 -0
- package/dist/components/alert.d.cts +17 -0
- package/dist/components/alert.d.ts +17 -0
- package/dist/components/alert.js +78 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/autocomplete.cjs +512 -0
- package/dist/components/autocomplete.cjs.map +1 -0
- package/dist/components/autocomplete.d.cts +31 -0
- package/dist/components/autocomplete.d.ts +31 -0
- package/dist/components/autocomplete.js +472 -0
- package/dist/components/autocomplete.js.map +1 -0
- package/dist/components/avatar.cjs +144 -0
- package/dist/components/avatar.cjs.map +1 -0
- package/dist/components/avatar.d.cts +18 -0
- package/dist/components/avatar.d.ts +18 -0
- package/dist/components/avatar.js +115 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.cjs +81 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.cts +13 -0
- package/dist/components/badge.d.ts +13 -0
- package/dist/components/badge.js +56 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.cjs +142 -0
- package/dist/components/breadcrumb.cjs.map +1 -0
- package/dist/components/breadcrumb.d.cts +20 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.js +112 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.cjs +145 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.cts +16 -0
- package/dist/components/button.d.ts +16 -0
- package/dist/components/button.js +120 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/card.cjs +141 -0
- package/dist/components/card.cjs.map +1 -0
- package/dist/components/card.d.cts +23 -0
- package/dist/components/card.d.ts +23 -0
- package/dist/components/card.js +111 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/checkbox-group.cjs +56 -0
- package/dist/components/checkbox-group.cjs.map +1 -0
- package/dist/components/checkbox-group.d.cts +8 -0
- package/dist/components/checkbox-group.d.ts +8 -0
- package/dist/components/checkbox-group.js +32 -0
- package/dist/components/checkbox-group.js.map +1 -0
- package/dist/components/checkbox.cjs +152 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.cts +12 -0
- package/dist/components/checkbox.d.ts +12 -0
- package/dist/components/checkbox.js +126 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.cjs +89 -0
- package/dist/components/collapsible.cjs.map +1 -0
- package/dist/components/collapsible.d.cts +12 -0
- package/dist/components/collapsible.d.ts +12 -0
- package/dist/components/collapsible.js +63 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/color-picker.cjs +983 -0
- package/dist/components/color-picker.cjs.map +1 -0
- package/dist/components/color-picker.d.cts +41 -0
- package/dist/components/color-picker.d.ts +41 -0
- package/dist/components/color-picker.js +939 -0
- package/dist/components/color-picker.js.map +1 -0
- package/dist/components/columns.cjs +163 -0
- package/dist/components/columns.cjs.map +1 -0
- package/dist/components/columns.d.cts +16 -0
- package/dist/components/columns.d.ts +16 -0
- package/dist/components/columns.js +136 -0
- package/dist/components/columns.js.map +1 -0
- package/dist/components/combobox.cjs +633 -0
- package/dist/components/combobox.cjs.map +1 -0
- package/dist/components/combobox.d.cts +40 -0
- package/dist/components/combobox.d.ts +40 -0
- package/dist/components/combobox.js +576 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command-palette.cjs +370 -0
- package/dist/components/command-palette.cjs.map +1 -0
- package/dist/components/command-palette.d.cts +42 -0
- package/dist/components/command-palette.d.ts +42 -0
- package/dist/components/command-palette.js +329 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/container.cjs +80 -0
- package/dist/components/container.cjs.map +1 -0
- package/dist/components/container.d.cts +27 -0
- package/dist/components/container.d.ts +27 -0
- package/dist/components/container.js +54 -0
- package/dist/components/container.js.map +1 -0
- package/dist/components/context-menu.cjs +309 -0
- package/dist/components/context-menu.cjs.map +1 -0
- package/dist/components/context-menu.d.cts +37 -0
- package/dist/components/context-menu.d.ts +37 -0
- package/dist/components/context-menu.js +271 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.cjs +319 -0
- package/dist/components/dialog.cjs.map +1 -0
- package/dist/components/dialog.d.cts +32 -0
- package/dist/components/dialog.d.ts +32 -0
- package/dist/components/dialog.js +285 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.cjs +185 -0
- package/dist/components/drawer.cjs.map +1 -0
- package/dist/components/drawer.d.cts +32 -0
- package/dist/components/drawer.d.ts +32 -0
- package/dist/components/drawer.js +151 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/field.cjs +334 -0
- package/dist/components/field.cjs.map +1 -0
- package/dist/components/field.d.cts +39 -0
- package/dist/components/field.d.ts +39 -0
- package/dist/components/field.js +299 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/fieldset.cjs +75 -0
- package/dist/components/fieldset.cjs.map +1 -0
- package/dist/components/fieldset.d.cts +12 -0
- package/dist/components/fieldset.d.ts +12 -0
- package/dist/components/fieldset.js +50 -0
- package/dist/components/fieldset.js.map +1 -0
- package/dist/components/form.cjs +52 -0
- package/dist/components/form.cjs.map +1 -0
- package/dist/components/form.d.cts +8 -0
- package/dist/components/form.d.ts +8 -0
- package/dist/components/form.js +28 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/input-group.cjs +338 -0
- package/dist/components/input-group.cjs.map +1 -0
- package/dist/components/input-group.d.cts +27 -0
- package/dist/components/input-group.d.ts +27 -0
- package/dist/components/input-group.js +307 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input.cjs +63 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.cts +8 -0
- package/dist/components/input.d.ts +8 -0
- package/dist/components/input.js +39 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.cjs +54 -0
- package/dist/components/label.cjs.map +1 -0
- package/dist/components/label.d.cts +8 -0
- package/dist/components/label.d.ts +8 -0
- package/dist/components/label.js +28 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menu.cjs +305 -0
- package/dist/components/menu.cjs.map +1 -0
- package/dist/components/menu.d.cts +37 -0
- package/dist/components/menu.d.ts +37 -0
- package/dist/components/menu.js +267 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/menubar.cjs +503 -0
- package/dist/components/menubar.cjs.map +1 -0
- package/dist/components/menubar.d.cts +37 -0
- package/dist/components/menubar.d.ts +37 -0
- package/dist/components/menubar.js +464 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/meter.cjs +152 -0
- package/dist/components/meter.cjs.map +1 -0
- package/dist/components/meter.d.cts +23 -0
- package/dist/components/meter.d.ts +23 -0
- package/dist/components/meter.js +122 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/navigation-menu.cjs +315 -0
- package/dist/components/navigation-menu.cjs.map +1 -0
- package/dist/components/navigation-menu.d.cts +22 -0
- package/dist/components/navigation-menu.d.ts +22 -0
- package/dist/components/navigation-menu.js +283 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/number-field.cjs +217 -0
- package/dist/components/number-field.cjs.map +1 -0
- package/dist/components/number-field.d.cts +23 -0
- package/dist/components/number-field.d.ts +23 -0
- package/dist/components/number-field.js +185 -0
- package/dist/components/number-field.js.map +1 -0
- package/dist/components/popover.cjs +125 -0
- package/dist/components/popover.cjs.map +1 -0
- package/dist/components/popover.d.cts +16 -0
- package/dist/components/popover.d.ts +16 -0
- package/dist/components/popover.js +96 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/preview-card.cjs +86 -0
- package/dist/components/preview-card.cjs.map +1 -0
- package/dist/components/preview-card.d.cts +12 -0
- package/dist/components/preview-card.d.ts +12 -0
- package/dist/components/preview-card.js +60 -0
- package/dist/components/preview-card.js.map +1 -0
- package/dist/components/progress.cjs +167 -0
- package/dist/components/progress.cjs.map +1 -0
- package/dist/components/progress.d.cts +23 -0
- package/dist/components/progress.d.ts +23 -0
- package/dist/components/progress.js +137 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.cjs +98 -0
- package/dist/components/radio-group.cjs.map +1 -0
- package/dist/components/radio-group.d.cts +11 -0
- package/dist/components/radio-group.d.ts +11 -0
- package/dist/components/radio-group.js +73 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable-panel.cjs +91 -0
- package/dist/components/resizable-panel.cjs.map +1 -0
- package/dist/components/resizable-panel.d.cts +14 -0
- package/dist/components/resizable-panel.d.ts +14 -0
- package/dist/components/resizable-panel.js +69 -0
- package/dist/components/resizable-panel.js.map +1 -0
- package/dist/components/row.cjs +94 -0
- package/dist/components/row.cjs.map +1 -0
- package/dist/components/row.d.cts +27 -0
- package/dist/components/row.d.ts +27 -0
- package/dist/components/row.js +68 -0
- package/dist/components/row.js.map +1 -0
- package/dist/components/scroll-area.cjs +96 -0
- package/dist/components/scroll-area.cjs.map +1 -0
- package/dist/components/scroll-area.d.cts +10 -0
- package/dist/components/scroll-area.d.ts +10 -0
- package/dist/components/scroll-area.js +71 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/section.cjs +104 -0
- package/dist/components/section.cjs.map +1 -0
- package/dist/components/section.d.cts +26 -0
- package/dist/components/section.d.ts +26 -0
- package/dist/components/section.js +79 -0
- package/dist/components/section.js.map +1 -0
- package/dist/components/segmented-control.cjs +117 -0
- package/dist/components/segmented-control.cjs.map +1 -0
- package/dist/components/segmented-control.d.cts +16 -0
- package/dist/components/segmented-control.d.ts +16 -0
- package/dist/components/segmented-control.js +91 -0
- package/dist/components/segmented-control.js.map +1 -0
- package/dist/components/select.cjs +273 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.cts +26 -0
- package/dist/components/select.d.ts +26 -0
- package/dist/components/select.js +239 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.cjs +60 -0
- package/dist/components/separator.cjs.map +1 -0
- package/dist/components/separator.d.cts +8 -0
- package/dist/components/separator.d.ts +8 -0
- package/dist/components/separator.js +36 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/skeleton.cjs +54 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.cts +8 -0
- package/dist/components/skeleton.d.ts +8 -0
- package/dist/components/skeleton.js +28 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.cjs +221 -0
- package/dist/components/slider.cjs.map +1 -0
- package/dist/components/slider.d.cts +16 -0
- package/dist/components/slider.d.ts +16 -0
- package/dist/components/slider.js +182 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.cjs +97 -0
- package/dist/components/spinner.cjs.map +1 -0
- package/dist/components/spinner.d.cts +13 -0
- package/dist/components/spinner.d.ts +13 -0
- package/dist/components/spinner.js +72 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/switch.cjs +177 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.cts +22 -0
- package/dist/components/switch.d.ts +22 -0
- package/dist/components/switch.js +139 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.cjs +123 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.cts +19 -0
- package/dist/components/tabs.d.ts +19 -0
- package/dist/components/tabs.js +95 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text-field.cjs +290 -0
- package/dist/components/text-field.cjs.map +1 -0
- package/dist/components/text-field.d.cts +27 -0
- package/dist/components/text-field.d.ts +27 -0
- package/dist/components/text-field.js +262 -0
- package/dist/components/text-field.js.map +1 -0
- package/dist/components/textarea.cjs +60 -0
- package/dist/components/textarea.cjs.map +1 -0
- package/dist/components/textarea.d.cts +8 -0
- package/dist/components/textarea.d.ts +8 -0
- package/dist/components/textarea.js +34 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toast.cjs +167 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.cts +28 -0
- package/dist/components/toast.d.ts +28 -0
- package/dist/components/toast.js +147 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/toggle-group.cjs +171 -0
- package/dist/components/toggle-group.cjs.map +1 -0
- package/dist/components/toggle-group.d.cts +18 -0
- package/dist/components/toggle-group.d.ts +18 -0
- package/dist/components/toggle-group.js +136 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.cjs +92 -0
- package/dist/components/toggle.cjs.map +1 -0
- package/dist/components/toggle.d.cts +14 -0
- package/dist/components/toggle.d.ts +14 -0
- package/dist/components/toggle.js +67 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/toolbar.cjs +160 -0
- package/dist/components/toolbar.cjs.map +1 -0
- package/dist/components/toolbar.d.cts +14 -0
- package/dist/components/toolbar.d.ts +14 -0
- package/dist/components/toolbar.js +131 -0
- package/dist/components/toolbar.js.map +1 -0
- package/dist/components/tooltip.cjs +116 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.cts +13 -0
- package/dist/components/tooltip.d.ts +13 -0
- package/dist/components/tooltip.js +89 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/tree-view.cjs +472 -0
- package/dist/components/tree-view.cjs.map +1 -0
- package/dist/components/tree-view.d.cts +33 -0
- package/dist/components/tree-view.d.ts +33 -0
- package/dist/components/tree-view.js +435 -0
- package/dist/components/tree-view.js.map +1 -0
- package/dist/index.cjs +11 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +101 -903
- package/dist/index.d.ts +101 -903
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/color-utils.cjs +315 -0
- package/dist/lib/color-utils.cjs.map +1 -0
- package/dist/lib/color-utils.d.cts +24 -0
- package/dist/lib/color-utils.d.ts +24 -0
- package/dist/lib/color-utils.js +280 -0
- package/dist/lib/color-utils.js.map +1 -0
- package/dist/lib/utils.cjs +35 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +10 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +24 -5
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as _base_ui_react from '@base-ui/react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Autocomplete as Autocomplete$1 } from '@base-ui/react/autocomplete';
|
|
5
|
+
|
|
6
|
+
declare function Autocomplete({ ...props }: Autocomplete$1.Root.Props<any>): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function AutocompleteInput({ className, showTrigger, children, ...props }: Autocomplete$1.Input.Props & {
|
|
8
|
+
showTrigger?: boolean;
|
|
9
|
+
}): react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare function AutocompleteTrigger({ className, children, ...props }: Autocomplete$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function AutocompleteValue({ ...props }: Autocomplete$1.Value.Props): react_jsx_runtime.JSX.Element;
|
|
12
|
+
declare function AutocompleteContent({ className, side, sideOffset, align, alignOffset, anchor, ...props }: Autocomplete$1.Popup.Props & Pick<Autocomplete$1.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor">): react_jsx_runtime.JSX.Element;
|
|
13
|
+
declare function AutocompleteList({ className, ...props }: Autocomplete$1.List.Props): react_jsx_runtime.JSX.Element;
|
|
14
|
+
declare function AutocompleteItem({ className, children, ...props }: Autocomplete$1.Item.Props): react_jsx_runtime.JSX.Element;
|
|
15
|
+
declare function AutocompleteEmpty({ className, ...props }: Autocomplete$1.Empty.Props): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare function AutocompleteGroup({ className, ...props }: Autocomplete$1.Group.Props): react_jsx_runtime.JSX.Element;
|
|
17
|
+
declare function AutocompleteGroupLabel({ className, ...props }: Autocomplete$1.GroupLabel.Props): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function AutocompleteSeparator({ className, ...props }: React.ComponentProps<typeof Autocomplete$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
19
|
+
declare function AutocompleteIcon({ className, ...props }: Autocomplete$1.Icon.Props): react_jsx_runtime.JSX.Element;
|
|
20
|
+
declare function AutocompleteStatus({ className, ...props }: Autocomplete$1.Status.Props): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function AutocompleteArrow({ className, ...props }: Autocomplete$1.Arrow.Props): react_jsx_runtime.JSX.Element;
|
|
22
|
+
declare function AutocompleteBackdrop({ className, ...props }: Autocomplete$1.Backdrop.Props): react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare const AutocompleteCollection: typeof Autocomplete$1.Collection;
|
|
24
|
+
declare const useAutocompleteFilter: (options?: _base_ui_react.AutocompleteFilterOptions) => _base_ui_react.AutocompleteFilter;
|
|
25
|
+
|
|
26
|
+
type AutocompleteProps = React.ComponentProps<typeof Autocomplete>;
|
|
27
|
+
type AutocompleteInputProps = React.ComponentProps<typeof AutocompleteInput>;
|
|
28
|
+
type AutocompleteContentProps = React.ComponentProps<typeof AutocompleteContent>;
|
|
29
|
+
type AutocompleteItemProps = React.ComponentProps<typeof AutocompleteItem>;
|
|
30
|
+
|
|
31
|
+
export { Autocomplete, AutocompleteArrow, AutocompleteBackdrop, AutocompleteCollection, AutocompleteContent, type AutocompleteContentProps, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, type AutocompleteInputProps, AutocompleteItem, type AutocompleteItemProps, AutocompleteList, type AutocompleteProps, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, useAutocompleteFilter };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as _base_ui_react from '@base-ui/react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Autocomplete as Autocomplete$1 } from '@base-ui/react/autocomplete';
|
|
5
|
+
|
|
6
|
+
declare function Autocomplete({ ...props }: Autocomplete$1.Root.Props<any>): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function AutocompleteInput({ className, showTrigger, children, ...props }: Autocomplete$1.Input.Props & {
|
|
8
|
+
showTrigger?: boolean;
|
|
9
|
+
}): react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare function AutocompleteTrigger({ className, children, ...props }: Autocomplete$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function AutocompleteValue({ ...props }: Autocomplete$1.Value.Props): react_jsx_runtime.JSX.Element;
|
|
12
|
+
declare function AutocompleteContent({ className, side, sideOffset, align, alignOffset, anchor, ...props }: Autocomplete$1.Popup.Props & Pick<Autocomplete$1.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor">): react_jsx_runtime.JSX.Element;
|
|
13
|
+
declare function AutocompleteList({ className, ...props }: Autocomplete$1.List.Props): react_jsx_runtime.JSX.Element;
|
|
14
|
+
declare function AutocompleteItem({ className, children, ...props }: Autocomplete$1.Item.Props): react_jsx_runtime.JSX.Element;
|
|
15
|
+
declare function AutocompleteEmpty({ className, ...props }: Autocomplete$1.Empty.Props): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare function AutocompleteGroup({ className, ...props }: Autocomplete$1.Group.Props): react_jsx_runtime.JSX.Element;
|
|
17
|
+
declare function AutocompleteGroupLabel({ className, ...props }: Autocomplete$1.GroupLabel.Props): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function AutocompleteSeparator({ className, ...props }: React.ComponentProps<typeof Autocomplete$1.Separator>): react_jsx_runtime.JSX.Element;
|
|
19
|
+
declare function AutocompleteIcon({ className, ...props }: Autocomplete$1.Icon.Props): react_jsx_runtime.JSX.Element;
|
|
20
|
+
declare function AutocompleteStatus({ className, ...props }: Autocomplete$1.Status.Props): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function AutocompleteArrow({ className, ...props }: Autocomplete$1.Arrow.Props): react_jsx_runtime.JSX.Element;
|
|
22
|
+
declare function AutocompleteBackdrop({ className, ...props }: Autocomplete$1.Backdrop.Props): react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare const AutocompleteCollection: typeof Autocomplete$1.Collection;
|
|
24
|
+
declare const useAutocompleteFilter: (options?: _base_ui_react.AutocompleteFilterOptions) => _base_ui_react.AutocompleteFilter;
|
|
25
|
+
|
|
26
|
+
type AutocompleteProps = React.ComponentProps<typeof Autocomplete>;
|
|
27
|
+
type AutocompleteInputProps = React.ComponentProps<typeof AutocompleteInput>;
|
|
28
|
+
type AutocompleteContentProps = React.ComponentProps<typeof AutocompleteContent>;
|
|
29
|
+
type AutocompleteItemProps = React.ComponentProps<typeof AutocompleteItem>;
|
|
30
|
+
|
|
31
|
+
export { Autocomplete, AutocompleteArrow, AutocompleteBackdrop, AutocompleteCollection, AutocompleteContent, type AutocompleteContentProps, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, type AutocompleteInputProps, AutocompleteItem, type AutocompleteItemProps, AutocompleteList, type AutocompleteProps, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, useAutocompleteFilter };
|
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/autocomplete.tsx
|
|
4
|
+
import { Autocomplete as AutocompletePrimitive } from "@base-ui/react/autocomplete";
|
|
5
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
6
|
+
|
|
7
|
+
// src/lib/utils.ts
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
import { twMerge } from "tailwind-merge";
|
|
10
|
+
function cn(...inputs) {
|
|
11
|
+
return twMerge(clsx(inputs));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// src/components/input-group.tsx
|
|
15
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
16
|
+
|
|
17
|
+
// src/components/button.tsx
|
|
18
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
19
|
+
import { cva } from "class-variance-authority";
|
|
20
|
+
import { jsx } from "react/jsx-runtime";
|
|
21
|
+
var buttonVariants = cva(
|
|
22
|
+
[
|
|
23
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium",
|
|
24
|
+
"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth",
|
|
25
|
+
"motion-reduce:transition-none",
|
|
26
|
+
"disabled:status-disabled",
|
|
27
|
+
"focus-visible:focus-ring",
|
|
28
|
+
"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
29
|
+
"shrink-0 group/button select-none no-highlight"
|
|
30
|
+
],
|
|
31
|
+
{
|
|
32
|
+
variants: {
|
|
33
|
+
variant: {
|
|
34
|
+
default: [
|
|
35
|
+
// Base styles
|
|
36
|
+
"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark",
|
|
37
|
+
"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]",
|
|
38
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
39
|
+
// Combined gradient layer with primary colors
|
|
40
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
41
|
+
"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark",
|
|
42
|
+
"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark",
|
|
43
|
+
"before:z-[-1]",
|
|
44
|
+
// Additional outer border
|
|
45
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
46
|
+
"after:bg-gradient-to-br after:from-primary after:to-primary-dark",
|
|
47
|
+
"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none",
|
|
48
|
+
// Hover state
|
|
49
|
+
"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200"
|
|
50
|
+
].join(" "),
|
|
51
|
+
destructive: "bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover",
|
|
52
|
+
outline: [
|
|
53
|
+
// Base styles
|
|
54
|
+
"relative rounded-lg overflow-visible shadow-field border",
|
|
55
|
+
"isolate text-foreground",
|
|
56
|
+
"[&>*]:relative [&>*]:z-[2]",
|
|
57
|
+
// Background layer
|
|
58
|
+
"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]",
|
|
59
|
+
"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50",
|
|
60
|
+
"before:dark:from-border-light before:dark:to-border-dark",
|
|
61
|
+
"before:z-[-1]",
|
|
62
|
+
// Inner background layer
|
|
63
|
+
"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]",
|
|
64
|
+
"after:bg-background",
|
|
65
|
+
"after:z-[-1]",
|
|
66
|
+
"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none",
|
|
67
|
+
// Hover state
|
|
68
|
+
"hover-only:after:bg-muted"
|
|
69
|
+
].join(" "),
|
|
70
|
+
secondary: "bg-secondary text-secondary-foreground hover-only:hover:bg-accent",
|
|
71
|
+
ghost: "hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100",
|
|
72
|
+
"primary-soft": "bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover",
|
|
73
|
+
"destructive-soft": "bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover",
|
|
74
|
+
success: "bg-success text-success-foreground hover-only:hover:bg-success-hover",
|
|
75
|
+
warning: "bg-warning text-warning-foreground hover-only:hover:bg-warning-hover",
|
|
76
|
+
link: "dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100"
|
|
77
|
+
},
|
|
78
|
+
size: {
|
|
79
|
+
default: "h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]",
|
|
80
|
+
xs: "h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]",
|
|
81
|
+
sm: "h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]",
|
|
82
|
+
lg: "h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]",
|
|
83
|
+
icon: "size-9 motion-safe:active:scale-[0.97]",
|
|
84
|
+
"icon-xs": "size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]",
|
|
85
|
+
"icon-sm": "size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]",
|
|
86
|
+
"icon-lg": "size-10 motion-safe:active:scale-[0.96]"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
defaultVariants: {
|
|
90
|
+
variant: "default",
|
|
91
|
+
size: "default"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
function Button({
|
|
96
|
+
className,
|
|
97
|
+
variant = "default",
|
|
98
|
+
size = "default",
|
|
99
|
+
isPending,
|
|
100
|
+
nativeButton,
|
|
101
|
+
render,
|
|
102
|
+
...props
|
|
103
|
+
}) {
|
|
104
|
+
return /* @__PURE__ */ jsx(
|
|
105
|
+
ButtonPrimitive,
|
|
106
|
+
{
|
|
107
|
+
"data-slot": "button",
|
|
108
|
+
"data-pending": isPending || void 0,
|
|
109
|
+
"aria-disabled": isPending || void 0,
|
|
110
|
+
nativeButton: nativeButton ?? (render ? false : void 0),
|
|
111
|
+
render,
|
|
112
|
+
className: cn(
|
|
113
|
+
buttonVariants({ variant, size }),
|
|
114
|
+
isPending && "status-pending",
|
|
115
|
+
className
|
|
116
|
+
),
|
|
117
|
+
...props
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// src/components/input-group.tsx
|
|
123
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
124
|
+
function InputGroup({ className, ...props }) {
|
|
125
|
+
return /* @__PURE__ */ jsx2(
|
|
126
|
+
"div",
|
|
127
|
+
{
|
|
128
|
+
"data-slot": "input-group",
|
|
129
|
+
role: "group",
|
|
130
|
+
className: cn(
|
|
131
|
+
"border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto",
|
|
132
|
+
className
|
|
133
|
+
),
|
|
134
|
+
...props
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
var inputGroupAddonVariants = cva2(
|
|
139
|
+
"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none",
|
|
140
|
+
{
|
|
141
|
+
variants: {
|
|
142
|
+
align: {
|
|
143
|
+
"inline-start": "pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first",
|
|
144
|
+
"inline-end": "pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last",
|
|
145
|
+
"block-start": "px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
|
|
146
|
+
"block-end": "px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
defaultVariants: {
|
|
150
|
+
align: "inline-start"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
function InputGroupAddon({
|
|
155
|
+
className,
|
|
156
|
+
align = "inline-start",
|
|
157
|
+
...props
|
|
158
|
+
}) {
|
|
159
|
+
return /* @__PURE__ */ jsx2(
|
|
160
|
+
"div",
|
|
161
|
+
{
|
|
162
|
+
role: "group",
|
|
163
|
+
"data-slot": "input-group-addon",
|
|
164
|
+
"data-align": align,
|
|
165
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
166
|
+
onClick: (e) => {
|
|
167
|
+
if (e.target.closest("button")) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
e.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
171
|
+
},
|
|
172
|
+
...props
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
var inputGroupButtonVariants = cva2(
|
|
177
|
+
"gap-2 text-sm shadow-none flex items-center",
|
|
178
|
+
{
|
|
179
|
+
variants: {
|
|
180
|
+
size: {
|
|
181
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
182
|
+
sm: "",
|
|
183
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
184
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
defaultVariants: {
|
|
188
|
+
size: "xs"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
function InputGroupButton({
|
|
193
|
+
className,
|
|
194
|
+
type = "button",
|
|
195
|
+
variant = "ghost",
|
|
196
|
+
size = "xs",
|
|
197
|
+
...props
|
|
198
|
+
}) {
|
|
199
|
+
return /* @__PURE__ */ jsx2(
|
|
200
|
+
Button,
|
|
201
|
+
{
|
|
202
|
+
type,
|
|
203
|
+
"data-size": size,
|
|
204
|
+
variant,
|
|
205
|
+
className: cn(inputGroupButtonVariants({ size }), className),
|
|
206
|
+
...props
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// src/components/autocomplete.tsx
|
|
212
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
213
|
+
function Autocomplete({ ...props }) {
|
|
214
|
+
return /* @__PURE__ */ jsx3(AutocompletePrimitive.Root, { ...props });
|
|
215
|
+
}
|
|
216
|
+
function AutocompleteInput({
|
|
217
|
+
className,
|
|
218
|
+
showTrigger = false,
|
|
219
|
+
children,
|
|
220
|
+
...props
|
|
221
|
+
}) {
|
|
222
|
+
return /* @__PURE__ */ jsxs(InputGroup, { className: "no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid", children: [
|
|
223
|
+
/* @__PURE__ */ jsx3(
|
|
224
|
+
AutocompletePrimitive.Input,
|
|
225
|
+
{
|
|
226
|
+
"data-slot": "input-group-control",
|
|
227
|
+
className: cn(
|
|
228
|
+
"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none",
|
|
229
|
+
"placeholder:text-muted-foreground",
|
|
230
|
+
"focus-visible:ring-0",
|
|
231
|
+
"data-disabled:status-disabled",
|
|
232
|
+
className
|
|
233
|
+
),
|
|
234
|
+
...props
|
|
235
|
+
}
|
|
236
|
+
),
|
|
237
|
+
showTrigger && /* @__PURE__ */ jsx3(InputGroupAddon, { align: "inline-end", children: /* @__PURE__ */ jsx3(AutocompleteTrigger, {}) }),
|
|
238
|
+
children
|
|
239
|
+
] });
|
|
240
|
+
}
|
|
241
|
+
function AutocompleteTrigger({
|
|
242
|
+
className,
|
|
243
|
+
children,
|
|
244
|
+
...props
|
|
245
|
+
}) {
|
|
246
|
+
return /* @__PURE__ */ jsx3(
|
|
247
|
+
AutocompletePrimitive.Trigger,
|
|
248
|
+
{
|
|
249
|
+
"data-slot": "autocomplete-trigger",
|
|
250
|
+
"aria-label": "Toggle options",
|
|
251
|
+
...props,
|
|
252
|
+
render: /* @__PURE__ */ jsx3(
|
|
253
|
+
InputGroupButton,
|
|
254
|
+
{
|
|
255
|
+
variant: "ghost",
|
|
256
|
+
size: "icon-xs",
|
|
257
|
+
className: cn("group", className)
|
|
258
|
+
}
|
|
259
|
+
),
|
|
260
|
+
children: children ?? /* @__PURE__ */ jsx3(ChevronDownIcon, { className: "size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none" })
|
|
261
|
+
}
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
function AutocompleteValue({ ...props }) {
|
|
265
|
+
return /* @__PURE__ */ jsx3(AutocompletePrimitive.Value, { "data-slot": "autocomplete-value", ...props });
|
|
266
|
+
}
|
|
267
|
+
function AutocompleteContent({
|
|
268
|
+
className,
|
|
269
|
+
side = "bottom",
|
|
270
|
+
sideOffset = 4,
|
|
271
|
+
align = "start",
|
|
272
|
+
alignOffset = 0,
|
|
273
|
+
anchor,
|
|
274
|
+
...props
|
|
275
|
+
}) {
|
|
276
|
+
return /* @__PURE__ */ jsx3(AutocompletePrimitive.Portal, { children: /* @__PURE__ */ jsx3(
|
|
277
|
+
AutocompletePrimitive.Positioner,
|
|
278
|
+
{
|
|
279
|
+
side,
|
|
280
|
+
sideOffset,
|
|
281
|
+
align,
|
|
282
|
+
alignOffset,
|
|
283
|
+
anchor,
|
|
284
|
+
className: "isolate z-50",
|
|
285
|
+
children: /* @__PURE__ */ jsx3(
|
|
286
|
+
AutocompletePrimitive.Popup,
|
|
287
|
+
{
|
|
288
|
+
"data-slot": "autocomplete-content",
|
|
289
|
+
className: cn(
|
|
290
|
+
"group/autocomplete-content",
|
|
291
|
+
"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none",
|
|
292
|
+
"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95",
|
|
293
|
+
"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]",
|
|
294
|
+
"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
|
|
295
|
+
"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain",
|
|
296
|
+
"motion-reduce:animate-none motion-reduce:transition-none",
|
|
297
|
+
className
|
|
298
|
+
),
|
|
299
|
+
...props
|
|
300
|
+
}
|
|
301
|
+
)
|
|
302
|
+
}
|
|
303
|
+
) });
|
|
304
|
+
}
|
|
305
|
+
function AutocompleteList({
|
|
306
|
+
className,
|
|
307
|
+
...props
|
|
308
|
+
}) {
|
|
309
|
+
return /* @__PURE__ */ jsx3(
|
|
310
|
+
AutocompletePrimitive.List,
|
|
311
|
+
{
|
|
312
|
+
"data-slot": "autocomplete-list",
|
|
313
|
+
className: cn(
|
|
314
|
+
"scroll-py-1 overflow-y-auto overscroll-contain p-1",
|
|
315
|
+
className
|
|
316
|
+
),
|
|
317
|
+
...props
|
|
318
|
+
}
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
function AutocompleteItem({
|
|
322
|
+
className,
|
|
323
|
+
children,
|
|
324
|
+
...props
|
|
325
|
+
}) {
|
|
326
|
+
return /* @__PURE__ */ jsx3(
|
|
327
|
+
AutocompletePrimitive.Item,
|
|
328
|
+
{
|
|
329
|
+
"data-slot": "autocomplete-item",
|
|
330
|
+
className: cn(
|
|
331
|
+
"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 px-2 text-sm outline-none transition-colors duration-150 ease-smooth motion-reduce:transition-none",
|
|
332
|
+
"data-highlighted:bg-primary-soft data-highlighted:text-foreground",
|
|
333
|
+
"data-disabled:status-disabled",
|
|
334
|
+
className
|
|
335
|
+
),
|
|
336
|
+
...props,
|
|
337
|
+
children
|
|
338
|
+
}
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
function AutocompleteEmpty({
|
|
342
|
+
className,
|
|
343
|
+
...props
|
|
344
|
+
}) {
|
|
345
|
+
return /* @__PURE__ */ jsx3(
|
|
346
|
+
AutocompletePrimitive.Empty,
|
|
347
|
+
{
|
|
348
|
+
"data-slot": "autocomplete-empty",
|
|
349
|
+
className: cn(
|
|
350
|
+
"empty:hidden py-6 text-center text-sm text-muted-foreground",
|
|
351
|
+
className
|
|
352
|
+
),
|
|
353
|
+
...props
|
|
354
|
+
}
|
|
355
|
+
);
|
|
356
|
+
}
|
|
357
|
+
function AutocompleteGroup({
|
|
358
|
+
className,
|
|
359
|
+
...props
|
|
360
|
+
}) {
|
|
361
|
+
return /* @__PURE__ */ jsx3(
|
|
362
|
+
AutocompletePrimitive.Group,
|
|
363
|
+
{
|
|
364
|
+
"data-slot": "autocomplete-group",
|
|
365
|
+
className: cn("p-1", className),
|
|
366
|
+
...props
|
|
367
|
+
}
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
function AutocompleteGroupLabel({
|
|
371
|
+
className,
|
|
372
|
+
...props
|
|
373
|
+
}) {
|
|
374
|
+
return /* @__PURE__ */ jsx3(
|
|
375
|
+
AutocompletePrimitive.GroupLabel,
|
|
376
|
+
{
|
|
377
|
+
"data-slot": "autocomplete-group-label",
|
|
378
|
+
className: cn(
|
|
379
|
+
"px-2 py-1.5 text-xs font-medium text-muted-foreground",
|
|
380
|
+
className
|
|
381
|
+
),
|
|
382
|
+
...props
|
|
383
|
+
}
|
|
384
|
+
);
|
|
385
|
+
}
|
|
386
|
+
function AutocompleteSeparator({
|
|
387
|
+
className,
|
|
388
|
+
...props
|
|
389
|
+
}) {
|
|
390
|
+
return /* @__PURE__ */ jsx3(
|
|
391
|
+
AutocompletePrimitive.Separator,
|
|
392
|
+
{
|
|
393
|
+
"data-slot": "autocomplete-separator",
|
|
394
|
+
className: cn("-mx-1 my-1 h-px bg-border-light", className),
|
|
395
|
+
...props
|
|
396
|
+
}
|
|
397
|
+
);
|
|
398
|
+
}
|
|
399
|
+
function AutocompleteIcon({
|
|
400
|
+
className,
|
|
401
|
+
...props
|
|
402
|
+
}) {
|
|
403
|
+
return /* @__PURE__ */ jsx3(
|
|
404
|
+
AutocompletePrimitive.Icon,
|
|
405
|
+
{
|
|
406
|
+
"data-slot": "autocomplete-icon",
|
|
407
|
+
className: cn("", className),
|
|
408
|
+
...props
|
|
409
|
+
}
|
|
410
|
+
);
|
|
411
|
+
}
|
|
412
|
+
function AutocompleteStatus({
|
|
413
|
+
className,
|
|
414
|
+
...props
|
|
415
|
+
}) {
|
|
416
|
+
return /* @__PURE__ */ jsx3(
|
|
417
|
+
AutocompletePrimitive.Status,
|
|
418
|
+
{
|
|
419
|
+
"data-slot": "autocomplete-status",
|
|
420
|
+
className: cn("sr-only", className),
|
|
421
|
+
...props
|
|
422
|
+
}
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
function AutocompleteArrow({
|
|
426
|
+
className,
|
|
427
|
+
...props
|
|
428
|
+
}) {
|
|
429
|
+
return /* @__PURE__ */ jsx3(
|
|
430
|
+
AutocompletePrimitive.Arrow,
|
|
431
|
+
{
|
|
432
|
+
"data-slot": "autocomplete-arrow",
|
|
433
|
+
className: cn("fill-overlay stroke-border", className),
|
|
434
|
+
...props
|
|
435
|
+
}
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
function AutocompleteBackdrop({
|
|
439
|
+
className,
|
|
440
|
+
...props
|
|
441
|
+
}) {
|
|
442
|
+
return /* @__PURE__ */ jsx3(
|
|
443
|
+
AutocompletePrimitive.Backdrop,
|
|
444
|
+
{
|
|
445
|
+
"data-slot": "autocomplete-backdrop",
|
|
446
|
+
className: cn("fixed inset-0 z-50", className),
|
|
447
|
+
...props
|
|
448
|
+
}
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
var AutocompleteCollection = AutocompletePrimitive.Collection;
|
|
452
|
+
var useAutocompleteFilter = AutocompletePrimitive.useFilter;
|
|
453
|
+
export {
|
|
454
|
+
Autocomplete,
|
|
455
|
+
AutocompleteArrow,
|
|
456
|
+
AutocompleteBackdrop,
|
|
457
|
+
AutocompleteCollection,
|
|
458
|
+
AutocompleteContent,
|
|
459
|
+
AutocompleteEmpty,
|
|
460
|
+
AutocompleteGroup,
|
|
461
|
+
AutocompleteGroupLabel,
|
|
462
|
+
AutocompleteIcon,
|
|
463
|
+
AutocompleteInput,
|
|
464
|
+
AutocompleteItem,
|
|
465
|
+
AutocompleteList,
|
|
466
|
+
AutocompleteSeparator,
|
|
467
|
+
AutocompleteStatus,
|
|
468
|
+
AutocompleteTrigger,
|
|
469
|
+
AutocompleteValue,
|
|
470
|
+
useAutocompleteFilter
|
|
471
|
+
};
|
|
472
|
+
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/autocomplete.tsx","../../src/lib/utils.ts","../../src/components/input-group.tsx","../../src/components/button.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { InputGroup, InputGroupAddon, InputGroupButton } from \"./input-group\";\n\nfunction Autocomplete({ ...props }: AutocompletePrimitive.Root.Props<any>) {\n return <AutocompletePrimitive.Root {...props} />;\n}\n\nfunction AutocompleteInput({\n className,\n showTrigger = false,\n children,\n ...props\n}: AutocompletePrimitive.Input.Props & {\n showTrigger?: boolean;\n}) {\n return (\n <InputGroup className=\"no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid\">\n <AutocompletePrimitive.Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:ring-0\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n {showTrigger && (\n <InputGroupAddon align=\"inline-end\">\n <AutocompleteTrigger />\n </InputGroupAddon>\n )}\n {children}\n </InputGroup>\n );\n}\n\nfunction AutocompleteTrigger({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Trigger.Props) {\n return (\n <AutocompletePrimitive.Trigger\n data-slot=\"autocomplete-trigger\"\n aria-label=\"Toggle options\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(\"group\", className)}\n />\n }\n >\n {children ?? (\n <ChevronDownIcon className=\"size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none\" />\n )}\n </AutocompletePrimitive.Trigger>\n );\n}\n\nfunction AutocompleteValue({ ...props }: AutocompletePrimitive.Value.Props) {\n return (\n <AutocompletePrimitive.Value data-slot=\"autocomplete-value\" {...props} />\n );\n}\n\nfunction AutocompleteContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: AutocompletePrimitive.Popup.Props &\n Pick<\n AutocompletePrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <AutocompletePrimitive.Portal>\n <AutocompletePrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <AutocompletePrimitive.Popup\n data-slot=\"autocomplete-content\"\n className={cn(\n \"group/autocomplete-content\",\n \"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </AutocompletePrimitive.Positioner>\n </AutocompletePrimitive.Portal>\n );\n}\n\nfunction AutocompleteList({\n className,\n ...props\n}: AutocompletePrimitive.List.Props) {\n return (\n <AutocompletePrimitive.List\n data-slot=\"autocomplete-list\"\n className={cn(\n \"scroll-py-1 overflow-y-auto overscroll-contain p-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteItem({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Item.Props) {\n return (\n <AutocompletePrimitive.Item\n data-slot=\"autocomplete-item\"\n className={cn(\n \"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 px-2 text-sm outline-none transition-colors duration-150 ease-smooth motion-reduce:transition-none\",\n \"data-highlighted:bg-primary-soft data-highlighted:text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n </AutocompletePrimitive.Item>\n );\n}\n\nfunction AutocompleteEmpty({\n className,\n ...props\n}: AutocompletePrimitive.Empty.Props) {\n return (\n <AutocompletePrimitive.Empty\n data-slot=\"autocomplete-empty\"\n className={cn(\n \"empty:hidden py-6 text-center text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteGroup({\n className,\n ...props\n}: AutocompletePrimitive.Group.Props) {\n return (\n <AutocompletePrimitive.Group\n data-slot=\"autocomplete-group\"\n className={cn(\"p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteGroupLabel({\n className,\n ...props\n}: AutocompletePrimitive.GroupLabel.Props) {\n return (\n <AutocompletePrimitive.GroupLabel\n data-slot=\"autocomplete-group-label\"\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof AutocompletePrimitive.Separator>) {\n return (\n <AutocompletePrimitive.Separator\n data-slot=\"autocomplete-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteIcon({\n className,\n ...props\n}: AutocompletePrimitive.Icon.Props) {\n return (\n <AutocompletePrimitive.Icon\n data-slot=\"autocomplete-icon\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteStatus({\n className,\n ...props\n}: AutocompletePrimitive.Status.Props) {\n return (\n <AutocompletePrimitive.Status\n data-slot=\"autocomplete-status\"\n className={cn(\"sr-only\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteArrow({\n className,\n ...props\n}: AutocompletePrimitive.Arrow.Props) {\n return (\n <AutocompletePrimitive.Arrow\n data-slot=\"autocomplete-arrow\"\n className={cn(\"fill-overlay stroke-border\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteBackdrop({\n className,\n ...props\n}: AutocompletePrimitive.Backdrop.Props) {\n return (\n <AutocompletePrimitive.Backdrop\n data-slot=\"autocomplete-backdrop\"\n className={cn(\"fixed inset-0 z-50\", className)}\n {...props}\n />\n );\n}\n\nconst AutocompleteCollection = AutocompletePrimitive.Collection;\n\nconst useAutocompleteFilter = AutocompletePrimitive.useFilter;\n\nexport {\n Autocomplete,\n AutocompleteCollection,\n AutocompleteInput,\n AutocompleteContent,\n AutocompleteList,\n AutocompleteItem,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteSeparator,\n AutocompleteTrigger,\n AutocompleteValue,\n AutocompleteIcon,\n AutocompleteStatus,\n AutocompleteArrow,\n AutocompleteBackdrop,\n useAutocompleteFilter,\n};\n\nexport type AutocompleteProps = React.ComponentProps<typeof Autocomplete>;\nexport type AutocompleteInputProps = React.ComponentProps<\n typeof AutocompleteInput\n>;\nexport type AutocompleteContentProps = React.ComponentProps<\n typeof AutocompleteContent\n>;\nexport type AutocompleteItemProps = React.ComponentProps<\n typeof AutocompleteItem\n>;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\":\n \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"gap-2 text-sm shadow-none flex items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\";\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1 resize-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n};\n\nexport type InputGroupProps = React.ComponentProps<typeof InputGroup>;\nexport type InputGroupAddonProps = React.ComponentProps<typeof InputGroupAddon>;\nexport type InputGroupButtonProps = React.ComponentProps<\n typeof InputGroupButton\n>;\n","\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium\",\n \"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"disabled:status-disabled\",\n \"focus-visible:focus-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"shrink-0 group/button select-none no-highlight\",\n ],\n {\n variants: {\n variant: {\n default: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark\",\n \"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Combined gradient layer with primary colors\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark\",\n \"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark\",\n \"before:z-[-1]\",\n // Additional outer border\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-gradient-to-br after:from-primary after:to-primary-dark\",\n \"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200\",\n ].join(\" \"),\n destructive:\n \"bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover\",\n outline: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-field border\",\n \"isolate text-foreground\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Background layer\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50\",\n \"before:dark:from-border-light before:dark:to-border-dark\",\n \"before:z-[-1]\",\n // Inner background layer\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-background\",\n \"after:z-[-1]\",\n \"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:bg-muted\",\n ].join(\" \"),\n secondary:\n \"bg-secondary text-secondary-foreground hover-only:hover:bg-accent\",\n ghost:\n \"hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100\",\n \"primary-soft\":\n \"bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover\",\n \"destructive-soft\":\n \"bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover\",\n success:\n \"bg-success text-success-foreground hover-only:hover:bg-success-hover\",\n warning:\n \"bg-warning text-warning-foreground hover-only:hover:bg-warning-hover\",\n link: \"dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100\",\n },\n size: {\n default:\n \"h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]\",\n xs: \"h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]\",\n sm: \"h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]\",\n lg: \"h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]\",\n icon: \"size-9 motion-safe:active:scale-[0.97]\",\n \"icon-xs\":\n \"size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]\",\n \"icon-sm\":\n \"size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]\",\n \"icon-lg\": \"size-10 motion-safe:active:scale-[0.96]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n isPending,\n nativeButton,\n render,\n ...props\n}: ButtonPrimitive.Props &\n VariantProps<typeof buttonVariants> & { isPending?: boolean }) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n data-pending={isPending || undefined}\n aria-disabled={isPending || undefined}\n nativeButton={nativeButton ?? (render ? false : undefined)}\n render={render}\n className={cn(\n buttonVariants({ variant, size }),\n isPending && \"status-pending\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n\nexport type ButtonProps = React.ComponentProps<typeof Button>;\n"],"mappings":"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","names":["cva","jsx","cva","jsx"]}
|