@fluencypassdevs/cycle 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/cli/CLAUDE-section.md +3 -1
  2. package/dist/chunk-5LZHXNBV.js +38 -0
  3. package/dist/chunk-5LZHXNBV.js.map +1 -0
  4. package/dist/{chunk-POQUVBVT.js → chunk-7ZXAU2CD.js} +3 -3
  5. package/dist/{chunk-POQUVBVT.js.map → chunk-7ZXAU2CD.js.map} +1 -1
  6. package/dist/{chunk-XX3I65LQ.js → chunk-BJIG33XF.js} +3 -3
  7. package/dist/{chunk-XX3I65LQ.js.map → chunk-BJIG33XF.js.map} +1 -1
  8. package/dist/{chunk-6LML23MS.js → chunk-D4QCYBCD.js} +3 -3
  9. package/dist/{chunk-6LML23MS.js.map → chunk-D4QCYBCD.js.map} +1 -1
  10. package/dist/{chunk-RI3ULQHH.js → chunk-ELZCZ6ZH.js} +3 -3
  11. package/dist/{chunk-RI3ULQHH.js.map → chunk-ELZCZ6ZH.js.map} +1 -1
  12. package/dist/{chunk-PXWCEJ2C.js → chunk-EXVLL3JP.js} +3 -3
  13. package/dist/{chunk-PXWCEJ2C.js.map → chunk-EXVLL3JP.js.map} +1 -1
  14. package/dist/chunk-JDAPQW5C.js +32 -0
  15. package/dist/chunk-JDAPQW5C.js.map +1 -0
  16. package/dist/{chunk-WRJZHQNY.js → chunk-UAHCRXAG.js} +3 -3
  17. package/dist/{chunk-WRJZHQNY.js.map → chunk-UAHCRXAG.js.map} +1 -1
  18. package/dist/{chunk-OT2HCBR2.js → chunk-V7M2NHUO.js} +2 -2
  19. package/dist/{chunk-OT2HCBR2.js.map → chunk-V7M2NHUO.js.map} +1 -1
  20. package/dist/{chunk-UVCEQOQR.js → chunk-WUZODCC2.js} +3 -3
  21. package/dist/{chunk-UVCEQOQR.js.map → chunk-WUZODCC2.js.map} +1 -1
  22. package/dist/{chunk-7XT6ISPQ.js → chunk-WXJKTVRI.js} +3 -3
  23. package/dist/{chunk-7XT6ISPQ.js.map → chunk-WXJKTVRI.js.map} +1 -1
  24. package/dist/icons/index.d.ts +4 -39
  25. package/dist/icons/index.js +2 -2
  26. package/dist/icons/lucide.d.ts +1 -0
  27. package/dist/icons/lucide.js +3 -0
  28. package/dist/icons/lucide.js.map +1 -0
  29. package/dist/index.d.ts +4 -1
  30. package/dist/index.js +11 -9
  31. package/dist/logos/fluencypass.d.ts +21 -0
  32. package/dist/logos/fluencypass.js +5 -0
  33. package/dist/logos/fluencypass.js.map +1 -0
  34. package/dist/logos/product.d.ts +48 -0
  35. package/dist/logos/product.js +7 -0
  36. package/dist/logos/product.js.map +1 -0
  37. package/dist/sizes-BZ5ZUk8g.d.ts +38 -0
  38. package/dist/styles/tokens.css +109 -0
  39. package/dist/ui/alert.js +3 -3
  40. package/dist/ui/audio-player.js +3 -3
  41. package/dist/ui/badge.d.ts +2 -2
  42. package/dist/ui/button.d.ts +2 -2
  43. package/dist/ui/chat-panel.js +2 -2
  44. package/dist/ui/checkbox.d.ts +1 -1
  45. package/dist/ui/empty.d.ts +1 -1
  46. package/dist/ui/file-card.d.ts +1 -1
  47. package/dist/ui/like-dislike.d.ts +1 -1
  48. package/dist/ui/like-dislike.js +3 -3
  49. package/dist/ui/live-waiting.js +2 -2
  50. package/dist/ui/progress-dot.d.ts +2 -2
  51. package/dist/ui/progress-stage.d.ts +1 -1
  52. package/dist/ui/progress.d.ts +1 -1
  53. package/dist/ui/radio-group.d.ts +1 -1
  54. package/dist/ui/slider.d.ts +1 -1
  55. package/dist/ui/sonner.js +3 -3
  56. package/dist/ui/switch.d.ts +1 -1
  57. package/dist/ui/toggle.d.ts +1 -1
  58. package/dist/ui/video-player.js +3 -3
  59. package/package.json +13 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/icons/BaseIcon.tsx","../src/components/icons/_generated/Achievement.tsx","../src/components/icons/_generated/Answer.tsx","../src/components/icons/_generated/Badge.tsx","../src/components/icons/_generated/Certificate.tsx","../src/components/icons/_generated/Checkpoint.tsx","../src/components/icons/_generated/Completion.tsx","../src/components/icons/_generated/Course.tsx","../src/components/icons/_generated/Diploma.tsx","../src/components/icons/_generated/Exercise.tsx","../src/components/icons/_generated/Flashcard.tsx","../src/components/icons/_generated/Goal.tsx","../src/components/icons/_generated/Highlight.tsx","../src/components/icons/_generated/Lesson.tsx","../src/components/icons/_generated/Milestone.tsx","../src/components/icons/_generated/Module.tsx","../src/components/icons/_generated/Progress.tsx","../src/components/icons/_generated/Question.tsx","../src/components/icons/_generated/Quiz.tsx","../src/components/icons/_generated/Recap.tsx","../src/components/icons/_generated/Streak.tsx","../src/components/icons/_generated/Task.tsx","../src/components/icons/_generated/Unit.tsx","../src/components/icons/_generated/Chat.tsx","../src/components/icons/_generated/Conversation.tsx","../src/components/icons/_generated/Dialogue.tsx","../src/components/icons/_generated/Dictionary.tsx","../src/components/icons/_generated/Feedback.tsx","../src/components/icons/_generated/Fluency.tsx","../src/components/icons/_generated/Grammar.tsx","../src/components/icons/_generated/Language.tsx","../src/components/icons/_generated/Listening.tsx","../src/components/icons/_generated/MemoryCard.tsx","../src/components/icons/_generated/Reading.tsx","../src/components/icons/_generated/Repetition.tsx","../src/components/icons/_generated/Sentence.tsx","../src/components/icons/_generated/Translate.tsx","../src/components/icons/_generated/Vocabulary.tsx","../src/components/icons/_generated/GroupClass.tsx","../src/components/icons/_generated/Live.tsx","../src/components/icons/_generated/Presentation.tsx","../src/components/icons/_generated/PrivateClass.tsx","../src/components/icons/_generated/RecordedClass.tsx","../src/components/icons/_generated/Whiteboard.tsx","../src/components/icons/_generated/Deadline.tsx","../src/components/icons/_generated/Recurring.tsx","../src/components/icons/_generated/Schedule.tsx","../src/components/icons/_generated/DotLive.tsx","../src/components/icons/_generated/Required.tsx","../src/components/icons/_generated/Ray.tsx"],"names":["BaseIcon","jsx","jsxs"],"mappings":"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","file":"chunk-6LML23MS.js","sourcesContent":["import { forwardRef } from 'react'\nimport type { Ref } from 'react'\nimport { ICON_SIZES } from './sizes'\nimport type { IconProps } from './types'\n\n/**\n * BaseIcon — wrapper SVG base de todos os ícones do Cycle Design.\n *\n * Responsabilidades:\n * - Aplicar width, height e strokeWidth corretos por size\n * - Garantir fill=\"none\" e stroke=\"currentColor\"\n * - Gerenciar acessibilidade (aria-hidden vs aria-label + role)\n * - Aceitar ref para casos avançados\n *\n * NÃO use BaseIcon diretamente — use os ícones nomeados:\n * import { HomeIcon } from 'cycle-design/icons'\n */\nexport const BaseIcon = forwardRef<SVGSVGElement, IconProps>(function BaseIcon(\n props,\n ref: Ref<SVGSVGElement>\n) {\n const { size = 'sm', decorative, children, className, ...rest } = props\n\n const { size: px, stroke } = ICON_SIZES[size]\n\n // Os valores de stroke do Figma são pixels visuais no tamanho renderizado.\n // Como o viewBox é sempre 24×24, o SVG escala o strokeWidth junto com o ícone.\n // Precisamos normalizar para coordenadas do viewBox:\n // strokeWidth no viewBox = visualStroke × (24 / displaySize)\n // Assim o stroke visual final sempre corresponde ao valor do Design System.\n const VIEWBOX_SIZE = 24\n const normalizedStroke = stroke * (VIEWBOX_SIZE / px)\n\n const svgProps = {\n ref,\n width: px,\n height: px,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: normalizedStroke,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n className,\n ...rest,\n }\n\n if (decorative) {\n return (\n <svg aria-hidden=\"true\" focusable=\"false\" {...svgProps}>\n {children}\n </svg>\n )\n }\n\n // Semântico: aria-label vem de rest (garantido pelo tipo IconProps)\n return (\n <svg role=\"img\" {...svgProps}>\n {children}\n </svg>\n )\n})\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Achievement size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Achievement size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Achievement(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M8 21h8m-4-3v3\"/><path d=\"M5 3h14v8c0 3.9-3.1 7-7 7s-7-3.1-7-7z\"/><path d=\"M5 7H2v4c0 1.7 1.3 3 3 3M19 7h3v4c0 1.7-1.3 3-3 3\"/><path fill=\"currentColor\" d=\"m12 7 .8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Answer size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Answer size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Answer(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path d=\"m8 10 3 3 5-6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Badge size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Badge size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Badge(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m12 2 3.5 3H20v4.5l3 2.5-3 2.5V19h-4.5L12 22l-3.5-3H4v-4.5L1 12l3-2.5V5h4.5z\"/><path d=\"m9 12 2 2 4-4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Certificate size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Certificate size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Certificate(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"M7 8h10M7 12h6\"/><path d=\"m9 21 3-2 3 2v-4H9z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Checkpoint size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Checkpoint size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Checkpoint(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 3v18\"/><path d=\"M5 4h13l-4 5 4 5H5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Completion size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Completion size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Completion(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M22 12c0 5.5-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2M16 2.3c2.3.8 4.2 2.5 5.3 4.7\"/><path d=\"m8 12 3 3 5-6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Course size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Course size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Course(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 6h16\"/><path d=\"M19 8H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2Z\"/><path d=\"M8 12h8m-8 3.5h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Diploma size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Diploma size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Diploma(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v16c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2z\"/><path d=\"M9 7h6m-6 4h6m-6 4h3\"/><path d=\"M4 18h16\"/><path fill=\"currentColor\" d=\"M12 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Exercise size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Exercise size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Exercise(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M6 8H4c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h2M18 8h2c.6 0 1 .4 1 1v6c0 .6-.4 1-1 1h-2\"/><path d=\"M9 7.5a1.5 1.5 0 1 0-3 0v9a1.5 1.5 0 0 0 3 0zM18 7.5a1.5 1.5 0 0 0-3 0v9a1.5 1.5 0 0 0 3 0z\"/><path d=\"M9 12h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Flashcard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Flashcard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Flashcard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 5H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\"/><path fill=\"currentColor\" d=\"m12.3 9 .8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Goal size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Goal size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Goal(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z\"/><path fill=\"currentColor\" d=\"M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Highlight size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Highlight size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Highlight(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m15 3 6 6-11 11H4v-6z\"/><path d=\"M4 20h17M13 5l6 6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Lesson size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Lesson size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Lesson(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 3H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"m10 7.5 5 2.5-5 2.5z\"/><path d=\"M8 21h8m-4-4v4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Milestone size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Milestone size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Milestone(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m12 3 9 9-9 9-9-9z\"/><path d=\"M12 8v8m-4-4h8\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Module size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Module size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Module(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4.5 3.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM14.5 3.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM4.5 13.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM14.5 13.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Progress size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Progress size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Progress(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 21h18\"/><path d=\"m5 16 4-5 4 3 3-6 5-3\"/><path d=\"M3 3v18\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Question size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Question size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Question(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path d=\"M9.5 9c0-1.4 1.1-2.5 2.5-2.5s2.5 1.1 2.5 2.5c0 1.1-.7 2-1.7 2.4-.5.2-.8.7-.8 1.2v.4\"/><path fill=\"currentColor\" d=\"M12 16.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Quiz size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Quiz size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Quiz(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M18 3H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Z\"/><path d=\"M9 9c0-1.7 1.3-3 3-3s3 1.3 3 3c0 1.4-.9 2.6-2.1 3-.5.2-.9.6-.9 1.1v.9\"/><path fill=\"currentColor\" d=\"M12 18a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Recap size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Recap size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Recap(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M2 12C2 6.5 6.5 2 12 2c3.5 0 6.6 1.8 8.4 4.5M22 12c0 5.5-4.5 10-10 10-3.5 0-6.6-1.8-8.4-4.5\"/><path d=\"M20 2v5h-5M4 22v-5h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Streak size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Streak size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Streak(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M8.5 13.5A2.5 2.5 0 0 0 11 11c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a7.001 7.001 0 0 1-11.95 4.95A7 7 0 0 1 5 14c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Task size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Task size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Task(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8z\"/><path d=\"M14 2v6h6\"/><path d=\"m8 13 3 3 5-5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Unit size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Unit size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Unit(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M18 3H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Z\"/><path d=\"M9 8h6m-6 4h6m-6 4h3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Chat size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Chat size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Chat(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 15c0 .6-.4 1-1 1H7l-4 4V5c0-.6.4-1 1-1h15c.6 0 1 .4 1 1z\"/><path d=\"M8 9h8m-8 3h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Conversation size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Conversation size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Conversation(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 3h12c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2H9l-4 3v-3c-1.1 0-2-.9-2-2V5c0-1.1.9-2 1-2Z\"/><path d=\"M18 8h2c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2h-1v3l-4-3h-3c-1.1 0-2-.9-2-2v-2\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Dialogue size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Dialogue size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Dialogue(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 5h10c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2H7l-4 3v-3c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2Z\"/><path d=\"M15 8h5c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2h-3v3l-4-3h-3c-1.1 0-2-.9-2-2v-1\"/><path fill=\"currentColor\" d=\"M5 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2M8 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2M11 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Dictionary size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Dictionary size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Dictionary(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4.5C4 3.1 5.1 2 6.5 2H19v20H6.5C5.1 22 4 20.9 4 19.5z\"/><path d=\"M4 19.5C4 18.1 5.1 17 6.5 17H19M8 7h7m-7 4h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Feedback size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Feedback size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Feedback(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path fill=\"currentColor\" d=\"m12 5 1.2 3.4h3.5l-2.8 2 1 3.4-2.9-2-2.9 2 1-3.4-2.8-2h3.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Fluency size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Fluency size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Fluency(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M2 16c2 0 2-4 4-4s2 4 4 4 2-4 4-4 2 4 4 4 2-4 4-4M16 6l3 3 3-3\"/><path d=\"M19 9V4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Grammar size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Grammar size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Grammar(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 6h16M4 10h12M4 14h8\"/><path d=\"m15 16 2 2 4-4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Language size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Language size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Language(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M3 12h18M12 3c-2 3-3.5 6-3.5 9s1.5 6 3.5 9M12 3c2 3 3.5 6 3.5 9S14 18 12 21\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Listening size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Listening size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Listening(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 10c0-3.9 3.1-7 7-7s7 3.1 7 7\"/><path d=\"M7 12a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0zM21 12a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0z\"/><path d=\"M19 16v2c0 1.1-.9 2-2 2h-3\"/><path d=\"M15 19h-2a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <MemoryCard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <MemoryCard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function MemoryCard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M16 9V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4\"/><path d=\"M6 8.5h6m-6 3h2\"/><path d=\"M20 9H10a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2Z\"/><path fill=\"currentColor\" d=\"m15.3 10.6.8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Reading size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Reading size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Reading(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 5.25c3.09 0 5.459.95 7.055 1.896.798.473 1.403.945 1.803 1.294l.066.06-.066.06c-.4.35-1.005.821-1.803 1.294C17.459 10.8 15.09 11.75 12 11.75s-5.459-.95-7.055-1.896A12.3 12.3 0 0 1 3.142 8.56l-.067-.06.067-.06c.4-.35 1.005-.821 1.803-1.294C6.541 6.2 8.91 5.25 12 5.25Z\"/><path d=\"M12 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\"/><path d=\"M5 15.5h14m-14 3h9\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Repetition size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Repetition size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Repetition(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m17 2 4 4-4 4\"/><path d=\"M3 11V9c0-1.7 1.3-3 3-3h15\"/><path d=\"m7 22-4-4 4-4\"/><path d=\"M21 13v2c0 1.7-1.3 3-3 3H3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Sentence size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Sentence size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Sentence(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 7h16M4 12h12M4 17h8\"/><path d=\"M19 14v6m0 0-2-2m2 2 2-2\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Translate size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Translate size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Translate(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 6h10M8 3v3M5 9c0 2.8 2.7 5 6 5\"/><path d=\"M11 6c-2 3-4 6-6 8\"/><path d=\"m14 13 3 8m0 0 3-8m-3 8h-2.5 5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Vocabulary size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Vocabulary size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Vocabulary(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m4 16 3-8 3 8m-4.5-3h3M14 8h6l-6 8h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <GroupClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <GroupClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function GroupClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"/><path d=\"M6 21c0-3 2.7-5 6-5s6 2 6 5\"/><path d=\"M5 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"/><path d=\"M2 20c0-2 1.3-3.5 3-3.5 1 0 1.9.5 2.5 1.3\"/><path d=\"M19 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"/><path d=\"M22 20c0-2-1.3-3.5-3-3.5-1 0-1.9.5-2.5 1.3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Live size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Live size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Live(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 7c-2 1.8-3 3.3-3 5s1 3.2 3 5M19 7c2 1.8 3 3.3 3 5s-1 3.2-3 5M8.5 10c-1 .7-1.5 1.3-1.5 2s.5 1.3 1.5 2M15.5 10c1 .7 1.5 1.3 1.5 2s-.5 1.3-1.5 2\"/><path fill=\"currentColor\" d=\"M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/><path d=\"M12 13.5V20\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Presentation size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Presentation size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Presentation(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"M12 16v6m-4 0h8M7 9h10M7 12h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <PrivateClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <PrivateClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function PrivateClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M9 10.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z\"/><path d=\"M2 20c0-3.3 3.1-6 7-6\"/><path d=\"M20.5 14h-6a1.5 1.5 0 0 0-1.5 1.5v4a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-4a1.5 1.5 0 0 0-1.5-1.5Z\"/><path d=\"M15 14v-2c0-1.1.9-2 2-2h.5c1.1 0 2 .9 2 2v2\"/><path fill=\"currentColor\" d=\"M17.5 18.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <RecordedClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <RecordedClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function RecordedClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 4H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path fill=\"currentColor\" stroke=\"none\" d=\"m11 10 3 1.5-3 1.5z\"/><path fill=\"currentColor\" d=\"M18 8.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/><path d=\"M8 21h8m-4-3v3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Whiteboard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Whiteboard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Whiteboard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"m8 11 3-3 3 3 3-3\"/><path d=\"M8 21h8m-4-4v4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Deadline size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Deadline size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Deadline(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path d=\"M16 2v4M8 2v4M3 9h18M12 13v3\"/><path fill=\"currentColor\" d=\"M12 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Recurring size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Recurring size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Recurring(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m17 2 4 4-4 4\"/><path d=\"M3 10V8c0-1.1.9-2 2-2h16\"/><path d=\"m7 22-4-4 4-4\"/><path d=\"M21 14v2c0 1.1-.9 2-2 2H3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Schedule size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Schedule size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Schedule(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path d=\"M16 2v4M8 2v4M3 9h18M7 13h4m-4 3.5h10M13 13h4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <DotLive size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <DotLive size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function DotLive(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path fill=\"currentColor\" stroke=\"none\" d=\"M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Required size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Required size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Required(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M12 7v5\"/><path fill=\"currentColor\" d=\"M12 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Ray size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Ray size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Ray(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M13 2 9 13h3.5L10 22 20 9h-5l2.5-7z\"/>\n </BaseIcon>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/icons/BaseIcon.tsx","../src/components/icons/_generated/Achievement.tsx","../src/components/icons/_generated/Answer.tsx","../src/components/icons/_generated/Badge.tsx","../src/components/icons/_generated/Certificate.tsx","../src/components/icons/_generated/Checkpoint.tsx","../src/components/icons/_generated/Completion.tsx","../src/components/icons/_generated/Course.tsx","../src/components/icons/_generated/Diploma.tsx","../src/components/icons/_generated/Exercise.tsx","../src/components/icons/_generated/Flashcard.tsx","../src/components/icons/_generated/Goal.tsx","../src/components/icons/_generated/Highlight.tsx","../src/components/icons/_generated/Lesson.tsx","../src/components/icons/_generated/Milestone.tsx","../src/components/icons/_generated/Module.tsx","../src/components/icons/_generated/Progress.tsx","../src/components/icons/_generated/Question.tsx","../src/components/icons/_generated/Quiz.tsx","../src/components/icons/_generated/Recap.tsx","../src/components/icons/_generated/Streak.tsx","../src/components/icons/_generated/Task.tsx","../src/components/icons/_generated/Unit.tsx","../src/components/icons/_generated/Chat.tsx","../src/components/icons/_generated/Conversation.tsx","../src/components/icons/_generated/Dialogue.tsx","../src/components/icons/_generated/Dictionary.tsx","../src/components/icons/_generated/Feedback.tsx","../src/components/icons/_generated/Fluency.tsx","../src/components/icons/_generated/Grammar.tsx","../src/components/icons/_generated/Language.tsx","../src/components/icons/_generated/Listening.tsx","../src/components/icons/_generated/MemoryCard.tsx","../src/components/icons/_generated/Reading.tsx","../src/components/icons/_generated/Repetition.tsx","../src/components/icons/_generated/Sentence.tsx","../src/components/icons/_generated/Translate.tsx","../src/components/icons/_generated/Vocabulary.tsx","../src/components/icons/_generated/GroupClass.tsx","../src/components/icons/_generated/Live.tsx","../src/components/icons/_generated/Presentation.tsx","../src/components/icons/_generated/PrivateClass.tsx","../src/components/icons/_generated/RecordedClass.tsx","../src/components/icons/_generated/Whiteboard.tsx","../src/components/icons/_generated/Deadline.tsx","../src/components/icons/_generated/Recurring.tsx","../src/components/icons/_generated/Schedule.tsx","../src/components/icons/_generated/DotLive.tsx","../src/components/icons/_generated/Required.tsx","../src/components/icons/_generated/Ray.tsx"],"names":["BaseIcon","jsx","jsxs"],"mappings":";;;;;AAiBO,IAAM,QAAA,GAAW,UAAA,CAAqC,SAASA,SAAAA,CACpE,OACA,GAAA,EACA;AACA,EAAA,MAAkE,EAAA,GAAA,KAAA,EAA1D,EAAA,IAAA,GAAO,IAAA,EAAM,UAAA,EAAY,QAAA,EAAU,SAAA,EArB7C,GAqBoE,EAAA,EAAT,IAAA,GAAA,SAAA,CAAS,EAAA,EAAT,CAAjD,MAAA,EAAa,cAAY,UAAA,EAAU,WAAA,CAAA,CAAA;AAE3C,EAAA,MAAM,EAAE,IAAA,EAAM,EAAA,EAAI,MAAA,EAAO,GAAI,WAAW,IAAI,CAAA;AAO5C,EAAA,MAAM,YAAA,GAAe,EAAA;AACrB,EAAA,MAAM,gBAAA,GAAmB,UAAU,YAAA,GAAe,EAAA,CAAA;AAElD,EAAA,MAAM,QAAA,GAAW,cAAA,CAAA;AAAA,IACf,GAAA;AAAA,IACA,KAAA,EAAO,EAAA;AAAA,IACP,MAAA,EAAQ,EAAA;AAAA,IACR,OAAA,EAAS,WAAA;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,cAAA;AAAA,IACR,WAAA,EAAa,gBAAA;AAAA,IACb,aAAA,EAAe,OAAA;AAAA,IACf,cAAA,EAAgB,OAAA;AAAA,IAChB;AAAA,GAAA,EACG,IAAA,CAAA;AAGL,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,uBACE,GAAA,CAAC,sCAAI,aAAA,EAAY,MAAA,EAAO,WAAU,OAAA,EAAA,EAAY,QAAA,CAAA,EAA7C,EACE,QAAA,EAAA,CACH,CAAA;AAAA,EAEJ;AAGA,EAAA,2BACG,KAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAI,IAAA,EAAK,KAAA,EAAA,EAAU,QAAA,CAAA,EAAnB,EACE,QAAA,EAAA,CACH,CAAA;AAEJ,CAAC,CAAA;AC/CM,SAAS,YAAY,KAAA,EAAqC;AAC/D,EAAA,uBACE,IAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uCAAA,EAAuC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mDAAA,EAAmD,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,4DAAA,EAA6D,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAChP,CAAA;AAEJ;ACNO,SAAS,OAAO,KAAA,EAAqC;AAC1D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uFAAA,EAAuF,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe;AAAA,GAAA,EAAA,CAC1H,CAAA;AAEJ;ACNO,SAAS,MAAM,KAAA,EAAqC;AACzD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,8EAAA,EAA8E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe;AAAA,GAAA,EAAA,CACjH,CAAA;AAEJ;ACNO,SAAS,YAAY,KAAA,EAAqC;AAC/D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qBAAA,EAAqB;AAAA,GAAA,EAAA,CAC7I,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAS,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAoB;AAAA,GAAA,EAAA,CACjD,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+EAAA,EAA+E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe;AAAA,GAAA,EAAA,CAClH,CAAA;AAEJ;ACNO,SAAS,OAAO,KAAA,EAAqC;AAC1D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAS,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,kBAAA,EAAkB;AAAA,GAAA,EAAA,CACnI,CAAA;AAEJ;ACNO,SAAS,QAAQ,KAAA,EAAqC;AAC3D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2EAAA,EAA2E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAsB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,UAAA,EAAU,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,oCAAA,EAAqC,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CACzN,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gFAAA,EAAgF,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6FAAA,EAA6F,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAS;AAAA,GAAA,EAAA,CACpN,CAAA;AAEJ;ACNO,SAAS,UAAU,KAAA,EAAqC;AAC7D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yEAAA,EAAyE,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,8DAAA,EAA+D,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC7L,CAAA;AAEJ;ACNO,SAAS,KAAK,KAAA,EAAqC;AACxD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uCAAA,EAAuC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uCAAA,EAAuC,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,8CAAA,EAA+C,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC5L,CAAA;AAEJ;ACNO,SAAS,UAAU,KAAA,EAAqC;AAC7D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uBAAA,EAAuB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mBAAA,EAAmB;AAAA,GAAA,EAAA,CAC9D,CAAA;AAEJ;ACNO,SAAS,OAAO,KAAA,EAAqC;AAC1D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAsB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB;AAAA,GAAA,EAAA,CAC9I,CAAA;AAEJ;ACNO,SAAS,UAAU,KAAA,EAAqC;AAC7D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAoB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB;AAAA,GAAA,EAAA,CACxD,CAAA;AAEJ;ACNO,SAAS,OAAO,KAAA,EAAqC;AAC1D,EAAA,uBACEA,GAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,kaAAA,EAAka,CAAA,EAAA,CAC5a,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,UAAA,EAAU,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uBAAA,EAAuB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAS;AAAA,GAAA,EAAA,CACxE,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uFAAA,EAAuF,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qFAAA,EAAqF,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,gDAAA,EAAiD,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC5R,CAAA;AAEJ;ACNO,SAAS,KAAK,KAAA,EAAqC;AACxD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uEAAA,EAAuE,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,oCAAA,EAAqC,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CACrP,CAAA;AAEJ;ACNO,SAAS,MAAM,KAAA,EAAqC;AACzD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6FAAA,EAA6F,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAsB;AAAA,GAAA,EAAA,CACvI,CAAA;AAEJ;ACNO,SAAS,OAAO,KAAA,EAAqC;AAC1D,EAAA,uBACEA,GAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iMAAA,EAAiM,CAAA,EAAA,CAC3M,CAAA;AAEJ;ACNO,SAAS,KAAK,KAAA,EAAqC;AACxD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+DAAA,EAA+D,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,WAAA,EAAW,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe;AAAA,GAAA,EAAA,CACvH,CAAA;AAEJ;ACNO,SAAS,KAAK,KAAA,EAAqC;AACxD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sBAAA,EAAsB;AAAA,GAAA,EAAA,CACpH,CAAA;AAEJ;ACNO,SAAS,KAAK,KAAA,EAAqC;AACxD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,8DAAA,EAA8D,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe;AAAA,GAAA,EAAA,CACjG,CAAA;AAEJ;ACNO,SAAS,aAAa,KAAA,EAAqC;AAChE,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oFAAA,EAAoF,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yEAAA,EAAyE;AAAA,GAAA,EAAA,CACjL,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oFAAA,EAAoF,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yEAAA,EAAyE,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,sGAAA,EAAuG,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CACnU,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0DAAA,EAA0D,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,8CAAA,EAA8C;AAAA,GAAA,EAAA,CAC5H,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uFAAA,EAAuF,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,6DAAA,EAA8D,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC1M,CAAA;AAEJ;ACNO,SAAS,QAAQ,KAAA,EAAqC;AAC3D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gEAAA,EAAgE,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAS;AAAA,GAAA,EAAA,CAC7F,CAAA;AAEJ;ACNO,SAAS,QAAQ,KAAA,EAAqC;AAC3D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,wBAAA,EAAwB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB;AAAA,GAAA,EAAA,CAC5D,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uCAAA,EAAuC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6EAAA,EAA6E;AAAA,GAAA,EAAA,CACxI,CAAA;AAEJ;ACNO,SAAS,UAAU,KAAA,EAAqC;AAC7D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iCAAA,EAAiC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2EAAA,EAA2E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA4B,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2EAAA,EAA2E;AAAA,GAAA,EAAA,CAC3P,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yDAAA,EAAyD,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAiB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2EAAA,EAA2E,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,gEAAA,EAAiE,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC/R,CAAA;AAEJ;ACNO,SAAS,QAAQ,KAAA,EAAqC;AAC3D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iRAAA,EAAiR,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6CAAA,EAA6C,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAoB;AAAA,GAAA,EAAA,CAChX,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA4B,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4BAAA,EAA4B;AAAA,GAAA,EAAA,CAC9H,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,wBAAA,EAAwB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0BAAA,EAA0B;AAAA,GAAA,EAAA,CACtE,CAAA;AAEJ;ACNO,SAAS,UAAU,KAAA,EAAqC;AAC7D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mCAAA,EAAmC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAoB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gCAAA,EAAgC;AAAA,GAAA,EAAA,CACrH,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEA,GAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sCAAA,EAAsC,CAAA,EAAA,CAChD,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oCAAA,EAAoC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6BAAA,EAA6B,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oCAAA,EAAoC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2CAAA,EAA2C,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qCAAA,EAAqC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,4CAAA,EAA4C;AAAA,GAAA,EAAA,CAC7R,CAAA;AAEJ;ACNO,SAAS,KAAK,KAAA,EAAqC;AACxD,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,kJAAA,EAAkJ,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,8CAAA,EAA+C,QAAO,MAAA,EAAM,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,aAAA,EAAa;AAAA,GAAA,EAAA,CAC7Q,CAAA;AAEJ;ACNO,SAAS,aAAa,KAAA,EAAqC;AAChE,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yEAAA,EAAyE,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+BAAA,EAA+B;AAAA,GAAA,EAAA,CAC5H,CAAA;AAEJ;ACNO,SAAS,aAAa,KAAA,EAAqC;AAChE,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,8CAAA,EAA8C,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uBAAA,EAAuB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6GAAA,EAA6G,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,6CAAA,EAA6C,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,wCAAA,EAAyC,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC3V,CAAA;AAEJ;ACNO,SAAS,cAAc,KAAA,EAAqC;AACjE,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,MAAA,EAAO,MAAA,EAAO,GAAE,qBAAA,EAAqB,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,6CAAA,EAA8C,QAAO,MAAA,EAAM,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB;AAAA,GAAA,EAAA,CACxQ,CAAA;AAEJ;ACNO,SAAS,WAAW,KAAA,EAAqC;AAC9D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mBAAA,EAAmB,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gBAAA,EAAgB;AAAA,GAAA,EAAA,CAC3I,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,8BAAA,EAA8B,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,oCAAA,EAAqC,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CAC5M,CAAA;AAEJ;ACNO,SAAS,UAAU,KAAA,EAAqC;AAC7D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0BAAA,EAA0B,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAe,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2BAAA,EAA2B;AAAA,GAAA,EAAA,CAC3H,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,0EAAA,EAA0E,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+CAAA,EAA+C;AAAA,GAAA,EAAA,CAC7I,CAAA;AAEJ;ACNO,SAAS,QAAQ,KAAA,EAAqC;AAC3D,EAAA,uBACEA,GAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,cAAA,EAAe,MAAA,EAAO,MAAA,EAAO,CAAA,EAAE,yCAAuC,CAAA,EAAA,CACnF,CAAA;AAEJ;ACNO,SAAS,SAAS,KAAA,EAAqC;AAC5D,EAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uCAAA,EAAuC,CAAA;AAAA,oBAAEA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAS,CAAA;AAAA,oBAAEA,IAAC,MAAA,EAAA,EAAK,IAAA,EAAK,gBAAe,CAAA,EAAE,oCAAA,EAAqC,QAAO,MAAA,EAAM;AAAA,GAAA,EAAA,CACpJ,CAAA;AAEJ;ACNO,SAAS,IAAI,KAAA,EAAqC;AACvD,EAAA,uBACEA,GAAAA,CAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAa,KAAA,CAAA,EAAb,EACC,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qCAAA,EAAqC,CAAA,EAAA,CAC/C,CAAA;AAEJ","file":"chunk-D4QCYBCD.js","sourcesContent":["import { forwardRef } from 'react'\nimport type { Ref } from 'react'\nimport { ICON_SIZES } from './sizes'\nimport type { IconProps } from './types'\n\n/**\n * BaseIcon — wrapper SVG base de todos os ícones do Cycle Design.\n *\n * Responsabilidades:\n * - Aplicar width, height e strokeWidth corretos por size\n * - Garantir fill=\"none\" e stroke=\"currentColor\"\n * - Gerenciar acessibilidade (aria-hidden vs aria-label + role)\n * - Aceitar ref para casos avançados\n *\n * NÃO use BaseIcon diretamente — use os ícones nomeados:\n * import { HomeIcon } from 'cycle-design/icons'\n */\nexport const BaseIcon = forwardRef<SVGSVGElement, IconProps>(function BaseIcon(\n props,\n ref: Ref<SVGSVGElement>\n) {\n const { size = 'sm', decorative, children, className, ...rest } = props\n\n const { size: px, stroke } = ICON_SIZES[size]\n\n // Os valores de stroke do Figma são pixels visuais no tamanho renderizado.\n // Como o viewBox é sempre 24×24, o SVG escala o strokeWidth junto com o ícone.\n // Precisamos normalizar para coordenadas do viewBox:\n // strokeWidth no viewBox = visualStroke × (24 / displaySize)\n // Assim o stroke visual final sempre corresponde ao valor do Design System.\n const VIEWBOX_SIZE = 24\n const normalizedStroke = stroke * (VIEWBOX_SIZE / px)\n\n const svgProps = {\n ref,\n width: px,\n height: px,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: normalizedStroke,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n className,\n ...rest,\n }\n\n if (decorative) {\n return (\n <svg aria-hidden=\"true\" focusable=\"false\" {...svgProps}>\n {children}\n </svg>\n )\n }\n\n // Semântico: aria-label vem de rest (garantido pelo tipo IconProps)\n return (\n <svg role=\"img\" {...svgProps}>\n {children}\n </svg>\n )\n})\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Achievement size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Achievement size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Achievement(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M8 21h8m-4-3v3\"/><path d=\"M5 3h14v8c0 3.9-3.1 7-7 7s-7-3.1-7-7z\"/><path d=\"M5 7H2v4c0 1.7 1.3 3 3 3M19 7h3v4c0 1.7-1.3 3-3 3\"/><path fill=\"currentColor\" d=\"m12 7 .8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Answer size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Answer size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Answer(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path d=\"m8 10 3 3 5-6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Badge size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Badge size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Badge(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m12 2 3.5 3H20v4.5l3 2.5-3 2.5V19h-4.5L12 22l-3.5-3H4v-4.5L1 12l3-2.5V5h4.5z\"/><path d=\"m9 12 2 2 4-4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Certificate size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Certificate size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Certificate(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"M7 8h10M7 12h6\"/><path d=\"m9 21 3-2 3 2v-4H9z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Checkpoint size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Checkpoint size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Checkpoint(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 3v18\"/><path d=\"M5 4h13l-4 5 4 5H5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Completion size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Completion size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Completion(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M22 12c0 5.5-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2M16 2.3c2.3.8 4.2 2.5 5.3 4.7\"/><path d=\"m8 12 3 3 5-6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Course size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Course size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Course(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 6h16\"/><path d=\"M19 8H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2Z\"/><path d=\"M8 12h8m-8 3.5h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Diploma size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Diploma size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Diploma(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v16c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2z\"/><path d=\"M9 7h6m-6 4h6m-6 4h3\"/><path d=\"M4 18h16\"/><path fill=\"currentColor\" d=\"M12 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Exercise size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Exercise size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Exercise(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M6 8H4c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h2M18 8h2c.6 0 1 .4 1 1v6c0 .6-.4 1-1 1h-2\"/><path d=\"M9 7.5a1.5 1.5 0 1 0-3 0v9a1.5 1.5 0 0 0 3 0zM18 7.5a1.5 1.5 0 0 0-3 0v9a1.5 1.5 0 0 0 3 0z\"/><path d=\"M9 12h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Flashcard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Flashcard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Flashcard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 5H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z\"/><path fill=\"currentColor\" d=\"m12.3 9 .8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Goal size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Goal size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Goal(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z\"/><path fill=\"currentColor\" d=\"M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Highlight size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Highlight size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Highlight(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m15 3 6 6-11 11H4v-6z\"/><path d=\"M4 20h17M13 5l6 6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Lesson size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Lesson size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Lesson(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 3H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"m10 7.5 5 2.5-5 2.5z\"/><path d=\"M8 21h8m-4-4v4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Milestone size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Milestone size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Milestone(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m12 3 9 9-9 9-9-9z\"/><path d=\"M12 8v8m-4-4h8\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Module size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Module size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Module(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4.5 3.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM14.5 3.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM4.5 13.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75ZM14.5 13.751h5a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-.75.75h-5a.75.75 0 0 1-.75-.75v-5a.75.75 0 0 1 .75-.75Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Progress size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Progress size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Progress(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 21h18\"/><path d=\"m5 16 4-5 4 3 3-6 5-3\"/><path d=\"M3 3v18\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Question size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Question size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Question(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path d=\"M9.5 9c0-1.4 1.1-2.5 2.5-2.5s2.5 1.1 2.5 2.5c0 1.1-.7 2-1.7 2.4-.5.2-.8.7-.8 1.2v.4\"/><path fill=\"currentColor\" d=\"M12 16.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Quiz size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Quiz size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Quiz(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M18 3H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Z\"/><path d=\"M9 9c0-1.7 1.3-3 3-3s3 1.3 3 3c0 1.4-.9 2.6-2.1 3-.5.2-.9.6-.9 1.1v.9\"/><path fill=\"currentColor\" d=\"M12 18a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Recap size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Recap size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Recap(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M2 12C2 6.5 6.5 2 12 2c3.5 0 6.6 1.8 8.4 4.5M22 12c0 5.5-4.5 10-10 10-3.5 0-6.6-1.8-8.4-4.5\"/><path d=\"M20 2v5h-5M4 22v-5h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Streak size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Streak size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Streak(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M8.5 13.5A2.5 2.5 0 0 0 11 11c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a7.001 7.001 0 0 1-11.95 4.95A7 7 0 0 1 5 14c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Task size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Task size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Task(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8z\"/><path d=\"M14 2v6h6\"/><path d=\"m8 13 3 3 5-5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Unit size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Unit size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Unit(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M18 3H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V6a3 3 0 0 0-3-3Z\"/><path d=\"M9 8h6m-6 4h6m-6 4h3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Chat size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Chat size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Chat(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 15c0 .6-.4 1-1 1H7l-4 4V5c0-.6.4-1 1-1h15c.6 0 1 .4 1 1z\"/><path d=\"M8 9h8m-8 3h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Conversation size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Conversation size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Conversation(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 3h12c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2H9l-4 3v-3c-1.1 0-2-.9-2-2V5c0-1.1.9-2 1-2Z\"/><path d=\"M18 8h2c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2h-1v3l-4-3h-3c-1.1 0-2-.9-2-2v-2\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Dialogue size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Dialogue size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Dialogue(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 5h10c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2H7l-4 3v-3c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2Z\"/><path d=\"M15 8h5c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2h-3v3l-4-3h-3c-1.1 0-2-.9-2-2v-1\"/><path fill=\"currentColor\" d=\"M5 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2M8 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2M11 10a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Dictionary size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Dictionary size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Dictionary(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4.5C4 3.1 5.1 2 6.5 2H19v20H6.5C5.1 22 4 20.9 4 19.5z\"/><path d=\"M4 19.5C4 18.1 5.1 17 6.5 17H19M8 7h7m-7 4h5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Feedback size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Feedback size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Feedback(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4l4 4 4-4h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2Z\"/><path fill=\"currentColor\" d=\"m12 5 1.2 3.4h3.5l-2.8 2 1 3.4-2.9-2-2.9 2 1-3.4-2.8-2h3.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Fluency size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Fluency size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Fluency(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M2 16c2 0 2-4 4-4s2 4 4 4 2-4 4-4 2 4 4 4 2-4 4-4M16 6l3 3 3-3\"/><path d=\"M19 9V4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Grammar size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Grammar size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Grammar(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 6h16M4 10h12M4 14h8\"/><path d=\"m15 16 2 2 4-4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Language size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Language size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Language(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M3 12h18M12 3c-2 3-3.5 6-3.5 9s1.5 6 3.5 9M12 3c2 3 3.5 6 3.5 9S14 18 12 21\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Listening size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Listening size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Listening(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 10c0-3.9 3.1-7 7-7s7 3.1 7 7\"/><path d=\"M7 12a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0zM21 12a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0z\"/><path d=\"M19 16v2c0 1.1-.9 2-2 2h-3\"/><path d=\"M15 19h-2a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <MemoryCard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <MemoryCard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function MemoryCard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M16 9V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4\"/><path d=\"M6 8.5h6m-6 3h2\"/><path d=\"M20 9H10a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2Z\"/><path fill=\"currentColor\" d=\"m15.3 10.6.8 2.4h2.5l-2 1.5.7 2.4-2-1.5-2 1.5.7-2.4-2-1.5h2.5z\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Reading size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Reading size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Reading(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 5.25c3.09 0 5.459.95 7.055 1.896.798.473 1.403.945 1.803 1.294l.066.06-.066.06c-.4.35-1.005.821-1.803 1.294C17.459 10.8 15.09 11.75 12 11.75s-5.459-.95-7.055-1.896A12.3 12.3 0 0 1 3.142 8.56l-.067-.06.067-.06c.4-.35 1.005-.821 1.803-1.294C6.541 6.2 8.91 5.25 12 5.25Z\"/><path d=\"M12 11a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z\"/><path d=\"M5 15.5h14m-14 3h9\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Repetition size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Repetition size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Repetition(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m17 2 4 4-4 4\"/><path d=\"M3 11V9c0-1.7 1.3-3 3-3h15\"/><path d=\"m7 22-4-4 4-4\"/><path d=\"M21 13v2c0 1.7-1.3 3-3 3H3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Sentence size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Sentence size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Sentence(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 7h16M4 12h12M4 17h8\"/><path d=\"M19 14v6m0 0-2-2m2 2 2-2\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Translate size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Translate size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Translate(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M3 6h10M8 3v3M5 9c0 2.8 2.7 5 6 5\"/><path d=\"M11 6c-2 3-4 6-6 8\"/><path d=\"m14 13 3 8m0 0 3-8m-3 8h-2.5 5\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Vocabulary size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Vocabulary size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Vocabulary(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m4 16 3-8 3 8m-4.5-3h3M14 8h6l-6 8h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <GroupClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <GroupClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function GroupClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"/><path d=\"M6 21c0-3 2.7-5 6-5s6 2 6 5\"/><path d=\"M5 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"/><path d=\"M2 20c0-2 1.3-3.5 3-3.5 1 0 1.9.5 2.5 1.3\"/><path d=\"M19 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"/><path d=\"M22 20c0-2-1.3-3.5-3-3.5-1 0-1.9.5-2.5 1.3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Live size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Live size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Live(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M5 7c-2 1.8-3 3.3-3 5s1 3.2 3 5M19 7c2 1.8 3 3.3 3 5s-1 3.2-3 5M8.5 10c-1 .7-1.5 1.3-1.5 2s.5 1.3 1.5 2M15.5 10c1 .7 1.5 1.3 1.5 2s-.5 1.3-1.5 2\"/><path fill=\"currentColor\" d=\"M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/><path d=\"M12 13.5V20\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Presentation size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Presentation size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Presentation(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"M12 16v6m-4 0h8M7 9h10M7 12h6\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <PrivateClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <PrivateClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function PrivateClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M9 10.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z\"/><path d=\"M2 20c0-3.3 3.1-6 7-6\"/><path d=\"M20.5 14h-6a1.5 1.5 0 0 0-1.5 1.5v4a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-4a1.5 1.5 0 0 0-1.5-1.5Z\"/><path d=\"M15 14v-2c0-1.1.9-2 2-2h.5c1.1 0 2 .9 2 2v2\"/><path fill=\"currentColor\" d=\"M17.5 18.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <RecordedClass size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <RecordedClass size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function RecordedClass(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 4H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path fill=\"currentColor\" stroke=\"none\" d=\"m11 10 3 1.5-3 1.5z\"/><path fill=\"currentColor\" d=\"M18 8.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\" stroke=\"none\"/><path d=\"M8 21h8m-4-3v3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Whiteboard size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Whiteboard size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Whiteboard(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\"/><path d=\"m8 11 3-3 3 3 3-3\"/><path d=\"M8 21h8m-4-4v4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Deadline size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Deadline size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Deadline(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path d=\"M16 2v4M8 2v4M3 9h18M12 13v3\"/><path fill=\"currentColor\" d=\"M12 20a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Recurring size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Recurring size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Recurring(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"m17 2 4 4-4 4\"/><path d=\"M3 10V8c0-1.1.9-2 2-2h16\"/><path d=\"m7 22-4-4 4-4\"/><path d=\"M21 14v2c0 1.1-.9 2-2 2H3\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Schedule size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Schedule size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Schedule(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M19 4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z\"/><path d=\"M16 2v4M8 2v4M3 9h18M7 13h4m-4 3.5h10M13 13h4\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <DotLive size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <DotLive size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function DotLive(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path fill=\"currentColor\" stroke=\"none\" d=\"M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Required size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Required size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Required(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z\"/><path d=\"M12 7v5\"/><path fill=\"currentColor\" d=\"M12 17a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" stroke=\"none\"/>\n </BaseIcon>\n )\n}\n","// AUTO-GENERATED — não edite manualmente\n// Fonte: src/icons/_source → npm run build:icons\nimport React from \"react\"\nimport { BaseIcon } from '../BaseIcon'\nimport type { IconProps } from '../types'\n\n/**\n * @example\n * // Decorativo (ícone puramente visual)\n * <Ray size=\"sm\" decorative />\n *\n * // Semântico (requer aria-label)\n * <Ray size=\"sm\" aria-label=\"descrição do ícone\" />\n */\nexport function Ray(props: IconProps): React.JSX.Element {\n return (\n <BaseIcon {...props}>\n <path d=\"M13 2 9 13h3.5L10 22 20 9h-5l2.5-7z\"/>\n </BaseIcon>\n )\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { CycleIcon } from './chunk-OT2HCBR2.js';
1
+ import { CycleIcon } from './chunk-V7M2NHUO.js';
2
2
  import { cn } from './chunk-TYCPXAXF.js';
3
3
  import { __objRest, __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
4
4
  import { useTheme } from 'next-themes';
@@ -87,5 +87,5 @@ var cycleToast = {
87
87
  };
88
88
 
89
89
  export { Toaster, cycleToast };
90
- //# sourceMappingURL=chunk-RI3ULQHH.js.map
91
- //# sourceMappingURL=chunk-RI3ULQHH.js.map
90
+ //# sourceMappingURL=chunk-ELZCZ6ZH.js.map
91
+ //# sourceMappingURL=chunk-ELZCZ6ZH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/sonner.tsx"],"names":["Sonner"],"mappings":"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","file":"chunk-RI3ULQHH.js","sourcesContent":["\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, toast, type ToasterProps } from \"sonner\"\nimport {\n CircleCheck,\n Info,\n Loader2,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { cn } from \"@/lib/utils\"\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CycleIcon icon={CircleCheck} size=\"xs\" decorative />,\n info: <CycleIcon icon={Info} size=\"xs\" decorative />,\n warning: <CycleIcon icon={TriangleAlert} size=\"xs\" decorative />,\n error: <CycleIcon icon={OctagonX} size=\"xs\" decorative />,\n loading: (\n <CycleIcon\n icon={Loader2}\n size=\"xs\"\n decorative\n className=\"animate-spin\"\n />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\n/**\n * Cycle-themed toast helpers.\n *\n * These wrap `sonner.toast` with Cycle semantic colors:\n * - `cycleToast.positive(...)` — green/success feedback\n * - `cycleToast.critical(...)` — red/error feedback\n * - `cycleToast.warning(...)` — amber/warning feedback\n *\n * Each applies the `.theme-*` class AND redefines `--normal-bg/text/border`\n * on the toast element so Sonner picks up the themed token values.\n */\n\ntype ToastMessage = string | React.ReactNode\ntype ToastOptions = Parameters<typeof toast>[1]\n\n/**\n * Style override that re-binds Sonner's CSS variables on the toast element itself.\n * Combined with `.theme-*` classNames, this makes `var(--popover)` resolve\n * in the toast's own scope (where the theme redefines the tokens).\n */\nconst themedStyle = {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n} as React.CSSProperties\n\nconst cycleToast = {\n /** Green — positive feedback (saved, completed, success) */\n positive: (message: ToastMessage, options?: ToastOptions) =>\n toast.success(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-positive\", options?.classNames?.toast),\n },\n }),\n\n /** Red — critical error (failed, deleted, destructive) */\n critical: (message: ToastMessage, options?: ToastOptions) =>\n toast.error(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-critical\", options?.classNames?.toast),\n },\n }),\n\n /** Amber — warning (limit reached, attention needed) */\n warning: (message: ToastMessage, options?: ToastOptions) =>\n toast.warning(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-warning\", options?.classNames?.toast),\n },\n }),\n\n /** Blue (Class) — informational (updates, tips, contextual info) */\n info: (message: ToastMessage, options?: ToastOptions) =>\n toast.info(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-class\", options?.classNames?.toast),\n },\n }),\n}\n\nexport { Toaster, cycleToast }\n"]}
1
+ {"version":3,"sources":["../src/components/ui/sonner.tsx"],"names":["Sonner"],"mappings":"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","file":"chunk-ELZCZ6ZH.js","sourcesContent":["\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, toast, type ToasterProps } from \"sonner\"\nimport {\n CircleCheck,\n Info,\n Loader2,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { cn } from \"@/lib/utils\"\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CycleIcon icon={CircleCheck} size=\"xs\" decorative />,\n info: <CycleIcon icon={Info} size=\"xs\" decorative />,\n warning: <CycleIcon icon={TriangleAlert} size=\"xs\" decorative />,\n error: <CycleIcon icon={OctagonX} size=\"xs\" decorative />,\n loading: (\n <CycleIcon\n icon={Loader2}\n size=\"xs\"\n decorative\n className=\"animate-spin\"\n />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\n/**\n * Cycle-themed toast helpers.\n *\n * These wrap `sonner.toast` with Cycle semantic colors:\n * - `cycleToast.positive(...)` — green/success feedback\n * - `cycleToast.critical(...)` — red/error feedback\n * - `cycleToast.warning(...)` — amber/warning feedback\n *\n * Each applies the `.theme-*` class AND redefines `--normal-bg/text/border`\n * on the toast element so Sonner picks up the themed token values.\n */\n\ntype ToastMessage = string | React.ReactNode\ntype ToastOptions = Parameters<typeof toast>[1]\n\n/**\n * Style override that re-binds Sonner's CSS variables on the toast element itself.\n * Combined with `.theme-*` classNames, this makes `var(--popover)` resolve\n * in the toast's own scope (where the theme redefines the tokens).\n */\nconst themedStyle = {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n} as React.CSSProperties\n\nconst cycleToast = {\n /** Green — positive feedback (saved, completed, success) */\n positive: (message: ToastMessage, options?: ToastOptions) =>\n toast.success(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-positive\", options?.classNames?.toast),\n },\n }),\n\n /** Red — critical error (failed, deleted, destructive) */\n critical: (message: ToastMessage, options?: ToastOptions) =>\n toast.error(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-critical\", options?.classNames?.toast),\n },\n }),\n\n /** Amber — warning (limit reached, attention needed) */\n warning: (message: ToastMessage, options?: ToastOptions) =>\n toast.warning(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-warning\", options?.classNames?.toast),\n },\n }),\n\n /** Blue (Class) — informational (updates, tips, contextual info) */\n info: (message: ToastMessage, options?: ToastOptions) =>\n toast.info(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-class\", options?.classNames?.toast),\n },\n }),\n}\n\nexport { Toaster, cycleToast }\n"]}
@@ -1,4 +1,4 @@
1
- import { CycleIcon } from './chunk-OT2HCBR2.js';
1
+ import { CycleIcon } from './chunk-V7M2NHUO.js';
2
2
  import { Button } from './chunk-7UMEJDC3.js';
3
3
  import { Textarea } from './chunk-2WPH3IQP.js';
4
4
  import { cn } from './chunk-TYCPXAXF.js';
@@ -219,5 +219,5 @@ function LikeDislike(_a) {
219
219
  }
220
220
 
221
221
  export { LikeDislike, likeDislikeVariants };
222
- //# sourceMappingURL=chunk-PXWCEJ2C.js.map
223
- //# sourceMappingURL=chunk-PXWCEJ2C.js.map
222
+ //# sourceMappingURL=chunk-EXVLL3JP.js.map
223
+ //# sourceMappingURL=chunk-EXVLL3JP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/like-dislike.tsx"],"names":[],"mappings":"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","file":"chunk-PXWCEJ2C.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ThumbsUp, ThumbsDown, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { Button } from \"@/components/ui/button\"\nimport { Textarea } from \"@/components/ui/textarea\"\n\n/* ---------------------------------- CVA ---------------------------------- */\n\nconst likeDislikeVariants = cva(\"inline-flex flex-col\", {\n variants: {\n size: {\n default: \"gap-2\",\n xs: \"gap-1.5\",\n sm: \"gap-1.5\",\n lg: \"gap-3\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/** Maps component size → toggle button dimensions + icon size + burst ray size */\nconst sizeConfig = {\n xs: { iconBtn: \"size-6\", icon: \"xs\" as const, text: \"text-xs\", rayH: \"h-1\", rayW: \"w-[2px]\" },\n sm: { iconBtn: \"size-8\", icon: \"xs\" as const, text: \"text-xs\", rayH: \"h-1.5\", rayW: \"w-[2px]\" },\n default: { iconBtn: \"size-10\", icon: \"sm\" as const, text: \"text-sm\", rayH: \"h-2\", rayW: \"w-[2px]\" },\n lg: { iconBtn: \"size-12\", icon: \"sm\" as const, text: \"text-base\", rayH: \"h-2.5\", rayW: \"w-[3px]\" },\n} as const\n\n/** Angles and colors for the burst rays */\nconst BURST_RAYS = [\n { angle: 0, delay: \"0ms\" },\n { angle: 45, delay: \"30ms\" },\n { angle: 90, delay: \"60ms\" },\n { angle: 135, delay: \"20ms\" },\n { angle: 180, delay: \"50ms\" },\n { angle: 225, delay: \"10ms\" },\n { angle: 270, delay: \"40ms\" },\n { angle: 315, delay: \"25ms\" },\n]\n\n/* -------------------------------- Types --------------------------------- */\n\nexport type LikeDislikeValue = \"like\" | \"dislike\" | null\n\nexport interface LikeDislikeProps\n extends Omit<React.ComponentProps<\"div\">, \"onChange\" | \"defaultValue\">,\n VariantProps<typeof likeDislikeVariants> {\n /** Current value — controlled */\n value?: LikeDislikeValue\n /** Default value — uncontrolled */\n defaultValue?: LikeDislikeValue\n /** Called when the value changes */\n onValueChange?: (value: LikeDislikeValue) => void\n /** Show feedback textarea when dislike is selected */\n showFeedback?: boolean\n /** Placeholder for the feedback textarea */\n feedbackPlaceholder?: string\n /** Label for the feedback submit button */\n feedbackSubmitLabel?: string\n /** Called when feedback is submitted */\n onFeedbackSubmit?: (feedback: string) => void\n /** Theme class for the burst animation rays (e.g. \"theme-brand\"). Default: \"theme-brand\" */\n burstTheme?: string\n /** Disabled state */\n disabled?: boolean\n}\n\n/* ------------------------------ Component ------------------------------- */\n\nfunction LikeDislike({\n className,\n size = \"default\",\n value: valueProp,\n defaultValue = null,\n onValueChange,\n showFeedback = false,\n feedbackPlaceholder = \"O que voce nao gostou?\",\n feedbackSubmitLabel = \"Enviar\",\n onFeedbackSubmit,\n burstTheme = \"theme-brand\",\n disabled = false,\n ...props\n}: LikeDislikeProps) {\n /* --- State --- */\n const isControlled = valueProp !== undefined\n const [internalValue, setInternalValue] = React.useState<LikeDislikeValue>(defaultValue)\n const currentValue = isControlled ? valueProp : internalValue\n\n const [feedbackText, setFeedbackText] = React.useState(\"\")\n const [isBursting, setIsBursting] = React.useState(false)\n const [feedbackDismissed, setFeedbackDismissed] = React.useState(false)\n\n const s = sizeConfig[size ?? \"default\"]\n\n /* --- Handlers --- */\n function handleClick(target: \"like\" | \"dislike\") {\n if (disabled) return\n const next: LikeDislikeValue = currentValue === target ? null : target\n\n if (!isControlled) setInternalValue(next)\n onValueChange?.(next)\n setFeedbackDismissed(false)\n\n // Trigger burst animation when transitioning TO like\n if (target === \"like\" && next === \"like\") {\n setIsBursting(true)\n }\n }\n\n function handleBurstEnd() {\n setIsBursting(false)\n }\n\n function handleFeedbackSubmit(e: React.FormEvent) {\n e.preventDefault()\n if (feedbackText.trim()) {\n onFeedbackSubmit?.(feedbackText.trim())\n setFeedbackText(\"\")\n }\n }\n\n const isLiked = currentValue === \"like\"\n const isDisliked = currentValue === \"dislike\"\n const showFeedbackPanel = isDisliked && showFeedback && !feedbackDismissed\n\n /* --- Shared button classes --- */\n const btnBase = cn(\n \"relative inline-flex shrink-0 items-center justify-center rounded-lg transition-[color,box-shadow,background-color] outline-none cursor-pointer\",\n \"hover:bg-muted hover:text-muted-foreground\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n s.iconBtn\n )\n\n return (\n <div\n data-slot=\"like-dislike\"\n className={cn(\"relative inline-flex\", className)}\n {...props}\n >\n {/* Button row */}\n <div className=\"inline-flex items-center gap-1\" role=\"group\" aria-label=\"Avaliar conteudo\">\n {/* Like */}\n <button\n type=\"button\"\n aria-pressed={isLiked}\n aria-label=\"Gostei\"\n disabled={disabled}\n onClick={() => handleClick(\"like\")}\n className={cn(\n btnBase,\n isLiked && \"bg-accent text-accent-foreground [&_svg]:fill-current\"\n )}\n >\n {/* Burst rays (behind the icon) */}\n {isBursting && (\n <span\n className={cn(\"absolute inset-0 z-0 pointer-events-none\", burstTheme)}\n aria-hidden=\"true\"\n >\n {BURST_RAYS.map(({ angle, delay }) => (\n <span\n key={angle}\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2\"\n style={{ rotate: `${angle}deg` }}\n >\n <span\n className={cn(\n \"block rounded-full bg-primary opacity-0 animate-like-burst\",\n s.rayW, s.rayH\n )}\n style={{ animationDelay: delay }}\n />\n </span>\n ))}\n </span>\n )}\n\n {/* Icon with pop animation (above rays) */}\n <span\n className={cn(\"relative z-10\", isBursting && \"animate-like-pop\")}\n onAnimationEnd={handleBurstEnd}\n >\n <CycleIcon icon={ThumbsUp} size={s.icon} decorative />\n </span>\n </button>\n\n {/* Dislike */}\n <button\n type=\"button\"\n aria-pressed={isDisliked}\n aria-label=\"Nao gostei\"\n disabled={disabled}\n onClick={() => handleClick(\"dislike\")}\n className={cn(\n btnBase,\n isDisliked && \"bg-accent text-accent-foreground [&_svg]:fill-current\"\n )}\n >\n <CycleIcon icon={ThumbsDown} size={s.icon} decorative />\n </button>\n </div>\n\n {/* Floating feedback panel */}\n {showFeedbackPanel && (\n <div className=\"absolute left-0 top-full z-50 mt-2 w-72 rounded-lg border border-border bg-background p-3 shadow-md animate-in fade-in-0 zoom-in-95 slide-in-from-top-2\">\n <div className=\"flex items-center justify-between mb-2\">\n <p className={cn(\"font-medium text-foreground\", s.text)}>\n {feedbackPlaceholder}\n </p>\n <button\n type=\"button\"\n onClick={() => setFeedbackDismissed(true)}\n className=\"inline-flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground transition-colors cursor-pointer\"\n aria-label=\"Fechar\"\n >\n <CycleIcon icon={X} size=\"xs\" decorative />\n </button>\n </div>\n <form onSubmit={handleFeedbackSubmit} className=\"flex flex-col gap-2\">\n <Textarea\n textareaSize=\"sm\"\n value={feedbackText}\n onChange={(e) => setFeedbackText(e.target.value)}\n placeholder=\"Conte-nos mais...\"\n disabled={disabled}\n className=\"resize-none min-h-[60px]\"\n aria-label=\"Feedback\"\n />\n <div className=\"flex justify-end\">\n <Button\n type=\"submit\"\n size=\"sm\"\n disabled={disabled || !feedbackText.trim()}\n >\n {feedbackSubmitLabel}\n </Button>\n </div>\n </form>\n </div>\n )}\n </div>\n )\n}\n\nexport { LikeDislike, likeDislikeVariants }\n"]}
1
+ {"version":3,"sources":["../src/components/ui/like-dislike.tsx"],"names":[],"mappings":";;;;;;;;;;AAaA,IAAM,mBAAA,GAAsB,IAAI,sBAAA,EAAwB;AAAA,EACtD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,OAAA;AAAA,MACT,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AAGD,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,EAAE,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,IAAA,EAAe,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU;AAAA,EAC5F,EAAA,EAAI,EAAE,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,IAAA,EAAe,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9F,OAAA,EAAS,EAAE,OAAA,EAAS,SAAA,EAAW,IAAA,EAAM,IAAA,EAAe,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,SAAA,EAAU;AAAA,EAClG,EAAA,EAAI,EAAE,OAAA,EAAS,SAAA,EAAW,IAAA,EAAM,IAAA,EAAe,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,SAAA;AACzF,CAAA;AAGA,IAAM,UAAA,GAAa;AAAA,EACjB,EAAE,KAAA,EAAO,CAAA,EAAG,KAAA,EAAO,KAAA,EAAM;AAAA,EACzB,EAAE,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,MAAA,EAAO;AAAA,EAC3B,EAAE,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,MAAA,EAAO;AAAA,EAC3B,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAO,MAAA,EAAO;AAAA,EAC5B,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAO,MAAA,EAAO;AAAA,EAC5B,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAO,MAAA,EAAO;AAAA,EAC5B,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAO,MAAA,EAAO;AAAA,EAC5B,EAAE,KAAA,EAAO,GAAA,EAAK,KAAA,EAAO,MAAA;AACvB,CAAA;AA+BA,SAAS,YAAY,EAAA,EAaA;AAbA,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,SAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA,EAAO,SAAA;AAAA,IACP,YAAA,GAAe,IAAA;AAAA,IACf,aAAA;AAAA,IACA,YAAA,GAAe,KAAA;AAAA,IACf,mBAAA,GAAsB,wBAAA;AAAA,IACtB,mBAAA,GAAsB,QAAA;AAAA,IACtB,gBAAA;AAAA,IACA,UAAA,GAAa,aAAA;AAAA,IACb,QAAA,GAAW;AAAA,GAvFb,GA4EqB,EAAA,EAYhB,KAAA,GAAA,SAAA,CAZgB,EAAA,EAYhB;AAAA,IAXH,WAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,cAAA;AAAA,IACA,qBAAA;AAAA,IACA,qBAAA;AAAA,IACA,kBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAIA,EAAA,MAAM,eAAe,SAAA,KAAc,MAAA;AACnC,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAU,eAA2B,YAAY,CAAA;AACvF,EAAA,MAAM,YAAA,GAAe,eAAe,SAAA,GAAY,aAAA;AAEhD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAU,eAAS,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAU,eAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAU,eAAS,KAAK,CAAA;AAEtE,EAAA,MAAM,CAAA,GAAI,UAAA,CAAW,IAAA,IAAA,IAAA,GAAA,IAAA,GAAQ,SAAS,CAAA;AAGtC,EAAA,SAAS,YAAY,MAAA,EAA4B;AAC/C,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,MAAM,IAAA,GAAyB,YAAA,KAAiB,MAAA,GAAS,IAAA,GAAO,MAAA;AAEhE,IAAA,IAAI,CAAC,YAAA,EAAc,gBAAA,CAAiB,IAAI,CAAA;AACxC,IAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,IAAA,CAAA;AAChB,IAAA,oBAAA,CAAqB,KAAK,CAAA;AAG1B,IAAA,IAAI,MAAA,KAAW,MAAA,IAAU,IAAA,KAAS,MAAA,EAAQ;AACxC,MAAA,aAAA,CAAc,IAAI,CAAA;AAAA,IACpB;AAAA,EACF;AAEA,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,aAAA,CAAc,KAAK,CAAA;AAAA,EACrB;AAEA,EAAA,SAAS,qBAAqB,CAAA,EAAoB;AAChD,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAI,YAAA,CAAa,MAAK,EAAG;AACvB,MAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAmB,aAAa,IAAA,EAAK,CAAA;AACrC,MAAA,eAAA,CAAgB,EAAE,CAAA;AAAA,IACpB;AAAA,EACF;AAEA,EAAA,MAAM,UAAU,YAAA,KAAiB,MAAA;AACjC,EAAA,MAAM,aAAa,YAAA,KAAiB,SAAA;AACpC,EAAA,MAAM,iBAAA,GAAoB,UAAA,IAAc,YAAA,IAAgB,CAAC,iBAAA;AAGzD,EAAA,MAAM,OAAA,GAAU,EAAA;AAAA,IACd,iJAAA;AAAA,IACA,4CAAA;AAAA,IACA,+EAAA;AAAA,IACA,kDAAA;AAAA,IACA,8CAAA;AAAA,IACA,CAAA,CAAE;AAAA,GACJ;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS;AAAA,KAAA,EAC3C,KAAA,CAAA,EAHL;AAAA,MAMC,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,SAAI,SAAA,EAAU,gCAAA,EAAiC,IAAA,EAAK,OAAA,EAAQ,cAAW,kBAAA,EAEtE,QAAA,EAAA;AAAA,0BAAA,IAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,cAAA,EAAc,OAAA;AAAA,cACd,YAAA,EAAW,QAAA;AAAA,cACX,QAAA;AAAA,cACA,OAAA,EAAS,MAAM,WAAA,CAAY,MAAM,CAAA;AAAA,cACjC,SAAA,EAAW,EAAA;AAAA,gBACT,OAAA;AAAA,gBACA,OAAA,IAAW;AAAA,eACb;AAAA,cAGC,QAAA,EAAA;AAAA,gBAAA,UAAA,oBACC,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA,CAAG,0CAAA,EAA4C,UAAU,CAAA;AAAA,oBACpE,aAAA,EAAY,MAAA;AAAA,oBAEX,qBAAW,GAAA,CAAI,CAAC,EAAE,KAAA,EAAO,OAAM,qBAC9B,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBAEC,SAAA,EAAU,6DAAA;AAAA,wBACV,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,KAAK,CAAA,GAAA,CAAA,EAAM;AAAA,wBAE/B,QAAA,kBAAA,GAAA;AAAA,0BAAC,MAAA;AAAA,0BAAA;AAAA,4BACC,SAAA,EAAW,EAAA;AAAA,8BACT,4DAAA;AAAA,8BACA,CAAA,CAAE,IAAA;AAAA,8BAAM,CAAA,CAAE;AAAA,6BACZ;AAAA,4BACA,KAAA,EAAO,EAAE,cAAA,EAAgB,KAAA;AAAM;AAAA;AACjC,uBAAA;AAAA,sBAVK;AAAA,qBAYR;AAAA;AAAA,iBACH;AAAA,gCAIF,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,UAAA,IAAc,kBAAkB,CAAA;AAAA,oBAC/D,cAAA,EAAgB,cAAA;AAAA,oBAEhB,QAAA,kBAAA,GAAA,CAAC,aAAU,IAAA,EAAM,QAAA,EAAU,MAAM,CAAA,CAAE,IAAA,EAAM,YAAU,IAAA,EAAC;AAAA;AAAA;AACtD;AAAA;AAAA,WACF;AAAA,0BAGA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,cAAA,EAAc,UAAA;AAAA,cACd,YAAA,EAAW,YAAA;AAAA,cACX,QAAA;AAAA,cACA,OAAA,EAAS,MAAM,WAAA,CAAY,SAAS,CAAA;AAAA,cACpC,SAAA,EAAW,EAAA;AAAA,gBACT,OAAA;AAAA,gBACA,UAAA,IAAc;AAAA,eAChB;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,aAAU,IAAA,EAAM,UAAA,EAAY,MAAM,CAAA,CAAE,IAAA,EAAM,YAAU,IAAA,EAAC;AAAA;AAAA;AACxD,SAAA,EACF,CAAA;AAAA,QAGC,iBAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yJAAA,EACb,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,OAAE,SAAA,EAAW,EAAA,CAAG,+BAA+B,CAAA,CAAE,IAAI,GACnD,QAAA,EAAA,mBAAA,EACH,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAS,MAAM,oBAAA,CAAqB,IAAI,CAAA;AAAA,gBACxC,SAAA,EAAU,uJAAA;AAAA,gBACV,YAAA,EAAW,QAAA;AAAA,gBAEX,8BAAC,SAAA,EAAA,EAAU,IAAA,EAAM,GAAG,IAAA,EAAK,IAAA,EAAK,YAAU,IAAA,EAAC;AAAA;AAAA;AAC3C,WAAA,EACF,CAAA;AAAA,0BACA,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,oBAAA,EAAsB,WAAU,qBAAA,EAC9C,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,YAAA,EAAa,IAAA;AAAA,gBACb,KAAA,EAAO,YAAA;AAAA,gBACP,UAAU,CAAC,CAAA,KAAM,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,gBAC/C,WAAA,EAAY,mBAAA;AAAA,gBACZ,QAAA;AAAA,gBACA,SAAA,EAAU,0BAAA;AAAA,gBACV,YAAA,EAAW;AAAA;AAAA,aACb;AAAA,4BACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,kBAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,IAAA,EAAK,IAAA;AAAA,gBACL,QAAA,EAAU,QAAA,IAAY,CAAC,YAAA,CAAa,IAAA,EAAK;AAAA,gBAExC,QAAA,EAAA;AAAA;AAAA,aACH,EACF;AAAA,WAAA,EACF;AAAA,SAAA,EACF;AAAA;AAAA,KAAA;AAAA,GAEJ;AAEJ","file":"chunk-EXVLL3JP.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ThumbsUp, ThumbsDown, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { Button } from \"@/components/ui/button\"\nimport { Textarea } from \"@/components/ui/textarea\"\n\n/* ---------------------------------- CVA ---------------------------------- */\n\nconst likeDislikeVariants = cva(\"inline-flex flex-col\", {\n variants: {\n size: {\n default: \"gap-2\",\n xs: \"gap-1.5\",\n sm: \"gap-1.5\",\n lg: \"gap-3\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/** Maps component size → toggle button dimensions + icon size + burst ray size */\nconst sizeConfig = {\n xs: { iconBtn: \"size-6\", icon: \"xs\" as const, text: \"text-xs\", rayH: \"h-1\", rayW: \"w-[2px]\" },\n sm: { iconBtn: \"size-8\", icon: \"xs\" as const, text: \"text-xs\", rayH: \"h-1.5\", rayW: \"w-[2px]\" },\n default: { iconBtn: \"size-10\", icon: \"sm\" as const, text: \"text-sm\", rayH: \"h-2\", rayW: \"w-[2px]\" },\n lg: { iconBtn: \"size-12\", icon: \"sm\" as const, text: \"text-base\", rayH: \"h-2.5\", rayW: \"w-[3px]\" },\n} as const\n\n/** Angles and colors for the burst rays */\nconst BURST_RAYS = [\n { angle: 0, delay: \"0ms\" },\n { angle: 45, delay: \"30ms\" },\n { angle: 90, delay: \"60ms\" },\n { angle: 135, delay: \"20ms\" },\n { angle: 180, delay: \"50ms\" },\n { angle: 225, delay: \"10ms\" },\n { angle: 270, delay: \"40ms\" },\n { angle: 315, delay: \"25ms\" },\n]\n\n/* -------------------------------- Types --------------------------------- */\n\nexport type LikeDislikeValue = \"like\" | \"dislike\" | null\n\nexport interface LikeDislikeProps\n extends Omit<React.ComponentProps<\"div\">, \"onChange\" | \"defaultValue\">,\n VariantProps<typeof likeDislikeVariants> {\n /** Current value — controlled */\n value?: LikeDislikeValue\n /** Default value — uncontrolled */\n defaultValue?: LikeDislikeValue\n /** Called when the value changes */\n onValueChange?: (value: LikeDislikeValue) => void\n /** Show feedback textarea when dislike is selected */\n showFeedback?: boolean\n /** Placeholder for the feedback textarea */\n feedbackPlaceholder?: string\n /** Label for the feedback submit button */\n feedbackSubmitLabel?: string\n /** Called when feedback is submitted */\n onFeedbackSubmit?: (feedback: string) => void\n /** Theme class for the burst animation rays (e.g. \"theme-brand\"). Default: \"theme-brand\" */\n burstTheme?: string\n /** Disabled state */\n disabled?: boolean\n}\n\n/* ------------------------------ Component ------------------------------- */\n\nfunction LikeDislike({\n className,\n size = \"default\",\n value: valueProp,\n defaultValue = null,\n onValueChange,\n showFeedback = false,\n feedbackPlaceholder = \"O que voce nao gostou?\",\n feedbackSubmitLabel = \"Enviar\",\n onFeedbackSubmit,\n burstTheme = \"theme-brand\",\n disabled = false,\n ...props\n}: LikeDislikeProps) {\n /* --- State --- */\n const isControlled = valueProp !== undefined\n const [internalValue, setInternalValue] = React.useState<LikeDislikeValue>(defaultValue)\n const currentValue = isControlled ? valueProp : internalValue\n\n const [feedbackText, setFeedbackText] = React.useState(\"\")\n const [isBursting, setIsBursting] = React.useState(false)\n const [feedbackDismissed, setFeedbackDismissed] = React.useState(false)\n\n const s = sizeConfig[size ?? \"default\"]\n\n /* --- Handlers --- */\n function handleClick(target: \"like\" | \"dislike\") {\n if (disabled) return\n const next: LikeDislikeValue = currentValue === target ? null : target\n\n if (!isControlled) setInternalValue(next)\n onValueChange?.(next)\n setFeedbackDismissed(false)\n\n // Trigger burst animation when transitioning TO like\n if (target === \"like\" && next === \"like\") {\n setIsBursting(true)\n }\n }\n\n function handleBurstEnd() {\n setIsBursting(false)\n }\n\n function handleFeedbackSubmit(e: React.FormEvent) {\n e.preventDefault()\n if (feedbackText.trim()) {\n onFeedbackSubmit?.(feedbackText.trim())\n setFeedbackText(\"\")\n }\n }\n\n const isLiked = currentValue === \"like\"\n const isDisliked = currentValue === \"dislike\"\n const showFeedbackPanel = isDisliked && showFeedback && !feedbackDismissed\n\n /* --- Shared button classes --- */\n const btnBase = cn(\n \"relative inline-flex shrink-0 items-center justify-center rounded-lg transition-[color,box-shadow,background-color] outline-none cursor-pointer\",\n \"hover:bg-muted hover:text-muted-foreground\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n s.iconBtn\n )\n\n return (\n <div\n data-slot=\"like-dislike\"\n className={cn(\"relative inline-flex\", className)}\n {...props}\n >\n {/* Button row */}\n <div className=\"inline-flex items-center gap-1\" role=\"group\" aria-label=\"Avaliar conteudo\">\n {/* Like */}\n <button\n type=\"button\"\n aria-pressed={isLiked}\n aria-label=\"Gostei\"\n disabled={disabled}\n onClick={() => handleClick(\"like\")}\n className={cn(\n btnBase,\n isLiked && \"bg-accent text-accent-foreground [&_svg]:fill-current\"\n )}\n >\n {/* Burst rays (behind the icon) */}\n {isBursting && (\n <span\n className={cn(\"absolute inset-0 z-0 pointer-events-none\", burstTheme)}\n aria-hidden=\"true\"\n >\n {BURST_RAYS.map(({ angle, delay }) => (\n <span\n key={angle}\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2\"\n style={{ rotate: `${angle}deg` }}\n >\n <span\n className={cn(\n \"block rounded-full bg-primary opacity-0 animate-like-burst\",\n s.rayW, s.rayH\n )}\n style={{ animationDelay: delay }}\n />\n </span>\n ))}\n </span>\n )}\n\n {/* Icon with pop animation (above rays) */}\n <span\n className={cn(\"relative z-10\", isBursting && \"animate-like-pop\")}\n onAnimationEnd={handleBurstEnd}\n >\n <CycleIcon icon={ThumbsUp} size={s.icon} decorative />\n </span>\n </button>\n\n {/* Dislike */}\n <button\n type=\"button\"\n aria-pressed={isDisliked}\n aria-label=\"Nao gostei\"\n disabled={disabled}\n onClick={() => handleClick(\"dislike\")}\n className={cn(\n btnBase,\n isDisliked && \"bg-accent text-accent-foreground [&_svg]:fill-current\"\n )}\n >\n <CycleIcon icon={ThumbsDown} size={s.icon} decorative />\n </button>\n </div>\n\n {/* Floating feedback panel */}\n {showFeedbackPanel && (\n <div className=\"absolute left-0 top-full z-50 mt-2 w-72 rounded-lg border border-border bg-background p-3 shadow-md animate-in fade-in-0 zoom-in-95 slide-in-from-top-2\">\n <div className=\"flex items-center justify-between mb-2\">\n <p className={cn(\"font-medium text-foreground\", s.text)}>\n {feedbackPlaceholder}\n </p>\n <button\n type=\"button\"\n onClick={() => setFeedbackDismissed(true)}\n className=\"inline-flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground transition-colors cursor-pointer\"\n aria-label=\"Fechar\"\n >\n <CycleIcon icon={X} size=\"xs\" decorative />\n </button>\n </div>\n <form onSubmit={handleFeedbackSubmit} className=\"flex flex-col gap-2\">\n <Textarea\n textareaSize=\"sm\"\n value={feedbackText}\n onChange={(e) => setFeedbackText(e.target.value)}\n placeholder=\"Conte-nos mais...\"\n disabled={disabled}\n className=\"resize-none min-h-[60px]\"\n aria-label=\"Feedback\"\n />\n <div className=\"flex justify-end\">\n <Button\n type=\"submit\"\n size=\"sm\"\n disabled={disabled || !feedbackText.trim()}\n >\n {feedbackSubmitLabel}\n </Button>\n </div>\n </form>\n </div>\n )}\n </div>\n )\n}\n\nexport { LikeDislike, likeDislikeVariants }\n"]}
@@ -0,0 +1,32 @@
1
+ import { CycleIcon } from './chunk-V7M2NHUO.js';
2
+ import { cn } from './chunk-TYCPXAXF.js';
3
+ import { GraduationCap, UserLock, MessagesSquare } from 'lucide-react';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var sizeMap = {
7
+ xs: { icon: "xs", text: "button-sm" },
8
+ sm: { icon: "sm", text: "heading-xs" },
9
+ md: { icon: "md", text: "heading-sm" },
10
+ lg: { icon: "lg", text: "heading-md" },
11
+ xl: { icon: "xl", text: "heading-lg" }
12
+ };
13
+ function ProductLogo({ icon, label, size = "sm", className }) {
14
+ const { icon: iconSize, text } = sizeMap[size];
15
+ return /* @__PURE__ */ jsxs("span", { className: cn("inline-flex items-center", size === "xs" ? "gap-1" : "gap-2", className), children: [
16
+ /* @__PURE__ */ jsx(CycleIcon, { icon, size: iconSize, decorative: true }),
17
+ /* @__PURE__ */ jsx("span", { className: cn(text, "text-neutral-foreground"), children: label })
18
+ ] });
19
+ }
20
+ function ClassLogo({ size = "sm", className }) {
21
+ return /* @__PURE__ */ jsx(ProductLogo, { icon: GraduationCap, label: "Class", size, className: cn("theme-class text-foreground", className) });
22
+ }
23
+ function PrivateTalkLogo({ size = "sm", className }) {
24
+ return /* @__PURE__ */ jsx(ProductLogo, { icon: UserLock, label: "Private Talk", size, className: cn("theme-private text-foreground", className) });
25
+ }
26
+ function GroupTalkLogo({ size = "sm", className }) {
27
+ return /* @__PURE__ */ jsx(ProductLogo, { icon: MessagesSquare, label: "Group Talk", size, className: cn("theme-group text-foreground", className) });
28
+ }
29
+
30
+ export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo };
31
+ //# sourceMappingURL=chunk-JDAPQW5C.js.map
32
+ //# sourceMappingURL=chunk-JDAPQW5C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/product-logo.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,OAAA,GAAU;AAAA,EACd,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,WAAA,EAAY;AAAA,EAChD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA;AACtC,CAAA;AAWO,SAAS,YAAY,EAAE,IAAA,EAAM,OAAO,IAAA,GAAO,IAAA,EAAM,WAAU,EAAqB;AACrF,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAK,GAAI,QAAQ,IAAI,CAAA;AAC7C,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,IAAA,GAAO,OAAA,GAAU,OAAA,EAAS,SAAS,CAAA,EAC1F,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAY,IAAA,EAAM,QAAA,EAAU,YAAU,IAAA,EAAC,CAAA;AAAA,wBACjD,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,IAAA,EAAM,yBAAyB,GAAI,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAC/D,CAAA;AAEJ;AAGO,SAAS,SAAA,CAAU,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AACpG,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,aAAA,EAAe,KAAA,EAAM,OAAA,EAAQ,IAAA,EAAY,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA,EAAG,CAAA;AAC9H;AAEO,SAAS,eAAA,CAAgB,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AAC1G,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,QAAA,EAAU,KAAA,EAAM,cAAA,EAAe,IAAA,EAAY,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAG,CAAA;AAClI;AAEO,SAAS,aAAA,CAAc,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AACxG,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,cAAA,EAAgB,KAAA,EAAM,YAAA,EAAa,IAAA,EAAY,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA,EAAG,CAAA;AACpI","file":"chunk-JDAPQW5C.js","sourcesContent":["import { type LucideIcon } from \"lucide-react\"\nimport { GraduationCap, UserLock, MessagesSquare } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CycleIcon, type IconSize } from \"@/components/icons\"\n\nconst sizeMap = {\n xs: { icon: \"xs\" as IconSize, text: \"button-sm\" },\n sm: { icon: \"sm\" as IconSize, text: \"heading-xs\" },\n md: { icon: \"md\" as IconSize, text: \"heading-sm\" },\n lg: { icon: \"lg\" as IconSize, text: \"heading-md\" },\n xl: { icon: \"xl\" as IconSize, text: \"heading-lg\" },\n} as const\n\ntype ProductLogoSize = keyof typeof sizeMap\n\ninterface ProductLogoProps {\n icon: LucideIcon\n label: string\n size?: ProductLogoSize\n className?: string\n}\n\nexport function ProductLogo({ icon, label, size = \"sm\", className }: ProductLogoProps) {\n const { icon: iconSize, text } = sizeMap[size]\n return (\n <span className={cn(\"inline-flex items-center\", size === \"xs\" ? \"gap-1\" : \"gap-2\", className)}>\n <CycleIcon icon={icon} size={iconSize} decorative />\n <span className={cn(text, \"text-neutral-foreground\")}>{label}</span>\n </span>\n )\n}\n\n/* Pre-built product logos */\nexport function ClassLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={GraduationCap} label=\"Class\" size={size} className={cn(\"theme-class text-foreground\", className)} />\n}\n\nexport function PrivateTalkLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={UserLock} label=\"Private Talk\" size={size} className={cn(\"theme-private text-foreground\", className)} />\n}\n\nexport function GroupTalkLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={MessagesSquare} label=\"Group Talk\" size={size} className={cn(\"theme-group text-foreground\", className)} />\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { CycleIcon } from './chunk-OT2HCBR2.js';
1
+ import { CycleIcon } from './chunk-V7M2NHUO.js';
2
2
  import { cn } from './chunk-TYCPXAXF.js';
3
3
  import * as React from 'react';
4
4
  import { MediaPlayer, MediaProvider, Time, TimeSlider, SeekButton, useMediaState, PlayButton, useMediaRemote, MuteButton, VolumeSlider } from '@vidstack/react';
@@ -198,5 +198,5 @@ function AudioPlayer({
198
198
  }
199
199
 
200
200
  export { AudioPlayer };
201
- //# sourceMappingURL=chunk-WRJZHQNY.js.map
202
- //# sourceMappingURL=chunk-WRJZHQNY.js.map
201
+ //# sourceMappingURL=chunk-UAHCRXAG.js.map
202
+ //# sourceMappingURL=chunk-UAHCRXAG.js.map