@mrfylke/contact-form 0.1.22 → 0.1.24

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 (52) hide show
  1. package/lib/ContactFormRoot.d.ts +3 -32
  2. package/lib/ContactFormRoot.d.ts.map +1 -1
  3. package/lib/ContactFormRoot.js +2 -19
  4. package/lib/components/external-link-page.d.ts +1 -1
  5. package/lib/components/external-link-page.js +1 -1
  6. package/lib/components/icon/color-icon.js +1 -1
  7. package/lib/components/icon/illustration.js +1 -1
  8. package/lib/components/icon/image.js +1 -1
  9. package/lib/components/icon/mono-icon-new.js +1 -1
  10. package/lib/components/icon/mono-icon.js +1 -1
  11. package/lib/index.d.ts +6 -5
  12. package/lib/index.d.ts.map +1 -1
  13. package/lib/index.js +4 -5
  14. package/lib/layouts/contact-page-layout.d.ts +6 -21
  15. package/lib/layouts/contact-page-layout.d.ts.map +1 -1
  16. package/lib/layouts/contact-page-layout.js +91 -57
  17. package/lib/layouts/index.d.ts +1 -1
  18. package/lib/layouts/index.d.ts.map +1 -1
  19. package/lib/layouts/index.js +2 -2
  20. package/lib/lost-property-external/index.d.ts +2 -0
  21. package/lib/lost-property-external/index.d.ts.map +1 -0
  22. package/lib/lost-property-external/index.js +17 -0
  23. package/lib/means-of-transport/means-of-transport-form-machine.d.ts +22 -22
  24. package/lib/means-of-transport/means-of-transport-form-machine.d.ts.map +1 -1
  25. package/lib/modules/config/types.d.ts +72 -13
  26. package/lib/modules/config/types.d.ts.map +1 -1
  27. package/lib/modules/config/types.js +9 -0
  28. package/lib/modules/theme/index.d.ts +1 -1
  29. package/lib/modules/theme/index.d.ts.map +1 -1
  30. package/lib/modules/theme/index.js +1 -2
  31. package/lib/modules/theme/theme-context.d.ts +4 -17
  32. package/lib/modules/theme/theme-context.d.ts.map +1 -1
  33. package/lib/modules/theme/theme-context.js +5 -39
  34. package/lib/refund/refundFormMachine.d.ts +14 -14
  35. package/lib/ticket-control/ticket-control-form-machine.d.ts +22 -22
  36. package/lib/ticketing/ticketingStateMachine.d.ts +8 -8
  37. package/lib/translations/index.d.ts +1 -1
  38. package/lib/translations/index.d.ts.map +1 -1
  39. package/lib/translations/index.js +3 -1
  40. package/lib/translations/language-context.d.ts +5 -8
  41. package/lib/translations/language-context.d.ts.map +1 -1
  42. package/lib/translations/language-context.js +8 -36
  43. package/lib/translations/pages/contact.d.ts +0 -16
  44. package/lib/translations/pages/contact.d.ts.map +1 -1
  45. package/lib/translations/pages/contact.js +0 -16
  46. package/lib/utils/typing.d.ts +32 -0
  47. package/lib/utils/typing.d.ts.map +1 -0
  48. package/lib/utils/typing.js +6 -0
  49. package/lib/utils.d.ts +0 -1
  50. package/lib/utils.d.ts.map +1 -1
  51. package/lib/utils.js +1 -5
  52. package/package.json +6 -1
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.PageText = exports.ComponentText = exports.ServerText = exports.CommonText = exports.loadOrgTranslations = exports.jsonTranslationsToOverride = exports.usePageText = exports.useMergedTranslations = exports.mergeTranslationOverrides = exports.jsonToTranslatedString = exports.getTextForLanguage = exports.useLanguageSettings = exports.useTranslation = exports.AppLanguageProvider = exports.translation = exports.appLanguages = exports.DEFAULT_LANGUAGE_STRING = exports.DEFAULT_LANGUAGE = exports.Language = void 0;
39
+ exports.PageText = exports.ComponentText = exports.ServerText = exports.CommonText = exports.loadOrgTranslations = exports.jsonTranslationsToOverride = exports.usePageText = exports.useMergedTranslations = exports.mergeTranslationOverrides = exports.jsonToTranslatedString = exports.getTextForLanguage = exports.usePreferredBrowserLanguage = exports.getLocalesFromAcceptLanguage = exports.useLanguageSettings = exports.useTranslation = exports.AppLanguageProvider = exports.translation = exports.appLanguages = exports.DEFAULT_LANGUAGE_STRING = exports.DEFAULT_LANGUAGE = exports.Language = void 0;
40
40
  var commons_1 = require("./commons");
41
41
  Object.defineProperty(exports, "Language", { enumerable: true, get: function () { return commons_1.Language; } });
42
42
  Object.defineProperty(exports, "DEFAULT_LANGUAGE", { enumerable: true, get: function () { return commons_1.DEFAULT_LANGUAGE; } });
@@ -47,6 +47,8 @@ var language_context_1 = require("./language-context");
47
47
  Object.defineProperty(exports, "AppLanguageProvider", { enumerable: true, get: function () { return __importDefault(language_context_1).default; } });
48
48
  Object.defineProperty(exports, "useTranslation", { enumerable: true, get: function () { return language_context_1.useTranslation; } });
49
49
  Object.defineProperty(exports, "useLanguageSettings", { enumerable: true, get: function () { return language_context_1.useLanguageSettings; } });
50
+ Object.defineProperty(exports, "getLocalesFromAcceptLanguage", { enumerable: true, get: function () { return language_context_1.getLocalesFromAcceptLanguage; } });
51
+ Object.defineProperty(exports, "usePreferredBrowserLanguage", { enumerable: true, get: function () { return language_context_1.usePreferredBrowserLanguage; } });
50
52
  var utils_1 = require("./utils");
51
53
  Object.defineProperty(exports, "getTextForLanguage", { enumerable: true, get: function () { return utils_1.getTextForLanguage; } });
52
54
  var merge_overrides_1 = require("./merge-overrides");
@@ -13,25 +13,22 @@ export declare const useTranslation: () => {
13
13
  language: Language;
14
14
  };
15
15
  type LanguageState = {
16
- setLanguage: (value: Language) => void;
17
- toggleLanguage: () => void;
18
16
  language: Language;
19
17
  languages: readonly Language[];
20
18
  };
21
19
  export type AppLanguageProviderProps = PropsWithChildren<{
22
- serverAcceptLanguage: string;
23
20
  /**
24
21
  * Translations for all text used in the contact form.
25
22
  * Host app must provide all translations - there are no defaults in the package.
26
23
  */
27
24
  overrides: ContactFormTranslationsOverride;
28
- /** Initial language when not determined from server. Host can pass persisted value (e.g. from cookie). */
29
- defaultLanguage?: Language;
30
- /** Called when user changes language. Host can persist (e.g. cookie) if needed. */
31
- onLanguageChange?: (lang: Language) => void;
25
+ language: Language;
32
26
  }>;
33
- export default function AppLanguageProvider({ children, serverAcceptLanguage, overrides, defaultLanguage, onLanguageChange, }: AppLanguageProviderProps): import("react/jsx-runtime").JSX.Element;
27
+ export default function AppLanguageProvider({ children, overrides, language, }: AppLanguageProviderProps): import("react/jsx-runtime").JSX.Element;
34
28
  export declare function useLanguageSettings(): LanguageState;
29
+ /** Parses a raw Accept-Language header into the nearest supported Language. Use for SSR. */
35
30
  export declare function getLocalesFromAcceptLanguage(headerStr: string): Language;
31
+ /** Detects the nearest supported Language from the browser's navigator.language. Use client-side. */
32
+ export declare function usePreferredBrowserLanguage(fallback: Language): Language;
36
33
  export {};
37
34
  //# sourceMappingURL=language-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"language-context.d.ts","sourceRoot":"","sources":["../../src/translations/language-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrE,OAAO,EAEL,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,KAAK;;;;;;CAA+C,CAAC;AAElE,eAAO,MAAM,cAAc;;;CAAuB,CAAC;AAwCnD,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CAChC,CAAC;AASF,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,SAAS,EAAE,+BAA+B,CAAC;IAC3C,0GAA0G;IAC1G,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC7C,CAAC,CAAC;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,gBAAgB,GACjB,EAAE,wBAAwB,2CA2B1B;AAED,wBAAgB,mBAAmB,kBAWlC;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,YAK7D"}
1
+ {"version":3,"file":"language-context.d.ts","sourceRoot":"","sources":["../../src/translations/language-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrE,OAAO,EAEL,iBAAiB,EAIlB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,KAAK;;;;;;CAA+C,CAAC;AAElE,eAAO,MAAM,cAAc;;;CAAuB,CAAC;AAenD,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CAChC,CAAC;AAOF,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD;;;OAGG;IACH,SAAS,EAAE,+BAA+B,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC,CAAC;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,EAAE,wBAAwB,2CAU1B;AAED,wBAAgB,mBAAmB,kBAMlC;AAED,4FAA4F;AAC5F,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,YAK7D;AAED,qGAAqG;AACrG,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,YAqB7D"}
@@ -7,6 +7,7 @@ exports.useTranslation = exports.lobot = void 0;
7
7
  exports.default = AppLanguageProvider;
8
8
  exports.useLanguageSettings = useLanguageSettings;
9
9
  exports.getLocalesFromAcceptLanguage = getLocalesFromAcceptLanguage;
10
+ exports.usePreferredBrowserLanguage = usePreferredBrowserLanguage;
10
11
  const jsx_runtime_1 = require("react/jsx-runtime");
11
12
  const commons_1 = require("./commons");
12
13
  const lobo_t_1 = require("@leile/lobo-t");
@@ -16,19 +17,6 @@ const react_1 = require("react");
16
17
  const translations_context_1 = require("./translations-context");
17
18
  exports.lobot = (0, lobo_t_1.initLobot)(commons_1.DEFAULT_LANGUAGE);
18
19
  exports.useTranslation = exports.lobot.useTranslation;
19
- function useSelectedLanguage(onServerside, defaultLanguage, onLanguageChange) {
20
- const [selectedLanguage, setLanguageInternal] = (0, react_1.useState)(defaultLanguage?.toString());
21
- // Get potential preferred language from browser.
22
- const preferredLanguage = usePreferredBrowserLanguage(onServerside);
23
- const lang = typeof selectedLanguage !== 'undefined'
24
- ? mapLanguageStringToEnum(selectedLanguage)
25
- : preferredLanguage;
26
- function setLanguage(newLang) {
27
- setLanguageInternal(newLang.toString());
28
- onLanguageChange?.(newLang);
29
- }
30
- return [lang, setLanguage];
31
- }
32
20
  function mapLanguageStringToEnum(language) {
33
21
  if (language == commons_1.Language.English) {
34
22
  return commons_1.Language.English;
@@ -42,44 +30,28 @@ function mapLanguageStringToEnum(language) {
42
30
  return commons_1.DEFAULT_LANGUAGE;
43
31
  }
44
32
  const LanguageContext = (0, react_1.createContext)({
45
- setLanguage() { },
46
- toggleLanguage() { },
47
33
  language: commons_1.DEFAULT_LANGUAGE,
48
34
  languages: commons_1.appLanguages,
49
35
  });
50
- function AppLanguageProvider({ children, serverAcceptLanguage, overrides, defaultLanguage, onLanguageChange, }) {
51
- const fromHeaders = getLocalesFromAcceptLanguage(serverAcceptLanguage);
52
- const [language, setLanguage] = useSelectedLanguage(fromHeaders, defaultLanguage, onLanguageChange);
53
- const toggleLanguage = (0, react_1.useCallback)(() => {
54
- if (language == commons_1.Language.English) {
55
- setLanguage(commons_1.Language.Norwegian);
56
- }
57
- else {
58
- setLanguage(commons_1.Language.English);
59
- }
60
- }, [language, setLanguage]);
61
- return ((0, jsx_runtime_1.jsx)(LanguageContext.Provider, { value: { toggleLanguage, setLanguage, language, languages: commons_1.appLanguages }, children: (0, jsx_runtime_1.jsx)(translations_context_1.TranslationsProvider, { overrides: overrides, children: (0, jsx_runtime_1.jsx)(exports.lobot.LanguageProvider, { value: language, children: children }) }) }));
36
+ function AppLanguageProvider({ children, overrides, language, }) {
37
+ return ((0, jsx_runtime_1.jsx)(LanguageContext.Provider, { value: { language, languages: commons_1.appLanguages }, children: (0, jsx_runtime_1.jsx)(translations_context_1.TranslationsProvider, { overrides: overrides, children: (0, jsx_runtime_1.jsx)(exports.lobot.LanguageProvider, { value: language, children: children }) }) }));
62
38
  }
63
39
  function useLanguageSettings() {
64
40
  const context = (0, react_1.useContext)(LanguageContext);
65
41
  if (!context) {
66
- return {
67
- setLanguage() { },
68
- toggleLanguage() { },
69
- language: commons_1.DEFAULT_LANGUAGE,
70
- languages: commons_1.appLanguages,
71
- };
42
+ return { language: commons_1.DEFAULT_LANGUAGE, languages: commons_1.appLanguages };
72
43
  }
73
44
  return context;
74
45
  }
46
+ /** Parses a raw Accept-Language header into the nearest supported Language. Use for SSR. */
75
47
  function getLocalesFromAcceptLanguage(headerStr) {
76
48
  const preferred = headerStr?.split(',').map((type) => type.split(';')[0].trim()) ?? [];
77
49
  const selected = (0, detect_nearest_locale_1.default)(commons_1.appLanguages, preferred);
78
50
  return mapLanguageStringToEnum(selected);
79
51
  }
80
- // Get language from browser, if in browser environment.
81
- function usePreferredBrowserLanguage(onServerside) {
82
- const [preferredLanguage, setPreferredLanguage] = (0, react_1.useState)(onServerside);
52
+ /** Detects the nearest supported Language from the browser's navigator.language. Use client-side. */
53
+ function usePreferredBrowserLanguage(fallback) {
54
+ const [preferredLanguage, setPreferredLanguage] = (0, react_1.useState)(fallback);
83
55
  const deps = typeof window !== 'undefined' && 'lanuage' in window.navigator
84
56
  ? navigator.language
85
57
  : '';
@@ -182,22 +182,6 @@ export declare const Contact: {
182
182
  url: import("../../translations/commons").TranslatedString;
183
183
  };
184
184
  };
185
- skoleskyss: {
186
- title: import("../../translations/commons").TranslatedString;
187
- intro: {
188
- before: import("../../translations/commons").TranslatedString;
189
- between: import("../../translations/commons").TranslatedString;
190
- after: import("../../translations/commons").TranslatedString;
191
- };
192
- grunnskole: {
193
- linkText: import("../../translations/commons").TranslatedString;
194
- href: import("../../translations/commons").TranslatedString;
195
- };
196
- videregaaende: {
197
- linkText: import("../../translations/commons").TranslatedString;
198
- href: import("../../translations/commons").TranslatedString;
199
- };
200
- };
201
185
  ticketing: {
202
186
  title: import("../../translations/commons").TranslatedString;
203
187
  additionalTicketingInfo: {
@@ -1 +1 @@
1
- {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../src/translations/pages/contact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAosDtE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAl6BG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA+clC,yBAAyB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAgPF,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAyMd,MAAM;;;;yCASA,MAAM;;;;CAiCvC,CAAC"}
1
+ {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../src/translations/pages/contact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmrDtE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAl6BG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA+clC,yBAAyB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAgPF,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAyMd,MAAM;;;;yCASA,MAAM;;;;CAiCvC,CAAC"}
@@ -211,22 +211,6 @@ const ContactInternal = {
211
211
  url: (0, commons_1.translation)('https://frammr.no/hjelp-og-kontakt/hittegods/', 'https://frammr.no/hjelp-og-kontakt/hittegods/?sprak=3', 'https://frammr.no/hjelp-og-kontakt/hittegods/'),
212
212
  },
213
213
  },
214
- skoleskyss: {
215
- title: (0, commons_1.translation)('Skoleskyss', 'School transport', 'Skuleskyss'),
216
- intro: {
217
- before: (0, commons_1.translation)('', '', ''),
218
- between: (0, commons_1.translation)('', '', ''),
219
- after: (0, commons_1.translation)('', '', ''),
220
- },
221
- grunnskole: {
222
- linkText: (0, commons_1.translation)('', '', ''),
223
- href: (0, commons_1.translation)('', '', ''),
224
- },
225
- videregaaende: {
226
- linkText: (0, commons_1.translation)('', '', ''),
227
- href: (0, commons_1.translation)('', '', ''),
228
- },
229
- },
230
214
  ticketing: {
231
215
  title: (0, commons_1.translation)('Billetter og app', 'Tickets and app', 'Billettar og app'),
232
216
  additionalTicketingInfo: {
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Generic, reusable type-level utilities for checking that a value contains
3
+ * at most one member from each of a set of mutually-exclusive groups.
4
+ */
5
+ /** Identity type used only to check `T` against its constraint at declaration. */
6
+ export type AssertExtends<T extends TConstraint, TConstraint> = T;
7
+ /** Comma-joined, quoted list of a tuple's members, e.g. `'a', 'b', 'c'`. */
8
+ export type Join<T extends string[]> = T extends [
9
+ infer Head extends string,
10
+ ...infer Rest extends string[]
11
+ ] ? Rest extends [] ? `'${Head}'` : `'${Head}', ${Join<Rest>}` : '';
12
+ /**
13
+ * `never`, unless `T` contains more than one member of `TGroup` — then a
14
+ * string literal describing the conflict. `TGroup` may have any number of
15
+ * members (2 or more).
16
+ */
17
+ export type GroupConflict<T extends string[], TGroup extends string[]> = {
18
+ [K in keyof TGroup]: TGroup[K] extends T[number] ? [Extract<Exclude<TGroup[number], TGroup[K]>, T[number]>] extends [never] ? never : `Cannot enable more than one of ${Join<TGroup>} — they share a slug, enable exactly one` : never;
19
+ }[number];
20
+ /** Union of every conflict message triggered by `T` across all `TGroups`. */
21
+ export type ConflictMessages<T extends string[], TGroups extends string[][]> = {
22
+ [K in keyof TGroups]: GroupConflict<T, TGroups[K]>;
23
+ }[number];
24
+ /**
25
+ * `T`, unless it violates one of `TGroups` — then the union of triggered
26
+ * conflict messages, which fails to match `T` and surfaces as a precise
27
+ * argument type error at the call site of whatever builder function uses it.
28
+ */
29
+ export type CheckNoConflicts<T extends string[], TGroups extends string[][]> = [
30
+ ConflictMessages<T, TGroups>
31
+ ] extends [never] ? T : ConflictMessages<T, TGroups>;
32
+ //# sourceMappingURL=typing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../../src/utils/typing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kFAAkF;AAClF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC;AAElE,4EAA4E;AAC5E,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS;IAC/C,MAAM,IAAI,SAAS,MAAM;IACzB,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE;CAC/B,GACG,IAAI,SAAS,EAAE,GACb,IAAI,IAAI,GAAG,GACX,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAC5B,EAAE,CAAC;AAEP;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,MAAM,SAAS,MAAM,EAAE,IAAI;KACtE,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAC5C,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACtE,KAAK,GACL,kCAAkC,IAAI,CAAC,MAAM,CAAC,0CAA0C,GAC1F,KAAK;CACV,CAAC,MAAM,CAAC,CAAC;AAEV,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,OAAO,SAAS,MAAM,EAAE,EAAE,IAAI;KAC5E,CAAC,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACnD,CAAC,MAAM,CAAC,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,OAAO,SAAS,MAAM,EAAE,EAAE,IAAI;IAC7E,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC;CAC7B,SAAS,CAAC,KAAK,CAAC,GACb,CAAC,GACD,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Generic, reusable type-level utilities for checking that a value contains
4
+ * at most one member from each of a set of mutually-exclusive groups.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
package/lib/utils.d.ts CHANGED
@@ -4,7 +4,6 @@ import { FormEvent } from 'react';
4
4
  import { InputErrorMessages } from './validation';
5
5
  import { TranslatedString } from './translations';
6
6
  export declare const getContactPageTitle: (subtitle?: TranslatedString) => TranslatedString[];
7
- export declare const shouldShowContactPage: () => boolean;
8
7
  export declare const convertFilesToBase64: (attachments: File[]) => Promise<{
9
8
  filename: string;
10
9
  body: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAY,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,GAC9B,WAAW,gBAAgB,KAC1B,gBAAgB,EAIlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,OAExC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,IAAI,EAAE,KAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAsB9C,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,GAAG,EACZ,cAAc,iBAAiB,QAqBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,GAAG,EAAE,MAAM,IAAI,GAAG,SAAS,QAkBxE,CAAC;AAEF,eAAO,MAAM,2CAA2C,GACtD,SAAS,GAAG,EACZ,6BAA6B,OAAO,QAUrC,CAAC;AAYF,eAAO,MAAM,mBAAmB,GAAI,GAAG,SAAS,CAAC,eAAe,CAAC,KAAG,MAAM,EAOpC,CAAC;AAEvC,eAAO,MAAM,yBAAyB,GAAI,IAAI,MAAM,GAAG,SAAS,KAAG,IA4BlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,kBAAkB,KACzB,MAAM,GAAG,SAQX,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAY,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,GAC9B,WAAW,gBAAgB,KAC1B,gBAAgB,EAIlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,IAAI,EAAE,KAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAsB9C,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,GAAG,EACZ,cAAc,iBAAiB,QAqBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,GAAG,EAAE,MAAM,IAAI,GAAG,SAAS,QAkBxE,CAAC;AAEF,eAAO,MAAM,2CAA2C,GACtD,SAAS,GAAG,EACZ,6BAA6B,OAAO,QAUrC,CAAC;AAYF,eAAO,MAAM,mBAAmB,GAAI,GAAG,SAAS,CAAC,eAAe,CAAC,KAAG,MAAM,EAOpC,CAAC;AAEvC,eAAO,MAAM,yBAAyB,GAAI,IAAI,MAAM,GAAG,SAAS,KAAG,IA4BlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,kBAAkB,KACzB,MAAM,GAAG,SAQX,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtE"}
package/lib/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findFirstErrorMessage = exports.scrollToFirstErrorMessage = exports.findOrderFormFields = exports.setBankAccountStatusAndResetBankInformation = exports.setLineAndResetStops = exports.setTransportModeAndResetLineAndStops = exports.convertFilesToBase64 = exports.shouldShowContactPage = exports.getContactPageTitle = void 0;
3
+ exports.findFirstErrorMessage = exports.scrollToFirstErrorMessage = exports.findOrderFormFields = exports.setBankAccountStatusAndResetBankInformation = exports.setLineAndResetStops = exports.setTransportModeAndResetLineAndStops = exports.convertFilesToBase64 = exports.getContactPageTitle = void 0;
4
4
  exports.getLineName = getLineName;
5
5
  const translations_1 = require("./translations");
6
6
  const getContactPageTitle = (subtitle) => {
@@ -9,10 +9,6 @@ const getContactPageTitle = (subtitle) => {
9
9
  : [translations_1.PageText.Contact.pageTitle];
10
10
  };
11
11
  exports.getContactPageTitle = getContactPageTitle;
12
- const shouldShowContactPage = () => {
13
- return !!process.env.NEXT_PUBLIC_CONTACT_API_URL;
14
- };
15
- exports.shouldShowContactPage = shouldShowContactPage;
16
12
  const convertFilesToBase64 = (attachments) => {
17
13
  const filePromises = attachments.map((file) => {
18
14
  return new Promise((resolve, reject) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrfylke/contact-form",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
4
4
  "license": "EUPL-1.2",
5
5
  "private": false,
6
6
  "main": "./lib/index.js",
@@ -19,6 +19,11 @@
19
19
  "import": "./lib/lost-property/index.js",
20
20
  "require": "./lib/lost-property/index.js"
21
21
  },
22
+ "./lost-property-external": {
23
+ "types": "./lib/lost-property-external/index.d.ts",
24
+ "import": "./lib/lost-property-external/index.js",
25
+ "require": "./lib/lost-property-external/index.js"
26
+ },
22
27
  "./group-travel": {
23
28
  "types": "./lib/group-travel/index.d.ts",
24
29
  "import": "./lib/group-travel/index.js",