@trsys-tech/matrix-library 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/badge.es.js.map +1 -1
- package/dist/breadcrumb.es.js.map +1 -1
- package/dist/button.es.js.map +1 -1
- package/dist/calendar.es.js.map +1 -1
- package/dist/card.es.js.map +1 -1
- package/dist/chip.es.js.map +1 -1
- package/dist/collapsible.es.js.map +1 -1
- package/dist/combobox.es.js +84 -32
- package/dist/combobox.es.js.map +1 -1
- package/dist/command.es.js +60 -47
- package/dist/command.es.js.map +1 -1
- package/dist/components/badge/Badge.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/card/Card.d.ts.map +1 -1
- package/dist/components/chip/Chip.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +68 -59
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/command/Command.d.ts +5 -2
- package/dist/components/command/Command.d.ts.map +1 -1
- package/dist/components/confirm/Confirm.d.ts.map +1 -1
- package/dist/components/data-grid/DataGrid.d.ts.map +1 -1
- package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DesktopTimePicker.d.ts.map +1 -1
- package/dist/components/date-picker/MobileTimePicker.d.ts.map +1 -1
- package/dist/components/date-picker/TimePicker.d.ts.map +1 -1
- package/dist/components/date-picker/calendar.d.ts.map +1 -1
- package/dist/components/dialog/Dialog.d.ts.map +1 -1
- package/dist/components/form/Form.d.ts.map +1 -1
- package/dist/components/form-checkbox/FormCheckbox.d.ts.map +1 -1
- package/dist/components/form-combobox/FormCombobox.d.ts +2 -7
- package/dist/components/form-combobox/FormCombobox.d.ts.map +1 -1
- package/dist/components/form-date-picker/FormDatePicker.d.ts.map +1 -1
- package/dist/components/form-date-range-picker/FormDateRangePicker.d.ts.map +1 -1
- package/dist/components/form-input/FormInput.d.ts.map +1 -1
- package/dist/components/form-multi-select/FormMultiSelect.d.ts.map +1 -1
- package/dist/components/form-rating/FormRating.d.ts.map +1 -1
- package/dist/components/form-select/FormSelect.d.ts.map +1 -1
- package/dist/components/form-switch/FormSwitch.d.ts.map +1 -1
- package/dist/components/form-textarea/FormTextarea.d.ts.map +1 -1
- package/dist/components/form-time-picker/FormTimePicker.d.ts.map +1 -1
- package/dist/components/icon-botton/IconButton.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/text-field/TextField.d.ts +2 -2
- package/dist/components/text-field/TextField.d.ts.map +1 -1
- package/dist/components/toast/Toast.d.ts.map +1 -1
- package/dist/components/toast/toast-components.d.ts.map +1 -1
- package/dist/components/toast/use-toast.d.ts.map +1 -1
- package/dist/confirm.es.js.map +1 -1
- package/dist/datagrid.es.js +41 -41
- package/dist/datagrid.es.js.map +1 -1
- package/dist/datepicker.es.js.map +1 -1
- package/dist/daterangepicker.es.js.map +1 -1
- package/dist/desktopdatepicker.es.js +33 -33
- package/dist/desktopdatepicker.es.js.map +1 -1
- package/dist/desktopdaterangepicker.es.js +33 -33
- package/dist/desktopdaterangepicker.es.js.map +1 -1
- package/dist/desktoptimepicker.es.js +27 -23
- package/dist/desktoptimepicker.es.js.map +1 -1
- package/dist/dialog.es.js.map +1 -1
- package/dist/form.es.js.map +1 -1
- package/dist/formcheckbox.es.js +4 -4
- package/dist/formcheckbox.es.js.map +1 -1
- package/dist/formcombobox.es.js +46 -103
- package/dist/formcombobox.es.js.map +1 -1
- package/dist/formdatepicker.es.js +11 -11
- package/dist/formdatepicker.es.js.map +1 -1
- package/dist/formdaterangepicker.es.js +12 -12
- package/dist/formdaterangepicker.es.js.map +1 -1
- package/dist/forminput.es.js +8 -8
- package/dist/forminput.es.js.map +1 -1
- package/dist/formmultiselect.es.js +10 -10
- package/dist/formmultiselect.es.js.map +1 -1
- package/dist/formrating.es.js +21 -21
- package/dist/formrating.es.js.map +1 -1
- package/dist/formselect.es.js +11 -11
- package/dist/formselect.es.js.map +1 -1
- package/dist/formswitch.es.js +7 -7
- package/dist/formswitch.es.js.map +1 -1
- package/dist/formtextarea.es.js +5 -5
- package/dist/formtextarea.es.js.map +1 -1
- package/dist/formtimepicker.es.js +5 -5
- package/dist/formtimepicker.es.js.map +1 -1
- package/dist/iconbutton.es.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +205 -193
- package/dist/index.es.js.map +1 -1
- package/dist/mobiledatepicker.es.js +38 -38
- package/dist/mobiledatepicker.es.js.map +1 -1
- package/dist/mobiledaterangepicker.es.js +51 -51
- package/dist/mobiledaterangepicker.es.js.map +1 -1
- package/dist/mobiletimepicker.es.js +30 -26
- package/dist/mobiletimepicker.es.js.map +1 -1
- package/dist/modal.es.js.map +1 -1
- package/dist/multiselect.es.js +114 -106
- package/dist/multiselect.es.js.map +1 -1
- package/dist/select.es.js +1 -1
- package/dist/select.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/tabs.es.js.map +1 -1
- package/dist/textfield.es.js +12 -11
- package/dist/textfield.es.js.map +1 -1
- package/dist/timepicker.es.js.map +1 -1
- package/dist/toast-components.es.js.map +1 -1
- package/dist/toast.es.js.map +1 -1
- package/dist/use-toast.es.js.map +1 -1
- package/package.json +1 -1
package/dist/tabs.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.es.js","sources":["../src/components/tabs/Tabs.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"tabs.es.js","sources":["../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Content, List, Root, TabsContentProps, TabsListProps, TabsProps, TabsTriggerProps, Trigger } from \"@radix-ui/react-tabs\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Tabs = Root;\r\n\r\nconst TabsList = React.forwardRef<React.ElementRef<typeof List>, React.ComponentPropsWithoutRef<typeof List>>(({ className, ...props }, ref) => (\r\n <List\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex h-12 w-full overflow-auto thin-scrollbar items-center justify-start bg-background p-0 text-muted-foreground md:[box-shadow:inset_0_-1px_0_hsl(var(--gray-300))]\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsList.displayName = List.displayName;\r\n\r\nconst TabsTrigger = React.forwardRef<React.ElementRef<typeof Trigger>, React.ComponentPropsWithoutRef<typeof Trigger>>(\r\n ({ className, ...props }, ref) => (\r\n <Trigger\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center whitespace-nowrap h-full px-3 py-1 text-sm font-medium disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground data-[state=active]:font-bold data-[state=active]:border-b-2 data-[state=active]:border-primary\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n ),\r\n);\r\nTabsTrigger.displayName = Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<React.ElementRef<typeof Content>, React.ComponentPropsWithoutRef<typeof Content>>(\r\n ({ className, ...props }, ref) => <Content ref={ref} className={cn(\"mt-2\", className)} {...props} />,\r\n);\r\nTabsContent.displayName = Content.displayName;\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent, type TabsProps, type TabsListProps, type TabsTriggerProps, type TabsContentProps };\r\n"],"names":["Tabs","Root","TabsList","React","className","props","ref","jsx","List","cn","TabsTrigger","Trigger","TabsContent","Content"],"mappings":";;;;AAMA,MAAMA,IAAOC,GAEPC,IAAWC,EAAM,WAAuF,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MACtI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcM,EAAK;AAE5B,MAAME,IAAcP,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAAL;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAL;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAK,EAAY,cAAcC,EAAQ;AAElC,MAAMC,IAAcT,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MAAQ,gBAAAC,EAACM,GAAQ,EAAA,KAAAP,GAAU,WAAWG,EAAG,QAAQL,CAAS,GAAI,GAAGC,EAAO,CAAA;AACpG;AACAO,EAAY,cAAcC,EAAQ;"}
|
package/dist/textfield.es.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { jsxs as x, jsx as
|
|
1
|
+
import { jsxs as x, jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import * as c from "react";
|
|
3
3
|
import { tv as b } from "tailwind-variants";
|
|
4
|
-
import { cn as
|
|
4
|
+
import { cn as o } from "./utils.es.js";
|
|
5
5
|
const g = b({
|
|
6
6
|
base: "flex items-center w-full rounded-sm border border-input text-gray-800 bg-transparent p-0 text-xs font-medium shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-text-300 hover:border-primary-400 focus-within:border-primary-400 focus-within:outline-none focus-within:ring focus-within:ring-primary-100 disabled:cursor-not-allowed disabled:text-text-300 disabled:bg-gray-100 disabled:border-gray-100",
|
|
7
7
|
variants: {
|
|
8
8
|
size: {
|
|
9
9
|
sm: "h-7",
|
|
10
|
-
md: "h-
|
|
10
|
+
md: "h-8",
|
|
11
11
|
lg: "h-11"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -15,25 +15,26 @@ const g = b({
|
|
|
15
15
|
size: "md"
|
|
16
16
|
}
|
|
17
17
|
}), h = c.forwardRef(
|
|
18
|
-
({ className:
|
|
19
|
-
|
|
20
|
-
/* @__PURE__ */
|
|
18
|
+
({ className: n, slotProps: t, suffix: e, endAdornment: s, startAdornment: r, size: a, value: l, onChange: d, defaultValue: m, type: p, ...f }, u) => /* @__PURE__ */ x("div", { ...f, className: o(g({ size: a, className: n })), children: [
|
|
19
|
+
r,
|
|
20
|
+
/* @__PURE__ */ i(
|
|
21
21
|
"input",
|
|
22
22
|
{
|
|
23
|
-
type:
|
|
23
|
+
type: p,
|
|
24
24
|
ref: u,
|
|
25
25
|
onChange: d,
|
|
26
26
|
value: l,
|
|
27
27
|
defaultValue: m,
|
|
28
28
|
...t?.inputProps ?? {},
|
|
29
|
-
className:
|
|
30
|
-
"focus:outline-none w-full h-full
|
|
29
|
+
className: o(
|
|
30
|
+
"focus:outline-none w-full h-full py-1 rounded-sm file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-text-300",
|
|
31
|
+
r ? "ps-1 pe-3" : "px-3",
|
|
31
32
|
t?.inputProps?.className
|
|
32
33
|
)
|
|
33
34
|
}
|
|
34
35
|
),
|
|
35
|
-
typeof e == "string" || typeof e == "number" ? /* @__PURE__ */
|
|
36
|
-
|
|
36
|
+
typeof e == "string" || typeof e == "number" ? /* @__PURE__ */ i("span", { className: "inline-flex items-center px-2 text-xs font-medium text-primary bg-primary-50 m-0.5 rounded-sm", children: e }) : e,
|
|
37
|
+
s
|
|
37
38
|
] })
|
|
38
39
|
);
|
|
39
40
|
h.displayName = "TextField";
|
package/dist/textfield.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textfield.es.js","sources":["../src/components/text-field/TextField.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"textfield.es.js","sources":["../src/components/text-field/TextField.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst textFieldVariants = tv({\r\n base: \"flex items-center w-full rounded-sm border border-input text-gray-800 bg-transparent p-0 text-xs font-medium shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-text-300 hover:border-primary-400 focus-within:border-primary-400 focus-within:outline-none focus-within:ring focus-within:ring-primary-100 disabled:cursor-not-allowed disabled:text-text-300 disabled:bg-gray-100 disabled:border-gray-100\",\r\n variants: {\r\n size: {\r\n sm: \"h-7\",\r\n md: \"h-8\",\r\n lg: \"h-11\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface TextFieldProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof textFieldVariants> {\r\n type?: React.HTMLInputTypeAttribute;\r\n suffix?: React.ReactNode;\r\n endAdornment?: React.ReactNode;\r\n startAdornment?: React.ReactNode;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\r\n value?: string | number;\r\n defaultValue?: string | number;\r\n slotProps?: {\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\r\n };\r\n}\r\n\r\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\r\n ({ className, slotProps, suffix, endAdornment, startAdornment, size, value, onChange, defaultValue, type, ...props }, ref) => {\r\n return (\r\n <div {...props} className={cn(textFieldVariants({ size, className }))}>\r\n {startAdornment}\r\n <input\r\n type={type}\r\n ref={ref}\r\n onChange={onChange}\r\n value={value}\r\n defaultValue={defaultValue}\r\n {...(slotProps?.inputProps ?? {})}\r\n className={cn(\r\n \"focus:outline-none w-full h-full py-1 rounded-sm file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-text-300\",\r\n !startAdornment ? \"px-3\" : \"ps-1 pe-3\",\r\n slotProps?.inputProps?.className,\r\n )}\r\n />\r\n {typeof suffix === \"string\" || typeof suffix === \"number\" ? (\r\n <span className=\"inline-flex items-center px-2 text-xs font-medium text-primary bg-primary-50 m-0.5 rounded-sm\">{suffix}</span>\r\n ) : (\r\n suffix\r\n )}\r\n {endAdornment}\r\n </div>\r\n );\r\n },\r\n);\r\nTextField.displayName = \"TextField\";\r\n\r\nexport { TextField, type TextFieldProps };\r\n"],"names":["textFieldVariants","tv","TextField","React","className","slotProps","suffix","endAdornment","startAdornment","size","value","onChange","defaultValue","type","props","ref","jsxs","cn","jsx"],"mappings":";;;;AAOA,MAAMA,IAAoBC,EAAG;AAAA,EAC3B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EAER;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAeKC,IAAYC,EAAM;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,WAAAC,GAAW,QAAAC,GAAQ,cAAAC,GAAc,gBAAAC,GAAgB,MAAAC,GAAM,OAAAC,GAAO,UAAAC,GAAU,cAAAC,GAAc,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAEjH,gBAAAC,EAAA,OAAA,EAAK,GAAGF,GAAO,WAAWG,EAAGjB,EAAkB,EAAE,MAAAS,GAAM,WAAAL,GAAW,CAAC,GACjE,UAAA;AAAA,IAAAI;AAAA,IACD,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAAL;AAAA,QACA,KAAAE;AAAA,QACA,UAAAJ;AAAA,QACA,OAAAD;AAAA,QACA,cAAAE;AAAA,QACC,GAAIP,GAAW,cAAc,CAAC;AAAA,QAC/B,WAAWY;AAAA,UACT;AAAA,UACCT,IAA0B,cAAT;AAAA,UAClBH,GAAW,YAAY;AAAA,QAAA;AAAA,MACzB;AAAA,IACF;AAAA,IACC,OAAOC,KAAW,YAAY,OAAOA,KAAW,WAC/C,gBAAAY,EAAC,QAAK,EAAA,WAAU,iGAAiG,UAAAZ,EAAA,CAAO,IAExHA;AAAA,IAEDC;AAAA,EAAA,GACH;AAGN;AACAL,EAAU,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timepicker.es.js","sources":["../src/components/date-picker/TimePicker.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"timepicker.es.js","sources":["../src/components/date-picker/TimePicker.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React from \"react\";\r\n\r\nimport { Time } from \"./TimePickerContent\";\r\nimport { useIsMobile } from \"../../lib/hooks/use-mobile\";\r\nimport { MobileTimePicker, MobileTimePickerProps } from \"./MobileTimePicker\";\r\nimport { DesktopTimePicker, DesktopTimePickerProps } from \"./DesktopTimePicker\";\r\n\r\ntype TimePickerProps = DesktopTimePickerProps & {};\r\n\r\nconst TimePicker: React.FC<TimePickerProps> = props => {\r\n const isMobile = useIsMobile();\r\n\r\n return isMobile ? <MobileTimePicker {...props} /> : <DesktopTimePicker {...props} />;\r\n};\r\n\r\nexport { TimePicker, DesktopTimePicker, type DesktopTimePickerProps, MobileTimePicker, type MobileTimePickerProps, type TimePickerProps, type Time };\r\n"],"names":["TimePicker","props","useIsMobile","MobileTimePicker","jsx","DesktopTimePicker"],"mappings":";;;;AAWA,MAAMA,IAAwC,CAASC,MACpCC,EAAY,sBAEVC,GAAkB,EAAA,GAAGF,GAAO,IAAK,gBAAAG,EAACC,GAAmB,EAAA,GAAGJ,EAAO,CAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-components.es.js","sources":["../src/components/toast/toast-components.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"toast-components.es.js","sources":["../src/components/toast/toast-components.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { cn } from \"../../lib/utils\";\nimport { XMark } from \"@trsys-tech/matrix-icons\";\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\"fixed z-[100] flex flex-col-reverse gap-3 max-h-dscreen w-full p-4 top-0 right-0 md:max-w-[420px] \", className)}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = tv({\n base: \"group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-lg border p-4 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full\", // data-[state=open]:sm:slide-in-from-bottom-full\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n danger: \"danger group border-danger bg-danger-400 text-danger-800\",\n success: \"success group border-success bg-success-400 text-success-800\",\n warning: \"warning group border-warning bg-warning-400 text-warning-800\",\n info: \"info group border-info bg-info-400 text-info-700\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ntype ToastVariant = VariantProps<typeof toastVariants>[\"variant\"];\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\n});\nToast.displayName = ToastPrimitives.Root.displayName;\n\nconst ToastAction = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Action>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>>(\n ({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.danger]:border-muted/40 group-[.danger]:hover:border-danger/30 group-[.danger]:hover:bg-danger group-[.danger]:hover:text-danger-foreground group-[.danger]:focus:ring-danger\",\n className,\n )}\n {...props}\n />\n ),\n);\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\nconst ToastClose = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Close>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>>(\n ({ className, ...props }, ref) => (\n <ToastPrimitives.Close ref={ref} className={cn(\"focus:outline-none focus:ring-none\", className)} toast-close=\"\" {...props}>\n <XMark className=\"h-5 w-5\" />\n </ToastPrimitives.Close>\n ),\n);\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\nconst ToastTitle = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Title>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>>(\n ({ className, ...props }, ref) => (\n <ToastPrimitives.Title ref={ref} className={cn(\"text-xs font-semibold leading-5 [&+div]:text-xs\", className)} {...props} />\n ),\n);\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => <ToastPrimitives.Description ref={ref} className={cn(\"text-sm opacity-90\", className)} {...props} />);\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n type ToastProps,\n type ToastActionElement,\n type ToastVariant,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n"],"names":["ToastProvider","ToastPrimitives","ToastViewport","React","className","props","ref","jsx","cn","toastVariants","tv","Toast","variant","ToastAction","ToastClose","XMark","ToastTitle","ToastDescription"],"mappings":";;;;;;AASA,MAAMA,IAAgBC,EAAgB,UAEhCC,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE,EAAG,sGAAsGJ,CAAS;AAAA,IAC5H,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAc,cAAcD,EAAgB,SAAS;AAErD,MAAMQ,IAAgBC,EAAG;AAAA,EACvB,MAAM;AAAA;AAAA,EACN,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EAEV;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,EAAA;AAEb,CAAC,GAIKC,IAAQR,EAAM,WAGlB,CAAC,EAAE,WAAAC,GAAW,SAAAQ,GAAS,GAAGP,EAAM,GAAGC,MAC3B,gBAAAC,EAAAN,EAAgB,MAAhB,EAAqB,KAAAK,GAAU,WAAWE,EAAGC,EAAc,EAAE,SAAAG,GAAS,GAAGR,CAAS,GAAI,GAAGC,EAAO,CAAA,CACzG;AACDM,EAAM,cAAcV,EAAgB,KAAK;AAEzC,MAAMY,IAAcV,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAAK;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAQ,EAAY,cAAcZ,EAAgB,OAAO;AAEjD,MAAMa,IAAaX,EAAM;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAACN,EAAgB,OAAhB,EAAsB,KAAAK,GAAU,WAAWE,EAAG,sCAAsCJ,CAAS,GAAG,eAAY,IAAI,GAAGC,GAClH,UAAC,gBAAAE,EAAAQ,GAAA,EAAM,WAAU,UAAU,CAAA,EAC7B,CAAA;AAEJ;AACAD,EAAW,cAAcb,EAAgB,MAAM;AAE/C,MAAMe,IAAab,EAAM;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MACvB,gBAAAC,EAAAN,EAAgB,OAAhB,EAAsB,KAAAK,GAAU,WAAWE,EAAG,mDAAmDJ,CAAS,GAAI,GAAGC,EAAO,CAAA;AAE7H;AACAW,EAAW,cAAcf,EAAgB,MAAM;AAEzC,MAAAgB,IAAmBd,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ,gBAAAC,EAACN,EAAgB,aAAhB,EAA4B,KAAAK,GAAU,WAAWE,EAAG,sBAAsBJ,CAAS,GAAI,GAAGC,GAAO,CAAE;AACxIY,EAAiB,cAAchB,EAAgB,YAAY;"}
|
package/dist/toast.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.es.js","sources":["../src/components/toast/Toast.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"toast.es.js","sources":["../src/components/toast/Toast.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { Toast as Root, ToastClose, ToastProvider, ToastTitle, ToastViewport } from \"./toast-components\";\r\n\r\nimport { useToasts, toastParams } from \"./use-toast\";\r\nimport { InfoCircleIcon } from \"../Icons/InfoCircleIcon\";\r\nimport { SuccessCircleIcon } from \"../Icons/SuccessCircleIcon\";\r\nimport { WarningCircleIcon } from \"../Icons/WarningCircleIcon\";\r\nimport { DangerCircleIcon } from \"../Icons/DangerCircleIcon\";\r\nimport { ToastProviderProps, ToastViewportProps } from \"@radix-ui/react-toast\";\r\n\r\ntype ToastProps = {\r\n limit?: number;\r\n duration?: number;\r\n slotProps?: {\r\n providerProps?: ToastProviderProps;\r\n viewportProps?: ToastViewportProps;\r\n itemProps?: React.ComponentProps<typeof Root>;\r\n closeProps?: React.ComponentProps<typeof ToastClose>;\r\n titleProps?: React.ComponentProps<typeof ToastTitle>;\r\n };\r\n};\r\n\r\nfunction Toast({ limit = 3, duration = 5000, slotProps }: ToastProps) {\r\n const { toasts, removeToast } = useToasts();\r\n\r\n useEffect(() => {\r\n if (limit !== undefined) {\r\n toastParams.limit = limit;\r\n }\r\n }, [limit]);\r\n\r\n return (\r\n <ToastProvider duration={duration} {...(slotProps?.providerProps ?? {})}>\r\n {Array.from(toasts).map(([key, { message, variant }]) => {\r\n return (\r\n <Root\r\n key={key}\r\n variant={variant}\r\n onOpenChange={open => {\r\n if (!open) {\r\n setTimeout(() => removeToast(key), 100); // let the animation finish then remove the toast\r\n }\r\n }}\r\n {...(slotProps?.itemProps ?? {})}\r\n >\r\n <div className=\"flex gap-2 items-center\">\r\n <div>\r\n {variant === \"danger\" && <DangerCircleIcon className=\"w-5 h-5\" />}\r\n {variant === \"success\" && <SuccessCircleIcon className=\"w-5 h-5\" />}\r\n {variant === \"info\" && <InfoCircleIcon className=\"w-5 h-5\" />}\r\n {variant === \"warning\" && <WarningCircleIcon className=\"w-5 h-5\" />}\r\n </div>\r\n {message && <ToastTitle {...(slotProps?.titleProps ?? {})}>{message}</ToastTitle>}\r\n </div>\r\n <ToastClose {...(slotProps?.closeProps ?? {})} />\r\n {/* {action} */}\r\n </Root>\r\n );\r\n })}\r\n <ToastViewport />\r\n </ToastProvider>\r\n );\r\n}\r\nToast.displayName = \"Toast\";\r\n\r\nexport { Toast, type ToastProps };\r\n"],"names":["Toast","limit","duration","slotProps","toasts","removeToast","useToasts","useEffect","toastParams","ToastProvider","key","message","variant","jsxs","Root","open","jsx","DangerCircleIcon","SuccessCircleIcon","InfoCircleIcon","WarningCircleIcon","ToastTitle","ToastClose","ToastViewport"],"mappings":";;;;;;;;AAwBA,SAASA,EAAM,EAAE,OAAAC,IAAQ,GAAG,UAAAC,IAAW,KAAM,WAAAC,KAAyB;AACpE,QAAM,EAAE,QAAAC,GAAQ,aAAAC,EAAY,IAAIC,EAAU;AAE1C,SAAAC,EAAU,MAAM;AACd,IAAIN,MAAU,WACZO,EAAY,QAAQP;AAAA,EACtB,GACC,CAACA,CAAK,CAAC,qBAGPQ,GAAc,EAAA,UAAAP,GAAqB,GAAIC,GAAW,iBAAiB,CACjE,GAAA,UAAA;AAAA,IAAM,MAAA,KAAKC,CAAM,EAAE,IAAI,CAAC,CAACM,GAAK,EAAE,SAAAC,GAAS,SAAAC,EAAQ,CAAC,MAE/C,gBAAAC;AAAA,MAACC;AAAAA,MAAA;AAAA,QAEC,SAAAF;AAAA,QACA,cAAc,CAAQG,MAAA;AACpB,UAAKA,KACH,WAAW,MAAMV,EAAYK,CAAG,GAAG,GAAG;AAAA,QAE1C;AAAA,QACC,GAAIP,GAAW,aAAa,CAAC;AAAA,QAE9B,UAAA;AAAA,UAAC,gBAAAU,EAAA,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,YAAA,gBAAAA,EAAC,OACE,EAAA,UAAA;AAAA,cAAAD,MAAY,YAAY,gBAAAI,EAACC,GAAiB,EAAA,WAAU,WAAU;AAAA,cAC9DL,MAAY,aAAc,gBAAAI,EAAAE,GAAA,EAAkB,WAAU,WAAU;AAAA,cAChEN,MAAY,UAAW,gBAAAI,EAAAG,GAAA,EAAe,WAAU,WAAU;AAAA,cAC1DP,MAAY,aAAc,gBAAAI,EAAAI,GAAA,EAAkB,WAAU,UAAU,CAAA;AAAA,YAAA,GACnE;AAAA,YACCT,uBAAYU,GAAY,EAAA,GAAIlB,GAAW,cAAc,CAAA,GAAM,UAAQQ,EAAA,CAAA;AAAA,UAAA,GACtE;AAAA,4BACCW,GAAY,EAAA,GAAInB,GAAW,cAAc,CAAA,EAAK,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAlB1CO;AAAA,IAoBP,CAEH;AAAA,sBACAa,GAAc,CAAA,CAAA;AAAA,EAAA,GACjB;AAEJ;AACAvB,EAAM,cAAc;"}
|
package/dist/use-toast.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-toast.es.js","sources":["../src/components/toast/use-toast.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"use-toast.es.js","sources":["../src/components/toast/use-toast.ts"],"sourcesContent":["\"use client\";\r\n\r\nimport React from \"react\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { ToastVariant } from \"./toast-components\";\r\n\r\nconst toastParams = {\r\n limit: 3,\r\n};\r\n\r\ntype ToastInfo = {\r\n message: string;\r\n variant: ToastVariant;\r\n};\r\n\r\nconst toasts = new Map<string, ToastInfo>();\r\nconst listener: { setState: React.Dispatch<React.SetStateAction<Map<string, ToastInfo>>> } = { setState: () => {} };\r\n\r\nconst addToast = (toast: ToastInfo) => {\r\n if (toasts.size >= toastParams.limit) {\r\n toasts.delete(toasts.keys().next().value!);\r\n }\r\n\r\n toasts.set(uuidv4(), toast);\r\n\r\n listener.setState(new Map(toasts));\r\n\r\n return toasts;\r\n};\r\n\r\nconst removeToast = (id: string) => {\r\n toasts.delete(id);\r\n listener.setState(new Map(toasts));\r\n};\r\n\r\ntype ToastFunction = {\r\n (message: string): void;\r\n success: (message: string) => void;\r\n danger: (message: string) => void;\r\n warning: (message: string) => void;\r\n info: (message: string) => void;\r\n};\r\n\r\nconst toast: ToastFunction = (message: string) => addToast({ message, variant: \"default\" });\r\ntoast.success = (message: string) => addToast({ message, variant: \"success\" });\r\ntoast.danger = (message: string) => addToast({ message, variant: \"danger\" });\r\ntoast.warning = (message: string) => addToast({ message, variant: \"warning\" });\r\ntoast.info = (message: string) => addToast({ message, variant: \"info\" });\r\n\r\nconst useToasts = () => {\r\n const [state, setState] = React.useState(toasts);\r\n\r\n React.useEffect(() => {\r\n listener.setState = setState;\r\n return () => {\r\n listener.setState = () => {};\r\n };\r\n }, [state]);\r\n\r\n return { toast, toasts: state, addToast, removeToast };\r\n};\r\n\r\nexport { toast, useToasts, toastParams };\r\n"],"names":["toastParams","toasts","listener","addToast","toast","uuidv4","removeToast","id","message","useToasts","state","setState","React"],"mappings":";;AAOA,MAAMA,IAAc;AAAA,EAClB,OAAO;AACT,GAOMC,wBAAa,IAAuB,GACpCC,IAAuF,EAAE,UAAU,MAAM;AAAC,EAAE,GAE5GC,IAAW,CAACC,OACZH,EAAO,QAAQD,EAAY,SAC7BC,EAAO,OAAOA,EAAO,KAAA,EAAO,OAAO,KAAM,GAGpCA,EAAA,IAAII,EAAO,GAAGD,CAAK,GAE1BF,EAAS,SAAS,IAAI,IAAID,CAAM,CAAC,GAE1BA,IAGHK,IAAc,CAACC,MAAe;AAClC,EAAAN,EAAO,OAAOM,CAAE,GAChBL,EAAS,SAAS,IAAI,IAAID,CAAM,CAAC;AACnC,GAUMG,IAAuB,CAACI,MAAoBL,EAAS,EAAE,SAAAK,GAAS,SAAS,UAAW,CAAA;AAC1FJ,EAAM,UAAU,CAACI,MAAoBL,EAAS,EAAE,SAAAK,GAAS,SAAS,WAAW;AAC7EJ,EAAM,SAAS,CAACI,MAAoBL,EAAS,EAAE,SAAAK,GAAS,SAAS,UAAU;AAC3EJ,EAAM,UAAU,CAACI,MAAoBL,EAAS,EAAE,SAAAK,GAAS,SAAS,WAAW;AAC7EJ,EAAM,OAAO,CAACI,MAAoBL,EAAS,EAAE,SAAAK,GAAS,SAAS,QAAQ;AAEvE,MAAMC,IAAY,MAAM;AACtB,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAM,SAASX,CAAM;AAE/CW,SAAAA,EAAM,UAAU,OACdV,EAAS,WAAWS,GACb,MAAM;AACX,IAAAT,EAAS,WAAW,MAAM;AAAA,IAAC;AAAA,EAC7B,IACC,CAACQ,CAAK,CAAC,GAEH,EAAE,OAAAN,GAAO,QAAQM,GAAO,UAAAP,GAAU,aAAAG,EAAY;AACvD;"}
|