@fuf-stack/pixels 1.7.4 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,15 +9,21 @@ var _pixelutils = require('@fuf-stack/pixel-utils');
9
9
  var _jsxruntime = require('react/jsx-runtime');
10
10
  var alertVariants = _pixelutils.tv.call(void 0, {
11
11
  slots: {
12
- base: "",
12
+ base: "min-w-72",
13
13
  title: "",
14
14
  description: "",
15
- mainWrapper: "",
15
+ mainWrapper: "gap-1.5",
16
16
  closeButton: "",
17
17
  iconWrapper: "",
18
18
  alertIcon: ""
19
19
  },
20
20
  variants: {
21
+ // if HeroUI Alert title and description are set the icon is placed on top (looks better)
22
+ hasTitleAndChildren: {
23
+ true: {
24
+ iconWrapper: "self-start"
25
+ }
26
+ },
21
27
  // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/alert.ts
22
28
  color: _chunkAHEA4IJVcjs.__spreadValues.call(void 0, {
23
29
  info: {
@@ -26,21 +32,13 @@ var alertVariants = _pixelutils.tv.call(void 0, {
26
32
  description: "text-inherit"
27
33
  }
28
34
  }, _theme.alert.variants.color),
29
- variant: _chunkAHEA4IJVcjs.__spreadValues.call(void 0, {}, _theme.alert.variants.variant),
30
- sizeLimit: {
31
- height: {
32
- base: "max-h-[150px] overflow-y-auto overflow-x-hidden"
33
- },
34
- width: {
35
- base: "max-w-[480px] overflow-x-auto overflow-y-hidden"
36
- },
37
- both: {
38
- base: "max-h-[150px] max-w-[480px] overflow-y-auto overflow-x-hidden"
39
- }
35
+ // only 2 variants: solid and bordered (bordered uses HeroUI's faded variant)
36
+ variant: {
37
+ bordered: _theme.alert.variants.variant.faded,
38
+ solid: _theme.alert.variants.variant.solid
40
39
  }
41
40
  },
42
41
  compoundVariants: [
43
- ..._theme.alert.compoundVariants,
44
42
  {
45
43
  color: "info",
46
44
  variant: "solid",
@@ -52,33 +50,13 @@ var alertVariants = _pixelutils.tv.call(void 0, {
52
50
  },
53
51
  {
54
52
  color: "info",
55
- variant: "flat",
56
- className: {
57
- alertIcon: "fill-current",
58
- base: "dark:bg-info-50/50 bg-info-50 text-info-600",
59
- closeButton: "text-info-500 data-[hover]:bg-info-200",
60
- iconWrapper: "border-info-100 bg-info-50 dark:bg-info-100"
61
- }
62
- },
63
- {
64
- color: "info",
65
- variant: "faded",
53
+ variant: "bordered",
66
54
  className: {
67
55
  alertIcon: "fill-current",
68
56
  base: "dark:bg-info-50/50 border-small border-info-200 bg-info-50 text-info-600 dark:border-info-100",
69
57
  closeButton: "text-info-500 data-[hover]:bg-info-200",
70
58
  iconWrapper: "border-info-100 bg-info-50 dark:bg-info-100"
71
59
  }
72
- },
73
- {
74
- color: "info",
75
- variant: "bordered",
76
- className: {
77
- alertIcon: "fill-current",
78
- base: "border-small border-info text-info",
79
- closeButton: "text-info-500 data-[hover]:bg-info-200",
80
- iconWrapper: "bg-info-100 dark:bg-info-50"
81
- }
82
60
  }
83
61
  ]
84
62
  });
@@ -88,18 +66,18 @@ var Alert = ({
88
66
  color = "primary",
89
67
  endContent = void 0,
90
68
  icon = void 0,
91
- isClosable = false,
69
+ closable = false,
92
70
  onClose = void 0,
93
- sizeLimit = void 0,
94
71
  showIcon = true,
95
72
  testId = void 0,
96
73
  title = void 0,
97
- variant = "solid"
74
+ variant = "bordered"
98
75
  }) => {
76
+ const hasTitleAndChildren = !!children && !!title;
99
77
  const variants = alertVariants({
78
+ hasTitleAndChildren,
100
79
  color,
101
- variant,
102
- sizeLimit
80
+ variant
103
81
  });
104
82
  const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, className, "base");
105
83
  const heroColor = Object.keys(_theme.alert.variants.color).includes(
@@ -115,7 +93,7 @@ var Alert = ({
115
93
  endContent,
116
94
  hideIcon: !showIcon,
117
95
  icon,
118
- isClosable,
96
+ isClosable: closable,
119
97
  onClose,
120
98
  title: title != null ? title : children,
121
99
  variant
@@ -132,4 +110,4 @@ var Alert_default2 = Alert_default;
132
110
 
133
111
 
134
112
  exports.alertVariants = alertVariants; exports.Alert_default = Alert_default; exports.Alert_default2 = Alert_default2;
135
- //# sourceMappingURL=chunk-K25U4BJO.cjs.map
113
+ //# sourceMappingURL=chunk-LUAK6GQG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-LUAK6GQG.cjs","../src/Alert/Alert.tsx","../src/Alert/index.ts"],"names":["Alert_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACAA,sCAAmC;AACnC,sCAA2C;AAE3C,oDAAyC;AAsHrC,+CAAA;AApHG,IAAM,cAAA,EAAgB,4BAAA;AAAG,EAC9B,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO,EAAA;AAAA,IACP,WAAA,EAAa,EAAA;AAAA,IACb,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,EAAA;AAAA,IACb,WAAA,EAAa,EAAA;AAAA,IACb,SAAA,EAAW;AAAA,EACb,CAAA;AAAA,EACA,QAAA,EAAU;AAAA;AAAA,IAER,mBAAA,EAAqB;AAAA,MACnB,IAAA,EAAM;AAAA,QACJ,WAAA,EAAa;AAAA,MACf;AAAA,IACF,CAAA;AAAA;AAAA,IAEA,KAAA,EAAO,8CAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,WAAA,EAAa,cAAA;AAAA,QACb,KAAA,EAAO,cAAA;AAAA,QACP,WAAA,EAAa;AAAA,MACf;AAAA,IAAA,CAAA,EACG,YAAA,CAAkB,QAAA,CAAS,KAAA,CAAA;AAAA;AAAA,IAGhC,OAAA,EAAS;AAAA,MACP,QAAA,EAAU,YAAA,CAAkB,QAAA,CAAS,OAAA,CAAQ,KAAA;AAAA,MAC7C,KAAA,EAAO,YAAA,CAAkB,QAAA,CAAS,OAAA,CAAQ;AAAA,IAC5C;AAAA,EACF,CAAA;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB;AAAA,MACE,KAAA,EAAO,MAAA;AAAA,MACP,OAAA,EAAS,OAAA;AAAA,MACT,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,8BAAA;AAAA,QACN,SAAA,EAAW,sBAAA;AAAA,QACX,WAAA,EAAa;AAAA,MACf;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,MAAA;AAAA,MACP,OAAA,EAAS,UAAA;AAAA,MACT,SAAA,EAAW;AAAA,QACT,SAAA,EAAW,cAAA;AAAA,QACX,IAAA,EAAM,+FAAA;AAAA,QACN,WAAA,EAAa,wCAAA;AAAA,QACb,WAAA,EAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF,CAAC,CAAA;AAkCD,IAAM,MAAA,EAAQ,CAAC;AAAA,EACb,SAAA,EAAW,KAAA,CAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,WAAA,EAAa,KAAA,CAAA;AAAA,EACb,KAAA,EAAO,KAAA,CAAA;AAAA,EACP,SAAA,EAAW,KAAA;AAAA,EACX,QAAA,EAAU,KAAA,CAAA;AAAA,EACV,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,KAAA,CAAA;AAAA,EACT,MAAA,EAAQ,KAAA,CAAA;AAAA,EACR,QAAA,EAAU;AACZ,CAAA,EAAA,GAAkB;AAChB,EAAA,MAAM,oBAAA,EAAsB,CAAC,CAAC,SAAA,GAAY,CAAC,CAAC,KAAA;AAC5C,EAAA,MAAM,SAAA,EAAW,aAAA,CAAc;AAAA,IAC7B,mBAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,EACF,CAAC,CAAA;AACD,EAAA,MAAM,WAAA,EAAa,8CAAA,QAAqB,EAAU,SAAA,EAAW,MAAM,CAAA;AAGnE,EAAA,MAAM,UAAA,EAAY,MAAA,CAAO,IAAA,CAAK,YAAA,CAAkB,QAAA,CAAS,KAAK,CAAA,CAAE,QAAA;AAAA,IAC9D;AAAA,EACF,EAAA,EACK,MAAA,EACD,KAAA,CAAA;AAEJ,EAAA,uBACE,6BAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,UAAA;AAAA,MACA,KAAA,EAAO,SAAA;AAAA,MACP,aAAA,EAAa,MAAA;AAAA,MACb,WAAA,EAAa,MAAA,EAAQ,SAAA,EAAW,KAAA,CAAA;AAAA,MAChC,UAAA;AAAA,MACA,QAAA,EAAU,CAAC,QAAA;AAAA,MACX,IAAA;AAAA,MAEA,UAAA,EAAY,QAAA;AAAA,MACZ,OAAA;AAAA,MACA,KAAA,EAAQ,MAAA,GAAA,KAAA,EAAA,MAAA,EAAS,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,EAAQ,KAAA;ADvCf;AACA;AElGA,IAAOA,eAAAA,EAAQ,aAAA;AFoGf;AACA;AACE;AACA;AACA;AACF,sHAAC","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-LUAK6GQG.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { AlertProps as HeroAlertProps } from '@heroui/alert';\nimport type { ReactNode } from 'react';\n\nimport { Alert as HeroAlert } from '@heroui/alert';\nimport { alert as heroAlertVariants } from '@heroui/theme';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nexport const alertVariants = tv({\n slots: {\n base: 'min-w-72',\n title: '',\n description: '',\n mainWrapper: 'gap-1.5',\n closeButton: '',\n iconWrapper: '',\n alertIcon: '',\n },\n variants: {\n // if HeroUI Alert title and description are set the icon is placed on top (looks better)\n hasTitleAndChildren: {\n true: {\n iconWrapper: 'self-start',\n },\n },\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/alert.ts\n color: {\n info: {\n mainWrapper: 'text-inherit',\n title: 'text-inherit',\n description: 'text-inherit',\n },\n ...heroAlertVariants.variants.color,\n },\n // only 2 variants: solid and bordered (bordered uses HeroUI's faded variant)\n variant: {\n bordered: heroAlertVariants.variants.variant.faded,\n solid: heroAlertVariants.variants.variant.solid,\n },\n },\n compoundVariants: [\n {\n color: 'info',\n variant: 'solid',\n className: {\n base: 'bg-info text-info-foreground',\n alertIcon: 'text-info-foreground',\n closeButton: 'text-inherit',\n },\n },\n {\n color: 'info',\n variant: 'bordered',\n className: {\n alertIcon: 'fill-current',\n base: 'dark:bg-info-50/50 border-small border-info-200 bg-info-50 text-info-600 dark:border-info-100',\n closeButton: 'text-info-500 data-[hover]:bg-info-200',\n iconWrapper: 'border-info-100 bg-info-50 dark:bg-info-100',\n },\n },\n ],\n});\n\nexport type VariantProps = TVProps<typeof alertVariants>;\ntype ClassName = TVClassName<typeof alertVariants>;\n\n// hasTitleAndChildren is omitted because its used for automatic icon position\nexport interface AlertProps extends Omit<VariantProps, 'hasTitleAndChildren'> {\n /** Content displayed inside the Alert if no description is given! */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** Color scheme of the Alert */\n color?: VariantProps['color'];\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 /** Whether the Alert can be closed */\n closable?: boolean;\n /** Callback fired when the close button is clicked */\n onClose?: () => void;\n /** Whether to show the icon at the start */\n showIcon?: boolean;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** Title displayed in the Alert above the content */\n title?: ReactNode;\n /** Style variant of the Alert */\n variant?: VariantProps['variant'];\n}\n\n/**\n * Alert component based on [HeroUI Alert](https://www.heroui.com//docs/components/alert)\n */\nconst Alert = ({\n children = undefined,\n className = undefined,\n color = 'primary',\n endContent = undefined,\n icon = undefined,\n closable = false,\n onClose = undefined,\n showIcon = true,\n testId = undefined,\n title = undefined,\n variant = 'bordered',\n}: AlertProps) => {\n const hasTitleAndChildren = !!children && !!title;\n const variants = alertVariants({\n hasTitleAndChildren,\n color,\n variant,\n });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n // pass color prop for heroui colors\n const heroColor = Object.keys(heroAlertVariants.variants.color).includes(\n color,\n )\n ? (color as HeroAlertProps['color'])\n : undefined;\n\n return (\n <HeroAlert\n classNames={classNames}\n color={heroColor}\n data-testid={testId}\n description={title ? children : undefined}\n endContent={endContent}\n hideIcon={!showIcon}\n icon={icon}\n // map closable to isClosable, because of we do not want \"is\" as prefix\n isClosable={closable}\n onClose={onClose}\n title={(title ?? children) as string}\n variant={variant}\n />\n );\n};\n\nexport default Alert;\n","import Alert, { alertVariants } from './Alert';\n\nexport type { AlertProps } from './Alert';\n\nexport { Alert, alertVariants };\n\nexport default Alert;\n"]}
@@ -9,15 +9,21 @@ import { tv, variantsToClassNames } from "@fuf-stack/pixel-utils";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  var alertVariants = tv({
11
11
  slots: {
12
- base: "",
12
+ base: "min-w-72",
13
13
  title: "",
14
14
  description: "",
15
- mainWrapper: "",
15
+ mainWrapper: "gap-1.5",
16
16
  closeButton: "",
17
17
  iconWrapper: "",
18
18
  alertIcon: ""
19
19
  },
20
20
  variants: {
21
+ // if HeroUI Alert title and description are set the icon is placed on top (looks better)
22
+ hasTitleAndChildren: {
23
+ true: {
24
+ iconWrapper: "self-start"
25
+ }
26
+ },
21
27
  // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/alert.ts
22
28
  color: __spreadValues({
23
29
  info: {
@@ -26,21 +32,13 @@ var alertVariants = tv({
26
32
  description: "text-inherit"
27
33
  }
28
34
  }, heroAlertVariants.variants.color),
29
- variant: __spreadValues({}, heroAlertVariants.variants.variant),
30
- sizeLimit: {
31
- height: {
32
- base: "max-h-[150px] overflow-y-auto overflow-x-hidden"
33
- },
34
- width: {
35
- base: "max-w-[480px] overflow-x-auto overflow-y-hidden"
36
- },
37
- both: {
38
- base: "max-h-[150px] max-w-[480px] overflow-y-auto overflow-x-hidden"
39
- }
35
+ // only 2 variants: solid and bordered (bordered uses HeroUI's faded variant)
36
+ variant: {
37
+ bordered: heroAlertVariants.variants.variant.faded,
38
+ solid: heroAlertVariants.variants.variant.solid
40
39
  }
41
40
  },
42
41
  compoundVariants: [
43
- ...heroAlertVariants.compoundVariants,
44
42
  {
45
43
  color: "info",
46
44
  variant: "solid",
@@ -52,33 +50,13 @@ var alertVariants = tv({
52
50
  },
53
51
  {
54
52
  color: "info",
55
- variant: "flat",
56
- className: {
57
- alertIcon: "fill-current",
58
- base: "dark:bg-info-50/50 bg-info-50 text-info-600",
59
- closeButton: "text-info-500 data-[hover]:bg-info-200",
60
- iconWrapper: "border-info-100 bg-info-50 dark:bg-info-100"
61
- }
62
- },
63
- {
64
- color: "info",
65
- variant: "faded",
53
+ variant: "bordered",
66
54
  className: {
67
55
  alertIcon: "fill-current",
68
56
  base: "dark:bg-info-50/50 border-small border-info-200 bg-info-50 text-info-600 dark:border-info-100",
69
57
  closeButton: "text-info-500 data-[hover]:bg-info-200",
70
58
  iconWrapper: "border-info-100 bg-info-50 dark:bg-info-100"
71
59
  }
72
- },
73
- {
74
- color: "info",
75
- variant: "bordered",
76
- className: {
77
- alertIcon: "fill-current",
78
- base: "border-small border-info text-info",
79
- closeButton: "text-info-500 data-[hover]:bg-info-200",
80
- iconWrapper: "bg-info-100 dark:bg-info-50"
81
- }
82
60
  }
83
61
  ]
84
62
  });
@@ -88,18 +66,18 @@ var Alert = ({
88
66
  color = "primary",
89
67
  endContent = void 0,
90
68
  icon = void 0,
91
- isClosable = false,
69
+ closable = false,
92
70
  onClose = void 0,
93
- sizeLimit = void 0,
94
71
  showIcon = true,
95
72
  testId = void 0,
96
73
  title = void 0,
97
- variant = "solid"
74
+ variant = "bordered"
98
75
  }) => {
76
+ const hasTitleAndChildren = !!children && !!title;
99
77
  const variants = alertVariants({
78
+ hasTitleAndChildren,
100
79
  color,
101
- variant,
102
- sizeLimit
80
+ variant
103
81
  });
104
82
  const classNames = variantsToClassNames(variants, className, "base");
105
83
  const heroColor = Object.keys(heroAlertVariants.variants.color).includes(
@@ -115,7 +93,7 @@ var Alert = ({
115
93
  endContent,
116
94
  hideIcon: !showIcon,
117
95
  icon,
118
- isClosable,
96
+ isClosable: closable,
119
97
  onClose,
120
98
  title: title != null ? title : children,
121
99
  variant
@@ -132,4 +110,4 @@ export {
132
110
  Alert_default,
133
111
  Alert_default2
134
112
  };
135
- //# sourceMappingURL=chunk-565TFIAK.js.map
113
+ //# sourceMappingURL=chunk-PKG3L2TJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Alert/Alert.tsx","../src/Alert/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { AlertProps as HeroAlertProps } from '@heroui/alert';\nimport type { ReactNode } from 'react';\n\nimport { Alert as HeroAlert } from '@heroui/alert';\nimport { alert as heroAlertVariants } from '@heroui/theme';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nexport const alertVariants = tv({\n slots: {\n base: 'min-w-72',\n title: '',\n description: '',\n mainWrapper: 'gap-1.5',\n closeButton: '',\n iconWrapper: '',\n alertIcon: '',\n },\n variants: {\n // if HeroUI Alert title and description are set the icon is placed on top (looks better)\n hasTitleAndChildren: {\n true: {\n iconWrapper: 'self-start',\n },\n },\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/alert.ts\n color: {\n info: {\n mainWrapper: 'text-inherit',\n title: 'text-inherit',\n description: 'text-inherit',\n },\n ...heroAlertVariants.variants.color,\n },\n // only 2 variants: solid and bordered (bordered uses HeroUI's faded variant)\n variant: {\n bordered: heroAlertVariants.variants.variant.faded,\n solid: heroAlertVariants.variants.variant.solid,\n },\n },\n compoundVariants: [\n {\n color: 'info',\n variant: 'solid',\n className: {\n base: 'bg-info text-info-foreground',\n alertIcon: 'text-info-foreground',\n closeButton: 'text-inherit',\n },\n },\n {\n color: 'info',\n variant: 'bordered',\n className: {\n alertIcon: 'fill-current',\n base: 'dark:bg-info-50/50 border-small border-info-200 bg-info-50 text-info-600 dark:border-info-100',\n closeButton: 'text-info-500 data-[hover]:bg-info-200',\n iconWrapper: 'border-info-100 bg-info-50 dark:bg-info-100',\n },\n },\n ],\n});\n\nexport type VariantProps = TVProps<typeof alertVariants>;\ntype ClassName = TVClassName<typeof alertVariants>;\n\n// hasTitleAndChildren is omitted because its used for automatic icon position\nexport interface AlertProps extends Omit<VariantProps, 'hasTitleAndChildren'> {\n /** Content displayed inside the Alert if no description is given! */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** Color scheme of the Alert */\n color?: VariantProps['color'];\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 /** Whether the Alert can be closed */\n closable?: boolean;\n /** Callback fired when the close button is clicked */\n onClose?: () => void;\n /** Whether to show the icon at the start */\n showIcon?: boolean;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** Title displayed in the Alert above the content */\n title?: ReactNode;\n /** Style variant of the Alert */\n variant?: VariantProps['variant'];\n}\n\n/**\n * Alert component based on [HeroUI Alert](https://www.heroui.com//docs/components/alert)\n */\nconst Alert = ({\n children = undefined,\n className = undefined,\n color = 'primary',\n endContent = undefined,\n icon = undefined,\n closable = false,\n onClose = undefined,\n showIcon = true,\n testId = undefined,\n title = undefined,\n variant = 'bordered',\n}: AlertProps) => {\n const hasTitleAndChildren = !!children && !!title;\n const variants = alertVariants({\n hasTitleAndChildren,\n color,\n variant,\n });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n // pass color prop for heroui colors\n const heroColor = Object.keys(heroAlertVariants.variants.color).includes(\n color,\n )\n ? (color as HeroAlertProps['color'])\n : undefined;\n\n return (\n <HeroAlert\n classNames={classNames}\n color={heroColor}\n data-testid={testId}\n description={title ? children : undefined}\n endContent={endContent}\n hideIcon={!showIcon}\n icon={icon}\n // map closable to isClosable, because of we do not want \"is\" as prefix\n isClosable={closable}\n onClose={onClose}\n title={(title ?? children) as string}\n variant={variant}\n />\n );\n};\n\nexport default Alert;\n","import Alert, { alertVariants } from './Alert';\n\nexport type { AlertProps } from './Alert';\n\nexport { Alert, alertVariants };\n\nexport default Alert;\n"],"mappings":";;;;;AAIA,SAAS,SAAS,iBAAiB;AACnC,SAAS,SAAS,yBAAyB;AAE3C,SAAS,IAAI,4BAA4B;AAsHrC;AApHG,IAAM,gBAAgB,GAAG;AAAA,EAC9B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA,UAAU;AAAA;AAAA,IAER,qBAAqB;AAAA,MACnB,MAAM;AAAA,QACJ,aAAa;AAAA,MACf;AAAA,IACF;AAAA;AAAA,IAEA,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,OACG,kBAAkB,SAAS;AAAA;AAAA,IAGhC,SAAS;AAAA,MACP,UAAU,kBAAkB,SAAS,QAAQ;AAAA,MAC7C,OAAO,kBAAkB,SAAS,QAAQ;AAAA,IAC5C;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,QACT,WAAW;AAAA,QACX,MAAM;AAAA,QACN,aAAa;AAAA,QACb,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAkCD,IAAM,QAAQ,CAAC;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AACZ,MAAkB;AAChB,QAAM,sBAAsB,CAAC,CAAC,YAAY,CAAC,CAAC;AAC5C,QAAM,WAAW,cAAc;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,qBAAqB,UAAU,WAAW,MAAM;AAGnE,QAAM,YAAY,OAAO,KAAK,kBAAkB,SAAS,KAAK,EAAE;AAAA,IAC9D;AAAA,EACF,IACK,QACD;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,OAAO;AAAA,MACP,eAAa;AAAA,MACb,aAAa,QAAQ,WAAW;AAAA,MAChC;AAAA,MACA,UAAU,CAAC;AAAA,MACX;AAAA,MAEA,YAAY;AAAA,MACZ;AAAA,MACA,OAAQ,wBAAS;AAAA,MACjB;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;;;ACxIf,IAAOA,iBAAQ;","names":["Alert_default"]}
@@ -0,0 +1,103 @@
1
+ import {
2
+ Alert_default2 as Alert_default
3
+ } from "./chunk-PKG3L2TJ.js";
4
+ import {
5
+ __objRest,
6
+ __spreadValues
7
+ } from "./chunk-OAIRL2FN.js";
8
+
9
+ // src/Toast/Toast.tsx
10
+ import { toast as sonnerToast } from "sonner";
11
+ import { jsx } from "react/jsx-runtime";
12
+ var showToast = (message, color, options) => {
13
+ const _a = options != null ? options : {}, { onClose, closable, title, endContent, render } = _a, rest = __objRest(_a, ["onClose", "closable", "title", "endContent", "render"]);
14
+ const sonnerOptions = __spreadValues({
15
+ position: "top-center",
16
+ onDismiss: onClose
17
+ }, rest);
18
+ return sonnerToast.custom((id) => {
19
+ const close = () => {
20
+ return sonnerToast.dismiss(id);
21
+ };
22
+ if (render) {
23
+ return render({ message, color, close, closable, title, endContent });
24
+ }
25
+ return /* @__PURE__ */ jsx(
26
+ Alert_default,
27
+ {
28
+ closable,
29
+ color,
30
+ endContent,
31
+ onClose: closable ? close : void 0,
32
+ title,
33
+ children: message
34
+ }
35
+ );
36
+ }, sonnerOptions);
37
+ };
38
+ var toast = {
39
+ /**
40
+ * Show a default toast.
41
+ * @returns The toast id which can be passed to `toast.close()`
42
+ */
43
+ default: (message, options) => {
44
+ return showToast(message, "default", options);
45
+ },
46
+ /**
47
+ * Show an info toast.
48
+ * @returns The toast id which can be passed to `toast.close()`
49
+ */
50
+ info: (message, options) => {
51
+ return showToast(message, "info", options);
52
+ },
53
+ /**
54
+ * Show a warning toast.
55
+ * @returns The toast id which can be passed to `toast.close()`
56
+ */
57
+ warn: (message, options) => {
58
+ return showToast(message, "warning", __spreadValues({
59
+ duration: 6e4,
60
+ closable: true
61
+ }, options));
62
+ },
63
+ /**
64
+ * Show a success toast.
65
+ * @returns The toast id which can be passed to `toast.close()`
66
+ */
67
+ success: (message, options) => {
68
+ return showToast(message, "success", options);
69
+ },
70
+ /**
71
+ * Show an error toast.
72
+ * @returns The toast id which can be passed to `toast.close()`
73
+ */
74
+ error: (message, options) => {
75
+ return showToast(message, "danger", __spreadValues({
76
+ duration: 6e4,
77
+ closable: true
78
+ }, options));
79
+ },
80
+ /** Close a toast by its id */
81
+ close: (toastId) => {
82
+ sonnerToast.dismiss(toastId);
83
+ }
84
+ };
85
+ var Toast_default = toast;
86
+
87
+ // src/Toast/Toaster.tsx
88
+ import { Toaster as SonnerToaster } from "sonner";
89
+ import { jsx as jsx2 } from "react/jsx-runtime";
90
+ var Toaster = (props) => {
91
+ return /* @__PURE__ */ jsx2(SonnerToaster, __spreadValues({}, props));
92
+ };
93
+ var Toaster_default = Toaster;
94
+
95
+ // src/Toast/index.ts
96
+ var Toast_default2 = Toast_default;
97
+
98
+ export {
99
+ Toast_default,
100
+ Toaster_default,
101
+ Toast_default2
102
+ };
103
+ //# sourceMappingURL=chunk-VEXCTG6K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Toast/Toast.tsx","../src/Toast/Toaster.tsx","../src/Toast/index.ts"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport type { ExternalToast } from 'sonner';\nimport type { AlertProps } from '../Alert';\n\nimport { toast as sonnerToast } from 'sonner';\n\nimport AlertComponent from '../Alert';\n\ntype AlertColor = NonNullable<AlertProps['color']>;\n\n/** Props passed to a custom render function */\nexport interface ToastRenderProps {\n /** The toast message */\n message: ReactNode;\n /** The color/severity of the toast */\n color: AlertColor;\n /** Function to close the toast */\n close: () => void;\n /** Whether the toast can be closed by the user */\n closable?: boolean;\n /** Title displayed above the toast message */\n title?: ReactNode;\n /** Content displayed at the end of the toast */\n endContent?: ReactNode;\n}\n\n/** Options passed to each toast method */\nexport interface ToastOptions {\n /** Title displayed above the toast message */\n title?: ReactNode;\n /** Whether the toast can be closed by the user */\n closable?: boolean;\n /** Duration in milliseconds before the toast auto-closes */\n duration?: number;\n /** Position of the toast on the screen */\n position?: ExternalToast['position'];\n /** Callback fired when the toast auto-closes */\n onAutoClose?: ExternalToast['onAutoClose'];\n /** Callback fired when the toast is closed */\n onClose?: ExternalToast['onDismiss'];\n /** Content displayed at the end of the toast */\n endContent?: ReactNode;\n /** Custom render function to override the default AlertComponent */\n render?: (props: ToastRenderProps) => ReactElement;\n}\n\nconst showToast = (\n message: ReactNode,\n color: AlertColor,\n options?: ToastOptions,\n) => {\n // Map custom ToastOptions to Sonner's ExternalToast format:\n // - onClose is mapped to Sonner's onDismiss\n // - closable is handled separately (not a Sonner option)\n // - position defaults to 'top-center'\n const { onClose, closable, title, endContent, render, ...rest } =\n options ?? {};\n const sonnerOptions: ExternalToast = {\n position: 'top-center' as const,\n onDismiss: onClose,\n ...rest,\n };\n return sonnerToast.custom((id) => {\n // Close function passed to custom render or AlertComponent\n const close = () => {\n return sonnerToast.dismiss(id);\n };\n\n // Allow custom rendering via render prop\n if (render) {\n return render({ message, color, close, closable, title, endContent });\n }\n\n // Default: render AlertComponent\n return (\n <AlertComponent\n closable={closable}\n color={color}\n endContent={endContent}\n onClose={closable ? close : undefined}\n title={title}\n >\n {message}\n </AlertComponent>\n );\n }, sonnerOptions);\n};\n\n/** Toast object with convenience methods for different severity levels */\nconst toast = {\n /**\n * Show a default toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n default: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'default', options);\n },\n /**\n * Show an info toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n info: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'info', options);\n },\n /**\n * Show a warning toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n warn: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'warning', {\n duration: 60000,\n closable: true,\n ...options,\n });\n },\n /**\n * Show a success toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n success: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'success', options);\n },\n /**\n * Show an error toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n error: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'danger', {\n duration: 60000,\n closable: true,\n ...options,\n });\n },\n /** Close a toast by its id */\n close: (toastId: string | number) => {\n sonnerToast.dismiss(toastId);\n },\n};\n\nexport default toast;\n","import type { ComponentProps } from 'react';\n\nimport { Toaster as SonnerToaster } from 'sonner';\n\nexport type ToasterProps = Pick<\n ComponentProps<typeof SonnerToaster>,\n 'visibleToasts' | 'position'\n>;\n\nconst Toaster = (props: ToasterProps) => {\n return <SonnerToaster {...props} />;\n};\n\nexport default Toaster;\n","import toast from './Toast';\nimport Toaster from './Toaster';\n\nexport type { ToastOptions, ToastRenderProps } from './Toast';\nexport type { ToasterProps } from './Toaster';\n\nexport { Toaster, toast };\nexport default toast;\n"],"mappings":";;;;;;;;;AAIA,SAAS,SAAS,mBAAmB;AAuE/B;AA7BN,IAAM,YAAY,CAChB,SACA,OACA,YACG;AAKH,QACE,iCAAW,CAAC,GADN,WAAS,UAAU,OAAO,YAAY,OAvDhD,IAwDI,IADuD,iBACvD,IADuD,CAAjD,WAAS,YAAU,SAAO,cAAY;AAE9C,QAAM,gBAA+B;AAAA,IACnC,UAAU;AAAA,IACV,WAAW;AAAA,KACR;AAEL,SAAO,YAAY,OAAO,CAAC,OAAO;AAEhC,UAAM,QAAQ,MAAM;AAClB,aAAO,YAAY,QAAQ,EAAE;AAAA,IAC/B;AAGA,QAAI,QAAQ;AACV,aAAO,OAAO,EAAE,SAAS,OAAO,OAAO,UAAU,OAAO,WAAW,CAAC;AAAA,IACtE;AAGA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,WAAW,QAAQ;AAAA,QAC5B;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,EAEJ,GAAG,aAAa;AAClB;AAGA,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKZ,SAAS,CAAC,SAAoB,YAA2B;AACvD,WAAO,UAAU,SAAS,WAAW,OAAO;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,CAAC,SAAoB,YAA2B;AACpD,WAAO,UAAU,SAAS,QAAQ,OAAO;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,CAAC,SAAoB,YAA2B;AACpD,WAAO,UAAU,SAAS,WAAW;AAAA,MACnC,UAAU;AAAA,MACV,UAAU;AAAA,OACP,QACJ;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,CAAC,SAAoB,YAA2B;AACvD,WAAO,UAAU,SAAS,WAAW,OAAO;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,CAAC,SAAoB,YAA2B;AACrD,WAAO,UAAU,SAAS,UAAU;AAAA,MAClC,UAAU;AAAA,MACV,UAAU;AAAA,OACP,QACJ;AAAA,EACH;AAAA;AAAA,EAEA,OAAO,CAAC,YAA6B;AACnC,gBAAY,QAAQ,OAAO;AAAA,EAC7B;AACF;AAEA,IAAO,gBAAQ;;;ACzIf,SAAS,WAAW,qBAAqB;AAQhC,gBAAAA,YAAA;AADT,IAAM,UAAU,CAAC,UAAwB;AACvC,SAAO,gBAAAA,KAAC,kCAAkB,MAAO;AACnC;AAEA,IAAO,kBAAQ;;;ACNf,IAAOC,iBAAQ;","names":["jsx","Toast_default"]}
@@ -0,0 +1,103 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkLUAK6GQGcjs = require('./chunk-LUAK6GQG.cjs');
4
+
5
+
6
+
7
+ var _chunkAHEA4IJVcjs = require('./chunk-AHEA4IJV.cjs');
8
+
9
+ // src/Toast/Toast.tsx
10
+ var _sonner = require('sonner');
11
+ var _jsxruntime = require('react/jsx-runtime');
12
+ var showToast = (message, color, options) => {
13
+ const _a = options != null ? options : {}, { onClose, closable, title, endContent, render } = _a, rest = _chunkAHEA4IJVcjs.__objRest.call(void 0, _a, ["onClose", "closable", "title", "endContent", "render"]);
14
+ const sonnerOptions = _chunkAHEA4IJVcjs.__spreadValues.call(void 0, {
15
+ position: "top-center",
16
+ onDismiss: onClose
17
+ }, rest);
18
+ return _sonner.toast.custom((id) => {
19
+ const close = () => {
20
+ return _sonner.toast.dismiss(id);
21
+ };
22
+ if (render) {
23
+ return render({ message, color, close, closable, title, endContent });
24
+ }
25
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26
+ _chunkLUAK6GQGcjs.Alert_default2,
27
+ {
28
+ closable,
29
+ color,
30
+ endContent,
31
+ onClose: closable ? close : void 0,
32
+ title,
33
+ children: message
34
+ }
35
+ );
36
+ }, sonnerOptions);
37
+ };
38
+ var toast = {
39
+ /**
40
+ * Show a default toast.
41
+ * @returns The toast id which can be passed to `toast.close()`
42
+ */
43
+ default: (message, options) => {
44
+ return showToast(message, "default", options);
45
+ },
46
+ /**
47
+ * Show an info toast.
48
+ * @returns The toast id which can be passed to `toast.close()`
49
+ */
50
+ info: (message, options) => {
51
+ return showToast(message, "info", options);
52
+ },
53
+ /**
54
+ * Show a warning toast.
55
+ * @returns The toast id which can be passed to `toast.close()`
56
+ */
57
+ warn: (message, options) => {
58
+ return showToast(message, "warning", _chunkAHEA4IJVcjs.__spreadValues.call(void 0, {
59
+ duration: 6e4,
60
+ closable: true
61
+ }, options));
62
+ },
63
+ /**
64
+ * Show a success toast.
65
+ * @returns The toast id which can be passed to `toast.close()`
66
+ */
67
+ success: (message, options) => {
68
+ return showToast(message, "success", options);
69
+ },
70
+ /**
71
+ * Show an error toast.
72
+ * @returns The toast id which can be passed to `toast.close()`
73
+ */
74
+ error: (message, options) => {
75
+ return showToast(message, "danger", _chunkAHEA4IJVcjs.__spreadValues.call(void 0, {
76
+ duration: 6e4,
77
+ closable: true
78
+ }, options));
79
+ },
80
+ /** Close a toast by its id */
81
+ close: (toastId) => {
82
+ _sonner.toast.dismiss(toastId);
83
+ }
84
+ };
85
+ var Toast_default = toast;
86
+
87
+ // src/Toast/Toaster.tsx
88
+
89
+
90
+ var Toaster = (props) => {
91
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sonner.Toaster, _chunkAHEA4IJVcjs.__spreadValues.call(void 0, {}, props));
92
+ };
93
+ var Toaster_default = Toaster;
94
+
95
+ // src/Toast/index.ts
96
+ var Toast_default2 = Toast_default;
97
+
98
+
99
+
100
+
101
+
102
+ exports.Toast_default = Toast_default; exports.Toaster_default = Toaster_default; exports.Toast_default2 = Toast_default2;
103
+ //# sourceMappingURL=chunk-YNA3GBAI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-YNA3GBAI.cjs","../src/Toast/Toast.tsx","../src/Toast/Toaster.tsx","../src/Toast/index.ts"],"names":["jsx","Toast_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-YNA3GBAI.cjs","sourcesContent":[null,"import type { ReactElement, ReactNode } from 'react';\nimport type { ExternalToast } from 'sonner';\nimport type { AlertProps } from '../Alert';\n\nimport { toast as sonnerToast } from 'sonner';\n\nimport AlertComponent from '../Alert';\n\ntype AlertColor = NonNullable<AlertProps['color']>;\n\n/** Props passed to a custom render function */\nexport interface ToastRenderProps {\n /** The toast message */\n message: ReactNode;\n /** The color/severity of the toast */\n color: AlertColor;\n /** Function to close the toast */\n close: () => void;\n /** Whether the toast can be closed by the user */\n closable?: boolean;\n /** Title displayed above the toast message */\n title?: ReactNode;\n /** Content displayed at the end of the toast */\n endContent?: ReactNode;\n}\n\n/** Options passed to each toast method */\nexport interface ToastOptions {\n /** Title displayed above the toast message */\n title?: ReactNode;\n /** Whether the toast can be closed by the user */\n closable?: boolean;\n /** Duration in milliseconds before the toast auto-closes */\n duration?: number;\n /** Position of the toast on the screen */\n position?: ExternalToast['position'];\n /** Callback fired when the toast auto-closes */\n onAutoClose?: ExternalToast['onAutoClose'];\n /** Callback fired when the toast is closed */\n onClose?: ExternalToast['onDismiss'];\n /** Content displayed at the end of the toast */\n endContent?: ReactNode;\n /** Custom render function to override the default AlertComponent */\n render?: (props: ToastRenderProps) => ReactElement;\n}\n\nconst showToast = (\n message: ReactNode,\n color: AlertColor,\n options?: ToastOptions,\n) => {\n // Map custom ToastOptions to Sonner's ExternalToast format:\n // - onClose is mapped to Sonner's onDismiss\n // - closable is handled separately (not a Sonner option)\n // - position defaults to 'top-center'\n const { onClose, closable, title, endContent, render, ...rest } =\n options ?? {};\n const sonnerOptions: ExternalToast = {\n position: 'top-center' as const,\n onDismiss: onClose,\n ...rest,\n };\n return sonnerToast.custom((id) => {\n // Close function passed to custom render or AlertComponent\n const close = () => {\n return sonnerToast.dismiss(id);\n };\n\n // Allow custom rendering via render prop\n if (render) {\n return render({ message, color, close, closable, title, endContent });\n }\n\n // Default: render AlertComponent\n return (\n <AlertComponent\n closable={closable}\n color={color}\n endContent={endContent}\n onClose={closable ? close : undefined}\n title={title}\n >\n {message}\n </AlertComponent>\n );\n }, sonnerOptions);\n};\n\n/** Toast object with convenience methods for different severity levels */\nconst toast = {\n /**\n * Show a default toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n default: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'default', options);\n },\n /**\n * Show an info toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n info: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'info', options);\n },\n /**\n * Show a warning toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n warn: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'warning', {\n duration: 60000,\n closable: true,\n ...options,\n });\n },\n /**\n * Show a success toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n success: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'success', options);\n },\n /**\n * Show an error toast.\n * @returns The toast id which can be passed to `toast.close()`\n */\n error: (message: ReactNode, options?: ToastOptions) => {\n return showToast(message, 'danger', {\n duration: 60000,\n closable: true,\n ...options,\n });\n },\n /** Close a toast by its id */\n close: (toastId: string | number) => {\n sonnerToast.dismiss(toastId);\n },\n};\n\nexport default toast;\n","import type { ComponentProps } from 'react';\n\nimport { Toaster as SonnerToaster } from 'sonner';\n\nexport type ToasterProps = Pick<\n ComponentProps<typeof SonnerToaster>,\n 'visibleToasts' | 'position'\n>;\n\nconst Toaster = (props: ToasterProps) => {\n return <SonnerToaster {...props} />;\n};\n\nexport default Toaster;\n","import toast from './Toast';\nimport Toaster from './Toaster';\n\nexport type { ToastOptions, ToastRenderProps } from './Toast';\nexport type { ToasterProps } from './Toaster';\n\nexport { Toaster, toast };\nexport default toast;\n"]}
package/dist/index.cjs CHANGED
@@ -29,9 +29,7 @@ var _chunkG3YTOGEGcjs = require('./chunk-G3YTOGEG.cjs');
29
29
 
30
30
 
31
31
 
32
-
33
-
34
- var _chunk56CIU4EGcjs = require('./chunk-56CIU4EG.cjs');
32
+ var _chunkYNA3GBAIcjs = require('./chunk-YNA3GBAI.cjs');
35
33
 
36
34
 
37
35
  var _chunkZIAB3EXUcjs = require('./chunk-ZIAB3EXU.cjs');
@@ -75,7 +73,7 @@ var _chunkNSYHAJM2cjs = require('./chunk-NSYHAJM2.cjs');
75
73
 
76
74
 
77
75
 
78
- var _chunkK25U4BJOcjs = require('./chunk-K25U4BJO.cjs');
76
+ var _chunkLUAK6GQGcjs = require('./chunk-LUAK6GQG.cjs');
79
77
 
80
78
 
81
79
  var _chunkVHESFBAQcjs = require('./chunk-VHESFBAQ.cjs');
@@ -88,11 +86,11 @@ var _chunkHG7AE6Q2cjs = require('./chunk-HG7AE6Q2.cjs');
88
86
 
89
87
 
90
88
 
91
- var _chunkIBX6A72Pcjs = require('./chunk-IBX6A72P.cjs');
89
+ var _chunkFVQDVD3Ecjs = require('./chunk-FVQDVD3E.cjs');
92
90
 
93
91
 
94
92
 
95
- var _chunkFVQDVD3Ecjs = require('./chunk-FVQDVD3E.cjs');
93
+ var _chunkIBX6A72Pcjs = require('./chunk-IBX6A72P.cjs');
96
94
  require('./chunk-AHEA4IJV.cjs');
97
95
 
98
96
 
@@ -137,7 +135,5 @@ require('./chunk-AHEA4IJV.cjs');
137
135
 
138
136
 
139
137
 
140
-
141
-
142
- exports.Accordion = _chunkNSYHAJM2cjs.Accordion_default; exports.Alert = _chunkK25U4BJOcjs.Alert_default; exports.Avatar = _chunk77J7NZYBcjs.Avatar_default; exports.AvatarGroup = _chunkVHESFBAQcjs.AvatarGroup_default; exports.Badge = _chunkHG7AE6Q2cjs.Badge_default; exports.Breadcrumb = _chunkIBX6A72Pcjs.Breadcrumb_default; exports.Button = _chunkFVQDVD3Ecjs.Button_default; exports.ButtonGroup = _chunkY3RSI2KVcjs.ButtonGroup_default; exports.Card = _chunk6PCFYEJHcjs.Card_default; exports.Drawer = _chunkOLU26V56cjs.Drawer_default; exports.Json = _chunkP7QMPWKScjs.Json_default; exports.Label = _chunkBPBEZCSPcjs.Label_default; exports.Menu = _chunk5ZT7C5IPcjs.Menu_default; exports.Modal = _chunkB2PDISUUcjs.Modal_default; exports.Popover = _chunkRPULU7LCcjs.Popover_default; exports.Progress = _chunkK5VPNWIJcjs.Progress_default; exports.ProgressCircular = _chunkFQJ32476cjs.ProgressCircular_default; exports.Table = _chunkYUR6N2RBcjs.Table_default; exports.Tabs = _chunkG3YTOGEGcjs.Tabs_default; exports.Toast = _chunk56CIU4EGcjs.Toast; exports.ToastProvider = _chunk56CIU4EGcjs.ToastProvider_default; exports.Tooltip = _chunkZIAB3EXUcjs.Tooltip_default; exports.accordionVariants = _chunkNSYHAJM2cjs.accordionVariants; exports.addToast = _chunk56CIU4EGcjs.addToast; exports.alertVariants = _chunkK25U4BJOcjs.alertVariants; exports.breadcrumbVariants = _chunkIBX6A72Pcjs.breadcrumbVariants; exports.buttonVariants = _chunkFVQDVD3Ecjs.buttonVariants; exports.cardVariants = _chunk6PCFYEJHcjs.cardVariants; exports.createWithSuspense = _chunkWCE3O6UAcjs.createWithSuspense; exports.drawerBackdrops = _chunkOLU26V56cjs.drawerBackdrops; exports.drawerPlacements = _chunkOLU26V56cjs.drawerPlacements; exports.drawerRadii = _chunkOLU26V56cjs.drawerRadii; exports.drawerSizes = _chunkOLU26V56cjs.drawerSizes; exports.drawerVariants = _chunkOLU26V56cjs.drawerVariants; exports.labelVariants = _chunkBPBEZCSPcjs.labelVariants; exports.modalVariants = _chunkB2PDISUUcjs.modalVariants; exports.progressCircularVariants = _chunkFQJ32476cjs.progressCircularVariants; exports.progressVariants = _chunkK5VPNWIJcjs.progressVariants; exports.tableVariants = _chunkYUR6N2RBcjs.tableVariants; exports.tabsVariants = _chunkG3YTOGEGcjs.tabsVariants; exports.toastVariants = _chunk56CIU4EGcjs.toastVariants; exports.useDebounce = _chunk3WD7CGWDcjs.useDebounce; exports.useIsInitialRenderCycle = _chunkON3PVFZYcjs.useIsInitialRenderCycle; exports.useLocalStorage = _chunkIXBNFKOScjs.useLocalStorage;
138
+ exports.Accordion = _chunkNSYHAJM2cjs.Accordion_default; exports.Alert = _chunkLUAK6GQGcjs.Alert_default; exports.Avatar = _chunk77J7NZYBcjs.Avatar_default; exports.AvatarGroup = _chunkVHESFBAQcjs.AvatarGroup_default; exports.Badge = _chunkHG7AE6Q2cjs.Badge_default; exports.Breadcrumb = _chunkIBX6A72Pcjs.Breadcrumb_default; exports.Button = _chunkFVQDVD3Ecjs.Button_default; exports.ButtonGroup = _chunkY3RSI2KVcjs.ButtonGroup_default; exports.Card = _chunk6PCFYEJHcjs.Card_default; exports.Drawer = _chunkOLU26V56cjs.Drawer_default; exports.Json = _chunkP7QMPWKScjs.Json_default; exports.Label = _chunkBPBEZCSPcjs.Label_default; exports.Menu = _chunk5ZT7C5IPcjs.Menu_default; exports.Modal = _chunkB2PDISUUcjs.Modal_default; exports.Popover = _chunkRPULU7LCcjs.Popover_default; exports.Progress = _chunkK5VPNWIJcjs.Progress_default; exports.ProgressCircular = _chunkFQJ32476cjs.ProgressCircular_default; exports.Table = _chunkYUR6N2RBcjs.Table_default; exports.Tabs = _chunkG3YTOGEGcjs.Tabs_default; exports.Toaster = _chunkYNA3GBAIcjs.Toaster_default; exports.Tooltip = _chunkZIAB3EXUcjs.Tooltip_default; exports.accordionVariants = _chunkNSYHAJM2cjs.accordionVariants; exports.alertVariants = _chunkLUAK6GQGcjs.alertVariants; exports.breadcrumbVariants = _chunkIBX6A72Pcjs.breadcrumbVariants; exports.buttonVariants = _chunkFVQDVD3Ecjs.buttonVariants; exports.cardVariants = _chunk6PCFYEJHcjs.cardVariants; exports.createWithSuspense = _chunkWCE3O6UAcjs.createWithSuspense; exports.drawerBackdrops = _chunkOLU26V56cjs.drawerBackdrops; exports.drawerPlacements = _chunkOLU26V56cjs.drawerPlacements; exports.drawerRadii = _chunkOLU26V56cjs.drawerRadii; exports.drawerSizes = _chunkOLU26V56cjs.drawerSizes; exports.drawerVariants = _chunkOLU26V56cjs.drawerVariants; exports.labelVariants = _chunkBPBEZCSPcjs.labelVariants; exports.modalVariants = _chunkB2PDISUUcjs.modalVariants; exports.progressCircularVariants = _chunkFQJ32476cjs.progressCircularVariants; exports.progressVariants = _chunkK5VPNWIJcjs.progressVariants; exports.tableVariants = _chunkYUR6N2RBcjs.tableVariants; exports.tabsVariants = _chunkG3YTOGEGcjs.tabsVariants; exports.toast = _chunkYNA3GBAIcjs.Toast_default; exports.useDebounce = _chunk3WD7CGWDcjs.useDebounce; exports.useIsInitialRenderCycle = _chunkON3PVFZYcjs.useIsInitialRenderCycle; exports.useLocalStorage = _chunkIXBNFKOScjs.useLocalStorage;
143
139
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,m7EAAC","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,u0EAAC","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/index.cjs"}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { A as Accordion, c as AccordionItemProps, b as AccordionProps, a as accordionVariants } from './Accordion-BX1Npq3Q.cjs';
2
- export { A as Alert, b as AlertProps, a as alertVariants } from './Alert-Dc0RSQaB.cjs';
2
+ export { A as Alert, b as AlertProps, a as alertVariants } from './Alert-BidIEsLA.cjs';
3
3
  export { A as Avatar, a as AvatarProps } from './Avatar-DjZ3H25h.cjs';
4
4
  export { A as AvatarGroup, a as AvatarGroupProps } from './AvatarGroup-BujXZ7Vy.cjs';
5
5
  export { A as Badge, B as BadgeProps } from './Badge-L8r9mgSs.cjs';
@@ -17,8 +17,7 @@ export { P as ProgressCircular, a as ProgressCircularProps, p as progressCircula
17
17
  export { P as Progress, a as ProgressProps, p as progressVariants } from './Progress-Deph-HCf.cjs';
18
18
  export { T as Table, c as TableColumnProps, a as TableProps, b as TableRowProps, V as VariantProps, t as tableVariants } from './Table-LKaPSY4D.cjs';
19
19
  export { b as TabProps, T as Tabs, a as TabsProps, t as tabsVariants } from './Tabs-BjMJs02F.cjs';
20
- export { Toast } from '@heroui/toast';
21
- export { A as AddToastVariantProps, b as ToastProps, T as ToastProvider, c as ToastProviderProps, a as addToast, t as toastVariants } from './ToastProvider-BaynjNgq.cjs';
20
+ export { a as ToastOptions, b as ToastRenderProps, T as Toaster, c as ToasterProps, t as toast } from './Toaster-M8hrHJ-J.cjs';
22
21
  export { T as Tooltip, b as TooltipPlacement, a as TooltipProps } from './Tooltip-DoIaNgTC.cjs';
23
22
  export { useDebounce } from './hooks/useDebounce/index.cjs';
24
23
  export { useIsInitialRenderCycle } from './hooks/useIsInitialRenderCycle/index.cjs';
@@ -37,4 +36,5 @@ import '@heroui/chip';
37
36
  import '@heroui/dropdown';
38
37
  import '@heroui/modal';
39
38
  import '@heroui/popover';
39
+ import 'sonner';
40
40
  import '@heroui/tooltip';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { A as Accordion, c as AccordionItemProps, b as AccordionProps, a as accordionVariants } from './Accordion-BX1Npq3Q.js';
2
- export { A as Alert, b as AlertProps, a as alertVariants } from './Alert-Dc0RSQaB.js';
2
+ export { A as Alert, b as AlertProps, a as alertVariants } from './Alert-BidIEsLA.js';
3
3
  export { A as Avatar, a as AvatarProps } from './Avatar-DjZ3H25h.js';
4
4
  export { A as AvatarGroup, a as AvatarGroupProps } from './AvatarGroup-B1Tdw57Q.js';
5
5
  export { A as Badge, B as BadgeProps } from './Badge-L8r9mgSs.js';
@@ -17,8 +17,7 @@ export { P as ProgressCircular, a as ProgressCircularProps, p as progressCircula
17
17
  export { P as Progress, a as ProgressProps, p as progressVariants } from './Progress-Deph-HCf.js';
18
18
  export { T as Table, c as TableColumnProps, a as TableProps, b as TableRowProps, V as VariantProps, t as tableVariants } from './Table-LKaPSY4D.js';
19
19
  export { b as TabProps, T as Tabs, a as TabsProps, t as tabsVariants } from './Tabs-BjMJs02F.js';
20
- export { Toast } from '@heroui/toast';
21
- export { A as AddToastVariantProps, b as ToastProps, T as ToastProvider, c as ToastProviderProps, a as addToast, t as toastVariants } from './ToastProvider-BaynjNgq.js';
20
+ export { a as ToastOptions, b as ToastRenderProps, T as Toaster, c as ToasterProps, t as toast } from './Toaster-DVX4ebm4.js';
22
21
  export { T as Tooltip, b as TooltipPlacement, a as TooltipProps } from './Tooltip-DoIaNgTC.js';
23
22
  export { useDebounce } from './hooks/useDebounce/index.js';
24
23
  export { useIsInitialRenderCycle } from './hooks/useIsInitialRenderCycle/index.js';
@@ -37,4 +36,5 @@ import '@heroui/chip';
37
36
  import '@heroui/dropdown';
38
37
  import '@heroui/modal';
39
38
  import '@heroui/popover';
39
+ import 'sonner';
40
40
  import '@heroui/tooltip';