@brosco/ui 0.0.50 → 0.0.52

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.
@@ -4,4 +4,5 @@ import type { VariantProps } from "tailwind-variants";
4
4
  import { variants } from "./variants.ts";
5
5
  export type ButtonProps = BaseButtonProps & VariantProps<typeof variants> & {
6
6
  icon?: ReactNode;
7
+ isPending?: boolean;
7
8
  };
@@ -29,9 +29,6 @@ export declare const variants: import("tailwind-variants").TVReturnType<{
29
29
  fullWidth: {
30
30
  true: "w-full";
31
31
  };
32
- isPending: {
33
- true: "status-pending";
34
- };
35
32
  }, undefined, "button", {
36
33
  variant: {
37
34
  solid: "button--solid";
@@ -63,9 +60,6 @@ export declare const variants: import("tailwind-variants").TVReturnType<{
63
60
  fullWidth: {
64
61
  true: "w-full";
65
62
  };
66
- isPending: {
67
- true: "status-pending";
68
- };
69
63
  }, undefined, import("tailwind-variants").TVReturnTypeLike<{
70
64
  variant: {
71
65
  solid: "button--solid";
@@ -97,7 +91,4 @@ export declare const variants: import("tailwind-variants").TVReturnType<{
97
91
  fullWidth: {
98
92
  true: "w-full";
99
93
  };
100
- isPending: {
101
- true: "status-pending";
102
- };
103
94
  }, undefined>>;
package/dist/index.css CHANGED
@@ -1,2 +1,201 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid}}}@layer components{.button{--color:transparent;--bg:transparent;--bg-hover:var(--bg);--bg-active:var(--bg-hover);--fg:currentColor}.button--primary{--color:var(--primary)}.button--secondary{--color:var(--secondary)}.button--success{--color:var(--success)}.button--danger{--color:var(--danger)}.button--solid{--bg:var(--color);--bg-hover:var(--bg)}@supports (color:color-mix(in lab, red, red)){.button--solid{--bg-hover:color-mix(in oklab, var(--bg) 90%, var(--eclipse) 10%)}}.button--solid{--bg-active:var(--bg)}@supports (color:color-mix(in lab, red, red)){.button--solid{--bg-active:color-mix(in oklab, var(--bg) 80%, var(--eclipse) 20%)}}.button--solid{--fg:var(--color-white)}.button--solid.button--secondary{--bg:var(--color)}@supports (color:color-mix(in lab, red, red)){.button--solid.button--secondary{--bg:color-mix(in oklab, var(--color) 5%, transparent)}}.button--solid.button--secondary{--bg-hover:var(--bg)}@supports (color:color-mix(in lab, red, red)){.button--solid.button--secondary{--bg-hover:color-mix(in oklab, var(--bg) 95%, var(--eclipse) 5%)}}.button--solid.button--secondary{--bg-active:var(--bg)}@supports (color:color-mix(in lab, red, red)){.button--solid.button--secondary{--bg-active:color-mix(in oklab, var(--bg) 90%, var(--eclipse) 10%)}}.button--solid.button--secondary{--fg:var(--color)}.button--bordered,.button--light{--fg:var(--color);--bg-hover:var(--fg)}@supports (color:color-mix(in lab, red, red)){.button--bordered,.button--light{--bg-hover:color-mix(in oklab, var(--fg) 5%, transparent)}}.button{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);white-space:nowrap;color:var(--fg);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));-webkit-user-select:none;user-select:none;display:inline-flex}.button:focus-visible{--tw-outline-style:none;outline-style:none}.button:enabled{cursor:pointer}.button:disabled{pointer-events:none;opacity:.5}.button:hover{background-color:var(--bg-hover)}.button:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y);background-color:var(--bg-active)}.button--solid{background-color:var(--bg)}.button--solid:focus-visible:not([data-pending]){--tw-ring-color:var(--color);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.button--bordered{border-style:var(--tw-border-style);border-width:2px;border-color:var(--fg)}.button--bordered:focus-visible:not([data-pending]){--tw-ring-color:currentcolor;--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.button--light{text-underline-offset:6px;text-decoration-line:underline;position:relative}@media (hover:hover){.button--light:hover{text-decoration-line:none}}.button--light:focus-visible:not([data-pending]):after{top:calc(var(--spacing,.25rem) * 2);right:calc(var(--spacing,.25rem) * 3);left:calc(var(--spacing,.25rem) * 3);height:calc(var(--spacing,.25rem) * .5);content:"";background-color:currentColor;position:absolute}.spinner{animation:var(--animate-spin,spin 1s linear infinite)}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @layer theme {
3
+ :root {
4
+ --eclipse: var(--color-zinc-900);
5
+ --background: var(--color-white);
6
+ --foreground: var(--eclipse);
7
+ --muted: var(--color-zinc-500);
8
+ --primary: var(--color-blue-500);
9
+ --secondary: var(--eclipse);
10
+ --success: var(--color-green-600);
11
+ --danger: var(--color-red-500);
12
+ }
13
+ }
14
+ @layer components {
15
+ .button {
16
+ --color: transparent;
17
+ --bg: transparent;
18
+ --bg-hover: var(--bg);
19
+ --bg-active: var(--bg-hover);
20
+ --fg: currentColor;
21
+ }
22
+ .button--primary {
23
+ --color: var(--primary);
24
+ }
25
+ .button--secondary {
26
+ --color: var(--secondary);
27
+ }
28
+ .button--success {
29
+ --color: var(--success);
30
+ }
31
+ .button--danger {
32
+ --color: var(--danger);
33
+ }
34
+ .button--solid {
35
+ --bg: var(--color);
36
+ --bg-hover: var(--bg);
37
+ }
38
+ @supports (color: color-mix(in lab, red, red)) {
39
+ .button--solid {
40
+ --bg-hover: color-mix(in oklab, var(--bg) 90%, var(--eclipse) 10%);
41
+ }
42
+ }
43
+ .button--solid {
44
+ --bg-active: var(--bg);
45
+ }
46
+ @supports (color: color-mix(in lab, red, red)) {
47
+ .button--solid {
48
+ --bg-active: color-mix(in oklab, var(--bg) 80%, var(--eclipse) 20%);
49
+ }
50
+ }
51
+ .button--solid {
52
+ --fg: var(--color-white);
53
+ }
54
+ .button--solid.button--secondary {
55
+ --bg: var(--color);
56
+ }
57
+ @supports (color: color-mix(in lab, red, red)) {
58
+ .button--solid.button--secondary {
59
+ --bg: color-mix(in oklab, var(--color) 5%, transparent);
60
+ }
61
+ }
62
+ .button--solid.button--secondary {
63
+ --bg-hover: var(--bg);
64
+ }
65
+ @supports (color: color-mix(in lab, red, red)) {
66
+ .button--solid.button--secondary {
67
+ --bg-hover: color-mix(in oklab, var(--bg) 95%, var(--eclipse) 5%);
68
+ }
69
+ }
70
+ .button--solid.button--secondary {
71
+ --bg-active: var(--bg);
72
+ }
73
+ @supports (color: color-mix(in lab, red, red)) {
74
+ .button--solid.button--secondary {
75
+ --bg-active: color-mix(in oklab, var(--bg) 90%, var(--eclipse) 10%);
76
+ }
77
+ }
78
+ .button--solid.button--secondary {
79
+ --fg: var(--color);
80
+ }
81
+ .button--bordered,
82
+ .button--light {
83
+ --fg: var(--color);
84
+ --bg-hover: var(--fg);
85
+ }
86
+ @supports (color: color-mix(in lab, red, red)) {
87
+ .button--bordered,
88
+ .button--light {
89
+ --bg-hover: color-mix(in oklab, var(--fg) 5%, transparent);
90
+ }
91
+ }
92
+ .button {
93
+ justify-content: center;
94
+ align-items: center;
95
+ gap: calc(var(--spacing, 0.25rem) * 2);
96
+ --tw-font-weight: var(--font-weight-medium, 500);
97
+ font-weight: var(--font-weight-medium, 500);
98
+ white-space: nowrap;
99
+ color: var(--fg);
100
+ transition-property:
101
+ color,
102
+ background-color,
103
+ border-color,
104
+ outline-color,
105
+ text-decoration-color,
106
+ fill,
107
+ stroke,
108
+ --tw-gradient-from,
109
+ --tw-gradient-via,
110
+ --tw-gradient-to,
111
+ opacity,
112
+ box-shadow,
113
+ transform,
114
+ translate,
115
+ scale,
116
+ rotate,
117
+ filter,
118
+ -webkit-backdrop-filter,
119
+ backdrop-filter,
120
+ display,
121
+ content-visibility,
122
+ overlay,
123
+ pointer-events;
124
+ transition-timing-function: var(
125
+ --tw-ease,
126
+ var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1))
127
+ );
128
+ transition-duration: var(
129
+ --tw-duration,
130
+ var(--default-transition-duration, 0.15s)
131
+ );
132
+ -webkit-user-select: none;
133
+ user-select: none;
134
+ display: inline-flex;
135
+ }
136
+ .button:focus-visible {
137
+ --tw-outline-style: none;
138
+ outline-style: none;
139
+ }
140
+ .button:enabled {
141
+ cursor: pointer;
142
+ }
143
+ .button:disabled {
144
+ pointer-events: none;
145
+ opacity: 0.5;
146
+ }
147
+ .button:hover {
148
+ background-color: var(--bg-hover);
149
+ }
150
+ .button:active {
151
+ --tw-scale-x: 95%;
152
+ --tw-scale-y: 95%;
153
+ --tw-scale-z: 95%;
154
+ scale: var(--tw-scale-x) var(--tw-scale-y);
155
+ background-color: var(--bg-active);
156
+ }
157
+ .button[data-pending="true"] {
158
+ pointer-events: none;
159
+ }
160
+ .button--solid {
161
+ background-color: var(--bg);
162
+ }
163
+ .button--bordered {
164
+ border-style: var(--tw-border-style);
165
+ border-width: 2px;
166
+ border-color: var(--fg);
167
+ }
168
+ .button--bordered:focus-visible:not([data-pending]) {
169
+ --tw-ring-color: currentcolor;
170
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0
171
+ calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
172
+ box-shadow:
173
+ var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
174
+ var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
175
+ --tw-ring-offset-width: 2px;
176
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0
177
+ var(--tw-ring-offset-width) var(--tw-ring-offset-color);
178
+ }
179
+ .button--light {
180
+ text-underline-offset: 6px;
181
+ text-decoration-line: underline;
182
+ position: relative;
183
+ }
184
+ @media (hover: hover) {
185
+ .button--light:hover {
186
+ text-decoration-line: none;
187
+ }
188
+ }
189
+ .button--light:focus-visible:not([data-pending]):after {
190
+ top: calc(var(--spacing, 0.25rem) * 2);
191
+ right: calc(var(--spacing, 0.25rem) * 3);
192
+ left: calc(var(--spacing, 0.25rem) * 3);
193
+ height: calc(var(--spacing, 0.25rem) * 0.5);
194
+ content: "";
195
+ background-color: currentColor;
196
+ position: absolute;
197
+ }
198
+ .spinner {
199
+ animation: var(--animate-spin, spin 1s linear infinite);
200
+ }
201
+ }
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{Button as e}from"@base-ui/react";import{cn as t}from"cn";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{tv as i}from"tailwind-variants";import './index.css';var a=({className:e,size:r=24})=>n(`svg`,{stroke:`currentColor`,fill:`currentColor`,strokeWidth:`0`,version:`1.1`,viewBox:`0 0 16 16`,height:r,width:r,xmlns:`http://www.w3.org/2000/svg`,className:t(`spinner`,e),children:n(`path`,{d:`M16 8c-0.020-1.045-0.247-2.086-0.665-3.038-0.417-0.953-1.023-1.817-1.766-2.53s-1.624-1.278-2.578-1.651c-0.953-0.374-1.978-0.552-2.991-0.531-1.013 0.020-2.021 0.24-2.943 0.646-0.923 0.405-1.758 0.992-2.449 1.712s-1.237 1.574-1.597 2.497c-0.361 0.923-0.533 1.914-0.512 2.895 0.020 0.981 0.234 1.955 0.627 2.847 0.392 0.892 0.961 1.7 1.658 2.368s1.523 1.195 2.416 1.543c0.892 0.348 1.851 0.514 2.799 0.493 0.949-0.020 1.89-0.227 2.751-0.608 0.862-0.379 1.642-0.929 2.287-1.604s1.154-1.472 1.488-2.335c0.204-0.523 0.342-1.069 0.415-1.622 0.019 0.001 0.039 0.002 0.059 0.002 0.552 0 1-0.448 1-1 0-0.028-0.001-0.056-0.004-0.083h0.004zM14.411 10.655c-0.367 0.831-0.898 1.584-1.55 2.206s-1.422 1.112-2.254 1.434c-0.832 0.323-1.723 0.476-2.608 0.454-0.884-0.020-1.759-0.215-2.56-0.57-0.801-0.354-1.526-0.867-2.125-1.495s-1.071-1.371-1.38-2.173c-0.31-0.801-0.457-1.66-0.435-2.512s0.208-1.694 0.551-2.464c0.342-0.77 0.836-1.468 1.441-2.044s1.321-1.029 2.092-1.326c0.771-0.298 1.596-0.438 2.416-0.416s1.629 0.202 2.368 0.532c0.74 0.329 1.41 0.805 1.963 1.387s0.988 1.27 1.272 2.011c0.285 0.74 0.418 1.532 0.397 2.32h0.004c-0.002 0.027-0.004 0.055-0.004 0.083 0 0.516 0.39 0.94 0.892 0.994-0.097 0.544-0.258 1.075-0.481 1.578z`})}),o=i({base:`button`,variants:{variant:{solid:`button--solid`,bordered:`button--bordered`,light:`button--light`},color:{primary:`button--primary`,secondary:`button--secondary`,success:`button--success`,danger:`button--danger`},rounded:{full:`rounded-full`,lg:`rounded-lg`,md:`rounded-md`,sm:`rounded-sm`,none:`rounded-none`},size:{sm:`h-9 text-sm`,md:`h-10 text-sm`,lg:`h-11 text-base`},isIconOnly:{true:`shrink-0`,false:`px-4`},fullWidth:{true:`w-full`},isPending:{true:`status-pending`}},defaultVariants:{variant:`solid`,color:`primary`,rounded:`lg`,size:`md`},compoundVariants:[{isIconOnly:!0,size:`sm`,class:`w-9`},{isIconOnly:!0,size:`md`,class:`w-10`},{isIconOnly:!0,size:`lg`,class:`w-11`}]}),s=({children:i,icon:s,className:c,variant:l,color:u,rounded:d,size:f,isIconOnly:p,fullWidth:m,isPending:h,...g})=>{let _=t(o({variant:l,color:u,rounded:d,size:f,isIconOnly:p,fullWidth:m,isPending:h}),c);return r(e,{className:_,...g,children:[h?n(a,{}):s,!p&&n(`span`,{children:i})]})};export{s as Button,a as Spinner};
1
+ import{Button as e}from"@base-ui/react";import{cn as t}from"cn";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{tv as i}from"tailwind-variants";import './index.css';var a=({className:e,size:r=24})=>n(`svg`,{stroke:`currentColor`,fill:`currentColor`,strokeWidth:`0`,version:`1.1`,viewBox:`0 0 16 16`,height:r,width:r,xmlns:`http://www.w3.org/2000/svg`,className:t(`spinner`,e),children:n(`path`,{d:`M16 8c-0.020-1.045-0.247-2.086-0.665-3.038-0.417-0.953-1.023-1.817-1.766-2.53s-1.624-1.278-2.578-1.651c-0.953-0.374-1.978-0.552-2.991-0.531-1.013 0.020-2.021 0.24-2.943 0.646-0.923 0.405-1.758 0.992-2.449 1.712s-1.237 1.574-1.597 2.497c-0.361 0.923-0.533 1.914-0.512 2.895 0.020 0.981 0.234 1.955 0.627 2.847 0.392 0.892 0.961 1.7 1.658 2.368s1.523 1.195 2.416 1.543c0.892 0.348 1.851 0.514 2.799 0.493 0.949-0.020 1.89-0.227 2.751-0.608 0.862-0.379 1.642-0.929 2.287-1.604s1.154-1.472 1.488-2.335c0.204-0.523 0.342-1.069 0.415-1.622 0.019 0.001 0.039 0.002 0.059 0.002 0.552 0 1-0.448 1-1 0-0.028-0.001-0.056-0.004-0.083h0.004zM14.411 10.655c-0.367 0.831-0.898 1.584-1.55 2.206s-1.422 1.112-2.254 1.434c-0.832 0.323-1.723 0.476-2.608 0.454-0.884-0.020-1.759-0.215-2.56-0.57-0.801-0.354-1.526-0.867-2.125-1.495s-1.071-1.371-1.38-2.173c-0.31-0.801-0.457-1.66-0.435-2.512s0.208-1.694 0.551-2.464c0.342-0.77 0.836-1.468 1.441-2.044s1.321-1.029 2.092-1.326c0.771-0.298 1.596-0.438 2.416-0.416s1.629 0.202 2.368 0.532c0.74 0.329 1.41 0.805 1.963 1.387s0.988 1.27 1.272 2.011c0.285 0.74 0.418 1.532 0.397 2.32h0.004c-0.002 0.027-0.004 0.055-0.004 0.083 0 0.516 0.39 0.94 0.892 0.994-0.097 0.544-0.258 1.075-0.481 1.578z`})}),o=i({base:`button`,variants:{variant:{solid:`button--solid`,bordered:`button--bordered`,light:`button--light`},color:{primary:`button--primary`,secondary:`button--secondary`,success:`button--success`,danger:`button--danger`},rounded:{full:`rounded-full`,lg:`rounded-lg`,md:`rounded-md`,sm:`rounded-sm`,none:`rounded-none`},size:{sm:`h-9 text-sm`,md:`h-10 text-sm`,lg:`h-11 text-base`},isIconOnly:{true:`shrink-0`,false:`px-4`},fullWidth:{true:`w-full`}},defaultVariants:{variant:`solid`,color:`primary`,rounded:`lg`,size:`md`},compoundVariants:[{isIconOnly:!0,size:`sm`,class:`w-9`},{isIconOnly:!0,size:`md`,class:`w-10`},{isIconOnly:!0,size:`lg`,class:`w-11`}]}),s=({children:i,icon:s,className:c,variant:l,color:u,rounded:d,size:f,isIconOnly:p,fullWidth:m,isPending:h,...g})=>{let _=t(o({variant:l,color:u,rounded:d,size:f,isIconOnly:p,fullWidth:m}),c);return r(e,{className:_,"data-pending":h,...g,children:[h?n(a,{}):s,!p&&n(`span`,{children:i})]})};export{s as Button,a as Spinner};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brosco/ui",
3
- "version": "0.0.50",
3
+ "version": "0.0.52",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"