@validationcloud/fractal-ui 1.20.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,8 +8,8 @@ import { default as React } from 'react';
8
8
  */
9
9
  export declare const Button: React.ForwardRefExoticComponent<{
10
10
  className?: string;
11
- variant?: "primary" | "warning" | "info" | "gradient" | "secondary" | "ghost" | "text" | "light";
12
- size?: "large" | "medium" | "small" | "xsmall";
11
+ variant?: "primary" | "warning" | "info" | "gradient" | "secondary" | "ghost" | "text" | "light" | "redText";
12
+ size?: "xlarge" | "large" | "medium" | "small" | "xsmall";
13
13
  } & Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
14
14
  asChild?: boolean;
15
15
  } & React.RefAttributes<HTMLButtonElement>>;
@@ -2,8 +2,8 @@ import { StoryObj } from '@storybook/react';
2
2
  declare const meta: {
3
3
  component: import('react').ForwardRefExoticComponent<{
4
4
  className?: string;
5
- variant?: "primary" | "warning" | "info" | "gradient" | "secondary" | "ghost" | "text" | "light";
6
- size?: "large" | "medium" | "small" | "xsmall";
5
+ variant?: "primary" | "warning" | "info" | "gradient" | "secondary" | "ghost" | "text" | "light" | "redText";
6
+ size?: "xlarge" | "large" | "medium" | "small" | "xsmall";
7
7
  } & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
8
8
  asChild?: boolean;
9
9
  } & import('react').RefAttributes<HTMLButtonElement>>;
@@ -19,6 +19,7 @@ export declare const Light: Story;
19
19
  export declare const Gradient: Story;
20
20
  export declare const Warning: Story;
21
21
  export declare const Info: Story;
22
+ export declare const RedText: Story;
22
23
  export declare const Ghost: Story;
23
24
  export declare const GhostButtonInTextLayout: Story;
24
25
  export declare const AllSizes: Story;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ type SkeletonProps = React.ComponentPropsWithoutRef<'span'>;
3
+ /**
4
+ * Universal skeleton component for <span> elements.
5
+ * Animated fallback automatically sizes itself automatically according to line-height.
6
+ * Explicit width needs to be set for the component to work properly.
7
+ */
8
+ export declare function Skeleton({ className, ...props }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,13 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ import { Skeleton } from './skeleton';
3
+ declare const meta: {
4
+ component: typeof Skeleton;
5
+ };
6
+ export default meta;
7
+ type Story = StoryObj<typeof meta>;
8
+ export declare const Default: Story;
9
+ export declare const InlineTextSkeleton: Story;
10
+ export declare const TextSkeleton: Story;
11
+ export declare const ListSkeleton: Story;
12
+ export declare const FormSkeleton: Story;
13
+ export declare const TableSkeleton: Story;
@@ -191,7 +191,7 @@ function S0() {
191
191
  var G = B.children;
192
192
  if (G !== void 0)
193
193
  if (T)
194
- if ($(G)) {
194
+ if (q(G)) {
195
195
  for (T = 0; T < G.length; T++)
196
196
  p(G[T]);
197
197
  Object.freeze && Object.freeze(G);
@@ -205,7 +205,7 @@ function S0() {
205
205
  var K = Object.keys(B).filter(function(h2) {
206
206
  return h2 !== "key";
207
207
  });
208
- T = 0 < K.length ? "{key: someKey, " + K.join(": ..., ") + ": ...}" : "{key: someKey}", W[G + T] || (K = 0 < K.length ? "{" + K.join(": ..., ") + ": ...}" : "{}", console.error(
208
+ T = 0 < K.length ? "{key: someKey, " + K.join(": ..., ") + ": ...}" : "{key: someKey}", $[G + T] || (K = 0 < K.length ? "{" + K.join(": ..., ") + ": ...}" : "{}", console.error(
209
209
  `A props object containing a "key" prop is being spread into JSX:
210
210
  let props = %s;
211
211
  <%s {...props} />
@@ -216,7 +216,7 @@ React keys must be passed directly to JSX without using spread:
216
216
  G,
217
217
  K,
218
218
  G
219
- ), W[G + T] = !0);
219
+ ), $[G + T] = !0);
220
220
  }
221
221
  if (G = null, k !== void 0 && (o(k), G = "" + k), d(B) && (o(B.key), G = "" + B.key), "key" in B) {
222
222
  k = {};
@@ -240,7 +240,7 @@ React keys must be passed directly to JSX without using spread:
240
240
  function p(L) {
241
241
  typeof L == "object" && L !== null && L.$$typeof === v && L._store && (L._store.validated = 1);
242
242
  }
243
- var h = Z0, v = Symbol.for("react.transitional.element"), m = Symbol.for("react.portal"), g = Symbol.for("react.fragment"), b = Symbol.for("react.strict_mode"), M = Symbol.for("react.profiler"), _ = Symbol.for("react.consumer"), Z = Symbol.for("react.context"), A = Symbol.for("react.forward_ref"), S = Symbol.for("react.suspense"), E = Symbol.for("react.suspense_list"), w = Symbol.for("react.memo"), P = Symbol.for("react.lazy"), D = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), N = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, j = Object.prototype.hasOwnProperty, $ = Array.isArray, V = console.createTask ? console.createTask : function() {
243
+ var h = Z0, v = Symbol.for("react.transitional.element"), m = Symbol.for("react.portal"), g = Symbol.for("react.fragment"), b = Symbol.for("react.strict_mode"), M = Symbol.for("react.profiler"), _ = Symbol.for("react.consumer"), Z = Symbol.for("react.context"), A = Symbol.for("react.forward_ref"), S = Symbol.for("react.suspense"), E = Symbol.for("react.suspense_list"), w = Symbol.for("react.memo"), P = Symbol.for("react.lazy"), D = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), N = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, j = Object.prototype.hasOwnProperty, q = Array.isArray, V = console.createTask ? console.createTask : function() {
244
244
  return null;
245
245
  };
246
246
  h = {
@@ -251,7 +251,7 @@ React keys must be passed directly to JSX without using spread:
251
251
  var H, O = {}, F = h["react-stack-bottom-frame"].bind(
252
252
  h,
253
253
  n
254
- )(), U = V(i(n)), W = {};
254
+ )(), U = V(i(n)), $ = {};
255
255
  H2.Fragment = g, H2.jsx = function(L, B, k, T, J) {
256
256
  var Q = 1e4 > N.recentlyCreatedOwnerStacks++;
257
257
  return u(
@@ -1036,12 +1036,12 @@ const Fe = (e) => ({
1036
1036
  }, h = k1(i), v = B1(h), m = await n.getDimensions(s), g = h === "y", b = g ? "top" : "left", M = g ? "bottom" : "right", _ = g ? "clientHeight" : "clientWidth", Z = r.reference[v] + r.reference[h] - p[h] - r.floating[v], A = p[h] - r.reference[h], S = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(s));
1037
1037
  let E = S ? S[_] : 0;
1038
1038
  (!E || !await (n.isElement == null ? void 0 : n.isElement(S))) && (E = d.floating[_] || r.floating[v]);
1039
- const w = Z / 2 - A / 2, P = E / 2 - m[v] / 2 - 1, D = b2(u[b], P), z = b2(u[M], P), N = D, j = E - m[v] - z, $ = E / 2 - m[v] / 2 + w, V = b1(N, $, j), H = !a.arrow && P2(i) != null && $ !== V && r.reference[v] / 2 - ($ < N ? D : z) - m[v] / 2 < 0, O = H ? $ < N ? $ - N : $ - j : 0;
1039
+ const w = Z / 2 - A / 2, P = E / 2 - m[v] / 2 - 1, D = b2(u[b], P), z = b2(u[M], P), N = D, j = E - m[v] - z, q = E / 2 - m[v] / 2 + w, V = b1(N, q, j), H = !a.arrow && P2(i) != null && q !== V && r.reference[v] / 2 - (q < N ? D : z) - m[v] / 2 < 0, O = H ? q < N ? q - N : q - j : 0;
1040
1040
  return {
1041
1041
  [h]: p[h] + O,
1042
1042
  data: {
1043
1043
  [h]: V,
1044
- centerOffset: $ - V - O,
1044
+ centerOffset: q - V - O,
1045
1045
  ...H && {
1046
1046
  alignmentOffset: O
1047
1047
  }
@@ -1105,16 +1105,16 @@ const Fe = (e) => ({
1105
1105
  if (!O)
1106
1106
  switch (h) {
1107
1107
  case "bestFit": {
1108
- var $;
1109
- const F = ($ = D.filter((U) => {
1108
+ var q;
1109
+ const F = (q = D.filter((U) => {
1110
1110
  if (S) {
1111
- const W = L2(U.placement);
1112
- return W === M || // Create a bias to the `y` side axis due to horizontal
1111
+ const $ = L2(U.placement);
1112
+ return $ === M || // Create a bias to the `y` side axis due to horizontal
1113
1113
  // reading directions favoring greater width.
1114
- W === "y";
1114
+ $ === "y";
1115
1115
  }
1116
1116
  return !0;
1117
- }).map((U) => [U.placement, U.overflows.filter((W) => W > 0).reduce((W, L) => W + L, 0)]).sort((U, W) => U[1] - W[1])[0]) == null ? void 0 : $[0];
1117
+ }).map((U) => [U.placement, U.overflows.filter(($) => $ > 0).reduce(($, L) => $ + L, 0)]).sort((U, $) => U[1] - $[1])[0]) == null ? void 0 : q[0];
1118
1118
  F && (O = F);
1119
1119
  break;
1120
1120
  }
@@ -1946,7 +1946,7 @@ function Qe(e) {
1946
1946
  middleware: p
1947
1947
  };
1948
1948
  z.current && (F.platform = z.current), Je(S.current, E.current, F).then((U) => {
1949
- const W = {
1949
+ const $ = {
1950
1950
  ...U,
1951
1951
  // The floating element's position may be recomputed while it's closed
1952
1952
  // but still mounted (such as when transitioning out). To ensure
@@ -1954,8 +1954,8 @@ function Qe(e) {
1954
1954
  // setting it to `true` when `open === false` (must be specified).
1955
1955
  isPositioned: N.current !== !1
1956
1956
  };
1957
- $.current && !o1(w.current, W) && (w.current = W, v3.flushSync(() => {
1958
- u(W);
1957
+ q.current && !o1(w.current, $) && (w.current = $, v3.flushSync(() => {
1958
+ u($);
1959
1959
  }));
1960
1960
  });
1961
1961
  }, [p, l, t, z, N]);
@@ -1965,9 +1965,9 @@ function Qe(e) {
1965
1965
  isPositioned: !1
1966
1966
  })));
1967
1967
  }, [s]);
1968
- const $ = f.useRef(!1);
1969
- K2(() => ($.current = !0, () => {
1970
- $.current = !1;
1968
+ const q = f.useRef(!1);
1969
+ K2(() => (q.current = !0, () => {
1970
+ q.current = !1;
1971
1971
  }), []), K2(() => {
1972
1972
  if (Z && (S.current = Z), A && (E.current = A), Z && A) {
1973
1973
  if (D.current)
@@ -1991,17 +1991,17 @@ function Qe(e) {
1991
1991
  };
1992
1992
  if (!H.floating)
1993
1993
  return F;
1994
- const U = r3(H.floating, c.x), W = r3(H.floating, c.y);
1994
+ const U = r3(H.floating, c.x), $ = r3(H.floating, c.y);
1995
1995
  return d ? {
1996
1996
  ...F,
1997
- transform: "translate(" + U + "px, " + W + "px)",
1997
+ transform: "translate(" + U + "px, " + $ + "px)",
1998
1998
  ...B3(H.floating) >= 1.5 && {
1999
1999
  willChange: "transform"
2000
2000
  }
2001
2001
  } : {
2002
2002
  position: t,
2003
2003
  left: U,
2004
- top: W
2004
+ top: $
2005
2005
  };
2006
2006
  }, [t, d, H.floating, c.x, c.y]);
2007
2007
  return f.useMemo(() => ({
@@ -2108,7 +2108,7 @@ var O1 = "PopperContent", [c4, f4] = D3(O1), z3 = f.forwardRef(
2108
2108
  boundary: z.filter(p4),
2109
2109
  // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
2110
2110
  altBoundary: N
2111
- }, { refs: $, floatingStyles: V, placement: H, isPositioned: O, middlewareData: F } = Qe({
2111
+ }, { refs: q, floatingStyles: V, placement: H, isPositioned: O, middlewareData: F } = Qe({
2112
2112
  // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
2113
2113
  strategy: "fixed",
2114
2114
  placement: P,
@@ -2138,7 +2138,7 @@ var O1 = "PopperContent", [c4, f4] = D3(O1), z3 = f.forwardRef(
2138
2138
  h4({ arrowWidth: E, arrowHeight: w }),
2139
2139
  p && r4({ strategy: "referenceHidden", ...j })
2140
2140
  ]
2141
- }), [U, W] = I3(H), L = r2(v);
2141
+ }), [U, $] = I3(H), L = r2(v);
2142
2142
  g2(() => {
2143
2143
  O && (L == null || L());
2144
2144
  }, [O, L]);
@@ -2148,7 +2148,7 @@ var O1 = "PopperContent", [c4, f4] = D3(O1), z3 = f.forwardRef(
2148
2148
  }, [b]), /* @__PURE__ */ C.jsx(
2149
2149
  "div",
2150
2150
  {
2151
- ref: $.setFloating,
2151
+ ref: q.setFloating,
2152
2152
  "data-radix-popper-content-wrapper": "",
2153
2153
  style: {
2154
2154
  ...V,
@@ -2182,7 +2182,7 @@ var O1 = "PopperContent", [c4, f4] = D3(O1), z3 = f.forwardRef(
2182
2182
  o2.div,
2183
2183
  {
2184
2184
  "data-side": U,
2185
- "data-align": W,
2185
+ "data-align": $,
2186
2186
  ...m,
2187
2187
  ref: _,
2188
2188
  style: {
@@ -3362,9 +3362,9 @@ const Y = (e) => {
3362
3362
  "left-bottom"
3363
3363
  ], A = () => [...Z(), y, x], S = () => ["auto", "hidden", "clip", "visible", "scroll"], E = () => ["auto", "contain", "none"], w = () => [y, x, a], P = () => [y2, "full", "auto", ...w()], D = () => [F2, "none", "subgrid", y, x], z = () => ["auto", {
3364
3364
  span: ["full", F2, y, x]
3365
- }, F2, y, x], N = () => [F2, "auto", y, x], j = () => ["auto", "min", "max", "fr", y, x], $ = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], V = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], H = () => ["auto", ...w()], O = () => [y2, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...w()], F = () => [e, y, x], U = () => [...Z(), f3, c3, {
3365
+ }, F2, y, x], N = () => [F2, "auto", y, x], j = () => ["auto", "min", "max", "fr", y, x], q = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"], V = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"], H = () => ["auto", ...w()], O = () => [y2, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...w()], F = () => [e, y, x], U = () => [...Z(), f3, c3, {
3366
3366
  position: [y, x]
3367
- }], W = () => ["no-repeat", {
3367
+ }], $ = () => ["no-repeat", {
3368
3368
  repeat: ["", "x", "y", "space", "round"]
3369
3369
  }], L = () => ["auto", "cover", "contain", El, yl, {
3370
3370
  size: [y, x]
@@ -3786,7 +3786,7 @@ const Y = (e) => {
3786
3786
  * @see https://tailwindcss.com/docs/justify-content
3787
3787
  */
3788
3788
  "justify-content": [{
3789
- justify: [...$(), "normal"]
3789
+ justify: [...q(), "normal"]
3790
3790
  }],
3791
3791
  /**
3792
3792
  * Justify Items
@@ -3807,7 +3807,7 @@ const Y = (e) => {
3807
3807
  * @see https://tailwindcss.com/docs/align-content
3808
3808
  */
3809
3809
  "align-content": [{
3810
- content: ["normal", ...$()]
3810
+ content: ["normal", ...q()]
3811
3811
  }],
3812
3812
  /**
3813
3813
  * Align Items
@@ -3832,7 +3832,7 @@ const Y = (e) => {
3832
3832
  * @see https://tailwindcss.com/docs/place-content
3833
3833
  */
3834
3834
  "place-content": [{
3835
- "place-content": $()
3835
+ "place-content": q()
3836
3836
  }],
3837
3837
  /**
3838
3838
  * Place Items
@@ -4342,7 +4342,7 @@ const Y = (e) => {
4342
4342
  * @see https://tailwindcss.com/docs/background-repeat
4343
4343
  */
4344
4344
  "bg-repeat": [{
4345
- bg: W()
4345
+ bg: $()
4346
4346
  }],
4347
4347
  /**
4348
4348
  * Background Size
@@ -5019,7 +5019,7 @@ const Y = (e) => {
5019
5019
  * @see https://tailwindcss.com/docs/mask-repeat
5020
5020
  */
5021
5021
  "mask-repeat": [{
5022
- mask: W()
5022
+ mask: $()
5023
5023
  }],
5024
5024
  /**
5025
5025
  * Mask Size
@@ -5830,7 +5830,7 @@ const Y = (e) => {
5830
5830
  }, b0 = (e, l, t) => {
5831
5831
  const o = l[t];
5832
5832
  o !== void 0 && (e[t] = e[t] ? e[t].concat(o) : o);
5833
- }, kl = (e, ...l) => typeof e == "function" ? s3(u3, e, ...l) : s3(() => Bl(u3(), e), ...l), q = kl({
5833
+ }, kl = (e, ...l) => typeof e == "function" ? s3(u3, e, ...l) : s3(() => Bl(u3(), e), ...l), W = kl({
5834
5834
  extend: {
5835
5835
  classGroups: {
5836
5836
  gap: ["gap-r3", "gap-r4", "gap-r5", "gap-r6"],
@@ -5876,7 +5876,7 @@ const Y = (e) => {
5876
5876
  n,
5877
5877
  {
5878
5878
  ref: r,
5879
- className: q("flex items-center justify-center text-nowrap", Dl[l], Rl[t], o),
5879
+ className: W("flex items-center justify-center text-nowrap", Dl[l], Rl[t], o),
5880
5880
  ...i
5881
5881
  }
5882
5882
  );
@@ -5900,7 +5900,7 @@ const Hl = n1(
5900
5900
  c,
5901
5901
  {
5902
5902
  ref: s,
5903
- className: q(
5903
+ className: W(
5904
5904
  // borders:
5905
5905
  o,
5906
5906
  t,
@@ -5927,7 +5927,7 @@ function Vl({ padding: e, children: l, className: t, ...o }) {
5927
5927
  return /* @__PURE__ */ C.jsx(
5928
5928
  "div",
5929
5929
  {
5930
- className: q(
5930
+ className: W(
5931
5931
  "border-b-neutral-60 flex flex-row items-center justify-between border-b",
5932
5932
  // nullify outside padding with negative margin on top and side:
5933
5933
  e === "p-r6" && "xs:-mx-5 xs:-mt-5 -mx-4 -mt-4 md:-mx-6 md:-mt-6",
@@ -5948,26 +5948,48 @@ function Vl({ padding: e, children: l, className: t, ...o }) {
5948
5948
  const Q2 = {
5949
5949
  base: [
5950
5950
  // Base
5951
- "flex cursor-pointer items-center justify-center text-nowrap text-white ring-inset transition ease-in-out",
5951
+ "flex cursor-pointer items-center justify-center text-nowrap text-neutral-10 ring-inset transition ease-in-out",
5952
5952
  // Focus
5953
- "focus:border-none focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-10",
5953
+ "focus:border-none focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-10 focus-visible:text-neutral-10",
5954
5954
  // Disabled base
5955
- "disabled:cursor-default"
5955
+ "disabled:cursor-default disabled:hover:shadow-none"
5956
5956
  ],
5957
5957
  variants: {
5958
5958
  primary: [
5959
5959
  // Base
5960
5960
  "bg-primary-50",
5961
5961
  // Hover
5962
- "hover:bg-primary-55",
5962
+ "hover:bg-primary-60",
5963
+ // Focus
5964
+ "focus-visible:ring-neutral-30",
5963
5965
  // Disabled
5964
5966
  "disabled:bg-neutral-50 disabled:text-neutral-30"
5965
5967
  ],
5968
+ secondary: [
5969
+ // Base
5970
+ "bg-neutral-80 ring-1 ring-neutral-55 text-neutral-20",
5971
+ // Hover
5972
+ "hover:ring-1 hover:ring-neutral-60 hover:shadow-button hover:text-neutral-10",
5973
+ // Focus
5974
+ "focus-visible:ring-neutral-30 focus-visible:ring-1.5",
5975
+ // Disabled
5976
+ "disabled:bg-neutral-60 disabled:text-neutral-40 disabled:ring-neutral-60"
5977
+ ],
5978
+ redText: [
5979
+ // Base
5980
+ "bg-neutral-80 text-primary-40 ring-1 ring-neutral-55",
5981
+ // Hover
5982
+ "hover:shadow-button hover:ring-neutral-60",
5983
+ // Focus
5984
+ "focus-visible:ring-neutral-30 focus-visible:ring-1.5",
5985
+ // Disabled
5986
+ "disabled:bg-neutral-60 disabled:text-neutral-40 disabled:ring-neutral-60"
5987
+ ],
5966
5988
  warning: [
5967
5989
  // Base
5968
5990
  "bg-warning-50",
5969
5991
  // Hover
5970
- "hover:bg-warning-30",
5992
+ "hover:bg-warning-60",
5971
5993
  // Disabled
5972
5994
  "disabled:bg-neutral-50 disabled:text-neutral-30"
5973
5995
  ],
@@ -5975,7 +5997,7 @@ const Q2 = {
5975
5997
  // Base
5976
5998
  "bg-secondary-40",
5977
5999
  // Hover
5978
- "hover:bg-secondary-30",
6000
+ "hover:bg-secondary-50",
5979
6001
  // Disabled
5980
6002
  "disabled:bg-neutral-50 disabled:text-neutral-30"
5981
6003
  ],
@@ -5987,23 +6009,15 @@ const Q2 = {
5987
6009
  // Disabled
5988
6010
  "disabled:bg-neutral-50 disabled:text-neutral-30"
5989
6011
  ],
5990
- secondary: [
5991
- // Base
5992
- "bg-neutral-80 ring-1.5 ring-neutral-55",
5993
- // Hover
5994
- "hover:bg-neutral-80 hover:text-neutral-20 hover:ring-1.5 hover:ring-neutral-40",
5995
- // Disabled
5996
- "disabled:bg-neutral-70 disabled:text-neutral-40 disabled:ring-1.5 disabled:ring-neutral-60"
5997
- ],
5998
6012
  light: [
5999
6013
  // Base
6000
6014
  "bg-neutral-10 text-neutral-60",
6001
6015
  // Hover
6002
- "hover:bg-neutral-20",
6016
+ "hover:text-neutral-80 hover:bg-neutral-20",
6003
6017
  // Disabled
6004
6018
  "disabled:bg-neutral-30 disabled:text-neutral-50",
6005
6019
  // Focus
6006
- "focus-visible:ring-neutral-40"
6020
+ "focus-visible:ring-neutral-40 focus-visible:ring-1.5 focus-visible:text-neutral-60"
6007
6021
  ],
6008
6022
  ghost: [
6009
6023
  // Base
@@ -6027,16 +6041,18 @@ const Q2 = {
6027
6041
  ]
6028
6042
  },
6029
6043
  sizes: {
6030
- large: "tg-button-text min-h-12 rounded-xl px-5 py-3 md:min-h-14 md:rounded-2xl",
6031
- medium: "tg-button-text min-h-11 rounded-xl px-5 py-3 md:min-h-12",
6032
- small: "tg-button-small min-h-10 rounded-lg px-4 py-2 md:min-h-10",
6033
- xsmall: "tg-button-small min-h-9 rounded-lg px-4 py-1.5"
6044
+ xlarge: "tg-subtitle-bold min-h-12 rounded-xl px-5 py-3 md:min-h-14 md:rounded-2xl",
6045
+ large: "tg-button-text min-h-11 rounded-lg px-5 py-3 md:min-h-12",
6046
+ medium: "tg-button-small min-h-10 rounded-lg px-4 py-2 md:min-h-10",
6047
+ small: "tg-caption-bold min-h-[34px] rounded-md px-4 py-1.5",
6048
+ xsmall: "tg-tag min-h-6 rounded-sm px-2 py-1"
6034
6049
  },
6035
6050
  ghostSizes: {
6051
+ xlarge: "-mx-5 -my-3 px-5 py-3",
6036
6052
  large: "-mx-5 -my-3 px-5 py-3",
6037
6053
  medium: "-mx-5 -my-3 px-5 py-3",
6038
6054
  small: "-mx-4 -my-2 px-4 py-2",
6039
- xsmall: "-mx-4 -my-1.5 px-4 py-1.5"
6055
+ xsmall: "-mx-4 -my-1.5 px-2 py-1"
6040
6056
  }
6041
6057
  }, Ol = n1(
6042
6058
  ({ asChild: e, variant: l = "primary", size: t = "medium", className: o, children: i, ...r }, n) => {
@@ -6045,7 +6061,7 @@ const Q2 = {
6045
6061
  d,
6046
6062
  {
6047
6063
  ref: n,
6048
- className: q(
6064
+ className: W(
6049
6065
  ...Q2.base,
6050
6066
  ...Q2.variants[l],
6051
6067
  l !== "text" && Q2.sizes[t],
@@ -6071,8 +6087,8 @@ function Kl({
6071
6087
  className: r,
6072
6088
  ...n
6073
6089
  }) {
6074
- return /* @__PURE__ */ C.jsxs("div", { className: q("relative", r), ...n, children: [
6075
- /* @__PURE__ */ C.jsx("div", { className: "absolute inset-0", children: /* @__PURE__ */ C.jsx(_1, { icon: e, className: q("size-full", l) }) }),
6090
+ return /* @__PURE__ */ C.jsxs("div", { className: W("relative", r), ...n, children: [
6091
+ /* @__PURE__ */ C.jsx("div", { className: "absolute inset-0", children: /* @__PURE__ */ C.jsx(_1, { icon: e, className: W("size-full", l) }) }),
6076
6092
  /* @__PURE__ */ C.jsx(
6077
6093
  "div",
6078
6094
  {
@@ -6080,7 +6096,7 @@ function Kl({
6080
6096
  style: {
6081
6097
  transform: `scale(${i})`
6082
6098
  },
6083
- children: /* @__PURE__ */ C.jsx(_1, { icon: t, className: q("size-full", o) })
6099
+ children: /* @__PURE__ */ C.jsx(_1, { icon: t, className: W("size-full", o) })
6084
6100
  }
6085
6101
  )
6086
6102
  ] });
@@ -6089,7 +6105,7 @@ function zl({ className: e, ...l }) {
6089
6105
  return /* @__PURE__ */ C.jsx(
6090
6106
  P4,
6091
6107
  {
6092
- className: q(
6108
+ className: W(
6093
6109
  "overflow-hidden",
6094
6110
  // custom scrollbar styles, override by redefining these CSS variables
6095
6111
  "[--scrollbar-size:--spacing(2.5)] [--thumb-color:var(--color-neutral-60)] [--thumb-hover-color:var(--color-neutral-55)] [--track-color:var(--color-transparent)] [--track-hover-color:var(--color-transparent)]",
@@ -6100,13 +6116,13 @@ function zl({ className: e, ...l }) {
6100
6116
  );
6101
6117
  }
6102
6118
  function Nl({ className: e, ...l }) {
6103
- return /* @__PURE__ */ C.jsx(B4, { className: q("", e), ...l });
6119
+ return /* @__PURE__ */ C.jsx(B4, { className: W("", e), ...l });
6104
6120
  }
6105
6121
  function jl({ className: e, ...l }) {
6106
6122
  return /* @__PURE__ */ C.jsx(
6107
6123
  k4,
6108
6124
  {
6109
- className: q(
6125
+ className: W(
6110
6126
  "flex touch-none p-[1px] transition-colors duration-150 ease-out select-none",
6111
6127
  // colors
6112
6128
  "bg-(--track-color) hover:bg-(--track-hover-color)",
@@ -6122,7 +6138,7 @@ function Il({ className: e, ...l }) {
6122
6138
  return /* @__PURE__ */ C.jsx(
6123
6139
  D4,
6124
6140
  {
6125
- className: q(
6141
+ className: W(
6126
6142
  "relative flex-1 rounded-(--scrollbar-size) transition-colors duration-150 ease-out",
6127
6143
  // colors
6128
6144
  "bg-(--thumb-color) hover:bg-(--thumb-hover-color)",
@@ -6135,7 +6151,7 @@ function Il({ className: e, ...l }) {
6135
6151
  );
6136
6152
  }
6137
6153
  function Ul({ className: e, ...l }) {
6138
- return /* @__PURE__ */ C.jsx(R4, { className: q("", e), ...l });
6154
+ return /* @__PURE__ */ C.jsx(R4, { className: W("", e), ...l });
6139
6155
  }
6140
6156
  const e5 = {
6141
6157
  Root: zl,
@@ -6148,7 +6164,7 @@ function l5({ clearIcon: e, cta: l, disabled: t, className: o, ...i }) {
6148
6164
  return /* @__PURE__ */ C.jsx(
6149
6165
  "button",
6150
6166
  {
6151
- className: q(
6167
+ className: W(
6152
6168
  "group flex h-full w-10 items-center justify-center focus:outline-none",
6153
6169
  t && "pointer-events-none",
6154
6170
  o
@@ -6157,7 +6173,7 @@ function l5({ clearIcon: e, cta: l, disabled: t, className: o, ...i }) {
6157
6173
  children: /* @__PURE__ */ C.jsx(
6158
6174
  "div",
6159
6175
  {
6160
- className: q(
6176
+ className: W(
6161
6177
  "bg-neutral-80 group-focus:ring-neutral-40 flex h-8 w-full items-center justify-center rounded-lg group-focus:ring-1",
6162
6178
  l && "bg-ctaGradient hover:bg-ctaGradientHover",
6163
6179
  t && "bg-neutral-55"
@@ -6166,7 +6182,7 @@ function l5({ clearIcon: e, cta: l, disabled: t, className: o, ...i }) {
6166
6182
  _1,
6167
6183
  {
6168
6184
  icon: e ? "close" : "enter",
6169
- className: q(
6185
+ className: W(
6170
6186
  "text-neutral-10 group-hover:text-neutral-40 h-3.5 w-3.5",
6171
6187
  l && "group-hover:text-neutral-10",
6172
6188
  t && "text-neutral-30"
@@ -6184,7 +6200,7 @@ function t5({ className: e, ...l }) {
6184
6200
  return /* @__PURE__ */ C.jsx(
6185
6201
  "div",
6186
6202
  {
6187
- className: q("absolute h-0 w-0 overflow-clip", e),
6203
+ className: W("absolute h-0 w-0 overflow-clip", e),
6188
6204
  ...l,
6189
6205
  dangerouslySetInnerHTML: { __html: t }
6190
6206
  }
@@ -6197,7 +6213,7 @@ const Wl = n1(
6197
6213
  r,
6198
6214
  {
6199
6215
  ref: i,
6200
- className: q(
6216
+ className: W(
6201
6217
  e.includes("left") && "xs:pl-4 pl-3 md:pl-6 xl:pl-10",
6202
6218
  e.includes("right") && "xs:pr-4 pr-3 md:pr-6 xl:pr-10",
6203
6219
  e.includes("top") && "xs:pt-4 pt-3 md:pt-6",
@@ -6253,20 +6269,26 @@ function o5({ name: e, size: l = "md", className: t, ...o }) {
6253
6269
  "svg",
6254
6270
  {
6255
6271
  ...o,
6256
- className: q(`text-protocols-${h3(e)}`, t),
6272
+ className: W(`text-protocols-${h3(e)}`, t),
6257
6273
  height: i,
6258
6274
  width: i,
6259
6275
  children: /* @__PURE__ */ C.jsx("use", { href: `#${h3(e, l)}` })
6260
6276
  }
6261
6277
  );
6262
6278
  }
6279
+ function i5({ className: e, ...l }) {
6280
+ return /* @__PURE__ */ C.jsxs("span", { className: W("relative inline-block", e), ...l, children: [
6281
+ /* @__PURE__ */ C.jsx("div", { className: "inline-block" }),
6282
+ /* @__PURE__ */ C.jsx("div", { className: W("absolute inset-0 animate-pulse rounded bg-neutral-50") })
6283
+ ] });
6284
+ }
6263
6285
  const ql = {
6264
6286
  "data-lpignore": !0,
6265
6287
  "data-1p-ignore": !0,
6266
6288
  "data-form-type": "other",
6267
6289
  "data-bwignore": !0,
6268
6290
  autoComplete: "off"
6269
- }, i5 = ({
6291
+ }, r5 = ({
6270
6292
  variant: e = "outlined",
6271
6293
  disablePasswordManagers: l,
6272
6294
  rightAccessory: t,
@@ -6278,7 +6300,7 @@ const ql = {
6278
6300
  return /* @__PURE__ */ C.jsxs(
6279
6301
  "div",
6280
6302
  {
6281
- className: q(
6303
+ className: W(
6282
6304
  // base wrapper styles:
6283
6305
  "flex min-h-10 flex-row items-center justify-between rounded-lg",
6284
6306
  // variant-specific base:
@@ -6293,7 +6315,7 @@ const ql = {
6293
6315
  /* @__PURE__ */ C.jsx(
6294
6316
  "input",
6295
6317
  {
6296
- className: q(
6318
+ className: W(
6297
6319
  // base input styles:
6298
6320
  "tg-body placeholder-neutral-40 flex-1 bg-transparent px-3 focus:outline-none disabled:cursor-not-allowed",
6299
6321
  // text color:
@@ -6314,7 +6336,7 @@ const ql = {
6314
6336
  }
6315
6337
  );
6316
6338
  };
6317
- function r5({
6339
+ function n5({
6318
6340
  content: e,
6319
6341
  color: l = "bg-neutral-80",
6320
6342
  side: t = "bottom",
@@ -6339,7 +6361,7 @@ function r5({
6339
6361
  /* @__PURE__ */ C.jsxs(
6340
6362
  K4,
6341
6363
  {
6342
- className: q(
6364
+ className: W(
6343
6365
  "tg-caption text-neutral-20 max-h-(--radix-tooltip-content-available-height) origin-(--radix-tooltip-content-transform-origin) rounded-lg p-3 text-center text-pretty shadow-md",
6344
6366
  // animations
6345
6367
  "data-[state=closed]:animate-tooltip-exit data-[state=delayed-open]:animate-tooltip-delayed-enter data-[state=instant-open]:animate-tooltip-enter",
@@ -6356,7 +6378,7 @@ function r5({
6356
6378
  /* @__PURE__ */ C.jsx(
6357
6379
  el,
6358
6380
  {
6359
- className: q(
6381
+ className: W(
6360
6382
  l === "bg-neutral-60" && "fill-neutral-60",
6361
6383
  l === "bg-neutral-80" && "fill-neutral-80",
6362
6384
  l === "bg-secondary-40" && "fill-secondary-40"
@@ -6372,7 +6394,7 @@ function r5({
6372
6394
  }
6373
6395
  );
6374
6396
  }
6375
- function n5({
6397
+ function d5({
6376
6398
  children: e,
6377
6399
  delayDuration: l = 300,
6378
6400
  skipDelayDuration: t = 50,
@@ -6391,7 +6413,8 @@ export {
6391
6413
  Wl as PagePadding,
6392
6414
  o5 as ProtocolLogo,
6393
6415
  e5 as ScrollArea,
6394
- i5 as TextInput,
6395
- r5 as Tooltip,
6396
- n5 as TooltipProvider
6416
+ i5 as Skeleton,
6417
+ r5 as TextInput,
6418
+ n5 as Tooltip,
6419
+ d5 as TooltipProvider
6397
6420
  };
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { InputButton } from './components/input-button/input-button';
8
8
  export { MountSvgSprite } from './components/mount-svg-sprite/mount-svg-sprite';
9
9
  export { PagePadding } from './components/page-padding/page-padding';
10
10
  export { ProtocolLogo } from './components/protocol-logo/protocol-logo';
11
+ export { Skeleton } from './components/skeleton/skeleton';
11
12
  export { TextInput } from './components/text-input/text-input';
12
13
  export { Tooltip } from './components/tooltip/tooltip';
13
14
  export { TooltipProvider } from './components/tooltip-provider/tooltip-provider';
@@ -6,7 +6,7 @@
6
6
  --color-purple: #6c5dd3;
7
7
 
8
8
  /* Primary */
9
- --color-primary-60: #bc243e;
9
+ --color-primary-60: #c14e64;
10
10
  --color-primary-50: #d63d57;
11
11
  --color-primary-55: #da4e65;
12
12
  --color-primary-40: #df687d;
@@ -15,7 +15,8 @@
15
15
 
16
16
  /* Secondary */
17
17
  --color-secondary-70: #193a66;
18
- --color-secondary-50: #0052bd;
18
+ --color-secondary-60: #0052bd;
19
+ --color-secondary-50: #1e6fda;
19
20
  --color-secondary-40: #3f8cff;
20
21
  --color-secondary-30: #83b9ff;
21
22
  --color-secondary-20: #b2cbeb;
@@ -38,6 +39,7 @@
38
39
  --color-success-20: #f0f9f2;
39
40
 
40
41
  /* Warning */
42
+ --color-warning-60: #e8562b;
41
43
  --color-warning-50: #ff754c;
42
44
  --color-warning-30: #ff9a7b;
43
45
  --color-warning-20: #f8d9c7;
@@ -72,4 +74,4 @@
72
74
  --color-protocols-mnt: #242731;
73
75
  --color-protocols-monad: #836ef9;
74
76
  --color-protocols-icp: #3a3d46;
75
- }
77
+ }
@@ -33,6 +33,7 @@
33
33
  --shadow-modal: 0px 32px 48px -8px rgba(0, 0, 0, 0.1), 0px 0px 14px -4px rgba(0, 0, 0, 0.05);
34
34
  --shadow-menu-item: 0px 1px 0px 0px rgba(255, 255, 255, 0.05) inset, 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
35
35
  --shadow-sidebar-accessory: 0px 20px 24px 0px rgba(0, 0, 0, 0.5);
36
+ --shadow-button: 0px 7.4px 18.5px 0px rgba(255, 255, 255, 0.11) inset;
36
37
 
37
38
  /* Miscellaneous */
38
39
  --border-width-1\.5: 1.5px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@validationcloud/fractal-ui",
3
3
  "private": false,
4
- "version": "1.20.0",
4
+ "version": "1.22.0",
5
5
  "module": "./dist/fractal-ui.js",
6
6
  "type": "module",
7
7
  "files": [