@superrb/react-addons 4.0.0-3 → 4.0.0-31

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 (60) hide show
  1. package/.idea/codeStyles/Project.xml +61 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  4. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/prettier.xml +6 -0
  7. package/.idea/react-addons.iml +8 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.node-version +1 -1
  10. package/.yarn/install-state.gz +0 -0
  11. package/.yarnrc.yml +1 -0
  12. package/components/accordion.d.ts +2 -1
  13. package/components/accordion.d.ts.map +1 -1
  14. package/components/accordion.js +4 -3
  15. package/components/form/field.d.ts.map +1 -1
  16. package/components/form/field.js +6 -1
  17. package/components/form.d.ts +2 -1
  18. package/components/form.d.ts.map +1 -1
  19. package/components/form.js +1 -1
  20. package/components/modal.d.ts.map +1 -1
  21. package/components/modal.js +24 -7
  22. package/config.d.ts +9 -0
  23. package/config.d.ts.map +1 -0
  24. package/config.js +467 -0
  25. package/hooks/use-draggable-scroll.js +11 -2
  26. package/hooks/use-escape.d.ts +3 -1
  27. package/hooks/use-escape.d.ts.map +1 -1
  28. package/hooks/use-escape.js +9 -4
  29. package/hooks/use-event-listener.d.ts +5 -6
  30. package/hooks/use-event-listener.d.ts.map +1 -1
  31. package/hooks/use-event-listener.js +13 -22
  32. package/hooks/use-hide-on-scroll.d.ts.map +1 -1
  33. package/hooks/use-hide-on-scroll.js +5 -5
  34. package/hooks/use-parallax.d.ts.map +1 -1
  35. package/hooks/use-parallax.js +5 -2
  36. package/hooks/use-slideshow.d.ts.map +1 -1
  37. package/hooks/use-slideshow.js +43 -35
  38. package/index.d.ts +2 -1
  39. package/index.d.ts.map +1 -1
  40. package/index.js +2 -1
  41. package/package.json +21 -17
  42. package/store/cookies.d.ts.map +1 -1
  43. package/store/cookies.js +0 -4
  44. package/store/modal.d.ts.map +1 -1
  45. package/store/modal.js +0 -4
  46. package/store/nav.d.ts.map +1 -1
  47. package/store/nav.js +0 -4
  48. package/tsconfig.tsbuildinfo +1 -1
  49. package/actions.d.ts +0 -6
  50. package/actions.d.ts.map +0 -1
  51. package/actions.js +0 -18
  52. package/components/video.d.ts +0 -17
  53. package/components/video.d.ts.map +0 -1
  54. package/components/video.js +0 -44
  55. package/context/cookies-context-provider.d.ts +0 -13
  56. package/context/cookies-context-provider.d.ts.map +0 -1
  57. package/context/cookies-context-provider.js +0 -54
  58. package/context.d.ts +0 -8
  59. package/context.d.ts.map +0 -1
  60. package/context.js +0 -7
@@ -0,0 +1,61 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <code_scheme name="Project" version="173">
3
+ <HTMLCodeStyleSettings>
4
+ <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
+ </HTMLCodeStyleSettings>
6
+ <JSCodeStyleSettings version="0">
7
+ <option name="USE_SEMICOLON_AFTER_STATEMENT" value="false" />
8
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
9
+ <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
10
+ <option name="USE_DOUBLE_QUOTES" value="false" />
11
+ <option name="FORCE_QUOTE_STYlE" value="true" />
12
+ <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
13
+ <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
14
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
15
+ </JSCodeStyleSettings>
16
+ <TypeScriptCodeStyleSettings version="0">
17
+ <option name="USE_SEMICOLON_AFTER_STATEMENT" value="false" />
18
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
19
+ <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
20
+ <option name="USE_DOUBLE_QUOTES" value="false" />
21
+ <option name="FORCE_QUOTE_STYlE" value="true" />
22
+ <option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
23
+ <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
24
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
25
+ </TypeScriptCodeStyleSettings>
26
+ <VueCodeStyleSettings>
27
+ <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
28
+ <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
29
+ </VueCodeStyleSettings>
30
+ <codeStyleSettings language="HTML">
31
+ <option name="SOFT_MARGINS" value="80" />
32
+ <indentOptions>
33
+ <option name="INDENT_SIZE" value="2" />
34
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
35
+ <option name="TAB_SIZE" value="2" />
36
+ </indentOptions>
37
+ </codeStyleSettings>
38
+ <codeStyleSettings language="JavaScript">
39
+ <option name="SOFT_MARGINS" value="80" />
40
+ <indentOptions>
41
+ <option name="INDENT_SIZE" value="2" />
42
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
43
+ <option name="TAB_SIZE" value="2" />
44
+ </indentOptions>
45
+ </codeStyleSettings>
46
+ <codeStyleSettings language="TypeScript">
47
+ <option name="SOFT_MARGINS" value="80" />
48
+ <indentOptions>
49
+ <option name="INDENT_SIZE" value="2" />
50
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
51
+ <option name="TAB_SIZE" value="2" />
52
+ </indentOptions>
53
+ </codeStyleSettings>
54
+ <codeStyleSettings language="Vue">
55
+ <option name="SOFT_MARGINS" value="80" />
56
+ <indentOptions>
57
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
58
+ </indentOptions>
59
+ </codeStyleSettings>
60
+ </code_scheme>
61
+ </component>
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Ask2AgentMigrationStateService">
4
+ <option name="migrationStatus" value="COMPLETED" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ </profile>
6
+ </component>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/react-addons.iml" filepath="$PROJECT_DIR$/.idea/react-addons.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myConfigurationMode" value="AUTOMATIC" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="inheritedJdk" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ </component>
8
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
package/.node-version CHANGED
@@ -1 +1 @@
1
- 20
1
+ 24
Binary file
package/.yarnrc.yml ADDED
@@ -0,0 +1 @@
1
+ nodeLinker: node-modules
@@ -1,6 +1,7 @@
1
1
  import { PropsWithChildren } from 'react';
2
- export declare function AccordionItem({ title, expanded, children, }: PropsWithChildren<{
2
+ export declare function AccordionItem({ title, id: externalID, expanded, children, }: PropsWithChildren<{
3
3
  title: string;
4
+ id?: string;
4
5
  expanded?: boolean;
5
6
  }>): import("react/jsx-runtime").JSX.Element;
6
7
  export declare function Accordion({ multiple, children, }: PropsWithChildren<{
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../src/components/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAMlB,MAAM,OAAO,CAAA;AAcd,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAgB,EAChB,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,2CA0D1D;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAgB,EAChB,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,2CAoB3C"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../src/components/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAMlB,MAAM,OAAO,CAAA;AAcd,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,EAAE,EAAE,UAAU,EACd,QAAgB,EAChB,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,2CA2DvE;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAgB,EAChB,QAAQ,GACT,EAAE,iBAAiB,CAAC;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,2CAoB3C"}
@@ -6,9 +6,10 @@ const AccordionContext = createContext({
6
6
  expandedItems: [],
7
7
  setExpandedItems: () => { },
8
8
  });
9
- export function AccordionItem({ title, expanded = false, children, }) {
9
+ export function AccordionItem({ title, id: externalID, expanded = false, children, }) {
10
10
  const { multiple, expandedItems, setExpandedItems } = useContext(AccordionContext);
11
- const id = useId();
11
+ const randomID = useId();
12
+ const id = externalID || randomID;
12
13
  useEffect(() => {
13
14
  if (expanded === true) {
14
15
  setExpandedItems((expandedItems) => {
@@ -29,7 +30,7 @@ export function AccordionItem({ title, expanded = false, children, }) {
29
30
  return [...expandedItems, id];
30
31
  });
31
32
  };
32
- return (_jsxs(_Fragment, { children: [_jsxs("button", { "aria-selected": expandedItems.includes(id), "aria-controls": `${id}-panel`, className: "accordion__trigger", onClick: toggle, role: "tab", "aria-label": title, id: `${id}-trigger`, children: [_jsx("span", { className: "screenreader-text", children: expandedItems ? 'Close' : 'Expand' }), title] }), _jsx("div", { className: "accordion__content", role: "tabpanel", "aria-labelledby": `${id}-trigger`, id: `${id}-panel`, children: children })] }));
33
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { "aria-selected": expandedItems.includes(id), "aria-controls": `${id}-panel`, className: "accordion__trigger", onClick: toggle, role: "tab", "aria-label": title, id: `${id}`, children: [_jsx("span", { className: "screenreader-text", children: expandedItems ? 'Close' : 'Expand' }), title] }), _jsx("div", { className: "accordion__content", role: "tabpanel", "aria-labelledby": `${id}`, id: `${id}-panel`, children: children })] }));
33
34
  }
34
35
  export function Accordion({ multiple = false, children, }) {
35
36
  const [expandedItemsStorage, setExpandedItemsStorage] = useState([]);
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/components/form/field.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,EAGhB,mBAAmB,EAEnB,oBAAoB,EACpB,sBAAsB,EAGvB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAGvD,UAAU,KAAK;IACb,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,CAAA;AAErB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAC9D,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAA;AACvE,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;AAEjE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,CAAA;;AAmHjE,wBAAoC"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/components/form/field.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,EAGhB,mBAAmB,EAEnB,oBAAoB,EACpB,sBAAsB,EAGvB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAGvD,UAAU,KAAK;IACb,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,CAAA;AAErB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAC9D,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAA;AACvE,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;AAEjE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,CAAA;;AAyHjE,wBAAoC"}
@@ -38,6 +38,11 @@ function FormField({ register, schema, id, onInput, onChange, value, disabled =
38
38
  if (schema?.spec?.meta?.options?.length > 0) {
39
39
  return (_jsxs("select", { className: "form__control form__control--select", ...fieldProps, ref: ref, children: [schema?.spec?.meta?.placeholder ? (_jsx("option", { value: "", children: schema?.spec?.meta?.placeholder }, 'placeholder')) : null, schema?.spec?.meta?.options?.map((optionValue, index) => (_jsx("option", { value: optionValue, children: optionValue }, optionValue)))] }));
40
40
  }
41
- return (_jsx(_Fragment, { children: schema?.spec?.meta?.textarea === true ? (_jsx("textarea", { className: "form__control", ...fieldProps, ref: ref })) : schema?.type === 'boolean' ? (_jsx("input", { type: "checkbox", className: "form__control form__control--checkbox", checked: !rendered ? schema?.spec?.default : null, value: "true", ...fieldProps, ref: ref })) : schema?.type === 'date' ? (_jsx("input", { type: "date", className: "form__control form__control--date", ...fieldProps, ref: ref })) : schema?.spec?.meta?.hidden === true ? (_jsx("input", { type: "hidden", className: "form__control form__control--hidden", ...fieldProps, ref: ref })) : schema?.type === 'mixed' ? (_jsx(_Fragment, { children: _jsx(FileField, { schema: schema, ...fieldProps, ref: ref }) })) : (_jsx("input", { className: "form__control", ...fieldProps, ref: ref })) }));
41
+ return (_jsx(_Fragment, { children: schema?.spec?.meta?.textarea === true ? (_jsx("textarea", { className: "form__control", ...fieldProps, ref: ref })) : schema?.type === 'boolean' ? (_jsx("input", { type: "checkbox", className: "form__control form__control--checkbox", checked: !rendered ? schema?.spec?.default : null, value: "true", ...fieldProps, ref: ref })) : schema?.type === 'date' ? (_jsx("input", { type: "date", className: "form__control form__control--date", ...{
42
+ ...fieldProps,
43
+ value: fieldProps.value && fieldProps.value instanceof Date
44
+ ? fieldProps.value.toISOString().split('T')[0]
45
+ : fieldProps.value,
46
+ }, ref: ref })) : schema?.spec?.meta?.hidden === true ? (_jsx("input", { type: "hidden", className: "form__control form__control--hidden", ...fieldProps, ref: ref })) : schema?.type === 'mixed' ? (_jsx(_Fragment, { children: _jsx(FileField, { schema: schema, ...fieldProps, ref: ref }) })) : (_jsx("input", { className: "form__control", ...fieldProps, ref: ref })) }));
42
47
  }
43
48
  export default forwardRef(FormField);
@@ -1,6 +1,6 @@
1
1
  import { ReactNode, ButtonHTMLAttributes } from 'react';
2
2
  import { ObjectSchema, InferType, AnySchema } from 'yup';
3
- import { FieldError } from 'react-hook-form';
3
+ import { FieldError, Path } from 'react-hook-form';
4
4
  import { Status } from '../hooks/use-async';
5
5
  import { FieldRenderer } from './form/types';
6
6
  type WithRecaptcha<T> = T & {
@@ -31,6 +31,7 @@ export interface FormProps<T extends ObjectSchema<any>, DataStructure extends In
31
31
  }
32
32
  export interface FormRef<T extends ObjectSchema<any>, DataStructure extends InferType<T> = InferType<T>> {
33
33
  form: HTMLFormElement;
34
+ setValue: (name: Path<DataStructure>, value: any) => void;
34
35
  submit: () => void;
35
36
  reset: () => void;
36
37
  values: WithRecaptcha<DataStructure>;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/components/form.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,SAAS,EAST,oBAAoB,EAErB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAExD,OAAO,EAAiB,UAAU,EAAiB,MAAM,iBAAiB,CAAA;AAE1E,OAAiB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAY5C,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD,MAAM,WAAW,SAAS,CACxB,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3B,aAAa,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,CAAA;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE;SAAG,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,GAAG;KAAE,CAAA;IACzC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACvC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,KAAK,CAAA;IAClE,kBAAkB,CAAC,EAAE,CACnB,KAAK,CAAC,EAAE,UAAU,EAClB,WAAW,CAAC,EAAE,SAAS,KACpB,SAAS,CAAA;IACd,YAAY,CAAC,EAAE,CACb,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,KAChE,SAAS,CAAA;IACd,SAAS,CAAC,EAAE;SAAG,CAAC,IAAI,aAAa,GAAG,aAAa;KAAE,CAAA;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,OAAO,CACtB,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3B,aAAa,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAEjD,IAAI,EAAE,eAAe,CAAA;IACrB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACpC,MAAM,EAAE;SACL,CAAC,IAAI,aAAa,IAAI,MAAM,CAAC,CAAC,EAAE,WAAW;KAC7C,CAAA;CACF;;AAuVD,wBAA+B"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/components/form.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,SAAS,EAST,oBAAoB,EAErB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAExD,OAAO,EAAiB,UAAU,EAAE,IAAI,EAAW,MAAM,iBAAiB,CAAA;AAE1E,OAAiB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAY5C,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD,MAAM,WAAW,SAAS,CACxB,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3B,aAAa,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,CAAA;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE;SAAG,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,GAAG;KAAE,CAAA;IACzC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACvC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,KAAK,CAAA;IAClE,kBAAkB,CAAC,EAAE,CACnB,KAAK,CAAC,EAAE,UAAU,EAClB,WAAW,CAAC,EAAE,SAAS,KACpB,SAAS,CAAA;IACd,YAAY,CAAC,EAAE,CACb,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,KAChE,SAAS,CAAA;IACd,SAAS,CAAC,EAAE;SAAG,CAAC,IAAI,aAAa,GAAG,aAAa;KAAE,CAAA;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,OAAO,CACtB,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3B,aAAa,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAEjD,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IACzD,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACpC,MAAM,EAAE;SACL,CAAC,IAAI,aAAa,IAAI,MAAM,CAAC,CAAC,EAAE,WAAW;KAC7C,CAAA;CACF;;AAuVD,wBAA+B"}
@@ -129,7 +129,7 @@ const FormInner = forwardRef(function FormInner({ schema, name, action, disabled
129
129
  fieldRefs.current.set(fieldName, ref);
130
130
  } }), fieldName in errors &&
131
131
  renderErrorMessage(errors[fieldName], field), field.spec?.meta?.help && (_jsx("p", { className: "form__help", children: field.spec.meta.help }))] }))] }) })) }, key));
132
- }), renderSubmit({ disabled }), useRecaptcha && (_jsxs("p", { className: "form__recaptcha-message", children: ["This site is protected by reCAPTCHA and the Google", ' ', _jsx("a", { href: "https://policies.google.com/privacy", target: "_blank", rel: "noopener", children: "Privacy Policy" }), ' ', "and", ' ', _jsx("a", { href: "https://policies.google.com/terms", target: "_blank", rel: "noopener", children: "Terms of Service" }), ' ', "apply."] }))] })) }));
132
+ }), renderSubmit({ disabled: disabled || status === 'pending' }), useRecaptcha && (_jsxs("p", { className: "form__recaptcha-message", children: ["This site is protected by reCAPTCHA and the Google", ' ', _jsx("a", { href: "https://policies.google.com/privacy", target: "_blank", rel: "noopener", children: "Privacy Policy" }), ' ', "and", ' ', _jsx("a", { href: "https://policies.google.com/terms", target: "_blank", rel: "noopener", children: "Terms of Service" }), ' ', "apply."] }))] })) }));
133
133
  });
134
134
  function Form(props, ref) {
135
135
  const key = process.env.NEXT_PUBLIC_RECAPTCHA_KEY;
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../src/components/modal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,iBAAiB,EAIlB,MAAM,OAAO,CAAA;AASd,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,SAAS,EACT,WAAmB,EACnB,aAAoB,EACpB,QAAQ,GACT,EAAE,iBAAiB,CAAC,KAAK,CAAC,2CAqE1B"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../src/components/modal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,iBAAiB,EAKlB,MAAM,OAAO,CAAA;AASd,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,SAAS,EACT,WAAmB,EACnB,aAAoB,EACpB,QAAQ,GACT,EAAE,iBAAiB,CAAC,KAAK,CAAC,2CA4E1B"}
@@ -8,6 +8,7 @@ export default function Modal({ name, className, openAfter, dismissable = false,
8
8
  const openTimer = useRef(null);
9
9
  const ref = useRef(null);
10
10
  const innerRef = useRef(null);
11
+ const documentRef = useRef(typeof document !== 'undefined' ? document : null);
11
12
  const { isOpen, openModal, closeModal } = useModal(name);
12
13
  useLockBodyScroll(isOpen && preventScroll);
13
14
  useEffect(() => {
@@ -21,19 +22,35 @@ export default function Modal({ name, className, openAfter, dismissable = false,
21
22
  }
22
23
  if (!dismissed && openAfter) {
23
24
  openTimer.current = setTimeout(() => {
24
- openModal();
25
+ if (!dismissed) {
26
+ openModal();
27
+ }
25
28
  }, openAfter);
26
29
  }
27
- }, [dismissed, openAfter, openModal]);
28
- useEscape(ref, closeModal);
29
- useEventListener('click', closeModal, undefined, typeof document !== 'undefined' ? document : undefined);
30
- useEventListener('click', (event) => event.stopPropagation(), undefined, innerRef.current);
30
+ }, [isOpen, dismissed, openAfter, openModal]);
31
+ useEffect(() => {
32
+ if (isOpen) {
33
+ ref.current?.showModal();
34
+ }
35
+ else {
36
+ ref.current?.close();
37
+ }
38
+ return () => {
39
+ ref.current?.close();
40
+ };
41
+ }, [isOpen]);
31
42
  const close = useCallback(() => {
43
+ if (!isOpen)
44
+ return;
32
45
  closeModal();
33
46
  if (dismissable) {
34
47
  local.setItem(`${name}-popup-dismissed`, 'true');
35
48
  setDismissed(true);
36
49
  }
37
- }, [dismissable, name, closeModal]);
38
- return (_jsxs("aside", { id: name, className: `modal ${className}`, "aria-hidden": !isOpen, ref: ref, children: [_jsxs("button", { className: 'modal__close', onClick: close, children: [_jsx("span", { className: "screenreader-text", children: "Close Modal" }), "\u00D7"] }), _jsx("div", { className: 'modal__inner', ref: innerRef, children: children })] }));
50
+ }, [isOpen, dismissable, name, closeModal]);
51
+ useEventListener('click', close, undefined, documentRef);
52
+ useEscape(documentRef, close, {
53
+ requireFocus: false,
54
+ });
55
+ return (_jsxs("dialog", { id: name, className: `modal ${className}`, ref: ref, children: [_jsxs("button", { className: 'modal__close', onClick: close, children: [_jsx("span", { className: "screenreader-text", children: "Close Modal" }), "\u00D7"] }), _jsx("div", { className: 'modal__inner', ref: innerRef, onClick: (event) => event.nativeEvent.stopImmediatePropagation(), children: children })] }));
39
56
  }
package/config.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { CSPDirectives } from 'csp-header';
2
+ export type CSPPresetGenerator = (...args: any[]) => Partial<CSPDirectives>;
3
+ export declare const cspConfig: CSPPresetGenerator;
4
+ export declare const recaptchaCspConfig: CSPPresetGenerator;
5
+ export declare const googleTagManagerCspConfig: CSPPresetGenerator;
6
+ export declare const facebookPixelCspConfig: CSPPresetGenerator;
7
+ export declare const typekitCspConfig: CSPPresetGenerator;
8
+ export declare const cloudflareCspConfig: CSPPresetGenerator;
9
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;AAE3E,eAAO,MAAM,SAAS,EAAE,kBAatB,CAAA;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAO/B,CAAA;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAoatC,CAAA;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBAInC,CAAA;AAEF,eAAO,MAAM,gBAAgB,EAAE,kBAM7B,CAAA;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAUhC,CAAA"}