@simple-builder/react 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import { BuilderProvider, useBuilder, Button } from './chunk-EQMVGJ6X.mjs';
2
- import { BuildContainer } from './chunk-BSE6WW6Q.mjs';
1
+ import { BuilderProvider, useBuilder, Button } from './chunk-JF244SXI.mjs';
2
+ import { BuildContainer } from './chunk-PIRC2EWS.mjs';
3
3
  import * as React2 from 'react';
4
4
 
5
5
  var BuilderHeader = () => {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkXEMUNFCV_js = require('./chunk-XEMUNFCV.js');
4
- var chunkJ36K7WVK_js = require('./chunk-J36K7WVK.js');
3
+ var chunkTQITQHDC_js = require('./chunk-TQITQHDC.js');
4
+ var chunkNVOLMEIV_js = require('./chunk-NVOLMEIV.js');
5
5
  var React2 = require('react');
6
6
 
7
7
  function _interopNamespace(e) {
@@ -25,17 +25,17 @@ function _interopNamespace(e) {
25
25
  var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
26
26
 
27
27
  var BuilderHeader = () => {
28
- const { save } = chunkXEMUNFCV_js.useBuilder();
29
- return /* @__PURE__ */ React2__namespace.createElement("div", { className: "sb-grid sb-grid-cols-3 sb-gap-4 sb-items-center sb-p-2 sb-shadow-lg sb-sticky sb-inset-x-0 sb-top-0 sb-bg-background sb-z-30" }, /* @__PURE__ */ React2__namespace.createElement("div", { className: "sb-flex sb-gap-4 sb-items-center" }, /* @__PURE__ */ React2__namespace.createElement(chunkXEMUNFCV_js.Button, { variant: "ghost", size: "sm", onClick: save }, "Opslaan")));
28
+ const { save } = chunkTQITQHDC_js.useBuilder();
29
+ return /* @__PURE__ */ React2__namespace.createElement("div", { className: "sb-grid sb-grid-cols-3 sb-gap-4 sb-items-center sb-p-2 sb-shadow-lg sb-sticky sb-inset-x-0 sb-top-0 sb-bg-background sb-z-30" }, /* @__PURE__ */ React2__namespace.createElement("div", { className: "sb-flex sb-gap-4 sb-items-center" }, /* @__PURE__ */ React2__namespace.createElement(chunkTQITQHDC_js.Button, { variant: "ghost", size: "sm", onClick: save }, "Opslaan")));
30
30
  };
31
31
 
32
32
  // src/components/builder-content.tsx
33
33
  var BuilderContent = (props) => {
34
- return /* @__PURE__ */ React2__namespace.createElement(chunkXEMUNFCV_js.BuilderProvider, { content: props.content }, /* @__PURE__ */ React2__namespace.createElement(BuilderContentInner, null));
34
+ return /* @__PURE__ */ React2__namespace.createElement(chunkTQITQHDC_js.BuilderProvider, { content: props.content }, /* @__PURE__ */ React2__namespace.createElement(BuilderContentInner, null));
35
35
  };
36
36
  var BuilderContentInner = () => {
37
- const { content } = chunkXEMUNFCV_js.useBuilder();
38
- return /* @__PURE__ */ React2__namespace.createElement(React2__namespace.Fragment, null, /* @__PURE__ */ React2__namespace.createElement(BuilderHeader, null), /* @__PURE__ */ React2__namespace.createElement(chunkJ36K7WVK_js.BuildContainer, { name: "root", edit: true, multiple: true, content }));
37
+ const { content } = chunkTQITQHDC_js.useBuilder();
38
+ return /* @__PURE__ */ React2__namespace.createElement(React2__namespace.Fragment, null, /* @__PURE__ */ React2__namespace.createElement(BuilderHeader, null), /* @__PURE__ */ React2__namespace.createElement(chunkNVOLMEIV_js.BuildContainer, { name: "root", edit: true, multiple: true, content }));
39
39
  };
40
40
  var builder_content_default = BuilderContent;
41
41
 
@@ -466,6 +466,9 @@
466
466
  .sb-rounded-md {
467
467
  border-radius: calc(var(--sb-radius) - 2px);
468
468
  }
469
+ .sb-rounded-sm {
470
+ border-radius: calc(var(--sb-radius) - 4px);
471
+ }
469
472
  .sb-border {
470
473
  border-width: 1px;
471
474
  }
@@ -499,6 +502,9 @@
499
502
  .sb-bg-destructive {
500
503
  background-color: hsl(var(--sb-destructive));
501
504
  }
505
+ .sb-bg-muted {
506
+ background-color: hsl(var(--sb-muted));
507
+ }
502
508
  .sb-bg-popover {
503
509
  background-color: hsl(var(--sb-popover));
504
510
  }
@@ -572,6 +578,10 @@
572
578
  padding-top: 0.25rem;
573
579
  padding-bottom: 0.25rem;
574
580
  }
581
+ .sb-py-1\.5 {
582
+ padding-top: 0.375rem;
583
+ padding-bottom: 0.375rem;
584
+ }
575
585
  .sb-py-2 {
576
586
  padding-top: 0.5rem;
577
587
  padding-bottom: 0.5rem;
@@ -991,6 +1001,9 @@
991
1001
  --tw-border-opacity: 1;
992
1002
  border-color: rgb(0 0 0 / var(--tw-border-opacity));
993
1003
  }
1004
+ .data-\[state\=active\]\:sb-bg-background[data-state=active] {
1005
+ background-color: hsl(var(--sb-background));
1006
+ }
994
1007
  .data-\[state\=checked\]\:sb-bg-primary[data-state=checked] {
995
1008
  background-color: hsl(var(--sb-primary));
996
1009
  }
@@ -1006,6 +1019,14 @@
1006
1019
  .data-\[state\=on\]\:sb-text-accent-foreground[data-state=on] {
1007
1020
  color: hsl(var(--sb-accent-foreground));
1008
1021
  }
1022
+ .data-\[state\=active\]\:sb-shadow-sm[data-state=active] {
1023
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1024
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1025
+ box-shadow:
1026
+ var(--tw-ring-offset-shadow, 0 0 #0000),
1027
+ var(--tw-ring-shadow, 0 0 #0000),
1028
+ var(--tw-shadow);
1029
+ }
1009
1030
  .data-\[state\=open\]\:sb-animate-in[data-state=open] {
1010
1031
  animation-name: enter;
1011
1032
  animation-duration: 150ms;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJ36K7WVK_js = require('./chunk-J36K7WVK.js');
3
+ var chunkNVOLMEIV_js = require('./chunk-NVOLMEIV.js');
4
4
  var React = require('react');
5
5
 
6
6
  function _interopNamespace(e) {
@@ -25,7 +25,7 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
25
25
 
26
26
  var StaticContent = (props) => {
27
27
  return /* @__PURE__ */ React__namespace.createElement(
28
- chunkJ36K7WVK_js.BuildContainer,
28
+ chunkNVOLMEIV_js.BuildContainer,
29
29
  {
30
30
  name: "root",
31
31
  edit: false,
@@ -36,7 +36,7 @@ var StaticContent = (props) => {
36
36
  };
37
37
 
38
38
  // src/index.ts
39
- var BuilderContent = React.lazy(() => import('./builder-content-QNCUQJUB.js'));
39
+ var BuilderContent = React.lazy(() => import('./builder-content-3LSJER2M.js'));
40
40
 
41
41
  exports.BuilderContent = BuilderContent;
42
42
  exports.StaticContent = StaticContent;
@@ -1,4 +1,4 @@
1
- import { BuildContainer } from './chunk-BSE6WW6Q.mjs';
1
+ import { BuildContainer } from './chunk-PIRC2EWS.mjs';
2
2
  import * as React from 'react';
3
3
  import { lazy } from 'react';
4
4
 
@@ -15,6 +15,6 @@ var StaticContent = (props) => {
15
15
  };
16
16
 
17
17
  // src/index.ts
18
- var BuilderContent = lazy(() => import('./builder-content-GELONUMY.mjs'));
18
+ var BuilderContent = lazy(() => import('./builder-content-36BOBBAF.mjs'));
19
19
 
20
20
  export { BuilderContent, StaticContent };
@@ -1,7 +1,6 @@
1
- import { cn, builder, insertAt } from './chunk-BSE6WW6Q.mjs';
1
+ import { tv, builder, insertAt } from './chunk-PIRC2EWS.mjs';
2
2
  import * as React from 'react';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
- import { cva } from 'class-variance-authority';
5
4
 
6
5
  var BuilderContext = React.createContext(
7
6
  null
@@ -197,34 +196,32 @@ var findRecursive = (items, predicate, key = "content") => {
197
196
  }
198
197
  }
199
198
  };
200
- var buttonVariants = cva(
201
- "sb-inline-flex sb-uppercase sb-font-roboto sb-items-center sb-justify-center sb-whitespace-nowrap sb-rounded-md sb-text-xs sb-font-semibold ring-offset-background sb-transition-colors focus-visible:sb-outline-none focus-visible:sb-ring-2 focus-visible:ring-ring focus-visible:sb-ring-offset-2 disabled:sb-pointer-events-none disabled:sb-opacity-50",
202
- {
203
- variants: {
204
- variant: {
205
- primary: "sb-bg-primary sb-text-primary-foreground hover:sb-bg-primary/90",
206
- destructive: "sb-bg-destructive sb-text-destructive-foreground hover:sb-bg-destructive/90",
207
- outline: "sb-border border-input sb-bg-background hover:sb-bg-accent hover:sb-text-accent-foreground",
208
- ghost: "hover:sb-bg-accent hover:sb-text-accent-foreground"
209
- },
210
- size: {
211
- default: "sb-h-10 sb-px-4 sb-py-2",
212
- sm: "sb-h-8 sb-px-3 sb-py-1"
213
- }
199
+ var buttonVariants = tv({
200
+ base: "sb-inline-flex sb-uppercase sb-font-roboto sb-items-center sb-justify-center sb-whitespace-nowrap sb-rounded-md sb-text-xs sb-font-semibold ring-offset-background sb-transition-colors focus-visible:sb-outline-none focus-visible:sb-ring-2 focus-visible:ring-ring focus-visible:sb-ring-offset-2 disabled:sb-pointer-events-none disabled:sb-opacity-50",
201
+ variants: {
202
+ variant: {
203
+ primary: "sb-bg-primary sb-text-primary-foreground hover:sb-bg-primary/90",
204
+ destructive: "sb-bg-destructive sb-text-destructive-foreground hover:sb-bg-destructive/90",
205
+ outline: "sb-border border-input sb-bg-background hover:sb-bg-accent hover:sb-text-accent-foreground",
206
+ ghost: "hover:sb-bg-accent hover:sb-text-accent-foreground"
214
207
  },
215
- defaultVariants: {
216
- variant: "primary",
217
- size: "default"
208
+ size: {
209
+ default: "sb-h-10 sb-px-4 sb-py-2",
210
+ sm: "sb-h-8 sb-px-3 sb-py-1"
218
211
  }
212
+ },
213
+ defaultVariants: {
214
+ variant: "primary",
215
+ size: "default"
219
216
  }
220
- );
217
+ });
221
218
  var Button = React.forwardRef(
222
219
  ({ className, variant, size, asChild = false, ...props }, ref) => {
223
220
  const Comp = asChild ? Slot : "button";
224
221
  return /* @__PURE__ */ React.createElement(
225
222
  Comp,
226
223
  {
227
- className: cn(buttonVariants({ variant, size, className })),
224
+ className: buttonVariants({ variant, size, className }),
228
225
  ref,
229
226
  ...props
230
227
  }
@@ -4,6 +4,7 @@ var React3 = require('react');
4
4
  var NextImage = require('next/image');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
+ var tailwindVariants = require('tailwind-variants');
7
8
 
8
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
10
 
@@ -76,11 +77,23 @@ var twMerge = tailwindMerge.extendTailwindMerge({
76
77
  function cn(...inputs) {
77
78
  return twMerge(clsx.clsx(inputs));
78
79
  }
80
+ var tv = tailwindVariants.createTV({
81
+ twMergeConfig: {
82
+ prefix: "sb-"
83
+ }
84
+ });
79
85
  var insertAt = (items, index, item) => {
80
86
  return Array.isArray(items) ? [...items.slice(0, index), item, ...items.slice(index)] : [item];
81
87
  };
82
88
  var spacing = {
83
89
  parse: (input) => {
90
+ if (typeof input !== "string")
91
+ return {
92
+ top: 0,
93
+ right: 0,
94
+ bottom: 0,
95
+ left: 0
96
+ };
84
97
  const matches = input.match(/(\d+)/gm);
85
98
  const [top = 0, right = 0, bottom = 0, left = 0] = matches?.map((match) => +match) || [];
86
99
  switch (matches?.length) {
@@ -94,38 +107,59 @@ var spacing = {
94
107
  return { top, right, bottom, left };
95
108
  }
96
109
  },
110
+ stringify: ({
111
+ top = 0,
112
+ right = 0,
113
+ bottom = 0,
114
+ left = 0
115
+ }) => {
116
+ if ([right, bottom, left].every((v) => v === top)) {
117
+ if (top === 0)
118
+ return;
119
+ return `${top}px`;
120
+ } else if (top === bottom && left === right) {
121
+ return `${top}px ${left}px`;
122
+ } else {
123
+ return `${top}px ${right}px ${bottom}px ${left}px`;
124
+ }
125
+ },
97
126
  isIndipendent: (input) => {
98
- const { top, right, bottom, left } = spacing.parse(input);
127
+ const { top, right, bottom, left } = spacing.parse(input || "");
99
128
  return top !== bottom || right !== left;
100
129
  }
101
130
  };
102
131
 
103
132
  // src/components/design-wrapper.tsx
104
133
  var DesignWrapper = (props) => {
105
- const { children, className, styles } = props;
106
- const { container = true, background, ...rest } = styles || {};
134
+ const { children, className } = props;
135
+ const styles = props.styles?.desktop ?? {};
136
+ const { background } = styles;
107
137
  const matches = typeof background === "string" ? background.match(/url\(["']?(.*?)["']?\)/) : void 0;
108
138
  const src = matches ? matches[1] : void 0;
109
- return /* @__PURE__ */ React3__namespace.createElement(
110
- "div",
139
+ const container = props.styles?.container ?? true;
140
+ const id = React3__namespace.useId().replace(/[^a-zA-Z0-9]/g, "");
141
+ return /* @__PURE__ */ React3__namespace.createElement("div", { id, className: cn("sb-relative", className) }, src && /* @__PURE__ */ React3__namespace.createElement(
142
+ Image,
111
143
  {
112
- className: cn("sb-relative", className),
113
- style: { ...!src && { background }, ...rest }
114
- },
115
- src && /* @__PURE__ */ React3__namespace.createElement(
116
- Image,
117
- {
118
- src,
119
- alt: "",
120
- fill: true,
121
- className: "sb-object-cover sb-absolute sb-inset-0 sb-pointer-events-none sb--z-[1]"
122
- }
123
- ),
124
- container ? /* @__PURE__ */ React3__namespace.createElement("div", { className: "sb-container sb-mx-auto" }, children) : children
125
- );
144
+ src,
145
+ alt: "",
146
+ fill: true,
147
+ className: "sb-object-cover sb-absolute sb-inset-0 sb-pointer-events-none sb--z-[1]"
148
+ }
149
+ ), container ? /* @__PURE__ */ React3__namespace.createElement("div", { className: "sb-container sb-mx-auto" }, children) : children, /* @__PURE__ */ React3__namespace.createElement("style", null, `
150
+ #${id} {
151
+ ${Object.entries(props.styles?.desktop ?? {}).map(([key, value]) => `${key}: ${value};`).join(" ")}
152
+ }
153
+
154
+ @media (max-width: 1024px) {
155
+ #${id} {
156
+ ${Object.entries(props.styles?.mobile ?? {}).map(([key, value]) => `${key}: ${value}; `).join(" ")}
157
+ }
158
+ }
159
+ `.replace(/\s\s+/g, " ")));
126
160
  };
127
161
  var BuildContainerInner = React3__namespace.lazy(
128
- () => import('./build-container-client-PDM3LRIQ.js')
162
+ () => import('./build-container-client-B6ZYGDJF.js')
129
163
  );
130
164
  var BuildContainer = (props) => {
131
165
  const { content, edit, name } = props;
@@ -143,3 +177,4 @@ exports.builder = builder;
143
177
  exports.cn = cn;
144
178
  exports.insertAt = insertAt;
145
179
  exports.spacing = spacing;
180
+ exports.tv = tv;
@@ -3,6 +3,7 @@ import { createElement } from 'react';
3
3
  import NextImage from 'next/image';
4
4
  import { clsx } from 'clsx';
5
5
  import { extendTailwindMerge } from 'tailwind-merge';
6
+ import { createTV } from 'tailwind-variants';
6
7
 
7
8
  // src/lib/builder.ts
8
9
  var builder = /* @__PURE__ */ (() => {
@@ -52,11 +53,23 @@ var twMerge = extendTailwindMerge({
52
53
  function cn(...inputs) {
53
54
  return twMerge(clsx(inputs));
54
55
  }
56
+ var tv = createTV({
57
+ twMergeConfig: {
58
+ prefix: "sb-"
59
+ }
60
+ });
55
61
  var insertAt = (items, index, item) => {
56
62
  return Array.isArray(items) ? [...items.slice(0, index), item, ...items.slice(index)] : [item];
57
63
  };
58
64
  var spacing = {
59
65
  parse: (input) => {
66
+ if (typeof input !== "string")
67
+ return {
68
+ top: 0,
69
+ right: 0,
70
+ bottom: 0,
71
+ left: 0
72
+ };
60
73
  const matches = input.match(/(\d+)/gm);
61
74
  const [top = 0, right = 0, bottom = 0, left = 0] = matches?.map((match) => +match) || [];
62
75
  switch (matches?.length) {
@@ -70,38 +83,59 @@ var spacing = {
70
83
  return { top, right, bottom, left };
71
84
  }
72
85
  },
86
+ stringify: ({
87
+ top = 0,
88
+ right = 0,
89
+ bottom = 0,
90
+ left = 0
91
+ }) => {
92
+ if ([right, bottom, left].every((v) => v === top)) {
93
+ if (top === 0)
94
+ return;
95
+ return `${top}px`;
96
+ } else if (top === bottom && left === right) {
97
+ return `${top}px ${left}px`;
98
+ } else {
99
+ return `${top}px ${right}px ${bottom}px ${left}px`;
100
+ }
101
+ },
73
102
  isIndipendent: (input) => {
74
- const { top, right, bottom, left } = spacing.parse(input);
103
+ const { top, right, bottom, left } = spacing.parse(input || "");
75
104
  return top !== bottom || right !== left;
76
105
  }
77
106
  };
78
107
 
79
108
  // src/components/design-wrapper.tsx
80
109
  var DesignWrapper = (props) => {
81
- const { children, className, styles } = props;
82
- const { container = true, background, ...rest } = styles || {};
110
+ const { children, className } = props;
111
+ const styles = props.styles?.desktop ?? {};
112
+ const { background } = styles;
83
113
  const matches = typeof background === "string" ? background.match(/url\(["']?(.*?)["']?\)/) : void 0;
84
114
  const src = matches ? matches[1] : void 0;
85
- return /* @__PURE__ */ React3.createElement(
86
- "div",
115
+ const container = props.styles?.container ?? true;
116
+ const id = React3.useId().replace(/[^a-zA-Z0-9]/g, "");
117
+ return /* @__PURE__ */ React3.createElement("div", { id, className: cn("sb-relative", className) }, src && /* @__PURE__ */ React3.createElement(
118
+ Image,
87
119
  {
88
- className: cn("sb-relative", className),
89
- style: { ...!src && { background }, ...rest }
90
- },
91
- src && /* @__PURE__ */ React3.createElement(
92
- Image,
93
- {
94
- src,
95
- alt: "",
96
- fill: true,
97
- className: "sb-object-cover sb-absolute sb-inset-0 sb-pointer-events-none sb--z-[1]"
98
- }
99
- ),
100
- container ? /* @__PURE__ */ React3.createElement("div", { className: "sb-container sb-mx-auto" }, children) : children
101
- );
120
+ src,
121
+ alt: "",
122
+ fill: true,
123
+ className: "sb-object-cover sb-absolute sb-inset-0 sb-pointer-events-none sb--z-[1]"
124
+ }
125
+ ), container ? /* @__PURE__ */ React3.createElement("div", { className: "sb-container sb-mx-auto" }, children) : children, /* @__PURE__ */ React3.createElement("style", null, `
126
+ #${id} {
127
+ ${Object.entries(props.styles?.desktop ?? {}).map(([key, value]) => `${key}: ${value};`).join(" ")}
128
+ }
129
+
130
+ @media (max-width: 1024px) {
131
+ #${id} {
132
+ ${Object.entries(props.styles?.mobile ?? {}).map(([key, value]) => `${key}: ${value}; `).join(" ")}
133
+ }
134
+ }
135
+ `.replace(/\s\s+/g, " ")));
102
136
  };
103
137
  var BuildContainerInner = React3.lazy(
104
- () => import('./build-container-client-Y55WZE6M.mjs')
138
+ () => import('./build-container-client-F3SDJONS.mjs')
105
139
  );
106
140
  var BuildContainer = (props) => {
107
141
  const { content, edit, name } = props;
@@ -112,4 +146,4 @@ var BuildContainer = (props) => {
112
146
  return /* @__PURE__ */ React3.createElement(React3.Suspense, { fallback: /* @__PURE__ */ React3.createElement("div", null, "Loading...") }, /* @__PURE__ */ React3.createElement(BuildContainerInner, { ...props }));
113
147
  };
114
148
 
115
- export { BuildContainer, DesignWrapper, Image, builder, cn, insertAt, spacing };
149
+ export { BuildContainer, DesignWrapper, Image, builder, cn, insertAt, spacing, tv };
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkJ36K7WVK_js = require('./chunk-J36K7WVK.js');
3
+ var chunkNVOLMEIV_js = require('./chunk-NVOLMEIV.js');
4
4
  var React = require('react');
5
5
  var reactSlot = require('@radix-ui/react-slot');
6
- var classVarianceAuthority = require('class-variance-authority');
7
6
 
8
7
  function _interopNamespace(e) {
9
8
  if (e && e.__esModule) return e;
@@ -59,7 +58,7 @@ var BuilderProvider = (props) => {
59
58
  );
60
59
  const addContent = React__namespace.useCallback(
61
60
  (name, container, parent, index = 0) => {
62
- const component = chunkJ36K7WVK_js.builder.getComponent(name);
61
+ const component = chunkNVOLMEIV_js.builder.getComponent(name);
63
62
  if (!component) {
64
63
  throw new Error(`[simple-builder]: Component "${name}" not found`);
65
64
  }
@@ -81,7 +80,7 @@ var BuilderProvider = (props) => {
81
80
  }
82
81
  };
83
82
  if (!parent) {
84
- setContent((content2) => chunkJ36K7WVK_js.insertAt(content2, index, entry));
83
+ setContent((content2) => chunkNVOLMEIV_js.insertAt(content2, index, entry));
85
84
  return;
86
85
  }
87
86
  setContent(
@@ -91,7 +90,7 @@ var BuilderProvider = (props) => {
91
90
  ...item,
92
91
  content: {
93
92
  ...item.content,
94
- [container]: chunkJ36K7WVK_js.insertAt(item.content?.[container], index, entry)
93
+ [container]: chunkNVOLMEIV_js.insertAt(item.content?.[container], index, entry)
95
94
  }
96
95
  };
97
96
  }
@@ -219,34 +218,32 @@ var findRecursive = (items, predicate, key = "content") => {
219
218
  }
220
219
  }
221
220
  };
222
- var buttonVariants = classVarianceAuthority.cva(
223
- "sb-inline-flex sb-uppercase sb-font-roboto sb-items-center sb-justify-center sb-whitespace-nowrap sb-rounded-md sb-text-xs sb-font-semibold ring-offset-background sb-transition-colors focus-visible:sb-outline-none focus-visible:sb-ring-2 focus-visible:ring-ring focus-visible:sb-ring-offset-2 disabled:sb-pointer-events-none disabled:sb-opacity-50",
224
- {
225
- variants: {
226
- variant: {
227
- primary: "sb-bg-primary sb-text-primary-foreground hover:sb-bg-primary/90",
228
- destructive: "sb-bg-destructive sb-text-destructive-foreground hover:sb-bg-destructive/90",
229
- outline: "sb-border border-input sb-bg-background hover:sb-bg-accent hover:sb-text-accent-foreground",
230
- ghost: "hover:sb-bg-accent hover:sb-text-accent-foreground"
231
- },
232
- size: {
233
- default: "sb-h-10 sb-px-4 sb-py-2",
234
- sm: "sb-h-8 sb-px-3 sb-py-1"
235
- }
221
+ var buttonVariants = chunkNVOLMEIV_js.tv({
222
+ base: "sb-inline-flex sb-uppercase sb-font-roboto sb-items-center sb-justify-center sb-whitespace-nowrap sb-rounded-md sb-text-xs sb-font-semibold ring-offset-background sb-transition-colors focus-visible:sb-outline-none focus-visible:sb-ring-2 focus-visible:ring-ring focus-visible:sb-ring-offset-2 disabled:sb-pointer-events-none disabled:sb-opacity-50",
223
+ variants: {
224
+ variant: {
225
+ primary: "sb-bg-primary sb-text-primary-foreground hover:sb-bg-primary/90",
226
+ destructive: "sb-bg-destructive sb-text-destructive-foreground hover:sb-bg-destructive/90",
227
+ outline: "sb-border border-input sb-bg-background hover:sb-bg-accent hover:sb-text-accent-foreground",
228
+ ghost: "hover:sb-bg-accent hover:sb-text-accent-foreground"
236
229
  },
237
- defaultVariants: {
238
- variant: "primary",
239
- size: "default"
230
+ size: {
231
+ default: "sb-h-10 sb-px-4 sb-py-2",
232
+ sm: "sb-h-8 sb-px-3 sb-py-1"
240
233
  }
234
+ },
235
+ defaultVariants: {
236
+ variant: "primary",
237
+ size: "default"
241
238
  }
242
- );
239
+ });
243
240
  var Button = React__namespace.forwardRef(
244
241
  ({ className, variant, size, asChild = false, ...props }, ref) => {
245
242
  const Comp = asChild ? reactSlot.Slot : "button";
246
243
  return /* @__PURE__ */ React__namespace.createElement(
247
244
  Comp,
248
245
  {
249
- className: chunkJ36K7WVK_js.cn(buttonVariants({ variant, size, className })),
246
+ className: buttonVariants({ variant, size, className }),
250
247
  ref,
251
248
  ...props
252
249
  }
package/dist/index.css CHANGED
@@ -466,6 +466,9 @@
466
466
  .sb-rounded-md {
467
467
  border-radius: calc(var(--sb-radius) - 2px);
468
468
  }
469
+ .sb-rounded-sm {
470
+ border-radius: calc(var(--sb-radius) - 4px);
471
+ }
469
472
  .sb-border {
470
473
  border-width: 1px;
471
474
  }
@@ -499,6 +502,9 @@
499
502
  .sb-bg-destructive {
500
503
  background-color: hsl(var(--sb-destructive));
501
504
  }
505
+ .sb-bg-muted {
506
+ background-color: hsl(var(--sb-muted));
507
+ }
502
508
  .sb-bg-popover {
503
509
  background-color: hsl(var(--sb-popover));
504
510
  }
@@ -572,6 +578,10 @@
572
578
  padding-top: 0.25rem;
573
579
  padding-bottom: 0.25rem;
574
580
  }
581
+ .sb-py-1\.5 {
582
+ padding-top: 0.375rem;
583
+ padding-bottom: 0.375rem;
584
+ }
575
585
  .sb-py-2 {
576
586
  padding-top: 0.5rem;
577
587
  padding-bottom: 0.5rem;
@@ -991,6 +1001,9 @@
991
1001
  --tw-border-opacity: 1;
992
1002
  border-color: rgb(0 0 0 / var(--tw-border-opacity));
993
1003
  }
1004
+ .data-\[state\=active\]\:sb-bg-background[data-state=active] {
1005
+ background-color: hsl(var(--sb-background));
1006
+ }
994
1007
  .data-\[state\=checked\]\:sb-bg-primary[data-state=checked] {
995
1008
  background-color: hsl(var(--sb-primary));
996
1009
  }
@@ -1006,6 +1019,14 @@
1006
1019
  .data-\[state\=on\]\:sb-text-accent-foreground[data-state=on] {
1007
1020
  color: hsl(var(--sb-accent-foreground));
1008
1021
  }
1022
+ .data-\[state\=active\]\:sb-shadow-sm[data-state=active] {
1023
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1024
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1025
+ box-shadow:
1026
+ var(--tw-ring-offset-shadow, 0 0 #0000),
1027
+ var(--tw-ring-shadow, 0 0 #0000),
1028
+ var(--tw-shadow);
1029
+ }
1009
1030
  .data-\[state\=open\]\:sb-animate-in[data-state=open] {
1010
1031
  animation-name: enter;
1011
1032
  animation-duration: 150ms;
package/dist/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var chunkKOBGFPWB_js = require('./chunk-KOBGFPWB.js');
4
- var chunkJ36K7WVK_js = require('./chunk-J36K7WVK.js');
3
+ var chunk4NWAJBFM_js = require('./chunk-4NWAJBFM.js');
4
+ var chunkNVOLMEIV_js = require('./chunk-NVOLMEIV.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "BuilderContent", {
9
9
  enumerable: true,
10
- get: function () { return chunkKOBGFPWB_js.BuilderContent; }
10
+ get: function () { return chunk4NWAJBFM_js.BuilderContent; }
11
11
  });
12
12
  Object.defineProperty(exports, "StaticContent", {
13
13
  enumerable: true,
14
- get: function () { return chunkKOBGFPWB_js.StaticContent; }
14
+ get: function () { return chunk4NWAJBFM_js.StaticContent; }
15
15
  });
16
16
  Object.defineProperty(exports, "BuildContainer", {
17
17
  enumerable: true,
18
- get: function () { return chunkJ36K7WVK_js.BuildContainer; }
18
+ get: function () { return chunkNVOLMEIV_js.BuildContainer; }
19
19
  });
20
20
  Object.defineProperty(exports, "builder", {
21
21
  enumerable: true,
22
- get: function () { return chunkJ36K7WVK_js.builder; }
22
+ get: function () { return chunkNVOLMEIV_js.builder; }
23
23
  });
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { BuilderContent, StaticContent } from './chunk-NP2NHVJP.mjs';
2
- export { BuildContainer, builder } from './chunk-BSE6WW6Q.mjs';
1
+ export { BuilderContent, StaticContent } from './chunk-DOQHCW2T.mjs';
2
+ export { BuildContainer, builder } from './chunk-PIRC2EWS.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simple-builder/react",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "private": false,
5
5
  "description": "React package for the simple builder package.",
6
6
  "repository": "https://github.com/pieter-berkel/simple-builder.git",
@@ -35,7 +35,6 @@
35
35
  "@radix-ui/react-switch": "^1.0.3",
36
36
  "@radix-ui/react-tabs": "^1.0.4",
37
37
  "@radix-ui/react-toggle": "^1.0.3",
38
- "class-variance-authority": "^0.7.0",
39
38
  "clsx": "^2.1.0",
40
39
  "date-fns": "^3.2.0",
41
40
  "lucide-react": "^0.309.0",
@@ -43,8 +42,9 @@
43
42
  "react-hook-form": "^7.49.3",
44
43
  "server-only": "^0.0.1",
45
44
  "tailwind-merge": "^2.2.0",
45
+ "tailwind-variants": "^0.1.20",
46
46
  "zod": "^3.22.4",
47
- "@simple-builder/server": "1.0.4"
47
+ "@simple-builder/server": "1.0.6"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "react": ">=16.8.0",