@fuf-stack/pixels 0.42.2 → 0.43.1
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/Button/index.cjs +2 -2
- package/dist/Button/index.d.cts +2 -2
- package/dist/Button/index.d.ts +2 -2
- package/dist/Button/index.js +1 -1
- package/dist/{Button-Bm0yKM7X.d.cts → Button-DykH6Lmz.d.cts} +12 -10
- package/dist/{Button-Bm0yKM7X.d.ts → Button-DykH6Lmz.d.ts} +12 -10
- package/dist/Json/index.cjs +3 -3
- package/dist/Json/index.js +2 -2
- package/dist/Popover/index.cjs +2 -2
- package/dist/Popover/index.d.cts +3 -3
- package/dist/Popover/index.d.ts +3 -3
- package/dist/Popover/index.js +1 -1
- package/dist/{Popover-DajWpbPN.d.cts → Popover-B7Bc2FWo.d.ts} +33 -1
- package/dist/{Popover-DcZ3qt-u.d.ts → Popover-G9P0rR-7.d.cts} +33 -1
- package/dist/Progress/index.cjs +2 -2
- package/dist/Progress/index.d.cts +2 -2
- package/dist/Progress/index.d.ts +2 -2
- package/dist/Progress/index.js +1 -1
- package/dist/{Progress-7yXUVioO.d.cts → Progress-CR_BcIKV.d.cts} +3 -1
- package/dist/{Progress-7yXUVioO.d.ts → Progress-CR_BcIKV.d.ts} +3 -1
- package/dist/ProgressCircular/index.cjs +2 -2
- package/dist/ProgressCircular/index.d.cts +2 -2
- package/dist/ProgressCircular/index.d.ts +2 -2
- package/dist/ProgressCircular/index.js +1 -1
- package/dist/{ProgressCircular-BrcYFzAa.d.cts → ProgressCircular-D9VbRNdF.d.cts} +3 -1
- package/dist/{ProgressCircular-BrcYFzAa.d.ts → ProgressCircular-D9VbRNdF.d.ts} +3 -1
- package/dist/Tooltip/index.cjs +2 -2
- package/dist/Tooltip/index.js +1 -1
- package/dist/{chunk-J63YGHTG.cjs → chunk-77THLTVP.cjs} +3 -3
- package/dist/{chunk-J63YGHTG.cjs.map → chunk-77THLTVP.cjs.map} +1 -1
- package/dist/{chunk-FLPLJTAC.cjs → chunk-AN7A66NS.cjs} +4 -2
- package/dist/chunk-AN7A66NS.cjs.map +1 -0
- package/dist/{chunk-VES4SOJH.js → chunk-ESLZ4HYA.js} +6 -5
- package/dist/chunk-ESLZ4HYA.js.map +1 -0
- package/dist/{chunk-5TOE75VE.js → chunk-JKZIVTWA.js} +14 -10
- package/dist/chunk-JKZIVTWA.js.map +1 -0
- package/dist/{chunk-OGK2OQXX.js → chunk-JORMLHKF.js} +4 -2
- package/dist/chunk-JORMLHKF.js.map +1 -0
- package/dist/{chunk-VRPX6QUG.js → chunk-Q3WI7NPI.js} +2 -2
- package/dist/{chunk-MAKWBTTW.js → chunk-RELR2OCI.js} +4 -2
- package/dist/chunk-RELR2OCI.js.map +1 -0
- package/dist/{chunk-EAX5J2I2.cjs → chunk-SYPFLG7E.cjs} +14 -10
- package/dist/chunk-SYPFLG7E.cjs.map +1 -0
- package/dist/{chunk-YXWPOEX6.js → chunk-TG2HRVJX.js} +2 -2
- package/dist/chunk-TG2HRVJX.js.map +1 -0
- package/dist/{chunk-HENURJFU.cjs → chunk-W2EOAUKE.cjs} +6 -5
- package/dist/chunk-W2EOAUKE.cjs.map +1 -0
- package/dist/{chunk-25AJSW5E.cjs → chunk-XKJOXUWH.cjs} +2 -2
- package/dist/chunk-XKJOXUWH.cjs.map +1 -0
- package/dist/{chunk-PK723NKO.cjs → chunk-XOCP745X.cjs} +4 -2
- package/dist/chunk-XOCP745X.cjs.map +1 -0
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -6
- package/package.json +5 -5
- package/dist/chunk-25AJSW5E.cjs.map +0 -1
- package/dist/chunk-5TOE75VE.js.map +0 -1
- package/dist/chunk-EAX5J2I2.cjs.map +0 -1
- package/dist/chunk-FLPLJTAC.cjs.map +0 -1
- package/dist/chunk-HENURJFU.cjs.map +0 -1
- package/dist/chunk-MAKWBTTW.js.map +0 -1
- package/dist/chunk-OGK2OQXX.js.map +0 -1
- package/dist/chunk-PK723NKO.cjs.map +0 -1
- package/dist/chunk-VES4SOJH.js.map +0 -1
- package/dist/chunk-YXWPOEX6.js.map +0 -1
- /package/dist/{chunk-VRPX6QUG.js.map → chunk-Q3WI7NPI.js.map} +0 -0
|
@@ -12,7 +12,7 @@ var _jsxruntime = require('react/jsx-runtime');
|
|
|
12
12
|
var LoadingSpinner_default = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13
13
|
"svg",
|
|
14
14
|
{
|
|
15
|
-
className: "
|
|
15
|
+
className: "h-5 w-5 animate-spin text-current",
|
|
16
16
|
fill: "none",
|
|
17
17
|
viewBox: "0 0 24 24",
|
|
18
18
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -111,6 +111,7 @@ var Button = ({
|
|
|
111
111
|
icon = void 0,
|
|
112
112
|
loading = false,
|
|
113
113
|
onClick = void 0,
|
|
114
|
+
radius = void 0,
|
|
114
115
|
size = void 0,
|
|
115
116
|
testId = void 0,
|
|
116
117
|
type = void 0,
|
|
@@ -129,6 +130,7 @@ var Button = ({
|
|
|
129
130
|
isIconOnly: !!(icon && !children),
|
|
130
131
|
isLoading: loading,
|
|
131
132
|
onPress: onClick,
|
|
133
|
+
radius,
|
|
132
134
|
size,
|
|
133
135
|
spinner: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingSpinner_default, {}),
|
|
134
136
|
type,
|
|
@@ -150,4 +152,4 @@ var Button_default2 = Button_default;
|
|
|
150
152
|
|
|
151
153
|
|
|
152
154
|
exports.buttonVariants = buttonVariants; exports.Button_default = Button_default; exports.Button_default2 = Button_default2;
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
155
|
+
//# sourceMappingURL=chunk-AN7A66NS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-AN7A66NS.cjs","../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"names":["jsxs","jsx","Button_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-AN7A66NS.cjs","sourcesContent":[null,"import type { TVProps } from '@fuf-stack/pixel-utils';\nimport type { ButtonProps as HeroButtonProps } from '@heroui/button';\nimport type { ReactNode } from 'react';\n\nimport { Button as HeroButton } from '@heroui/button';\nimport { button as heroButtonVariants } from '@heroui/theme';\n\nimport { tv } from '@fuf-stack/pixel-utils';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n info: '',\n ...heroButtonVariants.variants.color,\n },\n variant: {\n ...heroButtonVariants.variants.variant,\n },\n size: {\n ...heroButtonVariants.variants.size,\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n {\n color: 'info',\n variant: 'solid',\n class: 'bg-info text-info-foreground',\n },\n {\n color: 'info',\n variant: 'shadow',\n class: 'text-info-foreground\" bg-info shadow-lg shadow-info/40',\n },\n {\n color: 'info',\n variant: 'bordered',\n class: 'border-medium border-info bg-transparent text-info',\n },\n {\n color: 'info',\n variant: 'flat',\n class: 'bg-info/20 text-info-600',\n },\n {\n color: 'info',\n variant: 'faded',\n class: 'border-default bg-default-100 text-info',\n },\n {\n color: 'info',\n variant: 'light',\n class: 'bg-transparent text-info data-[hover=true]:bg-info-100',\n },\n {\n color: 'info',\n variant: 'ghost',\n class:\n 'border-info text-info data-[hover=true]:!bg-info data-[hover=true]:!text-info-foreground',\n },\n ],\n});\n\ntype VariantProps = TVProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** content of the button */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** color of the button */\n color?: HeroButtonProps['color'];\n /** disables the button */\n disabled?: boolean;\n /** disables all animations */\n disableAnimation?: boolean;\n /** shows loading animation */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** click event handler */\n onClick?: HeroButtonProps['onPress'];\n /** border radius size */\n radius?: HeroButtonProps['radius'];\n /** size options */\n size?: HeroButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** HTML button type attribute */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** visual style variant */\n variant?: HeroButtonProps['variant'];\n}\n\n/**\n * Button component based on [HeroUI Button](https://www.heroui.com//docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n radius = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <HeroButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n radius={radius}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </HeroButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://www.heroui.com//docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"h-5 w-5 animate-spin text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"]}
|
|
@@ -76,12 +76,13 @@ var ProgressCircular = ({
|
|
|
76
76
|
hasError = false,
|
|
77
77
|
percent,
|
|
78
78
|
disableAnimation = false,
|
|
79
|
+
disableFinishedState = false,
|
|
79
80
|
size = "md",
|
|
80
81
|
color = "info",
|
|
81
|
-
strokeWidth:
|
|
82
|
+
strokeWidth: strokeWidthProp = void 0
|
|
82
83
|
}) => {
|
|
83
84
|
const isInitialRenderCycle = useIsInitialRenderCycle();
|
|
84
|
-
const isFinished = !hasError && percent >= 100;
|
|
85
|
+
const isFinished = !hasError && percent >= 100 && !disableFinishedState;
|
|
85
86
|
const variants = progressCircularVariants({
|
|
86
87
|
color,
|
|
87
88
|
hasError,
|
|
@@ -90,8 +91,8 @@ var ProgressCircular = ({
|
|
|
90
91
|
});
|
|
91
92
|
const classNames = variantsToClassNames(variants, className, "base");
|
|
92
93
|
let value = format(percent);
|
|
93
|
-
let strokeWidth =
|
|
94
|
-
if (!
|
|
94
|
+
let strokeWidth = strokeWidthProp;
|
|
95
|
+
if (!strokeWidth) {
|
|
95
96
|
switch (size) {
|
|
96
97
|
case "xs":
|
|
97
98
|
strokeWidth = 2;
|
|
@@ -139,4 +140,4 @@ export {
|
|
|
139
140
|
ProgressCircular_default,
|
|
140
141
|
ProgressCircular_default2
|
|
141
142
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
143
|
+
//# sourceMappingURL=chunk-ESLZ4HYA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ProgressCircular/ProgressCircular.tsx","../src/ProgressCircular/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { CircularProgressProps as HeroCircularProgressProps } from '@heroui/progress';\nimport type { ReactNode } from 'react';\n\nimport { FaCheck, FaTimes } from 'react-icons/fa';\n\nimport { CircularProgress as HeroCircularProgress } from '@heroui/progress';\nimport { circularProgress as heroCircularProgressVariants } from '@heroui/theme';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useIsInitialRenderCycle } from '../hooks';\n\nexport const progressCircularVariants = tv({\n slots: {\n // wrapper around the whole component\n base: '',\n // indicator of the circle (finished part)\n indicator: '',\n // label next to the svgWrapper\n label: '',\n // wrapper for the circle\n svg: '',\n // wrapper around progress svg and value span\n svgWrapper: '',\n // track of the circle (not finished part)\n track: 'stroke-default-300',\n // outer span next to the svg\n value: '',\n },\n variants: {\n color: {\n info: {\n svg: 'text-info',\n },\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/progress.ts\n ...heroCircularProgressVariants.variants.color,\n },\n hasError: {\n true: {\n svg: 'text-danger',\n },\n },\n isFinished: {\n true: {\n svg: 'text-success',\n },\n },\n size: {\n xs: {\n svg: 'h-10 w-10',\n value: 'text-[0.6rem]',\n },\n sm: {\n svg: 'h-12 w-12',\n value: 'text-xs',\n },\n md: {\n svg: 'h-16 w-16',\n value: 'text-md',\n },\n lg: {\n svg: 'h-20 w-20',\n value: 'text-lg',\n },\n xl: {\n svg: 'h-24 w-24',\n value: 'text-xl',\n },\n },\n },\n});\n\ntype VariantProps = TVProps<typeof progressCircularVariants>;\ntype ClassName = TVClassName<typeof progressCircularVariants>;\n\nexport interface ProgressCircularProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** CSS class name */\n className?: ClassName;\n /** color options */\n color?: VariantProps['color'];\n /** disables all animations */\n disableAnimation?: boolean;\n /** disables special finished state (checkmark icon and success color) */\n disableFinishedState?: boolean;\n /** formats the display value of the progress in the center */\n format?: (percent?: number) => ReactNode;\n /** enables error version */\n hasError?: boolean;\n /** percentage / progress of the circular progress bar */\n percent: number;\n /** size options */\n size?: VariantProps['size'];\n /** stroke width of the circular progress bar */\n strokeWidth?: number;\n}\n\n/** formats percent with percent sign */\nconst defaultFormat = (percent = 0) => `${percent}%`;\n\n/**\n * ProgressCircular component based on [HeroUI CircularProgress](https://www.heroui.com/docs/components/circular-progress)\n */\nconst ProgressCircular = ({\n ariaLabel = 'progress',\n className = undefined,\n format = defaultFormat,\n hasError = false,\n percent,\n disableAnimation = false,\n disableFinishedState = false,\n size = 'md',\n color = 'info',\n strokeWidth: strokeWidthProp = undefined,\n}: ProgressCircularProps) => {\n // used to disable animation on initial render cycle\n const isInitialRenderCycle = useIsInitialRenderCycle();\n\n // Apply finished state if percent is 100 or more and not disabled by disableFinishedState\n const isFinished = !hasError && percent >= 100 && !disableFinishedState;\n\n const variants = progressCircularVariants({\n color,\n hasError,\n isFinished,\n size,\n });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n // format value\n let value = format(percent);\n\n let strokeWidth = strokeWidthProp;\n // set strokeWidth based on size prop when no strokeWidth provided\n if (!strokeWidth) {\n switch (size) {\n case 'xs':\n strokeWidth = 2;\n break;\n case 'sm':\n strokeWidth = 1.8;\n break;\n default:\n strokeWidth = 1.6;\n break;\n }\n }\n\n // handle special states\n let progressColor: VariantProps['color'] = color;\n if (hasError) {\n progressColor = 'danger';\n value = <FaTimes className=\"text-danger\" />;\n } else if (isFinished) {\n progressColor = 'success';\n value = <FaCheck className=\"text-success\" />;\n }\n\n // pass only HeroUI colors as props\n const heroUiColor = Object.keys(\n heroCircularProgressVariants.variants.color,\n ).includes(color)\n ? (progressColor as HeroCircularProgressProps['color'])\n : undefined;\n\n return (\n <HeroCircularProgress\n aria-label={ariaLabel}\n classNames={classNames}\n color={heroUiColor}\n disableAnimation={isInitialRenderCycle || disableAnimation}\n showValueLabel\n strokeWidth={strokeWidth}\n // INFO: we do NOT use spinner animation when no percent provided\n value={percent || 0}\n valueLabel={value}\n />\n );\n};\n\nexport default ProgressCircular;\n","import ProgressCircular, { progressCircularVariants } from './ProgressCircular';\n\nexport type { ProgressCircularProps } from './ProgressCircular';\n\nexport { ProgressCircular, progressCircularVariants };\n\nexport default ProgressCircular;\n"],"mappings":";;;;;;;;AAIA,SAAS,SAAS,eAAe;AAEjC,SAAS,oBAAoB,4BAA4B;AACzD,SAAS,oBAAoB,oCAAoC;AAEjE,SAAS,IAAI,4BAA4B;AAiJ7B;AA7IL,IAAM,2BAA2B,GAAG;AAAA,EACzC,OAAO;AAAA;AAAA,IAEL,MAAM;AAAA;AAAA,IAEN,WAAW;AAAA;AAAA,IAEX,OAAO;AAAA;AAAA,IAEP,KAAK;AAAA;AAAA,IAEL,YAAY;AAAA;AAAA,IAEZ,OAAO;AAAA;AAAA,IAEP,OAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,KAAK;AAAA,MACP;AAAA,OAEG,6BAA6B,SAAS;AAAA,IAE3C,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,KAAK;AAAA,MACP;AAAA,IACF;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,KAAK;AAAA,MACP;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,IAAI;AAAA,QACF,KAAK;AAAA,QACL,OAAO;AAAA,MACT;AAAA,MACA,IAAI;AAAA,QACF,KAAK;AAAA,QACL,OAAO;AAAA,MACT;AAAA,MACA,IAAI;AAAA,QACF,KAAK;AAAA,QACL,OAAO;AAAA,MACT;AAAA,MACA,IAAI;AAAA,QACF,KAAK;AAAA,QACL,OAAO;AAAA,MACT;AAAA,MACA,IAAI;AAAA,QACF,KAAK;AAAA,QACL,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF,CAAC;AA6BD,IAAM,gBAAgB,CAAC,UAAU,MAAM,GAAG,OAAO;AAKjD,IAAM,mBAAmB,CAAC;AAAA,EACxB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa,kBAAkB;AACjC,MAA6B;AAE3B,QAAM,uBAAuB,wBAAwB;AAGrD,QAAM,aAAa,CAAC,YAAY,WAAW,OAAO,CAAC;AAEnD,QAAM,WAAW,yBAAyB;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,qBAAqB,UAAU,WAAW,MAAM;AAGnE,MAAI,QAAQ,OAAO,OAAO;AAE1B,MAAI,cAAc;AAElB,MAAI,CAAC,aAAa;AAChB,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,sBAAc;AACd;AAAA,MACF,KAAK;AACH,sBAAc;AACd;AAAA,MACF;AACE,sBAAc;AACd;AAAA,IACJ;AAAA,EACF;AAGA,MAAI,gBAAuC;AAC3C,MAAI,UAAU;AACZ,oBAAgB;AAChB,YAAQ,oBAAC,WAAQ,WAAU,eAAc;AAAA,EAC3C,WAAW,YAAY;AACrB,oBAAgB;AAChB,YAAQ,oBAAC,WAAQ,WAAU,gBAAe;AAAA,EAC5C;AAGA,QAAM,cAAc,OAAO;AAAA,IACzB,6BAA6B,SAAS;AAAA,EACxC,EAAE,SAAS,KAAK,IACX,gBACD;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ;AAAA,MACA,OAAO;AAAA,MACP,kBAAkB,wBAAwB;AAAA,MAC1C,gBAAc;AAAA,MACd;AAAA,MAEA,OAAO,WAAW;AAAA,MAClB,YAAY;AAAA;AAAA,EACd;AAEJ;AAEA,IAAO,2BAAQ;;;AChLf,IAAOA,4BAAQ;","names":["ProgressCircular_default"]}
|
|
@@ -13,10 +13,14 @@ import { tv, variantsToClassNames } from "@fuf-stack/pixel-utils";
|
|
|
13
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
var popoverVariants = tv({
|
|
15
15
|
slots: {
|
|
16
|
-
body: "w-full px-
|
|
16
|
+
body: "w-full px-4 py-2",
|
|
17
17
|
content: "flex max-h-[80vh] flex-col p-0",
|
|
18
|
-
footer: "w-full px-
|
|
19
|
-
|
|
18
|
+
footer: "w-full px-4 py-2",
|
|
19
|
+
footerWrapper: "w-full",
|
|
20
|
+
footerDivider: "m-0 w-full p-0",
|
|
21
|
+
header: "w-full px-4 pb-1 pt-2 text-lg font-semibold",
|
|
22
|
+
headerWrapper: "w-full",
|
|
23
|
+
headerDivider: "m-0 w-full p-0",
|
|
20
24
|
trigger: ""
|
|
21
25
|
}
|
|
22
26
|
});
|
|
@@ -57,14 +61,14 @@ var Popover_default = ({
|
|
|
57
61
|
/* @__PURE__ */ jsx("button", { className: className.trigger, children })
|
|
58
62
|
) }),
|
|
59
63
|
/* @__PURE__ */ jsxs(PopoverContent, { "data-testid": contentTestId, children: [
|
|
60
|
-
title && /* @__PURE__ */ jsxs("div", { className: className.
|
|
61
|
-
title,
|
|
62
|
-
/* @__PURE__ */ jsx("hr", {})
|
|
64
|
+
title && /* @__PURE__ */ jsxs("div", { className: className.headerWrapper, children: [
|
|
65
|
+
/* @__PURE__ */ jsx("div", { className: className.header, children: title }),
|
|
66
|
+
/* @__PURE__ */ jsx("hr", { className: className.headerDivider })
|
|
63
67
|
] }),
|
|
64
68
|
/* @__PURE__ */ jsx(ScrollShadow_default, { className: className.body, children: content }),
|
|
65
|
-
footer && /* @__PURE__ */ jsxs("div", { className: className.
|
|
66
|
-
/* @__PURE__ */ jsx("hr", {}),
|
|
67
|
-
footer
|
|
69
|
+
footer && /* @__PURE__ */ jsxs("div", { className: className.footerWrapper, children: [
|
|
70
|
+
/* @__PURE__ */ jsx("hr", { className: className.footerDivider }),
|
|
71
|
+
/* @__PURE__ */ jsx("div", { className: className.footer, children: footer })
|
|
68
72
|
] })
|
|
69
73
|
] })
|
|
70
74
|
]
|
|
@@ -79,4 +83,4 @@ export {
|
|
|
79
83
|
Popover_default,
|
|
80
84
|
Popover_default2
|
|
81
85
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-JKZIVTWA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { PopoverProps as HeroPopoverProps } from '@heroui/popover';\nimport type { ReactNode } from 'react';\nimport type { ButtonProps } from '../Button';\n\nimport { Button } from '@heroui/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@heroui/popover';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport ScrollShadow from '../ScrollShadow/ScrollShadow';\n\n// popover styling variants\nexport const popoverVariants = tv({\n slots: {\n body: 'w-full px-4 py-2',\n content: 'flex max-h-[80vh] flex-col p-0',\n footer: 'w-full px-4 py-2',\n footerWrapper: 'w-full',\n footerDivider: 'm-0 w-full p-0',\n header: 'w-full px-4 pb-1 pt-2 text-lg font-semibold',\n headerWrapper: 'w-full',\n headerDivider: 'm-0 w-full p-0',\n trigger: '',\n },\n});\n\ntype VariantProps = TVProps<typeof popoverVariants>;\ntype ClassName = TVClassName<typeof popoverVariants>;\n\nexport interface PopoverProps extends VariantProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** popover footer */\n footer?: ReactNode;\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** placement of the popover relative to its trigger reference */\n placement?: HeroPopoverProps['placement'];\n /** The container element in which the overlay portal will be placed. */\n portalContainer?: HeroPopoverProps['portalContainer'];\n /** Whether to block scrolling outside the popover */\n shouldBlockScroll?: boolean;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** Popover title */\n title?: ReactNode;\n /** When defined a Button will be rendered as trigger (with provided props) instead of unstyled html button */\n triggerButtonProps?: Pick<\n ButtonProps,\n | 'ariaLabel'\n | 'className'\n | 'color'\n | 'disableAnimation'\n | 'disabled'\n | 'size'\n | 'testId'\n | 'variant'\n >;\n}\n\n/**\n * Popover component based on [HeroUI Card](https://www.heroui.com//docs/components/popover)\n */\nexport default ({\n children = null,\n className: _className = undefined,\n content,\n contentTestId = undefined,\n footer = undefined,\n openControlled = undefined,\n placement = 'top',\n portalContainer = undefined,\n shouldBlockScroll = undefined,\n testId = undefined,\n title = undefined,\n triggerButtonProps = undefined,\n}: PopoverProps) => {\n // className from slots\n const variants = popoverVariants();\n const className = variantsToClassNames(variants, _className, 'trigger');\n\n return (\n <Popover\n classNames={className}\n placement={placement}\n portalContainer={portalContainer}\n radius=\"sm\"\n shouldBlockScroll={shouldBlockScroll}\n showArrow\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {triggerButtonProps ? (\n // TODO: currently we have to use @heroui/button because\n // passing ref does not work (even with forwardRef in Button)\n // eslint-disable-next-line react/jsx-props-no-spreading\n <Button className={className.trigger} {...triggerButtonProps}>\n {children}\n </Button>\n ) : (\n // eslint-disable-next-line react/button-has-type\n <button className={className.trigger}>{children}</button>\n )}\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n {title && (\n <div className={className.headerWrapper}>\n <div className={className.header}>{title}</div>\n <hr className={className.headerDivider} />\n </div>\n )}\n <ScrollShadow className={className.body}>{content}</ScrollShadow>\n {footer && (\n <div className={className.footerWrapper}>\n <hr className={className.footerDivider} />\n <div className={className.footer}>{footer}</div>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"],"mappings":";;;;;;;;;AAKA,SAAS,cAAc;AACvB,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,IAAI,4BAA4B;AAmG/B,cAUA,YAVA;AA9FH,IAAM,kBAAkB,GAAG;AAAA,EAChC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,eAAe;AAAA,IACf,SAAS;AAAA,EACX;AACF,CAAC;AA6CD,IAAO,kBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,WAAW,aAAa;AAAA,EACxB;AAAA,EACA,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,qBAAqB;AACvB,MAAoB;AAElB,QAAM,WAAW,gBAAgB;AACjC,QAAM,YAAY,qBAAqB,UAAU,YAAY,SAAS;AAEtE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,QAAO;AAAA,MACP;AAAA,MACA,WAAS;AAAA,OAEJ,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC,IAVN;AAAA,MAYC;AAAA,4BAAC,kBAAe,eAAa,QAE1B;AAAA;AAAA;AAAA;AAAA,UAIC,oBAAC,uCAAO,WAAW,UAAU,WAAa,qBAAzC,EACE,WACH;AAAA;AAAA;AAAA,UAGA,oBAAC,YAAO,WAAW,UAAU,SAAU,UAAS;AAAA,WAEpD;AAAA,QACA,qBAAC,kBAAe,eAAa,eAC1B;AAAA,mBACC,qBAAC,SAAI,WAAW,UAAU,eACxB;AAAA,gCAAC,SAAI,WAAW,UAAU,QAAS,iBAAM;AAAA,YACzC,oBAAC,QAAG,WAAW,UAAU,eAAe;AAAA,aAC1C;AAAA,UAEF,oBAAC,wBAAa,WAAW,UAAU,MAAO,mBAAQ;AAAA,UACjD,UACC,qBAAC,SAAI,WAAW,UAAU,eACxB;AAAA,gCAAC,QAAG,WAAW,UAAU,eAAe;AAAA,YACxC,oBAAC,SAAI,WAAW,UAAU,QAAS,kBAAO;AAAA,aAC5C;AAAA,WAEJ;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC9HA,IAAOA,mBAAQ;","names":["Popover_default"]}
|
|
@@ -54,6 +54,7 @@ var Progress = ({
|
|
|
54
54
|
className = void 0,
|
|
55
55
|
color = "info",
|
|
56
56
|
disableAnimation = false,
|
|
57
|
+
disableFinishedState = false,
|
|
57
58
|
format = defaultFormat,
|
|
58
59
|
indeterminate = false,
|
|
59
60
|
label = void 0,
|
|
@@ -63,8 +64,9 @@ var Progress = ({
|
|
|
63
64
|
testId = void 0
|
|
64
65
|
}) => {
|
|
65
66
|
const isInitialRenderCycle = useIsInitialRenderCycle();
|
|
67
|
+
const isFinished = percent >= 100 && !disableFinishedState;
|
|
66
68
|
let progressColor = color;
|
|
67
|
-
if (
|
|
69
|
+
if (isFinished) {
|
|
68
70
|
progressColor = "success";
|
|
69
71
|
}
|
|
70
72
|
const variants = progressVariants({ color: progressColor });
|
|
@@ -96,4 +98,4 @@ export {
|
|
|
96
98
|
Progress_default,
|
|
97
99
|
Progress_default2
|
|
98
100
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-JORMLHKF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Progress/Progress.tsx","../src/Progress/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport { Progress as HeroProgress } from '@heroui/progress';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useIsInitialRenderCycle } from '../hooks';\n\n// progress styling variants\nexport const progressVariants = tv({\n slots: {\n // wrapper around the whole component\n base: '',\n // indicator of the progress (finished part)\n indicator: '',\n // label at the top left of the progress bar\n label: '',\n // wrapper around progress label and label span\n labelWrapper: '',\n // track of the progress (not finished part)\n track: '',\n // span around the progress value\n value: '',\n },\n variants: {\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/progress.ts\n color: {\n danger: {\n indicator: 'bg-danger',\n },\n default: {\n indicator: 'bg-default-400',\n },\n info: {\n indicator: 'bg-info',\n },\n primary: {\n indicator: 'bg-primary',\n },\n secondary: {\n indicator: 'bg-secondary',\n },\n success: {\n indicator: 'bg-success',\n },\n warning: {\n indicator: 'bg-warning',\n },\n },\n },\n});\n\nexport type VariantProps = TVProps<typeof progressVariants>;\ntype ClassName = TVClassName<typeof progressVariants>;\n\nexport interface ProgressProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** CSS class name */\n className?: ClassName;\n /** color of the progress bar */\n color?: VariantProps['color'];\n /** disables all animations */\n disableAnimation?: boolean;\n /** disables special finished state (checkmark icon and success color) */\n disableFinishedState?: boolean;\n /** function to format the progress value */\n format?: (percent: number) => ReactNode;\n /** shows indeterminate progress animation */\n indeterminate?: boolean;\n /** label of the progress bar */\n label?: ReactNode;\n /** percentage / progress of the progress bar */\n percent: number;\n /** whether to show the value label */\n showValueLabel?: boolean;\n /** size of the progress bar */\n size?: 'sm' | 'md' | 'lg';\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/** formats percent with percent sign */\nconst defaultFormat = (percent = 0) => `${percent}%`;\n\n/**\n * Progress component based on [HeroUI Progress](https://www.heroui.com//docs/components/progress)\n */\nconst Progress = ({\n ariaLabel = 'progress',\n className = undefined,\n color = 'info',\n disableAnimation = false,\n disableFinishedState = false,\n format = defaultFormat,\n indeterminate = false,\n label = undefined,\n percent,\n showValueLabel = false,\n size = 'md',\n testId = undefined,\n}: ProgressProps) => {\n // used to disable animation on initial render cycle\n const isInitialRenderCycle = useIsInitialRenderCycle();\n\n // Apply finished state if percent is 100 or more and not disabled by disableFinishedState\n const isFinished = percent >= 100 && !disableFinishedState;\n\n // handle special states\n let progressColor: VariantProps['color'] = color;\n if (isFinished) {\n progressColor = 'success';\n }\n\n const variants = progressVariants({ color: progressColor });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n const value = format(percent);\n\n return (\n <HeroProgress\n aria-label={ariaLabel}\n classNames={classNames}\n data-testid={testId}\n disableAnimation={isInitialRenderCycle || disableAnimation}\n isIndeterminate={indeterminate}\n label={label}\n showValueLabel={showValueLabel}\n size={size}\n value={percent || 0}\n valueLabel={!!percent && value}\n />\n );\n};\n\nexport default Progress;\n","import Progress, { progressVariants } from './Progress';\n\nexport type { ProgressProps } from './Progress';\n\nexport { Progress, progressVariants };\n\nexport default Progress;\n"],"mappings":";;;;;AAGA,SAAS,YAAY,oBAAoB;AAEzC,SAAS,IAAI,4BAA4B;AAoHrC;AA/GG,IAAM,mBAAmB,GAAG;AAAA,EACjC,OAAO;AAAA;AAAA,IAEL,MAAM;AAAA;AAAA,IAEN,WAAW;AAAA;AAAA,IAEX,OAAO;AAAA;AAAA,IAEP,cAAc;AAAA;AAAA,IAEd,OAAO;AAAA;AAAA,IAEP,OAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA;AAAA,IAER,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,QACP,WAAW;AAAA,MACb;AAAA,MACA,MAAM;AAAA,QACJ,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,QACP,WAAW;AAAA,MACb;AAAA,MACA,WAAW;AAAA,QACT,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,QACP,WAAW;AAAA,MACb;AAAA,MACA,SAAS;AAAA,QACP,WAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAiCD,IAAM,gBAAgB,CAAC,UAAU,MAAM,GAAG,OAAO;AAKjD,IAAM,WAAW,CAAC;AAAA,EAChB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR;AAAA,EACA,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,SAAS;AACX,MAAqB;AAEnB,QAAM,uBAAuB,wBAAwB;AAGrD,QAAM,aAAa,WAAW,OAAO,CAAC;AAGtC,MAAI,gBAAuC;AAC3C,MAAI,YAAY;AACd,oBAAgB;AAAA,EAClB;AAEA,QAAM,WAAW,iBAAiB,EAAE,OAAO,cAAc,CAAC;AAC1D,QAAM,aAAa,qBAAqB,UAAU,WAAW,MAAM;AAEnE,QAAM,QAAQ,OAAO,OAAO;AAE5B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ;AAAA,MACA,eAAa;AAAA,MACb,kBAAkB,wBAAwB;AAAA,MAC1C,iBAAiB;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,WAAW;AAAA,MAClB,YAAY,CAAC,CAAC,WAAW;AAAA;AAAA,EAC3B;AAEJ;AAEA,IAAO,mBAAQ;;;AClIf,IAAOA,oBAAQ;","names":["Progress_default"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Button_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RELR2OCI.js";
|
|
4
4
|
import {
|
|
5
5
|
__commonJS,
|
|
6
6
|
__toESM
|
|
@@ -2709,4 +2709,4 @@ export {
|
|
|
2709
2709
|
Json_default,
|
|
2710
2710
|
Json_default2
|
|
2711
2711
|
};
|
|
2712
|
-
//# sourceMappingURL=chunk-
|
|
2712
|
+
//# sourceMappingURL=chunk-Q3WI7NPI.js.map
|
|
@@ -12,7 +12,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
12
12
|
var LoadingSpinner_default = () => /* @__PURE__ */ jsxs(
|
|
13
13
|
"svg",
|
|
14
14
|
{
|
|
15
|
-
className: "
|
|
15
|
+
className: "h-5 w-5 animate-spin text-current",
|
|
16
16
|
fill: "none",
|
|
17
17
|
viewBox: "0 0 24 24",
|
|
18
18
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -111,6 +111,7 @@ var Button = ({
|
|
|
111
111
|
icon = void 0,
|
|
112
112
|
loading = false,
|
|
113
113
|
onClick = void 0,
|
|
114
|
+
radius = void 0,
|
|
114
115
|
size = void 0,
|
|
115
116
|
testId = void 0,
|
|
116
117
|
type = void 0,
|
|
@@ -129,6 +130,7 @@ var Button = ({
|
|
|
129
130
|
isIconOnly: !!(icon && !children),
|
|
130
131
|
isLoading: loading,
|
|
131
132
|
onPress: onClick,
|
|
133
|
+
radius,
|
|
132
134
|
size,
|
|
133
135
|
spinner: /* @__PURE__ */ jsx2(LoadingSpinner_default, {}),
|
|
134
136
|
type,
|
|
@@ -150,4 +152,4 @@ export {
|
|
|
150
152
|
Button_default,
|
|
151
153
|
Button_default2
|
|
152
154
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
155
|
+
//# sourceMappingURL=chunk-RELR2OCI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"sourcesContent":["import type { TVProps } from '@fuf-stack/pixel-utils';\nimport type { ButtonProps as HeroButtonProps } from '@heroui/button';\nimport type { ReactNode } from 'react';\n\nimport { Button as HeroButton } from '@heroui/button';\nimport { button as heroButtonVariants } from '@heroui/theme';\n\nimport { tv } from '@fuf-stack/pixel-utils';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n info: '',\n ...heroButtonVariants.variants.color,\n },\n variant: {\n ...heroButtonVariants.variants.variant,\n },\n size: {\n ...heroButtonVariants.variants.size,\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n {\n color: 'info',\n variant: 'solid',\n class: 'bg-info text-info-foreground',\n },\n {\n color: 'info',\n variant: 'shadow',\n class: 'text-info-foreground\" bg-info shadow-lg shadow-info/40',\n },\n {\n color: 'info',\n variant: 'bordered',\n class: 'border-medium border-info bg-transparent text-info',\n },\n {\n color: 'info',\n variant: 'flat',\n class: 'bg-info/20 text-info-600',\n },\n {\n color: 'info',\n variant: 'faded',\n class: 'border-default bg-default-100 text-info',\n },\n {\n color: 'info',\n variant: 'light',\n class: 'bg-transparent text-info data-[hover=true]:bg-info-100',\n },\n {\n color: 'info',\n variant: 'ghost',\n class:\n 'border-info text-info data-[hover=true]:!bg-info data-[hover=true]:!text-info-foreground',\n },\n ],\n});\n\ntype VariantProps = TVProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** content of the button */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** color of the button */\n color?: HeroButtonProps['color'];\n /** disables the button */\n disabled?: boolean;\n /** disables all animations */\n disableAnimation?: boolean;\n /** shows loading animation */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** click event handler */\n onClick?: HeroButtonProps['onPress'];\n /** border radius size */\n radius?: HeroButtonProps['radius'];\n /** size options */\n size?: HeroButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** HTML button type attribute */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** visual style variant */\n variant?: HeroButtonProps['variant'];\n}\n\n/**\n * Button component based on [HeroUI Button](https://www.heroui.com//docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n radius = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <HeroButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n radius={radius}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </HeroButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://www.heroui.com//docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"h-5 w-5 animate-spin text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"],"mappings":";;;;;AAIA,SAAS,UAAU,kBAAkB;AACrC,SAAS,UAAU,0BAA0B;AAE7C,SAAS,UAAU;;;ACFjB,SAME,KANF;AADF,IAAO,yBAAQ,MACb;AAAA,EAAC;AAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,SAAQ;AAAA,IACR,OAAM;AAAA,IAEN;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;;;AD0GE,SAaW,OAAAA,MAbX,QAAAC,aAAA;AAvHG,IAAM,iBAAiB,GAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,OACH,mBAAmB,SAAS;AAAA,IAEjC,SAAS,mBACJ,mBAAmB,SAAS;AAAA,IAEjC,MAAM,mBACD,mBAAmB,SAAS;AAAA,EAEnC;AAAA,EACA,kBAAkB;AAAA;AAAA,IAEhB;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA;AAAA,IAEA;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OACE;AAAA,IACJ;AAAA,EACF;AACF,CAAC;AAsCD,IAAM,SAAS,CAAC;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ,MAAmB;AACjB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW,eAAe,EAAE,OAAO,SAAS,UAAU,CAAC;AAAA,MACvD;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY,CAAC,EAAE,QAAQ,CAAC;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA,SAAS,gBAAAD,KAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AEnJf,IAAOE,kBAAQ;","names":["jsx","jsxs","Button_default"]}
|
|
@@ -13,10 +13,14 @@ var _pixelutils = require('@fuf-stack/pixel-utils');
|
|
|
13
13
|
var _jsxruntime = require('react/jsx-runtime');
|
|
14
14
|
var popoverVariants = _pixelutils.tv.call(void 0, {
|
|
15
15
|
slots: {
|
|
16
|
-
body: "w-full px-
|
|
16
|
+
body: "w-full px-4 py-2",
|
|
17
17
|
content: "flex max-h-[80vh] flex-col p-0",
|
|
18
|
-
footer: "w-full px-
|
|
19
|
-
|
|
18
|
+
footer: "w-full px-4 py-2",
|
|
19
|
+
footerWrapper: "w-full",
|
|
20
|
+
footerDivider: "m-0 w-full p-0",
|
|
21
|
+
header: "w-full px-4 pb-1 pt-2 text-lg font-semibold",
|
|
22
|
+
headerWrapper: "w-full",
|
|
23
|
+
headerDivider: "m-0 w-full p-0",
|
|
20
24
|
trigger: ""
|
|
21
25
|
}
|
|
22
26
|
});
|
|
@@ -57,14 +61,14 @@ var Popover_default = ({
|
|
|
57
61
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { className: className.trigger, children })
|
|
58
62
|
) }),
|
|
59
63
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _popover.PopoverContent, { "data-testid": contentTestId, children: [
|
|
60
|
-
title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: className.
|
|
61
|
-
title,
|
|
62
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", {})
|
|
64
|
+
title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: className.headerWrapper, children: [
|
|
65
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: className.header, children: title }),
|
|
66
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", { className: className.headerDivider })
|
|
63
67
|
] }),
|
|
64
68
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTX2VP4J7cjs.ScrollShadow_default, { className: className.body, children: content }),
|
|
65
|
-
footer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: className.
|
|
66
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", {}),
|
|
67
|
-
footer
|
|
69
|
+
footer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: className.footerWrapper, children: [
|
|
70
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", { className: className.footerDivider }),
|
|
71
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: className.footer, children: footer })
|
|
68
72
|
] })
|
|
69
73
|
] })
|
|
70
74
|
]
|
|
@@ -79,4 +83,4 @@ var Popover_default2 = Popover_default;
|
|
|
79
83
|
|
|
80
84
|
|
|
81
85
|
exports.Popover_default = Popover_default; exports.Popover_default2 = Popover_default2;
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-SYPFLG7E.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-SYPFLG7E.cjs","../src/Popover/Popover.tsx","../src/Popover/index.ts"],"names":["Popover_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-SYPFLG7E.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { PopoverProps as HeroPopoverProps } from '@heroui/popover';\nimport type { ReactNode } from 'react';\nimport type { ButtonProps } from '../Button';\n\nimport { Button } from '@heroui/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@heroui/popover';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport ScrollShadow from '../ScrollShadow/ScrollShadow';\n\n// popover styling variants\nexport const popoverVariants = tv({\n slots: {\n body: 'w-full px-4 py-2',\n content: 'flex max-h-[80vh] flex-col p-0',\n footer: 'w-full px-4 py-2',\n footerWrapper: 'w-full',\n footerDivider: 'm-0 w-full p-0',\n header: 'w-full px-4 pb-1 pt-2 text-lg font-semibold',\n headerWrapper: 'w-full',\n headerDivider: 'm-0 w-full p-0',\n trigger: '',\n },\n});\n\ntype VariantProps = TVProps<typeof popoverVariants>;\ntype ClassName = TVClassName<typeof popoverVariants>;\n\nexport interface PopoverProps extends VariantProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** popover footer */\n footer?: ReactNode;\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** placement of the popover relative to its trigger reference */\n placement?: HeroPopoverProps['placement'];\n /** The container element in which the overlay portal will be placed. */\n portalContainer?: HeroPopoverProps['portalContainer'];\n /** Whether to block scrolling outside the popover */\n shouldBlockScroll?: boolean;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** Popover title */\n title?: ReactNode;\n /** When defined a Button will be rendered as trigger (with provided props) instead of unstyled html button */\n triggerButtonProps?: Pick<\n ButtonProps,\n | 'ariaLabel'\n | 'className'\n | 'color'\n | 'disableAnimation'\n | 'disabled'\n | 'size'\n | 'testId'\n | 'variant'\n >;\n}\n\n/**\n * Popover component based on [HeroUI Card](https://www.heroui.com//docs/components/popover)\n */\nexport default ({\n children = null,\n className: _className = undefined,\n content,\n contentTestId = undefined,\n footer = undefined,\n openControlled = undefined,\n placement = 'top',\n portalContainer = undefined,\n shouldBlockScroll = undefined,\n testId = undefined,\n title = undefined,\n triggerButtonProps = undefined,\n}: PopoverProps) => {\n // className from slots\n const variants = popoverVariants();\n const className = variantsToClassNames(variants, _className, 'trigger');\n\n return (\n <Popover\n classNames={className}\n placement={placement}\n portalContainer={portalContainer}\n radius=\"sm\"\n shouldBlockScroll={shouldBlockScroll}\n showArrow\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {triggerButtonProps ? (\n // TODO: currently we have to use @heroui/button because\n // passing ref does not work (even with forwardRef in Button)\n // eslint-disable-next-line react/jsx-props-no-spreading\n <Button className={className.trigger} {...triggerButtonProps}>\n {children}\n </Button>\n ) : (\n // eslint-disable-next-line react/button-has-type\n <button className={className.trigger}>{children}</button>\n )}\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n {title && (\n <div className={className.headerWrapper}>\n <div className={className.header}>{title}</div>\n <hr className={className.headerDivider} />\n </div>\n )}\n <ScrollShadow className={className.body}>{content}</ScrollShadow>\n {footer && (\n <div className={className.footerWrapper}>\n <hr className={className.footerDivider} />\n <div className={className.footer}>{footer}</div>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"]}
|
|
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
5
5
|
var tooltipVariants = tv({
|
|
6
6
|
slots: {
|
|
7
7
|
base: "",
|
|
8
|
-
content: "",
|
|
8
|
+
content: "px-3 py-1.5",
|
|
9
9
|
wrapper: "cursor-pointer"
|
|
10
10
|
}
|
|
11
11
|
});
|
|
@@ -49,4 +49,4 @@ export {
|
|
|
49
49
|
Tooltip_default,
|
|
50
50
|
Tooltip_default2
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-TG2HRVJX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { TooltipPlacement as HeroTooltipPlacement } from '@heroui/tooltip';\nimport type { ReactNode } from 'react';\n\nimport { Tooltip as HeroTooltip } from '@heroui/tooltip';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// tooltip variants\nexport const tooltipVariants = tv({\n slots: {\n base: '',\n content: 'px-3 py-1.5',\n wrapper: 'cursor-pointer',\n },\n});\n\ntype VariantProps = TVProps<typeof tooltipVariants>;\ntype ClassName = TVClassName<typeof tooltipVariants>;\n\nexport type TooltipPlacement = HeroTooltipPlacement;\n\nexport interface TooltipProps extends VariantProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** delay in milliseconds before the tooltip opens. */\n closeDelay?: number;\n /** delay in milliseconds before the tooltip opens. */\n delay?: number;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [HeroUI Tooltip](https://www.heroui.com//docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className: _className = undefined,\n closeDelay = 500,\n containerPadding = 0,\n content,\n defaultOpen = false,\n delay = 0,\n onOpenChange = undefined,\n placement = 'top',\n}: TooltipProps) => {\n // classNames from slots\n const variants = tooltipVariants();\n const classNames = variantsToClassNames(variants, _className, 'base');\n\n return (\n <HeroTooltip\n classNames={classNames}\n closeDelay={closeDelay}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n delay={delay}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className={classNames.wrapper}>{children}</span>\n </HeroTooltip>\n );\n};\n\nexport default Tooltip;\n","import Tooltip from './Tooltip';\n\nexport type { TooltipProps, TooltipPlacement } from './Tooltip';\n\nexport { Tooltip };\n\nexport default Tooltip;\n"],"mappings":";AAIA,SAAS,WAAW,mBAAmB;AAEvC,SAAS,IAAI,4BAA4B;AAqEnC;AAlEC,IAAM,kBAAkB,GAAG;AAAA,EAChC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AACF,CAAC;AA+BD,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA,WAAW,aAAa;AAAA,EACxB,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB;AAAA,EACA,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,YAAY;AACd,MAAoB;AAElB,QAAM,WAAW,gBAAgB;AACjC,QAAM,aAAa,qBAAqB,UAAU,YAAY,MAAM;AAEpE,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,CAAC,MAAM,EAAE,eAAe;AAAA,MACjC;AAAA,MACA;AAAA,MACA,YAAU;AAAA,MACV,WAAS;AAAA,MAET,8BAAC,UAAK,WAAW,WAAW,SAAU,UAAS;AAAA;AAAA,EACjD;AAEJ;AAEA,IAAO,kBAAQ;;;AC1Ef,IAAOA,mBAAQ;","names":["Tooltip_default"]}
|
|
@@ -76,12 +76,13 @@ var ProgressCircular = ({
|
|
|
76
76
|
hasError = false,
|
|
77
77
|
percent,
|
|
78
78
|
disableAnimation = false,
|
|
79
|
+
disableFinishedState = false,
|
|
79
80
|
size = "md",
|
|
80
81
|
color = "info",
|
|
81
|
-
strokeWidth:
|
|
82
|
+
strokeWidth: strokeWidthProp = void 0
|
|
82
83
|
}) => {
|
|
83
84
|
const isInitialRenderCycle = _chunkOLI32URUcjs.useIsInitialRenderCycle.call(void 0, );
|
|
84
|
-
const isFinished = !hasError && percent >= 100;
|
|
85
|
+
const isFinished = !hasError && percent >= 100 && !disableFinishedState;
|
|
85
86
|
const variants = progressCircularVariants({
|
|
86
87
|
color,
|
|
87
88
|
hasError,
|
|
@@ -90,8 +91,8 @@ var ProgressCircular = ({
|
|
|
90
91
|
});
|
|
91
92
|
const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, className, "base");
|
|
92
93
|
let value = format(percent);
|
|
93
|
-
let strokeWidth =
|
|
94
|
-
if (!
|
|
94
|
+
let strokeWidth = strokeWidthProp;
|
|
95
|
+
if (!strokeWidth) {
|
|
95
96
|
switch (size) {
|
|
96
97
|
case "xs":
|
|
97
98
|
strokeWidth = 2;
|
|
@@ -139,4 +140,4 @@ var ProgressCircular_default2 = ProgressCircular_default;
|
|
|
139
140
|
|
|
140
141
|
|
|
141
142
|
exports.progressCircularVariants = progressCircularVariants; exports.ProgressCircular_default = ProgressCircular_default; exports.ProgressCircular_default2 = ProgressCircular_default2;
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
143
|
+
//# sourceMappingURL=chunk-W2EOAUKE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-W2EOAUKE.cjs","../src/ProgressCircular/ProgressCircular.tsx","../src/ProgressCircular/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACHA,oCAAiC;AAEjC,4CAAyD;AACzD,sCAAiE;AAEjE,oDAAyC;AAiJ7B,+CAAA;AA7IL,IAAM,yBAAA,EAA2B,4BAAA;AAAG,EACzC,KAAA,EAAO;AAAA;AAAA,IAEL,IAAA,EAAM,EAAA;AAAA;AAAA,IAEN,SAAA,EAAW,EAAA;AAAA;AAAA,IAEX,KAAA,EAAO,EAAA;AAAA;AAAA,IAEP,GAAA,EAAK,EAAA;AAAA;AAAA,IAEL,UAAA,EAAY,EAAA;AAAA;AAAA,IAEZ,KAAA,EAAO,oBAAA;AAAA;AAAA,IAEP,KAAA,EAAO;AAAA,EACT,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,8CAAA;AAAA,MACL,IAAA,EAAM;AAAA,QACJ,GAAA,EAAK;AAAA,MACP;AAAA,IAAA,CAAA,EAEG,uBAAA,CAA6B,QAAA,CAAS,KAAA,CAAA;AAAA,IAE3C,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,GAAA,EAAK;AAAA,MACP;AAAA,IACF,CAAA;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM;AAAA,QACJ,GAAA,EAAK;AAAA,MACP;AAAA,IACF,CAAA;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI;AAAA,QACF,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,MACT,CAAA;AAAA,MACA,EAAA,EAAI;AAAA,QACF,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,MACT,CAAA;AAAA,MACA,EAAA,EAAI;AAAA,QACF,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,MACT,CAAA;AAAA,MACA,EAAA,EAAI;AAAA,QACF,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,MACT,CAAA;AAAA,MACA,EAAA,EAAI;AAAA,QACF,GAAA,EAAK,WAAA;AAAA,QACL,KAAA,EAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF,CAAC,CAAA;AA6BD,IAAM,cAAA,EAAgB,CAAC,QAAA,EAAU,CAAA,EAAA,GAAM,CAAA,EAAA;AAKb;AACZ,EAAA;AACA,EAAA;AACH,EAAA;AACE,EAAA;AACX,EAAA;AACmB,EAAA;AACI,EAAA;AAChB,EAAA;AACC,EAAA;AACuB,EAAA;AACJ;AAEE,EAAA;AAGG,EAAA;AAEf,EAAA;AACf,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACD,EAAA;AACkB,EAAA;AAGO,EAAA;AAER,EAAA;AAEA,EAAA;AACF,IAAA;AACP,MAAA;AACW,QAAA;AACd,QAAA;AACG,MAAA;AACW,QAAA;AACd,QAAA;AACF,MAAA;AACgB,QAAA;AACd,QAAA;AACJ,IAAA;AACF,EAAA;AAG2C,EAAA;AAC7B,EAAA;AACI,IAAA;AACP,IAAA;AACY,EAAA;AACL,IAAA;AACP,IAAA;AACX,EAAA;AAG2B,EAAA;AACI,IAAA;AAG3B,EAAA;AAGF,EAAA;AAAC,IAAA;AAAA,IAAA;AACa,MAAA;AACZ,MAAA;AACO,MAAA;AACW,MAAA;AACJ,MAAA;AACd,MAAA;AAEkB,MAAA;AACN,MAAA;AAAA,IAAA;AACd,EAAA;AAEJ;AAEe;ADjDuB;AACA;AEhIvB;AFkIuB;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-W2EOAUKE.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { CircularProgressProps as HeroCircularProgressProps } from '@heroui/progress';\nimport type { ReactNode } from 'react';\n\nimport { FaCheck, FaTimes } from 'react-icons/fa';\n\nimport { CircularProgress as HeroCircularProgress } from '@heroui/progress';\nimport { circularProgress as heroCircularProgressVariants } from '@heroui/theme';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useIsInitialRenderCycle } from '../hooks';\n\nexport const progressCircularVariants = tv({\n slots: {\n // wrapper around the whole component\n base: '',\n // indicator of the circle (finished part)\n indicator: '',\n // label next to the svgWrapper\n label: '',\n // wrapper for the circle\n svg: '',\n // wrapper around progress svg and value span\n svgWrapper: '',\n // track of the circle (not finished part)\n track: 'stroke-default-300',\n // outer span next to the svg\n value: '',\n },\n variants: {\n color: {\n info: {\n svg: 'text-info',\n },\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/progress.ts\n ...heroCircularProgressVariants.variants.color,\n },\n hasError: {\n true: {\n svg: 'text-danger',\n },\n },\n isFinished: {\n true: {\n svg: 'text-success',\n },\n },\n size: {\n xs: {\n svg: 'h-10 w-10',\n value: 'text-[0.6rem]',\n },\n sm: {\n svg: 'h-12 w-12',\n value: 'text-xs',\n },\n md: {\n svg: 'h-16 w-16',\n value: 'text-md',\n },\n lg: {\n svg: 'h-20 w-20',\n value: 'text-lg',\n },\n xl: {\n svg: 'h-24 w-24',\n value: 'text-xl',\n },\n },\n },\n});\n\ntype VariantProps = TVProps<typeof progressCircularVariants>;\ntype ClassName = TVClassName<typeof progressCircularVariants>;\n\nexport interface ProgressCircularProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** CSS class name */\n className?: ClassName;\n /** color options */\n color?: VariantProps['color'];\n /** disables all animations */\n disableAnimation?: boolean;\n /** disables special finished state (checkmark icon and success color) */\n disableFinishedState?: boolean;\n /** formats the display value of the progress in the center */\n format?: (percent?: number) => ReactNode;\n /** enables error version */\n hasError?: boolean;\n /** percentage / progress of the circular progress bar */\n percent: number;\n /** size options */\n size?: VariantProps['size'];\n /** stroke width of the circular progress bar */\n strokeWidth?: number;\n}\n\n/** formats percent with percent sign */\nconst defaultFormat = (percent = 0) => `${percent}%`;\n\n/**\n * ProgressCircular component based on [HeroUI CircularProgress](https://www.heroui.com/docs/components/circular-progress)\n */\nconst ProgressCircular = ({\n ariaLabel = 'progress',\n className = undefined,\n format = defaultFormat,\n hasError = false,\n percent,\n disableAnimation = false,\n disableFinishedState = false,\n size = 'md',\n color = 'info',\n strokeWidth: strokeWidthProp = undefined,\n}: ProgressCircularProps) => {\n // used to disable animation on initial render cycle\n const isInitialRenderCycle = useIsInitialRenderCycle();\n\n // Apply finished state if percent is 100 or more and not disabled by disableFinishedState\n const isFinished = !hasError && percent >= 100 && !disableFinishedState;\n\n const variants = progressCircularVariants({\n color,\n hasError,\n isFinished,\n size,\n });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n // format value\n let value = format(percent);\n\n let strokeWidth = strokeWidthProp;\n // set strokeWidth based on size prop when no strokeWidth provided\n if (!strokeWidth) {\n switch (size) {\n case 'xs':\n strokeWidth = 2;\n break;\n case 'sm':\n strokeWidth = 1.8;\n break;\n default:\n strokeWidth = 1.6;\n break;\n }\n }\n\n // handle special states\n let progressColor: VariantProps['color'] = color;\n if (hasError) {\n progressColor = 'danger';\n value = <FaTimes className=\"text-danger\" />;\n } else if (isFinished) {\n progressColor = 'success';\n value = <FaCheck className=\"text-success\" />;\n }\n\n // pass only HeroUI colors as props\n const heroUiColor = Object.keys(\n heroCircularProgressVariants.variants.color,\n ).includes(color)\n ? (progressColor as HeroCircularProgressProps['color'])\n : undefined;\n\n return (\n <HeroCircularProgress\n aria-label={ariaLabel}\n classNames={classNames}\n color={heroUiColor}\n disableAnimation={isInitialRenderCycle || disableAnimation}\n showValueLabel\n strokeWidth={strokeWidth}\n // INFO: we do NOT use spinner animation when no percent provided\n value={percent || 0}\n valueLabel={value}\n />\n );\n};\n\nexport default ProgressCircular;\n","import ProgressCircular, { progressCircularVariants } from './ProgressCircular';\n\nexport type { ProgressCircularProps } from './ProgressCircular';\n\nexport { ProgressCircular, progressCircularVariants };\n\nexport default ProgressCircular;\n"]}
|
|
@@ -5,7 +5,7 @@ var _jsxruntime = require('react/jsx-runtime');
|
|
|
5
5
|
var tooltipVariants = _pixelutils.tv.call(void 0, {
|
|
6
6
|
slots: {
|
|
7
7
|
base: "",
|
|
8
|
-
content: "",
|
|
8
|
+
content: "px-3 py-1.5",
|
|
9
9
|
wrapper: "cursor-pointer"
|
|
10
10
|
}
|
|
11
11
|
});
|
|
@@ -49,4 +49,4 @@ var Tooltip_default2 = Tooltip_default;
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
exports.Tooltip_default = Tooltip_default; exports.Tooltip_default2 = Tooltip_default2;
|
|
52
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-XKJOXUWH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-XKJOXUWH.cjs","../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"names":["Tooltip_default"],"mappings":"AAAA;ACIA,0CAAuC;AAEvC,oDAAyC;AAqEnC,+CAAA;AAlEC,IAAM,gBAAA,EAAkB,4BAAA;AAAG,EAChC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,EAAA;AAAA,IACN,OAAA,EAAS,aAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX;AACF,CAAC,CAAA;AA+BD,IAAM,QAAA,EAAU,CAAC;AAAA,EACf,QAAA;AAAA,EACA,SAAA,EAAW,WAAA,EAAa,KAAA,CAAA;AAAA,EACxB,WAAA,EAAa,GAAA;AAAA,EACb,iBAAA,EAAmB,CAAA;AAAA,EACnB,OAAA;AAAA,EACA,YAAA,EAAc,KAAA;AAAA,EACd,MAAA,EAAQ,CAAA;AAAA,EACR,aAAA,EAAe,KAAA,CAAA;AAAA,EACf,UAAA,EAAY;AACd,CAAA,EAAA,GAAoB;AAElB,EAAA,MAAM,SAAA,EAAW,eAAA,CAAgB,CAAA;AACjC,EAAA,MAAM,WAAA,EAAa,8CAAA,QAAqB,EAAU,UAAA,EAAY,MAAM,CAAA;AAEpE,EAAA,uBACE,6BAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,UAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,cAAA,CAAe,CAAA;AAAA,MACjC,YAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA,EAAU,IAAA;AAAA,MACV,SAAA,EAAS,IAAA;AAAA,MAET,QAAA,kBAAA,6BAAA,MAAC,EAAA,EAAK,SAAA,EAAW,UAAA,CAAW,OAAA,EAAU,SAAA,CAAS;AAAA,IAAA;AAAA,EACjD,CAAA;AAEJ,CAAA;AAEA,IAAO,gBAAA,EAAQ,OAAA;ADrCf;AACA;AEtCA,IAAOA,iBAAAA,EAAQ,eAAA;AFwCf;AACA;AACE;AACA;AACF,uFAAC","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-XKJOXUWH.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { TooltipPlacement as HeroTooltipPlacement } from '@heroui/tooltip';\nimport type { ReactNode } from 'react';\n\nimport { Tooltip as HeroTooltip } from '@heroui/tooltip';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// tooltip variants\nexport const tooltipVariants = tv({\n slots: {\n base: '',\n content: 'px-3 py-1.5',\n wrapper: 'cursor-pointer',\n },\n});\n\ntype VariantProps = TVProps<typeof tooltipVariants>;\ntype ClassName = TVClassName<typeof tooltipVariants>;\n\nexport type TooltipPlacement = HeroTooltipPlacement;\n\nexport interface TooltipProps extends VariantProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** delay in milliseconds before the tooltip opens. */\n closeDelay?: number;\n /** delay in milliseconds before the tooltip opens. */\n delay?: number;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [HeroUI Tooltip](https://www.heroui.com//docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className: _className = undefined,\n closeDelay = 500,\n containerPadding = 0,\n content,\n defaultOpen = false,\n delay = 0,\n onOpenChange = undefined,\n placement = 'top',\n}: TooltipProps) => {\n // classNames from slots\n const variants = tooltipVariants();\n const classNames = variantsToClassNames(variants, _className, 'base');\n\n return (\n <HeroTooltip\n classNames={classNames}\n closeDelay={closeDelay}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n delay={delay}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className={classNames.wrapper}>{children}</span>\n </HeroTooltip>\n );\n};\n\nexport default Tooltip;\n","import Tooltip from './Tooltip';\n\nexport type { TooltipProps, TooltipPlacement } from './Tooltip';\n\nexport { Tooltip };\n\nexport default Tooltip;\n"]}
|
|
@@ -54,6 +54,7 @@ var Progress = ({
|
|
|
54
54
|
className = void 0,
|
|
55
55
|
color = "info",
|
|
56
56
|
disableAnimation = false,
|
|
57
|
+
disableFinishedState = false,
|
|
57
58
|
format = defaultFormat,
|
|
58
59
|
indeterminate = false,
|
|
59
60
|
label = void 0,
|
|
@@ -63,8 +64,9 @@ var Progress = ({
|
|
|
63
64
|
testId = void 0
|
|
64
65
|
}) => {
|
|
65
66
|
const isInitialRenderCycle = _chunkOLI32URUcjs.useIsInitialRenderCycle.call(void 0, );
|
|
67
|
+
const isFinished = percent >= 100 && !disableFinishedState;
|
|
66
68
|
let progressColor = color;
|
|
67
|
-
if (
|
|
69
|
+
if (isFinished) {
|
|
68
70
|
progressColor = "success";
|
|
69
71
|
}
|
|
70
72
|
const variants = progressVariants({ color: progressColor });
|
|
@@ -96,4 +98,4 @@ var Progress_default2 = Progress_default;
|
|
|
96
98
|
|
|
97
99
|
|
|
98
100
|
exports.progressVariants = progressVariants; exports.Progress_default = Progress_default; exports.Progress_default2 = Progress_default2;
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-XOCP745X.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-XOCP745X.cjs","../src/Progress/Progress.tsx","../src/Progress/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACDA,4CAAyC;AAEzC,oDAAyC;AAoHrC,+CAAA;AA/GG,IAAM,iBAAA,EAAmB,4BAAA;AAAG,EACjC,KAAA,EAAO;AAAA;AAAA,IAEL,IAAA,EAAM,EAAA;AAAA;AAAA,IAEN,SAAA,EAAW,EAAA;AAAA;AAAA,IAEX,KAAA,EAAO,EAAA;AAAA;AAAA,IAEP,YAAA,EAAc,EAAA;AAAA;AAAA,IAEd,KAAA,EAAO,EAAA;AAAA;AAAA,IAEP,KAAA,EAAO;AAAA,EACT,CAAA;AAAA,EACA,QAAA,EAAU;AAAA;AAAA,IAER,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ;AAAA,QACN,SAAA,EAAW;AAAA,MACb,CAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACP,SAAA,EAAW;AAAA,MACb,CAAA;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW;AAAA,MACb,CAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACP,SAAA,EAAW;AAAA,MACb,CAAA;AAAA,MACA,SAAA,EAAW;AAAA,QACT,SAAA,EAAW;AAAA,MACb,CAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACP,SAAA,EAAW;AAAA,MACb,CAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACP,SAAA,EAAW;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACF,CAAC,CAAA;AAiCD,IAAM,cAAA,EAAgB,CAAC,QAAA,EAAU,CAAA,EAAA,GAAM,CAAA,EAAA;AAKrB;AACJ,EAAA;AACA,EAAA;AACJ,EAAA;AACW,EAAA;AACI,EAAA;AACd,EAAA;AACO,EAAA;AACR,EAAA;AACR,EAAA;AACiB,EAAA;AACV,EAAA;AACE,EAAA;AACU;AAEU,EAAA;AAGC,EAAA;AAGa,EAAA;AAC3B,EAAA;AACE,IAAA;AAClB,EAAA;AAEoC,EAAA;AACjB,EAAA;AAES,EAAA;AAG1B,EAAA;AAAC,IAAA;AAAA,IAAA;AACa,MAAA;AACZ,MAAA;AACa,MAAA;AACK,MAAA;AACD,MAAA;AACjB,MAAA;AACA,MAAA;AACA,MAAA;AACkB,MAAA;AACO,MAAA;AAAA,IAAA;AAC3B,EAAA;AAEJ;AAEe;AD7CuB;AACA;AEtFvB;AFwFuB;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-XOCP745X.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport { Progress as HeroProgress } from '@heroui/progress';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport { useIsInitialRenderCycle } from '../hooks';\n\n// progress styling variants\nexport const progressVariants = tv({\n slots: {\n // wrapper around the whole component\n base: '',\n // indicator of the progress (finished part)\n indicator: '',\n // label at the top left of the progress bar\n label: '',\n // wrapper around progress label and label span\n labelWrapper: '',\n // track of the progress (not finished part)\n track: '',\n // span around the progress value\n value: '',\n },\n variants: {\n // see: https://github.com/heroui-inc/heroui/blob/canary/packages/core/theme/src/components/progress.ts\n color: {\n danger: {\n indicator: 'bg-danger',\n },\n default: {\n indicator: 'bg-default-400',\n },\n info: {\n indicator: 'bg-info',\n },\n primary: {\n indicator: 'bg-primary',\n },\n secondary: {\n indicator: 'bg-secondary',\n },\n success: {\n indicator: 'bg-success',\n },\n warning: {\n indicator: 'bg-warning',\n },\n },\n },\n});\n\nexport type VariantProps = TVProps<typeof progressVariants>;\ntype ClassName = TVClassName<typeof progressVariants>;\n\nexport interface ProgressProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** CSS class name */\n className?: ClassName;\n /** color of the progress bar */\n color?: VariantProps['color'];\n /** disables all animations */\n disableAnimation?: boolean;\n /** disables special finished state (checkmark icon and success color) */\n disableFinishedState?: boolean;\n /** function to format the progress value */\n format?: (percent: number) => ReactNode;\n /** shows indeterminate progress animation */\n indeterminate?: boolean;\n /** label of the progress bar */\n label?: ReactNode;\n /** percentage / progress of the progress bar */\n percent: number;\n /** whether to show the value label */\n showValueLabel?: boolean;\n /** size of the progress bar */\n size?: 'sm' | 'md' | 'lg';\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/** formats percent with percent sign */\nconst defaultFormat = (percent = 0) => `${percent}%`;\n\n/**\n * Progress component based on [HeroUI Progress](https://www.heroui.com//docs/components/progress)\n */\nconst Progress = ({\n ariaLabel = 'progress',\n className = undefined,\n color = 'info',\n disableAnimation = false,\n disableFinishedState = false,\n format = defaultFormat,\n indeterminate = false,\n label = undefined,\n percent,\n showValueLabel = false,\n size = 'md',\n testId = undefined,\n}: ProgressProps) => {\n // used to disable animation on initial render cycle\n const isInitialRenderCycle = useIsInitialRenderCycle();\n\n // Apply finished state if percent is 100 or more and not disabled by disableFinishedState\n const isFinished = percent >= 100 && !disableFinishedState;\n\n // handle special states\n let progressColor: VariantProps['color'] = color;\n if (isFinished) {\n progressColor = 'success';\n }\n\n const variants = progressVariants({ color: progressColor });\n const classNames = variantsToClassNames(variants, className, 'base');\n\n const value = format(percent);\n\n return (\n <HeroProgress\n aria-label={ariaLabel}\n classNames={classNames}\n data-testid={testId}\n disableAnimation={isInitialRenderCycle || disableAnimation}\n isIndeterminate={indeterminate}\n label={label}\n showValueLabel={showValueLabel}\n size={size}\n value={percent || 0}\n valueLabel={!!percent && value}\n />\n );\n};\n\nexport default Progress;\n","import Progress, { progressVariants } from './Progress';\n\nexport type { ProgressProps } from './Progress';\n\nexport { Progress, progressVariants };\n\nexport default Progress;\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkXOCP745Xcjs = require('./chunk-XOCP745X.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkW2EOAUKEcjs = require('./chunk-W2EOAUKE.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
@@ -22,7 +22,7 @@ var _chunkD5BXY6EGcjs = require('./chunk-D5BXY6EG.cjs');
|
|
|
22
22
|
var _chunkGXIDQFQ6cjs = require('./chunk-GXIDQFQ6.cjs');
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var _chunkXKJOXUWHcjs = require('./chunk-XKJOXUWH.cjs');
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
@@ -45,7 +45,7 @@ var _chunkMHZAWSFJcjs = require('./chunk-MHZAWSFJ.cjs');
|
|
|
45
45
|
var _chunk7RVUB6I5cjs = require('./chunk-7RVUB6I5.cjs');
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _chunk77THLTVPcjs = require('./chunk-77THLTVP.cjs');
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
@@ -59,7 +59,7 @@ var _chunkXHOAZB2Zcjs = require('./chunk-XHOAZB2Z.cjs');
|
|
|
59
59
|
var _chunkPEUUQMJScjs = require('./chunk-PEUUQMJS.cjs');
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
var
|
|
62
|
+
var _chunkSYPFLG7Ecjs = require('./chunk-SYPFLG7E.cjs');
|
|
63
63
|
require('./chunk-TX2VP4J7.cjs');
|
|
64
64
|
|
|
65
65
|
|
|
@@ -85,7 +85,7 @@ var _chunkZZOEFQWQcjs = require('./chunk-ZZOEFQWQ.cjs');
|
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
var
|
|
88
|
+
var _chunkAN7A66NScjs = require('./chunk-AN7A66NS.cjs');
|
|
89
89
|
require('./chunk-D4TLDLEX.cjs');
|
|
90
90
|
|
|
91
91
|
|
|
@@ -131,5 +131,5 @@ require('./chunk-D4TLDLEX.cjs');
|
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
|
|
134
|
-
exports.Accordion = _chunk2P5WWVQ6cjs.Accordion_default; exports.Alert = _chunkYVPRFCWIcjs.Alert_default; exports.Avatar = _chunk77J7NZYBcjs.Avatar_default; exports.AvatarGroup = _chunkLIZGYO24cjs.AvatarGroup_default; exports.Badge = _chunkJSANDW3Wcjs.Badge_default; exports.Breadcrumb = _chunkZZOEFQWQcjs.Breadcrumb_default; exports.Button =
|
|
134
|
+
exports.Accordion = _chunk2P5WWVQ6cjs.Accordion_default; exports.Alert = _chunkYVPRFCWIcjs.Alert_default; exports.Avatar = _chunk77J7NZYBcjs.Avatar_default; exports.AvatarGroup = _chunkLIZGYO24cjs.AvatarGroup_default; exports.Badge = _chunkJSANDW3Wcjs.Badge_default; exports.Breadcrumb = _chunkZZOEFQWQcjs.Breadcrumb_default; exports.Button = _chunkAN7A66NScjs.Button_default; exports.ButtonGroup = _chunkY3RSI2KVcjs.ButtonGroup_default; exports.Card = _chunkMHZAWSFJcjs.Card_default; exports.Drawer = _chunk7RVUB6I5cjs.Drawer_default; exports.Json = _chunk77THLTVPcjs.Json_default; exports.Label = _chunkPLJWIGRScjs.Label_default; exports.Menu = _chunkXHOAZB2Zcjs.Menu_default; exports.Modal = _chunkPEUUQMJScjs.Modal_default; exports.Popover = _chunkSYPFLG7Ecjs.Popover_default; exports.Progress = _chunkXOCP745Xcjs.Progress_default; exports.ProgressCircular = _chunkW2EOAUKEcjs.ProgressCircular_default; exports.Table = _chunkAJCAIA6Hcjs.Table_default; exports.Tabs = _chunkD5BXY6EGcjs.Tabs_default; exports.Toast = _chunkGXIDQFQ6cjs.Toast; exports.ToastProvider = _chunkGXIDQFQ6cjs.ToastProvider_default; exports.Tooltip = _chunkXKJOXUWHcjs.Tooltip_default; exports.accordionVariants = _chunk2P5WWVQ6cjs.accordionVariants; exports.addToast = _chunkGXIDQFQ6cjs.addToast; exports.alertVariants = _chunkYVPRFCWIcjs.alertVariants; exports.breadcrumbVariants = _chunkZZOEFQWQcjs.breadcrumbVariants; exports.buttonVariants = _chunkAN7A66NScjs.buttonVariants; exports.cardVariants = _chunkMHZAWSFJcjs.cardVariants; exports.drawerBackdrops = _chunk7RVUB6I5cjs.drawerBackdrops; exports.drawerPlacements = _chunk7RVUB6I5cjs.drawerPlacements; exports.drawerRadii = _chunk7RVUB6I5cjs.drawerRadii; exports.drawerSizes = _chunk7RVUB6I5cjs.drawerSizes; exports.drawerVariants = _chunk7RVUB6I5cjs.drawerVariants; exports.labelVariants = _chunkPLJWIGRScjs.labelVariants; exports.modalVariants = _chunkPEUUQMJScjs.modalVariants; exports.progressCircularVariants = _chunkW2EOAUKEcjs.progressCircularVariants; exports.progressVariants = _chunkXOCP745Xcjs.progressVariants; exports.tableVariants = _chunkAJCAIA6Hcjs.tableVariants; exports.tabsVariants = _chunkD5BXY6EGcjs.tabsVariants; exports.toastVariants = _chunkGXIDQFQ6cjs.toastVariants; exports.useDebounce = _chunkOLI32URUcjs.useDebounce; exports.useIsInitialRenderCycle = _chunkOLI32URUcjs.useIsInitialRenderCycle; exports.useLocalStorage = _chunkOLI32URUcjs.useLocalStorage;
|
|
135
135
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.d.cts
CHANGED
|
@@ -4,7 +4,7 @@ export { A as Avatar, a as AvatarProps } from './Avatar-ylNJ_-dY.cjs';
|
|
|
4
4
|
export { A as AvatarGroup, a as AvatarGroupProps } from './AvatarGroup-CUyQwK3t.cjs';
|
|
5
5
|
export { A as Badge, B as BadgeProps } from './Badge-CvXzljaJ.cjs';
|
|
6
6
|
export { B as Breadcrumb, c as BreadcrumbItemProps, a as BreadcrumbProps, b as breadcrumbVariants } from './Breadcrumb-1cB54eJk.cjs';
|
|
7
|
-
export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-
|
|
7
|
+
export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-DykH6Lmz.cjs';
|
|
8
8
|
export { B as ButtonGroup } from './ButtonGroup-CUxpALRo.cjs';
|
|
9
9
|
export { C as Card, a as CardProps, c as cardVariants } from './Card-BdciRqJz.cjs';
|
|
10
10
|
export { D as Drawer, f as DrawerProps, d as drawerBackdrops, a as drawerPlacements, b as drawerRadii, c as drawerSizes, e as drawerVariants } from './Drawer-BnV9qxPA.cjs';
|
|
@@ -12,9 +12,9 @@ export { J as Json, a as JsonProps } from './Json-Dny90Wml.cjs';
|
|
|
12
12
|
export { L as Label, a as LabelProps, l as labelVariants } from './Label-Bp9WZiDB.cjs';
|
|
13
13
|
export { M as Menu, b as MenuItem, a as MenuProps, c as MenuSection } from './Menu-DYi8oagz.cjs';
|
|
14
14
|
export { M as Modal, a as ModalProps, m as modalVariants } from './Modal-DI5ZdS_3.cjs';
|
|
15
|
-
export { _ as Popover, P as PopoverProps } from './Popover-
|
|
16
|
-
export { P as ProgressCircular, a as ProgressCircularProps, p as progressCircularVariants } from './ProgressCircular-
|
|
17
|
-
export { P as Progress, a as ProgressProps, p as progressVariants } from './Progress-
|
|
15
|
+
export { _ as Popover, P as PopoverProps } from './Popover-G9P0rR-7.cjs';
|
|
16
|
+
export { P as ProgressCircular, a as ProgressCircularProps, p as progressCircularVariants } from './ProgressCircular-D9VbRNdF.cjs';
|
|
17
|
+
export { P as Progress, a as ProgressProps, p as progressVariants } from './Progress-CR_BcIKV.cjs';
|
|
18
18
|
export { T as Table, c as TableColumnProps, a as TableProps, b as TableRowProps, V as VariantProps, t as tableVariants } from './Table-D19f5nrd.cjs';
|
|
19
19
|
export { b as TabProps, T as Tabs, a as TabsProps, t as tabsVariants } from './Tabs-C1UEkvSr.cjs';
|
|
20
20
|
export { Toast } from '@heroui/toast';
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { A as Avatar, a as AvatarProps } from './Avatar-ylNJ_-dY.js';
|
|
|
4
4
|
export { A as AvatarGroup, a as AvatarGroupProps } from './AvatarGroup-BfOtqfJy.js';
|
|
5
5
|
export { A as Badge, B as BadgeProps } from './Badge-CvXzljaJ.js';
|
|
6
6
|
export { B as Breadcrumb, c as BreadcrumbItemProps, a as BreadcrumbProps, b as breadcrumbVariants } from './Breadcrumb-1cB54eJk.js';
|
|
7
|
-
export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-
|
|
7
|
+
export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-DykH6Lmz.js';
|
|
8
8
|
export { B as ButtonGroup } from './ButtonGroup-CUxpALRo.js';
|
|
9
9
|
export { C as Card, a as CardProps, c as cardVariants } from './Card-BdciRqJz.js';
|
|
10
10
|
export { D as Drawer, f as DrawerProps, d as drawerBackdrops, a as drawerPlacements, b as drawerRadii, c as drawerSizes, e as drawerVariants } from './Drawer-BnV9qxPA.js';
|
|
@@ -12,9 +12,9 @@ export { J as Json, a as JsonProps } from './Json-Dny90Wml.js';
|
|
|
12
12
|
export { L as Label, a as LabelProps, l as labelVariants } from './Label-Bp9WZiDB.js';
|
|
13
13
|
export { M as Menu, b as MenuItem, a as MenuProps, c as MenuSection } from './Menu-DYi8oagz.js';
|
|
14
14
|
export { M as Modal, a as ModalProps, m as modalVariants } from './Modal-DI5ZdS_3.js';
|
|
15
|
-
export { _ as Popover, P as PopoverProps } from './Popover-
|
|
16
|
-
export { P as ProgressCircular, a as ProgressCircularProps, p as progressCircularVariants } from './ProgressCircular-
|
|
17
|
-
export { P as Progress, a as ProgressProps, p as progressVariants } from './Progress-
|
|
15
|
+
export { _ as Popover, P as PopoverProps } from './Popover-B7Bc2FWo.js';
|
|
16
|
+
export { P as ProgressCircular, a as ProgressCircularProps, p as progressCircularVariants } from './ProgressCircular-D9VbRNdF.js';
|
|
17
|
+
export { P as Progress, a as ProgressProps, p as progressVariants } from './Progress-CR_BcIKV.js';
|
|
18
18
|
export { T as Table, c as TableColumnProps, a as TableProps, b as TableRowProps, V as VariantProps, t as tableVariants } from './Table-D19f5nrd.js';
|
|
19
19
|
export { b as TabProps, T as Tabs, a as TabsProps, t as tabsVariants } from './Tabs-C1UEkvSr.js';
|
|
20
20
|
export { Toast } from '@heroui/toast';
|