@prodivix/ui 0.1.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.
Files changed (74) hide show
  1. package/LICENSE +21 -0
  2. package/dist/button/PdxButton.js +70 -0
  3. package/dist/button/PdxButtonLink.js +11 -0
  4. package/dist/container/PdxCard.js +32 -0
  5. package/dist/container/PdxDiv.js +80 -0
  6. package/dist/container/PdxPanel.js +71 -0
  7. package/dist/container/PdxSection.js +30 -0
  8. package/dist/data/PdxBadge.js +40 -0
  9. package/dist/data/PdxCheckList.js +58 -0
  10. package/dist/data/PdxDataGrid.js +70 -0
  11. package/dist/data/PdxList.js +35 -0
  12. package/dist/data/PdxProgress.js +38 -0
  13. package/dist/data/PdxSpinner.js +36 -0
  14. package/dist/data/PdxStatistic.js +40 -0
  15. package/dist/data/PdxSteps.js +37 -0
  16. package/dist/data/PdxTable.js +61 -0
  17. package/dist/data/PdxTag.js +36 -0
  18. package/dist/data/PdxTimeline.js +32 -0
  19. package/dist/data/PdxTree.js +71 -0
  20. package/dist/data/PdxTreeSelect.js +69 -0
  21. package/dist/embed/PdxEmbed.js +109 -0
  22. package/dist/embed/PdxIframe.js +76 -0
  23. package/dist/feedback/PdxDrawer.js +45 -0
  24. package/dist/feedback/PdxEmpty.js +33 -0
  25. package/dist/feedback/PdxMessage.js +32 -0
  26. package/dist/feedback/PdxModal.js +49 -0
  27. package/dist/feedback/PdxNotification.js +46 -0
  28. package/dist/feedback/PdxPopover.js +59 -0
  29. package/dist/feedback/PdxSkeleton.js +23 -0
  30. package/dist/feedback/PdxTooltip.js +30 -0
  31. package/dist/form/PdxColorPicker.js +75 -0
  32. package/dist/form/PdxDatePicker.js +89 -0
  33. package/dist/form/PdxDateRangePicker.js +90 -0
  34. package/dist/form/PdxFileUpload.js +108 -0
  35. package/dist/form/PdxImageUpload.js +87 -0
  36. package/dist/form/PdxPasswordStrength.js +73 -0
  37. package/dist/form/PdxRadioGroup.js +71 -0
  38. package/dist/form/PdxRange.js +95 -0
  39. package/dist/form/PdxRating.js +62 -0
  40. package/dist/form/PdxRegexInput.js +76 -0
  41. package/dist/form/PdxRegionPicker.js +121 -0
  42. package/dist/form/PdxRichTextEditor.js +177 -0
  43. package/dist/form/PdxSelect.js +69 -0
  44. package/dist/form/PdxSlider.js +64 -0
  45. package/dist/form/PdxTimePicker.js +89 -0
  46. package/dist/form/PdxVerificationCode.js +90 -0
  47. package/dist/icon/PdxIcon.js +73 -0
  48. package/dist/icon/PdxIconLink.js +13 -0
  49. package/dist/image/PdxAvatar.js +38 -0
  50. package/dist/image/PdxImage.js +39 -0
  51. package/dist/image/PdxImageGallery.js +77 -0
  52. package/dist/index.js +142 -0
  53. package/dist/input/PdxInput.js +75 -0
  54. package/dist/input/PdxSearch.js +89 -0
  55. package/dist/input/PdxTextarea.js +72 -0
  56. package/dist/link/PdxLink.js +34 -0
  57. package/dist/nav/PdxAnchorNavigation.js +37 -0
  58. package/dist/nav/PdxBreadcrumb.js +30 -0
  59. package/dist/nav/PdxCollapse.js +64 -0
  60. package/dist/nav/PdxNav.js +48 -0
  61. package/dist/nav/PdxNavbar.js +43 -0
  62. package/dist/nav/PdxOutlet.js +26 -0
  63. package/dist/nav/PdxPagination.js +66 -0
  64. package/dist/nav/PdxRoute.js +119 -0
  65. package/dist/nav/PdxSidebar.js +45 -0
  66. package/dist/nav/PdxTabs.js +49 -0
  67. package/dist/style.css +1 -0
  68. package/dist/text/PdxHeading.js +21 -0
  69. package/dist/text/PdxKbd.js +42 -0
  70. package/dist/text/PdxParagraph.js +21 -0
  71. package/dist/text/PdxText.js +22 -0
  72. package/dist/video/PdxAudio.js +57 -0
  73. package/dist/video/PdxVideo.js +84 -0
  74. package/package.json +67 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Minsecrus 2025
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,70 @@
1
+ import { jsx as n, jsxs as h } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function o({
5
+ text: u,
6
+ size: p = "Medium",
7
+ category: c = "Secondary",
8
+ disabled: N = !1,
9
+ onlyIcon: d = !1,
10
+ icon: r,
11
+ iconPosition: f = "Right",
12
+ className: $,
13
+ style: a,
14
+ id: e,
15
+ dataAttributes: i = {},
16
+ onClick: s,
17
+ as: x = "button"
18
+ }) {
19
+ const t = `PdxButton ${p} ${c} ${d ? "OnlyIcon" : ""} ${N ? "Disabled" : ""} ${$ || ""}`.trim(), l = { ...i }, m = x;
20
+ return d && r ? /* @__PURE__ */ n(
21
+ m,
22
+ {
23
+ className: t,
24
+ style: a,
25
+ id: e,
26
+ onClick: s,
27
+ ...l,
28
+ children: r
29
+ }
30
+ ) : r && f === "Left" ? /* @__PURE__ */ h(
31
+ m,
32
+ {
33
+ className: t,
34
+ style: a,
35
+ id: e,
36
+ onClick: s,
37
+ ...l,
38
+ children: [
39
+ r,
40
+ /* @__PURE__ */ n("span", { children: u })
41
+ ]
42
+ }
43
+ ) : r && f === "Right" ? /* @__PURE__ */ h(
44
+ m,
45
+ {
46
+ className: t,
47
+ style: a,
48
+ id: e,
49
+ onClick: s,
50
+ ...l,
51
+ children: [
52
+ /* @__PURE__ */ n("span", { children: u }),
53
+ r
54
+ ]
55
+ }
56
+ ) : /* @__PURE__ */ n(
57
+ m,
58
+ {
59
+ className: t,
60
+ style: a,
61
+ id: e,
62
+ onClick: s,
63
+ ...l,
64
+ children: u
65
+ }
66
+ );
67
+ }
68
+ export {
69
+ o as default
70
+ };
@@ -0,0 +1,11 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import "react";
3
+ import "react-router";
4
+ import i from "./PdxButton.js";
5
+ import d from "../link/PdxLink.js";
6
+ function u(t) {
7
+ return /* @__PURE__ */ o(d, { className: "PdxButtonLink", to: t.to, disabled: t.disabled, children: /* @__PURE__ */ o(i, { ...t }) });
8
+ }
9
+ export {
10
+ u as default
11
+ };
@@ -0,0 +1,32 @@
1
+ import { jsx as $ } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function C({
5
+ children: a,
6
+ size: e = "Medium",
7
+ variant: r = "Default",
8
+ padding: t = "Medium",
9
+ hoverable: d = !1,
10
+ clickable: l = !1,
11
+ className: s,
12
+ style: i,
13
+ id: o,
14
+ dataAttributes: m = {},
15
+ onClick: f
16
+ }) {
17
+ const u = `PdxCard ${e} ${r} Padding${t} ${d ? "Hoverable" : ""} ${l ? "Clickable" : ""} ${s || ""}`.trim(), n = { ...m };
18
+ return /* @__PURE__ */ $(
19
+ "div",
20
+ {
21
+ className: u,
22
+ style: i,
23
+ id: o,
24
+ onClick: f,
25
+ ...n,
26
+ children: a
27
+ }
28
+ );
29
+ }
30
+ export {
31
+ C as default
32
+ };
@@ -0,0 +1,80 @@
1
+ import { jsx as j } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function S({
5
+ children: n,
6
+ display: x = "Block",
7
+ flexDirection: l,
8
+ justifyContent: v,
9
+ alignItems: c,
10
+ gap: e,
11
+ padding: o,
12
+ margin: p,
13
+ width: t,
14
+ height: r,
15
+ maxWidth: s,
16
+ maxHeight: $,
17
+ overflow: b = "Visible",
18
+ textAlign: m,
19
+ backgroundColor: u,
20
+ borderRadius: f,
21
+ border: y,
22
+ className: i,
23
+ style: C,
24
+ id: L,
25
+ dataAttributes: P = {},
26
+ onClick: a
27
+ }) {
28
+ const D = `PdxDiv ${x} ${b} ${m || ""} ${i || ""}`.trim(), N = { ...P }, Z = {
29
+ ...C,
30
+ ...l && {
31
+ flexDirection: l.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "")
32
+ },
33
+ ...v && {
34
+ justifyContent: v.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "")
35
+ },
36
+ ...c && {
37
+ alignItems: c.toLowerCase()
38
+ },
39
+ ...e !== void 0 && {
40
+ gap: typeof e == "number" ? `${e}px` : e
41
+ },
42
+ ...o !== void 0 && {
43
+ padding: typeof o == "number" ? `${o}px` : o
44
+ },
45
+ ...p !== void 0 && {
46
+ margin: typeof p == "number" ? `${p}px` : p
47
+ },
48
+ ...t !== void 0 && {
49
+ width: typeof t == "number" ? `${t}px` : t
50
+ },
51
+ ...r !== void 0 && {
52
+ height: typeof r == "number" ? `${r}px` : r
53
+ },
54
+ ...s !== void 0 && {
55
+ maxWidth: typeof s == "number" ? `${s}px` : s
56
+ },
57
+ ...$ !== void 0 && {
58
+ maxHeight: typeof $ == "number" ? `${$}px` : $
59
+ },
60
+ ...u && { backgroundColor: u },
61
+ ...f !== void 0 && {
62
+ borderRadius: typeof f == "number" ? `${f}px` : f
63
+ },
64
+ ...y && { border: y }
65
+ };
66
+ return /* @__PURE__ */ j(
67
+ "div",
68
+ {
69
+ className: D,
70
+ style: Z,
71
+ id: L,
72
+ onClick: a,
73
+ ...N,
74
+ children: n
75
+ }
76
+ );
77
+ }
78
+ export {
79
+ S as default
80
+ };
@@ -0,0 +1,71 @@
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ import { useState as g } from "react";
5
+ function M({
6
+ children: d,
7
+ size: o = "Medium",
8
+ variant: r = "Default",
9
+ padding: i = "Medium",
10
+ collapsible: a = !1,
11
+ collapsed: m = !1,
12
+ onToggle: t,
13
+ title: l,
14
+ className: c,
15
+ style: P,
16
+ id: f,
17
+ dataAttributes: p = {}
18
+ }) {
19
+ const [s, h] = g(m), u = () => {
20
+ a && (h(!s), t && t());
21
+ }, x = `PdxPanel ${o} ${r} Padding${i} ${a ? "Collapsible" : ""} ${s ? "Collapsed" : ""} ${c || ""}`.trim(), C = { ...p };
22
+ return /* @__PURE__ */ n(
23
+ "div",
24
+ {
25
+ className: x,
26
+ style: P,
27
+ id: f,
28
+ ...C,
29
+ children: [
30
+ l && /* @__PURE__ */ n(
31
+ "div",
32
+ {
33
+ className: "PdxPanelHeader",
34
+ onClick: a ? u : void 0,
35
+ children: [
36
+ /* @__PURE__ */ e("h3", { className: "PdxPanelTitle", children: l }),
37
+ a && /* @__PURE__ */ e(
38
+ "button",
39
+ {
40
+ type: "button",
41
+ className: "PdxPanelToggle",
42
+ "aria-label": s ? "Expand" : "Collapse",
43
+ children: /* @__PURE__ */ e(
44
+ "svg",
45
+ {
46
+ width: "16",
47
+ height: "16",
48
+ viewBox: "0 0 24 24",
49
+ fill: "none",
50
+ stroke: "currentColor",
51
+ strokeWidth: "2",
52
+ style: {
53
+ transform: s ? "rotate(-90deg)" : "rotate(0deg)",
54
+ transition: "transform 0.2s ease"
55
+ },
56
+ children: /* @__PURE__ */ e("path", { d: "M6 9l6 6 6-6" })
57
+ }
58
+ )
59
+ }
60
+ )
61
+ ]
62
+ }
63
+ ),
64
+ /* @__PURE__ */ e("div", { className: "PdxPanelContent", children: d })
65
+ ]
66
+ }
67
+ );
68
+ }
69
+ export {
70
+ M as default
71
+ };
@@ -0,0 +1,30 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function x({
5
+ children: t,
6
+ size: e = "Medium",
7
+ backgroundColor: i = "Default",
8
+ padding: o = "Medium",
9
+ textAlign: a = "Left",
10
+ fullWidth: s = !1,
11
+ className: d,
12
+ style: l,
13
+ id: m,
14
+ dataAttributes: n = {}
15
+ }) {
16
+ const r = `PdxSection ${e} ${i} Padding${o} ${a} ${s ? "FullWidth" : ""} ${d || ""}`.trim(), u = { ...n };
17
+ return /* @__PURE__ */ c(
18
+ "section",
19
+ {
20
+ className: r,
21
+ style: l,
22
+ id: m,
23
+ ...u,
24
+ children: t
25
+ }
26
+ );
27
+ }
28
+ export {
29
+ x as default
30
+ };
@@ -0,0 +1,40 @@
1
+ import { jsxs as g, jsx as u } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function P({
5
+ count: s = 0,
6
+ max: e = 99,
7
+ dot: a = !1,
8
+ showZero: t = !1,
9
+ color: o,
10
+ children: d,
11
+ className: l,
12
+ style: n,
13
+ id: r,
14
+ dataAttributes: i = {}
15
+ }) {
16
+ const p = s > e ? `${e}+` : s, c = a || s > 0 || t, m = `PdxBadge ${l || ""}`.trim(), f = { ...i };
17
+ return /* @__PURE__ */ g(
18
+ "span",
19
+ {
20
+ className: m,
21
+ style: n,
22
+ id: r,
23
+ ...f,
24
+ children: [
25
+ d,
26
+ c && /* @__PURE__ */ u(
27
+ "span",
28
+ {
29
+ className: `PdxBadgeCount ${a ? "Dot" : ""}`,
30
+ style: o ? { backgroundColor: o } : void 0,
31
+ children: !a && p
32
+ }
33
+ )
34
+ ]
35
+ }
36
+ );
37
+ }
38
+ export {
39
+ P as default
40
+ };
@@ -0,0 +1,58 @@
1
+ import { jsx as c, jsxs as C } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ import { useState as L, useEffect as P } from "react";
5
+ function I({
6
+ items: i,
7
+ value: e,
8
+ defaultValue: r,
9
+ onChange: t,
10
+ className: o,
11
+ style: u,
12
+ id: f,
13
+ dataAttributes: h = {}
14
+ }) {
15
+ const [x, a] = L(
16
+ r || []
17
+ );
18
+ P(() => {
19
+ e && a(e);
20
+ }, [e]);
21
+ const l = e || x, p = (s) => {
22
+ const d = l.includes(s) ? l.filter((m) => m !== s) : [...l, s];
23
+ e || a(d), t && t(d);
24
+ }, b = `PdxCheckList ${o || ""}`.trim(), k = { ...h };
25
+ return /* @__PURE__ */ c(
26
+ "ul",
27
+ {
28
+ className: b,
29
+ style: u,
30
+ id: f,
31
+ ...k,
32
+ children: i.map((s) => {
33
+ const n = l.includes(s.value) || s.checked;
34
+ return /* @__PURE__ */ c("li", { className: "PdxCheckListItem", children: /* @__PURE__ */ C(
35
+ "label",
36
+ {
37
+ className: `PdxCheckListLabel ${s.disabled ? "Disabled" : ""}`,
38
+ children: [
39
+ /* @__PURE__ */ c(
40
+ "input",
41
+ {
42
+ type: "checkbox",
43
+ checked: n,
44
+ disabled: s.disabled,
45
+ onChange: () => p(s.value)
46
+ }
47
+ ),
48
+ /* @__PURE__ */ c("span", { children: s.label })
49
+ ]
50
+ }
51
+ ) }, s.value);
52
+ })
53
+ }
54
+ );
55
+ }
56
+ export {
57
+ I as default
58
+ };
@@ -0,0 +1,70 @@
1
+ import { jsxs as $, jsx as t } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function u({
5
+ data: s,
6
+ columns: r,
7
+ showHeader: p = !0,
8
+ striped: f = !1,
9
+ bordered: m = !1,
10
+ hoverable: x = !1,
11
+ rowKey: i,
12
+ emptyText: g = "No data",
13
+ className: h,
14
+ style: o,
15
+ id: v,
16
+ dataAttributes: N = {}
17
+ }) {
18
+ const l = r.map(
19
+ (e) => typeof e.width == "number" ? `${e.width}px` : e.width || "1fr"
20
+ ).join(" "), P = `PdxDataGrid ${f ? "Striped" : ""} ${m ? "Bordered" : ""} ${x ? "Hoverable" : ""} ${h || ""}`.trim(), D = { ...N }, G = (e, d) => typeof i == "function" ? i(e) : String(typeof i == "string" ? e[i] : d);
21
+ return /* @__PURE__ */ $(
22
+ "div",
23
+ {
24
+ className: P,
25
+ style: o,
26
+ id: v,
27
+ ...D,
28
+ children: [
29
+ p && /* @__PURE__ */ t(
30
+ "div",
31
+ {
32
+ className: "PdxDataGridHeader",
33
+ style: { gridTemplateColumns: l },
34
+ children: r.map((e) => /* @__PURE__ */ t(
35
+ "div",
36
+ {
37
+ className: `PdxDataGridCell Align${e.align || "Left"}`,
38
+ children: e.title
39
+ },
40
+ e.key
41
+ ))
42
+ }
43
+ ),
44
+ s.length === 0 && /* @__PURE__ */ t("div", { className: "PdxDataGridEmpty", children: g }),
45
+ s.map((e, d) => /* @__PURE__ */ t(
46
+ "div",
47
+ {
48
+ className: "PdxDataGridRow",
49
+ style: { gridTemplateColumns: l },
50
+ children: r.map((a) => {
51
+ const n = a.dataIndex ? e[a.dataIndex] : void 0;
52
+ return /* @__PURE__ */ t(
53
+ "div",
54
+ {
55
+ className: `PdxDataGridCell Align${a.align || "Left"}`,
56
+ children: a.render ? a.render(n, e, d) : n
57
+ },
58
+ a.key
59
+ );
60
+ })
61
+ },
62
+ G(e, d)
63
+ ))
64
+ ]
65
+ }
66
+ );
67
+ }
68
+ export {
69
+ u as default
70
+ };
@@ -0,0 +1,35 @@
1
+ import { jsx as i, jsxs as r, Fragment as h } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function f({
5
+ items: d,
6
+ size: e = "Medium",
7
+ bordered: l = !1,
8
+ split: c = !0,
9
+ renderItem: t,
10
+ className: n,
11
+ style: o,
12
+ id: x,
13
+ dataAttributes: m = {}
14
+ }) {
15
+ const p = `PdxList ${e} ${l ? "Bordered" : ""} ${c ? "Split" : ""} ${n || ""}`.trim(), P = { ...m };
16
+ return /* @__PURE__ */ i(
17
+ "ul",
18
+ {
19
+ className: p,
20
+ style: o,
21
+ id: x,
22
+ ...P,
23
+ children: d.map((s, a) => /* @__PURE__ */ i("li", { className: "PdxListItem", children: t ? t(s, a) : /* @__PURE__ */ r(h, { children: [
24
+ /* @__PURE__ */ r("div", { className: "PdxListContent", children: [
25
+ /* @__PURE__ */ i("div", { className: "PdxListTitle", children: s.title }),
26
+ s.description && /* @__PURE__ */ i("div", { className: "PdxListDescription", children: s.description })
27
+ ] }),
28
+ s.extra && /* @__PURE__ */ i("div", { className: "PdxListExtra", children: s.extra })
29
+ ] }) }, a))
30
+ }
31
+ );
32
+ }
33
+ export {
34
+ f as default
35
+ };
@@ -0,0 +1,38 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function f({
5
+ value: t,
6
+ size: i = "Medium",
7
+ status: c = "Default",
8
+ showLabel: a = !0,
9
+ label: s,
10
+ className: m,
11
+ style: n,
12
+ id: o,
13
+ dataAttributes: l = {}
14
+ }) {
15
+ const d = Math.min(100, Math.max(0, t)), P = `PdxProgress ${i} ${c} ${m || ""}`.trim(), x = { ...l };
16
+ return /* @__PURE__ */ r(
17
+ "div",
18
+ {
19
+ className: P,
20
+ style: n,
21
+ id: o,
22
+ ...x,
23
+ children: [
24
+ (s || a) && /* @__PURE__ */ r("div", { className: "PdxProgressHeader", children: [
25
+ s && /* @__PURE__ */ e("span", { children: s }),
26
+ a && /* @__PURE__ */ r("span", { children: [
27
+ d,
28
+ "%"
29
+ ] })
30
+ ] }),
31
+ /* @__PURE__ */ e("div", { className: "PdxProgressTrack", children: /* @__PURE__ */ e("div", { className: "PdxProgressBar", style: { width: `${d}%` } }) })
32
+ ]
33
+ }
34
+ );
35
+ }
36
+ export {
37
+ f as default
38
+ };
@@ -0,0 +1,36 @@
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function u({
5
+ size: n = "Medium",
6
+ label: r,
7
+ color: s,
8
+ className: i,
9
+ style: a,
10
+ id: d,
11
+ dataAttributes: o = {}
12
+ }) {
13
+ const p = `PdxSpinner ${n} ${i || ""}`.trim(), t = { ...o };
14
+ return /* @__PURE__ */ l(
15
+ "div",
16
+ {
17
+ className: p,
18
+ style: a,
19
+ id: d,
20
+ ...t,
21
+ children: [
22
+ /* @__PURE__ */ e(
23
+ "span",
24
+ {
25
+ className: "PdxSpinnerCircle",
26
+ style: s ? { borderTopColor: s } : void 0
27
+ }
28
+ ),
29
+ r && /* @__PURE__ */ e("span", { className: "PdxSpinnerLabel", children: r })
30
+ ]
31
+ }
32
+ );
33
+ }
34
+ export {
35
+ u as default
36
+ };
@@ -0,0 +1,40 @@
1
+ import { jsxs as r, jsx as t } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ import { TrendingUp as S, TrendingDown as f } from "lucide-react";
5
+ function b({
6
+ title: i,
7
+ value: s,
8
+ prefix: c,
9
+ suffix: d,
10
+ trend: a,
11
+ precision: e,
12
+ color: n,
13
+ className: l,
14
+ style: m,
15
+ id: o,
16
+ dataAttributes: x = {}
17
+ }) {
18
+ const P = typeof s == "number" && e !== void 0 ? s.toFixed(e) : s, p = `PdxStatistic ${a || ""} ${l || ""}`.trim(), N = { ...x };
19
+ return /* @__PURE__ */ r(
20
+ "div",
21
+ {
22
+ className: p,
23
+ style: m,
24
+ id: o,
25
+ ...N,
26
+ children: [
27
+ i && /* @__PURE__ */ t("div", { className: "PdxStatisticTitle", children: i }),
28
+ /* @__PURE__ */ r("div", { className: "PdxStatisticValue", style: n ? { color: n } : void 0, children: [
29
+ a && /* @__PURE__ */ t("span", { className: "PdxStatisticTrend", children: a === "Up" ? /* @__PURE__ */ t(S, { className: "PdxStatisticTrendIcon" }) : /* @__PURE__ */ t(f, { className: "PdxStatisticTrendIcon" }) }),
30
+ c && /* @__PURE__ */ t("span", { className: "PdxStatisticPrefix", children: c }),
31
+ /* @__PURE__ */ t("span", { className: "PdxStatisticNumber", children: P }),
32
+ d && /* @__PURE__ */ t("span", { className: "PdxStatisticSuffix", children: d })
33
+ ] })
34
+ ]
35
+ }
36
+ );
37
+ }
38
+ export {
39
+ b as default
40
+ };
@@ -0,0 +1,37 @@
1
+ import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import "@prodivix/shared";
4
+ function S({
5
+ items: d,
6
+ current: a = 0,
7
+ direction: l = "Horizontal",
8
+ className: c,
9
+ style: n,
10
+ id: r,
11
+ dataAttributes: o = {}
12
+ }) {
13
+ const p = `PdxSteps ${l} ${c || ""}`.trim(), m = { ...o };
14
+ return /* @__PURE__ */ t(
15
+ "div",
16
+ {
17
+ className: p,
18
+ style: n,
19
+ id: r,
20
+ ...m,
21
+ children: d.map((e, s) => {
22
+ const P = s < a ? "Completed" : s === a ? "Active" : "Pending";
23
+ return /* @__PURE__ */ i("div", { className: `PdxStep ${P}`, children: [
24
+ /* @__PURE__ */ t("div", { className: "PdxStepIndicator", children: s + 1 }),
25
+ /* @__PURE__ */ i("div", { className: "PdxStepContent", children: [
26
+ /* @__PURE__ */ t("div", { className: "PdxStepTitle", children: e.title }),
27
+ e.description && /* @__PURE__ */ t("div", { className: "PdxStepDescription", children: e.description })
28
+ ] }),
29
+ s < d.length - 1 && /* @__PURE__ */ t("div", { className: "PdxStepConnector" })
30
+ ] }, e.title);
31
+ })
32
+ }
33
+ );
34
+ }
35
+ export {
36
+ S as default
37
+ };