@fluencypassdevs/cycle 0.1.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.
- package/README.md +36 -0
- package/dist/chunk-2MXR6RRJ.js +106 -0
- package/dist/chunk-2MXR6RRJ.js.map +1 -0
- package/dist/chunk-2WPH3IQP.js +48 -0
- package/dist/chunk-2WPH3IQP.js.map +1 -0
- package/dist/chunk-3LXU5C35.js +68 -0
- package/dist/chunk-3LXU5C35.js.map +1 -0
- package/dist/chunk-6LML23MS.js +347 -0
- package/dist/chunk-6LML23MS.js.map +1 -0
- package/dist/chunk-726XFHED.js +22 -0
- package/dist/chunk-726XFHED.js.map +1 -0
- package/dist/chunk-7UMEJDC3.js +62 -0
- package/dist/chunk-7UMEJDC3.js.map +1 -0
- package/dist/chunk-7XT6ISPQ.js +97 -0
- package/dist/chunk-7XT6ISPQ.js.map +1 -0
- package/dist/chunk-AL2ALTBH.js +115 -0
- package/dist/chunk-AL2ALTBH.js.map +1 -0
- package/dist/chunk-CIM6KJH5.js +59 -0
- package/dist/chunk-CIM6KJH5.js.map +1 -0
- package/dist/chunk-CSL4DRPW.js +39 -0
- package/dist/chunk-CSL4DRPW.js.map +1 -0
- package/dist/chunk-HZJRM5EK.js +97 -0
- package/dist/chunk-HZJRM5EK.js.map +1 -0
- package/dist/chunk-IJTNFN6N.js +61 -0
- package/dist/chunk-IJTNFN6N.js.map +1 -0
- package/dist/chunk-K567KZD5.js +63 -0
- package/dist/chunk-K567KZD5.js.map +1 -0
- package/dist/chunk-MSLQRGSP.js +113 -0
- package/dist/chunk-MSLQRGSP.js.map +1 -0
- package/dist/chunk-NGOZFA33.js +60 -0
- package/dist/chunk-NGOZFA33.js.map +1 -0
- package/dist/chunk-NVA4ZJOS.js +66 -0
- package/dist/chunk-NVA4ZJOS.js.map +1 -0
- package/dist/chunk-OT2HCBR2.js +37 -0
- package/dist/chunk-OT2HCBR2.js.map +1 -0
- package/dist/chunk-PM6ZUCMQ.js +73 -0
- package/dist/chunk-PM6ZUCMQ.js.map +1 -0
- package/dist/chunk-PXWCEJ2C.js +223 -0
- package/dist/chunk-PXWCEJ2C.js.map +1 -0
- package/dist/chunk-QTL6W4I2.js +57 -0
- package/dist/chunk-QTL6W4I2.js.map +1 -0
- package/dist/chunk-QZVQPUVT.js +129 -0
- package/dist/chunk-QZVQPUVT.js.map +1 -0
- package/dist/chunk-R4LITCVX.js +111 -0
- package/dist/chunk-R4LITCVX.js.map +1 -0
- package/dist/chunk-TYCPXAXF.js +10 -0
- package/dist/chunk-TYCPXAXF.js.map +1 -0
- package/dist/chunk-UEJLA7Q6.js +70 -0
- package/dist/chunk-UEJLA7Q6.js.map +1 -0
- package/dist/chunk-UVCEQOQR.js +104 -0
- package/dist/chunk-UVCEQOQR.js.map +1 -0
- package/dist/chunk-VECLN5AT.js +202 -0
- package/dist/chunk-VECLN5AT.js.map +1 -0
- package/dist/chunk-XX3I65LQ.js +435 -0
- package/dist/chunk-XX3I65LQ.js.map +1 -0
- package/dist/chunk-YINJ5YZ5.js +35 -0
- package/dist/chunk-YINJ5YZ5.js.map +1 -0
- package/dist/icons/index.d.ts +617 -0
- package/dist/icons/index.js +5 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +4 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles/tailwind-theme.css +87 -0
- package/dist/styles/tokens.css +496 -0
- package/dist/ui/accordion.d.ts +10 -0
- package/dist/ui/accordion.js +5 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/audio-player.d.ts +30 -0
- package/dist/ui/audio-player.js +7 -0
- package/dist/ui/audio-player.js.map +1 -0
- package/dist/ui/avatar.d.ts +16 -0
- package/dist/ui/avatar.js +5 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.d.ts +15 -0
- package/dist/ui/badge.js +5 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/button.d.ts +15 -0
- package/dist/ui/button.js +5 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/chat-bubble.d.ts +21 -0
- package/dist/ui/chat-bubble.js +6 -0
- package/dist/ui/chat-bubble.js.map +1 -0
- package/dist/ui/chat-panel.d.ts +35 -0
- package/dist/ui/chat-panel.js +10 -0
- package/dist/ui/chat-panel.js.map +1 -0
- package/dist/ui/checkbox.d.ts +17 -0
- package/dist/ui/checkbox.js +5 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/file-card.d.ts +27 -0
- package/dist/ui/file-card.js +5 -0
- package/dist/ui/file-card.js.map +1 -0
- package/dist/ui/input.d.ts +11 -0
- package/dist/ui/input.js +5 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/label.d.ts +9 -0
- package/dist/ui/label.js +5 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/like-dislike.d.ts +32 -0
- package/dist/ui/like-dislike.js +9 -0
- package/dist/ui/like-dislike.js.map +1 -0
- package/dist/ui/live-waiting.d.ts +16 -0
- package/dist/ui/live-waiting.js +8 -0
- package/dist/ui/live-waiting.js.map +1 -0
- package/dist/ui/progress-stage.d.ts +19 -0
- package/dist/ui/progress-stage.js +5 -0
- package/dist/ui/progress-stage.js.map +1 -0
- package/dist/ui/progress.d.ts +19 -0
- package/dist/ui/progress.js +5 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio-group.d.ts +19 -0
- package/dist/ui/radio-group.js +5 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/scroll-area.d.ts +8 -0
- package/dist/ui/scroll-area.js +5 -0
- package/dist/ui/scroll-area.js.map +1 -0
- package/dist/ui/sheet.d.ts +17 -0
- package/dist/ui/sheet.js +5 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/slider.d.ts +16 -0
- package/dist/ui/slider.js +5 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/switch.d.ts +16 -0
- package/dist/ui/switch.js +5 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/tabs.d.ts +15 -0
- package/dist/ui/tabs.js +5 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/textarea.d.ts +12 -0
- package/dist/ui/textarea.js +5 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/toggle.d.ts +17 -0
- package/dist/ui/toggle.js +5 -0
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/video-player.d.ts +28 -0
- package/dist/ui/video-player.js +7 -0
- package/dist/ui/video-player.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import { Label as Label$1 } from 'radix-ui';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
function Label(_a) {
|
|
7
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8
|
+
return /* @__PURE__ */ jsx(
|
|
9
|
+
Label$1.Root,
|
|
10
|
+
__spreadValues({
|
|
11
|
+
"data-slot": "label",
|
|
12
|
+
className: cn(
|
|
13
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
14
|
+
className
|
|
15
|
+
)
|
|
16
|
+
}, props)
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { Label };
|
|
21
|
+
//# sourceMappingURL=chunk-726XFHED.js.map
|
|
22
|
+
//# sourceMappingURL=chunk-726XFHED.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/label.tsx"],"names":["LabelPrimitive"],"mappings":";;;;;AAUA,SAAS,MAAM,EAAA,EAAqC;AAArC,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAVjB,GAUe,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACf,EAAA,uBACE,GAAA;AAAA,IAACA,OAAA,CAAe,IAAA;AAAA,IAAf,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qNAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ","file":"chunk-726XFHED.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface LabelProps\n extends React.ComponentProps<typeof LabelPrimitive.Root> {}\n\nfunction Label({ className, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { Slot } from 'radix-ui';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var buttonVariants = cva(
|
|
8
|
+
"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg whitespace-nowrap transition-all outline-none cursor-pointer focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
13
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
14
|
+
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
15
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
16
|
+
ghost: "text-primary hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
17
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
default: "h-10 px-4 py-2 button-md has-[>svg]:px-3 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]",
|
|
21
|
+
xs: "h-6 px-2 py-1 button-sm has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3 [&_svg]:stroke-[1]",
|
|
22
|
+
sm: "h-8 px-3 py-2 button-sm has-[>svg]:px-2.5 [&_svg:not([class*='size-'])]:size-4 [&_svg]:stroke-[1.2]",
|
|
23
|
+
lg: "h-12 px-6 py-3 button-lg has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]",
|
|
24
|
+
icon: "size-10 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]",
|
|
25
|
+
"icon-xs": "size-6 [&_svg:not([class*='size-'])]:size-3 [&_svg]:stroke-[1]",
|
|
26
|
+
"icon-sm": "size-8 [&_svg:not([class*='size-'])]:size-4 [&_svg]:stroke-[1.2]",
|
|
27
|
+
"icon-lg": "size-12 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: {
|
|
31
|
+
variant: "default",
|
|
32
|
+
size: "default"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
function Button(_a) {
|
|
37
|
+
var _b = _a, {
|
|
38
|
+
className,
|
|
39
|
+
variant = "default",
|
|
40
|
+
size = "default",
|
|
41
|
+
asChild = false
|
|
42
|
+
} = _b, props = __objRest(_b, [
|
|
43
|
+
"className",
|
|
44
|
+
"variant",
|
|
45
|
+
"size",
|
|
46
|
+
"asChild"
|
|
47
|
+
]);
|
|
48
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
49
|
+
return /* @__PURE__ */ jsx(
|
|
50
|
+
Comp,
|
|
51
|
+
__spreadValues({
|
|
52
|
+
"data-slot": "button",
|
|
53
|
+
"data-variant": variant,
|
|
54
|
+
"data-size": size,
|
|
55
|
+
className: cn(buttonVariants({ variant, size, className }))
|
|
56
|
+
}, props)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { Button, buttonVariants };
|
|
61
|
+
//# sourceMappingURL=chunk-7UMEJDC3.js.map
|
|
62
|
+
//# sourceMappingURL=chunk-7UMEJDC3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/button.tsx"],"names":[],"mappings":";;;;;;AAMA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,mZAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wDAAA;AAAA,QACT,WAAA,EACE,oKAAA;AAAA,QACF,OAAA,EACE,uIAAA;AAAA,QACF,SAAA,EACE,8DAAA;AAAA,QACF,KAAA,EACE,mFAAA;AAAA,QACF,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,oGAAA;AAAA,QACT,EAAA,EAAI,mGAAA;AAAA,QACJ,EAAA,EAAI,qGAAA;AAAA,QACJ,EAAA,EAAI,oGAAA;AAAA,QACJ,IAAA,EAAM,mEAAA;AAAA,QACN,SAAA,EAAW,gEAAA;AAAA,QACX,SAAA,EAAW,kEAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,SAAS,OAAO,EAAA,EAMA;AANA,EAAA,IAAA,EAAA,GAAA,EAAA,EACd;AAAA,IAAA,SAAA;AAAA,IACA,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,SAAA;AAAA,IACP,OAAA,GAAU;AAAA,GAlDZ,GA8CgB,EAAA,EAKX,KAAA,GAAA,SAAA,CALW,EAAA,EAKX;AAAA,IAJH,WAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,IAAA,GAAO,OAAA,GAAU,IAAA,CAAK,IAAA,GAAO,QAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC;AAAA,KAAA,EACtD,KAAA;AAAA,GACN;AAEJ","file":"chunk-7UMEJDC3.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg whitespace-nowrap transition-all outline-none cursor-pointer focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"text-primary hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2 button-md has-[>svg]:px-3 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]\",\n xs: \"h-6 px-2 py-1 button-sm has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3 [&_svg]:stroke-[1]\",\n sm: \"h-8 px-3 py-2 button-sm has-[>svg]:px-2.5 [&_svg:not([class*='size-'])]:size-4 [&_svg]:stroke-[1.2]\",\n lg: \"h-12 px-6 py-3 button-lg has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]\",\n icon: \"size-10 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]\",\n \"icon-xs\": \"size-6 [&_svg:not([class*='size-'])]:size-3 [&_svg]:stroke-[1]\",\n \"icon-sm\": \"size-8 [&_svg:not([class*='size-'])]:size-4 [&_svg]:stroke-[1.2]\",\n \"icon-lg\": \"size-12 [&_svg:not([class*='size-'])]:size-6 [&_svg]:stroke-[1.5]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Avatar, AvatarImage, AvatarFallback } from './chunk-MSLQRGSP.js';
|
|
2
|
+
import { CycleIcon } from './chunk-OT2HCBR2.js';
|
|
3
|
+
import { Badge } from './chunk-NGOZFA33.js';
|
|
4
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { RadioIcon } from 'lucide-react';
|
|
7
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
function calcTimeLeft(target) {
|
|
10
|
+
const total = Math.max(0, target.getTime() - Date.now());
|
|
11
|
+
return {
|
|
12
|
+
days: Math.floor(total / (1e3 * 60 * 60 * 24)),
|
|
13
|
+
hours: Math.floor(total / (1e3 * 60 * 60) % 24),
|
|
14
|
+
minutes: Math.floor(total / (1e3 * 60) % 60),
|
|
15
|
+
seconds: Math.floor(total / 1e3 % 60),
|
|
16
|
+
total
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function padTwo(n) {
|
|
20
|
+
return n.toString().padStart(2, "0");
|
|
21
|
+
}
|
|
22
|
+
function getInitials(name) {
|
|
23
|
+
return name.split(" ").slice(0, 2).map((w) => w[0]).join("").toUpperCase();
|
|
24
|
+
}
|
|
25
|
+
function CountdownUnit({ value, label }) {
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1", children: [
|
|
27
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center size-14 sm:size-16 rounded-xl bg-muted border border-border text-2xl sm:text-3xl font-bold text-foreground tabular-nums", children: value }),
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "text-[11px] text-muted-foreground uppercase tracking-wider font-medium", children: label })
|
|
29
|
+
] });
|
|
30
|
+
}
|
|
31
|
+
function LiveWaiting({
|
|
32
|
+
scheduledAt,
|
|
33
|
+
teacherName,
|
|
34
|
+
teacherAvatar,
|
|
35
|
+
topic,
|
|
36
|
+
className
|
|
37
|
+
}) {
|
|
38
|
+
const [timeLeft, setTimeLeft] = React.useState(
|
|
39
|
+
() => calcTimeLeft(scheduledAt)
|
|
40
|
+
);
|
|
41
|
+
React.useEffect(() => {
|
|
42
|
+
const timer = setInterval(() => {
|
|
43
|
+
setTimeLeft(calcTimeLeft(scheduledAt));
|
|
44
|
+
}, 1e3);
|
|
45
|
+
return () => clearInterval(timer);
|
|
46
|
+
}, [scheduledAt]);
|
|
47
|
+
const hasStarted = timeLeft.total === 0;
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
"data-slot": "live-waiting",
|
|
52
|
+
className: cn(
|
|
53
|
+
"flex flex-col items-center justify-center gap-6 py-12 sm:py-16 px-4",
|
|
54
|
+
className
|
|
55
|
+
),
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsxs(Badge, { variant: "destructive", size: "lg", className: "gap-1.5", children: [
|
|
58
|
+
/* @__PURE__ */ jsx(CycleIcon, { icon: RadioIcon, size: "2xs", decorative: true }),
|
|
59
|
+
hasStarted ? "Come\xE7ando..." : "Aula ao Vivo"
|
|
60
|
+
] }),
|
|
61
|
+
topic && /* @__PURE__ */ jsx("h2", { className: "text-lg sm:text-xl font-semibold text-foreground text-center max-w-md leading-snug", children: topic }),
|
|
62
|
+
!hasStarted && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
63
|
+
timeLeft.days > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
64
|
+
/* @__PURE__ */ jsx(CountdownUnit, { value: padTwo(timeLeft.days), label: "Dias" }),
|
|
65
|
+
/* @__PURE__ */ jsx("span", { className: "text-2xl font-bold text-muted-foreground mt-[-20px]", children: ":" })
|
|
66
|
+
] }),
|
|
67
|
+
/* @__PURE__ */ jsx(CountdownUnit, { value: padTwo(timeLeft.hours), label: "Horas" }),
|
|
68
|
+
/* @__PURE__ */ jsx("span", { className: "text-2xl font-bold text-muted-foreground mt-[-20px]", children: ":" }),
|
|
69
|
+
/* @__PURE__ */ jsx(CountdownUnit, { value: padTwo(timeLeft.minutes), label: "Min" }),
|
|
70
|
+
/* @__PURE__ */ jsx("span", { className: "text-2xl font-bold text-muted-foreground mt-[-20px]", children: ":" }),
|
|
71
|
+
/* @__PURE__ */ jsx(CountdownUnit, { value: padTwo(timeLeft.seconds), label: "Seg" })
|
|
72
|
+
] }),
|
|
73
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: scheduledAt.toLocaleDateString("pt-BR", {
|
|
74
|
+
weekday: "long",
|
|
75
|
+
day: "numeric",
|
|
76
|
+
month: "long",
|
|
77
|
+
hour: "2-digit",
|
|
78
|
+
minute: "2-digit"
|
|
79
|
+
}) }),
|
|
80
|
+
teacherName && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mt-2", children: [
|
|
81
|
+
/* @__PURE__ */ jsxs(Avatar, { size: "lg", children: [
|
|
82
|
+
teacherAvatar && /* @__PURE__ */ jsx(AvatarImage, { src: teacherAvatar, alt: teacherName }),
|
|
83
|
+
/* @__PURE__ */ jsx(AvatarFallback, { className: "bg-primary text-primary-foreground", children: getInitials(teacherName) })
|
|
84
|
+
] }),
|
|
85
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
86
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: teacherName }),
|
|
87
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Professor(a)" })
|
|
88
|
+
] })
|
|
89
|
+
] })
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export { LiveWaiting };
|
|
96
|
+
//# sourceMappingURL=chunk-7XT6ISPQ.js.map
|
|
97
|
+
//# sourceMappingURL=chunk-7XT6ISPQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/live-waiting.tsx"],"names":[],"mappings":"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","file":"chunk-7XT6ISPQ.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { RadioIcon } from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons/CycleIcon\"\nimport { Avatar, AvatarImage, AvatarFallback } from \"@/components/ui/avatar\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { cn } from \"@/lib/utils\"\n\n/* ─── Types ─── */\n\nexport interface LiveWaitingProps {\n /** Scheduled start time of the live */\n scheduledAt: Date\n /** Teacher/instructor display name */\n teacherName?: string\n /** Teacher avatar URL */\n teacherAvatar?: string\n /** Live class topic/subject */\n topic?: string\n className?: string\n}\n\n/* ─── Helpers ─── */\n\ninterface TimeLeft {\n days: number\n hours: number\n minutes: number\n seconds: number\n total: number\n}\n\nfunction calcTimeLeft(target: Date): TimeLeft {\n const total = Math.max(0, target.getTime() - Date.now())\n return {\n days: Math.floor(total / (1000 * 60 * 60 * 24)),\n hours: Math.floor((total / (1000 * 60 * 60)) % 24),\n minutes: Math.floor((total / (1000 * 60)) % 60),\n seconds: Math.floor((total / 1000) % 60),\n total,\n }\n}\n\nfunction padTwo(n: number): string {\n return n.toString().padStart(2, \"0\")\n}\n\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n}\n\n/* ─── Sub-components ─── */\n\nfunction CountdownUnit({ value, label }: { value: string; label: string }) {\n return (\n <div className=\"flex flex-col items-center gap-1\">\n <div className=\"flex items-center justify-center size-14 sm:size-16 rounded-xl bg-muted border border-border text-2xl sm:text-3xl font-bold text-foreground tabular-nums\">\n {value}\n </div>\n <span className=\"text-[11px] text-muted-foreground uppercase tracking-wider font-medium\">\n {label}\n </span>\n </div>\n )\n}\n\n/* ─── Component ─── */\n\nfunction LiveWaiting({\n scheduledAt,\n teacherName,\n teacherAvatar,\n topic,\n className,\n}: LiveWaitingProps) {\n const [timeLeft, setTimeLeft] = React.useState<TimeLeft>(() =>\n calcTimeLeft(scheduledAt)\n )\n\n React.useEffect(() => {\n const timer = setInterval(() => {\n setTimeLeft(calcTimeLeft(scheduledAt))\n }, 1000)\n return () => clearInterval(timer)\n }, [scheduledAt])\n\n const hasStarted = timeLeft.total === 0\n\n return (\n <div\n data-slot=\"live-waiting\"\n className={cn(\n \"flex flex-col items-center justify-center gap-6 py-12 sm:py-16 px-4\",\n className\n )}\n >\n {/* Live badge */}\n <Badge variant=\"destructive\" size=\"lg\" className=\"gap-1.5\">\n <CycleIcon icon={RadioIcon} size=\"2xs\" decorative />\n {hasStarted ? \"Começando...\" : \"Aula ao Vivo\"}\n </Badge>\n\n {/* Topic */}\n {topic && (\n <h2 className=\"text-lg sm:text-xl font-semibold text-foreground text-center max-w-md leading-snug\">\n {topic}\n </h2>\n )}\n\n {/* Countdown */}\n {!hasStarted && (\n <div className=\"flex items-center gap-3\">\n {timeLeft.days > 0 && (\n <>\n <CountdownUnit value={padTwo(timeLeft.days)} label=\"Dias\" />\n <span className=\"text-2xl font-bold text-muted-foreground mt-[-20px]\">:</span>\n </>\n )}\n <CountdownUnit value={padTwo(timeLeft.hours)} label=\"Horas\" />\n <span className=\"text-2xl font-bold text-muted-foreground mt-[-20px]\">:</span>\n <CountdownUnit value={padTwo(timeLeft.minutes)} label=\"Min\" />\n <span className=\"text-2xl font-bold text-muted-foreground mt-[-20px]\">:</span>\n <CountdownUnit value={padTwo(timeLeft.seconds)} label=\"Seg\" />\n </div>\n )}\n\n {/* Scheduled date */}\n <p className=\"text-sm text-muted-foreground\">\n {scheduledAt.toLocaleDateString(\"pt-BR\", {\n weekday: \"long\",\n day: \"numeric\",\n month: \"long\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n })}\n </p>\n\n {/* Teacher info */}\n {teacherName && (\n <div className=\"flex items-center gap-3 mt-2\">\n <Avatar size=\"lg\">\n {teacherAvatar && (\n <AvatarImage src={teacherAvatar} alt={teacherName} />\n )}\n <AvatarFallback className=\"bg-primary text-primary-foreground\">\n {getInitials(teacherName)}\n </AvatarFallback>\n </Avatar>\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-foreground\">\n {teacherName}\n </span>\n <span className=\"text-xs text-muted-foreground\">Professor(a)</span>\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport { LiveWaiting }\n"]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadProps, __spreadValues } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Slider as Slider$1 } from 'radix-ui';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var sliderVariants = cva(
|
|
9
|
+
"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
size: {
|
|
13
|
+
sm: "",
|
|
14
|
+
default: "",
|
|
15
|
+
lg: ""
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
size: "default"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
var trackVariants = cva(
|
|
24
|
+
"relative grow overflow-hidden rounded-full bg-neutral-accent data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full",
|
|
25
|
+
{
|
|
26
|
+
variants: {
|
|
27
|
+
size: {
|
|
28
|
+
sm: "data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1",
|
|
29
|
+
default: "data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5",
|
|
30
|
+
lg: "data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
defaultVariants: {
|
|
34
|
+
size: "default"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
var thumbVariants = cva(
|
|
39
|
+
"block shrink-0 rounded-full border-2 border-primary bg-neutral-bg shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50",
|
|
40
|
+
{
|
|
41
|
+
variants: {
|
|
42
|
+
size: {
|
|
43
|
+
sm: "size-3.5",
|
|
44
|
+
default: "size-4",
|
|
45
|
+
lg: "size-5"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
defaultVariants: {
|
|
49
|
+
size: "default"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
function Slider(_a) {
|
|
54
|
+
var _b = _a, {
|
|
55
|
+
className,
|
|
56
|
+
defaultValue,
|
|
57
|
+
value,
|
|
58
|
+
min = 0,
|
|
59
|
+
max = 100,
|
|
60
|
+
size = "default",
|
|
61
|
+
theme
|
|
62
|
+
} = _b, props = __objRest(_b, [
|
|
63
|
+
"className",
|
|
64
|
+
"defaultValue",
|
|
65
|
+
"value",
|
|
66
|
+
"min",
|
|
67
|
+
"max",
|
|
68
|
+
"size",
|
|
69
|
+
"theme"
|
|
70
|
+
]);
|
|
71
|
+
const _values = React.useMemo(
|
|
72
|
+
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
73
|
+
[value, defaultValue, min, max]
|
|
74
|
+
);
|
|
75
|
+
return /* @__PURE__ */ jsxs(
|
|
76
|
+
Slider$1.Root,
|
|
77
|
+
__spreadProps(__spreadValues({
|
|
78
|
+
"data-slot": "slider",
|
|
79
|
+
defaultValue,
|
|
80
|
+
value,
|
|
81
|
+
min,
|
|
82
|
+
max,
|
|
83
|
+
className: cn(theme, sliderVariants({ size }), className)
|
|
84
|
+
}, props), {
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ jsx(
|
|
87
|
+
Slider$1.Track,
|
|
88
|
+
{
|
|
89
|
+
"data-slot": "slider-track",
|
|
90
|
+
className: trackVariants({ size }),
|
|
91
|
+
children: /* @__PURE__ */ jsx(
|
|
92
|
+
Slider$1.Range,
|
|
93
|
+
{
|
|
94
|
+
"data-slot": "slider-range",
|
|
95
|
+
className: "absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full"
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
),
|
|
100
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
|
|
101
|
+
Slider$1.Thumb,
|
|
102
|
+
{
|
|
103
|
+
"data-slot": "slider-thumb",
|
|
104
|
+
className: thumbVariants({ size })
|
|
105
|
+
},
|
|
106
|
+
index
|
|
107
|
+
))
|
|
108
|
+
]
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { Slider, sliderVariants };
|
|
114
|
+
//# sourceMappingURL=chunk-AL2ALTBH.js.map
|
|
115
|
+
//# sourceMappingURL=chunk-AL2ALTBH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/slider.tsx"],"names":["SliderPrimitive"],"mappings":"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","file":"chunk-AL2ALTBH.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Slider as SliderPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst sliderVariants = cva(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n {\n variants: {\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nconst trackVariants = cva(\n \"relative grow overflow-hidden rounded-full bg-neutral-accent data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n {\n variants: {\n size: {\n sm: \"data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1\",\n default: \"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5\",\n lg: \"data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nconst thumbVariants = cva(\n \"block shrink-0 rounded-full border-2 border-primary bg-neutral-bg shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"size-3.5\",\n default: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface SliderProps\n extends React.ComponentProps<typeof SliderPrimitive.Root>,\n VariantProps<typeof sliderVariants> {\n /** Classe de tema aplicada (ex: \"theme-brand\") */\n theme?: string\n}\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n size = \"default\",\n theme,\n ...props\n}: SliderProps) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(theme, sliderVariants({ size }), className)}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={trackVariants({ size })}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className=\"absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className={thumbVariants({ size })}\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider, sliderVariants }\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { Toggle as Toggle$1 } from 'radix-ui';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var toggleVariants = cva(
|
|
8
|
+
"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg whitespace-nowrap text-sm font-medium transition-[color,box-shadow] outline-none cursor-pointer hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "bg-transparent",
|
|
13
|
+
outline: "border border-neutral-border bg-transparent shadow-xs dark:shadow-none hover:bg-accent hover:text-accent-foreground"
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
default: "h-10 px-4 has-[>svg]:px-3",
|
|
17
|
+
xs: "h-6 px-2 text-xs has-[>svg]:px-1.5",
|
|
18
|
+
sm: "h-8 px-3 has-[>svg]:px-2.5",
|
|
19
|
+
lg: "h-12 px-6 text-base has-[>svg]:px-4",
|
|
20
|
+
icon: "size-10",
|
|
21
|
+
"icon-xs": "size-6",
|
|
22
|
+
"icon-sm": "size-8",
|
|
23
|
+
"icon-lg": "size-12"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
variant: "default",
|
|
28
|
+
size: "default"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
function Toggle(_a) {
|
|
33
|
+
var _b = _a, {
|
|
34
|
+
className,
|
|
35
|
+
variant,
|
|
36
|
+
size,
|
|
37
|
+
fillOnPress = false
|
|
38
|
+
} = _b, props = __objRest(_b, [
|
|
39
|
+
"className",
|
|
40
|
+
"variant",
|
|
41
|
+
"size",
|
|
42
|
+
"fillOnPress"
|
|
43
|
+
]);
|
|
44
|
+
return /* @__PURE__ */ jsx(
|
|
45
|
+
Toggle$1.Root,
|
|
46
|
+
__spreadValues({
|
|
47
|
+
"data-slot": "toggle",
|
|
48
|
+
className: cn(
|
|
49
|
+
toggleVariants({ variant, size }),
|
|
50
|
+
fillOnPress && "data-[state=on]:[&_svg]:fill-current",
|
|
51
|
+
className
|
|
52
|
+
)
|
|
53
|
+
}, props)
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { Toggle, toggleVariants };
|
|
58
|
+
//# sourceMappingURL=chunk-CIM6KJH5.js.map
|
|
59
|
+
//# sourceMappingURL=chunk-CIM6KJH5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/toggle.tsx"],"names":["TogglePrimitive"],"mappings":";;;;;;AAQA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,2bAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,gBAAA;AAAA,QACF,OAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,2BAAA;AAAA,QACT,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,EAAA,EAAI,qCAAA;AAAA,QACJ,IAAA,EAAM,SAAA;AAAA,QACN,SAAA,EAAW,QAAA;AAAA,QACX,SAAA,EAAW,QAAA;AAAA,QACX,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AASA,SAAS,OAAO,EAAA,EAMA;AANA,EAAA,IAAA,EAAA,GAAA,EAAA,EACd;AAAA,IAAA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA,GAAc;AAAA,GA/ChB,GA2CgB,EAAA,EAKX,KAAA,GAAA,SAAA,CALW,EAAA,EAKX;AAAA,IAJH,WAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAACA,QAAA,CAAgB,IAAA;AAAA,IAAhB,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,cAAA,CAAe,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QAChC,WAAA,IAAe,sCAAA;AAAA,QACf;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ","file":"chunk-CIM6KJH5.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-lg whitespace-nowrap text-sm font-medium transition-[color,box-shadow] outline-none cursor-pointer hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-transparent\",\n outline:\n \"border border-neutral-border bg-transparent shadow-xs dark:shadow-none hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-4 has-[>svg]:px-3\",\n xs: \"h-6 px-2 text-xs has-[>svg]:px-1.5\",\n sm: \"h-8 px-3 has-[>svg]:px-2.5\",\n lg: \"h-12 px-6 text-base has-[>svg]:px-4\",\n icon: \"size-10\",\n \"icon-xs\": \"size-6\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-12\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ToggleProps\n extends React.ComponentProps<typeof TogglePrimitive.Root>,\n VariantProps<typeof toggleVariants> {\n /** Preenche icones SVG quando o toggle esta ativo (on). Ideal para icones como Heart, Star, Bookmark. */\n fillOnPress?: boolean\n}\n\nfunction Toggle({\n className,\n variant,\n size,\n fillOnPress = false,\n ...props\n}: ToggleProps) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(\n toggleVariants({ variant, size }),\n fillOnPress && \"data-[state=on]:[&_svg]:fill-current\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function Input(_a) {
|
|
6
|
+
var _b = _a, { className, type, inputSize = "default", variant = "outline" } = _b, props = __objRest(_b, ["className", "type", "inputSize", "variant"]);
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
"input",
|
|
9
|
+
__spreadValues({
|
|
10
|
+
type,
|
|
11
|
+
"data-slot": "input",
|
|
12
|
+
"data-size": inputSize,
|
|
13
|
+
"data-variant": variant,
|
|
14
|
+
className: cn(
|
|
15
|
+
// Base
|
|
16
|
+
"w-full min-w-0 rounded-lg text-neutral-foreground transition-[color,border-color,box-shadow,background-color] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:border-0 file:bg-transparent file:font-medium file:text-neutral-foreground placeholder:text-neutral-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
17
|
+
// Variant: outline
|
|
18
|
+
variant === "outline" && "border border-neutral-border bg-transparent shadow-xs dark:border-neutral-border dark:bg-transparent dark:shadow-none",
|
|
19
|
+
variant === "outline" && "hover:border-ring hover:bg-ring/5",
|
|
20
|
+
variant === "outline" && "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:bg-ring/5",
|
|
21
|
+
// Variant: filled (mesmos tokens do Button outline: accent light, input dark)
|
|
22
|
+
variant === "filled" && "border border-transparent bg-neutral-accent",
|
|
23
|
+
variant === "filled" && "hover:border-ring hover:bg-secondary",
|
|
24
|
+
variant === "filled" && "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:bg-secondary",
|
|
25
|
+
// Error (sempre visível, ambas variantes)
|
|
26
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:hover:border-destructive dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/40",
|
|
27
|
+
// Sizes
|
|
28
|
+
inputSize === "sm" && "h-8 px-3 py-2 text-sm",
|
|
29
|
+
inputSize === "default" && "h-10 px-4 py-2 text-sm",
|
|
30
|
+
inputSize === "lg" && "h-12 px-4 py-3 text-base",
|
|
31
|
+
className
|
|
32
|
+
)
|
|
33
|
+
}, props)
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { Input };
|
|
38
|
+
//# sourceMappingURL=chunk-CSL4DRPW.js.map
|
|
39
|
+
//# sourceMappingURL=chunk-CSL4DRPW.js.map
|