@bergetai/ui 0.19.2 → 0.20.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.
@@ -0,0 +1,81 @@
1
+ "use client";
2
+ const require_utils = require("../../lib/utils.cjs");
3
+ const require_input_group = require("../../primitives/input-group.cjs");
4
+ const require_InputGroup = require("../input-group/InputGroup.cjs");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/components/composer/Composer.tsx
7
+ /**
8
+ * Berget composer: the chat input surface from the Playground composer.
9
+ *
10
+ * A thin composition over the Berget `InputGroup` wrapper (which already
11
+ * carries the composer treatment — raised surface, transparent border,
12
+ * 16px radius) with a textarea, a bottom action row, and a circular submit
13
+ * button.
14
+ *
15
+ * Extra actions are added by composition: place anything inside
16
+ * `ComposerActions` before `ComposerSubmit` — dropdown triggers, sliders,
17
+ * toggles — and the submit button stays pinned to the end.
18
+ *
19
+ * ```tsx
20
+ * <Composer>
21
+ * <ComposerTextarea placeholder="Ask anything…" />
22
+ * <ComposerActions>
23
+ * <DropdownMenu>…</DropdownMenu>
24
+ * <ComposerSubmit aria-label="Send"><ArrowUpIcon /></ComposerSubmit>
25
+ * </ComposerActions>
26
+ * </Composer>
27
+ * ```
28
+ *
29
+ * Submission is owned by the consumer — wrap in a `<form onSubmit>` and let
30
+ * `ComposerSubmit` (default `type="submit"`) trigger it.
31
+ */
32
+ const Composer = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_InputGroup.InputGroup, {
33
+ className: require_utils.cn(`
34
+ gap-0 border-berget-composer-border bg-berget-composer-bg
35
+ has-[[data-slot=input-group-control]:focus-visible]:border-berget-composer-border
36
+ dark:border-berget-composer-border dark:bg-berget-composer-bg
37
+ `, className),
38
+ ...props
39
+ });
40
+ Composer.displayName = "Composer";
41
+ const ComposerTextarea = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input_group.InputGroupTextarea, {
42
+ className: require_utils.cn(`
43
+ max-h-40 min-h-9 px-3 py-2
44
+ placeholder:text-berget-muted-foreground/50
45
+ `, className),
46
+ ...props
47
+ });
48
+ ComposerTextarea.displayName = "ComposerTextarea";
49
+ /**
50
+ * Bottom action row of the composer. Icon buttons (`icon-*` sizes) placed in
51
+ * the row render round, so consumer-added actions share the composer's
52
+ * circular button treatment.
53
+ */
54
+ const ComposerActions = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_InputGroup.InputGroupAddon, {
55
+ align: "block-end",
56
+ className: require_utils.cn(`
57
+ pt-0.5
58
+ **:data-[size^=icon]:rounded-berget-full
59
+ `, className),
60
+ ...props
61
+ });
62
+ ComposerActions.displayName = "ComposerActions";
63
+ /**
64
+ * Circular send button. Pins to the end of the action row via `ml-auto`,
65
+ * submits the surrounding form by default.
66
+ */
67
+ const ComposerSubmit = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input_group.InputGroupButton, {
68
+ type: "submit",
69
+ variant: "default",
70
+ size: "icon-sm",
71
+ className: require_utils.cn("ml-auto rounded-berget-full", className),
72
+ ...props
73
+ });
74
+ ComposerSubmit.displayName = "ComposerSubmit";
75
+ //#endregion
76
+ exports.Composer = Composer;
77
+ exports.ComposerActions = ComposerActions;
78
+ exports.ComposerSubmit = ComposerSubmit;
79
+ exports.ComposerTextarea = ComposerTextarea;
80
+
81
+ //# sourceMappingURL=Composer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composer.cjs","names":["InputGroup","cn","InputGroupTextarea","InputGroupAddon","InputGroupButton"],"sources":["../../../src/components/composer/Composer.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n InputGroup,\n type InputGroupAddonProps,\n type InputGroupProps,\n InputGroupAddon,\n InputGroupTextarea,\n InputGroupButton,\n} from '../input-group';\n\nexport type ComposerProps = InputGroupProps;\nexport type ComposerTextareaProps = React.ComponentProps<typeof InputGroupTextarea>;\nexport type ComposerActionsProps = InputGroupAddonProps;\nexport type ComposerSubmitProps = Omit<React.ComponentProps<'button'>, 'type'>;\n\n/**\n * Berget composer: the chat input surface from the Playground composer.\n *\n * A thin composition over the Berget `InputGroup` wrapper (which already\n * carries the composer treatment — raised surface, transparent border,\n * 16px radius) with a textarea, a bottom action row, and a circular submit\n * button.\n *\n * Extra actions are added by composition: place anything inside\n * `ComposerActions` before `ComposerSubmit` — dropdown triggers, sliders,\n * toggles — and the submit button stays pinned to the end.\n *\n * ```tsx\n * <Composer>\n * <ComposerTextarea placeholder=\"Ask anything…\" />\n * <ComposerActions>\n * <DropdownMenu>…</DropdownMenu>\n * <ComposerSubmit aria-label=\"Send\"><ArrowUpIcon /></ComposerSubmit>\n * </ComposerActions>\n * </Composer>\n * ```\n *\n * Submission is owned by the consumer — wrap in a `<form onSubmit>` and let\n * `ComposerSubmit` (default `type=\"submit\"`) trigger it.\n */\nconst Composer = ({ className, ...props }: ComposerProps) => (\n // bg/border come from component-scoped --berget-composer-* tokens: solid\n // granite-900 bg + granite-800 border in dark, raised tint + subtle border\n // in light. `dark:` classes would track prefers-color-scheme, not the\n // Berget data-theme — do not convert. The has-[...focus] twin keeps the\n // border through focus, overriding the wrapper's focus:border-transparent.\n <InputGroup\n className={cn(\n `\n gap-0 border-berget-composer-border bg-berget-composer-bg\n has-[[data-slot=input-group-control]:focus-visible]:border-berget-composer-border\n dark:border-berget-composer-border dark:bg-berget-composer-bg\n `,\n className,\n )}\n {...props}\n />\n);\nComposer.displayName = 'Composer';\n\nconst ComposerTextarea = ({ className, ...props }: ComposerTextareaProps) => (\n <InputGroupTextarea\n // Softer placeholder than the primitive's `placeholder:text-muted-foreground`.\n className={cn(\n `\n max-h-40 min-h-9 px-3 py-2\n placeholder:text-berget-muted-foreground/50\n `,\n className,\n )}\n {...props}\n />\n);\nComposerTextarea.displayName = 'ComposerTextarea';\n\n/**\n * Bottom action row of the composer. Icon buttons (`icon-*` sizes) placed in\n * the row render round, so consumer-added actions share the composer's\n * circular button treatment.\n */\nconst ComposerActions = ({ className, ...props }: ComposerActionsProps) => (\n <InputGroupAddon\n align=\"block-end\"\n className={cn(\n `\n pt-0.5\n **:data-[size^=icon]:rounded-berget-full\n `,\n className,\n )}\n {...props}\n />\n);\nComposerActions.displayName = 'ComposerActions';\n\n/**\n * Circular send button. Pins to the end of the action row via `ml-auto`,\n * submits the surrounding form by default.\n */\nconst ComposerSubmit = ({ className, ...props }: ComposerSubmitProps) => (\n <InputGroupButton\n type=\"submit\"\n variant=\"default\"\n size=\"icon-sm\"\n className={cn('ml-auto rounded-berget-full', className)}\n {...props}\n />\n);\nComposerSubmit.displayName = 'ComposerSubmit';\n\nexport { Composer, ComposerTextarea, ComposerActions, ComposerSubmit };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,YAAY,EAAE,WAAW,GAAG,YAMhC,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;CACE,WAAWC,cAAAA,GACT;;;;SAKA,SACF;CACA,GAAI;AACL,CAAA;AAEH,SAAS,cAAc;AAEvB,MAAM,oBAAoB,EAAE,WAAW,GAAG,YACxC,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,oBAAD;CAEE,WAAWD,cAAAA,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA;AAEH,iBAAiB,cAAc;;;;;;AAO/B,MAAM,mBAAmB,EAAE,WAAW,GAAG,YACvC,iBAAA,GAAA,kBAAA,IAAA,CAACE,mBAAAA,iBAAD;CACE,OAAM;CACN,WAAWF,cAAAA,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA;AAEH,gBAAgB,cAAc;;;;;AAM9B,MAAM,kBAAkB,EAAE,WAAW,GAAG,YACtC,iBAAA,GAAA,kBAAA,IAAA,CAACG,oBAAAA,kBAAD;CACE,MAAK;CACL,SAAQ;CACR,MAAK;CACL,WAAWH,cAAAA,GAAG,+BAA+B,SAAS;CACtD,GAAI;AACL,CAAA;AAEH,eAAe,cAAc"}
@@ -0,0 +1,62 @@
1
+ import { InputGroupTextarea } from "../../primitives/input-group.cjs";
2
+ import { InputGroupAddonProps, InputGroupProps } from "../input-group/InputGroup.cjs";
3
+ import "../input-group/index.cjs";
4
+ import * as React from "react";
5
+ //#region src/components/composer/Composer.d.ts
6
+ export type ComposerProps = InputGroupProps;
7
+ export type ComposerTextareaProps = React.ComponentProps<typeof InputGroupTextarea>;
8
+ export type ComposerActionsProps = InputGroupAddonProps;
9
+ export type ComposerSubmitProps = Omit<React.ComponentProps<'button'>, 'type'>;
10
+ /**
11
+ * Berget composer: the chat input surface from the Playground composer.
12
+ *
13
+ * A thin composition over the Berget `InputGroup` wrapper (which already
14
+ * carries the composer treatment — raised surface, transparent border,
15
+ * 16px radius) with a textarea, a bottom action row, and a circular submit
16
+ * button.
17
+ *
18
+ * Extra actions are added by composition: place anything inside
19
+ * `ComposerActions` before `ComposerSubmit` — dropdown triggers, sliders,
20
+ * toggles — and the submit button stays pinned to the end.
21
+ *
22
+ * ```tsx
23
+ * <Composer>
24
+ * <ComposerTextarea placeholder="Ask anything…" />
25
+ * <ComposerActions>
26
+ * <DropdownMenu>…</DropdownMenu>
27
+ * <ComposerSubmit aria-label="Send"><ArrowUpIcon /></ComposerSubmit>
28
+ * </ComposerActions>
29
+ * </Composer>
30
+ * ```
31
+ *
32
+ * Submission is owned by the consumer — wrap in a `<form onSubmit>` and let
33
+ * `ComposerSubmit` (default `type="submit"`) trigger it.
34
+ */
35
+ declare const Composer: {
36
+ ({ className, ...props }: ComposerProps): import("react/jsx-runtime").JSX.Element;
37
+ displayName: string;
38
+ };
39
+ declare const ComposerTextarea: {
40
+ ({ className, ...props }: ComposerTextareaProps): import("react/jsx-runtime").JSX.Element;
41
+ displayName: string;
42
+ };
43
+ /**
44
+ * Bottom action row of the composer. Icon buttons (`icon-*` sizes) placed in
45
+ * the row render round, so consumer-added actions share the composer's
46
+ * circular button treatment.
47
+ */
48
+ declare const ComposerActions: {
49
+ ({ className, ...props }: ComposerActionsProps): import("react/jsx-runtime").JSX.Element;
50
+ displayName: string;
51
+ };
52
+ /**
53
+ * Circular send button. Pins to the end of the action row via `ml-auto`,
54
+ * submits the surrounding form by default.
55
+ */
56
+ declare const ComposerSubmit: {
57
+ ({ className, ...props }: ComposerSubmitProps): import("react/jsx-runtime").JSX.Element;
58
+ displayName: string;
59
+ };
60
+ //#endregion
61
+ export { Composer, ComposerActions, ComposerSubmit, ComposerTextarea };
62
+ //# sourceMappingURL=Composer.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composer.d.cts","names":[],"sources":["../../../src/components/composer/Composer.tsx"],"mappings":";;;;;YAaY,gBAAgB;YAChB,wBAAwB,MAAM,sBAAsB;YACpD,uBAAuB;YACvB,sBAAsB,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BvC;KAAqC,cAAA,SAAA,4CAAa,IAAA;;;cAoBlD;KAA6C,cAAA,SAAA,oDAAqB,IAAA;;;;;;;;cAoBlE;KAA4C,cAAA,SAAA,mDAAoB,IAAA;;;;;;;cAmBhE;KAA2C,cAAA,SAAA,kDAAmB,IAAA"}
@@ -0,0 +1,62 @@
1
+ import { InputGroupTextarea } from "../../primitives/input-group.mjs";
2
+ import { InputGroupAddonProps, InputGroupProps } from "../input-group/InputGroup.mjs";
3
+ import "../input-group/index.mjs";
4
+ import * as React from "react";
5
+ //#region src/components/composer/Composer.d.ts
6
+ export type ComposerProps = InputGroupProps;
7
+ export type ComposerTextareaProps = React.ComponentProps<typeof InputGroupTextarea>;
8
+ export type ComposerActionsProps = InputGroupAddonProps;
9
+ export type ComposerSubmitProps = Omit<React.ComponentProps<'button'>, 'type'>;
10
+ /**
11
+ * Berget composer: the chat input surface from the Playground composer.
12
+ *
13
+ * A thin composition over the Berget `InputGroup` wrapper (which already
14
+ * carries the composer treatment — raised surface, transparent border,
15
+ * 16px radius) with a textarea, a bottom action row, and a circular submit
16
+ * button.
17
+ *
18
+ * Extra actions are added by composition: place anything inside
19
+ * `ComposerActions` before `ComposerSubmit` — dropdown triggers, sliders,
20
+ * toggles — and the submit button stays pinned to the end.
21
+ *
22
+ * ```tsx
23
+ * <Composer>
24
+ * <ComposerTextarea placeholder="Ask anything…" />
25
+ * <ComposerActions>
26
+ * <DropdownMenu>…</DropdownMenu>
27
+ * <ComposerSubmit aria-label="Send"><ArrowUpIcon /></ComposerSubmit>
28
+ * </ComposerActions>
29
+ * </Composer>
30
+ * ```
31
+ *
32
+ * Submission is owned by the consumer — wrap in a `<form onSubmit>` and let
33
+ * `ComposerSubmit` (default `type="submit"`) trigger it.
34
+ */
35
+ declare const Composer: {
36
+ ({ className, ...props }: ComposerProps): import("react/jsx-runtime").JSX.Element;
37
+ displayName: string;
38
+ };
39
+ declare const ComposerTextarea: {
40
+ ({ className, ...props }: ComposerTextareaProps): import("react/jsx-runtime").JSX.Element;
41
+ displayName: string;
42
+ };
43
+ /**
44
+ * Bottom action row of the composer. Icon buttons (`icon-*` sizes) placed in
45
+ * the row render round, so consumer-added actions share the composer's
46
+ * circular button treatment.
47
+ */
48
+ declare const ComposerActions: {
49
+ ({ className, ...props }: ComposerActionsProps): import("react/jsx-runtime").JSX.Element;
50
+ displayName: string;
51
+ };
52
+ /**
53
+ * Circular send button. Pins to the end of the action row via `ml-auto`,
54
+ * submits the surrounding form by default.
55
+ */
56
+ declare const ComposerSubmit: {
57
+ ({ className, ...props }: ComposerSubmitProps): import("react/jsx-runtime").JSX.Element;
58
+ displayName: string;
59
+ };
60
+ //#endregion
61
+ export { Composer, ComposerActions, ComposerSubmit, ComposerTextarea };
62
+ //# sourceMappingURL=Composer.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composer.d.mts","names":[],"sources":["../../../src/components/composer/Composer.tsx"],"mappings":";;;;;YAaY,gBAAgB;YAChB,wBAAwB,MAAM,sBAAsB;YACpD,uBAAuB;YACvB,sBAAsB,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BvC;KAAqC,cAAA,SAAA,4CAAa,IAAA;;;cAoBlD;KAA6C,cAAA,SAAA,oDAAqB,IAAA;;;;;;;;cAoBlE;KAA4C,cAAA,SAAA,mDAAoB,IAAA;;;;;;;cAmBhE;KAA2C,cAAA,SAAA,kDAAmB,IAAA"}
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.mjs";
3
+ import { InputGroupButton, InputGroupTextarea } from "../../primitives/input-group.mjs";
4
+ import { InputGroup, InputGroupAddon } from "../input-group/InputGroup.mjs";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/components/composer/Composer.tsx
7
+ /**
8
+ * Berget composer: the chat input surface from the Playground composer.
9
+ *
10
+ * A thin composition over the Berget `InputGroup` wrapper (which already
11
+ * carries the composer treatment — raised surface, transparent border,
12
+ * 16px radius) with a textarea, a bottom action row, and a circular submit
13
+ * button.
14
+ *
15
+ * Extra actions are added by composition: place anything inside
16
+ * `ComposerActions` before `ComposerSubmit` — dropdown triggers, sliders,
17
+ * toggles — and the submit button stays pinned to the end.
18
+ *
19
+ * ```tsx
20
+ * <Composer>
21
+ * <ComposerTextarea placeholder="Ask anything…" />
22
+ * <ComposerActions>
23
+ * <DropdownMenu>…</DropdownMenu>
24
+ * <ComposerSubmit aria-label="Send"><ArrowUpIcon /></ComposerSubmit>
25
+ * </ComposerActions>
26
+ * </Composer>
27
+ * ```
28
+ *
29
+ * Submission is owned by the consumer — wrap in a `<form onSubmit>` and let
30
+ * `ComposerSubmit` (default `type="submit"`) trigger it.
31
+ */
32
+ const Composer = ({ className, ...props }) => /* @__PURE__ */ jsx(InputGroup, {
33
+ className: cn(`
34
+ gap-0 border-berget-composer-border bg-berget-composer-bg
35
+ has-[[data-slot=input-group-control]:focus-visible]:border-berget-composer-border
36
+ dark:border-berget-composer-border dark:bg-berget-composer-bg
37
+ `, className),
38
+ ...props
39
+ });
40
+ Composer.displayName = "Composer";
41
+ const ComposerTextarea = ({ className, ...props }) => /* @__PURE__ */ jsx(InputGroupTextarea, {
42
+ className: cn(`
43
+ max-h-40 min-h-9 px-3 py-2
44
+ placeholder:text-berget-muted-foreground/50
45
+ `, className),
46
+ ...props
47
+ });
48
+ ComposerTextarea.displayName = "ComposerTextarea";
49
+ /**
50
+ * Bottom action row of the composer. Icon buttons (`icon-*` sizes) placed in
51
+ * the row render round, so consumer-added actions share the composer's
52
+ * circular button treatment.
53
+ */
54
+ const ComposerActions = ({ className, ...props }) => /* @__PURE__ */ jsx(InputGroupAddon, {
55
+ align: "block-end",
56
+ className: cn(`
57
+ pt-0.5
58
+ **:data-[size^=icon]:rounded-berget-full
59
+ `, className),
60
+ ...props
61
+ });
62
+ ComposerActions.displayName = "ComposerActions";
63
+ /**
64
+ * Circular send button. Pins to the end of the action row via `ml-auto`,
65
+ * submits the surrounding form by default.
66
+ */
67
+ const ComposerSubmit = ({ className, ...props }) => /* @__PURE__ */ jsx(InputGroupButton, {
68
+ type: "submit",
69
+ variant: "default",
70
+ size: "icon-sm",
71
+ className: cn("ml-auto rounded-berget-full", className),
72
+ ...props
73
+ });
74
+ ComposerSubmit.displayName = "ComposerSubmit";
75
+ //#endregion
76
+ export { Composer, ComposerActions, ComposerSubmit, ComposerTextarea };
77
+
78
+ //# sourceMappingURL=Composer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composer.mjs","names":[],"sources":["../../../src/components/composer/Composer.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n InputGroup,\n type InputGroupAddonProps,\n type InputGroupProps,\n InputGroupAddon,\n InputGroupTextarea,\n InputGroupButton,\n} from '../input-group';\n\nexport type ComposerProps = InputGroupProps;\nexport type ComposerTextareaProps = React.ComponentProps<typeof InputGroupTextarea>;\nexport type ComposerActionsProps = InputGroupAddonProps;\nexport type ComposerSubmitProps = Omit<React.ComponentProps<'button'>, 'type'>;\n\n/**\n * Berget composer: the chat input surface from the Playground composer.\n *\n * A thin composition over the Berget `InputGroup` wrapper (which already\n * carries the composer treatment — raised surface, transparent border,\n * 16px radius) with a textarea, a bottom action row, and a circular submit\n * button.\n *\n * Extra actions are added by composition: place anything inside\n * `ComposerActions` before `ComposerSubmit` — dropdown triggers, sliders,\n * toggles — and the submit button stays pinned to the end.\n *\n * ```tsx\n * <Composer>\n * <ComposerTextarea placeholder=\"Ask anything…\" />\n * <ComposerActions>\n * <DropdownMenu>…</DropdownMenu>\n * <ComposerSubmit aria-label=\"Send\"><ArrowUpIcon /></ComposerSubmit>\n * </ComposerActions>\n * </Composer>\n * ```\n *\n * Submission is owned by the consumer — wrap in a `<form onSubmit>` and let\n * `ComposerSubmit` (default `type=\"submit\"`) trigger it.\n */\nconst Composer = ({ className, ...props }: ComposerProps) => (\n // bg/border come from component-scoped --berget-composer-* tokens: solid\n // granite-900 bg + granite-800 border in dark, raised tint + subtle border\n // in light. `dark:` classes would track prefers-color-scheme, not the\n // Berget data-theme — do not convert. The has-[...focus] twin keeps the\n // border through focus, overriding the wrapper's focus:border-transparent.\n <InputGroup\n className={cn(\n `\n gap-0 border-berget-composer-border bg-berget-composer-bg\n has-[[data-slot=input-group-control]:focus-visible]:border-berget-composer-border\n dark:border-berget-composer-border dark:bg-berget-composer-bg\n `,\n className,\n )}\n {...props}\n />\n);\nComposer.displayName = 'Composer';\n\nconst ComposerTextarea = ({ className, ...props }: ComposerTextareaProps) => (\n <InputGroupTextarea\n // Softer placeholder than the primitive's `placeholder:text-muted-foreground`.\n className={cn(\n `\n max-h-40 min-h-9 px-3 py-2\n placeholder:text-berget-muted-foreground/50\n `,\n className,\n )}\n {...props}\n />\n);\nComposerTextarea.displayName = 'ComposerTextarea';\n\n/**\n * Bottom action row of the composer. Icon buttons (`icon-*` sizes) placed in\n * the row render round, so consumer-added actions share the composer's\n * circular button treatment.\n */\nconst ComposerActions = ({ className, ...props }: ComposerActionsProps) => (\n <InputGroupAddon\n align=\"block-end\"\n className={cn(\n `\n pt-0.5\n **:data-[size^=icon]:rounded-berget-full\n `,\n className,\n )}\n {...props}\n />\n);\nComposerActions.displayName = 'ComposerActions';\n\n/**\n * Circular send button. Pins to the end of the action row via `ml-auto`,\n * submits the surrounding form by default.\n */\nconst ComposerSubmit = ({ className, ...props }: ComposerSubmitProps) => (\n <InputGroupButton\n type=\"submit\"\n variant=\"default\"\n size=\"icon-sm\"\n className={cn('ml-auto rounded-berget-full', className)}\n {...props}\n />\n);\nComposerSubmit.displayName = 'ComposerSubmit';\n\nexport { Composer, ComposerTextarea, ComposerActions, ComposerSubmit };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,YAAY,EAAE,WAAW,GAAG,YAMhC,oBAAC,YAAD;CACE,WAAW,GACT;;;;SAKA,SACF;CACA,GAAI;AACL,CAAA;AAEH,SAAS,cAAc;AAEvB,MAAM,oBAAoB,EAAE,WAAW,GAAG,YACxC,oBAAC,oBAAD;CAEE,WAAW,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA;AAEH,iBAAiB,cAAc;;;;;;AAO/B,MAAM,mBAAmB,EAAE,WAAW,GAAG,YACvC,oBAAC,iBAAD;CACE,OAAM;CACN,WAAW,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA;AAEH,gBAAgB,cAAc;;;;;AAM9B,MAAM,kBAAkB,EAAE,WAAW,GAAG,YACtC,oBAAC,kBAAD;CACE,MAAK;CACL,SAAQ;CACR,MAAK;CACL,WAAW,GAAG,+BAA+B,SAAS;CACtD,GAAI;AACL,CAAA;AAEH,eAAe,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { Composer, ComposerActions, ComposerActionsProps, ComposerProps, ComposerSubmit, ComposerSubmitProps, ComposerTextarea, ComposerTextareaProps } from "./Composer.cjs";
2
+ export { Composer, ComposerActions, type ComposerActionsProps, type ComposerProps, ComposerSubmit, type ComposerSubmitProps, ComposerTextarea, type ComposerTextareaProps };
@@ -0,0 +1,2 @@
1
+ import { Composer, ComposerActions, ComposerActionsProps, ComposerProps, ComposerSubmit, ComposerSubmitProps, ComposerTextarea, ComposerTextareaProps } from "./Composer.mjs";
2
+ export { Composer, ComposerActions, type ComposerActionsProps, type ComposerProps, ComposerSubmit, type ComposerSubmitProps, ComposerTextarea, type ComposerTextareaProps };
package/dist/index.cjs CHANGED
@@ -45,6 +45,7 @@ const require_Slider = require("./components/slider/Slider.cjs");
45
45
  const require_textarea = require("./primitives/textarea.cjs");
46
46
  const require_input_group = require("./primitives/input-group.cjs");
47
47
  const require_InputGroup = require("./components/input-group/InputGroup.cjs");
48
+ const require_Composer = require("./components/composer/Composer.cjs");
48
49
  const require_Checkbox = require("./components/checkbox/Checkbox.cjs");
49
50
  const require_Switch = require("./components/switch/Switch.cjs");
50
51
  const require_select = require("./primitives/select.cjs");
@@ -118,6 +119,10 @@ exports.ComboboxSeparator = require_combobox.ComboboxSeparator;
118
119
  exports.ComboboxStatus = require_combobox.ComboboxStatus;
119
120
  exports.ComboboxTrigger = require_combobox.ComboboxTrigger;
120
121
  exports.ComboboxValue = require_combobox.ComboboxValue;
122
+ exports.Composer = require_Composer.Composer;
123
+ exports.ComposerActions = require_Composer.ComposerActions;
124
+ exports.ComposerSubmit = require_Composer.ComposerSubmit;
125
+ exports.ComposerTextarea = require_Composer.ComposerTextarea;
121
126
  exports.Container = require_Container.Container;
122
127
  exports.CountrySelect = require_CountrySelect.CountrySelect;
123
128
  exports.Dialog = require_Dialog.Dialog;
package/dist/index.d.cts CHANGED
@@ -71,6 +71,8 @@ import "./components/slider/index.cjs";
71
71
  import { InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.cjs";
72
72
  import { InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupProps } from "./components/input-group/InputGroup.cjs";
73
73
  import "./components/input-group/index.cjs";
74
+ import { Composer, ComposerActions, ComposerActionsProps, ComposerProps, ComposerSubmit, ComposerSubmitProps, ComposerTextarea, ComposerTextareaProps } from "./components/composer/Composer.cjs";
75
+ import "./components/composer/index.cjs";
74
76
  import { Checkbox, CheckboxProps, checkboxVariants } from "./components/checkbox/Checkbox.cjs";
75
77
  import "./components/checkbox/index.cjs";
76
78
  import { Switch, SwitchProps, switchRootVariants, switchThumbVariants } from "./components/switch/Switch.cjs";
@@ -111,4 +113,4 @@ import { cn } from "./lib/utils.cjs";
111
113
  import { WindowFrame, WindowFrameProps, WindowTab } from "./components/window-frame/WindowFrame.cjs";
112
114
  import "./components/window-frame/index.cjs";
113
115
  import { FOG_BRAND_PALETTE, FogIllustration, FogIllustrationProps, FogPalette } from "./components/fog-illustration/FogIllustration.cjs";
114
- export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Anchor, type AnchorProps, type AnchorVariantsProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Combobox, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, InputGroupInput, type InputGroupProps, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, anchorVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, cn, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, tabsListVariants, tabsTriggerVariants, typographyVariants, useHighlightedCode, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
116
+ export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Anchor, type AnchorProps, type AnchorVariantsProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Combobox, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Composer, ComposerActions, type ComposerActionsProps, type ComposerProps, ComposerSubmit, type ComposerSubmitProps, ComposerTextarea, type ComposerTextareaProps, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, InputGroupInput, type InputGroupProps, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, anchorVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, cn, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, tabsListVariants, tabsTriggerVariants, typographyVariants, useHighlightedCode, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
package/dist/index.d.mts CHANGED
@@ -71,6 +71,8 @@ import "./components/slider/index.mjs";
71
71
  import { InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.mjs";
72
72
  import { InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupProps } from "./components/input-group/InputGroup.mjs";
73
73
  import "./components/input-group/index.mjs";
74
+ import { Composer, ComposerActions, ComposerActionsProps, ComposerProps, ComposerSubmit, ComposerSubmitProps, ComposerTextarea, ComposerTextareaProps } from "./components/composer/Composer.mjs";
75
+ import "./components/composer/index.mjs";
74
76
  import { Checkbox, CheckboxProps, checkboxVariants } from "./components/checkbox/Checkbox.mjs";
75
77
  import "./components/checkbox/index.mjs";
76
78
  import { Switch, SwitchProps, switchRootVariants, switchThumbVariants } from "./components/switch/Switch.mjs";
@@ -111,4 +113,4 @@ import { cn } from "./lib/utils.mjs";
111
113
  import { WindowFrame, WindowFrameProps, WindowTab } from "./components/window-frame/WindowFrame.mjs";
112
114
  import "./components/window-frame/index.mjs";
113
115
  import { FOG_BRAND_PALETTE, FogIllustration, FogIllustrationProps, FogPalette } from "./components/fog-illustration/FogIllustration.mjs";
114
- export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Anchor, type AnchorProps, type AnchorVariantsProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Combobox, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, InputGroupInput, type InputGroupProps, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, anchorVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, cn, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, tabsListVariants, tabsTriggerVariants, typographyVariants, useHighlightedCode, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
116
+ export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Anchor, type AnchorProps, type AnchorVariantsProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Combobox, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Composer, ComposerActions, type ComposerActionsProps, type ComposerProps, ComposerSubmit, type ComposerSubmitProps, ComposerTextarea, type ComposerTextareaProps, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, InputGroupInput, type InputGroupProps, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, anchorVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, cn, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, tabsListVariants, tabsTriggerVariants, typographyVariants, useHighlightedCode, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
package/dist/index.mjs CHANGED
@@ -44,6 +44,7 @@ import { Slider } from "./components/slider/Slider.mjs";
44
44
  import { Textarea } from "./primitives/textarea.mjs";
45
45
  import { InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.mjs";
46
46
  import { InputGroup, InputGroupAddon } from "./components/input-group/InputGroup.mjs";
47
+ import { Composer, ComposerActions, ComposerSubmit, ComposerTextarea } from "./components/composer/Composer.mjs";
47
48
  import { Checkbox, checkboxVariants } from "./components/checkbox/Checkbox.mjs";
48
49
  import { Switch, switchRootVariants, switchThumbVariants } from "./components/switch/Switch.mjs";
49
50
  import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "./primitives/select.mjs";
@@ -63,4 +64,4 @@ import { CodeBlock, CodeBlockHeader, CodeBlockTitle } from "./components/code-bl
63
64
  import { useHighlightedCode } from "./hooks/use-highlighted-code.mjs";
64
65
  import { WindowFrame } from "./components/window-frame/WindowFrame.mjs";
65
66
  import { FOG_BRAND_PALETTE, FogIllustration } from "./components/fog-illustration/FogIllustration.mjs";
66
- export { Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Anchor, Badge, BergetLogo, Box, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Combobox, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Container, CountrySelect, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, Grid, Icon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, LanguageSelect, Link, List, ListHeader, ListItem, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, ModelLogo, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeProvider, ThemeToggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typography, WindowFrame, alertVariants, anchorVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, cn, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, tabsListVariants, tabsTriggerVariants, typographyVariants, useHighlightedCode, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
67
+ export { Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Anchor, Badge, BergetLogo, Box, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, CodeBlockActions, CodeBlockContent, CodeBlockCopyButton, CodeBlockFooter, CodeBlockHeader, CodeBlockLine, CodeBlockTitle, Combobox, ComboboxClear, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Composer, ComposerActions, ComposerSubmit, ComposerTextarea, Container, CountrySelect, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, Grid, Icon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, LanguageSelect, Link, List, ListHeader, ListItem, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, ModelLogo, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeProvider, ThemeToggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typography, WindowFrame, alertVariants, anchorVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, cn, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, tabsListVariants, tabsTriggerVariants, typographyVariants, useHighlightedCode, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
@@ -251,6 +251,13 @@
251
251
  --berget-destructive: color-mix(in oklch, var(--berget-brand-muscaria-400) 20%, transparent);
252
252
  --berget-destructive-border: var(--berget-brand-muscaria-400);
253
253
  --berget-destructive-foreground: var(--berget-brand-muscaria-400);
254
+ /* ^ The full-strength colour. `destructive` utilities (text-destructive,
255
+ border-destructive/50, ring-destructive/20, bg-destructive/10 …) follow
256
+ the shadcn contract and assume a SOLID base colour, so the @theme alias
257
+ (section D) maps --color-destructive to this token — NOT to the 20%
258
+ pre-tinted --berget-destructive background fill above. Components that
259
+ want the tinted status surface use bg-berget-destructive + the -border/
260
+ -foreground companions (see Checkbox). */
254
261
 
255
262
  /* ── Sidebar ────────────────────────────────────────────────────── */
256
263
  --berget-sidebar: color-mix(in oklch, var(--berget-brand-granite-900) 40%, transparent);
@@ -278,6 +285,12 @@
278
285
  --berget-surface-subtle: color-mix(in oklch, var(--berget-foreground) 5%, transparent);
279
286
  --berget-surface-raised: color-mix(in oklch, var(--berget-foreground) 10%, transparent);
280
287
 
288
+ /* ── Composer ───────────────────────────────────────────────────── */
289
+ /* Component-scoped: solid granite-900 in dark (overrides the near-white
290
+ raised mist), keeps the light raised tint in light theme. */
291
+ --berget-composer-bg: var(--berget-brand-granite-900);
292
+ --berget-composer-border: var(--berget-brand-granite-800);
293
+
281
294
  /* ── Subtle borders ──────────────────────────────────────────────── */
282
295
  --berget-border-subtle: color-mix(in oklch, var(--berget-foreground) 10%, transparent);
283
296
  --berget-border-interactive: color-mix(in oklch, var(--berget-foreground) 20%, transparent);
@@ -628,7 +641,10 @@
628
641
  /* ── Destructive ────────────────────────────────────────────────── */
629
642
  --berget-destructive: color-mix(in oklch, var(--berget-brand-muscaria-500) 20%, transparent);
630
643
  --berget-destructive-border: var(--berget-brand-muscaria-500);
631
- --berget-destructive-foreground: var(--berget-brand-muscaria-500);
644
+ /* Foreground steps up to -600 in light mode like its status siblings
645
+ (info/success/warning), keeping text-destructive above WCAG AA (4.5:1)
646
+ on light surfaces — muscaria-500 lands at 4.3:1. */
647
+ --berget-destructive-foreground: var(--berget-brand-muscaria-600);
632
648
 
633
649
  /* ── Sidebar ────────────────────────────────────────────────────── */
634
650
  --berget-sidebar: color-mix(in oklch, var(--berget-brand-granite-100) 40%, transparent);
@@ -655,6 +671,10 @@
655
671
  --berget-surface-subtle: color-mix(in oklch, var(--berget-brand-granite-950) 5%, transparent);
656
672
  --berget-surface-raised: color-mix(in oklch, var(--berget-brand-granite-950) 10%, transparent);
657
673
 
674
+ /* ── Composer ───────────────────────────────────────────────────── */
675
+ --berget-composer-bg: var(--berget-surface-raised);
676
+ --berget-composer-border: var(--berget-border-subtle);
677
+
658
678
  /* ── Subtle borders ──────────────────────────────────────────────── */
659
679
  --berget-border-subtle: color-mix(in oklch, var(--berget-brand-granite-950) 10%, transparent);
660
680
  --berget-border-interactive: color-mix(
@@ -1064,7 +1084,7 @@
1064
1084
  --color-secondary-foreground: var(--berget-secondary-foreground);
1065
1085
  --color-accent: var(--berget-accent);
1066
1086
  --color-accent-foreground: var(--berget-accent-foreground);
1067
- --color-destructive: var(--berget-destructive);
1087
+ --color-destructive: var(--berget-destructive-foreground);
1068
1088
  --color-destructive-foreground: var(--berget-destructive-foreground);
1069
1089
  --color-muted: var(--berget-muted);
1070
1090
  --color-muted-foreground: var(--berget-muted-foreground);
@@ -1215,6 +1235,8 @@
1215
1235
  --color-berget-surface-hover: var(--berget-surface-hover);
1216
1236
  --color-berget-surface-subtle: var(--berget-surface-subtle);
1217
1237
  --color-berget-surface-raised: var(--berget-surface-raised);
1238
+ --color-berget-composer-bg: var(--berget-composer-bg);
1239
+ --color-berget-composer-border: var(--berget-composer-border);
1218
1240
  --color-berget-border-subtle: var(--berget-border-subtle);
1219
1241
  --color-berget-border-interactive: var(--berget-border-interactive);
1220
1242
  --color-berget-border-interactive-elevated: var(--berget-border-interactive-elevated);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bergetai/ui",
3
- "version": "0.19.2",
3
+ "version": "0.20.0",
4
4
  "description": "Berget Design System - Scandinavian-inspired design system with console aesthetic",
5
5
  "type": "module",
6
6
  "license": "MIT",