ds-grupo-rkb 1.0.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 (143) hide show
  1. package/.prettierignore +3 -0
  2. package/.prettierrc.json +6 -0
  3. package/.storybook/main.ts +13 -0
  4. package/.storybook/preview.ts +63 -0
  5. package/.vscode/extensions.json +3 -0
  6. package/AGENTS.md +52 -0
  7. package/README.md +46 -0
  8. package/check_sb.bat +8 -0
  9. package/check_storybook.bat +8 -0
  10. package/dist/components/AccordionGroup.vue.d.ts +34 -0
  11. package/dist/components/AccordionItem.vue.d.ts +25 -0
  12. package/dist/components/BackToTop.vue.d.ts +20 -0
  13. package/dist/components/Button.vue.d.ts +46 -0
  14. package/dist/components/Card.vue.d.ts +24 -0
  15. package/dist/components/Container.vue.d.ts +20 -0
  16. package/dist/components/Drawer.vue.d.ts +29 -0
  17. package/dist/components/FeatureCard.vue.d.ts +28 -0
  18. package/dist/components/Footer.vue.d.ts +30 -0
  19. package/dist/components/FormField.vue.d.ts +22 -0
  20. package/dist/components/Grid.vue.d.ts +22 -0
  21. package/dist/components/Header.vue.d.ts +25 -0
  22. package/dist/components/Heading.vue.d.ts +22 -0
  23. package/dist/components/IconSet.vue.d.ts +24 -0
  24. package/dist/components/Input.vue.d.ts +21 -0
  25. package/dist/components/Reveal.vue.d.ts +25 -0
  26. package/dist/components/Section.vue.d.ts +26 -0
  27. package/dist/components/Tag.vue.d.ts +19 -0
  28. package/dist/components/Text.vue.d.ts +25 -0
  29. package/dist/components/Textarea.vue.d.ts +18 -0
  30. package/dist/components/TypographyPalette.vue.d.ts +3 -0
  31. package/dist/favicon.svg +1 -0
  32. package/dist/icons.svg +24 -0
  33. package/dist/index.d.ts +33 -0
  34. package/dist/index.js +961 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/style.css +2 -0
  37. package/docs/COMMANDS.md +50 -0
  38. package/docs/adr/001-ds-code-first-multi-marca.md +108 -0
  39. package/docs/adr/002-camargo-gallo-accent-ink-deep.md +51 -0
  40. package/docs/adr/003-tipografia-tokens.md +37 -0
  41. package/docs/adr/004-motion-tokens.md +41 -0
  42. package/docs/roadmap.md +48 -0
  43. package/eslint.config.js +29 -0
  44. package/final_check.txt +0 -0
  45. package/index.html +15 -0
  46. package/lint.txt +0 -0
  47. package/package.json +65 -0
  48. package/public/favicon.svg +1 -0
  49. package/public/icons.svg +24 -0
  50. package/src/App.vue +8 -0
  51. package/src/assets/vite.svg +1 -0
  52. package/src/components/Accordion.stories.ts +117 -0
  53. package/src/components/AccordionGroup.vue +59 -0
  54. package/src/components/AccordionItem.vue +81 -0
  55. package/src/components/BackToTop.stories.ts +36 -0
  56. package/src/components/BackToTop.vue +60 -0
  57. package/src/components/Button.stories.ts +105 -0
  58. package/src/components/Button.test.ts +36 -0
  59. package/src/components/Button.vue +77 -0
  60. package/src/components/Card.stories.ts +176 -0
  61. package/src/components/Card.vue +61 -0
  62. package/src/components/ColorPalette.stories.ts +95 -0
  63. package/src/components/ColorPalette.vue +71 -0
  64. package/src/components/ColorTokens.vue +176 -0
  65. package/src/components/Container.stories.ts +22 -0
  66. package/src/components/Container.vue +24 -0
  67. package/src/components/Drawer.stories.ts +264 -0
  68. package/src/components/Drawer.test.ts +111 -0
  69. package/src/components/Drawer.vue +232 -0
  70. package/src/components/FeatureCard.stories.ts +180 -0
  71. package/src/components/FeatureCard.vue +65 -0
  72. package/src/components/Footer.stories.ts +66 -0
  73. package/src/components/Footer.vue +121 -0
  74. package/src/components/FormField.stories.ts +55 -0
  75. package/src/components/FormField.vue +17 -0
  76. package/src/components/Grid.stories.ts +53 -0
  77. package/src/components/Grid.vue +34 -0
  78. package/src/components/Header.stories.ts +33 -0
  79. package/src/components/Header.vue +41 -0
  80. package/src/components/Heading.stories.ts +34 -0
  81. package/src/components/Heading.vue +33 -0
  82. package/src/components/IconSet.vue +26 -0
  83. package/src/components/Icons.stories.ts +108 -0
  84. package/src/components/Input.stories.ts +59 -0
  85. package/src/components/Input.vue +42 -0
  86. package/src/components/Reveal.stories.ts +52 -0
  87. package/src/components/Reveal.vue +90 -0
  88. package/src/components/Section.stories.ts +43 -0
  89. package/src/components/Section.vue +39 -0
  90. package/src/components/Tag.stories.ts +29 -0
  91. package/src/components/Tag.vue +19 -0
  92. package/src/components/Text.stories.ts +39 -0
  93. package/src/components/Text.vue +45 -0
  94. package/src/components/Textarea.stories.ts +24 -0
  95. package/src/components/Textarea.vue +37 -0
  96. package/src/components/TypographyPalette.stories.ts +98 -0
  97. package/src/components/TypographyPalette.vue +117 -0
  98. package/src/foundations/Spacing.stories.ts +25 -0
  99. package/src/foundations/Spacing.vue +23 -0
  100. package/src/foundations/spacing.mdx +21 -0
  101. package/src/foundations/tokens.mdx +87 -0
  102. package/src/index.ts +42 -0
  103. package/src/main.ts +5 -0
  104. package/src/style.css +13 -0
  105. package/src/tokens/motion.css +27 -0
  106. package/src/tokens/primitives.css +44 -0
  107. package/src/tokens/semantic.css +38 -0
  108. package/src/tokens/themes.css +39 -0
  109. package/src/tokens/typography.css +27 -0
  110. package/start-storybook.bat +41 -0
  111. package/start-storybook.ps1 +55 -0
  112. package/storybook_doc.txt +0 -0
  113. package/storybook_final.txt +0 -0
  114. package/storybook_final2.txt +0 -0
  115. package/storybook_final_attempt.txt +0 -0
  116. package/storybook_fix.txt +0 -0
  117. package/storybook_fixed.txt +0 -0
  118. package/storybook_fixed2.txt +0 -0
  119. package/storybook_grid.txt +0 -0
  120. package/storybook_min2.txt +0 -0
  121. package/storybook_minimal.txt +0 -0
  122. package/storybook_nocomment.txt +0 -0
  123. package/storybook_noscript.txt +0 -0
  124. package/storybook_nostyle.txt +0 -0
  125. package/storybook_notxt.txt +0 -0
  126. package/storybook_out.txt +54 -0
  127. package/storybook_output.txt +54 -0
  128. package/storybook_select.txt +0 -0
  129. package/storybook_step1.txt +0 -0
  130. package/storybook_step2.txt +0 -0
  131. package/storybook_step3.txt +0 -0
  132. package/storybook_test.txt +0 -0
  133. package/storybook_v12.txt +0 -0
  134. package/storybook_v3.txt +0 -0
  135. package/storybook_v4.txt +0 -0
  136. package/storybook_vue_fixed.txt +0 -0
  137. package/tsconfig.app.json +15 -0
  138. package/tsconfig.json +4 -0
  139. package/tsconfig.node.json +23 -0
  140. package/typecheck.txt +0 -0
  141. package/vite.config.ts +49 -0
  142. package/vite.lib.config.ts +33 -0
  143. package/vitest.shims.d.ts +1 -0
@@ -0,0 +1,3 @@
1
+ dist/
2
+ storybook-static/
3
+ node_modules/
@@ -0,0 +1,6 @@
1
+ {
2
+ "semi": false,
3
+ "singleQuote": true,
4
+ "trailingComma": "all",
5
+ "printWidth": 100
6
+ }
@@ -0,0 +1,13 @@
1
+ import type { StorybookConfig } from '@storybook/vue3-vite'
2
+
3
+ const config: StorybookConfig = {
4
+ stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
5
+ addons: [
6
+ '@chromatic-com/storybook',
7
+ '@storybook/addon-vitest',
8
+ '@storybook/addon-a11y',
9
+ '@storybook/addon-docs',
10
+ ],
11
+ framework: '@storybook/vue3-vite',
12
+ }
13
+ export default config
@@ -0,0 +1,63 @@
1
+ import type { Preview, Decorator } from '@storybook/vue3-vite'
2
+ import '../src/style.css'
3
+
4
+ export type ThemeMode = 'rkb' | 'camargo-gallo' | 'fibramfer'
5
+
6
+ const withTheme: Decorator = (story, context) => {
7
+ const theme = (context.globals.theme as ThemeMode) ?? 'rkb'
8
+ document.body.setAttribute('data-theme', theme)
9
+ return story()
10
+ }
11
+
12
+ const withCardGlobal: Decorator = (story, context) => {
13
+ const original = story()
14
+ return original
15
+ }
16
+
17
+ const preview: Preview = {
18
+ storySort: {
19
+ group: [
20
+ {
21
+ name: 'Foundations',
22
+ items: [
23
+ 'Foundations/Color Palette',
24
+ 'Foundations/Tokens',
25
+ 'Foundations/Typography',
26
+ 'Foundations/Spacing',
27
+ ],
28
+ },
29
+ {
30
+ name: 'Components',
31
+ },
32
+ ],
33
+ },
34
+ decorators: [withTheme, withCardGlobal],
35
+ globalTypes: {
36
+ theme: {
37
+ description: 'Marca',
38
+ toolbar: {
39
+ title: 'Marca',
40
+ icon: 'paintbrush',
41
+ items: [
42
+ { value: 'rkb', title: 'RKB Engenharia' },
43
+ { value: 'camargo-gallo', title: 'Camargo Gallo' },
44
+ { value: 'fibramfer', title: 'Fibramfer' },
45
+ ],
46
+ dynamicTitle: true,
47
+ },
48
+ },
49
+ },
50
+ parameters: {
51
+ controls: {
52
+ matchers: {
53
+ color: /(background|color)$/i,
54
+ date: /Date$/i,
55
+ },
56
+ },
57
+ a11y: {
58
+ test: 'todo',
59
+ },
60
+ },
61
+ }
62
+
63
+ export default preview
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["Vue.volar"]
3
+ }
package/AGENTS.md ADDED
@@ -0,0 +1,52 @@
1
+ # AGENTS.md
2
+
3
+ > Instruções para agentes de IA (OpenCode) trabalharem neste repositório.
4
+
5
+ ## Antes de agir
6
+
7
+ - Leia `docs/adr/001-ds-code-first-multi-marca.md` — é o CONTEXTO INICIAL do projeto.
8
+ - Não construir fora do escopo definido no item 12 do ADR.
9
+
10
+ ## Regras técnicas
11
+
12
+ - Componentes: Vue 3 puro (SFC + Vite + TypeScript), sem API de framework (NuxtLink, useHead, auto-imports).
13
+ - Componentes consomem APENAS tokens semânticos (`--color-primary-500`, `--color-surface`, ...). Nunca primitivos.
14
+ - Primitivos: paleta crua em CSS variables com nomenclatura Tailwind.
15
+ - Theming: modos por `body[data-theme="rkb" | "camargo-gallo" | "fibramfer"]`.
16
+ - Estilização: Tailwind v4 + tokens em CSS variables.
17
+
18
+ ## Motion & prefers-reduced-motion
19
+
20
+ - O DS segue a preferência de **cada SO/navegador**: `no-preference` anima; `reduce`
21
+ entrega estados finais de forma instantânea (acessibilidade — ADR-004).
22
+ - Isso é **por máquina**, não um bug global. Se uma animação não parece animar ao
23
+ desenvolver: verifique se o Windows está com **"Efeitos de animação"** desligado
24
+ (Configurações > Acessibilidade > Efeitos visuais) ou emule `no-preference` no
25
+ Chrome DevTools > Rendering.
26
+ - **Não remova/atenue a regra de acessibilidade** (`@media (prefers-reduced-motion)`).
27
+
28
+ ## Convenções
29
+
30
+ - Arquivos: kebab-case
31
+ - Componentes: PascalCase
32
+ - Modos/data-theme: kebab-case
33
+ - ADRs: `docs/adr/NNN-titulo-curto.md`
34
+ - Decisão estrutural nova → propor um ADR antes de executar.
35
+
36
+ ## Fluxo de trabalho
37
+
38
+ - Ao concluir tarefas, atualizar `docs/roadmap.md`.
39
+ - Rodar lint/typecheck antes de finalizar (ver package.json).
40
+
41
+ ## Fluxo DS → consumidor
42
+
43
+ - Pedidos como "propaga o token pro front / release da lib / publica o dist / sync build" significam: rodar `npm run build:lib` no DS e depois `npm run dev -- --force` no consumidor. Ver `docs/COMMANDS.md`.
44
+
45
+ ## DS-first (reuso em LPs/sites)
46
+
47
+ - Estratégia: **construir no DS, reaproveitar em LPs/sites** (1 DS → N consumidores).
48
+ - O DS é a **fonte da verdade**. Procurar produzir no DS: componentes reutilizáveis
49
+ (`Section`, `Grid`, `Header`, `Footer`, `Card`...) e depois consumir.
50
+ - Nunca duplicar componente no consumidor (CTRL+C/CTRL+V). O que for provado reutilizável
51
+ sobe ao DS, e o consumidor passa a importar de `file:` + remover a cópia local.
52
+ - O que fica no consumidor: layout de página, copy e ativos da marca (logo/imagens).
package/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # DS Grupo RKB
2
+
3
+ Design System multi-marca do Grupo RKB Engenharia (RKB Engenharia, Camargo Gallo e Fibramfer).
4
+
5
+ - Componentes: Vue 3 puro (SFC + Vite + TypeScript), sem API de framework.
6
+ - Estilização: Tailwind v4 + tokens em CSS variables (primitivos + semânticos).
7
+ - Docs/galeria/testes: Storybook (1 hub, seletor de 3 marcas).
8
+ - Ver contexto completo em `docs/adr/001-ds-code-first-multi-marca.md`.
9
+
10
+ ## Scripts
11
+
12
+ | Comando | Descrição |
13
+ | ------------------- | ----------------------------------------------------------- |
14
+ | `npm run dev` | Dev playground (Vite) |
15
+ | `npm run storybook` | Storybook em `localhost:6006` (seletor de marca na toolbar) |
16
+ | `npm run build:lib` | Build da lib em `dist/` (index.js + style.css + *.d.ts) |
17
+ | `npm run test` | Testes unitários (Vitest + Vue Test Utils) |
18
+ | `npm run lint` | ESLint |
19
+ | `npm run typecheck` | vue-tsc |
20
+
21
+ ## Consumo como lib
22
+
23
+ ```bash
24
+ # no app consumidor (projeto irmão em C:\Users\maxeb\Projetos\)
25
+ npm install ../ds-grupo-rkb
26
+ ```
27
+
28
+ ```ts
29
+ // no app
30
+ import { Button, Tag, Container } from 'ds-grupo-rkb'
31
+ import 'ds-grupo-rkb/style.css'
32
+ ```
33
+
34
+ ### Aplicando a marca (theming)
35
+
36
+ As 3 marcas são modos por escopo no `<body>`:
37
+ `data-theme="rkb"` (padrão), `data-theme="camargo-gallo"`, `data-theme="fibramfer"`.
38
+
39
+ ```html
40
+ <body data-theme="camargo-gallo"></body>
41
+ ```
42
+
43
+ Os componentes leem apenas tokens semânticos (`--color-primary-500`, `--color-surface`, ...); cada marca remapeia esses tokens para a paleta própria em `src/tokens/themes.css`.
44
+
45
+ > Dev: ao alterar componentes/tokens, rode `npm run build:lib` e, no consumidor, `npm run dev -- --force` (ou reinstale) para refletir as mudanças.
46
+ > Veja `docs/COMMANDS.md` para o fluxo completo DS → consumidor e as frases de comando canônicas.
package/check_sb.bat ADDED
@@ -0,0 +1,8 @@
1
+ @echo off
2
+ cd C:\Users\maxeb\Projetos\ds-grupo-rkb
3
+ npm run storybook > storybook_out.txt 2>&1
4
+ echo EXIT_CODE=%errorlevel% > result.txt
5
+ find "MDX" storybook_out.txt && echo "HAS_MDX_ERROR" >> result.txt || echo "NO_MDX_ERROR" >> result.txt
6
+ find "Unable to index" storybook_out.txt && echo "HAS_INDEX_ERROR" >> result.txt || echo "NO_INDEX_ERROR" >> result.txt
7
+ timeout /t 5 /nobreak > nul
8
+ taskkill /f /im "storybook" 2>nul
@@ -0,0 +1,8 @@
1
+ @echo off
2
+ cd C:\Users\maxeb\Projetos\ds-grupo-rkb
3
+ npm run storybook 2>&1 > storybook_output.txt
4
+ echo Exit code: %errorlevel%
5
+ timeout /t 3 /nobreak > nul
6
+ taskkill /f /im "storybook" 2>nul || exit /b 0
7
+ find "Unable to index" storybook_output.txt && echo "MDX ERROR FOUND" || echo "No MDX error found"
8
+ find "Error" storybook_output.txt &2>nul || echo "No Error found"
@@ -0,0 +1,34 @@
1
+ import { Ref } from 'vue';
2
+ export interface AccordionContext {
3
+ activeId: Ref<string | null>;
4
+ toggle: (id: string) => void;
5
+ register: (id: string) => number;
6
+ setActive: (id: string) => void;
7
+ }
8
+ interface Props {
9
+ defaultIndex?: number | null;
10
+ collapsible?: boolean;
11
+ }
12
+ declare function toggle(id: string): void;
13
+ declare function setActive(id: string): void;
14
+ declare var __VLS_1: {};
15
+ type __VLS_Slots = {} & {
16
+ default?: (props: typeof __VLS_1) => any;
17
+ };
18
+ declare const __VLS_base: import('vue').DefineComponent<Props, {
19
+ activeId: Ref<string | null, string | null>;
20
+ order: Ref<string[], string[]>;
21
+ setActive: typeof setActive;
22
+ toggle: typeof toggle;
23
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
24
+ defaultIndex: number | null;
25
+ collapsible: boolean;
26
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -0,0 +1,25 @@
1
+ interface Props {
2
+ title: string;
3
+ itemId?: string;
4
+ defaultOpen?: boolean;
5
+ }
6
+ declare var __VLS_6: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_6) => any;
9
+ };
10
+ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
11
+ select: (id: string) => any;
12
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
13
+ onSelect?: ((id: string) => any) | undefined;
14
+ }>, {
15
+ itemId: string;
16
+ defaultOpen: boolean;
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
18
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,20 @@
1
+ export interface BackToTopProps {
2
+ visible?: boolean;
3
+ threshold?: number;
4
+ }
5
+ declare var __VLS_1: {};
6
+ type __VLS_Slots = {} & {
7
+ default?: (props: typeof __VLS_1) => any;
8
+ };
9
+ declare const __VLS_base: import('vue').DefineComponent<BackToTopProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BackToTopProps> & Readonly<{}>, {
10
+ visible: boolean;
11
+ threshold: number;
12
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
13
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
16
+ type __VLS_WithSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -0,0 +1,46 @@
1
+ export type ButtonVariant = 'primary' | 'secondary' | 'ghost';
2
+ export type ButtonSize = 'sm' | 'md' | 'lg';
3
+ export interface ButtonLink {
4
+ as: 'a';
5
+ href: string;
6
+ target?: string;
7
+ rel?: string;
8
+ }
9
+ type __VLS_Props = {
10
+ variant?: ButtonVariant;
11
+ size?: ButtonSize;
12
+ fullWidth?: boolean;
13
+ disabled?: boolean;
14
+ type?: 'button' | 'submit' | 'reset';
15
+ as?: 'button' | 'a';
16
+ href?: string;
17
+ target?: string;
18
+ rel?: string;
19
+ };
20
+ declare var __VLS_10: {};
21
+ type __VLS_Slots = {} & {
22
+ default?: (props: typeof __VLS_10) => any;
23
+ };
24
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
25
+ click: (ev: MouseEvent) => any;
26
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
27
+ onClick?: ((ev: MouseEvent) => any) | undefined;
28
+ }>, {
29
+ variant: ButtonVariant;
30
+ size: ButtonSize;
31
+ fullWidth: boolean;
32
+ disabled: boolean;
33
+ type: "button" | "submit" | "reset";
34
+ as: "button" | "a";
35
+ href: string;
36
+ target: string;
37
+ rel: string;
38
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
39
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
40
+ declare const _default: typeof __VLS_export;
41
+ export default _default;
42
+ type __VLS_WithSlots<T, S> = T & {
43
+ new (): {
44
+ $slots: S;
45
+ };
46
+ };
@@ -0,0 +1,24 @@
1
+ export type CardTone = 'surface' | 'surface-alt';
2
+ export type CardPadding = 'sm' | 'md' | 'lg';
3
+ interface CardProps {
4
+ tone?: CardTone;
5
+ padding?: CardPadding;
6
+ interactive?: boolean;
7
+ }
8
+ declare var __VLS_1: {};
9
+ type __VLS_Slots = {} & {
10
+ default?: (props: typeof __VLS_1) => any;
11
+ };
12
+ declare const __VLS_base: import('vue').DefineComponent<CardProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CardProps> & Readonly<{}>, {
13
+ tone: CardTone;
14
+ padding: CardPadding;
15
+ interactive: boolean;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ type __VLS_WithSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,20 @@
1
+ type __VLS_Props = {
2
+ as?: string;
3
+ size?: 'sm' | 'md' | 'lg';
4
+ };
5
+ declare var __VLS_8: {};
6
+ type __VLS_Slots = {} & {
7
+ default?: (props: typeof __VLS_8) => any;
8
+ };
9
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ size: "sm" | "md" | "lg";
11
+ as: string;
12
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
13
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
16
+ type __VLS_WithSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -0,0 +1,29 @@
1
+ type Placement = 'top' | 'right' | 'bottom' | 'left';
2
+ interface Props {
3
+ open?: boolean;
4
+ title?: string;
5
+ placement?: Placement;
6
+ }
7
+ declare var __VLS_13: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_13) => any;
10
+ };
11
+ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
12
+ close: () => any;
13
+ "update:open": (value: boolean) => any;
14
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
15
+ onClose?: (() => any) | undefined;
16
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
17
+ }>, {
18
+ title: string;
19
+ open: boolean;
20
+ placement: Placement;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -0,0 +1,28 @@
1
+ export type FeatureCardTone = 'surface-alt' | 'deep';
2
+ export type FeatureCardDivider = 'full' | '3/4' | '1/2';
3
+ type __VLS_Props = {
4
+ tone?: FeatureCardTone;
5
+ interactive?: boolean;
6
+ divider?: FeatureCardDivider;
7
+ };
8
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
9
+ type __VLS_Slots = {} & {
10
+ title?: (props: typeof __VLS_1) => any;
11
+ } & {
12
+ description?: (props: typeof __VLS_3) => any;
13
+ } & {
14
+ actions?: (props: typeof __VLS_5) => any;
15
+ };
16
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
+ tone: FeatureCardTone;
18
+ interactive: boolean;
19
+ divider: FeatureCardDivider;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
24
+ type __VLS_WithSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,30 @@
1
+ export interface FooterLink {
2
+ label: string;
3
+ href: string;
4
+ }
5
+ export interface FooterColumn {
6
+ title: string;
7
+ links: FooterLink[];
8
+ }
9
+ export interface FooterLegalLinks {
10
+ label: string;
11
+ href: string;
12
+ }
13
+ export interface FooterCompanyInfo {
14
+ companyName?: string;
15
+ cnpj?: string;
16
+ address?: string;
17
+ legalLinks?: FooterLegalLinks[];
18
+ }
19
+ type __VLS_Props = {
20
+ columns?: FooterColumn[];
21
+ copyright?: string;
22
+ companyInfo?: FooterCompanyInfo;
23
+ };
24
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
25
+ columns: FooterColumn[];
26
+ copyright: string;
27
+ companyInfo: FooterCompanyInfo;
28
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ id?: string;
3
+ label?: string;
4
+ hint?: string;
5
+ };
6
+ declare var __VLS_1: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_1) => any;
9
+ };
10
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
+ label: string;
12
+ id: string;
13
+ hint: string;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,22 @@
1
+ export type GridCols = 1 | 2 | 3 | 4;
2
+ export type GridGap = 'sm' | 'md' | 'lg';
3
+ type __VLS_Props = {
4
+ cols?: GridCols;
5
+ gap?: GridGap;
6
+ };
7
+ declare var __VLS_1: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_1) => any;
10
+ };
11
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ cols: GridCols;
13
+ gap: GridGap;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,25 @@
1
+ export interface HeaderNavItem {
2
+ label: string;
3
+ href: string;
4
+ active?: boolean;
5
+ }
6
+ type __VLS_Props = {
7
+ nav?: HeaderNavItem[];
8
+ };
9
+ declare var __VLS_1: {}, __VLS_3: {};
10
+ type __VLS_Slots = {} & {
11
+ logo?: (props: typeof __VLS_1) => any;
12
+ } & {
13
+ cta?: (props: typeof __VLS_3) => any;
14
+ };
15
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
+ nav: HeaderNavItem[];
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
18
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,22 @@
1
+ export type HeadingLevel = '1' | '2' | '3' | '4' | '5' | '6';
2
+ export type HeadingSize = 'display' | '3xl' | '2xl' | 'xl' | 'base';
3
+ type __VLS_Props = {
4
+ as?: HeadingLevel;
5
+ size?: HeadingSize;
6
+ };
7
+ declare var __VLS_8: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_8) => any;
10
+ };
11
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ size: HeadingSize;
13
+ as: HeadingLevel;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,24 @@
1
+ export interface IconsProps {
2
+ name?: string;
3
+ size?: number;
4
+ strokeWidth?: number;
5
+ color?: string;
6
+ }
7
+ declare var __VLS_1: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_1) => any;
10
+ };
11
+ declare const __VLS_base: import('vue').DefineComponent<IconsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<IconsProps> & Readonly<{}>, {
12
+ size: number;
13
+ name: string;
14
+ color: string;
15
+ strokeWidth: number;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ type __VLS_WithSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,21 @@
1
+ export type InputType = 'text' | 'email' | 'tel' | 'password' | 'number';
2
+ type __VLS_Props = {
3
+ id?: string;
4
+ type?: InputType;
5
+ name?: string;
6
+ placeholder?: string;
7
+ value?: string;
8
+ required?: boolean;
9
+ disabled?: boolean;
10
+ };
11
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ disabled: boolean;
13
+ type: InputType;
14
+ id: string;
15
+ name: string;
16
+ placeholder: string;
17
+ value: string;
18
+ required: boolean;
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
@@ -0,0 +1,25 @@
1
+ export type RevealDirection = 'up' | 'down' | 'left' | 'right' | 'none';
2
+ type __VLS_Props = {
3
+ delay?: number;
4
+ duration?: number;
5
+ direction?: RevealDirection;
6
+ once?: boolean;
7
+ };
8
+ declare var __VLS_1: {};
9
+ type __VLS_Slots = {} & {
10
+ default?: (props: typeof __VLS_1) => any;
11
+ };
12
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
+ delay: number;
14
+ duration: number;
15
+ direction: RevealDirection;
16
+ once: boolean;
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
18
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };