@mattilsynet/design 1.3.13 → 2.0.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.
@@ -1,6 +1,6 @@
1
- import { jsx as t, Fragment as W, jsxs as y } from "react/jsx-runtime";
2
- import { clsx as z } from "../external/clsx/dist/clsx.js";
3
- import { forwardRef as b, useRef as R, useImperativeHandle as S, useEffect as T } from "react";
1
+ import { jsx as t, Fragment as R, jsxs as H } from "react/jsx-runtime";
2
+ import { clsx as W } from "../external/clsx/dist/clsx.js";
3
+ import { forwardRef as F, useRef as A, useImperativeHandle as q, useEffect as B } from "react";
4
4
  import "../alert/alert.js";
5
5
  import "../app/app.js";
6
6
  import "../avatar/avatar.js";
@@ -14,8 +14,8 @@ import "../dialog/dialog.js";
14
14
  import "../divider/divider.js";
15
15
  import "../errorsummary/errorsummary.js";
16
16
  import "../fieldset/fieldset.js";
17
- import { HelpText as q } from "../helptext/helptext.js";
18
- import { Input as B } from "../input/input.js";
17
+ import { HelpText as G } from "../helptext/helptext.js";
18
+ import { Input as J } from "../input/input.js";
19
19
  import "../layout/layout.js";
20
20
  import "../link/link.js";
21
21
  import "../logo/logo.js";
@@ -31,118 +31,124 @@ import "../tag/tag.js";
31
31
  import "../togglegroup/togglegroup.js";
32
32
  import "../typography/typography.js";
33
33
  import "../validation/validation.js";
34
- import h from "../styles.module.css.js";
35
- import { toCustomElementProps as O } from "../utils.js";
36
- const I = (n) => typeof n == "string" ? { label: n, value: n } : n, G = b(function({
34
+ import v from "../styles.module.css.js";
35
+ import { toCustomElementProps as N } from "../utils.js";
36
+ const z = (n) => typeof n == "string" ? { label: n, value: n } : n, K = F(function({
37
37
  "data-size": e,
38
- as: i,
39
- className: s,
40
- count: v,
41
- description: g,
42
- error: F,
43
- helpText: x,
44
- helpTextLabel: j,
45
- label: c,
46
- prefix: d,
47
- style: f,
38
+ as: o,
39
+ className: l,
40
+ count: d,
41
+ description: p,
42
+ error: g,
43
+ helpText: C,
44
+ helpTextLabel: y,
45
+ label: O,
46
+ prefix: f,
47
+ style: j,
48
48
  suffix: u,
49
- validation: H,
50
- ...o
51
- }, m) {
52
- const a = i || "div", l = !!u || !!d, r = H || F, p = {
49
+ validation: b,
50
+ ...s
51
+ }, h) {
52
+ const m = o || "div", x = !!u || !!f, a = b || g, i = {
53
53
  "data-size": e,
54
- className: z(h.field, s),
55
- style: f
54
+ className: W(v.field, l),
55
+ style: j
56
56
  };
57
- return i === "select" && !o.children && Object.assign(o, {
58
- children: /* @__PURE__ */ t(W, { children: o.options?.map(I).map(({ label: N, value: C }) => /* @__PURE__ */ t("option", { value: C, children: N }, C)) })
59
- }), i ? /* @__PURE__ */ y("div", { ...p, children: [
60
- !!c && /* @__PURE__ */ t("label", { suppressHydrationWarning: !0, children: c }),
61
- !!x && /* @__PURE__ */ t(q, { "aria-label": j, children: x }),
62
- !!g && /* @__PURE__ */ t("p", { children: g }),
63
- l ? /* @__PURE__ */ y(L, { children: [
64
- !!d && /* @__PURE__ */ t("span", { children: d }),
65
- /* @__PURE__ */ t(a, { className: h.input, ref: m, ...o }),
57
+ return o === "select" && !s.children && Object.assign(s, {
58
+ children: /* @__PURE__ */ t(R, { children: s.options?.map(z).map(({ label: r, value: c }) => /* @__PURE__ */ t("option", { value: c, children: r }, c)) })
59
+ }), o ? /* @__PURE__ */ H("div", { ...i, children: [
60
+ !!O && /* @__PURE__ */ t("label", { suppressHydrationWarning: !0, children: O }),
61
+ !!C && /* @__PURE__ */ t(G, { "aria-label": y, children: C }),
62
+ !!p && /* @__PURE__ */ t("p", { children: p }),
63
+ x ? /* @__PURE__ */ H(I, { children: [
64
+ !!f && /* @__PURE__ */ t("span", { children: f }),
65
+ /* @__PURE__ */ t(m, { className: v.input, ref: h, ...s }),
66
66
  !!u && /* @__PURE__ */ t("span", { children: u })
67
67
  ] }) : /* @__PURE__ */ t(
68
- a,
68
+ m,
69
69
  {
70
- className: typeof i == "string" ? h.input : void 0,
70
+ className: typeof o == "string" ? v.input : void 0,
71
71
  suppressHydrationWarning: !0,
72
- ref: m,
73
- ...o
72
+ ref: h,
73
+ ...s
74
74
  }
75
75
  ),
76
- !!r && /* @__PURE__ */ t("div", { className: h.validation, children: r }),
77
- !!v && /* @__PURE__ */ t("p", { "data-count": v })
78
- ] }) : /* @__PURE__ */ t("div", { ref: m, ...p, ...o });
79
- }), L = b(
80
- function({ className: e, ...i }, s) {
81
- return /* @__PURE__ */ t("div", { className: z(h.affixes, e), ref: s, ...i });
76
+ !!a && /* @__PURE__ */ t("div", { className: v.validation, children: a }),
77
+ !!d && /* @__PURE__ */ t("p", { "data-count": d })
78
+ ] }) : /* @__PURE__ */ t("div", { ref: h, ...i, ...s });
79
+ }), I = F(
80
+ function({ className: e, ...o }, l) {
81
+ return /* @__PURE__ */ t("div", { className: W(v.affixes, e), ref: l, ...o });
82
82
  }
83
- ), k = b(
84
- function(e, i) {
85
- return /* @__PURE__ */ t("u-datalist", { ref: i, ...O(e) });
83
+ ), L = F(
84
+ function(e, o) {
85
+ return /* @__PURE__ */ t("u-datalist", { ref: o, ...N(e) });
86
86
  }
87
- ), w = b(
88
- function(e, i) {
89
- return /* @__PURE__ */ t("u-option", { ref: i, ...O(e) });
87
+ ), k = F(
88
+ function(e, o) {
89
+ return /* @__PURE__ */ t("u-option", { ref: o, ...N(e) });
90
90
  }
91
- ), J = b(
91
+ ), M = F(
92
92
  function({
93
93
  "data-multiple": e,
94
- "data-nofilter": i,
95
- onAfterChange: s,
96
- onBeforeChange: v,
97
- onBeforeMatch: g,
98
- onSelectedChange: F,
99
- children: x,
100
- disabled: j,
101
- options: c,
102
- readOnly: d,
103
- selected: f,
104
- ...u
105
- }, H) {
106
- const o = R(null), m = R(F);
107
- return m.current = F, S(H, () => o.current), T(() => {
108
- const a = o.current, l = (r) => {
109
- const p = m.current;
110
- if (!m) return;
94
+ "data-nofilter": o,
95
+ onAfterChange: l,
96
+ onBeforeChange: d,
97
+ onAfterSelect: p,
98
+ onBeforeSelect: g,
99
+ onBeforeMatch: C,
100
+ onSelectedChange: y,
101
+ children: O,
102
+ disabled: f,
103
+ options: j,
104
+ readOnly: u,
105
+ selected: b,
106
+ ...s
107
+ }, h) {
108
+ const m = A(null), x = A(y);
109
+ return x.current = y, l && (p = l, console.warn(
110
+ "Combobox onAfterChange is deprecated, use onAfterSelect instead."
111
+ )), d && (g = d, console.warn(
112
+ "Combobox onBeforeChange is deprecated, use onBeforeSelect instead."
113
+ )), q(h, () => m.current), B(() => {
114
+ const a = m.current, i = (r) => {
115
+ const c = x.current;
116
+ if (!x) return;
111
117
  r.preventDefault();
112
- const { isConnected: N, textContent: C, value: D } = r.detail, E = C?.trim() || "", A = f || [];
113
- p?.(N ? A.filter((P) => P.value !== D) : e ? [...A, { value: D, label: E }] : [{ value: D, label: E }]);
118
+ const { isConnected: P, textContent: S, value: D } = r.detail, E = S?.trim() || "", w = b || [];
119
+ c?.(P ? w.filter((T) => T.value !== D) : e ? [...w, { value: D, label: E }] : [{ value: D, label: E }]);
114
120
  };
115
- return a?.addEventListener("beforechange", l), () => a?.removeEventListener("beforechange", l);
116
- }, [e, f]), /* @__PURE__ */ y(
121
+ return a?.addEventListener("comboboxbeforeselect", i), () => a?.removeEventListener("comboboxbeforeselect", i);
122
+ }, [e, b]), /* @__PURE__ */ H(
117
123
  "u-combobox",
118
124
  {
119
- ...O({
125
+ ...N({
120
126
  "data-multiple": e,
121
- onbeforechange: v,
122
- onbeforematch: g,
123
- onafterchange: s,
124
- ref: o,
125
- ...u
127
+ oncomboboxbeforeselect: g,
128
+ oncomboboxbeforematch: C,
129
+ oncomboboxafterselect: p,
130
+ ref: m,
131
+ ...s
126
132
  }),
127
133
  children: [
128
- f?.map(({ children: a, label: l, value: r }) => /* @__PURE__ */ t("data", { value: r, suppressHydrationWarning: !0, children: a ?? l }, r)),
129
- x || /* @__PURE__ */ y(W, { children: [
130
- /* @__PURE__ */ t(B, { disabled: j, readOnly: d }),
131
- /* @__PURE__ */ t("del", { ...O({ "aria-label": "Fjern tekst" }) })
134
+ b?.map(({ children: a, label: i, value: r }) => /* @__PURE__ */ t("data", { value: r, suppressHydrationWarning: !0, children: a ?? i }, r)),
135
+ O || /* @__PURE__ */ H(R, { children: [
136
+ /* @__PURE__ */ t(J, { disabled: f, readOnly: u }),
137
+ /* @__PURE__ */ t("del", { ...N({ "aria-label": "Fjern tekst" }) })
132
138
  ] }),
133
- !!c && /* @__PURE__ */ t(k, { "data-nofilter": i || void 0, children: c.map(I).map(({ children: a, label: l, value: r }) => /* @__PURE__ */ t(w, { value: r, label: l, children: a ?? l }, r)) })
139
+ !!j && /* @__PURE__ */ t(L, { "data-nofilter": o || void 0, children: j.map(z).map(({ children: a, label: i, value: r }) => /* @__PURE__ */ t(k, { value: r, label: i, children: a ?? i }, r)) })
134
140
  ]
135
141
  }
136
142
  );
137
143
  }
138
- ), Ht = Object.assign(G, {
139
- Affixes: L,
140
- Combobox: J,
141
- Datalist: k,
142
- Option: w
144
+ ), Dt = Object.assign(K, {
145
+ Affixes: I,
146
+ Combobox: M,
147
+ Datalist: L,
148
+ Option: k
143
149
  });
144
150
  export {
145
- Ht as Field,
146
- G as FieldComp
151
+ Dt as Field,
152
+ K as FieldComp
147
153
  };
148
154
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sources":["../../designsystem/field/field.tsx"],"sourcesContent":["import type {\n\tReactUcombobox,\n\tUHTMLComboboxElement,\n} from \"@u-elements/u-combobox\";\nimport clsx from \"clsx\";\nimport {\n\tforwardRef,\n\ttype JSX,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport { HelpText, Input } from \"../react\";\nimport type {\n\tPolymorphicComponentPropWithRef,\n\tPolymorphicRef,\n} from \"../react-types\";\nimport styles from \"../styles.module.css\";\nimport { type AnchorPosition, toCustomElementProps } from \"../utils\";\n\ntype FieldBaseProps = {\n\tcount?: number;\n\tdescription?: React.ReactNode;\n\terror?: React.ReactNode; // Kept for backwards compatibility\n\thelpText?: React.ReactNode;\n\thelpTextLabel?: string;\n\tlabel?: React.ReactNode;\n\toptions?: string[] | FieldComboboxSelected;\n\tprefix?: string;\n\treadOnly?: boolean; // Allow readoOnly also on <select>\n\tsuffix?: string;\n\tvalidation?: React.ReactNode;\n\tvalue?: React.ComponentPropsWithRef<\"input\">[\"value\"];\n\tonInput?: (\n\t\te: React.ChangeEvent<\n\t\t\tHTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\t\t>,\n\t) => void;\n};\n\nexport type FieldProps<As extends React.ElementType = \"div\"> =\n\tPolymorphicComponentPropWithRef<As, FieldBaseProps>;\n\ntype FieldComponent = <As extends React.ElementType = \"div\">(\n\tprops: FieldProps<As>,\n) => JSX.Element;\n\nconst toOption = (\n\to: FieldComboboxSelected[number] | string,\n): FieldComboboxSelected[number] =>\n\ttypeof o === \"string\" ? { label: o, value: o } : o;\n\nexport const FieldComp: FieldComponent = forwardRef<null>(function Field<\n\tAs extends React.ElementType = \"div\",\n>(\n\t{\n\t\t\"data-size\": size,\n\t\tas,\n\t\tclassName,\n\t\tcount,\n\t\tdescription,\n\t\terror,\n\t\thelpText,\n\t\thelpTextLabel,\n\t\tlabel,\n\t\tprefix,\n\t\tstyle,\n\t\tsuffix,\n\t\tvalidation,\n\t\t...rest\n\t}: FieldProps<As>,\n\tref?: PolymorphicRef<As>,\n) {\n\tconst Tag = as || \"div\";\n\tconst affixes = !!suffix || !!prefix;\n\tconst valid = validation || error; // error kept for backwards compatibility\n\tconst shared = {\n\t\t\"data-size\": size,\n\t\tclassName: clsx(styles.field, className),\n\t\tstyle,\n\t};\n\n\t// Render options if select\n\tif (as === \"select\" && !rest.children)\n\t\tObject.assign(rest, {\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t{(rest.options as FieldBaseProps[\"options\"])\n\t\t\t\t\t\t?.map(toOption)\n\t\t\t\t\t\t.map(({ label, value }) => (\n\t\t\t\t\t\t\t<option key={value} value={value}>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t</>\n\t\t\t),\n\t\t});\n\n\t// Using suppressHydrationWarning to avoid Next.js vs field-observer.ts hydration conflict\n\treturn as ? (\n\t\t<div {...shared}>\n\t\t\t{!!label && <label suppressHydrationWarning>{label}</label>}\n\t\t\t{!!helpText && <HelpText aria-label={helpTextLabel}>{helpText}</HelpText>}\n\t\t\t{!!description && <p>{description}</p>}\n\t\t\t{affixes ? (\n\t\t\t\t<FieldAffixes>\n\t\t\t\t\t{!!prefix && <span>{prefix}</span>}\n\t\t\t\t\t<Tag className={styles.input} ref={ref} {...rest} />\n\t\t\t\t\t{!!suffix && <span>{suffix}</span>}\n\t\t\t\t</FieldAffixes>\n\t\t\t) : (\n\t\t\t\t<Tag\n\t\t\t\t\tclassName={typeof as === \"string\" ? styles.input : undefined}\n\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!!valid && <div className={styles.validation}>{valid}</div>}\n\t\t\t{!!count && <p data-count={count} />}\n\t\t</div>\n\t) : (\n\t\t<div ref={ref} {...shared} {...rest} />\n\t);\n}) as FieldComponent; // Needed to tell Typescript this does not return ReactNode but acutally JSX.Element\n\nexport type FieldAffixProps = React.ComponentPropsWithoutRef<\"div\">;\nconst FieldAffixes = forwardRef<HTMLDivElement, FieldAffixProps>(\n\tfunction FieldAffixes({ className, ...rest }, ref) {\n\t\treturn (\n\t\t\t<div className={clsx(styles.affixes, className)} ref={ref} {...rest} />\n\t\t);\n\t},\n);\n\nexport type FieldDatalistProps = React.ComponentPropsWithoutRef<\"datalist\"> & {\n\t\"data-nofilter\"?: boolean;\n\t\"data-position\"?: AnchorPosition;\n};\n\nconst FieldDatalist = forwardRef<HTMLDataListElement, FieldDatalistProps>(\n\tfunction FieldDatalist(props, ref) {\n\t\treturn <u-datalist ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport type FieldOptionProps = React.ComponentPropsWithoutRef<\"option\">;\nconst FieldOption = forwardRef<HTMLOptionElement, FieldOptionProps>(\n\tfunction FieldOption(props, ref) {\n\t\treturn <u-option ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport type FieldComboboxSelected = {\n\tlabel: string;\n\tvalue: string;\n\tchildren?: React.ReactNode;\n}[];\nexport type FieldComboboxProps = ReactUcombobox & {\n\t\"data-creatable\"?: boolean;\n\t\"data-multiple\"?: boolean;\n\t\"data-nofilter\"?: boolean;\n\tonAfterChange?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonBeforeChange?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonBeforeMatch?: (e: CustomEvent<HTMLOptionElement>) => void; // Custom event to handle before change\n\tonSelectedChange?: (selected: FieldComboboxSelected) => void; // Allow onChange to be a function that returns void\n\tdisabled?: boolean; // Allow disabled prop to be passed down\n\toptions?: FieldComboboxSelected;\n\treadOnly?: boolean; // Allow disabled prop to be passed down\n\tselected?: FieldComboboxSelected; // Allow value to be a string or an array of strings for multiple select\n};\n\nconst FieldCombobox = forwardRef<UHTMLComboboxElement, FieldComboboxProps>(\n\tfunction FieldCombobox(\n\t\t{\n\t\t\t\"data-multiple\": multiple,\n\t\t\t\"data-nofilter\": nofilter,\n\t\t\tonAfterChange,\n\t\t\tonBeforeChange,\n\t\t\tonBeforeMatch,\n\t\t\tonSelectedChange,\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\toptions,\n\t\t\treadOnly,\n\t\t\tselected,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst innerRef = useRef<UHTMLComboboxElement>(null);\n\t\tconst onSelected = useRef(onSelectedChange);\n\t\tonSelected.current = onSelectedChange; // Sync the latest onSelectedChange function\n\n\t\tuseImperativeHandle(ref, () => innerRef.current as UHTMLComboboxElement); // Forward innerRef\n\t\tuseEffect(() => {\n\t\t\tconst self = innerRef.current;\n\t\t\tconst handleChange = (event: CustomEvent<HTMLDataElement>) => {\n\t\t\t\tconst handleSelected = onSelected.current;\n\t\t\t\tif (!onSelected) return; // No onSelectedChange function provided, let u-combobox handle it\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst { isConnected: remove, textContent, value } = event.detail;\n\t\t\t\tconst label = textContent?.trim() || \"\";\n\t\t\t\tconst prev = selected || [];\n\n\t\t\t\tif (remove) handleSelected?.(prev.filter((i) => i.value !== value));\n\t\t\t\telse if (multiple) handleSelected?.([...prev, { value, label }]);\n\t\t\t\telse handleSelected?.([{ value, label }]);\n\t\t\t};\n\n\t\t\tself?.addEventListener(\"beforechange\", handleChange);\n\t\t\treturn () => self?.removeEventListener(\"beforechange\", handleChange);\n\t\t}, [multiple, selected]);\n\n\t\treturn (\n\t\t\t<u-combobox\n\t\t\t\t{...toCustomElementProps({\n\t\t\t\t\t\"data-multiple\": multiple,\n\t\t\t\t\tonbeforechange: onBeforeChange,\n\t\t\t\t\tonbeforematch: onBeforeMatch,\n\t\t\t\t\tonafterchange: onAfterChange,\n\t\t\t\t\tref: innerRef,\n\t\t\t\t\t...props,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{selected?.map(({ children, label, value }) => (\n\t\t\t\t\t<data key={value} value={value} suppressHydrationWarning>\n\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t</data>\n\t\t\t\t))}\n\t\t\t\t{children || (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Input disabled={disabled} readOnly={readOnly} />\n\t\t\t\t\t\t<del {...toCustomElementProps({ \"aria-label\": \"Fjern tekst\" })} />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{!!options && (\n\t\t\t\t\t<FieldDatalist data-nofilter={nofilter || undefined}>\n\t\t\t\t\t\t{options.map(toOption).map(({ children, label, value }) => (\n\t\t\t\t\t\t\t<FieldOption key={value} value={value} label={label}>\n\t\t\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t\t\t</FieldOption>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</FieldDatalist>\n\t\t\t\t)}\n\t\t\t</u-combobox>\n\t\t);\n\t},\n);\n\nexport const Field = Object.assign(FieldComp, {\n\tAffixes: FieldAffixes,\n\tCombobox: FieldCombobox,\n\tDatalist: FieldDatalist,\n\tOption: FieldOption,\n});\n"],"names":["toOption","o","FieldComp","forwardRef","size","as","className","count","description","error","helpText","helpTextLabel","label","prefix","style","suffix","validation","rest","ref","Tag","affixes","valid","shared","clsx","styles","value","jsx","jsxs","HelpText","FieldAffixes","FieldDatalist","props","toCustomElementProps","FieldOption","FieldCombobox","multiple","nofilter","onAfterChange","onBeforeChange","onBeforeMatch","onSelectedChange","children","disabled","options","readOnly","selected","innerRef","useRef","onSelected","useImperativeHandle","useEffect","self","handleChange","event","handleSelected","remove","textContent","prev","i","Fragment","Input","Field"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAMA,IAAW,CAChBC,MAEA,OAAOA,KAAM,WAAW,EAAE,OAAOA,GAAG,OAAOA,EAAA,IAAMA,GAErCC,IAA4BC,EAAiB,SAGzD;AAAA,EACC,aAAaC;AAAA,EACb,IAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACJ,GACAC,GACC;AACD,QAAMC,IAAMd,KAAM,OACZe,IAAU,CAAC,CAACL,KAAU,CAAC,CAACF,GACxBQ,IAAQL,KAAcP,GACtBa,IAAS;AAAA,IACd,aAAalB;AAAA,IACb,WAAWmB,EAAKC,EAAO,OAAOlB,CAAS;AAAA,IACvC,OAAAQ;AAAA,EACD;AAGI,SAAAT,MAAO,YAAY,CAACY,EAAK,YAC5B,OAAO,OAAOA,GAAM;AAAA,IACnB,iCAEI,UAAKA,EAAA,SACJ,IAAIjB,CAAQ,EACb,IAAI,CAAC,EAAE,OAAAY,GAAO,OAAAa,EAAA,MACb,gBAAAC,EAAA,UAAA,EAAmB,OAAAD,GAClB,UAAAb,EAAAA,GADWa,CAEb,CACA,EACH,CAAA;AAAA,EAAA,CAED,GAGKpB,IACN,gBAAAsB,EAAC,OAAK,EAAA,GAAGL,GACP,UAAA;AAAA,IAAA,CAAC,CAACV,KAAS,gBAAAc,EAAC,SAAM,EAAA,0BAAwB,IAAE,UAAMd,GAAA;AAAA,IAClD,CAAC,CAACF,uBAAakB,GAAS,EAAA,cAAYjB,GAAgB,UAASD,GAAA;AAAA,IAC7D,CAAC,CAACF,KAAe,gBAAAkB,EAAC,OAAG,UAAYlB,GAAA;AAAA,IACjCY,sBACCS,GACC,EAAA,UAAA;AAAA,MAAA,CAAC,CAAChB,KAAW,gBAAAa,EAAA,QAAA,EAAM,UAAOb,GAAA;AAAA,wBAC1BM,GAAI,EAAA,WAAWK,EAAO,OAAO,KAAAN,GAAW,GAAGD,GAAM;AAAA,MACjD,CAAC,CAACF,KAAU,gBAAAW,EAAC,UAAM,UAAOX,EAAA,CAAA;AAAA,IAAA,EAAA,CAC5B,IAEA,gBAAAW;AAAA,MAACP;AAAA,MAAA;AAAA,QACA,WAAW,OAAOd,KAAO,WAAWmB,EAAO,QAAQ;AAAA,QACnD,0BAAwB;AAAA,QACxB,KAAAN;AAAA,QACC,GAAGD;AAAA,MAAA;AAAA,IACL;AAAA,IAEA,CAAC,CAACI,KAAS,gBAAAK,EAAC,SAAI,WAAWF,EAAO,YAAa,UAAMH,GAAA;AAAA,IACrD,CAAC,CAACd,KAAU,gBAAAmB,EAAA,KAAA,EAAE,cAAYnB,EAAO,CAAA;AAAA,EAAA,GACnC,IAEC,gBAAAmB,EAAA,OAAA,EAAI,KAAAR,GAAW,GAAGI,GAAS,GAAGL,GAAM;AAEvC,CAAC,GAGKY,IAAe1B;AAAA,EACpB,SAAsB,EAAE,WAAAG,GAAW,GAAGW,EAAA,GAAQC,GAAK;AAEjD,WAAA,gBAAAQ,EAAC,OAAI,EAAA,WAAWH,EAAKC,EAAO,SAASlB,CAAS,GAAG,KAAAY,GAAW,GAAGD,EAAM,CAAA;AAAA,EAAA;AAGxE,GAOMa,IAAgB3B;AAAA,EACrB,SAAuB4B,GAAOb,GAAK;AAClC,6BAAQ,cAAW,EAAA,KAAAA,GAAW,GAAGc,EAAqBD,CAAK,GAAG;AAAA,EAAA;AAEhE,GAGME,IAAc9B;AAAA,EACnB,SAAqB4B,GAAOb,GAAK;AAChC,6BAAQ,YAAS,EAAA,KAAAA,GAAW,GAAGc,EAAqBD,CAAK,GAAG;AAAA,EAAA;AAE9D,GAqBMG,IAAgB/B;AAAA,EACrB,SACC;AAAA,IACC,iBAAiBgC;AAAA,IACjB,iBAAiBC;AAAA,IACjB,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGd;AAAA,KAEJb,GACC;AACK,UAAA4B,IAAWC,EAA6B,IAAI,GAC5CC,IAAaD,EAAOP,CAAgB;AAC1C,WAAAQ,EAAW,UAAUR,GAEDS,EAAA/B,GAAK,MAAM4B,EAAS,OAA+B,GACvEI,EAAU,MAAM;AACf,YAAMC,IAAOL,EAAS,SAChBM,IAAe,CAACC,MAAwC;AAC7D,cAAMC,IAAiBN,EAAW;AAClC,YAAI,CAACA,EAAY;AACjB,QAAAK,EAAM,eAAe;AACrB,cAAM,EAAE,aAAaE,GAAQ,aAAAC,GAAa,OAAA/B,EAAA,IAAU4B,EAAM,QACpDzC,IAAQ4C,GAAa,KAAA,KAAU,IAC/BC,IAAOZ,KAAY,CAAC;AAEtB,YAAAU,IAAyBE,EAAK,OAAO,CAACC,MAAMA,EAAE,UAAUjC,CAAK,IACxDU,IAA2B,CAAC,GAAGsB,GAAM,EAAE,OAAAhC,GAAO,OAAAb,EAAM,CAAC,IACxC,CAAC,EAAE,OAAAa,GAAO,OAAAb,EAAO,CAAA,CAF2B;AAAA,MAGnE;AAEM,aAAAuC,GAAA,iBAAiB,gBAAgBC,CAAY,GAC5C,MAAMD,GAAM,oBAAoB,gBAAgBC,CAAY;AAAA,IAAA,GACjE,CAACjB,GAAUU,CAAQ,CAAC,GAGtB,gBAAAlB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,GAAGK,EAAqB;AAAA,UACxB,iBAAiBG;AAAA,UACjB,gBAAgBG;AAAA,UAChB,eAAeC;AAAA,UACf,eAAeF;AAAA,UACf,KAAKS;AAAA,UACL,GAAGf;AAAA,QAAA,CACH;AAAA,QAEA,UAAA;AAAA,UAAAc,GAAU,IAAI,CAAC,EAAE,UAAAJ,GAAU,OAAA7B,GAAO,OAAAa,EAAM,MACvC,gBAAAC,EAAA,QAAA,EAAiB,OAAAD,GAAc,0BAAwB,IACtD,UAAAgB,KAAY7B,EAAA,GADHa,CAEX,CACA;AAAA,UACAgB,KAEC,gBAAAd,EAAAgC,GAAA,EAAA,UAAA;AAAA,YAAC,gBAAAjC,EAAAkC,GAAA,EAAM,UAAAlB,GAAoB,UAAAE,EAAoB,CAAA;AAAA,YAC/C,gBAAAlB,EAAC,SAAK,GAAGM,EAAqB,EAAE,cAAc,cAAA,CAAe,EAAG,CAAA;AAAA,UAAA,GACjE;AAAA,UAEA,CAAC,CAACW,KACF,gBAAAjB,EAACI,GAAc,EAAA,iBAAeM,KAAY,QACxC,UAAQO,EAAA,IAAI3C,CAAQ,EAAE,IAAI,CAAC,EAAE,UAAAyC,GAAU,OAAA7B,GAAO,OAAAa,EAAM,MACnD,gBAAAC,EAAAO,GAAA,EAAwB,OAAAR,GAAc,OAAAb,GACrC,UAAA6B,KAAY7B,EADI,GAAAa,CAElB,CACA,EACF,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA;AAGH,GAEaoC,KAAQ,OAAO,OAAO3D,GAAW;AAAA,EAC7C,SAAS2B;AAAA,EACT,UAAUK;AAAA,EACV,UAAUJ;AAAA,EACV,QAAQG;AACT,CAAC;"}
1
+ {"version":3,"file":"field.js","sources":["../../designsystem/field/field.tsx"],"sourcesContent":["import type {\n\tReactUcombobox,\n\tUHTMLComboboxElement,\n} from \"@u-elements/u-combobox\";\nimport clsx from \"clsx\";\nimport {\n\tforwardRef,\n\ttype JSX,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport { HelpText, Input } from \"../react\";\nimport type {\n\tPolymorphicComponentPropWithRef,\n\tPolymorphicRef,\n} from \"../react-types\";\nimport styles from \"../styles.module.css\";\nimport { type AnchorPosition, toCustomElementProps } from \"../utils\";\n\ntype FieldBaseProps = {\n\tcount?: number;\n\tdescription?: React.ReactNode;\n\terror?: React.ReactNode; // Kept for backwards compatibility\n\thelpText?: React.ReactNode;\n\thelpTextLabel?: string;\n\tlabel?: React.ReactNode;\n\toptions?: string[] | FieldComboboxSelected;\n\tprefix?: string;\n\treadOnly?: boolean; // Allow readoOnly also on <select>\n\tsuffix?: string;\n\tvalidation?: React.ReactNode;\n\tvalue?: React.ComponentPropsWithRef<\"input\">[\"value\"];\n\tonInput?: (\n\t\te: React.ChangeEvent<\n\t\t\tHTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\t\t>,\n\t) => void;\n};\n\nexport type FieldProps<As extends React.ElementType = \"div\"> =\n\tPolymorphicComponentPropWithRef<As, FieldBaseProps>;\n\ntype FieldComponent = <As extends React.ElementType = \"div\">(\n\tprops: FieldProps<As>,\n) => JSX.Element;\n\nconst toOption = (\n\to: FieldComboboxSelected[number] | string,\n): FieldComboboxSelected[number] =>\n\ttypeof o === \"string\" ? { label: o, value: o } : o;\n\nexport const FieldComp: FieldComponent = forwardRef<null>(function Field<\n\tAs extends React.ElementType = \"div\",\n>(\n\t{\n\t\t\"data-size\": size,\n\t\tas,\n\t\tclassName,\n\t\tcount,\n\t\tdescription,\n\t\terror,\n\t\thelpText,\n\t\thelpTextLabel,\n\t\tlabel,\n\t\tprefix,\n\t\tstyle,\n\t\tsuffix,\n\t\tvalidation,\n\t\t...rest\n\t}: FieldProps<As>,\n\tref?: PolymorphicRef<As>,\n) {\n\tconst Tag = as || \"div\";\n\tconst affixes = !!suffix || !!prefix;\n\tconst valid = validation || error; // error kept for backwards compatibility\n\tconst shared = {\n\t\t\"data-size\": size,\n\t\tclassName: clsx(styles.field, className),\n\t\tstyle,\n\t};\n\n\t// Render options if select\n\tif (as === \"select\" && !rest.children)\n\t\tObject.assign(rest, {\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t{(rest.options as FieldBaseProps[\"options\"])\n\t\t\t\t\t\t?.map(toOption)\n\t\t\t\t\t\t.map(({ label, value }) => (\n\t\t\t\t\t\t\t<option key={value} value={value}>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t</>\n\t\t\t),\n\t\t});\n\n\t// Using suppressHydrationWarning to avoid Next.js vs field-observer.ts hydration conflict\n\treturn as ? (\n\t\t<div {...shared}>\n\t\t\t{!!label && <label suppressHydrationWarning>{label}</label>}\n\t\t\t{!!helpText && <HelpText aria-label={helpTextLabel}>{helpText}</HelpText>}\n\t\t\t{!!description && <p>{description}</p>}\n\t\t\t{affixes ? (\n\t\t\t\t<FieldAffixes>\n\t\t\t\t\t{!!prefix && <span>{prefix}</span>}\n\t\t\t\t\t<Tag className={styles.input} ref={ref} {...rest} />\n\t\t\t\t\t{!!suffix && <span>{suffix}</span>}\n\t\t\t\t</FieldAffixes>\n\t\t\t) : (\n\t\t\t\t<Tag\n\t\t\t\t\tclassName={typeof as === \"string\" ? styles.input : undefined}\n\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!!valid && <div className={styles.validation}>{valid}</div>}\n\t\t\t{!!count && <p data-count={count} />}\n\t\t</div>\n\t) : (\n\t\t<div ref={ref} {...shared} {...rest} />\n\t);\n}) as FieldComponent; // Needed to tell Typescript this does not return ReactNode but acutally JSX.Element\n\nexport type FieldAffixProps = React.ComponentPropsWithoutRef<\"div\">;\nconst FieldAffixes = forwardRef<HTMLDivElement, FieldAffixProps>(\n\tfunction FieldAffixes({ className, ...rest }, ref) {\n\t\treturn (\n\t\t\t<div className={clsx(styles.affixes, className)} ref={ref} {...rest} />\n\t\t);\n\t},\n);\n\nexport type FieldDatalistProps = React.ComponentPropsWithoutRef<\"datalist\"> & {\n\t\"data-nofilter\"?: boolean;\n\t\"data-position\"?: AnchorPosition;\n};\n\nconst FieldDatalist = forwardRef<HTMLDataListElement, FieldDatalistProps>(\n\tfunction FieldDatalist(props, ref) {\n\t\treturn <u-datalist ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport type FieldOptionProps = React.ComponentPropsWithoutRef<\"option\">;\nconst FieldOption = forwardRef<HTMLOptionElement, FieldOptionProps>(\n\tfunction FieldOption(props, ref) {\n\t\treturn <u-option ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport type FieldComboboxSelected = {\n\tlabel: string;\n\tvalue: string;\n\tchildren?: React.ReactNode;\n}[];\nexport type FieldComboboxProps = ReactUcombobox & {\n\t\"data-creatable\"?: boolean;\n\t\"data-multiple\"?: boolean;\n\t\"data-nofilter\"?: boolean;\n\tonAfterChange?: (e: CustomEvent<HTMLDataElement>) => void; // deprecated\n\tonBeforeChange?: (e: CustomEvent<HTMLDataElement>) => void; // deprecated\n\tonAfterSelect?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonBeforeSelect?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonBeforeMatch?: (e: CustomEvent<HTMLOptionElement>) => void; // Custom event to handle before change\n\tonSelectedChange?: (selected: FieldComboboxSelected) => void; // Allow onChange to be a function that returns void\n\tdisabled?: boolean; // Allow disabled prop to be passed down\n\toptions?: FieldComboboxSelected;\n\treadOnly?: boolean; // Allow disabled prop to be passed down\n\tselected?: FieldComboboxSelected; // Allow value to be a string or an array of strings for multiple select\n};\n\nconst FieldCombobox = forwardRef<UHTMLComboboxElement, FieldComboboxProps>(\n\tfunction FieldCombobox(\n\t\t{\n\t\t\t\"data-multiple\": multiple,\n\t\t\t\"data-nofilter\": nofilter,\n\t\t\tonAfterChange,\n\t\t\tonBeforeChange,\n\t\t\tonAfterSelect,\n\t\t\tonBeforeSelect,\n\t\t\tonBeforeMatch,\n\t\t\tonSelectedChange,\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\toptions,\n\t\t\treadOnly,\n\t\t\tselected,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst innerRef = useRef<UHTMLComboboxElement>(null);\n\t\tconst onSelected = useRef(onSelectedChange);\n\t\tonSelected.current = onSelectedChange; // Sync the latest onSelectedChange function\n\n\t\t// Deprecated props\n\t\tif (onAfterChange) {\n\t\t\tonAfterSelect = onAfterChange;\n\t\t\tconsole.warn(\n\t\t\t\t`Combobox onAfterChange is deprecated, use onAfterSelect instead.`,\n\t\t\t);\n\t\t}\n\t\tif (onBeforeChange) {\n\t\t\tonBeforeSelect = onBeforeChange;\n\t\t\tconsole.warn(\n\t\t\t\t`Combobox onBeforeChange is deprecated, use onBeforeSelect instead.`,\n\t\t\t);\n\t\t}\n\n\t\tuseImperativeHandle(ref, () => innerRef.current as UHTMLComboboxElement); // Forward innerRef\n\t\tuseEffect(() => {\n\t\t\tconst self = innerRef.current;\n\t\t\tconst handleChange = (event: CustomEvent<HTMLDataElement>) => {\n\t\t\t\tconst handleSelected = onSelected.current;\n\t\t\t\tif (!onSelected) return; // No onSelectedChange function provided, let u-combobox handle it\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst { isConnected: remove, textContent, value } = event.detail;\n\t\t\t\tconst label = textContent?.trim() || \"\";\n\t\t\t\tconst prev = selected || [];\n\n\t\t\t\tif (remove) handleSelected?.(prev.filter((i) => i.value !== value));\n\t\t\t\telse if (multiple) handleSelected?.([...prev, { value, label }]);\n\t\t\t\telse handleSelected?.([{ value, label }]);\n\t\t\t};\n\n\t\t\tself?.addEventListener(\"comboboxbeforeselect\", handleChange);\n\t\t\treturn () =>\n\t\t\t\tself?.removeEventListener(\"comboboxbeforeselect\", handleChange);\n\t\t}, [multiple, selected]);\n\n\t\treturn (\n\t\t\t<u-combobox\n\t\t\t\t{...toCustomElementProps({\n\t\t\t\t\t\"data-multiple\": multiple,\n\t\t\t\t\toncomboboxbeforeselect: onBeforeSelect,\n\t\t\t\t\toncomboboxbeforematch: onBeforeMatch,\n\t\t\t\t\toncomboboxafterselect: onAfterSelect,\n\t\t\t\t\tref: innerRef,\n\t\t\t\t\t...props,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{selected?.map(({ children, label, value }) => (\n\t\t\t\t\t<data key={value} value={value} suppressHydrationWarning>\n\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t</data>\n\t\t\t\t))}\n\t\t\t\t{children || (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Input disabled={disabled} readOnly={readOnly} />\n\t\t\t\t\t\t<del {...toCustomElementProps({ \"aria-label\": \"Fjern tekst\" })} />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{!!options && (\n\t\t\t\t\t<FieldDatalist data-nofilter={nofilter || undefined}>\n\t\t\t\t\t\t{options.map(toOption).map(({ children, label, value }) => (\n\t\t\t\t\t\t\t<FieldOption key={value} value={value} label={label}>\n\t\t\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t\t\t</FieldOption>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</FieldDatalist>\n\t\t\t\t)}\n\t\t\t</u-combobox>\n\t\t);\n\t},\n);\n\nexport const Field = Object.assign(FieldComp, {\n\tAffixes: FieldAffixes,\n\tCombobox: FieldCombobox,\n\tDatalist: FieldDatalist,\n\tOption: FieldOption,\n});\n"],"names":["toOption","o","FieldComp","forwardRef","size","as","className","count","description","error","helpText","helpTextLabel","label","prefix","style","suffix","validation","rest","ref","Tag","affixes","valid","shared","clsx","styles","value","jsx","jsxs","HelpText","FieldAffixes","FieldDatalist","props","toCustomElementProps","FieldOption","FieldCombobox","multiple","nofilter","onAfterChange","onBeforeChange","onAfterSelect","onBeforeSelect","onBeforeMatch","onSelectedChange","children","disabled","options","readOnly","selected","innerRef","useRef","onSelected","useImperativeHandle","useEffect","self","handleChange","event","handleSelected","remove","textContent","prev","i","Fragment","Input","Field"],"mappings":"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"}
package/mtds/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { UHTMLTabsElement, UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, } from '@u-elements/u-tabs';
2
1
  export { UHTMLComboboxElement } from '@u-elements/u-combobox';
2
+ export { UHTMLTabElement, UHTMLTabListElement, UHTMLTabPanelElement, UHTMLTabsElement, } from '@u-elements/u-tabs';
3
3
  export { version } from '../package.json';
4
4
  export { analytics } from './analytics/analytics';
5
- export { pagination } from './pagination/pagination-helper';
6
5
  export { toggleAppExpanded } from './app/app-observer';
6
+ export { pagination } from './pagination/pagination-helper';
7
7
  export declare const styles: {
8
8
  alert: string;
9
9
  app: string;