@booga/vblocks 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/business/index.cjs +1 -1
- package/dist/business/index.cjs.map +1 -1
- package/dist/business/index.js +1 -1
- package/dist/business/index.js.map +1 -1
- package/dist/faq/index.cjs +1 -1
- package/dist/faq/index.cjs.map +1 -1
- package/dist/faq/index.js +1 -1
- package/dist/faq/index.js.map +1 -1
- package/dist/features/index.cjs +1 -1
- package/dist/features/index.cjs.map +1 -1
- package/dist/features/index.js +1 -1
- package/dist/features/index.js.map +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/team/index.cjs +1 -1
- package/dist/team/index.cjs.map +1 -1
- package/dist/team/index.js +1 -1
- package/dist/team/index.js.map +1 -1
- package/dist/testimonial/index.cjs +2 -2
- package/dist/testimonial/index.cjs.map +1 -1
- package/dist/testimonial/index.js +2 -2
- package/dist/testimonial/index.js.map +1 -1
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--v-color-background:98% 0.005 240;--v-color-foreground:12% 0.01 240;--v-color-card:100% 0 0;--v-color-card-foreground:12% 0.01 240;--v-color-popover:100% 0 0;--v-color-popover-foreground:12% 0.01 240;--v-color-primary:55% 0.2 250;--v-color-primary-foreground:99% 0.005 250;--v-color-secondary:95% 0.01 240;--v-color-secondary-foreground:20% 0.02 240;--v-color-muted:95% 0.008 240;--v-color-muted-foreground:55% 0.015 240;--v-color-accent:95% 0.01 240;--v-color-accent-foreground:20% 0.02 240;--v-color-destructive:55% 0.22 27;--v-color-destructive-foreground:99% 0.005 27;--v-color-success:55% 0.18 145;--v-color-success-foreground:99% 0.005 145;--v-color-warning:70% 0.18 65;--v-color-warning-foreground:20% 0.05 65;--v-color-border:90% 0.008 240;--v-color-input:90% 0.008 240;--v-color-ring:55% 0.2 250}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-1\/2,.left-\[50\%\]{left:50%}.right-0{right:0}.top-16{top:4rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-20{height:5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.h-full{height:100%}.h-px{height:1px}.min-h-\[80px\]{min-height:80px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-20{width:5rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-72{width:18rem}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-lg{max-width:32rem}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0rem}.translate-x-5{--tw-translate-x:1.25rem}.translate-x-5,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-l{border-left-width:1px}.border-input{--tw-border-opacity:1;border-color:oklch(var(--v-color-input)/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-background{--tw-bg-opacity:1;background-color:oklch(var(--v-color-background)/var(--tw-bg-opacity,1))}.bg-border{--tw-bg-opacity:1;background-color:oklch(var(--v-color-border)/var(--tw-bg-opacity,1))}.bg-card{--tw-bg-opacity:1;background-color:oklch(var(--v-color-card)/var(--tw-bg-opacity,1))}.bg-destructive{--tw-bg-opacity:1;background-color:oklch(var(--v-color-destructive)/var(--tw-bg-opacity,1))}.bg-input{--tw-bg-opacity:1;background-color:oklch(var(--v-color-input)/var(--tw-bg-opacity,1))}.bg-muted{--tw-bg-opacity:1;background-color:oklch(var(--v-color-muted)/var(--tw-bg-opacity,1))}.bg-popover{--tw-bg-opacity:1;background-color:oklch(var(--v-color-popover)/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:oklch(var(--v-color-primary)/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:oklch(var(--v-color-secondary)/var(--tw-bg-opacity,1))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.pt-0{padding-top:0}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:1.35;font-weight:600}.text-3xl{font-size:1.875rem;line-height:1.3;font-weight:700}.text-4xl{font-size:2.25rem;line-height:1.2;font-weight:700}.text-5xl{font-size:3rem;line-height:1.1;font-weight:800}.text-base{font-size:1rem;line-height:1.5;font-weight:400}.text-lg{font-size:1.125rem;line-height:1.45;font-weight:500}.text-sm{font-size:.875rem;line-height:1.55;font-weight:400}.text-xl{font-size:1.25rem;line-height:1.4;font-weight:600}.text-xs{font-size:.75rem;line-height:1.6;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.not-italic{font-style:normal}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-card-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-card-foreground)/var(--tw-text-opacity,1))}.text-destructive-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-destructive-foreground)/var(--tw-text-opacity,1))}.text-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-foreground)/var(--tw-text-opacity,1))}.text-muted-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-muted-foreground)/var(--tw-text-opacity,1))}.text-popover-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-popover-foreground)/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:oklch(var(--v-color-primary)/var(--tw-text-opacity,1))}.text-primary-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-primary-foreground)/var(--tw-text-opacity,1))}.text-secondary-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-secondary-foreground)/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:oklch(var(--v-color-primary)/1)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:oklch(var(--v-color-background)/1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.55;font-weight:400}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{--tw-text-opacity:1;color:oklch(var(--v-color-muted-foreground)/var(--tw-text-opacity,1))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity:1;color:oklch(var(--v-color-muted-foreground)/var(--tw-text-opacity,1))}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:oklch(var(--v-color-accent)/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/90:hover{background-color:oklch(var(--v-color-destructive)/.9)}.hover\:bg-primary\/90:hover{background-color:oklch(var(--v-color-primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:oklch(var(--v-color-secondary)/.8)}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:oklch(var(--v-color-accent-foreground)/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:oklch(var(--v-color-ring)/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:oklch(var(--v-color-ring)/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}@media (min-width:640px){.sm\:max-w-sm{max-width:24rem}}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--v-color-background:98% 0.005 240;--v-color-foreground:12% 0.01 240;--v-color-card:100% 0 0;--v-color-card-foreground:12% 0.01 240;--v-color-popover:100% 0 0;--v-color-popover-foreground:12% 0.01 240;--v-color-primary:55% 0.2 250;--v-color-primary-foreground:99% 0.005 250;--v-color-secondary:95% 0.01 240;--v-color-secondary-foreground:20% 0.02 240;--v-color-muted:95% 0.008 240;--v-color-muted-foreground:55% 0.015 240;--v-color-accent:95% 0.01 240;--v-color-accent-foreground:20% 0.02 240;--v-color-destructive:55% 0.22 27;--v-color-destructive-foreground:99% 0.005 27;--v-color-success:55% 0.18 145;--v-color-success-foreground:99% 0.005 145;--v-color-warning:70% 0.18 65;--v-color-warning-foreground:20% 0.05 65;--v-color-border:90% 0.008 240;--v-color-input:90% 0.008 240;--v-color-ring:55% 0.2 250}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{top:0;bottom:0}.bottom-full{bottom:100%}.left-1\/2,.left-\[50\%\]{left:50%}.right-0{right:0}.top-16{top:4rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-20{height:5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.h-full{height:100%}.h-px{height:1px}.min-h-\[80px\]{min-height:80px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-20{width:5rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-72{width:18rem}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-lg{max-width:32rem}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0rem}.translate-x-5{--tw-translate-x:1.25rem}.translate-x-5,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-l{border-left-width:1px}.border-input{--tw-border-opacity:1;border-color:oklch(var(--v-color-input)/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-background{--tw-bg-opacity:1;background-color:oklch(var(--v-color-background)/var(--tw-bg-opacity,1))}.bg-border{--tw-bg-opacity:1;background-color:oklch(var(--v-color-border)/var(--tw-bg-opacity,1))}.bg-card{--tw-bg-opacity:1;background-color:oklch(var(--v-color-card)/var(--tw-bg-opacity,1))}.bg-destructive{--tw-bg-opacity:1;background-color:oklch(var(--v-color-destructive)/var(--tw-bg-opacity,1))}.bg-input{--tw-bg-opacity:1;background-color:oklch(var(--v-color-input)/var(--tw-bg-opacity,1))}.bg-muted{--tw-bg-opacity:1;background-color:oklch(var(--v-color-muted)/var(--tw-bg-opacity,1))}.bg-popover{--tw-bg-opacity:1;background-color:oklch(var(--v-color-popover)/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:oklch(var(--v-color-primary)/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:oklch(var(--v-color-secondary)/var(--tw-bg-opacity,1))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.pt-0{padding-top:0}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:1.35;font-weight:600}.text-3xl{font-size:1.875rem;line-height:1.3;font-weight:700}.text-4xl{font-size:2.25rem;line-height:1.2;font-weight:700}.text-5xl{font-size:3rem;line-height:1.1;font-weight:800}.text-base{font-size:1rem;line-height:1.5;font-weight:400}.text-lg{font-size:1.125rem;line-height:1.45;font-weight:500}.text-sm{font-size:.875rem;line-height:1.55;font-weight:400}.text-xl{font-size:1.25rem;line-height:1.4;font-weight:600}.text-xs{font-size:.75rem;line-height:1.6;font-weight:400}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.not-italic{font-style:normal}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-card-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-card-foreground)/var(--tw-text-opacity,1))}.text-destructive-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-destructive-foreground)/var(--tw-text-opacity,1))}.text-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-foreground)/var(--tw-text-opacity,1))}.text-muted-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-muted-foreground)/var(--tw-text-opacity,1))}.text-popover-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-popover-foreground)/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:oklch(var(--v-color-primary)/var(--tw-text-opacity,1))}.text-primary-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-primary-foreground)/var(--tw-text-opacity,1))}.text-secondary-foreground{--tw-text-opacity:1;color:oklch(var(--v-color-secondary-foreground)/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:oklch(var(--v-color-primary)/1)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:oklch(var(--v-color-background)/1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.55;font-weight:400}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{--tw-text-opacity:1;color:oklch(var(--v-color-muted-foreground)/var(--tw-text-opacity,1))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity:1;color:oklch(var(--v-color-muted-foreground)/var(--tw-text-opacity,1))}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:oklch(var(--v-color-accent)/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/90:hover{background-color:oklch(var(--v-color-destructive)/.9)}.hover\:bg-primary\/90:hover{background-color:oklch(var(--v-color-primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:oklch(var(--v-color-secondary)/.8)}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:oklch(var(--v-color-accent-foreground)/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:oklch(var(--v-color-ring)/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:oklch(var(--v-color-ring)/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}@media (min-width:640px){.sm\:max-w-sm{max-width:24rem}}
|
package/dist/team/index.cjs
CHANGED
|
@@ -84,7 +84,7 @@ var TeamGridContentSchema = zod.z.object({
|
|
|
84
84
|
function TeamGrid({ content, theme }) {
|
|
85
85
|
TeamGridContentSchema.parse(content);
|
|
86
86
|
const { heading, members } = content;
|
|
87
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxRuntime.jsxs(DStack, { px: 6, py: 16, className: vui.cn("max-w-
|
|
87
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxRuntime.jsxs(DStack, { px: 6, py: 16, className: vui.cn("max-w-6xl mx-auto gap-10"), children: [
|
|
88
88
|
/* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "h2", className: vui.cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
|
|
89
89
|
/* @__PURE__ */ jsxRuntime.jsx(DGrid, { columns: 3, gap: 6, children: members.map((member, i) => /* @__PURE__ */ jsxRuntime.jsx(vui.Card, { children: /* @__PURE__ */ jsxRuntime.jsx(vui.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(DStack, { gap: 3, align: "center", pt: 4, className: vui.cn("text-center"), children: [
|
|
90
90
|
/* @__PURE__ */ jsxRuntime.jsxs(vui.Avatar, { className: vui.cn("w-16 h-16"), children: [
|
package/dist/team/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/team/TeamSplit/schema.ts","../../src/team/TeamSplit/index.tsx","../../src/team/TeamSplit/default.ts","../../src/team/TeamGrid/schema.ts","../../src/team/TeamGrid/index.tsx","../../src/team/TeamGrid/default.ts"],"names":["dsl","Box","Stack","Grid","Inline","z","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback","TeamMemberSchema","Card","CardContent"],"mappings":"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","file":"index.cjs","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n bio: z.string().optional(),\n}).strict();\n\nexport const TeamSplitContentSchema = z.object({\n heading: z.string(),\n description: z.string().optional(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamSplitContent = z.infer<typeof TeamSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamSplitContentSchema, type TeamSplitContent } from \"./schema\";\n\nexport function TeamSplit({ content, theme }: BlockProps<TeamSplitContent>) {\n TeamSplitContentSchema.parse(content);\n const { heading, description, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DGrid columns={2} px={6} py={16} gap={16} align=\"start\" className={cn(\"max-w-6xl mx-auto\")}>\n <DStack gap={4} className={cn(\"sticky top-16\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight\")}>{heading}</DBox>\n {description && (\n <DBox as=\"p\" color=\"muted\">{description}</DBox>\n )}\n </DStack>\n <DBox as=\"ul\" m={0} p={0} gap={6} display=\"flex\" className={cn(\"list-none flex-col\")}>\n {members.map((member, i) => (\n <DBox as=\"li\" key={i}>\n <DInline gap={4} align=\"start\">\n <Avatar>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n {member.bio && (\n <DBox as=\"p\" className={cn(\"text-sm mt-1\")}>{member.bio}</DBox>\n )}\n </DStack>\n </DInline>\n </DBox>\n ))}\n </DBox>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamSplitContent } from \"./schema\";\n\nexport const TeamSplitDefaultContent: TeamSplitContent = {\n heading: \"Meet the team\",\n description: \"The people behind the product.\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" }, bio: \"Focused on user experience and product strategy.\" },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" }, bio: \"Architecting scalable systems since 2015.\" },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n ],\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n}).strict();\n\nexport const TeamGridContentSchema = z.object({\n heading: z.string(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamGridContent = z.infer<typeof TeamGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamGridContentSchema, type TeamGridContent } from \"./schema\";\n\nexport function TeamGrid({ content, theme }: BlockProps<TeamGridContent>) {\n TeamGridContentSchema.parse(content);\n const { heading, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-5xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {members.map((member, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={3} align=\"center\" pt={4} className={cn(\"text-center\")}>\n <Avatar className={cn(\"w-16 h-16\")}>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n </DStack>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamGridContent } from \"./schema\";\n\nexport const TeamGridDefaultContent: TeamGridContent = {\n heading: \"Our team\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" } },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" } },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n { name: \"Morgan Blake\", role: \"Research Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Morgan Blake\" } },\n ],\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/team/TeamSplit/schema.ts","../../src/team/TeamSplit/index.tsx","../../src/team/TeamSplit/default.ts","../../src/team/TeamGrid/schema.ts","../../src/team/TeamGrid/index.tsx","../../src/team/TeamGrid/default.ts"],"names":["dsl","Box","Stack","Grid","Inline","z","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback","TeamMemberSchema","Card","CardContent"],"mappings":"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","file":"index.cjs","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n bio: z.string().optional(),\n}).strict();\n\nexport const TeamSplitContentSchema = z.object({\n heading: z.string(),\n description: z.string().optional(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamSplitContent = z.infer<typeof TeamSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamSplitContentSchema, type TeamSplitContent } from \"./schema\";\n\nexport function TeamSplit({ content, theme }: BlockProps<TeamSplitContent>) {\n TeamSplitContentSchema.parse(content);\n const { heading, description, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DGrid columns={2} px={6} py={16} gap={16} align=\"start\" className={cn(\"max-w-6xl mx-auto\")}>\n <DStack gap={4} className={cn(\"sticky top-16\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight\")}>{heading}</DBox>\n {description && (\n <DBox as=\"p\" color=\"muted\">{description}</DBox>\n )}\n </DStack>\n <DBox as=\"ul\" m={0} p={0} gap={6} display=\"flex\" className={cn(\"list-none flex-col\")}>\n {members.map((member, i) => (\n <DBox as=\"li\" key={i}>\n <DInline gap={4} align=\"start\">\n <Avatar>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n {member.bio && (\n <DBox as=\"p\" className={cn(\"text-sm mt-1\")}>{member.bio}</DBox>\n )}\n </DStack>\n </DInline>\n </DBox>\n ))}\n </DBox>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamSplitContent } from \"./schema\";\n\nexport const TeamSplitDefaultContent: TeamSplitContent = {\n heading: \"Meet the team\",\n description: \"The people behind the product.\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" }, bio: \"Focused on user experience and product strategy.\" },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" }, bio: \"Architecting scalable systems since 2015.\" },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n ],\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n}).strict();\n\nexport const TeamGridContentSchema = z.object({\n heading: z.string(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamGridContent = z.infer<typeof TeamGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamGridContentSchema, type TeamGridContent } from \"./schema\";\n\nexport function TeamGrid({ content, theme }: BlockProps<TeamGridContent>) {\n TeamGridContentSchema.parse(content);\n const { heading, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-6xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {members.map((member, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={3} align=\"center\" pt={4} className={cn(\"text-center\")}>\n <Avatar className={cn(\"w-16 h-16\")}>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n </DStack>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamGridContent } from \"./schema\";\n\nexport const TeamGridDefaultContent: TeamGridContent = {\n heading: \"Our team\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" } },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" } },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n { name: \"Morgan Blake\", role: \"Research Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Morgan Blake\" } },\n ],\n};\n"]}
|
package/dist/team/index.js
CHANGED
|
@@ -82,7 +82,7 @@ var TeamGridContentSchema = z.object({
|
|
|
82
82
|
function TeamGrid({ content, theme }) {
|
|
83
83
|
TeamGridContentSchema.parse(content);
|
|
84
84
|
const { heading, members } = content;
|
|
85
|
-
return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-
|
|
85
|
+
return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
|
|
86
86
|
/* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
|
|
87
87
|
/* @__PURE__ */ jsx(DGrid, { columns: 3, gap: 6, children: members.map((member, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 3, align: "center", pt: 4, className: cn("text-center"), children: [
|
|
88
88
|
/* @__PURE__ */ jsxs(Avatar, { className: cn("w-16 h-16"), children: [
|
package/dist/team/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/team/TeamSplit/schema.ts","../../src/team/TeamSplit/index.tsx","../../src/team/TeamSplit/default.ts","../../src/team/TeamGrid/schema.ts","../../src/team/TeamGrid/index.tsx","../../src/team/TeamGrid/default.ts"],"names":["z","TeamMemberSchema","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback"],"mappings":"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","file":"index.js","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n bio: z.string().optional(),\n}).strict();\n\nexport const TeamSplitContentSchema = z.object({\n heading: z.string(),\n description: z.string().optional(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamSplitContent = z.infer<typeof TeamSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamSplitContentSchema, type TeamSplitContent } from \"./schema\";\n\nexport function TeamSplit({ content, theme }: BlockProps<TeamSplitContent>) {\n TeamSplitContentSchema.parse(content);\n const { heading, description, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DGrid columns={2} px={6} py={16} gap={16} align=\"start\" className={cn(\"max-w-6xl mx-auto\")}>\n <DStack gap={4} className={cn(\"sticky top-16\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight\")}>{heading}</DBox>\n {description && (\n <DBox as=\"p\" color=\"muted\">{description}</DBox>\n )}\n </DStack>\n <DBox as=\"ul\" m={0} p={0} gap={6} display=\"flex\" className={cn(\"list-none flex-col\")}>\n {members.map((member, i) => (\n <DBox as=\"li\" key={i}>\n <DInline gap={4} align=\"start\">\n <Avatar>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n {member.bio && (\n <DBox as=\"p\" className={cn(\"text-sm mt-1\")}>{member.bio}</DBox>\n )}\n </DStack>\n </DInline>\n </DBox>\n ))}\n </DBox>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamSplitContent } from \"./schema\";\n\nexport const TeamSplitDefaultContent: TeamSplitContent = {\n heading: \"Meet the team\",\n description: \"The people behind the product.\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" }, bio: \"Focused on user experience and product strategy.\" },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" }, bio: \"Architecting scalable systems since 2015.\" },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n ],\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n}).strict();\n\nexport const TeamGridContentSchema = z.object({\n heading: z.string(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamGridContent = z.infer<typeof TeamGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamGridContentSchema, type TeamGridContent } from \"./schema\";\n\nexport function TeamGrid({ content, theme }: BlockProps<TeamGridContent>) {\n TeamGridContentSchema.parse(content);\n const { heading, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-5xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {members.map((member, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={3} align=\"center\" pt={4} className={cn(\"text-center\")}>\n <Avatar className={cn(\"w-16 h-16\")}>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n </DStack>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamGridContent } from \"./schema\";\n\nexport const TeamGridDefaultContent: TeamGridContent = {\n heading: \"Our team\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" } },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" } },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n { name: \"Morgan Blake\", role: \"Research Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Morgan Blake\" } },\n ],\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/team/TeamSplit/schema.ts","../../src/team/TeamSplit/index.tsx","../../src/team/TeamSplit/default.ts","../../src/team/TeamGrid/schema.ts","../../src/team/TeamGrid/index.tsx","../../src/team/TeamGrid/default.ts"],"names":["z","TeamMemberSchema","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback"],"mappings":"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","file":"index.js","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n bio: z.string().optional(),\n}).strict();\n\nexport const TeamSplitContentSchema = z.object({\n heading: z.string(),\n description: z.string().optional(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamSplitContent = z.infer<typeof TeamSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamSplitContentSchema, type TeamSplitContent } from \"./schema\";\n\nexport function TeamSplit({ content, theme }: BlockProps<TeamSplitContent>) {\n TeamSplitContentSchema.parse(content);\n const { heading, description, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DGrid columns={2} px={6} py={16} gap={16} align=\"start\" className={cn(\"max-w-6xl mx-auto\")}>\n <DStack gap={4} className={cn(\"sticky top-16\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight\")}>{heading}</DBox>\n {description && (\n <DBox as=\"p\" color=\"muted\">{description}</DBox>\n )}\n </DStack>\n <DBox as=\"ul\" m={0} p={0} gap={6} display=\"flex\" className={cn(\"list-none flex-col\")}>\n {members.map((member, i) => (\n <DBox as=\"li\" key={i}>\n <DInline gap={4} align=\"start\">\n <Avatar>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n {member.bio && (\n <DBox as=\"p\" className={cn(\"text-sm mt-1\")}>{member.bio}</DBox>\n )}\n </DStack>\n </DInline>\n </DBox>\n ))}\n </DBox>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamSplitContent } from \"./schema\";\n\nexport const TeamSplitDefaultContent: TeamSplitContent = {\n heading: \"Meet the team\",\n description: \"The people behind the product.\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" }, bio: \"Focused on user experience and product strategy.\" },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" }, bio: \"Architecting scalable systems since 2015.\" },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n ],\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TeamMemberSchema = z.object({\n name: z.string(),\n role: z.string(),\n avatar: AvatarSchema,\n}).strict();\n\nexport const TeamGridContentSchema = z.object({\n heading: z.string(),\n members: z.array(TeamMemberSchema).min(1),\n}).strict();\n\nexport type TeamGridContent = z.infer<typeof TeamGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TeamGridContentSchema, type TeamGridContent } from \"./schema\";\n\nexport function TeamGrid({ content, theme }: BlockProps<TeamGridContent>) {\n TeamGridContentSchema.parse(content);\n const { heading, members } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-6xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {members.map((member, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={3} align=\"center\" pt={4} className={cn(\"text-center\")}>\n <Avatar className={cn(\"w-16 h-16\")}>\n <AvatarImage src={member.avatar.src} alt={member.avatar.alt} />\n <AvatarFallback>{member.name.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n <DStack gap={1}>\n <DBox as=\"p\" className={cn(\"font-semibold\")}>{member.name}</DBox>\n <DBox as=\"p\" color=\"muted\" className={cn(\"text-sm\")}>{member.role}</DBox>\n </DStack>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TeamGridContent } from \"./schema\";\n\nexport const TeamGridDefaultContent: TeamGridContent = {\n heading: \"Our team\",\n members: [\n { name: \"Jordan Ellis\", role: \"Product Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Jordan Ellis\" } },\n { name: \"Sam Rivera\", role: \"Engineering Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Sam Rivera\" } },\n { name: \"Taylor Kim\", role: \"Design Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Taylor Kim\" } },\n { name: \"Morgan Blake\", role: \"Research Lead\", avatar: { src: \"https://placehold.co/80x80\", alt: \"Morgan Blake\" } },\n ],\n};\n"]}
|
|
@@ -39,7 +39,7 @@ var TestimonialSplitContentSchema = zod.z.object({
|
|
|
39
39
|
function TestimonialSplit({ content, theme }) {
|
|
40
40
|
TestimonialSplitContentSchema.parse(content);
|
|
41
41
|
const { quote, author, role, company, avatar } = content;
|
|
42
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "section", "aria-label": "Testimonial", style: themeStyle(theme), children: /* @__PURE__ */ jsxRuntime.jsxs(DGrid, { columns: 2, px: 6, gap: 16, align: "center", className: vui.cn("max-w-
|
|
42
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "section", "aria-label": "Testimonial", style: themeStyle(theme), children: /* @__PURE__ */ jsxRuntime.jsxs(DGrid, { columns: 2, px: 6, gap: 16, align: "center", className: vui.cn("max-w-6xl mx-auto py-20"), children: [
|
|
43
43
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44
44
|
DBox,
|
|
45
45
|
{
|
|
@@ -89,7 +89,7 @@ var TestimonialGridContentSchema = zod.z.object({
|
|
|
89
89
|
function TestimonialGrid({ content, theme }) {
|
|
90
90
|
TestimonialGridContentSchema.parse(content);
|
|
91
91
|
const { heading, items } = content;
|
|
92
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxRuntime.jsxs(DStack, { px: 6, py: 16, className: vui.cn("max-w-
|
|
92
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxRuntime.jsxs(DStack, { px: 6, py: 16, className: vui.cn("max-w-6xl mx-auto gap-10"), children: [
|
|
93
93
|
/* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "h2", className: vui.cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
|
|
94
94
|
/* @__PURE__ */ jsxRuntime.jsx(DGrid, { columns: 3, gap: 6, children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx(vui.Card, { children: /* @__PURE__ */ jsxRuntime.jsx(vui.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(DStack, { gap: 4, pt: 4, children: [
|
|
95
95
|
/* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "blockquote", className: vui.cn("text-sm leading-relaxed"), children: /* @__PURE__ */ jsxRuntime.jsx(DBox, { as: "p", children: item.quote }) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/testimonial/TestimonialSplit/schema.ts","../../src/testimonial/TestimonialSplit/index.tsx","../../src/testimonial/TestimonialSplit/default.ts","../../src/testimonial/TestimonialGrid/schema.ts","../../src/testimonial/TestimonialGrid/index.tsx","../../src/testimonial/TestimonialGrid/default.ts"],"names":["dsl","Box","Stack","Grid","Inline","z","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback","Fragment","Card","CardContent"],"mappings":"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","file":"index.cjs","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nexport const TestimonialSplitContentSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport type TestimonialSplitContent = z.infer<typeof TestimonialSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialSplitContentSchema, type TestimonialSplitContent } from \"./schema\";\n\nexport function TestimonialSplit({ content, theme }: BlockProps<TestimonialSplitContent>) {\n TestimonialSplitContentSchema.parse(content);\n const { quote, author, role, company, avatar } = content;\n return (\n <DBox as=\"section\" aria-label=\"Testimonial\" style={themeStyle(theme)}>\n <DGrid columns={2} px={6} gap={16} align=\"center\" className={cn(\"max-w-5xl mx-auto py-20\")}>\n <DBox\n as=\"blockquote\"\n className={cn(\"text-2xl font-medium leading-relaxed\")}\n cite={undefined}\n >\n <DBox as=\"p\">{quote}</DBox>\n </DBox>\n <DStack gap={4}>\n {avatar && (\n <Avatar className={cn(\"w-20 h-20\")}>\n <AvatarImage src={avatar.src} alt={avatar.alt} />\n <AvatarFallback>{author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DInline gap={1} color=\"muted\" className={cn(\"text-sm\")}>\n <DBox as=\"cite\" color=\"fg\" className={cn(\"font-semibold not-italic\")}>{author}</DBox>\n <DBox as=\"span\">,</DBox>\n <DBox as=\"span\">{role}</DBox>\n {company && (\n <>\n <DBox as=\"span\">at</DBox>\n <DBox as=\"span\">{company}</DBox>\n </>\n )}\n </DInline>\n </DStack>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialSplitContent } from \"./schema\";\n\nexport const TestimonialSplitDefaultContent: TestimonialSplitContent = {\n quote: \"This is the most composable block kit I have used. Schema validation caught three content bugs before they hit production.\",\n author: \"Jordan Ellis\",\n role: \"Product Lead\",\n company: \"Acme\",\n avatar: { src: \"https://placehold.co/120x120\", alt: \"Jordan Ellis\" },\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TestimonialItemSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport const TestimonialGridContentSchema = z.object({\n heading: z.string(),\n items: z.array(TestimonialItemSchema).min(1),\n}).strict();\n\nexport type TestimonialGridContent = z.infer<typeof TestimonialGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialGridContentSchema, type TestimonialGridContent } from \"./schema\";\n\nexport function TestimonialGrid({ content, theme }: BlockProps<TestimonialGridContent>) {\n TestimonialGridContentSchema.parse(content);\n const { heading, items } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-5xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {items.map((item, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={4} pt={4}>\n <DBox as=\"blockquote\" className={cn(\"text-sm leading-relaxed\")}>\n <DBox as=\"p\">{item.quote}</DBox>\n </DBox>\n <DInline gap={3} align=\"center\">\n {item.avatar && (\n <Avatar>\n <AvatarImage src={item.avatar.src} alt={item.avatar.alt} />\n <AvatarFallback>{item.author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DStack className={cn(\"gap-0.5\")}>\n <DBox as=\"cite\" className={cn(\"text-sm font-semibold not-italic\")}>{item.author}</DBox>\n <DBox as=\"span\" color=\"muted\" className={cn(\"text-xs\")}>\n {item.role}{item.company ? `, ${item.company}` : \"\"}\n </DBox>\n </DStack>\n </DInline>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialGridContent } from \"./schema\";\n\nexport const TestimonialGridDefaultContent: TestimonialGridContent = {\n heading: \"What teams are saying\",\n items: [\n { quote: \"Schema validation alone saved us from three production bugs in the first week.\", author: \"Jordan Ellis\", role: \"Product Lead\", company: \"Acme\" },\n { quote: \"The composable approach means we can swap blocks without touching the rest of the page.\", author: \"Sam Rivera\", role: \"Engineering Lead\" },\n { quote: \"Typed content props make onboarding new designers trivially easy.\", author: \"Taylor Kim\", role: \"Design Lead\", company: \"Studio N\" },\n ],\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/testimonial/TestimonialSplit/schema.ts","../../src/testimonial/TestimonialSplit/index.tsx","../../src/testimonial/TestimonialSplit/default.ts","../../src/testimonial/TestimonialGrid/schema.ts","../../src/testimonial/TestimonialGrid/index.tsx","../../src/testimonial/TestimonialGrid/default.ts"],"names":["dsl","Box","Stack","Grid","Inline","z","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback","Fragment","Card","CardContent"],"mappings":"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","file":"index.cjs","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nexport const TestimonialSplitContentSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport type TestimonialSplitContent = z.infer<typeof TestimonialSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialSplitContentSchema, type TestimonialSplitContent } from \"./schema\";\n\nexport function TestimonialSplit({ content, theme }: BlockProps<TestimonialSplitContent>) {\n TestimonialSplitContentSchema.parse(content);\n const { quote, author, role, company, avatar } = content;\n return (\n <DBox as=\"section\" aria-label=\"Testimonial\" style={themeStyle(theme)}>\n <DGrid columns={2} px={6} gap={16} align=\"center\" className={cn(\"max-w-6xl mx-auto py-20\")}>\n <DBox\n as=\"blockquote\"\n className={cn(\"text-2xl font-medium leading-relaxed\")}\n cite={undefined}\n >\n <DBox as=\"p\">{quote}</DBox>\n </DBox>\n <DStack gap={4}>\n {avatar && (\n <Avatar className={cn(\"w-20 h-20\")}>\n <AvatarImage src={avatar.src} alt={avatar.alt} />\n <AvatarFallback>{author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DInline gap={1} color=\"muted\" className={cn(\"text-sm\")}>\n <DBox as=\"cite\" color=\"fg\" className={cn(\"font-semibold not-italic\")}>{author}</DBox>\n <DBox as=\"span\">,</DBox>\n <DBox as=\"span\">{role}</DBox>\n {company && (\n <>\n <DBox as=\"span\">at</DBox>\n <DBox as=\"span\">{company}</DBox>\n </>\n )}\n </DInline>\n </DStack>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialSplitContent } from \"./schema\";\n\nexport const TestimonialSplitDefaultContent: TestimonialSplitContent = {\n quote: \"This is the most composable block kit I have used. Schema validation caught three content bugs before they hit production.\",\n author: \"Jordan Ellis\",\n role: \"Product Lead\",\n company: \"Acme\",\n avatar: { src: \"https://placehold.co/120x120\", alt: \"Jordan Ellis\" },\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TestimonialItemSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport const TestimonialGridContentSchema = z.object({\n heading: z.string(),\n items: z.array(TestimonialItemSchema).min(1),\n}).strict();\n\nexport type TestimonialGridContent = z.infer<typeof TestimonialGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialGridContentSchema, type TestimonialGridContent } from \"./schema\";\n\nexport function TestimonialGrid({ content, theme }: BlockProps<TestimonialGridContent>) {\n TestimonialGridContentSchema.parse(content);\n const { heading, items } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-6xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {items.map((item, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={4} pt={4}>\n <DBox as=\"blockquote\" className={cn(\"text-sm leading-relaxed\")}>\n <DBox as=\"p\">{item.quote}</DBox>\n </DBox>\n <DInline gap={3} align=\"center\">\n {item.avatar && (\n <Avatar>\n <AvatarImage src={item.avatar.src} alt={item.avatar.alt} />\n <AvatarFallback>{item.author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DStack className={cn(\"gap-0.5\")}>\n <DBox as=\"cite\" className={cn(\"text-sm font-semibold not-italic\")}>{item.author}</DBox>\n <DBox as=\"span\" color=\"muted\" className={cn(\"text-xs\")}>\n {item.role}{item.company ? `, ${item.company}` : \"\"}\n </DBox>\n </DStack>\n </DInline>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialGridContent } from \"./schema\";\n\nexport const TestimonialGridDefaultContent: TestimonialGridContent = {\n heading: \"What teams are saying\",\n items: [\n { quote: \"Schema validation alone saved us from three production bugs in the first week.\", author: \"Jordan Ellis\", role: \"Product Lead\", company: \"Acme\" },\n { quote: \"The composable approach means we can swap blocks without touching the rest of the page.\", author: \"Sam Rivera\", role: \"Engineering Lead\" },\n { quote: \"Typed content props make onboarding new designers trivially easy.\", author: \"Taylor Kim\", role: \"Design Lead\", company: \"Studio N\" },\n ],\n};\n"]}
|
|
@@ -37,7 +37,7 @@ var TestimonialSplitContentSchema = z.object({
|
|
|
37
37
|
function TestimonialSplit({ content, theme }) {
|
|
38
38
|
TestimonialSplitContentSchema.parse(content);
|
|
39
39
|
const { quote, author, role, company, avatar } = content;
|
|
40
|
-
return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": "Testimonial", style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DGrid, { columns: 2, px: 6, gap: 16, align: "center", className: cn("max-w-
|
|
40
|
+
return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": "Testimonial", style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DGrid, { columns: 2, px: 6, gap: 16, align: "center", className: cn("max-w-6xl mx-auto py-20"), children: [
|
|
41
41
|
/* @__PURE__ */ jsx(
|
|
42
42
|
DBox,
|
|
43
43
|
{
|
|
@@ -87,7 +87,7 @@ var TestimonialGridContentSchema = z.object({
|
|
|
87
87
|
function TestimonialGrid({ content, theme }) {
|
|
88
88
|
TestimonialGridContentSchema.parse(content);
|
|
89
89
|
const { heading, items } = content;
|
|
90
|
-
return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-
|
|
90
|
+
return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
|
|
91
91
|
/* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
|
|
92
92
|
/* @__PURE__ */ jsx(DGrid, { columns: 3, gap: 6, children: items.map((item, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 4, pt: 4, children: [
|
|
93
93
|
/* @__PURE__ */ jsx(DBox, { as: "blockquote", className: cn("text-sm leading-relaxed"), children: /* @__PURE__ */ jsx(DBox, { as: "p", children: item.quote }) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/testimonial/TestimonialSplit/schema.ts","../../src/testimonial/TestimonialSplit/index.tsx","../../src/testimonial/TestimonialSplit/default.ts","../../src/testimonial/TestimonialGrid/schema.ts","../../src/testimonial/TestimonialGrid/index.tsx","../../src/testimonial/TestimonialGrid/default.ts"],"names":["z","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback"],"mappings":"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","file":"index.js","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nexport const TestimonialSplitContentSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport type TestimonialSplitContent = z.infer<typeof TestimonialSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialSplitContentSchema, type TestimonialSplitContent } from \"./schema\";\n\nexport function TestimonialSplit({ content, theme }: BlockProps<TestimonialSplitContent>) {\n TestimonialSplitContentSchema.parse(content);\n const { quote, author, role, company, avatar } = content;\n return (\n <DBox as=\"section\" aria-label=\"Testimonial\" style={themeStyle(theme)}>\n <DGrid columns={2} px={6} gap={16} align=\"center\" className={cn(\"max-w-5xl mx-auto py-20\")}>\n <DBox\n as=\"blockquote\"\n className={cn(\"text-2xl font-medium leading-relaxed\")}\n cite={undefined}\n >\n <DBox as=\"p\">{quote}</DBox>\n </DBox>\n <DStack gap={4}>\n {avatar && (\n <Avatar className={cn(\"w-20 h-20\")}>\n <AvatarImage src={avatar.src} alt={avatar.alt} />\n <AvatarFallback>{author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DInline gap={1} color=\"muted\" className={cn(\"text-sm\")}>\n <DBox as=\"cite\" color=\"fg\" className={cn(\"font-semibold not-italic\")}>{author}</DBox>\n <DBox as=\"span\">,</DBox>\n <DBox as=\"span\">{role}</DBox>\n {company && (\n <>\n <DBox as=\"span\">at</DBox>\n <DBox as=\"span\">{company}</DBox>\n </>\n )}\n </DInline>\n </DStack>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialSplitContent } from \"./schema\";\n\nexport const TestimonialSplitDefaultContent: TestimonialSplitContent = {\n quote: \"This is the most composable block kit I have used. Schema validation caught three content bugs before they hit production.\",\n author: \"Jordan Ellis\",\n role: \"Product Lead\",\n company: \"Acme\",\n avatar: { src: \"https://placehold.co/120x120\", alt: \"Jordan Ellis\" },\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TestimonialItemSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport const TestimonialGridContentSchema = z.object({\n heading: z.string(),\n items: z.array(TestimonialItemSchema).min(1),\n}).strict();\n\nexport type TestimonialGridContent = z.infer<typeof TestimonialGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialGridContentSchema, type TestimonialGridContent } from \"./schema\";\n\nexport function TestimonialGrid({ content, theme }: BlockProps<TestimonialGridContent>) {\n TestimonialGridContentSchema.parse(content);\n const { heading, items } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-5xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {items.map((item, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={4} pt={4}>\n <DBox as=\"blockquote\" className={cn(\"text-sm leading-relaxed\")}>\n <DBox as=\"p\">{item.quote}</DBox>\n </DBox>\n <DInline gap={3} align=\"center\">\n {item.avatar && (\n <Avatar>\n <AvatarImage src={item.avatar.src} alt={item.avatar.alt} />\n <AvatarFallback>{item.author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DStack className={cn(\"gap-0.5\")}>\n <DBox as=\"cite\" className={cn(\"text-sm font-semibold not-italic\")}>{item.author}</DBox>\n <DBox as=\"span\" color=\"muted\" className={cn(\"text-xs\")}>\n {item.role}{item.company ? `, ${item.company}` : \"\"}\n </DBox>\n </DStack>\n </DInline>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialGridContent } from \"./schema\";\n\nexport const TestimonialGridDefaultContent: TestimonialGridContent = {\n heading: \"What teams are saying\",\n items: [\n { quote: \"Schema validation alone saved us from three production bugs in the first week.\", author: \"Jordan Ellis\", role: \"Product Lead\", company: \"Acme\" },\n { quote: \"The composable approach means we can swap blocks without touching the rest of the page.\", author: \"Sam Rivera\", role: \"Engineering Lead\" },\n { quote: \"Typed content props make onboarding new designers trivially easy.\", author: \"Taylor Kim\", role: \"Design Lead\", company: \"Studio N\" },\n ],\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/primitives.ts","../../src/theme.ts","../../src/shared/schemas.ts","../../src/testimonial/TestimonialSplit/schema.ts","../../src/testimonial/TestimonialSplit/index.tsx","../../src/testimonial/TestimonialSplit/default.ts","../../src/testimonial/TestimonialGrid/schema.ts","../../src/testimonial/TestimonialGrid/index.tsx","../../src/testimonial/TestimonialGrid/default.ts"],"names":["z","jsx","jsxs","cn","Avatar","AvatarImage","AvatarFallback"],"mappings":"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","file":"index.js","sourcesContent":["// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type ElementType } from \"react\";\nimport { dsl } from \"@booga/vdsl\";\nimport { Box, Stack, Grid, Inline } from \"@booga/vui\";\n\n// PolymorphicComponent is not structurally assignable to ElementType; dsl() uses\n// createElement() at runtime which accepts any callable, so the bridge is safe.\nexport const DBox = dsl(Box as unknown as ElementType);\nexport const DStack = dsl(Stack as unknown as ElementType);\nexport const DGrid = dsl(Grid as unknown as ElementType);\nexport const DInline = dsl(Inline as unknown as ElementType);\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type CSSProperties } from \"react\";\nimport { type ThemeOverride } from \"./types\";\n\nexport function themeStyle(theme: ThemeOverride | undefined): CSSProperties | undefined {\n if (!theme) return undefined;\n return Object.fromEntries(\n Object.entries(theme).map(([k, v]) => [`--v-${k}`, v])\n ) as CSSProperties;\n}\n\nexport function clampedGridCols(n: number): 1 | 2 | 3 | 4 | 5 | 6 {\n return Math.max(1, Math.min(6, Math.round(n))) as 1 | 2 | 3 | 4 | 5 | 6;\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\n\nexport const CtaSchema = z.object({\n label: z.string(),\n href: z.string(),\n}).strict();\n\nexport const ImageSchema = z.object({\n src: z.string(),\n alt: z.string(),\n}).strict();\n\nexport const AvatarSchema = ImageSchema;\n\nexport type Cta = z.infer<typeof CtaSchema>;\nexport type Image = z.infer<typeof ImageSchema>;\nexport type AvatarSrc = Image;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nexport const TestimonialSplitContentSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport type TestimonialSplitContent = z.infer<typeof TestimonialSplitContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialSplitContentSchema, type TestimonialSplitContent } from \"./schema\";\n\nexport function TestimonialSplit({ content, theme }: BlockProps<TestimonialSplitContent>) {\n TestimonialSplitContentSchema.parse(content);\n const { quote, author, role, company, avatar } = content;\n return (\n <DBox as=\"section\" aria-label=\"Testimonial\" style={themeStyle(theme)}>\n <DGrid columns={2} px={6} gap={16} align=\"center\" className={cn(\"max-w-6xl mx-auto py-20\")}>\n <DBox\n as=\"blockquote\"\n className={cn(\"text-2xl font-medium leading-relaxed\")}\n cite={undefined}\n >\n <DBox as=\"p\">{quote}</DBox>\n </DBox>\n <DStack gap={4}>\n {avatar && (\n <Avatar className={cn(\"w-20 h-20\")}>\n <AvatarImage src={avatar.src} alt={avatar.alt} />\n <AvatarFallback>{author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DInline gap={1} color=\"muted\" className={cn(\"text-sm\")}>\n <DBox as=\"cite\" color=\"fg\" className={cn(\"font-semibold not-italic\")}>{author}</DBox>\n <DBox as=\"span\">,</DBox>\n <DBox as=\"span\">{role}</DBox>\n {company && (\n <>\n <DBox as=\"span\">at</DBox>\n <DBox as=\"span\">{company}</DBox>\n </>\n )}\n </DInline>\n </DStack>\n </DGrid>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialSplitContent } from \"./schema\";\n\nexport const TestimonialSplitDefaultContent: TestimonialSplitContent = {\n quote: \"This is the most composable block kit I have used. Schema validation caught three content bugs before they hit production.\",\n author: \"Jordan Ellis\",\n role: \"Product Lead\",\n company: \"Acme\",\n avatar: { src: \"https://placehold.co/120x120\", alt: \"Jordan Ellis\" },\n};\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { z } from \"zod\";\nimport { AvatarSchema } from \"../../shared/schemas\";\n\nconst TestimonialItemSchema = z.object({\n quote: z.string(),\n author: z.string(),\n role: z.string(),\n company: z.string().optional(),\n avatar: AvatarSchema.optional(),\n}).strict();\n\nexport const TestimonialGridContentSchema = z.object({\n heading: z.string(),\n items: z.array(TestimonialItemSchema).min(1),\n}).strict();\n\nexport type TestimonialGridContent = z.infer<typeof TestimonialGridContentSchema>;\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { Avatar, AvatarFallback, AvatarImage, Card, CardContent, cn } from \"@booga/vui\";\nimport { DBox, DGrid, DInline, DStack } from \"../../primitives\";\nimport { type BlockProps } from \"../../types\";\nimport { themeStyle } from \"../../theme\";\nimport { TestimonialGridContentSchema, type TestimonialGridContent } from \"./schema\";\n\nexport function TestimonialGrid({ content, theme }: BlockProps<TestimonialGridContent>) {\n TestimonialGridContentSchema.parse(content);\n const { heading, items } = content;\n return (\n <DBox as=\"section\" aria-label={heading} style={themeStyle(theme)}>\n <DStack px={6} py={16} className={cn(\"max-w-6xl mx-auto gap-10\")}>\n <DBox as=\"h2\" className={cn(\"text-3xl font-bold tracking-tight text-center\")}>{heading}</DBox>\n <DGrid columns={3} gap={6}>\n {items.map((item, i) => (\n <Card key={i}>\n <CardContent>\n <DStack gap={4} pt={4}>\n <DBox as=\"blockquote\" className={cn(\"text-sm leading-relaxed\")}>\n <DBox as=\"p\">{item.quote}</DBox>\n </DBox>\n <DInline gap={3} align=\"center\">\n {item.avatar && (\n <Avatar>\n <AvatarImage src={item.avatar.src} alt={item.avatar.alt} />\n <AvatarFallback>{item.author.slice(0, 2).toUpperCase()}</AvatarFallback>\n </Avatar>\n )}\n <DStack className={cn(\"gap-0.5\")}>\n <DBox as=\"cite\" className={cn(\"text-sm font-semibold not-italic\")}>{item.author}</DBox>\n <DBox as=\"span\" color=\"muted\" className={cn(\"text-xs\")}>\n {item.role}{item.company ? `, ${item.company}` : \"\"}\n </DBox>\n </DStack>\n </DInline>\n </DStack>\n </CardContent>\n </Card>\n ))}\n </DGrid>\n </DStack>\n </DBox>\n );\n}\n","// SPDX-License-Identifier: MIT\n// Copyright (c) 2026 bvasilenko\nimport { type TestimonialGridContent } from \"./schema\";\n\nexport const TestimonialGridDefaultContent: TestimonialGridContent = {\n heading: \"What teams are saying\",\n items: [\n { quote: \"Schema validation alone saved us from three production bugs in the first week.\", author: \"Jordan Ellis\", role: \"Product Lead\", company: \"Acme\" },\n { quote: \"The composable approach means we can swap blocks without touching the rest of the page.\", author: \"Sam Rivera\", role: \"Engineering Lead\" },\n { quote: \"Typed content props make onboarding new designers trivially easy.\", author: \"Taylor Kim\", role: \"Design Lead\", company: \"Studio N\" },\n ],\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@booga/vblocks",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Composed section blocks: hero, CTA, FAQ, footer, gallery, portfolio, post, team, testimonial, blog, business, features. Schema-validated content, vUi primitives, DSL-styled.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|