@thatix.io/credit-ui 0.0.1

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 (213) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +186 -0
  3. package/dist/components/atoms/Avatar/Avatar.stories.d.ts +11 -0
  4. package/dist/components/atoms/Avatar/Avatar.vue.d.ts +16 -0
  5. package/dist/components/atoms/Avatar/index.d.ts +2 -0
  6. package/dist/components/atoms/Badge/Badge.stories.d.ts +11 -0
  7. package/dist/components/atoms/Badge/Badge.vue.d.ts +40 -0
  8. package/dist/components/atoms/Badge/index.d.ts +2 -0
  9. package/dist/components/atoms/Button/Button.stories.d.ts +15 -0
  10. package/dist/components/atoms/Button/Button.vue.d.ts +47 -0
  11. package/dist/components/atoms/Button/index.d.ts +2 -0
  12. package/dist/components/atoms/Card/Card.stories.d.ts +9 -0
  13. package/dist/components/atoms/Card/Card.vue.d.ts +33 -0
  14. package/dist/components/atoms/Card/index.d.ts +2 -0
  15. package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts +11 -0
  16. package/dist/components/atoms/Checkbox/Checkbox.vue.d.ts +28 -0
  17. package/dist/components/atoms/Checkbox/index.d.ts +2 -0
  18. package/dist/components/atoms/CurrencyDisplay/CurrencyDisplay.stories.d.ts +10 -0
  19. package/dist/components/atoms/CurrencyDisplay/CurrencyDisplay.vue.d.ts +26 -0
  20. package/dist/components/atoms/CurrencyDisplay/index.d.ts +2 -0
  21. package/dist/components/atoms/Divider/Divider.stories.d.ts +9 -0
  22. package/dist/components/atoms/Divider/Divider.vue.d.ts +11 -0
  23. package/dist/components/atoms/Divider/index.d.ts +2 -0
  24. package/dist/components/atoms/GradientMesh/GradientMesh.stories.d.ts +13 -0
  25. package/dist/components/atoms/GradientMesh/GradientMesh.vue.d.ts +43 -0
  26. package/dist/components/atoms/GradientMesh/index.d.ts +2 -0
  27. package/dist/components/atoms/Icon/Icon.stories.d.ts +11 -0
  28. package/dist/components/atoms/Icon/Icon.vue.d.ts +23 -0
  29. package/dist/components/atoms/Icon/index.d.ts +2 -0
  30. package/dist/components/atoms/Input/Input.stories.d.ts +13 -0
  31. package/dist/components/atoms/Input/Input.vue.d.ts +73 -0
  32. package/dist/components/atoms/Input/index.d.ts +2 -0
  33. package/dist/components/atoms/Label/Label.stories.d.ts +11 -0
  34. package/dist/components/atoms/Label/Label.vue.d.ts +28 -0
  35. package/dist/components/atoms/Label/index.d.ts +2 -0
  36. package/dist/components/atoms/Logo/Logo.stories.d.ts +10 -0
  37. package/dist/components/atoms/Logo/Logo.vue.d.ts +17 -0
  38. package/dist/components/atoms/Logo/index.d.ts +2 -0
  39. package/dist/components/atoms/Spinner/Spinner.stories.d.ts +11 -0
  40. package/dist/components/atoms/Spinner/Spinner.vue.d.ts +11 -0
  41. package/dist/components/atoms/Spinner/index.d.ts +2 -0
  42. package/dist/components/atoms/Typography/Typography.stories.d.ts +12 -0
  43. package/dist/components/atoms/Typography/Typography.vue.d.ts +32 -0
  44. package/dist/components/atoms/Typography/index.d.ts +2 -0
  45. package/dist/components/atoms/index.d.ts +14 -0
  46. package/dist/components/index.d.ts +14 -0
  47. package/dist/components/molecules/ActionButton/ActionButton.stories.d.ts +11 -0
  48. package/dist/components/molecules/ActionButton/ActionButton.vue.d.ts +31 -0
  49. package/dist/components/molecules/ActionButton/index.d.ts +2 -0
  50. package/dist/components/molecules/Alert/Alert.stories.d.ts +12 -0
  51. package/dist/components/molecules/Alert/Alert.vue.d.ts +20 -0
  52. package/dist/components/molecules/Alert/index.d.ts +2 -0
  53. package/dist/components/molecules/AnalysisStatus/AnalysisStatus.stories.d.ts +14 -0
  54. package/dist/components/molecules/AnalysisStatus/AnalysisStatus.vue.d.ts +16 -0
  55. package/dist/components/molecules/AnalysisStatus/index.d.ts +2 -0
  56. package/dist/components/molecules/ContractPaidCelebration/ContractPaidCelebration.stories.d.ts +9 -0
  57. package/dist/components/molecules/ContractPaidCelebration/ContractPaidCelebration.vue.d.ts +25 -0
  58. package/dist/components/molecules/ContractPaidCelebration/index.d.ts +2 -0
  59. package/dist/components/molecules/DocumentUpload/DocumentUpload.stories.d.ts +10 -0
  60. package/dist/components/molecules/DocumentUpload/DocumentUpload.vue.d.ts +40 -0
  61. package/dist/components/molecules/DocumentUpload/index.d.ts +2 -0
  62. package/dist/components/molecules/FilePreview/FilePreview.stories.d.ts +13 -0
  63. package/dist/components/molecules/FilePreview/FilePreview.vue.d.ts +32 -0
  64. package/dist/components/molecules/FilePreview/index.d.ts +2 -0
  65. package/dist/components/molecules/FormField/FormField.stories.d.ts +9 -0
  66. package/dist/components/molecules/FormField/FormField.vue.d.ts +39 -0
  67. package/dist/components/molecules/FormField/index.d.ts +2 -0
  68. package/dist/components/molecules/IdentifierInput/IdentifierInput.stories.d.ts +14 -0
  69. package/dist/components/molecules/IdentifierInput/IdentifierInput.vue.d.ts +29 -0
  70. package/dist/components/molecules/IdentifierInput/index.d.ts +2 -0
  71. package/dist/components/molecules/InfoCard/InfoCard.stories.d.ts +13 -0
  72. package/dist/components/molecules/InfoCard/InfoCard.vue.d.ts +53 -0
  73. package/dist/components/molecules/InfoCard/index.d.ts +2 -0
  74. package/dist/components/molecules/InputRangeMoney/InputRangeMoney.stories.d.ts +9 -0
  75. package/dist/components/molecules/InputRangeMoney/InputRangeMoney.vue.d.ts +19 -0
  76. package/dist/components/molecules/InputRangeMoney/index.d.ts +2 -0
  77. package/dist/components/molecules/InstallmentCard/InstallmentCard.stories.d.ts +9 -0
  78. package/dist/components/molecules/InstallmentCard/InstallmentCard.vue.d.ts +29 -0
  79. package/dist/components/molecules/InstallmentCard/index.d.ts +2 -0
  80. package/dist/components/molecules/InstallmentSelector/InstallmentSelector.stories.d.ts +10 -0
  81. package/dist/components/molecules/InstallmentSelector/InstallmentSelector.vue.d.ts +28 -0
  82. package/dist/components/molecules/InstallmentSelector/index.d.ts +2 -0
  83. package/dist/components/molecules/MarginIndicator/MarginIndicator.stories.d.ts +12 -0
  84. package/dist/components/molecules/MarginIndicator/MarginIndicator.vue.d.ts +18 -0
  85. package/dist/components/molecules/MarginIndicator/index.d.ts +2 -0
  86. package/dist/components/molecules/Modal/Modal.stories.d.ts +8 -0
  87. package/dist/components/molecules/Modal/Modal.vue.d.ts +38 -0
  88. package/dist/components/molecules/Modal/index.d.ts +2 -0
  89. package/dist/components/molecules/PasswordInput/PasswordInput.stories.d.ts +11 -0
  90. package/dist/components/molecules/PasswordInput/PasswordInput.vue.d.ts +30 -0
  91. package/dist/components/molecules/PasswordInput/index.d.ts +2 -0
  92. package/dist/components/molecules/PendingProposalBanner/PendingProposalBanner.stories.d.ts +10 -0
  93. package/dist/components/molecules/PendingProposalBanner/PendingProposalBanner.vue.d.ts +24 -0
  94. package/dist/components/molecules/PendingProposalBanner/index.d.ts +2 -0
  95. package/dist/components/molecules/PinInput/PinInput.stories.d.ts +13 -0
  96. package/dist/components/molecules/PinInput/PinInput.vue.d.ts +36 -0
  97. package/dist/components/molecules/PinInput/index.d.ts +2 -0
  98. package/dist/components/molecules/ProgressBar/ProgressBar.stories.d.ts +12 -0
  99. package/dist/components/molecules/ProgressBar/ProgressBar.vue.d.ts +24 -0
  100. package/dist/components/molecules/ProgressBar/index.d.ts +2 -0
  101. package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts +11 -0
  102. package/dist/components/molecules/SearchBar/SearchBar.vue.d.ts +30 -0
  103. package/dist/components/molecules/SearchBar/index.d.ts +2 -0
  104. package/dist/components/molecules/SimulationLoading/SimulationLoading.stories.d.ts +10 -0
  105. package/dist/components/molecules/SimulationLoading/SimulationLoading.vue.d.ts +17 -0
  106. package/dist/components/molecules/SimulationLoading/index.d.ts +2 -0
  107. package/dist/components/molecules/StatusBadge/StatusBadge.stories.d.ts +12 -0
  108. package/dist/components/molecules/StatusBadge/StatusBadge.vue.d.ts +38 -0
  109. package/dist/components/molecules/StatusBadge/index.d.ts +2 -0
  110. package/dist/components/molecules/StepperProgress/StepperProgress.stories.d.ts +11 -0
  111. package/dist/components/molecules/StepperProgress/StepperProgress.vue.d.ts +22 -0
  112. package/dist/components/molecules/StepperProgress/index.d.ts +2 -0
  113. package/dist/components/molecules/WelcomeCard/WelcomeCard.stories.d.ts +11 -0
  114. package/dist/components/molecules/WelcomeCard/WelcomeCard.vue.d.ts +33 -0
  115. package/dist/components/molecules/WelcomeCard/index.d.ts +2 -0
  116. package/dist/components/molecules/index.d.ts +23 -0
  117. package/dist/components/organisms/AuthLayout/AuthLayout.stories.d.ts +10 -0
  118. package/dist/components/organisms/AuthLayout/AuthLayout.vue.d.ts +42 -0
  119. package/dist/components/organisms/AuthLayout/index.d.ts +2 -0
  120. package/dist/components/organisms/BottomNavigation/BottomNavigation.stories.d.ts +8 -0
  121. package/dist/components/organisms/BottomNavigation/BottomNavigation.vue.d.ts +38 -0
  122. package/dist/components/organisms/BottomNavigation/index.d.ts +2 -0
  123. package/dist/components/organisms/ConsentForm/ConsentForm.stories.d.ts +9 -0
  124. package/dist/components/organisms/ConsentForm/ConsentForm.vue.d.ts +45 -0
  125. package/dist/components/organisms/ConsentForm/TermModal.vue.d.ts +37 -0
  126. package/dist/components/organisms/ConsentForm/index.d.ts +4 -0
  127. package/dist/components/organisms/ContractCard/ContractCard.stories.d.ts +12 -0
  128. package/dist/components/organisms/ContractCard/ContractCard.vue.d.ts +41 -0
  129. package/dist/components/organisms/ContractCard/index.d.ts +2 -0
  130. package/dist/components/organisms/ContractDetails/ContractDetails.stories.d.ts +9 -0
  131. package/dist/components/organisms/ContractDetails/ContractDetails.vue.d.ts +53 -0
  132. package/dist/components/organisms/ContractDetails/index.d.ts +2 -0
  133. package/dist/components/organisms/CreatePasswordForm/CreatePasswordForm.stories.d.ts +12 -0
  134. package/dist/components/organisms/CreatePasswordForm/CreatePasswordForm.vue.d.ts +52 -0
  135. package/dist/components/organisms/CreatePasswordForm/index.d.ts +2 -0
  136. package/dist/components/organisms/DashboardHeader/DashboardHeader.stories.d.ts +8 -0
  137. package/dist/components/organisms/DashboardHeader/DashboardHeader.vue.d.ts +14 -0
  138. package/dist/components/organisms/DashboardHeader/index.d.ts +2 -0
  139. package/dist/components/organisms/DocumentUploadSection/DocumentUploadSection.stories.d.ts +10 -0
  140. package/dist/components/organisms/DocumentUploadSection/DocumentUploadSection.vue.d.ts +72 -0
  141. package/dist/components/organisms/DocumentUploadSection/index.d.ts +2 -0
  142. package/dist/components/organisms/Footer/Footer.stories.d.ts +10 -0
  143. package/dist/components/organisms/Footer/Footer.vue.d.ts +50 -0
  144. package/dist/components/organisms/Footer/index.d.ts +2 -0
  145. package/dist/components/organisms/ForgotPasswordForm/ForgotPasswordForm.stories.d.ts +12 -0
  146. package/dist/components/organisms/ForgotPasswordForm/ForgotPasswordForm.vue.d.ts +64 -0
  147. package/dist/components/organisms/ForgotPasswordForm/index.d.ts +2 -0
  148. package/dist/components/organisms/Header/Header.stories.d.ts +9 -0
  149. package/dist/components/organisms/Header/Header.vue.d.ts +36 -0
  150. package/dist/components/organisms/Header/index.d.ts +2 -0
  151. package/dist/components/organisms/InstallmentHistory/InstallmentHistory.stories.d.ts +10 -0
  152. package/dist/components/organisms/InstallmentHistory/InstallmentHistory.vue.d.ts +42 -0
  153. package/dist/components/organisms/InstallmentHistory/index.d.ts +2 -0
  154. package/dist/components/organisms/LoginForm/LoginForm.stories.d.ts +10 -0
  155. package/dist/components/organisms/LoginForm/LoginForm.vue.d.ts +51 -0
  156. package/dist/components/organisms/LoginForm/index.d.ts +2 -0
  157. package/dist/components/organisms/ManualInputModal/ManualInputModal.stories.d.ts +9 -0
  158. package/dist/components/organisms/ManualInputModal/ManualInputModal.vue.d.ts +41 -0
  159. package/dist/components/organisms/ManualInputModal/index.d.ts +2 -0
  160. package/dist/components/organisms/OfferCard/OfferCard.stories.d.ts +11 -0
  161. package/dist/components/organisms/OfferCard/OfferCard.vue.d.ts +39 -0
  162. package/dist/components/organisms/OfferCard/index.d.ts +2 -0
  163. package/dist/components/organisms/ProfileForm/ProfileForm.stories.d.ts +10 -0
  164. package/dist/components/organisms/ProfileForm/ProfileForm.vue.d.ts +62 -0
  165. package/dist/components/organisms/ProfileForm/index.d.ts +2 -0
  166. package/dist/components/organisms/QuickActions/QuickActions.stories.d.ts +9 -0
  167. package/dist/components/organisms/QuickActions/QuickActions.vue.d.ts +24 -0
  168. package/dist/components/organisms/QuickActions/index.d.ts +2 -0
  169. package/dist/components/organisms/ResetPasswordForm/ResetPasswordForm.stories.d.ts +12 -0
  170. package/dist/components/organisms/ResetPasswordForm/ResetPasswordForm.vue.d.ts +52 -0
  171. package/dist/components/organisms/ResetPasswordForm/index.d.ts +2 -0
  172. package/dist/components/organisms/SCRConsentModal/SCRConsentModal.stories.d.ts +8 -0
  173. package/dist/components/organisms/SCRConsentModal/SCRConsentModal.vue.d.ts +18 -0
  174. package/dist/components/organisms/SCRConsentModal/index.d.ts +2 -0
  175. package/dist/components/organisms/Sidebar/Sidebar.stories.d.ts +8 -0
  176. package/dist/components/organisms/Sidebar/Sidebar.vue.d.ts +78 -0
  177. package/dist/components/organisms/Sidebar/SidebarItem.vue.d.ts +28 -0
  178. package/dist/components/organisms/Sidebar/index.d.ts +4 -0
  179. package/dist/components/organisms/SimulationResult/SimulationResult.stories.d.ts +11 -0
  180. package/dist/components/organisms/SimulationResult/SimulationResult.vue.d.ts +44 -0
  181. package/dist/components/organisms/SimulationResult/index.d.ts +2 -0
  182. package/dist/components/organisms/TopNavigation/TopNavigation.stories.d.ts +8 -0
  183. package/dist/components/organisms/TopNavigation/TopNavigation.vue.d.ts +48 -0
  184. package/dist/components/organisms/TopNavigation/index.d.ts +2 -0
  185. package/dist/components/organisms/index.d.ts +26 -0
  186. package/dist/components/templates/FormLayout/FormLayout.stories.d.ts +65 -0
  187. package/dist/components/templates/FormLayout/FormLayout.vue.d.ts +84 -0
  188. package/dist/components/templates/FormLayout/index.d.ts +2 -0
  189. package/dist/components/templates/index.d.ts +1 -0
  190. package/dist/composables/index.d.ts +4 -0
  191. package/dist/composables/useTheme.d.ts +66 -0
  192. package/dist/credit-ui.cjs.js +90 -0
  193. package/dist/credit-ui.css +1 -0
  194. package/dist/credit-ui.es.js +8936 -0
  195. package/dist/images/auth-background.jpg +0 -0
  196. package/dist/index.d.ts +20 -0
  197. package/dist/logo.png +0 -0
  198. package/dist/nuxt/index.d.ts +5 -0
  199. package/dist/nuxt/module.d.ts +17 -0
  200. package/dist/nuxt.cjs.js +1 -0
  201. package/dist/nuxt.es.js +31 -0
  202. package/dist/themes/defaults.d.ts +96 -0
  203. package/dist/themes/index.d.ts +8 -0
  204. package/dist/themes/utils.d.ts +35 -0
  205. package/dist/themes.cjs.js +6 -0
  206. package/dist/themes.es.js +163 -0
  207. package/dist/tokens.css +124 -0
  208. package/dist/types/index.d.ts +6 -0
  209. package/dist/types/theme.d.ts +142 -0
  210. package/package.json +75 -0
  211. package/src/nuxt/runtime/composables/useTheme.ts +86 -0
  212. package/src/nuxt/runtime/plugin.server.ts +32 -0
  213. package/src/nuxt/runtime/plugin.ts +22 -0
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as Sidebar } from './Sidebar.vue';
3
+ declare const meta: Meta<typeof Sidebar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Collapsed: Story;
8
+ export declare const SimulationActive: Story;
@@ -0,0 +1,78 @@
1
+ import { IconName } from '../../atoms';
2
+ /**
3
+ * Sidebar Component (Organism)
4
+ *
5
+ * Menu lateral de navegação para área logada.
6
+ * Componente colapsável com ícones e labels.
7
+ *
8
+ * Features:
9
+ * - Itens de menu configuráveis via props
10
+ * - Highlight automático do item ativo
11
+ * - Modo colapsável (expandido/compacto)
12
+ * - Persistência de estado em localStorage (opcional)
13
+ * - Responsivo (oculto em mobile)
14
+ * - Animações suaves
15
+ *
16
+ * @example
17
+ * ```vue
18
+ * <Sidebar
19
+ * :items="menuItems"
20
+ * :current-path="route.path"
21
+ * v-model:collapsed="isCollapsed"
22
+ * logo-src="/logo.svg"
23
+ * @navigate="router.push"
24
+ * />
25
+ * ```
26
+ */
27
+ export interface SidebarMenuItem {
28
+ /** ID único do item */
29
+ id: string;
30
+ /** Label do item */
31
+ label: string;
32
+ /** Nome do ícone */
33
+ icon: IconName;
34
+ /** Rota para navegação */
35
+ to: string;
36
+ }
37
+ export interface SidebarProps {
38
+ /** Itens do menu */
39
+ items: SidebarMenuItem[];
40
+ /** Path atual para highlight */
41
+ currentPath?: string;
42
+ /** Se o sidebar está colapsado (apenas ícones) */
43
+ collapsed?: boolean;
44
+ /** Persistir estado de collapsed em localStorage */
45
+ persistState?: boolean;
46
+ /** Chave para localStorage */
47
+ storageKey?: string;
48
+ /** URL do logo */
49
+ logoSrc?: string;
50
+ }
51
+ declare function __VLS_template(): {
52
+ attrs: Partial<{}>;
53
+ slots: {
54
+ logo?(_: {}): any;
55
+ };
56
+ refs: {};
57
+ rootEl: HTMLElement;
58
+ };
59
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
60
+ declare const __VLS_component: import('vue').DefineComponent<SidebarProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
61
+ navigate: (to: string) => any;
62
+ "update:collapsed": (value: boolean) => any;
63
+ }, string, import('vue').PublicProps, Readonly<SidebarProps> & Readonly<{
64
+ onNavigate?: ((to: string) => any) | undefined;
65
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
66
+ }>, {
67
+ currentPath: string;
68
+ collapsed: boolean;
69
+ persistState: boolean;
70
+ storageKey: string;
71
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
72
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
73
+ export default _default;
74
+ type __VLS_WithTemplateSlots<T, S> = T & {
75
+ new (): {
76
+ $slots: S;
77
+ };
78
+ };
@@ -0,0 +1,28 @@
1
+ import { IconName } from '../../atoms';
2
+ /**
3
+ * SidebarItem Component (internal)
4
+ *
5
+ * Item individual do menu do Sidebar.
6
+ * Usado internamente pelo Sidebar para renderizar cada item de navegação.
7
+ */
8
+ export interface SidebarItemProps {
9
+ /** Rota para navegação */
10
+ to: string;
11
+ /** Nome do ícone */
12
+ icon: IconName;
13
+ /** Label do item */
14
+ label: string;
15
+ /** Se o item está ativo (rota atual) */
16
+ active?: boolean;
17
+ /** Se o sidebar está colapsado (oculta label) */
18
+ collapsed?: boolean;
19
+ }
20
+ declare const _default: import('vue').DefineComponent<SidebarItemProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
21
+ click: (to: string) => any;
22
+ }, string, import('vue').PublicProps, Readonly<SidebarItemProps> & Readonly<{
23
+ onClick?: ((to: string) => any) | undefined;
24
+ }>, {
25
+ active: boolean;
26
+ collapsed: boolean;
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
28
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export { default as Sidebar } from './Sidebar.vue';
2
+ export { default as SidebarItem } from './SidebarItem.vue';
3
+ export type { SidebarProps, SidebarMenuItem } from './Sidebar.vue';
4
+ export type { SidebarItemProps } from './SidebarItem.vue';
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as SimulationResult } from './SimulationResult.vue';
3
+ declare const meta: Meta<typeof SimulationResult>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Loading: Story;
7
+ export declare const WithOffers: Story;
8
+ export declare const WithAcceptDisabled: Story;
9
+ export declare const WithError: Story;
10
+ export declare const Empty: Story;
11
+ export declare const SingleOffer: Story;
@@ -0,0 +1,44 @@
1
+ export interface SimulationOffer {
2
+ /** ID da oferta */
3
+ id: string;
4
+ /** Valor da parcela em centavos */
5
+ installmentValue: number;
6
+ /** Quantidade de parcelas */
7
+ installments: number;
8
+ /** Taxa de juros mensal */
9
+ monthlyRate: number;
10
+ /** Valor total em centavos */
11
+ totalValue: number;
12
+ /** CET anual */
13
+ cetYearly?: number;
14
+ }
15
+ export interface SimulationResultProps {
16
+ /** Estado de carregamento */
17
+ loading?: boolean;
18
+ /** Mensagem de erro */
19
+ error?: string;
20
+ /** Lista de ofertas */
21
+ offers?: SimulationOffer[];
22
+ /** Mostrar botão de aceitar proposta */
23
+ showAcceptButton?: boolean;
24
+ /** Desabilitar botão de aceitar */
25
+ acceptDisabled?: boolean;
26
+ /** Mensagem de aviso sobre aceite */
27
+ acceptWarningMessage?: string;
28
+ }
29
+ declare const _default: import('vue').DefineComponent<SimulationResultProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
30
+ "new-simulation": () => any;
31
+ retry: () => any;
32
+ "accept-proposal": (offerId: string) => any;
33
+ }, string, import('vue').PublicProps, Readonly<SimulationResultProps> & Readonly<{
34
+ "onNew-simulation"?: (() => any) | undefined;
35
+ onRetry?: (() => any) | undefined;
36
+ "onAccept-proposal"?: ((offerId: string) => any) | undefined;
37
+ }>, {
38
+ loading: boolean;
39
+ error: string;
40
+ showAcceptButton: boolean;
41
+ acceptDisabled: boolean;
42
+ acceptWarningMessage: string;
43
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
44
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as SimulationResult } from './SimulationResult.vue';
2
+ export type { SimulationResultProps, SimulationOffer } from './SimulationResult.vue';
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as TopNavigation } from './TopNavigation.vue';
3
+ declare const meta: Meta<typeof TopNavigation>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const SimulationActive: Story;
8
+ export declare const NonSticky: Story;
@@ -0,0 +1,48 @@
1
+ import { IconName } from '../../atoms';
2
+ /**
3
+ * TopNavigation - Organism de navegação desktop
4
+ *
5
+ * Exibe navegação horizontal com logo e links para telas >= 768px (md breakpoint).
6
+ * Oculto em mobile, onde BottomNavigation assume.
7
+ *
8
+ * @example
9
+ * ```vue
10
+ * <TopNavigation
11
+ * :items="navItems"
12
+ * :current-path="currentRoute"
13
+ * :sticky="true"
14
+ * brand-name="Giro Crédito"
15
+ * @navigate="handleNav"
16
+ * />
17
+ * ```
18
+ */
19
+ export interface NavigationItem {
20
+ /** Label do item */
21
+ label: string;
22
+ /** Rota/path do item */
23
+ to: string;
24
+ /** Nome do ícone */
25
+ icon: IconName;
26
+ }
27
+ export interface TopNavigationProps {
28
+ /** Itens de navegação */
29
+ items: NavigationItem[];
30
+ /** Path atual para highlight */
31
+ currentPath?: string;
32
+ /** Se deve usar posicionamento sticky no topo */
33
+ sticky?: boolean;
34
+ /** Nome da marca/produto */
35
+ brandName?: string;
36
+ /** URL do logo (opcional) */
37
+ logoUrl?: string;
38
+ }
39
+ declare const _default: import('vue').DefineComponent<TopNavigationProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
40
+ navigate: (to: string) => any;
41
+ }, string, import('vue').PublicProps, Readonly<TopNavigationProps> & Readonly<{
42
+ onNavigate?: ((to: string) => any) | undefined;
43
+ }>, {
44
+ sticky: boolean;
45
+ currentPath: string;
46
+ brandName: string;
47
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
48
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as TopNavigation } from './TopNavigation.vue';
2
+ export type { TopNavigationProps, NavigationItem } from './TopNavigation.vue';
@@ -0,0 +1,26 @@
1
+ export * from './AuthLayout';
2
+ export * from './CreatePasswordForm';
3
+ export * from './DashboardHeader';
4
+ export * from './Footer';
5
+ export * from './ForgotPasswordForm';
6
+ export * from './Header';
7
+ export * from './LoginForm';
8
+ export * from './ManualInputModal';
9
+ export * from './OfferCard';
10
+ export * from './QuickActions';
11
+ export * from './ResetPasswordForm';
12
+ export * from './SCRConsentModal';
13
+ export * from './SimulationResult';
14
+ export { ContractCard } from './ContractCard';
15
+ export type { ContractCardProps } from './ContractCard';
16
+ export { BottomNavigation } from './BottomNavigation';
17
+ export type { BottomNavigationProps, NavigationItem as BottomNavigationItem } from './BottomNavigation';
18
+ export { TopNavigation } from './TopNavigation';
19
+ export type { TopNavigationProps, NavigationItem as TopNavigationItem } from './TopNavigation';
20
+ export * from './Sidebar';
21
+ export { ContractDetails } from './ContractDetails';
22
+ export type { ContractDetailsProps, ContractSummary as ContractDetailsSummary, NextInstallment as ContractDetailsNextInstallment } from './ContractDetails';
23
+ export * from './InstallmentHistory';
24
+ export * from './DocumentUploadSection';
25
+ export * from './ConsentForm';
26
+ export * from './ProfileForm';
@@ -0,0 +1,65 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as FormLayout } from './FormLayout.vue';
3
+ declare const meta: Meta<typeof FormLayout>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof FormLayout>;
6
+ /**
7
+ * Story: Default
8
+ *
9
+ * Visualização padrão do Form Layout com todas as opções.
10
+ */
11
+ export declare const Default: Story;
12
+ /**
13
+ * Story: First Step
14
+ *
15
+ * Primeiro step com botão voltar oculto.
16
+ */
17
+ export declare const FirstStep: Story;
18
+ /**
19
+ * Story: Middle Step
20
+ *
21
+ * Step intermediário com ambos os botões visíveis.
22
+ */
23
+ export declare const MiddleStep: Story;
24
+ /**
25
+ * Story: Last Step
26
+ *
27
+ * Último step com label customizado "Finalizar".
28
+ */
29
+ export declare const LastStep: Story;
30
+ /**
31
+ * Story: Loading State
32
+ *
33
+ * Estado de loading no botão próximo.
34
+ */
35
+ export declare const Loading: Story;
36
+ /**
37
+ * Story: Next Disabled
38
+ *
39
+ * Botão próximo desabilitado (formulário incompleto).
40
+ */
41
+ export declare const NextDisabled: Story;
42
+ /**
43
+ * Story: No Security Footer
44
+ *
45
+ * Layout sem footer de segurança.
46
+ */
47
+ export declare const NoSecurityFooter: Story;
48
+ /**
49
+ * Story: Custom Labels
50
+ *
51
+ * Labels customizados para os botões.
52
+ */
53
+ export declare const CustomLabels: Story;
54
+ /**
55
+ * Story: Hidden Buttons
56
+ *
57
+ * Layout com botões de navegação ocultos (para páginas que controlam própria navegação).
58
+ */
59
+ export declare const HiddenButtons: Story;
60
+ /**
61
+ * Story: Playground
62
+ *
63
+ * Playground interativo para customização do Form Layout.
64
+ */
65
+ export declare const Playground: Story;
@@ -0,0 +1,84 @@
1
+ import { Step } from '../../molecules/StepperProgress/StepperProgress.vue';
2
+ /**
3
+ * FormLayout - Template para formulários multi-step
4
+ *
5
+ * Centraliza a estrutura comum de formulários multi-step (simulação, KYC, etc.):
6
+ * - Header com título gradiente e subtítulo
7
+ * - StepperProgress para indicador de progresso
8
+ * - Slot para conteúdo dinâmico
9
+ * - Botões de navegação (Voltar/Continuar)
10
+ * - Footer com informações de segurança
11
+ *
12
+ * Seguindo Atomic Design: Template que agrupa Organisms/Molecules/Atoms
13
+ *
14
+ * @example
15
+ * ```vue
16
+ * <FormLayout
17
+ * title="Simulação de Crédito"
18
+ * subtitle="Descubra as melhores condições"
19
+ * :steps="steps"
20
+ * :current-step="currentStep"
21
+ * @back="handleBack"
22
+ * @next="handleNext"
23
+ * >
24
+ * <SimulationForm />
25
+ * </FormLayout>
26
+ * ```
27
+ */
28
+ export type { Step };
29
+ export interface FormLayoutProps {
30
+ /** Título principal exibido no header */
31
+ title: string;
32
+ /** Subtítulo opcional abaixo do título */
33
+ subtitle?: string;
34
+ /** Array de etapas para o StepperProgress */
35
+ steps: Step[];
36
+ /** Etapa atual (1-indexed) */
37
+ currentStep: number;
38
+ /** Label do botão voltar */
39
+ backLabel?: string;
40
+ /** Label do botão próximo */
41
+ nextLabel?: string;
42
+ /** Estado de loading do botão próximo */
43
+ loading?: boolean;
44
+ /** Desabilita o botão próximo */
45
+ nextDisabled?: boolean;
46
+ /** Esconde o botão voltar */
47
+ hideBack?: boolean;
48
+ /** Exibe footer de segurança */
49
+ showSecurityFooter?: boolean;
50
+ /** Esconde botões de navegação (para páginas que controlam própria navegação) */
51
+ hideButtons?: boolean;
52
+ }
53
+ declare function __VLS_template(): {
54
+ attrs: Partial<{}>;
55
+ slots: {
56
+ default?(_: {}): any;
57
+ };
58
+ refs: {};
59
+ rootEl: HTMLDivElement;
60
+ };
61
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
62
+ declare const __VLS_component: import('vue').DefineComponent<FormLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
63
+ back: () => any;
64
+ next: () => any;
65
+ }, string, import('vue').PublicProps, Readonly<FormLayoutProps> & Readonly<{
66
+ onBack?: (() => any) | undefined;
67
+ onNext?: (() => any) | undefined;
68
+ }>, {
69
+ loading: boolean;
70
+ subtitle: string;
71
+ backLabel: string;
72
+ nextLabel: string;
73
+ nextDisabled: boolean;
74
+ hideBack: boolean;
75
+ showSecurityFooter: boolean;
76
+ hideButtons: boolean;
77
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
78
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
79
+ export default _default;
80
+ type __VLS_WithTemplateSlots<T, S> = T & {
81
+ new (): {
82
+ $slots: S;
83
+ };
84
+ };
@@ -0,0 +1,2 @@
1
+ export { default as FormLayout } from './FormLayout.vue';
2
+ export type { FormLayoutProps, Step } from './FormLayout.vue';
@@ -0,0 +1 @@
1
+ export * from './FormLayout';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Composables entry point
3
+ */
4
+ export { useTheme } from './useTheme';
@@ -0,0 +1,66 @@
1
+ import { ThemeConfig, ThemeTokens } from '../types/theme';
2
+ /**
3
+ * Vue composable for theme management
4
+ * @param initialConfig - Optional initial theme configuration
5
+ */
6
+ export declare function useTheme(initialConfig?: ThemeConfig): {
7
+ tokens: import('vue').ComputedRef<ThemeTokens>;
8
+ colors: import('vue').ComputedRef<Required<import('..').ThemeColors>>;
9
+ fonts: import('vue').ComputedRef<Required<import('..').ThemeFonts>>;
10
+ isReady: import('vue').Ref<boolean, boolean>;
11
+ currentConfig: import('vue').Ref<{
12
+ colors?: {
13
+ primary?: string | undefined;
14
+ primaryDark?: string | undefined;
15
+ primaryLight?: string | undefined;
16
+ secondary?: string | undefined;
17
+ accent?: string | undefined;
18
+ background?: string | undefined;
19
+ backgroundAlt?: string | undefined;
20
+ surface?: string | undefined;
21
+ surfaceAccent?: string | undefined;
22
+ text?: string | undefined;
23
+ textMuted?: string | undefined;
24
+ textInverse?: string | undefined;
25
+ error?: string | undefined;
26
+ warning?: string | undefined;
27
+ success?: string | undefined;
28
+ info?: string | undefined;
29
+ } | undefined;
30
+ fonts?: {
31
+ heading?: string | undefined;
32
+ base?: string | undefined;
33
+ } | undefined;
34
+ }, ThemeConfig | {
35
+ colors?: {
36
+ primary?: string | undefined;
37
+ primaryDark?: string | undefined;
38
+ primaryLight?: string | undefined;
39
+ secondary?: string | undefined;
40
+ accent?: string | undefined;
41
+ background?: string | undefined;
42
+ backgroundAlt?: string | undefined;
43
+ surface?: string | undefined;
44
+ surfaceAccent?: string | undefined;
45
+ text?: string | undefined;
46
+ textMuted?: string | undefined;
47
+ textInverse?: string | undefined;
48
+ error?: string | undefined;
49
+ warning?: string | undefined;
50
+ success?: string | undefined;
51
+ info?: string | undefined;
52
+ } | undefined;
53
+ fonts?: {
54
+ heading?: string | undefined;
55
+ base?: string | undefined;
56
+ } | undefined;
57
+ }>;
58
+ getColor: (name: keyof ThemeTokens["colors"]) => string;
59
+ getFont: (name: keyof ThemeTokens["fonts"]) => string;
60
+ getToken: (name: string) => string;
61
+ getCSSToken: (name: string) => string;
62
+ getSpacing: (size: keyof ThemeTokens["spacing"]) => string;
63
+ getRadius: (size: keyof ThemeTokens["radius"]) => string;
64
+ applyTheme: (config: ThemeConfig) => void;
65
+ resetTheme: () => void;
66
+ };