@embeddable.com/remarkable-ui 0.1.29 → 0.1.31

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.
Files changed (72) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +4 -4
  2. package/dist/BarChartDefaultPro.js +4 -4
  3. package/dist/BarChartGroupedHorizontalPro.js +4 -4
  4. package/dist/BarChartGroupedPro.js +4 -4
  5. package/dist/BarChartStackedHorizontalPro.js +4 -4
  6. package/dist/BarChartStackedPro.js +4 -4
  7. package/dist/BaseButton-Bf7IgH4E.js +24 -0
  8. package/dist/{BaseButton-MxdswwJX.js.map → BaseButton-Bf7IgH4E.js.map} +1 -1
  9. package/dist/{ChartCard-Duhwxov3.js → ChartCard-CACbKXZ7.js} +5 -5
  10. package/dist/{ChartCard-Duhwxov3.js.map → ChartCard-CACbKXZ7.js.map} +1 -1
  11. package/dist/{ComparisonPeriod.type.emb-BsVeAHPK.js → ComparisonPeriod.type.emb-Q_A2MmQY.js} +2 -2
  12. package/dist/{ComparisonPeriod.type.emb-BsVeAHPK.js.map → ComparisonPeriod.type.emb-Q_A2MmQY.js.map} +1 -1
  13. package/dist/ComparisonPeriodSelectFieldPro.js +4 -4
  14. package/dist/DateRangeSelectFieldPro.js +2 -2
  15. package/dist/DonutChartPro.js +2 -2
  16. package/dist/DonutLabelChartPro.js +2 -2
  17. package/dist/{EditorCard-CTCoSiam.js → EditorCard-CNU8sUaR.js} +2 -2
  18. package/dist/{EditorCard-CTCoSiam.js.map → EditorCard-CNU8sUaR.js.map} +1 -1
  19. package/dist/{KpiChart-DINLNXzY.js → KpiChart-C-SmtMQp.js} +2 -2
  20. package/dist/{KpiChart-DINLNXzY.js.map → KpiChart-C-SmtMQp.js.map} +1 -1
  21. package/dist/KpiChartNumberComparisonPro.js +15 -15
  22. package/dist/KpiChartNumberComparisonPro.js.map +1 -1
  23. package/dist/KpiChartNumberPro.js +4 -4
  24. package/dist/LineChartComparisonDefaultPro.js +6 -6
  25. package/dist/LineChartDefaultPro.js +4 -4
  26. package/dist/LineChartGroupedPro.js +4 -4
  27. package/dist/MultiSelectFieldPro.js +2 -2
  28. package/dist/PieChartPro.js +2 -2
  29. package/dist/{SingleSelectField-J0EWFhqx.js → SingleSelectField-AZ79m6bQ.js} +3 -3
  30. package/dist/{SingleSelectField-J0EWFhqx.js.map → SingleSelectField-AZ79m6bQ.js.map} +1 -1
  31. package/dist/SingleSelectFieldPro.js +2 -2
  32. package/dist/{bars.utils-DMaJhXB4.js → bars.utils-BaxcPPid.js} +4 -4
  33. package/dist/{bars.utils-DMaJhXB4.js.map → bars.utils-BaxcPPid.js.map} +1 -1
  34. package/dist/{charts.newFillGaps.hooks-CJLaShd4.js → charts.newFillGaps.hooks-8oF8pYjr.js} +20 -20
  35. package/dist/charts.newFillGaps.hooks-8oF8pYjr.js.map +1 -0
  36. package/dist/{charts.utils-CKlua6UT.js → charts.utils-CQtEx-IN.js} +3 -3
  37. package/dist/{charts.utils-CKlua6UT.js.map → charts.utils-CQtEx-IN.js.map} +1 -1
  38. package/dist/{component.constants-XB5gaz8Z.js → component.constants-B1QqUi2G.js} +6 -6
  39. package/dist/{component.constants-XB5gaz8Z.js.map → component.constants-B1QqUi2G.js.map} +1 -1
  40. package/dist/embeddable-components.json +10 -10
  41. package/dist/{formatter.utils-BmqMNSUB.js → formatter.utils-B3HZzPUm.js} +2 -2
  42. package/dist/{formatter.utils-BmqMNSUB.js.map → formatter.utils-B3HZzPUm.js.map} +1 -1
  43. package/dist/{index-CrfsmcHa.js → index-BcXLOYYi.js} +5 -5
  44. package/dist/{index-CrfsmcHa.js.map → index-BcXLOYYi.js.map} +1 -1
  45. package/dist/{index-jl_48we-.js → index-DXHlr-gm.js} +19 -17
  46. package/dist/{index-jl_48we-.js.map → index-DXHlr-gm.js.map} +1 -1
  47. package/dist/{index-E75P_2R2.js → index-DyMUkLDE.js} +4 -4
  48. package/dist/{index-E75P_2R2.js.map → index-DyMUkLDE.js.map} +1 -1
  49. package/dist/{index-DK57EImz.js → index-Dye21BCa.js} +5 -5
  50. package/dist/{index-DK57EImz.js.map → index-Dye21BCa.js.map} +1 -1
  51. package/dist/{index-vk45FCxb.js → index-Fs7N8msy.js} +5 -5
  52. package/dist/{index-vk45FCxb.js.map → index-Fs7N8msy.js.map} +1 -1
  53. package/dist/{index-CydUf2Tu.js → index-SdQVlaEz.js} +4 -4
  54. package/dist/{index-CydUf2Tu.js.map → index-SdQVlaEz.js.map} +1 -1
  55. package/dist/index.js +213 -198
  56. package/dist/index.js.map +1 -1
  57. package/dist/{pies.utils-DotuA_5l.js → pies.utils-CPE4fxFn.js} +4 -4
  58. package/dist/{pies.utils-DotuA_5l.js.map → pies.utils-CPE4fxFn.js.map} +1 -1
  59. package/dist/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
  60. package/dist/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.d.ts.map +1 -1
  61. package/dist/remarkable-ui/index.d.ts +1 -0
  62. package/dist/remarkable-ui/index.d.ts.map +1 -1
  63. package/dist/remarkable-ui/shared/GhostButton/GhostButton.d.ts +9 -0
  64. package/dist/remarkable-ui/shared/GhostButton/GhostButton.d.ts.map +1 -0
  65. package/dist/remarkable-ui/shared/GhostButton/GhostButton.stories.d.ts +44 -0
  66. package/dist/remarkable-ui/shared/GhostButton/GhostButton.stories.d.ts.map +1 -0
  67. package/dist/remarkable-ui.css +1 -1
  68. package/dist/{timeRange.utils-Dtg_QyCm.js → timeRange.utils-C0iy3N-l.js} +2 -2
  69. package/dist/{timeRange.utils-Dtg_QyCm.js.map → timeRange.utils-C0iy3N-l.js.map} +1 -1
  70. package/package.json +1 -1
  71. package/dist/BaseButton-MxdswwJX.js +0 -24
  72. package/dist/charts.newFillGaps.hooks-CJLaShd4.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,238 +1,253 @@
1
- import { I as j } from "./ChartCard-Duhwxov3.js";
2
- import { C as us, S as hs } from "./ChartCard-Duhwxov3.js";
3
- import { j as s, a6 as u, a7 as v, a8 as S, a9 as I, aa as N, ab as C } from "./component.constants-XB5gaz8Z.js";
4
- import { ac as ds, aj as ps, ad as bs, a0 as fs, ai as _s, ak as Cs, af as ys, ag as gs, ae as ws, ah as js, T as vs, d as Ss, al as Is, c as Ns, z as Ts, W as $s, b as ks, ax as Ps, ay as Ls, Y as As, Z as Ms, am as Bs, X as Ds, F as Fs, C as Rs, U as zs, i as Os, a3 as Ws, A as Es, w as qs, a as Ks, a5 as Vs, r as Xs, p as Us, h as Ys, s as Gs, g as Hs, e as Zs, az as Js, B as Qs, f as sa, at as aa, a1 as ea, as as ta, au as oa, ar as na, ap as ra, av as ia, aq as ca, an as la, ao as ma, aw as ua, t as ha, x as xa, v as da, l as pa, k as ba, y as fa, n as _a, u as Ca, q as ya } from "./component.constants-XB5gaz8Z.js";
5
- import { useRef as T, useState as $, useEffect as k } from "react";
6
- import { B as P } from "./BaseButton-MxdswwJX.js";
7
- import { E as wa, S as ja } from "./EditorCard-CTCoSiam.js";
8
- import { B as _ } from "./index-CrfsmcHa.js";
9
- import { b as Sa, i as Ia } from "./index-CrfsmcHa.js";
10
- import { S as Ta } from "./SingleSelectField-J0EWFhqx.js";
11
- import { K as ka } from "./KpiChart-DINLNXzY.js";
12
- import { r as La, s as Aa } from "./charts.utils-CKlua6UT.js";
13
- import { g as Ba } from "./object.utils-BNKDL7Y9.js";
14
- import { g as Fa } from "./formatter.utils-BmqMNSUB.js";
15
- import { a as za, g as Oa } from "./pies.utils-DotuA_5l.js";
16
- import { i as Ea } from "./index-CydUf2Tu.js";
17
- import { i as Ka } from "./index-E75P_2R2.js";
18
- import { i as Xa } from "./index-vk45FCxb.js";
19
- import { i as Ya } from "./index-DK57EImz.js";
20
- import { i as Ha } from "./index-jl_48we-.js";
21
- import { C as Ja } from "./ComparisonPeriod.type.emb-BsVeAHPK.js";
22
- import { i as se, s as ae } from "./color.utils-CVyp-fGP.js";
23
- const L = "_container_436fl_1", A = "_column_436fl_10", M = "_box_436fl_20", B = "_short_436fl_26", D = "_tall_436fl_34", a = {
1
+ import { I as v } from "./ChartCard-CACbKXZ7.js";
2
+ import { C as bs, S as _s } from "./ChartCard-CACbKXZ7.js";
3
+ import { j as s, a6 as m, a7 as _, a8 as S, a9 as I, aa as N, ab as $ } from "./component.constants-B1QqUi2G.js";
4
+ import { ac as Cs, aj as gs, ad as ys, a0 as js, ai as ws, ak as vs, af as Ss, ag as Is, ae as Ns, ah as $s, T as Ts, d as ks, al as Ps, c as Bs, z as Ls, W as As, b as Ms, ax as Ds, ay as Fs, Y as Rs, Z as zs, am as Os, X as Ws, F as Es, C as qs, U as Ks, i as Vs, a3 as Xs, A as Gs, w as Us, a as Ys, a5 as Hs, r as Zs, p as Js, h as Qs, s as sa, g as aa, e as ea, az as ta, B as oa, f as na, at as ra, a1 as ia, as as ca, au as la, ar as ma, ap as ua, av as ha, aq as xa, an as da, ao as pa, aw as ba, t as _a, x as fa, v as Ca, l as ga, k as ya, y as ja, n as wa, u as va, q as Sa } from "./component.constants-B1QqUi2G.js";
5
+ import { useRef as T, useState as k, useEffect as P } from "react";
6
+ import { B } from "./BaseButton-Bf7IgH4E.js";
7
+ import { E as Na, S as $a } from "./EditorCard-CNU8sUaR.js";
8
+ import { B as g } from "./index-BcXLOYYi.js";
9
+ import { b as ka, i as Pa } from "./index-BcXLOYYi.js";
10
+ import { S as La } from "./SingleSelectField-AZ79m6bQ.js";
11
+ import { K as Ma } from "./KpiChart-C-SmtMQp.js";
12
+ import { r as Fa, s as Ra } from "./charts.utils-CQtEx-IN.js";
13
+ import { g as Oa } from "./object.utils-BNKDL7Y9.js";
14
+ import { g as Ea } from "./formatter.utils-B3HZzPUm.js";
15
+ import { a as Ka, g as Va } from "./pies.utils-CPE4fxFn.js";
16
+ import { i as Ga } from "./index-SdQVlaEz.js";
17
+ import { i as Ya } from "./index-DyMUkLDE.js";
18
+ import { i as Za } from "./index-Fs7N8msy.js";
19
+ import { i as Qa } from "./index-Dye21BCa.js";
20
+ import { i as ae } from "./index-DXHlr-gm.js";
21
+ import { C as te } from "./ComparisonPeriod.type.emb-Q_A2MmQY.js";
22
+ import { i as ne, s as re } from "./color.utils-CVyp-fGP.js";
23
+ const L = "_container_436fl_1", A = "_column_436fl_10", M = "_box_436fl_20", D = "_short_436fl_26", F = "_tall_436fl_34", e = {
24
24
  container: L,
25
25
  column: A,
26
26
  box: M,
27
- short: B,
28
- tall: D
29
- }, ns = ({ className: o }) => {
30
- const e = T(null), [n, l] = $(2);
31
- k(() => {
32
- const t = () => {
33
- if (!e.current) return;
34
- const h = e.current.offsetWidth, y = 32, m = 16, g = 128, b = 256, x = h - y, d = Math.floor((x + m) / (g + m)), w = (x - (d - 1) * m) / d;
35
- let f = d;
36
- w > b && (f = Math.floor((x + m) / (b + m))), l(Math.max(2, f));
27
+ short: D,
28
+ tall: F
29
+ }, ls = ({ className: t }) => {
30
+ const a = T(null), [o, l] = k(2);
31
+ P(() => {
32
+ const n = () => {
33
+ if (!a.current) return;
34
+ const x = a.current.offsetWidth, y = 32, u = 16, j = 128, f = 256, d = x - y, p = Math.floor((d + u) / (j + u)), w = (d - (p - 1) * u) / p;
35
+ let C = p;
36
+ w > f && (C = Math.floor((d + u) / (f + u))), l(Math.max(2, C));
37
37
  };
38
- t();
39
- const r = new ResizeObserver(t);
40
- return e.current && r.observe(e.current), () => r.disconnect();
38
+ n();
39
+ const r = new ResizeObserver(n);
40
+ return a.current && r.observe(a.current), () => r.disconnect();
41
41
  }, []);
42
- const c = (t) => {
43
- const r = t % 2 === 0;
44
- return /* @__PURE__ */ s.jsx("div", { className: a.column, children: r ? /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
45
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.short}` }),
46
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.tall}` }),
47
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.short}` }),
48
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.tall}` })
42
+ const c = (n) => {
43
+ const r = n % 2 === 0;
44
+ return /* @__PURE__ */ s.jsx("div", { className: e.column, children: r ? /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
45
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.short}` }),
46
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.tall}` }),
47
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.short}` }),
48
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.tall}` })
49
49
  ] }) : /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
50
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.tall}` }),
51
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.short}` }),
52
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.tall}` }),
53
- /* @__PURE__ */ s.jsx("div", { className: `${a.box} ${a.short}` })
54
- ] }) }, t);
50
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.tall}` }),
51
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.short}` }),
52
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.tall}` }),
53
+ /* @__PURE__ */ s.jsx("div", { className: `${e.box} ${e.short}` })
54
+ ] }) }, n);
55
55
  };
56
- return /* @__PURE__ */ s.jsx("div", { ref: e, className: `${a.container} ${o || ""}`, children: Array.from({ length: n }, (t, r) => c(r)) });
57
- }, F = "_icon_bk4b5_1", R = "_iconPrimary_bk4b5_6", z = "_iconSecondary_bk4b5_9", O = "_buttonIcon_bk4b5_12", p = {
58
- icon: F,
59
- iconPrimary: R,
60
- iconSecondary: z,
61
- buttonIcon: O
62
- }, rs = ({
63
- icon: o,
64
- variant: e = "primary",
65
- ...n
66
- }) => /* @__PURE__ */ s.jsx(P, { variant: e, size: "medium", className: p.buttonIcon, ...n, children: /* @__PURE__ */ s.jsx(
67
- o,
56
+ return /* @__PURE__ */ s.jsx("div", { ref: a, className: `${e.container} ${t || ""}`, children: Array.from({ length: o }, (n, r) => c(r)) });
57
+ }, R = "_icon_bk4b5_1", z = "_iconPrimary_bk4b5_6", O = "_iconSecondary_bk4b5_9", W = "_buttonIcon_bk4b5_12", b = {
58
+ icon: R,
59
+ iconPrimary: z,
60
+ iconSecondary: O,
61
+ buttonIcon: W
62
+ }, ms = ({
63
+ icon: t,
64
+ variant: a = "primary",
65
+ ...o
66
+ }) => /* @__PURE__ */ s.jsx(B, { variant: a, size: "medium", className: b.buttonIcon, ...o, children: /* @__PURE__ */ s.jsx(
67
+ t,
68
68
  {
69
- className: u(
70
- p.icon,
71
- p[`icon${e.charAt(0).toUpperCase() + e.slice(1)}`]
69
+ className: m(
70
+ b.icon,
71
+ b[`icon${a.charAt(0).toUpperCase() + a.slice(1)}`]
72
72
  )
73
73
  }
74
- ) }), W = "_overlay_1wzuc_1", E = {
75
- overlay: W
76
- }, q = ({ className: o, children: e }) => /* @__PURE__ */ s.jsx("div", { className: u(E.overlay, o), children: e }), K = "_actions_pvzr9_1", V = {
77
- actions: K
78
- }, is = ({
79
- title: o,
80
- message: e,
81
- confirmLabel: n = "Confirm",
74
+ ) }), E = "_ghostButton_1cvh9_1", q = "_icon_1cvh9_38", K = "_label_1cvh9_42", h = {
75
+ ghostButton: E,
76
+ icon: q,
77
+ label: K
78
+ }, us = ({
79
+ startIcon: t,
80
+ endIcon: a,
81
+ children: o,
82
+ className: l,
83
+ ...c
84
+ }) => /* @__PURE__ */ s.jsxs("button", { className: m(h.ghostButton, l), ...c, children: [
85
+ t && /* @__PURE__ */ s.jsx(t, { className: h.icon }),
86
+ /* @__PURE__ */ s.jsx(_, { className: h.label, children: o }),
87
+ a && /* @__PURE__ */ s.jsx(a, { className: h.icon })
88
+ ] }), V = "_overlay_1wzuc_1", X = {
89
+ overlay: V
90
+ }, G = ({ className: t, children: a }) => /* @__PURE__ */ s.jsx("div", { className: m(X.overlay, t), children: a }), U = "_actions_pvzr9_1", Y = {
91
+ actions: U
92
+ }, hs = ({
93
+ title: t,
94
+ message: a,
95
+ confirmLabel: o = "Confirm",
82
96
  cancelLabel: l = "Cancel",
83
97
  onConfirm: c,
84
- onCancel: t,
98
+ onCancel: n,
85
99
  className: r
86
- }) => /* @__PURE__ */ s.jsx(q, { children: /* @__PURE__ */ s.jsxs(v, { className: r, children: [
87
- /* @__PURE__ */ s.jsx(S, { title: o, rightContent: /* @__PURE__ */ s.jsx(j, { icon: I, onClick: t }) }),
88
- /* @__PURE__ */ s.jsxs(N, { children: [
89
- /* @__PURE__ */ s.jsx(C, { as: "span", children: e }),
90
- /* @__PURE__ */ s.jsxs("div", { className: V.actions, children: [
91
- /* @__PURE__ */ s.jsx(_, { variant: "secondary", size: "medium", onClick: t, children: l }),
92
- /* @__PURE__ */ s.jsx(_, { variant: "primary", size: "medium", onClick: c, children: n })
100
+ }) => /* @__PURE__ */ s.jsx(G, { children: /* @__PURE__ */ s.jsxs(S, { className: r, children: [
101
+ /* @__PURE__ */ s.jsx(I, { title: t, rightContent: /* @__PURE__ */ s.jsx(v, { icon: N, onClick: n }) }),
102
+ /* @__PURE__ */ s.jsxs($, { children: [
103
+ /* @__PURE__ */ s.jsx(_, { as: "span", children: a }),
104
+ /* @__PURE__ */ s.jsxs("div", { className: Y.actions, children: [
105
+ /* @__PURE__ */ s.jsx(g, { variant: "secondary", size: "medium", onClick: n, children: l }),
106
+ /* @__PURE__ */ s.jsx(g, { variant: "primary", size: "medium", onClick: c, children: o })
93
107
  ] })
94
108
  ] })
95
- ] }) }), X = "_switchContainer_nupfs_1", U = "_switchLabel_nupfs_8", Y = "_switchInput_nupfs_14", G = "_switchTrack_nupfs_21", H = "_switchThumb_nupfs_51", Z = "_checked_nupfs_66", J = "_disabled_nupfs_78", Q = "_labelText_nupfs_100", i = {
96
- switchContainer: X,
97
- switchLabel: U,
98
- switchInput: Y,
99
- switchTrack: G,
100
- switchThumb: H,
101
- checked: Z,
102
- disabled: J,
103
- labelText: Q
104
- }, cs = ({
105
- checked: o,
106
- onChange: e,
107
- disabled: n = !1,
109
+ ] }) }), H = "_switchContainer_nupfs_1", Z = "_switchLabel_nupfs_8", J = "_switchInput_nupfs_14", Q = "_switchTrack_nupfs_21", ss = "_switchThumb_nupfs_51", as = "_checked_nupfs_66", es = "_disabled_nupfs_78", ts = "_labelText_nupfs_100", i = {
110
+ switchContainer: H,
111
+ switchLabel: Z,
112
+ switchInput: J,
113
+ switchTrack: Q,
114
+ switchThumb: ss,
115
+ checked: as,
116
+ disabled: es,
117
+ labelText: ts
118
+ }, xs = ({
119
+ checked: t,
120
+ onChange: a,
121
+ disabled: o = !1,
108
122
  className: l,
109
123
  label: c,
110
- ...t
124
+ ...n
111
125
  }) => {
112
- const r = (h) => {
113
- !n && e && e(h.target.checked);
126
+ const r = (x) => {
127
+ !o && a && a(x.target.checked);
114
128
  };
115
- return t["aria-label"] || console.warn(
129
+ return n["aria-label"] || console.warn(
116
130
  "Switch component requires either a label prop or aria-label prop for accessibility"
117
- ), /* @__PURE__ */ s.jsx("div", { className: u(i.switchContainer, l), children: /* @__PURE__ */ s.jsxs(
131
+ ), /* @__PURE__ */ s.jsx("div", { className: m(i.switchContainer, l), children: /* @__PURE__ */ s.jsxs(
118
132
  "label",
119
133
  {
120
- className: u(i.switchLabel, o && i.checked, n && i.disabled),
134
+ className: m(i.switchLabel, t && i.checked, o && i.disabled),
121
135
  children: [
122
136
  /* @__PURE__ */ s.jsx(
123
137
  "input",
124
138
  {
125
139
  type: "checkbox",
126
- checked: o,
140
+ checked: t,
127
141
  onChange: r,
128
- disabled: n,
142
+ disabled: o,
129
143
  className: i.switchInput,
130
144
  role: "switch",
131
- "aria-checked": o,
132
- "aria-disabled": n,
133
- ...t
145
+ "aria-checked": t,
146
+ "aria-disabled": o,
147
+ ...n
134
148
  }
135
149
  ),
136
150
  /* @__PURE__ */ s.jsx("span", { className: i.switchTrack, "aria-hidden": "true", children: /* @__PURE__ */ s.jsx("span", { className: i.switchThumb, "aria-hidden": "true" }) }),
137
- c && /* @__PURE__ */ s.jsx(C, { as: "span", className: u(i.labelText, n && i.disabled), children: c })
151
+ c && /* @__PURE__ */ s.jsx(_, { as: "span", className: m(i.labelText, o && i.disabled), children: c })
138
152
  ]
139
153
  }
140
154
  ) });
141
155
  };
142
156
  export {
143
- _ as Button,
144
- rs as ButtonIcon,
145
- v as Card,
146
- N as CardContent,
147
- ds as CardContentInfo,
148
- S as CardHeader,
149
- us as ChartCard,
150
- Ja as ComparisonPeriodType,
151
- is as ConfirmCancelModal,
152
- Ha as DateRangeSelectFieldPro,
153
- ps as DonutChart,
154
- Ka as DonutChartPro,
155
- Xa as DonutLabelChartPro,
156
- bs as Dropdown,
157
- wa as EditorCard,
158
- ns as EmptyStateSkeleton,
159
- j as IconButton,
160
- ka as KpiChart,
161
- fs as LineChart,
162
- Sa as MultiSelectField,
163
- Ia as MultiSelectFieldPro,
164
- _s as NumberField,
165
- q as PageOverlay,
166
- Cs as PieChart,
167
- Ea as PieChartPro,
168
- ys as SelectButton,
169
- gs as SelectList,
170
- ws as SelectListOption,
171
- ja as SelectListOptions,
172
- Ta as SingleSelectField,
173
- Ya as SingleSelectFieldPro,
174
- hs as Skeleton,
175
- cs as Switch,
176
- js as TextField,
177
- C as Typography,
178
- vs as chartColors,
179
- Ss as dataset,
180
- Is as defaultPieChartOptions,
181
- Ns as description,
182
- Ts as dimension,
183
- $s as dimensionTime,
184
- ks as dimensionWithDateBounds,
185
- Ps as dimensions,
186
- Ls as displayPercentages,
187
- As as genericBoolean,
188
- Ms as genericNumber,
189
- Bs as genericString,
190
- Ds as genericTimeRange,
191
- za as getDefaultPieChartOptions,
192
- Ba as getObjectStableKey,
193
- Oa as getPieChartData,
194
- Fs as getStyle,
195
- Rs as getStyleNumber,
196
- Fa as getThemeFormatter,
197
- zs as i18n,
198
- Os as i18nSetup,
199
- se as isColorValid,
200
- Ws as maxLegendItems,
201
- Es as maxResults,
202
- qs as measure,
203
- Ks as measures,
204
- Vs as placeholder,
205
- La as remarkableTheme,
206
- Xs as resolveI18nProps,
207
- Us as reverseXAxis,
208
- Ys as reverseYAxis,
209
- ae as setColorAlpha,
210
- Gs as showLegend,
211
- Hs as showLogarithmicScale,
212
- Zs as showTooltips,
213
- Js as showTopItems,
214
- Qs as showTotalLabels,
215
- sa as showValueLabels,
216
- Aa as styles,
217
- aa as subInputAbbreviateLargeNumber,
218
- ea as subInputColor,
219
- ta as subInputCurrency,
220
- oa as subInputDateBounds,
221
- na as subInputDecimalPlaces,
222
- ra as subInputDisplayName,
223
- ia as subInputGranularity,
224
- ca as subInputMaxCharacters,
225
- la as subInputPrefix,
226
- ma as subInputSuffix,
227
- ua as timeDimensionSubInputs,
228
- ha as title,
229
- xa as xAxisLabel,
230
- da as xAxisMaxItems,
231
- pa as xAxisRangeMax,
232
- ba as xAxisRangeMin,
233
- fa as yAxisLabel,
234
- _a as yAxisMaxItems,
235
- Ca as yAxisRangeMax,
236
- ya as yAxisRangeMin
157
+ g as Button,
158
+ ms as ButtonIcon,
159
+ S as Card,
160
+ $ as CardContent,
161
+ Cs as CardContentInfo,
162
+ I as CardHeader,
163
+ bs as ChartCard,
164
+ te as ComparisonPeriodType,
165
+ hs as ConfirmCancelModal,
166
+ ae as DateRangeSelectFieldPro,
167
+ gs as DonutChart,
168
+ Ya as DonutChartPro,
169
+ Za as DonutLabelChartPro,
170
+ ys as Dropdown,
171
+ Na as EditorCard,
172
+ ls as EmptyStateSkeleton,
173
+ us as GhostButton,
174
+ v as IconButton,
175
+ Ma as KpiChart,
176
+ js as LineChart,
177
+ ka as MultiSelectField,
178
+ Pa as MultiSelectFieldPro,
179
+ ws as NumberField,
180
+ G as PageOverlay,
181
+ vs as PieChart,
182
+ Ga as PieChartPro,
183
+ Ss as SelectButton,
184
+ Is as SelectList,
185
+ Ns as SelectListOption,
186
+ $a as SelectListOptions,
187
+ La as SingleSelectField,
188
+ Qa as SingleSelectFieldPro,
189
+ _s as Skeleton,
190
+ xs as Switch,
191
+ $s as TextField,
192
+ _ as Typography,
193
+ Ts as chartColors,
194
+ ks as dataset,
195
+ Ps as defaultPieChartOptions,
196
+ Bs as description,
197
+ Ls as dimension,
198
+ As as dimensionTime,
199
+ Ms as dimensionWithDateBounds,
200
+ Ds as dimensions,
201
+ Fs as displayPercentages,
202
+ Rs as genericBoolean,
203
+ zs as genericNumber,
204
+ Os as genericString,
205
+ Ws as genericTimeRange,
206
+ Ka as getDefaultPieChartOptions,
207
+ Oa as getObjectStableKey,
208
+ Va as getPieChartData,
209
+ Es as getStyle,
210
+ qs as getStyleNumber,
211
+ Ea as getThemeFormatter,
212
+ Ks as i18n,
213
+ Vs as i18nSetup,
214
+ ne as isColorValid,
215
+ Xs as maxLegendItems,
216
+ Gs as maxResults,
217
+ Us as measure,
218
+ Ys as measures,
219
+ Hs as placeholder,
220
+ Fa as remarkableTheme,
221
+ Zs as resolveI18nProps,
222
+ Js as reverseXAxis,
223
+ Qs as reverseYAxis,
224
+ re as setColorAlpha,
225
+ sa as showLegend,
226
+ aa as showLogarithmicScale,
227
+ ea as showTooltips,
228
+ ta as showTopItems,
229
+ oa as showTotalLabels,
230
+ na as showValueLabels,
231
+ Ra as styles,
232
+ ra as subInputAbbreviateLargeNumber,
233
+ ia as subInputColor,
234
+ ca as subInputCurrency,
235
+ la as subInputDateBounds,
236
+ ma as subInputDecimalPlaces,
237
+ ua as subInputDisplayName,
238
+ ha as subInputGranularity,
239
+ xa as subInputMaxCharacters,
240
+ da as subInputPrefix,
241
+ pa as subInputSuffix,
242
+ ba as timeDimensionSubInputs,
243
+ _a as title,
244
+ fa as xAxisLabel,
245
+ Ca as xAxisMaxItems,
246
+ ga as xAxisRangeMax,
247
+ ya as xAxisRangeMin,
248
+ ja as yAxisLabel,
249
+ wa as yAxisMaxItems,
250
+ va as yAxisRangeMax,
251
+ Sa as yAxisRangeMin
237
252
  };
238
253
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/remarkable-ui/shared/EmptyStateSkeleton/EmptyStateSkeleton.tsx","../src/remarkable-ui/shared/ButtonIcon/ButtonIcon.tsx","../src/remarkable-ui/shared/PageOverlay/PageOverlay.tsx","../src/remarkable-ui/shared/ConfirmCancelModal/ConfirmCancelModal.tsx","../src/remarkable-ui/shared/Switch/Switch.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport styles from './EmptyStateSkeleton.module.css';\n\ninterface EmptyStateSkeletonProps {\n className?: string;\n}\n\nexport const EmptyStateSkeleton: React.FC<EmptyStateSkeletonProps> = ({ className }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [visibleColumns, setVisibleColumns] = useState(2);\n\n useEffect(() => {\n const calculateColumns = () => {\n if (!containerRef.current) return;\n\n const containerWidth = containerRef.current.offsetWidth;\n const padding = 32; // 2rem total padding (1rem each side)\n const gap = 16; // 1rem gap between columns\n const minColumnWidth = 128; // 8rem\n const maxColumnWidth = 256; // 16rem\n\n const availableWidth = containerWidth - padding;\n\n // Calculate how many columns can fit at minimum width\n const maxPossibleColumns = Math.floor((availableWidth + gap) / (minColumnWidth + gap));\n\n // Calculate actual column width if we use maxPossibleColumns\n const actualColumnWidth =\n (availableWidth - (maxPossibleColumns - 1) * gap) / maxPossibleColumns;\n\n // If columns would be wider than max width, reduce column count\n let finalColumns = maxPossibleColumns;\n if (actualColumnWidth > maxColumnWidth) {\n finalColumns = Math.floor((availableWidth + gap) / (maxColumnWidth + gap));\n }\n\n setVisibleColumns(Math.max(2, finalColumns)); // Minimum 2 columns\n };\n\n calculateColumns();\n\n const resizeObserver = new ResizeObserver(calculateColumns);\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n return () => resizeObserver.disconnect();\n }, []);\n\n const renderColumn = (index: number) => {\n const isEvenColumn = index % 2 === 0;\n return (\n <div key={index} className={styles.column}>\n {isEvenColumn ? (\n <>\n <div className={`${styles.box} ${styles.short}`}></div>\n <div className={`${styles.box} ${styles.tall}`}></div>\n <div className={`${styles.box} ${styles.short}`}></div>\n <div className={`${styles.box} ${styles.tall}`}></div>\n </>\n ) : (\n <>\n <div className={`${styles.box} ${styles.tall}`}></div>\n <div className={`${styles.box} ${styles.short}`}></div>\n <div className={`${styles.box} ${styles.tall}`}></div>\n <div className={`${styles.box} ${styles.short}`}></div>\n </>\n )}\n </div>\n );\n };\n\n return (\n <div ref={containerRef} className={`${styles.container} ${className || ''}`}>\n {Array.from({ length: visibleColumns }, (_, index) => renderColumn(index))}\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport styles from './ButtonIcon.module.css';\nimport { BaseButton, type BaseButtonProps } from '../BaseButton';\nimport { TablerIcon } from '@tabler/icons-react';\n\ntype ButtonIconProps = Omit<BaseButtonProps, 'size'> & {\n icon: TablerIcon;\n};\n\nexport const ButtonIcon: React.FC<ButtonIconProps> = ({\n icon: Icon,\n variant = 'primary',\n ...props\n}) => {\n return (\n <BaseButton variant={variant} size=\"medium\" className={styles.buttonIcon} {...props}>\n <Icon\n className={clsx(\n styles.icon,\n styles[`icon${variant.charAt(0).toUpperCase() + variant.slice(1)}`],\n )}\n />\n </BaseButton>\n );\n};\n","import clsx from 'clsx';\nimport styles from './PageOverlay.module.css';\nimport type { PageOverlayProps } from './PageOverlay.types';\n\nexport const PageOverlay: React.FC<PageOverlayProps> = ({ className, children }) => {\n return <div className={clsx(styles.overlay, className)}>{children}</div>;\n};\n","import React from 'react';\nimport { Card, CardHeader, CardContent } from '../Card/Card';\nimport { Button } from '../Button/Button';\nimport { Typography } from '../Typography/Typography';\nimport styles from './ConfirmCancelModal.module.css';\nimport type { ConfirmCancelModalProps } from './ConfirmCancelModal.types';\nimport { PageOverlay } from '../PageOverlay';\nimport { IconX } from '@tabler/icons-react';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport const ConfirmCancelModal: React.FC<ConfirmCancelModalProps> = ({\n title,\n message,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n onConfirm,\n onCancel,\n className,\n}) => {\n return (\n <PageOverlay>\n <Card className={className}>\n <CardHeader title={title} rightContent={<IconButton icon={IconX} onClick={onCancel} />} />\n <CardContent>\n <Typography as=\"span\">{message}</Typography>\n <div className={styles.actions}>\n <Button variant=\"secondary\" size=\"medium\" onClick={onCancel}>\n {cancelLabel}\n </Button>\n <Button variant=\"primary\" size=\"medium\" onClick={onConfirm}>\n {confirmLabel}\n </Button>\n </div>\n </CardContent>\n </Card>\n </PageOverlay>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport styles from './Switch.module.css';\nimport { Typography } from '../Typography/Typography';\n\ntype SwitchProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> & {\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n label?: string;\n};\n\nexport const Switch: React.FC<SwitchProps> = ({\n checked,\n onChange,\n disabled = false,\n className,\n label,\n ...props\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled && onChange) {\n onChange(event.target.checked);\n }\n };\n\n // Ensure accessibility: either aria-label must be provided\n if (!props['aria-label']) {\n console.warn(\n 'Switch component requires either a label prop or aria-label prop for accessibility',\n );\n }\n\n return (\n <div className={clsx(styles.switchContainer, className)}>\n <label\n className={clsx(styles.switchLabel, checked && styles.checked, disabled && styles.disabled)}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className={styles.switchInput}\n role=\"switch\"\n aria-checked={checked}\n aria-disabled={disabled}\n {...props}\n />\n <span className={styles.switchTrack} aria-hidden=\"true\">\n <span className={styles.switchThumb} aria-hidden=\"true\" />\n </span>\n {label && (\n <Typography as=\"span\" className={clsx(styles.labelText, disabled && styles.disabled)}>\n {label}\n </Typography>\n )}\n </label>\n </div>\n );\n};\n"],"names":["EmptyStateSkeleton","className","containerRef","useRef","visibleColumns","setVisibleColumns","useState","useEffect","calculateColumns","containerWidth","padding","gap","minColumnWidth","maxColumnWidth","availableWidth","maxPossibleColumns","actualColumnWidth","finalColumns","resizeObserver","renderColumn","index","isEvenColumn","styles","jsxs","Fragment","jsx","_","ButtonIcon","Icon","variant","props","BaseButton","clsx","PageOverlay","children","ConfirmCancelModal","title","message","confirmLabel","cancelLabel","onConfirm","onCancel","Card","CardHeader","IconButton","IconX","CardContent","Typography","Button","Switch","checked","onChange","disabled","label","handleChange","event"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/remarkable-ui/shared/EmptyStateSkeleton/EmptyStateSkeleton.tsx","../src/remarkable-ui/shared/ButtonIcon/ButtonIcon.tsx","../src/remarkable-ui/shared/GhostButton/GhostButton.tsx","../src/remarkable-ui/shared/PageOverlay/PageOverlay.tsx","../src/remarkable-ui/shared/ConfirmCancelModal/ConfirmCancelModal.tsx","../src/remarkable-ui/shared/Switch/Switch.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport styles from './EmptyStateSkeleton.module.css';\n\ninterface EmptyStateSkeletonProps {\n className?: string;\n}\n\nexport const EmptyStateSkeleton: React.FC<EmptyStateSkeletonProps> = ({ className }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [visibleColumns, setVisibleColumns] = useState(2);\n\n useEffect(() => {\n const calculateColumns = () => {\n if (!containerRef.current) return;\n\n const containerWidth = containerRef.current.offsetWidth;\n const padding = 32; // 2rem total padding (1rem each side)\n const gap = 16; // 1rem gap between columns\n const minColumnWidth = 128; // 8rem\n const maxColumnWidth = 256; // 16rem\n\n const availableWidth = containerWidth - padding;\n\n // Calculate how many columns can fit at minimum width\n const maxPossibleColumns = Math.floor((availableWidth + gap) / (minColumnWidth + gap));\n\n // Calculate actual column width if we use maxPossibleColumns\n const actualColumnWidth =\n (availableWidth - (maxPossibleColumns - 1) * gap) / maxPossibleColumns;\n\n // If columns would be wider than max width, reduce column count\n let finalColumns = maxPossibleColumns;\n if (actualColumnWidth > maxColumnWidth) {\n finalColumns = Math.floor((availableWidth + gap) / (maxColumnWidth + gap));\n }\n\n setVisibleColumns(Math.max(2, finalColumns)); // Minimum 2 columns\n };\n\n calculateColumns();\n\n const resizeObserver = new ResizeObserver(calculateColumns);\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n return () => resizeObserver.disconnect();\n }, []);\n\n const renderColumn = (index: number) => {\n const isEvenColumn = index % 2 === 0;\n return (\n <div key={index} className={styles.column}>\n {isEvenColumn ? (\n <>\n <div className={`${styles.box} ${styles.short}`}></div>\n <div className={`${styles.box} ${styles.tall}`}></div>\n <div className={`${styles.box} ${styles.short}`}></div>\n <div className={`${styles.box} ${styles.tall}`}></div>\n </>\n ) : (\n <>\n <div className={`${styles.box} ${styles.tall}`}></div>\n <div className={`${styles.box} ${styles.short}`}></div>\n <div className={`${styles.box} ${styles.tall}`}></div>\n <div className={`${styles.box} ${styles.short}`}></div>\n </>\n )}\n </div>\n );\n };\n\n return (\n <div ref={containerRef} className={`${styles.container} ${className || ''}`}>\n {Array.from({ length: visibleColumns }, (_, index) => renderColumn(index))}\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport styles from './ButtonIcon.module.css';\nimport { BaseButton, type BaseButtonProps } from '../BaseButton';\nimport { TablerIcon } from '@tabler/icons-react';\n\ntype ButtonIconProps = Omit<BaseButtonProps, 'size'> & {\n icon: TablerIcon;\n};\n\nexport const ButtonIcon: React.FC<ButtonIconProps> = ({\n icon: Icon,\n variant = 'primary',\n ...props\n}) => {\n return (\n <BaseButton variant={variant} size=\"medium\" className={styles.buttonIcon} {...props}>\n <Icon\n className={clsx(\n styles.icon,\n styles[`icon${variant.charAt(0).toUpperCase() + variant.slice(1)}`],\n )}\n />\n </BaseButton>\n );\n};\n","import React from 'react';\nimport { Icon } from '@tabler/icons-react';\nimport clsx from 'clsx';\nimport styles from './GhostButton.module.css';\nimport { Typography } from '../Typography/Typography';\n\ntype GhostButtonProps = {\n startIcon?: Icon;\n endIcon?: Icon;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const GhostButton: React.FC<GhostButtonProps> = ({\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n className,\n ...props\n}) => {\n return (\n <button className={clsx(styles.ghostButton, className)} {...props}>\n {StartIcon && <StartIcon className={styles.icon} />}\n <Typography className={styles.label}>{children}</Typography>\n {EndIcon && <EndIcon className={styles.icon} />}\n </button>\n );\n};\n","import clsx from 'clsx';\nimport styles from './PageOverlay.module.css';\nimport type { PageOverlayProps } from './PageOverlay.types';\n\nexport const PageOverlay: React.FC<PageOverlayProps> = ({ className, children }) => {\n return <div className={clsx(styles.overlay, className)}>{children}</div>;\n};\n","import React from 'react';\nimport { Card, CardHeader, CardContent } from '../Card/Card';\nimport { Button } from '../Button/Button';\nimport { Typography } from '../Typography/Typography';\nimport styles from './ConfirmCancelModal.module.css';\nimport type { ConfirmCancelModalProps } from './ConfirmCancelModal.types';\nimport { PageOverlay } from '../PageOverlay';\nimport { IconX } from '@tabler/icons-react';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport const ConfirmCancelModal: React.FC<ConfirmCancelModalProps> = ({\n title,\n message,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n onConfirm,\n onCancel,\n className,\n}) => {\n return (\n <PageOverlay>\n <Card className={className}>\n <CardHeader title={title} rightContent={<IconButton icon={IconX} onClick={onCancel} />} />\n <CardContent>\n <Typography as=\"span\">{message}</Typography>\n <div className={styles.actions}>\n <Button variant=\"secondary\" size=\"medium\" onClick={onCancel}>\n {cancelLabel}\n </Button>\n <Button variant=\"primary\" size=\"medium\" onClick={onConfirm}>\n {confirmLabel}\n </Button>\n </div>\n </CardContent>\n </Card>\n </PageOverlay>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport styles from './Switch.module.css';\nimport { Typography } from '../Typography/Typography';\n\ntype SwitchProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> & {\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n label?: string;\n};\n\nexport const Switch: React.FC<SwitchProps> = ({\n checked,\n onChange,\n disabled = false,\n className,\n label,\n ...props\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled && onChange) {\n onChange(event.target.checked);\n }\n };\n\n // Ensure accessibility: either aria-label must be provided\n if (!props['aria-label']) {\n console.warn(\n 'Switch component requires either a label prop or aria-label prop for accessibility',\n );\n }\n\n return (\n <div className={clsx(styles.switchContainer, className)}>\n <label\n className={clsx(styles.switchLabel, checked && styles.checked, disabled && styles.disabled)}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className={styles.switchInput}\n role=\"switch\"\n aria-checked={checked}\n aria-disabled={disabled}\n {...props}\n />\n <span className={styles.switchTrack} aria-hidden=\"true\">\n <span className={styles.switchThumb} aria-hidden=\"true\" />\n </span>\n {label && (\n <Typography as=\"span\" className={clsx(styles.labelText, disabled && styles.disabled)}>\n {label}\n </Typography>\n )}\n </label>\n </div>\n );\n};\n"],"names":["EmptyStateSkeleton","className","containerRef","useRef","visibleColumns","setVisibleColumns","useState","useEffect","calculateColumns","containerWidth","padding","gap","minColumnWidth","maxColumnWidth","availableWidth","maxPossibleColumns","actualColumnWidth","finalColumns","resizeObserver","renderColumn","index","isEvenColumn","styles","jsxs","Fragment","jsx","_","ButtonIcon","Icon","variant","props","BaseButton","clsx","GhostButton","StartIcon","EndIcon","children","Typography","PageOverlay","ConfirmCancelModal","title","message","confirmLabel","cancelLabel","onConfirm","onCancel","Card","CardHeader","IconButton","IconX","CardContent","Button","Switch","checked","onChange","disabled","label","handleChange","event"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { r as u, g as b } from "./charts.utils-CKlua6UT.js";
2
- import { g } from "./formatter.utils-BmqMNSUB.js";
1
+ import { r as u, g as b } from "./charts.utils-CQtEx-IN.js";
2
+ import { g } from "./formatter.utils-B3HZzPUm.js";
3
3
  import { g as h, a as i } from "./object.utils-BNKDL7Y9.js";
4
- import { T as c, U as f } from "./component.constants-XB5gaz8Z.js";
4
+ import { T as c, U as f } from "./component.constants-B1QqUi2G.js";
5
5
  import "react";
6
6
  const y = (a, o = u) => {
7
7
  const n = g(o);
@@ -72,4 +72,4 @@ export {
72
72
  F as a,
73
73
  y as g
74
74
  };
75
- //# sourceMappingURL=pies.utils-DotuA_5l.js.map
75
+ //# sourceMappingURL=pies.utils-CPE4fxFn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pies.utils-DotuA_5l.js","sources":["../src/remarkable-pro/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { chartColors } from '../../../../remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const themeKey = getObjectStableKey(theme);\n\n const backgroundColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.backgroundColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.backgroundColors ?? chartColors,\n i,\n ),\n );\n\n const borderColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.borderColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.borderColors ?? chartColors,\n i,\n ),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport type DefaultPieChartOptions = {\n measure: Measure;\n showTooltips: boolean;\n showLegend: boolean;\n showValueLabels: boolean;\n};\n\nexport const getDefaultPieChartOptions = (\n options: DefaultPieChartOptions,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { display: options.showLegend, position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n display: options.showValueLabels ? 'auto' : false,\n formatter: (value: string | number) => themeFormatter.data(options.measure, value),\n },\n tooltip: {\n enabled: options.showTooltips,\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n const total = context.dataset.data.reduce(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (sum: number, v: any) => sum + parseFloat(v),\n 0,\n );\n const pct = Math.round((raw / total) * 100);\n return `${themeFormatter.data(options.measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","backgroundColor","item","i","getColor","chartColors","borderColor","value","formattedValue","i18n","getDefaultPieChartOptions","options","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAkB,CAC7BC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAWC,EAAmBP,CAAK,GAEnCQ,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBY;AAAA,MACjCF;AAAA,IAAA;AAAA,EACF,GAGIG,IAAcT,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBY;AAAA,MAC7BF;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMK,IAAQL,EAAKV,EAAM,UAAU,IAAI,GACjCgB,IAAiBb,EAAe,KAAKH,EAAM,WAAWe,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMX,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAK;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GASaI,IAA4B,CACvCC,GACAlB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,SAASkB,EAAQ,YAAY,UAAUlB,EAAM,OAAO,kBAAkB,SAAA;AAAA,MAChF,YAAY;AAAA,QACV,SAASkB,EAAQ,kBAAkB,SAAS;AAAA,QAC5C,WAAW,CAACJ,MAA2BZ,EAAe,KAAKgB,EAAQ,SAASJ,CAAK;AAAA,MAAA;AAAA,MAEnF,SAAS;AAAA,QACP,SAASI,EAAQ;AAAA,QACjB,WAAW;AAAA,UACT,MAAMC,GAAS;AACb,kBAAMC,IAAMD,EAAQ,KACdE,IAAQF,EAAQ,QAAQ,KAAK;AAAA;AAAA,cAEjC,CAACG,GAAaC,MAAWD,IAAM,WAAWC,CAAC;AAAA,cAC3C;AAAA,YAAA,GAEIC,IAAM,KAAK,MAAOJ,IAAMC,IAAS,GAAG;AAC1C,mBAAO,GAAGnB,EAAe,KAAKgB,EAAQ,SAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UAC7D;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"pies.utils-CPE4fxFn.js","sources":["../src/remarkable-pro/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { chartColors } from '../../../../remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const themeKey = getObjectStableKey(theme);\n\n const backgroundColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.backgroundColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.backgroundColors ?? chartColors,\n i,\n ),\n );\n\n const borderColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.borderColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.borderColors ?? chartColors,\n i,\n ),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport type DefaultPieChartOptions = {\n measure: Measure;\n showTooltips: boolean;\n showLegend: boolean;\n showValueLabels: boolean;\n};\n\nexport const getDefaultPieChartOptions = (\n options: DefaultPieChartOptions,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { display: options.showLegend, position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n display: options.showValueLabels ? 'auto' : false,\n formatter: (value: string | number) => themeFormatter.data(options.measure, value),\n },\n tooltip: {\n enabled: options.showTooltips,\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n const total = context.dataset.data.reduce(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (sum: number, v: any) => sum + parseFloat(v),\n 0,\n );\n const pct = Math.round((raw / total) * 100);\n return `${themeFormatter.data(options.measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","backgroundColor","item","i","getColor","chartColors","borderColor","value","formattedValue","i18n","getDefaultPieChartOptions","options","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAkB,CAC7BC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAWC,EAAmBP,CAAK,GAEnCQ,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBY;AAAA,MACjCF;AAAA,IAAA;AAAA,EACF,GAGIG,IAAcT,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC;AAAA,MACE,GAAGL,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBY;AAAA,MAC7BF;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMK,IAAQL,EAAKV,EAAM,UAAU,IAAI,GACjCgB,IAAiBb,EAAe,KAAKH,EAAM,WAAWe,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMX,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAK;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GASaI,IAA4B,CACvCC,GACAlB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,SAASkB,EAAQ,YAAY,UAAUlB,EAAM,OAAO,kBAAkB,SAAA;AAAA,MAChF,YAAY;AAAA,QACV,SAASkB,EAAQ,kBAAkB,SAAS;AAAA,QAC5C,WAAW,CAACJ,MAA2BZ,EAAe,KAAKgB,EAAQ,SAASJ,CAAK;AAAA,MAAA;AAAA,MAEnF,SAAS;AAAA,QACP,SAASI,EAAQ;AAAA,QACjB,WAAW;AAAA,UACT,MAAMC,GAAS;AACb,kBAAMC,IAAMD,EAAQ,KACdE,IAAQF,EAAQ,QAAQ,KAAK;AAAA;AAAA,cAEjC,CAACG,GAAaC,MAAWD,IAAM,WAAWC,CAAC;AAAA,cAC3C;AAAA,YAAA,GAEIC,IAAM,KAAK,MAAOJ,IAAMC,IAAS,GAAG;AAC1C,mBAAO,GAAGnB,EAAe,KAAKgB,EAAQ,SAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UAC7D;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYxE,KAAK,+BAA+B,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,SAAS,CAAC;IAC/B,sBAAsB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,QAAA,MAAM,2BAA2B,GAAI,OAAO,+BAA+B,4CAkF1E,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYxE,KAAK,+BAA+B,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,SAAS,CAAC;IAC/B,sBAAsB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,QAAA,MAAM,2BAA2B,GAAI,OAAO,+BAA+B,4CAmF1E,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOjD,KAAK,4BAA4B,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAI,OAAO,4BAA4B,mDA2DnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOjD,KAAK,4BAA4B,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAI,OAAO,4BAA4B,mDAiEnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -9,6 +9,7 @@ export { Dropdown } from './shared/Dropdown/Dropdown';
9
9
  export { SelectListOption, type SelectListOptionProps, } from './editors/select/shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';
10
10
  export { SelectListOptions } from './editors/select/shared/SelectList/SelectListOptions/SelectListOptions';
11
11
  export { Button } from './shared/Button/Button';
12
+ export { GhostButton } from './shared/GhostButton/GhostButton';
12
13
  export { PageOverlay } from './shared/PageOverlay';
13
14
  export type { PageOverlayProps } from './shared/PageOverlay';
14
15
  export { ConfirmCancelModal } from './shared/ConfirmCancelModal';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remarkable-ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,wFAAwF,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wEAAwE,CAAC;AAC3G,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remarkable-ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,wFAAwF,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wEAAwE,CAAC;AAC3G,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { Icon } from '@tabler/icons-react';
3
+ type GhostButtonProps = {
4
+ startIcon?: Icon;
5
+ endIcon?: Icon;
6
+ } & React.ButtonHTMLAttributes<HTMLButtonElement>;
7
+ export declare const GhostButton: React.FC<GhostButtonProps>;
8
+ export {};
9
+ //# sourceMappingURL=GhostButton.d.ts.map