negodesign 0.0.74 → 0.0.76

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 (121) hide show
  1. package/dist/components/pages/security/auth/PageAuth01.svelte +65 -0
  2. package/dist/components/pages/security/auth/PageAuth01.svelte.d.ts +17 -0
  3. package/dist/components/pages/security/auth/PageAuth02.svelte +45 -0
  4. package/dist/components/pages/security/auth/PageAuth02.svelte.d.ts +17 -0
  5. package/dist/components/pages/security/auth/PageAuth03.svelte +45 -0
  6. package/dist/components/pages/security/auth/PageAuth03.svelte.d.ts +17 -0
  7. package/dist/components/pages/security/login/01/ui/PageLogin01.svelte +15 -40
  8. package/dist/components/pages/security/login/02/ui/LoginCard02.svelte +15 -4
  9. package/dist/components/pages/security/login/02/ui/PageLogin02.svelte +15 -20
  10. package/dist/components/pages/security/login/03/ui/LoginCard03.svelte +34 -16
  11. package/dist/components/pages/security/login/03/ui/PageLogin03.svelte +15 -20
  12. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte +64 -0
  13. package/dist/components/pages/security/register/01/ui/PageRegister01.svelte.d.ts +3 -0
  14. package/dist/components/pages/security/register/01/ui/RegisterCard.svelte +100 -0
  15. package/dist/components/pages/security/register/01/ui/RegisterCard.svelte.d.ts +12 -0
  16. package/dist/components/pages/security/register/02/ui/PageRegister02.svelte +76 -0
  17. package/dist/components/pages/security/register/02/ui/PageRegister02.svelte.d.ts +4 -0
  18. package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte +98 -0
  19. package/dist/components/pages/security/register/02/ui/RegisterCard02.svelte.d.ts +12 -0
  20. package/dist/components/pages/security/register/03/ui/PageRegister03.svelte +76 -0
  21. package/dist/components/pages/security/register/03/ui/PageRegister03.svelte.d.ts +4 -0
  22. package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte +103 -0
  23. package/dist/components/pages/security/register/03/ui/RegisterCard03.svelte.d.ts +12 -0
  24. package/dist/components/pages/security/register/FormRegister.svelte +120 -0
  25. package/dist/components/pages/security/register/FormRegister.svelte.d.ts +8 -0
  26. package/dist/components/pages/security/register/PageRegister.svelte +30 -0
  27. package/dist/components/pages/security/register/PageRegister.svelte.d.ts +8 -0
  28. package/dist/components/pages/security/register/types.d.ts +51 -0
  29. package/dist/components/pages/security/register/types.js +1 -0
  30. package/dist/components/ui/form/Form.svelte +171 -0
  31. package/dist/components/ui/form/Form.svelte.d.ts +4 -0
  32. package/dist/components/ui/form/types.d.ts +78 -0
  33. package/dist/components/ui/form/types.js +1 -0
  34. package/dist/components/ui/form/ui/input-badges.svelte +214 -0
  35. package/dist/components/ui/form/ui/input-badges.svelte.d.ts +14 -0
  36. package/dist/components/ui/form/ui/input-checkbox.svelte +86 -0
  37. package/dist/components/ui/form/ui/input-checkbox.svelte.d.ts +17 -0
  38. package/dist/components/ui/form/ui/input-radio.svelte +82 -0
  39. package/dist/components/ui/form/ui/input-radio.svelte.d.ts +17 -0
  40. package/dist/components/ui/form/ui/input-select.svelte +195 -0
  41. package/dist/components/ui/form/ui/input-select.svelte.d.ts +17 -0
  42. package/dist/components/ui/form/ui/input-textarea.svelte +61 -0
  43. package/dist/components/ui/form/ui/input-textarea.svelte.d.ts +13 -0
  44. package/dist/components/ui/form/ui/input-toggle.svelte +89 -0
  45. package/dist/components/ui/form/ui/input-toggle.svelte.d.ts +11 -0
  46. package/dist/components/ui/modal/badge/index.d.ts +3 -0
  47. package/dist/components/ui/modal/badge/index.js +2 -0
  48. package/dist/components/ui/modal/badge/types.d.ts +35 -0
  49. package/dist/components/ui/modal/badge/types.js +1 -0
  50. package/dist/components/ui/modal/badge/ui/ModalBadgeSelection.svelte +87 -0
  51. package/dist/components/ui/modal/badge/ui/ModalBadgeSelection.svelte.d.ts +4 -0
  52. package/dist/components/ui/modal/core/index.d.ts +3 -0
  53. package/dist/components/ui/modal/core/index.js +2 -0
  54. package/dist/components/ui/modal/core/types.d.ts +84 -0
  55. package/dist/components/ui/modal/core/types.js +1 -0
  56. package/dist/components/ui/modal/core/ui/ModalCore.svelte +132 -0
  57. package/dist/components/ui/modal/core/ui/ModalCore.svelte.d.ts +4 -0
  58. package/dist/components/ui/modal/feedback/index.d.ts +3 -0
  59. package/dist/components/ui/modal/feedback/index.js +2 -0
  60. package/dist/components/ui/modal/feedback/types.d.ts +32 -0
  61. package/dist/components/ui/modal/feedback/types.js +1 -0
  62. package/dist/components/ui/modal/feedback/ui/ModalFeedback.svelte +135 -0
  63. package/dist/components/ui/modal/feedback/ui/ModalFeedback.svelte.d.ts +4 -0
  64. package/dist/components/ui/modal/form/index.d.ts +3 -0
  65. package/dist/components/ui/modal/form/index.js +2 -0
  66. package/dist/components/ui/modal/form/types.d.ts +38 -0
  67. package/dist/components/ui/modal/form/types.js +1 -0
  68. package/dist/components/ui/modal/form/ui/ModalForm.svelte +67 -0
  69. package/dist/components/ui/modal/form/ui/ModalForm.svelte.d.ts +4 -0
  70. package/dist/components/ui/modal/grid/index.d.ts +5 -0
  71. package/dist/components/ui/modal/grid/index.js +4 -0
  72. package/dist/components/ui/modal/grid/types.d.ts +51 -0
  73. package/dist/components/ui/modal/grid/types.js +1 -0
  74. package/dist/components/ui/modal/grid/ui/01/ModalGridSelection01.svelte +83 -0
  75. package/dist/components/ui/modal/grid/ui/01/ModalGridSelection01.svelte.d.ts +4 -0
  76. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte +146 -0
  77. package/dist/components/ui/modal/grid/ui/02/ModalGridSelection02.svelte.d.ts +4 -0
  78. package/dist/components/ui/modal/grid/ui/ModalGridSelection.svelte +60 -0
  79. package/dist/components/ui/modal/grid/ui/ModalGridSelection.svelte.d.ts +4 -0
  80. package/dist/components/ui/modal/map/index.d.ts +3 -0
  81. package/dist/components/ui/modal/map/index.js +2 -0
  82. package/dist/components/ui/modal/map/types.d.ts +48 -0
  83. package/dist/components/ui/modal/map/types.js +1 -0
  84. package/dist/components/ui/modal/map/ui/ModalMap.svelte +187 -0
  85. package/dist/components/ui/modal/map/ui/ModalMap.svelte.d.ts +4 -0
  86. package/dist/components/ui/modal/notification/index.d.ts +3 -0
  87. package/dist/components/ui/modal/notification/index.js +2 -0
  88. package/dist/components/ui/modal/notification/types.d.ts +26 -0
  89. package/dist/components/ui/modal/notification/types.js +1 -0
  90. package/dist/components/ui/modal/notification/ui/ModalNotification.svelte +65 -0
  91. package/dist/components/ui/modal/notification/ui/ModalNotification.svelte.d.ts +4 -0
  92. package/dist/components/ui/modal/share/index.d.ts +3 -0
  93. package/dist/components/ui/modal/share/index.js +2 -0
  94. package/dist/components/ui/modal/share/types.d.ts +47 -0
  95. package/dist/components/ui/modal/share/types.js +1 -0
  96. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte +156 -0
  97. package/dist/components/ui/modal/share/ui/ModalShareSelection.svelte.d.ts +4 -0
  98. package/dist/components/ui/modal/upload/index.d.ts +3 -0
  99. package/dist/components/ui/modal/upload/index.js +2 -0
  100. package/dist/components/ui/modal/upload/types.d.ts +79 -0
  101. package/dist/components/ui/modal/upload/types.js +1 -0
  102. package/dist/components/ui/modal/upload/ui/ModalUpload.svelte +268 -0
  103. package/dist/components/ui/modal/upload/ui/ModalUpload.svelte.d.ts +4 -0
  104. package/dist/components/ui/section/Section01.svelte +90 -0
  105. package/dist/components/ui/section/Section01.svelte.d.ts +4 -0
  106. package/dist/components/ui/section/Section02.svelte +68 -0
  107. package/dist/components/ui/section/Section02.svelte.d.ts +4 -0
  108. package/dist/components/ui/section/Section03.svelte +52 -0
  109. package/dist/components/ui/section/Section03.svelte.d.ts +4 -0
  110. package/dist/components/ui/section/index.d.ts +4 -0
  111. package/dist/components/ui/section/index.js +3 -0
  112. package/dist/components/ui/section/types.d.ts +46 -0
  113. package/dist/components/ui/section/types.js +1 -0
  114. package/dist/docs/DocsSidebar.svelte +58 -1
  115. package/dist/docs/components.d.ts +1 -1
  116. package/dist/docs/components.js +968 -0
  117. package/dist/globals.css +360 -0
  118. package/dist/index.d.ts +185 -0
  119. package/dist/index.js +185 -0
  120. package/dist/types/index.d.ts +53 -0
  121. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -32,11 +32,25 @@ import CarouselHero from "./components/ui/carousel/core/hero/ui/CarouselHero.sve
32
32
  import CompanyProfile from "./components/pages/company-profile/CompanyProfile.svelte";
33
33
  import Menu from "./components/ui/nav/ui/Menu.svelte";
34
34
  import PageLogin from "./components/pages/security/login/PageLogin.svelte";
35
+ import PageRegister from "./components/pages/security/register/PageRegister.svelte";
35
36
  import SearchInput from "./components/ui/search/SearchInput.svelte";
36
37
  import Footer from "./components/ui/footer/ui/Footer.svelte";
38
+ import SimpleHero from "./components/ui/hero/SimpleHero.svelte";
39
+ import CardMedia from "./components/ui/card/core/media/CardMedia.svelte";
40
+ import CardProfile from "./components/ui/card/core/profile/CardProfile.svelte";
37
41
  import NegoDesign from "./components/NegoDesign.svelte";
38
42
  import ItemsSimpleGrid from "./components/ui/grid/core/ui/ItemsSimpleGrid.svelte";
39
43
  import ItemsPanel from "./components/ui/grid/core/ui/ItemsPanel.svelte";
44
+ import ModalGridSelection from "./components/ui/modal/grid/ui/ModalGridSelection.svelte";
45
+ import ModalBadgeSelection from "./components/ui/modal/badge/ui/ModalBadgeSelection.svelte";
46
+ import ModalShareSelection from "./components/ui/modal/share/ui/ModalShareSelection.svelte";
47
+ import ModalNotification from "./components/ui/modal/notification/ui/ModalNotification.svelte";
48
+ import ModalFeedback from "./components/ui/modal/feedback/ui/ModalFeedback.svelte";
49
+ import ModalMap from "./components/ui/modal/map/ui/ModalMap.svelte";
50
+ import ModalForm from "./components/ui/modal/form/ui/ModalForm.svelte";
51
+ import ModalUpload from "./components/ui/modal/upload/ui/ModalUpload.svelte";
52
+ import ModalCore from "./components/ui/modal/core/ui/ModalCore.svelte";
53
+ import Form from "./components/ui/form/Form.svelte";
40
54
  /** Store reativa do idioma atual. Altere com `$locale = "pt"`. */
41
55
  export { locale } from "./i18n";
42
56
  /** Lista de idiomas disponíveis. Atualizado automaticamente. */
@@ -82,6 +96,144 @@ ItemsSimpleGrid,
82
96
  * @see GridProps
83
97
  */
84
98
  ItemsPanel,
99
+ /**
100
+ * Modal de seleção em grid com cards clicáveis, pagination dots e botões
101
+ * de navegação (Back/Continue). Primeira variação do sistema de modais.
102
+ * @property {string} title - Título principal do modal
103
+ * @property {string} subtitle - Subtítulo/descrição
104
+ * @property {ModelGridCard[]} cards - Lista de cards seleccionáveis
105
+ * @property {ModelGridCard | null} selectedCard - Card seleccionado (bindable)
106
+ * @property {number} totalSteps - Número total de passos (pagination dots)
107
+ * @property {number} currentStep - Passo actual
108
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
109
+ * @property {(card) => void} onSelect - Callback ao seleccionar um card
110
+ * @property {() => void} onBack - Callback do botão Back
111
+ * @property {() => void} onContinue - Callback do botão Continue
112
+ * @see ModalGridSelectionProps
113
+ */
114
+ ModalGridSelection,
115
+ /**
116
+ * Contentor base reutilizável para todos os modais.
117
+ * Fornece overlay, container com gradiente, cabeçalho, rodapé com progress bar e navegação.
118
+ * Suporta snippets personalizados para conteúdo e rodapé.
119
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
120
+ * @property {string} title - Título principal
121
+ * @property {string} subtitle - Subtítulo
122
+ * @property {Snippet} content - Conteúdo principal
123
+ * @property {Snippet} footer - Rodapé personalizado
124
+ * @see ModalCoreProps
125
+ */
126
+ ModalCore,
127
+ /**
128
+ * Modal de seleção com badges/pills clicáveis, progress bar e botão Skip.
129
+ * Segunda variação do sistema de modais.
130
+ * @property {string} title - Título principal do modal
131
+ * @property {string} subtitle - Subtítulo/descrição
132
+ * @property {ModelBadge[]} badges - Lista de badges seleccionáveis
133
+ * @property {ModelBadge | null} selectedBadge - Badge seleccionado (bindable)
134
+ * @property {boolean} multiple - Permite seleção múltipla
135
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
136
+ * @property {(badge) => void} onSelect - Callback ao seleccionar um badge
137
+ * @property {() => void} onContinue - Callback do botão Continue
138
+ * @property {() => void} onSkip - Callback do botão Skip
139
+ * @see ModalBadgeSelectionProps
140
+ */
141
+ ModalBadgeSelection,
142
+ /**
143
+ * Modal de partilha em redes sociais com ícones clicáveis e campo de copiar link.
144
+ * Terceira variação do sistema de modais.
145
+ * @property {string} title - Título principal (ex: "Share this design")
146
+ * @property {ModelSocialShare[]} networks - Lista de redes sociais (opcional; usa as embutidas se omitida)
147
+ * @property {boolean} isWhatsapp - Mostra a rede social WhatsApp
148
+ * @property {boolean} isInstagram - Mostra a rede social Instagram
149
+ * @property {boolean} isFacebook - Mostra a rede social Facebook
150
+ * @property {boolean} isTwitter - Mostra a rede social Twitter/X
151
+ * @property {boolean} isLinkedin - Mostra a rede social LinkedIn
152
+ * @property {boolean} isPinterest - Mostra a rede social Pinterest
153
+ * @property {boolean} isTumblr - Mostra a rede social Tumblr
154
+ * @property {string} linkValue - URL a partilhar/copiar
155
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
156
+ * @property {(network) => void} onShare - Callback ao clicar numa rede social
157
+ * @property {(link) => void} onCopy - Callback ao copiar o link
158
+ * @see ModalShareSelectionProps
159
+ */
160
+ ModalShareSelection,
161
+ /**
162
+ * Modal de subscrição/notificação por email com input e botão CTA.
163
+ * Quarta variação do sistema de modais.
164
+ * @property {string} title - Título principal
165
+ * @property {string} description - Texto descritivo
166
+ * @property {string} placeholder - Texto placeholder do input
167
+ * @property {string} buttonText - Texto do botão
168
+ * @property {boolean} isLoading - Estado de carregamento
169
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
170
+ * @property {(email) => void} onSubmit - Callback ao submeter
171
+ * @see ModalNotificationProps
172
+ */
173
+ ModalNotification,
174
+ /**
175
+ * Modal de feedback com editor de texto rico (bold, italic, underline, listas, alinhamento)
176
+ * e botão de adicionar imagem. Quinta variação do sistema de modais.
177
+ * @property {string} title - Título principal (default: "Your Feedback")
178
+ * @property {string} icon - Emoji/ícone ao lado do título
179
+ * @property {string} placeholder - Texto placeholder do editor
180
+ * @property {string} buttonText - Texto do botão Send
181
+ * @property {boolean} isLoading - Estado de carregamento
182
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
183
+ * @property {(content, images) => void} onSubmit - Callback ao submeter
184
+ * @property {() => void} onAddImage - Callback ao clicar Add Image
185
+ * @see ModalFeedbackProps
186
+ */
187
+ ModalFeedback,
188
+ /**
189
+ * Modal de seleção de localização com mapa, barra de pesquisa, popup de endereço
190
+ * e descrição. Sexta variação do sistema de modais.
191
+ * @property {string} title - Título do popup (default: "Location")
192
+ * @property {string} address - Endereço actual
193
+ * @property {string} description - Descrição da localização
194
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
195
+ * @property {(query) => void} onSearch - Callback ao pesquisar
196
+ * @property {(address, description) => void} onApply - Callback ao aplicar
197
+ * @property {Snippet} mapSlot - Snippet personalizado para o mapa
198
+ * @see ModalMapProps
199
+ */
200
+ ModalMap,
201
+ /**
202
+ * Formulário com grid responsivo de 2 colunas.
203
+ * Organiza inputs (text, email, password, date, phone, select, radio, checkbox, textarea)
204
+ * numa grid, onde cada campo pode ocupar 1 ou 2 colunas via prop `fill`.
205
+ * @property {FormInputConfig[]} inputs - Configuração dos inputs
206
+ * @property {(data) => void} onSubmit - Callback ao submeter
207
+ * @property {string} submitText - Texto do botão
208
+ * @property {boolean} isLoading - Estado de carregamento
209
+ * @property {1|2} columns - Número de colunas (padrão: 2)
210
+ * @see FormProps
211
+ */
212
+ Form,
213
+ /**
214
+ * Formulário dentro de um modal. Reutiliza o componente Form com a mesma
215
+ * API de inputs, adicionando overlay, título e botões de navegação.
216
+ * @property {string} title - Título do modal
217
+ * @property {string} subtitle - Subtítulo do modal
218
+ * @property {FormInputConfig[]} inputs - Configuração dos inputs
219
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
220
+ * @property {(data) => void} onSubmit - Callback ao submeter
221
+ * @property {() => void} onCancel - Callback ao cancelar
222
+ * @see ModalFormProps
223
+ */
224
+ ModalForm,
225
+ /**
226
+ * Modal de upload de ficheiros com drag and drop, lista de ficheiros
227
+ * com progress bar e estados (uploading/completed/failed).
228
+ * @property {string} title - Título do modal (default: "Upload File")
229
+ * @property {string} accept - Tipos MIME aceites
230
+ * @property {UploadFile[]} files - Lista de ficheiros (bindable)
231
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
232
+ * @property {(files) => void} onFilesSelected - Callback ao selecionar ficheiros
233
+ * @property {(files) => void} onUpload - Callback ao clicar Upload
234
+ * @see ModalUploadProps
235
+ */
236
+ ModalUpload,
85
237
  /**
86
238
  * Componente raiz do Negodesign.
87
239
  * Configura o tema, idioma e traduções da aplicação.
@@ -199,6 +351,31 @@ CarouselHero,
199
351
  * @see FooterProps
200
352
  */
201
353
  Footer,
354
+ /**
355
+ * Hero estático com layout dividido: coluna esquerda com conteúdo
356
+ * e coluna direita com imagem circular.
357
+ * @property {string} title - Título principal
358
+ * @property {string} subTitle - Subtítulo
359
+ * @property {string} description - Descrição
360
+ * @property {string} image - URL da imagem
361
+ * @see SimpleHero
362
+ */
363
+ SimpleHero,
364
+ /**
365
+ * Wrapper para cards de mídia com variantes 1 (alinhado à esquerda) e 2 (centrado).
366
+ * Mostra logo, título, rating, tags e botões.
367
+ * @property {1|2} variant - Variante visual
368
+ * @property {CardMediaProps} - Props do card de mídia
369
+ * @see CardMediaProps
370
+ */
371
+ CardMedia,
372
+ /**
373
+ * Wrapper para cards de perfil de organização/guia, com variantes 1 e 2.
374
+ * @property {1|2} variant - Variante visual
375
+ * @property {CardProfileProps} - Props do card de perfil
376
+ * @see CardProfileProps
377
+ */
378
+ CardProfile,
202
379
  /**
203
380
  * Carousel de cards de promoção com preços antigo/novo, botão de comprar,
204
381
  * favoritar e adicionar ao carrinho.
@@ -264,6 +441,14 @@ TabUnderline,
264
441
  * @see PageLoginProps
265
442
  */
266
443
  PageLogin,
444
+ /**
445
+ * Página de registo completa com carousel hero ao fundo e card de autenticação
446
+ * com múltiplas variantes (email, username, telefone) e campos configuráveis.
447
+ * @property {RegisterFormFields} fields - Campos a exibir no formulário
448
+ * @property {RegisterRequestDto} initialData - Valores iniciais do formulário
449
+ * @see PageRegisterProps
450
+ */
451
+ PageRegister,
267
452
  /**
268
453
  * Página de recuperação de senha com hero carousel e card de solicitação
269
454
  * de link de recuperação por email.
package/dist/index.js CHANGED
@@ -32,11 +32,25 @@ import CarouselHero from "./components/ui/carousel/core/hero/ui/CarouselHero.sve
32
32
  import CompanyProfile from "./components/pages/company-profile/CompanyProfile.svelte";
33
33
  import Menu from "./components/ui/nav/ui/Menu.svelte";
34
34
  import PageLogin from "./components/pages/security/login/PageLogin.svelte";
35
+ import PageRegister from "./components/pages/security/register/PageRegister.svelte";
35
36
  import SearchInput from "./components/ui/search/SearchInput.svelte";
36
37
  import Footer from "./components/ui/footer/ui/Footer.svelte";
38
+ import SimpleHero from "./components/ui/hero/SimpleHero.svelte";
39
+ import CardMedia from "./components/ui/card/core/media/CardMedia.svelte";
40
+ import CardProfile from "./components/ui/card/core/profile/CardProfile.svelte";
37
41
  import NegoDesign from "./components/NegoDesign.svelte";
38
42
  import ItemsSimpleGrid from "./components/ui/grid/core/ui/ItemsSimpleGrid.svelte";
39
43
  import ItemsPanel from "./components/ui/grid/core/ui/ItemsPanel.svelte";
44
+ import ModalGridSelection from "./components/ui/modal/grid/ui/ModalGridSelection.svelte";
45
+ import ModalBadgeSelection from "./components/ui/modal/badge/ui/ModalBadgeSelection.svelte";
46
+ import ModalShareSelection from "./components/ui/modal/share/ui/ModalShareSelection.svelte";
47
+ import ModalNotification from "./components/ui/modal/notification/ui/ModalNotification.svelte";
48
+ import ModalFeedback from "./components/ui/modal/feedback/ui/ModalFeedback.svelte";
49
+ import ModalMap from "./components/ui/modal/map/ui/ModalMap.svelte";
50
+ import ModalForm from "./components/ui/modal/form/ui/ModalForm.svelte";
51
+ import ModalUpload from "./components/ui/modal/upload/ui/ModalUpload.svelte";
52
+ import ModalCore from "./components/ui/modal/core/ui/ModalCore.svelte";
53
+ import Form from "./components/ui/form/Form.svelte";
40
54
  /** Store reativa do idioma atual. Altere com `$locale = "pt"`. */
41
55
  export { locale } from "./i18n";
42
56
  /** Lista de idiomas disponíveis. Atualizado automaticamente. */
@@ -82,6 +96,144 @@ ItemsSimpleGrid,
82
96
  * @see GridProps
83
97
  */
84
98
  ItemsPanel,
99
+ /**
100
+ * Modal de seleção em grid com cards clicáveis, pagination dots e botões
101
+ * de navegação (Back/Continue). Primeira variação do sistema de modais.
102
+ * @property {string} title - Título principal do modal
103
+ * @property {string} subtitle - Subtítulo/descrição
104
+ * @property {ModelGridCard[]} cards - Lista de cards seleccionáveis
105
+ * @property {ModelGridCard | null} selectedCard - Card seleccionado (bindable)
106
+ * @property {number} totalSteps - Número total de passos (pagination dots)
107
+ * @property {number} currentStep - Passo actual
108
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
109
+ * @property {(card) => void} onSelect - Callback ao seleccionar um card
110
+ * @property {() => void} onBack - Callback do botão Back
111
+ * @property {() => void} onContinue - Callback do botão Continue
112
+ * @see ModalGridSelectionProps
113
+ */
114
+ ModalGridSelection,
115
+ /**
116
+ * Contentor base reutilizável para todos os modais.
117
+ * Fornece overlay, container com gradiente, cabeçalho, rodapé com progress bar e navegação.
118
+ * Suporta snippets personalizados para conteúdo e rodapé.
119
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
120
+ * @property {string} title - Título principal
121
+ * @property {string} subtitle - Subtítulo
122
+ * @property {Snippet} content - Conteúdo principal
123
+ * @property {Snippet} footer - Rodapé personalizado
124
+ * @see ModalCoreProps
125
+ */
126
+ ModalCore,
127
+ /**
128
+ * Modal de seleção com badges/pills clicáveis, progress bar e botão Skip.
129
+ * Segunda variação do sistema de modais.
130
+ * @property {string} title - Título principal do modal
131
+ * @property {string} subtitle - Subtítulo/descrição
132
+ * @property {ModelBadge[]} badges - Lista de badges seleccionáveis
133
+ * @property {ModelBadge | null} selectedBadge - Badge seleccionado (bindable)
134
+ * @property {boolean} multiple - Permite seleção múltipla
135
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
136
+ * @property {(badge) => void} onSelect - Callback ao seleccionar um badge
137
+ * @property {() => void} onContinue - Callback do botão Continue
138
+ * @property {() => void} onSkip - Callback do botão Skip
139
+ * @see ModalBadgeSelectionProps
140
+ */
141
+ ModalBadgeSelection,
142
+ /**
143
+ * Modal de partilha em redes sociais com ícones clicáveis e campo de copiar link.
144
+ * Terceira variação do sistema de modais.
145
+ * @property {string} title - Título principal (ex: "Share this design")
146
+ * @property {ModelSocialShare[]} networks - Lista de redes sociais (opcional; usa as embutidas se omitida)
147
+ * @property {boolean} isWhatsapp - Mostra a rede social WhatsApp
148
+ * @property {boolean} isInstagram - Mostra a rede social Instagram
149
+ * @property {boolean} isFacebook - Mostra a rede social Facebook
150
+ * @property {boolean} isTwitter - Mostra a rede social Twitter/X
151
+ * @property {boolean} isLinkedin - Mostra a rede social LinkedIn
152
+ * @property {boolean} isPinterest - Mostra a rede social Pinterest
153
+ * @property {boolean} isTumblr - Mostra a rede social Tumblr
154
+ * @property {string} linkValue - URL a partilhar/copiar
155
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
156
+ * @property {(network) => void} onShare - Callback ao clicar numa rede social
157
+ * @property {(link) => void} onCopy - Callback ao copiar o link
158
+ * @see ModalShareSelectionProps
159
+ */
160
+ ModalShareSelection,
161
+ /**
162
+ * Modal de subscrição/notificação por email com input e botão CTA.
163
+ * Quarta variação do sistema de modais.
164
+ * @property {string} title - Título principal
165
+ * @property {string} description - Texto descritivo
166
+ * @property {string} placeholder - Texto placeholder do input
167
+ * @property {string} buttonText - Texto do botão
168
+ * @property {boolean} isLoading - Estado de carregamento
169
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
170
+ * @property {(email) => void} onSubmit - Callback ao submeter
171
+ * @see ModalNotificationProps
172
+ */
173
+ ModalNotification,
174
+ /**
175
+ * Modal de feedback com editor de texto rico (bold, italic, underline, listas, alinhamento)
176
+ * e botão de adicionar imagem. Quinta variação do sistema de modais.
177
+ * @property {string} title - Título principal (default: "Your Feedback")
178
+ * @property {string} icon - Emoji/ícone ao lado do título
179
+ * @property {string} placeholder - Texto placeholder do editor
180
+ * @property {string} buttonText - Texto do botão Send
181
+ * @property {boolean} isLoading - Estado de carregamento
182
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
183
+ * @property {(content, images) => void} onSubmit - Callback ao submeter
184
+ * @property {() => void} onAddImage - Callback ao clicar Add Image
185
+ * @see ModalFeedbackProps
186
+ */
187
+ ModalFeedback,
188
+ /**
189
+ * Modal de seleção de localização com mapa, barra de pesquisa, popup de endereço
190
+ * e descrição. Sexta variação do sistema de modais.
191
+ * @property {string} title - Título do popup (default: "Location")
192
+ * @property {string} address - Endereço actual
193
+ * @property {string} description - Descrição da localização
194
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
195
+ * @property {(query) => void} onSearch - Callback ao pesquisar
196
+ * @property {(address, description) => void} onApply - Callback ao aplicar
197
+ * @property {Snippet} mapSlot - Snippet personalizado para o mapa
198
+ * @see ModalMapProps
199
+ */
200
+ ModalMap,
201
+ /**
202
+ * Formulário com grid responsivo de 2 colunas.
203
+ * Organiza inputs (text, email, password, date, phone, select, radio, checkbox, textarea)
204
+ * numa grid, onde cada campo pode ocupar 1 ou 2 colunas via prop `fill`.
205
+ * @property {FormInputConfig[]} inputs - Configuração dos inputs
206
+ * @property {(data) => void} onSubmit - Callback ao submeter
207
+ * @property {string} submitText - Texto do botão
208
+ * @property {boolean} isLoading - Estado de carregamento
209
+ * @property {1|2} columns - Número de colunas (padrão: 2)
210
+ * @see FormProps
211
+ */
212
+ Form,
213
+ /**
214
+ * Formulário dentro de um modal. Reutiliza o componente Form com a mesma
215
+ * API de inputs, adicionando overlay, título e botões de navegação.
216
+ * @property {string} title - Título do modal
217
+ * @property {string} subtitle - Subtítulo do modal
218
+ * @property {FormInputConfig[]} inputs - Configuração dos inputs
219
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
220
+ * @property {(data) => void} onSubmit - Callback ao submeter
221
+ * @property {() => void} onCancel - Callback ao cancelar
222
+ * @see ModalFormProps
223
+ */
224
+ ModalForm,
225
+ /**
226
+ * Modal de upload de ficheiros com drag and drop, lista de ficheiros
227
+ * com progress bar e estados (uploading/completed/failed).
228
+ * @property {string} title - Título do modal (default: "Upload File")
229
+ * @property {string} accept - Tipos MIME aceites
230
+ * @property {UploadFile[]} files - Lista de ficheiros (bindable)
231
+ * @property {boolean} isOpen - Visibilidade do modal (bindable)
232
+ * @property {(files) => void} onFilesSelected - Callback ao selecionar ficheiros
233
+ * @property {(files) => void} onUpload - Callback ao clicar Upload
234
+ * @see ModalUploadProps
235
+ */
236
+ ModalUpload,
85
237
  /**
86
238
  * Componente raiz do Negodesign.
87
239
  * Configura o tema, idioma e traduções da aplicação.
@@ -199,6 +351,31 @@ CarouselHero,
199
351
  * @see FooterProps
200
352
  */
201
353
  Footer,
354
+ /**
355
+ * Hero estático com layout dividido: coluna esquerda com conteúdo
356
+ * e coluna direita com imagem circular.
357
+ * @property {string} title - Título principal
358
+ * @property {string} subTitle - Subtítulo
359
+ * @property {string} description - Descrição
360
+ * @property {string} image - URL da imagem
361
+ * @see SimpleHero
362
+ */
363
+ SimpleHero,
364
+ /**
365
+ * Wrapper para cards de mídia com variantes 1 (alinhado à esquerda) e 2 (centrado).
366
+ * Mostra logo, título, rating, tags e botões.
367
+ * @property {1|2} variant - Variante visual
368
+ * @property {CardMediaProps} - Props do card de mídia
369
+ * @see CardMediaProps
370
+ */
371
+ CardMedia,
372
+ /**
373
+ * Wrapper para cards de perfil de organização/guia, com variantes 1 e 2.
374
+ * @property {1|2} variant - Variante visual
375
+ * @property {CardProfileProps} - Props do card de perfil
376
+ * @see CardProfileProps
377
+ */
378
+ CardProfile,
202
379
  /**
203
380
  * Carousel de cards de promoção com preços antigo/novo, botão de comprar,
204
381
  * favoritar e adicionar ao carrinho.
@@ -264,6 +441,14 @@ TabUnderline,
264
441
  * @see PageLoginProps
265
442
  */
266
443
  PageLogin,
444
+ /**
445
+ * Página de registo completa com carousel hero ao fundo e card de autenticação
446
+ * com múltiplas variantes (email, username, telefone) e campos configuráveis.
447
+ * @property {RegisterFormFields} fields - Campos a exibir no formulário
448
+ * @property {RegisterRequestDto} initialData - Valores iniciais do formulário
449
+ * @see PageRegisterProps
450
+ */
451
+ PageRegister,
267
452
  /**
268
453
  * Página de recuperação de senha com hero carousel e card de solicitação
269
454
  * de link de recuperação por email.
@@ -1,5 +1,6 @@
1
1
  import type { ProductPromotionDetailsProps } from "../components/pages/product-details/types";
2
2
  import type { LoginVariant, LoginRequestDto, LinkProps, PageLoginProps } from "../components/pages/security/login/types";
3
+ import type { RegisterFormFields, RegisterRequestDto, PageRegisterProps } from "../components/pages/security/register/types";
3
4
  import type { ForgetPasswordVariant, ForgetPasswordRequestDto, PageForgetPasswordProps } from "../components/pages/security/forget-password/types";
4
5
  import type { ResetPasswordRequestDto, PageResetPasswordProps } from "../components/pages/security/reset-password/types";
5
6
  import type { OtpVerificationRequestDto, PageOtpVerificationProps } from "../components/pages/security/otp-verification/types";
@@ -31,6 +32,16 @@ import type { CarouselGridProductProps } from "../components/ui/carousel/core/gr
31
32
  import type { CompanyProfileProps } from "../components/pages/company-profile/types";
32
33
  import type { MenuProps, MenuVarientProps, ComplexMenuProps } from "../components/ui/nav/data/types";
33
34
  import type { GridProps, ItemGridProps } from "../components/ui/grid/core/data/types";
35
+ import type { ModelGridCard, ModelGridCategory, ModalGridSelectionProps } from "../components/ui/modal/grid/types";
36
+ import type { ModelBadge, ModalBadgeSelectionProps } from "../components/ui/modal/badge/types";
37
+ import type { ModelSocialShare, ModalShareSelectionProps } from "../components/ui/modal/share/types";
38
+ import type { ModalNotificationProps } from "../components/ui/modal/notification/types";
39
+ import type { ModalFeedbackProps } from "../components/ui/modal/feedback/types";
40
+ import type { ModalMapProps } from "../components/ui/modal/map/types";
41
+ import type { ModalCoreProps } from "../components/ui/modal/core/types";
42
+ import type { FormProps, FormInputConfig, FormOption } from "../components/ui/form/types";
43
+ import type { ModalFormProps } from "../components/ui/modal/form/types";
44
+ import type { ModalUploadProps, UploadFile, UploadFileStatus } from "../components/ui/modal/upload/types";
34
45
  export type { GridProps,
35
46
  /** Props de um link individual no menu de navegação. @see NavMenuLinksProps */
36
47
  NavMenuLinksProps,
@@ -146,6 +157,12 @@ LoginVariant,
146
157
  LinkProps,
147
158
  /** Props do componente PageLogin. @see PageLoginProps */
148
159
  PageLoginProps,
160
+ /** Campos configuráveis do formulário de registo. @see RegisterFormFields */
161
+ RegisterFormFields,
162
+ /** Dados submetidos no formulário de registo. @see RegisterRequestDto */
163
+ RegisterRequestDto,
164
+ /** Props do componente PageRegister. @see PageRegisterProps */
165
+ PageRegisterProps,
149
166
  /** Variante do formulário de recuperação de senha. @see ForgetPasswordVariant */
150
167
  ForgetPasswordVariant,
151
168
  /** Dados necessários para recuperação de senha. @see ForgetPasswordRequestDto */
@@ -176,6 +193,42 @@ ProfileUserExperience,
176
193
  ProfileUserData,
177
194
  /** Props do componente ProfileUser — página de perfil com 3 variantes. @see ProfileUserProps */
178
195
  ProfileUserProps,
196
+ /** Modelo de dados para um card seleccionável no ModalGridSelection. @see ModelGridCard */
197
+ ModelGridCard,
198
+ /** Modelo de dados para uma categoria no topo do ModalGridSelection (variante 2). @see ModelGridCategory */
199
+ ModelGridCategory,
200
+ /** Props do componente ModalGridSelection — modal de seleção em grid. @see ModalGridSelectionProps */
201
+ ModalGridSelectionProps,
202
+ /** Modelo de dados para um badge/pill seleccionável no ModalBadgeSelection. @see ModelBadge */
203
+ ModelBadge,
204
+ /** Props do componente ModalBadgeSelection — modal de seleção com badges/pills. @see ModalBadgeSelectionProps */
205
+ ModalBadgeSelectionProps,
206
+ /** Modelo de dados para uma rede social no ModalShareSelection. @see ModelSocialShare */
207
+ ModelSocialShare,
208
+ /** Props do componente ModalShareSelection — modal de partilha em redes sociais. @see ModalShareSelectionProps */
209
+ ModalShareSelectionProps,
210
+ /** Props do componente ModalNotification — modal de subscrição/notificação por email. @see ModalNotificationProps */
211
+ ModalNotificationProps,
212
+ /** Props do componente ModalFeedback — modal de feedback com editor de texto rico. @see ModalFeedbackProps */
213
+ ModalFeedbackProps,
214
+ /** Props do componente ModalMap — modal de seleção de localização com mapa. @see ModalMapProps */
215
+ ModalMapProps,
216
+ /** Props do componente Form — formulário com grid responsivo de 2 colunas. @see FormProps */
217
+ FormProps,
218
+ /** Configuração de um input dentro do Form. @see FormInputConfig */
219
+ FormInputConfig,
220
+ /** Opção para inputs do tipo select, radio ou checkbox. @see FormOption */
221
+ FormOption,
222
+ /** Props do componente ModalForm — formulário dentro de um modal. @see ModalFormProps */
223
+ ModalFormProps,
224
+ /** Props do componente ModalUpload — modal de upload de ficheiros. @see ModalUploadProps */
225
+ ModalUploadProps,
226
+ /** Modelo de dados para um ficheiro no modal de upload. @see UploadFile */
227
+ UploadFile,
228
+ /** Estado de um ficheiro no upload. @see UploadFileStatus */
229
+ UploadFileStatus,
230
+ /** Props do componente ModalCore — contentor base reutilizável para todos os modais. @see ModalCoreProps */
231
+ ModalCoreProps,
179
232
  /** Props do NegoDesign — componente raiz do Negodesign. */
180
233
  NegoDesignProps,
181
234
  /** Props base para inputs de formulário com label. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "negodesign",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "sideEffects": [