@empreint/ui 1.1.0 → 1.2.1

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/README.md +39 -9
  2. package/dist/components/breadcrumb/breadcrumb.js +29 -0
  3. package/dist/components/breadcrumb/breadcrumb.module.js +8 -0
  4. package/dist/components/button/button.js +14 -0
  5. package/dist/components/button/button.module.js +3 -0
  6. package/dist/components/card/card.js +23 -0
  7. package/dist/components/card/card.module.js +8 -0
  8. package/dist/components/checkbox/checkbox.js +18 -0
  9. package/dist/components/checkbox/checkbox.module.js +7 -0
  10. package/dist/components/chip/chip.js +25 -0
  11. package/dist/components/chip/chip.module.js +6 -0
  12. package/dist/components/collapsible/collapsible.js +51 -0
  13. package/dist/components/collapsible/collapsible.module.js +9 -0
  14. package/dist/components/container/container.js +12 -0
  15. package/dist/components/container/container.module.js +3 -0
  16. package/dist/components/dropdown-menu/dropdown-menu.js +59 -0
  17. package/dist/components/dropdown-menu/dropdown-menu.module.js +8 -0
  18. package/dist/components/dropzone/dropzone.js +99 -0
  19. package/dist/components/dropzone/dropzone.module.js +9 -0
  20. package/dist/components/flex/flex.js +17 -0
  21. package/dist/components/flex/flex.module.js +3 -0
  22. package/dist/components/grid/grid.js +16 -0
  23. package/dist/components/grid/grid.module.js +3 -0
  24. package/dist/components/input/input.js +44 -0
  25. package/dist/components/input/input.module.js +8 -0
  26. package/dist/components/language-selector/language-selector.js +19 -0
  27. package/dist/components/language-selector/language-selector.module.js +3 -0
  28. package/dist/components/list/list.js +15 -0
  29. package/dist/components/list/list.module.js +6 -0
  30. package/dist/components/loader/loader.js +21 -0
  31. package/dist/components/loader/loader.module.js +8 -0
  32. package/dist/components/modal/modal.js +69 -0
  33. package/dist/components/modal/modal.module.js +10 -0
  34. package/dist/components/pagination/pagination.js +77 -0
  35. package/dist/components/pagination/pagination.module.js +6 -0
  36. package/dist/components/popover/popover.js +38 -0
  37. package/dist/components/popover/popover.module.js +7 -0
  38. package/dist/components/radio-group/radio-group.js +43 -0
  39. package/dist/components/radio-group/radio-group.module.js +8 -0
  40. package/dist/components/select/select.js +75 -0
  41. package/dist/components/select/select.module.js +10 -0
  42. package/dist/components/separator/separator.js +14 -0
  43. package/dist/components/separator/separator.module.js +3 -0
  44. package/dist/components/sidebar/sidebar.js +31 -0
  45. package/dist/components/sidebar/sidebar.module.js +9 -0
  46. package/dist/components/slot/slot.js +39 -0
  47. package/dist/components/table/table.js +45 -0
  48. package/dist/components/table/table.module.js +10 -0
  49. package/dist/components/tabs/tabs.js +45 -0
  50. package/dist/components/tabs/tabs.module.js +8 -0
  51. package/dist/components/text/text.js +14 -0
  52. package/dist/components/text/text.module.js +3 -0
  53. package/dist/components/title/title.js +15 -0
  54. package/dist/components/title/title.module.js +3 -0
  55. package/dist/components/wizard/wizard.js +108 -0
  56. package/dist/components/wizard/wizard.module.js +8 -0
  57. package/dist/hooks/use-breadcrumb/use-breadcrumb.js +13 -0
  58. package/dist/hooks/use-disclosure/use-disclosure.js +20 -0
  59. package/dist/hooks/use-match-device/use-match-device.js +13 -0
  60. package/dist/hooks/use-match-resolution/use-match-resolution.js +53 -0
  61. package/dist/hooks/use-outside-alerter/use-outside-alerter.js +20 -0
  62. package/dist/hooks/use-pagination/use-pagination.js +31 -0
  63. package/dist/hooks/use-scroll-to/use-scroll-to.js +6 -0
  64. package/dist/hooks/use-visible/use-visible.js +13 -0
  65. package/dist/hooks/use-wizard/use-wizard.js +14 -0
  66. package/dist/index.d.ts +183 -297
  67. package/dist/index.js +40 -0
  68. package/dist/styles.css +2 -0
  69. package/package.json +20 -32
  70. package/LICENSE.md +0 -674
  71. package/dist/empreint.css +0 -2
  72. package/dist/empreint.js +0 -958
@@ -0,0 +1,108 @@
1
+ "use client";
2
+ import { useWizard as e } from "../../hooks/use-wizard/use-wizard.js";
3
+ import { Slot as t } from "../slot/slot.js";
4
+ import { Title as n } from "../title/title.js";
5
+ import r from "./wizard.module.js";
6
+ import i from "clsx";
7
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
+ import { createContext as s, useCallback as c, useContext as l, useEffect as u, useState as d } from "react";
9
+ //#region src/components/wizard/wizard.tsx
10
+ var f = s(null), p = ({ children: t, initialStep: n, className: o, ...s }) => {
11
+ let [l, u] = d([]), p = l.length, { currentIndex: m, nextStep: h, previousStep: g, isFirstStep: _, isLastStep: v } = e({
12
+ step: n,
13
+ totalSteps: p
14
+ });
15
+ return /* @__PURE__ */ a(f, {
16
+ value: {
17
+ currentStep: l[m - 1] ?? null,
18
+ currentIndex: m,
19
+ totalSteps: p,
20
+ steps: l,
21
+ onAddStep: c((e) => {
22
+ u((t) => t.some((t) => t.name === e.name) ? t : [...t, e]);
23
+ }, []),
24
+ onRemoveStep: c((e) => {
25
+ u((t) => t.some((t) => t.name === e) ? t.filter((t) => t.name !== e) : t);
26
+ }, []),
27
+ onNext: h,
28
+ onPrevious: g,
29
+ isFirstStep: _,
30
+ isLastStep: v
31
+ },
32
+ children: /* @__PURE__ */ a("div", {
33
+ ...s,
34
+ className: i(r.wizard, o),
35
+ children: t
36
+ })
37
+ });
38
+ }, m = ({ children: e, className: t, ...n }) => /* @__PURE__ */ a("div", {
39
+ ...n,
40
+ className: i(r.header, t),
41
+ children: e
42
+ }), h = ({ className: e, ...t }) => {
43
+ let o = l(f);
44
+ return /* @__PURE__ */ a(n, {
45
+ ...t,
46
+ className: i(r.title, e),
47
+ children: o?.currentStep?.title
48
+ });
49
+ }, g = ({ className: e, ...t }) => {
50
+ let n = l(f);
51
+ return n?.totalSteps === 0 ? null : /* @__PURE__ */ o("span", {
52
+ ...t,
53
+ className: e,
54
+ children: [
55
+ n?.currentIndex,
56
+ " / ",
57
+ n?.totalSteps
58
+ ]
59
+ });
60
+ }, _ = ({ children: e, name: t, title: n, className: o, ...s }) => {
61
+ let c = l(f);
62
+ return u(() => (c?.onAddStep({
63
+ name: t,
64
+ title: n
65
+ }), () => {
66
+ c?.onRemoveStep(t);
67
+ }), [
68
+ t,
69
+ n,
70
+ c?.onAddStep,
71
+ c?.onRemoveStep
72
+ ]), c?.currentStep?.name === t ? /* @__PURE__ */ a("div", {
73
+ ...s,
74
+ className: i(r.step, o),
75
+ children: e
76
+ }) : null;
77
+ }, v = ({ children: e, className: t, ...n }) => /* @__PURE__ */ a("div", {
78
+ ...n,
79
+ className: i(r.footer, t),
80
+ children: e
81
+ }), y = ({ children: e, onClick: n, className: r, ...i }) => {
82
+ let o = l(f), s = () => {
83
+ n && n(), o?.onNext();
84
+ };
85
+ return o?.isLastStep ? null : /* @__PURE__ */ a(t, {
86
+ ...i,
87
+ className: r,
88
+ onClick: s,
89
+ children: e
90
+ });
91
+ }, b = ({ children: e, onClick: n, className: r, ...i }) => {
92
+ let o = l(f), s = () => {
93
+ n && n(), o?.onPrevious();
94
+ };
95
+ return o?.isFirstStep ? null : /* @__PURE__ */ a(t, {
96
+ ...i,
97
+ className: r,
98
+ onClick: s,
99
+ children: e
100
+ });
101
+ }, x = ({ children: e, onClick: n, className: r, ...i }) => l(f)?.isLastStep ? /* @__PURE__ */ a(t, {
102
+ ...i,
103
+ className: r,
104
+ onClick: n,
105
+ children: e
106
+ }) : null;
107
+ //#endregion
108
+ export { p as Wizard, x as WizardFinalize, v as WizardFooter, m as WizardHeader, g as WizardIndicator, y as WizardNext, b as WizardPrevious, _ as WizardStep, h as WizardTitle };
@@ -0,0 +1,8 @@
1
+ var e = {
2
+ wizard: "_wizard_1yz95_1",
3
+ header: "_header_1yz95_7",
4
+ title: "_title_1yz95_12",
5
+ footer: "_footer_1yz95_16"
6
+ };
7
+ //#endregion
8
+ export { e as default };
@@ -0,0 +1,13 @@
1
+ //#region src/hooks/use-breadcrumb/use-breadcrumb.ts
2
+ var e = ({ url: e = new URL(location.href), mapping: t }) => {
3
+ let n = e.pathname.split("/").slice(1), r = "";
4
+ return n.map((e) => {
5
+ let n = t?.find(({ path: t }) => e === t)?.label ?? e, i = `${r}/${e}`;
6
+ return r = i, {
7
+ label: n,
8
+ url: i
9
+ };
10
+ });
11
+ };
12
+ //#endregion
13
+ export { e as useBreadcrumb };
@@ -0,0 +1,20 @@
1
+ import { useOutsideAlerter as e } from "../use-outside-alerter/use-outside-alerter.js";
2
+ import { useEffect as t, useRef as n, useState as r } from "react";
3
+ //#region src/hooks/use-disclosure/use-disclosure.ts
4
+ var i = ({ closeOnOutsideClick: i = !0 } = {}) => {
5
+ let [a, o] = r(!1), s = n(null), { hasClickedOutside: c, onReset: l } = e(s);
6
+ return t(() => {
7
+ i && c && (o(!1), l());
8
+ }, [
9
+ i,
10
+ c,
11
+ l
12
+ ]), {
13
+ isOpen: a,
14
+ onClose: () => o(!1),
15
+ onToggle: () => o(!a),
16
+ ref: s
17
+ };
18
+ };
19
+ //#endregion
20
+ export { i as useDisclosure };
@@ -0,0 +1,13 @@
1
+ import { UAParser as e } from "ua-parser-js";
2
+ //#region src/hooks/use-match-device/use-match-device.ts
3
+ var t = (t) => {
4
+ let n = new e(t).getDevice();
5
+ return {
6
+ isMobile: n.is("mobile"),
7
+ isTablet: n.is("tablet"),
8
+ isMobileOrTablet: n.is("mobile") || n.is("tablet"),
9
+ isDesktop: !n.type
10
+ };
11
+ };
12
+ //#endregion
13
+ export { t as useMatchDevice };
@@ -0,0 +1,53 @@
1
+ import { useMatchDevice as e } from "../use-match-device/use-match-device.js";
2
+ import { useCallback as t, useEffect as n, useState as r } from "react";
3
+ //#region src/hooks/use-match-resolution/use-match-resolution.ts
4
+ var i = {
5
+ desktop: "(min-width: 1281px)",
6
+ laptop: "(min-width: 1025px) and (max-width: 1280px)",
7
+ laptopOrUpper: "(min-width: 1025px)",
8
+ laptopOrLower: "(max-width: 1280px)",
9
+ tablet: "(min-width: 768px) and (max-width: 1024px)",
10
+ tabletOrUpper: "(min-width: 768px)",
11
+ tabletOrLower: "(max-width: 1024px)",
12
+ largeMobile: "(min-width: 481px) and (max-width: 767px)",
13
+ largeMobileOrUpper: "(min-width: 481px)",
14
+ largeMobileOrLower: "(max-width: 767px)",
15
+ mobile: "(min-width: 320px) and (max-width: 480px)",
16
+ portrait: "(orientation: portrait)",
17
+ landscape: "(orientation: landscape)"
18
+ }, a = (a, o = i) => {
19
+ let s = typeof window < "u", { isDesktop: c, isMobile: l } = e(a), u = t((e) => s && window.matchMedia(e).matches, [s]), d = t(() => ({
20
+ isDesktop: s ? u(o.desktop) : c,
21
+ isLaptop: s ? u(o.laptop) : c,
22
+ isLaptopOrUpper: s ? u(o.laptopOrUpper) : c,
23
+ isLaptopOrLower: s ? u(o.laptopOrLower) : !1,
24
+ isTablet: s ? u(o.tablet) : l,
25
+ isTabletOrUpper: s ? u(o.tabletOrUpper) : !1,
26
+ isTabletOrLower: s ? u(o.tabletOrLower) : l,
27
+ isLargeMobile: s ? u(o.largeMobile) : l,
28
+ isLargeMobileOrUpper: s ? u(o.largeMobileOrUpper) : !1,
29
+ isLargeMobileOrLower: s ? u(o.largeMobileOrLower) : l,
30
+ isMobile: s ? u(o.mobile) : l,
31
+ isPortrait: s ? u(o.portrait) : !1,
32
+ isLandscape: s ? u(o.landscape) : !1
33
+ }), [
34
+ o,
35
+ s,
36
+ c,
37
+ l,
38
+ u
39
+ ]), [f, p] = r(d());
40
+ return n(() => {
41
+ if (!s) return;
42
+ let e = () => p(d());
43
+ return window.addEventListener("resize", e), () => {
44
+ window.removeEventListener("resize", e);
45
+ };
46
+ }, [s, d]), {
47
+ resolution: f,
48
+ breakpoints: o,
49
+ match: u
50
+ };
51
+ };
52
+ //#endregion
53
+ export { i as defaultBreakpoints, a as useMatchResolution };
@@ -0,0 +1,20 @@
1
+ import { useEffect as e, useState as t } from "react";
2
+ //#region src/hooks/use-outside-alerter/use-outside-alerter.ts
3
+ var n = (n) => {
4
+ let [r, i] = t(!1);
5
+ return e(() => {
6
+ let e = (e) => {
7
+ e.target && n.current && i(!n.current.contains(e.target));
8
+ };
9
+ return document.addEventListener("mousedown", e), () => {
10
+ document.removeEventListener("mousedown", e);
11
+ };
12
+ }, [n]), {
13
+ hasClickedOutside: r,
14
+ onReset: () => {
15
+ i(!1);
16
+ }
17
+ };
18
+ };
19
+ //#endregion
20
+ export { n as useOutsideAlerter };
@@ -0,0 +1,31 @@
1
+ import { useMemo as e, useState as t } from "react";
2
+ //#region src/hooks/use-pagination/use-pagination.ts
3
+ var n = ({ page: n, totalRecords: r, maxRecordsPerPage: i = 10, itemNeighbours: a = 2, minItems: o = 5, onChange: s }) => {
4
+ let [c, l] = t(n), u = Math.ceil(r / i), d = e(() => {
5
+ let e = [], t = Math.max(1, Math.min(c - a, u + 1 - o)), n = Math.min(u, Math.max(o, c + a));
6
+ for (let r = t; r <= n; r++) e.push(r);
7
+ return e;
8
+ }, [
9
+ c,
10
+ u,
11
+ a,
12
+ o
13
+ ]), f = (e) => {
14
+ let t = Math.max(1, Math.min(e, u));
15
+ t !== c && (l(t), s?.(t));
16
+ };
17
+ return {
18
+ currentPage: c,
19
+ total: u,
20
+ items: d,
21
+ goToPage: f,
22
+ goToFirst: () => f(1),
23
+ goToPrevious: () => f(c - 1),
24
+ goToNext: () => f(c + 1),
25
+ goToLast: () => f(u),
26
+ isFirst: c === 1,
27
+ isLast: c === u
28
+ };
29
+ };
30
+ //#endregion
31
+ export { n as usePagination };
@@ -0,0 +1,6 @@
1
+ //#region src/hooks/use-scroll-to/use-scroll-to.tsx
2
+ var e = (e) => typeof window < "u" ? { scrollToTop: () => {
3
+ e?.current && window.scrollTo(0, e.current.offsetTop);
4
+ } } : { scrollToTop: () => null };
5
+ //#endregion
6
+ export { e as useScrollTo };
@@ -0,0 +1,13 @@
1
+ import { useEffect as e, useState as t } from "react";
2
+ //#region src/hooks/use-visible/use-visible.ts
3
+ var n = (n) => {
4
+ let [r, i] = t(!1);
5
+ return e(() => {
6
+ let e = new IntersectionObserver(([e]) => i(e.isIntersecting));
7
+ return n?.current && e.observe(n.current), () => {
8
+ n?.current && e.unobserve(n.current);
9
+ };
10
+ }, [n]), r;
11
+ };
12
+ //#endregion
13
+ export { n as useVisible };
@@ -0,0 +1,14 @@
1
+ import { useState as e } from "react";
2
+ //#region src/hooks/use-wizard/use-wizard.ts
3
+ var t = ({ totalSteps: t, step: n = 1 }) => {
4
+ let [r, i] = e(n);
5
+ return {
6
+ currentIndex: r,
7
+ nextStep: () => i(r + 1),
8
+ previousStep: () => i(r - 1),
9
+ isFirstStep: r === 1,
10
+ isLastStep: r === t
11
+ };
12
+ };
13
+ //#endregion
14
+ export { t as useWizard };