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.
- package/.prettierignore +3 -0
- package/.prettierrc.json +6 -0
- package/.storybook/main.ts +13 -0
- package/.storybook/preview.ts +63 -0
- package/.vscode/extensions.json +3 -0
- package/AGENTS.md +52 -0
- package/README.md +46 -0
- package/check_sb.bat +8 -0
- package/check_storybook.bat +8 -0
- package/dist/components/AccordionGroup.vue.d.ts +34 -0
- package/dist/components/AccordionItem.vue.d.ts +25 -0
- package/dist/components/BackToTop.vue.d.ts +20 -0
- package/dist/components/Button.vue.d.ts +46 -0
- package/dist/components/Card.vue.d.ts +24 -0
- package/dist/components/Container.vue.d.ts +20 -0
- package/dist/components/Drawer.vue.d.ts +29 -0
- package/dist/components/FeatureCard.vue.d.ts +28 -0
- package/dist/components/Footer.vue.d.ts +30 -0
- package/dist/components/FormField.vue.d.ts +22 -0
- package/dist/components/Grid.vue.d.ts +22 -0
- package/dist/components/Header.vue.d.ts +25 -0
- package/dist/components/Heading.vue.d.ts +22 -0
- package/dist/components/IconSet.vue.d.ts +24 -0
- package/dist/components/Input.vue.d.ts +21 -0
- package/dist/components/Reveal.vue.d.ts +25 -0
- package/dist/components/Section.vue.d.ts +26 -0
- package/dist/components/Tag.vue.d.ts +19 -0
- package/dist/components/Text.vue.d.ts +25 -0
- package/dist/components/Textarea.vue.d.ts +18 -0
- package/dist/components/TypographyPalette.vue.d.ts +3 -0
- package/dist/favicon.svg +1 -0
- package/dist/icons.svg +24 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +961 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +2 -0
- package/docs/COMMANDS.md +50 -0
- package/docs/adr/001-ds-code-first-multi-marca.md +108 -0
- package/docs/adr/002-camargo-gallo-accent-ink-deep.md +51 -0
- package/docs/adr/003-tipografia-tokens.md +37 -0
- package/docs/adr/004-motion-tokens.md +41 -0
- package/docs/roadmap.md +48 -0
- package/eslint.config.js +29 -0
- package/final_check.txt +0 -0
- package/index.html +15 -0
- package/lint.txt +0 -0
- package/package.json +65 -0
- package/public/favicon.svg +1 -0
- package/public/icons.svg +24 -0
- package/src/App.vue +8 -0
- package/src/assets/vite.svg +1 -0
- package/src/components/Accordion.stories.ts +117 -0
- package/src/components/AccordionGroup.vue +59 -0
- package/src/components/AccordionItem.vue +81 -0
- package/src/components/BackToTop.stories.ts +36 -0
- package/src/components/BackToTop.vue +60 -0
- package/src/components/Button.stories.ts +105 -0
- package/src/components/Button.test.ts +36 -0
- package/src/components/Button.vue +77 -0
- package/src/components/Card.stories.ts +176 -0
- package/src/components/Card.vue +61 -0
- package/src/components/ColorPalette.stories.ts +95 -0
- package/src/components/ColorPalette.vue +71 -0
- package/src/components/ColorTokens.vue +176 -0
- package/src/components/Container.stories.ts +22 -0
- package/src/components/Container.vue +24 -0
- package/src/components/Drawer.stories.ts +264 -0
- package/src/components/Drawer.test.ts +111 -0
- package/src/components/Drawer.vue +232 -0
- package/src/components/FeatureCard.stories.ts +180 -0
- package/src/components/FeatureCard.vue +65 -0
- package/src/components/Footer.stories.ts +66 -0
- package/src/components/Footer.vue +121 -0
- package/src/components/FormField.stories.ts +55 -0
- package/src/components/FormField.vue +17 -0
- package/src/components/Grid.stories.ts +53 -0
- package/src/components/Grid.vue +34 -0
- package/src/components/Header.stories.ts +33 -0
- package/src/components/Header.vue +41 -0
- package/src/components/Heading.stories.ts +34 -0
- package/src/components/Heading.vue +33 -0
- package/src/components/IconSet.vue +26 -0
- package/src/components/Icons.stories.ts +108 -0
- package/src/components/Input.stories.ts +59 -0
- package/src/components/Input.vue +42 -0
- package/src/components/Reveal.stories.ts +52 -0
- package/src/components/Reveal.vue +90 -0
- package/src/components/Section.stories.ts +43 -0
- package/src/components/Section.vue +39 -0
- package/src/components/Tag.stories.ts +29 -0
- package/src/components/Tag.vue +19 -0
- package/src/components/Text.stories.ts +39 -0
- package/src/components/Text.vue +45 -0
- package/src/components/Textarea.stories.ts +24 -0
- package/src/components/Textarea.vue +37 -0
- package/src/components/TypographyPalette.stories.ts +98 -0
- package/src/components/TypographyPalette.vue +117 -0
- package/src/foundations/Spacing.stories.ts +25 -0
- package/src/foundations/Spacing.vue +23 -0
- package/src/foundations/spacing.mdx +21 -0
- package/src/foundations/tokens.mdx +87 -0
- package/src/index.ts +42 -0
- package/src/main.ts +5 -0
- package/src/style.css +13 -0
- package/src/tokens/motion.css +27 -0
- package/src/tokens/primitives.css +44 -0
- package/src/tokens/semantic.css +38 -0
- package/src/tokens/themes.css +39 -0
- package/src/tokens/typography.css +27 -0
- package/start-storybook.bat +41 -0
- package/start-storybook.ps1 +55 -0
- package/storybook_doc.txt +0 -0
- package/storybook_final.txt +0 -0
- package/storybook_final2.txt +0 -0
- package/storybook_final_attempt.txt +0 -0
- package/storybook_fix.txt +0 -0
- package/storybook_fixed.txt +0 -0
- package/storybook_fixed2.txt +0 -0
- package/storybook_grid.txt +0 -0
- package/storybook_min2.txt +0 -0
- package/storybook_minimal.txt +0 -0
- package/storybook_nocomment.txt +0 -0
- package/storybook_noscript.txt +0 -0
- package/storybook_nostyle.txt +0 -0
- package/storybook_notxt.txt +0 -0
- package/storybook_out.txt +54 -0
- package/storybook_output.txt +54 -0
- package/storybook_select.txt +0 -0
- package/storybook_step1.txt +0 -0
- package/storybook_step2.txt +0 -0
- package/storybook_step3.txt +0 -0
- package/storybook_test.txt +0 -0
- package/storybook_v12.txt +0 -0
- package/storybook_v3.txt +0 -0
- package/storybook_v4.txt +0 -0
- package/storybook_vue_fixed.txt +0 -0
- package/tsconfig.app.json +15 -0
- package/tsconfig.json +4 -0
- package/tsconfig.node.json +23 -0
- package/typecheck.txt +0 -0
- package/vite.config.ts +49 -0
- package/vite.lib.config.ts +33 -0
- package/vitest.shims.d.ts +1 -0
package/.prettierignore
ADDED
package/.prettierrc.json
ADDED
|
@@ -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
|
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
|
+
};
|