@etus/ui 0.4.0-beta.20 → 0.4.0-beta.22
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/{chunk-KBU4KJKC.js → chunk-2DFFIU44.js} +4 -4
- package/dist/{chunk-KBU4KJKC.js.map → chunk-2DFFIU44.js.map} +1 -1
- package/dist/{chunk-YMCKML6D.js → chunk-2JDLQ4VR.js} +4 -4
- package/dist/{chunk-YMCKML6D.js.map → chunk-2JDLQ4VR.js.map} +1 -1
- package/dist/{chunk-JE46MFMN.js → chunk-2LVRSLWI.js} +4 -4
- package/dist/{chunk-JE46MFMN.js.map → chunk-2LVRSLWI.js.map} +1 -1
- package/dist/{chunk-GRODCJS4.js → chunk-2VOKY2TU.js} +4 -4
- package/dist/{chunk-GRODCJS4.js.map → chunk-2VOKY2TU.js.map} +1 -1
- package/dist/{chunk-UC5J6GWG.js → chunk-3TRT6TKW.js} +6 -6
- package/dist/chunk-3TRT6TKW.js.map +1 -0
- package/dist/{chunk-UZZCEQH4.js → chunk-3XVOI4HK.js} +3 -3
- package/dist/{chunk-UZZCEQH4.js.map → chunk-3XVOI4HK.js.map} +1 -1
- package/dist/{chunk-WGKOYZRI.js → chunk-4S6CPTSO.js} +5 -5
- package/dist/chunk-4S6CPTSO.js.map +1 -0
- package/dist/{chunk-GVNG5ME6.js → chunk-6CO3FRGG.js} +201 -17
- package/dist/chunk-6CO3FRGG.js.map +1 -0
- package/dist/chunk-7MJS37Q4.js +135 -0
- package/dist/chunk-7MJS37Q4.js.map +1 -0
- package/dist/{chunk-QXET2TML.js → chunk-A33MLHXO.js} +3 -3
- package/dist/{chunk-QXET2TML.js.map → chunk-A33MLHXO.js.map} +1 -1
- package/dist/{chunk-STADVFL2.js → chunk-A6BDDZ27.js} +3 -3
- package/dist/{chunk-STADVFL2.js.map → chunk-A6BDDZ27.js.map} +1 -1
- package/dist/{chunk-WSDWJX4Y.js → chunk-AGXEGVSY.js} +3 -3
- package/dist/{chunk-WSDWJX4Y.js.map → chunk-AGXEGVSY.js.map} +1 -1
- package/dist/{chunk-R42LSLJL.js → chunk-AOLVER6U.js} +3 -3
- package/dist/{chunk-R42LSLJL.js.map → chunk-AOLVER6U.js.map} +1 -1
- package/dist/{chunk-YMQDTTO7.js → chunk-CEUARW3D.js} +3 -3
- package/dist/{chunk-YMQDTTO7.js.map → chunk-CEUARW3D.js.map} +1 -1
- package/dist/{chunk-LDK6ADKM.js → chunk-DZV32N5V.js} +4 -4
- package/dist/{chunk-LDK6ADKM.js.map → chunk-DZV32N5V.js.map} +1 -1
- package/dist/{chunk-2SUZS6GZ.js → chunk-E5UFATRY.js} +11 -3
- package/dist/chunk-E5UFATRY.js.map +1 -0
- package/dist/{chunk-RQBYBBMP.js → chunk-EINYBB7T.js} +5 -5
- package/dist/{chunk-RQBYBBMP.js.map → chunk-EINYBB7T.js.map} +1 -1
- package/dist/{chunk-4LZ53BAG.js → chunk-EKKJXJX7.js} +4 -2
- package/dist/chunk-EKKJXJX7.js.map +1 -0
- package/dist/{chunk-4OWRNWHW.js → chunk-FCVFYUCL.js} +14 -5
- package/dist/chunk-FCVFYUCL.js.map +1 -0
- package/dist/{chunk-6QVXMYKH.js → chunk-FGTYI4ZG.js} +3 -3
- package/dist/{chunk-6QVXMYKH.js.map → chunk-FGTYI4ZG.js.map} +1 -1
- package/dist/{chunk-6G5QK3SU.js → chunk-FLXU5LWR.js} +44 -4
- package/dist/chunk-FLXU5LWR.js.map +1 -0
- package/dist/{chunk-P4WMDGAQ.js → chunk-G5JO3Q3K.js} +3 -3
- package/dist/{chunk-P4WMDGAQ.js.map → chunk-G5JO3Q3K.js.map} +1 -1
- package/dist/{chunk-RMJVCJ6U.js → chunk-GKG2LRGY.js} +6 -6
- package/dist/chunk-GKG2LRGY.js.map +1 -0
- package/dist/{chunk-N7VMQWM3.js → chunk-GN6B4W3G.js} +4 -4
- package/dist/{chunk-N7VMQWM3.js.map → chunk-GN6B4W3G.js.map} +1 -1
- package/dist/chunk-GX2VJT7D.js +136 -0
- package/dist/chunk-GX2VJT7D.js.map +1 -0
- package/dist/{chunk-MNYU5MHO.js → chunk-H4KC2YSL.js} +5 -5
- package/dist/{chunk-MNYU5MHO.js.map → chunk-H4KC2YSL.js.map} +1 -1
- package/dist/{chunk-GLHKHYJY.js → chunk-IARO2PPN.js} +55 -15
- package/dist/chunk-IARO2PPN.js.map +1 -0
- package/dist/{chunk-ELRIFGMN.js → chunk-JWXZFGNT.js} +30 -6
- package/dist/chunk-JWXZFGNT.js.map +1 -0
- package/dist/{chunk-Y4FEW7SR.js → chunk-K5RHYIFF.js} +16 -6
- package/dist/chunk-K5RHYIFF.js.map +1 -0
- package/dist/{chunk-T3LWBCVR.js → chunk-LKCOHB3C.js} +36 -3
- package/dist/chunk-LKCOHB3C.js.map +1 -0
- package/dist/{chunk-7PX3WBR3.js → chunk-LWIIO75I.js} +5 -3
- package/dist/chunk-LWIIO75I.js.map +1 -0
- package/dist/{chunk-U7TPJMGY.js → chunk-MR3IPJAO.js} +6 -2
- package/dist/chunk-MR3IPJAO.js.map +1 -0
- package/dist/chunk-MVL4DVRW.js +177 -0
- package/dist/chunk-MVL4DVRW.js.map +1 -0
- package/dist/{chunk-L4OQ6BJ5.js → chunk-N3DBRKUS.js} +3 -3
- package/dist/{chunk-L4OQ6BJ5.js.map → chunk-N3DBRKUS.js.map} +1 -1
- package/dist/{chunk-TIPKU427.js → chunk-N7DAU4LE.js} +3 -3
- package/dist/{chunk-TIPKU427.js.map → chunk-N7DAU4LE.js.map} +1 -1
- package/dist/{chunk-ZVSMLMMS.js → chunk-NORI6ECA.js} +44 -4
- package/dist/chunk-NORI6ECA.js.map +1 -0
- package/dist/{chunk-NLPVF34P.js → chunk-NT4GLWNR.js} +14 -9
- package/dist/chunk-NT4GLWNR.js.map +1 -0
- package/dist/{chunk-7AR5QRRX.js → chunk-NZNAR4HJ.js} +27 -11
- package/dist/chunk-NZNAR4HJ.js.map +1 -0
- package/dist/{chunk-TNSMTINE.js → chunk-OJIFG4LW.js} +3 -3
- package/dist/{chunk-TNSMTINE.js.map → chunk-OJIFG4LW.js.map} +1 -1
- package/dist/{chunk-PTXC4KPQ.js → chunk-OSHGYI2O.js} +4 -4
- package/dist/{chunk-PTXC4KPQ.js.map → chunk-OSHGYI2O.js.map} +1 -1
- package/dist/chunk-OW5R4KST.js +108 -0
- package/dist/chunk-OW5R4KST.js.map +1 -0
- package/dist/{chunk-QJOWG2D4.js → chunk-PVF23ZX2.js} +3 -3
- package/dist/{chunk-QJOWG2D4.js.map → chunk-PVF23ZX2.js.map} +1 -1
- package/dist/{chunk-KHCHATTD.js → chunk-PYCQBP4O.js} +4 -4
- package/dist/{chunk-KHCHATTD.js.map → chunk-PYCQBP4O.js.map} +1 -1
- package/dist/{chunk-KDNTSZF5.js → chunk-Q4E7OG7J.js} +3 -3
- package/dist/{chunk-KDNTSZF5.js.map → chunk-Q4E7OG7J.js.map} +1 -1
- package/dist/{chunk-KLFYTLF3.js → chunk-Q7MAQ7MO.js} +3 -3
- package/dist/{chunk-KLFYTLF3.js.map → chunk-Q7MAQ7MO.js.map} +1 -1
- package/dist/{chunk-S6BREP2G.js → chunk-QMCQIOCP.js} +21 -7
- package/dist/chunk-QMCQIOCP.js.map +1 -0
- package/dist/{chunk-SSKSWSVO.js → chunk-R2Z64IC3.js} +4 -4
- package/dist/{chunk-SSKSWSVO.js.map → chunk-R2Z64IC3.js.map} +1 -1
- package/dist/{chunk-UNHPLKMR.js → chunk-RK27HS7W.js} +3 -3
- package/dist/{chunk-UNHPLKMR.js.map → chunk-RK27HS7W.js.map} +1 -1
- package/dist/{chunk-IKLFWGFS.js → chunk-RTSAERFS.js} +7 -7
- package/dist/{chunk-IKLFWGFS.js.map → chunk-RTSAERFS.js.map} +1 -1
- package/dist/{chunk-EO4NGM5W.js → chunk-S7HXZ5T3.js} +65 -16
- package/dist/chunk-S7HXZ5T3.js.map +1 -0
- package/dist/{chunk-I5RDX6O3.js → chunk-TBPPBA3S.js} +31 -25
- package/dist/chunk-TBPPBA3S.js.map +1 -0
- package/dist/{chunk-TDANAN5A.js → chunk-TD2EFGHO.js} +7 -3
- package/dist/chunk-TD2EFGHO.js.map +1 -0
- package/dist/{chunk-3R6MY3YJ.js → chunk-TVAIT3F5.js} +3 -3
- package/dist/{chunk-3R6MY3YJ.js.map → chunk-TVAIT3F5.js.map} +1 -1
- package/dist/{chunk-VHJ6ALIE.js → chunk-TX4GUAZ6.js} +11 -3
- package/dist/chunk-TX4GUAZ6.js.map +1 -0
- package/dist/{chunk-7XJQYAGY.js → chunk-U55YU7DB.js} +22 -6
- package/dist/chunk-U55YU7DB.js.map +1 -0
- package/dist/{chunk-5GV4LDX7.js → chunk-VI3QWOII.js} +4 -2
- package/dist/chunk-VI3QWOII.js.map +1 -0
- package/dist/{chunk-PXR6CZIL.js → chunk-VYCXCOUH.js} +3 -3
- package/dist/{chunk-PXR6CZIL.js.map → chunk-VYCXCOUH.js.map} +1 -1
- package/dist/{chunk-SKI25Q7O.js → chunk-W72PXQDH.js} +4 -4
- package/dist/{chunk-SKI25Q7O.js.map → chunk-W72PXQDH.js.map} +1 -1
- package/dist/{chunk-4SFBDK4E.js → chunk-WTKHA2NF.js} +3 -3
- package/dist/{chunk-4SFBDK4E.js.map → chunk-WTKHA2NF.js.map} +1 -1
- package/dist/{chunk-KXJ3SEW7.js → chunk-YNZ6T4IU.js} +13 -5
- package/dist/chunk-YNZ6T4IU.js.map +1 -0
- package/dist/{chunk-7QEFKWUR.js → chunk-YZBCJDYO.js} +4 -4
- package/dist/{chunk-7QEFKWUR.js.map → chunk-YZBCJDYO.js.map} +1 -1
- package/dist/{chunk-PVIIIQJI.js → chunk-ZTD3QXLY.js} +4 -4
- package/dist/{chunk-PVIIIQJI.js.map → chunk-ZTD3QXLY.js.map} +1 -1
- package/dist/{chunk-HHWUROMA.js → chunk-ZZFCKHE2.js} +4 -4
- package/dist/{chunk-HHWUROMA.js.map → chunk-ZZFCKHE2.js.map} +1 -1
- package/dist/components/advanced/Calendar/index.js +3 -3
- package/dist/components/advanced/Command/index.js +2 -2
- package/dist/components/advanced/EventCalendar/index.js +3 -3
- package/dist/components/advanced/FilterBuilder/index.js +5 -5
- package/dist/components/advanced/MarkdownEditor/index.js +3 -3
- package/dist/components/advanced/ReportBuilder/index.js +4 -4
- package/dist/components/advanced/index.js +17 -17
- package/dist/components/data-display/Banner/index.js +1 -1
- package/dist/components/data-display/BarChart/index.js +1 -1
- package/dist/components/data-display/Carousel/index.js +3 -3
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +5 -5
- package/dist/components/data-display/DataTable/index.js +9 -9
- package/dist/components/data-display/ImageGallery/index.js +4 -4
- package/dist/components/data-display/Item/index.js +1 -1
- package/dist/components/data-display/KPICard/index.js +1 -1
- package/dist/components/data-display/List/index.js +2 -2
- package/dist/components/data-display/RadarChart/index.js +1 -1
- package/dist/components/data-display/RadialChart/index.js +1 -1
- package/dist/components/data-display/index.js +35 -35
- package/dist/components/feedback/AlertDialog/index.js +3 -3
- package/dist/components/feedback/ConfirmModal/index.js +4 -4
- package/dist/components/feedback/Dialog/index.js +1 -1
- package/dist/components/feedback/ErrorPage/index.js +1 -1
- package/dist/components/feedback/Notification/index.js +2 -2
- package/dist/components/feedback/index.js +9 -9
- package/dist/components/forms/DatePicker/index.js +4 -4
- package/dist/components/forms/DateRangePicker/index.js +5 -5
- package/dist/components/forms/EmailInput/index.js +3 -3
- package/dist/components/forms/InputGroup/index.js +5 -5
- package/dist/components/forms/NumberInput/index.js +2 -2
- package/dist/components/forms/PasswordInput/index.js +3 -3
- package/dist/components/forms/PaymentInput/index.js +1 -1
- package/dist/components/forms/PhoneInput/index.js +1 -1
- package/dist/components/forms/RadioGroup/index.js +1 -1
- package/dist/components/forms/Rating/index.js +1 -1
- package/dist/components/forms/SearchInput/index.js +3 -3
- package/dist/components/forms/Switch/index.js +1 -1
- package/dist/components/forms/TagsInput/index.js +1 -1
- package/dist/components/forms/TextInput/index.js +2 -2
- package/dist/components/forms/URLInput/index.js +3 -3
- package/dist/components/forms/index.js +33 -33
- package/dist/components/index.js +159 -159
- package/dist/components/layout/Collapsible/index.js +1 -1
- package/dist/components/layout/index.js +5 -5
- package/dist/components/navigation/AccountSwitch/index.js +3 -3
- package/dist/components/navigation/Breadcrumb/index.js +1 -1
- package/dist/components/navigation/ContextMenu/index.js +1 -1
- package/dist/components/navigation/DropdownMenu/index.js +1 -1
- package/dist/components/navigation/Pagination/index.js +3 -3
- package/dist/components/navigation/Sidebar/index.js +8 -7
- package/dist/components/navigation/index.js +18 -17
- package/dist/components/primitives/Avatar/index.js +1 -1
- package/dist/components/primitives/Button/index.js +2 -2
- package/dist/components/primitives/ButtonGroup/index.js +1 -1
- package/dist/components/primitives/ConfirmButton/index.js +4 -4
- package/dist/components/primitives/Icon/index.js +1 -1
- package/dist/components/primitives/Kbd/index.js +1 -1
- package/dist/components/primitives/Link/index.js +1 -1
- package/dist/components/primitives/ProgressCircle/index.js +1 -1
- package/dist/components/primitives/SplitButton/index.js +2 -2
- package/dist/components/primitives/Text/index.js +1 -1
- package/dist/components/primitives/index.js +18 -18
- package/dist/components/workflow/ApprovalFlow/index.js +4 -4
- package/dist/components/workflow/CommentSystem/index.js +4 -4
- package/dist/components/workflow/Dashboard/index.js +3 -3
- package/dist/components/workflow/DashboardBuilder/index.js +5 -5
- package/dist/components/workflow/KanbanBoard/index.js +4 -4
- package/dist/components/workflow/ReportGenerator/index.js +3 -3
- package/dist/components/workflow/TaskStatus/index.js +2 -2
- package/dist/components/workflow/Wizard/index.js +3 -3
- package/dist/components/workflow/index.js +17 -17
- package/dist/hooks/index.js +1 -1
- package/dist/index.d.ts +322 -49
- package/dist/index.js +159 -159
- package/dist/styles.css +27 -8
- package/package.json +2 -2
- package/dist/chunk-2SUZS6GZ.js.map +0 -1
- package/dist/chunk-4LZ53BAG.js.map +0 -1
- package/dist/chunk-4OWRNWHW.js.map +0 -1
- package/dist/chunk-5GV4LDX7.js.map +0 -1
- package/dist/chunk-6G5QK3SU.js.map +0 -1
- package/dist/chunk-6VEQLD2P.js +0 -75
- package/dist/chunk-6VEQLD2P.js.map +0 -1
- package/dist/chunk-7AR5QRRX.js.map +0 -1
- package/dist/chunk-7PX3WBR3.js.map +0 -1
- package/dist/chunk-7XJQYAGY.js.map +0 -1
- package/dist/chunk-ELRIFGMN.js.map +0 -1
- package/dist/chunk-EO4NGM5W.js.map +0 -1
- package/dist/chunk-GLHKHYJY.js.map +0 -1
- package/dist/chunk-GVNG5ME6.js.map +0 -1
- package/dist/chunk-I5RDX6O3.js.map +0 -1
- package/dist/chunk-JUZ4JQWH.js +0 -69
- package/dist/chunk-JUZ4JQWH.js.map +0 -1
- package/dist/chunk-K4UCALQQ.js +0 -67
- package/dist/chunk-K4UCALQQ.js.map +0 -1
- package/dist/chunk-KXJ3SEW7.js.map +0 -1
- package/dist/chunk-NLPVF34P.js.map +0 -1
- package/dist/chunk-RMJVCJ6U.js.map +0 -1
- package/dist/chunk-S6BREP2G.js.map +0 -1
- package/dist/chunk-T3LWBCVR.js.map +0 -1
- package/dist/chunk-TDANAN5A.js.map +0 -1
- package/dist/chunk-U7TPJMGY.js.map +0 -1
- package/dist/chunk-UC5J6GWG.js.map +0 -1
- package/dist/chunk-VHJ6ALIE.js.map +0 -1
- package/dist/chunk-WGKOYZRI.js.map +0 -1
- package/dist/chunk-WUS45IZW.js +0 -36
- package/dist/chunk-WUS45IZW.js.map +0 -1
- package/dist/chunk-Y4FEW7SR.js.map +0 -1
- package/dist/chunk-ZVSMLMMS.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"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","file":"chunk-JWXZFGNT.js","sourcesContent":["import type {\n ButtonGroupContextValue,\n ButtonGroupItemProps,\n ButtonGroupProps,\n ButtonGroupSeparatorProps,\n ButtonGroupTextProps,\n} from \"./ButtonGroup.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../Divider\"\n\n/**\n * Context for ButtonGroup prop inheritance\n * Child buttons can use useButtonGroup() to access group-level props\n */\nconst ButtonGroupContext = React.createContext<ButtonGroupContextValue | null>(null)\n\n/**\n * Hook to access ButtonGroup context values\n * Returns null if not inside a ButtonGroup\n */\nfunction useButtonGroup(): ButtonGroupContextValue | null {\n return React.use(ButtonGroupContext)\n}\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n variant: {\n default: \"\",\n segmented:\n \"border border-[color:var(--button-group-root-border-color-default)] rounded-[var(--button-group-root-radius)] shadow-[var(--button-group-root-shadow)] overflow-clip isolate [&>*:not(:first-child)]:rounded-none [&>*:first-child]:rounded-l-[var(--button-group-root-radius)] [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-r-[var(--button-group-root-radius)] [&>*:last-child]:rounded-l-none\",\n primary:\n \"border border-[color:var(--button-group-root-border-color-primary)] bg-[color:var(--button-group-root-bg-primary)] text-[color:var(--button-group-root-fg-primary)] rounded-[var(--button-group-root-radius)] shadow-[var(--button-group-root-shadow)] overflow-clip isolate [&>*:not(:first-child)]:rounded-none [&>*:first-child]:rounded-l-[var(--button-group-root-radius)] [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-r-[var(--button-group-root-radius)] [&>*:last-child]:rounded-l-none\",\n },\n orientation: {\n horizontal: \"\",\n vertical: \"flex-col\",\n },\n // Figma \"Type\" (1265:2984): Segmented = colado (fusão de bordas, o\n // attached de hoje); Default = botões SOLTOS com gap de 4px e radius\n // próprio (\"detached\"). O visual do style (Default/Primary) no\n // detached vem dos próprios filhos (ex.: Button variant=\"primary\")\n type: {\n attached: \"\",\n detached: \"gap-1\",\n },\n },\n compoundVariants: [\n // Fusão de bordas/radius entre filhos — só no attached\n {\n orientation: \"horizontal\",\n type: \"attached\",\n className:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n },\n {\n orientation: \"vertical\",\n type: \"attached\",\n className:\n \"[&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n // Segmented variant removes default border handling (items have their own dividers)\n {\n variant: \"segmented\",\n orientation: \"horizontal\",\n type: \"attached\",\n className:\n \"[&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:border-r [&>*:not(:last-child)]:border-border\",\n },\n {\n variant: \"segmented\",\n orientation: \"vertical\",\n type: \"attached\",\n className:\n \"[&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:border-b [&>*:not(:last-child)]:border-border\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n orientation: \"horizontal\",\n type: \"attached\",\n },\n }\n)\n\nconst buttonGroupItemVariants = cva(\n \"inline-flex items-center justify-center gap-[var(--button-group-item-gap)] leading-[length:var(--button-group-item-line-height)] font-[var(--button-group-item-font-weight)] transition-colors outline-none whitespace-nowrap [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-5 [&_svg]:shrink-0 focus-visible:z-10 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset disabled:pointer-events-none disabled:text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"h-[var(--button-group-item-height-sm)] text-[length:var(--button-group-item-font-size-sm)]\",\n md: \"h-[var(--button-group-item-height-md)] text-[length:var(--button-group-item-font-size-md)]\",\n lg: \"h-[var(--button-group-item-height-lg)] text-[length:var(--button-group-item-font-size-lg)]\",\n },\n iconMode: {\n none: \"\",\n leading: \"\",\n dot: \"\",\n only: \"\",\n },\n current: {\n true: \"bg-[color:var(--button-group-item-background-active)]\",\n false: \"bg-[color:var(--button-group-item-background)] hover:bg-[color:var(--button-group-item-background-hover)]\",\n },\n },\n compoundVariants: [\n // Padding pairs per size × iconMode (only is icon-only, gets symmetric px)\n { size: \"sm\", iconMode: \"none\", className: \"px-[var(--button-group-item-padding-x-sm)] py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"sm\", iconMode: \"leading\", className: \"pl-2.5 pr-[var(--button-group-item-padding-x-sm)] py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"sm\", iconMode: \"dot\", className: \"px-[var(--button-group-item-padding-x-sm)] py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"sm\", iconMode: \"only\", className: \"px-2 py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"md\", iconMode: \"none\", className: \"px-[var(--button-group-item-padding-x-md)] py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"md\", iconMode: \"leading\", className: \"pl-3 pr-[var(--button-group-item-padding-x-md)] py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"md\", iconMode: \"dot\", className: \"px-[var(--button-group-item-padding-x-md)] py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"md\", iconMode: \"only\", className: \"px-2.5 py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"lg\", iconMode: \"none\", className: \"px-[var(--button-group-item-padding-x-lg)] py-[var(--button-group-item-padding-y-lg)]\" },\n { size: \"lg\", iconMode: \"leading\", className: \"pl-3.5 pr-[var(--button-group-item-padding-x-lg)] py-[var(--button-group-item-padding-y-lg)]\" },\n { size: \"lg\", iconMode: \"dot\", className: \"px-[var(--button-group-item-padding-x-lg)] py-[var(--button-group-item-padding-y-lg)]\" },\n { size: \"lg\", iconMode: \"only\", className: \"px-3 py-[var(--button-group-item-padding-y-lg)]\" },\n ],\n defaultVariants: {\n size: \"md\",\n iconMode: \"none\",\n current: false,\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n variant,\n type,\n size,\n buttonVariant,\n disabled,\n children,\n ...props\n}: ButtonGroupProps) {\n const contextValue = React.useMemo<ButtonGroupContextValue>(\n () => ({ size, buttonVariant, disabled }),\n [size, buttonVariant, disabled]\n )\n\n return (\n <ButtonGroupContext value={contextValue}>\n <div\n className={cn(buttonGroupVariants({ orientation, variant, type }), className)}\n data-orientation={orientation}\n data-slot=\"button-group\"\n data-type={type}\n data-variant={variant}\n role=\"group\"\n {...props}\n >\n {children}\n </div>\n </ButtonGroupContext>\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: ButtonGroupTextProps) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-[color:var(--button-group-text-background)] flex items-center gap-2 rounded-[var(--button-group-root-radius)] border px-[var(--button-group-text-padding-x)] text-[length:var(--button-group-text-font-size)] font-[var(--button-group-text-font-weight)] shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n data-slot=\"button-group-text\"\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: ButtonGroupSeparatorProps) {\n return (\n <Divider\n className={cn(\n \"bg-[color:var(--button-group-separator-color)] relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n data-slot=\"button-group-separator\"\n orientation={orientation}\n {...props}\n />\n )\n}\n\n/**\n * ButtonGroupItem - Individual segment in a segmented button group\n * Use within ButtonGroup variant=\"segmented\"\n */\nfunction ButtonGroupItem({\n className,\n current = false,\n iconMode = \"none\",\n icon,\n dot,\n children,\n disabled,\n size = \"md\",\n ...props\n}: ButtonGroupItemProps) {\n // Determine effective icon mode based on props\n const effectiveIconMode = icon && !children ? \"only\" : dot ? \"dot\" : icon ? \"leading\" : iconMode\n\n return (\n <button\n className={cn(\n buttonGroupItemVariants({\n size,\n iconMode: effectiveIconMode,\n current,\n }),\n className\n )}\n data-current={current}\n data-slot=\"button-group-item\"\n disabled={disabled}\n type=\"button\"\n {...props}\n >\n {/* Status dot */}\n {dot && (\n <span\n className={cn(\n \"size-2 rounded-full shrink-0\",\n typeof dot === \"string\" ? dot : \"bg-success\"\n )}\n data-slot=\"button-group-item-dot\"\n />\n )}\n\n {/* Leading icon */}\n {icon && effectiveIconMode !== \"dot\" && (\n <span className=\"shrink-0\" data-slot=\"button-group-item-icon\">\n {icon}\n </span>\n )}\n\n {/* Text content */}\n {children && effectiveIconMode !== \"only\" && (\n <span data-slot=\"button-group-item-text\">{children}</span>\n )}\n </button>\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupContext,\n ButtonGroupItem,\n buttonGroupItemVariants,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n useButtonGroup,\n}\n"]}
|
|
@@ -28,12 +28,19 @@ var linkVariants = cva(
|
|
|
28
28
|
always: "underline underline-offset-4",
|
|
29
29
|
hover: "hover:underline underline-offset-4",
|
|
30
30
|
none: "no-underline hover:no-underline"
|
|
31
|
+
},
|
|
32
|
+
// Figma State=Disabled (1376:4896, todas as cores): fg status-disabled;
|
|
33
|
+
// vem depois de variant no cn, então vence a cor visual
|
|
34
|
+
disabled: {
|
|
35
|
+
true: "pointer-events-none text-[color:var(--status-disabled-foreground)] no-underline hover:no-underline",
|
|
36
|
+
false: ""
|
|
31
37
|
}
|
|
32
38
|
},
|
|
33
39
|
defaultVariants: {
|
|
34
40
|
variant: "default",
|
|
35
41
|
size: "inherit",
|
|
36
|
-
underline: "hover"
|
|
42
|
+
underline: "hover",
|
|
43
|
+
disabled: false
|
|
37
44
|
},
|
|
38
45
|
compoundVariants: [
|
|
39
46
|
// inline variant always has underline, override underline prop
|
|
@@ -55,6 +62,7 @@ function Link({
|
|
|
55
62
|
size,
|
|
56
63
|
underline,
|
|
57
64
|
asChild = false,
|
|
65
|
+
disabled = false,
|
|
58
66
|
external = false,
|
|
59
67
|
leftIcon,
|
|
60
68
|
rightIcon,
|
|
@@ -104,13 +112,15 @@ function Link({
|
|
|
104
112
|
return /* @__PURE__ */ jsx(
|
|
105
113
|
Comp,
|
|
106
114
|
{
|
|
107
|
-
|
|
115
|
+
"aria-disabled": disabled || void 0,
|
|
116
|
+
className: cn(linkVariants({ variant, size, underline, disabled }), className),
|
|
117
|
+
"data-disabled": disabled ? "" : void 0,
|
|
108
118
|
"data-id": dataId,
|
|
109
119
|
"data-slot": "link",
|
|
110
|
-
href,
|
|
120
|
+
href: disabled && !asChild ? void 0 : href,
|
|
111
121
|
rel: external ? "noopener noreferrer" : rel,
|
|
112
122
|
target: external ? "_blank" : void 0,
|
|
113
|
-
onClick: handleClick,
|
|
123
|
+
onClick: disabled ? void 0 : handleClick,
|
|
114
124
|
...props,
|
|
115
125
|
children: renderContent()
|
|
116
126
|
}
|
|
@@ -118,5 +128,5 @@ function Link({
|
|
|
118
128
|
}
|
|
119
129
|
|
|
120
130
|
export { Link, linkVariants };
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
122
|
-
//# sourceMappingURL=chunk-
|
|
131
|
+
//# sourceMappingURL=chunk-K5RHYIFF.js.map
|
|
132
|
+
//# sourceMappingURL=chunk-K5RHYIFF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/Link/Link.tsx"],"names":[],"mappings":"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","file":"chunk-K5RHYIFF.js","sourcesContent":["import type { LinkEventPayload, LinkProps } from \"./Link.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva } from \"class-variance-authority\"\nimport { ExternalLink } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst linkVariants = cva(\n \"inline-flex items-center gap-1 transition-colors outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"text-[color:var(--link-color-default)]\",\n muted: \"text-[color:var(--link-color-muted)]\",\n subtle: \"text-[color:var(--link-color-subtle)]\",\n nav: \"text-[color:var(--link-color-nav)] hover:text-[color:var(--link-color-nav-hover)]\",\n inline: \"text-[color:var(--link-color-default)] underline underline-offset-4\",\n unstyled: \"\",\n },\n size: {\n xs: \"text-[length:var(--link-text-xs)]\",\n sm: \"text-[length:var(--link-text-sm)]\",\n default: \"text-[length:var(--link-text-default)]\",\n lg: \"text-[length:var(--link-text-lg)]\",\n inherit: \"\",\n },\n underline: {\n always: \"underline underline-offset-4\",\n hover: \"hover:underline underline-offset-4\",\n none: \"no-underline hover:no-underline\",\n },\n // Figma State=Disabled (1376:4896, todas as cores): fg status-disabled;\n // vem depois de variant no cn, então vence a cor visual\n disabled: {\n true: \"pointer-events-none text-[color:var(--status-disabled-foreground)] no-underline hover:no-underline\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"inherit\",\n underline: \"hover\",\n disabled: false,\n },\n compoundVariants: [\n // inline variant always has underline, override underline prop\n {\n variant: \"inline\",\n className: \"underline underline-offset-4\",\n },\n // nav variant never has underline, override underline prop\n {\n variant: \"nav\",\n className: \"no-underline hover:no-underline\",\n },\n ],\n }\n)\n\nfunction Link({\n className,\n variant,\n size,\n underline,\n asChild = false,\n disabled = false,\n external = false,\n leftIcon,\n rightIcon,\n showExternalIcon = true,\n children,\n onClick,\n href,\n rel,\n \"data-id\": dataId,\n ...props\n}: LinkProps) {\n const Comp = asChild ? Slot : \"a\"\n\n // Create event payload for callbacks\n const createPayload = React.useCallback((): LinkEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n timestamp: Date.now(),\n isExternal: external,\n ...(href ? { href } : {}),\n }), [dataId, external, href])\n\n // Wrapped click handler that emits LinkEventPayload\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLAnchorElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload]\n )\n\n // Determine if we should show the external icon\n const shouldShowExternalIcon = external && showExternalIcon && !rightIcon\n\n // Render content with icons\n const renderContent = () => {\n // If asChild, we pass children directly (Slot handles composition)\n if (asChild) {\n return children\n }\n\n return (\n <>\n {leftIcon && (\n <span aria-hidden=\"true\" data-slot=\"left-icon\">\n {leftIcon}\n </span>\n )}\n {children}\n {rightIcon && (\n <span aria-hidden=\"true\" data-slot=\"right-icon\">\n {rightIcon}\n </span>\n )}\n {shouldShowExternalIcon && (\n <>\n <span className=\"sr-only\">(opens in new tab)</span>\n <ExternalLink\n aria-hidden=\"true\"\n className=\"size-3\"\n data-slot=\"external-icon\"\n />\n </>\n )}\n </>\n )\n }\n\n return (\n <Comp\n // Âncora não tem disabled nativo: sem href vira placeholder link\n // (fora do tab order) + aria-disabled pro leitor de tela\n aria-disabled={disabled || undefined}\n className={cn(linkVariants({ variant, size, underline, disabled }), className)}\n data-disabled={disabled ? \"\" : undefined}\n data-id={dataId}\n data-slot=\"link\"\n href={disabled && !asChild ? undefined : href}\n rel={external ? \"noopener noreferrer\" : rel}\n target={external ? \"_blank\" : undefined}\n onClick={disabled ? undefined : handleClick}\n {...props}\n >\n {renderContent()}\n </Comp>\n )\n}\n\nexport { Link, linkVariants }\n"]}
|
|
@@ -103,7 +103,40 @@ var inputIconVariants = cva(
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
);
|
|
106
|
+
var inputCompositionVariants = cva(
|
|
107
|
+
[
|
|
108
|
+
"flex w-full min-w-0 items-center gap-2",
|
|
109
|
+
"rounded-[var(--input-radius)] border transition-[color,box-shadow]",
|
|
110
|
+
"bg-[color:var(--input-bg-default)] border-[color:var(--input-border-default)]",
|
|
111
|
+
"dark:bg-input",
|
|
112
|
+
"hover:border-[color:var(--border-semantic-strong)]",
|
|
113
|
+
"focus-within:border-[color:var(--input-border-focus)] focus-within:ring-[color:var(--input-border-focus)]/20 focus-within:ring-4",
|
|
114
|
+
"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:bg-[color:var(--input-bg-disabled)]",
|
|
115
|
+
"aria-invalid:ring-[color:var(--input-border-error)]/20 dark:aria-invalid:ring-[color:var(--input-border-error)]/40 aria-invalid:border-[color:var(--input-border-error)]"
|
|
116
|
+
],
|
|
117
|
+
{
|
|
118
|
+
variants: {
|
|
119
|
+
size: {
|
|
120
|
+
xs: "h-[var(--input-size-xs-h)] px-[var(--input-size-xs-px)] text-[length:var(--input-size-xs-text)]",
|
|
121
|
+
sm: "h-[var(--input-size-sm-h)] px-[var(--input-size-sm-px)] text-[length:var(--input-size-sm-text)]",
|
|
122
|
+
md: "h-[var(--input-size-md-h)] px-[var(--input-size-md-px)] text-[length:var(--input-size-md-text)]",
|
|
123
|
+
lg: "h-[var(--input-size-lg-h)] px-[var(--input-size-lg-px)] text-[length:var(--input-size-lg-text)]",
|
|
124
|
+
xl: "h-[var(--input-size-xl-h)] px-[var(--input-size-xl-px)] text-[length:var(--input-size-xl-text)]"
|
|
125
|
+
},
|
|
126
|
+
variant: {
|
|
127
|
+
default: "shadow-xs",
|
|
128
|
+
filled: "border-transparent bg-muted",
|
|
129
|
+
flushed: "rounded-none border-x-0 border-t-0 border-b-[color:var(--input-border-default)] px-0",
|
|
130
|
+
unstyled: "border-0 bg-transparent shadow-none focus-within:ring-0"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
defaultVariants: {
|
|
134
|
+
size: "md",
|
|
135
|
+
variant: "default"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
);
|
|
106
139
|
|
|
107
|
-
export { inputIconVariants, inputVariants, inputWrapperVariants };
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
109
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
export { inputCompositionVariants, inputIconVariants, inputVariants, inputWrapperVariants };
|
|
141
|
+
//# sourceMappingURL=chunk-LKCOHB3C.js.map
|
|
142
|
+
//# sourceMappingURL=chunk-LKCOHB3C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/TextInput/TextInput.variants.ts"],"names":[],"mappings":"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","file":"chunk-LKCOHB3C.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Input variant styles using CVA\n */\nexport const inputVariants = cva(\n // Base styles\n [\n \"w-full min-w-0 rounded-[var(--input-radius)] border transition-[color,box-shadow] outline-none\",\n \"bg-[color:var(--input-bg-default)] text-[color:var(--input-fg-default)] border-[color:var(--input-border-default)]\",\n \"file:text-[color:var(--input-fg-default)] placeholder:text-[color:var(--input-fg-placeholder)]\",\n \"selection:bg-primary selection:text-primary-foreground\",\n \"dark:bg-input\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[color:var(--input-bg-disabled)] disabled:text-[color:var(--input-fg-disabled)]\",\n \"hover:border-[color:var(--border-semantic-strong)]\",\n \"focus-visible:border-[color:var(--input-border-focus)] focus-visible:ring-[color:var(--input-border-focus)]/20 focus-visible:ring-4\",\n \"aria-invalid:ring-[color:var(--input-border-error)]/20 dark:aria-invalid:ring-[color:var(--input-border-error)]/40 aria-invalid:border-[color:var(--input-border-error)]\",\n ],\n {\n variants: {\n size: {\n xs: \"h-[var(--input-size-xs-h)] px-[var(--input-size-xs-px)] py-[var(--input-size-xs-py)] text-[length:var(--input-size-xs-text)]\",\n sm: \"h-[var(--input-size-sm-h)] px-[var(--input-size-sm-px)] py-[var(--input-size-sm-py)] text-[length:var(--input-size-sm-text)]\",\n md: \"h-[var(--input-size-md-h)] px-[var(--input-size-md-px)] py-[var(--input-size-md-py)] text-[length:var(--input-size-md-text)]\",\n lg: \"h-[var(--input-size-lg-h)] px-[var(--input-size-lg-px)] py-[var(--input-size-lg-py)] text-[length:var(--input-size-lg-text)]\",\n xl: \"h-[var(--input-size-xl-h)] px-[var(--input-size-xl-px)] py-[var(--input-size-xl-py)] text-[length:var(--input-size-xl-text)]\",\n },\n variant: {\n default: \"shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-[color:var(--input-border-default)] px-0\",\n unstyled: \"border-0 bg-transparent shadow-none focus-visible:ring-0\",\n },\n hasLeadingIcon: {\n true: \"\",\n false: \"\",\n },\n hasTrailingIcon: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Unstyled without icons should have no padding\n { variant: \"unstyled\", hasLeadingIcon: false, hasTrailingIcon: false, className: \"p-0\" },\n // Leading icon padding adjustments\n { size: \"xs\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-xs)]\" },\n { size: \"sm\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-sm)]\" },\n { size: \"md\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-md)]\" },\n { size: \"lg\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-lg)]\" },\n { size: \"xl\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-xl)]\" },\n // Trailing icon padding adjustments\n { size: \"xs\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-xs)]\" },\n { size: \"sm\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-sm)]\" },\n { size: \"md\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-md)]\" },\n { size: \"lg\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-lg)]\" },\n { size: \"xl\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-xl)]\" },\n ],\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n hasLeadingIcon: false,\n hasTrailingIcon: false,\n },\n }\n)\n\n/**\n * Input wrapper styles for when icons are present\n */\nexport const inputWrapperVariants = cva(\"relative w-full\")\n\n/**\n * Input icon styles using CVA\n */\nexport const inputIconVariants = cva(\n \"absolute top-1/2 -translate-y-1/2 flex items-center justify-center text-[color:var(--input-fg-icon)]\",\n {\n variants: {\n position: {\n leading: \"left-0\",\n trailing: \"right-0\",\n },\n size: {\n xs: \"size-[var(--input-icon-size-xs)]\",\n sm: \"size-[var(--input-icon-size-sm)]\",\n md: \"size-[var(--input-icon-size-md)]\",\n lg: \"size-[var(--input-icon-size-lg)]\",\n xl: \"size-[var(--input-icon-size-xl)]\",\n },\n interactive: {\n true: \"pointer-events-auto\",\n false: \"pointer-events-none\",\n },\n },\n compoundVariants: [\n // Leading icon position adjustments\n { position: \"leading\", size: \"xs\", className: \"left-[var(--input-icon-position-xs)]\" },\n { position: \"leading\", size: \"sm\", className: \"left-[var(--input-icon-position-sm)]\" },\n { position: \"leading\", size: \"md\", className: \"left-[var(--input-icon-position-md)]\" },\n { position: \"leading\", size: \"lg\", className: \"left-[var(--input-icon-position-lg)]\" },\n { position: \"leading\", size: \"xl\", className: \"left-[var(--input-icon-position-xl)]\" },\n // Trailing icon position adjustments\n { position: \"trailing\", size: \"xs\", className: \"right-[var(--input-icon-position-xs)]\" },\n { position: \"trailing\", size: \"sm\", className: \"right-[var(--input-icon-position-sm)]\" },\n { position: \"trailing\", size: \"md\", className: \"right-[var(--input-icon-position-md)]\" },\n { position: \"trailing\", size: \"lg\", className: \"right-[var(--input-icon-position-lg)]\" },\n { position: \"trailing\", size: \"xl\", className: \"right-[var(--input-icon-position-xl)]\" },\n ],\n defaultVariants: {\n position: \"leading\",\n size: \"md\",\n },\n }\n)\n\nexport type InputVariantProps = VariantProps<typeof inputVariants>\nexport type InputIconVariantProps = VariantProps<typeof inputIconVariants>\n\n/**\n * Composition container — Figma Input Type=Leading Text / Trailing Dropdown\n * (1384:8287): prefixo textual com divider e/ou dropdown no fim exigem o\n * border no CONTAINER (focus-within), com o input interno unstyled\n */\nexport const inputCompositionVariants = cva(\n [\n \"flex w-full min-w-0 items-center gap-2\",\n \"rounded-[var(--input-radius)] border transition-[color,box-shadow]\",\n \"bg-[color:var(--input-bg-default)] border-[color:var(--input-border-default)]\",\n \"dark:bg-input\",\n \"hover:border-[color:var(--border-semantic-strong)]\",\n \"focus-within:border-[color:var(--input-border-focus)] focus-within:ring-[color:var(--input-border-focus)]/20 focus-within:ring-4\",\n \"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:bg-[color:var(--input-bg-disabled)]\",\n \"aria-invalid:ring-[color:var(--input-border-error)]/20 dark:aria-invalid:ring-[color:var(--input-border-error)]/40 aria-invalid:border-[color:var(--input-border-error)]\",\n ],\n {\n variants: {\n size: {\n xs: \"h-[var(--input-size-xs-h)] px-[var(--input-size-xs-px)] text-[length:var(--input-size-xs-text)]\",\n sm: \"h-[var(--input-size-sm-h)] px-[var(--input-size-sm-px)] text-[length:var(--input-size-sm-text)]\",\n md: \"h-[var(--input-size-md-h)] px-[var(--input-size-md-px)] text-[length:var(--input-size-md-text)]\",\n lg: \"h-[var(--input-size-lg-h)] px-[var(--input-size-lg-px)] text-[length:var(--input-size-lg-text)]\",\n xl: \"h-[var(--input-size-xl-h)] px-[var(--input-size-xl-px)] text-[length:var(--input-size-xl-text)]\",\n },\n variant: {\n default: \"shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-[color:var(--input-border-default)] px-0\",\n unstyled: \"border-0 bg-transparent shadow-none focus-within:ring-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n"]}
|
|
@@ -11,10 +11,11 @@ var textVariants = cva("", {
|
|
|
11
11
|
display1: "text-[length:var(--typography-display-d1-font-size)] leading-[var(--typography-display-d1-line-height)] font-[number:var(--typography-display-d1-font-weight)] font-[family-name:var(--typography-display-d1-font-family)] text-[color:var(--text-color-default)]",
|
|
12
12
|
display2: "text-[length:var(--typography-display-d2-font-size)] leading-[var(--typography-display-d2-line-height)] font-[number:var(--typography-display-d2-font-weight)] font-[family-name:var(--typography-display-d2-font-family)] text-[color:var(--text-color-default)]",
|
|
13
13
|
display3: "text-[length:var(--typography-display-d3-font-size)] leading-[var(--typography-display-d3-line-height)] font-[number:var(--typography-display-d3-font-weight)] font-[family-name:var(--typography-display-d3-font-family)] text-[color:var(--text-color-default)]",
|
|
14
|
-
// Paragraph — body copy at
|
|
14
|
+
// Paragraph — body copy at four reading sizes (p1 largest → p4 smallest, Figma Paragraph 1–4).
|
|
15
15
|
p1: "text-[length:var(--typography-paragraph-p1-font-size)] leading-[var(--typography-paragraph-p1-line-height)] font-[number:var(--typography-paragraph-p1-font-weight)] text-[color:var(--text-color-default)]",
|
|
16
16
|
p2: "text-[length:var(--typography-paragraph-p2-font-size)] leading-[var(--typography-paragraph-p2-line-height)] font-[number:var(--typography-paragraph-p2-font-weight)] text-[color:var(--text-color-default)]",
|
|
17
17
|
p3: "text-[length:var(--typography-paragraph-p3-font-size)] leading-[var(--typography-paragraph-p3-line-height)] font-[number:var(--typography-paragraph-p3-font-weight)] text-[color:var(--text-color-default)]",
|
|
18
|
+
p4: "text-[length:var(--typography-paragraph-p4-font-size)] leading-[var(--typography-paragraph-p4-line-height)] font-[number:var(--typography-paragraph-p4-font-weight)] text-[color:var(--text-color-default)]",
|
|
18
19
|
// Caption — small, supporting labels and metadata.
|
|
19
20
|
caption1: "text-[length:var(--typography-caption-c1-font-size)] leading-[var(--typography-caption-c1-line-height)] font-[number:var(--typography-caption-c1-font-weight)] text-[color:var(--text-color-default)]",
|
|
20
21
|
caption2: "text-[length:var(--typography-caption-c2-font-size)] leading-[var(--typography-caption-c2-line-height)] font-[number:var(--typography-caption-c2-font-weight)] text-[color:var(--text-color-default)]",
|
|
@@ -57,6 +58,7 @@ var PARAGRAPH_VARIANTS = /* @__PURE__ */ new Set([
|
|
|
57
58
|
"p1",
|
|
58
59
|
"p2",
|
|
59
60
|
"p3",
|
|
61
|
+
"p4",
|
|
60
62
|
"display1",
|
|
61
63
|
"display2",
|
|
62
64
|
"display3"
|
|
@@ -92,5 +94,5 @@ function Text({
|
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
export { Text, textVariants };
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
96
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-LWIIO75I.js.map
|
|
98
|
+
//# sourceMappingURL=chunk-LWIIO75I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/Text/Text.tsx"],"names":[],"mappings":";;;;;;AAMA,IAAM,YAAA,GAAe,IAAI,EAAA,EAAI;AAAA,EAC3B,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA;AAAA,MAEP,QAAA,EACE,mQAAA;AAAA,MACF,QAAA,EACE,mQAAA;AAAA,MACF,QAAA,EACE,mQAAA;AAAA;AAAA,MAEF,EAAA,EAAI,6MAAA;AAAA,MACJ,EAAA,EAAI,6MAAA;AAAA,MACJ,EAAA,EAAI,6MAAA;AAAA,MACJ,EAAA,EAAI,6MAAA;AAAA;AAAA,MAEJ,QAAA,EACE,uMAAA;AAAA,MACF,QAAA,EACE,uMAAA;AAAA;AAAA,MAEF,IAAA,EAAM,kIAAA;AAAA,MACN,IAAA,EAAM,4HAAA;AAAA,MACN,KAAA,EAAO,0HAAA;AAAA,MACP,KAAA,EAAO,4HAAA;AAAA,MACP,KAAA,EAAO,4HAAA;AAAA,MACP,IAAA,EAAM;AAAA,KACR;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,uFAAA;AAAA,MACJ,EAAA,EAAI,uFAAA;AAAA,MACJ,IAAA,EAAM,2FAAA;AAAA,MACN,EAAA,EAAI,uFAAA;AAAA,MACJ,EAAA,EAAI,uFAAA;AAAA,MACJ,KAAA,EAAO,yFAAA;AAAA,MACP,KAAA,EAAO,yFAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,kCAAA;AAAA,MACR,MAAA,EAAQ,kCAAA;AAAA,MACR,QAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAAA,IACA,KAAA,EAAO;AAAA;AAAA;AAAA,MAGL,OAAA,EAAS,wCAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC;AAyBD,IAAM,kBAAA,uBAAyB,GAAA,CAAuC;AAAA,EACpE,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,SAAS,IAAA,CAAK;AAAA,EACZ,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,EAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,MAAM,eAAA,GACJ,OAAA,KAAY,MAAA,GACR,MAAA,GACA,OAAA,IAAW,kBAAA,CAAmB,GAAA,CAAI,OAAO,CAAA,GACvC,GAAA,GACA,QAAA,GACE,GAAA,GACA,MAAA;AACV,EAAA,MAAM,kBAA+B,EAAA,IAAM,eAAA;AAC3C,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,eAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,aAAa,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,CAAA;AAAA,QAC7C,QAAA,IAAY,UAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,WAAA,EAAU,MAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-LWIIO75I.js","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst textVariants = cva(\"\", {\n variants: {\n variant: {\n // Display — high-impact, oversized type from the Figma typography scale.\n display1:\n \"text-[length:var(--typography-display-d1-font-size)] leading-[var(--typography-display-d1-line-height)] font-[number:var(--typography-display-d1-font-weight)] font-[family-name:var(--typography-display-d1-font-family)] text-[color:var(--text-color-default)]\",\n display2:\n \"text-[length:var(--typography-display-d2-font-size)] leading-[var(--typography-display-d2-line-height)] font-[number:var(--typography-display-d2-font-weight)] font-[family-name:var(--typography-display-d2-font-family)] text-[color:var(--text-color-default)]\",\n display3:\n \"text-[length:var(--typography-display-d3-font-size)] leading-[var(--typography-display-d3-line-height)] font-[number:var(--typography-display-d3-font-weight)] font-[family-name:var(--typography-display-d3-font-family)] text-[color:var(--text-color-default)]\",\n // Paragraph — body copy at four reading sizes (p1 largest → p4 smallest, Figma Paragraph 1–4).\n p1: \"text-[length:var(--typography-paragraph-p1-font-size)] leading-[var(--typography-paragraph-p1-line-height)] font-[number:var(--typography-paragraph-p1-font-weight)] text-[color:var(--text-color-default)]\",\n p2: \"text-[length:var(--typography-paragraph-p2-font-size)] leading-[var(--typography-paragraph-p2-line-height)] font-[number:var(--typography-paragraph-p2-font-weight)] text-[color:var(--text-color-default)]\",\n p3: \"text-[length:var(--typography-paragraph-p3-font-size)] leading-[var(--typography-paragraph-p3-line-height)] font-[number:var(--typography-paragraph-p3-font-weight)] text-[color:var(--text-color-default)]\",\n p4: \"text-[length:var(--typography-paragraph-p4-font-size)] leading-[var(--typography-paragraph-p4-line-height)] font-[number:var(--typography-paragraph-p4-font-weight)] text-[color:var(--text-color-default)]\",\n // Caption — small, supporting labels and metadata.\n caption1:\n \"text-[length:var(--typography-caption-c1-font-size)] leading-[var(--typography-caption-c1-line-height)] font-[number:var(--typography-caption-c1-font-weight)] text-[color:var(--text-color-default)]\",\n caption2:\n \"text-[length:var(--typography-caption-c2-font-size)] leading-[var(--typography-caption-c2-line-height)] font-[number:var(--typography-caption-c2-font-weight)] text-[color:var(--text-color-default)]\",\n // @deprecated body/lead/large/small/muted — use as variants tipográficas (p*/caption*/display*) ou o componente <Heading> p/ títulos. Removidas em v2.\n body: \"text-[length:var(--text-size-base-font-size)] leading-[var(--text-size-base-line-height)] text-[color:var(--text-color-default)]\",\n lead: \"text-[length:var(--text-size-xl-font-size)] leading-[var(--text-size-xl-line-height)] text-[color:var(--text-color-muted)]\",\n large: \"text-[length:var(--text-size-lg-font-size)] leading-[var(--text-size-lg-line-height)] font-[var(--text-weight-semibold)]\",\n small: \"text-[length:var(--text-size-sm-font-size)] leading-[var(--text-size-sm-line-height)] text-[color:var(--text-color-muted)]\",\n muted: \"text-[length:var(--text-size-sm-font-size)] leading-[var(--text-size-sm-line-height)] text-[color:var(--text-color-muted)]\",\n code: \"relative rounded-[var(--text-variant-code-radius)] bg-muted px-[var(--text-variant-code-padding-x)] py-[var(--text-variant-code-padding-y)] font-mono text-[length:var(--text-size-sm-font-size)]\",\n },\n size: {\n xs: \"text-[length:var(--text-size-xs-font-size)] leading-[var(--text-size-xs-line-height)]\",\n sm: \"text-[length:var(--text-size-sm-font-size)] leading-[var(--text-size-sm-line-height)]\",\n base: \"text-[length:var(--text-size-base-font-size)] leading-[var(--text-size-base-line-height)]\",\n lg: \"text-[length:var(--text-size-lg-font-size)] leading-[var(--text-size-lg-line-height)]\",\n xl: \"text-[length:var(--text-size-xl-font-size)] leading-[var(--text-size-xl-line-height)]\",\n \"2xl\": \"text-[length:var(--text-size-2xl-font-size)] leading-[var(--text-size-2xl-line-height)]\",\n \"3xl\": \"text-[length:var(--text-size-3xl-font-size)] leading-[var(--text-size-3xl-line-height)]\",\n \"4xl\": \"text-[length:var(--text-size-4xl-font-size)] leading-[var(--text-size-4xl-line-height)]\",\n },\n weight: {\n normal: \"font-[var(--text-weight-normal)]\",\n medium: \"font-[var(--text-weight-medium)]\",\n semibold: \"font-[var(--text-weight-semibold)]\",\n bold: \"font-[var(--text-weight-bold)]\",\n },\n color: {\n // Emits the default color (not \"\") so `color=\"default\"` actively RESETS the\n // baked color of legacy muted variants (lead/small/muted) — review fix.\n default: \"text-[color:var(--text-color-default)]\",\n muted: \"text-[color:var(--text-color-muted)]\",\n },\n },\n defaultVariants: {\n variant: \"body\",\n },\n})\n\ntype TextElement =\n | \"code\"\n | \"div\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"label\"\n | \"p\"\n | \"span\"\n\ninterface TextProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"color\">,\n VariantProps<typeof textVariants> {\n as?: TextElement\n asChild?: boolean\n /** HTML for attribute, used when as=\"label\" */\n htmlFor?: string\n truncate?: boolean\n}\n\nconst PARAGRAPH_VARIANTS = new Set<NonNullable<TextProps[\"variant\"]>>([\n \"p1\",\n \"p2\",\n \"p3\",\n \"p4\",\n \"display1\",\n \"display2\",\n \"display3\",\n])\n\nfunction Text({\n className,\n variant,\n size,\n weight,\n color,\n as,\n asChild = false,\n truncate = false,\n children,\n ...props\n}: TextProps) {\n const fallbackElement: TextElement =\n variant === \"code\"\n ? \"code\"\n : variant && PARAGRAPH_VARIANTS.has(variant)\n ? \"p\"\n : truncate\n ? \"p\"\n : \"span\"\n const inferredElement: TextElement = as ?? fallbackElement\n const Comp = asChild ? Slot : inferredElement\n\n return (\n <Comp\n className={cn(\n textVariants({ variant, size, weight, color }),\n truncate && \"truncate\",\n className\n )}\n data-slot=\"text\"\n {...props}\n >\n {children}\n </Comp>\n )\n}\n\nexport { Text, type TextElement, type TextProps, textVariants }\n"]}
|
|
@@ -16,6 +16,7 @@ var avatarVariants = cva(
|
|
|
16
16
|
default: "size-[var(--avatar-size-default)] text-[length:var(--avatar-text-default)]",
|
|
17
17
|
lg: "size-[var(--avatar-size-lg)] text-[length:var(--avatar-text-lg)]",
|
|
18
18
|
xl: "size-[var(--avatar-size-xl)] text-[length:var(--avatar-text-xl)]",
|
|
19
|
+
"2xl": "size-[var(--avatar-size-2xl)] text-[length:var(--avatar-text-2xl)]",
|
|
19
20
|
"3xl": "size-[var(--avatar-size-3xl)] text-[length:var(--avatar-text-3xl)]",
|
|
20
21
|
"4xl": "size-[var(--avatar-size-4xl)] text-[length:var(--avatar-text-4xl)]"
|
|
21
22
|
},
|
|
@@ -246,6 +247,7 @@ var avatarGroupVariants = cva("flex", {
|
|
|
246
247
|
default: "-space-x-3",
|
|
247
248
|
lg: "-space-x-3",
|
|
248
249
|
xl: "-space-x-4",
|
|
250
|
+
"2xl": "-space-x-4",
|
|
249
251
|
"3xl": "-space-x-5",
|
|
250
252
|
"4xl": "-space-x-6"
|
|
251
253
|
}
|
|
@@ -379,6 +381,7 @@ var avatarAddButtonVariants = cva(
|
|
|
379
381
|
default: "size-[var(--avatar-size-default)]",
|
|
380
382
|
lg: "size-[var(--avatar-size-lg)]",
|
|
381
383
|
xl: "size-[var(--avatar-size-xl)]",
|
|
384
|
+
"2xl": "size-[var(--avatar-size-2xl)]",
|
|
382
385
|
"3xl": "size-[var(--avatar-size-3xl)]",
|
|
383
386
|
"4xl": "size-[var(--avatar-size-4xl)]"
|
|
384
387
|
}
|
|
@@ -399,6 +402,7 @@ function AvatarAddButton({
|
|
|
399
402
|
default: "size-4",
|
|
400
403
|
lg: "size-5",
|
|
401
404
|
xl: "size-6",
|
|
405
|
+
"2xl": "size-6.5",
|
|
402
406
|
"3xl": "size-7",
|
|
403
407
|
"4xl": "size-8"
|
|
404
408
|
};
|
|
@@ -456,5 +460,5 @@ function AvatarLabelGroupSkeleton({
|
|
|
456
460
|
}
|
|
457
461
|
|
|
458
462
|
export { Avatar, AvatarAddButton, AvatarBadge, AvatarFallback, AvatarGroup, AvatarImage, AvatarLabelGroup, AvatarLabelGroupSkeleton, AvatarSkeleton, AvatarStatus, avatarAddButtonVariants, avatarBadgeVariants, avatarFallbackVariants, avatarGroupVariants, avatarLabelGroupVariants, avatarStatusVariants, avatarVariants, getInitials };
|
|
459
|
-
//# sourceMappingURL=chunk-
|
|
460
|
-
//# sourceMappingURL=chunk-
|
|
463
|
+
//# sourceMappingURL=chunk-MR3IPJAO.js.map
|
|
464
|
+
//# sourceMappingURL=chunk-MR3IPJAO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/Avatar/Avatar.tsx","../src/components/primitives/Avatar/AvatarStatus.tsx","../src/components/primitives/Avatar/AvatarBadge.tsx","../src/components/primitives/Avatar/AvatarGroup.tsx","../src/components/primitives/Avatar/AvatarLabelGroup.tsx","../src/components/primitives/Avatar/AvatarAddButton.tsx","../src/components/primitives/Avatar/AvatarSkeleton.tsx"],"names":["cva","jsx","jsxs","iconSizes"],"mappings":"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","file":"chunk-MR3IPJAO.js","sourcesContent":["\"use client\"\n\nimport type { AvatarFallbackProps, AvatarImageProps, AvatarProps } from \"./Avatar.types\"\n\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)] text-[length:var(--avatar-text-xs)]\",\n sm: \"size-[var(--avatar-size-sm)] text-[length:var(--avatar-text-sm)]\",\n default: \"size-[var(--avatar-size-default)] text-[length:var(--avatar-text-default)]\",\n lg: \"size-[var(--avatar-size-lg)] text-[length:var(--avatar-text-lg)]\",\n xl: \"size-[var(--avatar-size-xl)] text-[length:var(--avatar-text-xl)]\",\n \"2xl\": \"size-[var(--avatar-size-2xl)] text-[length:var(--avatar-text-2xl)]\",\n \"3xl\": \"size-[var(--avatar-size-3xl)] text-[length:var(--avatar-text-3xl)]\",\n \"4xl\": \"size-[var(--avatar-size-4xl)] text-[length:var(--avatar-text-4xl)]\",\n },\n shape: {\n circle: \"rounded-[var(--avatar-radius-circle)]\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n interactive: {\n true: \"cursor-pointer transition-transform hover:scale-105 focus-visible:outline-none focus-visible:ring-[length:var(--avatar-focus-ring-width)] focus-visible:ring-offset-[length:var(--avatar-focus-ring-offset)] focus-visible:ring-[color:var(--avatar-focus-ring-color)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n shape: \"circle\",\n bordered: false,\n interactive: false,\n },\n }\n)\n\n// Static contrast border classes for Tailwind JIT compatibility\n// Uses base-black/8 token instead of hardcoded rgba values\nconst contrastBorderClasses = {\n \"xs-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"sm-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.5px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"default-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"lg-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n \"xl-circle\": \"after:absolute after:inset-0 after:rounded-full after:border-[0.75px] after:border-[color:var(--avatar-border-contrast)] after:pointer-events-none\",\n} as const\n\nfunction getContrastBorderClass(size: string, shape: string): string {\n const key = `${size}-${shape}` as keyof typeof contrastBorderClasses\n return key in contrastBorderClasses ? contrastBorderClasses[key] : contrastBorderClasses[\"default-circle\"]\n}\n\nfunction Avatar({\n className,\n size = \"default\",\n shape = \"circle\",\n bordered,\n interactive,\n contrastBorder = true,\n tooltip,\n children,\n ...props\n}: AvatarProps) {\n const avatarElement = (\n <AvatarPrimitive.Root\n className={cn(\n avatarVariants({ size, shape, bordered, interactive }),\n contrastBorder && size && shape && getContrastBorderClass(size, shape),\n className\n )}\n data-slot=\"avatar\"\n tabIndex={tooltip ? 0 : undefined}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {avatarElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return avatarElement\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: AvatarImageProps) {\n return (\n <AvatarPrimitive.Image\n className={cn(\"aspect-square size-full object-cover\", className)}\n data-slot=\"avatar-image\"\n {...props}\n />\n )\n}\n\nconst avatarFallbackVariants = cva(\n \"flex size-full items-center justify-center font-medium\",\n {\n variants: {\n colorScheme: {\n default: \"bg-[color:var(--avatar-fallback-bg-default)] text-[color:var(--avatar-fallback-text-default)]\",\n primary: \"bg-[color:var(--avatar-fallback-bg-primary)] text-[color:var(--avatar-fallback-text-primary)]\",\n secondary: \"bg-[color:var(--avatar-fallback-bg-secondary)] text-[color:var(--avatar-fallback-text-secondary)]\",\n success: \"bg-[color:var(--avatar-fallback-bg-success)] text-[color:var(--avatar-fallback-text-success)]\",\n warning: \"bg-[color:var(--avatar-fallback-bg-warning)] text-[color:var(--avatar-fallback-text-warning)]\",\n destructive: \"bg-[color:var(--avatar-fallback-bg-destructive)] text-[color:var(--avatar-fallback-text-destructive)]\",\n },\n },\n defaultVariants: {\n colorScheme: \"default\",\n },\n }\n)\n\nfunction AvatarFallback({\n className,\n colorScheme = \"default\",\n ...props\n}: AvatarFallbackProps) {\n return (\n <AvatarPrimitive.Fallback\n className={cn(avatarFallbackVariants({ colorScheme }), className)}\n data-slot=\"avatar-fallback\"\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarFallback, avatarFallbackVariants, AvatarImage, avatarVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarStatusVariants = cva(\n \"absolute bottom-0 right-0 rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n status: {\n online: \"bg-success\",\n offline: \"bg-muted-foreground\",\n busy: \"bg-destructive\",\n away: \"bg-warning\",\n },\n size: {\n xs: \"size-1.5\", // 6px\n sm: \"size-2\", // 8px\n default: \"size-2.5\", // 10px\n lg: \"size-3\", // 12px\n xl: \"size-3.5\", // 14px\n },\n },\n defaultVariants: {\n status: \"offline\",\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarStatusProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the status indicator (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The status to display\n * @default \"offline\"\n */\n status?: \"away\" | \"busy\" | \"offline\" | \"online\"\n}\n\nconst statusLabels = {\n online: \"Online\",\n offline: \"Offline\",\n busy: \"Busy\",\n away: \"Away\",\n} as const\n\nfunction AvatarStatus({\n className,\n status = \"offline\",\n size,\n ...props\n}: AvatarStatusProps) {\n return (\n <span\n aria-label={statusLabels[status]}\n className={cn(avatarStatusVariants({ status, size, className }))}\n data-slot=\"avatar-status\"\n role=\"status\"\n {...props}\n />\n )\n}\n\nexport { AvatarStatus, avatarStatusVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Building2, CheckCircle2 } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarBadgeVariants = cva(\n \"absolute -bottom-0.5 -right-0.5 flex items-center justify-center rounded-full ring-[1.5px] ring-background\",\n {\n variants: {\n variant: {\n company: \"bg-brius-500 text-base-white\",\n verified: \"bg-sevends-blue-600 text-base-white\",\n },\n size: {\n xs: \"size-2.5\", // 10px\n sm: \"size-3\", // 12px\n default: \"size-3.5\", // 14px\n lg: \"size-4\", // 16px\n xl: \"size-5\", // 18px\n },\n },\n defaultVariants: {\n variant: \"verified\",\n size: \"default\",\n },\n }\n)\n\nconst iconSizes = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n default: \"size-3\",\n lg: \"size-3.5\",\n xl: \"size-4\",\n} as const\n\nexport interface AvatarBadgeProps extends React.ComponentProps<\"span\"> {\n /**\n * The size of the badge (should match parent Avatar size)\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n /**\n * The badge variant to display\n * @default \"verified\"\n */\n variant?: \"company\" | \"verified\"\n}\n\nconst badgeLabels = {\n company: \"Company account\",\n verified: \"Verified account\",\n} as const\n\nfunction AvatarBadge({\n className,\n variant = \"verified\",\n size = \"default\",\n children,\n ...props\n}: AvatarBadgeProps) {\n const defaultIcon = variant === \"company\"\n ? <Building2 className={iconSizes[size]} />\n : <CheckCircle2 className={iconSizes[size]} />\n\n return (\n <span\n aria-label={badgeLabels[variant]}\n className={cn(avatarBadgeVariants({ variant, size, className }))}\n data-slot=\"avatar-badge\"\n role=\"img\"\n {...props}\n >\n {children ?? defaultIcon}\n </span>\n )\n}\n\nexport { AvatarBadge, avatarBadgeVariants }\n","\"use client\"\n\nimport type { AvatarProps, AvatarSize } from \"./Avatar.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback } from \"./Avatar\"\n\nconst avatarGroupVariants = cva(\"flex\", {\n variants: {\n size: {\n xs: \"-space-x-1\",\n sm: \"-space-x-2\",\n default: \"-space-x-3\",\n lg: \"-space-x-3\",\n xl: \"-space-x-4\",\n \"2xl\": \"-space-x-4\",\n \"3xl\": \"-space-x-5\",\n \"4xl\": \"-space-x-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface AvatarGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Whether to apply ring-2 ring-background to all avatars for visual separation\n * @default true\n */\n bordered?: boolean\n /**\n * Child Avatar components\n */\n children: React.ReactNode\n /**\n * Maximum number of avatars to display before showing \"+N\" indicator\n */\n max?: number\n /**\n * Size to apply to all child avatars\n * @default \"default\"\n */\n size?: AvatarSize\n}\n\nfunction AvatarGroup({\n className,\n max,\n size = \"default\",\n bordered = true,\n children,\n ...props\n}: AvatarGroupProps) {\n // eslint-disable-next-line @eslint-react/no-children-to-array -- Required to count and slice children for max limit\n const childArray = React.Children.toArray(children)\n const hasMax = max !== undefined\n const visibleChildren = hasMax ? childArray.slice(0, max) : childArray\n const remainingCount = hasMax ? Math.max(0, childArray.length - max) : 0\n\n return (\n <div\n aria-label={`Avatar group${hasMax && remainingCount > 0 ? `, showing ${String(visibleChildren.length)} of ${String(childArray.length)}` : \"\"}`}\n className={cn(avatarGroupVariants({ size, className }))}\n data-slot=\"avatar-group\"\n role=\"group\"\n {...props}\n >\n {/* eslint-disable @eslint-react/no-clone-element -- Required to inject size/bordered props to Avatar children */}\n {visibleChildren.map((child) => {\n if (React.isValidElement<AvatarProps>(child) && child.type === Avatar) {\n // Children.toArray assigns stable keys to all children\n return React.cloneElement(child, {\n size: child.props.size ?? size,\n bordered: child.props.bordered ?? bordered,\n className: cn(\n bordered && \"ring-2 ring-background\",\n child.props.className\n ),\n })\n }\n return child\n })}\n {/* eslint-enable @eslint-react/no-clone-element */}\n {remainingCount > 0 && (\n <Avatar\n bordered={bordered}\n className={cn(bordered && \"ring-2 ring-background\")}\n size={size}\n >\n <AvatarFallback className=\"bg-muted text-muted-foreground text-xs font-medium\">\n +{remainingCount}\n </AvatarFallback>\n </Avatar>\n )}\n </div>\n )\n}\n\nexport { AvatarGroup, avatarGroupVariants }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../../feedback/Tooltip\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./Avatar\"\nimport { AvatarBadge, type AvatarBadgeProps } from \"./AvatarBadge\"\nimport { AvatarStatus, type AvatarStatusProps } from \"./AvatarStatus\"\n\nconst avatarLabelGroupVariants = cva(\n \"flex items-center gap-3\",\n {\n variants: {\n interactive: {\n true: \"cursor-pointer rounded-lg transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 -m-2 p-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n interactive: false,\n },\n }\n)\n\nexport interface AvatarLabelGroupProps extends React.ComponentProps<\"div\"> {\n /**\n * Alternative text for the avatar image\n */\n alt?: string\n /**\n * Optional badge variant (company or verified)\n * Cannot be used together with status\n */\n badge?: AvatarBadgeProps[\"variant\"]\n /**\n * Optional description text below the name\n */\n description?: string\n /**\n * Whether the component is interactive (shows hover/focus states)\n * @default false\n */\n interactive?: boolean\n /**\n * The name to display (required, also used for initials fallback)\n */\n name: string\n /**\n * Click handler for interactive mode\n */\n onClick?: React.MouseEventHandler<HTMLDivElement>\n /**\n * Size variant for the avatar and status/badge indicator\n * @default \"default\"\n */\n size?: AvatarStatusProps[\"size\"]\n /**\n * The image source for the avatar\n */\n src?: string\n /**\n * Optional status indicator (online, offline, busy, away)\n * Cannot be used together with badge\n */\n status?: AvatarStatusProps[\"status\"]\n /**\n * Tooltip text to display on hover\n * If true, uses name + description\n * @default undefined\n */\n tooltip?: boolean | string\n}\n\n/**\n * Generates initials from a name string\n * Takes first letter of first two words, uppercased\n */\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n}\n\nfunction AvatarLabelGroup({\n className,\n src,\n alt,\n name,\n description,\n size = \"default\",\n status,\n badge,\n interactive = false,\n onClick,\n tooltip,\n ...props\n}: AvatarLabelGroupProps) {\n // Generate tooltip text\n const tooltipText = tooltip === true\n ? description ? `${name} - ${description}` : name\n : typeof tooltip === \"string\" ? tooltip : undefined\n\n const content = (\n <div\n className={cn(avatarLabelGroupVariants({ interactive }), className)}\n data-slot=\"avatar-label-group\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive || tooltipText ? 0 : undefined}\n onClick={interactive ? onClick : undefined}\n {...props}\n >\n <div className=\"relative\">\n <Avatar interactive={interactive} size={size}>\n {src && <AvatarImage alt={alt ?? name} src={src} />}\n <AvatarFallback>{getInitials(name)}</AvatarFallback>\n </Avatar>\n {status && <AvatarStatus size={size} status={status} />}\n {badge && !status && <AvatarBadge size={size} variant={badge} />}\n </div>\n <div className=\"flex flex-col gap-0.5\">\n <span className=\"text-sm font-medium text-foreground\">{name}</span>\n {description && (\n <span className=\"text-sm text-muted-foreground\">{description}</span>\n )}\n </div>\n </div>\n )\n\n if (tooltipText) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {content}\n </TooltipTrigger>\n <TooltipContent>\n {tooltipText}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return content\n}\n\nexport { AvatarLabelGroup, avatarLabelGroupVariants, getInitials }\n","\"use client\"\n\nimport { cva } from \"class-variance-authority\"\nimport { Plus } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst avatarAddButtonVariants = cva(\n \"relative flex shrink-0 items-center justify-center overflow-hidden rounded-full border-2 border-dashed border-muted-foreground/50 bg-muted text-muted-foreground transition-colors hover:border-primary hover:bg-primary/10 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 cursor-pointer\",\n {\n variants: {\n size: {\n xs: \"size-[var(--avatar-size-xs)]\",\n sm: \"size-[var(--avatar-size-sm)]\",\n default: \"size-[var(--avatar-size-default)]\",\n lg: \"size-[var(--avatar-size-lg)]\",\n xl: \"size-[var(--avatar-size-xl)]\",\n \"2xl\": \"size-[var(--avatar-size-2xl)]\",\n \"3xl\": \"size-[var(--avatar-size-3xl)]\",\n \"4xl\": \"size-[var(--avatar-size-4xl)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface AvatarAddButtonProps extends React.ComponentProps<\"button\"> {\n size?: \"2xl\" | \"3xl\" | \"4xl\" | \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nfunction AvatarAddButton({\n className,\n size = \"default\",\n ...props\n}: AvatarAddButtonProps) {\n const iconSizes = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-4\",\n lg: \"size-5\",\n xl: \"size-6\",\n \"2xl\": \"size-6.5\",\n \"3xl\": \"size-7\",\n \"4xl\": \"size-8\",\n }\n\n return (\n <button\n aria-label=\"Add user\"\n className={cn(avatarAddButtonVariants({ size, className }))}\n data-slot=\"avatar-add-button\"\n type=\"button\"\n {...props}\n >\n <Plus className={iconSizes[size]} />\n </button>\n )\n}\n\nexport { AvatarAddButton, avatarAddButtonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { avatarVariants } from \"./Avatar\"\n\nexport interface AvatarSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The shape of the skeleton\n * @default \"circle\"\n */\n shape?: \"circle\"\n /**\n * The size of the skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\nexport interface AvatarLabelGroupSkeletonProps extends React.ComponentProps<\"div\"> {\n /**\n * The size of the avatar skeleton\n * @default \"default\"\n */\n size?: \"default\" | \"lg\" | \"sm\" | \"xl\" | \"xs\"\n}\n\n/**\n * Skeleton placeholder for Avatar component\n * Use while loading user data\n */\nfunction AvatarSkeleton({\n size = \"default\",\n shape = \"circle\",\n className,\n ...props\n}: AvatarSkeletonProps) {\n return (\n <div\n className={cn(\n avatarVariants({ size, shape }),\n \"bg-muted animate-pulse\",\n className\n )}\n data-slot=\"avatar-skeleton\"\n {...props}\n />\n )\n}\n\n/**\n * Skeleton placeholder for AvatarLabelGroup component\n * Use while loading user data with name and description\n */\nfunction AvatarLabelGroupSkeleton({\n size = \"default\",\n className,\n ...props\n}: AvatarLabelGroupSkeletonProps) {\n return (\n <div\n className={cn(\"flex items-center gap-3\", className)}\n data-slot=\"avatar-label-group-skeleton\"\n {...props}\n >\n <AvatarSkeleton size={size} />\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-4 w-24 rounded bg-muted animate-pulse\" />\n <div className=\"h-3 w-32 rounded bg-muted animate-pulse\" />\n </div>\n </div>\n )\n}\n\nexport { AvatarLabelGroupSkeleton, AvatarSkeleton }\n"]}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
2
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var collapsibleVariants = cva(
|
|
8
|
+
[
|
|
9
|
+
// Base styles - intentionally minimal as this is primarily a behavior component
|
|
10
|
+
],
|
|
11
|
+
{
|
|
12
|
+
variants: {
|
|
13
|
+
// Figma 1425:10889 — apresentação carded: inside = moldura única
|
|
14
|
+
// (Open Inside); outside = trigger e conteúdo em cards separados
|
|
15
|
+
variant: {
|
|
16
|
+
unstyled: "",
|
|
17
|
+
card: "flex w-full flex-col"
|
|
18
|
+
},
|
|
19
|
+
placement: {
|
|
20
|
+
inside: "",
|
|
21
|
+
outside: ""
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
compoundVariants: [
|
|
25
|
+
{
|
|
26
|
+
variant: "card",
|
|
27
|
+
placement: "inside",
|
|
28
|
+
className: "gap-4 overflow-clip rounded-md border border-border bg-popover p-4 shadow-xs"
|
|
29
|
+
},
|
|
30
|
+
{ variant: "card", placement: "outside", className: "gap-4" }
|
|
31
|
+
],
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
variant: "unstyled",
|
|
34
|
+
placement: "inside"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
var collapsibleTriggerVariants = cva(
|
|
39
|
+
[
|
|
40
|
+
// Base styles for trigger
|
|
41
|
+
"cursor-pointer",
|
|
42
|
+
"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"
|
|
43
|
+
],
|
|
44
|
+
{
|
|
45
|
+
variants: {
|
|
46
|
+
variant: {
|
|
47
|
+
unstyled: "",
|
|
48
|
+
card: "flex w-full items-center justify-between gap-2 text-left text-sm text-[color:var(--popover-foreground)] transition-colors [&_svg]:size-5 [&_svg]:shrink-0"
|
|
49
|
+
},
|
|
50
|
+
placement: {
|
|
51
|
+
inside: "",
|
|
52
|
+
outside: ""
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
compoundVariants: [
|
|
56
|
+
// Outside: o trigger é um card próprio (Figma Open Outside/Hover/Disabled)
|
|
57
|
+
{
|
|
58
|
+
variant: "card",
|
|
59
|
+
placement: "outside",
|
|
60
|
+
className: "rounded-md border border-border bg-popover px-4 py-3.5 shadow-xs hover:bg-muted data-[disabled]:bg-muted data-[disabled]:text-[color:var(--muted-foreground)]"
|
|
61
|
+
},
|
|
62
|
+
// Inside: o card é o root; hover pinta a área do trigger
|
|
63
|
+
{
|
|
64
|
+
variant: "card",
|
|
65
|
+
placement: "inside",
|
|
66
|
+
className: "rounded-sm hover:bg-muted"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
defaultVariants: {
|
|
70
|
+
variant: "unstyled",
|
|
71
|
+
placement: "inside"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
var collapsibleContentVariants = cva(
|
|
76
|
+
[
|
|
77
|
+
"overflow-hidden"
|
|
78
|
+
],
|
|
79
|
+
{
|
|
80
|
+
variants: {
|
|
81
|
+
/**
|
|
82
|
+
* Animation variant for content transition
|
|
83
|
+
* - animated: Smooth height and opacity animation
|
|
84
|
+
* - none: No animation, instant show/hide
|
|
85
|
+
*/
|
|
86
|
+
animation: {
|
|
87
|
+
animated: [
|
|
88
|
+
"data-[state=open]:animate-collapsible-down",
|
|
89
|
+
"data-[state=closed]:animate-collapsible-up"
|
|
90
|
+
],
|
|
91
|
+
none: []
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
defaultVariants: {
|
|
95
|
+
animation: "animated"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
var collapsibleContentInnerVariants = cva("text-sm", {
|
|
100
|
+
variants: {
|
|
101
|
+
placement: {
|
|
102
|
+
inside: "",
|
|
103
|
+
outside: "mt-4 rounded-md border border-border bg-popover p-4 shadow-xs"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
defaultVariants: {
|
|
107
|
+
placement: "inside"
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
var CollapsibleStyleContext = React.createContext({ variant: "unstyled", placement: "inside" });
|
|
111
|
+
function Collapsible({
|
|
112
|
+
className,
|
|
113
|
+
variant = "unstyled",
|
|
114
|
+
placement = "inside",
|
|
115
|
+
...props
|
|
116
|
+
}) {
|
|
117
|
+
const styleValue = React.useMemo(
|
|
118
|
+
() => ({ variant, placement }),
|
|
119
|
+
[variant, placement]
|
|
120
|
+
);
|
|
121
|
+
return /* @__PURE__ */ jsx(CollapsibleStyleContext, { value: styleValue, children: /* @__PURE__ */ jsx(
|
|
122
|
+
CollapsiblePrimitive.Root,
|
|
123
|
+
{
|
|
124
|
+
className: cn(collapsibleVariants({ variant, placement }), className),
|
|
125
|
+
"data-placement": variant === "card" ? placement : void 0,
|
|
126
|
+
"data-slot": "collapsible",
|
|
127
|
+
"data-variant": variant,
|
|
128
|
+
...props
|
|
129
|
+
}
|
|
130
|
+
) });
|
|
131
|
+
}
|
|
132
|
+
function CollapsibleTrigger2({ className, ...props }) {
|
|
133
|
+
const { variant, placement } = React.use(CollapsibleStyleContext);
|
|
134
|
+
return /* @__PURE__ */ jsx(
|
|
135
|
+
CollapsiblePrimitive.CollapsibleTrigger,
|
|
136
|
+
{
|
|
137
|
+
className: cn(
|
|
138
|
+
collapsibleTriggerVariants({ variant, placement }),
|
|
139
|
+
className
|
|
140
|
+
),
|
|
141
|
+
"data-slot": "collapsible-trigger",
|
|
142
|
+
...props
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
function CollapsibleContent2({
|
|
147
|
+
className,
|
|
148
|
+
animation,
|
|
149
|
+
children,
|
|
150
|
+
...props
|
|
151
|
+
}) {
|
|
152
|
+
const { variant, placement } = React.use(CollapsibleStyleContext);
|
|
153
|
+
return /* @__PURE__ */ jsx(
|
|
154
|
+
CollapsiblePrimitive.CollapsibleContent,
|
|
155
|
+
{
|
|
156
|
+
className: cn(collapsibleContentVariants({ animation }), className),
|
|
157
|
+
"data-slot": "collapsible-content",
|
|
158
|
+
...props,
|
|
159
|
+
children: variant === "card" ? (
|
|
160
|
+
// Moldura/padding numa div interna pra não interferir na animação
|
|
161
|
+
// de height do Radix
|
|
162
|
+
/* @__PURE__ */ jsx(
|
|
163
|
+
"div",
|
|
164
|
+
{
|
|
165
|
+
className: cn(collapsibleContentInnerVariants({ placement })),
|
|
166
|
+
"data-slot": "collapsible-content-inner",
|
|
167
|
+
children
|
|
168
|
+
}
|
|
169
|
+
)
|
|
170
|
+
) : children
|
|
171
|
+
}
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, collapsibleContentInnerVariants, collapsibleContentVariants, collapsibleTriggerVariants, collapsibleVariants };
|
|
176
|
+
//# sourceMappingURL=chunk-MVL4DVRW.js.map
|
|
177
|
+
//# sourceMappingURL=chunk-MVL4DVRW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/Collapsible/Collapsible.variants.ts","../src/components/layout/Collapsible/Collapsible.tsx"],"names":["CollapsibleTrigger","CollapsibleContent"],"mappings":"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","file":"chunk-MVL4DVRW.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Collapsible root variant styles\n * Container component for expandable/collapsible content\n */\nexport const collapsibleVariants = cva(\n [\n // Base styles - intentionally minimal as this is primarily a behavior component\n ],\n {\n variants: {\n // Figma 1425:10889 — apresentação carded: inside = moldura única\n // (Open Inside); outside = trigger e conteúdo em cards separados\n variant: {\n unstyled: \"\",\n card: \"flex w-full flex-col\",\n },\n placement: {\n inside: \"\",\n outside: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"card\",\n placement: \"inside\",\n className:\n \"gap-4 overflow-clip rounded-md border border-border bg-popover p-4 shadow-xs\",\n },\n { variant: \"card\", placement: \"outside\", className: \"gap-4\" },\n ],\n defaultVariants: {\n variant: \"unstyled\",\n placement: \"inside\",\n },\n }\n)\n\n/**\n * CollapsibleTrigger variant styles\n * Element that toggles the collapsible state\n */\nexport const collapsibleTriggerVariants = cva(\n [\n // Base styles for trigger\n \"cursor-pointer\",\n \"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\n ],\n {\n variants: {\n variant: {\n unstyled: \"\",\n card: \"flex w-full items-center justify-between gap-2 text-left text-sm text-[color:var(--popover-foreground)] transition-colors [&_svg]:size-5 [&_svg]:shrink-0\",\n },\n placement: {\n inside: \"\",\n outside: \"\",\n },\n },\n compoundVariants: [\n // Outside: o trigger é um card próprio (Figma Open Outside/Hover/Disabled)\n {\n variant: \"card\",\n placement: \"outside\",\n className:\n \"rounded-md border border-border bg-popover px-4 py-3.5 shadow-xs hover:bg-muted data-[disabled]:bg-muted data-[disabled]:text-[color:var(--muted-foreground)]\",\n },\n // Inside: o card é o root; hover pinta a área do trigger\n {\n variant: \"card\",\n placement: \"inside\",\n className: \"rounded-sm hover:bg-muted\",\n },\n ],\n defaultVariants: {\n variant: \"unstyled\",\n placement: \"inside\",\n },\n }\n)\n\n/**\n * CollapsibleContent variant styles\n * Content that expands/collapses with animation support\n */\nexport const collapsibleContentVariants = cva(\n [\n \"overflow-hidden\",\n ],\n {\n variants: {\n /**\n * Animation variant for content transition\n * - animated: Smooth height and opacity animation\n * - none: No animation, instant show/hide\n */\n animation: {\n animated: [\n \"data-[state=open]:animate-collapsible-down\",\n \"data-[state=closed]:animate-collapsible-up\",\n ],\n none: [],\n },\n },\n defaultVariants: {\n animation: \"animated\",\n },\n }\n)\n\nexport type CollapsibleVariantProps = VariantProps<typeof collapsibleVariants>\nexport type CollapsibleTriggerVariantProps = VariantProps<typeof collapsibleTriggerVariants>\nexport type CollapsibleContentVariantProps = VariantProps<typeof collapsibleContentVariants>\n\n/**\n * Inner wrapper do conteúdo no modo card — moldura/padding fora do elemento\n * animado pelo Radix (evita glitch na animação de height)\n */\nexport const collapsibleContentInnerVariants = cva(\"text-sm\", {\n variants: {\n placement: {\n inside: \"\",\n outside:\n \"mt-4 rounded-md border border-border bg-popover p-4 shadow-xs\",\n },\n },\n defaultVariants: {\n placement: \"inside\",\n },\n})\n\nexport type CollapsibleContentInnerVariantProps = VariantProps<\n typeof collapsibleContentInnerVariants\n>\n","import type {\n CollapsibleContentProps,\n CollapsibleProps,\n CollapsibleTriggerProps,\n} from \"./Collapsible.types\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n collapsibleContentInnerVariants,\n collapsibleContentVariants,\n collapsibleTriggerVariants,\n collapsibleVariants,\n} from \"./Collapsible.variants\"\n\n// Estilo carded do Figma (1425:10889) flui pro trigger/content via context —\n// unstyled (default) preserva o uso headless (ex.: SidebarPanelGroup)\nconst CollapsibleStyleContext = React.createContext<{\n placement: \"inside\" | \"outside\"\n variant: \"card\" | \"unstyled\"\n}>({ variant: \"unstyled\", placement: \"inside\" })\n\nfunction Collapsible({\n className,\n variant = \"unstyled\",\n placement = \"inside\",\n ...props\n}: CollapsibleProps) {\n const styleValue = React.useMemo(\n () => ({ variant, placement }),\n [variant, placement]\n )\n\n return (\n <CollapsibleStyleContext value={styleValue}>\n <CollapsiblePrimitive.Root\n className={cn(collapsibleVariants({ variant, placement }), className)}\n data-placement={variant === \"card\" ? placement : undefined}\n data-slot=\"collapsible\"\n data-variant={variant}\n {...props}\n />\n </CollapsibleStyleContext>\n )\n}\n\nfunction CollapsibleTrigger({ className, ...props }: CollapsibleTriggerProps) {\n const { variant, placement } = React.use(CollapsibleStyleContext)\n\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n className={cn(\n collapsibleTriggerVariants({ variant, placement }),\n className\n )}\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n className,\n animation,\n children,\n ...props\n}: CollapsibleContentProps) {\n const { variant, placement } = React.use(CollapsibleStyleContext)\n\n return (\n <CollapsiblePrimitive.CollapsibleContent\n className={cn(collapsibleContentVariants({ animation }), className)}\n data-slot=\"collapsible-content\"\n {...props}\n >\n {variant === \"card\" ? (\n // Moldura/padding numa div interna pra não interferir na animação\n // de height do Radix\n <div\n className={cn(collapsibleContentInnerVariants({ placement }))}\n data-slot=\"collapsible-content-inner\"\n >\n {children}\n </div>\n ) : (\n children\n )}\n </CollapsiblePrimitive.CollapsibleContent>\n )\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useButtonGroup } from './chunk-
|
|
1
|
+
import { useButtonGroup } from './chunk-JWXZFGNT.js';
|
|
2
2
|
import { Badge } from './chunk-HNQX6ZG7.js';
|
|
3
3
|
import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-TEVGCTUN.js';
|
|
4
4
|
import { cn } from './chunk-RVAYDRMA.js';
|
|
@@ -229,5 +229,5 @@ function Button({
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
export { Button, buttonVariants };
|
|
232
|
-
//# sourceMappingURL=chunk-
|
|
233
|
-
//# sourceMappingURL=chunk-
|
|
232
|
+
//# sourceMappingURL=chunk-N3DBRKUS.js.map
|
|
233
|
+
//# sourceMappingURL=chunk-N3DBRKUS.js.map
|