@frontfriend/sdk 1.1.0 → 1.2.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.
package/dist/browser.mjs CHANGED
@@ -1 +1 @@
1
- var Q=Object.create;var y=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty;var te=(e,n)=>()=>(e&&(n=e(e=0)),n);var v=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),oe=(e,n)=>{for(var t in n)y(e,t,{get:n[t],enumerable:!0})},k=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Z(n))!ne.call(e,r)&&r!==t&&y(e,r,{get:()=>n[r],enumerable:!(o=Y(n,r))||o.enumerable});return e};var O=(e,n,t)=>(t=e!=null?Q(ee(e)):{},k(n||!e||!e.__esModule?y(t,"default",{value:e,enumerable:!0}):t,e)),se=e=>k(y({},"__esModule",{value:!0}),e);var z=v((Ae,j)=>{function p(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function _(e,n){if(!p(e)||!p(n))return n===void 0?e:n;let t={...e};for(let[o,r]of Object.entries(n))t[o]=o in t?_(t[o],r):r;return t}function R(e,n,t=[],o=[]){if(e===void 0||n===void 0)return o;if(!p(e)||!p(n))return o.push(t.join(".")),o;for(let r of Object.keys(e))r in n&&R(e[r],n[r],[...t,r],o);return o}function M(e){return p(e)&&("styles"in e||"behavior"in e)}function D(e,n="component"){if(!M(e)||!p(e.styles)||e.behavior!==void 0&&!p(e.behavior)||Object.keys(e).some(o=>!["styles","behavior"].includes(o)))throw new TypeError(`Component ${n} must use the styles/behavior envelope`);let t=R(e.styles,e.behavior,[n]);if(t.length>0)throw new Error(`Component config styles/behavior conflict at ${t.join(", ")}`);return _(e.styles||{},e.behavior||{})}function re(e){if(!p(e))return e;let n=!1,t={};for(let[o,r]of Object.entries(e))t[o]=D(r,o),t[o]!==r&&(n=!0);return n?t:e}j.exports={isPlainObject:p,deepMerge:_,findTreeConflicts:R,isComponentEnvelope:M,toRuntimeComponentConfig:D,toRuntimeComponentsConfig:re}});var T=v((Ge,F)=>{var ie={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function ae(e){return typeof e=="string"&&e.trim().length>0}F.exports={componentsConfigSchema:ie,isCSSClassString:ae}});var $={};oe($,{CONFIGURED_COMPONENTS:()=>xe,resolveComponentConfig:()=>Ne});function P(e){return typeof e=="object"&&e!==null||typeof e=="function"}function s(e,n){return P(e)?e[n]:void 0}function i(e,n){let t=P(e)?e:null,o=t?Object.create(t):{},r=(u,d)=>Object.defineProperty(o,u,{value:d,enumerable:!0,writable:!0,configurable:!0});if(t)for(let u of Object.keys(t))r(u,t[u]);for(let u of Object.keys(n))r(u,n[u]);return o}function le(e,n){let t={};for(let o of n){let r=s(e,o);r!==void 0&&(t[o]=r)}return t}function a(...e){return e.find(n=>n!=null)||""}function c(...e){return e.find(Boolean)||{}}function C(e,n,t){return e[n]||le(e,t)}function A(e){return i(e,{default:a(e.default,e.main),outline:a(e.outline,e.tertiary),linkDestructive:a(e.linkDestructive,e.linkdestructive)})}function ue(e){let n=s(e,"variants"),t=c(e.variant,s(n,"variant")),o=c(e.size,s(n,"size")),r=c(e.iconPosition,s(n,"iconPosition")),u=c(e.fullwidth,s(n,"fullwidth")),d=s(e.slots,"icon")||{},B=s(d,"variants"),l=c(d.size,s(B,"size")),X=c(d.color,s(B,"color")),S=H=>{let g=s(r,H);return i(g,{sm:a(s(g,"sm"),s(g,"small")),lg:a(s(g,"lg"),s(g,"large"))})};return i(e,{variant:A(t),size:i(o,{icon:a(o.icon,s(s(r,"default"),"default")),"icon-xs":a(o["icon-xs"],o.xs,o.small,o.sm),"icon-sm":a(o["icon-sm"],o.small,o.sm),"icon-lg":a(o["icon-lg"],o.large,o.lg)}),iconPosition:i(r,{prefix:S("prefix"),suffix:S("suffix"),default:S("default")}),fullwidth:u,slots:i(e.slots,{icon:i(d,{size:i(l,{icon:a(l.icon,l.default),"icon-xs":a(l["icon-xs"],l.xs,l.small,l.sm,l.default),"icon-sm":a(l["icon-sm"],l.sm,l.default),"icon-lg":a(l["icon-lg"],l.lg,l.default)}),color:A(X)})})})}function pe(e){let n=e.variant,t=s(n,"subtle");return i(e,{variant:i(n,{default:a(s(n,"default"),s(n,"main")),outline:a(s(n,"outline"),s(n,"tertiary")),ghost:a(s(n,"ghost"),s(n,"tertiary")),link:a(s(n,"link"),s(n,"tertiary")),subtle:i(t,{default:a(s(t,"default"),s(t,"main"))})})})}function de(e){let n=e.slots,t=s(n,"caption");return i(e,{slots:i(n,{caption:i(t,{overlay:s(t,"overlay")??s(t,"root")})})})}function ce(e,n={}){let t=s(e.slots,"calendar")??n.calendar,o=s(t,"slots"),r=s(o,"range");return i(e,{slots:i(e.slots,{calendar:i(t,{slots:i(o,{range:i(r,{root:s(r,"root")??s(o,"root"),container:s(r,"container")??s(o,"content"),row:s(r,"row")??s(o,"row")})})})})})}function me(e){return i(e,{slots:C(e,"slots",Ce),states:C(e,"states",fe),props:C(e,"props",ge)})}function Se(e){return i(e,{slots:C(e,"slots",ye)})}function Oe(e){return i(e,{slots:C(e,"slots",ve)})}function G(e){return i(e.props,{padding:s(e.props,"padding")||e.padding})}function _e(e){return i(e,{props:G(e)})}function be(e){return i(e,{slots:C(e,"slots",Re),props:G(e)})}function Pe(e){return i(e,{root:e.root,slots:i(e.slots,{track:s(e.slots,"track")})})}function Ne(e,n,...t){if(!Object.prototype.hasOwnProperty.call(b,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(n==null)return n;if(!P(n))throw new TypeError("Component config must be an object.");let o=n;return b[e](o,t[0])}var Ce,fe,ge,ye,ve,Re,b,xe,V=te(()=>{Ce=["header","title","description","content","action","footer"],fe=["noContent","outside"],ge=["footerAlign"];ye=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];ve=["addon","button","text","input","textarea"];Re=["horizontal","vertical","container"];b={button:ue,badge:pe,calendar:de,card:me,command:Se,"date-slider":ce,"input-group":Oe,popover:_e,separator:be,spinner:Pe};xe=Object.freeze(Object.keys(b))});var U=v(($e,L)=>{var N=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,he=Object.getOwnPropertyNames,we=Object.prototype.hasOwnProperty,Be=(e,n)=>{for(var t in n)N(e,t,{get:n[t],enumerable:!0})},ke=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of he(n))!we.call(e,r)&&r!==t&&N(e,r,{get:()=>n[r],enumerable:!(o=Ie(n,r))||o.enumerable});return e},Me=e=>ke(N({},"__esModule",{value:!0}),e),K={};Be(K,{componentConfig:()=>De});L.exports=Me(K);var E=(V(),se($));function De(e,n){let t=e[n];return n==="date-slider"?(0,E.resolveComponentConfig)(n,t,{get calendar(){return e.calendar}}):(0,E.resolveComponentConfig)(n,t)}});var f=O(z(),1),J=O(T(),1),W=O(U(),1),je=typeof window<"u"&&typeof window.document<"u";function x(e){return typeof e!="string"?!1:e.startsWith("__v_")||e==="then"}function w(e=""){let n=new Map;return new Proxy({},{get(t,o){if(o===Symbol.toPrimitive||o==="valueOf")return()=>e;if(o==="toString"||o===Symbol.toStringTag)return()=>e;if(o==="constructor")return Object;if(!x(o))return n.has(o)||n.set(o,w(e)),n.get(o)},has(t,o){return!x(o)},ownKeys(){return[]},getOwnPropertyDescriptor(t,o){if(!x(o))return{enumerable:!0,configurable:!0}}})}var q=new Map;function ze(e){try{let n=e==="__FF_CONFIG__"?process.env.NEXT_PUBLIC_FF_CONFIG:process.env.NEXT_PUBLIC_FF_ICONS;if(!n)return null;let t=q.get(e);if(t?.serialized===n)return t.value;let o=JSON.parse(n);return(0,f.isPlainObject)(o)?(q.set(e,{serialized:n,value:o}),o):null}catch{return null}}function m(e){return e==="__FF_CONFIG__"&&typeof __FF_CONFIG__<"u"?__FF_CONFIG__:e==="__FF_ICONS__"&&typeof __FF_ICONS__<"u"?__FF_ICONS__:typeof globalThis<"u"&&globalThis[e]?globalThis[e]:je&&window[e]?window[e]:ze(e)}function Fe(e,n){return typeof n=="string"?(0,W.componentConfig)(Fe(e),n):!e||typeof e!="object"?w():(0,f.toRuntimeComponentsConfig)(e)}var I=new Map,h=new WeakMap,Ve=new Proxy({},{get(e,n){if(n===Symbol.toPrimitive||n==="valueOf")return()=>"";if(n==="toString"||n===Symbol.toStringTag)return()=>"[object Object]";if(n==="constructor")return Object;let t=m("__FF_CONFIG__");if(t&&n in t){let o=t[n];return h.has(o)||h.set(o,(0,f.toRuntimeComponentConfig)(o,String(n))),h.get(o)}return I.has(n)||I.set(n,w()),I.get(n)},has(){return!0},ownKeys(){return[]},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}),Ee=new Proxy({},{get(e,n){if(n===Symbol.toPrimitive||n==="valueOf")return()=>"";if(n==="toString"||n===Symbol.toStringTag)return()=>"[object Object]";if(n==="constructor")return Object;let t=m("__FF_ICONS__");return t&&n in t?t[n]:null},has(e,n){let t=m("__FF_ICONS__");return t?n in t:!1},ownKeys(){let e=m("__FF_ICONS__");return e?Object.keys(e):[]},getOwnPropertyDescriptor(e,n){let t=m("__FF_ICONS__");if(t&&n in t)return{enumerable:!0,configurable:!0,value:t[n]}}});var export_componentsConfigSchema=J.componentsConfigSchema;var export_isCSSClassString=J.isCSSClassString;export{export_componentsConfigSchema as componentsConfigSchema,Ve as config,Fe as ffdc,Ee as iconSet,export_isCSSClassString as isCSSClassString};
1
+ var re=Object.create;var v=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>()=>(e&&(t=e(e=0)),t);var O=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),de=(e,t)=>{for(var n in t)v(e,n,{get:t[n],enumerable:!0})},T=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ae(t))!ue.call(e,s)&&s!==n&&v(e,s,{get:()=>t[s],enumerable:!(o=ie(t,s))||o.enumerable});return e};var P=(e,t,n)=>(n=e!=null?re(le(e)):{},T(t||!e||!e.__esModule?v(n,"default",{value:e,enumerable:!0}):n,e)),ce=e=>T(v({},"__esModule",{value:!0}),e);var E=O((tt,A)=>{function c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function N(e,t){if(!c(e)||!c(t))return t===void 0?e:t;let n={...e};for(let[o,s]of Object.entries(t))n[o]=o in n?N(n[o],s):s;return n}function x(e,t,n=[],o=[]){if(e===void 0||t===void 0)return o;if(!c(e)||!c(t))return o.push(n.join(".")),o;for(let s of Object.keys(e))s in t&&x(e[s],t[s],[...n,s],o);return o}function z(e){return c(e)&&("styles"in e||"behavior"in e)}function F(e,t="component"){if(!z(e)||!c(e.styles)||e.behavior!==void 0&&!c(e.behavior)||Object.keys(e).some(o=>!["styles","behavior"].includes(o)))throw new TypeError(`Component ${t} must use the styles/behavior envelope`);let n=x(e.styles,e.behavior,[t]);if(n.length>0)throw new Error(`Component config styles/behavior conflict at ${n.join(", ")}`);return N(e.styles||{},e.behavior||{})}function fe(e){if(!c(e))return e;let t=!1,n={};for(let[o,s]of Object.entries(e))n[o]=F(s,o),n[o]!==s&&(t=!0);return t?n:e}A.exports={isPlainObject:c,deepMerge:N,findTreeConflicts:x,isComponentEnvelope:z,toRuntimeComponentConfig:F,toRuntimeComponentsConfig:fe}});var K=O((nt,V)=>{var Ce=new Set(["after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]),ge=new Set(["active","focus","focus-visible","focus-within","hover"]),me=new Set(["sm","md","lg","xl","2xl","any-pointer-coarse","any-pointer-fine","any-pointer-none","contrast-less","contrast-more","forced-colors","inverted-colors","landscape","motion-reduce","motion-safe","noscript","pointer-coarse","pointer-fine","pointer-none","portrait","print","starting"]),ye=/^(?:min-|max-|@|supports-|in-(?!range$))/,Se=/^\[&(?::(?:active|focus|focus-visible|focus-within|hover))+\]$/;function ve(e){let t=[],n=0,o=0;for(let s=0;s<e.length;s+=1){let a=e[s];a==="["||a==="("?n+=1:(a==="]"||a===")")&&n>0?n-=1:a===":"&&n===0&&(t.push(e.slice(o,s)),o=s+1)}return t.push(e.slice(o)),{variants:t.slice(0,-1),utility:t[t.length-1]}}function $(e){return e.replace(/\/[\w-]+$/,"")}function _(e){let t=$(e);return Ce.has(t)||t.startsWith("[")&&t.includes("::")}function R(e){let t=$(e);return ge.has(t)||me.has(t)?!0:t.startsWith("[")?t.startsWith("[@")||Se.test(t):t.startsWith("not-")?R(t.slice(4)):ye.test(t)}function G(e){if(typeof e!="string"||!e.includes(":"))return null;let t=e.startsWith("!")?"!":"",{variants:n,utility:o}=ve(e.slice(t.length)),s=null,a=[];for(let p of n)s!==null&&!R(p)&&a.push(p),s===null&&_(p)&&(s=p);if(a.length===0)return null;let d=n.reduce((p,oe,se)=>_(oe)?se:p,-1),S=n.slice(0,d).filter(p=>!_(p)),u=n.slice(d+1),b=`${t}${[...S,...u.filter(p=>!R(p)),n[d],...u.filter(R),o].join(":")}`,f=n.filter(_),h=f.length>1?`${f.join(" and ")} are pseudo-elements, and a selector can hold only one`:`${a.join(", ")} cannot follow the pseudo-element ${s}; only hover, focus, focus-visible, focus-within, active, in-* and media, container or supports variants can`;return{className:e,pseudoElement:s,chained:a,suggestion:b,reason:h}}function Oe(e){return G(e)===null}V.exports={isCompilableClass:Oe,uncompilableClass:G}});var U=O((ot,L)=>{var{isCompilableClass:_e,uncompilableClass:Re}=K(),be={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function he(e){return typeof e=="string"&&e.trim().length>0}L.exports={componentsConfigSchema:be,isCSSClassString:he,isCompilableClass:_e,uncompilableClass:Re}});var X={};de(X,{CONFIGURED_COMPONENTS:()=>Ke,resolveComponentConfig:()=>Ve});function w(e){return typeof e=="object"&&e!==null||typeof e=="function"}function r(e,t){return w(e)?e[t]:void 0}function i(e,t){let n=w(e)?e:null,o=n?Object.create(n):{},s=(a,d)=>Object.defineProperty(o,a,{value:d,enumerable:!0,writable:!0,configurable:!0});if(n)for(let a of Object.keys(n))s(a,n[a]);for(let a of Object.keys(t))s(a,t[a]);return o}function Pe(e,t){let n={};for(let o of t){let s=r(e,o);s!==void 0&&(n[o]=s)}return n}function l(...e){return e.find(t=>t!=null)||""}function C(...e){return e.find(Boolean)||{}}function g(e,t,n){return e[t]||Pe(e,n)}function W(e){return i(e,{default:l(e.default,e.main),outline:l(e.outline,e.tertiary),linkDestructive:l(e.linkDestructive,e.linkdestructive)})}function Ne(e){let t=r(e,"variants"),n=C(e.variant,r(t,"variant")),o=C(e.size,r(t,"size")),s=C(e.iconPosition,r(t,"iconPosition")),a=C(e.fullwidth,r(t,"fullwidth")),d=r(e.slots,"icon")||{},S=r(d,"variants"),u=C(d.size,r(S,"size")),b=C(d.color,r(S,"color")),f=h=>{let p=r(s,h);return i(p,{sm:l(r(p,"sm"),r(p,"small")),lg:l(r(p,"lg"),r(p,"large"))})};return i(e,{variant:W(n),size:i(o,{icon:l(o.icon,r(r(s,"default"),"default")),"icon-xs":l(o["icon-xs"],o.xs,o.small,o.sm),"icon-sm":l(o["icon-sm"],o.small,o.sm),"icon-lg":l(o["icon-lg"],o.large,o.lg)}),iconPosition:i(s,{prefix:f("prefix"),suffix:f("suffix"),default:f("default")}),fullwidth:a,slots:i(e.slots,{icon:i(d,{size:i(u,{icon:l(u.icon,u.default),"icon-xs":l(u["icon-xs"],u.xs,u.small,u.sm,u.default),"icon-sm":l(u["icon-sm"],u.sm,u.default),"icon-lg":l(u["icon-lg"],u.lg,u.default)}),color:W(b)})})})}function xe(e){let t=e.variant,n=r(t,"subtle");return i(e,{variant:i(t,{default:l(r(t,"default"),r(t,"main")),outline:l(r(t,"outline"),r(t,"tertiary")),ghost:l(r(t,"ghost"),r(t,"tertiary")),link:l(r(t,"link"),r(t,"tertiary")),subtle:i(n,{default:l(r(n,"default"),r(n,"main"))})})})}function Ie(e){let t=e.slots,n=r(t,"caption");return i(e,{slots:i(t,{caption:i(n,{overlay:r(n,"overlay")??r(n,"root")})})})}function we(e,t={}){let n=r(e.slots,"calendar")??t.calendar,o=r(n,"slots"),s=r(o,"range");return i(e,{slots:i(e.slots,{calendar:i(n,{slots:i(o,{range:i(s,{root:r(s,"root")??r(o,"root"),container:r(s,"container")??r(o,"content"),row:r(s,"row")??r(o,"row")})})})})})}function De(e){return i(e,{slots:g(e,"slots",Be),states:g(e,"states",ke),props:g(e,"props",Me)})}function Te(e){return i(e,{slots:g(e,"slots",je)})}function Fe(e){return i(e,{slots:g(e,"slots",ze)})}function q(e){return i(e.props,{padding:r(e.props,"padding")||e.padding})}function Ae(e){return i(e,{props:q(e)})}function $e(e){return i(e,{slots:g(e,"slots",Ee),props:q(e)})}function Ge(e){return i(e,{root:e.root,slots:i(e.slots,{track:r(e.slots,"track")})})}function Ve(e,t,...n){if(!Object.prototype.hasOwnProperty.call(I,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(t==null)return t;if(!w(t))throw new TypeError("Component config must be an object.");let o=t;return I[e](o,n[0])}var Be,ke,Me,je,ze,Ee,I,Ke,J=pe(()=>{Be=["header","title","description","content","action","footer"],ke=["noContent","outside"],Me=["footerAlign"];je=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];ze=["addon","button","text","input","textarea"];Ee=["horizontal","vertical","container"];I={button:Ne,badge:xe,calendar:Ie,card:De,command:Te,"date-slider":we,"input-group":Fe,popover:Ae,separator:$e,spinner:Ge};Ke=Object.freeze(Object.keys(I))});var Z=O((st,Q)=>{var B=Object.defineProperty,Le=Object.getOwnPropertyDescriptor,Ue=Object.getOwnPropertyNames,We=Object.prototype.hasOwnProperty,qe=(e,t)=>{for(var n in t)B(e,n,{get:t[n],enumerable:!0})},Xe=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ue(t))!We.call(e,s)&&s!==n&&B(e,s,{get:()=>t[s],enumerable:!(o=Le(t,s))||o.enumerable});return e},Je=e=>Xe(B({},"__esModule",{value:!0}),e),H={};qe(H,{componentConfig:()=>Ye});Q.exports=Je(H);var Y=(J(),ce(X));function Ye(e,t){let n=e[t];return t==="date-slider"?(0,Y.resolveComponentConfig)(t,n,{get calendar(){return e.calendar}}):(0,Y.resolveComponentConfig)(t,n)}});var m=P(E(),1),te=P(U(),1),ne=P(Z(),1),He=typeof window<"u"&&typeof window.document<"u";function k(e){return typeof e!="string"?!1:e.startsWith("__v_")||e==="then"}function j(e=""){let t=new Map;return new Proxy({},{get(n,o){if(o===Symbol.toPrimitive||o==="valueOf")return()=>e;if(o==="toString"||o===Symbol.toStringTag)return()=>e;if(o==="constructor")return Object;if(!k(o))return t.has(o)||t.set(o,j(e)),t.get(o)},has(n,o){return!k(o)},ownKeys(){return[]},getOwnPropertyDescriptor(n,o){if(!k(o))return{enumerable:!0,configurable:!0}}})}var ee=new Map;function Qe(e){try{let t=e==="__FF_CONFIG__"?process.env.NEXT_PUBLIC_FF_CONFIG:process.env.NEXT_PUBLIC_FF_ICONS;if(!t)return null;let n=ee.get(e);if(n?.serialized===t)return n.value;let o=JSON.parse(t);return(0,m.isPlainObject)(o)?(ee.set(e,{serialized:t,value:o}),o):null}catch{return null}}function y(e){return e==="__FF_CONFIG__"&&typeof __FF_CONFIG__<"u"?__FF_CONFIG__:e==="__FF_ICONS__"&&typeof __FF_ICONS__<"u"?__FF_ICONS__:typeof globalThis<"u"&&globalThis[e]?globalThis[e]:He&&window[e]?window[e]:Qe(e)}function Ze(e,t){return typeof t=="string"?(0,ne.componentConfig)(Ze(e),t):!e||typeof e!="object"?j():(0,m.toRuntimeComponentsConfig)(e)}var M=new Map,D=new WeakMap,rt=new Proxy({},{get(e,t){if(t===Symbol.toPrimitive||t==="valueOf")return()=>"";if(t==="toString"||t===Symbol.toStringTag)return()=>"[object Object]";if(t==="constructor")return Object;let n=y("__FF_CONFIG__");if(n&&t in n){let o=n[t];return D.has(o)||D.set(o,(0,m.toRuntimeComponentConfig)(o,String(t))),D.get(o)}return M.has(t)||M.set(t,j()),M.get(t)},has(){return!0},ownKeys(){return[]},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}),it=new Proxy({},{get(e,t){if(t===Symbol.toPrimitive||t==="valueOf")return()=>"";if(t==="toString"||t===Symbol.toStringTag)return()=>"[object Object]";if(t==="constructor")return Object;let n=y("__FF_ICONS__");return n&&t in n?n[t]:null},has(e,t){let n=y("__FF_ICONS__");return n?t in n:!1},ownKeys(){let e=y("__FF_ICONS__");return e?Object.keys(e):[]},getOwnPropertyDescriptor(e,t){let n=y("__FF_ICONS__");if(n&&t in n)return{enumerable:!0,configurable:!0,value:n[t]}}});var export_componentsConfigSchema=te.componentsConfigSchema;var export_isCSSClassString=te.isCSSClassString;export{export_componentsConfigSchema as componentsConfigSchema,rt as config,Ze as ffdc,it as iconSet,export_isCSSClassString as isCSSClassString};
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- var kJ=Object.create;var op=Object.defineProperty;var TJ=Object.getOwnPropertyDescriptor;var jJ=Object.getOwnPropertyNames;var AJ=Object.getPrototypeOf,NJ=Object.prototype.hasOwnProperty;var Ve=(e,t)=>()=>(e&&(t=e(e=0)),t);var Z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yo=(e,t)=>{for(var r in t)op(e,r,{get:t[r],enumerable:!0})},SE=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of jJ(t))!NJ.call(e,n)&&n!==r&&op(e,n,{get:()=>t[n],enumerable:!(i=TJ(t,n))||i.enumerable});return e};var Ji=(e,t,r)=>(r=e!=null?kJ(AJ(e)):{},SE(t||!e||!e.__esModule?op(r,"default",{value:e,enumerable:!0}):r,e)),Gr=e=>SE(op({},"__esModule",{value:!0}),e);var ka=Z((COe,xJ)=>{xJ.exports={name:"@frontfriend/sdk",version:"1.1.0"}});var vo=Z((kOe,wE)=>{var{name:MJ}=ka();wE.exports={PACKAGE_NAME:MJ}});var Ta=Z((TOe,$E)=>{var qJ="https://app.frontfriend.dev",LJ=".cache/frontfriend",DJ={JS:["tokens.js","variables.js","semanticVariables.js","semanticDarkVariables.js","keyframes.js","animations.js","safelist.js","custom.js"],JSON:["fonts.json","icons.json","components-config.json","iconLibrary.json","version.json","versionMetadata.json","metadata.json","base.json","nativeTokens.json"]},UJ={FF_ID:"FF_ID",FF_API_URL:"FF_API_URL",FF_AUTH_TOKEN:"FF_AUTH_TOKEN",FF_MACHINE_TOKEN:"FRONTFRIEND_MACHINE_TOKEN"};function zJ(e){if(!e)return null;try{let t=new URL(e);return t.hostname.startsWith("app.")?`${t.protocol}//${t.hostname.replace(/^app\./,"registry.")}`:null}catch{return null}}$E.exports={DEFAULT_API_URL:qJ,CACHE_DIR_NAME:LJ,CACHE_TTL_DAYS:7,CACHE_TTL_MS:6048e5,CACHE_FILES:DJ,ENV_VARS:UJ,deriveRegistryFromApiUrl:zJ}});var _o=Z((jOe,CE)=>{var{fileExists:FJ,readJsonFileSafe:VJ,removeFile:JJ,writePrivateJsonFileAtomic:BJ,withPrivateFileLock:HJ}=require("./lib/core/file-utils"),RE=require("path"),ZJ=require("os"),KJ=require("https"),GJ=require("http"),{URL:ac}=require("url"),{DEFAULT_API_URL:nl}=Ta(),WJ=RE.join(ZJ.homedir(),".frontfriend"),il=RE.join(WJ,"credentials");function YJ(){return il}function sp(){try{return VJ(il)}catch{return null}}function EE(e){try{let t=JSON.parse(Buffer.from(String(e).split(".")[1],"base64url").toString("utf8"));return typeof t.email=="string"?t.email:null}catch{return null}}function XJ(){let e=sp();if(!e||!e.accessToken)return null;let t=Number(e.refreshExpiresAt)||0;return{email:EE(e.accessToken),apiUrl:e.ffApiUrl||null,expired:t>0&&t<Date.now()}}function PE(e){BJ(il,e)}function QJ(){return FJ(il)?(JJ(il),!0):!1}function Vv(e,t=60*1e3){return!e?.accessToken||!e.expiresAt||Date.now()+t>=e.expiresAt}function sc(e){let t=new Error(`${e}. Run \`frontfriend login\` to re-authenticate.`);return t.code="FF_AUTH_REFRESH_FAILED",t}function OE(e,t,r){return new Promise((i,n)=>{let o=new ac(e);if(o.protocol!=="https:"&&!(o.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(o.hostname))){n(new Error("Frontfriend API URLs require HTTPS except on localhost"));return}let s=o.protocol==="https:"?KJ:GJ,a=JSON.stringify(t||{}),c=s.request({hostname:o.hostname,port:o.port,path:`${o.pathname}${o.search}`,method:"POST",headers:{"content-type":"application/json","content-length":Buffer.byteLength(a),...r?{authorization:`Bearer ${r}`}:{}}},l=>{let u="";l.on("data",f=>{u+=f}),l.on("end",()=>{if(l.statusCode>=300&&l.statusCode<400){let p=l.headers.location?` to ${l.headers.location}`:"",m=new Error(`HTTP ${l.statusCode}: redirected${p}`);m.statusCode=l.statusCode,m.body=u,n(m);return}let f=null;try{f=u?JSON.parse(u):null}catch{let m=l.headers["content-type"]||"unknown content-type",h=new Error(`Expected JSON from FrontFriend API at ${e}, but received ${m} (HTTP ${l.statusCode}). Check FF_API_URL or pass --api-url with the FrontFriend app URL.`);if(h.statusCode=l.statusCode,h.body=u,l.statusCode>=400){n(h);return}n(h);return}if(l.statusCode>=400){let p=new Error(f?.error_description||f?.error||`HTTP ${l.statusCode}`);p.statusCode=l.statusCode,p.body=f,n(p);return}i(f)})});c.setTimeout(15e3,()=>c.destroy(Object.assign(new Error("Frontfriend API request timed out"),{code:"ETIMEDOUT"}))),c.on("error",n),c.write(a),c.end()})}async function e9(e){return HJ(il,e,()=>sc("Another process is refreshing the session"))}async function IE(e,t=nl){return e9(async()=>{let r=sp();if(r&&new ac(r.ffApiUrl||nl).origin===new ac(t).origin){if(!Vv(r))return r;e=r}return t9(e,t)})}async function t9(e,t=nl){if(new ac(t).origin!==new ac(e.ffApiUrl||nl).origin)throw sc("The stored session belongs to a different API origin");if(!e?.refreshToken||!e?.deviceId)throw sc("FrontFriend session expired");let r;try{r=await OE(`${t}/api/plugin/token`,{grant_type:"refresh_token",refresh_token:e.refreshToken,device_id:e.deviceId})}catch(n){throw Object.assign(sc(n?.message||"Could not refresh FrontFriend session"),{cause:n})}if(!r?.access_token||!r?.refresh_token)throw sc("Could not refresh FrontFriend session");let i={accessToken:r.access_token,refreshToken:r.refresh_token,deviceId:r.device_id||e.deviceId,expiresAt:Date.now()+(r.expires_in||900)*1e3,refreshExpiresAt:Date.now()+(r.refresh_expires_in||604800)*1e3,ffApiUrl:t};return PE(i),i}async function r9(e={}){if(e.envToken)return e.envToken;if(!e.skipCredentials){let t=sp();if(t?.accessToken||t?.refreshToken){let r=e.baseURL||t.ffApiUrl||nl;if(new ac(r).origin!==new ac(t.ffApiUrl||nl).origin)throw sc("The stored session belongs to a different API origin");return t.accessToken&&!Vv(t)?t.accessToken:(await IE(t,r)).accessToken}}return e.configuredToken?(e.silent||console.warn("\u26A0\uFE0F auth-token in frontfriend.config.js is deprecated. Run `frontfriend login` to store credentials outside the repo."),e.configuredToken):null}CE.exports={accountEmail:EE,signedInAccount:XJ,getCredentialsPath:YJ,readCredentials:sp,writeCredentials:PE,deleteCredentials:QJ,isExpired:Vv,postJson:OE,refreshCredentials:IE,resolveAuthToken:r9,createAuthRefreshError:sc}});var ol=Z((AOe,jE)=>{var da=require("fs"),zo=require("path"),{createHash:kE}=require("crypto"),n9=".frontfriend/design",i9=".frontfriend/.gitignore";function o9(){return["# Managed by `frontfriend design sync`.","# audit/ holds regenerable capture artifacts (screenshots, probes) \u2014 never commit.","# design/ is the committed read-only contract mirror \u2014 keep it tracked.","audit/","# design-working/ is an explicit, disposable working preview.","design-working/",""].join(`
2
+ var kJ=Object.create;var op=Object.defineProperty;var TJ=Object.getOwnPropertyDescriptor;var jJ=Object.getOwnPropertyNames;var AJ=Object.getPrototypeOf,NJ=Object.prototype.hasOwnProperty;var Ve=(e,t)=>()=>(e&&(t=e(e=0)),t);var Z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yo=(e,t)=>{for(var r in t)op(e,r,{get:t[r],enumerable:!0})},SE=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of jJ(t))!NJ.call(e,n)&&n!==r&&op(e,n,{get:()=>t[n],enumerable:!(i=TJ(t,n))||i.enumerable});return e};var Ji=(e,t,r)=>(r=e!=null?kJ(AJ(e)):{},SE(t||!e||!e.__esModule?op(r,"default",{value:e,enumerable:!0}):r,e)),Gr=e=>SE(op({},"__esModule",{value:!0}),e);var ka=Z((COe,xJ)=>{xJ.exports={name:"@frontfriend/sdk",version:"1.2.0"}});var vo=Z((kOe,wE)=>{var{name:MJ}=ka();wE.exports={PACKAGE_NAME:MJ}});var Ta=Z((TOe,$E)=>{var qJ="https://app.frontfriend.dev",LJ=".cache/frontfriend",DJ={JS:["tokens.js","variables.js","semanticVariables.js","semanticDarkVariables.js","keyframes.js","animations.js","safelist.js","custom.js"],JSON:["fonts.json","icons.json","components-config.json","iconLibrary.json","version.json","versionMetadata.json","metadata.json","base.json","nativeTokens.json"]},UJ={FF_ID:"FF_ID",FF_API_URL:"FF_API_URL",FF_AUTH_TOKEN:"FF_AUTH_TOKEN",FF_MACHINE_TOKEN:"FRONTFRIEND_MACHINE_TOKEN"};function zJ(e){if(!e)return null;try{let t=new URL(e);return t.hostname.startsWith("app.")?`${t.protocol}//${t.hostname.replace(/^app\./,"registry.")}`:null}catch{return null}}$E.exports={DEFAULT_API_URL:qJ,CACHE_DIR_NAME:LJ,CACHE_TTL_DAYS:7,CACHE_TTL_MS:6048e5,CACHE_FILES:DJ,ENV_VARS:UJ,deriveRegistryFromApiUrl:zJ}});var _o=Z((jOe,CE)=>{var{fileExists:FJ,readJsonFileSafe:VJ,removeFile:JJ,writePrivateJsonFileAtomic:BJ,withPrivateFileLock:HJ}=require("./lib/core/file-utils"),RE=require("path"),ZJ=require("os"),KJ=require("https"),GJ=require("http"),{URL:ac}=require("url"),{DEFAULT_API_URL:nl}=Ta(),WJ=RE.join(ZJ.homedir(),".frontfriend"),il=RE.join(WJ,"credentials");function YJ(){return il}function sp(){try{return VJ(il)}catch{return null}}function EE(e){try{let t=JSON.parse(Buffer.from(String(e).split(".")[1],"base64url").toString("utf8"));return typeof t.email=="string"?t.email:null}catch{return null}}function XJ(){let e=sp();if(!e||!e.accessToken)return null;let t=Number(e.refreshExpiresAt)||0;return{email:EE(e.accessToken),apiUrl:e.ffApiUrl||null,expired:t>0&&t<Date.now()}}function PE(e){BJ(il,e)}function QJ(){return FJ(il)?(JJ(il),!0):!1}function Vv(e,t=60*1e3){return!e?.accessToken||!e.expiresAt||Date.now()+t>=e.expiresAt}function sc(e){let t=new Error(`${e}. Run \`frontfriend login\` to re-authenticate.`);return t.code="FF_AUTH_REFRESH_FAILED",t}function OE(e,t,r){return new Promise((i,n)=>{let o=new ac(e);if(o.protocol!=="https:"&&!(o.protocol==="http:"&&["localhost","127.0.0.1","[::1]"].includes(o.hostname))){n(new Error("Frontfriend API URLs require HTTPS except on localhost"));return}let s=o.protocol==="https:"?KJ:GJ,a=JSON.stringify(t||{}),c=s.request({hostname:o.hostname,port:o.port,path:`${o.pathname}${o.search}`,method:"POST",headers:{"content-type":"application/json","content-length":Buffer.byteLength(a),...r?{authorization:`Bearer ${r}`}:{}}},l=>{let u="";l.on("data",f=>{u+=f}),l.on("end",()=>{if(l.statusCode>=300&&l.statusCode<400){let p=l.headers.location?` to ${l.headers.location}`:"",m=new Error(`HTTP ${l.statusCode}: redirected${p}`);m.statusCode=l.statusCode,m.body=u,n(m);return}let f=null;try{f=u?JSON.parse(u):null}catch{let m=l.headers["content-type"]||"unknown content-type",h=new Error(`Expected JSON from FrontFriend API at ${e}, but received ${m} (HTTP ${l.statusCode}). Check FF_API_URL or pass --api-url with the FrontFriend app URL.`);if(h.statusCode=l.statusCode,h.body=u,l.statusCode>=400){n(h);return}n(h);return}if(l.statusCode>=400){let p=new Error(f?.error_description||f?.error||`HTTP ${l.statusCode}`);p.statusCode=l.statusCode,p.body=f,n(p);return}i(f)})});c.setTimeout(15e3,()=>c.destroy(Object.assign(new Error("Frontfriend API request timed out"),{code:"ETIMEDOUT"}))),c.on("error",n),c.write(a),c.end()})}async function e9(e){return HJ(il,e,()=>sc("Another process is refreshing the session"))}async function IE(e,t=nl){return e9(async()=>{let r=sp();if(r&&new ac(r.ffApiUrl||nl).origin===new ac(t).origin){if(!Vv(r))return r;e=r}return t9(e,t)})}async function t9(e,t=nl){if(new ac(t).origin!==new ac(e.ffApiUrl||nl).origin)throw sc("The stored session belongs to a different API origin");if(!e?.refreshToken||!e?.deviceId)throw sc("FrontFriend session expired");let r;try{r=await OE(`${t}/api/plugin/token`,{grant_type:"refresh_token",refresh_token:e.refreshToken,device_id:e.deviceId})}catch(n){throw Object.assign(sc(n?.message||"Could not refresh FrontFriend session"),{cause:n})}if(!r?.access_token||!r?.refresh_token)throw sc("Could not refresh FrontFriend session");let i={accessToken:r.access_token,refreshToken:r.refresh_token,deviceId:r.device_id||e.deviceId,expiresAt:Date.now()+(r.expires_in||900)*1e3,refreshExpiresAt:Date.now()+(r.refresh_expires_in||604800)*1e3,ffApiUrl:t};return PE(i),i}async function r9(e={}){if(e.envToken)return e.envToken;if(!e.skipCredentials){let t=sp();if(t?.accessToken||t?.refreshToken){let r=e.baseURL||t.ffApiUrl||nl;if(new ac(r).origin!==new ac(t.ffApiUrl||nl).origin)throw sc("The stored session belongs to a different API origin");return t.accessToken&&!Vv(t)?t.accessToken:(await IE(t,r)).accessToken}}return e.configuredToken?(e.silent||console.warn("\u26A0\uFE0F auth-token in frontfriend.config.js is deprecated. Run `frontfriend login` to store credentials outside the repo."),e.configuredToken):null}CE.exports={accountEmail:EE,signedInAccount:XJ,getCredentialsPath:YJ,readCredentials:sp,writeCredentials:PE,deleteCredentials:QJ,isExpired:Vv,postJson:OE,refreshCredentials:IE,resolveAuthToken:r9,createAuthRefreshError:sc}});var ol=Z((AOe,jE)=>{var da=require("fs"),zo=require("path"),{createHash:kE}=require("crypto"),n9=".frontfriend/design",i9=".frontfriend/.gitignore";function o9(){return["# Managed by `frontfriend design sync`.","# audit/ holds regenerable capture artifacts (screenshots, probes) \u2014 never commit.","# design/ is the committed read-only contract mirror \u2014 keep it tracked.","audit/","# design-working/ is an explicit, disposable working preview.","design-working/",""].join(`
3
3
  `)}function qu(e){return typeof e!="string"||e.length===0||e.startsWith("/")||e.includes("\\")?!1:e.split("/").every(t=>t!==""&&t!=="."&&t!=="..")}function Bv(e){let t=e.body.endsWith(`
4
4
  `)?e.body.slice(0,-1):e.body;return["<!-- frontfriend design mirror \u2014 DO NOT EDIT (overwritten by `frontfriend design sync`)",`slug: ${e.slug}`,`maturity: ${e.maturity}`,`implemented: ${e.implemented}`,`implementation: ${e.implementation||"unknown"}`,`version: ${e.version}`,"-->","",t,""].join(`
5
5
  `)}function Hv(e){return[`# Frontfriend design mirror \u2014 ${e.name}`,"","This directory is a READ-ONLY mirror of the Design System design contracts",`(Design System "${e.name}", ff-id \`${e.ff_id}\`) managed on the Frontfriend platform.`,"","Every file here is overwritten by `frontfriend design sync`. Do not edit by","hand: local changes are discarded on the next sync, and files whose contract","was removed upstream are deleted. Edit contracts on the platform instead.",""].join(`
@@ -1,2 +1,10 @@
1
1
  export const componentsConfigSchema: Record<string, any>;
2
- export function isCSSClassString(value: string): boolean;
2
+ export function isCSSClassString(value: string): boolean;
3
+ export function isCompilableClass(className: string): boolean;
4
+ export function uncompilableClass(className: string): {
5
+ className: string;
6
+ pseudoElement: string;
7
+ chained: string[];
8
+ suggestion: string;
9
+ reason: string;
10
+ } | null;
@@ -1 +1 @@
1
- var t={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function o(e){return typeof e=="string"&&e.trim().length>0}module.exports={componentsConfigSchema:t,isCSSClassString:o};
1
+ var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var m=T((W,h)=>{var E=new Set(["after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]),C=new Set(["active","focus","focus-visible","focus-within","hover"]),S=new Set(["sm","md","lg","xl","2xl","any-pointer-coarse","any-pointer-fine","any-pointer-none","contrast-less","contrast-more","forced-colors","inverted-colors","landscape","motion-reduce","motion-safe","noscript","pointer-coarse","pointer-fine","pointer-none","portrait","print","starting"]),A=/^(?:min-|max-|@|supports-|in-(?!range$))/,j=/^\[&(?::(?:active|focus|focus-visible|focus-within|hover))+\]$/;function P(t){let e=[],n=0,s=0;for(let o=0;o<t.length;o+=1){let i=t[o];i==="["||i==="("?n+=1:(i==="]"||i===")")&&n>0?n-=1:i===":"&&n===0&&(e.push(t.slice(s,o)),s=o+1)}return e.push(t.slice(s)),{variants:e.slice(0,-1),utility:e[e.length-1]}}function u(t){return t.replace(/\/[\w-]+$/,"")}function l(t){let e=u(t);return E.has(e)||e.startsWith("[")&&e.includes("::")}function a(t){let e=u(t);return C.has(e)||S.has(e)?!0:e.startsWith("[")?e.startsWith("[@")||j.test(e):e.startsWith("not-")?a(e.slice(4)):A.test(e)}function d(t){if(typeof t!="string"||!t.includes(":"))return null;let e=t.startsWith("!")?"!":"",{variants:n,utility:s}=P(t.slice(e.length)),o=null,i=[];for(let r of n)o!==null&&!a(r)&&i.push(r),o===null&&l(r)&&(o=r);if(i.length===0)return null;let c=n.reduce((r,g,v)=>l(g)?v:r,-1),y=n.slice(0,c).filter(r=>!l(r)),f=n.slice(c+1),$=`${e}${[...y,...f.filter(r=>!a(r)),n[c],...f.filter(a),s].join(":")}`,p=n.filter(l),b=p.length>1?`${p.join(" and ")} are pseudo-elements, and a selector can hold only one`:`${i.join(", ")} cannot follow the pseudo-element ${o}; only hover, focus, focus-visible, focus-within, active, in-* and media, container or supports variants can`;return{className:t,pseudoElement:o,chained:i,suggestion:$,reason:b}}function R(t){return d(t)===null}h.exports={isCompilableClass:R,uncompilableClass:d}});var{isCompilableClass:_,uncompilableClass:w}=m(),I={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function O(t){return typeof t=="string"&&t.trim().length>0}module.exports={componentsConfigSchema:I,isCSSClassString:O,isCompilableClass:_,uncompilableClass:w};
package/dist/ffdc.js CHANGED
@@ -1 +1 @@
1
- var S=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var P=(e,o)=>()=>(e&&(o=e(e=0)),o);var b=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),_=(e,o)=>{for(var n in o)S(e,n,{get:o[n],enumerable:!0})},L=(e,o,n,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of E(o))!K.call(e,r)&&r!==n&&S(e,r,{get:()=>o[r],enumerable:!(t=G(o,r))||t.enumerable});return e};var q=e=>L(S({},"__esModule",{value:!0}),e);var B=b((Se,I)=>{var U={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function F(e){return typeof e=="string"&&e.trim().length>0}I.exports={componentsConfigSchema:U,isCSSClassString:F}});var D=b((ye,M)=>{function u(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function y(e,o){if(!u(e)||!u(o))return o===void 0?e:o;let n={...e};for(let[t,r]of Object.entries(o))n[t]=t in n?y(n[t],r):r;return n}function v(e,o,n=[],t=[]){if(e===void 0||o===void 0)return t;if(!u(e)||!u(o))return t.push(n.join(".")),t;for(let r of Object.keys(e))r in o&&v(e[r],o[r],[...n,r],t);return t}function h(e){return u(e)&&("styles"in e||"behavior"in e)}function k(e,o="component"){if(!h(e)||!u(e.styles)||e.behavior!==void 0&&!u(e.behavior)||Object.keys(e).some(t=>!["styles","behavior"].includes(t)))throw new TypeError(`Component ${o} must use the styles/behavior envelope`);let n=v(e.styles,e.behavior,[o]);if(n.length>0)throw new Error(`Component config styles/behavior conflict at ${n.join(", ")}`);return y(e.styles||{},e.behavior||{})}function H(e){if(!u(e))return e;let o=!1,n={};for(let[t,r]of Object.entries(e))n[t]=k(r,t),n[t]!==r&&(o=!0);return o?n:e}M.exports={isPlainObject:u,deepMerge:y,findTreeConflicts:v,isComponentEnvelope:h,toRuntimeComponentConfig:k,toRuntimeComponentsConfig:H}});function O(e){return typeof e=="object"&&e!==null||typeof e=="function"}function s(e,o){return O(e)?e[o]:void 0}function a(e,o){let n=O(e)?e:null,t=n?Object.create(n):{},r=(p,d)=>Object.defineProperty(t,p,{value:d,enumerable:!0,writable:!0,configurable:!0});if(n)for(let p of Object.keys(n))r(p,n[p]);for(let p of Object.keys(o))r(p,o[p]);return t}function J(e,o){let n={};for(let t of o){let r=s(e,t);r!==void 0&&(n[t]=r)}return n}function i(...e){return e.find(o=>o!=null)||""}function c(...e){return e.find(Boolean)||{}}function C(e,o,n){return e[o]||J(e,n)}function z(e){return a(e,{default:i(e.default,e.main),outline:i(e.outline,e.tertiary),linkDestructive:i(e.linkDestructive,e.linkdestructive)})}function Q(e){let o=s(e,"variants"),n=c(e.variant,s(o,"variant")),t=c(e.size,s(o,"size")),r=c(e.iconPosition,s(o,"iconPosition")),p=c(e.fullwidth,s(o,"fullwidth")),d=s(e.slots,"icon")||{},x=s(d,"variants"),l=c(d.size,s(x,"size")),V=c(d.color,s(x,"color")),m=$=>{let g=s(r,$);return a(g,{sm:i(s(g,"sm"),s(g,"small")),lg:i(s(g,"lg"),s(g,"large"))})};return a(e,{variant:z(n),size:a(t,{icon:i(t.icon,s(s(r,"default"),"default")),"icon-xs":i(t["icon-xs"],t.xs,t.small,t.sm),"icon-sm":i(t["icon-sm"],t.small,t.sm),"icon-lg":i(t["icon-lg"],t.large,t.lg)}),iconPosition:a(r,{prefix:m("prefix"),suffix:m("suffix"),default:m("default")}),fullwidth:p,slots:a(e.slots,{icon:a(d,{size:a(l,{icon:i(l.icon,l.default),"icon-xs":i(l["icon-xs"],l.xs,l.small,l.sm,l.default),"icon-sm":i(l["icon-sm"],l.sm,l.default),"icon-lg":i(l["icon-lg"],l.lg,l.default)}),color:z(V)})})})}function W(e){let o=e.variant,n=s(o,"subtle");return a(e,{variant:a(o,{default:i(s(o,"default"),s(o,"main")),outline:i(s(o,"outline"),s(o,"tertiary")),ghost:i(s(o,"ghost"),s(o,"tertiary")),link:i(s(o,"link"),s(o,"tertiary")),subtle:a(n,{default:i(s(n,"default"),s(n,"main"))})})})}function X(e){let o=e.slots,n=s(o,"caption");return a(e,{slots:a(o,{caption:a(n,{overlay:s(n,"overlay")??s(n,"root")})})})}function Y(e,o={}){let n=s(e.slots,"calendar")??o.calendar,t=s(n,"slots"),r=s(t,"range");return a(e,{slots:a(e.slots,{calendar:a(n,{slots:a(t,{range:a(r,{root:s(r,"root")??s(t,"root"),container:s(r,"container")??s(t,"content"),row:s(r,"row")??s(t,"row")})})})})})}function ne(e){return a(e,{slots:C(e,"slots",Z),states:C(e,"states",ee),props:C(e,"props",oe)})}function se(e){return a(e,{slots:C(e,"slots",te)})}function ae(e){return a(e,{slots:C(e,"slots",re)})}function w(e){return a(e.props,{padding:s(e.props,"padding")||e.padding})}function ie(e){return a(e,{props:w(e)})}function pe(e){return a(e,{slots:C(e,"slots",le),props:w(e)})}function ue(e){return a(e,{root:e.root,slots:a(e.slots,{track:s(e.slots,"track")})})}function N(e,o,...n){if(!Object.prototype.hasOwnProperty.call(R,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(o==null)return o;if(!O(o))throw new TypeError("Component config must be an object.");let t=o;return R[e](t,n[0])}var Z,ee,oe,te,re,le,R,ve,j=P(()=>{Z=["header","title","description","content","action","footer"],ee=["noContent","outside"],oe=["footerAlign"];te=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];re=["addon","button","text","input","textarea"];le=["horizontal","vertical","container"];R={button:Q,badge:W,calendar:X,card:ne,command:se,"date-slider":Y,"input-group":ae,popover:ie,separator:pe,spinner:ue};ve=Object.freeze(Object.keys(R))});var T={};_(T,{componentConfig:()=>de});function de(e,o){let n=e[o];return o==="date-slider"?N(o,n,{get calendar(){return e.calendar}}):N(o,n)}var A=P(()=>{j()});var{componentsConfigSchema:ce,isCSSClassString:Ce}=B(),{toRuntimeComponentsConfig:fe}=D(),{componentConfig:ge}=(A(),q(T));function f(e,o){if(typeof o=="string")return ge(f(e),o);if(!e)return{};if(typeof e!="object")throw new Error("Config must be an object");return fe(e)}f.componentsConfigSchema=ce;f.isCSSClassString=Ce;module.exports=f;module.exports.default=f;module.exports.ffdc=f;
1
+ var h=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var X=Object.prototype.hasOwnProperty;var k=(e,n)=>()=>(e&&(n=e(e=0)),n);var x=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),H=(e,n)=>{for(var o in n)h(e,o,{get:n[o],enumerable:!0})},J=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of Y(n))!X.call(e,s)&&s!==o&&h(e,s,{get:()=>n[s],enumerable:!(t=F(n,s))||t.enumerable});return e};var Q=e=>J(h({},"__esModule",{value:!0}),e);var z=x((Ae,D)=>{var Z=new Set(["after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]),ee=new Set(["active","focus","focus-visible","focus-within","hover"]),ne=new Set(["sm","md","lg","xl","2xl","any-pointer-coarse","any-pointer-fine","any-pointer-none","contrast-less","contrast-more","forced-colors","inverted-colors","landscape","motion-reduce","motion-safe","noscript","pointer-coarse","pointer-fine","pointer-none","portrait","print","starting"]),oe=/^(?:min-|max-|@|supports-|in-(?!range$))/,te=/^\[&(?::(?:active|focus|focus-visible|focus-within|hover))+\]$/;function se(e){let n=[],o=0,t=0;for(let s=0;s<e.length;s+=1){let a=e[s];a==="["||a==="("?o+=1:(a==="]"||a===")")&&o>0?o-=1:a===":"&&o===0&&(n.push(e.slice(t,s)),t=s+1)}return n.push(e.slice(t)),{variants:n.slice(0,-1),utility:n[n.length-1]}}function M(e){return e.replace(/\/[\w-]+$/,"")}function y(e){let n=M(e);return Z.has(n)||n.startsWith("[")&&n.includes("::")}function v(e){let n=M(e);return ee.has(n)||ne.has(n)?!0:n.startsWith("[")?n.startsWith("[@")||te.test(n):n.startsWith("not-")?v(n.slice(4)):oe.test(n)}function w(e){if(typeof e!="string"||!e.includes(":"))return null;let n=e.startsWith("!")?"!":"",{variants:o,utility:t}=se(e.slice(n.length)),s=null,a=[];for(let u of o)s!==null&&!v(u)&&a.push(u),s===null&&y(u)&&(s=u);if(a.length===0)return null;let d=o.reduce((u,W,q)=>y(W)?q:u,-1),S=o.slice(0,d).filter(u=>!y(u)),p=o.slice(d+1),R=`${n}${[...S,...p.filter(u=>!v(u)),o[d],...p.filter(v),t].join(":")}`,C=o.filter(y),O=C.length>1?`${C.join(" and ")} are pseudo-elements, and a selector can hold only one`:`${a.join(", ")} cannot follow the pseudo-element ${s}; only hover, focus, focus-visible, focus-within, active, in-* and media, container or supports variants can`;return{className:e,pseudoElement:s,chained:a,suggestion:R,reason:O}}function re(e){return w(e)===null}D.exports={isCompilableClass:re,uncompilableClass:w}});var T=x((Te,A)=>{var{isCompilableClass:ie,uncompilableClass:ae}=z(),le={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function pe(e){return typeof e=="string"&&e.trim().length>0}A.exports={componentsConfigSchema:le,isCSSClassString:pe,isCompilableClass:ie,uncompilableClass:ae}});var V=x((je,E)=>{function c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function b(e,n){if(!c(e)||!c(n))return n===void 0?e:n;let o={...e};for(let[t,s]of Object.entries(n))o[t]=t in o?b(o[t],s):s;return o}function N(e,n,o=[],t=[]){if(e===void 0||n===void 0)return t;if(!c(e)||!c(n))return t.push(o.join(".")),t;for(let s of Object.keys(e))s in n&&N(e[s],n[s],[...o,s],t);return t}function j(e){return c(e)&&("styles"in e||"behavior"in e)}function $(e,n="component"){if(!j(e)||!c(e.styles)||e.behavior!==void 0&&!c(e.behavior)||Object.keys(e).some(t=>!["styles","behavior"].includes(t)))throw new TypeError(`Component ${n} must use the styles/behavior envelope`);let o=N(e.styles,e.behavior,[n]);if(o.length>0)throw new Error(`Component config styles/behavior conflict at ${o.join(", ")}`);return b(e.styles||{},e.behavior||{})}function ue(e){if(!c(e))return e;let n=!1,o={};for(let[t,s]of Object.entries(e))o[t]=$(s,t),o[t]!==s&&(n=!0);return n?o:e}E.exports={isPlainObject:c,deepMerge:b,findTreeConflicts:N,isComponentEnvelope:j,toRuntimeComponentConfig:$,toRuntimeComponentsConfig:ue}});function I(e){return typeof e=="object"&&e!==null||typeof e=="function"}function r(e,n){return I(e)?e[n]:void 0}function i(e,n){let o=I(e)?e:null,t=o?Object.create(o):{},s=(a,d)=>Object.defineProperty(t,a,{value:d,enumerable:!0,writable:!0,configurable:!0});if(o)for(let a of Object.keys(o))s(a,o[a]);for(let a of Object.keys(n))s(a,n[a]);return t}function de(e,n){let o={};for(let t of n){let s=r(e,t);s!==void 0&&(o[t]=s)}return o}function l(...e){return e.find(n=>n!=null)||""}function f(...e){return e.find(Boolean)||{}}function g(e,n,o){return e[n]||de(e,o)}function _(e){return i(e,{default:l(e.default,e.main),outline:l(e.outline,e.tertiary),linkDestructive:l(e.linkDestructive,e.linkdestructive)})}function ce(e){let n=r(e,"variants"),o=f(e.variant,r(n,"variant")),t=f(e.size,r(n,"size")),s=f(e.iconPosition,r(n,"iconPosition")),a=f(e.fullwidth,r(n,"fullwidth")),d=r(e.slots,"icon")||{},S=r(d,"variants"),p=f(d.size,r(S,"size")),R=f(d.color,r(S,"color")),C=O=>{let u=r(s,O);return i(u,{sm:l(r(u,"sm"),r(u,"small")),lg:l(r(u,"lg"),r(u,"large"))})};return i(e,{variant:_(o),size:i(t,{icon:l(t.icon,r(r(s,"default"),"default")),"icon-xs":l(t["icon-xs"],t.xs,t.small,t.sm),"icon-sm":l(t["icon-sm"],t.small,t.sm),"icon-lg":l(t["icon-lg"],t.large,t.lg)}),iconPosition:i(s,{prefix:C("prefix"),suffix:C("suffix"),default:C("default")}),fullwidth:a,slots:i(e.slots,{icon:i(d,{size:i(p,{icon:l(p.icon,p.default),"icon-xs":l(p["icon-xs"],p.xs,p.small,p.sm,p.default),"icon-sm":l(p["icon-sm"],p.sm,p.default),"icon-lg":l(p["icon-lg"],p.lg,p.default)}),color:_(R)})})})}function Ce(e){let n=e.variant,o=r(n,"subtle");return i(e,{variant:i(n,{default:l(r(n,"default"),r(n,"main")),outline:l(r(n,"outline"),r(n,"tertiary")),ghost:l(r(n,"ghost"),r(n,"tertiary")),link:l(r(n,"link"),r(n,"tertiary")),subtle:i(o,{default:l(r(o,"default"),r(o,"main"))})})})}function fe(e){let n=e.slots,o=r(n,"caption");return i(e,{slots:i(n,{caption:i(o,{overlay:r(o,"overlay")??r(o,"root")})})})}function ge(e,n={}){let o=r(e.slots,"calendar")??n.calendar,t=r(o,"slots"),s=r(t,"range");return i(e,{slots:i(e.slots,{calendar:i(o,{slots:i(t,{range:i(s,{root:r(s,"root")??r(t,"root"),container:r(s,"container")??r(t,"content"),row:r(s,"row")??r(t,"row")})})})})})}function ve(e){return i(e,{slots:g(e,"slots",me),states:g(e,"states",Se),props:g(e,"props",ye)})}function Oe(e){return i(e,{slots:g(e,"slots",Re)})}function xe(e){return i(e,{slots:g(e,"slots",he)})}function G(e){return i(e.props,{padding:r(e.props,"padding")||e.padding})}function be(e){return i(e,{props:G(e)})}function Pe(e){return i(e,{slots:g(e,"slots",Ne),props:G(e)})}function Ie(e){return i(e,{root:e.root,slots:i(e.slots,{track:r(e.slots,"track")})})}function B(e,n,...o){if(!Object.prototype.hasOwnProperty.call(P,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(n==null)return n;if(!I(n))throw new TypeError("Component config must be an object.");let t=n;return P[e](t,o[0])}var me,Se,ye,Re,he,Ne,P,$e,K=k(()=>{me=["header","title","description","content","action","footer"],Se=["noContent","outside"],ye=["footerAlign"];Re=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];he=["addon","button","text","input","textarea"];Ne=["horizontal","vertical","container"];P={button:ce,badge:Ce,calendar:fe,card:ve,command:Oe,"date-slider":ge,"input-group":xe,popover:be,separator:Pe,spinner:Ie};$e=Object.freeze(Object.keys(P))});var L={};H(L,{componentConfig:()=>Be});function Be(e,n){let o=e[n];return n==="date-slider"?B(n,o,{get calendar(){return e.calendar}}):B(n,o)}var U=k(()=>{K()});var{componentsConfigSchema:ke,isCSSClassString:Me}=T(),{toRuntimeComponentsConfig:we}=V(),{componentConfig:De}=(U(),Q(L));function m(e,n){if(typeof n=="string")return De(m(e),n);if(!e)return{};if(typeof e!="object")throw new Error("Config must be an object");return we(e)}m.componentsConfigSchema=ke;m.isCSSClassString=Me;module.exports=m;module.exports.default=m;module.exports.ffdc=m;
package/dist/ffdc.mjs CHANGED
@@ -1 +1 @@
1
- var L=Object.create;var m=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var B=(e,o)=>()=>(e&&(o=e(e=0)),o);var v=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),J=(e,o)=>{for(var n in o)m(e,n,{get:o[n],enumerable:!0})},h=(e,o,n,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of U(o))!H.call(e,r)&&r!==n&&m(e,r,{get:()=>o[r],enumerable:!(t=q(o,r))||t.enumerable});return e};var Q=(e,o,n)=>(n=e!=null?L(F(e)):{},h(o||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),W=e=>h(m({},"__esModule",{value:!0}),e);var M=v((Ne,k)=>{var X={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function Y(e){return typeof e=="string"&&e.trim().length>0}k.exports={componentsConfigSchema:X,isCSSClassString:Y}});var j=v((Pe,w)=>{function u(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function R(e,o){if(!u(e)||!u(o))return o===void 0?e:o;let n={...e};for(let[t,r]of Object.entries(o))n[t]=t in n?R(n[t],r):r;return n}function O(e,o,n=[],t=[]){if(e===void 0||o===void 0)return t;if(!u(e)||!u(o))return t.push(n.join(".")),t;for(let r of Object.keys(e))r in o&&O(e[r],o[r],[...n,r],t);return t}function D(e){return u(e)&&("styles"in e||"behavior"in e)}function z(e,o="component"){if(!D(e)||!u(e.styles)||e.behavior!==void 0&&!u(e.behavior)||Object.keys(e).some(t=>!["styles","behavior"].includes(t)))throw new TypeError(`Component ${o} must use the styles/behavior envelope`);let n=O(e.styles,e.behavior,[o]);if(n.length>0)throw new Error(`Component config styles/behavior conflict at ${n.join(", ")}`);return R(e.styles||{},e.behavior||{})}function Z(e){if(!u(e))return e;let o=!1,n={};for(let[t,r]of Object.entries(e))n[t]=z(r,t),n[t]!==r&&(o=!0);return o?n:e}w.exports={isPlainObject:u,deepMerge:R,findTreeConflicts:O,isComponentEnvelope:D,toRuntimeComponentConfig:z,toRuntimeComponentsConfig:Z}});function N(e){return typeof e=="object"&&e!==null||typeof e=="function"}function s(e,o){return N(e)?e[o]:void 0}function a(e,o){let n=N(e)?e:null,t=n?Object.create(n):{},r=(p,d)=>Object.defineProperty(t,p,{value:d,enumerable:!0,writable:!0,configurable:!0});if(n)for(let p of Object.keys(n))r(p,n[p]);for(let p of Object.keys(o))r(p,o[p]);return t}function ee(e,o){let n={};for(let t of o){let r=s(e,t);r!==void 0&&(n[t]=r)}return n}function i(...e){return e.find(o=>o!=null)||""}function c(...e){return e.find(Boolean)||{}}function C(e,o,n){return e[o]||ee(e,n)}function T(e){return a(e,{default:i(e.default,e.main),outline:i(e.outline,e.tertiary),linkDestructive:i(e.linkDestructive,e.linkdestructive)})}function oe(e){let o=s(e,"variants"),n=c(e.variant,s(o,"variant")),t=c(e.size,s(o,"size")),r=c(e.iconPosition,s(o,"iconPosition")),p=c(e.fullwidth,s(o,"fullwidth")),d=s(e.slots,"icon")||{},I=s(d,"variants"),l=c(d.size,s(I,"size")),K=c(d.color,s(I,"color")),y=_=>{let g=s(r,_);return a(g,{sm:i(s(g,"sm"),s(g,"small")),lg:i(s(g,"lg"),s(g,"large"))})};return a(e,{variant:T(n),size:a(t,{icon:i(t.icon,s(s(r,"default"),"default")),"icon-xs":i(t["icon-xs"],t.xs,t.small,t.sm),"icon-sm":i(t["icon-sm"],t.small,t.sm),"icon-lg":i(t["icon-lg"],t.large,t.lg)}),iconPosition:a(r,{prefix:y("prefix"),suffix:y("suffix"),default:y("default")}),fullwidth:p,slots:a(e.slots,{icon:a(d,{size:a(l,{icon:i(l.icon,l.default),"icon-xs":i(l["icon-xs"],l.xs,l.small,l.sm,l.default),"icon-sm":i(l["icon-sm"],l.sm,l.default),"icon-lg":i(l["icon-lg"],l.lg,l.default)}),color:T(K)})})})}function ne(e){let o=e.variant,n=s(o,"subtle");return a(e,{variant:a(o,{default:i(s(o,"default"),s(o,"main")),outline:i(s(o,"outline"),s(o,"tertiary")),ghost:i(s(o,"ghost"),s(o,"tertiary")),link:i(s(o,"link"),s(o,"tertiary")),subtle:a(n,{default:i(s(n,"default"),s(n,"main"))})})})}function te(e){let o=e.slots,n=s(o,"caption");return a(e,{slots:a(o,{caption:a(n,{overlay:s(n,"overlay")??s(n,"root")})})})}function se(e,o={}){let n=s(e.slots,"calendar")??o.calendar,t=s(n,"slots"),r=s(t,"range");return a(e,{slots:a(e.slots,{calendar:a(n,{slots:a(t,{range:a(r,{root:s(r,"root")??s(t,"root"),container:s(r,"container")??s(t,"content"),row:s(r,"row")??s(t,"row")})})})})})}function le(e){return a(e,{slots:C(e,"slots",re),states:C(e,"states",ae),props:C(e,"props",ie)})}function ue(e){return a(e,{slots:C(e,"slots",pe)})}function ce(e){return a(e,{slots:C(e,"slots",de)})}function A(e){return a(e.props,{padding:s(e.props,"padding")||e.padding})}function Ce(e){return a(e,{props:A(e)})}function ge(e){return a(e,{slots:C(e,"slots",fe),props:A(e)})}function me(e){return a(e,{root:e.root,slots:a(e.slots,{track:s(e.slots,"track")})})}function P(e,o,...n){if(!Object.prototype.hasOwnProperty.call(x,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(o==null)return o;if(!N(o))throw new TypeError("Component config must be an object.");let t=o;return x[e](t,n[0])}var re,ae,ie,pe,de,fe,x,be,V=B(()=>{re=["header","title","description","content","action","footer"],ae=["noContent","outside"],ie=["footerAlign"];pe=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];de=["addon","button","text","input","textarea"];fe=["horizontal","vertical","container"];x={button:oe,badge:ne,calendar:te,card:le,command:ue,"date-slider":se,"input-group":ce,popover:Ce,separator:ge,spinner:me};be=Object.freeze(Object.keys(x))});var $={};J($,{componentConfig:()=>Se});function Se(e,o){let n=e[o];return o==="date-slider"?P(o,n,{get calendar(){return e.calendar}}):P(o,n)}var G=B(()=>{V()});var E=v((he,S)=>{var{componentsConfigSchema:ye,isCSSClassString:ve}=M(),{toRuntimeComponentsConfig:Re}=j(),{componentConfig:Oe}=(G(),W($));function f(e,o){if(typeof o=="string")return Oe(f(e),o);if(!e)return{};if(typeof e!="object")throw new Error("Config must be an object");return Re(e)}f.componentsConfigSchema=ye;f.isCSSClassString=ve;S.exports=f;S.exports.default=f;S.exports.ffdc=f});var b=Q(E(),1),{componentsConfigSchema:ke,isCSSClassString:Me}=b.default;var De=b.default;var export_ffdc=b.default;export{ke as componentsConfigSchema,De as default,export_ffdc as ffdc,Me as isCSSClassString};
1
+ var J=Object.create;var y=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty;var w=(e,n)=>()=>(e&&(n=e(e=0)),n);var v=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),oe=(e,n)=>{for(var o in n)y(e,o,{get:n[o],enumerable:!0})},D=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of Z(n))!ne.call(e,s)&&s!==o&&y(e,s,{get:()=>n[s],enumerable:!(t=Q(n,s))||t.enumerable});return e};var te=(e,n,o)=>(o=e!=null?J(ee(e)):{},D(n||!e||!e.__esModule?y(o,"default",{value:e,enumerable:!0}):o,e)),se=e=>D(y({},"__esModule",{value:!0}),e);var j=v((_e,T)=>{var re=new Set(["after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]),ie=new Set(["active","focus","focus-visible","focus-within","hover"]),ae=new Set(["sm","md","lg","xl","2xl","any-pointer-coarse","any-pointer-fine","any-pointer-none","contrast-less","contrast-more","forced-colors","inverted-colors","landscape","motion-reduce","motion-safe","noscript","pointer-coarse","pointer-fine","pointer-none","portrait","print","starting"]),le=/^(?:min-|max-|@|supports-|in-(?!range$))/,pe=/^\[&(?::(?:active|focus|focus-visible|focus-within|hover))+\]$/;function ue(e){let n=[],o=0,t=0;for(let s=0;s<e.length;s+=1){let a=e[s];a==="["||a==="("?o+=1:(a==="]"||a===")")&&o>0?o-=1:a===":"&&o===0&&(n.push(e.slice(t,s)),t=s+1)}return n.push(e.slice(t)),{variants:n.slice(0,-1),utility:n[n.length-1]}}function z(e){return e.replace(/\/[\w-]+$/,"")}function R(e){let n=z(e);return re.has(n)||n.startsWith("[")&&n.includes("::")}function O(e){let n=z(e);return ie.has(n)||ae.has(n)?!0:n.startsWith("[")?n.startsWith("[@")||pe.test(n):n.startsWith("not-")?O(n.slice(4)):le.test(n)}function A(e){if(typeof e!="string"||!e.includes(":"))return null;let n=e.startsWith("!")?"!":"",{variants:o,utility:t}=ue(e.slice(n.length)),s=null,a=[];for(let u of o)s!==null&&!O(u)&&a.push(u),s===null&&R(u)&&(s=u);if(a.length===0)return null;let d=o.reduce((u,X,H)=>R(X)?H:u,-1),S=o.slice(0,d).filter(u=>!R(u)),p=o.slice(d+1),x=`${n}${[...S,...p.filter(u=>!O(u)),o[d],...p.filter(O),t].join(":")}`,C=o.filter(R),b=C.length>1?`${C.join(" and ")} are pseudo-elements, and a selector can hold only one`:`${a.join(", ")} cannot follow the pseudo-element ${s}; only hover, focus, focus-visible, focus-within, active, in-* and media, container or supports variants can`;return{className:e,pseudoElement:s,chained:a,suggestion:x,reason:b}}function de(e){return A(e)===null}T.exports={isCompilableClass:de,uncompilableClass:A}});var E=v((Ge,$)=>{var{isCompilableClass:ce,uncompilableClass:Ce}=j(),fe={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function ge(e){return typeof e=="string"&&e.trim().length>0}$.exports={componentsConfigSchema:fe,isCSSClassString:ge,isCompilableClass:ce,uncompilableClass:Ce}});var K=v((Ke,G)=>{function c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function N(e,n){if(!c(e)||!c(n))return n===void 0?e:n;let o={...e};for(let[t,s]of Object.entries(n))o[t]=t in o?N(o[t],s):s;return o}function P(e,n,o=[],t=[]){if(e===void 0||n===void 0)return t;if(!c(e)||!c(n))return t.push(o.join(".")),t;for(let s of Object.keys(e))s in n&&P(e[s],n[s],[...o,s],t);return t}function V(e){return c(e)&&("styles"in e||"behavior"in e)}function _(e,n="component"){if(!V(e)||!c(e.styles)||e.behavior!==void 0&&!c(e.behavior)||Object.keys(e).some(t=>!["styles","behavior"].includes(t)))throw new TypeError(`Component ${n} must use the styles/behavior envelope`);let o=P(e.styles,e.behavior,[n]);if(o.length>0)throw new Error(`Component config styles/behavior conflict at ${o.join(", ")}`);return N(e.styles||{},e.behavior||{})}function me(e){if(!c(e))return e;let n=!1,o={};for(let[t,s]of Object.entries(e))o[t]=_(s,t),o[t]!==s&&(n=!0);return n?o:e}G.exports={isPlainObject:c,deepMerge:N,findTreeConflicts:P,isComponentEnvelope:V,toRuntimeComponentConfig:_,toRuntimeComponentsConfig:me}});function B(e){return typeof e=="object"&&e!==null||typeof e=="function"}function r(e,n){return B(e)?e[n]:void 0}function i(e,n){let o=B(e)?e:null,t=o?Object.create(o):{},s=(a,d)=>Object.defineProperty(t,a,{value:d,enumerable:!0,writable:!0,configurable:!0});if(o)for(let a of Object.keys(o))s(a,o[a]);for(let a of Object.keys(n))s(a,n[a]);return t}function Se(e,n){let o={};for(let t of n){let s=r(e,t);s!==void 0&&(o[t]=s)}return o}function l(...e){return e.find(n=>n!=null)||""}function f(...e){return e.find(Boolean)||{}}function g(e,n,o){return e[n]||Se(e,o)}function L(e){return i(e,{default:l(e.default,e.main),outline:l(e.outline,e.tertiary),linkDestructive:l(e.linkDestructive,e.linkdestructive)})}function ye(e){let n=r(e,"variants"),o=f(e.variant,r(n,"variant")),t=f(e.size,r(n,"size")),s=f(e.iconPosition,r(n,"iconPosition")),a=f(e.fullwidth,r(n,"fullwidth")),d=r(e.slots,"icon")||{},S=r(d,"variants"),p=f(d.size,r(S,"size")),x=f(d.color,r(S,"color")),C=b=>{let u=r(s,b);return i(u,{sm:l(r(u,"sm"),r(u,"small")),lg:l(r(u,"lg"),r(u,"large"))})};return i(e,{variant:L(o),size:i(t,{icon:l(t.icon,r(r(s,"default"),"default")),"icon-xs":l(t["icon-xs"],t.xs,t.small,t.sm),"icon-sm":l(t["icon-sm"],t.small,t.sm),"icon-lg":l(t["icon-lg"],t.large,t.lg)}),iconPosition:i(s,{prefix:C("prefix"),suffix:C("suffix"),default:C("default")}),fullwidth:a,slots:i(e.slots,{icon:i(d,{size:i(p,{icon:l(p.icon,p.default),"icon-xs":l(p["icon-xs"],p.xs,p.small,p.sm,p.default),"icon-sm":l(p["icon-sm"],p.sm,p.default),"icon-lg":l(p["icon-lg"],p.lg,p.default)}),color:L(x)})})})}function ve(e){let n=e.variant,o=r(n,"subtle");return i(e,{variant:i(n,{default:l(r(n,"default"),r(n,"main")),outline:l(r(n,"outline"),r(n,"tertiary")),ghost:l(r(n,"ghost"),r(n,"tertiary")),link:l(r(n,"link"),r(n,"tertiary")),subtle:i(o,{default:l(r(o,"default"),r(o,"main"))})})})}function Re(e){let n=e.slots,o=r(n,"caption");return i(e,{slots:i(n,{caption:i(o,{overlay:r(o,"overlay")??r(o,"root")})})})}function Oe(e,n={}){let o=r(e.slots,"calendar")??n.calendar,t=r(o,"slots"),s=r(t,"range");return i(e,{slots:i(e.slots,{calendar:i(o,{slots:i(t,{range:i(s,{root:r(s,"root")??r(t,"root"),container:r(s,"container")??r(t,"content"),row:r(s,"row")??r(t,"row")})})})})})}function Ne(e){return i(e,{slots:g(e,"slots",he),states:g(e,"states",xe),props:g(e,"props",be)})}function Ie(e){return i(e,{slots:g(e,"slots",Pe)})}function ke(e){return i(e,{slots:g(e,"slots",Be)})}function U(e){return i(e.props,{padding:r(e.props,"padding")||e.padding})}function Me(e){return i(e,{props:U(e)})}function De(e){return i(e,{slots:g(e,"slots",we),props:U(e)})}function ze(e){return i(e,{root:e.root,slots:i(e.slots,{track:r(e.slots,"track")})})}function k(e,n,...o){if(!Object.prototype.hasOwnProperty.call(I,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(n==null)return n;if(!B(n))throw new TypeError("Component config must be an object.");let t=n;return I[e](t,o[0])}var he,xe,be,Pe,Be,we,I,Le,W=w(()=>{he=["header","title","description","content","action","footer"],xe=["noContent","outside"],be=["footerAlign"];Pe=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];Be=["addon","button","text","input","textarea"];we=["horizontal","vertical","container"];I={button:ye,badge:ve,calendar:Re,card:Ne,command:Ie,"date-slider":Oe,"input-group":ke,popover:Me,separator:De,spinner:ze};Le=Object.freeze(Object.keys(I))});var q={};oe(q,{componentConfig:()=>Ae});function Ae(e,n){let o=e[n];return n==="date-slider"?k(n,o,{get calendar(){return e.calendar}}):k(n,o)}var F=w(()=>{W()});var Y=v((qe,h)=>{var{componentsConfigSchema:Te,isCSSClassString:je}=E(),{toRuntimeComponentsConfig:$e}=K(),{componentConfig:Ee}=(F(),se(q));function m(e,n){if(typeof n=="string")return Ee(m(e),n);if(!e)return{};if(typeof e!="object")throw new Error("Config must be an object");return $e(e)}m.componentsConfigSchema=Te;m.isCSSClassString=je;h.exports=m;h.exports.default=m;h.exports.ffdc=m});var M=te(Y(),1),{componentsConfigSchema:Fe,isCSSClassString:Ye}=M.default;var Xe=M.default;var export_ffdc=M.default;export{Fe as componentsConfigSchema,Xe as default,export_ffdc as ffdc,Ye as isCSSClassString};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var v=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var B=(e,o)=>()=>(e&&(o=e(e=0)),o);var O=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports),L=(e,o)=>{for(var n in o)v(e,n,{get:o[n],enumerable:!0})},U=(e,o,n,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of K(o))!q.call(e,r)&&r!==n&&v(e,r,{get:()=>o[r],enumerable:!(t=E(o,r))||t.enumerable});return e};var H=e=>U(v({},"__esModule",{value:!0}),e);var R=O((Ne,w)=>{var J={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function Q(e){return typeof e=="string"&&e.trim().length>0}w.exports={componentsConfigSchema:J,isCSSClassString:Q}});var D=O((xe,M)=>{function u(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function N(e,o){if(!u(e)||!u(o))return o===void 0?e:o;let n={...e};for(let[t,r]of Object.entries(o))n[t]=t in n?N(n[t],r):r;return n}function x(e,o,n=[],t=[]){if(e===void 0||o===void 0)return t;if(!u(e)||!u(o))return t.push(n.join(".")),t;for(let r of Object.keys(e))r in o&&x(e[r],o[r],[...n,r],t);return t}function _(e){return u(e)&&("styles"in e||"behavior"in e)}function k(e,o="component"){if(!_(e)||!u(e.styles)||e.behavior!==void 0&&!u(e.behavior)||Object.keys(e).some(t=>!["styles","behavior"].includes(t)))throw new TypeError(`Component ${o} must use the styles/behavior envelope`);let n=x(e.styles,e.behavior,[o]);if(n.length>0)throw new Error(`Component config styles/behavior conflict at ${n.join(", ")}`);return N(e.styles||{},e.behavior||{})}function W(e){if(!u(e))return e;let o=!1,n={};for(let[t,r]of Object.entries(e))n[t]=k(r,t),n[t]!==r&&(o=!0);return o?n:e}M.exports={isPlainObject:u,deepMerge:N,findTreeConflicts:x,isComponentEnvelope:_,toRuntimeComponentConfig:k,toRuntimeComponentsConfig:W}});function P(e){return typeof e=="object"&&e!==null||typeof e=="function"}function s(e,o){return P(e)?e[o]:void 0}function a(e,o){let n=P(e)?e:null,t=n?Object.create(n):{},r=(p,d)=>Object.defineProperty(t,p,{value:d,enumerable:!0,writable:!0,configurable:!0});if(n)for(let p of Object.keys(n))r(p,n[p]);for(let p of Object.keys(o))r(p,o[p]);return t}function X(e,o){let n={};for(let t of o){let r=s(e,t);r!==void 0&&(n[t]=r)}return n}function i(...e){return e.find(o=>o!=null)||""}function c(...e){return e.find(Boolean)||{}}function C(e,o,n){return e[o]||X(e,n)}function z(e){return a(e,{default:i(e.default,e.main),outline:i(e.outline,e.tertiary),linkDestructive:i(e.linkDestructive,e.linkdestructive)})}function Y(e){let o=s(e,"variants"),n=c(e.variant,s(o,"variant")),t=c(e.size,s(o,"size")),r=c(e.iconPosition,s(o,"iconPosition")),p=c(e.fullwidth,s(o,"fullwidth")),d=s(e.slots,"icon")||{},h=s(d,"variants"),l=c(d.size,s(h,"size")),V=c(d.color,s(h,"color")),y=$=>{let g=s(r,$);return a(g,{sm:i(s(g,"sm"),s(g,"small")),lg:i(s(g,"lg"),s(g,"large"))})};return a(e,{variant:z(n),size:a(t,{icon:i(t.icon,s(s(r,"default"),"default")),"icon-xs":i(t["icon-xs"],t.xs,t.small,t.sm),"icon-sm":i(t["icon-sm"],t.small,t.sm),"icon-lg":i(t["icon-lg"],t.large,t.lg)}),iconPosition:a(r,{prefix:y("prefix"),suffix:y("suffix"),default:y("default")}),fullwidth:p,slots:a(e.slots,{icon:a(d,{size:a(l,{icon:i(l.icon,l.default),"icon-xs":i(l["icon-xs"],l.xs,l.small,l.sm,l.default),"icon-sm":i(l["icon-sm"],l.sm,l.default),"icon-lg":i(l["icon-lg"],l.lg,l.default)}),color:z(V)})})})}function Z(e){let o=e.variant,n=s(o,"subtle");return a(e,{variant:a(o,{default:i(s(o,"default"),s(o,"main")),outline:i(s(o,"outline"),s(o,"tertiary")),ghost:i(s(o,"ghost"),s(o,"tertiary")),link:i(s(o,"link"),s(o,"tertiary")),subtle:a(n,{default:i(s(n,"default"),s(n,"main"))})})})}function ee(e){let o=e.slots,n=s(o,"caption");return a(e,{slots:a(o,{caption:a(n,{overlay:s(n,"overlay")??s(n,"root")})})})}function oe(e,o={}){let n=s(e.slots,"calendar")??o.calendar,t=s(n,"slots"),r=s(t,"range");return a(e,{slots:a(e.slots,{calendar:a(n,{slots:a(t,{range:a(r,{root:s(r,"root")??s(t,"root"),container:s(r,"container")??s(t,"content"),row:s(r,"row")??s(t,"row")})})})})})}function re(e){return a(e,{slots:C(e,"slots",ne),states:C(e,"states",te),props:C(e,"props",se)})}function ie(e){return a(e,{slots:C(e,"slots",ae)})}function pe(e){return a(e,{slots:C(e,"slots",le)})}function j(e){return a(e.props,{padding:s(e.props,"padding")||e.padding})}function ue(e){return a(e,{props:j(e)})}function ce(e){return a(e,{slots:C(e,"slots",de),props:j(e)})}function Ce(e){return a(e,{root:e.root,slots:a(e.slots,{track:s(e.slots,"track")})})}function b(e,o,...n){if(!Object.prototype.hasOwnProperty.call(I,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(o==null)return o;if(!P(o))throw new TypeError("Component config must be an object.");let t=o;return I[e](t,n[0])}var ne,te,se,ae,le,de,I,Ie,T=B(()=>{ne=["header","title","description","content","action","footer"],te=["noContent","outside"],se=["footerAlign"];ae=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];le=["addon","button","text","input","textarea"];de=["horizontal","vertical","container"];I={button:Y,badge:Z,calendar:ee,card:re,command:ie,"date-slider":oe,"input-group":pe,popover:ue,separator:ce,spinner:Ce};Ie=Object.freeze(Object.keys(I))});var A={};L(A,{componentConfig:()=>fe});function fe(e,o){let n=e[o];return o==="date-slider"?b(o,n,{get calendar(){return e.calendar}}):b(o,n)}var F=B(()=>{T()});var G=O((he,m)=>{var{componentsConfigSchema:ge,isCSSClassString:me}=R(),{toRuntimeComponentsConfig:Se}=D(),{componentConfig:ye}=(F(),H(A));function f(e,o){if(typeof o=="string")return ye(f(e),o);if(!e)return{};if(typeof e!="object")throw new Error("Config must be an object");return Se(e)}f.componentsConfigSchema=ge;f.isCSSClassString=me;m.exports=f;m.exports.default=f;m.exports.ffdc=f});var{componentsConfigSchema:ve,isCSSClassString:Oe}=R(),S=require("./lib/core/cache-manager");module.exports={};Object.defineProperty(module.exports,"config",{get:function(){if(typeof __FF_CONFIG__<"u")return __FF_CONFIG__;if(typeof window<"u"&&window.__FF_CONFIG__)return window.__FF_CONFIG__;if(S)try{let e=new S(process.cwd());if(e.exists()){let o=e.load();if(o)return o.componentsConfig||null}}catch{}return null}});Object.defineProperty(module.exports,"iconSet",{get:function(){if(typeof __FF_ICONS__<"u")return __FF_ICONS__;if(typeof window<"u"&&window.__FF_ICONS__)return window.__FF_ICONS__;if(S)try{let e=new S(process.cwd());if(e.exists()){let o=e.load();if(o)return o.icons||null}}catch{}return null}});module.exports.componentsConfigSchema=ve;module.exports.isCSSClassString=Oe;module.exports.ffdc=G();
1
+ var I=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var M=(e,n)=>()=>(e&&(n=e(e=0)),n);var y=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),Z=(e,n)=>{for(var o in n)I(e,o,{get:n[o],enumerable:!0})},ee=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of J(n))!Q.call(e,s)&&s!==o&&I(e,s,{get:()=>n[s],enumerable:!(t=H(n,s))||t.enumerable});return e};var ne=e=>ee(I({},"__esModule",{value:!0}),e);var T=y((Ee,A)=>{var oe=new Set(["after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]),te=new Set(["active","focus","focus-visible","focus-within","hover"]),se=new Set(["sm","md","lg","xl","2xl","any-pointer-coarse","any-pointer-fine","any-pointer-none","contrast-less","contrast-more","forced-colors","inverted-colors","landscape","motion-reduce","motion-safe","noscript","pointer-coarse","pointer-fine","pointer-none","portrait","print","starting"]),re=/^(?:min-|max-|@|supports-|in-(?!range$))/,ie=/^\[&(?::(?:active|focus|focus-visible|focus-within|hover))+\]$/;function ae(e){let n=[],o=0,t=0;for(let s=0;s<e.length;s+=1){let a=e[s];a==="["||a==="("?o+=1:(a==="]"||a===")")&&o>0?o-=1:a===":"&&o===0&&(n.push(e.slice(t,s)),t=s+1)}return n.push(e.slice(t)),{variants:n.slice(0,-1),utility:n[n.length-1]}}function D(e){return e.replace(/\/[\w-]+$/,"")}function v(e){let n=D(e);return oe.has(n)||n.startsWith("[")&&n.includes("::")}function R(e){let n=D(e);return te.has(n)||se.has(n)?!0:n.startsWith("[")?n.startsWith("[@")||ie.test(n):n.startsWith("not-")?R(n.slice(4)):re.test(n)}function z(e){if(typeof e!="string"||!e.includes(":"))return null;let n=e.startsWith("!")?"!":"",{variants:o,utility:t}=ae(e.slice(n.length)),s=null,a=[];for(let u of o)s!==null&&!R(u)&&a.push(u),s===null&&v(u)&&(s=u);if(a.length===0)return null;let d=o.reduce((u,Y,X)=>v(Y)?X:u,-1),S=o.slice(0,d).filter(u=>!v(u)),p=o.slice(d+1),x=`${n}${[...S,...p.filter(u=>!R(u)),o[d],...p.filter(R),t].join(":")}`,C=o.filter(v),N=C.length>1?`${C.join(" and ")} are pseudo-elements, and a selector can hold only one`:`${a.join(", ")} cannot follow the pseudo-element ${s}; only hover, focus, focus-visible, focus-within, active, in-* and media, container or supports variants can`;return{className:e,pseudoElement:s,chained:a,suggestion:x,reason:N}}function le(e){return z(e)===null}A.exports={isCompilableClass:le,uncompilableClass:z}});var b=y((Ve,j)=>{var{isCompilableClass:pe,uncompilableClass:ue}=T(),de={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function ce(e){return typeof e=="string"&&e.trim().length>0}j.exports={componentsConfigSchema:de,isCSSClassString:ce,isCompilableClass:pe,uncompilableClass:ue}});var F=y((Fe,V)=>{function c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function P(e,n){if(!c(e)||!c(n))return n===void 0?e:n;let o={...e};for(let[t,s]of Object.entries(n))o[t]=t in o?P(o[t],s):s;return o}function w(e,n,o=[],t=[]){if(e===void 0||n===void 0)return t;if(!c(e)||!c(n))return t.push(o.join(".")),t;for(let s of Object.keys(e))s in n&&w(e[s],n[s],[...o,s],t);return t}function $(e){return c(e)&&("styles"in e||"behavior"in e)}function E(e,n="component"){if(!$(e)||!c(e.styles)||e.behavior!==void 0&&!c(e.behavior)||Object.keys(e).some(t=>!["styles","behavior"].includes(t)))throw new TypeError(`Component ${n} must use the styles/behavior envelope`);let o=w(e.styles,e.behavior,[n]);if(o.length>0)throw new Error(`Component config styles/behavior conflict at ${o.join(", ")}`);return P(e.styles||{},e.behavior||{})}function Ce(e){if(!c(e))return e;let n=!1,o={};for(let[t,s]of Object.entries(e))o[t]=E(s,t),o[t]!==s&&(n=!0);return n?o:e}V.exports={isPlainObject:c,deepMerge:P,findTreeConflicts:w,isComponentEnvelope:$,toRuntimeComponentConfig:E,toRuntimeComponentsConfig:Ce}});function _(e){return typeof e=="object"&&e!==null||typeof e=="function"}function r(e,n){return _(e)?e[n]:void 0}function i(e,n){let o=_(e)?e:null,t=o?Object.create(o):{},s=(a,d)=>Object.defineProperty(t,a,{value:d,enumerable:!0,writable:!0,configurable:!0});if(o)for(let a of Object.keys(o))s(a,o[a]);for(let a of Object.keys(n))s(a,n[a]);return t}function fe(e,n){let o={};for(let t of n){let s=r(e,t);s!==void 0&&(o[t]=s)}return o}function l(...e){return e.find(n=>n!=null)||""}function f(...e){return e.find(Boolean)||{}}function g(e,n,o){return e[n]||fe(e,o)}function G(e){return i(e,{default:l(e.default,e.main),outline:l(e.outline,e.tertiary),linkDestructive:l(e.linkDestructive,e.linkdestructive)})}function ge(e){let n=r(e,"variants"),o=f(e.variant,r(n,"variant")),t=f(e.size,r(n,"size")),s=f(e.iconPosition,r(n,"iconPosition")),a=f(e.fullwidth,r(n,"fullwidth")),d=r(e.slots,"icon")||{},S=r(d,"variants"),p=f(d.size,r(S,"size")),x=f(d.color,r(S,"color")),C=N=>{let u=r(s,N);return i(u,{sm:l(r(u,"sm"),r(u,"small")),lg:l(r(u,"lg"),r(u,"large"))})};return i(e,{variant:G(o),size:i(t,{icon:l(t.icon,r(r(s,"default"),"default")),"icon-xs":l(t["icon-xs"],t.xs,t.small,t.sm),"icon-sm":l(t["icon-sm"],t.small,t.sm),"icon-lg":l(t["icon-lg"],t.large,t.lg)}),iconPosition:i(s,{prefix:C("prefix"),suffix:C("suffix"),default:C("default")}),fullwidth:a,slots:i(e.slots,{icon:i(d,{size:i(p,{icon:l(p.icon,p.default),"icon-xs":l(p["icon-xs"],p.xs,p.small,p.sm,p.default),"icon-sm":l(p["icon-sm"],p.sm,p.default),"icon-lg":l(p["icon-lg"],p.lg,p.default)}),color:G(x)})})})}function me(e){let n=e.variant,o=r(n,"subtle");return i(e,{variant:i(n,{default:l(r(n,"default"),r(n,"main")),outline:l(r(n,"outline"),r(n,"tertiary")),ghost:l(r(n,"ghost"),r(n,"tertiary")),link:l(r(n,"link"),r(n,"tertiary")),subtle:i(o,{default:l(r(o,"default"),r(o,"main"))})})})}function Se(e){let n=e.slots,o=r(n,"caption");return i(e,{slots:i(n,{caption:i(o,{overlay:r(o,"overlay")??r(o,"root")})})})}function ye(e,n={}){let o=r(e.slots,"calendar")??n.calendar,t=r(o,"slots"),s=r(t,"range");return i(e,{slots:i(e.slots,{calendar:i(o,{slots:i(t,{range:i(s,{root:r(s,"root")??r(t,"root"),container:r(s,"container")??r(t,"content"),row:r(s,"row")??r(t,"row")})})})})})}function he(e){return i(e,{slots:g(e,"slots",ve),states:g(e,"states",Re),props:g(e,"props",Oe)})}function Ne(e){return i(e,{slots:g(e,"slots",xe)})}function be(e){return i(e,{slots:g(e,"slots",Ie)})}function K(e){return i(e.props,{padding:r(e.props,"padding")||e.padding})}function Pe(e){return i(e,{props:K(e)})}function Be(e){return i(e,{slots:g(e,"slots",we),props:K(e)})}function _e(e){return i(e,{root:e.root,slots:i(e.slots,{track:r(e.slots,"track")})})}function k(e,n,...o){if(!Object.prototype.hasOwnProperty.call(B,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(n==null)return n;if(!_(n))throw new TypeError("Component config must be an object.");let t=n;return B[e](t,o[0])}var ve,Re,Oe,xe,Ie,we,B,Ge,L=M(()=>{ve=["header","title","description","content","action","footer"],Re=["noContent","outside"],Oe=["footerAlign"];xe=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];Ie=["addon","button","text","input","textarea"];we=["horizontal","vertical","container"];B={button:ge,badge:me,calendar:Se,card:he,command:Ne,"date-slider":ye,"input-group":be,popover:Pe,separator:Be,spinner:_e};Ge=Object.freeze(Object.keys(B))});var q={};Z(q,{componentConfig:()=>ke});function ke(e,n){let o=e[n];return n==="date-slider"?k(n,o,{get calendar(){return e.calendar}}):k(n,o)}var U=M(()=>{L()});var W=y((qe,O)=>{var{componentsConfigSchema:Me,isCSSClassString:De}=b(),{toRuntimeComponentsConfig:ze}=F(),{componentConfig:Ae}=(U(),ne(q));function m(e,n){if(typeof n=="string")return Ae(m(e),n);if(!e)return{};if(typeof e!="object")throw new Error("Config must be an object");return ze(e)}m.componentsConfigSchema=Me;m.isCSSClassString=De;O.exports=m;O.exports.default=m;O.exports.ffdc=m});var{componentsConfigSchema:Te,isCSSClassString:je}=b(),h=require("./lib/core/cache-manager");module.exports={};Object.defineProperty(module.exports,"config",{get:function(){if(typeof __FF_CONFIG__<"u")return __FF_CONFIG__;if(typeof window<"u"&&window.__FF_CONFIG__)return window.__FF_CONFIG__;if(h)try{let e=new h(process.cwd());if(e.exists()){let n=e.load();if(n)return n.componentsConfig||null}}catch{}return null}});Object.defineProperty(module.exports,"iconSet",{get:function(){if(typeof __FF_ICONS__<"u")return __FF_ICONS__;if(typeof window<"u"&&window.__FF_ICONS__)return window.__FF_ICONS__;if(h)try{let e=new h(process.cwd());if(e.exists()){let n=e.load();if(n)return n.icons||null}}catch{}return null}});module.exports.componentsConfigSchema=Te;module.exports.isCSSClassString=je;module.exports.ffdc=W();
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var Y=Object.create;var y=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var ne=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty;var oe=(e,n)=>()=>(e&&(n=e(e=0)),n);var O=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),se=(e,n)=>{for(var t in n)y(e,t,{get:n[t],enumerable:!0})},M=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of ee(n))!te.call(e,r)&&r!==t&&y(e,r,{get:()=>n[r],enumerable:!(o=Z(n,r))||o.enumerable});return e};var _=(e,n,t)=>(t=e!=null?Y(ne(e)):{},M(n||!e||!e.__esModule?y(t,"default",{value:e,enumerable:!0}):t,e)),re=e=>M(y({},"__esModule",{value:!0}),e);var F=O(($e,z)=>{function p(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function R(e,n){if(!p(e)||!p(n))return n===void 0?e:n;let t={...e};for(let[o,r]of Object.entries(n))t[o]=o in t?R(t[o],r):r;return t}function b(e,n,t=[],o=[]){if(e===void 0||n===void 0)return o;if(!p(e)||!p(n))return o.push(t.join(".")),o;for(let r of Object.keys(e))r in n&&b(e[r],n[r],[...t,r],o);return o}function D(e){return p(e)&&("styles"in e||"behavior"in e)}function j(e,n="component"){if(!D(e)||!p(e.styles)||e.behavior!==void 0&&!p(e.behavior)||Object.keys(e).some(o=>!["styles","behavior"].includes(o)))throw new TypeError(`Component ${n} must use the styles/behavior envelope`);let t=b(e.styles,e.behavior,[n]);if(t.length>0)throw new Error(`Component config styles/behavior conflict at ${t.join(", ")}`);return R(e.styles||{},e.behavior||{})}function ie(e){if(!p(e))return e;let n=!1,t={};for(let[o,r]of Object.entries(e))t[o]=j(r,o),t[o]!==r&&(n=!0);return n?t:e}z.exports={isPlainObject:p,deepMerge:R,findTreeConflicts:b,isComponentEnvelope:D,toRuntimeComponentConfig:j,toRuntimeComponentsConfig:ie}});var A=O((Ve,T)=>{var ae={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function le(e){return typeof e=="string"&&e.trim().length>0}T.exports={componentsConfigSchema:ae,isCSSClassString:le}});var V={};se(V,{CONFIGURED_COMPONENTS:()=>Ie,resolveComponentConfig:()=>xe});function N(e){return typeof e=="object"&&e!==null||typeof e=="function"}function s(e,n){return N(e)?e[n]:void 0}function i(e,n){let t=N(e)?e:null,o=t?Object.create(t):{},r=(u,d)=>Object.defineProperty(o,u,{value:d,enumerable:!0,writable:!0,configurable:!0});if(t)for(let u of Object.keys(t))r(u,t[u]);for(let u of Object.keys(n))r(u,n[u]);return o}function ue(e,n){let t={};for(let o of n){let r=s(e,o);r!==void 0&&(t[o]=r)}return t}function a(...e){return e.find(n=>n!=null)||""}function c(...e){return e.find(Boolean)||{}}function C(e,n,t){return e[n]||ue(e,t)}function G(e){return i(e,{default:a(e.default,e.main),outline:a(e.outline,e.tertiary),linkDestructive:a(e.linkDestructive,e.linkdestructive)})}function pe(e){let n=s(e,"variants"),t=c(e.variant,s(n,"variant")),o=c(e.size,s(n,"size")),r=c(e.iconPosition,s(n,"iconPosition")),u=c(e.fullwidth,s(n,"fullwidth")),d=s(e.slots,"icon")||{},k=s(d,"variants"),l=c(d.size,s(k,"size")),H=c(d.color,s(k,"color")),v=Q=>{let g=s(r,Q);return i(g,{sm:a(s(g,"sm"),s(g,"small")),lg:a(s(g,"lg"),s(g,"large"))})};return i(e,{variant:G(t),size:i(o,{icon:a(o.icon,s(s(r,"default"),"default")),"icon-xs":a(o["icon-xs"],o.xs,o.small,o.sm),"icon-sm":a(o["icon-sm"],o.small,o.sm),"icon-lg":a(o["icon-lg"],o.large,o.lg)}),iconPosition:i(r,{prefix:v("prefix"),suffix:v("suffix"),default:v("default")}),fullwidth:u,slots:i(e.slots,{icon:i(d,{size:i(l,{icon:a(l.icon,l.default),"icon-xs":a(l["icon-xs"],l.xs,l.small,l.sm,l.default),"icon-sm":a(l["icon-sm"],l.sm,l.default),"icon-lg":a(l["icon-lg"],l.lg,l.default)}),color:G(H)})})})}function de(e){let n=e.variant,t=s(n,"subtle");return i(e,{variant:i(n,{default:a(s(n,"default"),s(n,"main")),outline:a(s(n,"outline"),s(n,"tertiary")),ghost:a(s(n,"ghost"),s(n,"tertiary")),link:a(s(n,"link"),s(n,"tertiary")),subtle:i(t,{default:a(s(t,"default"),s(t,"main"))})})})}function ce(e){let n=e.slots,t=s(n,"caption");return i(e,{slots:i(n,{caption:i(t,{overlay:s(t,"overlay")??s(t,"root")})})})}function Ce(e,n={}){let t=s(e.slots,"calendar")??n.calendar,o=s(t,"slots"),r=s(o,"range");return i(e,{slots:i(e.slots,{calendar:i(t,{slots:i(o,{range:i(r,{root:s(r,"root")??s(o,"root"),container:s(r,"container")??s(o,"content"),row:s(r,"row")??s(o,"row")})})})})})}function ye(e){return i(e,{slots:C(e,"slots",fe),states:C(e,"states",ge),props:C(e,"props",me)})}function ve(e){return i(e,{slots:C(e,"slots",Se)})}function _e(e){return i(e,{slots:C(e,"slots",Oe)})}function $(e){return i(e.props,{padding:s(e.props,"padding")||e.padding})}function Re(e){return i(e,{props:$(e)})}function Pe(e){return i(e,{slots:C(e,"slots",be),props:$(e)})}function Ne(e){return i(e,{root:e.root,slots:i(e.slots,{track:s(e.slots,"track")})})}function xe(e,n,...t){if(!Object.prototype.hasOwnProperty.call(P,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(n==null)return n;if(!N(n))throw new TypeError("Component config must be an object.");let o=n;return P[e](o,t[0])}var fe,ge,me,Se,Oe,be,P,Ie,E=oe(()=>{fe=["header","title","description","content","action","footer"],ge=["noContent","outside"],me=["footerAlign"];Se=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];Oe=["addon","button","text","input","textarea"];be=["horizontal","vertical","container"];P={button:pe,badge:de,calendar:ce,card:ye,command:ve,"date-slider":Ce,"input-group":_e,popover:Re,separator:Pe,spinner:Ne};Ie=Object.freeze(Object.keys(P))});var q=O((Ee,U)=>{var x=Object.defineProperty,he=Object.getOwnPropertyDescriptor,we=Object.getOwnPropertyNames,Be=Object.prototype.hasOwnProperty,ke=(e,n)=>{for(var t in n)x(e,t,{get:n[t],enumerable:!0})},Me=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of we(n))!Be.call(e,r)&&r!==t&&x(e,r,{get:()=>n[r],enumerable:!(o=he(n,r))||o.enumerable});return e},De=e=>Me(x({},"__esModule",{value:!0}),e),L={};ke(L,{componentConfig:()=>je});U.exports=De(L);var K=(E(),re(V));function je(e,n){let t=e[n];return n==="date-slider"?(0,K.resolveComponentConfig)(n,t,{get calendar(){return e.calendar}}):(0,K.resolveComponentConfig)(n,t)}});var f=_(F(),1),S=_(A(),1),W=_(q(),1),ze=typeof window<"u"&&typeof window.document<"u";function I(e){return typeof e!="string"?!1:e.startsWith("__v_")||e==="then"}function B(e=""){let n=new Map;return new Proxy({},{get(t,o){if(o===Symbol.toPrimitive||o==="valueOf")return()=>e;if(o==="toString"||o===Symbol.toStringTag)return()=>e;if(o==="constructor")return Object;if(!I(o))return n.has(o)||n.set(o,B(e)),n.get(o)},has(t,o){return!I(o)},ownKeys(){return[]},getOwnPropertyDescriptor(t,o){if(!I(o))return{enumerable:!0,configurable:!0}}})}var J=new Map;function Fe(e){try{let n=e==="__FF_CONFIG__"?process.env.NEXT_PUBLIC_FF_CONFIG:process.env.NEXT_PUBLIC_FF_ICONS;if(!n)return null;let t=J.get(e);if(t?.serialized===n)return t.value;let o=JSON.parse(n);return(0,f.isPlainObject)(o)?(J.set(e,{serialized:n,value:o}),o):null}catch{return null}}function m(e){return e==="__FF_CONFIG__"&&typeof __FF_CONFIG__<"u"?__FF_CONFIG__:e==="__FF_ICONS__"&&typeof __FF_ICONS__<"u"?__FF_ICONS__:typeof globalThis<"u"&&globalThis[e]?globalThis[e]:ze&&window[e]?window[e]:Fe(e)}function X(e,n){return typeof n=="string"?(0,W.componentConfig)(X(e),n):!e||typeof e!="object"?B():(0,f.toRuntimeComponentsConfig)(e)}var h=new Map,w=new WeakMap,Te=new Proxy({},{get(e,n){if(n===Symbol.toPrimitive||n==="valueOf")return()=>"";if(n==="toString"||n===Symbol.toStringTag)return()=>"[object Object]";if(n==="constructor")return Object;let t=m("__FF_CONFIG__");if(t&&n in t){let o=t[n];return w.has(o)||w.set(o,(0,f.toRuntimeComponentConfig)(o,String(n))),w.get(o)}return h.has(n)||h.set(n,B()),h.get(n)},has(){return!0},ownKeys(){return[]},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}),Ae=new Proxy({},{get(e,n){if(n===Symbol.toPrimitive||n==="valueOf")return()=>"";if(n==="toString"||n===Symbol.toStringTag)return()=>"[object Object]";if(n==="constructor")return Object;let t=m("__FF_ICONS__");return t&&n in t?t[n]:null},has(e,n){let t=m("__FF_ICONS__");return t?n in t:!1},ownKeys(){let e=m("__FF_ICONS__");return e?Object.keys(e):[]},getOwnPropertyDescriptor(e,n){let t=m("__FF_ICONS__");if(t&&n in t)return{enumerable:!0,configurable:!0,value:t[n]}}});var export_componentsConfigSchema=S.componentsConfigSchema;var export_isCSSClassString=S.isCSSClassString;export{export_componentsConfigSchema as componentsConfigSchema,Te as config,X as ffdc,Ae as iconSet,export_isCSSClassString as isCSSClassString};
1
+ var ie=Object.create;var v=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ue=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var de=(e,t)=>()=>(e&&(t=e(e=0)),t);var O=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ce=(e,t)=>{for(var n in t)v(e,n,{get:t[n],enumerable:!0})},z=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of le(t))!pe.call(e,s)&&s!==n&&v(e,s,{get:()=>t[s],enumerable:!(o=ae(t,s))||o.enumerable});return e};var N=(e,t,n)=>(n=e!=null?ie(ue(e)):{},z(t||!e||!e.__esModule?v(n,"default",{value:e,enumerable:!0}):n,e)),fe=e=>z(v({},"__esModule",{value:!0}),e);var $=O((ot,E)=>{function c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function x(e,t){if(!c(e)||!c(t))return t===void 0?e:t;let n={...e};for(let[o,s]of Object.entries(t))n[o]=o in n?x(n[o],s):s;return n}function I(e,t,n=[],o=[]){if(e===void 0||t===void 0)return o;if(!c(e)||!c(t))return o.push(n.join(".")),o;for(let s of Object.keys(e))s in t&&I(e[s],t[s],[...n,s],o);return o}function F(e){return c(e)&&("styles"in e||"behavior"in e)}function A(e,t="component"){if(!F(e)||!c(e.styles)||e.behavior!==void 0&&!c(e.behavior)||Object.keys(e).some(o=>!["styles","behavior"].includes(o)))throw new TypeError(`Component ${t} must use the styles/behavior envelope`);let n=I(e.styles,e.behavior,[t]);if(n.length>0)throw new Error(`Component config styles/behavior conflict at ${n.join(", ")}`);return x(e.styles||{},e.behavior||{})}function Ce(e){if(!c(e))return e;let t=!1,n={};for(let[o,s]of Object.entries(e))n[o]=A(s,o),n[o]!==s&&(t=!0);return t?n:e}E.exports={isPlainObject:c,deepMerge:x,findTreeConflicts:I,isComponentEnvelope:F,toRuntimeComponentConfig:A,toRuntimeComponentsConfig:Ce}});var L=O((st,K)=>{var ge=new Set(["after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]),me=new Set(["active","focus","focus-visible","focus-within","hover"]),ye=new Set(["sm","md","lg","xl","2xl","any-pointer-coarse","any-pointer-fine","any-pointer-none","contrast-less","contrast-more","forced-colors","inverted-colors","landscape","motion-reduce","motion-safe","noscript","pointer-coarse","pointer-fine","pointer-none","portrait","print","starting"]),Se=/^(?:min-|max-|@|supports-|in-(?!range$))/,ve=/^\[&(?::(?:active|focus|focus-visible|focus-within|hover))+\]$/;function Oe(e){let t=[],n=0,o=0;for(let s=0;s<e.length;s+=1){let a=e[s];a==="["||a==="("?n+=1:(a==="]"||a===")")&&n>0?n-=1:a===":"&&n===0&&(t.push(e.slice(o,s)),o=s+1)}return t.push(e.slice(o)),{variants:t.slice(0,-1),utility:t[t.length-1]}}function G(e){return e.replace(/\/[\w-]+$/,"")}function _(e){let t=G(e);return ge.has(t)||t.startsWith("[")&&t.includes("::")}function R(e){let t=G(e);return me.has(t)||ye.has(t)?!0:t.startsWith("[")?t.startsWith("[@")||ve.test(t):t.startsWith("not-")?R(t.slice(4)):Se.test(t)}function V(e){if(typeof e!="string"||!e.includes(":"))return null;let t=e.startsWith("!")?"!":"",{variants:n,utility:o}=Oe(e.slice(t.length)),s=null,a=[];for(let p of n)s!==null&&!R(p)&&a.push(p),s===null&&_(p)&&(s=p);if(a.length===0)return null;let d=n.reduce((p,se,re)=>_(se)?re:p,-1),S=n.slice(0,d).filter(p=>!_(p)),u=n.slice(d+1),h=`${t}${[...S,...u.filter(p=>!R(p)),n[d],...u.filter(R),o].join(":")}`,f=n.filter(_),P=f.length>1?`${f.join(" and ")} are pseudo-elements, and a selector can hold only one`:`${a.join(", ")} cannot follow the pseudo-element ${s}; only hover, focus, focus-visible, focus-within, active, in-* and media, container or supports variants can`;return{className:e,pseudoElement:s,chained:a,suggestion:h,reason:P}}function _e(e){return V(e)===null}K.exports={isCompilableClass:_e,uncompilableClass:V}});var W=O((rt,U)=>{var{isCompilableClass:Re,uncompilableClass:be}=L(),he={$id:"https://frontfriend.dev/schemas/components-config.schema.json",type:"object",additionalProperties:{$ref:"#/$defs/componentConfig"},$defs:{componentConfig:{$ref:"#/$defs/componentEnvelope"},styleTree:{anyOf:[{type:"string"},{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}}]},behaviorTree:{anyOf:[{type:["string","number","boolean","null"]},{type:"array",items:{$ref:"#/$defs/behaviorTree"}},{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}]},componentEnvelope:{type:"object",additionalProperties:!1,required:["styles"],properties:{styles:{type:"object",additionalProperties:{$ref:"#/$defs/styleTree"}},behavior:{type:"object",additionalProperties:{$ref:"#/$defs/behaviorTree"}}}}}};function Pe(e){return typeof e=="string"&&e.trim().length>0}U.exports={componentsConfigSchema:he,isCSSClassString:Pe,isCompilableClass:Re,uncompilableClass:be}});var J={};ce(J,{CONFIGURED_COMPONENTS:()=>Le,resolveComponentConfig:()=>Ke});function B(e){return typeof e=="object"&&e!==null||typeof e=="function"}function r(e,t){return B(e)?e[t]:void 0}function i(e,t){let n=B(e)?e:null,o=n?Object.create(n):{},s=(a,d)=>Object.defineProperty(o,a,{value:d,enumerable:!0,writable:!0,configurable:!0});if(n)for(let a of Object.keys(n))s(a,n[a]);for(let a of Object.keys(t))s(a,t[a]);return o}function Ne(e,t){let n={};for(let o of t){let s=r(e,o);s!==void 0&&(n[o]=s)}return n}function l(...e){return e.find(t=>t!=null)||""}function C(...e){return e.find(Boolean)||{}}function g(e,t,n){return e[t]||Ne(e,n)}function q(e){return i(e,{default:l(e.default,e.main),outline:l(e.outline,e.tertiary),linkDestructive:l(e.linkDestructive,e.linkdestructive)})}function xe(e){let t=r(e,"variants"),n=C(e.variant,r(t,"variant")),o=C(e.size,r(t,"size")),s=C(e.iconPosition,r(t,"iconPosition")),a=C(e.fullwidth,r(t,"fullwidth")),d=r(e.slots,"icon")||{},S=r(d,"variants"),u=C(d.size,r(S,"size")),h=C(d.color,r(S,"color")),f=P=>{let p=r(s,P);return i(p,{sm:l(r(p,"sm"),r(p,"small")),lg:l(r(p,"lg"),r(p,"large"))})};return i(e,{variant:q(n),size:i(o,{icon:l(o.icon,r(r(s,"default"),"default")),"icon-xs":l(o["icon-xs"],o.xs,o.small,o.sm),"icon-sm":l(o["icon-sm"],o.small,o.sm),"icon-lg":l(o["icon-lg"],o.large,o.lg)}),iconPosition:i(s,{prefix:f("prefix"),suffix:f("suffix"),default:f("default")}),fullwidth:a,slots:i(e.slots,{icon:i(d,{size:i(u,{icon:l(u.icon,u.default),"icon-xs":l(u["icon-xs"],u.xs,u.small,u.sm,u.default),"icon-sm":l(u["icon-sm"],u.sm,u.default),"icon-lg":l(u["icon-lg"],u.lg,u.default)}),color:q(h)})})})}function Ie(e){let t=e.variant,n=r(t,"subtle");return i(e,{variant:i(t,{default:l(r(t,"default"),r(t,"main")),outline:l(r(t,"outline"),r(t,"tertiary")),ghost:l(r(t,"ghost"),r(t,"tertiary")),link:l(r(t,"link"),r(t,"tertiary")),subtle:i(n,{default:l(r(n,"default"),r(n,"main"))})})})}function we(e){let t=e.slots,n=r(t,"caption");return i(e,{slots:i(t,{caption:i(n,{overlay:r(n,"overlay")??r(n,"root")})})})}function Be(e,t={}){let n=r(e.slots,"calendar")??t.calendar,o=r(n,"slots"),s=r(o,"range");return i(e,{slots:i(e.slots,{calendar:i(n,{slots:i(o,{range:i(s,{root:r(s,"root")??r(o,"root"),container:r(s,"container")??r(o,"content"),row:r(s,"row")??r(o,"row")})})})})})}function je(e){return i(e,{slots:g(e,"slots",ke),states:g(e,"states",Me),props:g(e,"props",De)})}function ze(e){return i(e,{slots:g(e,"slots",Te)})}function Ae(e){return i(e,{slots:g(e,"slots",Fe)})}function X(e){return i(e.props,{padding:r(e.props,"padding")||e.padding})}function Ee(e){return i(e,{props:X(e)})}function Ge(e){return i(e,{slots:g(e,"slots",$e),props:X(e)})}function Ve(e){return i(e,{root:e.root,slots:i(e.slots,{track:r(e.slots,"track")})})}function Ke(e,t,...n){if(!Object.prototype.hasOwnProperty.call(w,e))throw new TypeError(`No component configuration policy for "${String(e)}".`);if(t==null)return t;if(!B(t))throw new TypeError("Component config must be an object.");let o=t;return w[e](o,n[0])}var ke,Me,De,Te,Fe,$e,w,Le,Y=de(()=>{ke=["header","title","description","content","action","footer"],Me=["noContent","outside"],De=["footerAlign"];Te=["dialog","input","list","empty","group","separator","item","shortcut","combobox"];Fe=["addon","button","text","input","textarea"];$e=["horizontal","vertical","container"];w={button:xe,badge:Ie,calendar:we,card:je,command:ze,"date-slider":Be,"input-group":Ae,popover:Ee,separator:Ge,spinner:Ve};Le=Object.freeze(Object.keys(w))});var ee=O((it,Z)=>{var k=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,We=Object.getOwnPropertyNames,qe=Object.prototype.hasOwnProperty,Xe=(e,t)=>{for(var n in t)k(e,n,{get:t[n],enumerable:!0})},Je=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of We(t))!qe.call(e,s)&&s!==n&&k(e,s,{get:()=>t[s],enumerable:!(o=Ue(t,s))||o.enumerable});return e},Ye=e=>Je(k({},"__esModule",{value:!0}),e),Q={};Xe(Q,{componentConfig:()=>He});Z.exports=Ye(Q);var H=(Y(),fe(J));function He(e,t){let n=e[t];return t==="date-slider"?(0,H.resolveComponentConfig)(t,n,{get calendar(){return e.calendar}}):(0,H.resolveComponentConfig)(t,n)}});var m=N($(),1),b=N(W(),1),ne=N(ee(),1),Qe=typeof window<"u"&&typeof window.document<"u";function M(e){return typeof e!="string"?!1:e.startsWith("__v_")||e==="then"}function T(e=""){let t=new Map;return new Proxy({},{get(n,o){if(o===Symbol.toPrimitive||o==="valueOf")return()=>e;if(o==="toString"||o===Symbol.toStringTag)return()=>e;if(o==="constructor")return Object;if(!M(o))return t.has(o)||t.set(o,T(e)),t.get(o)},has(n,o){return!M(o)},ownKeys(){return[]},getOwnPropertyDescriptor(n,o){if(!M(o))return{enumerable:!0,configurable:!0}}})}var te=new Map;function Ze(e){try{let t=e==="__FF_CONFIG__"?process.env.NEXT_PUBLIC_FF_CONFIG:process.env.NEXT_PUBLIC_FF_ICONS;if(!t)return null;let n=te.get(e);if(n?.serialized===t)return n.value;let o=JSON.parse(t);return(0,m.isPlainObject)(o)?(te.set(e,{serialized:t,value:o}),o):null}catch{return null}}function y(e){return e==="__FF_CONFIG__"&&typeof __FF_CONFIG__<"u"?__FF_CONFIG__:e==="__FF_ICONS__"&&typeof __FF_ICONS__<"u"?__FF_ICONS__:typeof globalThis<"u"&&globalThis[e]?globalThis[e]:Qe&&window[e]?window[e]:Ze(e)}function oe(e,t){return typeof t=="string"?(0,ne.componentConfig)(oe(e),t):!e||typeof e!="object"?T():(0,m.toRuntimeComponentsConfig)(e)}var D=new Map,j=new WeakMap,et=new Proxy({},{get(e,t){if(t===Symbol.toPrimitive||t==="valueOf")return()=>"";if(t==="toString"||t===Symbol.toStringTag)return()=>"[object Object]";if(t==="constructor")return Object;let n=y("__FF_CONFIG__");if(n&&t in n){let o=n[t];return j.has(o)||j.set(o,(0,m.toRuntimeComponentConfig)(o,String(t))),j.get(o)}return D.has(t)||D.set(t,T()),D.get(t)},has(){return!0},ownKeys(){return[]},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}),tt=new Proxy({},{get(e,t){if(t===Symbol.toPrimitive||t==="valueOf")return()=>"";if(t==="toString"||t===Symbol.toStringTag)return()=>"[object Object]";if(t==="constructor")return Object;let n=y("__FF_ICONS__");return n&&t in n?n[t]:null},has(e,t){let n=y("__FF_ICONS__");return n?t in n:!1},ownKeys(){let e=y("__FF_ICONS__");return e?Object.keys(e):[]},getOwnPropertyDescriptor(e,t){let n=y("__FF_ICONS__");if(n&&t in n)return{enumerable:!0,configurable:!0,value:n[t]}}});var export_componentsConfigSchema=b.componentsConfigSchema;var export_isCSSClassString=b.isCSSClassString;export{export_componentsConfigSchema as componentsConfigSchema,et as config,oe as ffdc,tt as iconSet,export_isCSSClassString as isCSSClassString};
@@ -1 +1 @@
1
- var j=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var S=j((q,F)=>{F.exports={name:"@frontfriend/sdk",version:"1.1.0"}});var C=j(($,b)=>{var{name:w}=S();b.exports={PACKAGE_NAME:w}});var{PACKAGE_NAME:m}=C(),u=require("fs"),E=require("http"),O=require("https"),i=require("path"),g=["contracts","tokens","components"],T=["app/globals.css","src/app/globals.css","styles/globals.css","src/styles/globals.css","src/styles.css","src/index.css","src/style.css"],k={next:["next.config.js","next.config.mjs","next.config.ts"],vite:["vite.config.ts","vite.config.js","vite.config.mts","vite.config.mjs"]},x=["primereact","@mui/material","antd","@chakra-ui/react","@mantine/core","@fluentui/react"],I=["style-dictionary","@tokens-studio/sd-transforms","@vanilla-extract/css","styled-components","@emotion/react"];function A(n){try{return JSON.parse(u.readFileSync(n,"utf8"))}catch{return{}}}function h(n){if(n===void 0)return null;if(!Array.isArray(n)){let t=new Error("`adopt` in frontfriend.config.js must be an array.");throw t.code="FRONTFRIEND_CONFIG_VALIDATION",t}let e=n.filter(t=>!g.includes(t));if(e.length>0){let t=new Error(`Unknown Frontfriend adoption level: ${e.join(", ")}.`);throw t.code="FRONTFRIEND_CONFIG_VALIDATION",t}let o=n.includes("components")?2:n.includes("tokens")?1:0;return g.slice(0,o+1)}function _(n){for(let[e,o]of Object.entries(k)){let t=o.find(s=>u.existsSync(i.join(n,s)));if(!t)continue;let r=u.readFileSync(i.join(n,t),"utf8");return{buildTool:e,present:r.includes(`${m}/${e}`)}}return{buildTool:null,present:!1}}function v(n){let e=[i.join(n,"components","ui"),i.join(n,"src","components","ui"),i.join(n,"app","components","ui")].filter(r=>u.existsSync(r)),o=new Set;function t(r){for(let s of u.readdirSync(r,{withFileTypes:!0})){let c=i.join(r,s.name);if(s.isDirectory())t(c);else if(/\.(js|jsx|ts|tsx|vue)$/.test(s.name)){if(!u.readFileSync(c,"utf8").includes(m))continue;let a=i.basename(s.name,i.extname(s.name));o.add(a.toLowerCase()==="index"?i.basename(r):a.toLowerCase())}}}return e.forEach(t),[...o].sort()}function P(n){let e=A(i.join(n,"package.json")),o={...e.dependencies||{},...e.devDependencies||{}},t=o.tailwindcss||null,s=[A(i.join(n,"components.json"))?.tailwind?.css,...T].filter(Boolean).find(a=>u.existsSync(i.join(n,a))),c=s?u.readFileSync(i.join(n,s),"utf8"):"",l=I.filter(a=>o[a]);return!l.length&&/:root[\s\S]*--(?:color|spacing|font|radius)-[\w-]+\s*:/.test(c)&&!c.includes(`${m}/theme.css`)&&l.push("css-custom-properties"),{nativeTokens:{present:c.includes("/* Frontfriend managed native tokens: start */"),file:s||null},tailwind:{present:!!t,version:t,major:t&&Number((String(t).match(/\d+/)||[])[0])||null},componentsJson:u.existsSync(i.join(n,"components.json")),themeImport:{present:c.includes(`${m}/theme.css`)||/@import\s+["'][^"']*node_modules\/\.cache\/frontfriend\/theme\.css["']/.test(c),file:s||null},plugin:_(n),frontfriendComponents:v(n),foreignComponentLibraries:x.filter(a=>o[a]),foreignTokenSystems:l}}function D(n,e){let o=h(n)||g,t=o.includes("tokens"),r=o.includes("components"),s=[];return t&&!e.themeImport.present&&!e.nativeTokens?.present&&s.push("Config adopts tokens, but the Frontfriend theme import was not observed."),!t&&e.themeImport.present&&s.push("Frontfriend tokens are present in CSS but are not adopted in config."),r&&!e.componentsJson&&s.push("Config adopts components, but components.json was not observed."),!r&&e.frontfriendComponents.length>0&&s.push("Frontfriend components are installed but are not adopted in config."),s}function L({apiUrl:n,token:e,ffId:o,name:t,adopt:r,observed:s,framework:c,primitive:l}){if(!n||!e||!o||!t||!c||l===void 0)return Promise.resolve({reported:!1,unavailable:!0});let a=new URL("/api/apps/sync",n),y=JSON.stringify({ffId:o,name:t,adopt:h(r),observed:s,runtime:"sdk",framework:c,primitive:l}),N=a.protocol==="https:"?O:E;return new Promise(d=>{let f=N.request(a,{method:"POST",headers:{authorization:`Bearer ${e}`,"content-type":"application/json","content-length":Buffer.byteLength(y)}},p=>{p.resume(),p.on("end",()=>{p.statusCode>=200&&p.statusCode<300?d({reported:!0,unavailable:!1}):d({reported:!1,unavailable:!0})})});f.on("error",()=>d({reported:!1,unavailable:!0})),f.setTimeout(1500,()=>{f.destroy(),d({reported:!1,unavailable:!0})}),f.end(y)})}module.exports={ADOPTION_LEVELS:g,normalizeAdopt:h,probeAdoption:P,adoptionWarnings:D,reportAdoption:L};
1
+ var j=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var S=j((q,F)=>{F.exports={name:"@frontfriend/sdk",version:"1.2.0"}});var C=j(($,b)=>{var{name:w}=S();b.exports={PACKAGE_NAME:w}});var{PACKAGE_NAME:m}=C(),u=require("fs"),E=require("http"),O=require("https"),i=require("path"),g=["contracts","tokens","components"],T=["app/globals.css","src/app/globals.css","styles/globals.css","src/styles/globals.css","src/styles.css","src/index.css","src/style.css"],k={next:["next.config.js","next.config.mjs","next.config.ts"],vite:["vite.config.ts","vite.config.js","vite.config.mts","vite.config.mjs"]},x=["primereact","@mui/material","antd","@chakra-ui/react","@mantine/core","@fluentui/react"],I=["style-dictionary","@tokens-studio/sd-transforms","@vanilla-extract/css","styled-components","@emotion/react"];function A(n){try{return JSON.parse(u.readFileSync(n,"utf8"))}catch{return{}}}function h(n){if(n===void 0)return null;if(!Array.isArray(n)){let t=new Error("`adopt` in frontfriend.config.js must be an array.");throw t.code="FRONTFRIEND_CONFIG_VALIDATION",t}let e=n.filter(t=>!g.includes(t));if(e.length>0){let t=new Error(`Unknown Frontfriend adoption level: ${e.join(", ")}.`);throw t.code="FRONTFRIEND_CONFIG_VALIDATION",t}let o=n.includes("components")?2:n.includes("tokens")?1:0;return g.slice(0,o+1)}function _(n){for(let[e,o]of Object.entries(k)){let t=o.find(s=>u.existsSync(i.join(n,s)));if(!t)continue;let r=u.readFileSync(i.join(n,t),"utf8");return{buildTool:e,present:r.includes(`${m}/${e}`)}}return{buildTool:null,present:!1}}function v(n){let e=[i.join(n,"components","ui"),i.join(n,"src","components","ui"),i.join(n,"app","components","ui")].filter(r=>u.existsSync(r)),o=new Set;function t(r){for(let s of u.readdirSync(r,{withFileTypes:!0})){let c=i.join(r,s.name);if(s.isDirectory())t(c);else if(/\.(js|jsx|ts|tsx|vue)$/.test(s.name)){if(!u.readFileSync(c,"utf8").includes(m))continue;let a=i.basename(s.name,i.extname(s.name));o.add(a.toLowerCase()==="index"?i.basename(r):a.toLowerCase())}}}return e.forEach(t),[...o].sort()}function P(n){let e=A(i.join(n,"package.json")),o={...e.dependencies||{},...e.devDependencies||{}},t=o.tailwindcss||null,s=[A(i.join(n,"components.json"))?.tailwind?.css,...T].filter(Boolean).find(a=>u.existsSync(i.join(n,a))),c=s?u.readFileSync(i.join(n,s),"utf8"):"",l=I.filter(a=>o[a]);return!l.length&&/:root[\s\S]*--(?:color|spacing|font|radius)-[\w-]+\s*:/.test(c)&&!c.includes(`${m}/theme.css`)&&l.push("css-custom-properties"),{nativeTokens:{present:c.includes("/* Frontfriend managed native tokens: start */"),file:s||null},tailwind:{present:!!t,version:t,major:t&&Number((String(t).match(/\d+/)||[])[0])||null},componentsJson:u.existsSync(i.join(n,"components.json")),themeImport:{present:c.includes(`${m}/theme.css`)||/@import\s+["'][^"']*node_modules\/\.cache\/frontfriend\/theme\.css["']/.test(c),file:s||null},plugin:_(n),frontfriendComponents:v(n),foreignComponentLibraries:x.filter(a=>o[a]),foreignTokenSystems:l}}function D(n,e){let o=h(n)||g,t=o.includes("tokens"),r=o.includes("components"),s=[];return t&&!e.themeImport.present&&!e.nativeTokens?.present&&s.push("Config adopts tokens, but the Frontfriend theme import was not observed."),!t&&e.themeImport.present&&s.push("Frontfriend tokens are present in CSS but are not adopted in config."),r&&!e.componentsJson&&s.push("Config adopts components, but components.json was not observed."),!r&&e.frontfriendComponents.length>0&&s.push("Frontfriend components are installed but are not adopted in config."),s}function L({apiUrl:n,token:e,ffId:o,name:t,adopt:r,observed:s,framework:c,primitive:l}){if(!n||!e||!o||!t||!c||l===void 0)return Promise.resolve({reported:!1,unavailable:!0});let a=new URL("/api/apps/sync",n),y=JSON.stringify({ffId:o,name:t,adopt:h(r),observed:s,runtime:"sdk",framework:c,primitive:l}),N=a.protocol==="https:"?O:E;return new Promise(d=>{let f=N.request(a,{method:"POST",headers:{authorization:`Bearer ${e}`,"content-type":"application/json","content-length":Buffer.byteLength(y)}},p=>{p.resume(),p.on("end",()=>{p.statusCode>=200&&p.statusCode<300?d({reported:!0,unavailable:!1}):d({reported:!1,unavailable:!0})})});f.on("error",()=>d({reported:!1,unavailable:!0})),f.setTimeout(1500,()=>{f.destroy(),d({reported:!1,unavailable:!0})}),f.end(y)})}module.exports={ADOPTION_LEVELS:g,normalizeAdopt:h,probeAdoption:P,adoptionWarnings:D,reportAdoption:L};