@fast-food/design-system 1.32.0 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/components/atoms/Icon/iconRegistry.d.ts +1 -0
  2. package/dist/components/atoms/index.d.ts +1 -0
  3. package/dist/components/molecules/ComboboxSelect/ComboboxSelect.d.ts +1 -1
  4. package/dist/components/molecules/ComboboxSelect/ComboboxSelect.type.d.ts +6 -0
  5. package/dist/components/molecules/Form/Form.d.ts +37 -0
  6. package/dist/components/molecules/Form/index.d.ts +1 -0
  7. package/dist/components/molecules/FormField/index.d.ts +2 -2
  8. package/dist/components/molecules/FormFields/BooleanField/BooleanField.d.ts +3 -0
  9. package/dist/components/molecules/FormFields/BooleanField/index.d.ts +1 -0
  10. package/dist/components/molecules/FormFields/CurrencyField/CurrencyField.d.ts +8 -3
  11. package/dist/components/molecules/FormFields/DurationField/DurationField.d.ts +6 -0
  12. package/dist/components/molecules/FormFields/DurationField/index.d.ts +1 -0
  13. package/dist/components/molecules/FormFields/EmailField/EmailField.d.ts +1 -3
  14. package/dist/components/molecules/FormFields/MaskField/MaskField.d.ts +6 -3
  15. package/dist/components/molecules/FormFields/NumberField/NumberField.d.ts +8 -3
  16. package/dist/components/molecules/FormFields/PasswordField/PasswordField.d.ts +1 -3
  17. package/dist/components/molecules/FormFields/PercentageField/PercentageField.d.ts +8 -3
  18. package/dist/components/molecules/FormFields/TextAreaField/TextAreaField.d.ts +5 -3
  19. package/dist/components/molecules/FormFields/TextField/TextField.d.ts +6 -3
  20. package/dist/components/molecules/FormFields/TimeField/TimeField.d.ts +5 -0
  21. package/dist/components/molecules/FormFields/TimeField/index.d.ts +1 -0
  22. package/dist/components/molecules/FormFields/index.d.ts +3 -0
  23. package/dist/components/molecules/FormFields/shared/emitFieldValue.d.ts +9 -0
  24. package/dist/components/molecules/FormFields/shared/formFieldTypes.d.ts +61 -5
  25. package/dist/components/molecules/FormFields/shared/maskFieldHelpers.d.ts +24 -0
  26. package/dist/components/molecules/FormFields/shared/mergeRefs.d.ts +7 -0
  27. package/dist/components/molecules/ModeToggle/ModeToggle.d.ts +6 -0
  28. package/dist/components/molecules/ModeToggle/ModeToggle.style.d.ts +10 -0
  29. package/dist/components/molecules/ModeToggle/ModeToggle.type.d.ts +21 -0
  30. package/dist/components/molecules/ModeToggle/index.d.ts +2 -0
  31. package/dist/components/molecules/PopoverMultiSelect/PopoverMultiSelect.d.ts +1 -1
  32. package/dist/components/molecules/PopoverMultiSelect/PopoverMultiSelect.type.d.ts +6 -0
  33. package/dist/components/molecules/index.d.ts +2 -0
  34. package/dist/components/organisms/ConfirmationModal/ConfirmationModal.d.ts +7 -0
  35. package/dist/components/organisms/ConfirmationModal/ConfirmationModal.style.d.ts +6 -0
  36. package/dist/components/organisms/ConfirmationModal/ConfirmationModal.type.d.ts +24 -0
  37. package/dist/components/organisms/ConfirmationModal/ConfirmationModalHost.d.ts +6 -0
  38. package/dist/components/organisms/ConfirmationModal/confirm.d.ts +11 -0
  39. package/dist/components/organisms/ConfirmationModal/confirmStore.d.ts +19 -0
  40. package/dist/components/organisms/ConfirmationModal/index.d.ts +6 -0
  41. package/dist/components/organisms/ConfirmationModal/useConfirmationModal.d.ts +9 -0
  42. package/dist/components/organisms/Toaster/Toaster.d.ts +10 -0
  43. package/dist/components/organisms/Toaster/Toaster.style.d.ts +4 -0
  44. package/dist/components/organisms/Toaster/index.d.ts +5 -0
  45. package/dist/components/organisms/Toaster/toast.d.ts +27 -0
  46. package/dist/components/organisms/Toaster/toast.type.d.ts +32 -0
  47. package/dist/components/organisms/Toaster/toastStore.d.ts +17 -0
  48. package/dist/components/organisms/index.d.ts +2 -0
  49. package/dist/contexts/index.d.ts +1 -0
  50. package/dist/contexts/theme/ThemeProvider.d.ts +8 -0
  51. package/dist/contexts/theme/index.d.ts +3 -0
  52. package/dist/contexts/theme/theme.context.d.ts +7 -0
  53. package/dist/contexts/theme/theme.type.d.ts +23 -0
  54. package/dist/contexts/theme/useTheme.d.ts +6 -0
  55. package/dist/fast-food-design-system-1.34.0.tgz +0 -0
  56. package/dist/fast-food-design-system.cjs.js +165 -160
  57. package/dist/fast-food-design-system.css +1 -1
  58. package/dist/fast-food-design-system.es.js +14413 -13072
  59. package/dist/index.d.ts +1 -0
  60. package/package.json +13 -3
  61. package/dist/fast-food-design-system-1.32.0.tgz +0 -0
@@ -0,0 +1,27 @@
1
+ import { ToastItem, ToastOptions } from './toast.type';
2
+ interface ToastFn {
3
+ (message: string, options?: ToastOptions): string;
4
+ success: (message: string, options?: ToastOptions) => string;
5
+ error: (message: string, options?: ToastOptions) => string;
6
+ warning: (message: string, options?: ToastOptions) => string;
7
+ info: (message: string, options?: ToastOptions) => string;
8
+ /** Cria um toast com controle total do payload. */
9
+ show: (toast: Omit<ToastItem, 'id'> & {
10
+ id?: string;
11
+ }) => string;
12
+ /** Fecha um toast específico. */
13
+ dismiss: (id: string) => void;
14
+ /** Fecha todos os toasts. */
15
+ clear: () => void;
16
+ }
17
+ /**
18
+ * API imperativa de toasts — pode ser chamada de qualquer lugar
19
+ * (services, handlers, etc.), sem hooks. Requer um `<Toaster />`
20
+ * montado uma vez na árvore para renderizar.
21
+ *
22
+ * @example
23
+ * toast.success('Pedido criado!');
24
+ * toast.error('Falha ao salvar', { title: 'Erro' });
25
+ */
26
+ export declare const toast: ToastFn;
27
+ export {};
@@ -0,0 +1,32 @@
1
+ export type ToastVariant = 'success' | 'error' | 'warning' | 'info';
2
+ export interface ToastAction {
3
+ label: string;
4
+ onClick: () => void;
5
+ }
6
+ export interface ToastItem {
7
+ id: string;
8
+ variant: ToastVariant;
9
+ title?: string;
10
+ message: string;
11
+ /** Duração em ms (0 = não fecha sozinho). Padrão: 5000. */
12
+ duration?: number;
13
+ icon?: React.ReactNode;
14
+ action?: ToastAction;
15
+ }
16
+ /** Opções aceitas pelos atalhos (`toast.success`, etc.). */
17
+ export type ToastOptions = Partial<Omit<ToastItem, 'id' | 'message' | 'variant'>> & {
18
+ id?: string;
19
+ };
20
+ export type ToasterPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
21
+ export interface ToasterProps {
22
+ /** Posição do empilhamento na tela. Padrão: `top-right`. */
23
+ position?: ToasterPosition;
24
+ /** Duração padrão aplicada quando o toast não define a sua. */
25
+ duration?: number;
26
+ /** Máximo de toasts visíveis ao mesmo tempo (mais antigos são descartados). */
27
+ max?: number;
28
+ /** Classe adicional no viewport. */
29
+ className?: string;
30
+ /** z-index do viewport. Padrão: 9999. */
31
+ zIndex?: number;
32
+ }
@@ -0,0 +1,17 @@
1
+ import { ToastItem } from './toast.type';
2
+ type Listener = (toasts: ToastItem[]) => void;
3
+ /**
4
+ * Store externo dos toasts. Consumido pelo `<Toaster />` via
5
+ * `useSyncExternalStore`. Independente de React para permitir a API
6
+ * imperativa `toast.*` fora de componentes.
7
+ */
8
+ export declare const toastStore: {
9
+ subscribe(listener: Listener): () => void;
10
+ getSnapshot(): ToastItem[];
11
+ add(toast: Omit<ToastItem, "id"> & {
12
+ id?: string;
13
+ }): string;
14
+ dismiss(id: string): void;
15
+ clear(): void;
16
+ };
17
+ export {};
@@ -2,3 +2,5 @@ export * from './Header';
2
2
  export * from './Layout';
3
3
  export * from './Footer';
4
4
  export * from './HeroSection';
5
+ export * from './Toaster';
6
+ export * from './ConfirmationModal';
@@ -0,0 +1 @@
1
+ export * from './theme';
@@ -0,0 +1,8 @@
1
+ import { ThemeProviderProps } from './theme.type';
2
+ /**
3
+ * Provedor de tema (light / dark / system) com persistência em localStorage.
4
+ * Alterna a classe `dark` em `<html>` — os tokens de cor do design system
5
+ * já reagem a essa classe (ver `styles/colors.css`).
6
+ */
7
+ export declare const ThemeProvider: ({ children, defaultTheme, storageKey, disableTransitionOnChange }: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ThemeProvider;
@@ -0,0 +1,3 @@
1
+ export * from './ThemeProvider';
2
+ export * from './useTheme';
3
+ export * from './theme.type';
@@ -0,0 +1,7 @@
1
+ import { ThemeContextValue } from './theme.type';
2
+ /**
3
+ * Contexto interno do tema. Exposto via `useTheme()`.
4
+ * Mantido em arquivo separado para evitar avisos de fast-refresh
5
+ * (arquivos de componente devem exportar apenas componentes).
6
+ */
7
+ export declare const ThemeContext: import('react').Context<ThemeContextValue | undefined>;
@@ -0,0 +1,23 @@
1
+ /** Temas suportados. `system` segue a preferência do sistema operacional. */
2
+ export type Theme = 'light' | 'dark' | 'system';
3
+ /** Tema efetivamente aplicado no DOM (nunca `system`). */
4
+ export type ResolvedTheme = 'light' | 'dark';
5
+ export interface ThemeProviderProps {
6
+ children: React.ReactNode;
7
+ /** Tema inicial quando não há nada persistido. Padrão: `system`. */
8
+ defaultTheme?: Theme;
9
+ /** Chave usada no localStorage. Padrão: `fast-food-ui-theme`. */
10
+ storageKey?: string;
11
+ /** Desabilita as transições de cor no instante da troca de tema (evita flash). */
12
+ disableTransitionOnChange?: boolean;
13
+ }
14
+ export interface ThemeContextValue {
15
+ /** Tema escolhido pelo usuário (`light` | `dark` | `system`). */
16
+ theme: Theme;
17
+ /** Tema realmente aplicado (resolve `system` para `light`/`dark`). */
18
+ resolvedTheme: ResolvedTheme;
19
+ /** Define o tema. */
20
+ setTheme: (theme: Theme) => void;
21
+ /** Alterna entre `light` e `dark` (com base no tema resolvido atual). */
22
+ toggleTheme: () => void;
23
+ }
@@ -0,0 +1,6 @@
1
+ import { ThemeContextValue } from './theme.type';
2
+ /**
3
+ * Acessa o tema atual e as ações de troca.
4
+ * Precisa estar dentro de um `<ThemeProvider>`.
5
+ */
6
+ export declare const useTheme: () => ThemeContextValue;