@fuf-stack/pixels 0.41.0 → 0.41.2

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/index.js CHANGED
@@ -14,6 +14,12 @@ import {
14
14
  Tabs_default,
15
15
  tabsVariants
16
16
  } from "./chunk-JZHEG3SM.js";
17
+ import {
18
+ Toast,
19
+ ToastProvider_default,
20
+ addToast,
21
+ toastVariants
22
+ } from "./chunk-ZMEVGJBC.js";
17
23
  import {
18
24
  Tooltip_default
19
25
  } from "./chunk-YXWPOEX6.js";
@@ -79,165 +85,7 @@ import {
79
85
  Button_default,
80
86
  buttonVariants
81
87
  } from "./chunk-MAKWBTTW.js";
82
- import {
83
- __spreadProps,
84
- __spreadValues
85
- } from "./chunk-J7N2552D.js";
86
-
87
- // src/Toast/addToast.tsx
88
- import { toast as heroToastVariants } from "@heroui/theme";
89
- import { addToast as heroAddToast } from "@heroui/toast";
90
- import { tv, variantsToClassNames } from "@fuf-stack/pixel-utils";
91
- var toastVariants = tv({
92
- slots: {
93
- base: "",
94
- title: "",
95
- description: "",
96
- icon: "",
97
- loadingIcon: "",
98
- content: "",
99
- motionDiv: "",
100
- progressTrack: "",
101
- progressIndicator: "",
102
- closeButton: "",
103
- closeIcon: ""
104
- },
105
- variants: {
106
- // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/toast.ts
107
- color: __spreadValues({
108
- info: {}
109
- }, heroToastVariants.variants.color),
110
- variant: __spreadValues({}, heroToastVariants.variants.variant)
111
- },
112
- compoundVariants: [
113
- ...heroToastVariants.compoundVariants,
114
- {
115
- variant: "solid",
116
- color: "info",
117
- className: {
118
- base: "bg-info text-info-foreground",
119
- title: "text-info-foreground",
120
- description: "text-info-foreground",
121
- icon: "text-info-foreground",
122
- closeIcon: "border-info-400 bg-info-100",
123
- closeButton: "text-info-400 hover:text-info-600",
124
- progressIndicator: "bg-info-400"
125
- }
126
- },
127
- {
128
- color: "info",
129
- variant: "flat",
130
- className: {
131
- base: "bg-info-50 text-info-600 dark:bg-info-50/50",
132
- title: "text-info-600",
133
- description: "text-info-500",
134
- icon: "text-info-600",
135
- closeIcon: "border-info-400 bg-info-100",
136
- closeButton: "text-info-400 hover:text-info-600",
137
- progressIndicator: "bg-info-400"
138
- }
139
- },
140
- {
141
- color: "info",
142
- variant: "bordered",
143
- className: {
144
- base: "border-small border-info text-info-600",
145
- title: "text-info-600",
146
- description: "text-info-500",
147
- icon: "text-info-600",
148
- closeIcon: "border-info-400 bg-info-100",
149
- closeButton: "text-info-400 hover:text-info-600",
150
- progressIndicator: "bg-info-400"
151
- }
152
- }
153
- ]
154
- });
155
- var addToast = ({
156
- className = void 0,
157
- closeIcon = void 0,
158
- color = "default",
159
- description = void 0,
160
- endContent = void 0,
161
- icon = void 0,
162
- loadingIcon = void 0,
163
- onClose = void 0,
164
- promise = void 0,
165
- shouldShowTimeoutProgress = false,
166
- showCloseButton = true,
167
- showIcon = true,
168
- timeout = 5e3,
169
- title = void 0,
170
- variant = "bordered"
171
- }) => {
172
- const variants = toastVariants({
173
- color,
174
- variant
175
- });
176
- const isHeroUIColor = Object.keys(heroToastVariants.variants.color).includes(
177
- color
178
- );
179
- const classNames = variantsToClassNames(variants, className, "base");
180
- heroAddToast({
181
- classNames,
182
- closeIcon,
183
- color: isHeroUIColor ? color : void 0,
184
- // TODO: 'data-testid': testId,
185
- description,
186
- endContent,
187
- hideCloseButton: !showCloseButton,
188
- hideIcon: !showIcon,
189
- icon,
190
- loadingIcon,
191
- onClose,
192
- promise,
193
- shouldShowTimeoutProgress,
194
- timeout,
195
- title,
196
- variant
197
- });
198
- };
199
-
200
- // src/Toast/ToastProvider.tsx
201
- import { toast as heroToastVariants2 } from "@heroui/theme";
202
- import { ToastProvider as HeroToastProvider } from "@heroui/toast";
203
- import { variantsToClassNames as variantsToClassNames2 } from "@fuf-stack/pixel-utils";
204
- import { jsx } from "react/jsx-runtime";
205
- var ToastProvider = ({
206
- disableAnimation = false,
207
- maxVisibleToasts = 5,
208
- placement = "top-center",
209
- toastProps = void 0,
210
- toastOffset = 26,
211
- regionProps = void 0
212
- }) => {
213
- const variants = toastVariants({
214
- color: toastProps == null ? void 0 : toastProps.color,
215
- variant: toastProps == null ? void 0 : toastProps.variant
216
- });
217
- const isHeroUIColor = Object.keys(heroToastVariants2.variants.color).includes(
218
- (toastProps == null ? void 0 : toastProps.color) || ""
219
- );
220
- const classNames = variantsToClassNames2(
221
- variants,
222
- toastProps == null ? void 0 : toastProps.className,
223
- "base"
224
- );
225
- return /* @__PURE__ */ jsx(
226
- HeroToastProvider,
227
- {
228
- disableAnimation,
229
- maxVisibleToasts,
230
- placement,
231
- regionProps,
232
- toastOffset,
233
- toastProps: __spreadProps(__spreadValues({}, toastProps), {
234
- classNames,
235
- color: isHeroUIColor ? toastProps == null ? void 0 : toastProps.color : void 0
236
- })
237
- }
238
- );
239
- };
240
- var ToastProvider_default = ToastProvider;
88
+ import "./chunk-J7N2552D.js";
241
89
  export {
242
90
  Accordion_default as Accordion,
243
91
  Alert_default as Alert,
@@ -258,6 +106,7 @@ export {
258
106
  ProgressCircular_default as ProgressCircular,
259
107
  Table_default as Table,
260
108
  Tabs_default as Tabs,
109
+ Toast,
261
110
  ToastProvider_default as ToastProvider,
262
111
  Tooltip_default as Tooltip,
263
112
  accordionVariants,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Toast/addToast.tsx","../src/Toast/ToastProvider.tsx"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ToastProps as HeroToastProps } from '@heroui/toast';\nimport type { ReactNode } from 'react';\n\nimport { toast as heroToastVariants } from '@heroui/theme';\nimport { addToast as heroAddToast } from '@heroui/toast';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nexport const toastVariants = tv({\n slots: {\n base: '',\n title: '',\n description: '',\n icon: '',\n loadingIcon: '',\n content: '',\n motionDiv: '',\n progressTrack: '',\n progressIndicator: '',\n closeButton: '',\n closeIcon: '',\n },\n variants: {\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/toast.ts\n color: {\n info: {},\n ...heroToastVariants.variants.color,\n },\n variant: {\n ...heroToastVariants.variants.variant,\n },\n },\n compoundVariants: [\n ...heroToastVariants.compoundVariants,\n {\n variant: 'solid',\n color: 'info',\n className: {\n base: 'bg-info text-info-foreground',\n title: 'text-info-foreground',\n description: 'text-info-foreground',\n icon: 'text-info-foreground',\n closeIcon: 'border-info-400 bg-info-100',\n closeButton: 'text-info-400 hover:text-info-600',\n progressIndicator: 'bg-info-400',\n },\n },\n {\n color: 'info',\n variant: 'flat',\n className: {\n base: 'bg-info-50 text-info-600 dark:bg-info-50/50',\n title: 'text-info-600',\n description: 'text-info-500',\n icon: 'text-info-600',\n closeIcon: 'border-info-400 bg-info-100',\n closeButton: 'text-info-400 hover:text-info-600',\n progressIndicator: 'bg-info-400',\n },\n },\n\n {\n color: 'info',\n variant: 'bordered',\n className: {\n base: 'border-small border-info text-info-600',\n title: 'text-info-600',\n description: 'text-info-500',\n icon: 'text-info-600',\n closeIcon: 'border-info-400 bg-info-100',\n closeButton: 'text-info-400 hover:text-info-600',\n progressIndicator: 'bg-info-400',\n },\n },\n ],\n});\n\nexport type AddToastVariantProps = TVProps<typeof toastVariants>;\ntype ClassName = TVClassName<typeof toastVariants>;\n\nexport interface ToastProps extends AddToastVariantProps {\n /** CSS class name */\n className?: ClassName;\n /** Icon displayed at the end of the Alert */\n closeIcon?: ReactNode;\n /** Color of the alert */\n color?: AddToastVariantProps['color'];\n /** Content displayed inside the Alert */\n description?: ReactNode;\n /** Content displayed at the end of the Alert */\n endContent?: ReactNode;\n /** Icon displayed at the start of the Alert */\n icon?: ReactNode;\n /** Icon or animation displayed until promise is resolved */\n loadingIcon?: ReactNode;\n /** Callback function called when the toast is closed */\n onClose?: () => void;\n /** Promise based on which the notification will be styled */\n promise?: Promise<void>;\n /** Whether the toast should show a progress bar */\n shouldShowTimeoutProgress?: boolean;\n /** Whether the toast should show a close button */\n showCloseButton?: boolean;\n /** Whether the toast should show an icon */\n showIcon?: boolean;\n /** Time the toast is displayed */\n timeout?: number;\n /** Content displayed at the top of the toast */\n title?: ReactNode;\n /** Variant of the toast */\n variant?: AddToastVariantProps['variant'];\n}\n\n/**\n * addToast function based on [HeroUI Toast](https://www.heroui.com//docs/components/toast)\n */\nexport const addToast = ({\n className = undefined,\n closeIcon = undefined,\n color = 'default',\n description = undefined,\n endContent = undefined,\n icon = undefined,\n loadingIcon = undefined,\n onClose = undefined,\n promise = undefined,\n shouldShowTimeoutProgress = false,\n showCloseButton = true,\n showIcon = true,\n timeout = 5000,\n title = undefined,\n variant = 'bordered',\n}: ToastProps) => {\n const variants = toastVariants({\n color,\n variant,\n });\n const isHeroUIColor = Object.keys(heroToastVariants.variants.color).includes(\n color,\n );\n const classNames = variantsToClassNames(variants, className, 'base');\n heroAddToast({\n classNames,\n closeIcon,\n color: isHeroUIColor ? (color as HeroToastProps['color']) : undefined,\n // TODO: 'data-testid': testId,\n description,\n endContent,\n hideCloseButton: !showCloseButton,\n hideIcon: !showIcon,\n icon,\n loadingIcon,\n onClose,\n promise,\n shouldShowTimeoutProgress,\n timeout,\n title,\n variant,\n });\n};\n\nexport default addToast;\n","import type { ToastProps as HeroToastProps } from '@heroui/toast';\nimport type { ToastProps } from './addToast';\n\nimport { toast as heroToastVariants } from '@heroui/theme';\nimport { ToastProvider as HeroToastProvider } from '@heroui/toast';\n\nimport { variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { toastVariants } from './addToast';\n\nexport type ToastProviderToastProps = Omit<\n ToastProps,\n 'description' | 'endContent' | 'title'\n>;\n\nexport interface ToastProviderProps {\n disableAnimation?: boolean;\n maxVisibleToasts?: number;\n placement?:\n | 'bottom-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'top-right'\n | 'top-left'\n | 'top-center';\n\n toastProps?: ToastProviderToastProps;\n toastOffset?: number;\n regionProps?: { classNames?: Record<'base', string> };\n}\n\n/**\n * ToastProvider component based on [HeroUI Toast](https://www.heroui.com//docs/components/toast)\n */\nconst ToastProvider = ({\n disableAnimation = false,\n maxVisibleToasts = 5,\n placement = 'top-center',\n toastProps = undefined,\n toastOffset = 26,\n regionProps = undefined,\n}: ToastProviderProps) => {\n const variants = toastVariants({\n color: toastProps?.color,\n variant: toastProps?.variant,\n });\n const isHeroUIColor = Object.keys(heroToastVariants.variants.color).includes(\n toastProps?.color || '',\n );\n const classNames = variantsToClassNames(\n variants,\n toastProps?.className,\n 'base',\n );\n return (\n <HeroToastProvider\n disableAnimation={disableAnimation}\n maxVisibleToasts={maxVisibleToasts}\n placement={placement}\n regionProps={regionProps}\n toastOffset={toastOffset}\n toastProps={{\n ...toastProps,\n classNames,\n color: isHeroUIColor\n ? (toastProps?.color as HeroToastProps['color'])\n : undefined,\n }}\n />\n );\n};\n\nexport default ToastProvider;\n"],"mappings":"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","names":["heroToastVariants","variantsToClassNames","heroToastVariants","variantsToClassNames"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@fuf-stack/pixels",
3
3
  "description": "fuf core react component library",
4
4
  "author": "Hannes Tiede",
5
- "version": "0.41.0",
5
+ "version": "0.41.2",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
8
8
  "module": "./dist/index.js",
@@ -123,6 +123,11 @@
123
123
  "import": "./dist/Tabs/index.js",
124
124
  "require": "./dist/Tabs/index.cjs"
125
125
  },
126
+ "./Toast": {
127
+ "types": "./dist/Toast/index.d.ts",
128
+ "import": "./dist/Toast/index.js",
129
+ "require": "./dist/Toast/index.cjs"
130
+ },
126
131
  "./Tooltip": {
127
132
  "types": "./dist/Tooltip/index.d.ts",
128
133
  "import": "./dist/Tooltip/index.js",
@@ -188,8 +193,8 @@
188
193
  "react": "19.0.0",
189
194
  "react-dom": "19.0.0",
190
195
  "@repo/storybook-config": "0.0.1",
191
- "@repo/tailwind-config": "0.0.1",
192
196
  "@repo/tsup-config": "0.0.1",
197
+ "@repo/tailwind-config": "0.0.1",
193
198
  "@repo/vite-config": "0.0.1"
194
199
  },
195
200
  "scripts": {