gantri-components 2.262.0 → 2.264.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.
@@ -42,6 +42,7 @@ export declare const StyledDynamicGlow: import("styled-components/dist/types").I
42
42
  }>> & string;
43
43
  export declare const StyledDynamicCloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
44
44
  export declare const StyledModalFooter: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {
45
+ $dynamic?: boolean | undefined;
45
46
  $floating?: boolean | undefined;
46
47
  $fullWidth?: boolean | undefined;
47
48
  $hasBorder: boolean;
@@ -19,6 +19,19 @@ export type ModalSurface = 'solid' | 'dynamic';
19
19
  * with `flex: 1` each.
20
20
  */
21
21
  export type ModalFooterLayout = 'auto' | 'fullWidth';
22
+ /**
23
+ * Where the footer sits relative to the scrollable content. Only meaningful
24
+ * for the dynamic (glass) surface — the solid surface always renders its
25
+ * footer in flow.
26
+ *
27
+ * - `'floating'` (default): the footer floats over the bottom of the content
28
+ * (the "liquid glass" look). Content gets extra bottom padding so the last
29
+ * item clears the floating action.
30
+ * - `'fixed'`: the footer is pinned at the bottom of the modal in the normal
31
+ * layout flow, so it never overlaps the content. The content scrolls above
32
+ * it and a divider separates the two.
33
+ */
34
+ export type ModalFooterPlacement = 'floating' | 'fixed';
22
35
  export interface ModalProps {
23
36
  /**
24
37
  * Internal: lets compound components (e.g. `ConfirmationModal`) override
@@ -43,6 +56,17 @@ export interface ModalProps {
43
56
  * to stretch a single primary action across the modal width.
44
57
  */
45
58
  footerLayout?: ModalFooterLayout;
59
+ /**
60
+ * Where the footer sits relative to the content on the dynamic (glass)
61
+ * surface. Defaults to `'floating'` (the footer floats over the content).
62
+ * Use `'fixed'` to pin the footer at the bottom in normal flow so it never
63
+ * overlaps the content. No-op on the solid surface (always in flow).
64
+ *
65
+ * Can also be defaulted per-theme via
66
+ * `createTheme({ defaults: { modal: { footerPlacement: 'fixed' } } })`.
67
+ * An explicit prop always wins over the theme default.
68
+ */
69
+ footerPlacement?: ModalFooterPlacement;
46
70
  header?: ReactNode;
47
71
  headerBorderBottom?: Property.Border;
48
72
  headerStyle?: CSSProperties;