@1interface/widgets 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{A as a,m as e,B as s,n as t,o as r,p as i,C as o,q as d,t as n,v as u,w as l,x as m,D as g,y as C,z as T,F as c,E as p,G as S,I,H as x,J as A,L as F,K as R,N as W,O as E,R as N,P as O,Q as f,S as h,T as v,U as D,V as L,W as _,X as k,Y as B,Z as M,_ as U,$ as w,a0 as P,a1 as V,a2 as b,a3 as H,e as j,a4 as q,a5 as y,a6 as G,a7 as Y,a8 as z,a9 as J,e as K,e as Q,aa as X,ab as Z,f as $,ac as aa,a as ea,u as sa,ad as ta,ae as ra,af as ia,ag as oa,ah as da,ai as na}from"./index-caa9suT-.js";import"react/jsx-runtime";import"react";export{a as ACTION_TYPES,e as ActionHandlerContext,s as Badge,t as BasicRoot,r as Box,i as Button,o as CONSUMER_ACTIONS,d as Caption,n as Card,u as Chart,l as Checkbox,m as Col,g as DEFAULT_CONFIG,C as DatePicker,T as Divider,c as FileUploadRequest,p as Form,S as FormContext,I as Icon,x as Image,A as Input,F as Label,R as ListView,W as ListViewItem,E as Markdown,N as REDUCER_ACTIONS,O as RadioGroup,f as Row,h as SELF_CONTAINED_ACTIONS,v as Select,D as Spacer,L as Text,_ as Textarea,k as Title,B as Transition,M as Video,U as WidgetErrorBoundary,w as WidgetRenderer,P as WidgetStateManager,V as WidgetStateProvider,b as WidgetThemeProvider,H as configureMap,j as defaultActionHandler,q as formatOrderItems,y as markRequiredLabels,G as mergeConfig,Y as renderWidget,z as resolveTemplate,J as safeRenderWidget,K as useAction,Q as useActionHandler,X as useFileUploadState,Z as useFormContext,$ as useMessageId,aa as useSelectedCategory,ea as useTheme,sa as useTokens,ta as useVariants,ra as useWidgetDispatch,ia as useWidgetState,oa as useWidgetTheme,da as validateFields,na as validateForm};
1
+ import{A as a,m as e,B as s,n as t,o as r,p as i,C as o,q as d,t as n,v as u,w as l,x as m,D as g,y as C,z as T,F as c,E as p,G as S,I,H as x,J as A,L as F,K as R,N as W,O as E,R as N,P as O,Q as f,S as h,T as v,U as D,V as L,W as _,X as k,Y as B,Z as M,_ as U,$ as w,a0 as P,a1 as V,a2 as b,a3 as H,e as j,a4 as q,a5 as y,a6 as G,a7 as Y,a8 as z,a9 as J,e as K,e as Q,aa as X,ab as Z,f as $,ac as aa,a as ea,u as sa,ad as ta,ae as ra,af as ia,ag as oa,ah as da,ai as na}from"./index-BJAzmYWE.js";import"react/jsx-runtime";import"react";export{a as ACTION_TYPES,e as ActionHandlerContext,s as Badge,t as BasicRoot,r as Box,i as Button,o as CONSUMER_ACTIONS,d as Caption,n as Card,u as Chart,l as Checkbox,m as Col,g as DEFAULT_CONFIG,C as DatePicker,T as Divider,c as FileUploadRequest,p as Form,S as FormContext,I as Icon,x as Image,A as Input,F as Label,R as ListView,W as ListViewItem,E as Markdown,N as REDUCER_ACTIONS,O as RadioGroup,f as Row,h as SELF_CONTAINED_ACTIONS,v as Select,D as Spacer,L as Text,_ as Textarea,k as Title,B as Transition,M as Video,U as WidgetErrorBoundary,w as WidgetRenderer,P as WidgetStateManager,V as WidgetStateProvider,b as WidgetThemeProvider,H as configureMap,j as defaultActionHandler,q as formatOrderItems,y as markRequiredLabels,G as mergeConfig,Y as renderWidget,z as resolveTemplate,J as safeRenderWidget,K as useAction,Q as useActionHandler,X as useFileUploadState,Z as useFormContext,$ as useMessageId,aa as useSelectedCategory,ea as useTheme,sa as useTokens,ta as useVariants,ra as useWidgetDispatch,ia as useWidgetState,oa as useWidgetTheme,da as validateFields,na as validateForm};
@@ -1,4 +1,4 @@
1
- import{jsx as c}from"react/jsx-runtime";import{useRef as C,useState as y,useEffect as L,useCallback as k}from"react";import{ThemeProvider as N,useTheme as P}from"./theme";import{WidgetStateManager as A}from"./state";import{WidgetErrorBoundary as O}from"./WidgetErrorBoundary";import{renderWidget as F}from"./runtime";import{mergeConfig as j}from"./config";import{UserLocationProvider as _}from"./components/Map";import{TEXT_DIRECTIONS as $}from"./schema";const b=390,z=24;function G(e){const t=e.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i)??e.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(!t)return e;const a=e.startsWith("#"),l=a?parseInt(t[1],16):Number(t[1]),d=a?parseInt(t[2],16):Number(t[2]),g=a?parseInt(t[3],16):Number(t[3]),n=.08,u=Math.round(l*(1-n)+80*n),m=Math.round(d*(1-n)+120*n),f=Math.round(g*(1-n)+200*n);return`rgb(${u}, ${m}, ${f})`}const q=`
1
+ import{jsx as c}from"react/jsx-runtime";import{useRef as T,useState as y,useEffect as H,useCallback as C}from"react";import{ThemeProvider as N,useTheme as P}from"./theme";import{WidgetStateManager as A}from"./state";import{WidgetErrorBoundary as O}from"./WidgetErrorBoundary";import{renderWidget as F}from"./runtime";import{mergeConfig as j}from"./config";import{UserLocationProvider as _}from"./components/Map";import{TEXT_DIRECTIONS as $}from"./schema";const b=390,z=24;function G(e){const t=e.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i)??e.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(!t)return e;const a=e.startsWith("#"),l=a?parseInt(t[1],16):Number(t[1]),d=a?parseInt(t[2],16):Number(t[2]),g=a?parseInt(t[3],16):Number(t[3]),n=.08,u=Math.round(l*(1-n)+80*n),m=Math.round(d*(1-n)+120*n),f=Math.round(g*(1-n)+200*n);return`rgb(${u}, ${m}, ${f})`}const q=`
2
2
  [data-widget-renderer][data-widget-renderer] *,
3
3
  [data-widget-renderer][data-widget-renderer] *::before,
4
4
  [data-widget-renderer][data-widget-renderer] *::after {
@@ -33,10 +33,15 @@ import{jsx as c}from"react/jsx-runtime";import{useRef as C,useState as y,useEffe
33
33
  -webkit-box-shadow: 0 0 0 9999px var(--widget-input-bg) inset !important;
34
34
  -webkit-text-fill-color: var(--widget-input-fg) !important;
35
35
  }
36
- /* Anchor the card to the trailing edge: the root View is its flex parent and
37
- carries an inline alignItems, so target it directly with !important. Position
38
- only \u2014 the subtree stays ltr (outer div), so contents don't mirror. */
36
+ /* Anchor the card to the reading edge \u2014 leading in LTR, trailing in RTL. The root
37
+ View is its flex parent and carries an inline alignItems, so target it directly
38
+ with !important; mirror the two directions so LTR and RTL behave symmetrically
39
+ (same mechanism, opposite edge). Position only \u2014 the subtree stays ltr (outer
40
+ div), so contents don't mirror. */
41
+ [data-widget-renderer][data-widget-dir="ltr"] > * {
42
+ align-items: flex-start !important;
43
+ }
39
44
  [data-widget-renderer][data-widget-dir="rtl"] > * {
40
45
  align-items: flex-end !important;
41
46
  }
42
- `;let v=!1;function U(){if(v||typeof document>"u")return;if(document.getElementById("widget-renderer-style")){v=!0;return}const e=document.createElement("style");e.id="widget-renderer-style",e.textContent=q,document.head.appendChild(e),v=!0}function ae({widget:e,branding:t,brandingStyles:a,theme:l="light",messageId:d,onConsumerAction:g,config:n,errorFallback:u,userLocation:m,direction:f=$.ltr}){const p=C(null),h=C(null),[w,T]=y(1),[I,E]=y(!1),[M,D]=y(void 0),R=k(()=>{const o=p.current;if(!o)return;const r=o.clientWidth;E(s=>s?r<b+z:r<b);const i=Math.min(r<b?r/b:1,1);T(s=>Math.abs(s-i)<.005?s:i)},[]),S=k(()=>{const o=h.current;if(!o)return;const r=o.scrollHeight;D(i=>i!==void 0&&Math.abs(i-r)<1?i:r)},[]);if(L(()=>{U();const o=p.current,r=h.current;if(!o||!r)return;let i=0;const s=()=>{cancelAnimationFrame(i),i=requestAnimationFrame(()=>{R(),S()})},x=new ResizeObserver(s);x.observe(o);const W=new ResizeObserver(s);return W.observe(r),()=>{cancelAnimationFrame(i),x.disconnect(),W.disconnect()}},[R,S]),!e)return null;const B=t??a,H=j(n);return c(N,{branding:B,mode:l,config:H,children:c(A,{messageId:d,onConsumerAction:g,children:c(_,{location:m??null,children:c(V,{outerRef:p,innerRef:h,theme:l,direction:f,needsScaling:I,innerHeight:M,scale:w,errorFallback:u,widget:e})})})})}function V({outerRef:e,innerRef:t,theme:a,direction:l,needsScaling:d,innerHeight:g,scale:n,errorFallback:u,widget:m}){const{tokens:f,variants:p}=P(),h=p.input.soft.bg,w=G(h);return c("div",{ref:e,style:{direction:"ltr",width:"100%",overflow:"hidden",height:d&&g?g*n:void 0},children:c("div",{ref:t,"data-widget-renderer":"","data-widget-dir":l,"data-theme":a,style:{width:d?`${b}px`:"100%",transformOrigin:"top left",transform:d?`scale(${n})`:void 0,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale","--widget-input-fg":f.color.text,"--widget-input-bg":w},children:c(O,{fallback:u,children:F(m)})})})}export{ae as WidgetRenderer};
47
+ `;let R=!1;function U(){if(R||typeof document>"u")return;if(document.getElementById("widget-renderer-style")){R=!0;return}const e=document.createElement("style");e.id="widget-renderer-style",e.textContent=q,document.head.appendChild(e),R=!0}function ae({widget:e,branding:t,brandingStyles:a,theme:l="light",messageId:d,onConsumerAction:g,config:n,errorFallback:u,userLocation:m,direction:f=$.ltr}){const p=T(null),h=T(null),[w,k]=y(1),[I,E]=y(!1),[M,D]=y(void 0),v=C(()=>{const o=p.current;if(!o)return;const r=o.clientWidth;E(s=>s?r<b+z:r<b);const i=Math.min(r<b?r/b:1,1);k(s=>Math.abs(s-i)<.005?s:i)},[]),x=C(()=>{const o=h.current;if(!o)return;const r=o.scrollHeight;D(i=>i!==void 0&&Math.abs(i-r)<1?i:r)},[]);if(H(()=>{U();const o=p.current,r=h.current;if(!o||!r)return;let i=0;const s=()=>{cancelAnimationFrame(i),i=requestAnimationFrame(()=>{v(),x()})},S=new ResizeObserver(s);S.observe(o);const W=new ResizeObserver(s);return W.observe(r),()=>{cancelAnimationFrame(i),S.disconnect(),W.disconnect()}},[v,x]),!e)return null;const L=t??a,B=j(n);return c(N,{branding:L,mode:l,config:B,children:c(A,{messageId:d,onConsumerAction:g,children:c(_,{location:m??null,children:c(V,{outerRef:p,innerRef:h,theme:l,direction:f,needsScaling:I,innerHeight:M,scale:w,errorFallback:u,widget:e})})})})}function V({outerRef:e,innerRef:t,theme:a,direction:l,needsScaling:d,innerHeight:g,scale:n,errorFallback:u,widget:m}){const{tokens:f,variants:p}=P(),h=p.input.soft.bg,w=G(h);return c("div",{ref:e,style:{direction:"ltr",width:"100%",overflow:"hidden",height:d&&g?g*n:void 0},children:c("div",{ref:t,"data-widget-renderer":"","data-widget-dir":l,"data-theme":a,style:{width:d?`${b}px`:"100%",transformOrigin:"top left",transform:d?`scale(${n})`:void 0,WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale","--widget-input-fg":f.color.text,"--widget-input-bg":w},children:c(O,{fallback:u,children:F(m)})})})}export{ae as WidgetRenderer};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{View as f}from"react-native";import{ThemeProvider as C}from"./theme";import{WidgetStateManager as W}from"./state";import{WidgetErrorBoundary as u}from"./WidgetErrorBoundary";import{renderWidget as y}from"./runtime";import{mergeConfig as R}from"./config";import{UserLocationProvider as h}from"./components/Map";import{TEXT_DIRECTIONS as r}from"./schema";function M({widget:o,branding:t,brandingStyles:i,theme:n="light",messageId:d,onConsumerAction:a,config:g,errorFallback:m,userLocation:s,direction:l=r.ltr}){if(!o)return null;const c=t??i,p=R(g);return e(C,{branding:c,mode:n,config:p,children:e(W,{messageId:d,onConsumerAction:a,children:e(h,{location:s??null,children:e(f,{style:{width:"100%",direction:"ltr",alignItems:l===r.rtl?"flex-end":"stretch"},children:e(u,{fallback:m,children:y(o)})})})})})}export{M as WidgetRenderer};
1
+ import{jsx as e}from"react/jsx-runtime";import{View as f}from"react-native";import{ThemeProvider as C}from"./theme";import{WidgetStateManager as W}from"./state";import{WidgetErrorBoundary as u}from"./WidgetErrorBoundary";import{renderWidget as y}from"./runtime";import{mergeConfig as R}from"./config";import{UserLocationProvider as T}from"./components/Map";import{TEXT_DIRECTIONS as r}from"./schema";function L({widget:o,branding:t,brandingStyles:i,theme:n="light",messageId:d,onConsumerAction:a,config:g,errorFallback:m,userLocation:l,direction:s=r.ltr}){if(!o)return null;const c=t??i,p=R(g);return e(C,{branding:c,mode:n,config:p,children:e(W,{messageId:d,onConsumerAction:a,children:e(T,{location:l??null,children:e(f,{style:{width:"100%",direction:"ltr",alignItems:s===r.rtl?"flex-end":"flex-start"},children:e(u,{fallback:m,children:y(o)})})})})})}export{L as WidgetRenderer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1interface/widgets",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,