rivet-ui 0.1.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/LICENSE +21 -0
- package/README.md +120 -0
- package/dist/chunk-fjtwj9cw.js +79 -0
- package/dist/chunk-fjtwj9cw.js.map +10 -0
- package/dist/components/Accordion/Accordion.d.ts +7 -0
- package/dist/components/Accordion/Accordion.stories.d.ts +10 -0
- package/dist/components/Accordion/index.d.ts +1 -0
- package/dist/components/Accordion/index.js +62 -0
- package/dist/components/Accordion/index.js.map +10 -0
- package/dist/components/Alert/Alert.d.ts +15 -0
- package/dist/components/Alert/Alert.stories.d.ts +23 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Alert/index.js +57 -0
- package/dist/components/Alert/index.js.map +10 -0
- package/dist/components/AlertDialog/AlertDialog.d.ts +11 -0
- package/dist/components/AlertDialog/AlertDialog.stories.d.ts +9 -0
- package/dist/components/AlertDialog/index.d.ts +1 -0
- package/dist/components/AlertDialog/index.js +66 -0
- package/dist/components/AlertDialog/index.js.map +10 -0
- package/dist/components/Autocomplete/Autocomplete.d.ts +17 -0
- package/dist/components/Autocomplete/Autocomplete.stories.d.ts +6 -0
- package/dist/components/Autocomplete/index.d.ts +1 -0
- package/dist/components/Autocomplete/index.js +109 -0
- package/dist/components/Autocomplete/index.js.map +10 -0
- package/dist/components/Avatar/Avatar.d.ts +19 -0
- package/dist/components/Avatar/Avatar.stories.d.ts +29 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.js +65 -0
- package/dist/components/Avatar/index.js.map +10 -0
- package/dist/components/AvatarLabel/AvatarLabel.d.ts +12 -0
- package/dist/components/AvatarLabel/AvatarLabel.stories.d.ts +10 -0
- package/dist/components/AvatarLabel/index.d.ts +2 -0
- package/dist/components/AvatarLabel/index.js +74 -0
- package/dist/components/AvatarLabel/index.js.map +10 -0
- package/dist/components/Badge/Badge.d.ts +13 -0
- package/dist/components/Badge/Badge.stories.d.ts +25 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/index.js +38 -0
- package/dist/components/Badge/index.js.map +10 -0
- package/dist/components/Button/Button.d.ts +15 -0
- package/dist/components/Button/Button.stories.d.ts +35 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.js +44 -0
- package/dist/components/Button/index.js.map +10 -0
- package/dist/components/Card/Card.d.ts +6 -0
- package/dist/components/Card/Card.stories.d.ts +13 -0
- package/dist/components/Card/index.d.ts +1 -0
- package/dist/components/Card/index.js +47 -0
- package/dist/components/Card/index.js.map +10 -0
- package/dist/components/Checkbox/Checkbox.d.ts +6 -0
- package/dist/components/Checkbox/Checkbox.stories.d.ts +25 -0
- package/dist/components/Checkbox/index.d.ts +1 -0
- package/dist/components/Checkbox/index.js +68 -0
- package/dist/components/Checkbox/index.js.map +10 -0
- package/dist/components/Collapsible/Collapsible.d.ts +4 -0
- package/dist/components/Collapsible/Collapsible.stories.d.ts +10 -0
- package/dist/components/Collapsible/index.d.ts +1 -0
- package/dist/components/Collapsible/index.js +34 -0
- package/dist/components/Collapsible/index.js.map +10 -0
- package/dist/components/Combobox/Combobox.d.ts +24 -0
- package/dist/components/Combobox/Combobox.stories.d.ts +13 -0
- package/dist/components/Combobox/index.d.ts +1 -0
- package/dist/components/Combobox/index.js +162 -0
- package/dist/components/Combobox/index.js.map +10 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +22 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.stories.d.ts +10 -0
- package/dist/components/ConfirmDialog/index.d.ts +2 -0
- package/dist/components/ConfirmDialog/index.js +85 -0
- package/dist/components/ConfirmDialog/index.js.map +10 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts +21 -0
- package/dist/components/ContextMenu/ContextMenu.stories.d.ts +7 -0
- package/dist/components/ContextMenu/index.d.ts +1 -0
- package/dist/components/ContextMenu/index.js +117 -0
- package/dist/components/ContextMenu/index.js.map +10 -0
- package/dist/components/Dialog/Dialog.d.ts +11 -0
- package/dist/components/Dialog/Dialog.stories.d.ts +10 -0
- package/dist/components/Dialog/index.d.ts +1 -0
- package/dist/components/Dialog/index.js +66 -0
- package/dist/components/Dialog/index.js.map +10 -0
- package/dist/components/Drawer/Drawer.d.ts +13 -0
- package/dist/components/Drawer/Drawer.stories.d.ts +9 -0
- package/dist/components/Drawer/index.d.ts +1 -0
- package/dist/components/Drawer/index.js +81 -0
- package/dist/components/Drawer/index.js.map +10 -0
- package/dist/components/Field/Field.d.ts +8 -0
- package/dist/components/Field/Field.stories.d.ts +21 -0
- package/dist/components/Field/index.d.ts +1 -0
- package/dist/components/Field/index.js +52 -0
- package/dist/components/Field/index.js.map +10 -0
- package/dist/components/Fieldset/Fieldset.d.ts +3 -0
- package/dist/components/Fieldset/Fieldset.stories.d.ts +14 -0
- package/dist/components/Fieldset/index.d.ts +1 -0
- package/dist/components/Fieldset/index.js +27 -0
- package/dist/components/Fieldset/index.js.map +10 -0
- package/dist/components/Form/Form.d.ts +5 -0
- package/dist/components/Form/Form.stories.d.ts +5 -0
- package/dist/components/Form/index.d.ts +1 -0
- package/dist/components/Form/index.js +20 -0
- package/dist/components/Form/index.js.map +10 -0
- package/dist/components/Input/Input.d.ts +16 -0
- package/dist/components/Input/Input.stories.d.ts +34 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/index.js +44 -0
- package/dist/components/Input/index.js.map +10 -0
- package/dist/components/Menu/Menu.d.ts +21 -0
- package/dist/components/Menu/Menu.stories.d.ts +9 -0
- package/dist/components/Menu/index.d.ts +1 -0
- package/dist/components/Menu/index.js +117 -0
- package/dist/components/Menu/index.js.map +10 -0
- package/dist/components/Menubar/Menubar.d.ts +2 -0
- package/dist/components/Menubar/Menubar.stories.d.ts +5 -0
- package/dist/components/Menubar/index.d.ts +1 -0
- package/dist/components/Menubar/index.js +20 -0
- package/dist/components/Menubar/index.js.map +10 -0
- package/dist/components/Meter/Meter.d.ts +6 -0
- package/dist/components/Meter/Meter.stories.d.ts +7 -0
- package/dist/components/Meter/index.d.ts +1 -0
- package/dist/components/Meter/index.js +48 -0
- package/dist/components/Meter/index.js.map +10 -0
- package/dist/components/NavigationMenu/NavigationMenu.d.ts +12 -0
- package/dist/components/NavigationMenu/NavigationMenu.stories.d.ts +5 -0
- package/dist/components/NavigationMenu/index.d.ts +1 -0
- package/dist/components/NavigationMenu/index.js +100 -0
- package/dist/components/NavigationMenu/index.js.map +10 -0
- package/dist/components/NumberField/NumberField.d.ts +8 -0
- package/dist/components/NumberField/NumberField.stories.d.ts +7 -0
- package/dist/components/NumberField/index.d.ts +1 -0
- package/dist/components/NumberField/index.js +84 -0
- package/dist/components/NumberField/index.js.map +10 -0
- package/dist/components/PageHeader/PageHeader.d.ts +10 -0
- package/dist/components/PageHeader/PageHeader.stories.d.ts +10 -0
- package/dist/components/PageHeader/index.d.ts +2 -0
- package/dist/components/PageHeader/index.js +48 -0
- package/dist/components/PageHeader/index.js.map +10 -0
- package/dist/components/Popover/Popover.d.ts +12 -0
- package/dist/components/Popover/Popover.stories.d.ts +9 -0
- package/dist/components/Popover/index.d.ts +1 -0
- package/dist/components/Popover/index.js +74 -0
- package/dist/components/Popover/index.js.map +10 -0
- package/dist/components/PreviewCard/PreviewCard.d.ts +9 -0
- package/dist/components/PreviewCard/PreviewCard.stories.d.ts +8 -0
- package/dist/components/PreviewCard/index.d.ts +1 -0
- package/dist/components/PreviewCard/index.js +53 -0
- package/dist/components/PreviewCard/index.js.map +10 -0
- package/dist/components/ProfileCard/ProfileCard.d.ts +19 -0
- package/dist/components/ProfileCard/ProfileCard.stories.d.ts +11 -0
- package/dist/components/ProfileCard/index.d.ts +2 -0
- package/dist/components/ProfileCard/index.js +97 -0
- package/dist/components/ProfileCard/index.js.map +10 -0
- package/dist/components/Progress/Progress.d.ts +6 -0
- package/dist/components/Progress/Progress.stories.d.ts +7 -0
- package/dist/components/Progress/index.d.ts +1 -0
- package/dist/components/Progress/index.js +48 -0
- package/dist/components/Progress/index.js.map +10 -0
- package/dist/components/Radio/Radio.d.ts +6 -0
- package/dist/components/Radio/Radio.stories.d.ts +20 -0
- package/dist/components/Radio/index.d.ts +1 -0
- package/dist/components/Radio/index.js +35 -0
- package/dist/components/Radio/index.js.map +10 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +7 -0
- package/dist/components/ScrollArea/ScrollArea.stories.d.ts +6 -0
- package/dist/components/ScrollArea/index.d.ts +1 -0
- package/dist/components/ScrollArea/index.js +55 -0
- package/dist/components/ScrollArea/index.js.map +10 -0
- package/dist/components/SearchField/SearchField.d.ts +11 -0
- package/dist/components/SearchField/SearchField.stories.d.ts +9 -0
- package/dist/components/SearchField/index.d.ts +2 -0
- package/dist/components/SearchField/index.js +65 -0
- package/dist/components/SearchField/index.js.map +10 -0
- package/dist/components/Select/Select.d.ts +19 -0
- package/dist/components/Select/Select.stories.d.ts +20 -0
- package/dist/components/Select/index.d.ts +1 -0
- package/dist/components/Select/index.js +143 -0
- package/dist/components/Select/index.js.map +10 -0
- package/dist/components/Separator/Separator.d.ts +2 -0
- package/dist/components/Separator/Separator.stories.d.ts +10 -0
- package/dist/components/Separator/index.d.ts +1 -0
- package/dist/components/Separator/index.js +20 -0
- package/dist/components/Separator/index.js.map +10 -0
- package/dist/components/Slider/Slider.d.ts +10 -0
- package/dist/components/Slider/Slider.stories.d.ts +7 -0
- package/dist/components/Slider/index.d.ts +1 -0
- package/dist/components/Slider/index.js +55 -0
- package/dist/components/Slider/index.js.map +10 -0
- package/dist/components/Switch/Switch.d.ts +3 -0
- package/dist/components/Switch/Switch.stories.d.ts +24 -0
- package/dist/components/Switch/index.d.ts +1 -0
- package/dist/components/Switch/index.js +27 -0
- package/dist/components/Switch/index.js.map +10 -0
- package/dist/components/Tabs/Tabs.d.ts +6 -0
- package/dist/components/Tabs/Tabs.stories.d.ts +9 -0
- package/dist/components/Tabs/index.d.ts +1 -0
- package/dist/components/Tabs/index.js +43 -0
- package/dist/components/Tabs/index.js.map +10 -0
- package/dist/components/Toast/Toast.d.ts +14 -0
- package/dist/components/Toast/Toast.stories.d.ts +8 -0
- package/dist/components/Toast/index.d.ts +1 -0
- package/dist/components/Toast/index.js +127 -0
- package/dist/components/Toast/index.js.map +10 -0
- package/dist/components/Toggle/Toggle.d.ts +3 -0
- package/dist/components/Toggle/Toggle.stories.d.ts +8 -0
- package/dist/components/Toggle/index.d.ts +1 -0
- package/dist/components/Toggle/index.js +20 -0
- package/dist/components/Toggle/index.js.map +10 -0
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +3 -0
- package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts +6 -0
- package/dist/components/ToggleGroup/index.d.ts +1 -0
- package/dist/components/ToggleGroup/index.js +20 -0
- package/dist/components/ToggleGroup/index.js.map +10 -0
- package/dist/components/Toolbar/Toolbar.d.ts +7 -0
- package/dist/components/Toolbar/Toolbar.stories.d.ts +7 -0
- package/dist/components/Toolbar/index.d.ts +1 -0
- package/dist/components/Toolbar/index.js +50 -0
- package/dist/components/Toolbar/index.js.map +10 -0
- package/dist/components/Tooltip/Tooltip.d.ts +9 -0
- package/dist/components/Tooltip/Tooltip.stories.d.ts +9 -0
- package/dist/components/Tooltip/index.d.ts +1 -0
- package/dist/components/Tooltip/index.js +48 -0
- package/dist/components/Tooltip/index.js.map +10 -0
- package/dist/fonts.css +3 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.js +620 -0
- package/dist/index.js.map +9 -0
- package/dist/stories/Camps.stories.d.ts +11 -0
- package/dist/stories/Plains.stories.d.ts +11 -0
- package/dist/stories/Theming.stories.d.ts +8 -0
- package/dist/stories/Typography.stories.d.ts +5 -0
- package/dist/styles.css +2 -0
- package/dist/utils/cn.d.ts +2 -0
- package/dist/utils/cn.js +1806 -0
- package/dist/utils/cn.js.map +12 -0
- package/dist/utils/cn.test.d.ts +1 -0
- package/package.json +266 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "../../utils/cn.js";
|
|
4
|
+
|
|
5
|
+
// src/components/Card/Card.tsx
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var Card = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
9
|
+
ref,
|
|
10
|
+
className: cn("rounded-lg border border-kraft/20 bg-surface shadow-sm ring-1 ring-kraft/[0.04]", className),
|
|
11
|
+
...props
|
|
12
|
+
}));
|
|
13
|
+
Card.displayName = "Card";
|
|
14
|
+
var CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
15
|
+
ref,
|
|
16
|
+
className: cn("flex flex-col space-y-1.5 px-6 pt-6", className),
|
|
17
|
+
...props
|
|
18
|
+
}));
|
|
19
|
+
CardHeader.displayName = "CardHeader";
|
|
20
|
+
var CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("h3", {
|
|
21
|
+
ref,
|
|
22
|
+
className: cn("text-lg font-semibold leading-none tracking-tight text-kraft", className),
|
|
23
|
+
...props
|
|
24
|
+
}));
|
|
25
|
+
CardTitle.displayName = "CardTitle";
|
|
26
|
+
var CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
27
|
+
ref,
|
|
28
|
+
className: cn("p-6", className),
|
|
29
|
+
...props
|
|
30
|
+
}));
|
|
31
|
+
CardContent.displayName = "CardContent";
|
|
32
|
+
var CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
33
|
+
ref,
|
|
34
|
+
className: cn("flex items-center p-6 pt-0", className),
|
|
35
|
+
...props
|
|
36
|
+
}));
|
|
37
|
+
CardFooter.displayName = "CardFooter";
|
|
38
|
+
export {
|
|
39
|
+
CardTitle,
|
|
40
|
+
CardHeader,
|
|
41
|
+
CardFooter,
|
|
42
|
+
CardContent,
|
|
43
|
+
Card
|
|
44
|
+
};
|
|
45
|
+
export { Card, CardHeader, CardTitle, CardContent, CardFooter };
|
|
46
|
+
|
|
47
|
+
//# debugId=F0AC122A1C71579F64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/Card/Card.tsx"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport const Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-kraft/20 bg-surface shadow-sm ring-1 ring-kraft/[0.04]',\n className\n )}\n {...props}\n />\n));\n\nCard.displayName = 'Card';\n\nexport const CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 px-6 pt-6', className)}\n {...props}\n />\n));\n\nCardHeader.displayName = 'CardHeader';\n\nexport const CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n 'text-lg font-semibold leading-none tracking-tight text-kraft',\n className\n )}\n {...props}\n />\n));\n\nCardTitle.displayName = 'CardTitle';\n\nexport const CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6', className)} {...props} />\n));\n\nCardContent.displayName = 'CardContent';\n\nexport const CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n));\n\nCardFooter.displayName = 'CardFooter';\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;AAAA;;AAGO,IAAM,OAAO,MAAM,WAGxB,GAAG,cAAc,SAAS,wBACxB,IAAC,OAAD;AAAA,EACI;AAAA,EACA,WAAW,GACP,mFACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AAED,KAAK,cAAc;AAEZ,IAAM,aAAa,MAAM,WAG9B,GAAG,cAAc,SAAS,wBACxB,IAAC,OAAD;AAAA,EACI;AAAA,EACA,WAAW,GAAG,uCAAuC,SAAS;AAAA,KAC1D;AAAA,CACR,CACH;AAED,WAAW,cAAc;AAElB,IAAM,YAAY,MAAM,WAG7B,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAD;AAAA,EACI;AAAA,EACA,WAAW,GACP,gEACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AAED,UAAU,cAAc;AAEjB,IAAM,cAAc,MAAM,WAG/B,GAAG,cAAc,SAAS,wBACxB,IAAC,OAAD;AAAA,EAAK;AAAA,EAAU,WAAW,GAAG,OAAO,SAAS;AAAA,KAAO;AAAA,CAAO,CAC9D;AAED,YAAY,cAAc;AAEnB,IAAM,aAAa,MAAM,WAG9B,GAAG,cAAc,SAAS,wBACxB,IAAC,OAAD;AAAA,EACI;AAAA,EACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,KACjD;AAAA,CACR,CACH;AAED,WAAW,cAAc;",
|
|
8
|
+
"debugId": "F0AC122A1C71579F64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const CheckboxGroup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CheckboxGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const CheckboxRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CheckboxRootProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
4
|
+
export declare const CheckboxIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CheckboxIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & {
|
|
5
|
+
indeterminate?: boolean;
|
|
6
|
+
} & React.RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CheckboxRootProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
tags: string[];
|
|
10
|
+
argTypes: {
|
|
11
|
+
disabled: {
|
|
12
|
+
control: "boolean";
|
|
13
|
+
};
|
|
14
|
+
defaultChecked: {
|
|
15
|
+
control: "boolean";
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export default meta;
|
|
20
|
+
type Story = StoryObj<typeof meta>;
|
|
21
|
+
export declare const Default: Story;
|
|
22
|
+
export declare const Checked: Story;
|
|
23
|
+
export declare const Disabled: Story;
|
|
24
|
+
export declare const DisabledChecked: Story;
|
|
25
|
+
export declare const Group: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CheckboxRoot, CheckboxIndicator, CheckboxGroup } from './Checkbox';
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "../../utils/cn.js";
|
|
4
|
+
|
|
5
|
+
// src/components/Checkbox/Checkbox.tsx
|
|
6
|
+
import { Checkbox as BaseCheckbox } from "@base-ui/react/checkbox";
|
|
7
|
+
import { CheckboxGroup as BaseCheckboxGroup } from "@base-ui/react/checkbox-group";
|
|
8
|
+
import React from "react";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
function CheckIcon(props) {
|
|
11
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
12
|
+
fill: "currentcolor",
|
|
13
|
+
width: "10",
|
|
14
|
+
height: "10",
|
|
15
|
+
viewBox: "0 0 10 10",
|
|
16
|
+
"aria-hidden": true,
|
|
17
|
+
...props,
|
|
18
|
+
children: /* @__PURE__ */ jsx("path", {
|
|
19
|
+
d: "M9.1603 1.12218C9.50684 1.34873 9.60427 1.81354 9.37792 2.16038L5.13603 8.66012C5.01614 8.8438 4.82192 8.96576 4.60451 8.99384C4.3871 9.02194 4.1683 8.95335 4.00574 8.80615L1.24664 6.30769C0.939709 6.02975 0.916013 5.55541 1.19372 5.24822C1.47142 4.94102 1.94536 4.91731 2.2523 5.19524L4.36085 7.10461L8.12299 1.33999C8.34934 0.993152 8.81376 0.895638 9.1603 1.12218Z"
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function MinusIcon(props) {
|
|
24
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
25
|
+
fill: "none",
|
|
26
|
+
width: "10",
|
|
27
|
+
height: "10",
|
|
28
|
+
viewBox: "0 0 24 24",
|
|
29
|
+
stroke: "currentcolor",
|
|
30
|
+
strokeWidth: "3",
|
|
31
|
+
strokeLinecap: "round",
|
|
32
|
+
"aria-hidden": true,
|
|
33
|
+
...props,
|
|
34
|
+
children: /* @__PURE__ */ jsx("line", {
|
|
35
|
+
x1: "3",
|
|
36
|
+
y1: "12",
|
|
37
|
+
x2: "21",
|
|
38
|
+
y2: "12"
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
var CheckboxGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCheckboxGroup, {
|
|
43
|
+
ref,
|
|
44
|
+
className: cn("flex flex-col gap-2", className),
|
|
45
|
+
...props
|
|
46
|
+
}));
|
|
47
|
+
CheckboxGroup.displayName = "CheckboxGroup";
|
|
48
|
+
var CheckboxRoot = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCheckbox.Root, {
|
|
49
|
+
ref,
|
|
50
|
+
className: cn("flex size-5 shrink-0 items-center justify-center rounded-sm border border-kraft/30 bg-surface transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-2 data-checked:border-ribbon data-checked:bg-ribbon data-indeterminate:border-ribbon data-indeterminate:bg-ribbon data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
|
|
51
|
+
...props
|
|
52
|
+
}));
|
|
53
|
+
CheckboxRoot.displayName = "CheckboxRoot";
|
|
54
|
+
var CheckboxIndicator = React.forwardRef(({ className, children, indeterminate, ...props }, ref) => /* @__PURE__ */ jsx(BaseCheckbox.Indicator, {
|
|
55
|
+
ref,
|
|
56
|
+
className: cn("flex text-white data-unchecked:hidden", className),
|
|
57
|
+
...props,
|
|
58
|
+
children: children ?? (indeterminate ? /* @__PURE__ */ jsx(MinusIcon, {}) : /* @__PURE__ */ jsx(CheckIcon, {}))
|
|
59
|
+
}));
|
|
60
|
+
CheckboxIndicator.displayName = "CheckboxIndicator";
|
|
61
|
+
export {
|
|
62
|
+
CheckboxRoot,
|
|
63
|
+
CheckboxIndicator,
|
|
64
|
+
CheckboxGroup
|
|
65
|
+
};
|
|
66
|
+
export { CheckboxGroup, CheckboxRoot, CheckboxIndicator };
|
|
67
|
+
|
|
68
|
+
//# debugId=DBAE3BCD342C1FD364756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/Checkbox/Checkbox.tsx"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\nimport { CheckboxGroup as BaseCheckboxGroup } from '@base-ui/react/checkbox-group';\nimport React from 'react';\nimport { cn } from '../../utils/cn';\n\nfunction CheckIcon(props: React.ComponentProps<'svg'>) {\n return (\n <svg\n fill=\"currentcolor\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n aria-hidden\n {...props}\n >\n <path d=\"M9.1603 1.12218C9.50684 1.34873 9.60427 1.81354 9.37792 2.16038L5.13603 8.66012C5.01614 8.8438 4.82192 8.96576 4.60451 8.99384C4.3871 9.02194 4.1683 8.95335 4.00574 8.80615L1.24664 6.30769C0.939709 6.02975 0.916013 5.55541 1.19372 5.24822C1.47142 4.94102 1.94536 4.91731 2.2523 5.19524L4.36085 7.10461L8.12299 1.33999C8.34934 0.993152 8.81376 0.895638 9.1603 1.12218Z\" />\n </svg>\n );\n}\n\nfunction MinusIcon(props: React.ComponentProps<'svg'>) {\n return (\n <svg\n fill=\"none\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentcolor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n aria-hidden\n {...props}\n >\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n </svg>\n );\n}\n\nexport const CheckboxGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCheckboxGroup>\n>(({ className, ...props }, ref) => (\n <BaseCheckboxGroup\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n));\nCheckboxGroup.displayName = 'CheckboxGroup';\n\nexport const CheckboxRoot = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof BaseCheckbox.Root>\n>(({ className, ...props }, ref) => (\n <BaseCheckbox.Root\n ref={ref}\n className={cn(\n 'flex size-5 shrink-0 items-center justify-center rounded-sm border border-kraft/30 bg-surface transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-2 data-checked:border-ribbon data-checked:bg-ribbon data-indeterminate:border-ribbon data-indeterminate:bg-ribbon data-disabled:cursor-not-allowed data-disabled:opacity-50',\n className\n )}\n {...props}\n />\n));\nCheckboxRoot.displayName = 'CheckboxRoot';\n\nexport const CheckboxIndicator = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof BaseCheckbox.Indicator> & {\n indeterminate?: boolean;\n }\n>(({ className, children, indeterminate, ...props }, ref) => (\n <BaseCheckbox.Indicator\n ref={ref}\n className={cn('flex text-white data-unchecked:hidden', className)}\n {...props}\n >\n {children ?? (indeterminate ? <MinusIcon /> : <CheckIcon />)}\n </BaseCheckbox.Indicator>\n));\nCheckboxIndicator.displayName = 'CheckboxIndicator';\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;AAAA,qBAAS;AACT,0BAAS;AACT;;AAGA,SAAS,SAAS,CAAC,OAAoC;AAAA,EACnD,uBACI,IASE,OATF;AAAA,IACI,MAAK;AAAA,IACL,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,eAAW;AAAA,OACP;AAAA,IANR,0BAQI,IAAC,QAAD;AAAA,MAAM,GAAE;AAAA,KAAkX;AAAA,GAC5X;AAAA;AAIV,SAAS,SAAS,CAAC,OAAoC;AAAA,EACnD,uBACI,IAYE,OAZF;AAAA,IACI,MAAK;AAAA,IACL,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,eAAW;AAAA,OACP;AAAA,IATR,0BAWI,IAAC,QAAD;AAAA,MAAM,IAAG;AAAA,MAAI,IAAG;AAAA,MAAK,IAAG;AAAA,MAAK,IAAG;AAAA,KAAK;AAAA,GACvC;AAAA;AAIH,IAAM,gBAAgB,MAAM,WAGjC,GAAG,cAAc,SAAS,wBACxB,IAAC,mBAAD;AAAA,EACI;AAAA,EACA,WAAW,GAAG,uBAAuB,SAAS;AAAA,KAC1C;AAAA,CACR,CACH;AACD,cAAc,cAAc;AAErB,IAAM,eAAe,MAAM,WAGhC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,MAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,mYACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,aAAa,cAAc;AAEpB,IAAM,oBAAoB,MAAM,WAKrC,GAAG,WAAW,UAAU,kBAAkB,SAAS,wBACjD,IAME,aAAa,WANf;AAAA,EACI;AAAA,EACA,WAAW,GAAG,yCAAyC,SAAS;AAAA,KAC5D;AAAA,EAHR,UAKK,aAAa,gCAAgB,IAAC,WAAD,EAAW,oBAAK,IAAC,WAAD,EAAW;AAAA,CAC3D,CACL;AACD,kBAAkB,cAAc;",
|
|
8
|
+
"debugId": "DBAE3BCD342C1FD364756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const CollapsibleRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CollapsibleRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const CollapsibleTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CollapsibleTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
4
|
+
export declare const CollapsiblePanel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").CollapsiblePanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
tags: string[];
|
|
5
|
+
};
|
|
6
|
+
export default meta;
|
|
7
|
+
type Story = StoryObj;
|
|
8
|
+
export declare const Default: Story;
|
|
9
|
+
export declare const DefaultOpen: Story;
|
|
10
|
+
export declare const Disabled: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CollapsibleRoot, CollapsibleTrigger, CollapsiblePanel } from './Collapsible';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "../../utils/cn.js";
|
|
4
|
+
|
|
5
|
+
// src/components/Collapsible/Collapsible.tsx
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
var CollapsibleRoot = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Collapsible.Root, {
|
|
10
|
+
ref,
|
|
11
|
+
className: cn("", className),
|
|
12
|
+
...props
|
|
13
|
+
}));
|
|
14
|
+
CollapsibleRoot.displayName = "CollapsibleRoot";
|
|
15
|
+
var CollapsibleTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Collapsible.Trigger, {
|
|
16
|
+
ref,
|
|
17
|
+
className: cn("inline-flex items-center justify-center rounded-md border border-kraft/25 bg-surface px-4 py-2 text-sm font-medium text-kraft transition-colors select-none hover:bg-canvas focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-2 data-disabled:pointer-events-none data-disabled:opacity-40", className),
|
|
18
|
+
...props
|
|
19
|
+
}));
|
|
20
|
+
CollapsibleTrigger.displayName = "CollapsibleTrigger";
|
|
21
|
+
var CollapsiblePanel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Collapsible.Panel, {
|
|
22
|
+
ref,
|
|
23
|
+
className: cn("[&[hidden]:not([hidden=until-found])]:hidden h-[var(--collapsible-panel-height)] overflow-hidden transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0", className),
|
|
24
|
+
...props
|
|
25
|
+
}));
|
|
26
|
+
CollapsiblePanel.displayName = "CollapsiblePanel";
|
|
27
|
+
export {
|
|
28
|
+
CollapsibleTrigger,
|
|
29
|
+
CollapsibleRoot,
|
|
30
|
+
CollapsiblePanel
|
|
31
|
+
};
|
|
32
|
+
export { CollapsibleRoot, CollapsibleTrigger, CollapsiblePanel };
|
|
33
|
+
|
|
34
|
+
//# debugId=B9678F838E1C01EB64756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/Collapsible/Collapsible.tsx"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import * as React from 'react';\nimport { Collapsible } from '@base-ui/react/collapsible';\nimport { cn } from '../../utils/cn';\n\nexport const CollapsibleRoot = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Collapsible.Root>\n>(({ className, ...props }, ref) => (\n <Collapsible.Root ref={ref} className={cn('', className)} {...props} />\n));\nCollapsibleRoot.displayName = 'CollapsibleRoot';\n\nexport const CollapsibleTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Collapsible.Trigger>\n>(({ className, ...props }, ref) => (\n <Collapsible.Trigger\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center rounded-md border border-kraft/25 bg-surface px-4 py-2 text-sm font-medium text-kraft transition-colors select-none hover:bg-canvas focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-2 data-disabled:pointer-events-none data-disabled:opacity-40',\n className\n )}\n {...props}\n />\n));\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\n\nexport const CollapsiblePanel = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Collapsible.Panel>\n>(({ className, ...props }, ref) => (\n <Collapsible.Panel\n ref={ref}\n className={cn(\n '[&[hidden]:not([hidden=until-found])]:hidden h-[var(--collapsible-panel-height)] overflow-hidden transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0',\n className\n )}\n {...props}\n />\n));\nCollapsiblePanel.displayName = 'CollapsiblePanel';\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;AAAA;AACA;;AAGO,IAAM,kBAAwB,iBAGnC,GAAG,cAAc,SAAS,wBACxB,IAAC,YAAY,MAAb;AAAA,EAAkB;AAAA,EAAU,WAAW,GAAG,IAAI,SAAS;AAAA,KAAO;AAAA,CAAO,CACxE;AACD,gBAAgB,cAAc;AAEvB,IAAM,qBAA2B,iBAGtC,GAAG,cAAc,SAAS,wBACxB,IAAC,YAAY,SAAb;AAAA,EACI;AAAA,EACA,WAAW,GACP,gVACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,mBAAmB,cAAc;AAE1B,IAAM,mBAAyB,iBAGpC,GAAG,cAAc,SAAS,wBACxB,IAAC,YAAY,OAAb;AAAA,EACI;AAAA,EACA,WAAW,GACP,4LACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,iBAAiB,cAAc;",
|
|
8
|
+
"debugId": "B9678F838E1C01EB64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare const ComboboxRoot: typeof BaseCombobox.Root;
|
|
4
|
+
export declare const ComboboxPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AutocompletePortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export declare const ComboboxGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AutocompleteGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export declare const ComboboxCollection: typeof BaseCombobox.Collection;
|
|
7
|
+
export declare const ComboboxValue: typeof BaseCombobox.Value;
|
|
8
|
+
export declare const ComboboxChips: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ComboboxChipsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const ComboboxChip: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ComboboxChipProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const ComboboxChipRemove: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ComboboxChipRemoveProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export declare const ComboboxInput: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteInputProps, "ref"> & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
12
|
+
export declare const ComboboxTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
13
|
+
export declare const ComboboxClear: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxClearProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
14
|
+
export declare const ComboboxPositioner: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompletePositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
export declare const ComboboxPopup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompletePopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
export declare const ComboboxList: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
export declare const ComboboxItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteItemProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export declare const ComboboxItemIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
19
|
+
export declare function ComboboxItemText({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const ComboboxEmpty: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteEmptyProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
export declare function ComboboxSeparator({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare const ComboboxGroupLabel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export declare const ComboboxStatus: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").AutocompleteStatusProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
export declare const ComboboxIcon: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ComboboxIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
tags: string[];
|
|
5
|
+
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
6
|
+
[x: string]: any;
|
|
7
|
+
}>) => import("react/jsx-runtime").JSX.Element)[];
|
|
8
|
+
};
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj;
|
|
11
|
+
export declare const Default: Story;
|
|
12
|
+
export declare const WithClear: Story;
|
|
13
|
+
export declare const Grouped: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ComboboxRoot, ComboboxPortal, ComboboxGroup, ComboboxCollection, ComboboxValue, ComboboxChips, ComboboxChip, ComboboxChipRemove, ComboboxInput, ComboboxTrigger, ComboboxClear, ComboboxPositioner, ComboboxPopup, ComboboxList, ComboboxItem, ComboboxItemIndicator, ComboboxItemText, ComboboxEmpty, ComboboxSeparator, ComboboxGroupLabel, ComboboxStatus, ComboboxIcon } from './Combobox';
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "../../utils/cn.js";
|
|
4
|
+
|
|
5
|
+
// src/components/Combobox/Combobox.tsx
|
|
6
|
+
import { Combobox as BaseCombobox } from "@base-ui/react/combobox";
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
var ComboboxRoot = BaseCombobox.Root;
|
|
10
|
+
var ComboboxPortal = BaseCombobox.Portal;
|
|
11
|
+
var ComboboxGroup = BaseCombobox.Group;
|
|
12
|
+
var ComboboxCollection = BaseCombobox.Collection;
|
|
13
|
+
var ComboboxValue = BaseCombobox.Value;
|
|
14
|
+
var ComboboxChips = BaseCombobox.Chips;
|
|
15
|
+
var ComboboxChip = BaseCombobox.Chip;
|
|
16
|
+
var ComboboxChipRemove = BaseCombobox.ChipRemove;
|
|
17
|
+
var ComboboxInput = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Input, {
|
|
18
|
+
ref,
|
|
19
|
+
className: cn("flex h-10 w-full rounded-lg border border-kraft/25 bg-surface px-3.5 text-base text-kraft font-normal transition-colors placeholder:text-kraft/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ribbon data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
|
|
20
|
+
...props
|
|
21
|
+
}));
|
|
22
|
+
ComboboxInput.displayName = "ComboboxInput";
|
|
23
|
+
var ComboboxTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Trigger, {
|
|
24
|
+
ref,
|
|
25
|
+
className: cn("flex h-10 w-7 items-center justify-center rounded-r-md border-0 bg-transparent p-0 text-kraft/60 transition-colors hover:not-data-disabled:text-kraft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1 data-disabled:opacity-50", className),
|
|
26
|
+
...props
|
|
27
|
+
}));
|
|
28
|
+
ComboboxTrigger.displayName = "ComboboxTrigger";
|
|
29
|
+
var ComboboxClear = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Clear, {
|
|
30
|
+
ref,
|
|
31
|
+
className: cn("flex h-10 w-7 items-center justify-center rounded-lg border-0 bg-transparent p-0 text-kraft/50 transition-colors hover:not-data-disabled:text-spool focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1", className),
|
|
32
|
+
...props
|
|
33
|
+
}));
|
|
34
|
+
ComboboxClear.displayName = "ComboboxClear";
|
|
35
|
+
var ComboboxPositioner = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Positioner, {
|
|
36
|
+
ref,
|
|
37
|
+
className: cn("z-50 outline-none", className),
|
|
38
|
+
sideOffset: 4,
|
|
39
|
+
...props
|
|
40
|
+
}));
|
|
41
|
+
ComboboxPositioner.displayName = "ComboboxPositioner";
|
|
42
|
+
var ComboboxPopup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Popup, {
|
|
43
|
+
ref,
|
|
44
|
+
className: cn("w-(--anchor-width) max-h-[min(var(--available-height),22rem)] max-w-(--available-width) overflow-y-auto scroll-py-2 overscroll-contain rounded-lg border border-kraft/15 bg-surface py-1.5 shadow-lg shadow-kraft/10 origin-(--transform-origin) transition-[transform,scale,opacity] duration-100 data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0", className),
|
|
45
|
+
...props
|
|
46
|
+
}));
|
|
47
|
+
ComboboxPopup.displayName = "ComboboxPopup";
|
|
48
|
+
var ComboboxList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.List, {
|
|
49
|
+
ref,
|
|
50
|
+
className: cn("outline-none data-empty:p-0", className),
|
|
51
|
+
...props
|
|
52
|
+
}));
|
|
53
|
+
ComboboxList.displayName = "ComboboxList";
|
|
54
|
+
var ComboboxItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Item, {
|
|
55
|
+
ref,
|
|
56
|
+
className: cn("relative grid cursor-default select-none grid-cols-[0.875rem_1fr] items-center gap-2 px-3 py-2 text-sm text-kraft outline-none data-disabled:pointer-events-none data-disabled:opacity-50", 'data-highlighted:before:absolute data-highlighted:before:inset-x-1.5 data-highlighted:before:inset-y-0 data-highlighted:before:z-[-1] data-highlighted:before:rounded-lg data-highlighted:before:bg-kraft data-highlighted:before:content-[""] data-highlighted:relative data-highlighted:z-0 data-highlighted:text-white', className),
|
|
57
|
+
...props
|
|
58
|
+
}));
|
|
59
|
+
ComboboxItem.displayName = "ComboboxItem";
|
|
60
|
+
var ComboboxItemIndicator = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.ItemIndicator, {
|
|
61
|
+
ref,
|
|
62
|
+
className: cn("col-start-1 flex items-center justify-center text-mustard data-highlighted:text-white", className),
|
|
63
|
+
...props,
|
|
64
|
+
children: children ?? /* @__PURE__ */ jsx("svg", {
|
|
65
|
+
fill: "currentColor",
|
|
66
|
+
width: "10",
|
|
67
|
+
height: "10",
|
|
68
|
+
viewBox: "0 0 10 10",
|
|
69
|
+
"aria-hidden": true,
|
|
70
|
+
children: /* @__PURE__ */ jsx("path", {
|
|
71
|
+
d: "M9.1603 1.12218C9.50684 1.34873 9.60427 1.81354 9.37792 2.16038L5.13603 8.66012C5.01614 8.8438 4.82192 8.96576 4.60451 8.99384C4.3871 9.02194 4.1683 8.95335 4.00574 8.80615L1.24664 6.30769C0.939709 6.02975 0.916013 5.55541 1.19372 5.24822C1.47142 4.94102 1.94536 4.91731 2.2523 5.19524L4.36085 7.10461L8.12299 1.33999C8.34934 0.993152 8.81376 0.895638 9.1603 1.12218Z"
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
}));
|
|
75
|
+
ComboboxItemIndicator.displayName = "ComboboxItemIndicator";
|
|
76
|
+
function ComboboxItemText({
|
|
77
|
+
className,
|
|
78
|
+
...props
|
|
79
|
+
}) {
|
|
80
|
+
return /* @__PURE__ */ jsx("div", {
|
|
81
|
+
className: cn("col-start-2", className),
|
|
82
|
+
...props
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
var ComboboxEmpty = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Empty, {
|
|
86
|
+
ref,
|
|
87
|
+
className: cn("px-4 py-3 text-sm text-kraft/60 italic empty:m-0 empty:p-0", className),
|
|
88
|
+
...props
|
|
89
|
+
}));
|
|
90
|
+
ComboboxEmpty.displayName = "ComboboxEmpty";
|
|
91
|
+
function ComboboxSeparator({
|
|
92
|
+
className,
|
|
93
|
+
...props
|
|
94
|
+
}) {
|
|
95
|
+
return /* @__PURE__ */ jsx("div", {
|
|
96
|
+
role: "separator",
|
|
97
|
+
className: cn("my-1 mx-2 h-px bg-kraft/10", className),
|
|
98
|
+
...props
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
var ComboboxGroupLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.GroupLabel, {
|
|
102
|
+
ref,
|
|
103
|
+
className: cn("sticky top-0 z-1 bg-surface px-3 pb-1 pt-2.5 text-[0.65rem] font-semibold uppercase tracking-widest text-kraft/50", className),
|
|
104
|
+
...props
|
|
105
|
+
}));
|
|
106
|
+
ComboboxGroupLabel.displayName = "ComboboxGroupLabel";
|
|
107
|
+
var ComboboxStatus = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Status, {
|
|
108
|
+
ref,
|
|
109
|
+
className: cn("flex items-center gap-2 px-3 py-1.5 text-sm text-kraft/60 empty:hidden", className),
|
|
110
|
+
...props
|
|
111
|
+
}));
|
|
112
|
+
ComboboxStatus.displayName = "ComboboxStatus";
|
|
113
|
+
var ComboboxIcon = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(BaseCombobox.Icon, {
|
|
114
|
+
ref,
|
|
115
|
+
className: cn("flex shrink-0 text-kraft/60", className),
|
|
116
|
+
...props,
|
|
117
|
+
children: children ?? /* @__PURE__ */ jsxs("svg", {
|
|
118
|
+
width: "8",
|
|
119
|
+
height: "12",
|
|
120
|
+
viewBox: "0 0 8 12",
|
|
121
|
+
fill: "none",
|
|
122
|
+
stroke: "currentColor",
|
|
123
|
+
strokeWidth: "1.5",
|
|
124
|
+
"aria-hidden": true,
|
|
125
|
+
children: [
|
|
126
|
+
/* @__PURE__ */ jsx("path", {
|
|
127
|
+
d: "M0.5 4.5L4 1.5L7.5 4.5"
|
|
128
|
+
}),
|
|
129
|
+
/* @__PURE__ */ jsx("path", {
|
|
130
|
+
d: "M0.5 7.5L4 10.5L7.5 7.5"
|
|
131
|
+
})
|
|
132
|
+
]
|
|
133
|
+
})
|
|
134
|
+
}));
|
|
135
|
+
ComboboxIcon.displayName = "ComboboxIcon";
|
|
136
|
+
export {
|
|
137
|
+
ComboboxValue,
|
|
138
|
+
ComboboxTrigger,
|
|
139
|
+
ComboboxStatus,
|
|
140
|
+
ComboboxSeparator,
|
|
141
|
+
ComboboxRoot,
|
|
142
|
+
ComboboxPositioner,
|
|
143
|
+
ComboboxPortal,
|
|
144
|
+
ComboboxPopup,
|
|
145
|
+
ComboboxList,
|
|
146
|
+
ComboboxItemText,
|
|
147
|
+
ComboboxItemIndicator,
|
|
148
|
+
ComboboxItem,
|
|
149
|
+
ComboboxInput,
|
|
150
|
+
ComboboxIcon,
|
|
151
|
+
ComboboxGroupLabel,
|
|
152
|
+
ComboboxGroup,
|
|
153
|
+
ComboboxEmpty,
|
|
154
|
+
ComboboxCollection,
|
|
155
|
+
ComboboxClear,
|
|
156
|
+
ComboboxChips,
|
|
157
|
+
ComboboxChipRemove,
|
|
158
|
+
ComboboxChip
|
|
159
|
+
};
|
|
160
|
+
export { ComboboxRoot, ComboboxPortal, ComboboxGroup, ComboboxCollection, ComboboxValue, ComboboxChips, ComboboxChip, ComboboxChipRemove, ComboboxInput, ComboboxTrigger, ComboboxClear, ComboboxPositioner, ComboboxPopup, ComboboxList, ComboboxItem, ComboboxItemIndicator, ComboboxItemText, ComboboxEmpty, ComboboxSeparator, ComboboxGroupLabel, ComboboxStatus, ComboboxIcon };
|
|
161
|
+
|
|
162
|
+
//# debugId=54E65CFF266C87D164756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/Combobox/Combobox.tsx"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { Combobox as BaseCombobox } from '@base-ui/react/combobox';\nimport React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport const ComboboxRoot = BaseCombobox.Root;\nexport const ComboboxPortal = BaseCombobox.Portal;\nexport const ComboboxGroup = BaseCombobox.Group;\nexport const ComboboxCollection = BaseCombobox.Collection;\nexport const ComboboxValue = BaseCombobox.Value;\nexport const ComboboxChips = BaseCombobox.Chips;\nexport const ComboboxChip = BaseCombobox.Chip;\nexport const ComboboxChipRemove = BaseCombobox.ChipRemove;\n\nexport const ComboboxInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Input>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-lg border border-kraft/25 bg-surface px-3.5 text-base text-kraft font-normal transition-colors placeholder:text-kraft/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ribbon data-disabled:cursor-not-allowed data-disabled:opacity-50',\n className\n )}\n {...props}\n />\n));\nComboboxInput.displayName = 'ComboboxInput';\n\nexport const ComboboxTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Trigger>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Trigger\n ref={ref}\n className={cn(\n 'flex h-10 w-7 items-center justify-center rounded-r-md border-0 bg-transparent p-0 text-kraft/60 transition-colors hover:not-data-disabled:text-kraft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1 data-disabled:opacity-50',\n className\n )}\n {...props}\n />\n));\nComboboxTrigger.displayName = 'ComboboxTrigger';\n\nexport const ComboboxClear = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Clear>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Clear\n ref={ref}\n className={cn(\n 'flex h-10 w-7 items-center justify-center rounded-lg border-0 bg-transparent p-0 text-kraft/50 transition-colors hover:not-data-disabled:text-spool focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1',\n className\n )}\n {...props}\n />\n));\nComboboxClear.displayName = 'ComboboxClear';\n\nexport const ComboboxPositioner = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Positioner>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Positioner\n ref={ref}\n className={cn('z-50 outline-none', className)}\n sideOffset={4}\n {...props}\n />\n));\nComboboxPositioner.displayName = 'ComboboxPositioner';\n\nexport const ComboboxPopup = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Popup>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Popup\n ref={ref}\n className={cn(\n 'w-(--anchor-width) max-h-[min(var(--available-height),22rem)] max-w-(--available-width) overflow-y-auto scroll-py-2 overscroll-contain rounded-lg border border-kraft/15 bg-surface py-1.5 shadow-lg shadow-kraft/10 origin-(--transform-origin) transition-[transform,scale,opacity] duration-100 data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0',\n className\n )}\n {...props}\n />\n));\nComboboxPopup.displayName = 'ComboboxPopup';\n\nexport const ComboboxList = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.List>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.List\n ref={ref}\n className={cn('outline-none data-empty:p-0', className)}\n {...props}\n />\n));\nComboboxList.displayName = 'ComboboxList';\n\nexport const ComboboxItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Item>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Item\n ref={ref}\n className={cn(\n 'relative grid cursor-default select-none grid-cols-[0.875rem_1fr] items-center gap-2 px-3 py-2 text-sm text-kraft outline-none data-disabled:pointer-events-none data-disabled:opacity-50',\n // Highlighted: warm kraft background\n 'data-highlighted:before:absolute data-highlighted:before:inset-x-1.5 data-highlighted:before:inset-y-0 data-highlighted:before:z-[-1] data-highlighted:before:rounded-lg data-highlighted:before:bg-kraft data-highlighted:before:content-[\"\"] data-highlighted:relative data-highlighted:z-0 data-highlighted:text-white',\n className\n )}\n {...props}\n />\n));\nComboboxItem.displayName = 'ComboboxItem';\n\nexport const ComboboxItemIndicator = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.ItemIndicator>\n>(({ className, children, ...props }, ref) => (\n <BaseCombobox.ItemIndicator\n ref={ref}\n className={cn(\n 'col-start-1 flex items-center justify-center text-mustard data-highlighted:text-white',\n className\n )}\n {...props}\n >\n {children ?? (\n <svg\n fill=\"currentColor\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n aria-hidden\n >\n <path d=\"M9.1603 1.12218C9.50684 1.34873 9.60427 1.81354 9.37792 2.16038L5.13603 8.66012C5.01614 8.8438 4.82192 8.96576 4.60451 8.99384C4.3871 9.02194 4.1683 8.95335 4.00574 8.80615L1.24664 6.30769C0.939709 6.02975 0.916013 5.55541 1.19372 5.24822C1.47142 4.94102 1.94536 4.91731 2.2523 5.19524L4.36085 7.10461L8.12299 1.33999C8.34934 0.993152 8.81376 0.895638 9.1603 1.12218Z\" />\n </svg>\n )}\n </BaseCombobox.ItemIndicator>\n));\nComboboxItemIndicator.displayName = 'ComboboxItemIndicator';\n\nexport function ComboboxItemText({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn('col-start-2', className)} {...props} />;\n}\n\nexport const ComboboxEmpty = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Empty>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Empty\n ref={ref}\n className={cn(\n 'px-4 py-3 text-sm text-kraft/60 italic empty:m-0 empty:p-0',\n className\n )}\n {...props}\n />\n));\nComboboxEmpty.displayName = 'ComboboxEmpty';\n\nexport function ComboboxSeparator({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n role=\"separator\"\n className={cn('my-1 mx-2 h-px bg-kraft/10', className)}\n {...props}\n />\n );\n}\n\nexport const ComboboxGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.GroupLabel>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.GroupLabel\n ref={ref}\n className={cn(\n 'sticky top-0 z-1 bg-surface px-3 pb-1 pt-2.5 text-[0.65rem] font-semibold uppercase tracking-widest text-kraft/50',\n className\n )}\n {...props}\n />\n));\nComboboxGroupLabel.displayName = 'ComboboxGroupLabel';\n\nexport const ComboboxStatus = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Status>\n>(({ className, ...props }, ref) => (\n <BaseCombobox.Status\n ref={ref}\n className={cn(\n 'flex items-center gap-2 px-3 py-1.5 text-sm text-kraft/60 empty:hidden',\n className\n )}\n {...props}\n />\n));\nComboboxStatus.displayName = 'ComboboxStatus';\n\nexport const ComboboxIcon = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof BaseCombobox.Icon>\n>(({ className, children, ...props }, ref) => (\n <BaseCombobox.Icon\n ref={ref}\n className={cn('flex shrink-0 text-kraft/60', className)}\n {...props}\n >\n {children ?? (\n <svg\n width=\"8\"\n height=\"12\"\n viewBox=\"0 0 8 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n aria-hidden\n >\n <path d=\"M0.5 4.5L4 1.5L7.5 4.5\" />\n <path d=\"M0.5 7.5L4 10.5L7.5 7.5\" />\n </svg>\n )}\n </BaseCombobox.Icon>\n));\nComboboxIcon.displayName = 'ComboboxIcon';\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "54E65CFF266C87D164756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ConfirmDialogProps {
|
|
3
|
+
open?: boolean;
|
|
4
|
+
defaultOpen?: boolean;
|
|
5
|
+
onOpenChange?: (open: boolean) => void;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
confirmLabel?: string;
|
|
9
|
+
cancelLabel?: string;
|
|
10
|
+
/** Called when the confirm button is clicked (dialog closes automatically). */
|
|
11
|
+
onConfirm?: () => void;
|
|
12
|
+
/** Called when the cancel button or backdrop is clicked. */
|
|
13
|
+
onCancel?: () => void;
|
|
14
|
+
/**
|
|
15
|
+
* Visual tone of the confirm button.
|
|
16
|
+
* @default 'default'
|
|
17
|
+
*/
|
|
18
|
+
variant?: 'default' | 'destructive';
|
|
19
|
+
/** Element that opens the dialog when clicked. Omit for controlled usage. */
|
|
20
|
+
trigger?: React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare function ConfirmDialog({ open, defaultOpen, onOpenChange, title, description, confirmLabel, cancelLabel, onConfirm, onCancel, variant, trigger }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { ConfirmDialog } from './ConfirmDialog';
|
|
3
|
+
declare const meta: Meta<typeof ConfirmDialog>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof ConfirmDialog>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Destructive: Story;
|
|
8
|
+
export declare const NoDescription: Story;
|
|
9
|
+
export declare const WithCallbacks: Story;
|
|
10
|
+
export declare const Controlled: Story;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Button
|
|
3
|
+
} from "../Button/index.js";
|
|
4
|
+
import"../../chunk-fjtwj9cw.js";
|
|
5
|
+
import {
|
|
6
|
+
AlertDialogBackdrop,
|
|
7
|
+
AlertDialogClose,
|
|
8
|
+
AlertDialogDescription,
|
|
9
|
+
AlertDialogPopup,
|
|
10
|
+
AlertDialogPortal,
|
|
11
|
+
AlertDialogRoot,
|
|
12
|
+
AlertDialogTitle,
|
|
13
|
+
AlertDialogTrigger,
|
|
14
|
+
AlertDialogViewport
|
|
15
|
+
} from "../AlertDialog/index.js";
|
|
16
|
+
import"../../utils/cn.js";
|
|
17
|
+
|
|
18
|
+
// src/components/ConfirmDialog/ConfirmDialog.tsx
|
|
19
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
20
|
+
function ConfirmDialog({
|
|
21
|
+
open,
|
|
22
|
+
defaultOpen,
|
|
23
|
+
onOpenChange,
|
|
24
|
+
title,
|
|
25
|
+
description,
|
|
26
|
+
confirmLabel = "Confirm",
|
|
27
|
+
cancelLabel = "Cancel",
|
|
28
|
+
onConfirm,
|
|
29
|
+
onCancel,
|
|
30
|
+
variant = "default",
|
|
31
|
+
trigger
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */ jsxs(AlertDialogRoot, {
|
|
34
|
+
open,
|
|
35
|
+
defaultOpen,
|
|
36
|
+
onOpenChange,
|
|
37
|
+
children: [
|
|
38
|
+
trigger && /* @__PURE__ */ jsx(AlertDialogTrigger, {
|
|
39
|
+
render: trigger
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ jsxs(AlertDialogPortal, {
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ jsx(AlertDialogBackdrop, {}),
|
|
44
|
+
/* @__PURE__ */ jsx(AlertDialogViewport, {
|
|
45
|
+
children: /* @__PURE__ */ jsxs(AlertDialogPopup, {
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsx(AlertDialogTitle, {
|
|
48
|
+
children: title
|
|
49
|
+
}),
|
|
50
|
+
description && /* @__PURE__ */ jsx(AlertDialogDescription, {
|
|
51
|
+
children: description
|
|
52
|
+
}),
|
|
53
|
+
/* @__PURE__ */ jsxs("div", {
|
|
54
|
+
className: "flex justify-end gap-3",
|
|
55
|
+
children: [
|
|
56
|
+
/* @__PURE__ */ jsx(AlertDialogClose, {
|
|
57
|
+
onClick: onCancel,
|
|
58
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
59
|
+
variant: "outline"
|
|
60
|
+
}),
|
|
61
|
+
children: cancelLabel
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ jsx(AlertDialogClose, {
|
|
64
|
+
onClick: onConfirm,
|
|
65
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
66
|
+
variant: variant === "destructive" ? "destructive" : "primary"
|
|
67
|
+
}),
|
|
68
|
+
children: confirmLabel
|
|
69
|
+
})
|
|
70
|
+
]
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
ConfirmDialog
|
|
82
|
+
};
|
|
83
|
+
export { ConfirmDialog };
|
|
84
|
+
|
|
85
|
+
//# debugId=A676AEF740480EFF64756E2164756E21
|