@oneplatformdev/ui 0.1.99-beta.56 → 0.1.99-beta.59
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/AlertDialog/AlertDialog.stories.js +3 -2
- package/AlertDialog/AlertDialog.stories.js.map +1 -1
- package/AlertDialog/AlertDialogRoot.js +19 -18
- package/AlertDialog/AlertDialogRoot.js.map +1 -1
- package/Button/Button.d.ts.map +1 -1
- package/Button/Button.js +43 -43
- package/Button/Button.js.map +1 -1
- package/Button/Button.utils.d.ts +3 -0
- package/Button/Button.utils.d.ts.map +1 -0
- package/Button/Button.utils.js +14 -0
- package/Button/Button.utils.js.map +1 -0
- package/Button/index.d.ts +1 -0
- package/Button/index.d.ts.map +1 -1
- package/Button/index.js +8 -6
- package/Button/index.js.map +1 -1
- package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
- package/ButtonIcon/ButtonIcon.js +41 -39
- package/ButtonIcon/ButtonIcon.js.map +1 -1
- package/ButtonIcon/ButtonIcon.stories.js +35 -33
- package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
- package/CHANGELOG.md +50 -0
- package/Calendar/Calendar.js +5 -4
- package/Calendar/Calendar.js.map +1 -1
- package/DataTable/DataTable.js +16 -15
- package/DataTable/DataTable.js.map +1 -1
- package/Search/Search.d.ts.map +1 -1
- package/Search/Search.js +40 -31
- package/Search/Search.js.map +1 -1
- package/TablePagination/TablePagination.js +9 -8
- package/TablePagination/TablePagination.js.map +1 -1
- package/index.js +330 -328
- package/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,7 +2,8 @@ import { jsx as t } from "react/jsx-runtime";
|
|
|
2
2
|
import { AlertDialog as n } from "./AlertDialog.js";
|
|
3
3
|
import { Button as l } from "../Button/Button.js";
|
|
4
4
|
import "../Button/buttonVariants.js";
|
|
5
|
-
|
|
5
|
+
import "react";
|
|
6
|
+
const c = (e) => /* @__PURE__ */ t(n, { ...e }), r = ["confirm", "alert", "destructive"], v = {
|
|
6
7
|
title: "AlertDialog",
|
|
7
8
|
component: n,
|
|
8
9
|
render: c,
|
|
@@ -117,6 +118,6 @@ export {
|
|
|
117
118
|
a as FullControl,
|
|
118
119
|
s as Playground,
|
|
119
120
|
i as Variants,
|
|
120
|
-
|
|
121
|
+
v as default
|
|
121
122
|
};
|
|
122
123
|
//# sourceMappingURL=AlertDialog.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog.stories.js","sources":["../../src/AlertDialog/AlertDialog.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react';\n\nimport { AlertDialog } from './AlertDialog';\nimport { AlertDialogProps } from './AlertDialog.types';\nimport React from 'react';\nimport { Button } from '../Button';\n\nconst Template = (props: AlertDialogProps) => <AlertDialog {...props} />;\n\nconst variants = ['confirm', 'alert', 'destructive'] as const;\n\nconst meta = {\n title: 'AlertDialog',\n component: AlertDialog,\n render: Template,\n argTypes: {\n open: {\n control: {\n type: 'boolean',\n },\n },\n variant: {\n name: 'variant',\n description: 'ButtonIcon variant',\n options: variants,\n control: {\n type: 'inline-radio',\n },\n },\n cancelLabel: {\n control: {\n type: 'text',\n },\n },\n actionLabel: {\n control: {\n type: 'text',\n },\n },\n title: {\n control: {\n type: 'text',\n },\n },\n description: {\n control: {\n type: 'text',\n },\n },\n },\n args: {\n variant: 'alert',\n cancelLabel: 'Cancel',\n actionLabel: 'Action',\n },\n} satisfies Meta<typeof AlertDialog>;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Playground = (args: AlertDialogProps) => (\n <AlertDialog\n {...args}\n />\n);\nPlayground.args = {\n trigger: 'Trigger text or ReactNode',\n variant: 'confirm',\n title: 'Dialog title...',\n description: 'Description text...',\n cancelLabel: 'Cancel label',\n actionLabel: 'Action label',\n}\n\nexport const Variants = (args: AlertDialogProps) => (\n <div className='flex gap-3'>\n {variants.map((variant) => (\n <AlertDialog\n key={variant}\n trigger={variant}\n {...args}\n variant={variant}\n />\n ))}\n </div>\n);\nVariants.parameters = {\n controls: {\n include: ['title', 'description', 'cancelLabel', 'actionLabel'],\n },\n};\nVariants.args = {\n title: \"Dialog title\",\n description: \"Description text...\"\n}\n\nexport const FullControl = (args: AlertDialogProps) => (\n <AlertDialog\n onOpenChange={(nextState) => console.log(nextState)}\n trigger={<Button variant=\"outline\">Control Trigger</Button>}\n header={<div>Custom Header</div>}\n footer={[\n <Button key='cancel' variant=\"outline\" onClick={console.log}>On cancel</Button>,\n <Button key='action' variant=\"outline\" onClick={console.log}>On Action</Button>,\n ]}\n {...args}\n />\n);\nFullControl.parameters = {\n controls: {\n include: ['open'],\n },\n};\nFullControl.args = {\n open: false,\n}\n\n\nexport const FullContent = (args: AlertDialogProps) => (\n <AlertDialog\n trigger={<Button variant=\"outline\">Full Content Trigger</Button>}\n {...args}\n >\n Full Content...\n </AlertDialog>\n);\nFullContent.parameters = {\n controls: {\n include: [],\n },\n};\n"],"names":["Template","props","jsx","AlertDialog","variants","meta","Playground","args","Variants","variant","FullControl","nextState","Button","FullContent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AlertDialog.stories.js","sources":["../../src/AlertDialog/AlertDialog.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react';\n\nimport { AlertDialog } from './AlertDialog';\nimport { AlertDialogProps } from './AlertDialog.types';\nimport React from 'react';\nimport { Button } from '../Button';\n\nconst Template = (props: AlertDialogProps) => <AlertDialog {...props} />;\n\nconst variants = ['confirm', 'alert', 'destructive'] as const;\n\nconst meta = {\n title: 'AlertDialog',\n component: AlertDialog,\n render: Template,\n argTypes: {\n open: {\n control: {\n type: 'boolean',\n },\n },\n variant: {\n name: 'variant',\n description: 'ButtonIcon variant',\n options: variants,\n control: {\n type: 'inline-radio',\n },\n },\n cancelLabel: {\n control: {\n type: 'text',\n },\n },\n actionLabel: {\n control: {\n type: 'text',\n },\n },\n title: {\n control: {\n type: 'text',\n },\n },\n description: {\n control: {\n type: 'text',\n },\n },\n },\n args: {\n variant: 'alert',\n cancelLabel: 'Cancel',\n actionLabel: 'Action',\n },\n} satisfies Meta<typeof AlertDialog>;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Playground = (args: AlertDialogProps) => (\n <AlertDialog\n {...args}\n />\n);\nPlayground.args = {\n trigger: 'Trigger text or ReactNode',\n variant: 'confirm',\n title: 'Dialog title...',\n description: 'Description text...',\n cancelLabel: 'Cancel label',\n actionLabel: 'Action label',\n}\n\nexport const Variants = (args: AlertDialogProps) => (\n <div className='flex gap-3'>\n {variants.map((variant) => (\n <AlertDialog\n key={variant}\n trigger={variant}\n {...args}\n variant={variant}\n />\n ))}\n </div>\n);\nVariants.parameters = {\n controls: {\n include: ['title', 'description', 'cancelLabel', 'actionLabel'],\n },\n};\nVariants.args = {\n title: \"Dialog title\",\n description: \"Description text...\"\n}\n\nexport const FullControl = (args: AlertDialogProps) => (\n <AlertDialog\n onOpenChange={(nextState) => console.log(nextState)}\n trigger={<Button variant=\"outline\">Control Trigger</Button>}\n header={<div>Custom Header</div>}\n footer={[\n <Button key='cancel' variant=\"outline\" onClick={console.log}>On cancel</Button>,\n <Button key='action' variant=\"outline\" onClick={console.log}>On Action</Button>,\n ]}\n {...args}\n />\n);\nFullControl.parameters = {\n controls: {\n include: ['open'],\n },\n};\nFullControl.args = {\n open: false,\n}\n\n\nexport const FullContent = (args: AlertDialogProps) => (\n <AlertDialog\n trigger={<Button variant=\"outline\">Full Content Trigger</Button>}\n {...args}\n >\n Full Content...\n </AlertDialog>\n);\nFullContent.parameters = {\n controls: {\n include: [],\n },\n};\n"],"names":["Template","props","jsx","AlertDialog","variants","meta","Playground","args","Variants","variant","FullControl","nextState","Button","FullContent"],"mappings":";;;;;AAOA,MAAMA,IAAW,CAACC,MAA4B,gBAAAC,EAACC,GAAA,EAAa,GAAGF,GAAO,GAEhEG,IAAW,CAAC,WAAW,SAAS,aAAa,GAE7CC,IAAO;AAAA,EACX,OAAO;AAAA,EACP,WAAWF;AAAA,EACX,QAAQH;AAAA,EACR,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,SAAS;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAASI;AAAA,MACT,SAAS;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,aAAa;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,aAAa;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,OAAO;AAAA,MACL,SAAS;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,aAAa;AAAA,MACX,SAAS;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEF,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,EAAA;AAEjB,GAKaE,IAAa,CAACC,MACzB,gBAAAL;AAAA,EAACC;AAAA,EAAA;AAAA,IACE,GAAGI;AAAA,EAAA;AACN;AAEFD,EAAW,OAAO;AAAA,EAChB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AAAA,EACb,aAAa;AACf;AAEO,MAAME,IAAW,CAACD,MACvB,gBAAAL,EAAC,OAAA,EAAI,WAAU,cACZ,UAAAE,EAAS,IAAI,CAACK,MACb,gBAAAP;AAAA,EAACC;AAAA,EAAA;AAAA,IAEC,SAASM;AAAA,IACR,GAAGF;AAAA,IACJ,SAAAE;AAAA,EAAA;AAAA,EAHKA;AAIP,CACD,EAAA,CACH;AAEFD,EAAS,aAAa;AAAA,EACpB,UAAU;AAAA,IACR,SAAS,CAAC,SAAS,eAAe,eAAe,aAAa;AAAA,EAAA;AAElE;AACAA,EAAS,OAAO;AAAA,EACd,OAAO;AAAA,EACP,aAAa;AACf;AAEO,MAAME,IAAc,CAACH,MAC1B,gBAAAL;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,cAAc,CAACQ,MAAc,QAAQ,IAAIA,CAAS;AAAA,IAClD,SAAS,gBAAAT,EAACU,GAAA,EAAO,SAAQ,WAAU,UAAA,mBAAe;AAAA,IAClD,QAAQ,gBAAAV,EAAC,OAAA,EAAI,UAAA,gBAAA,CAAa;AAAA,IAC1B,QAAQ;AAAA,MACN,gBAAAA,EAACU,KAAoB,SAAQ,WAAU,SAAS,QAAQ,KAAK,yBAAjD,QAA0D;AAAA,MACtE,gBAAAV,EAACU,KAAoB,SAAQ,WAAU,SAAS,QAAQ,KAAK,yBAAjD,QAA0D;AAAA,IAAA;AAAA,IAEvE,GAAGL;AAAA,EAAA;AACN;AAEFG,EAAY,aAAa;AAAA,EACvB,UAAU;AAAA,IACR,SAAS,CAAC,MAAM;AAAA,EAAA;AAEpB;AACAA,EAAY,OAAO;AAAA,EACjB,MAAM;AACR;AAGO,MAAMG,IAAc,CAACN,MAC1B,gBAAAL;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,SAAS,gBAAAD,EAACU,GAAA,EAAO,SAAQ,WAAU,UAAA,wBAAoB;AAAA,IACtD,GAAGL;AAAA,IACL,UAAA;AAAA,EAAA;AAED;AAEFM,EAAY,aAAa;AAAA,EACvB,UAAU;AAAA,IACR,SAAS,CAAA;AAAA,EAAC;AAEd;"}
|
|
@@ -3,10 +3,11 @@ import * as r from "@radix-ui/react-alert-dialog";
|
|
|
3
3
|
import { cn as l } from "@oneplatformdev/utils";
|
|
4
4
|
import "../Button/Button.js";
|
|
5
5
|
import { buttonVariants as d } from "../Button/buttonVariants.js";
|
|
6
|
-
|
|
6
|
+
import "react";
|
|
7
|
+
function A(t) {
|
|
7
8
|
return /* @__PURE__ */ o(r.Root, { "data-slot": "alert-dialog", ...t });
|
|
8
9
|
}
|
|
9
|
-
function
|
|
10
|
+
function D(t) {
|
|
10
11
|
return /* @__PURE__ */ o(r.Trigger, { "data-slot": "alert-dialog-trigger", ...t });
|
|
11
12
|
}
|
|
12
13
|
function m(t) {
|
|
@@ -26,7 +27,7 @@ function g(t) {
|
|
|
26
27
|
}
|
|
27
28
|
);
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
+
function h(t) {
|
|
30
31
|
const { className: a, ...e } = t;
|
|
31
32
|
return /* @__PURE__ */ c(m, { children: [
|
|
32
33
|
/* @__PURE__ */ o(g, {}),
|
|
@@ -47,7 +48,7 @@ function D(t) {
|
|
|
47
48
|
)
|
|
48
49
|
] });
|
|
49
50
|
}
|
|
50
|
-
function
|
|
51
|
+
function v(t) {
|
|
51
52
|
const { className: a, ...e } = t;
|
|
52
53
|
return /* @__PURE__ */ o(
|
|
53
54
|
"div",
|
|
@@ -58,7 +59,7 @@ function h(t) {
|
|
|
58
59
|
}
|
|
59
60
|
);
|
|
60
61
|
}
|
|
61
|
-
function
|
|
62
|
+
function w(t) {
|
|
62
63
|
const { className: a, ...e } = t;
|
|
63
64
|
return /* @__PURE__ */ o(
|
|
64
65
|
"div",
|
|
@@ -72,7 +73,7 @@ function v(t) {
|
|
|
72
73
|
}
|
|
73
74
|
);
|
|
74
75
|
}
|
|
75
|
-
function
|
|
76
|
+
function b(t) {
|
|
76
77
|
const { className: a, ...e } = t;
|
|
77
78
|
return /* @__PURE__ */ o(
|
|
78
79
|
r.Title,
|
|
@@ -83,7 +84,7 @@ function w(t) {
|
|
|
83
84
|
}
|
|
84
85
|
);
|
|
85
86
|
}
|
|
86
|
-
function
|
|
87
|
+
function y(t) {
|
|
87
88
|
const { className: a, children: e, ...s } = t;
|
|
88
89
|
return /* @__PURE__ */ o(
|
|
89
90
|
r.Description,
|
|
@@ -95,7 +96,7 @@ function b(t) {
|
|
|
95
96
|
}
|
|
96
97
|
);
|
|
97
98
|
}
|
|
98
|
-
function
|
|
99
|
+
function z(t) {
|
|
99
100
|
const { className: a, variant: e, size: s, color: n, ...i } = t;
|
|
100
101
|
return /* @__PURE__ */ o(
|
|
101
102
|
r.Action,
|
|
@@ -105,7 +106,7 @@ function y(t) {
|
|
|
105
106
|
}
|
|
106
107
|
);
|
|
107
108
|
}
|
|
108
|
-
function
|
|
109
|
+
function C(t) {
|
|
109
110
|
const { className: a, variant: e, color: s = "secondary", size: n, ...i } = t;
|
|
110
111
|
return /* @__PURE__ */ o(
|
|
111
112
|
r.Cancel,
|
|
@@ -116,17 +117,17 @@ function z(t) {
|
|
|
116
117
|
);
|
|
117
118
|
}
|
|
118
119
|
export {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
z as AlertDialogAction,
|
|
121
|
+
C as AlertDialogCancel,
|
|
122
|
+
h as AlertDialogContent,
|
|
123
|
+
y as AlertDialogDescription,
|
|
124
|
+
w as AlertDialogFooter,
|
|
125
|
+
v as AlertDialogHeader,
|
|
125
126
|
g as AlertDialogOverlay,
|
|
126
127
|
m as AlertDialogPortal,
|
|
127
128
|
r as AlertDialogPrimitive,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
A as AlertDialogRoot,
|
|
130
|
+
b as AlertDialogTitle,
|
|
131
|
+
D as AlertDialogTrigger
|
|
131
132
|
};
|
|
132
133
|
//# sourceMappingURL=AlertDialogRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialogRoot.js","sources":["../../src/AlertDialog/AlertDialogRoot.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\n\nimport { cn } from '@oneplatformdev/utils';\nimport { ButtonProps, buttonVariants } from '../Button';\n\nfunction AlertDialogRoot(props: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger(props: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal(props: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" asChild {...props} />;\n}\n\nfunction AlertDialogOverlay(props: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n const { className, ...rest } = props;\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogContent(props: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n const { className, ...rest } = props;\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay/>\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n 'fixed top-[50%] left-[50%] z-50 translate-x-[-50%] translate-y-[-50%]',\n 'grid w-full max-w-[calc(100%-2rem)] sm:max-w-lg min-h-10 gap-4 p-6',\n 'bg-background border rounded-lg shadow-lg',\n 'overflow-x-hidden break-words',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 duration-200',\n className\n )}\n {...rest}\n />\n </AlertDialogPortal>\n )\n}\n\n\nfunction AlertDialogHeader(props: React.ComponentProps<\"div\">) {\n const { className, ...rest } = props;\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-3 text-center sm:text-left\", className)}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogFooter(props: React.ComponentProps<\"div\">) {\n const { className, ...rest } = props;\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogTitle(props: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n const { className, ...rest } = props;\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold break-words min-h-10 flex items-center\", className)}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogDescription(props: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n const { className, children, ...rest } = props;\n return (\n <AlertDialogPrimitive.Description\n {...rest}\n asChild\n data-slot=\"alert-dialog-description\"\n >\n <div className={cn(\"text-muted-foreground text-sm whitespace-pre-wrap break-words\", className)}>\n {children}\n </div>\n </AlertDialogPrimitive.Description>\n )\n}\n\n\nfunction AlertDialogAction(props: React.ComponentProps<typeof AlertDialogPrimitive.Action> & ButtonProps) {\n const { className, variant, size, color, ...rest } = props;\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants({ variant, size, color }), className)}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogCancel(props: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> & ButtonProps) {\n const { className, variant, color = 'secondary', size, ...rest } = props\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant, size, color }), className)}\n {...rest}\n />\n )\n}\n\nexport {\n AlertDialogRoot,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogPrimitive\n};\n"],"names":["AlertDialogRoot","props","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogPortal","jsx","AlertDialogOverlay","className","rest","cn","AlertDialogContent","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","children","AlertDialogAction","variant","size","color","buttonVariants","AlertDialogCancel"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AlertDialogRoot.js","sources":["../../src/AlertDialog/AlertDialogRoot.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\n\nimport { cn } from '@oneplatformdev/utils';\nimport { ButtonProps, buttonVariants } from '../Button';\n\nfunction AlertDialogRoot(props: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger(props: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal(props: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" asChild {...props} />;\n}\n\nfunction AlertDialogOverlay(props: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n const { className, ...rest } = props;\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogContent(props: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n const { className, ...rest } = props;\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay/>\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n 'fixed top-[50%] left-[50%] z-50 translate-x-[-50%] translate-y-[-50%]',\n 'grid w-full max-w-[calc(100%-2rem)] sm:max-w-lg min-h-10 gap-4 p-6',\n 'bg-background border rounded-lg shadow-lg',\n 'overflow-x-hidden break-words',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 duration-200',\n className\n )}\n {...rest}\n />\n </AlertDialogPortal>\n )\n}\n\n\nfunction AlertDialogHeader(props: React.ComponentProps<\"div\">) {\n const { className, ...rest } = props;\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-3 text-center sm:text-left\", className)}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogFooter(props: React.ComponentProps<\"div\">) {\n const { className, ...rest } = props;\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogTitle(props: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n const { className, ...rest } = props;\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold break-words min-h-10 flex items-center\", className)}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogDescription(props: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n const { className, children, ...rest } = props;\n return (\n <AlertDialogPrimitive.Description\n {...rest}\n asChild\n data-slot=\"alert-dialog-description\"\n >\n <div className={cn(\"text-muted-foreground text-sm whitespace-pre-wrap break-words\", className)}>\n {children}\n </div>\n </AlertDialogPrimitive.Description>\n )\n}\n\n\nfunction AlertDialogAction(props: React.ComponentProps<typeof AlertDialogPrimitive.Action> & ButtonProps) {\n const { className, variant, size, color, ...rest } = props;\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants({ variant, size, color }), className)}\n {...rest}\n />\n )\n}\n\nfunction AlertDialogCancel(props: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> & ButtonProps) {\n const { className, variant, color = 'secondary', size, ...rest } = props\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant, size, color }), className)}\n {...rest}\n />\n )\n}\n\nexport {\n AlertDialogRoot,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogPrimitive\n};\n"],"names":["AlertDialogRoot","props","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogPortal","jsx","AlertDialogOverlay","className","rest","cn","AlertDialogContent","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","children","AlertDialogAction","variant","size","color","buttonVariants","AlertDialogCancel"],"mappings":"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"}
|
package/Button/Button.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA+ClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,MAAM,uFA0ElB,CAAA;AAED,eAAe,MAAM,CAAC"}
|
package/Button/Button.js
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as I, Fragment as N, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import * as R from "react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { buttonVariants as F } from "./buttonVariants.js";
|
|
3
|
+
import { Slot as j } from "@radix-ui/react-slot";
|
|
4
|
+
import { cn as A } from "@oneplatformdev/utils";
|
|
5
|
+
import { buttonVariants as C } from "./buttonVariants.js";
|
|
7
6
|
import "@radix-ui/react-tooltip";
|
|
8
|
-
import { Tooltip as
|
|
7
|
+
import { Tooltip as V } from "../Tooltip/Tooltip.js";
|
|
9
8
|
import { LoadedIcon as y } from "../LoadedIcon/LoadedIcon.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
import { renderInnerIcon as B } from "./Button.utils.js";
|
|
10
|
+
const E = (i) => {
|
|
11
|
+
const { variant: n, size: t, color: s } = i, e = { color: s, variant: n, size: t };
|
|
12
|
+
if (n === "default")
|
|
13
13
|
return console.warn('Button variant "default" is deprecated. Please use "variant=contained color=primary" instead.'), e.variant = "contained", e.color = "primary", e;
|
|
14
|
-
if (
|
|
14
|
+
if (t === "icon")
|
|
15
15
|
return console.warn('Button size "icon" is deprecated. Please use "<ButtonIcon/>" component instead.'), e.variant = "contained", e.color = "secondary", e;
|
|
16
|
-
if (
|
|
16
|
+
if (n === "transparent")
|
|
17
17
|
throw console.warn('Button variant "transparent" is removed. Please use "variant=none" instead.'), new Error('Button variant "transparent" is removed. Please use "variant=none" instead.');
|
|
18
|
-
return
|
|
19
|
-
},
|
|
20
|
-
(
|
|
18
|
+
return n === "outline" ? (console.warn('Button variant "outline" is deprecated. Please use "variant=outlined color=primary" instead.'), e.variant = "outlined", e.color = "primary", e) : n === "secondary" ? (console.warn('Button variant "secondary" is deprecated. Please use "variant=contained color=secondary" instead.'), e.variant = "contained", e.color = "secondary", e) : (n === "destructive" && (console.warn('Button variant "destructive" is deprecated. Please use "variant=contained color=error" instead.'), e.variant = "contained", e.color = "error"), e);
|
|
19
|
+
}, F = R.forwardRef(
|
|
20
|
+
(i, n) => {
|
|
21
21
|
const {
|
|
22
|
-
disabled:
|
|
22
|
+
disabled: t,
|
|
23
23
|
className: s,
|
|
24
24
|
variant: e,
|
|
25
25
|
color: h,
|
|
26
26
|
size: c,
|
|
27
|
-
asChild:
|
|
27
|
+
asChild: l = !1,
|
|
28
28
|
title: w = "",
|
|
29
29
|
tooltip: P,
|
|
30
|
-
tooltipProps:
|
|
30
|
+
tooltipProps: p = {},
|
|
31
31
|
message: g,
|
|
32
|
-
loading:
|
|
33
|
-
children:
|
|
32
|
+
loading: o = !1,
|
|
33
|
+
children: u,
|
|
34
34
|
startAdornment: m,
|
|
35
|
-
endAdornment:
|
|
36
|
-
screenReader:
|
|
35
|
+
endAdornment: v,
|
|
36
|
+
screenReader: a,
|
|
37
37
|
...b
|
|
38
|
-
} =
|
|
39
|
-
!!m && /* @__PURE__ */
|
|
40
|
-
|
|
41
|
-
!!
|
|
42
|
-
!!
|
|
43
|
-
] }),
|
|
38
|
+
} = i, x = l ? j : "button", d = g || P || w, z = l ? u : /* @__PURE__ */ I(N, { children: [
|
|
39
|
+
!!m && /* @__PURE__ */ r(y, { loading: o, size: c, children: B(m) }),
|
|
40
|
+
u,
|
|
41
|
+
!!v && /* @__PURE__ */ r(y, { loading: o, size: c, children: B(v) }),
|
|
42
|
+
!!a && /* @__PURE__ */ r("span", { className: "sr-only", children: typeof a == "string" ? a : a.text })
|
|
43
|
+
] }), f = /* @__PURE__ */ r(
|
|
44
44
|
x,
|
|
45
45
|
{
|
|
46
46
|
type: "button",
|
|
47
|
-
ref:
|
|
48
|
-
disabled:
|
|
49
|
-
className:
|
|
50
|
-
|
|
51
|
-
...
|
|
47
|
+
ref: n,
|
|
48
|
+
disabled: t,
|
|
49
|
+
className: A(
|
|
50
|
+
C({
|
|
51
|
+
...E({ variant: e, size: c, color: h }),
|
|
52
52
|
className: s
|
|
53
53
|
}),
|
|
54
|
-
|
|
54
|
+
o && "pointer-events-none opacity-80 user-select-none"
|
|
55
55
|
),
|
|
56
56
|
...b,
|
|
57
57
|
children: z
|
|
58
58
|
}
|
|
59
59
|
);
|
|
60
|
-
return
|
|
61
|
-
|
|
60
|
+
return d ? /* @__PURE__ */ r(
|
|
61
|
+
V,
|
|
62
62
|
{
|
|
63
|
-
...
|
|
64
|
-
open:
|
|
65
|
-
message:
|
|
66
|
-
children:
|
|
63
|
+
...p || {},
|
|
64
|
+
open: p.open ?? (t || o || !d) ? !1 : void 0,
|
|
65
|
+
message: d,
|
|
66
|
+
children: f
|
|
67
67
|
}
|
|
68
|
-
) :
|
|
68
|
+
) : f;
|
|
69
69
|
}
|
|
70
70
|
);
|
|
71
|
-
|
|
71
|
+
F.displayName = "Button";
|
|
72
72
|
export {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
F as Button,
|
|
74
|
+
F as default
|
|
75
75
|
};
|
|
76
76
|
//# sourceMappingURL=Button.js.map
|
package/Button/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/Button/Button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { ButtonVarianceProps, buttonVariants } from './buttonVariants';\nimport {
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/Button/Button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { ButtonVarianceProps, buttonVariants } from './buttonVariants';\nimport { type ButtonProps } from './Button.types';\n\nimport { Tooltip } from '../Tooltip';\nimport { LoadedIcon } from \"../LoadedIcon\";\nimport { renderInnerIcon } from \"./Button.utils\";\n\nconst normalizedVariantProperties = (props: ButtonVarianceProps): ButtonVarianceProps => {\n const { variant, size, color } = props;\n const vls = { color, variant, size }\n if ((variant as string) === 'default') {\n console.warn('Button variant \"default\" is deprecated. Please use \"variant=contained color=primary\" instead.')\n vls.variant = 'contained'\n vls.color = 'primary'\n return vls\n }\n if ((size as string) === 'icon') {\n console.warn('Button size \"icon\" is deprecated. Please use \"<ButtonIcon/>\" component instead.')\n vls.variant = 'contained'\n vls.color = 'secondary'\n return vls\n // throw new Error('Button variant \"transparent\" is removed. Please use \"variant=none\" instead.')\n }\n if ((variant as string) === 'transparent') {\n console.warn('Button variant \"transparent\" is removed. Please use \"variant=none\" instead.')\n throw new Error('Button variant \"transparent\" is removed. Please use \"variant=none\" instead.')\n }\n if ((variant as string) === 'outline') {\n console.warn('Button variant \"outline\" is deprecated. Please use \"variant=outlined color=primary\" instead.')\n vls.variant = 'outlined'\n vls.color = 'primary'\n return vls\n }\n if ((variant as string) === 'secondary') {\n console.warn('Button variant \"secondary\" is deprecated. Please use \"variant=contained color=secondary\" instead.')\n vls.variant = 'contained'\n vls.color = 'secondary'\n return vls\n }\n if ((variant as string) === 'destructive') {\n console.warn('Button variant \"destructive\" is deprecated. Please use \"variant=contained color=error\" instead.')\n vls.variant = 'contained'\n vls.color = 'error'\n return vls\n }\n return vls;\n}\n\n/**\n * Universal Button component used for triggering actions and UI interactions.\n * Supports variants, sizes, colors, start/end icon adornments, custom slot content,\n * tooltip integration, loading state, and polymorphic rendering via `asChild`.\n *\n * @public\n * @see [Documentation](#) // TODO: add link to docs\n *\n * @example\n * > Import:\n * ```tsx\n * import { Button } from '@oneplatformdev/ui/Button';\n * ```\n * > Basic usage:\n * ```tsx\n * <Button>Click me</Button>\n * ```\n * > Variant and size:\n * ```tsx\n * <Button variant=\"outline\" size=\"lg\">Large Button</Button>\n * ```\n * > With icons:\n * ```tsx\n * <Button startAdornment={<PlusIcon />}>Create</Button>\n * <Button endAdornment={<ArrowRightIcon />}>Next</Button>\n * ```\n * > Icon style button:\n * ```tsx\n * <Button size=\"icon\">\n * <PlusIcon />\n * </Button>\n * ```\n * > Polymorphic rendering (`asChild`):\n * ```tsx\n * <Button asChild>\n * <a href=\"/dashboard\">Go to Dashboard</a>\n * </Button>\n * ```\n * > Tooltip via `message` or native `title`:\n * ```tsx\n * <Button title=\"Tooltip text\">Hover me</Button>\n * <Button message=\"Tooltip content\">Hover me</Button>\n * ```\n * > Loading state:\n * ```tsx\n * <Button loading>Processing...</Button>\n * ```\n * > Disabled:\n * ```tsx\n * <Button disabled>Disabled</Button>\n * ```\n *\n * Sizes\n * xs — compact, for tight UI areas. Classes: rounded-sm p-1 gap-1 text-xs min-h-4 min-w-14.\n * sm — small; slightly larger than xs. Classes: rounded-md p-1 gap-1 text-sm min-h-6 min-w-20.\n * md — default/text-heavy buttons. Classes: min-h-8 min-w-[102px] rounded-lg gap-1 px-2 py-1 text-sm leading-[1.12] [&_svg]:size-6.\n * lg — large/call-to-action. Classes: min-h-10 min-w-35 rounded-lg gap-1 px-3 py-2 text-base leading-normal [&_svg]:size-6.\n *\n * @remarks\n * - Designed for texted usage. If you need icon-only, use `ButtonIcon`.\n * - Works with any SVG React component or element, e.g. lucide-react, heroicons, custom icons.\n *\n * @see {@link ButtonIcon} for icon-only buttons\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref) => {\n const {\n disabled,\n className,\n variant,\n color,\n size,\n asChild = false,\n title = '',\n tooltip,\n tooltipProps = {},\n message,\n loading = false,\n children,\n startAdornment,\n endAdornment,\n screenReader,\n ...rest\n } = props;\n const Comp = asChild ? Slot : \"button\"\n const msg = message || tooltip || title;\n\n const content = asChild\n ? children\n : (\n <>\n {!!startAdornment && (\n <LoadedIcon loading={loading} size={size}>\n {renderInnerIcon(startAdornment)}\n </LoadedIcon>\n )}\n\n {children}\n\n {!!endAdornment && (\n <LoadedIcon loading={loading} size={size}>\n {renderInnerIcon(endAdornment)}\n </LoadedIcon>\n )}\n\n {!!screenReader && <span className=\"sr-only\">{typeof screenReader === 'string' ? screenReader : screenReader.text}</span>}\n </>\n )\n\n const cmp = (\n <Comp\n type='button'\n ref={ref}\n disabled={disabled}\n className={cn(\n buttonVariants({\n ...normalizedVariantProperties({ variant, size, color }),\n className\n }),\n loading && 'pointer-events-none opacity-80 user-select-none',\n )}\n {...rest}\n >\n {content}\n </Comp>\n )\n\n if (!msg) return cmp\n return (\n <Tooltip\n {...(tooltipProps || {})}\n open={tooltipProps.open ?? (disabled || loading || !msg) ? false : undefined}\n message={msg}\n >\n {cmp}\n </Tooltip>\n )\n }\n)\nButton.displayName = \"Button\"\nexport default Button;\n"],"names":["normalizedVariantProperties","props","variant","size","color","vls","Button","React","ref","disabled","className","asChild","title","tooltip","tooltipProps","message","loading","children","startAdornment","endAdornment","screenReader","rest","Comp","Slot","msg","content","jsxs","Fragment","jsx","LoadedIcon","renderInnerIcon","cmp","cn","buttonVariants","Tooltip"],"mappings":";;;;;;;;;AAWA,MAAMA,IAA8B,CAACC,MAAoD;AACvF,QAAM,EAAE,SAAAC,GAAS,MAAAC,GAAM,OAAAC,EAAA,IAAUH,GAC3BI,IAAM,EAAE,OAAAD,GAAO,SAAAF,GAAS,MAAAC,EAAA;AAC9B,MAAKD,MAAuB;AAC1B,mBAAQ,KAAK,+FAA+F,GAC5GG,EAAI,UAAU,aACdA,EAAI,QAAQ,WACLA;AAET,MAAKF,MAAoB;AACvB,mBAAQ,KAAK,iFAAiF,GAC9FE,EAAI,UAAU,aACdA,EAAI,QAAQ,aACLA;AAGT,MAAKH,MAAuB;AAC1B,kBAAQ,KAAK,6EAA6E,GACpF,IAAI,MAAM,6EAA6E;AAE/F,SAAKA,MAAuB,aAC1B,QAAQ,KAAK,8FAA8F,GAC3GG,EAAI,UAAU,YACdA,EAAI,QAAQ,WACLA,KAEJH,MAAuB,eAC1B,QAAQ,KAAK,mGAAmG,GAChHG,EAAI,UAAU,aACdA,EAAI,QAAQ,aACLA,MAEJH,MAAuB,kBAC1B,QAAQ,KAAK,iGAAiG,GAC9GG,EAAI,UAAU,aACdA,EAAI,QAAQ,UACLA;AAGX,GAkEaC,IAASC,EAAM;AAAA,EAC1B,CAACN,GAAOO,MAAQ;AACd,UAAM;AAAA,MACJ,UAAAC;AAAA,MACA,WAAAC;AAAA,MACA,SAAAR;AAAA,MACA,OAAAE;AAAA,MACA,MAAAD;AAAA,MACA,SAAAQ,IAAU;AAAA,MACV,OAAAC,IAAQ;AAAA,MACR,SAAAC;AAAA,MACA,cAAAC,IAAe,CAAA;AAAA,MACf,SAAAC;AAAA,MACA,SAAAC,IAAU;AAAA,MACV,UAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,cAAAC;AAAA,MACA,cAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACDpB,GACEqB,IAAOX,IAAUY,IAAO,UACxBC,IAAMT,KAAWF,KAAWD,GAE5Ba,IAAUd,IACZM,IAEA,gBAAAS,EAAAC,GAAA,EACG,UAAA;AAAA,MAAA,CAAC,CAACT,KACD,gBAAAU,EAACC,GAAA,EAAW,SAAAb,GAAkB,MAAAb,GAC3B,UAAA2B,EAAgBZ,CAAc,GACjC;AAAA,MAGDD;AAAA,MAEA,CAAC,CAACE,KACD,gBAAAS,EAACC,KAAW,SAAAb,GAAkB,MAAAb,GAC3B,UAAA2B,EAAgBX,CAAY,GAC/B;AAAA,MAGD,CAAC,CAACC,KAAgB,gBAAAQ,EAAC,QAAA,EAAK,WAAU,WAAW,UAAA,OAAOR,KAAiB,WAAWA,IAAeA,EAAa,KAAA,CAAK;AAAA,IAAA,GACpH,GAGEW,IACJ,gBAAAH;AAAA,MAACN;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAAd;AAAA,QACA,UAAAC;AAAA,QACA,WAAWuB;AAAA,UACTC,EAAe;AAAA,YACb,GAAGjC,EAA4B,EAAE,SAAAE,GAAS,MAAAC,GAAM,OAAAC,GAAO;AAAA,YACvD,WAAAM;AAAA,UAAA,CACD;AAAA,UACDM,KAAW;AAAA,QAAA;AAAA,QAEZ,GAAGK;AAAA,QAEH,UAAAI;AAAA,MAAA;AAAA,IAAA;AAIL,WAAKD,IAEH,gBAAAI;AAAA,MAACM;AAAA,MAAA;AAAA,QACE,GAAIpB,KAAgB,CAAA;AAAA,QACrB,MAAMA,EAAa,SAASL,KAAYO,KAAW,CAACQ,KAAO,KAAQ;AAAA,QACnE,SAASA;AAAA,QAER,UAAAO;AAAA,MAAA;AAAA,IAAA,IAPYA;AAAA,EAUnB;AACF;AACAzB,EAAO,cAAc;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ButtonIconType } from './Button.types';
|
|
2
|
+
export declare const renderInnerIcon: (Icon?: ButtonIconType) => import('react').ReactElement<import('react').SVGProps<SVGSVGElement>, string | import('react').JSXElementConstructor<any>> | null;
|
|
3
|
+
//# sourceMappingURL=Button.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.utils.d.ts","sourceRoot":"","sources":["../../src/Button/Button.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,eAAO,MAAM,eAAe,GAAI,OAAO,cAAc,sIAQpD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { isValidElement as t, createElement as n, cloneElement as i } from "react";
|
|
2
|
+
const o = (e) => {
|
|
3
|
+
if (!e) return null;
|
|
4
|
+
if (t(e)) return e;
|
|
5
|
+
const r = n(e);
|
|
6
|
+
return i(r, {
|
|
7
|
+
strokeWidth: 1.5,
|
|
8
|
+
...r.props
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
o as renderInnerIcon
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=Button.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.utils.js","sources":["../../src/Button/Button.utils.ts"],"sourcesContent":["import { ButtonIconType } from \"./Button.types\";\nimport { cloneElement, createElement, isValidElement } from \"react\";\n\nexport const renderInnerIcon = (Icon?: ButtonIconType) => {\n if (!Icon) return null;\n if (isValidElement(Icon)) return Icon;\n const icon = createElement(Icon);\n return cloneElement(icon, {\n strokeWidth: 1.5,\n ...icon.props,\n });\n};\n"],"names":["renderInnerIcon","Icon","isValidElement","icon","createElement","cloneElement"],"mappings":";AAGO,MAAMA,IAAkB,CAACC,MAA0B;AACxD,MAAI,CAACA,EAAM,QAAO;AAClB,MAAIC,EAAeD,CAAI,EAAG,QAAOA;AACjC,QAAME,IAAOC,EAAcH,CAAI;AAC/B,SAAOI,EAAaF,GAAM;AAAA,IACxB,aAAa;AAAA,IACb,GAAGA,EAAK;AAAA,EAAA,CACT;AACH;"}
|
package/Button/index.d.ts
CHANGED
package/Button/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,gBAAgB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
package/Button/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { Button as
|
|
2
|
-
import { buttonBadgeVariants as
|
|
1
|
+
import { Button as r, Button as n } from "./Button.js";
|
|
2
|
+
import { buttonBadgeVariants as a, buttonVariants as u } from "./buttonVariants.js";
|
|
3
|
+
import { renderInnerIcon as d } from "./Button.utils.js";
|
|
3
4
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
n as default
|
|
5
|
+
r as Button,
|
|
6
|
+
a as buttonBadgeVariants,
|
|
7
|
+
u as buttonVariants,
|
|
8
|
+
n as default,
|
|
9
|
+
d as renderInnerIcon
|
|
8
10
|
};
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/Button/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonIcon.d.ts","sourceRoot":"","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ButtonIcon.d.ts","sourceRoot":"","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,UAAU,2FAgFtB,CAAA;AAED,eAAe,UAAU,CAAC"}
|
package/ButtonIcon/ButtonIcon.js
CHANGED
|
@@ -1,80 +1,82 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import * as
|
|
3
|
-
import {
|
|
4
|
-
import { cn as V } from "@oneplatformdev/utils";
|
|
1
|
+
import { jsxs as f, Fragment as C, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import * as R from "react";
|
|
3
|
+
import { cn as j } from "@oneplatformdev/utils";
|
|
5
4
|
import { buttonIconVariants as w } from "./buttonIconVariants.js";
|
|
6
5
|
import { Slot as z } from "@radix-ui/react-slot";
|
|
7
6
|
import "@radix-ui/react-tooltip";
|
|
8
7
|
import { Tooltip as F } from "../Tooltip/Tooltip.js";
|
|
9
8
|
import { LoadedIcon as L } from "../LoadedIcon/LoadedIcon.js";
|
|
10
9
|
import { ButtonCounterBadge as P } from "../Button/ButtonCounterBadge.js";
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
import "../Button/Button.js";
|
|
11
|
+
import "../Button/buttonVariants.js";
|
|
12
|
+
import { renderInnerIcon as S } from "../Button/Button.utils.js";
|
|
13
|
+
const T = R.forwardRef(
|
|
14
|
+
(g, h) => {
|
|
13
15
|
const {
|
|
14
|
-
asChild:
|
|
15
|
-
children:
|
|
16
|
+
asChild: i,
|
|
17
|
+
children: a,
|
|
16
18
|
icon: b,
|
|
17
|
-
disabled:
|
|
19
|
+
disabled: r = !1,
|
|
18
20
|
loading: n = !1,
|
|
19
21
|
message: y,
|
|
20
|
-
title:
|
|
21
|
-
tooltipProps:
|
|
22
|
-
className:
|
|
22
|
+
title: I = "",
|
|
23
|
+
tooltipProps: m = {},
|
|
24
|
+
className: x,
|
|
23
25
|
variant: c,
|
|
24
26
|
color: p,
|
|
25
|
-
size:
|
|
26
|
-
rounded:
|
|
27
|
+
size: e,
|
|
28
|
+
rounded: l,
|
|
27
29
|
screenReader: o,
|
|
28
|
-
counter:
|
|
29
|
-
...
|
|
30
|
-
} =
|
|
31
|
-
/* @__PURE__ */
|
|
32
|
-
S(b) ??
|
|
33
|
-
/* @__PURE__ */
|
|
30
|
+
counter: B,
|
|
31
|
+
...N
|
|
32
|
+
} = g, v = i ? z : "button", s = y || I, d = i ? a : /* @__PURE__ */ f(C, { children: [
|
|
33
|
+
/* @__PURE__ */ f(L, { loading: n, size: e, children: [
|
|
34
|
+
S(b) ?? a,
|
|
35
|
+
/* @__PURE__ */ t(
|
|
34
36
|
P,
|
|
35
37
|
{
|
|
36
|
-
counter:
|
|
38
|
+
counter: B,
|
|
37
39
|
variant: c,
|
|
38
40
|
color: p,
|
|
39
|
-
size:
|
|
40
|
-
disabled:
|
|
41
|
-
rounded:
|
|
41
|
+
size: e,
|
|
42
|
+
disabled: r,
|
|
43
|
+
rounded: l
|
|
42
44
|
}
|
|
43
45
|
)
|
|
44
46
|
] }),
|
|
45
|
-
!!o && /* @__PURE__ */
|
|
47
|
+
!!o && /* @__PURE__ */ t("span", { className: "sr-only", children: typeof o == "string" ? o : o.text })
|
|
46
48
|
] });
|
|
47
49
|
if (!d) return null;
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
+
const u = /* @__PURE__ */ t(
|
|
51
|
+
v,
|
|
50
52
|
{
|
|
51
53
|
type: "button",
|
|
52
54
|
ref: h,
|
|
53
|
-
disabled:
|
|
54
|
-
className:
|
|
55
|
+
disabled: r,
|
|
56
|
+
className: j(
|
|
55
57
|
"group group/button group/button-icon",
|
|
56
58
|
w({
|
|
57
59
|
variant: c,
|
|
58
|
-
size:
|
|
60
|
+
size: e,
|
|
59
61
|
color: p,
|
|
60
|
-
rounded:
|
|
61
|
-
className:
|
|
62
|
+
rounded: l,
|
|
63
|
+
className: x
|
|
62
64
|
}),
|
|
63
65
|
n && "pointer-events-none opacity-80"
|
|
64
66
|
),
|
|
65
|
-
...
|
|
67
|
+
...N,
|
|
66
68
|
children: d
|
|
67
69
|
}
|
|
68
70
|
);
|
|
69
|
-
return
|
|
71
|
+
return s ? /* @__PURE__ */ t(
|
|
70
72
|
F,
|
|
71
73
|
{
|
|
72
|
-
...
|
|
73
|
-
open:
|
|
74
|
-
message:
|
|
75
|
-
children:
|
|
74
|
+
...m || {},
|
|
75
|
+
open: m.open ?? (r || n || !s) ? !1 : void 0,
|
|
76
|
+
message: s,
|
|
77
|
+
children: u
|
|
76
78
|
}
|
|
77
|
-
) :
|
|
79
|
+
) : u;
|
|
78
80
|
}
|
|
79
81
|
);
|
|
80
82
|
T.displayName = "Button";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonIcon.js","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { buttonIconVariants } from './buttonIconVariants';\nimport { ButtonIconProps } from './ButtonIcon.types';\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { Tooltip } from '../Tooltip';\nimport { LoadedIcon } from \"../LoadedIcon\";\nimport {
|
|
1
|
+
{"version":3,"file":"ButtonIcon.js","sources":["../../src/ButtonIcon/ButtonIcon.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { buttonIconVariants } from './buttonIconVariants';\nimport { ButtonIconProps } from './ButtonIcon.types';\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { Tooltip } from '../Tooltip';\nimport { LoadedIcon } from \"../LoadedIcon\";\nimport { ButtonCounterBadge } from \"../Button/ButtonCounterBadge\";\nimport { renderInnerIcon } from \"../Button\";\n\n/**\n * Icon-only version of the Button component.\n *\n * `ButtonIcon` is used for compact actions represented by an icon instead of text.\n * Supports all core features of Button: variants, sizes, tooltips, disabled and loading state.\n *\n * @public\n * @see [Documentation](#) // TODO: add link to docs\n *\n * @example\n * > Import:\n * ```tsx\n * import { ButtonIcon } from '@oneplatformdev/ui/ButtonIcon';\n * ```\n * > Basic usage by icon:\n * ```tsx\n *<ButtonIcon icon={<PlusIcon />}/>\n *<ButtonIcon icon={PlusIcon}/>\n * ```\n * > Basic usage by children:\n * ```tsx\n *<ButtonIcon>\n * <PlusIcon />\n *</ButtonIcon>\n * ```\n * > With variant & color:\n * ```tsx\n *<ButtonIcon variant=\"outline\" color=\"primary\">\n * <Search />\n *</ButtonIcon>\n * ```\n * > With tooltip message:\n * ```tsx\n *<ButtonIcon message=\"Edit item\">\n * <PencilLine />\n *</ButtonIcon>\n * ```\n * > Loading state:\n * ```tsx\n *<ButtonIcon loading>\n * <Trash2 />\n *</ButtonIcon>\n * ```\n * > Badge counter:\n * ```tsx\n *<ButtonIcon counter={5} icon={MessageCircleMoreIcon}/>\n *<ButtonIcon counter={{ count: 8 }} icon={MessageCircleMoreIcon}/>\n * ```\n *\n * @remarks\n * - Designed for icon-only usage. If you need text, use `Button`.\n * - Works with any SVG React component or element, e.g. lucide-react, heroicons, custom icons.\n *\n * @see {@link Button} for regular text buttons\n */\nexport const ButtonIcon = React.forwardRef<HTMLButtonElement, ButtonIconProps>(\n (props, ref) => {\n const {\n asChild,\n children,\n icon,\n disabled = false,\n loading = false,\n message,\n title = '',\n tooltipProps = {},\n className,\n variant,\n color,\n size,\n rounded,\n screenReader,\n counter,\n ...rest\n } = props;\n\n const Comp = asChild ? Slot : \"button\"\n const msg = message || title;\n\n const content = asChild\n ? children\n : (\n <>\n <LoadedIcon loading={loading} size={size}>\n {renderInnerIcon(icon) ?? children}\n <ButtonCounterBadge\n counter={counter}\n variant={variant}\n color={color}\n size={size}\n disabled={disabled}\n rounded={rounded}\n />\n </LoadedIcon>\n\n {!!screenReader && (\n <span className=\"sr-only\">\n {typeof screenReader === 'string' ? screenReader : screenReader.text}\n </span>\n )}\n </>\n )\n\n if (!content) return null;\n\n const cmp = (\n <Comp\n type='button'\n ref={ref}\n disabled={disabled}\n className={cn(\n 'group group/button group/button-icon',\n buttonIconVariants({\n variant, size, color, rounded,\n className\n }),\n loading && 'pointer-events-none opacity-80',\n )}\n {...rest}\n >\n {content}\n </Comp>\n )\n\n if (!msg) return cmp\n return (\n <Tooltip\n {...(tooltipProps || {})}\n open={tooltipProps.open ?? (disabled || loading || !msg) ? false : undefined}\n message={msg}\n >\n {cmp}\n </Tooltip>\n )\n }\n)\nButtonIcon.displayName = \"Button\"\nexport default ButtonIcon;\n"],"names":["ButtonIcon","React","props","ref","asChild","children","icon","disabled","loading","message","title","tooltipProps","className","variant","color","size","rounded","screenReader","counter","rest","Comp","Slot","msg","content","jsxs","Fragment","LoadedIcon","renderInnerIcon","jsx","ButtonCounterBadge","cmp","cn","buttonIconVariants","Tooltip"],"mappings":";;;;;;;;;;;;AAmEO,MAAMA,IAAaC,EAAM;AAAA,EAC9B,CAACC,GAAOC,MAAQ;AACd,UAAM;AAAA,MACJ,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,MAAAC;AAAA,MACA,UAAAC,IAAW;AAAA,MACX,SAAAC,IAAU;AAAA,MACV,SAAAC;AAAA,MACA,OAAAC,IAAQ;AAAA,MACR,cAAAC,IAAe,CAAA;AAAA,MACf,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,OAAAC;AAAA,MACA,MAAAC;AAAA,MACA,SAAAC;AAAA,MACA,cAAAC;AAAA,MACA,SAAAC;AAAA,MACA,GAAGC;AAAA,IAAA,IACDjB,GAEEkB,IAAOhB,IAAUiB,IAAO,UACxBC,IAAMb,KAAWC,GAEjBa,IAAUnB,IACZC,IAEA,gBAAAmB,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAW,SAAAlB,GAAkB,MAAAO,GAC3B,UAAA;AAAA,QAAAY,EAAgBrB,CAAI,KAAKD;AAAA,QAC1B,gBAAAuB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,SAAAX;AAAA,YACA,SAAAL;AAAA,YACA,OAAAC;AAAA,YACA,MAAAC;AAAA,YACA,UAAAR;AAAA,YACA,SAAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,GACF;AAAA,MAEC,CAAC,CAACC,KACD,gBAAAW,EAAC,QAAA,EAAK,WAAU,WACb,UAAA,OAAOX,KAAiB,WAAWA,IAAeA,EAAa,KAAA,CAClE;AAAA,IAAA,GAEJ;AAGJ,QAAI,CAACM,EAAS,QAAO;AAErB,UAAMO,IACJ,gBAAAF;AAAA,MAACR;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAAjB;AAAA,QACA,UAAAI;AAAA,QACA,WAAWwB;AAAA,UACT;AAAA,UACAC,EAAmB;AAAA,YACjB,SAAAnB;AAAA,YAAS,MAAAE;AAAA,YAAM,OAAAD;AAAA,YAAO,SAAAE;AAAA,YACtB,WAAAJ;AAAA,UAAA,CACD;AAAA,UACDJ,KAAW;AAAA,QAAA;AAAA,QAEZ,GAAGW;AAAA,QAEH,UAAAI;AAAA,MAAA;AAAA,IAAA;AAIL,WAAKD,IAEH,gBAAAM;AAAA,MAACK;AAAA,MAAA;AAAA,QACE,GAAItB,KAAgB,CAAA;AAAA,QACrB,MAAMA,EAAa,SAASJ,KAAYC,KAAW,CAACc,KAAO,KAAQ;AAAA,QACnE,SAASA;AAAA,QAER,UAAAQ;AAAA,MAAA;AAAA,IAAA,IAPYA;AAAA,EAUnB;AACF;AACA9B,EAAW,cAAc;"}
|