UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

1 lines 3.41 kB
{"version":3,"sources":["../src/components/shared/ModalComponents.tsx"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { UserIcon, XCircleIcon } from '@phosphor-icons/react';\nimport Text from '../Text/Text';\n\n/**\n * Section heading used inside report modals.\n */\nexport const SectionTitle = ({ children }: { children: ReactNode }) => (\n <Text\n as=\"h3\"\n size=\"md\"\n weight=\"bold\"\n className=\"text-text-950 tracking-[0.2px]\"\n >\n {children}\n </Text>\n);\n\n/**\n * User identity header used inside report modals.\n * Pass an optional `statusBadge` to display a badge on the right side of the name row\n * (e.g. a performance status Badge for students).\n */\nexport const UserHeader = ({\n name,\n school,\n className,\n year,\n statusBadge,\n}: {\n name: string;\n school: string;\n className: string;\n year: string | number;\n statusBadge?: ReactNode;\n}) => (\n <div className=\"flex flex-col gap-2 pb-4 border-b border-border-50\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"flex items-center gap-2\">\n <Text\n as=\"span\"\n className=\"size-8 rounded-full bg-background-100 flex items-center justify-center shrink-0\"\n >\n <UserIcon size={18} className=\"text-text-500\" weight=\"fill\" />\n </Text>\n <Text size=\"md\" weight=\"medium\" className=\"text-text-950\">\n {name}\n </Text>\n </div>\n {statusBadge}\n </div>\n <Text size=\"xs\" className=\"text-text-600\">\n {/*\n * Only the parts that exist. A director or pedagogue has no class, and\n * interpolating it blindly left an orphan bullet: \"Escola Municipal • • 2026\".\n */}\n {[school, className, year]\n .filter((part) => part !== undefined && part !== null && part !== '')\n .join(' • ')}\n </Text>\n </div>\n);\n\n/**\n * Error state for report modals.\n */\nexport const ErrorContent = ({ message }: { message: string }) => (\n <div className=\"flex flex-col items-center justify-center py-10 gap-3\">\n <Text\n as=\"span\"\n className=\"size-10 rounded-full bg-error-100 flex items-center justify-center\"\n >\n <XCircleIcon size={20} className=\"text-error-700\" weight=\"fill\" />\n </Text>\n <Text size=\"sm\" className=\"text-error-700 text-center\">\n {message}\n </Text>\n </div>\n);\n"],"mappings":";;;;;AACA,SAAS,UAAU,mBAAmB;AAOpC,cA8BI,YA9BJ;AADK,IAAM,eAAe,CAAC,EAAE,SAAS,MACtC;AAAA,EAAC;AAAA;AAAA,IACC,IAAG;AAAA,IACH,MAAK;AAAA,IACL,QAAO;AAAA,IACP,WAAU;AAAA,IAET;AAAA;AACH;AAQK,IAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAOE,qBAAC,SAAI,WAAU,sDACb;AAAA,uBAAC,SAAI,WAAU,2CACb;AAAA,yBAAC,SAAI,WAAU,2BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,WAAU;AAAA,UAEV,8BAAC,YAAS,MAAM,IAAI,WAAU,iBAAgB,QAAO,QAAO;AAAA;AAAA,MAC9D;AAAA,MACA,oBAAC,gBAAK,MAAK,MAAK,QAAO,UAAS,WAAU,iBACvC,gBACH;AAAA,OACF;AAAA,IACC;AAAA,KACH;AAAA,EACA,oBAAC,gBAAK,MAAK,MAAK,WAAU,iBAKvB,WAAC,QAAQ,WAAW,IAAI,EACtB,OAAO,CAAC,SAAS,SAAS,UAAa,SAAS,QAAQ,SAAS,EAAE,EACnE,KAAK,UAAK,GACf;AAAA,GACF;AAMK,IAAM,eAAe,CAAC,EAAE,QAAQ,MACrC,qBAAC,SAAI,WAAU,yDACb;AAAA;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,WAAU;AAAA,MAEV,8BAAC,eAAY,MAAM,IAAI,WAAU,kBAAiB,QAAO,QAAO;AAAA;AAAA,EAClE;AAAA,EACA,oBAAC,gBAAK,MAAK,MAAK,WAAU,8BACvB,mBACH;AAAA,GACF;","names":[]}