@mattilsynet/design 0.0.8 → 0.0.10

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/mtds/index.d.ts CHANGED
@@ -1,2 +1,31 @@
1
- export * as styles from './styles.module.css.js';
2
- export * from './field/field';
1
+ declare function kt(t: any): void;
2
+ declare namespace Lt {
3
+ export { nt as alert };
4
+ export { st as breadcrumbs };
5
+ export { it as button };
6
+ export { rt as details };
7
+ export { F as field };
8
+ export { lt as fieldset };
9
+ export { dt as autolayout };
10
+ export { ct as input };
11
+ export { at as link };
12
+ export { ut as logo };
13
+ export { I as popover };
14
+ export { M as validation };
15
+ export { ft as body };
16
+ }
17
+ declare function Rt(t: any): void;
18
+ declare const nt: "_alert_1h1lt_1 _ds-alert_bbrk4_1";
19
+ declare const st: "_breadcrumbs_1h1lt_1 _ds-breadcrumbs_bbrk4_1";
20
+ declare const it: "_button_1h1lt_1 _ds-button_bbrk4_1";
21
+ declare const rt: "_details_1h1lt_1 _ds-details_bbrk4_1";
22
+ declare const F: "_field_1h1lt_1 _ds-field_bbrk4_1";
23
+ declare const lt: "_fieldset_1h1lt_1 _ds-fieldset_bbrk4_1";
24
+ declare const dt: "_autolayout_1h1lt_1";
25
+ declare const ct: "_input_1h1lt_1 _ds-input_bbrk4_1";
26
+ declare const at: "_link_1h1lt_1";
27
+ declare const ut: "_logo_1h1lt_1 _ds-focus_bbrk4_1";
28
+ declare const I: "_popover_1h1lt_1";
29
+ declare const M: "_validation_1h1lt_1";
30
+ declare const ft: "_body_1h1lt_50";
31
+ export { kt as observe, Lt as styles, Rt as unobserve };
@@ -0,0 +1,4 @@
1
+ var mtds=function(a){"use strict";const H="_alert_1h1lt_1 _ds-alert_bbrk4_1",q="_breadcrumbs_1h1lt_1 _ds-breadcrumbs_bbrk4_1",z="_button_1h1lt_1 _ds-button_bbrk4_1",V="_details_1h1lt_1 _ds-details_bbrk4_1",$="_field_1h1lt_1 _ds-field_bbrk4_1",j="_fieldset_1h1lt_1 _ds-fieldset_bbrk4_1",W="_autolayout_1h1lt_1",x="_input_1h1lt_1 _ds-input_bbrk4_1",J="_link_1h1lt_1",U="_logo_1h1lt_1 _ds-focus_bbrk4_1",L="_popover_1h1lt_1",k="_validation_1h1lt_1",G={alert:H,breadcrumbs:q,button:z,details:V,field:$,fieldset:j,autolayout:W,input:x,link:J,logo:U,popover:L,validation:k,body:"_body_1h1lt_50"},R=typeof window<"u"&&typeof document<"u";let K=0;const Q=`${Date.now().toString(36)}${Math.random().toString(36).slice(2,5)}`;function h(t){return t.id||(t.id=`${Q}${++K}`),t.id}function X(t){const e=[],n=new MutationObserver(o=>{e[0]||requestAnimationFrame(i),e.push(...o)}),i=()=>{t(e,n),e.length=0};return n}const M=(t,e,n)=>{for(const i of n[0].split(","))n[0]=i,Element.prototype[`${t}EventListener`].apply(e,n)},m=(t,...e)=>M("add",t,e),g=(t,...e)=>M("remove",t,e),Y=$.split(" ")[0],Z=k.split(" ")[0],p=new WeakMap;function C(t){for(const e of t){const n=[],i=[];let o=null,d=!0;for(const s of e.getElementsByTagName("*"))s instanceof HTMLLabelElement?n.push(s):"validity"in s&&!(s instanceof HTMLButtonElement)?o=s:s.classList.contains(Z)?(d=s.getAttribute("data-color")==="success",i.unshift(h(s))):s instanceof HTMLParagraphElement&&i.push(h(s));if(o)for(const s of n)s.htmlFor=h(o);o==null||o.setAttribute("aria-describedby",i.join(" ")),o==null||o.setAttribute("aria-invalid",`${!d}`)}}R&&F(document.body);function F(t){if(p.has(t))return;const e=t.getElementsByClassName(Y),n=X(()=>C(e));n.observe(t,{attributeFilter:["class"],attributes:!0,childList:!0,subtree:!0}),C(e),p.set(t,n)}function tt(t){var e;(e=p.get(t))==null||e.disconnect()}/*! NanoPop 2.4.2 MIT | https://github.com/Simonwep/nanopop */const et={variantFlipOrder:{start:"sme",middle:"mse",end:"ems"},positionFlipOrder:{top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},position:"bottom",margin:8,padding:0},ot=(t,e,n)=>{const{container:i,arrow:o,margin:d,padding:s,position:at,variantFlipOrder:ut,positionFlipOrder:bt}={container:document.documentElement.getBoundingClientRect(),...et,...n},{left:ft,top:_t}=e.style;e.style.left="0",e.style.top="0";const r=t.getBoundingClientRect(),l=e.getBoundingClientRect(),ht={t:r.top-l.height-d,b:r.bottom+d,r:r.right+d,l:r.left-l.width-d},mt={vs:r.left,vm:r.left+r.width/2-l.width/2,ve:r.left+r.width-l.width,hs:r.top,hm:r.bottom-r.height/2-l.height/2,he:r.bottom-l.height},[gt,pt="middle"]=at.split("-"),vt=bt[gt],yt=ut[pt],{top:A,left:B,bottom:P,right:N}=i;for(const u of vt){const c=u==="t"||u==="b";let b=ht[u];const[v,y]=c?["top","left"]:["left","top"],[w,O]=c?[l.height,l.width]:[l.width,l.height],[wt,Ot]=c?[P,N]:[N,P],[Et,St]=c?[A,B]:[B,A];if(!(b<Et||b+w+s>wt))for(const E of yt){let f=mt[(c?"v":"h")+E];if(!(f<St||f+O+s>Ot)){if(f-=l[y],b-=l[v],e.style[y]=`${f}px`,e.style[v]=`${b}px`,o){const S=c?r.width/2:r.height/2,_=O/2,D=S>_,$t={s:D?_:S,m:_,e:D?_:O-S},Lt={t:w,b:0,r:0,l:w},kt=f+$t[E],Rt=b+Lt[u];o.style[y]=`${kt}px`,o.style[v]=`${Rt}px`}return u+E}}}return e.style.left=ft,e.style.top=_t,null},nt=L.split(" ")[0],it={toJSON:()=>"",bottom:0,height:0,left:0,right:0,top:0,width:0,x:0,y:0},st=/(top|right|bottom|left)-(start|middle|end)/;R&&T(document);function rt(t,e){const n=e.getAttribute("data-position")||"bottom-start";if(!st.test(n))return console.error(`Found invalid data-position="${n}"
2
+ - It must be [top|right|bottom|left]-[start|middle|end]
3
+ - Found on element:`,e);const i=()=>ot(t,e,{container:{...it,bottom:window.innerHeight,right:window.innerWidth},margin:4,padding:16,position:n}),o=({newState:d})=>{d!=="open"&&(g(document,"DOMContentReady",i),g(e,"toggle",o),g(window,"load,resize,scroll",i,!0))};document.fonts.ready.then(i),m(document,"DOMContentReady",i),m(e,"toggle",o),m(window,"load,resize,scroll",i,!0)}function I({target:t,newState:e}){var o;const i=e==="open"&&t instanceof HTMLElement&&t.classList.contains(nt)&&((o=t.getRootNode())==null?void 0:o.querySelector(`[popovertarget="${t.id}"]`));i&&rt(i,t)}function T(t){t.addEventListener("toggle",I,!0)}function lt(t){t.removeEventListener("toggle",I,!0)}function dt(t){F(t),T(t)}function ct(t){tt(t),lt(t)}return a.observe=dt,a.styles=G,a.unobserve=ct,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),a}({});
4
+ //# sourceMappingURL=index.iife.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.iife.js","sources":["../designsystem/utils.ts","../designsystem/field/field.ts","../node_modules/nanopop/dist/nanopop.mjs","../designsystem/popover/popover.ts","../designsystem/index.ts"],"sourcesContent":["export const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * useId\n * @return A generated unique ID\n */\nlet id = 0;\nconst UUID = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`;\nexport function useId (el: Element) {\n if (!el.id) el.id = `${UUID}${++id}`;\n\treturn el.id;\n};\n\n/**\n * Speed up MutationObserver by debouncing and only running when page is visible\n * @return new MutaionObserver\n */\nexport function createOptimizedMutationObserver(callback: MutationCallback) {\n const queue: MutationRecord[] = [];\n const observer = new MutationObserver((mutations) => {\n if (!queue[0]) requestAnimationFrame(process);\n queue.push(...mutations);\n });\n\n const process = () => {\n callback(queue, observer);\n queue.length = 0; // Reset queue\n };\n\n return observer;\n}\n\n// Internal helper for on / off\nconst events = (\n\taction: \"add\" | \"remove\",\n\telement: Node | Window,\n\trest: Parameters<typeof Element.prototype.addEventListener>,\n): void => {\n\tfor (const type of rest[0].split(\",\")) {\n\t\trest[0] = type;\n\t\tElement.prototype[`${action}EventListener`].apply(element, rest);\n\t}\n};\n\n/**\n * on\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const on = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.addEventListener>\n): void => events(\"add\", element, rest);\n\n/**\n * off\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const off = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.removeEventListener>\n): void => events(\"remove\", element, rest);\n\n","import { field, validation } from '../styles.module.css';\nimport { IS_BROWSER, createOptimizedMutationObserver, useId } from '../utils';\n\nconst CSS_FIELD = field.split(' ')[0];\nconst CSS_VALIDATION = validation.split(' ')[0];\nconst OBSERVERS = new WeakMap();\n\n\nfunction process(fields: HTMLCollectionOf<Element>) {\n for(const field of fields) {\n const labels: HTMLLabelElement[] = [];\n const descs: string[] = [];\n let input: Element | null = null;\n let valid = true;\n\n for (const el of field.getElementsByTagName('*')) {\n if (el instanceof HTMLLabelElement) labels.push(el);\n else if ('validity' in el && !(el instanceof HTMLButtonElement)) input = el;\n else if (el.classList.contains(CSS_VALIDATION)) { // Must be before validation since it can also be a <p>\n valid = el.getAttribute('data-color') === 'success';\n descs.unshift(useId(el));\n } else if (el instanceof HTMLParagraphElement) descs.push(useId(el));\n }\n\n if (input) for (const label of labels) label.htmlFor = useId(input);\n input?.setAttribute('aria-describedby', descs.join(' '));\n input?.setAttribute('aria-invalid', `${!valid}`);\n }\n}\n\n// Automatically observe <body> if in browser\nif (IS_BROWSER) observe(document.body);\n\nexport function observe (el: Element) {\n if (OBSERVERS.has(el)) return;\n const fields = el.getElementsByClassName(CSS_FIELD); // Reutrns a live HTMLCollection\n const observer = createOptimizedMutationObserver(() => process(fields));\n observer.observe(el, {\n attributeFilter: ['class'],\n attributes: true,\n childList: true,\n subtree: true\n });\n\n process(fields); // Initial run\n OBSERVERS.set(el, observer);\n}\n\nexport function unobserve (el: Element) {\n OBSERVERS.get(el)?.disconnect();\n}\n","/*! NanoPop 2.4.2 MIT | https://github.com/Simonwep/nanopop */\nconst N = \"2.4.2\", I = {\n variantFlipOrder: { start: \"sme\", middle: \"mse\", end: \"ems\" },\n positionFlipOrder: { top: \"tbrl\", right: \"rltb\", bottom: \"btrl\", left: \"lrbt\" },\n position: \"bottom\",\n margin: 8,\n padding: 0\n}, J = (n, i, m) => {\n const {\n container: r,\n arrow: a,\n margin: e,\n padding: l,\n position: V,\n variantFlipOrder: C,\n positionFlipOrder: M\n } = {\n container: document.documentElement.getBoundingClientRect(),\n ...I,\n ...m\n }, { left: F, top: K } = i.style;\n i.style.left = \"0\", i.style.top = \"0\";\n const t = n.getBoundingClientRect(), o = i.getBoundingClientRect(), P = {\n t: t.top - o.height - e,\n b: t.bottom + e,\n r: t.right + e,\n l: t.left - o.width - e\n }, R = {\n vs: t.left,\n vm: t.left + t.width / 2 - o.width / 2,\n ve: t.left + t.width - o.width,\n hs: t.top,\n hm: t.bottom - t.height / 2 - o.height / 2,\n he: t.bottom - o.height\n }, [$, E = \"middle\"] = V.split(\"-\"), L = M[$], j = C[E], { top: y, left: x, bottom: B, right: O } = r;\n for (const c of L) {\n const s = c === \"t\" || c === \"b\";\n let p = P[c];\n const [d, g] = s ? [\"top\", \"left\"] : [\"left\", \"top\"], [u, v] = s ? [o.height, o.width] : [o.width, o.height], [z, T] = s ? [B, O] : [O, B], [H, k] = s ? [y, x] : [x, y];\n if (!(p < H || p + u + l > z))\n for (const b of j) {\n let f = R[(s ? \"v\" : \"h\") + b];\n if (!(f < k || f + v + l > T)) {\n if (f -= o[g], p -= o[d], i.style[g] = `${f}px`, i.style[d] = `${p}px`, a) {\n const w = s ? t.width / 2 : t.height / 2, h = v / 2, S = w > h, q = {\n s: S ? h : w,\n m: h,\n e: S ? h : v - w\n }, A = {\n t: u,\n b: 0,\n r: 0,\n l: u\n }, D = f + q[b], G = p + A[c];\n a.style[g] = `${D}px`, a.style[d] = `${G}px`;\n }\n return c + b;\n }\n }\n }\n return i.style.left = F, i.style.top = K, null;\n}, Q = (n, i, m) => {\n const r = typeof n == \"object\" && !(n instanceof HTMLElement) ? n : { reference: n, popper: i, ...m };\n return {\n /**\n * Repositions the current popper.\n * @param options Optional options which get merged with the current ones.\n */\n update(a = r) {\n const { reference: e, popper: l } = Object.assign(r, a);\n if (!l || !e)\n throw new Error(\"Popper- or reference-element missing.\");\n return J(e, l, r);\n }\n };\n};\nexport {\n Q as createPopper,\n I as defaults,\n J as reposition,\n N as version\n};\n//# sourceMappingURL=nanopop.mjs.map\n","import { type NanoPopPosition, reposition } from 'nanopop';\nimport { popover } from '../styles.module.css';\nimport { IS_BROWSER, off, on } from '../utils';\n\nconst CSS_POPOVER = popover.split(' ')[0];\nconst CONTAINER = { toJSON: () => '', bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0 };\nconst POSITIONS = /(top|right|bottom|left)-(start|middle|end)/;\ntype Toggle = Event & { newState?: string };\n\nif (IS_BROWSER) observe(document);\n\n// Not exposed as a hook, as it is nice to allow consuming components to use it as a callback\nexport function anchorPosition(anchor: HTMLElement, popover: HTMLElement) {\n const position = (popover.getAttribute('data-position') || 'bottom-start') as NanoPopPosition;\n if (!POSITIONS.test(position)) return console.error(`Found invalid data-position=\"${position}\"\\n- It must be [top|right|bottom|left]-[start|middle|end]\\n- Found on element:`, popover);\n\n const update = () =>\n reposition(anchor, popover, {\n container: { ...CONTAINER, bottom: window.innerHeight, right: window.innerWidth },\n margin: 4, // Margin between the popper element and the reference\n padding: 16, // Minimum space between the popper and the container\n position // [top|right|bottom|left]-[start|middle|end]\n });\n\n const removeEvent = ({ newState }: Toggle) => {\n if (newState === 'open') return;\n off(document, 'DOMContentReady', update);\n off(popover, 'toggle', removeEvent);\n off(window, 'load,resize,scroll', update, true);\n }\n \n\n document.fonts.ready.then(update); // Inital render and when fonts load\n on(document, 'DOMContentReady', update);\n on(popover, 'toggle', removeEvent);\n on(window, 'load,resize,scroll', update, true); // Use capture to also listen for elements with overflow\n}\n\nfunction process ({ target: el, newState }: Toggle){\n const isPopping = newState === 'open' && el instanceof HTMLElement && el.classList.contains(CSS_POPOVER);\n const anchor = isPopping && (el.getRootNode() as ShadowRoot)?.querySelector<HTMLElement>(`[popovertarget=\"${el.id}\"]`);\n\n if (anchor) anchorPosition(anchor, el);\n}\n\nexport function observe(el: Node) {\n el.addEventListener('toggle', process, true); // Use capture since toggle does not bubble\n}\nexport function unobserve(el: Node) {\n el.removeEventListener('toggle', process, true); // Use capture since toggle does not bubble\n}","import * as field from './field/field';\nimport * as popover from './popover/popover';\nexport { default as styles } from './styles.module.css';\n\nexport function observe(el: Element) {\n field.observe(el);\n popover.observe(el);\n}\n\nexport function unobserve(el: Element) {\n field.unobserve(el);\n popover.unobserve(el);\n}"],"names":["IS_BROWSER","id","UUID","useId","el","createOptimizedMutationObserver","callback","queue","observer","mutations","process","events","action","element","rest","type","on","off","CSS_FIELD","field","CSS_VALIDATION","validation","OBSERVERS","fields","labels","descs","input","valid","label","observe","unobserve","_a","I","J","n","i","m","r","a","e","l","V","C","M","F","K","t","o","P","R","$","E","L","j","y","x","B","O","c","s","p","d","g","u","v","z","T","H","k","b","w","h","S","q","A","D","G","CSS_POPOVER","popover","CONTAINER","POSITIONS","anchorPosition","anchor","position","update","reposition","removeEvent","newState","field.observe","popover.observe","field.unobserve","popover.unobserve"],"mappings":"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","x_google_ignoreList":[2]}
package/mtds/index.js CHANGED
@@ -1,8 +1,161 @@
1
- import * as e from "./styles.module.css.js";
2
- import { observe as r, unobserve as t } from "./field/field.js";
1
+ const nt = "_alert_1h1lt_1 _ds-alert_bbrk4_1", st = "_breadcrumbs_1h1lt_1 _ds-breadcrumbs_bbrk4_1", it = "_button_1h1lt_1 _ds-button_bbrk4_1", rt = "_details_1h1lt_1 _ds-details_bbrk4_1", F = "_field_1h1lt_1 _ds-field_bbrk4_1", lt = "_fieldset_1h1lt_1 _ds-fieldset_bbrk4_1", dt = "_autolayout_1h1lt_1", ct = "_input_1h1lt_1 _ds-input_bbrk4_1", at = "_link_1h1lt_1", ut = "_logo_1h1lt_1 _ds-focus_bbrk4_1", I = "_popover_1h1lt_1", M = "_validation_1h1lt_1", ft = "_body_1h1lt_50", Lt = {
2
+ alert: nt,
3
+ breadcrumbs: st,
4
+ button: it,
5
+ details: rt,
6
+ field: F,
7
+ fieldset: lt,
8
+ autolayout: dt,
9
+ input: ct,
10
+ link: at,
11
+ logo: ut,
12
+ popover: I,
13
+ validation: M,
14
+ body: ft
15
+ }, A = typeof window < "u" && typeof document < "u";
16
+ let bt = 0;
17
+ const _t = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`;
18
+ function y(t) {
19
+ return t.id || (t.id = `${_t}${++bt}`), t.id;
20
+ }
21
+ function ht(t) {
22
+ const e = [], n = new MutationObserver((o) => {
23
+ e[0] || requestAnimationFrame(s), e.push(...o);
24
+ }), s = () => {
25
+ t(e, n), e.length = 0;
26
+ };
27
+ return n;
28
+ }
29
+ const B = (t, e, n) => {
30
+ for (const s of n[0].split(","))
31
+ n[0] = s, Element.prototype[`${t}EventListener`].apply(e, n);
32
+ }, w = (t, ...e) => B("add", t, e), E = (t, ...e) => B("remove", t, e), pt = F.split(" ")[0], mt = M.split(" ")[0], O = /* @__PURE__ */ new WeakMap();
33
+ function C(t) {
34
+ for (const e of t) {
35
+ const n = [], s = [];
36
+ let o = null, d = !0;
37
+ for (const i of e.getElementsByTagName("*"))
38
+ i instanceof HTMLLabelElement ? n.push(i) : "validity" in i && !(i instanceof HTMLButtonElement) ? o = i : i.classList.contains(mt) ? (d = i.getAttribute("data-color") === "success", s.unshift(y(i))) : i instanceof HTMLParagraphElement && s.push(y(i));
39
+ if (o) for (const i of n) i.htmlFor = y(o);
40
+ o == null || o.setAttribute("aria-describedby", s.join(" ")), o == null || o.setAttribute("aria-invalid", `${!d}`);
41
+ }
42
+ }
43
+ A && T(document.body);
44
+ function T(t) {
45
+ if (O.has(t)) return;
46
+ const e = t.getElementsByClassName(pt), n = ht(() => C(e));
47
+ n.observe(t, {
48
+ attributeFilter: ["class"],
49
+ attributes: !0,
50
+ childList: !0,
51
+ subtree: !0
52
+ }), C(e), O.set(t, n);
53
+ }
54
+ function gt(t) {
55
+ var e;
56
+ (e = O.get(t)) == null || e.disconnect();
57
+ }
58
+ /*! NanoPop 2.4.2 MIT | https://github.com/Simonwep/nanopop */
59
+ const vt = {
60
+ variantFlipOrder: { start: "sme", middle: "mse", end: "ems" },
61
+ positionFlipOrder: { top: "tbrl", right: "rltb", bottom: "btrl", left: "lrbt" },
62
+ position: "bottom",
63
+ margin: 8,
64
+ padding: 0
65
+ }, yt = (t, e, n) => {
66
+ const {
67
+ container: s,
68
+ arrow: o,
69
+ margin: d,
70
+ padding: i,
71
+ position: x,
72
+ variantFlipOrder: D,
73
+ positionFlipOrder: H
74
+ } = {
75
+ container: document.documentElement.getBoundingClientRect(),
76
+ ...vt,
77
+ ...n
78
+ }, { left: q, top: z } = e.style;
79
+ e.style.left = "0", e.style.top = "0";
80
+ const r = t.getBoundingClientRect(), l = e.getBoundingClientRect(), V = {
81
+ t: r.top - l.height - d,
82
+ b: r.bottom + d,
83
+ r: r.right + d,
84
+ l: r.left - l.width - d
85
+ }, W = {
86
+ vs: r.left,
87
+ vm: r.left + r.width / 2 - l.width / 2,
88
+ ve: r.left + r.width - l.width,
89
+ hs: r.top,
90
+ hm: r.bottom - r.height / 2 - l.height / 2,
91
+ he: r.bottom - l.height
92
+ }, [j, J = "middle"] = x.split("-"), U = H[j], G = D[J], { top: $, left: S, bottom: L, right: k } = s;
93
+ for (const a of U) {
94
+ const c = a === "t" || a === "b";
95
+ let u = V[a];
96
+ const [_, h] = c ? ["top", "left"] : ["left", "top"], [p, m] = c ? [l.height, l.width] : [l.width, l.height], [K, Q] = c ? [L, k] : [k, L], [X, Y] = c ? [$, S] : [S, $];
97
+ if (!(u < X || u + p + i > K))
98
+ for (const g of G) {
99
+ let f = W[(c ? "v" : "h") + g];
100
+ if (!(f < Y || f + m + i > Q)) {
101
+ if (f -= l[h], u -= l[_], e.style[h] = `${f}px`, e.style[_] = `${u}px`, o) {
102
+ const v = c ? r.width / 2 : r.height / 2, b = m / 2, R = v > b, Z = {
103
+ s: R ? b : v,
104
+ m: b,
105
+ e: R ? b : m - v
106
+ }, tt = {
107
+ t: p,
108
+ b: 0,
109
+ r: 0,
110
+ l: p
111
+ }, et = f + Z[g], ot = u + tt[a];
112
+ o.style[h] = `${et}px`, o.style[_] = `${ot}px`;
113
+ }
114
+ return a + g;
115
+ }
116
+ }
117
+ }
118
+ return e.style.left = q, e.style.top = z, null;
119
+ }, wt = I.split(" ")[0], Et = { toJSON: () => "", bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0 }, Ot = /(top|right|bottom|left)-(start|middle|end)/;
120
+ A && P(document);
121
+ function $t(t, e) {
122
+ const n = e.getAttribute("data-position") || "bottom-start";
123
+ if (!Ot.test(n)) return console.error(`Found invalid data-position="${n}"
124
+ - It must be [top|right|bottom|left]-[start|middle|end]
125
+ - Found on element:`, e);
126
+ const s = () => yt(t, e, {
127
+ container: { ...Et, bottom: window.innerHeight, right: window.innerWidth },
128
+ margin: 4,
129
+ // Margin between the popper element and the reference
130
+ padding: 16,
131
+ // Minimum space between the popper and the container
132
+ position: n
133
+ // [top|right|bottom|left]-[start|middle|end]
134
+ }), o = ({ newState: d }) => {
135
+ d !== "open" && (E(document, "DOMContentReady", s), E(e, "toggle", o), E(window, "load,resize,scroll", s, !0));
136
+ };
137
+ document.fonts.ready.then(s), w(document, "DOMContentReady", s), w(e, "toggle", o), w(window, "load,resize,scroll", s, !0);
138
+ }
139
+ function N({ target: t, newState: e }) {
140
+ var o;
141
+ const s = e === "open" && t instanceof HTMLElement && t.classList.contains(wt) && ((o = t.getRootNode()) == null ? void 0 : o.querySelector(`[popovertarget="${t.id}"]`));
142
+ s && $t(s, t);
143
+ }
144
+ function P(t) {
145
+ t.addEventListener("toggle", N, !0);
146
+ }
147
+ function St(t) {
148
+ t.removeEventListener("toggle", N, !0);
149
+ }
150
+ function kt(t) {
151
+ T(t), P(t);
152
+ }
153
+ function Rt(t) {
154
+ gt(t), St(t);
155
+ }
3
156
  export {
4
- r as observe,
5
- e as styles,
6
- t as unobserve
157
+ kt as observe,
158
+ Lt as styles,
159
+ Rt as unobserve
7
160
  };
8
161
  //# sourceMappingURL=index.js.map
package/mtds/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.js","sources":["../designsystem/utils.ts","../designsystem/field/field.ts","../node_modules/nanopop/dist/nanopop.mjs","../designsystem/popover/popover.ts","../designsystem/index.ts"],"sourcesContent":["export const IS_BROWSER = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * useId\n * @return A generated unique ID\n */\nlet id = 0;\nconst UUID = `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`;\nexport function useId (el: Element) {\n if (!el.id) el.id = `${UUID}${++id}`;\n\treturn el.id;\n};\n\n/**\n * Speed up MutationObserver by debouncing and only running when page is visible\n * @return new MutaionObserver\n */\nexport function createOptimizedMutationObserver(callback: MutationCallback) {\n const queue: MutationRecord[] = [];\n const observer = new MutationObserver((mutations) => {\n if (!queue[0]) requestAnimationFrame(process);\n queue.push(...mutations);\n });\n\n const process = () => {\n callback(queue, observer);\n queue.length = 0; // Reset queue\n };\n\n return observer;\n}\n\n// Internal helper for on / off\nconst events = (\n\taction: \"add\" | \"remove\",\n\telement: Node | Window,\n\trest: Parameters<typeof Element.prototype.addEventListener>,\n): void => {\n\tfor (const type of rest[0].split(\",\")) {\n\t\trest[0] = type;\n\t\tElement.prototype[`${action}EventListener`].apply(element, rest);\n\t}\n};\n\n/**\n * on\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const on = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.addEventListener>\n): void => events(\"add\", element, rest);\n\n/**\n * off\n * @param element The Element to use as EventTarget\n * @param types A comma separated string of event types\n * @param listener An event listener function or listener object\n */\nexport const off = (\n\telement: Node | Window,\n\t...rest: Parameters<typeof Element.prototype.removeEventListener>\n): void => events(\"remove\", element, rest);\n\n","import { field, validation } from '../styles.module.css';\nimport { IS_BROWSER, createOptimizedMutationObserver, useId } from '../utils';\n\nconst CSS_FIELD = field.split(' ')[0];\nconst CSS_VALIDATION = validation.split(' ')[0];\nconst OBSERVERS = new WeakMap();\n\n\nfunction process(fields: HTMLCollectionOf<Element>) {\n for(const field of fields) {\n const labels: HTMLLabelElement[] = [];\n const descs: string[] = [];\n let input: Element | null = null;\n let valid = true;\n\n for (const el of field.getElementsByTagName('*')) {\n if (el instanceof HTMLLabelElement) labels.push(el);\n else if ('validity' in el && !(el instanceof HTMLButtonElement)) input = el;\n else if (el.classList.contains(CSS_VALIDATION)) { // Must be before validation since it can also be a <p>\n valid = el.getAttribute('data-color') === 'success';\n descs.unshift(useId(el));\n } else if (el instanceof HTMLParagraphElement) descs.push(useId(el));\n }\n\n if (input) for (const label of labels) label.htmlFor = useId(input);\n input?.setAttribute('aria-describedby', descs.join(' '));\n input?.setAttribute('aria-invalid', `${!valid}`);\n }\n}\n\n// Automatically observe <body> if in browser\nif (IS_BROWSER) observe(document.body);\n\nexport function observe (el: Element) {\n if (OBSERVERS.has(el)) return;\n const fields = el.getElementsByClassName(CSS_FIELD); // Reutrns a live HTMLCollection\n const observer = createOptimizedMutationObserver(() => process(fields));\n observer.observe(el, {\n attributeFilter: ['class'],\n attributes: true,\n childList: true,\n subtree: true\n });\n\n process(fields); // Initial run\n OBSERVERS.set(el, observer);\n}\n\nexport function unobserve (el: Element) {\n OBSERVERS.get(el)?.disconnect();\n}\n","/*! NanoPop 2.4.2 MIT | https://github.com/Simonwep/nanopop */\nconst N = \"2.4.2\", I = {\n variantFlipOrder: { start: \"sme\", middle: \"mse\", end: \"ems\" },\n positionFlipOrder: { top: \"tbrl\", right: \"rltb\", bottom: \"btrl\", left: \"lrbt\" },\n position: \"bottom\",\n margin: 8,\n padding: 0\n}, J = (n, i, m) => {\n const {\n container: r,\n arrow: a,\n margin: e,\n padding: l,\n position: V,\n variantFlipOrder: C,\n positionFlipOrder: M\n } = {\n container: document.documentElement.getBoundingClientRect(),\n ...I,\n ...m\n }, { left: F, top: K } = i.style;\n i.style.left = \"0\", i.style.top = \"0\";\n const t = n.getBoundingClientRect(), o = i.getBoundingClientRect(), P = {\n t: t.top - o.height - e,\n b: t.bottom + e,\n r: t.right + e,\n l: t.left - o.width - e\n }, R = {\n vs: t.left,\n vm: t.left + t.width / 2 - o.width / 2,\n ve: t.left + t.width - o.width,\n hs: t.top,\n hm: t.bottom - t.height / 2 - o.height / 2,\n he: t.bottom - o.height\n }, [$, E = \"middle\"] = V.split(\"-\"), L = M[$], j = C[E], { top: y, left: x, bottom: B, right: O } = r;\n for (const c of L) {\n const s = c === \"t\" || c === \"b\";\n let p = P[c];\n const [d, g] = s ? [\"top\", \"left\"] : [\"left\", \"top\"], [u, v] = s ? [o.height, o.width] : [o.width, o.height], [z, T] = s ? [B, O] : [O, B], [H, k] = s ? [y, x] : [x, y];\n if (!(p < H || p + u + l > z))\n for (const b of j) {\n let f = R[(s ? \"v\" : \"h\") + b];\n if (!(f < k || f + v + l > T)) {\n if (f -= o[g], p -= o[d], i.style[g] = `${f}px`, i.style[d] = `${p}px`, a) {\n const w = s ? t.width / 2 : t.height / 2, h = v / 2, S = w > h, q = {\n s: S ? h : w,\n m: h,\n e: S ? h : v - w\n }, A = {\n t: u,\n b: 0,\n r: 0,\n l: u\n }, D = f + q[b], G = p + A[c];\n a.style[g] = `${D}px`, a.style[d] = `${G}px`;\n }\n return c + b;\n }\n }\n }\n return i.style.left = F, i.style.top = K, null;\n}, Q = (n, i, m) => {\n const r = typeof n == \"object\" && !(n instanceof HTMLElement) ? n : { reference: n, popper: i, ...m };\n return {\n /**\n * Repositions the current popper.\n * @param options Optional options which get merged with the current ones.\n */\n update(a = r) {\n const { reference: e, popper: l } = Object.assign(r, a);\n if (!l || !e)\n throw new Error(\"Popper- or reference-element missing.\");\n return J(e, l, r);\n }\n };\n};\nexport {\n Q as createPopper,\n I as defaults,\n J as reposition,\n N as version\n};\n//# sourceMappingURL=nanopop.mjs.map\n","import { type NanoPopPosition, reposition } from 'nanopop';\nimport { popover } from '../styles.module.css';\nimport { IS_BROWSER, off, on } from '../utils';\n\nconst CSS_POPOVER = popover.split(' ')[0];\nconst CONTAINER = { toJSON: () => '', bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0 };\nconst POSITIONS = /(top|right|bottom|left)-(start|middle|end)/;\ntype Toggle = Event & { newState?: string };\n\nif (IS_BROWSER) observe(document);\n\n// Not exposed as a hook, as it is nice to allow consuming components to use it as a callback\nexport function anchorPosition(anchor: HTMLElement, popover: HTMLElement) {\n const position = (popover.getAttribute('data-position') || 'bottom-start') as NanoPopPosition;\n if (!POSITIONS.test(position)) return console.error(`Found invalid data-position=\"${position}\"\\n- It must be [top|right|bottom|left]-[start|middle|end]\\n- Found on element:`, popover);\n\n const update = () =>\n reposition(anchor, popover, {\n container: { ...CONTAINER, bottom: window.innerHeight, right: window.innerWidth },\n margin: 4, // Margin between the popper element and the reference\n padding: 16, // Minimum space between the popper and the container\n position // [top|right|bottom|left]-[start|middle|end]\n });\n\n const removeEvent = ({ newState }: Toggle) => {\n if (newState === 'open') return;\n off(document, 'DOMContentReady', update);\n off(popover, 'toggle', removeEvent);\n off(window, 'load,resize,scroll', update, true);\n }\n \n\n document.fonts.ready.then(update); // Inital render and when fonts load\n on(document, 'DOMContentReady', update);\n on(popover, 'toggle', removeEvent);\n on(window, 'load,resize,scroll', update, true); // Use capture to also listen for elements with overflow\n}\n\nfunction process ({ target: el, newState }: Toggle){\n const isPopping = newState === 'open' && el instanceof HTMLElement && el.classList.contains(CSS_POPOVER);\n const anchor = isPopping && (el.getRootNode() as ShadowRoot)?.querySelector<HTMLElement>(`[popovertarget=\"${el.id}\"]`);\n\n if (anchor) anchorPosition(anchor, el);\n}\n\nexport function observe(el: Node) {\n el.addEventListener('toggle', process, true); // Use capture since toggle does not bubble\n}\nexport function unobserve(el: Node) {\n el.removeEventListener('toggle', process, true); // Use capture since toggle does not bubble\n}","import * as field from './field/field';\nimport * as popover from './popover/popover';\nexport { default as styles } from './styles.module.css';\n\nexport function observe(el: Element) {\n field.observe(el);\n popover.observe(el);\n}\n\nexport function unobserve(el: Element) {\n field.unobserve(el);\n popover.unobserve(el);\n}"],"names":["IS_BROWSER","id","UUID","useId","el","createOptimizedMutationObserver","callback","queue","observer","mutations","process","events","action","element","rest","type","on","off","CSS_FIELD","field","CSS_VALIDATION","validation","OBSERVERS","fields","labels","descs","input","valid","label","observe","unobserve","_a","I","J","n","i","m","r","a","e","l","V","C","M","F","K","t","o","P","R","$","E","L","j","y","x","B","O","c","s","p","d","g","u","v","z","T","H","k","b","w","h","S","q","A","D","G","CSS_POPOVER","popover","CONTAINER","POSITIONS","anchorPosition","anchor","position","update","reposition","removeEvent","newState","field.observe","popover.observe","field.unobserve","popover.unobserve"],"mappings":"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","x_google_ignoreList":[2]}