@micromerce/formbuilder-react 1.0.985 → 1.0.989

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/dist/index.d.ts CHANGED
@@ -16,8 +16,8 @@ import TrafficLightCardSelect from "./components/controls/TrafficLightCardSelect
16
16
  import { useValueGenerator } from "./hooks/useValueGenerator/useValueGenerator";
17
17
  import { queryControl } from "./components/QueryControl/data/defaultControls";
18
18
  import { FormBuilderConfig } from "./types";
19
- import { FormBuilderThemeProvider, FORM_BUILDER_TOKENS, toCssVars } from "./theme";
19
+ import { FormBuilderThemeProvider, FORM_BUILDER_TOKENS, LEGACY_CSS_VARS, toCssVars } from "./theme";
20
20
  import type { FormBuilderTheme, FormBuilderThemeKey, FormBuilderThemePreset } from "./theme";
21
21
  export type { FormBuilderTheme, FormBuilderThemeKey, FormBuilderThemePreset };
22
- export { FormBuilderThemeProvider, FORM_BUILDER_TOKENS, toCssVars, FormBuilder, FormBuilderConfig, queryControl, Select, MultiSelect, Checkbox, ControlWrapper, FormFooter, Input, InputFreeSolo, FormList, FormGroup, MrnInput, PasswordInput, Textarea, TrafficLightCardSelect, useValueGenerator, };
22
+ export { FormBuilderThemeProvider, FORM_BUILDER_TOKENS, LEGACY_CSS_VARS, toCssVars, FormBuilder, FormBuilderConfig, queryControl, Select, MultiSelect, Checkbox, ControlWrapper, FormFooter, Input, InputFreeSolo, FormList, FormGroup, MrnInput, PasswordInput, Textarea, TrafficLightCardSelect, useValueGenerator, };
23
23
  export default FormBuilder;
@@ -1,17 +1,89 @@
1
1
  import React, { HTMLAttributes, ReactNode } from "react";
2
2
  import { FormBuilderTheme, FormBuilderThemePreset } from "./tokens";
3
3
  export interface FormBuilderThemeProviderProps extends HTMLAttributes<HTMLDivElement> {
4
- /** A ready-made token set: "design" is the webclient design system (DESIGN.md). */
4
+ /** A ready-made token set: "legacy" is the look before the design system ("design" is the default). */
5
5
  preset?: FormBuilderThemePreset;
6
6
  /** Single token values; they win over the preset. */
7
7
  theme?: FormBuilderTheme;
8
8
  children?: ReactNode;
9
9
  }
10
+ export interface FormBuilderThemeContextValue {
11
+ preset?: FormBuilderThemePreset;
12
+ theme?: FormBuilderTheme;
13
+ }
14
+ /**
15
+ * The theme of the nearest providers, for what the cascade does not reach: FormBuilder gives it
16
+ * to the tooltips and menus MUI renders into a portal under <body>. The inner preset wins, the
17
+ * tokens are merged.
18
+ */
19
+ export declare const FormBuilderThemeContext: React.Context<FormBuilderThemeContextValue>;
20
+ export declare const useFormBuilderTheme: (preset?: FormBuilderThemePreset, theme?: FormBuilderTheme) => {
21
+ preset: FormBuilderThemePreset | undefined;
22
+ theme: {
23
+ value?: string | number | undefined;
24
+ error?: string | number | undefined;
25
+ placeholder?: string | number | undefined;
26
+ success?: string | number | undefined;
27
+ icon?: string | number | undefined;
28
+ label?: string | number | undefined;
29
+ primary?: string | number | undefined;
30
+ border?: string | number | undefined;
31
+ fontFamily?: string | number | undefined;
32
+ fontSize?: string | number | undefined;
33
+ background?: string | number | undefined;
34
+ radius?: string | number | undefined;
35
+ helper?: string | number | undefined;
36
+ accent?: string | number | undefined;
37
+ accentStrong?: string | number | undefined;
38
+ accentHover?: string | number | undefined;
39
+ accentDark?: string | number | undefined;
40
+ accentLight?: string | number | undefined;
41
+ onAccent?: string | number | undefined;
42
+ primaryDark?: string | number | undefined;
43
+ primaryLight?: string | number | undefined;
44
+ primaryHover?: string | number | undefined;
45
+ textPrimary?: string | number | undefined;
46
+ textSecondary?: string | number | undefined;
47
+ fieldText?: string | number | undefined;
48
+ fieldFontWeight?: string | number | undefined;
49
+ iconMuted?: string | number | undefined;
50
+ tooltipBackground?: string | number | undefined;
51
+ borderHover?: string | number | undefined;
52
+ borderFocus?: string | number | undefined;
53
+ borderLight?: string | number | undefined;
54
+ checkboxOff?: string | number | undefined;
55
+ switchOff?: string | number | undefined;
56
+ optionSelected?: string | number | undefined;
57
+ optionSelectedFocus?: string | number | undefined;
58
+ backgroundHover?: string | number | undefined;
59
+ backgroundReadonly?: string | number | undefined;
60
+ backgroundMuted?: string | number | undefined;
61
+ backgroundSubtle?: string | number | undefined;
62
+ errorText?: string | number | undefined;
63
+ errorBackground?: string | number | undefined;
64
+ alertText?: string | number | undefined;
65
+ alertBackground?: string | number | undefined;
66
+ danger?: string | number | undefined;
67
+ successBackground?: string | number | undefined;
68
+ errorFontSize?: string | number | undefined;
69
+ errorIcon?: string | number | undefined;
70
+ helperFontSize?: string | number | undefined;
71
+ inputHeight?: string | number | undefined;
72
+ inputPadding?: string | number | undefined;
73
+ labelWidth?: string | number | undefined;
74
+ labelGap?: string | number | undefined;
75
+ buttonHeight?: string | number | undefined;
76
+ buttonPadding?: string | number | undefined;
77
+ buttonRadius?: string | number | undefined;
78
+ buttonTextTransform?: string | number | undefined;
79
+ focusRing?: string | number | undefined;
80
+ fieldFocusShadow?: string | number | undefined;
81
+ };
82
+ };
10
83
  /**
11
84
  * Themes every formbuilder component inside it. The tokens are CSS custom properties, so they
12
- * cascade without a React context: providers can be nested and the inner one wins, and content
13
- * MUI renders into a portal (tooltips, menus) inherits them only when the provider is an
14
- * ancestor of the portal target (theme <body> for those, e.g. with toCssVars).
85
+ * cascade: providers can be nested and the inner one wins. Tooltips and menus of a FormBuilder
86
+ * inside get the same tokens, although MUI renders them into a portal under <body>.
15
87
  */
16
88
  declare const FormBuilderThemeProvider: ({ preset, theme, className, style, children, ...rest }: FormBuilderThemeProviderProps) => React.JSX.Element;
17
89
  export default FormBuilderThemeProvider;
@@ -1,4 +1,4 @@
1
- export { default as FormBuilderThemeProvider } from "./FormBuilderThemeProvider";
2
- export type { FormBuilderThemeProviderProps } from "./FormBuilderThemeProvider";
3
- export { FORM_BUILDER_TOKENS, PRESET_CLASS_NAMES, toCssVars } from "./tokens";
1
+ export { default as FormBuilderThemeProvider, FormBuilderThemeContext, useFormBuilderTheme } from "./FormBuilderThemeProvider";
2
+ export type { FormBuilderThemeContextValue, FormBuilderThemeProviderProps } from "./FormBuilderThemeProvider";
3
+ export { FORM_BUILDER_TOKENS, LEGACY_CSS_VARS, PRESET_CLASS_NAMES, toCssVars } from "./tokens";
4
4
  export type { FormBuilderTheme, FormBuilderThemeKey, FormBuilderThemePreset } from "./tokens";
@@ -68,9 +68,19 @@ export declare const FORM_BUILDER_TOKENS: {
68
68
  export type FormBuilderThemeKey = keyof typeof FORM_BUILDER_TOKENS;
69
69
  /** A partial set of token values; every key is optional. */
70
70
  export type FormBuilderTheme = Partial<Record<FormBuilderThemeKey, string | number>>;
71
- /** Ready-made sets of token values, applied as a class (see styles/theme.module.scss). */
72
- export type FormBuilderThemePreset = "design";
71
+ /**
72
+ * Ready-made sets of token values, applied as a class (see styles/theme.module.scss): "design"
73
+ * is the default and needs no preset; "legacy" is the look before the design system.
74
+ */
75
+ export type FormBuilderThemePreset = "design" | "legacy";
73
76
  export declare const PRESET_CLASS_NAMES: Record<FormBuilderThemePreset, string>;
77
+ /**
78
+ * The legacy preset as custom properties, the same as `.fb-theme-legacy` in
79
+ * styles/theme.module.scss. FormBuilder gives them to the tooltips and menus MUI renders into a
80
+ * portal under <body>, outside the element that carries the class. `initial` makes a component
81
+ * use its fallback, the former value.
82
+ */
83
+ export declare const LEGACY_CSS_VARS: Readonly<Record<string, string>>;
74
84
  /**
75
85
  * The CSS custom properties for a theme, ready for a `style` prop, e.g. when the host applies
76
86
  * the theme to an element of its own instead of using FormBuilderThemeProvider.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromerce/formbuilder-react",
3
- "version": "1.0.985",
3
+ "version": "1.0.989",
4
4
  "description": "creates a form based on configuration",
5
5
  "main": "dist/formbuilder.js",
6
6
  "types": "dist/index.d.ts",