@fuf-stack/pixels 0.32.4 → 0.33.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.
Files changed (51) hide show
  1. package/dist/Button/index.cjs +2 -4
  2. package/dist/Button/index.cjs.map +1 -1
  3. package/dist/Button/index.d.cts +2 -3
  4. package/dist/Button/index.d.ts +2 -3
  5. package/dist/Button/index.js +1 -3
  6. package/dist/{ButtonGroup-DyAm7NZs.d.cts → Button-BGekDPvO.d.cts} +1 -8
  7. package/dist/{ButtonGroup-DyAm7NZs.d.ts → Button-BGekDPvO.d.ts} +1 -8
  8. package/dist/ButtonGroup/index.cjs +10 -0
  9. package/dist/ButtonGroup/index.cjs.map +1 -0
  10. package/dist/ButtonGroup/index.d.cts +7 -0
  11. package/dist/ButtonGroup/index.d.ts +7 -0
  12. package/dist/ButtonGroup/index.js +10 -0
  13. package/dist/ButtonGroup/index.js.map +1 -0
  14. package/dist/ButtonGroup-CUxpALRo.d.cts +9 -0
  15. package/dist/ButtonGroup-CUxpALRo.d.ts +9 -0
  16. package/dist/Json/index.cjs +3 -3
  17. package/dist/Json/index.js +2 -2
  18. package/dist/Tabs/index.cjs +2 -2
  19. package/dist/Tabs/index.d.cts +2 -2
  20. package/dist/Tabs/index.d.ts +2 -2
  21. package/dist/Tabs/index.js +1 -1
  22. package/dist/{Tabs-XIux-c3p.d.cts → Tabs-xUYwXMX9.d.cts} +3 -1
  23. package/dist/{Tabs-XIux-c3p.d.ts → Tabs-xUYwXMX9.d.ts} +3 -1
  24. package/dist/{chunk-TAVTNSQG.cjs → chunk-4X43AGXE.cjs} +2 -8
  25. package/dist/chunk-4X43AGXE.cjs.map +1 -0
  26. package/dist/chunk-FNQ7VO32.js +13 -0
  27. package/dist/chunk-FNQ7VO32.js.map +1 -0
  28. package/dist/{chunk-ERK2LYGJ.js → chunk-HL5BEHIS.js} +1 -7
  29. package/dist/chunk-HL5BEHIS.js.map +1 -0
  30. package/dist/{chunk-L2H7DUEB.cjs → chunk-JUHSESWB.cjs} +3 -1
  31. package/dist/chunk-JUHSESWB.cjs.map +1 -0
  32. package/dist/{chunk-72VIMIAB.js → chunk-JZHEG3SM.js} +3 -1
  33. package/dist/chunk-JZHEG3SM.js.map +1 -0
  34. package/dist/{chunk-U46SDLRH.cjs → chunk-LBJ3YG36.cjs} +66 -66
  35. package/dist/chunk-LBJ3YG36.cjs.map +1 -0
  36. package/dist/{chunk-XNKV2DN7.js → chunk-OPDWDH3W.js} +65 -65
  37. package/dist/chunk-OPDWDH3W.js.map +1 -0
  38. package/dist/chunk-Y3RSI2KV.cjs +13 -0
  39. package/dist/chunk-Y3RSI2KV.cjs.map +1 -0
  40. package/dist/index.cjs +7 -5
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/index.d.cts +4 -3
  43. package/dist/index.d.ts +4 -3
  44. package/dist/index.js +6 -4
  45. package/package.json +34 -29
  46. package/dist/chunk-72VIMIAB.js.map +0 -1
  47. package/dist/chunk-ERK2LYGJ.js.map +0 -1
  48. package/dist/chunk-L2H7DUEB.cjs.map +0 -1
  49. package/dist/chunk-TAVTNSQG.cjs.map +0 -1
  50. package/dist/chunk-U46SDLRH.cjs.map +0 -1
  51. package/dist/chunk-XNKV2DN7.js.map +0 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@fuf-stack/pixels",
3
3
  "description": "fuf core react component library",
4
4
  "author": "Hannes Tiede",
5
- "version": "0.32.4",
5
+ "version": "0.33.1",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
8
8
  "module": "./dist/index.js",
@@ -49,6 +49,11 @@
49
49
  "import": "./dist/Button/index.js",
50
50
  "require": "./dist/Button/index.cjs"
51
51
  },
52
+ "./ButtonGroup": {
53
+ "types": "./dist/ButtonGroup/index.d.ts",
54
+ "import": "./dist/ButtonGroup/index.js",
55
+ "require": "./dist/ButtonGroup/index.cjs"
56
+ },
52
57
  "./Card": {
53
58
  "types": "./dist/Card/index.d.ts",
54
59
  "import": "./dist/Card/index.js",
@@ -140,42 +145,42 @@
140
145
  "react-dom": ">=18"
141
146
  },
142
147
  "dependencies": {
143
- "@heroui/alert": "2.2.10",
144
- "@heroui/avatar": "2.2.7",
145
- "@heroui/accordion": "2.2.8",
146
- "@heroui/badge": "2.2.6",
147
- "@heroui/breadcrumbs": "2.2.7",
148
- "@heroui/button": "2.2.10",
149
- "@heroui/card": "2.2.10",
150
- "@heroui/chip": "2.2.7",
151
- "@heroui/divider": "2.2.6",
152
- "@heroui/drawer": "2.2.8",
153
- "@heroui/dropdown": "2.3.10",
154
- "@heroui/modal": "2.2.8",
155
- "@heroui/popover": "2.3.10",
156
- "@heroui/progress": "2.2.7",
157
- "@heroui/scroll-shadow": "2.3.6",
158
- "@heroui/system": "2.4.7",
159
- "@heroui/table": "2.2.9",
160
- "@heroui/theme": "2.4.6",
161
- "@heroui/tabs": "2.2.8",
162
- "@heroui/tooltip": "2.2.8",
163
- "framer-motion": "12.0.6",
148
+ "@heroui/alert": "2.2.15",
149
+ "@heroui/avatar": "2.2.11",
150
+ "@heroui/accordion": "2.2.12",
151
+ "@heroui/badge": "2.2.10",
152
+ "@heroui/breadcrumbs": "2.2.11",
153
+ "@heroui/button": "2.2.15",
154
+ "@heroui/card": "2.2.14",
155
+ "@heroui/chip": "2.2.11",
156
+ "@heroui/divider": "2.2.10",
157
+ "@heroui/drawer": "2.2.12",
158
+ "@heroui/dropdown": "2.3.15",
159
+ "@heroui/modal": "2.2.12",
160
+ "@heroui/popover": "2.3.15",
161
+ "@heroui/progress": "2.2.11",
162
+ "@heroui/scroll-shadow": "2.3.10",
163
+ "@heroui/system": "2.4.11",
164
+ "@heroui/table": "2.2.14",
165
+ "@heroui/theme": "2.4.11",
166
+ "@heroui/tabs": "2.2.12",
167
+ "@heroui/tooltip": "2.2.12",
168
+ "framer-motion": "12.4.7",
164
169
  "next-themes": "0.4.4",
165
- "react-icons": "5.4.0",
166
- "@fuf-stack/pixel-utils": "0.5.0"
170
+ "react-icons": "5.5.0",
171
+ "@fuf-stack/pixel-utils": "0.5.1"
167
172
  },
168
173
  "devDependencies": {
169
174
  "@types/debug": "4.1.12",
170
- "@types/react": "19.0.8",
171
- "@types/react-dom": "19.0.3",
175
+ "@types/react": "19.0.10",
176
+ "@types/react-dom": "19.0.4",
172
177
  "@uiw/react-json-view": "2.0.0-alpha.30",
173
178
  "react": "19.0.0",
174
179
  "react-dom": "19.0.0",
175
- "@repo/storybook-config": "0.0.1",
180
+ "@repo/tailwind-config": "0.0.1",
176
181
  "@repo/tsup-config": "0.0.1",
177
- "@repo/vite-config": "0.0.1",
178
- "@repo/tailwind-config": "0.0.1"
182
+ "@repo/storybook-config": "0.0.1",
183
+ "@repo/vite-config": "0.0.1"
179
184
  },
180
185
  "scripts": {
181
186
  "build": "tsup --config node_modules/@repo/tsup-config/config.ts --dts-resolve",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Tabs/Tabs.tsx","../src/Tabs/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport { Tab as HeroTab, Tabs as HeroTabs } from '@heroui/tabs';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nexport const tabsVariants = tv({\n slots: {\n base: '',\n cursor: '',\n panel: '',\n tab: 'data-[hover-unselected=true]:opacity-100',\n tabContent: 'text-foreground',\n tabList: '',\n tabWrapper: '',\n },\n});\n\ntype VariantProps = TVProps<typeof tabsVariants>;\ntype ClassName = TVClassName<typeof tabsVariants>;\n\nexport interface TabProps {\n /** Content to be displayed in the tab panel */\n content: ReactNode;\n /** Disables the tab so it can not be selected */\n disabled?: boolean;\n /** Unique identifier for the tab */\n key: React.Key;\n /** Label content displayed in the tab button */\n label: ReactNode;\n}\n\nexport interface TabsProps extends VariantProps {\n /** Accessible label for the tabs component */\n ariaLabel?: string;\n /** CSS class name */\n className?: ClassName;\n /** Key of the tab that should be selected by default */\n defaultSelectedKey?: string | number;\n /** Whether to destroy inactive tab panel DOM nodes */\n destroyInactiveTabPanel?: boolean;\n /** Array of keys for the tabs to disable */\n disabledKeys?: string[];\n /** Whether tabs should take up full container width */\n fullWidth?: boolean;\n /** Callback fired when tab selection changes */\n onSelectionChange?: (key: React.Key) => void;\n /** Position of the tab list relative to the content */\n placement?: 'top' | 'bottom' | 'start' | 'end' | undefined;\n /** Radius of the tabs */\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n /** Selected tab key (controlled) */\n selectedKey?: string | number | null;\n /** Size of the tabs */\n size?: 'sm' | 'md' | 'lg';\n /** Array of tab configurations */\n tabs: TabProps[];\n /** Style variant of the tabs */\n variant?: 'bordered' | 'light' | 'solid' | 'underlined';\n /** Whether to display tabs vertically */\n vertical?: boolean;\n}\n\n/**\n * Tabs component based on [HeroUI Tabs](https://www.heroui.com//docs/components/tabs)\n */\nconst Tabs = ({\n ariaLabel = undefined,\n className = undefined,\n defaultSelectedKey = undefined,\n destroyInactiveTabPanel = true,\n disabledKeys = undefined,\n fullWidth = true,\n onSelectionChange = undefined,\n placement = undefined,\n radius = undefined,\n selectedKey = undefined,\n size = 'md',\n tabs,\n variant = 'solid',\n vertical = false,\n}: TabsProps) => {\n const variants = tabsVariants();\n const classNames = variantsToClassNames(variants, className, 'base');\n\n return (\n <HeroTabs\n aria-label={ariaLabel}\n classNames={classNames}\n defaultSelectedKey={defaultSelectedKey}\n destroyInactiveTabPanel={destroyInactiveTabPanel}\n disabledKeys={disabledKeys}\n fullWidth={fullWidth}\n isVertical={vertical}\n items={tabs || []}\n onSelectionChange={onSelectionChange}\n placement={placement}\n radius={radius}\n selectedKey={selectedKey}\n size={size}\n variant={variant}\n >\n {(item) => (\n <HeroTab key={item.key} isDisabled={!!item.disabled} title={item.label}>\n {item.content}\n </HeroTab>\n )}\n </HeroTabs>\n );\n};\n\nexport default Tabs;\n","import Tabs, { tabsVariants } from './Tabs';\n\nexport type { TabsProps, TabProps } from './Tabs';\n\nexport { Tabs, tabsVariants };\n\nexport default Tabs;\n"],"mappings":";AAGA,SAAS,OAAO,SAAS,QAAQ,gBAAgB;AAEjD,SAAS,IAAI,4BAA4B;AAmGjC;AAjGD,IAAM,eAAe,GAAG;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AACF,CAAC;AAkDD,IAAM,OAAO,CAAC;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AACb,MAAiB;AACf,QAAM,WAAW,aAAa;AAC9B,QAAM,aAAa,qBAAqB,UAAU,WAAW,MAAM;AAEnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,OAAO,QAAQ,CAAC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC,WAAC,SACA,oBAAC,WAAuB,YAAY,CAAC,CAAC,KAAK,UAAU,OAAO,KAAK,OAC9D,eAAK,WADM,KAAK,GAEnB;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;;;AC1Gf,IAAOA,gBAAQ;","names":["Tabs_default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/ButtonGroup.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';\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 default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\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});\n\ntype VariantProps = TVProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** hero ui button color */\n color?: HeroButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: HeroButtonProps['onPress'];\n /** 3 size options */\n size?: HeroButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** hero ui button variants */\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 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 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=\"animate-spin h-5 w-5 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 { ButtonGroup as HeroButtonGroup } from '@heroui/button';\n\n/**\n * Button Group based on [HeroUI Button Group](https://www.heroui.com//docs/components/button#button-group)\n */\nconst ButtonGroup = HeroButtonGroup;\n\nexport default ButtonGroup;\n","import Button, { buttonVariants } from './Button';\nimport ButtonGroup from './ButtonGroup';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, ButtonGroup, buttonVariants };\n\nexport default Button;\n"],"mappings":";AAIA,SAAS,UAAU,kBAAkB;AAErC,SAAS,UAAU;;;ACDjB,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;;;ADyEE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAvFG,IAAM,iBAAiB,GAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;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,EACF;AACF,CAAC;AAoCD,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,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,SAAS,gBAAAD,KAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AEvHf,SAAS,eAAe,uBAAuB;AAK/C,IAAM,cAAc;AAEpB,IAAO,sBAAQ;;;ACAf,IAAOE,kBAAQ;","names":["jsx","jsxs","Button_default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-L2H7DUEB.cjs","../src/Tabs/Tabs.tsx","../src/Tabs/index.ts"],"names":["Tabs_default"],"mappings":"AAAA;ACGA,oCAAiD;AAEjD,oDAAyC;AAmGjC,+CAAA;AAjGD,IAAM,aAAA,EAAe,4BAAA;AAAG,EAC7B,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,EAAA;AAAA,IACN,MAAA,EAAQ,EAAA;AAAA,IACR,KAAA,EAAO,EAAA;AAAA,IACP,GAAA,EAAK,0CAAA;AAAA,IACL,UAAA,EAAY,iBAAA;AAAA,IACZ,OAAA,EAAS,EAAA;AAAA,IACT,UAAA,EAAY;AAAA,EACd;AACF,CAAC,CAAA;AAkDD,IAAM,KAAA,EAAO,CAAC;AAAA,EACZ,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,mBAAA,EAAqB,KAAA,CAAA;AAAA,EACrB,wBAAA,EAA0B,IAAA;AAAA,EAC1B,aAAA,EAAe,KAAA,CAAA;AAAA,EACf,UAAA,EAAY,IAAA;AAAA,EACZ,kBAAA,EAAoB,KAAA,CAAA;AAAA,EACpB,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,OAAA,EAAS,KAAA,CAAA;AAAA,EACT,YAAA,EAAc,KAAA,CAAA;AAAA,EACd,KAAA,EAAO,IAAA;AAAA,EACP,IAAA;AAAA,EACA,QAAA,EAAU,OAAA;AAAA,EACV,SAAA,EAAW;AACb,CAAA,EAAA,GAAiB;AACf,EAAA,MAAM,SAAA,EAAW,YAAA,CAAa,CAAA;AAC9B,EAAA,MAAM,WAAA,EAAa,8CAAA,QAAqB,EAAU,SAAA,EAAW,MAAM,CAAA;AAEnE,EAAA,uBACE,6BAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,UAAA;AAAA,MACA,kBAAA;AAAA,MACA,uBAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA,EAAY,QAAA;AAAA,MACZ,KAAA,EAAO,KAAA,GAAQ,CAAC,CAAA;AAAA,MAChB,iBAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MAEC,QAAA,EAAA,CAAC,IAAA,EAAA,mBACA,6BAAA,SAAC,EAAA,EAAuB,UAAA,EAAY,CAAC,CAAC,IAAA,CAAK,QAAA,EAAU,KAAA,EAAO,IAAA,CAAK,KAAA,EAC9D,QAAA,EAAA,IAAA,CAAK,QAAA,CAAA,EADM,IAAA,CAAK,GAEnB;AAAA,IAAA;AAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,EAAQ,IAAA;ADzDf;AACA;AElDA,IAAOA,cAAAA,EAAQ,YAAA;AFoDf;AACA;AACE;AACA;AACA;AACF,gHAAC","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-L2H7DUEB.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport { Tab as HeroTab, Tabs as HeroTabs } from '@heroui/tabs';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nexport const tabsVariants = tv({\n slots: {\n base: '',\n cursor: '',\n panel: '',\n tab: 'data-[hover-unselected=true]:opacity-100',\n tabContent: 'text-foreground',\n tabList: '',\n tabWrapper: '',\n },\n});\n\ntype VariantProps = TVProps<typeof tabsVariants>;\ntype ClassName = TVClassName<typeof tabsVariants>;\n\nexport interface TabProps {\n /** Content to be displayed in the tab panel */\n content: ReactNode;\n /** Disables the tab so it can not be selected */\n disabled?: boolean;\n /** Unique identifier for the tab */\n key: React.Key;\n /** Label content displayed in the tab button */\n label: ReactNode;\n}\n\nexport interface TabsProps extends VariantProps {\n /** Accessible label for the tabs component */\n ariaLabel?: string;\n /** CSS class name */\n className?: ClassName;\n /** Key of the tab that should be selected by default */\n defaultSelectedKey?: string | number;\n /** Whether to destroy inactive tab panel DOM nodes */\n destroyInactiveTabPanel?: boolean;\n /** Array of keys for the tabs to disable */\n disabledKeys?: string[];\n /** Whether tabs should take up full container width */\n fullWidth?: boolean;\n /** Callback fired when tab selection changes */\n onSelectionChange?: (key: React.Key) => void;\n /** Position of the tab list relative to the content */\n placement?: 'top' | 'bottom' | 'start' | 'end' | undefined;\n /** Radius of the tabs */\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n /** Selected tab key (controlled) */\n selectedKey?: string | number | null;\n /** Size of the tabs */\n size?: 'sm' | 'md' | 'lg';\n /** Array of tab configurations */\n tabs: TabProps[];\n /** Style variant of the tabs */\n variant?: 'bordered' | 'light' | 'solid' | 'underlined';\n /** Whether to display tabs vertically */\n vertical?: boolean;\n}\n\n/**\n * Tabs component based on [HeroUI Tabs](https://www.heroui.com//docs/components/tabs)\n */\nconst Tabs = ({\n ariaLabel = undefined,\n className = undefined,\n defaultSelectedKey = undefined,\n destroyInactiveTabPanel = true,\n disabledKeys = undefined,\n fullWidth = true,\n onSelectionChange = undefined,\n placement = undefined,\n radius = undefined,\n selectedKey = undefined,\n size = 'md',\n tabs,\n variant = 'solid',\n vertical = false,\n}: TabsProps) => {\n const variants = tabsVariants();\n const classNames = variantsToClassNames(variants, className, 'base');\n\n return (\n <HeroTabs\n aria-label={ariaLabel}\n classNames={classNames}\n defaultSelectedKey={defaultSelectedKey}\n destroyInactiveTabPanel={destroyInactiveTabPanel}\n disabledKeys={disabledKeys}\n fullWidth={fullWidth}\n isVertical={vertical}\n items={tabs || []}\n onSelectionChange={onSelectionChange}\n placement={placement}\n radius={radius}\n selectedKey={selectedKey}\n size={size}\n variant={variant}\n >\n {(item) => (\n <HeroTab key={item.key} isDisabled={!!item.disabled} title={item.label}>\n {item.content}\n </HeroTab>\n )}\n </HeroTabs>\n );\n};\n\nexport default Tabs;\n","import Tabs, { tabsVariants } from './Tabs';\n\nexport type { TabsProps, TabProps } from './Tabs';\n\nexport { Tabs, tabsVariants };\n\nexport default Tabs;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-TAVTNSQG.cjs","../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/ButtonGroup.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-TAVTNSQG.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';\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 default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\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});\n\ntype VariantProps = TVProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends VariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string;\n /** hero ui button color */\n color?: HeroButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: HeroButtonProps['onPress'];\n /** 3 size options */\n size?: HeroButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** hero ui button variants */\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 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 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=\"animate-spin h-5 w-5 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 { ButtonGroup as HeroButtonGroup } from '@heroui/button';\n\n/**\n * Button Group based on [HeroUI Button Group](https://www.heroui.com//docs/components/button#button-group)\n */\nconst ButtonGroup = HeroButtonGroup;\n\nexport default ButtonGroup;\n","import Button, { buttonVariants } from './Button';\nimport ButtonGroup from './ButtonGroup';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, ButtonGroup, buttonVariants };\n\nexport default Button;\n"]}