meticulous-ui 3.8.3 → 3.8.4

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,11 +1,11 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),f=require("react"),x=require("styled-components"),G=require("prop-types"),b=require("../../colors/grey.cjs"),R=require("../../colors/green.cjs"),m=require("../../colors/white.cjs"),B=e=>e&&e.__esModule?e:{default:e},h=B(x),t=B(G),g=1.9,l=.28,i=g+l*2,K=.7,y=l+g,N=h.default.button`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const m=require("react/jsx-runtime"),i=require("react"),y=require("styled-components"),N=require("prop-types"),g=require("../../colors/grey.cjs"),B=require("../../colors/green.cjs"),b=require("../../colors/white.cjs"),E=e=>e&&e.__esModule?e:{default:e},h=E(y),t=E(N),p=1.9,d=.28,c=p+d*2,X=.7,k=d+p,Z=h.default.button`
2
2
  position: relative;
3
3
  isolation: isolate;
4
- height: ${i}rem;
4
+ height: ${c}rem;
5
5
  width: ${({$hasLabel:e})=>e?"max-content":"4.8rem"};
6
6
  min-width: 4.8rem;
7
7
  max-width: 20rem;
8
- border-radius: ${i/2}rem;
8
+ border-radius: ${c/2}rem;
9
9
  border: 0.094rem solid rgba(0, 0, 0, 0.08);
10
10
  display: flex;
11
11
  align-items: center;
@@ -14,8 +14,8 @@
14
14
  cursor: ${({$disabled:e})=>e?"not-allowed":"pointer"};
15
15
  outline: none;
16
16
 
17
- padding-left: ${({$checked:e,$hasLabel:r})=>r?e?`${l}rem`:`${y}rem`:"0"};
18
- padding-right: ${({$checked:e,$hasLabel:r})=>r?e?`${y}rem`:`${l}rem`:"0"};
17
+ padding-left: ${({$checked:e,$hasLabel:r})=>r?e?`${d}rem`:`${k}rem`:"0"};
18
+ padding-right: ${({$checked:e,$hasLabel:r})=>r?e?`${k}rem`:`${d}rem`:"0"};
19
19
 
20
20
  transition:
21
21
  background-color 0.3s ease,
@@ -23,13 +23,13 @@
23
23
  padding-left 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
24
24
  padding-right 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
25
25
 
26
- background-color: ${({$checked:e,$onColor:r,$offColor:a,$disabled:d})=>d?b.default.m300:e?r||R.default.m500:a||b.default.m400};
26
+ background-color: ${({$checked:e,$onColor:r,$offColor:s,$disabled:u})=>u?g.default.m300:e?r||B.default.m500:s||g.default.m400};
27
27
 
28
28
  &:focus-visible {
29
- outline: 0.188rem solid ${({$onColor:e})=>e?`${e}88`:`${R.default.m500}88`};
29
+ outline: 0.188rem solid ${({$onColor:e})=>e?`${e}88`:`${B.default.m500}88`};
30
30
  outline-offset: 0.125rem;
31
31
  }
32
- `,X=h.default.div`
32
+ `,C=h.default.div`
33
33
  position: absolute;
34
34
  top: 50%;
35
35
  transform: translateY(-50%);
@@ -40,9 +40,9 @@
40
40
  transition: all 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
41
41
  z-index: 10;
42
42
 
43
- ${({$isGlass:e,$checked:r})=>e?x.css`
44
- width: ${i*1.55}rem;
45
- height: ${i*1.9}rem;
43
+ ${({$isGlass:e,$checked:r})=>e?y.css`
44
+ width: ${c*1.55}rem;
45
+ height: ${c*1.9}rem;
46
46
  left: -0.75rem;
47
47
  transform: translateY(-50%) translateX(${r?"var(--glass-travel, 0rem)":"0"});
48
48
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
@@ -86,14 +86,14 @@
86
86
  &::after {
87
87
  display: none;
88
88
  }
89
- `:x.css`
90
- width: ${g}rem;
91
- height: ${g}rem;
92
- left: ${r?`calc(100% - ${y}rem)`:`${l}rem`};
93
- background: ${m.default};
89
+ `:y.css`
90
+ width: ${p}rem;
91
+ height: ${p}rem;
92
+ left: ${r?`calc(100% - ${k}rem)`:`${d}rem`};
93
+ background: ${b.default};
94
94
  box-shadow: 0 0.125rem 0.375rem rgba(0, 0, 0, 0.25);
95
95
  `}
96
- `,Z=h.default.span`
96
+ `,J=h.default.span`
97
97
  position: relative;
98
98
  z-index: 2;
99
99
  font-size: 0.9rem;
@@ -105,9 +105,9 @@
105
105
  text-overflow: ellipsis;
106
106
  user-select: none;
107
107
  pointer-events: none;
108
- padding: ${({$isGlass:e,$checked:r})=>e?r?"0 1.6rem 0 0.6rem":"0 0.6rem 0 1.6rem":`0 ${K}rem`};
108
+ padding: ${({$isGlass:e,$checked:r})=>e?r?"0 1.6rem 0 0.6rem":"0 0.6rem 0 1.6rem":`0 ${X}rem`};
109
109
  color: rgba(255, 255, 255, 0.95);
110
- `,J=h.default.span`
110
+ `,Q=h.default.span`
111
111
  display: flex;
112
112
  align-items: center;
113
113
  justify-content: center;
@@ -116,9 +116,9 @@
116
116
  stroke-width: 2.5;
117
117
  }
118
118
 
119
- filter: drop-shadow(0 0 0.25rem ${({$color:e})=>e||m.default})
120
- drop-shadow(0 0 0.625rem ${({$color:e})=>e||m.default})
121
- drop-shadow(0 0 1.25rem ${({$color:e})=>e||m.default})
122
- drop-shadow(0 0 2.5rem ${({$color:e})=>e?`${e}99`:`${b.default.m100}99`})
123
- drop-shadow(0 0 3.75rem ${({$color:e})=>e?`${e}4D`:`${b.default.m200}4D`});
124
- `,C=({checked:e,defaultChecked:r=!1,onChange:a,onIcon:d,offIcon:k,onColor:_,offColor:T,onLabel:z,offLabel:j,label:I,id:P,disabled:p=!1,isGlass:o,...$})=>{const[A,E]=f.useState(r),q=e!==void 0,n=q?e:A,w=f.useRef(null),[D,H]=f.useState(null);f.useEffect(()=>{if(!o||!w.current)return;const c=w.current,s=()=>{const U=parseFloat(getComputedStyle(document.documentElement).fontSize),Y=c.getBoundingClientRect().width/U-(i*1.2+.1-.75);H(`${Y.toFixed(4)}rem`)};s();const M=new ResizeObserver(s);return M.observe(c),()=>M.disconnect()},[o]);const F=c=>{if(c.preventDefault(),p)return;const s=!n;q||E(s),a==null||a(s)},O=d!=null||k!=null,S=z!=null||j!=null,L=n?d:k,v=n?z:j;return u.jsxs(N,{...$,ref:w,id:P,type:"button",role:"switch","aria-checked":n,"aria-label":I||v||void 0,"aria-disabled":p||void 0,onClick:F,$checked:n,$disabled:p,$onColor:_,$offColor:T,$hasLabel:S,style:D!=null?{...$.style,"--glass-travel":D}:$.style,children:[u.jsx(X,{"aria-hidden":"true",$checked:n,$isGlass:o,children:o?u.jsx(J,{$color:n?_:T,children:L}):O&&L}),S&&v&&u.jsx(Z,{$isGlass:o,$checked:n,"aria-live":"polite","aria-atomic":"true",children:v})]})};C.propTypes={checked:t.default.bool,defaultChecked:t.default.bool,onChange:t.default.func,onIcon:t.default.node,offIcon:t.default.node,onColor:t.default.string,offColor:t.default.string,onLabel:t.default.string,offLabel:t.default.string,label:t.default.string,id:t.default.string,disabled:t.default.bool,isGlass:t.default.bool};exports.default=C;
119
+ filter: drop-shadow(0 0 0.25rem ${({$color:e})=>e||b.default})
120
+ drop-shadow(0 0 0.625rem ${({$color:e})=>e||b.default})
121
+ drop-shadow(0 0 1.25rem ${({$color:e})=>e||b.default})
122
+ drop-shadow(0 0 2.5rem ${({$color:e})=>e?`${e}99`:`${g.default.m100}99`})
123
+ drop-shadow(0 0 3.75rem ${({$color:e})=>e?`${e}4D`:`${g.default.m200}4D`});
124
+ `,H=({checked:e,defaultChecked:r=!1,onChange:s,onIcon:u,offIcon:_,onColor:T,offColor:D,onLabel:z,offLabel:j,label:I,id:P,disabled:f=!1,isGlass:l,...$})=>{const[A,q]=i.useState(r),w=e!==void 0,o=w?e:A,v=i.useRef(null);i.useRef(0);const[R,F]=i.useState(null);i.useEffect(()=>{if(!l||!v.current)return;const n=v.current,a=()=>{const Y=parseFloat(getComputedStyle(document.documentElement).fontSize),G=n.getBoundingClientRect().width/Y-(c*1.2+.1-.75);F(`${G.toFixed(4)}rem`)};a();const M=new ResizeObserver(a);return M.observe(n),()=>M.disconnect()},[l]);const O=n=>{if(n.preventDefault(),f)return;const a=!o;w||q(a),s==null||s(a)},U=n=>{if(n.key==="Enter"||n.key===" "){if(n.repeat){n.preventDefault();return}if(n.preventDefault(),!f){const a=!o;w||q(a),s==null||s(a)}}},K=u!=null||_!=null,S=z!=null||j!=null,L=o?u:_,x=o?z:j;return m.jsxs(Z,{...$,ref:v,id:P,type:"button",role:"switch","aria-checked":o,"aria-label":I||x||void 0,"aria-disabled":f||void 0,onClick:O,onKeyDown:U,$checked:o,$disabled:f,$onColor:T,$offColor:D,$hasLabel:S,style:R!=null?{...$.style,"--glass-travel":R}:$.style,children:[m.jsx(C,{"aria-hidden":"true",$checked:o,$isGlass:l,children:l?m.jsx(Q,{$color:o?T:D,children:L}):K&&L}),S&&x&&m.jsx(J,{$isGlass:l,$checked:o,"aria-live":"polite","aria-atomic":"true",children:x})]})};H.propTypes={checked:t.default.bool,defaultChecked:t.default.bool,onChange:t.default.func,onIcon:t.default.node,offIcon:t.default.node,onColor:t.default.string,offColor:t.default.string,onLabel:t.default.string,offLabel:t.default.string,label:t.default.string,id:t.default.string,disabled:t.default.bool,isGlass:t.default.bool};exports.default=H;
@@ -1,18 +1,18 @@
1
- import { jsxs as Y, jsx as w } from "react/jsx-runtime";
2
- import { useState as R, useRef as G, useEffect as K } from "react";
3
- import g, { css as _ } from "styled-components";
1
+ import { jsxs as N, jsx as v } from "react/jsx-runtime";
2
+ import { useState as R, useRef as _, useEffect as X } from "react";
3
+ import p, { css as j } from "styled-components";
4
4
  import r from "prop-types";
5
5
  import b from "../../colors/grey.js";
6
- import j from "../../colors/green.js";
7
- import m from "../../colors/white.js";
8
- const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
6
+ import A from "../../colors/green.js";
7
+ import u from "../../colors/white.js";
8
+ const f = 1.9, l = 0.28, c = f + l * 2, Z = 0.7, k = l + f, q = p.button`
9
9
  position: relative;
10
10
  isolation: isolate;
11
- height: ${l}rem;
11
+ height: ${c}rem;
12
12
  width: ${({ $hasLabel: e }) => e ? "max-content" : "4.8rem"};
13
13
  min-width: 4.8rem;
14
14
  max-width: 20rem;
15
- border-radius: ${l / 2}rem;
15
+ border-radius: ${c / 2}rem;
16
16
  border: 0.094rem solid rgba(0, 0, 0, 0.08);
17
17
  display: flex;
18
18
  align-items: center;
@@ -21,8 +21,8 @@ const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
21
21
  cursor: ${({ $disabled: e }) => e ? "not-allowed" : "pointer"};
22
22
  outline: none;
23
23
 
24
- padding-left: ${({ $checked: e, $hasLabel: t }) => t ? e ? `${a}rem` : `${v}rem` : "0"};
25
- padding-right: ${({ $checked: e, $hasLabel: t }) => t ? e ? `${v}rem` : `${a}rem` : "0"};
24
+ padding-left: ${({ $checked: e, $hasLabel: t }) => t ? e ? `${l}rem` : `${k}rem` : "0"};
25
+ padding-right: ${({ $checked: e, $hasLabel: t }) => t ? e ? `${k}rem` : `${l}rem` : "0"};
26
26
 
27
27
  transition:
28
28
  background-color 0.3s ease,
@@ -30,13 +30,13 @@ const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
30
30
  padding-left 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
31
31
  padding-right 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
32
32
 
33
- background-color: ${({ $checked: e, $onColor: t, $offColor: n, $disabled: c }) => c ? b.m300 : e ? t || j.m500 : n || b.m400};
33
+ background-color: ${({ $checked: e, $onColor: t, $offColor: i, $disabled: d }) => d ? b.m300 : e ? t || A.m500 : i || b.m400};
34
34
 
35
35
  &:focus-visible {
36
- outline: 0.188rem solid ${({ $onColor: e }) => e ? `${e}88` : `${j.m500}88`};
36
+ outline: 0.188rem solid ${({ $onColor: e }) => e ? `${e}88` : `${A.m500}88`};
37
37
  outline-offset: 0.125rem;
38
38
  }
39
- `, Z = g.div`
39
+ `, C = p.div`
40
40
  position: absolute;
41
41
  top: 50%;
42
42
  transform: translateY(-50%);
@@ -47,9 +47,9 @@ const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
47
47
  transition: all 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
48
48
  z-index: 10;
49
49
 
50
- ${({ $isGlass: e, $checked: t }) => e ? _`
51
- width: ${l * 1.55}rem;
52
- height: ${l * 1.9}rem;
50
+ ${({ $isGlass: e, $checked: t }) => e ? j`
51
+ width: ${c * 1.55}rem;
52
+ height: ${c * 1.9}rem;
53
53
  left: -0.75rem;
54
54
  transform: translateY(-50%) translateX(${t ? "var(--glass-travel, 0rem)" : "0"});
55
55
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
@@ -93,14 +93,14 @@ const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
93
93
  &::after {
94
94
  display: none;
95
95
  }
96
- ` : _`
97
- width: ${u}rem;
98
- height: ${u}rem;
99
- left: ${t ? `calc(100% - ${v}rem)` : `${a}rem`};
100
- background: ${m};
96
+ ` : j`
97
+ width: ${f}rem;
98
+ height: ${f}rem;
99
+ left: ${t ? `calc(100% - ${k}rem)` : `${l}rem`};
100
+ background: ${u};
101
101
  box-shadow: 0 0.125rem 0.375rem rgba(0, 0, 0, 0.25);
102
102
  `}
103
- `, q = g.span`
103
+ `, J = p.span`
104
104
  position: relative;
105
105
  z-index: 2;
106
106
  font-size: 0.9rem;
@@ -112,9 +112,9 @@ const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
112
112
  text-overflow: ellipsis;
113
113
  user-select: none;
114
114
  pointer-events: none;
115
- padding: ${({ $isGlass: e, $checked: t }) => e ? t ? "0 1.6rem 0 0.6rem" : "0 0.6rem 0 1.6rem" : `0 ${N}rem`};
115
+ padding: ${({ $isGlass: e, $checked: t }) => e ? t ? "0 1.6rem 0 0.6rem" : "0 0.6rem 0 1.6rem" : `0 ${Z}rem`};
116
116
  color: rgba(255, 255, 255, 0.95);
117
- `, J = g.span`
117
+ `, Q = p.span`
118
118
  display: flex;
119
119
  align-items: center;
120
120
  justify-content: center;
@@ -123,69 +123,83 @@ const u = 1.9, a = 0.28, l = u + a * 2, N = 0.7, v = a + u, X = g.button`
123
123
  stroke-width: 2.5;
124
124
  }
125
125
 
126
- filter: drop-shadow(0 0 0.25rem ${({ $color: e }) => e || m})
127
- drop-shadow(0 0 0.625rem ${({ $color: e }) => e || m})
128
- drop-shadow(0 0 1.25rem ${({ $color: e }) => e || m})
126
+ filter: drop-shadow(0 0 0.25rem ${({ $color: e }) => e || u})
127
+ drop-shadow(0 0 0.625rem ${({ $color: e }) => e || u})
128
+ drop-shadow(0 0 1.25rem ${({ $color: e }) => e || u})
129
129
  drop-shadow(0 0 2.5rem ${({ $color: e }) => e ? `${e}99` : `${b.m100}99`})
130
130
  drop-shadow(0 0 3.75rem ${({ $color: e }) => e ? `${e}4D` : `${b.m200}4D`});
131
- `, Q = ({
131
+ `, V = ({
132
132
  checked: e,
133
133
  defaultChecked: t = !1,
134
- onChange: n,
135
- onIcon: c,
134
+ onChange: i,
135
+ onIcon: d,
136
136
  offIcon: x,
137
- onColor: k,
138
- offColor: y,
139
- onLabel: T,
140
- offLabel: z,
141
- label: A,
142
- id: E,
143
- disabled: f = !1,
144
- isGlass: s,
145
- ...p
137
+ onColor: y,
138
+ offColor: T,
139
+ onLabel: z,
140
+ offLabel: D,
141
+ label: S,
142
+ id: F,
143
+ disabled: m = !1,
144
+ isGlass: a,
145
+ ...g
146
146
  }) => {
147
- const [H, S] = R(t), D = e !== void 0, o = D ? e : H, h = G(null), [L, F] = R(null);
148
- K(() => {
149
- if (!s || !h.current) return;
150
- const d = h.current, i = () => {
151
- const U = parseFloat(getComputedStyle(document.documentElement).fontSize), O = d.getBoundingClientRect().width / U - (l * 1.2 + 0.1 - 0.75);
152
- F(`${O.toFixed(4)}rem`);
147
+ const [M, L] = R(t), h = e !== void 0, n = h ? e : M, $ = _(null);
148
+ _(0);
149
+ const [B, P] = R(null);
150
+ X(() => {
151
+ if (!a || !$.current) return;
152
+ const o = $.current, s = () => {
153
+ const Y = parseFloat(getComputedStyle(document.documentElement).fontSize), G = o.getBoundingClientRect().width / Y - (c * 1.2 + 0.1 - 0.75);
154
+ P(`${G.toFixed(4)}rem`);
153
155
  };
154
- i();
155
- const I = new ResizeObserver(i);
156
- return I.observe(d), () => I.disconnect();
157
- }, [s]);
158
- const M = (d) => {
159
- if (d.preventDefault(), f) return;
160
- const i = !o;
161
- D || S(i), n == null || n(i);
162
- }, P = c != null || x != null, B = T != null || z != null, C = o ? c : x, $ = o ? T : z;
163
- return /* @__PURE__ */ Y(
164
- X,
156
+ s();
157
+ const I = new ResizeObserver(s);
158
+ return I.observe(o), () => I.disconnect();
159
+ }, [a]);
160
+ const U = (o) => {
161
+ if (o.preventDefault(), m) return;
162
+ const s = !n;
163
+ h || L(s), i == null || i(s);
164
+ }, K = (o) => {
165
+ if (o.key === "Enter" || o.key === " ") {
166
+ if (o.repeat) {
167
+ o.preventDefault();
168
+ return;
169
+ }
170
+ if (o.preventDefault(), !m) {
171
+ const s = !n;
172
+ h || L(s), i == null || i(s);
173
+ }
174
+ }
175
+ }, O = d != null || x != null, E = z != null || D != null, H = n ? d : x, w = n ? z : D;
176
+ return /* @__PURE__ */ N(
177
+ q,
165
178
  {
166
- ...p,
167
- ref: h,
168
- id: E,
179
+ ...g,
180
+ ref: $,
181
+ id: F,
169
182
  type: "button",
170
183
  role: "switch",
171
- "aria-checked": o,
172
- "aria-label": A || $ || void 0,
173
- "aria-disabled": f || void 0,
174
- onClick: M,
175
- $checked: o,
176
- $disabled: f,
177
- $onColor: k,
178
- $offColor: y,
179
- $hasLabel: B,
180
- style: L != null ? { ...p.style, "--glass-travel": L } : p.style,
184
+ "aria-checked": n,
185
+ "aria-label": S || w || void 0,
186
+ "aria-disabled": m || void 0,
187
+ onClick: U,
188
+ onKeyDown: K,
189
+ $checked: n,
190
+ $disabled: m,
191
+ $onColor: y,
192
+ $offColor: T,
193
+ $hasLabel: E,
194
+ style: B != null ? { ...g.style, "--glass-travel": B } : g.style,
181
195
  children: [
182
- /* @__PURE__ */ w(Z, { "aria-hidden": "true", $checked: o, $isGlass: s, children: s ? /* @__PURE__ */ w(J, { $color: o ? k : y, children: C }) : P && C }),
183
- B && $ && /* @__PURE__ */ w(q, { $isGlass: s, $checked: o, "aria-live": "polite", "aria-atomic": "true", children: $ })
196
+ /* @__PURE__ */ v(C, { "aria-hidden": "true", $checked: n, $isGlass: a, children: a ? /* @__PURE__ */ v(Q, { $color: n ? y : T, children: H }) : O && H }),
197
+ E && w && /* @__PURE__ */ v(J, { $isGlass: a, $checked: n, "aria-live": "polite", "aria-atomic": "true", children: w })
184
198
  ]
185
199
  }
186
200
  );
187
201
  };
188
- Q.propTypes = {
202
+ V.propTypes = {
189
203
  checked: r.bool,
190
204
  defaultChecked: r.bool,
191
205
  onChange: r.func,
@@ -201,5 +215,5 @@ Q.propTypes = {
201
215
  isGlass: r.bool
202
216
  };
203
217
  export {
204
- Q as default
218
+ V as default
205
219
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meticulous-ui",
3
- "version": "3.8.3",
3
+ "version": "3.8.4",
4
4
  "license": "ISC",
5
5
  "description": "A comprehensive React UI component library with a wide range of customizable components, icons, colors, and utilities for building modern web applications.",
6
6
  "types": "./index.d.ts",