@frigade/react 1.38.10 → 2.0.0-alpha.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/README.md CHANGED
@@ -1,76 +1,9 @@
1
- [![npm version](https://img.shields.io/npm/v/@frigade/react)](https://www.npmjs.com/package/@frigade/react)
2
- [![npm downloads](https://img.shields.io/npm/dw/@frigade/react)](https://www.npmjs.com/package/@frigade/react)
3
- [![npm version](https://github.com/FrigadeHQ/javascript/actions/workflows/tests.yml/badge.svg)](https://github.com/FrigadeHQ/javascript/actions/workflows/tests.yml)
4
- [![typescript](https://camo.githubusercontent.com/0f9fcc0ac1b8617ad4989364f60f78b2d6b32985ad6a508f215f14d8f897b8d3/68747470733a2f2f62616467656e2e6e65742f62616467652f547970655363726970742f7374726963742532302546302539462539322541412f626c7565)](https://www.npmjs.com/package/@frigade/react)
5
- [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
1
+ ## 🚨🚧 This package is currently in development. Do not use it in production. 🚧🚨
6
2
 
7
- <H3 align="center"><strong>Frigade React SDK</strong></H3>
8
- <div align="center">The easiest way for developers to build high-quality product onboarding and education.</div>
9
- <br />
10
- <div align="center">
11
- <a href="https://frigade.com">Website</a>
12
- <span> · </span>
13
- <a href="https://demo.frigade.com">Demo</a>
14
- <span> · </span>
15
- <a href="https://github.com/FrigadeHQ">GitHub</a>
16
- <span> · </span>
17
- <a href="https://docs.frigade.com">Docs</a></div>
3
+ If you're looking for the full / stable version of Frigade that we all know and love, head over to our main [React SDK](https://github.com/FrigadeHQ/javascript/tree/main/packages/react).
18
4
 
19
- <br />
20
-
21
- ![Frigade iamge](https://frigade.com/img/frigademetaimage-v2.png)
22
-
23
- ## Install
24
-
25
- Install the package from your command line.
26
-
27
- #### With yarn
28
-
29
- ```bash
30
- yarn add @frigade/react
31
- ```
32
-
33
- #### With npm
34
-
35
- ```bash
36
- npm install @frigade/react
37
- ```
38
-
39
- ### About Frigade
40
- [Frigade](<https://frigade.com>) is a developer-first platform for building quality product onboarding. A powerful, flexible API and native SDKs allow you to build onboarding 10x faster, experiment more easily, and drive customer success.
41
-
42
- Frigade supports a series of use cases such as:
43
-
44
- - **Registration**: Maximize the number of users getting through your sign up flows with beautiful explainers, progress bars, and forms.
45
- - **Activation**: Convert more customers by taking them through a series of key onboarding items specific to their role, permissions, or goals.
46
- - **Adoption**: Introduce audiences to specific features that deliver value with native hotspots, tooltips, tours, and interactive product guides.
47
- - **Engagement**: Keep active customers engaged, announce new product features, and create lifecycle specific re-onboarding flows for dormant or churned customers.
48
- - **Retention**: Increase retention by delivering the right content at the right time, and by asking your users for feedback on the product.
49
-
50
-
51
- # Features
52
-
53
- **Component Library**
54
-
55
- Unstyled, ready-made components for building high‑quality user onboarding, faster. Onboarding checklists, tooltips, product walkthroughs, and much more. [See components](https://frigade.com/components)
56
-
57
- **Integrations**
58
-
59
- Integrations with Segment, Mixpanel, Posthog, and more to power targeting, analytics, and communications.
60
-
61
- **Content Management**
62
-
63
- Lightweight CMS built-in to update and test onboarding copy and content.
64
-
65
- **Versioning**
66
-
67
- Frigade makes it easy to manage multiple versions of onboarding across staging and production. Revisit previous versions of onboarding to see how they performed and make improvements.
68
-
69
- **Customer Journeys**
70
-
71
- Frigade automatically tracks state management and onboarding progress. Give your team full observability into the customer journey, and use Frigade to kick off automated workflows.
72
-
73
-
74
- To learn more, visit [frigade.com](<https://frigade.com>)
5
+ Okay, now that we've gotten that important caveat out of the way: Welcome to the developer preview of the Frigade React SDK V2!
75
6
 
7
+ We're building our new version in public so that you can have a look around if you'd like, contribute ideas, point out API inconsistencies, test out how our new features will integrate into your existing Frigade setup, etc.
76
8
 
9
+ If you'd like more information about getting early access to V2, [reach out](mailto:hello@frigade.com).
package/dist/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
2
+ var _=Object.defineProperty,Fr=Object.defineProperties;var Wr=Object.getOwnPropertyDescriptors;var A=Object.getOwnPropertySymbols;var rr=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable;var Z=(r,e,o)=>e in r?_(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o,l=(r,e)=>{for(var o in e||(e={}))rr.call(e,o)&&Z(r,o,e[o]);if(A)for(var o of A(e))er.call(e,o)&&Z(r,o,e[o]);return r},f=(r,e)=>Fr(r,Wr(e));var c=(r,e)=>{var o={};for(var t in r)rr.call(r,t)&&e.indexOf(t)<0&&(o[t]=r[t]);if(r!=null&&A)for(var t of A(r))e.indexOf(t)<0&&er.call(r,t)&&(o[t]=r[t]);return o};var or=(r,e)=>{for(var o in e)_(r,o,{get:e[o],enumerable:!0})};var R=(r,e,o)=>new Promise((t,n)=>{var a=d=>{try{s(o.next(d))}catch(v){n(v)}},i=d=>{try{s(o.throw(d))}catch(v){n(v)}},s=d=>d.done?t(d.value):Promise.resolve(d.value).then(a,i);s((o=o.apply(r,e)).next())});var _react = require('react'); var sr = _interopRequireWildcard(_react); var z = _interopRequireWildcard(_react);var _clsx = require('clsx');var p={borders:{md:"var(--fr-borders-md)"},borderWidths:{0:"var(--fr-borderWidths-0)",md:"var(--fr-borderWidths-md)"},colors:{black:"var(--fr-colors-black)",gray100:"var(--fr-colors-gray100)",gray200:"var(--fr-colors-gray200)",gray300:"var(--fr-colors-gray300)",gray400:"var(--fr-colors-gray400)",gray500:"var(--fr-colors-gray500)",gray600:"var(--fr-colors-gray600)",gray700:"var(--fr-colors-gray700)",gray800:"var(--fr-colors-gray800)",gray900:"var(--fr-colors-gray900)",white:"var(--fr-colors-white)",blue400:"var(--fr-colors-blue400)",blue500:"var(--fr-colors-blue500)",blue800:"var(--fr-colors-blue800)",blue900:"var(--fr-colors-blue900)",green400:"var(--fr-colors-green400)",green500:"var(--fr-colors-green500)",green800:"var(--fr-colors-green800)",transparent:"var(--fr-colors-transparent)",red500:"var(--fr-colors-red500)",neutral:{background:"var(--fr-colors-neutral-background)",border:"var(--fr-colors-neutral-border)",foreground:"var(--fr-colors-neutral-foreground)",surface:"var(--fr-colors-neutral-surface)",active:{background:"var(--fr-colors-neutral-active-background)",border:"var(--fr-colors-neutral-active-border)",foreground:"var(--fr-colors-neutral-active-foreground)",surface:"var(--fr-colors-neutral-active-surface)"},focus:{background:"var(--fr-colors-neutral-focus-background)",border:"var(--fr-colors-neutral-focus-border)",foreground:"var(--fr-colors-neutral-focus-foreground)",surface:"var(--fr-colors-neutral-focus-surface)"},hover:{background:"var(--fr-colors-neutral-hover-background)",border:"var(--fr-colors-neutral-hover-border)",foreground:"var(--fr-colors-neutral-hover-foreground)",surface:"var(--fr-colors-neutral-hover-surface)"}},primary:{background:"var(--fr-colors-primary-background)",border:"var(--fr-colors-primary-border)",foreground:"var(--fr-colors-primary-foreground)",surface:"var(--fr-colors-primary-surface)",active:{background:"var(--fr-colors-primary-active-background)",border:"var(--fr-colors-primary-active-border)",foreground:"var(--fr-colors-primary-active-foreground)",surface:"var(--fr-colors-primary-active-surface)"},focus:{background:"var(--fr-colors-primary-focus-background)",border:"var(--fr-colors-primary-focus-border)",foreground:"var(--fr-colors-primary-focus-foreground)",surface:"var(--fr-colors-primary-focus-surface)"},hover:{background:"var(--fr-colors-primary-hover-background)",border:"var(--fr-colors-primary-hover-border)",foreground:"var(--fr-colors-primary-hover-foreground)",surface:"var(--fr-colors-primary-hover-surface)"}},secondary:{background:"var(--fr-colors-secondary-background)",border:"var(--fr-colors-secondary-border)",foreground:"var(--fr-colors-secondary-foreground)",surface:"var(--fr-colors-secondary-surface)",active:{background:"var(--fr-colors-secondary-active-background)",border:"var(--fr-colors-secondary-active-border)",foreground:"var(--fr-colors-secondary-active-foreground)",surface:"var(--fr-colors-secondary-active-surface)"},focus:{background:"var(--fr-colors-secondary-focus-background)",border:"var(--fr-colors-secondary-focus-border)",foreground:"var(--fr-colors-secondary-focus-foreground)",surface:"var(--fr-colors-secondary-focus-surface)"},hover:{background:"var(--fr-colors-secondary-hover-background)",border:"var(--fr-colors-secondary-hover-border)",foreground:"var(--fr-colors-secondary-hover-foreground)",surface:"var(--fr-colors-secondary-hover-surface)"}}},fontFamilies:{default:"var(--fr-fontFamilies-default)"},fontSizes:{xs:"var(--fr-fontSizes-xs)",sm:"var(--fr-fontSizes-sm)",md:"var(--fr-fontSizes-md)",lg:"var(--fr-fontSizes-lg)",xl:"var(--fr-fontSizes-xl)","2xl":"var(--fr-fontSizes-2xl)","3xl":"var(--fr-fontSizes-3xl)","4xl":"var(--fr-fontSizes-4xl)","5xl":"var(--fr-fontSizes-5xl)"},fontWeights:{regular:"var(--fr-fontWeights-regular)",demibold:"var(--fr-fontWeights-demibold)",bold:"var(--fr-fontWeights-bold)"},letterSpacings:{md:"var(--fr-letterSpacings-md)"},lineHeights:{xs:"var(--fr-lineHeights-xs)",sm:"var(--fr-lineHeights-sm)",md:"var(--fr-lineHeights-md)",lg:"var(--fr-lineHeights-lg)",xl:"var(--fr-lineHeights-xl)","2xl":"var(--fr-lineHeights-2xl)","3xl":"var(--fr-lineHeights-3xl)","4xl":"var(--fr-lineHeights-4xl)"},radii:{md:"var(--fr-radii-md)",lg:"var(--fr-radii-lg)",round:"var(--fr-radii-round)"},shadows:{md:"var(--fr-shadows-md)"},space:{0:"var(--fr-space-0)",1:"var(--fr-space-1)",2:"var(--fr-space-2)",3:"var(--fr-space-3)",4:"var(--fr-space-4)",5:"var(--fr-space-5)",6:"var(--fr-space-6)",7:"var(--fr-space-7)",8:"var(--fr-space-8)",9:"var(--fr-space-9)",10:"var(--fr-space-10)",11:"var(--fr-space-11)",12:"var(--fr-space-12)",13:"var(--fr-space-13)",14:"var(--fr-space-14)",15:"var(--fr-space-15)",16:"var(--fr-space-16)",17:"var(--fr-space-17)",18:"var(--fr-space-18)",19:"var(--fr-space-19)",20:"var(--fr-space-20)","-20":"var(--fr-space--20)","-19":"var(--fr-space--19)","-18":"var(--fr-space--18)","-17":"var(--fr-space--17)","-16":"var(--fr-space--16)","-15":"var(--fr-space--15)","-14":"var(--fr-space--14)","-13":"var(--fr-space--13)","-12":"var(--fr-space--12)","-11":"var(--fr-space--11)","-10":"var(--fr-space--10)","-9":"var(--fr-space--9)","-8":"var(--fr-space--8)","-7":"var(--fr-space--7)","-6":"var(--fr-space--6)","-5":"var(--fr-space--5)","-4":"var(--fr-space--4)","-3":"var(--fr-space--3)","-2":"var(--fr-space--2)","-1":"var(--fr-space--1)","-0.5":"var(--fr-space--0-5)","0.5":"var(--fr-space-0-5)",auto:"var(--fr-space-auto)"}};function M(r,e="",o="."){return Object.keys(r).reduce((t,n)=>{let i=`${e.length?`${e}${o}`:""}${n}`,s=r[n];return typeof s=="object"&&s!==null&&!Array.isArray(s)?Object.assign(t,M(s,i,o)):t[i]=s,t},{})}var D=M(p.colors),tr={color:D,backgroundColor:D,borderColor:D,border:p.borders,borderRadius:p.radii,borderWidth:p.borderWidths,fontFamily:p.fontFamilies,fontSize:p.fontSizes,fontWeight:p.fontWeights,gap:p.space,lineHeight:p.lineHeights,margin:p.space,marginTop:p.space,marginRight:p.space,marginBottom:p.space,marginLeft:p.space,padding:p.space,paddingTop:p.space,paddingRight:p.space,paddingBottom:p.space,paddingLeft:p.space,alignContent:["center","start","end","flex-start","flex-end","normal","baseline","first baseline","last baseline","space-between","space-around","space-evenly","stretch","safe center","unsafe center","inherit","initial","revert","revert-layer","unset"],alignItems:["normal","stretch","center","start","end","flex-start","flex-end","self-start","self-end","baseline","first baseline","last baseline","safe center","unsafe center","inherit","initial","revert","revert-layer","unset"],alignSelf:["auto","normal","center","start","end","self-start","self-end","flex-start","flex-end","baseline","first baseline","last baseline","stretch","safe center","unsafe center","inherit","initial","revert","revert-layer","unset"],flexDirection:["row","row-reverse","column","column-reverse","inherit","initial","revert","revert-layer","unset"],flexWrap:["nowrap","wrap","wrap-reverse","inherit","initial","revert","revert-layer","unset"],justifyContent:["center","start","end","flex-start","flex-end","left","right","normal","space-between","space-around","space-evenly","stretch","safe center","unsafe center","inherit","initial","revert","revert-layer","unset"],justifyItems:["normal","stretch","center","start","end","flex-start","flex-end","self-start","self-end","left","right","baseline","first baseline","last baseline","safe center","unsafe center","legacy right","legacy left","legacy center","inherit","initial","revert","revert-layer","unset"],boxSizing:["border-box","content-box","inherit","initial","revert","revert-layer","unset"],position:["static","relative","absolute","fixed","sticky","inherit","initial","revert","revert-layer","unset"],display:["block","block flex","block flow","block flow-root","block grid","contents","flex","flow-root","grid","inherit","initial","inline","inline flex","inline flow","inline flow-root","inline grid","inline-block","inline-flex","inline-grid","list-item","none","revert","revert-layer","table","table-row-group","table-header-group","table-footer-group","table-row","table-cell","table-column-group","table-column","table-caption","unset"]},nr={m:["margin"],mt:["marginTop"],mr:["marginRight"],mb:["marginBottom"],ml:["marginLeft"],mx:["marginLeft","marginRight"],my:["marginTop","marginBottom"],p:["padding"],pt:["paddingTop"],pr:["paddingRight"],pb:["paddingBottom"],pl:["paddingLeft"],px:["paddingLeft","paddingRight"],py:["paddingTop","paddingBottom"]};function Ar(r){if(Array.isArray(r))return new Map(r.map(e=>[e,e]));if(typeof r=="object"&&r!==null)return new Map(Object.entries(r));if(["string","number"].includes(typeof r))return new Map([r,r]);throw new Error("Invalid entry in styleProps")}var Vr=new Map(Object.entries(tr).map(([r,e])=>[r,Ar(e)])),Mr=new Map(Object.entries(nr).map(([r,e])=>[r,new Set(e)]));function ar(r){let e=Object.assign({},r),o={};return Object.entries(e).forEach(([t,n])=>{let a=Mr.get(t);a!=null&&(a.forEach(i=>{e[i]=n}),delete e[t])}),Object.entries(e).forEach(([t,n])=>{let a=Vr.get(t);if(a!=null)if(typeof n=="string"&&n.indexOf(" ")>-1){let i=n.split(" ");o[t]=i.map(s=>{var d;return(d=a.get(s.toString()))!=null?d:s}).join(" "),delete e[t]}else a.has(n.toString())&&(o[t]=a.get(n.toString()),delete e[t])}),{cssFromProps:o,unmatchedProps:e}}var _jsxruntime = require('@emotion/react/jsx-runtime');function ir(r){return r&&`fr-${r}`}function Er(r){return r&&(Array.isArray(r)?r.map(e=>ir(e)).join(" "):ir(r))}function jr(s,i){var d=s,{as:r,children:e,className:o,css:t,part:n}=d,a=c(d,["as","children","className","css","part"]);let v=r!=null?r:"div",{cssFromProps:h,unmatchedProps:b}=ar(a),P=Er(n),B=o||P?_clsx.clsx.call(void 0, o,P):void 0;return _jsxruntime.jsx.call(void 0, v,f(l({className:B,css:[l(l({boxSizing:"border-box"},h),t)]},b),{ref:i,children:e}))}var u=sr.forwardRef(jr);var E={};or(E,{Body1:()=>Ur,Body2:()=>Xr,Caption:()=>Jr,Display1:()=>Ir,Display2:()=>$r,H1:()=>Lr,H2:()=>Kr,H3:()=>Nr,H4:()=>qr,base:()=>x});var x=({fontFamilies:r})=>({fontFamily:r.default,margin:0}),Ir=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r["5xl"],fontWeight:e.bold,lineHeight:o["4xl"]}],$r=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r["4xl"],fontWeight:e.bold,lineHeight:o["3xl"]}],Lr=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r["3xl"],fontWeight:e.bold,lineHeight:o["2xl"]}],Kr=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r["2xl"],fontWeight:e.bold,lineHeight:o.xl}],Nr=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r.xl,fontWeight:e.bold,lineHeight:o.lg}],qr=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r.lg,fontWeight:e.bold,lineHeight:o.md}],Ur=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r.md,fontWeight:e.regular,lineHeight:o.md}],Xr=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r.sm,fontWeight:e.regular,lineHeight:o.md}],Jr=({fontSizes:r,fontWeights:e,lineHeights:o})=>[x,{fontSize:r.xs,fontWeight:e.regular,lineHeight:o.sm}];function lr(a){var i=a,{as:r="span",children:e,css:o,variant:t="Body1"}=i,n=c(i,["as","children","css","variant"]);return _jsxruntime.jsx.call(void 0, u,f(l({as:r,css:[E[t],o]},n),{children:e}))}var Qr=["Display1","Display2","H1","H2","H3","H4","Body1","Body2","Caption"],Yr=Object.fromEntries(Qr.map(r=>{let e=["H1","H2","H3","H4"].includes(r)?r.toLowerCase():void 0,o=t=>_jsxruntime.jsx.call(void 0, lr,f(l({as:e},t),{variant:r,children:t.children}));return o.displayName=`Text.${r}`,[r,o]})),w= exports.Text =Object.assign(lr,Yr);var j={};or(j,{Link:()=>_r,Plain:()=>re,Primary:()=>Gr,Secondary:()=>Zr,base:()=>k});var k=({radii:r,space:e})=>({borderWidth:0,borderRadius:r.md,padding:`${e[2]} ${e[4]}`}),Gr=({colors:r})=>[k,{backgroundColor:r.primary.surface,color:r.primary.foreground,"&:hover":{backgroundColor:r.primary.hover.surface}}],Zr=({colors:r})=>[k,{backgroundColor:r.secondary.surface,color:r.secondary.foreground,"&:hover":{backgroundColor:r.secondary.hover.surface}}],_r=({colors:r})=>[k,{backgroundColor:r.transparent,color:r.primary.surface,"&:hover":{color:r.primary.hover.surface}}],re=({colors:r})=>[k,{backgroundColor:r.transparent,color:r.neutral.foreground}];function fr(i){var s=i,{as:r,children:e,css:o={},title:t,variant:n="Primary"}=s,a=c(s,["as","children","css","title","variant"]);return _jsxruntime.jsxs.call(void 0, u,f(l({as:r!=null?r:"button",css:[j[n],o]},a),{children:[e,t&&_jsxruntime.jsx.call(void 0, w.Body2,{fontWeight:"demibold",children:t})]}))}var ee=["Primary","Secondary","Link","Plain"],oe=Object.fromEntries(ee.map(r=>{let e=r.toLocaleLowerCase(),o=a=>{var i=a,{part:t}=i,n=c(i,["part"]);return _jsxruntime.jsx.call(void 0, fr,f(l({part:[`button-${e}`,t]},n),{variant:r,children:n.children}))};return o.displayName=`Text.${r}`,[r,o]})),O= exports.Button =Object.assign(fr,oe);var ne=z.forwardRef((n,t)=>{var a=n,{children:r,css:e}=a,o=c(a,["children","css"]);return _jsxruntime.jsx.call(void 0, u,f(l({css:[{display:"flex",flexDirection:"row"},e]},o),{ref:t,children:r}))}),ae=z.forwardRef((n,t)=>{var a=n,{children:r,css:e}=a,o=c(a,["children","css"]);return _jsxruntime.jsx.call(void 0, u,f(l({css:[{display:"flex",flexDirection:"column"},e]},o),{ref:t,children:r}))}),S= exports.Flex ={Column:ae,Row:ne};var _react2 = require('@emotion/react');function ur(r){var e=r.match(/^var\((.*)\)$/);return e?e[1]:r}function gr(r,e){var o=r;for(var t of e){if(!(t in o))throw new Error("Path ".concat(e.join(" -> ")," does not exist in object"));o=o[t]}return o}function I(r,e){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],t=r.constructor();for(var n in r){var a=r[n],i=[...o,n];typeof a=="string"||typeof a=="number"||a==null?t[n]=e(a,i):typeof a=="object"&&!Array.isArray(a)?t[n]=I(a,e,i):console.warn('Skipping invalid key "'.concat(i.join("."),'". Should be a string, number, null or object. Received: "').concat(Array.isArray(a)?"Array":typeof a,'"'))}return t}function mr(r,e,o){r.style.setProperty(ur(e),o)}function vr(r,e,o){if(typeof o=="object"){var t=e;I(o,(i,s)=>{mr(r,gr(t,s),String(i))})}else{var n=e;for(var a in n)mr(r,a,n[a])}}function $(r,e=p){return Object.keys(r).reduce((o,t)=>{let n=r[t];return typeof n=="object"&&n!==null&&!Array.isArray(n)&&t in r?Object.assign(o,$(n,e[t])):o[e[t]]=r[t],o},{})}function br(r={},e=":root"){_react.useEffect.call(void 0, ()=>{let o=$(r),t=document.querySelector(e);vr(t,o)},[r])}var L=_react.createContext.call(void 0, {apiKey:"",config:{}});function ce({apiKey:r,children:e,config:o={},theme:t}){return br(t),_jsxruntime.jsx.call(void 0, L.Provider,{value:{apiKey:r,config:o},children:_jsxruntime.jsx.call(void 0, _react2.ThemeProvider,{theme:p,children:e})})}var _solid = require('@heroicons/react/24/solid');var _reactpopover = require('@radix-ui/react-popover'); var y = _interopRequireWildcard(_reactpopover);function hr(){let r="DOMRect"in globalThis?new DOMRect:{height:0,width:0,x:0,y:0,bottom:0,top:0,right:0,left:0,toJSON:()=>{}},[e,o]=_react.useState.call(void 0, r),[t,n]=_react.useState.call(void 0, null),a=_react.useCallback.call(void 0, i=>{n(i)},[]);return _react.useLayoutEffect.call(void 0, ()=>{t&&o(t.getBoundingClientRect())},[t]),{node:t,rect:e,ref:a}}var Pr="e160hp1";function Tr(t){var n=t,{style:r={},part:e=""}=n,o=c(n,["style","part"]);return _jsxruntime.jsxs.call(void 0, u,f(l({part:`dot-wrapper ${e}`,style:l({height:"48px",position:"absolute",width:"48px"},r)},o),{children:[_jsxruntime.jsx.call(void 0, u,{backgroundColor:"primary.surface",className:Pr,part:"dot-pulse",style:{borderRadius:"24px",height:"48px",left:0,position:"absolute",top:0,transformOrigin:"center center",width:"48px"}}),_jsxruntime.jsx.call(void 0, u,{backgroundColor:"primary.surface",part:"dot",style:{borderRadius:"12px",height:"24px",left:"12px",position:"absolute",top:"12px",width:"24px"}})]}))}function K(t){var n=t,{part:r,src:e}=n,o=c(n,["part","src"]);return _jsxruntime.jsx.call(void 0, u,l({as:"img",part:["image",r],src:e},o))}function ge(r){var e,o,t;if(r.includes("youtube"))return`https://www.youtube.com/embed/${(e=r.split("v=")[1])==null?void 0:e.split("&")[0]}`;if(r.includes("vimeo"))return`https://player.vimeo.com/video/${(o=r.split("vimeo.com/")[1])==null?void 0:o.split("&")[0]}`;if(r.includes("wistia"))return`https://fast.wistia.net/embed/iframe/${(t=r.split("wistia.com/medias/")[1])==null?void 0:t.split("&")[0]}`;throw new Error("Could not map videoUri to a known provider (Youtube, Vimeo, Wistia).")}function N(t){var n=t,{part:r,src:e}=n,o=c(n,["part","src"]);let a=ge(e);return _jsxruntime.jsx.call(void 0, u,l({allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,as:"iframe",backgroundColor:"gray100",borderWidth:0,part:["video",r],src:a},o))}function q(t){var n=t,{src:r,type:e}=n,o=c(n,["src","type"]);return _jsxruntime.jsx.call(void 0, e==="video"?N:K,l({src:r},o))}function Br({props:r,alignAttr:e,sideAttr:o}){let t=o!=null?o:"bottom",n={},a=(()=>{if(["after","before"].includes(r.align)){if(e=="start")return"before";if(e=="end")return"after"}return r.align})(),i="-24px",s={top:"bottom",right:"left",bottom:"top",left:"right"};return n[s[t]]=i,["before","end"].includes(a)?["top","bottom"].includes(t)?n.right=i:n.bottom=i:["after","start"].includes(a)?["top","bottom"].includes(t)?n.left=i:n.top=i:["top","bottom"].includes(t)?n.left=`calc(50% + ${i})`:n.top=`calc(50% + ${i})`,n}var Sr={content:["align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPadding","forceMount","hideWhenDetached","onCloseAutoFocus","onEscapeKeyDown","onFocusOutside","onInteractOutside","onOpenAutoFocus","onPointerDownOutside","side","sideOffset","sticky"],root:["defaultOpen","modal","onOpenChange","open"]};function Cr(r,e){var n,a,i;let o=Object.fromEntries(Sr.content.map(s=>[s,r[s]]).filter(s=>s[1]!==void 0)),t=Object.fromEntries(Sr.root.map(s=>[s,r[s]]).filter(s=>s[1]!==void 0));if(["before","after"].includes(o.align)){let s={after:"end",before:"start"},d=(H,V)=>["top","bottom"].includes(V)?H=="after"?"marginLeft":"marginRight":H=="after"?"marginTop":"marginBottom",v=(n=o.alignOffset)!=null?n:0,h=(a=o.style)!=null?a:{},b=(i=o.side)!=null?i:"bottom",P=o.align;o.style=f(l({},h),{[d(P,b)]:v});let B=["top","bottom"].includes(b)?e.width:e.height;o.alignOffset=(B+v)*-1,o.align=s[P]}return{contentProps:o,rootProps:t}}function g(i){var s=i,{anchor:r,children:e,css:o,spotlight:t=!1,style:n}=s,a=c(s,["anchor","children","css","spotlight","style"]);let{node:d,rect:v,ref:h}=hr(),[b,P]=_react.useState.call(void 0, a.align),[B,H]=_react.useState.call(void 0, a.side);if(d!==null){let C=d.getAttribute("data-align"),G=d.getAttribute("data-side");b!==C&&P(C),B!==G&&H(G)}let{contentProps:V,rootProps:kr}=Cr(a,v),Q=_react.useRef.call(void 0, null),[F,Or]=_react.useState.call(void 0, null);if(_react.useEffect.call(void 0, ()=>{let C=document.querySelector(r);C!=null&&(Q.current=C,Or(Q))},[r]),F==null)return null;let W=F.current.getBoundingClientRect(),Y="0";typeof window!="undefined"&&(Y=window.getComputedStyle(F.current).borderRadius);let Hr=Br({props:a,alignAttr:b,sideAttr:B});return _jsxruntime.jsxs.call(void 0, y.Root,f(l({defaultOpen:!0},kr),{children:[_jsxruntime.jsx.call(void 0, y.Anchor,{virtualRef:F}),_jsxruntime.jsx.call(void 0, y.Portal,{children:_jsxruntime.jsxs.call(void 0, "div",{css:o,children:[t&&_jsxruntime.jsx.call(void 0, u,{borderRadius:Y,part:"tooltip-spotlight",position:"absolute",css:{boxShadow:"0 0 0 2000px rgb(0 0 0 / 0.5)",height:W.height,left:W.left,top:W.top,width:W.width}}),_jsxruntime.jsx.call(void 0, y.Content,f(l({asChild:!0},V),{ref:h,children:_jsxruntime.jsxs.call(void 0, S.Column,{backgroundColor:"white",borderRadius:"md",p:5,part:"tooltip-content",position:"relative",css:l({boxShadow:"0px 4px 20px rgba(0, 0, 0, 0.1)",width:"300px"},n),children:[_jsxruntime.jsx.call(void 0, Tr,{style:Hr}),e]})}))]})})]}))}g.Close=o=>{var t=o,{css:r}=t,e=c(t,["css"]);return _jsxruntime.jsx.call(void 0, y.Close,{"aria-label":"Close",asChild:!0,children:_jsxruntime.jsx.call(void 0, O.Plain,f(l({css:[{top:0,right:0},r],part:"tooltip-close",position:"absolute"},e),{children:_jsxruntime.jsx.call(void 0, _solid.XMarkIcon,{height:"20",fill:"currentColor"})}))})};g.Media=o=>{var t=o,{src:r}=t,e=c(t,["src"]);return r==null?null:_jsxruntime.jsx.call(void 0, q,l({borderRadius:"md md 0 0",borderWidth:"0",css:{aspectRatio:"2"},margin:"-5 -5 5",src:r},e))};g.Primary=t=>{var n=t,{onClick:r,title:e}=n,o=c(n,["onClick","title"]);return e==null?null:_jsxruntime.jsx.call(void 0, O.Primary,l({title:e,onClick:r},o))};g.Progress=o=>{var t=o,{children:r}=t,e=c(t,["children"]);return r==null?null:_jsxruntime.jsx.call(void 0, w.Body2,f(l({fontWeight:"demibold",part:"progress"},e),{children:r}))};g.Secondary=t=>{var n=t,{onClick:r,title:e}=n,o=c(n,["onClick","title"]);return e==null?null:_jsxruntime.jsx.call(void 0, O.Secondary,l({title:e,onClick:r},o))};g.Subtitle=o=>{var t=o,{children:r}=t,e=c(t,["children"]);return r==null?null:_jsxruntime.jsx.call(void 0, w.Body2,f(l({part:"subtitle"},e),{children:r}))};g.Title=o=>{var t=o,{children:r}=t,e=c(t,["children"]);return r==null?null:_jsxruntime.jsx.call(void 0, w.Body1,f(l({fontWeight:"bold",mb:1,part:"title"},e),{children:r}))};var _js = require('@frigade/js');function Rr(r){let[e,o]=_react.useState.call(void 0, null),{apiKey:t,config:n}=_react.useContext.call(void 0, L);function a(){return R(this,null,function*(){let s=yield(yield new (0, _js.Frigade)(t,{apiUrl:n.apiUrl,userId:n.userId})).getFlow(r);o(s)})}return e===null&&a(),{flow:e,fetchFlow:a}}function Te(o){var t=o,{flowId:r}=t,e=c(t,["flowId"]);var h;let{flow:n,fetchFlow:a}=Rr(r);if(n==null||n!=null&&n.isCompleted||n!=null&&n.isSkipped)return null;n.start();let i=n.getCurrentStep();i==null||i.start();function s(){return R(this,null,function*(){yield n.skip(),a()})}function d(){return R(this,null,function*(){yield i.complete(),a()})}let v=d;return _jsxruntime.jsxs.call(void 0, g,f(l({align:"after",anchor:i.selector,onOpenAutoFocus:b=>b.preventDefault(),onPointerDownOutside:b=>b.preventDefault()},e),{children:[_jsxruntime.jsx.call(void 0, g.Close,{onClick:s}),_jsxruntime.jsx.call(void 0, g.Media,{src:(h=i.videoUri)!=null?h:i.imageUri,type:i.videoUri?"video":"image"}),_jsxruntime.jsx.call(void 0, g.Title,{children:i.title}),_jsxruntime.jsx.call(void 0, g.Subtitle,{children:i.subtitle}),_jsxruntime.jsxs.call(void 0, S.Row,{pt:4,alignItems:"center",justifyContent:"space-between",children:[_jsxruntime.jsx.call(void 0, g.Progress,{children:`${n.getNumberOfCompletedSteps()}/${n.steps.size}`}),_jsxruntime.jsxs.call(void 0, S.Row,{gap:3,children:[_jsxruntime.jsx.call(void 0, g.Secondary,{title:i.secondaryButtonTitle,onClick:v}),_jsxruntime.jsx.call(void 0, g.Primary,{title:i.primaryButtonTitle,onClick:d})]})]})]}))}exports.Box = u; exports.Button = O; exports.Flex = S; exports.Provider = ce; exports.Text = w; exports.Tooltip = g; exports.Tour = Te;
3
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Box/index.tsx","../src/shared/theme/themeContract.css.ts","../src/shared/flattenObject.ts","../src/components/Box/styleProps.ts","../src/components/Box/stylePropsToCss.ts","../src/components/Text/Text.styles.ts","../src/components/Text/index.tsx","../src/components/Button/Button.styles.ts","../src/components/Button/index.tsx","../src/components/Flex/Flex.tsx","../src/components/Provider/index.tsx","../../../node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js","../../../node_modules/@vanilla-extract/dynamic/dist/vanilla-extract-dynamic.esm.js","../src/hooks/useThemeOverrides.ts","../src/shared/mapThemePropToThemeVars.ts","../src/components/Tooltip/index.tsx","../src/hooks/useBoundingClientRect.ts","../src/components/Tooltip/Dot.css.ts","../src/components/Tooltip/Dot.tsx","../src/components/Media/Image.tsx","../src/components/Media/Video.tsx","../src/components/Media/Media.tsx","../src/components/Tooltip/getDotPosition.ts","../src/components/Tooltip/mapTooltipPropsToPopoverProps.ts","../src/hooks/useFlow.ts","../src/components/Tour/index.tsx"],"names":["React","clsx","theme","flattenObject","obj","path","separator","acc","k","currentPath","currentValue","colorTokens","styleProps","stylePropShorthands","prepValue","value","v","stylePropsMap","propName","stylePropShorthandsMap","shorthand","targetProps","stylePropsToCss","props","unmatchedProps","cssFromProps","propValue","matchedShorthand","styleProp","splitPropValues","_a","jsx","prefixPart","part","processPart","p","BoxWithRef","ref","_b","as","children","className","css","__objRest","Component","processedPart","classNameWithPart","__spreadProps","__spreadValues","Box","Text_styles_exports","__export","Body1","Body2","Caption","Display1","Display2","H1","H2","H3","H4","base","fontFamilies","fontSizes","fontWeights","lineHeights","BaseText","variant","textVariantNames","textVariantComponents","asProp","component","Text","Button_styles_exports","Link","Plain","Primary","Secondary","radii","space","colors","jsxs","BaseButton","title","buttonVariantNames","buttonVariantComponents","variantPart","Button","Row","Column","Flex","createContext","ThemeProvider","getVarName","variable","matches","get","result","key","walkObject","fn","clone","_value","setVar","element","setElementVars","varsOrContract","tokens","_contract","_vars","varName","useEffect","mapThemePropToThemeVars","themeLevel","contractLevel","useThemeOverrides","themeOverrides","selector","mappedThemeVars","root","FrigadeContext","Provider","apiKey","config","useRef","useState","XMarkIcon","Popover","useCallback","useLayoutEffect","useBoundingClientRect","initialRect","rect","setRect","node","setNode","animationPulse","Dot","style","Image","src","getVideoEmbedSrc","videoUri","_c","Video","videoEmbedSrc","Media","type","getDotPosition","alignAttr","sideAttr","currentSide","dotProps","currentAlign","dotOffset","oppositeSides","RADIX_PROPS","mapTooltipPropsToRadixProps","contentRect","contentProps","propEntry","rootProps","mapToOriginalAlignValues","mapAlignOffsetToMargin","align","side","originalOffset","originalStyleProp","lengthOfCurrentSide","Tooltip","anchor","spotlight","contentNode","contentRef","setAlignAttr","setSideAttr","currentAlignAttr","currentSideAttr","anchorRef","anchorElementRef","setAnchorElementRef","anchorQuery","anchorRect","anchorRadius","dotPosition","onClick","Frigade","useContext","useFlow","flowId","flow","setFlow","fetchFlow","__async","flowResponse","Tour","step","handleDismiss","handlePrimary","handleSecondary","e"],"mappings":"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EAAIE,CAAW,EAAIC,EAGdH,CACT,EAAG,CAAC,CAAC,CACP,CCXA,IAAMI,EAAuCR,EAAcD,EAAM,MAAM,EAO1DU,GAAa,CACxB,MAAOD,EACP,gBAAiBA,EACjB,YAAaA,EACb,OAAQT,EAAM,QACd,aAAcA,EAAM,MACpB,YAAaA,EAAM,aAEnB,WAAYA,EAAM,aAClB,SAAUA,EAAM,UAChB,WAAYA,EAAM,YAElB,IAAKA,EAAM,MAEX,WAAYA,EAAM,YAElB,OAAQA,EAAM,MACd,UAAWA,EAAM,MACjB,YAAaA,EAAM,MACnB,aAAcA,EAAM,MACpB,WAAYA,EAAM,MAElB,QAASA,EAAM,MACf,WAAYA,EAAM,MAClB,aAAcA,EAAM,MACpB,cAAeA,EAAM,MACrB,YAAaA,EAAM,MAEnB,aAAc,CACZ,SACA,QACA,MACA,aACA,WACA,SACA,WACA,iBACA,gBACA,gBACA,eACA,eACA,UACA,cACA,gBACA,UACA,UACA,SACA,eACA,OACF,EAEA,WAAY,CACV,SACA,UACA,SACA,QACA,MACA,aACA,WACA,aACA,WACA,WACA,iBACA,gBACA,cACA,gBACA,UACA,UACA,SACA,eACA,OACF,EAEA,UAAW,CACT,OACA,SACA,SACA,QACA,MACA,aACA,WACA,aACA,WACA,WACA,iBACA,gBACA,UACA,cACA,gBACA,UACA,UACA,SACA,eACA,OACF,EAEA,cAAe,CACb,MACA,cACA,SACA,iBACA,UACA,UACA,SACA,eACA,OACF,EAEA,SAAU,CACR,SACA,OACA,eACA,UACA,UACA,SACA,eACA,OACF,EAEA,eAAgB,CACd,SACA,QACA,MACA,aACA,WACA,OACA,QACA,SACA,gBACA,eACA,eACA,UACA,cACA,gBACA,UACA,UACA,SACA,eACA,OACF,EAEA,aAAc,CACZ,SACA,UACA,SACA,QACA,MACA,aACA,WACA,aACA,WACA,OACA,QACA,WACA,iBACA,gBACA,cACA,gBACA,eACA,cACA,gBACA,UACA,UACA,SACA,eACA,OACF,EAEA,UAAW,CAAC,aAAc,cAAe,UAAW,UAAW,SAAU,eAAgB,OAA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","sourcesContent":["import * as React from 'react'\nimport { clsx } from 'clsx'\n\nimport '../../shared/theme/baseTheme.css'\nimport { stylePropsToCss } from './stylePropsToCss'\n\nfunction prefixPart(part: string | undefined) {\n return part ? `fr-${part}` : part\n}\n\nfunction processPart(part: string | string[] | undefined) {\n if (!part) return part\n\n return Array.isArray(part) ? part.map((p) => prefixPart(p)).join(' ') : prefixPart(part)\n}\n\nexport type BoxProps<T extends React.ElementType = React.ElementType> = {\n as?: T\n part?: string | string[]\n} & React.ComponentPropsWithRef<T>\n\nfunction BoxWithRef<T extends React.ElementType = React.ElementType>(\n { as, children, className, css, part, ...props }: BoxProps<T>,\n ref: React.ForwardedRef<T>\n) {\n const Component = as ?? 'div'\n\n const { cssFromProps, unmatchedProps } = stylePropsToCss(props)\n\n const processedPart = processPart(part)\n const classNameWithPart = className || processedPart ? clsx(className, processedPart) : undefined\n\n return (\n // @ts-ignore: TODO: ref types are yet again complaining\n <Component\n className={classNameWithPart}\n css={[{ boxSizing: 'border-box', ...cssFromProps, ...css }]}\n {...unmatchedProps}\n ref={ref}\n >\n {children}\n </Component>\n )\n}\n\nexport const Box = React.forwardRef(BoxWithRef)\n","export var theme = {borders:{md:'var(--fr-borders-md)'},borderWidths:{'0':'var(--fr-borderWidths-0)',md:'var(--fr-borderWidths-md)'},colors:{black:'var(--fr-colors-black)',gray100:'var(--fr-colors-gray100)',gray200:'var(--fr-colors-gray200)',gray300:'var(--fr-colors-gray300)',gray400:'var(--fr-colors-gray400)',gray500:'var(--fr-colors-gray500)',gray600:'var(--fr-colors-gray600)',gray700:'var(--fr-colors-gray700)',gray800:'var(--fr-colors-gray800)',gray900:'var(--fr-colors-gray900)',white:'var(--fr-colors-white)',blue400:'var(--fr-colors-blue400)',blue500:'var(--fr-colors-blue500)',blue800:'var(--fr-colors-blue800)',blue900:'var(--fr-colors-blue900)',green400:'var(--fr-colors-green400)',green500:'var(--fr-colors-green500)',green800:'var(--fr-colors-green800)',transparent:'var(--fr-colors-transparent)',red500:'var(--fr-colors-red500)',neutral:{background:'var(--fr-colors-neutral-background)',border:'var(--fr-colors-neutral-border)',foreground:'var(--fr-colors-neutral-foreground)',surface:'var(--fr-colors-neutral-surface)',active:{background:'var(--fr-colors-neutral-active-background)',border:'var(--fr-colors-neutral-active-border)',foreground:'var(--fr-colors-neutral-active-foreground)',surface:'var(--fr-colors-neutral-active-surface)'},focus:{background:'var(--fr-colors-neutral-focus-background)',border:'var(--fr-colors-neutral-focus-border)',foreground:'var(--fr-colors-neutral-focus-foreground)',surface:'var(--fr-colors-neutral-focus-surface)'},hover:{background:'var(--fr-colors-neutral-hover-background)',border:'var(--fr-colors-neutral-hover-border)',foreground:'var(--fr-colors-neutral-hover-foreground)',surface:'var(--fr-colors-neutral-hover-surface)'}},primary:{background:'var(--fr-colors-primary-background)',border:'var(--fr-colors-primary-border)',foreground:'var(--fr-colors-primary-foreground)',surface:'var(--fr-colors-primary-surface)',active:{background:'var(--fr-colors-primary-active-background)',border:'var(--fr-colors-primary-active-border)',foreground:'var(--fr-colors-primary-active-foreground)',surface:'var(--fr-colors-primary-active-surface)'},focus:{background:'var(--fr-colors-primary-focus-background)',border:'var(--fr-colors-primary-focus-border)',foreground:'var(--fr-colors-primary-focus-foreground)',surface:'var(--fr-colors-primary-focus-surface)'},hover:{background:'var(--fr-colors-primary-hover-background)',border:'var(--fr-colors-primary-hover-border)',foreground:'var(--fr-colors-primary-hover-foreground)',surface:'var(--fr-colors-primary-hover-surface)'}},secondary:{background:'var(--fr-colors-secondary-background)',border:'var(--fr-colors-secondary-border)',foreground:'var(--fr-colors-secondary-foreground)',surface:'var(--fr-colors-secondary-surface)',active:{background:'var(--fr-colors-secondary-active-background)',border:'var(--fr-colors-secondary-active-border)',foreground:'var(--fr-colors-secondary-active-foreground)',surface:'var(--fr-colors-secondary-active-surface)'},focus:{background:'var(--fr-colors-secondary-focus-background)',border:'var(--fr-colors-secondary-focus-border)',foreground:'var(--fr-colors-secondary-focus-foreground)',surface:'var(--fr-colors-secondary-focus-surface)'},hover:{background:'var(--fr-colors-secondary-hover-background)',border:'var(--fr-colors-secondary-hover-border)',foreground:'var(--fr-colors-secondary-hover-foreground)',surface:'var(--fr-colors-secondary-hover-surface)'}}},fontFamilies:{'default':'var(--fr-fontFamilies-default)'},fontSizes:{xs:'var(--fr-fontSizes-xs)',sm:'var(--fr-fontSizes-sm)',md:'var(--fr-fontSizes-md)',lg:'var(--fr-fontSizes-lg)',xl:'var(--fr-fontSizes-xl)','2xl':'var(--fr-fontSizes-2xl)','3xl':'var(--fr-fontSizes-3xl)','4xl':'var(--fr-fontSizes-4xl)','5xl':'var(--fr-fontSizes-5xl)'},fontWeights:{regular:'var(--fr-fontWeights-regular)',demibold:'var(--fr-fontWeights-demibold)',bold:'var(--fr-fontWeights-bold)'},letterSpacings:{md:'var(--fr-letterSpacings-md)'},lineHeights:{xs:'var(--fr-lineHeights-xs)',sm:'var(--fr-lineHeights-sm)',md:'var(--fr-lineHeights-md)',lg:'var(--fr-lineHeights-lg)',xl:'var(--fr-lineHeights-xl)','2xl':'var(--fr-lineHeights-2xl)','3xl':'var(--fr-lineHeights-3xl)','4xl':'var(--fr-lineHeights-4xl)'},radii:{md:'var(--fr-radii-md)',lg:'var(--fr-radii-lg)',round:'var(--fr-radii-round)'},shadows:{md:'var(--fr-shadows-md)'},space:{'0':'var(--fr-space-0)','1':'var(--fr-space-1)','2':'var(--fr-space-2)','3':'var(--fr-space-3)','4':'var(--fr-space-4)','5':'var(--fr-space-5)','6':'var(--fr-space-6)','7':'var(--fr-space-7)','8':'var(--fr-space-8)','9':'var(--fr-space-9)','10':'var(--fr-space-10)','11':'var(--fr-space-11)','12':'var(--fr-space-12)','13':'var(--fr-space-13)','14':'var(--fr-space-14)','15':'var(--fr-space-15)','16':'var(--fr-space-16)','17':'var(--fr-space-17)','18':'var(--fr-space-18)','19':'var(--fr-space-19)','20':'var(--fr-space-20)','-20':'var(--fr-space--20)','-19':'var(--fr-space--19)','-18':'var(--fr-space--18)','-17':'var(--fr-space--17)','-16':'var(--fr-space--16)','-15':'var(--fr-space--15)','-14':'var(--fr-space--14)','-13':'var(--fr-space--13)','-12':'var(--fr-space--12)','-11':'var(--fr-space--11)','-10':'var(--fr-space--10)','-9':'var(--fr-space--9)','-8':'var(--fr-space--8)','-7':'var(--fr-space--7)','-6':'var(--fr-space--6)','-5':'var(--fr-space--5)','-4':'var(--fr-space--4)','-3':'var(--fr-space--3)','-2':'var(--fr-space--2)','-1':'var(--fr-space--1)','-0.5':'var(--fr-space--0-5)','0.5':'var(--fr-space-0-5)',auto:'var(--fr-space-auto)'}};","export function flattenObject(obj: Record<any, any>, path = '', separator = '.') {\n return Object.keys(obj).reduce((acc, k) => {\n const prefix = path.length ? `${path}${separator}` : ''\n const currentPath = `${prefix}${k}`\n const currentValue = obj[k]\n\n if (typeof currentValue === 'object' && currentValue !== null && !Array.isArray(currentValue)) {\n Object.assign(acc, flattenObject(currentValue, currentPath, separator))\n } else {\n acc[currentPath] = currentValue\n }\n\n return acc\n }, {})\n}\n","import { theme } from '../../shared/theme/themeContract.css'\nimport { flattenObject } from '../../shared/flattenObject'\n\nconst colorTokens: Record<string, unknown> = flattenObject(theme.colors)\n\n/*\n TODO:\n - top / right / bottom / left\n*/\n\nexport const styleProps = {\n color: colorTokens,\n backgroundColor: colorTokens,\n borderColor: colorTokens,\n border: theme.borders,\n borderRadius: theme.radii,\n borderWidth: theme.borderWidths,\n\n fontFamily: theme.fontFamilies,\n fontSize: theme.fontSizes,\n fontWeight: theme.fontWeights,\n\n gap: theme.space,\n\n lineHeight: theme.lineHeights,\n\n margin: theme.space,\n marginTop: theme.space,\n marginRight: theme.space,\n marginBottom: theme.space,\n marginLeft: theme.space,\n\n padding: theme.space,\n paddingTop: theme.space,\n paddingRight: theme.space,\n paddingBottom: theme.space,\n paddingLeft: theme.space,\n\n alignContent: [\n 'center',\n 'start',\n 'end',\n 'flex-start',\n 'flex-end',\n 'normal',\n 'baseline',\n 'first baseline',\n 'last baseline',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'stretch',\n 'safe center',\n 'unsafe center',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n alignItems: [\n 'normal',\n 'stretch',\n 'center',\n 'start',\n 'end',\n 'flex-start',\n 'flex-end',\n 'self-start',\n 'self-end',\n 'baseline',\n 'first baseline',\n 'last baseline',\n 'safe center',\n 'unsafe center',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n alignSelf: [\n 'auto',\n 'normal',\n 'center',\n 'start',\n 'end',\n 'self-start',\n 'self-end',\n 'flex-start',\n 'flex-end',\n 'baseline',\n 'first baseline',\n 'last baseline',\n 'stretch',\n 'safe center',\n 'unsafe center',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n flexDirection: [\n 'row',\n 'row-reverse',\n 'column',\n 'column-reverse',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n flexWrap: [\n 'nowrap',\n 'wrap',\n 'wrap-reverse',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n justifyContent: [\n 'center',\n 'start',\n 'end',\n 'flex-start',\n 'flex-end',\n 'left',\n 'right',\n 'normal',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'stretch',\n 'safe center',\n 'unsafe center',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n justifyItems: [\n 'normal',\n 'stretch',\n 'center',\n 'start',\n 'end',\n 'flex-start',\n 'flex-end',\n 'self-start',\n 'self-end',\n 'left',\n 'right',\n 'baseline',\n 'first baseline',\n 'last baseline',\n 'safe center',\n 'unsafe center',\n 'legacy right',\n 'legacy left',\n 'legacy center',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n boxSizing: ['border-box', 'content-box', 'inherit', 'initial', 'revert', 'revert-layer', 'unset'],\n\n position: [\n 'static',\n 'relative',\n 'absolute',\n 'fixed',\n 'sticky',\n 'inherit',\n 'initial',\n 'revert',\n 'revert-layer',\n 'unset',\n ],\n\n display: [\n 'block',\n 'block flex',\n 'block flow',\n 'block flow-root',\n 'block grid',\n 'contents',\n 'flex',\n 'flow-root',\n 'grid',\n 'inherit',\n 'initial',\n 'inline',\n 'inline flex',\n 'inline flow',\n 'inline flow-root',\n 'inline grid',\n 'inline-block',\n 'inline-flex',\n 'inline-grid',\n 'list-item',\n 'none',\n 'revert',\n 'revert-layer',\n 'table',\n 'table-row-group',\n 'table-header-group',\n 'table-footer-group',\n 'table-row',\n 'table-cell',\n 'table-column-group',\n 'table-column',\n 'table-caption',\n 'unset',\n ],\n}\n\nexport const stylePropShorthands = {\n m: ['margin'],\n mt: ['marginTop'],\n mr: ['marginRight'],\n mb: ['marginBottom'],\n ml: ['marginLeft'],\n mx: ['marginLeft', 'marginRight'],\n my: ['marginTop', 'marginBottom'],\n\n p: ['padding'],\n pt: ['paddingTop'],\n pr: ['paddingRight'],\n pb: ['paddingBottom'],\n pl: ['paddingLeft'],\n px: ['paddingLeft', 'paddingRight'],\n py: ['paddingTop', 'paddingBottom'],\n}\n","import { styleProps, stylePropShorthands } from './styleProps'\n\nfunction prepValue(value) {\n if (Array.isArray(value)) {\n return new Map(value.map((v) => [v, v]))\n } else if (typeof value === 'object' && value !== null) {\n return new Map(Object.entries(value))\n } else if (['string', 'number'].includes(typeof value)) {\n return new Map([value, value])\n }\n\n throw new Error('Invalid entry in styleProps')\n}\n\nconst stylePropsMap = new Map(\n Object.entries(styleProps).map(([propName, value]) => {\n return [propName, prepValue(value)]\n })\n)\n\nconst stylePropShorthandsMap = new Map(\n Object.entries(stylePropShorthands).map(([shorthand, targetProps]) => {\n return [shorthand, new Set(targetProps)]\n })\n)\n\nexport function stylePropsToCss(props: Record<any, any>) {\n const unmatchedProps = Object.assign({}, props)\n const cssFromProps = {}\n\n // Convert shorthand styleProps to full versions\n Object.entries(unmatchedProps).forEach(([propName, propValue]) => {\n const matchedShorthand = stylePropShorthandsMap.get(propName)\n if (matchedShorthand != null) {\n matchedShorthand.forEach((propName) => {\n unmatchedProps[propName] = propValue\n })\n\n delete unmatchedProps[propName]\n }\n })\n\n // Convert styleProps to style object\n Object.entries(unmatchedProps).forEach(([propName, propValue]) => {\n const styleProp = stylePropsMap.get(propName)\n if (styleProp != null) {\n if (typeof propValue === 'string' && propValue.indexOf(' ') > -1) {\n // Split space-separated values out and process them individually\n const splitPropValues = propValue.split(' ')\n\n cssFromProps[propName] = splitPropValues\n .map((v) => styleProp.get(v.toString()) ?? v)\n .join(' ')\n\n delete unmatchedProps[propName]\n } else if (styleProp.has(propValue.toString())) {\n cssFromProps[propName] = styleProp.get(propValue.toString())\n delete unmatchedProps[propName]\n }\n }\n })\n\n return { cssFromProps, unmatchedProps }\n}\n","export const base = ({ fontFamilies }) => ({\n fontFamily: fontFamilies.default,\n margin: 0,\n})\n\nexport const Display1 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes['5xl'],\n fontWeight: fontWeights.bold,\n lineHeight: lineHeights['4xl'],\n },\n]\n\nexport const Display2 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes['4xl'],\n fontWeight: fontWeights.bold,\n lineHeight: lineHeights['3xl'],\n },\n]\n\nexport const H1 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes['3xl'],\n fontWeight: fontWeights.bold,\n lineHeight: lineHeights['2xl'],\n },\n]\n\nexport const H2 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes['2xl'],\n fontWeight: fontWeights.bold,\n lineHeight: lineHeights.xl,\n },\n]\n\nexport const H3 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes.xl,\n fontWeight: fontWeights.bold,\n lineHeight: lineHeights.lg,\n },\n]\n\nexport const H4 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes.lg,\n fontWeight: fontWeights.bold,\n lineHeight: lineHeights.md,\n },\n]\n\nexport const Body1 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes.md,\n fontWeight: fontWeights.regular,\n lineHeight: lineHeights.md,\n },\n]\n\nexport const Body2 = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes.sm,\n fontWeight: fontWeights.regular,\n lineHeight: lineHeights.md,\n },\n]\n\nexport const Caption = ({ fontSizes, fontWeights, lineHeights }) => [\n base,\n {\n fontSize: fontSizes.xs,\n fontWeight: fontWeights.regular,\n lineHeight: lineHeights.sm,\n },\n]\n","import { Box, BoxProps } from '../Box'\n\nimport * as styles from './Text.styles'\n\ntype TextVariant =\n | 'Display1'\n | 'Display2'\n | 'H1'\n | 'H2'\n | 'H3'\n | 'H4'\n | 'Body1'\n | 'Body2'\n | 'Caption'\n\nexport interface TextProps extends BoxProps {\n variant?: TextVariant\n}\n\nfunction BaseText({ as = 'span', children, css, variant = 'Body1', ...props }: TextProps) {\n return (\n <Box as={as} css={[styles[variant], css]} {...props}>\n {children}\n </Box>\n )\n}\n\nconst textVariantNames: TextVariant[] = [\n 'Display1',\n 'Display2',\n 'H1',\n 'H2',\n 'H3',\n 'H4',\n 'Body1',\n 'Body2',\n 'Caption',\n]\n\nconst textVariantComponents = Object.fromEntries(\n textVariantNames.map((variant) => {\n const asProp = ['H1', 'H2', 'H3', 'H4'].includes(variant)\n ? (variant.toLowerCase() as 'h1' | 'h2' | 'h3' | 'h4')\n : undefined\n const component = (props: TextProps) => (\n <BaseText as={asProp} {...props} variant={variant}>\n {props.children}\n </BaseText>\n )\n\n component.displayName = `Text.${variant}`\n\n return [variant, component]\n })\n)\n\nexport const Text = Object.assign(BaseText, textVariantComponents)\n","export const base = ({ radii, space }) => ({\n borderWidth: 0,\n borderRadius: radii.md,\n padding: `${space[2]} ${space[4]}`,\n})\n\nexport const Primary = ({ colors }) => [\n base,\n {\n backgroundColor: colors.primary.surface,\n color: colors.primary.foreground,\n\n '&:hover': {\n backgroundColor: colors.primary.hover.surface,\n },\n },\n]\n\nexport const Secondary = ({ colors }) => [\n base,\n {\n backgroundColor: colors.secondary.surface,\n color: colors.secondary.foreground,\n\n '&:hover': {\n backgroundColor: colors.secondary.hover.surface,\n },\n },\n]\n\nexport const Link = ({ colors }) => [\n base,\n {\n backgroundColor: colors.transparent,\n color: colors.primary.surface,\n\n '&:hover': {\n color: colors.primary.hover.surface,\n },\n },\n]\n\nexport const Plain = ({ colors }) => [\n base,\n {\n backgroundColor: colors.transparent,\n color: colors.neutral.foreground,\n },\n]\n","import { Box, BoxProps } from '../Box'\nimport { Text } from '../Text'\n\nimport * as styles from './Button.styles'\n\n// TODO: Generate this type from buttonVariantNames\ntype ButtonVariant = 'Primary' | 'Secondary' | 'Link' | 'Plain'\n\nexport interface ButtonProps extends BoxProps {\n title?: string\n variant?: ButtonVariant\n}\n\nfunction BaseButton({ as, children, css = {}, title, variant = 'Primary', ...props }: ButtonProps) {\n return (\n <Box as={as ?? 'button'} css={[styles[variant], css]} {...props}>\n {children}\n {title && <Text.Body2 fontWeight=\"demibold\">{title}</Text.Body2>}\n </Box>\n )\n}\n\nconst buttonVariantNames: ButtonVariant[] = ['Primary', 'Secondary', 'Link', 'Plain']\n\nconst buttonVariantComponents = Object.fromEntries(\n buttonVariantNames.map((variant) => {\n const variantPart = variant.toLocaleLowerCase()\n\n const component = ({ part, ...props }: ButtonProps) => (\n <BaseButton part={[`button-${variantPart}`, part]} {...props} variant={variant}>\n {props.children}\n </BaseButton>\n )\n\n component.displayName = `Text.${variant}`\n\n return [variant, component]\n })\n)\n\nexport const Button = Object.assign(BaseButton, buttonVariantComponents)\n","import * as React from 'react'\nimport { Box, BoxProps } from '../Box'\n\nconst Row = React.forwardRef(({ children, css, ...props }: BoxProps, ref) => {\n return (\n <Box css={[{ display: 'flex', flexDirection: 'row' }, css]} {...props} ref={ref}>\n {children}\n </Box>\n )\n})\n\nconst Column = React.forwardRef(({ children, css, ...props }: BoxProps, ref) => {\n return (\n <Box css={[{ display: 'flex', flexDirection: 'column' }, css]} {...props} ref={ref}>\n {children}\n </Box>\n )\n})\n\nexport const Flex = {\n Column,\n Row,\n}\n","import { createContext } from 'react'\nimport { ThemeProvider } from '@emotion/react'\n\nimport { useThemeOverrides } from '../../hooks/useThemeOverrides'\nimport { theme as themeContract } from '../../shared/theme/themeContract.css'\n\nexport const FrigadeContext = createContext<{ apiKey: string; config: ProviderConfig }>({\n apiKey: '',\n config: {},\n})\n\n// TODO: type theme something like Partial<typeof themeContract>, but allow any value for those keys\nexport interface ProviderProps {\n apiKey: string\n children?: React.ReactNode\n config?: ProviderConfig\n theme?: Record<any, any>\n}\n\ninterface ProviderConfig {\n apiUrl?: string\n userId?: string\n}\n\nexport function Provider({ apiKey, children, config = {}, theme }: ProviderProps) {\n useThemeOverrides(theme)\n\n return (\n <FrigadeContext.Provider value={{ apiKey, config }}>\n <ThemeProvider theme={themeContract}>{children}</ThemeProvider>\n </FrigadeContext.Provider>\n )\n}\n","function getVarName(variable) {\n var matches = variable.match(/^var\\((.*)\\)$/);\n\n if (matches) {\n return matches[1];\n }\n\n return variable;\n}\n\nfunction get(obj, path) {\n var result = obj;\n\n for (var key of path) {\n if (!(key in result)) {\n throw new Error(\"Path \".concat(path.join(' -> '), \" does not exist in object\"));\n }\n\n result = result[key];\n }\n\n return result;\n}\n\nfunction walkObject(obj, fn) {\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var clone = obj.constructor();\n\n for (var key in obj) {\n var _value = obj[key];\n var currentPath = [...path, key];\n\n if (typeof _value === 'string' || typeof _value === 'number' || _value == null) {\n clone[key] = fn(_value, currentPath);\n } else if (typeof _value === 'object' && !Array.isArray(_value)) {\n clone[key] = walkObject(_value, fn, currentPath);\n } else {\n console.warn(\"Skipping invalid key \\\"\".concat(currentPath.join('.'), \"\\\". Should be a string, number, null or object. Received: \\\"\").concat(Array.isArray(_value) ? 'Array' : typeof _value, \"\\\"\"));\n }\n }\n\n return clone;\n}\n\nexport { get, getVarName, walkObject };\n","import { walkObject, get, getVarName } from '@vanilla-extract/private';\n\nfunction assignInlineVars(varsOrContract, tokens) {\n var styles = {};\n\n if (typeof tokens === 'object') {\n var _contract = varsOrContract;\n walkObject(tokens, (value, path) => {\n var varName = get(_contract, path);\n styles[getVarName(varName)] = String(value);\n });\n } else {\n var _vars = varsOrContract;\n\n for (var varName in _vars) {\n styles[getVarName(varName)] = _vars[varName];\n }\n }\n\n Object.defineProperty(styles, 'toString', {\n value: function value() {\n return Object.keys(this).map(key => \"\".concat(key, \":\").concat(this[key])).join(';');\n },\n writable: false\n });\n return styles;\n}\n\nfunction setVar(element, variable, value) {\n element.style.setProperty(getVarName(variable), value);\n}\n\nfunction setElementVars(element, varsOrContract, tokens) {\n if (typeof tokens === 'object') {\n var _contract = varsOrContract;\n walkObject(tokens, (value, path) => {\n setVar(element, get(_contract, path), String(value));\n });\n } else {\n var _vars = varsOrContract;\n\n for (var varName in _vars) {\n setVar(element, varName, _vars[varName]);\n }\n }\n}\n\nexport { assignInlineVars, setElementVars };\n","import { setElementVars } from '@vanilla-extract/dynamic'\nimport { useEffect } from 'react'\n\nimport { mapThemePropToThemeVars } from '../shared/mapThemePropToThemeVars'\n\nexport function useThemeOverrides(themeOverrides = {}, selector = ':root') {\n useEffect(() => {\n const mappedThemeVars = mapThemePropToThemeVars(themeOverrides)\n const root: HTMLElement = document.querySelector(selector)\n setElementVars(root, mappedThemeVars)\n }, [themeOverrides])\n}\n","import { theme } from './theme/themeContract.css'\n\n/*\n Given a theme contract that tells us which CSS variable to use:\n themeContract = {\n colors: {\n blue500: 'var(--fr-blue-500)'\n }\n }\n \n And a theme override prop that tells us which value to assign to that CSS variable:\n theme = {\n colors: {\n blue500: 'teal'\n }\n }\n\n Assign the override to the css variable like so:\n {\n 'var(--fr-blue-500)': 'teal'\n }\n*/\nexport function mapThemePropToThemeVars(themeLevel, contractLevel = theme) {\n return Object.keys(themeLevel).reduce((acc, key) => {\n const currentValue = themeLevel[key]\n\n if (\n typeof currentValue === 'object' &&\n currentValue !== null &&\n !Array.isArray(currentValue) &&\n key in themeLevel\n ) {\n Object.assign(acc, mapThemePropToThemeVars(currentValue, contractLevel[key]))\n } else {\n acc[contractLevel[key]] = themeLevel[key]\n }\n return acc\n }, {})\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { clsx } from 'clsx'\n\nimport { XMarkIcon } from '@heroicons/react/24/solid'\nimport * as Popover from '@radix-ui/react-popover'\n\nimport { useBoundingClientRect } from '../../hooks/useBoundingClientRect'\nimport { Box } from '../Box'\nimport { Button, ButtonProps } from '../Button'\nimport { Dot } from './Dot'\nimport { Flex } from '../Flex/Flex'\nimport { Media, MediaProps } from '../Media'\nimport { Text, TextProps } from '../Text'\nimport { getDotPosition } from './getDotPosition'\nimport { mapTooltipPropsToRadixProps } from './mapTooltipPropsToPopoverProps'\n\ninterface MergedRadixPopoverProps\n extends Pick<Popover.PopoverProps, 'defaultOpen' | 'modal' | 'onOpenChange' | 'open'>,\n Omit<Popover.PopoverContentProps, 'align' | 'asChild'> {}\nexport interface TooltipProps extends MergedRadixPopoverProps {\n align?: Popover.PopoverContentProps['align'] | 'before' | 'after'\n anchor?: string\n spotlight?: boolean\n style?: React.CSSProperties\n}\n\nexport function Tooltip({\n anchor,\n children,\n css,\n spotlight = false,\n style,\n ...props\n}: TooltipProps) {\n const { node: contentNode, rect: contentRect, ref: contentRef } = useBoundingClientRect()\n const [alignAttr, setAlignAttr] = useState(props.align)\n const [sideAttr, setSideAttr] = useState(props.side)\n\n // Radix will update data attrs to let us know if Popover.Content has collided\n if (contentNode !== null) {\n const currentAlignAttr = contentNode.getAttribute('data-align')\n const currentSideAttr = contentNode.getAttribute('data-side')\n\n if (alignAttr !== currentAlignAttr) {\n setAlignAttr(currentAlignAttr)\n }\n\n if (sideAttr !== currentSideAttr) {\n setSideAttr(currentSideAttr)\n }\n }\n\n const { contentProps, rootProps } = mapTooltipPropsToRadixProps(props, contentRect)\n\n const anchorRef = useRef(null)\n const [anchorElementRef, setAnchorElementRef] = useState(null)\n\n useEffect(() => {\n const anchorQuery = document.querySelector(anchor)\n\n if (anchorQuery != null) {\n anchorRef.current = anchorQuery\n setAnchorElementRef(anchorRef)\n }\n }, [anchor])\n\n if (anchorElementRef == null) return null\n\n const anchorRect = anchorElementRef.current.getBoundingClientRect()\n\n let anchorRadius = '0'\n if (typeof window !== 'undefined') {\n anchorRadius = window.getComputedStyle(anchorElementRef.current).borderRadius\n }\n\n const dotPosition = getDotPosition({ props, alignAttr, sideAttr })\n\n return (\n <Popover.Root defaultOpen={true} {...rootProps}>\n <Popover.Anchor virtualRef={anchorElementRef} />\n <Popover.Portal>\n <div css={css}>\n {spotlight && (\n <Box\n borderRadius={anchorRadius}\n part=\"tooltip-spotlight\"\n position=\"absolute\"\n css={{\n boxShadow: '0 0 0 2000px rgb(0 0 0 / 0.5)',\n height: anchorRect.height,\n left: anchorRect.left,\n top: anchorRect.top,\n width: anchorRect.width,\n }}\n />\n )}\n <Popover.Content asChild {...contentProps} ref={contentRef}>\n <Flex.Column\n backgroundColor=\"white\"\n borderRadius=\"md\"\n p={5}\n part=\"tooltip-content\"\n position=\"relative\"\n css={{\n boxShadow: '0px 4px 20px rgba(0, 0, 0, 0.1)',\n width: '300px',\n ...style,\n }}\n >\n <Dot style={dotPosition} />\n\n {children}\n </Flex.Column>\n </Popover.Content>\n </div>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nTooltip.Close = ({ css, ...props }: ButtonProps) => {\n return (\n <Popover.Close aria-label=\"Close\" asChild>\n <Button.Plain\n css={[\n {\n top: 0,\n right: 0,\n },\n css,\n ]}\n part=\"tooltip-close\"\n position=\"absolute\"\n {...props}\n >\n <XMarkIcon height=\"20\" fill=\"currentColor\" />\n </Button.Plain>\n </Popover.Close>\n )\n}\n\nTooltip.Media = ({ src, ...props }: MediaProps) => {\n if (src == null) return null\n\n return (\n <Media\n borderRadius=\"md md 0 0\"\n borderWidth=\"0\"\n css={{\n aspectRatio: '2',\n }}\n margin=\"-5 -5 5\"\n src={src}\n {...props}\n />\n )\n}\n\nTooltip.Primary = ({ onClick, title, ...props }: ButtonProps) => {\n if (title == null) return null\n\n return <Button.Primary title={title} onClick={onClick} {...props} />\n}\n\nTooltip.Progress = ({ children, ...props }: TextProps) => {\n if (children == null) return null\n\n return (\n <Text.Body2 fontWeight=\"demibold\" part=\"progress\" {...props}>\n {children}\n </Text.Body2>\n )\n}\n\nTooltip.Secondary = ({ onClick, title, ...props }: ButtonProps) => {\n if (title == null) return null\n\n return <Button.Secondary title={title} onClick={onClick} {...props} />\n}\n\nTooltip.Subtitle = ({ children, ...props }: TextProps) => {\n if (children == null) return null\n\n return (\n <Text.Body2 part=\"subtitle\" {...props}>\n {children}\n </Text.Body2>\n )\n}\n\nTooltip.Title = ({ children, ...props }: TextProps) => {\n if (children == null) return null\n\n return (\n <Text.Body1 fontWeight=\"bold\" mb={1} part=\"title\" {...props}>\n {children}\n </Text.Body1>\n )\n}\n","import { useCallback, useLayoutEffect, useState } from 'react'\n\nexport function useBoundingClientRect() {\n const initialRect =\n 'DOMRect' in globalThis\n ? new DOMRect()\n : {\n height: 0,\n width: 0,\n x: 0,\n y: 0,\n bottom: 0,\n top: 0,\n right: 0,\n left: 0,\n toJSON: () => {},\n }\n const [rect, setRect] = useState(initialRect)\n const [node, setNode] = useState(null)\n\n const ref = useCallback((node: HTMLElement) => {\n setNode(node)\n }, [])\n\n useLayoutEffect(() => {\n if (!node) return\n\n setRect(node.getBoundingClientRect())\n }, [node])\n\n return {\n node,\n rect,\n ref,\n }\n}\n","import 'src/components/Tooltip/Dot.css.ts.vanilla.css?source=QGtleWZyYW1lcyBlMTYwaHAwIHsKICAwJSB7CiAgICBvcGFjaXR5OiAwLjU7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgMTAwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9Cn0KLmUxNjBocDEgewogIGFuaW1hdGlvbjogMnMgZWFzZS1vdXQgaW5maW5pdGUgZTE2MGhwMDsKfQ==';\nexport var animationPulse = 'e160hp1';","import { CSSProperties } from 'react'\nimport { Box, BoxProps } from '../Box'\n\nimport { animationPulse } from './Dot.css'\n\nexport interface DotProps extends BoxProps {}\n\nexport function Dot({ style = {}, part = '', ...props }: DotProps) {\n return (\n <Box\n part={`dot-wrapper ${part}`}\n style={{\n height: '48px',\n position: 'absolute',\n width: '48px',\n ...style,\n }}\n {...props}\n >\n <Box\n backgroundColor=\"primary.surface\"\n className={animationPulse}\n part=\"dot-pulse\"\n style={{\n borderRadius: '24px',\n height: '48px',\n left: 0,\n position: 'absolute',\n top: 0,\n transformOrigin: 'center center',\n width: '48px',\n }}\n />\n <Box\n backgroundColor=\"primary.surface\"\n part=\"dot\"\n style={{\n borderRadius: '12px',\n height: '24px',\n left: '12px',\n position: 'absolute',\n top: '12px',\n width: '24px',\n }}\n />\n </Box>\n )\n}\n","import { Box, BoxProps } from '../Box'\n\nexport interface ImageProps extends BoxProps {\n src: string\n}\n\nexport function Image({ part, src, ...props }: ImageProps) {\n return <Box as=\"img\" part={['image', part]} src={src} {...props} />\n}\n","import { Box, BoxProps } from '../Box'\n\nfunction getVideoEmbedSrc(videoUri: string) {\n if (videoUri.includes('youtube')) {\n const videoId = videoUri.split('v=')[1]?.split('&')[0]\n\n return `https://www.youtube.com/embed/${videoId}`\n } else if (videoUri.includes('vimeo')) {\n const videoId = videoUri.split('vimeo.com/')[1]?.split('&')[0]\n\n return `https://player.vimeo.com/video/${videoId}`\n } else if (videoUri.includes('wistia')) {\n const videoId = videoUri.split('wistia.com/medias/')[1]?.split('&')[0]\n\n return `https://fast.wistia.net/embed/iframe/${videoId}`\n }\n\n throw new Error('Could not map videoUri to a known provider (Youtube, Vimeo, Wistia).')\n}\n\nexport interface VideoProps extends BoxProps {\n src: string\n}\n\nexport function Video({ part, src, ...props }: VideoProps) {\n const videoEmbedSrc = getVideoEmbedSrc(src)\n\n // TODO: Add play button overtop?\n return (\n <Box\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n as=\"iframe\"\n backgroundColor=\"gray100\"\n borderWidth={0}\n part={['video', part]}\n src={videoEmbedSrc}\n {...props}\n ></Box>\n )\n}\n","import { Image } from './Image'\nimport { Video } from './Video'\nimport { BoxProps } from '../Box'\n\nexport interface MediaProps extends BoxProps {\n src: string\n type: 'image' | 'video'\n}\n\nexport function Media({ src, type, ...props }: MediaProps) {\n const Component = type === 'video' ? Video : Image\n\n return <Component src={src} {...props} />\n}\n","export function getDotPosition({ props, alignAttr, sideAttr }) {\n const currentSide = sideAttr ?? 'bottom'\n const dotProps = {}\n\n // Radix's collision system isn't aware of our custom before|after align\n const currentAlign = (() => {\n if (['after', 'before'].includes(props.align)) {\n if (alignAttr == 'start') {\n return 'before'\n } else if (alignAttr == 'end') {\n return 'after'\n }\n }\n\n return props.align\n })()\n\n const dotOffset = '-24px'\n\n const oppositeSides = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }\n\n /* \n Rules:\n - Dot is opposite to side prop (e.g. side=left -> dot=right)\n - align=before|end -> Dot goes to highest extent (right/bottom) of align-axis\n - align=after|start -> Dot goes to lowest extent (left/top) of align-axis\n - align=center -> Dot goes to the center\n */\n\n dotProps[oppositeSides[currentSide]] = dotOffset\n\n if (['before', 'end'].includes(currentAlign)) {\n if (['top', 'bottom'].includes(currentSide)) {\n dotProps['right'] = dotOffset\n } else {\n dotProps['bottom'] = dotOffset\n }\n } else if (['after', 'start'].includes(currentAlign)) {\n if (['top', 'bottom'].includes(currentSide)) {\n dotProps['left'] = dotOffset\n } else {\n dotProps['top'] = dotOffset\n }\n } else {\n // The only option left is align=center\n if (['top', 'bottom'].includes(currentSide)) {\n dotProps['left'] = `calc(50% + ${dotOffset})`\n } else {\n dotProps['top'] = `calc(50% + ${dotOffset})`\n }\n }\n\n return dotProps\n}\n","import { TooltipProps } from '.'\n\nconst RADIX_PROPS = {\n content: [\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'forceMount',\n 'hideWhenDetached',\n 'onCloseAutoFocus',\n 'onEscapeKeyDown',\n 'onFocusOutside',\n 'onInteractOutside',\n 'onOpenAutoFocus',\n 'onPointerDownOutside',\n 'side',\n 'sideOffset',\n 'sticky',\n ],\n root: ['defaultOpen', 'modal', 'onOpenChange', 'open'],\n}\n\nexport function mapTooltipPropsToRadixProps(props: TooltipProps, contentRect: DOMRect) {\n const contentProps = Object.fromEntries(\n RADIX_PROPS.content\n .map((propName) => [propName, props[propName]])\n .filter((propEntry) => propEntry[1] !== undefined)\n )\n const rootProps = Object.fromEntries(\n RADIX_PROPS.root\n .map((propName) => [propName, props[propName]])\n .filter((propEntry) => propEntry[1] !== undefined)\n )\n\n /*\n Here we're extending Popover.Content's align prop to accept 'before' and\n 'after' in addition to its existing values.\n\n TL;DR:\n 1. Use existing alignOffset prop to push Content to be before/after the\n corresponding edge of the element it's attached to.\n 2. Add a CSS margin to patch alignOffset back onto Content, as Popover\n has a bug that prevents alignOffset from extending past the edge of\n its Trigger/Anchor.\n\n SEE: https://github.com/radix-ui/primitives/issues/2457\n */\n if (['before', 'after'].includes(contentProps['align'])) {\n const mapToOriginalAlignValues = {\n after: 'end',\n before: 'start',\n }\n\n const mapAlignOffsetToMargin = (align, side) => {\n /*\n Translate alignOffset to CSS margin based on align and side props:\n bottom || top\n after: marginLeft\n before: marginRight\n left || right\n after: marginTop\n before: marginBottom\n */\n if (['top', 'bottom'].includes(side)) {\n if (align == 'after') {\n return 'marginLeft'\n } else {\n return 'marginRight'\n }\n } else {\n if (align == 'after') {\n return 'marginTop'\n } else {\n return 'marginBottom'\n }\n }\n }\n\n const originalOffset = contentProps['alignOffset'] ?? 0\n const originalStyleProp = contentProps['style'] ?? {}\n const currentSide = contentProps['side'] ?? 'bottom'\n const currentAlign = contentProps['align']\n\n // Copy alignOffset value to CSS margin\n contentProps['style'] = {\n ...originalStyleProp,\n [mapAlignOffsetToMargin(currentAlign, currentSide)]: originalOffset,\n }\n\n const lengthOfCurrentSide = ['top', 'bottom'].includes(currentSide)\n ? contentRect.width\n : contentRect.height\n\n // Change alignOffset to be at the end of the positioned side\n contentProps['alignOffset'] = (lengthOfCurrentSide + originalOffset) * -1\n\n // Flip align prop back to valid Radix option\n contentProps['align'] = mapToOriginalAlignValues[currentAlign]\n }\n\n return {\n contentProps,\n rootProps,\n }\n}\n","import { Frigade, Flow } from '@frigade/js'\nimport { useContext, useState } from 'react'\n\nimport { FrigadeContext } from '../components/Provider'\n\nexport function useFlow(flowId: string) {\n const [flow, setFlow] = useState<Flow>(null)\n const { apiKey, config } = useContext(FrigadeContext)\n\n async function fetchFlow() {\n const frigade = await new Frigade(apiKey, {\n apiUrl: config.apiUrl,\n userId: config.userId,\n })\n\n const flowResponse: Flow = await frigade.getFlow(flowId)\n\n setFlow(flowResponse)\n }\n\n if (flow === null) {\n fetchFlow()\n }\n\n // TEMP: Expose a way to manually refresh the flow.\n // TODO: Automatically update state when something like step.complete() is called\n return { flow, fetchFlow }\n}\n","import { useFlow } from '../../hooks/useFlow'\n\nimport { Flex } from '../Flex/Flex'\nimport { Tooltip, TooltipProps } from '../Tooltip'\n\nexport interface TourProps extends TooltipProps {\n flowId: string\n}\n\nexport function Tour({ flowId, ...props }: TourProps) {\n const { flow, fetchFlow } = useFlow(flowId)\n\n if (flow == null || flow?.isCompleted || flow?.isSkipped) {\n return null\n }\n\n flow.start()\n\n const step = flow.getCurrentStep()\n\n step?.start()\n\n async function handleDismiss() {\n await flow.skip()\n\n // TEMP: Manually refreshing flow data until useFlow can handle it internally\n fetchFlow()\n }\n\n async function handlePrimary() {\n await step.complete()\n\n // TEMP: Manually refreshing flow data until useFlow can handle it internally\n fetchFlow()\n }\n\n const handleSecondary = handlePrimary\n\n return (\n <Tooltip\n align=\"after\"\n anchor={step.selector as string}\n onOpenAutoFocus={(e) => e.preventDefault()}\n onPointerDownOutside={(e) => e.preventDefault()}\n {...props}\n >\n <Tooltip.Close onClick={handleDismiss} />\n\n <Tooltip.Media\n src={step.videoUri ?? step.imageUri}\n type={step.videoUri ? 'video' : 'image'}\n />\n\n <Tooltip.Title>{step.title}</Tooltip.Title>\n <Tooltip.Subtitle>{step.subtitle}</Tooltip.Subtitle>\n\n <Flex.Row pt={4} alignItems=\"center\" justifyContent=\"space-between\">\n <Tooltip.Progress>\n {`${flow.getNumberOfCompletedSteps()}/${flow.steps.size}`}\n </Tooltip.Progress>\n\n <Flex.Row gap={3}>\n <Tooltip.Secondary title={step.secondaryButtonTitle} onClick={handleSecondary} />\n <Tooltip.Primary title={step.primaryButtonTitle} onClick={handlePrimary} />\n </Flex.Row>\n </Flex.Row>\n </Tooltip>\n )\n}\n"]}
package/dist/index.css ADDED
@@ -0,0 +1,2 @@
1
+ :root{--fr-borders-md: 1px solid;--fr-borderWidths-0: 0;--fr-borderWidths-md: 1px;--fr-colors-black: #000000;--fr-colors-gray100: #14161A;--fr-colors-gray200: #181B20;--fr-colors-gray300: #1F2329;--fr-colors-gray400: #2E343D;--fr-colors-gray500: #4C5766;--fr-colors-gray600: #5A6472;--fr-colors-gray700: #C5CBD3;--fr-colors-gray800: #E2E5E9;--fr-colors-gray900: #F1F2F4;--fr-colors-white: #ffffff;--fr-colors-blue400: #015AC6;--fr-colors-blue500: #0171F8;--fr-colors-blue800: #DBECFF;--fr-colors-blue900: #F5F9FF;--fr-colors-green400: #009E37;--fr-colors-green500: #00D149;--fr-colors-green800: #DBFFE8;--fr-colors-transparent: #FFFFFF00;--fr-colors-red500: #c00000;--fr-colors-neutral-background: var(--fr-colors-white);--fr-colors-neutral-border: var(--fr-colors-gray900);--fr-colors-neutral-foreground: var(--fr-colors-black);--fr-colors-neutral-surface: var(--fr-colors-gray700);--fr-colors-neutral-active-background: var(--fr-colors-white);--fr-colors-neutral-active-border: var(--fr-colors-gray900);--fr-colors-neutral-active-foreground: var(--fr-colors-black);--fr-colors-neutral-active-surface: var(--fr-colors-gray700);--fr-colors-neutral-focus-background: var(--fr-colors-white);--fr-colors-neutral-focus-border: var(--fr-colors-gray900);--fr-colors-neutral-focus-foreground: var(--fr-colors-black);--fr-colors-neutral-focus-surface: var(--fr-colors-gray700);--fr-colors-neutral-hover-background: var(--fr-colors-white);--fr-colors-neutral-hover-border: var(--fr-colors-gray900);--fr-colors-neutral-hover-foreground: var(--fr-colors-black);--fr-colors-neutral-hover-surface: var(--fr-colors-gray700);--fr-colors-primary-background: var(--fr-colors-blue500);--fr-colors-primary-border: var(--fr-colors-blue500);--fr-colors-primary-foreground: var(--fr-colors-white);--fr-colors-primary-surface: var(--fr-colors-blue500);--fr-colors-primary-active-background: var(--fr-colors-blue400);--fr-colors-primary-active-border: var(--fr-colors-blue400);--fr-colors-primary-active-foreground: var(--fr-colors-white);--fr-colors-primary-active-surface: var(--fr-colors-blue400);--fr-colors-primary-focus-background: var(--fr-colors-blue500);--fr-colors-primary-focus-border: var(--fr-colors-blue500);--fr-colors-primary-focus-foreground: var(--fr-colors-white);--fr-colors-primary-focus-surface: var(--fr-colors-blue500);--fr-colors-primary-hover-background: var(--fr-colors-blue400);--fr-colors-primary-hover-border: var(--fr-colors-blue400);--fr-colors-primary-hover-foreground: var(--fr-colors-white);--fr-colors-primary-hover-surface: var(--fr-colors-blue400);--fr-colors-secondary-background: var(--fr-colors-gray900);--fr-colors-secondary-border: var(--fr-colors-gray900);--fr-colors-secondary-foreground: var(--fr-colors-black);--fr-colors-secondary-surface: var(--fr-colors-gray900);--fr-colors-secondary-active-background: var(--fr-colors-gray800);--fr-colors-secondary-active-border: var(--fr-colors-gray800);--fr-colors-secondary-active-foreground: var(--fr-colors-black);--fr-colors-secondary-active-surface: var(--fr-colors-gray800);--fr-colors-secondary-focus-background: var(--fr-colors-gray900);--fr-colors-secondary-focus-border: var(--fr-colors-gray900);--fr-colors-secondary-focus-foreground: var(--fr-colors-black);--fr-colors-secondary-focus-surface: var(--fr-colors-gray900);--fr-colors-secondary-hover-background: var(--fr-colors-gray800);--fr-colors-secondary-hover-border: var(--fr-colors-gray800);--fr-colors-secondary-hover-foreground: var(--fr-colors-black);--fr-colors-secondary-hover-surface: var(--fr-colors-gray800);--fr-fontFamilies-default: TT Interphases Pro, sans-serif;--fr-fontSizes-xs: 12px;--fr-fontSizes-sm: 14px;--fr-fontSizes-md: 16px;--fr-fontSizes-lg: 18px;--fr-fontSizes-xl: 20px;--fr-fontSizes-2xl: 24px;--fr-fontSizes-3xl: 30px;--fr-fontSizes-4xl: 36px;--fr-fontSizes-5xl: 48px;--fr-fontWeights-regular: 400;--fr-fontWeights-demibold: 600;--fr-fontWeights-bold: 700;--fr-letterSpacings-md: .02em;--fr-lineHeights-xs: 18px;--fr-lineHeights-sm: 22px;--fr-lineHeights-md: 24px;--fr-lineHeights-lg: 26px;--fr-lineHeights-xl: 30px;--fr-lineHeights-2xl: 38px;--fr-lineHeights-3xl: 46px;--fr-lineHeights-4xl: 60px;--fr-radii-md: 8px;--fr-radii-lg: 20px;--fr-radii-round: 50%;--fr-shadows-md: 0px 4px 20px rgba(0, 0, 0, .1);--fr-space-0: 0px;--fr-space-1: 4px;--fr-space-2: 8px;--fr-space-3: 12px;--fr-space-4: 16px;--fr-space-5: 20px;--fr-space-6: 24px;--fr-space-7: 28px;--fr-space-8: 32px;--fr-space-9: 36px;--fr-space-10: 40px;--fr-space-11: 44px;--fr-space-12: 48px;--fr-space-13: 52px;--fr-space-14: 56px;--fr-space-15: 60px;--fr-space-16: 64px;--fr-space-17: 68px;--fr-space-18: 72px;--fr-space-19: 76px;--fr-space-20: 80px;--fr-space--20: -80px;--fr-space--19: -76px;--fr-space--18: -72px;--fr-space--17: -68px;--fr-space--16: -64px;--fr-space--15: -60px;--fr-space--14: -56px;--fr-space--13: -52px;--fr-space--12: -48px;--fr-space--11: -44px;--fr-space--10: -40px;--fr-space--9: -36px;--fr-space--8: -32px;--fr-space--7: -28px;--fr-space--6: -24px;--fr-space--5: -20px;--fr-space--4: -16px;--fr-space--3: -12px;--fr-space--2: -8px;--fr-space--1: -4px;--fr-space--0-5: -2px;--fr-space-0-5: 2px;--fr-space-auto: auto}@keyframes e160hp0{0%{opacity:.5;transform:scale(.5)}50%{opacity:0;transform:scale(1)}to{opacity:0;transform:scale(1)}}.e160hp1{animation:2s ease-out infinite e160hp0}
2
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["vanilla-extract-css-ns:src/shared/theme/baseTheme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE6VY226bQBB971cgVZVSqRvBcrOdp8Q2at8qtVKe17C2UTFYC07dVv337i01ZgeWYBTlYQ5nZs5clmwWrKoa5887x0Foy9CmYhllNTpkC8c7np26KvLs4Rp9zrNmXyN34bgwosn/wbQqKu5zU5D0x8J578qni+4Y+eW53Ol7L/Ai7xHCscJn3hMG+b7CE+zjOYQHEsdrP/BXEB5KPFiGcRRBeCTx8DEKYgzhscSX4fJp5UP4TOJrvA7XYH5ziSdcQBJ08Z/7vKEc3crHrO2JKnWuFz4ujewFHmo89pIZhKvsVk/rZZJAuM4uTOYmvmOUljoBd772Y/AFnYG78gJAP3/hNYUkWRspNoyU9ZEwWjYiDfmYY8RopqKk4JSV9MT9FGjDR3HHqlPJR/WFsDuj0h97mXLSTZbuXy9vWzHaF1FuRi+zPrEtSSkcMh4ISdImf6E3aH11MFGypk9Xrh1MLsC2Sk/1Dfo1f3LHBXu6esWfLH5fvVB2g3jNnyhesaeLV/w3iz+y/EDYr0HZ+izs5/ZItvGGxMKlfmX2yrSFHLHh+stgdTEgegR9unbbjtsSsO+4vW9DWz6OPV2/Zctt4e1bbivg8J6PY0+Xb9nzvvA1Tasys2163yHVYr/xeLsw3360XbiDx9pw2BEbr//SHOFkQPwoB7fUYMy3fTgJ++aP6eKUL3yXf0sdRnzlh1OwnwD2Utq/9WP4t5RhxPf+KoVtVTYJOeRFTmuU0S05Ffxa8P2786VsKDvuSU1r5yurPjk1vzbwQCzfXpG/5b8581zzqypu3VUvUH3gUABC8oIbgVCx49AMhM7FwsEuCGGJwcF8gfkwL5AYnEkosKCbyjPNd/tG3JN2p4LwZgetS1L7hYwe8k1VcKVRzxsKjVtoQRte/G9HkublTpXJvXcxPVzeyEv6WfNl7dv5tUFRfYx7QOH4qlptUHQARz2gUcs2KLvg92Uk+xD0OZadiNqeGcnyXKY6M6wyR/NlvTuh++E/UO9JVv3UtTyeHa5aMh2225A795Ojf+69y27wW3JK5f9nWhGU0Vs4gWHE1ykqo99ZDGUNOoOvrGFHjbJGnSYpa8ytZrQZL7wZbd4Zbq3BFVNrmoU2M56HO1ugzVxfaEb0uMAQCBl2mqvNXGIEhOQaIyAkFxkDIbnK2AyJucqZGVLaEQQIPwhwJOMiILDMEwGJSl0IECbrgIBCyLohoHCyzggotOwLAhoj+4iARsq+I6DxYkwQMCdiqBAwVWIEETCDYmARMLFivBEw32IZELANYnUQsDtizxAkWMgyza6KawDSbprJqakWjvj98O7vP0nait/WFQAA","vanilla-extract-css-ns:src/components/Tooltip/Dot.css.ts.vanilla.css?source=QGtleWZyYW1lcyBlMTYwaHAwIHsKICAwJSB7CiAgICBvcGFjaXR5OiAwLjU7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9CiAgMTAwJSB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICB9Cn0KLmUxNjBocDEgewogIGFuaW1hdGlvbjogMnMgZWFzZS1vdXQgaW5maW5pdGUgZTE2MGhwMDsKfQ=="],"sourcesContent":[":root {\n --fr-borders-md: 1px solid;\n --fr-borderWidths-0: 0;\n --fr-borderWidths-md: 1px;\n --fr-colors-black: #000000;\n --fr-colors-gray100: #14161A;\n --fr-colors-gray200: #181B20;\n --fr-colors-gray300: #1F2329;\n --fr-colors-gray400: #2E343D;\n --fr-colors-gray500: #4C5766;\n --fr-colors-gray600: #5A6472;\n --fr-colors-gray700: #C5CBD3;\n --fr-colors-gray800: #E2E5E9;\n --fr-colors-gray900: #F1F2F4;\n --fr-colors-white: #ffffff;\n --fr-colors-blue400: #015AC6;\n --fr-colors-blue500: #0171F8;\n --fr-colors-blue800: #DBECFF;\n --fr-colors-blue900: #F5F9FF;\n --fr-colors-green400: #009E37;\n --fr-colors-green500: #00D149;\n --fr-colors-green800: #DBFFE8;\n --fr-colors-transparent: #FFFFFF00;\n --fr-colors-red500: #c00000;\n --fr-colors-neutral-background: var(--fr-colors-white);\n --fr-colors-neutral-border: var(--fr-colors-gray900);\n --fr-colors-neutral-foreground: var(--fr-colors-black);\n --fr-colors-neutral-surface: var(--fr-colors-gray700);\n --fr-colors-neutral-active-background: var(--fr-colors-white);\n --fr-colors-neutral-active-border: var(--fr-colors-gray900);\n --fr-colors-neutral-active-foreground: var(--fr-colors-black);\n --fr-colors-neutral-active-surface: var(--fr-colors-gray700);\n --fr-colors-neutral-focus-background: var(--fr-colors-white);\n --fr-colors-neutral-focus-border: var(--fr-colors-gray900);\n --fr-colors-neutral-focus-foreground: var(--fr-colors-black);\n --fr-colors-neutral-focus-surface: var(--fr-colors-gray700);\n --fr-colors-neutral-hover-background: var(--fr-colors-white);\n --fr-colors-neutral-hover-border: var(--fr-colors-gray900);\n --fr-colors-neutral-hover-foreground: var(--fr-colors-black);\n --fr-colors-neutral-hover-surface: var(--fr-colors-gray700);\n --fr-colors-primary-background: var(--fr-colors-blue500);\n --fr-colors-primary-border: var(--fr-colors-blue500);\n --fr-colors-primary-foreground: var(--fr-colors-white);\n --fr-colors-primary-surface: var(--fr-colors-blue500);\n --fr-colors-primary-active-background: var(--fr-colors-blue400);\n --fr-colors-primary-active-border: var(--fr-colors-blue400);\n --fr-colors-primary-active-foreground: var(--fr-colors-white);\n --fr-colors-primary-active-surface: var(--fr-colors-blue400);\n --fr-colors-primary-focus-background: var(--fr-colors-blue500);\n --fr-colors-primary-focus-border: var(--fr-colors-blue500);\n --fr-colors-primary-focus-foreground: var(--fr-colors-white);\n --fr-colors-primary-focus-surface: var(--fr-colors-blue500);\n --fr-colors-primary-hover-background: var(--fr-colors-blue400);\n --fr-colors-primary-hover-border: var(--fr-colors-blue400);\n --fr-colors-primary-hover-foreground: var(--fr-colors-white);\n --fr-colors-primary-hover-surface: var(--fr-colors-blue400);\n --fr-colors-secondary-background: var(--fr-colors-gray900);\n --fr-colors-secondary-border: var(--fr-colors-gray900);\n --fr-colors-secondary-foreground: var(--fr-colors-black);\n --fr-colors-secondary-surface: var(--fr-colors-gray900);\n --fr-colors-secondary-active-background: var(--fr-colors-gray800);\n --fr-colors-secondary-active-border: var(--fr-colors-gray800);\n --fr-colors-secondary-active-foreground: var(--fr-colors-black);\n --fr-colors-secondary-active-surface: var(--fr-colors-gray800);\n --fr-colors-secondary-focus-background: var(--fr-colors-gray900);\n --fr-colors-secondary-focus-border: var(--fr-colors-gray900);\n --fr-colors-secondary-focus-foreground: var(--fr-colors-black);\n --fr-colors-secondary-focus-surface: var(--fr-colors-gray900);\n --fr-colors-secondary-hover-background: var(--fr-colors-gray800);\n --fr-colors-secondary-hover-border: var(--fr-colors-gray800);\n --fr-colors-secondary-hover-foreground: var(--fr-colors-black);\n --fr-colors-secondary-hover-surface: var(--fr-colors-gray800);\n --fr-fontFamilies-default: TT Interphases Pro, sans-serif;\n --fr-fontSizes-xs: 12px;\n --fr-fontSizes-sm: 14px;\n --fr-fontSizes-md: 16px;\n --fr-fontSizes-lg: 18px;\n --fr-fontSizes-xl: 20px;\n --fr-fontSizes-2xl: 24px;\n --fr-fontSizes-3xl: 30px;\n --fr-fontSizes-4xl: 36px;\n --fr-fontSizes-5xl: 48px;\n --fr-fontWeights-regular: 400;\n --fr-fontWeights-demibold: 600;\n --fr-fontWeights-bold: 700;\n --fr-letterSpacings-md: 0.02em;\n --fr-lineHeights-xs: 18px;\n --fr-lineHeights-sm: 22px;\n --fr-lineHeights-md: 24px;\n --fr-lineHeights-lg: 26px;\n --fr-lineHeights-xl: 30px;\n --fr-lineHeights-2xl: 38px;\n --fr-lineHeights-3xl: 46px;\n --fr-lineHeights-4xl: 60px;\n --fr-radii-md: 8px;\n --fr-radii-lg: 20px;\n --fr-radii-round: 50%;\n --fr-shadows-md: 0px 4px 20px rgba(0, 0, 0, 0.1);\n --fr-space-0: 0px;\n --fr-space-1: 4px;\n --fr-space-2: 8px;\n --fr-space-3: 12px;\n --fr-space-4: 16px;\n --fr-space-5: 20px;\n --fr-space-6: 24px;\n --fr-space-7: 28px;\n --fr-space-8: 32px;\n --fr-space-9: 36px;\n --fr-space-10: 40px;\n --fr-space-11: 44px;\n --fr-space-12: 48px;\n --fr-space-13: 52px;\n --fr-space-14: 56px;\n --fr-space-15: 60px;\n --fr-space-16: 64px;\n --fr-space-17: 68px;\n --fr-space-18: 72px;\n --fr-space-19: 76px;\n --fr-space-20: 80px;\n --fr-space--20: -80px;\n --fr-space--19: -76px;\n --fr-space--18: -72px;\n --fr-space--17: -68px;\n --fr-space--16: -64px;\n --fr-space--15: -60px;\n --fr-space--14: -56px;\n --fr-space--13: -52px;\n --fr-space--12: -48px;\n --fr-space--11: -44px;\n --fr-space--10: -40px;\n --fr-space--9: -36px;\n --fr-space--8: -32px;\n --fr-space--7: -28px;\n --fr-space--6: -24px;\n --fr-space--5: -20px;\n --fr-space--4: -16px;\n --fr-space--3: -12px;\n --fr-space--2: -8px;\n --fr-space--1: -4px;\n --fr-space--0-5: -2px;\n --fr-space-0-5: 2px;\n --fr-space-auto: auto;\n}","@keyframes e160hp0 {\n 0% {\n opacity: 0.5;\n transform: scale(0.5);\n }\n 50% {\n opacity: 0;\n transform: scale(1);\n }\n 100% {\n opacity: 0;\n transform: scale(1);\n }\n}\n.e160hp1 {\n animation: 2s ease-out infinite e160hp0;\n}"],"mappings":"AAAA,MACE,2BACA,uBACA,0BACA,2BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,2BACA,6BACA,6BACA,6BACA,6BACA,8BACA,8BACA,8BACA,mCACA,4BACA,uDACA,qDACA,uDACA,sDACA,8DACA,4DACA,8DACA,6DACA,6DACA,2DACA,6DACA,4DACA,6DACA,2DACA,6DACA,4DACA,yDACA,qDACA,uDACA,sDACA,gEACA,4DACA,8DACA,6DACA,+DACA,2DACA,6DACA,4DACA,+DACA,2DACA,6DACA,4DACA,2DACA,uDACA,yDACA,wDACA,kEACA,8DACA,gEACA,+DACA,iEACA,6DACA,+DACA,8DACA,iEACA,6DACA,+DACA,8DACA,0DACA,wBACA,wBACA,wBACA,wBACA,wBACA,yBACA,yBACA,yBACA,yBACA,8BACA,+BACA,2BACA,8BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BACA,2BACA,2BACA,mBACA,oBACA,sBACA,gDACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,sBACA,oBACA,sBC7IF,sBAEI,WACA,wBAGA,UACA,sBAGA,UACA,oBAGJ,SACE","names":[]}