@frontfriend/sdk 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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.1"}});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};