@bedrock-layout/solid 0.8.0 → 0.9.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.
@@ -0,0 +1,2 @@
1
+ import { Accessor, Setter } from "solid-js";
2
+ export declare function createContainerQuery<T extends Element>(width?: number, maxWidth?: number): [Accessor<boolean>, Setter<T | undefined>];
package/lib/index.cjs.js CHANGED
@@ -1,11 +1,11 @@
1
- "use strict";var A=Object.defineProperty,j=Object.defineProperties;var z=Object.getOwnPropertyDescriptors;var u=Object.getOwnPropertySymbols;var v=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,g=(e,t)=>{for(var n in t||(t={}))v.call(t,n)&&h(e,n,t[n]);if(u)for(var n of u(t))$.call(t,n)&&h(e,n,t[n]);return e},y=(e,t)=>j(e,z(t));var S=(e,t)=>{var n={};for(var i in e)v.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&u)for(var i of u(e))t.indexOf(i)<0&&$.call(e,i)&&(n[i]=e[i]);return n};Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var a=require("solid-styled-components");function p(e){return typeof e!="string"?!1:[/^[0-9]{0,10000}\.?[0-9]{1,10000}(vmin|vmax|vh|vw|%|ch|ex|em|rem|in|cm|mm|pt|pc|px)$/,/^var\(--\D{1,100}\)$/].some(t=>t.test(e))}const b={none:"0px",xxs:"0.0625rem",xs:"0.125rem",sm:"0.25rem",md:"0.5rem",mdLg:"0.75rem",lg:"1rem",lgXl:"1.5rem",xl:"2rem",xlXXl:"3rem",xxl:"4rem"};function I(e){return e.reduce((t,[n,i])=>y(g({},t),{[n]:i}),{})}const s=(e,t)=>{var r,c;const n=(c=(r=t==null?void 0:t.space)!=null?r:t==null?void 0:t.spacing)!=null?c:b,o=I(Object.entries(n).map(([f,x])=>[f,typeof x=="number"?`${x}px`:x]))[e];return p(o)?o:void 0};function R(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const W=a.styled.div`
1
+ "use strict";var L=Object.defineProperty,V=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var k=(e,t,n)=>t in e?L(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,f=(e,t)=>{for(var n in t||(t={}))C.call(t,n)&&k(e,n,t[n]);if(y)for(var n of y(t))z.call(t,n)&&k(e,n,t[n]);return e},m=(e,t)=>V(e,D(t));var A=(e,t)=>{var n={};for(var r in e)C.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&y)for(var r of y(e))t.indexOf(r)<0&&z.call(e,r)&&(n[r]=e[r]);return n};Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var s=require("solid-styled-components"),R=require("@bedrock-layout/register-resize-callback"),g=require("solid-js");function b(e){return typeof e!="string"?!1:[/^[0-9]{0,10000}\.?[0-9]{1,10000}(vmin|vmax|vh|vw|%|ch|ex|em|rem|in|cm|mm|pt|pc|px)$/,/^var\(--\D{1,100}\)$/].some(t=>t.test(e))}const v={none:"0px",xxs:"0.0625rem",xs:"0.125rem",sm:"0.25rem",md:"0.5rem",mdLg:"0.75rem",lg:"1rem",lgXl:"1.5rem",xl:"2rem",xlXXl:"3rem",xxl:"4rem"};function W(e){return e.reduce((t,[n,r])=>m(f({},t),{[n]:r}),{})}const u=(e,t)=>{var i,c;const n=(c=(i=t==null?void 0:t.space)!=null?i:t==null?void 0:t.spacing)!=null?c:v,a=W(Object.entries(n).map(([l,d])=>[l,typeof d=="number"?`${d}px`:d]))[e];return b(a)?a:void 0};function X(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const F=s.styled.div`
2
2
  @property --maxWidth {
3
3
  syntax: "<length-percentage>";
4
4
  inherits: false;
5
5
  initial-value: 100%;
6
6
  }
7
7
 
8
- --maxWidth: ${e=>R(e.maxWidth)};
8
+ --maxWidth: ${e=>X(e.maxWidth)};
9
9
 
10
10
  box-sizing: content-box;
11
11
 
@@ -17,16 +17,16 @@
17
17
 
18
18
  max-inline-size: var(--maxWidth, 100%);
19
19
 
20
- ${e=>e.centerChildren?a.css`
20
+ ${e=>e.centerChildren?s.css`
21
21
  display: flex;
22
22
  flex-direction: column;
23
23
  align-items: center;
24
24
  `:""}
25
25
 
26
- ${e=>e.centerText?a.css`
26
+ ${e=>e.centerText?s.css`
27
27
  text-align: center;
28
28
  `:""}
29
- `;function E(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const M=a.styled("div")`
29
+ `;function N(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const _=s.styled("div")`
30
30
  @property --basis {
31
31
  syntax: "<length-percentage>";
32
32
  inherits: true;
@@ -39,8 +39,8 @@
39
39
  initial-value: 0px;
40
40
  }
41
41
 
42
- --basis: ${e=>E(e.basis)};
43
- --gutter: ${e=>{var t;return e.gutter&&(t=s(e.gutter,e.theme))!=null?t:"0px"}};
42
+ --basis: ${e=>N(e.basis)};
43
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
44
44
 
45
45
  box-sizing: border-box;
46
46
  > * {
@@ -53,14 +53,14 @@
53
53
  display: flex;
54
54
  flex-wrap: wrap;
55
55
  gap: var(--gutter, 0px);
56
- `;function O(e){return Array.isArray(e)&&e.length===2&&e.every(Number.isFinite)||typeof e=="string"&&/^\d{1,1000} {0,1}\/ {0,1}\d{1,1000}$/.test(e)}function P(e){return Array.isArray(e)?e.join("/"):e}function D(e){return O(e)?P(e):void 0}const L=a.styled.div`
56
+ `;function P(e=1,t){if(t!==void 0&&t<=e)throw new Error(`The second width value, ${t}, is not larger than ${e}. Please provide a value greater than first width value`);const[n,r]=g.createSignal(!1),[a,o]=g.createSignal();return g.onMount(()=>{R.init()}),g.createEffect(()=>{const i=a();if(i==null)return;const c=R.registerCallback(i,l=>{var $,w;const d=(w=($=l.borderBoxSize)==null?void 0:$.inlineSize)!=null?w:l.contentRect.width;if(d>0){const T=t===void 0?d<=e:d>=e&&d<=t;r(T)}});g.onCleanup(c)}),[n,o]}function q(e){return Array.isArray(e)&&e.length===2&&e.every(Number.isFinite)||typeof e=="string"&&/^\d{1,1000} {0,1}\/ {0,1}\d{1,1000}$/.test(e)}function G(e){return Array.isArray(e)?e.join("/"):e}function H(e){return q(e)?G(e):void 0}const Q=s.styled.div`
57
57
  box-sizing: border-box;
58
58
  display: block;
59
59
  inline-size: 100%;
60
60
  position: relative;
61
61
  overflow: hidden;
62
62
 
63
- ${e=>{const t=D(e.ratio);return t?a.css`
63
+ ${e=>{const t=H(e.ratio);return t?s.css`
64
64
  aspect-ratio: ${t};
65
65
  `:""}};
66
66
 
@@ -88,7 +88,7 @@
88
88
  object-fit: cover;
89
89
  object-position: ${e=>typeof e.position=="string"?e.position:"50%"};
90
90
  }
91
- `,T=a.styled("div")`
91
+ `,U=s.styled("div")`
92
92
  @property --gutter {
93
93
  syntax: "<length-percentage>";
94
94
  inherits: false;
@@ -101,7 +101,7 @@
101
101
  initial-value: 639px;
102
102
  }
103
103
 
104
- --gutter: ${e=>{var t;return e.gutter&&(t=s(e.gutter,e.theme))!=null?t:"0px"}};
104
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
105
105
  --minItemWidth: ${e=>{var t;return typeof e.minItemWidth=="string"?e.minItemWidth:`${(t=e.minItemWidth)!=null?t:0}px`}};
106
106
 
107
107
  box-sizing: border-box;
@@ -116,8 +116,8 @@
116
116
  auto-fit,
117
117
  minmax(min(var(--minItemWidth, 639px), 100%), 1fr)
118
118
  );
119
- `,d={start:"flex-start",end:"flex-end",center:"center"},m=y(g({},d),{stretch:"stretch"}),C=a.styled.div`
120
- --gutter: ${e=>{var t;return e.gutter&&(t=s(e.gutter,e.theme))!=null?t:"0px"}};
119
+ `,x={start:"flex-start",end:"flex-end",center:"center"},h=m(f({},x),{stretch:"stretch"}),M=s.styled.div`
120
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
121
121
 
122
122
  box-sizing: border-box;
123
123
  > * {
@@ -128,10 +128,10 @@
128
128
  flex-wrap: wrap;
129
129
  gap: var(--gutter, 0px);
130
130
 
131
- justify-content: ${e=>typeof e.justify!="undefined"&&d[e.justify]?d[e.justify]:d.start};
131
+ justify-content: ${e=>typeof e.justify!="undefined"&&x[e.justify]?x[e.justify]:x.start};
132
132
 
133
- align-items: ${e=>typeof e.align!="undefined"&&m[e.align]?m[e.align]:m.start};
134
- `;function V(e){return typeof e=="number"&&e>-1?!0:typeof e=="string"&&typeof CSS!==void 0?CSS.supports(`height: ${e}`):!1}const B=a.styled(C)`
133
+ align-items: ${e=>typeof e.align!="undefined"&&h[e.align]?h[e.align]:h.start};
134
+ `;function J(e){return typeof e=="number"&&e>-1?!0:typeof e=="string"&&typeof CSS!==void 0?CSS.supports(`height: ${e}`):!1}const K=s.styled(M)`
135
135
  @property --switchAt {
136
136
  syntax: "<length-percentage>";
137
137
  inherits: true;
@@ -140,7 +140,7 @@
140
140
  flex-wrap: nowrap;
141
141
  ${e=>e.stretch==="all"?"> * { flex: 1 }":e.stretch==="start"?"> :first-child { flex: 1 }":e.stretch==="end"?"> :last-child { flex: 1 }":typeof e.stretch=="number"?`> :nth-child(${e.stretch+1}) { flex: 1 }`:""}
142
142
 
143
- ${e=>V(e.switchAt)?`
143
+ ${e=>J(e.switchAt)?`
144
144
  --switchAt: ${typeof e.switchAt=="string"?e.switchAt:`${e.switchAt}px`};
145
145
  flex-wrap: wrap;
146
146
  > * {
@@ -150,17 +150,17 @@
150
150
  );
151
151
  }
152
152
  `:""}
153
- `,k=new Set(["left","right","top","bottom","inlineStart","inlineEnd","blockStart","blockEnd"]),F=(e,t)=>({left:`padding-inline-start:${t};`,right:`padding-inline-end:${t};`,top:`padding-block-start:${t};`,bottom:`padding-block-end:${t};`,inlineStart:`padding-inline-start:${t};`,inlineEnd:`padding-inline-end:${t};`,blockStart:`padding-block-start:${t};`,blockEnd:`padding-block-end:${t};`})[e];function X(e){return t=>{const n=s(t,e);return n!=null?n:"0px"}}function w(e,t){var l;if(Array.isArray(t)&&t.length>4)throw new Error("padding arrays can only be 4 or less in length");const n=new Set(Object.keys((l=e==null?void 0:e.spacing)!=null?l:b));(()=>typeof t=="string"?!0:Array.isArray(t)?t.every(r=>n.has(r)):t&&Object.keys(t).every(r=>k.has(r))&&Object.values(t).every(r=>n.has(r)))()||console.error("Invalid padding Type");const o=X(e);return typeof t=="object"&&!Array.isArray(t)?Object.entries(t).reduce((r,[c,f])=>k.has(c)?r+F(c,o(f)):r,""):t!==void 0?`padding: ${Array.from(Array.isArray(t)?t:[t]).map(r=>o(r)).join(" ")};`:""}const G=a.styled.div`
153
+ `,j=new Set(["left","right","top","bottom","inlineStart","inlineEnd","blockStart","blockEnd"]),Y=(e,t)=>({left:`padding-inline-start:${t};`,right:`padding-inline-end:${t};`,top:`padding-block-start:${t};`,bottom:`padding-block-end:${t};`,inlineStart:`padding-inline-start:${t};`,inlineEnd:`padding-inline-end:${t};`,blockStart:`padding-block-start:${t};`,blockEnd:`padding-block-end:${t};`})[e];function Z(e){return t=>{const n=u(t,e);return n!=null?n:"0px"}}function ee(e,t){var o;if(Array.isArray(t)&&t.length>4)throw new Error("padding arrays can only be 4 or less in length");const n=new Set(Object.keys((o=e==null?void 0:e.spacing)!=null?o:v));(()=>typeof t=="string"?!0:Array.isArray(t)?t.every(i=>n.has(i)):t&&Object.keys(t).every(i=>j.has(i))&&Object.values(t).every(i=>n.has(i)))()||console.error("Invalid padding Type");const a=Z(e);return typeof t=="object"&&!Array.isArray(t)?Object.entries(t).reduce((i,[c,l])=>j.has(c)?i+Y(c,a(l)):i,""):t!==void 0?`padding: ${Array.from(Array.isArray(t)?t:[t]).map(i=>a(i)).join(" ")};`:""}const te=s.styled.div`
154
154
  box-sizing: border-box;
155
- ${e=>(console.log(w(e.theme,e.padding)),w(e.theme,e.padding))}
156
- `,_=a.styled.div`
155
+ ${e=>ee(e.theme,e.padding)}
156
+ `,ne=s.styled.div`
157
157
  box-sizing: border-box;
158
158
  > * {
159
159
  margin: 0;
160
160
  scroll-snap-align: start;
161
161
  }
162
162
 
163
- --gutter: ${e=>{var t;return e.gutter&&(t=s(e.gutter,e.theme))!=null?t:"0px"}};
163
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
164
164
 
165
165
  display: flex;
166
166
  gap: var(--gutter, 0px);
@@ -168,14 +168,14 @@
168
168
  overflow-x: scroll;
169
169
 
170
170
  scroll-snap-type: ${({snapType:e="none"})=>{switch(e){case"none":return"none";case"proximity":return"x proximity";case"mandatory":return"x mandatory";default:return"none"}}};
171
- `,q=a.styled("div")`
171
+ `,B=s.styled("div")`
172
172
  @property --gutter {
173
173
  syntax: "<length-percentage>";
174
174
  inherits: false;
175
175
  initial-value: 0;
176
176
  }
177
177
 
178
- --gutter: ${e=>{var t;return e.gutter&&(t=s(e.gutter,e.theme))!=null?t:"0px"}};
178
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
179
179
  box-sizing: border-box;
180
180
  > * {
181
181
  margin: 0;
@@ -189,7 +189,18 @@
189
189
  & > [data-bedrock-column] {
190
190
  grid-column: span 1 / auto;
191
191
  }
192
- `;function H(e){return typeof e=="number"?`${e}px`:e&&p(e)?e:"100vh"}const K=a.styled.div`
192
+ `,E={"1/4":"1fr 3fr","1/3":"1fr 2fr","1/2":"1fr 1fr","2/3":"2fr 1fr","3/4":"3fr 1fr","auto-start":"auto 1fr","auto-end":"1fr auto"},re=s.styled.div`
193
+ box-sizing: border-box;
194
+ > * {
195
+ margin: 0;
196
+ }
197
+
198
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
199
+
200
+ display: grid;
201
+ gap: var(--gutter, 0px);
202
+ grid-template-columns: ${({fraction:e="1/2"})=>{var t;return(t=E[e])!=null?t:E["1/2"]}}};
203
+ `,ie=e=>{const t=typeof e.switchAt=="string"?S(e.switchAt):e.switchAt,n=t&&t>-1?t:0;console.log(n);const[r,a]=P(n),o=i=>{var c;a(i),(c=e.ref)==null||c.call(e,i)};return React.createElement(g.Switch,null,React.createElement(g.Match,{when:r()===!1},React.createElement(re,f({as:e.as,ref:o,fraction:e.fraction},e))),React.createElement(g.Match,{when:r()===!0},React.createElement(B,f({as:e.as,ref:o},e))))};function O(e){var r;e=String(e);const t=parseFloat(e),[,n]=(r=e.match(/[\d.\-+]*\s*(.*)/))!=null?r:["",""];return[t,n]}function p(e,t){var a;const[n,r]=O(getComputedStyle(e).getPropertyValue(t));return n*((a=S(r,e))!=null?a:1)}function I(e,t){const n=document.createElement("div");n.style.height="128"+e,t.appendChild(n);const r=p(n,"height")/128;return t.removeChild(n),r}function S(e,t){if(!e)return null;const r=typeof window=="object"&&typeof document=="object"&&document.nodeType===9?I("in",document.body):96,a=t!=null?t:document.body,o=(e!=null?e:"px").trim().toLowerCase();switch(o){case"vmin":case"vmax":case"vh":case"vw":case"%":return null;case"ch":case"ex":return I(o,a);case"em":return p(a,"font-size");case"rem":return p(document.body,"font-size");case"in":return r;case"cm":return r/2.54;case"mm":return r/25.4;case"pt":return r/72;case"pc":return r/6;case"px":return 1;default:{const[i,c]=O(o);if(isNaN(i))return null;if(!c)return i;const l=S(c,t);return typeof l=="number"?i*l:null}}}function ae(e){return typeof e=="number"?`${e}px`:e&&b(e)?e:"100vh"}const oe=s.styled.div`
193
204
  @property --gutter {
194
205
  syntax: "<length-percentage>";
195
206
  inherits: false;
@@ -202,9 +213,9 @@
202
213
  initial-value: 100vh;
203
214
  }
204
215
 
205
- --gutter: ${e=>{var t;return e.gutter&&(t=s(e.gutter,e.theme))!=null?t:"0px"}};
216
+ --gutter: ${e=>{var t;return e.gutter&&(t=u(e.gutter,e.theme))!=null?t:"0px"}};
206
217
 
207
- --minHeight: ${e=>H(e.minHeight)};
218
+ --minHeight: ${e=>ae(e.minHeight)};
208
219
 
209
220
  > * {
210
221
  margin: 0;
@@ -229,4 +240,4 @@
229
240
  }
230
241
  `:""};
231
242
  }
232
- `,N=e=>{const l=e,{top:t,bottom:n,children:i}=l,o=S(l,["top","bottom","children"]);return React.createElement(K,g({},o),e.top,React.createElement("div",{"data-bedrock-cover-centered":!0},e.children),e.bottom)};exports.Center=W;exports.ColumnDrop=M;exports.Cover=N;exports.Frame=L;exports.Grid=T;exports.Inline=B;exports.InlineCluster=C;exports.PadBox=G;exports.Reel=_;exports.Stack=q;exports.checkIsCSSLength=p;exports.getSpacingValue=s;exports.spacing=b;
243
+ `,se=e=>{const o=e,{top:t,bottom:n,children:r}=o,a=A(o,["top","bottom","children"]);return React.createElement(oe,f({},a),e.top,React.createElement("div",{"data-bedrock-cover-centered":!0},e.children),e.bottom)};exports.Center=F;exports.ColumnDrop=_;exports.Cover=se;exports.Frame=Q;exports.Grid=U;exports.Inline=K;exports.InlineCluster=M;exports.PadBox=te;exports.Reel=ne;exports.Split=ie;exports.Stack=B;exports.checkIsCSSLength=b;exports.createContainerQuery=P;exports.getSpacingValue=u;exports.spacing=v;
package/lib/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  export * from "./spacing-constants";
2
2
  export * from "./center";
3
3
  export * from "./column-drop";
4
+ export * from "./create-container-query";
4
5
  export * from "./frame";
5
6
  export * from "./grid";
6
7
  export * from "./inline-cluster";
7
8
  export * from "./inline";
8
9
  export * from "./padbox";
9
10
  export * from "./reel";
11
+ export * from "./split";
10
12
  export * from "./stack";
11
13
  export * from "./cover";
package/lib/index.m.js CHANGED
@@ -30,6 +30,8 @@ var __objRest = (source, exclude) => {
30
30
  return target;
31
31
  };
32
32
  import { styled, css } from "solid-styled-components";
33
+ import { init, registerCallback } from "@bedrock-layout/register-resize-callback";
34
+ import { createSignal, onMount, createEffect, onCleanup, Switch, Match } from "solid-js";
33
35
  function checkIsCSSLength(str) {
34
36
  if (typeof str !== "string")
35
37
  return false;
@@ -141,6 +143,31 @@ const ColumnDrop = styled("div")`
141
143
  flex-wrap: wrap;
142
144
  gap: var(--gutter, 0px);
143
145
  `;
146
+ function createContainerQuery(width = 1, maxWidth) {
147
+ if (maxWidth !== void 0 && maxWidth <= width) {
148
+ throw new Error(`The second width value, ${maxWidth}, is not larger than ${width}. Please provide a value greater than first width value`);
149
+ }
150
+ const [matches, setMatch] = createSignal(false);
151
+ const [node, nodeRef] = createSignal();
152
+ onMount(() => {
153
+ init();
154
+ });
155
+ createEffect(() => {
156
+ const ref = node();
157
+ if (ref === void 0 || ref === null)
158
+ return;
159
+ const cleanup = registerCallback(ref, (entry) => {
160
+ var _a, _b;
161
+ const nodeWidth = (_b = (_a = entry.borderBoxSize) == null ? void 0 : _a.inlineSize) != null ? _b : entry.contentRect.width;
162
+ if (nodeWidth > 0) {
163
+ const newMatch = maxWidth === void 0 ? nodeWidth <= width : nodeWidth >= width && nodeWidth <= maxWidth;
164
+ setMatch(newMatch);
165
+ }
166
+ });
167
+ onCleanup(cleanup);
168
+ });
169
+ return [matches, nodeRef];
170
+ }
144
171
  function checkIsRatio(ratio) {
145
172
  const isCorrectArray = Array.isArray(ratio) && ratio.length === 2 && ratio.every(Number.isFinite);
146
173
  return isCorrectArray || typeof ratio === "string" && /^\d{1,1000} {0,1}\/ {0,1}\d{1,1000}$/.test(ratio);
@@ -336,7 +363,7 @@ function paddingToString(theme, padding) {
336
363
  }
337
364
  const PadBox = styled.div`
338
365
  box-sizing: border-box;
339
- ${(props) => (console.log(paddingToString(props.theme, props.padding)), paddingToString(props.theme, props.padding))}
366
+ ${(props) => paddingToString(props.theme, props.padding)}
340
367
  `;
341
368
  const Reel = styled.div`
342
369
  box-sizing: border-box;
@@ -397,6 +424,120 @@ const Stack = styled("div")`
397
424
  grid-column: span 1 / auto;
398
425
  }
399
426
  `;
427
+ const fractions = {
428
+ "1/4": "1fr 3fr",
429
+ "1/3": "1fr 2fr",
430
+ "1/2": "1fr 1fr",
431
+ "2/3": "2fr 1fr",
432
+ "3/4": "3fr 1fr",
433
+ "auto-start": `auto 1fr`,
434
+ "auto-end": `1fr auto`
435
+ };
436
+ const SplitBase = styled.div`
437
+ box-sizing: border-box;
438
+ > * {
439
+ margin: 0;
440
+ }
441
+
442
+ --gutter: ${(props) => {
443
+ var _a;
444
+ return props.gutter ? (_a = getSpacingValue(props.gutter, props.theme)) != null ? _a : "0px" : "0px";
445
+ }};
446
+
447
+ display: grid;
448
+ gap: var(--gutter, 0px);
449
+ grid-template-columns: ${({ fraction = "1/2" }) => {
450
+ var _a;
451
+ return (_a = fractions[fraction]) != null ? _a : fractions["1/2"];
452
+ }}};
453
+ `;
454
+ const Split = (props) => {
455
+ const maybePx = typeof props.switchAt === "string" ? toPX(props.switchAt) : props.switchAt;
456
+ const widthToSwitchAt = maybePx && maybePx > -1 ? maybePx : 0;
457
+ console.log(widthToSwitchAt);
458
+ const [shouldSwitch, nodeRef] = createContainerQuery(widthToSwitchAt);
459
+ const combineRef = (ref) => {
460
+ var _a;
461
+ nodeRef(ref);
462
+ (_a = props.ref) == null ? void 0 : _a.call(props, ref);
463
+ };
464
+ return /* @__PURE__ */ React.createElement(Switch, null, /* @__PURE__ */ React.createElement(Match, {
465
+ when: shouldSwitch() === false
466
+ }, /* @__PURE__ */ React.createElement(SplitBase, __spreadValues({
467
+ as: props.as,
468
+ ref: combineRef,
469
+ fraction: props.fraction
470
+ }, props))), /* @__PURE__ */ React.createElement(Match, {
471
+ when: shouldSwitch() === true
472
+ }, /* @__PURE__ */ React.createElement(Stack, __spreadValues({
473
+ as: props.as,
474
+ ref: combineRef
475
+ }, props))));
476
+ };
477
+ function parseUnit(str) {
478
+ var _a;
479
+ str = String(str);
480
+ const num = parseFloat(str);
481
+ const [, unit] = (_a = str.match(/[\d.\-+]*\s*(.*)/)) != null ? _a : ["", ""];
482
+ return [num, unit];
483
+ }
484
+ function getPropertyInPX(element, prop) {
485
+ var _a;
486
+ const [value, units] = parseUnit(getComputedStyle(element).getPropertyValue(prop));
487
+ return value * ((_a = toPX(units, element)) != null ? _a : 1);
488
+ }
489
+ function getSizeBrutal(unit, element) {
490
+ const testDIV = document.createElement("div");
491
+ testDIV.style["height"] = "128" + unit;
492
+ element.appendChild(testDIV);
493
+ const size = getPropertyInPX(testDIV, "height") / 128;
494
+ element.removeChild(testDIV);
495
+ return size;
496
+ }
497
+ function toPX(str, element) {
498
+ if (!str)
499
+ return null;
500
+ const isBrowser = typeof window === "object" && typeof document === "object" && document.nodeType === 9;
501
+ const PIXELS_PER_INCH = isBrowser ? getSizeBrutal("in", document.body) : 96;
502
+ const elementOrBody = element != null ? element : document.body;
503
+ const safeStr = (str != null ? str : "px").trim().toLowerCase();
504
+ switch (safeStr) {
505
+ case "vmin":
506
+ case "vmax":
507
+ case "vh":
508
+ case "vw":
509
+ case "%":
510
+ return null;
511
+ case "ch":
512
+ case "ex":
513
+ return getSizeBrutal(safeStr, elementOrBody);
514
+ case "em":
515
+ return getPropertyInPX(elementOrBody, "font-size");
516
+ case "rem":
517
+ return getPropertyInPX(document.body, "font-size");
518
+ case "in":
519
+ return PIXELS_PER_INCH;
520
+ case "cm":
521
+ return PIXELS_PER_INCH / 2.54;
522
+ case "mm":
523
+ return PIXELS_PER_INCH / 25.4;
524
+ case "pt":
525
+ return PIXELS_PER_INCH / 72;
526
+ case "pc":
527
+ return PIXELS_PER_INCH / 6;
528
+ case "px":
529
+ return 1;
530
+ default: {
531
+ const [value, units] = parseUnit(safeStr);
532
+ if (isNaN(value))
533
+ return null;
534
+ if (!units)
535
+ return value;
536
+ const px = toPX(units, element);
537
+ return typeof px === "number" ? value * px : null;
538
+ }
539
+ }
540
+ }
400
541
  function getSafeMinHeight(minHeight) {
401
542
  if (typeof minHeight === "number")
402
543
  return `${minHeight}px`;
@@ -452,4 +593,4 @@ const Cover = (props) => {
452
593
  "data-bedrock-cover-centered": true
453
594
  }, props.children), props.bottom);
454
595
  };
455
- export { Center, ColumnDrop, Cover, Frame, Grid, Inline, InlineCluster, PadBox, Reel, Stack, checkIsCSSLength, getSpacingValue, spacing };
596
+ export { Center, ColumnDrop, Cover, Frame, Grid, Inline, InlineCluster, PadBox, Reel, Split, Stack, checkIsCSSLength, createContainerQuery, getSpacingValue, spacing };
package/lib/index.umd.js CHANGED
@@ -1,11 +1,11 @@
1
- var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var x=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var S=(n,i,r)=>i in n?K(n,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[i]=r,y=(n,i)=>{for(var r in i||(i={}))w.call(i,r)&&S(n,r,i[r]);if(x)for(var r of x(i))A.call(i,r)&&S(n,r,i[r]);return n},p=(n,i)=>N(n,U(i));var j=(n,i)=>{var r={};for(var a in n)w.call(n,a)&&i.indexOf(a)<0&&(r[a]=n[a]);if(n!=null&&x)for(var a of x(n))i.indexOf(a)<0&&A.call(n,a)&&(r[a]=n[a]);return r};(function(n,i){typeof exports=="object"&&typeof module!="undefined"?i(exports,require("solid-styled-components")):typeof define=="function"&&define.amd?define(["exports","solid-styled-components"],i):(n=typeof globalThis!="undefined"?globalThis:n||self,i(n.solid={},n.solidStyledComponents))})(this,function(n,i){"use strict";function r(e){return typeof e!="string"?!1:[/^[0-9]{0,10000}\.?[0-9]{1,10000}(vmin|vmax|vh|vw|%|ch|ex|em|rem|in|cm|mm|pt|pc|px)$/,/^var\(--\D{1,100}\)$/].some(t=>t.test(e))}const a={none:"0px",xxs:"0.0625rem",xs:"0.125rem",sm:"0.25rem",md:"0.5rem",mdLg:"0.75rem",lg:"1rem",lgXl:"1.5rem",xl:"2rem",xlXXl:"3rem",xxl:"4rem"};function z(e){return e.reduce((t,[l,d])=>p(y({},t),{[l]:d}),{})}const c=(e,t)=>{var s,g;const l=(g=(s=t==null?void 0:t.space)!=null?s:t==null?void 0:t.spacing)!=null?g:a,o=z(Object.entries(l).map(([h,b])=>[h,typeof b=="number"?`${b}px`:b]))[e];return r(o)?o:void 0};function I(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const R=i.styled.div`
1
+ var ce=Object.defineProperty,oe=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var T=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var M=(n,r,s)=>r in n?ce(n,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[r]=s,x=(n,r)=>{for(var s in r||(r={}))T.call(r,s)&&M(n,s,r[s]);if(h)for(var s of h(r))B.call(r,s)&&M(n,s,r[s]);return n},S=(n,r)=>oe(n,se(r));var O=(n,r)=>{var s={};for(var o in n)T.call(n,o)&&r.indexOf(o)<0&&(s[o]=n[o]);if(n!=null&&h)for(var o of h(n))r.indexOf(o)<0&&B.call(n,o)&&(s[o]=n[o]);return s};(function(n,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("solid-styled-components"),require("@bedrock-layout/register-resize-callback"),require("solid-js")):typeof define=="function"&&define.amd?define(["exports","solid-styled-components","@bedrock-layout/register-resize-callback","solid-js"],r):(n=typeof globalThis!="undefined"?globalThis:n||self,r(n.solid={},n.solidStyledComponents,n.registerResizeCallback,n.solidJs))})(this,function(n,r,s,o){"use strict";function b(e){return typeof e!="string"?!1:[/^[0-9]{0,10000}\.?[0-9]{1,10000}(vmin|vmax|vh|vw|%|ch|ex|em|rem|in|cm|mm|pt|pc|px)$/,/^var\(--\D{1,100}\)$/].some(t=>t.test(e))}const v={none:"0px",xxs:"0.0625rem",xs:"0.125rem",sm:"0.25rem",md:"0.5rem",mdLg:"0.75rem",lg:"1rem",lgXl:"1.5rem",xl:"2rem",xlXXl:"3rem",xxl:"4rem"};function L(e){return e.reduce((t,[i,c])=>S(x({},t),{[i]:c}),{})}const g=(e,t)=>{var a,f;const i=(f=(a=t==null?void 0:t.space)!=null?a:t==null?void 0:t.spacing)!=null?f:v,l=L(Object.entries(i).map(([d,y])=>[d,typeof y=="number"?`${y}px`:y]))[e];return b(l)?l:void 0};function V(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const D=r.styled.div`
2
2
  @property --maxWidth {
3
3
  syntax: "<length-percentage>";
4
4
  inherits: false;
5
5
  initial-value: 100%;
6
6
  }
7
7
 
8
- --maxWidth: ${e=>I(e.maxWidth)};
8
+ --maxWidth: ${e=>V(e.maxWidth)};
9
9
 
10
10
  box-sizing: content-box;
11
11
 
@@ -17,16 +17,16 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
17
17
 
18
18
  max-inline-size: var(--maxWidth, 100%);
19
19
 
20
- ${e=>e.centerChildren?i.css`
20
+ ${e=>e.centerChildren?r.css`
21
21
  display: flex;
22
22
  flex-direction: column;
23
23
  align-items: center;
24
24
  `:""}
25
25
 
26
- ${e=>e.centerText?i.css`
26
+ ${e=>e.centerText?r.css`
27
27
  text-align: center;
28
28
  `:""}
29
- `;function W(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const C=i.styled("div")`
29
+ `;function W(e){return e===void 0?"100%":typeof e=="number"?`${e}px`:e}const X=r.styled("div")`
30
30
  @property --basis {
31
31
  syntax: "<length-percentage>";
32
32
  inherits: true;
@@ -40,7 +40,7 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
40
40
  }
41
41
 
42
42
  --basis: ${e=>W(e.basis)};
43
- --gutter: ${e=>{var t;return e.gutter&&(t=c(e.gutter,e.theme))!=null?t:"0px"}};
43
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
44
44
 
45
45
  box-sizing: border-box;
46
46
  > * {
@@ -53,14 +53,14 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
53
53
  display: flex;
54
54
  flex-wrap: wrap;
55
55
  gap: var(--gutter, 0px);
56
- `;function E(e){return Array.isArray(e)&&e.length===2&&e.every(Number.isFinite)||typeof e=="string"&&/^\d{1,1000} {0,1}\/ {0,1}\d{1,1000}$/.test(e)}function M(e){return Array.isArray(e)?e.join("/"):e}function O(e){return E(e)?M(e):void 0}const T=i.styled.div`
56
+ `;function k(e=1,t){if(t!==void 0&&t<=e)throw new Error(`The second width value, ${t}, is not larger than ${e}. Please provide a value greater than first width value`);const[i,c]=o.createSignal(!1),[l,u]=o.createSignal();return o.onMount(()=>{s.init()}),o.createEffect(()=>{const a=l();if(a==null)return;const f=s.registerCallback(a,d=>{var C,P;const y=(P=(C=d.borderBoxSize)==null?void 0:C.inlineSize)!=null?P:d.contentRect.width;if(y>0){const ae=t===void 0?y<=e:y>=e&&y<=t;c(ae)}});o.onCleanup(f)}),[i,u]}function F(e){return Array.isArray(e)&&e.length===2&&e.every(Number.isFinite)||typeof e=="string"&&/^\d{1,1000} {0,1}\/ {0,1}\d{1,1000}$/.test(e)}function N(e){return Array.isArray(e)?e.join("/"):e}function _(e){return F(e)?N(e):void 0}const q=r.styled.div`
57
57
  box-sizing: border-box;
58
58
  display: block;
59
59
  inline-size: 100%;
60
60
  position: relative;
61
61
  overflow: hidden;
62
62
 
63
- ${e=>{const t=O(e.ratio);return t?i.css`
63
+ ${e=>{const t=_(e.ratio);return t?r.css`
64
64
  aspect-ratio: ${t};
65
65
  `:""}};
66
66
 
@@ -88,7 +88,7 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
88
88
  object-fit: cover;
89
89
  object-position: ${e=>typeof e.position=="string"?e.position:"50%"};
90
90
  }
91
- `,P=i.styled("div")`
91
+ `,G=r.styled("div")`
92
92
  @property --gutter {
93
93
  syntax: "<length-percentage>";
94
94
  inherits: false;
@@ -101,7 +101,7 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
101
101
  initial-value: 639px;
102
102
  }
103
103
 
104
- --gutter: ${e=>{var t;return e.gutter&&(t=c(e.gutter,e.theme))!=null?t:"0px"}};
104
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
105
105
  --minItemWidth: ${e=>{var t;return typeof e.minItemWidth=="string"?e.minItemWidth:`${(t=e.minItemWidth)!=null?t:0}px`}};
106
106
 
107
107
  box-sizing: border-box;
@@ -116,8 +116,8 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
116
116
  auto-fit,
117
117
  minmax(min(var(--minItemWidth, 639px), 100%), 1fr)
118
118
  );
119
- `,f={start:"flex-start",end:"flex-end",center:"center"},m=p(y({},f),{stretch:"stretch"}),v=i.styled.div`
120
- --gutter: ${e=>{var t;return e.gutter&&(t=c(e.gutter,e.theme))!=null?t:"0px"}};
119
+ `,m={start:"flex-start",end:"flex-end",center:"center"},p=S(x({},m),{stretch:"stretch"}),z=r.styled.div`
120
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
121
121
 
122
122
  box-sizing: border-box;
123
123
  > * {
@@ -128,10 +128,10 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
128
128
  flex-wrap: wrap;
129
129
  gap: var(--gutter, 0px);
130
130
 
131
- justify-content: ${e=>typeof e.justify!="undefined"&&f[e.justify]?f[e.justify]:f.start};
131
+ justify-content: ${e=>typeof e.justify!="undefined"&&m[e.justify]?m[e.justify]:m.start};
132
132
 
133
- align-items: ${e=>typeof e.align!="undefined"&&m[e.align]?m[e.align]:m.start};
134
- `;function D(e){return typeof e=="number"&&e>-1?!0:typeof e=="string"&&typeof CSS!==void 0?CSS.supports(`height: ${e}`):!1}const L=i.styled(v)`
133
+ align-items: ${e=>typeof e.align!="undefined"&&p[e.align]?p[e.align]:p.start};
134
+ `;function H(e){return typeof e=="number"&&e>-1?!0:typeof e=="string"&&typeof CSS!==void 0?CSS.supports(`height: ${e}`):!1}const Q=r.styled(z)`
135
135
  @property --switchAt {
136
136
  syntax: "<length-percentage>";
137
137
  inherits: true;
@@ -140,7 +140,7 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
140
140
  flex-wrap: nowrap;
141
141
  ${e=>e.stretch==="all"?"> * { flex: 1 }":e.stretch==="start"?"> :first-child { flex: 1 }":e.stretch==="end"?"> :last-child { flex: 1 }":typeof e.stretch=="number"?`> :nth-child(${e.stretch+1}) { flex: 1 }`:""}
142
142
 
143
- ${e=>D(e.switchAt)?`
143
+ ${e=>H(e.switchAt)?`
144
144
  --switchAt: ${typeof e.switchAt=="string"?e.switchAt:`${e.switchAt}px`};
145
145
  flex-wrap: wrap;
146
146
  > * {
@@ -150,17 +150,17 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
150
150
  );
151
151
  }
152
152
  `:""}
153
- `,$=new Set(["left","right","top","bottom","inlineStart","inlineEnd","blockStart","blockEnd"]),V=(e,t)=>({left:`padding-inline-start:${t};`,right:`padding-inline-end:${t};`,top:`padding-block-start:${t};`,bottom:`padding-block-end:${t};`,inlineStart:`padding-inline-start:${t};`,inlineEnd:`padding-inline-end:${t};`,blockStart:`padding-block-start:${t};`,blockEnd:`padding-block-end:${t};`})[e];function B(e){return t=>{const l=c(t,e);return l!=null?l:"0px"}}function k(e,t){var u;if(Array.isArray(t)&&t.length>4)throw new Error("padding arrays can only be 4 or less in length");const l=new Set(Object.keys((u=e==null?void 0:e.spacing)!=null?u:a));(()=>typeof t=="string"?!0:Array.isArray(t)?t.every(s=>l.has(s)):t&&Object.keys(t).every(s=>$.has(s))&&Object.values(t).every(s=>l.has(s)))()||console.error("Invalid padding Type");const o=B(e);return typeof t=="object"&&!Array.isArray(t)?Object.entries(t).reduce((s,[g,h])=>$.has(g)?s+V(g,o(h)):s,""):t!==void 0?`padding: ${Array.from(Array.isArray(t)?t:[t]).map(s=>o(s)).join(" ")};`:""}const F=i.styled.div`
153
+ `,A=new Set(["left","right","top","bottom","inlineStart","inlineEnd","blockStart","blockEnd"]),U=(e,t)=>({left:`padding-inline-start:${t};`,right:`padding-inline-end:${t};`,top:`padding-block-start:${t};`,bottom:`padding-block-end:${t};`,inlineStart:`padding-inline-start:${t};`,inlineEnd:`padding-inline-end:${t};`,blockStart:`padding-block-start:${t};`,blockEnd:`padding-block-end:${t};`})[e];function K(e){return t=>{const i=g(t,e);return i!=null?i:"0px"}}function Y(e,t){var u;if(Array.isArray(t)&&t.length>4)throw new Error("padding arrays can only be 4 or less in length");const i=new Set(Object.keys((u=e==null?void 0:e.spacing)!=null?u:v));(()=>typeof t=="string"?!0:Array.isArray(t)?t.every(a=>i.has(a)):t&&Object.keys(t).every(a=>A.has(a))&&Object.values(t).every(a=>i.has(a)))()||console.error("Invalid padding Type");const l=K(e);return typeof t=="object"&&!Array.isArray(t)?Object.entries(t).reduce((a,[f,d])=>A.has(f)?a+U(f,l(d)):a,""):t!==void 0?`padding: ${Array.from(Array.isArray(t)?t:[t]).map(a=>l(a)).join(" ")};`:""}const Z=r.styled.div`
154
154
  box-sizing: border-box;
155
- ${e=>(console.log(k(e.theme,e.padding)),k(e.theme,e.padding))}
156
- `,X=i.styled.div`
155
+ ${e=>Y(e.theme,e.padding)}
156
+ `,J=r.styled.div`
157
157
  box-sizing: border-box;
158
158
  > * {
159
159
  margin: 0;
160
160
  scroll-snap-align: start;
161
161
  }
162
162
 
163
- --gutter: ${e=>{var t;return e.gutter&&(t=c(e.gutter,e.theme))!=null?t:"0px"}};
163
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
164
164
 
165
165
  display: flex;
166
166
  gap: var(--gutter, 0px);
@@ -168,14 +168,14 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
168
168
  overflow-x: scroll;
169
169
 
170
170
  scroll-snap-type: ${({snapType:e="none"})=>{switch(e){case"none":return"none";case"proximity":return"x proximity";case"mandatory":return"x mandatory";default:return"none"}}};
171
- `,G=i.styled("div")`
171
+ `,j=r.styled("div")`
172
172
  @property --gutter {
173
173
  syntax: "<length-percentage>";
174
174
  inherits: false;
175
175
  initial-value: 0;
176
176
  }
177
177
 
178
- --gutter: ${e=>{var t;return e.gutter&&(t=c(e.gutter,e.theme))!=null?t:"0px"}};
178
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
179
179
  box-sizing: border-box;
180
180
  > * {
181
181
  margin: 0;
@@ -189,7 +189,18 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
189
189
  & > [data-bedrock-column] {
190
190
  grid-column: span 1 / auto;
191
191
  }
192
- `;function _(e){return typeof e=="number"?`${e}px`:e&&r(e)?e:"100vh"}const q=i.styled.div`
192
+ `,R={"1/4":"1fr 3fr","1/3":"1fr 2fr","1/2":"1fr 1fr","2/3":"2fr 1fr","3/4":"3fr 1fr","auto-start":"auto 1fr","auto-end":"1fr auto"},ee=r.styled.div`
193
+ box-sizing: border-box;
194
+ > * {
195
+ margin: 0;
196
+ }
197
+
198
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
199
+
200
+ display: grid;
201
+ gap: var(--gutter, 0px);
202
+ grid-template-columns: ${({fraction:e="1/2"})=>{var t;return(t=R[e])!=null?t:R["1/2"]}}};
203
+ `,te=e=>{const t=typeof e.switchAt=="string"?w(e.switchAt):e.switchAt,i=t&&t>-1?t:0;console.log(i);const[c,l]=k(i),u=a=>{var f;l(a),(f=e.ref)==null||f.call(e,a)};return React.createElement(o.Switch,null,React.createElement(o.Match,{when:c()===!1},React.createElement(ee,x({as:e.as,ref:u,fraction:e.fraction},e))),React.createElement(o.Match,{when:c()===!0},React.createElement(j,x({as:e.as,ref:u},e))))};function E(e){var c;e=String(e);const t=parseFloat(e),[,i]=(c=e.match(/[\d.\-+]*\s*(.*)/))!=null?c:["",""];return[t,i]}function $(e,t){var l;const[i,c]=E(getComputedStyle(e).getPropertyValue(t));return i*((l=w(c,e))!=null?l:1)}function I(e,t){const i=document.createElement("div");i.style.height="128"+e,t.appendChild(i);const c=$(i,"height")/128;return t.removeChild(i),c}function w(e,t){if(!e)return null;const c=typeof window=="object"&&typeof document=="object"&&document.nodeType===9?I("in",document.body):96,l=t!=null?t:document.body,u=(e!=null?e:"px").trim().toLowerCase();switch(u){case"vmin":case"vmax":case"vh":case"vw":case"%":return null;case"ch":case"ex":return I(u,l);case"em":return $(l,"font-size");case"rem":return $(document.body,"font-size");case"in":return c;case"cm":return c/2.54;case"mm":return c/25.4;case"pt":return c/72;case"pc":return c/6;case"px":return 1;default:{const[a,f]=E(u);if(isNaN(a))return null;if(!f)return a;const d=w(f,t);return typeof d=="number"?a*d:null}}}function ne(e){return typeof e=="number"?`${e}px`:e&&b(e)?e:"100vh"}const re=r.styled.div`
193
204
  @property --gutter {
194
205
  syntax: "<length-percentage>";
195
206
  inherits: false;
@@ -202,9 +213,9 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
202
213
  initial-value: 100vh;
203
214
  }
204
215
 
205
- --gutter: ${e=>{var t;return e.gutter&&(t=c(e.gutter,e.theme))!=null?t:"0px"}};
216
+ --gutter: ${e=>{var t;return e.gutter&&(t=g(e.gutter,e.theme))!=null?t:"0px"}};
206
217
 
207
- --minHeight: ${e=>_(e.minHeight)};
218
+ --minHeight: ${e=>ne(e.minHeight)};
208
219
 
209
220
  > * {
210
221
  margin: 0;
@@ -229,4 +240,4 @@ var K=Object.defineProperty,N=Object.defineProperties;var U=Object.getOwnPropert
229
240
  }
230
241
  `:""};
231
242
  }
232
- `,H=e=>{const u=e,{top:t,bottom:l,children:d}=u,o=j(u,["top","bottom","children"]);return React.createElement(q,y({},o),e.top,React.createElement("div",{"data-bedrock-cover-centered":!0},e.children),e.bottom)};n.Center=R,n.ColumnDrop=C,n.Cover=H,n.Frame=T,n.Grid=P,n.Inline=L,n.InlineCluster=v,n.PadBox=F,n.Reel=X,n.Stack=G,n.checkIsCSSLength=r,n.getSpacingValue=c,n.spacing=a,Object.defineProperty(n,"__esModule",{value:!0}),n[Symbol.toStringTag]="Module"});
243
+ `,ie=e=>{const u=e,{top:t,bottom:i,children:c}=u,l=O(u,["top","bottom","children"]);return React.createElement(re,x({},l),e.top,React.createElement("div",{"data-bedrock-cover-centered":!0},e.children),e.bottom)};n.Center=D,n.ColumnDrop=X,n.Cover=ie,n.Frame=q,n.Grid=G,n.Inline=Q,n.InlineCluster=z,n.PadBox=Z,n.Reel=J,n.Split=te,n.Stack=j,n.checkIsCSSLength=b,n.createContainerQuery=k,n.getSpacingValue=g,n.spacing=v,Object.defineProperty(n,"__esModule",{value:!0}),n[Symbol.toStringTag]="Module"});
package/lib/split.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { Component, JSX } from "solid-js";
2
+ import { CSSLength, SpacingOptions } from "./spacing-constants";
3
+ import { StackProps } from "./stack";
4
+ declare type FractionTypes = "auto-start" | "auto-end" | "1/4" | "1/3" | "1/2" | "2/3" | "3/4";
5
+ interface SplitBaseProps {
6
+ gutter?: SpacingOptions;
7
+ fraction?: FractionTypes;
8
+ }
9
+ export interface SplitProps extends StackProps, SplitBaseProps {
10
+ switchAt?: number | CSSLength;
11
+ as?: Component | keyof JSX.IntrinsicElements;
12
+ ref?: (ref: HTMLElement) => void;
13
+ }
14
+ export declare const Split: Component<SplitProps>;
15
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bedrock-layout/solid",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "solid.js port of bedrock-layout primitives",
5
5
  "sideEffects": false,
6
6
  "private": false,
@@ -46,6 +46,9 @@
46
46
  "solid-js": "^1.3.7",
47
47
  "solid-styled-components": "^0.27.4"
48
48
  },
49
+ "dependencies": {
50
+ "@bedrock-layout/register-resize-callback": "^1.1.0"
51
+ },
49
52
  "scripts": {
50
53
  "test": "echo \"Error: run tests from root\" && exit 1",
51
54
  "lint": "eslint --ignore-path .gitignore .",
@@ -59,5 +62,5 @@
59
62
  "bugs": {
60
63
  "url": "https://github.com/Bedrock-Layouts/Solid-Bedrock/issues"
61
64
  },
62
- "gitHead": "6a87cc2d65eb589c4b6b2583e437f7d107033e51"
65
+ "gitHead": "cbca187f5e2b28548d68ff4c2936f0e65a147f93"
63
66
  }