@etus/ui 0.4.0-beta.21 → 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-MR6RUPVT.js → chunk-2JDLQ4VR.js} +3 -3
- package/dist/{chunk-MR6RUPVT.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-7MLRRVOX.js → chunk-NT4GLWNR.js} +3 -3
- package/dist/{chunk-7MLRRVOX.js.map → chunk-NT4GLWNR.js.map} +1 -1
- 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 +2 -2
- package/dist/components/advanced/ReportBuilder/index.js +4 -4
- package/dist/components/advanced/index.js +12 -12
- 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 +25 -25
- package/dist/components/index.js +137 -137
- package/dist/components/layout/Collapsible/index.js +1 -1
- package/dist/components/layout/index.js +4 -4
- 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 +17 -16
- 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 +16 -16
- 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 +16 -16
- package/dist/hooks/index.js +1 -1
- package/dist/index.d.ts +303 -42
- package/dist/index.js +137 -137
- 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-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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/advanced/Command/Command.variants.ts","../src/components/advanced/Command/Command.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-KDNTSZF5.js","sourcesContent":["// Command/Command.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Command root style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const commandVariants = cva(\n // Base styles (always applied)\n [\n \"bg-popover text-popover-foreground\",\n \"flex h-full w-full flex-col overflow-hidden rounded-md\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input wrapper style variants using CVA\n *\n * Controls the height and padding of the input container.\n */\nexport const commandInputWrapperVariants = cva(\n // Base styles (always applied)\n [\"flex items-center gap-[var(--command-input-wrapper-gap)] border-b-[var(--command-input-wrapper-border-width)] px-[var(--command-input-wrapper-padding-x)]\"],\n {\n variants: {\n size: {\n sm: \"h-[var(--command-input-wrapper-height-sm)]\",\n default: \"h-[var(--command-input-wrapper-height-md)]\",\n lg: \"h-[var(--command-input-wrapper-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input style variants using CVA\n */\nexport const commandInputVariants = cva(\n // Base styles (always applied)\n [\n \"placeholder:text-muted-foreground\",\n \"flex w-full rounded-md bg-transparent outline-hidden\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--command-input-height-sm)] py-[var(--command-input-padding-y-sm)] text-[length:var(--command-input-text-size-sm)]\",\n default: \"h-[var(--command-input-height-md)] py-[var(--command-input-padding-y-md)] text-[length:var(--command-input-text-size-md)]\",\n lg: \"h-[var(--command-input-height-lg)] py-[var(--command-input-padding-y-lg)] text-[length:var(--command-input-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input icon style variants using CVA\n */\nexport const commandInputIconVariants = cva(\n // Base styles (always applied)\n [\"shrink-0 opacity-50\"],\n {\n variants: {\n size: {\n sm: \"size-[var(--command-icon-size-sm)]\",\n default: \"size-[var(--command-icon-size-md)]\",\n lg: \"size-[var(--command-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input clear button (Icon/X) style variants using CVA\n *\n * Trailing affordance that clears the search value. Matches the Figma\n * `Command/Input` Icon/X (16×16) shown to the right of the search input.\n */\nexport const commandInputClearVariants = cva(\n // Base styles (always applied)\n [\n \"text-muted-foreground hover:text-foreground flex shrink-0 items-center justify-center rounded-[var(--command-item-radius)] outline-hidden transition-colors\",\n \"hover:translate-y-px active:translate-y-0.5\",\n \"focus-visible:ring-ring focus-visible:ring-4\",\n ],\n {\n variants: {\n size: {\n sm: \"size-[var(--command-icon-size-sm)]\",\n default: \"size-[var(--command-icon-size-md)]\",\n lg: \"size-[var(--command-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command list style variants using CVA\n */\nexport const commandListVariants = cva(\n // Base styles (always applied)\n [\"scroll-py-1 overflow-x-hidden overflow-y-auto\"],\n {\n variants: {\n size: {\n sm: \"max-h-[var(--command-list-max-height-sm)]\",\n default: \"max-h-[var(--command-list-max-height-md)]\",\n lg: \"max-h-[var(--command-list-max-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command empty state style variants using CVA\n */\nexport const commandEmptyVariants = cva(\n // Base styles (always applied)\n [\"text-center\"],\n {\n variants: {\n size: {\n sm: \"py-[var(--command-empty-padding-y-sm)] text-[length:var(--command-empty-text-size-sm)]\",\n default: \"py-[var(--command-empty-padding-y-md)] text-[length:var(--command-empty-text-size-md)]\",\n lg: \"py-[var(--command-empty-padding-y-lg)] text-[length:var(--command-empty-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command group style variants using CVA\n */\nexport const commandGroupVariants = cva(\n // Base styles (always applied)\n [\"text-foreground overflow-hidden p-[var(--command-group-padding)]\"],\n {\n variants: {\n size: {\n sm: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-sm)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-sm)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-sm)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n default: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-md)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-md)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-md)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n lg: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-lg)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-lg)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-lg)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command item style variants using CVA\n *\n * Supports both size and visual variant options.\n */\nexport const commandItemVariants = cva(\n // Base styles (always applied)\n [\n \"relative flex cursor-default items-center gap-[var(--command-item-gap)] rounded-[var(--command-item-radius)] outline-hidden select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: [\n \"px-[var(--command-item-padding-x-sm)] py-[var(--command-item-padding-y-sm)] text-[length:var(--command-item-text-size-sm)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-sm)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n default: [\n \"px-[var(--command-item-padding-x-md)] py-[var(--command-item-padding-y-md)] text-[length:var(--command-item-text-size-md)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-md)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n lg: [\n \"px-[var(--command-item-padding-x-lg)] py-[var(--command-item-padding-y-lg)] text-[length:var(--command-item-text-size-lg)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-lg)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n },\n variant: {\n default: [\n \"data-[selected=true]:bg-accent\",\n \"data-[selected=true]:text-accent-foreground\",\n ],\n destructive: [\n \"text-destructive\",\n \"data-[selected=true]:bg-destructive/10\",\n \"data-[selected=true]:text-destructive\",\n \"[&_svg:not([class*='text-'])]:text-destructive\",\n ],\n },\n },\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Command separator style variants using CVA\n */\nexport const commandSeparatorVariants = cva(\n // Base styles (always applied)\n [\"bg-border -mx-[var(--command-separator-margin-x)] h-[var(--command-separator-height)]\"],\n {\n variants: {\n size: {\n sm: \"my-[var(--command-separator-margin-y-sm)]\",\n default: \"my-[var(--command-separator-margin-y-md)]\",\n lg: \"my-[var(--command-separator-margin-y-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command shortcut style variants using CVA\n */\nexport const commandShortcutVariants = cva(\n // Base styles (always applied)\n [\"text-muted-foreground ml-auto tracking-widest\"],\n {\n variants: {\n size: {\n sm: \"text-[length:var(--command-shortcut-text-size-sm)]\",\n default: \"text-[length:var(--command-shortcut-text-size-md)]\",\n lg: \"text-[length:var(--command-shortcut-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n// Export variant prop types\nexport type CommandVariantProps = VariantProps<typeof commandVariants>\nexport type CommandInputWrapperVariantProps = VariantProps<\n typeof commandInputWrapperVariants\n>\nexport type CommandInputVariantProps = VariantProps<typeof commandInputVariants>\nexport type CommandInputIconVariantProps = VariantProps<\n typeof commandInputIconVariants\n>\nexport type CommandInputClearVariantProps = VariantProps<\n typeof commandInputClearVariants\n>\nexport type CommandListVariantProps = VariantProps<typeof commandListVariants>\nexport type CommandEmptyVariantProps = VariantProps<typeof commandEmptyVariants>\nexport type CommandGroupVariantProps = VariantProps<typeof commandGroupVariants>\nexport type CommandItemVariantProps = VariantProps<typeof commandItemVariants>\nexport type CommandSeparatorVariantProps = VariantProps<\n typeof commandSeparatorVariants\n>\nexport type CommandShortcutVariantProps = VariantProps<\n typeof commandShortcutVariants\n>\n\n/**\n * Combined variant props for the Command compound component\n */\nexport interface CommandCombinedVariantProps {\n /** Size of the command components */\n size?: CommandVariantProps[\"size\"]\n}\n\n/**\n * Item-specific variant props\n */\nexport interface CommandItemCombinedVariantProps {\n /** Size of the item (inherited from context if not provided) */\n size?: CommandItemVariantProps[\"size\"]\n /** Visual variant of the item */\n variant?: CommandItemVariantProps[\"variant\"]\n}\n","// Command/Command.tsx\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { SearchIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport {\n type CommandCombinedVariantProps,\n commandEmptyVariants,\n commandGroupVariants,\n commandInputClearVariants,\n commandInputIconVariants,\n commandInputVariants,\n commandInputWrapperVariants,\n type CommandItemCombinedVariantProps,\n commandItemVariants,\n commandListVariants,\n commandSeparatorVariants,\n commandShortcutVariants,\n commandVariants,\n} from \"./Command.variants\"\n\n// ============================================\n// CONTEXT FOR VARIANT PROPAGATION\n// ============================================\n\ntype CommandContextValue = CommandCombinedVariantProps\n\nconst CommandContext = React.createContext<CommandContextValue>({\n size: \"default\",\n})\n\nfunction useCommandContext() {\n return React.use(CommandContext)\n}\n\n// ============================================\n// COMMAND ROOT\n// ============================================\n\ntype CommandProps = React.ComponentProps<typeof CommandPrimitive> &\n CommandCombinedVariantProps\n\n/**\n * Command - Command palette and combobox component\n *\n * @example\n * ```tsx\n * <Command size=\"default\">\n * <CommandInput placeholder=\"Search...\" />\n * <CommandList>\n * <CommandEmpty>No results found.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Calendar</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </Command>\n * ```\n */\nfunction Command({ size = \"default\", className, ...props }: CommandProps) {\n return (\n <CommandContext value={{ size }}>\n <CommandPrimitive\n className={cn(commandVariants({ size }), className)}\n data-slot=\"command\"\n {...props}\n />\n </CommandContext>\n )\n}\n\n// ============================================\n// COMMAND DIALOG\n// ============================================\n\ntype CommandDialogProps = React.ComponentProps<typeof Dialog> &\n CommandCombinedVariantProps & {\n className?: string\n description?: string\n showCloseButton?: boolean\n title?: string\n }\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n size = \"default\",\n ...props\n}: CommandDialogProps) {\n // Dialog always uses lg size for better UX\n const dialogSize = size === \"sm\" ? \"default\" : size === \"default\" ? \"lg\" : \"lg\"\n\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"overflow-hidden p-0\", className)}\n showCloseButton={showCloseButton}\n >\n <Command\n className={cn(\n // Override styles for dialog context based on size\n size === \"sm\" && [\n \"[&_[cmdk-group-heading]]:px-1.5\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group]]:px-1.5\",\n \"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n \"[&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4\",\n \"[&_[cmdk-item]]:px-1.5 [&_[cmdk-item]]:py-2\",\n \"[&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4\",\n ],\n (size === \"default\" || size === \"lg\") && [\n \"[&_[cmdk-group-heading]]:px-2\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group]]:px-2\",\n \"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n \"[&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5\",\n \"[&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3\",\n \"[&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\",\n ]\n )}\n size={dialogSize}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// COMMAND INPUT\n// ============================================\n\ntype CommandInputProps = Omit<\n React.ComponentProps<typeof CommandPrimitive.Input>,\n \"size\"\n> &\n Partial<CommandCombinedVariantProps> & {\n clearable?: boolean\n onClear?: () => void\n }\n\nfunction CommandInput({\n className,\n size: sizeProp,\n clearable = false,\n onClear,\n value,\n defaultValue,\n onValueChange,\n ...props\n}: CommandInputProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n // Track the search value so the clear button works in both controlled and\n // uncontrolled modes. cmdk's Input is value-driven (value + onValueChange).\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(\n typeof defaultValue === \"string\" ? defaultValue : \"\"\n )\n const currentValue = isControlled ? value : internalValue\n\n const handleValueChange = React.useCallback(\n (next: string) => {\n if (!isControlled) {\n setInternalValue(next)\n }\n onValueChange?.(next)\n },\n [isControlled, onValueChange]\n )\n\n const handleClear = React.useCallback(() => {\n if (!isControlled) {\n setInternalValue(\"\")\n }\n onValueChange?.(\"\")\n onClear?.()\n }, [isControlled, onValueChange, onClear])\n\n const showClear = clearable && currentValue !== \"\"\n\n return (\n <div\n className={cn(commandInputWrapperVariants({ size }))}\n data-slot=\"command-input-wrapper\"\n >\n <SearchIcon className={cn(commandInputIconVariants({ size }))} />\n <CommandPrimitive.Input\n className={cn(commandInputVariants({ size }), className)}\n data-slot=\"command-input\"\n value={currentValue}\n onValueChange={handleValueChange}\n {...props}\n />\n {showClear ? (\n <button\n aria-label=\"Limpar busca\"\n className={cn(commandInputClearVariants({ size }))}\n data-slot=\"command-input-clear\"\n tabIndex={-1}\n type=\"button\"\n onClick={handleClear}\n >\n <XIcon aria-hidden=\"true\" />\n </button>\n ) : null}\n </div>\n )\n}\n\n// ============================================\n// COMMAND LIST\n// ============================================\n\ntype CommandListProps = React.ComponentProps<typeof CommandPrimitive.List> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandList({ className, size: sizeProp, ...props }: CommandListProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.List\n className={cn(commandListVariants({ size }), className)}\n data-slot=\"command-list\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND EMPTY\n// ============================================\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandEmpty({ className, size: sizeProp, ...props }: CommandEmptyProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Empty\n className={cn(commandEmptyVariants({ size }), className)}\n data-slot=\"command-empty\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND GROUP\n// ============================================\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandGroup({ className, size: sizeProp, ...props }: CommandGroupProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Group\n className={cn(commandGroupVariants({ size }), className)}\n data-slot=\"command-group\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND SEPARATOR\n// ============================================\n\ntype CommandSeparatorProps = React.ComponentProps<\n typeof CommandPrimitive.Separator\n> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandSeparator({\n className,\n size: sizeProp,\n ...props\n}: CommandSeparatorProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Separator\n className={cn(commandSeparatorVariants({ size }), className)}\n data-slot=\"command-separator\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND ITEM\n// ============================================\n\ntype CommandItemProps = React.ComponentProps<typeof CommandPrimitive.Item> &\n CommandItemCombinedVariantProps\n\nfunction CommandItem({\n className,\n size: sizeProp,\n variant = \"default\",\n ...props\n}: CommandItemProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Item\n className={cn(commandItemVariants({ size, variant }), className)}\n data-slot=\"command-item\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND SHORTCUT\n// ============================================\n\ntype CommandShortcutProps = React.ComponentProps<\"span\"> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandShortcut({\n className,\n size: sizeProp,\n ...props\n}: CommandShortcutProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <span\n className={cn(commandShortcutVariants({ size }), className)}\n data-slot=\"command-shortcut\"\n {...props}\n />\n )\n}\n\n// ============================================\n// EXPORTS\n// ============================================\n\nexport {\n Command,\n CommandDialog,\n type CommandDialogProps,\n CommandEmpty,\n type CommandEmptyProps,\n CommandGroup,\n type CommandGroupProps,\n CommandInput,\n type CommandInputProps,\n CommandItem,\n type CommandItemProps,\n CommandList,\n type CommandListProps,\n type CommandProps,\n CommandSeparator,\n type CommandSeparatorProps,\n CommandShortcut,\n type CommandShortcutProps,\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/Command/Command.variants.ts","../src/components/advanced/Command/Command.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-Q4E7OG7J.js","sourcesContent":["// Command/Command.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Command root style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const commandVariants = cva(\n // Base styles (always applied)\n [\n \"bg-popover text-popover-foreground\",\n \"flex h-full w-full flex-col overflow-hidden rounded-md\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input wrapper style variants using CVA\n *\n * Controls the height and padding of the input container.\n */\nexport const commandInputWrapperVariants = cva(\n // Base styles (always applied)\n [\"flex items-center gap-[var(--command-input-wrapper-gap)] border-b-[var(--command-input-wrapper-border-width)] px-[var(--command-input-wrapper-padding-x)]\"],\n {\n variants: {\n size: {\n sm: \"h-[var(--command-input-wrapper-height-sm)]\",\n default: \"h-[var(--command-input-wrapper-height-md)]\",\n lg: \"h-[var(--command-input-wrapper-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input style variants using CVA\n */\nexport const commandInputVariants = cva(\n // Base styles (always applied)\n [\n \"placeholder:text-muted-foreground\",\n \"flex w-full rounded-md bg-transparent outline-hidden\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--command-input-height-sm)] py-[var(--command-input-padding-y-sm)] text-[length:var(--command-input-text-size-sm)]\",\n default: \"h-[var(--command-input-height-md)] py-[var(--command-input-padding-y-md)] text-[length:var(--command-input-text-size-md)]\",\n lg: \"h-[var(--command-input-height-lg)] py-[var(--command-input-padding-y-lg)] text-[length:var(--command-input-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input icon style variants using CVA\n */\nexport const commandInputIconVariants = cva(\n // Base styles (always applied)\n [\"shrink-0 opacity-50\"],\n {\n variants: {\n size: {\n sm: \"size-[var(--command-icon-size-sm)]\",\n default: \"size-[var(--command-icon-size-md)]\",\n lg: \"size-[var(--command-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input clear button (Icon/X) style variants using CVA\n *\n * Trailing affordance that clears the search value. Matches the Figma\n * `Command/Input` Icon/X (16×16) shown to the right of the search input.\n */\nexport const commandInputClearVariants = cva(\n // Base styles (always applied)\n [\n \"text-muted-foreground hover:text-foreground flex shrink-0 items-center justify-center rounded-[var(--command-item-radius)] outline-hidden transition-colors\",\n \"hover:translate-y-px active:translate-y-0.5\",\n \"focus-visible:ring-ring focus-visible:ring-4\",\n ],\n {\n variants: {\n size: {\n sm: \"size-[var(--command-icon-size-sm)]\",\n default: \"size-[var(--command-icon-size-md)]\",\n lg: \"size-[var(--command-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command list style variants using CVA\n */\nexport const commandListVariants = cva(\n // Base styles (always applied)\n [\"scroll-py-1 overflow-x-hidden overflow-y-auto\"],\n {\n variants: {\n size: {\n sm: \"max-h-[var(--command-list-max-height-sm)]\",\n default: \"max-h-[var(--command-list-max-height-md)]\",\n lg: \"max-h-[var(--command-list-max-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command empty state style variants using CVA\n */\nexport const commandEmptyVariants = cva(\n // Base styles (always applied)\n [\"text-center\"],\n {\n variants: {\n size: {\n sm: \"py-[var(--command-empty-padding-y-sm)] text-[length:var(--command-empty-text-size-sm)]\",\n default: \"py-[var(--command-empty-padding-y-md)] text-[length:var(--command-empty-text-size-md)]\",\n lg: \"py-[var(--command-empty-padding-y-lg)] text-[length:var(--command-empty-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command group style variants using CVA\n */\nexport const commandGroupVariants = cva(\n // Base styles (always applied)\n [\"text-foreground overflow-hidden p-[var(--command-group-padding)]\"],\n {\n variants: {\n size: {\n sm: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-sm)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-sm)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-sm)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n default: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-md)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-md)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-md)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n lg: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-lg)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-lg)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-lg)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command item style variants using CVA\n *\n * Supports both size and visual variant options.\n */\nexport const commandItemVariants = cva(\n // Base styles (always applied)\n [\n \"relative flex cursor-default items-center gap-[var(--command-item-gap)] rounded-[var(--command-item-radius)] outline-hidden select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: [\n \"px-[var(--command-item-padding-x-sm)] py-[var(--command-item-padding-y-sm)] text-[length:var(--command-item-text-size-sm)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-sm)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n default: [\n \"px-[var(--command-item-padding-x-md)] py-[var(--command-item-padding-y-md)] text-[length:var(--command-item-text-size-md)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-md)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n lg: [\n \"px-[var(--command-item-padding-x-lg)] py-[var(--command-item-padding-y-lg)] text-[length:var(--command-item-text-size-lg)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-lg)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n },\n variant: {\n default: [\n \"data-[selected=true]:bg-accent\",\n \"data-[selected=true]:text-accent-foreground\",\n ],\n destructive: [\n \"text-destructive\",\n \"data-[selected=true]:bg-destructive/10\",\n \"data-[selected=true]:text-destructive\",\n \"[&_svg:not([class*='text-'])]:text-destructive\",\n ],\n },\n },\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Command separator style variants using CVA\n */\nexport const commandSeparatorVariants = cva(\n // Base styles (always applied)\n [\"bg-border -mx-[var(--command-separator-margin-x)] h-[var(--command-separator-height)]\"],\n {\n variants: {\n size: {\n sm: \"my-[var(--command-separator-margin-y-sm)]\",\n default: \"my-[var(--command-separator-margin-y-md)]\",\n lg: \"my-[var(--command-separator-margin-y-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command shortcut style variants using CVA\n */\nexport const commandShortcutVariants = cva(\n // Base styles (always applied)\n [\"text-muted-foreground ml-auto tracking-widest\"],\n {\n variants: {\n size: {\n sm: \"text-[length:var(--command-shortcut-text-size-sm)]\",\n default: \"text-[length:var(--command-shortcut-text-size-md)]\",\n lg: \"text-[length:var(--command-shortcut-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n// Export variant prop types\nexport type CommandVariantProps = VariantProps<typeof commandVariants>\nexport type CommandInputWrapperVariantProps = VariantProps<\n typeof commandInputWrapperVariants\n>\nexport type CommandInputVariantProps = VariantProps<typeof commandInputVariants>\nexport type CommandInputIconVariantProps = VariantProps<\n typeof commandInputIconVariants\n>\nexport type CommandInputClearVariantProps = VariantProps<\n typeof commandInputClearVariants\n>\nexport type CommandListVariantProps = VariantProps<typeof commandListVariants>\nexport type CommandEmptyVariantProps = VariantProps<typeof commandEmptyVariants>\nexport type CommandGroupVariantProps = VariantProps<typeof commandGroupVariants>\nexport type CommandItemVariantProps = VariantProps<typeof commandItemVariants>\nexport type CommandSeparatorVariantProps = VariantProps<\n typeof commandSeparatorVariants\n>\nexport type CommandShortcutVariantProps = VariantProps<\n typeof commandShortcutVariants\n>\n\n/**\n * Combined variant props for the Command compound component\n */\nexport interface CommandCombinedVariantProps {\n /** Size of the command components */\n size?: CommandVariantProps[\"size\"]\n}\n\n/**\n * Item-specific variant props\n */\nexport interface CommandItemCombinedVariantProps {\n /** Size of the item (inherited from context if not provided) */\n size?: CommandItemVariantProps[\"size\"]\n /** Visual variant of the item */\n variant?: CommandItemVariantProps[\"variant\"]\n}\n","// Command/Command.tsx\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { SearchIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport {\n type CommandCombinedVariantProps,\n commandEmptyVariants,\n commandGroupVariants,\n commandInputClearVariants,\n commandInputIconVariants,\n commandInputVariants,\n commandInputWrapperVariants,\n type CommandItemCombinedVariantProps,\n commandItemVariants,\n commandListVariants,\n commandSeparatorVariants,\n commandShortcutVariants,\n commandVariants,\n} from \"./Command.variants\"\n\n// ============================================\n// CONTEXT FOR VARIANT PROPAGATION\n// ============================================\n\ntype CommandContextValue = CommandCombinedVariantProps\n\nconst CommandContext = React.createContext<CommandContextValue>({\n size: \"default\",\n})\n\nfunction useCommandContext() {\n return React.use(CommandContext)\n}\n\n// ============================================\n// COMMAND ROOT\n// ============================================\n\ntype CommandProps = React.ComponentProps<typeof CommandPrimitive> &\n CommandCombinedVariantProps\n\n/**\n * Command - Command palette and combobox component\n *\n * @example\n * ```tsx\n * <Command size=\"default\">\n * <CommandInput placeholder=\"Search...\" />\n * <CommandList>\n * <CommandEmpty>No results found.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Calendar</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </Command>\n * ```\n */\nfunction Command({ size = \"default\", className, ...props }: CommandProps) {\n return (\n <CommandContext value={{ size }}>\n <CommandPrimitive\n className={cn(commandVariants({ size }), className)}\n data-slot=\"command\"\n {...props}\n />\n </CommandContext>\n )\n}\n\n// ============================================\n// COMMAND DIALOG\n// ============================================\n\ntype CommandDialogProps = React.ComponentProps<typeof Dialog> &\n CommandCombinedVariantProps & {\n className?: string\n description?: string\n showCloseButton?: boolean\n title?: string\n }\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n size = \"default\",\n ...props\n}: CommandDialogProps) {\n // Dialog always uses lg size for better UX\n const dialogSize = size === \"sm\" ? \"default\" : size === \"default\" ? \"lg\" : \"lg\"\n\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"overflow-hidden p-0\", className)}\n showCloseButton={showCloseButton}\n >\n <Command\n className={cn(\n // Override styles for dialog context based on size\n size === \"sm\" && [\n \"[&_[cmdk-group-heading]]:px-1.5\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group]]:px-1.5\",\n \"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n \"[&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4\",\n \"[&_[cmdk-item]]:px-1.5 [&_[cmdk-item]]:py-2\",\n \"[&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4\",\n ],\n (size === \"default\" || size === \"lg\") && [\n \"[&_[cmdk-group-heading]]:px-2\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group]]:px-2\",\n \"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n \"[&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5\",\n \"[&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3\",\n \"[&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\",\n ]\n )}\n size={dialogSize}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// COMMAND INPUT\n// ============================================\n\ntype CommandInputProps = Omit<\n React.ComponentProps<typeof CommandPrimitive.Input>,\n \"size\"\n> &\n Partial<CommandCombinedVariantProps> & {\n clearable?: boolean\n onClear?: () => void\n }\n\nfunction CommandInput({\n className,\n size: sizeProp,\n clearable = false,\n onClear,\n value,\n defaultValue,\n onValueChange,\n ...props\n}: CommandInputProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n // Track the search value so the clear button works in both controlled and\n // uncontrolled modes. cmdk's Input is value-driven (value + onValueChange).\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(\n typeof defaultValue === \"string\" ? defaultValue : \"\"\n )\n const currentValue = isControlled ? value : internalValue\n\n const handleValueChange = React.useCallback(\n (next: string) => {\n if (!isControlled) {\n setInternalValue(next)\n }\n onValueChange?.(next)\n },\n [isControlled, onValueChange]\n )\n\n const handleClear = React.useCallback(() => {\n if (!isControlled) {\n setInternalValue(\"\")\n }\n onValueChange?.(\"\")\n onClear?.()\n }, [isControlled, onValueChange, onClear])\n\n const showClear = clearable && currentValue !== \"\"\n\n return (\n <div\n className={cn(commandInputWrapperVariants({ size }))}\n data-slot=\"command-input-wrapper\"\n >\n <SearchIcon className={cn(commandInputIconVariants({ size }))} />\n <CommandPrimitive.Input\n className={cn(commandInputVariants({ size }), className)}\n data-slot=\"command-input\"\n value={currentValue}\n onValueChange={handleValueChange}\n {...props}\n />\n {showClear ? (\n <button\n aria-label=\"Limpar busca\"\n className={cn(commandInputClearVariants({ size }))}\n data-slot=\"command-input-clear\"\n tabIndex={-1}\n type=\"button\"\n onClick={handleClear}\n >\n <XIcon aria-hidden=\"true\" />\n </button>\n ) : null}\n </div>\n )\n}\n\n// ============================================\n// COMMAND LIST\n// ============================================\n\ntype CommandListProps = React.ComponentProps<typeof CommandPrimitive.List> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandList({ className, size: sizeProp, ...props }: CommandListProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.List\n className={cn(commandListVariants({ size }), className)}\n data-slot=\"command-list\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND EMPTY\n// ============================================\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandEmpty({ className, size: sizeProp, ...props }: CommandEmptyProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Empty\n className={cn(commandEmptyVariants({ size }), className)}\n data-slot=\"command-empty\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND GROUP\n// ============================================\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandGroup({ className, size: sizeProp, ...props }: CommandGroupProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Group\n className={cn(commandGroupVariants({ size }), className)}\n data-slot=\"command-group\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND SEPARATOR\n// ============================================\n\ntype CommandSeparatorProps = React.ComponentProps<\n typeof CommandPrimitive.Separator\n> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandSeparator({\n className,\n size: sizeProp,\n ...props\n}: CommandSeparatorProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Separator\n className={cn(commandSeparatorVariants({ size }), className)}\n data-slot=\"command-separator\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND ITEM\n// ============================================\n\ntype CommandItemProps = React.ComponentProps<typeof CommandPrimitive.Item> &\n CommandItemCombinedVariantProps\n\nfunction CommandItem({\n className,\n size: sizeProp,\n variant = \"default\",\n ...props\n}: CommandItemProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Item\n className={cn(commandItemVariants({ size, variant }), className)}\n data-slot=\"command-item\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND SHORTCUT\n// ============================================\n\ntype CommandShortcutProps = React.ComponentProps<\"span\"> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandShortcut({\n className,\n size: sizeProp,\n ...props\n}: CommandShortcutProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <span\n className={cn(commandShortcutVariants({ size }), className)}\n data-slot=\"command-shortcut\"\n {...props}\n />\n )\n}\n\n// ============================================\n// EXPORTS\n// ============================================\n\nexport {\n Command,\n CommandDialog,\n type CommandDialogProps,\n CommandEmpty,\n type CommandEmptyProps,\n CommandGroup,\n type CommandGroupProps,\n CommandInput,\n type CommandInputProps,\n CommandItem,\n type CommandItemProps,\n CommandList,\n type CommandListProps,\n type CommandProps,\n CommandSeparator,\n type CommandSeparatorProps,\n CommandShortcut,\n type CommandShortcutProps,\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TextInput } from './chunk-
|
|
1
|
+
import { TextInput } from './chunk-GX2VJT7D.js';
|
|
2
2
|
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import { LinkIcon, CheckCircle2Icon, XCircleIcon } from 'lucide-react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
@@ -96,5 +96,5 @@ function URLInput({
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
export { URLInput, urlLinkIconVariants, urlValidationIconVariants };
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-Q7MAQ7MO.js.map
|
|
100
|
+
//# sourceMappingURL=chunk-Q7MAQ7MO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/URLInput/URLInput.variants.ts","../src/components/forms/URLInput/URLInput.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,mBAAA,GAAsB,GAAA;AAAA,EACjC,2DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAKO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,oDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,eAAA,EAAiB;AAAA,QACf,IAAA,EAAM,uBAAA;AAAA,QACN,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,eAAA,EAAiB,MAAA;AAAA,MACjB,IAAA,EAAM;AAAA;AACR;AAEJ;AC7BA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA,eAAA,GAAkB,MAAA;AAAA,EAClB,kBAAA,GAAqB,KAAA;AAAA,EACrB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,cAAA,GAAiB,sBAAsB,eAAA,KAAoB,MAAA;AAEjE,EAAA,MAAM,OAAA,mBACJ,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAC,CAAA;AAAA,MAC3C,WAAA,EAAU,WAAA;AAAA,MAET,QAAA,EAAA,QAAA,wBAAa,QAAA,EAAA,EAAS;AAAA;AAAA,GACzB;AAGF,EAAA,MAAM,WAAW,cAAA,mBACf,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,yBAAA,CAA0B,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAC,CAAA;AAAA,MAClE,WAAA,EAAU,qBAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,eAAA,KAAoB,OAAA,KAAY,SAAA,oBAAa,GAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA,CAAA;AAAA,QAC/D,eAAA,KAAoB,SAAA,KAAc,WAAA,oBAAe,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA;AAAA;AAAA;AAAA,GACjE,GACE,MAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAc,eAAA,KAAoB,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,MACrD,SAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,QAAA;AAAA,MACA,WAAA,EAAa,OAAA;AAAA,MACb,IAAA;AAAA,MACA,YAAA,EAAc,QAAA;AAAA,MACd,IAAA,EAAK,KAAA;AAAA,MACL,OAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/URLInput/URLInput.variants.ts","../src/components/forms/URLInput/URLInput.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,mBAAA,GAAsB,GAAA;AAAA,EACjC,2DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAKO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,oDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,eAAA,EAAiB;AAAA,QACf,IAAA,EAAM,uBAAA;AAAA,QACN,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,eAAA,EAAiB,MAAA;AAAA,MACjB,IAAA,EAAM;AAAA;AACR;AAEJ;AC7BA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA,eAAA,GAAkB,MAAA;AAAA,EAClB,kBAAA,GAAqB,KAAA;AAAA,EACrB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,cAAA,GAAiB,sBAAsB,eAAA,KAAoB,MAAA;AAEjE,EAAA,MAAM,OAAA,mBACJ,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAC,CAAA;AAAA,MAC3C,WAAA,EAAU,WAAA;AAAA,MAET,QAAA,EAAA,QAAA,wBAAa,QAAA,EAAA,EAAS;AAAA;AAAA,GACzB;AAGF,EAAA,MAAM,WAAW,cAAA,mBACf,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,yBAAA,CAA0B,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAC,CAAA;AAAA,MAClE,WAAA,EAAU,qBAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,eAAA,KAAoB,OAAA,KAAY,SAAA,oBAAa,GAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA,CAAA;AAAA,QAC/D,eAAA,KAAoB,SAAA,KAAc,WAAA,oBAAe,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA;AAAA;AAAA;AAAA,GACjE,GACE,MAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAc,eAAA,KAAoB,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,MACrD,SAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,QAAA;AAAA,MACA,WAAA,EAAa,OAAA;AAAA,MACb,IAAA;AAAA,MACA,YAAA,EAAc,QAAA;AAAA,MACd,IAAA,EAAK,KAAA;AAAA,MACL,OAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-Q7MAQ7MO.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * URL link icon visual variants\n */\nexport const urlLinkIconVariants = cva(\n \"flex items-center justify-center text-muted-foreground/80\",\n {\n variants: {\n size: {\n xs: \"[&_svg]:size-3\",\n sm: \"[&_svg]:size-3.5\",\n md: \"[&_svg]:size-4\",\n lg: \"[&_svg]:size-4.5\",\n xl: \"[&_svg]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * URL validation icon visual variants\n */\nexport const urlValidationIconVariants = cva(\n \"flex items-center justify-center transition-colors\",\n {\n variants: {\n validationState: {\n idle: \"text-muted-foreground\",\n valid: \"text-success\",\n invalid: \"text-destructive\",\n },\n size: {\n xs: \"[&_svg]:size-3\",\n sm: \"[&_svg]:size-3.5\",\n md: \"[&_svg]:size-4\",\n lg: \"[&_svg]:size-4.5\",\n xl: \"[&_svg]:size-5\",\n },\n },\n defaultVariants: {\n validationState: \"idle\",\n size: \"md\",\n },\n }\n)\n\nexport type URLLinkIconVariantProps = VariantProps<typeof urlLinkIconVariants>\nexport type URLValidationIconVariantProps = VariantProps<typeof urlValidationIconVariants>\n","\"use client\"\n\nimport type { URLInputProps } from \"./URLInput.types\"\n\nimport { CheckCircle2Icon, LinkIcon, XCircleIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { TextInput } from \"../TextInput\"\nimport { urlLinkIconVariants, urlValidationIconVariants } from \"./URLInput.variants\"\n\n/**\n * URLInput component with link icon and optional validation state indicator.\n * Now uses TextInput internally for consistency.\n *\n * @example\n * ```tsx\n * <URLInput placeholder=\"Enter URL\" />\n * ```\n */\nfunction URLInput({\n className,\n size = \"md\",\n variant,\n validationState = \"idle\",\n showValidationIcon = false,\n linkIcon,\n validIcon,\n invalidIcon,\n disabled,\n ...props\n}: URLInputProps) {\n const showValidation = showValidationIcon && validationState !== \"idle\"\n\n const leading = (\n <div\n aria-hidden=\"true\"\n className={cn(urlLinkIconVariants({ size }))}\n data-slot=\"link-icon\"\n >\n {linkIcon ?? <LinkIcon />}\n </div>\n )\n\n const trailing = showValidation ? (\n <div\n aria-hidden=\"true\"\n className={cn(urlValidationIconVariants({ size, validationState }))}\n data-slot=\"url-validation-icon\"\n >\n {validationState === \"valid\" && (validIcon ?? <CheckCircle2Icon />)}\n {validationState === \"invalid\" && (invalidIcon ?? <XCircleIcon />)}\n </div>\n ) : undefined\n\n return (\n <TextInput\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n className={className}\n data-slot=\"url-input\"\n disabled={disabled}\n leadingIcon={leading}\n size={size}\n trailingIcon={trailing}\n type=\"url\"\n variant={variant}\n {...props}\n />\n )\n}\n\nexport { URLInput }"]}
|
|
@@ -15,19 +15,31 @@ var tagsInputVariants = cva(
|
|
|
15
15
|
{
|
|
16
16
|
variants: {
|
|
17
17
|
size: {
|
|
18
|
-
sm: "min-h-
|
|
19
|
-
md: "min-h-
|
|
20
|
-
lg: "min-h-
|
|
18
|
+
sm: "min-h-[var(--input-size-sm-h)] px-2 py-1 text-sm",
|
|
19
|
+
md: "min-h-[var(--input-size-md-h)] px-3 py-1.5 text-base md:text-sm",
|
|
20
|
+
lg: "min-h-[var(--input-size-lg-h)] px-3.5 py-2 text-base"
|
|
21
21
|
},
|
|
22
22
|
variant: {
|
|
23
23
|
default: "border-[color:var(--tags-input-root-border)] shadow-xs",
|
|
24
24
|
filled: "border-transparent bg-muted",
|
|
25
25
|
flushed: "rounded-none border-x-0 border-t-0 border-b-input px-0"
|
|
26
|
+
},
|
|
27
|
+
// Figma Textarea State=Tags (1386:13760): campo multiline com tags —
|
|
28
|
+
// altura de textarea (por size) e conteúdo alinhado no topo
|
|
29
|
+
multiline: {
|
|
30
|
+
true: "content-start items-start",
|
|
31
|
+
false: ""
|
|
26
32
|
}
|
|
27
33
|
},
|
|
34
|
+
compoundVariants: [
|
|
35
|
+
{ multiline: true, size: "sm", className: "min-h-[var(--textarea-size-sm-min-h)]" },
|
|
36
|
+
{ multiline: true, size: "md", className: "min-h-[var(--textarea-size-md-min-h)]" },
|
|
37
|
+
{ multiline: true, size: "lg", className: "min-h-[var(--textarea-size-lg-min-h)]" }
|
|
38
|
+
],
|
|
28
39
|
defaultVariants: {
|
|
29
40
|
size: "md",
|
|
30
|
-
variant: "default"
|
|
41
|
+
variant: "default",
|
|
42
|
+
multiline: false
|
|
31
43
|
}
|
|
32
44
|
}
|
|
33
45
|
);
|
|
@@ -62,6 +74,7 @@ function TagsInput({
|
|
|
62
74
|
disabled,
|
|
63
75
|
size = "md",
|
|
64
76
|
variant,
|
|
77
|
+
multiline = false,
|
|
65
78
|
invalid,
|
|
66
79
|
delimiters = [","],
|
|
67
80
|
className,
|
|
@@ -155,7 +168,8 @@ function TagsInput({
|
|
|
155
168
|
{
|
|
156
169
|
"aria-disabled": disabled ?? void 0,
|
|
157
170
|
"aria-invalid": invalid ?? void 0,
|
|
158
|
-
className: cn(tagsInputVariants({ size, variant }), className),
|
|
171
|
+
className: cn(tagsInputVariants({ size, variant, multiline }), className),
|
|
172
|
+
"data-multiline": multiline ? "" : void 0,
|
|
159
173
|
"data-slot": "tags-input",
|
|
160
174
|
onClick: handleContainerClick,
|
|
161
175
|
...props,
|
|
@@ -195,5 +209,5 @@ function TagsInput({
|
|
|
195
209
|
}
|
|
196
210
|
|
|
197
211
|
export { TagsInput, tagsInputInputVariants, tagsInputVariants };
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
212
|
+
//# sourceMappingURL=chunk-QMCQIOCP.js.map
|
|
213
|
+
//# sourceMappingURL=chunk-QMCQIOCP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/TagsInput/TagsInput.variants.ts","../src/components/forms/TagsInput/TagsInput.tsx"],"names":[],"mappings":"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","file":"chunk-QMCQIOCP.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * TagsInput container variant styles using CVA\n */\nexport const tagsInputVariants = cva(\n [\n \"flex flex-wrap items-center gap-1.5 w-full min-w-0 rounded-[var(--tags-input-root-radius)] border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-[var(--input-size-sm-h)] px-2 py-1 text-sm\",\n md: \"min-h-[var(--input-size-md-h)] px-3 py-1.5 text-base md:text-sm\",\n lg: \"min-h-[var(--input-size-lg-h)] px-3.5 py-2 text-base\",\n },\n variant: {\n default: \"border-[color:var(--tags-input-root-border)] shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n // Figma Textarea State=Tags (1386:13760): campo multiline com tags —\n // altura de textarea (por size) e conteúdo alinhado no topo\n multiline: {\n true: \"content-start items-start\",\n false: \"\",\n },\n },\n compoundVariants: [\n { multiline: true, size: \"sm\", className: \"min-h-[var(--textarea-size-sm-min-h)]\" },\n { multiline: true, size: \"md\", className: \"min-h-[var(--textarea-size-md-min-h)]\" },\n { multiline: true, size: \"lg\", className: \"min-h-[var(--textarea-size-lg-min-h)]\" },\n ],\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n multiline: false,\n },\n }\n)\n\n/**\n * TagsInput inner input variant styles\n */\nexport const tagsInputInputVariants = cva(\n [\n \"flex-1 min-w-24 bg-[color:var(--tags-input-input-background)] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm h-5\",\n md: \"text-base md:text-sm h-5\",\n lg: \"text-base h-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type TagsInputVariantProps = VariantProps<typeof tagsInputVariants>\nexport type TagsInputInputVariantProps = VariantProps<typeof tagsInputInputVariants>\n","\"use client\"\n\nimport type { TagsInputProps } from \"./TagsInput.types\"\n\nimport * as React from \"react\"\nimport { useCallback, useId, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { tagsInputInputVariants, tagsInputVariants } from \"./TagsInput.variants\"\n\n/**\n * TagsInput - A multi-tag input component for entering and managing tags\n *\n * @example\n * ```tsx\n * // Uncontrolled\n * <TagsInput\n * defaultValue={[\"react\", \"typescript\"]}\n * placeholder=\"Add tags...\"\n * />\n *\n * // Controlled\n * const [tags, setTags] = useState([\"hello\"])\n * <TagsInput\n * value={tags}\n * onChange={setTags}\n * maxTags={5}\n * />\n * ```\n */\nfunction TagsInput({\n value: controlledValue,\n defaultValue = [],\n onChange,\n onTagAdd,\n onTagRemove,\n placeholder = \"Add tag...\",\n maxTags,\n allowDuplicates = false,\n disabled,\n size = \"md\",\n variant,\n multiline = false,\n invalid,\n delimiters = [\",\"],\n className,\n ...props\n}: TagsInputProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [inputValue, setInputValue] = useState(\"\")\n const [internalTags, setInternalTags] = useState<string[]>(defaultValue)\n const id = useId()\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledValue !== undefined\n const tags = isControlled ? controlledValue : internalTags\n\n const updateTags = useCallback(\n (newTags: string[]) => {\n if (!isControlled) {\n setInternalTags(newTags)\n }\n onChange?.(newTags)\n },\n [isControlled, onChange]\n )\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim()\n if (!trimmedTag) return\n\n // Check for duplicates\n if (!allowDuplicates && tags.includes(trimmedTag)) {\n setInputValue(\"\")\n return\n }\n\n // Check max tags\n if (maxTags && tags.length >= maxTags) {\n setInputValue(\"\")\n return\n }\n\n const newTags = [...tags, trimmedTag]\n updateTags(newTags)\n onTagAdd?.(trimmedTag)\n setInputValue(\"\")\n },\n [tags, allowDuplicates, maxTags, updateTags, onTagAdd]\n )\n\n const removeTag = useCallback(\n (tagToRemove: string) => {\n const newTags = tags.filter((tag) => tag !== tagToRemove)\n updateTags(newTags)\n onTagRemove?.(tagToRemove)\n },\n [tags, updateTags, onTagRemove]\n )\n\n const removeLastTag = useCallback(() => {\n const lastTag = tags[tags.length - 1]\n if (lastTag) {\n removeTag(lastTag)\n }\n }, [tags, removeTag])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" || delimiters.includes(e.key)) {\n e.preventDefault()\n addTag(inputValue)\n } else if (e.key === \"Backspace\" && inputValue === \"\" && tags.length > 0) {\n removeLastTag()\n }\n },\n [inputValue, tags.length, addTag, removeLastTag, delimiters]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n\n // Check if any delimiter is in the pasted/typed value\n for (const delimiter of delimiters) {\n if (value.includes(delimiter)) {\n const parts = value.split(delimiter)\n parts.forEach((part, index) => {\n if (index < parts.length - 1) {\n addTag(part)\n } else {\n setInputValue(part)\n }\n })\n return\n }\n }\n\n setInputValue(value)\n },\n [delimiters, addTag]\n )\n\n const handleContainerClick = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n // Map size to Tag size\n const tagSize = size === \"lg\" ? \"default\" : \"sm\"\n\n return (\n <div\n aria-disabled={disabled ?? undefined}\n aria-invalid={invalid ?? undefined}\n className={cn(tagsInputVariants({ size, variant, multiline }), className)}\n data-multiline={multiline ? \"\" : undefined}\n data-slot=\"tags-input\"\n onClick={handleContainerClick}\n {...props}\n >\n {tags.map((tag, index) => (\n <Badge\n key={`${tag}-${String(index)}`}\n color=\"muted\"\n size={tagSize}\n type=\"pill-color\"\n onDismiss={disabled ? undefined : () => { removeTag(tag); }}\n >\n {tag}\n </Badge>\n ))}\n <input\n ref={inputRef}\n aria-label=\"Add tag\"\n className={tagsInputInputVariants({ size })}\n data-slot=\"tags-input-field\"\n disabled={disabled}\n id={id}\n placeholder={tags.length === 0 ? placeholder : undefined}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n )\n}\n\nexport { TagsInput }\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-
|
|
2
|
-
import { buttonVariants } from './chunk-
|
|
1
|
+
import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-OSHGYI2O.js';
|
|
2
|
+
import { buttonVariants } from './chunk-N3DBRKUS.js';
|
|
3
3
|
import { cn } from './chunk-RVAYDRMA.js';
|
|
4
4
|
import { LoaderCircle } from 'lucide-react';
|
|
5
5
|
import * as React from 'react';
|
|
@@ -200,5 +200,5 @@ function ConfirmButton({
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
export { ConfirmButton };
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
204
|
-
//# sourceMappingURL=chunk-
|
|
203
|
+
//# sourceMappingURL=chunk-R2Z64IC3.js.map
|
|
204
|
+
//# sourceMappingURL=chunk-R2Z64IC3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/primitives/ConfirmButton/ConfirmButton.tsx"],"names":[],"mappings":"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","file":"chunk-SSKSWSVO.js","sourcesContent":["\"use client\"\n\nimport type { ConfirmButtonProps } from \"./ConfirmButton.types\"\n\nimport { LoaderCircle } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../../feedback/AlertDialog\"\nimport { buttonVariants } from \"../Button\"\n\n/**\n * ConfirmButton - A button that requires confirmation before executing an action\n *\n * Combines a Button trigger with an AlertDialog for confirmation.\n * Supports typing validation for critical actions.\n *\n * @example\n * ```tsx\n * <ConfirmButton\n * variant=\"destructive\"\n * confirmTitle=\"Delete item?\"\n * confirmDescription=\"This action cannot be undone.\"\n * onConfirm={() => handleDelete()}\n * >\n * Delete\n * </ConfirmButton>\n * ```\n */\nfunction ConfirmButton({\n // Trigger button props\n className,\n variant,\n size,\n leftIcon,\n rightIcon,\n disabled,\n children,\n\n // Dialog configuration\n confirmTitle = \"Confirm action\",\n confirmDescription,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n confirmVariant = \"default\",\n\n // Typing validation\n requireTyping,\n typingPlaceholder,\n typingLabel,\n caseSensitive = true,\n\n // States\n loading = false,\n open: controlledOpen,\n onOpenChange: controlledOnOpenChange,\n\n // Callbacks\n onConfirm,\n onCancel,\n\n ...props\n}: ConfirmButtonProps) {\n // Internal open state (uncontrolled mode)\n const [internalOpen, setInternalOpen] = React.useState(false)\n\n // Typing input value\n const [typingValue, setTypingValue] = React.useState(\"\")\n\n // Internal loading state for async onConfirm\n const [isConfirming, setIsConfirming] = React.useState(false)\n\n // Prevent double confirmation\n const confirmingRef = React.useRef(false)\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledOpen !== undefined\n const open = isControlled ? controlledOpen : internalOpen\n const setOpen = React.useCallback(\n (value: boolean) => {\n if (isControlled) {\n controlledOnOpenChange?.(value)\n } else {\n setInternalOpen(value)\n }\n },\n [isControlled, controlledOnOpenChange]\n )\n\n // Track previous open state to reset typing during render (avoids useEffect anti-pattern)\n const prevOpenRef = React.useRef(open)\n if (prevOpenRef.current !== open) {\n prevOpenRef.current = open\n if (!open) {\n setTypingValue(\"\")\n confirmingRef.current = false\n }\n }\n\n // Check if typing matches requirement\n const typingMatches = React.useMemo(() => {\n if (!requireTyping) return true\n\n if (caseSensitive) {\n return typingValue === requireTyping\n }\n return typingValue.toLowerCase() === requireTyping.toLowerCase()\n }, [requireTyping, typingValue, caseSensitive])\n\n // Combined loading state\n const isLoading = loading || isConfirming\n\n // Confirm button should be disabled when loading or typing doesn't match\n const confirmDisabled = isLoading || !typingMatches\n\n // Track if cancel was triggered by button click\n const cancelTriggeredRef = React.useRef(false)\n\n // Handle dialog open change\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n // Don't allow closing while confirming\n if (isConfirming && !newOpen) return\n\n setOpen(newOpen)\n\n // Only call onCancel if dialog is closing and cancel wasn't already triggered\n if (!newOpen && !cancelTriggeredRef.current) {\n onCancel?.()\n }\n\n // Reset the flag after processing\n cancelTriggeredRef.current = false\n },\n [setOpen, onCancel, isConfirming]\n )\n\n // Handle cancel button click\n const handleCancel = React.useCallback(() => {\n cancelTriggeredRef.current = true\n onCancel?.()\n setOpen(false)\n }, [setOpen, onCancel])\n\n // Handle confirm button click\n const handleConfirm = React.useCallback(\n async (event: React.MouseEvent) => {\n // Prevent default AlertDialog behavior (auto-close)\n event.preventDefault()\n\n // Prevent double confirmation\n if (confirmingRef.current) return\n confirmingRef.current = true\n\n setIsConfirming(true)\n\n try {\n await onConfirm()\n // Close dialog on success\n setOpen(false)\n } catch {\n // Keep dialog open on error, allow retry\n confirmingRef.current = false\n // Error is not rethrown - caller should handle errors in onConfirm\n } finally {\n setIsConfirming(false)\n }\n },\n [onConfirm, setOpen]\n )\n\n // Render trigger button content\n const renderTriggerContent = () => (\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 </>\n )\n\n return (\n <AlertDialog open={open} onOpenChange={handleOpenChange}>\n <AlertDialogTrigger asChild>\n <button\n aria-disabled={disabled ?? undefined}\n className={cn(buttonVariants({ variant, size, className }))}\n data-slot=\"confirm-button\"\n disabled={disabled}\n type=\"button\"\n {...props}\n >\n {renderTriggerContent()}\n </button>\n </AlertDialogTrigger>\n\n <AlertDialogContent data-slot=\"confirm-dialog\">\n <AlertDialogHeader data-slot=\"confirm-dialog-header\">\n <AlertDialogTitle data-slot=\"confirm-dialog-title\">\n {confirmTitle}\n </AlertDialogTitle>\n {confirmDescription ? (\n <AlertDialogDescription data-slot=\"confirm-dialog-description\">\n {confirmDescription}\n </AlertDialogDescription>\n ) : (\n <AlertDialogDescription className=\"sr-only\">\n Confirm or cancel this action.\n </AlertDialogDescription>\n )}\n </AlertDialogHeader>\n\n {requireTyping && (\n <div className=\"space-y-2\" data-slot=\"confirm-dialog-content\">\n {typingLabel && (\n <label\n className=\"text-sm font-medium text-foreground\"\n htmlFor=\"confirm-typing-input\"\n >\n {typingLabel}\n </label>\n )}\n <input\n aria-describedby={\n !typingMatches ? \"confirm-typing-error\" : undefined\n }\n autoComplete=\"off\"\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\"\n data-slot=\"confirm-dialog-input\"\n id=\"confirm-typing-input\"\n placeholder={typingPlaceholder ?? requireTyping}\n type=\"text\"\n value={typingValue}\n onChange={(e) => { setTypingValue(e.target.value); }}\n />\n {typingValue && !typingMatches && (\n <p\n aria-live=\"polite\"\n className=\"text-sm text-destructive\"\n id=\"confirm-typing-error\"\n >\n The text you entered does not match.\n </p>\n )}\n </div>\n )}\n\n <AlertDialogFooter data-slot=\"confirm-dialog-footer\">\n <AlertDialogCancel\n data-slot=\"confirm-dialog-cancel\"\n disabled={isLoading}\n onClick={handleCancel}\n >\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction\n className={cn(\n confirmVariant === \"destructive\" &&\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40\"\n )}\n aria-busy={isLoading || undefined}\n aria-disabled={confirmDisabled || undefined}\n data-slot=\"confirm-dialog-confirm\"\n disabled={confirmDisabled}\n onClick={(e) => { void handleConfirm(e); }}\n >\n {isLoading && (\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"size-4 animate-spin\"\n />\n )}\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n\nexport { ConfirmButton }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/ConfirmButton/ConfirmButton.tsx"],"names":[],"mappings":"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","file":"chunk-R2Z64IC3.js","sourcesContent":["\"use client\"\n\nimport type { ConfirmButtonProps } from \"./ConfirmButton.types\"\n\nimport { LoaderCircle } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../../feedback/AlertDialog\"\nimport { buttonVariants } from \"../Button\"\n\n/**\n * ConfirmButton - A button that requires confirmation before executing an action\n *\n * Combines a Button trigger with an AlertDialog for confirmation.\n * Supports typing validation for critical actions.\n *\n * @example\n * ```tsx\n * <ConfirmButton\n * variant=\"destructive\"\n * confirmTitle=\"Delete item?\"\n * confirmDescription=\"This action cannot be undone.\"\n * onConfirm={() => handleDelete()}\n * >\n * Delete\n * </ConfirmButton>\n * ```\n */\nfunction ConfirmButton({\n // Trigger button props\n className,\n variant,\n size,\n leftIcon,\n rightIcon,\n disabled,\n children,\n\n // Dialog configuration\n confirmTitle = \"Confirm action\",\n confirmDescription,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n confirmVariant = \"default\",\n\n // Typing validation\n requireTyping,\n typingPlaceholder,\n typingLabel,\n caseSensitive = true,\n\n // States\n loading = false,\n open: controlledOpen,\n onOpenChange: controlledOnOpenChange,\n\n // Callbacks\n onConfirm,\n onCancel,\n\n ...props\n}: ConfirmButtonProps) {\n // Internal open state (uncontrolled mode)\n const [internalOpen, setInternalOpen] = React.useState(false)\n\n // Typing input value\n const [typingValue, setTypingValue] = React.useState(\"\")\n\n // Internal loading state for async onConfirm\n const [isConfirming, setIsConfirming] = React.useState(false)\n\n // Prevent double confirmation\n const confirmingRef = React.useRef(false)\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledOpen !== undefined\n const open = isControlled ? controlledOpen : internalOpen\n const setOpen = React.useCallback(\n (value: boolean) => {\n if (isControlled) {\n controlledOnOpenChange?.(value)\n } else {\n setInternalOpen(value)\n }\n },\n [isControlled, controlledOnOpenChange]\n )\n\n // Track previous open state to reset typing during render (avoids useEffect anti-pattern)\n const prevOpenRef = React.useRef(open)\n if (prevOpenRef.current !== open) {\n prevOpenRef.current = open\n if (!open) {\n setTypingValue(\"\")\n confirmingRef.current = false\n }\n }\n\n // Check if typing matches requirement\n const typingMatches = React.useMemo(() => {\n if (!requireTyping) return true\n\n if (caseSensitive) {\n return typingValue === requireTyping\n }\n return typingValue.toLowerCase() === requireTyping.toLowerCase()\n }, [requireTyping, typingValue, caseSensitive])\n\n // Combined loading state\n const isLoading = loading || isConfirming\n\n // Confirm button should be disabled when loading or typing doesn't match\n const confirmDisabled = isLoading || !typingMatches\n\n // Track if cancel was triggered by button click\n const cancelTriggeredRef = React.useRef(false)\n\n // Handle dialog open change\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n // Don't allow closing while confirming\n if (isConfirming && !newOpen) return\n\n setOpen(newOpen)\n\n // Only call onCancel if dialog is closing and cancel wasn't already triggered\n if (!newOpen && !cancelTriggeredRef.current) {\n onCancel?.()\n }\n\n // Reset the flag after processing\n cancelTriggeredRef.current = false\n },\n [setOpen, onCancel, isConfirming]\n )\n\n // Handle cancel button click\n const handleCancel = React.useCallback(() => {\n cancelTriggeredRef.current = true\n onCancel?.()\n setOpen(false)\n }, [setOpen, onCancel])\n\n // Handle confirm button click\n const handleConfirm = React.useCallback(\n async (event: React.MouseEvent) => {\n // Prevent default AlertDialog behavior (auto-close)\n event.preventDefault()\n\n // Prevent double confirmation\n if (confirmingRef.current) return\n confirmingRef.current = true\n\n setIsConfirming(true)\n\n try {\n await onConfirm()\n // Close dialog on success\n setOpen(false)\n } catch {\n // Keep dialog open on error, allow retry\n confirmingRef.current = false\n // Error is not rethrown - caller should handle errors in onConfirm\n } finally {\n setIsConfirming(false)\n }\n },\n [onConfirm, setOpen]\n )\n\n // Render trigger button content\n const renderTriggerContent = () => (\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 </>\n )\n\n return (\n <AlertDialog open={open} onOpenChange={handleOpenChange}>\n <AlertDialogTrigger asChild>\n <button\n aria-disabled={disabled ?? undefined}\n className={cn(buttonVariants({ variant, size, className }))}\n data-slot=\"confirm-button\"\n disabled={disabled}\n type=\"button\"\n {...props}\n >\n {renderTriggerContent()}\n </button>\n </AlertDialogTrigger>\n\n <AlertDialogContent data-slot=\"confirm-dialog\">\n <AlertDialogHeader data-slot=\"confirm-dialog-header\">\n <AlertDialogTitle data-slot=\"confirm-dialog-title\">\n {confirmTitle}\n </AlertDialogTitle>\n {confirmDescription ? (\n <AlertDialogDescription data-slot=\"confirm-dialog-description\">\n {confirmDescription}\n </AlertDialogDescription>\n ) : (\n <AlertDialogDescription className=\"sr-only\">\n Confirm or cancel this action.\n </AlertDialogDescription>\n )}\n </AlertDialogHeader>\n\n {requireTyping && (\n <div className=\"space-y-2\" data-slot=\"confirm-dialog-content\">\n {typingLabel && (\n <label\n className=\"text-sm font-medium text-foreground\"\n htmlFor=\"confirm-typing-input\"\n >\n {typingLabel}\n </label>\n )}\n <input\n aria-describedby={\n !typingMatches ? \"confirm-typing-error\" : undefined\n }\n autoComplete=\"off\"\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\"\n data-slot=\"confirm-dialog-input\"\n id=\"confirm-typing-input\"\n placeholder={typingPlaceholder ?? requireTyping}\n type=\"text\"\n value={typingValue}\n onChange={(e) => { setTypingValue(e.target.value); }}\n />\n {typingValue && !typingMatches && (\n <p\n aria-live=\"polite\"\n className=\"text-sm text-destructive\"\n id=\"confirm-typing-error\"\n >\n The text you entered does not match.\n </p>\n )}\n </div>\n )}\n\n <AlertDialogFooter data-slot=\"confirm-dialog-footer\">\n <AlertDialogCancel\n data-slot=\"confirm-dialog-cancel\"\n disabled={isLoading}\n onClick={handleCancel}\n >\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction\n className={cn(\n confirmVariant === \"destructive\" &&\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40\"\n )}\n aria-busy={isLoading || undefined}\n aria-disabled={confirmDisabled || undefined}\n data-slot=\"confirm-dialog-confirm\"\n disabled={confirmDisabled}\n onClick={(e) => { void handleConfirm(e); }}\n >\n {isLoading && (\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"size-4 animate-spin\"\n />\n )}\n {confirmLabel}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n\nexport { ConfirmButton }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TextInput } from './chunk-
|
|
1
|
+
import { TextInput } from './chunk-GX2VJT7D.js';
|
|
2
2
|
import { EyeOffIcon, EyeIcon } from 'lucide-react';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
@@ -74,5 +74,5 @@ function PasswordInput({
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
export { PasswordInput, passwordToggleVariants };
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-RK27HS7W.js.map
|
|
78
|
+
//# sourceMappingURL=chunk-RK27HS7W.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/PasswordInput/PasswordInput.variants.ts","../src/components/forms/PasswordInput/PasswordInput.tsx"],"names":[],"mappings":";;;;;;AAMO,IAAM,sBAAA,GAAyB,GAAA;AAAA;AAAA,EAEpC;AAAA,IACE,2CAAA;AAAA,IACA,kCAAA;AAAA,IACA,6CAAA;AAAA,IACA,mBAAA;AAAA,IACA,kDAAA;AAAA,IACA,qGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;ACZA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,UAAA,GAAa,IAAA;AAAA,EACb,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAU,eAAS,KAAK,CAAA;AAE5D,EAAA,MAAM,gBAAA,GAAyB,kBAAY,MAAM;AAC/C,IAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,EACjC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,eAAe,UAAA,mBACnB,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,MAC7C,SAAA,EAAW,sBAAA,CAAuB,EAAE,IAAA,EAAM,CAAA;AAAA,MAC1C,WAAA,EAAU,iBAAA;AAAA,MACV,QAAA;AAAA,MACA,QAAA,EAAU,EAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,gBAAA;AAAA,MAER,QAAA,EAAA,YAAA,GACI,QAAA,oBAAY,GAAA,CAAC,UAAA,EAAA,EAAW,aAAA,EAAY,MAAA,EAAO,CAAA,GAC3C,QAAA,oBAAY,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAY,MAAA,EAAO;AAAA;AAAA,GAC/C,GACE,MAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,WAAA,EAAU,gBAAA;AAAA,MACV,QAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA,EAAc,YAAA;AAAA,MACd,uBAAA,EAAyB,IAAA;AAAA,MACzB,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,MAC9B,OAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/PasswordInput/PasswordInput.variants.ts","../src/components/forms/PasswordInput/PasswordInput.tsx"],"names":[],"mappings":";;;;;;AAMO,IAAM,sBAAA,GAAyB,GAAA;AAAA;AAAA,EAEpC;AAAA,IACE,2CAAA;AAAA,IACA,kCAAA;AAAA,IACA,6CAAA;AAAA,IACA,mBAAA;AAAA,IACA,kDAAA;AAAA,IACA,qGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;ACZA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,UAAA,GAAa,IAAA;AAAA,EACb,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAU,eAAS,KAAK,CAAA;AAE5D,EAAA,MAAM,gBAAA,GAAyB,kBAAY,MAAM;AAC/C,IAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,EACjC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,eAAe,UAAA,mBACnB,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,MAC7C,SAAA,EAAW,sBAAA,CAAuB,EAAE,IAAA,EAAM,CAAA;AAAA,MAC1C,WAAA,EAAU,iBAAA;AAAA,MACV,QAAA;AAAA,MACA,QAAA,EAAU,EAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,gBAAA;AAAA,MAER,QAAA,EAAA,YAAA,GACI,QAAA,oBAAY,GAAA,CAAC,UAAA,EAAA,EAAW,aAAA,EAAY,MAAA,EAAO,CAAA,GAC3C,QAAA,oBAAY,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAY,MAAA,EAAO;AAAA;AAAA,GAC/C,GACE,MAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,WAAA,EAAU,gBAAA;AAAA,MACV,QAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA,EAAc,YAAA;AAAA,MACd,uBAAA,EAAyB,IAAA;AAAA,MACzB,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,MAC9B,OAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-RK27HS7W.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Password toggle button variant styles using CVA\n * Sizes match the input sizes for proper alignment\n */\nexport const passwordToggleVariants = cva(\n // Base styles\n [\n \"absolute right-0 top-1/2 -translate-y-1/2\",\n \"flex items-center justify-center\",\n \"text-muted-foreground hover:text-foreground\",\n \"transition-colors\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"rounded-sm\",\n ],\n {\n variants: {\n size: {\n xs: \"h-5 w-5 right-1.5 [&_svg]:size-3\",\n sm: \"h-6 w-6 right-2 [&_svg]:size-3.5\",\n md: \"h-7 w-7 right-2.5 [&_svg]:size-4\",\n lg: \"h-8 w-8 right-2.5 [&_svg]:size-4.5\",\n xl: \"h-9 w-9 right-3 [&_svg]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type PasswordToggleVariantProps = VariantProps<typeof passwordToggleVariants>\n","\"use client\"\n\nimport type { PasswordInputProps } from \"./PasswordInput.types\"\n\nimport { EyeIcon, EyeOffIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { TextInput } from \"../TextInput\"\nimport { passwordToggleVariants } from \"./PasswordInput.variants\"\n\n/**\n * PasswordInput component with visibility toggle.\n * Now uses TextInput internally for consistency.\n *\n * @example\n * ```tsx\n * <PasswordInput placeholder=\"Enter password\" />\n * ```\n */\nfunction PasswordInput({\n className,\n size = \"md\",\n variant = \"default\",\n showToggle = true,\n showIcon,\n hideIcon,\n disabled,\n ...props\n}: PasswordInputProps) {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n const toggleButton = showToggle ? (\n <button\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\n className={passwordToggleVariants({ size })}\n data-slot=\"password-toggle\"\n disabled={disabled}\n tabIndex={-1}\n type=\"button\"\n onClick={toggleVisibility}\n >\n {showPassword\n ? (hideIcon ?? <EyeOffIcon aria-hidden=\"true\" />)\n : (showIcon ?? <EyeIcon aria-hidden=\"true\" />)}\n </button>\n ) : undefined\n\n return (\n <TextInput\n className={className}\n data-slot=\"password-input\"\n disabled={disabled}\n size={size}\n trailingIcon={toggleButton}\n trailingIconInteractive={true}\n type={showPassword ? \"text\" : \"password\"}\n variant={variant}\n {...props}\n />\n )\n}\n\nexport { PasswordInput }"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { FilterBuilder, isFilterGroup, isFilterCondition } from './chunk-
|
|
1
|
+
import { FilterBuilder, isFilterGroup, isFilterCondition } from './chunk-W72PXQDH.js';
|
|
2
2
|
import { Table, TableRow, TableHeader, TableHead, TableBody, TableCell, TableFooter } from './chunk-NHUUSXBL.js';
|
|
3
|
-
import { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuSeparator, ContextMenuItem } from './chunk-
|
|
3
|
+
import { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuSeparator, ContextMenuItem } from './chunk-NORI6ECA.js';
|
|
4
4
|
import { SkeletonLoader } from './chunk-NGX3ITG4.js';
|
|
5
|
-
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItem } from './chunk-
|
|
5
|
+
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItem } from './chunk-FLXU5LWR.js';
|
|
6
6
|
import { useMediaQuery } from './chunk-Y555RCRZ.js';
|
|
7
7
|
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-5W3T767A.js';
|
|
8
8
|
import { Checkbox } from './chunk-JXEIRIU4.js';
|
|
9
|
-
import { TextInput } from './chunk-
|
|
9
|
+
import { TextInput } from './chunk-GX2VJT7D.js';
|
|
10
10
|
import { Popover, PopoverTrigger, PopoverContent } from './chunk-EQ4YAADN.js';
|
|
11
|
-
import { Button } from './chunk-
|
|
11
|
+
import { Button } from './chunk-N3DBRKUS.js';
|
|
12
12
|
import { Badge } from './chunk-HNQX6ZG7.js';
|
|
13
13
|
import { cn, isInteractiveTarget } from './chunk-RVAYDRMA.js';
|
|
14
14
|
import * as React14 from 'react';
|
|
@@ -4519,5 +4519,5 @@ function DataTableDateCell({
|
|
|
4519
4519
|
}
|
|
4520
4520
|
|
|
4521
4521
|
export { DataTable, DataTableBooleanCell, DataTableCurrencyCell, DataTableDateCell, DataTableProgressCell, DataTableRatingCell, downloadFile, exportToCSV, exportToExcel, exportToPDF, tableToCSV };
|
|
4522
|
-
//# sourceMappingURL=chunk-
|
|
4523
|
-
//# sourceMappingURL=chunk-
|
|
4522
|
+
//# sourceMappingURL=chunk-RTSAERFS.js.map
|
|
4523
|
+
//# sourceMappingURL=chunk-RTSAERFS.js.map
|