@companix/uikit 0.1.15 → 0.1.16

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 (83) hide show
  1. package/dist/DrawerMobile/MobileDrawer.scss +71 -0
  2. package/dist/DrawerMobile/constants.d.ts +9 -0
  3. package/dist/DrawerMobile/context.d.ts +18 -0
  4. package/dist/DrawerMobile/helpers.d.ts +13 -0
  5. package/dist/DrawerMobile/index.d.ts +17 -0
  6. package/dist/DrawerMobile/types.d.ts +5 -0
  7. package/dist/DrawerMobile/use-prevent-scroll.d.ts +5 -0
  8. package/dist/Popup/index.d.ts +4 -2
  9. package/dist/__helpers/createPopupRegistry.d.ts +4 -0
  10. package/dist/bundle.es.js +112 -109
  11. package/dist/bundle.es10.js +1 -1
  12. package/dist/bundle.es13.js +4 -4
  13. package/dist/bundle.es14.js +4 -4
  14. package/dist/bundle.es15.js +2 -2
  15. package/dist/bundle.es16.js +1 -1
  16. package/dist/bundle.es17.js +1 -1
  17. package/dist/bundle.es19.js +1 -1
  18. package/dist/bundle.es22.js +1 -1
  19. package/dist/bundle.es23.js +260 -13
  20. package/dist/bundle.es24.js +14 -21
  21. package/dist/bundle.es25.js +20 -37
  22. package/dist/bundle.es26.js +38 -21
  23. package/dist/bundle.es27.js +20 -18
  24. package/dist/bundle.es28.js +18 -20
  25. package/dist/bundle.es29.js +20 -43
  26. package/dist/bundle.es30.js +37 -114
  27. package/dist/bundle.es31.js +119 -72
  28. package/dist/bundle.es32.js +68 -38
  29. package/dist/bundle.es33.js +42 -10
  30. package/dist/bundle.es34.js +11 -85
  31. package/dist/bundle.es35.js +85 -19
  32. package/dist/bundle.es36.js +20 -7
  33. package/dist/bundle.es37.js +7 -3
  34. package/dist/bundle.es38.js +3 -23
  35. package/dist/bundle.es39.js +16 -45
  36. package/dist/bundle.es40.js +51 -56
  37. package/dist/bundle.es41.js +57 -162
  38. package/dist/bundle.es42.js +160 -79
  39. package/dist/bundle.es43.js +81 -7
  40. package/dist/bundle.es44.js +7 -35
  41. package/dist/bundle.es45.js +33 -20
  42. package/dist/bundle.es46.js +19 -47
  43. package/dist/bundle.es47.js +49 -11
  44. package/dist/bundle.es48.js +11 -13
  45. package/dist/bundle.es49.js +13 -13
  46. package/dist/bundle.es50.js +13 -30
  47. package/dist/bundle.es51.js +29 -25
  48. package/dist/bundle.es52.js +17 -29
  49. package/dist/bundle.es53.js +36 -48
  50. package/dist/bundle.es54.js +49 -50
  51. package/dist/bundle.es55.js +56 -8
  52. package/dist/bundle.es56.js +8 -26
  53. package/dist/bundle.es57.js +27 -5
  54. package/dist/bundle.es58.js +5 -66
  55. package/dist/bundle.es59.js +66 -23
  56. package/dist/bundle.es60.js +22 -23
  57. package/dist/bundle.es61.js +24 -88
  58. package/dist/bundle.es62.js +88 -18
  59. package/dist/bundle.es63.js +17 -92
  60. package/dist/bundle.es64.js +92 -73
  61. package/dist/bundle.es65.js +73 -23
  62. package/dist/bundle.es66.js +20 -35
  63. package/dist/bundle.es67.js +37 -68
  64. package/dist/bundle.es68.js +23 -10
  65. package/dist/bundle.es69.js +78 -42
  66. package/dist/bundle.es70.js +93 -33
  67. package/dist/bundle.es71.js +10 -66
  68. package/dist/bundle.es72.js +69 -40
  69. package/dist/bundle.es73.js +10 -14
  70. package/dist/bundle.es74.js +43 -32
  71. package/dist/bundle.es75.js +32 -69
  72. package/dist/bundle.es76.js +65 -74
  73. package/dist/bundle.es77.js +39 -47
  74. package/dist/bundle.es78.js +14 -13
  75. package/dist/bundle.es79.js +32 -14
  76. package/dist/bundle.es80.js +72 -0
  77. package/dist/bundle.es81.js +77 -0
  78. package/dist/bundle.es82.js +51 -0
  79. package/dist/bundle.es83.js +16 -0
  80. package/dist/bundle.es84.js +16 -0
  81. package/dist/index.d.ts +3 -1
  82. package/dist/index.scss +1 -0
  83. package/package.json +1 -1
@@ -1,26 +1,76 @@
1
- import { jsx as u } from "react/jsx-runtime";
2
- import { forwardRef as m, useCallback as i } from "react";
3
- import c from "react-input-mask";
4
- const I = m(
5
- ({ mask: r, maskChar: f = "_", onChange: n, onValueChange: o, ...a }, e) => {
6
- const p = i(
7
- (t) => {
8
- n?.(t), o?.(t.target.value, t.target);
9
- },
10
- [n, o]
11
- );
12
- return r ? /* @__PURE__ */ u(
13
- c,
14
- {
15
- inputRef: e,
16
- mask: r,
17
- maskChar: f,
18
- onChange: p,
19
- ...a
20
- }
21
- ) : /* @__PURE__ */ u("input", { ref: e, ...a, onChange: p });
1
+ import { clamp as m } from "@companix/utils-browser";
2
+ import { formatTime as i } from "@companix/utils-js";
3
+ const d = (n, r) => new Date(r, n, 0).getDate(), u = (n, r) => new Date(r, n - 1, 1).getDay(), g = (n) => n === 0 ? 6 : n - 1, D = (n) => new Array(n).fill(0), T = {
4
+ add: (n, r) => n.includes(r) ? [...n] : [...n, r],
5
+ remove: (n, r) => n.filter((t) => r !== t)
6
+ }, p = (n) => ({
7
+ day: n.getDate(),
8
+ month: n.getMonth() + 1,
9
+ year: n.getFullYear()
10
+ }), A = ({ min: n, max: r }) => (t) => {
11
+ if (n.year === t.year) {
12
+ if (t.month !== 0 && t.month < n.month)
13
+ return t.month = 0, t.day = 0, t;
14
+ if (t.month === n.month && t.day < n.day && t.day !== 0)
15
+ return t.day = 0, t;
22
16
  }
23
- );
17
+ if (r.year === t.year) {
18
+ if (t.month !== 0 && t.month > r.month)
19
+ return t.month = 0, t.day = 0, t;
20
+ if (t.month === r.month && t.day > r.day && t.day !== 0)
21
+ return t.day = 0, t;
22
+ }
23
+ }, M = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"], w = [
24
+ "Январь",
25
+ "Февраль",
26
+ "Март",
27
+ "Апрель",
28
+ "Май",
29
+ "Июнь",
30
+ "Июль",
31
+ "Август",
32
+ "Сентябрь",
33
+ "Октябрь",
34
+ "Ноябрь",
35
+ "Декабрь"
36
+ ], c = 9999, a = 100, F = (n, r) => {
37
+ const t = [], o = m(n - r, a, c), e = m(n + r, a, c);
38
+ for (let s = o; s <= e; s++)
39
+ t.push({ title: String(s).padStart(4, "0"), value: s });
40
+ return t;
41
+ }, Y = (n) => {
42
+ const r = [], t = new Intl.DateTimeFormat(n, {
43
+ month: "long"
44
+ });
45
+ for (let o = 0; o < 12; o++)
46
+ r.push({
47
+ title: t.format(new Date(2023, o, 15)),
48
+ value: o
49
+ });
50
+ return r;
51
+ }, E = (n, r) => r.reduce((t, o) => t.replaceAll(o, ""), n.trim()), _ = ({ hours: n, minutes: r }, t = ":") => [i(n), i(r)].join(t), h = (n, r = ":") => {
52
+ const [t, o] = [i(n.hours), i(n.minutes)], e = [t, o].join(r);
53
+ return { title: e, value: e, hours: t, minutes: o };
54
+ }, I = (n, r = ":") => {
55
+ const t = { minutes: -n, hours: 0 };
56
+ return Array.from({ length: 1440 / n }).map(() => (t.minutes += n, t.minutes === 60 && (t.minutes = 0, t.hours++), h(t, r)));
57
+ };
24
58
  export {
25
- I as InputElement
59
+ c as DEFAULT_MAX_YEAR,
60
+ a as DEFAULT_MIN_YEAR,
61
+ w as DefaultMonths,
62
+ T as arrays,
63
+ _ as convertTimeToOption,
64
+ A as createDateValidation,
65
+ D as createVoids,
66
+ p as dateToFormat,
67
+ g as getDayIndex,
68
+ u as getFirstDay,
69
+ d as getMonthMaxDay,
70
+ Y as getMonths,
71
+ h as getTimeValue,
72
+ I as getTimesOptions,
73
+ F as getYears,
74
+ E as removeDigits,
75
+ M as weeks
26
76
  };
@@ -1,41 +1,26 @@
1
- import { jsxs as b, jsx as o } from "react/jsx-runtime";
2
- import h from "classnames";
3
- import { attr as e } from "@companix/utils-browser";
4
- import { forwardRef as x } from "react";
5
- import { useInputPadding as N } from "./bundle.es78.js";
6
- const v = x(
7
- ({
8
- required: s,
9
- disabled: t,
10
- size: i,
11
- fill: d,
12
- leftElement: r,
13
- rightElement: a,
14
- className: f,
15
- inputRef: m,
16
- children: n,
17
- ...p
18
- }, c) => {
19
- const { leftRef: l, rightRef: u } = N(m, [r, a]);
20
- return /* @__PURE__ */ b(
21
- "div",
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { forwardRef as m, useCallback as i } from "react";
3
+ import c from "react-input-mask";
4
+ const I = m(
5
+ ({ mask: r, maskChar: f = "_", onChange: n, onValueChange: o, ...a }, e) => {
6
+ const p = i(
7
+ (t) => {
8
+ n?.(t), o?.(t.target.value, t.target);
9
+ },
10
+ [n, o]
11
+ );
12
+ return r ? /* @__PURE__ */ u(
13
+ c,
22
14
  {
23
- ref: c,
24
- className: h("form", f),
25
- "data-size": i ?? "md",
26
- "data-fill": e(d),
27
- "data-required": e(s),
28
- "data-disabled": e(t),
29
- ...p,
30
- children: [
31
- r && /* @__PURE__ */ o("span", { ref: l, className: "form-input-base-left-element", children: r }),
32
- n,
33
- a && /* @__PURE__ */ o("span", { ref: u, className: "form-input-base-right-element", children: a })
34
- ]
15
+ inputRef: e,
16
+ mask: r,
17
+ maskChar: f,
18
+ onChange: p,
19
+ ...a
35
20
  }
36
- );
21
+ ) : /* @__PURE__ */ u("input", { ref: e, ...a, onChange: p });
37
22
  }
38
23
  );
39
24
  export {
40
- v as InputContainer
25
+ I as InputElement
41
26
  };
@@ -1,72 +1,41 @@
1
- import { jsxs as D, jsx as t } from "react/jsx-runtime";
2
- import { dateToFormat as $, weeks as g, createVoids as p, getDayIndex as b, getFirstDay as u, getMonthMaxDay as k } from "./bundle.es64.js";
3
- import { CalendarHeader as F } from "./bundle.es76.js";
4
- import { useCalendar as j } from "./bundle.es77.js";
5
- import { attr as m } from "@companix/utils-browser";
6
- import { isSameDate as f } from "./bundle.es58.js";
7
- import { useLayoutEffect as I } from "react";
8
- const T = ({ disablePickers: c, value: e, onChange: i, ...l }) => {
9
- const {
10
- viewDate: n,
11
- setViewDate: r,
12
- setNextMonth: N,
13
- setPrevMonth: x,
14
- isMonthDisabled: M,
15
- isYearDisabled: v,
16
- isDayDisabled: w
17
- } = j(l);
18
- I(() => {
19
- e && r(e);
20
- }, [e]);
21
- const o = $(n), h = n.getMonth(), y = n.getFullYear(), C = /* @__PURE__ */ new Date();
22
- return /* @__PURE__ */ D("div", { className: "calendar", children: [
23
- /* @__PURE__ */ t(
24
- F,
1
+ import { jsxs as b, jsx as o } from "react/jsx-runtime";
2
+ import h from "classnames";
3
+ import { attr as e } from "@companix/utils-browser";
4
+ import { forwardRef as x } from "react";
5
+ import { useInputPadding as N } from "./bundle.es83.js";
6
+ const v = x(
7
+ ({
8
+ required: s,
9
+ disabled: t,
10
+ size: i,
11
+ fill: d,
12
+ leftElement: r,
13
+ rightElement: a,
14
+ className: f,
15
+ inputRef: m,
16
+ children: n,
17
+ ...p
18
+ }, c) => {
19
+ const { leftRef: l, rightRef: u } = N(m, [r, a]);
20
+ return /* @__PURE__ */ b(
21
+ "div",
25
22
  {
26
- viewDate: n,
27
- onChange: r,
28
- onNextMonth: N,
29
- onPrevMonth: x,
30
- disablePickers: c,
31
- isMonthDisabled: M,
32
- isYearDisabled: v
23
+ ref: c,
24
+ className: h("form", f),
25
+ "data-size": i ?? "md",
26
+ "data-fill": e(d),
27
+ "data-required": e(s),
28
+ "data-disabled": e(t),
29
+ ...p,
30
+ children: [
31
+ r && /* @__PURE__ */ o("span", { ref: l, className: "form-input-base-left-element", children: r }),
32
+ n,
33
+ a && /* @__PURE__ */ o("span", { ref: u, className: "form-input-base-right-element", children: a })
34
+ ]
33
35
  }
34
- ),
35
- /* @__PURE__ */ t("div", { className: "calendar-names", children: g.map((d, a) => /* @__PURE__ */ t("div", { className: "calendar-name", children: d }, `week-name-${a}`)) }),
36
- /* @__PURE__ */ D("div", { className: "calendar-days", children: [
37
- p(b(u(o.month, o.year))).map((d, a) => /* @__PURE__ */ t("div", { className: "calendar-day", "data-void": !0 }, `void-${d}-${a}`)),
38
- p(k(o.month, o.year)).map((d, a) => {
39
- const s = new Date(y, h, a + 1);
40
- return /* @__PURE__ */ t(
41
- P,
42
- {
43
- day: a + 1,
44
- disabled: w(s),
45
- selected: !!(e && f(e, s)),
46
- today: f(s, C),
47
- onSelect: () => i?.(s)
48
- },
49
- `date-${d}-${y}-${h}-${a}`
50
- );
51
- })
52
- ] })
53
- ] });
54
- }, P = ({ day: c, disabled: e, selected: i, today: l, onSelect: n }) => {
55
- const r = () => {
56
- e || n?.();
57
- };
58
- return /* @__PURE__ */ t(
59
- "div",
60
- {
61
- className: "calendar-day",
62
- "data-disabled": m(e),
63
- "data-selected": m(i),
64
- "data-today": m(l),
65
- onClick: r,
66
- children: /* @__PURE__ */ t("span", { className: "calendar-day-number", children: c })
67
- }
68
- );
69
- };
36
+ );
37
+ }
38
+ );
70
39
  export {
71
- T as Calendar
40
+ v as InputContainer
72
41
  };
@@ -1,13 +1,26 @@
1
- import { jsxs as r, Fragment as a, jsx as e } from "react/jsx-runtime";
2
- import { faXmark as i, faChevronDown as m } from "@companix/icons-solid";
3
- import { Icon as o } from "./bundle.es35.js";
4
- const f = (n) => {
5
- const { clearButton: c, clearButtonIcon: t, value: s, onClear: l } = n;
6
- return /* @__PURE__ */ r(a, { children: [
7
- c && s && /* @__PURE__ */ e("button", { className: "select-close-button", onClick: l, children: t ?? /* @__PURE__ */ e(o, { className: "select-close-icon", icon: i, size: "xxxs" }) }),
8
- /* @__PURE__ */ e(o, { className: "expand-icon select-expand", icon: m, size: "xxxs" })
9
- ] });
1
+ import r from "react";
2
+ const t = r.createContext({
3
+ drawerRef: { current: null },
4
+ overlayRef: { current: null },
5
+ onPress: () => {
6
+ },
7
+ onRelease: () => {
8
+ },
9
+ onDrag: () => {
10
+ },
11
+ isOpen: !1,
12
+ isDragging: !1,
13
+ keyboardIsOpen: { current: !1 },
14
+ closeDrawer: () => {
15
+ },
16
+ shouldAnimate: { current: !0 }
17
+ }), o = () => {
18
+ const e = r.useContext(t);
19
+ if (!e)
20
+ throw new Error("useDrawerContext must be used within a MobileDrawer.Root");
21
+ return e;
10
22
  };
11
23
  export {
12
- f as SelectRightElements
24
+ t as DrawerContext,
25
+ o as useDrawerContext
13
26
  };
@@ -1,45 +1,81 @@
1
- import { DefaultMonths as f, getMonthMaxDay as i } from "./bundle.es64.js";
2
- import { useMemo as s } from "react";
3
- import { range as l } from "@companix/utils-js";
4
- const p = { day: 31, month: 12, year: 2050 }, u = { day: 1, month: 1, year: 1900 }, I = ({ min: t = u, max: e = p, now: r }) => {
5
- const h = s(() => l(e.year, t.year).map((n) => ({
6
- title: n.toString(),
7
- value: n
8
- })), [e.year, t.year]), d = s(() => {
9
- const n = f.map((o, a) => ({
10
- title: o,
11
- value: a + 1
12
- }));
13
- if (t.month && r.year === t.year) {
14
- const o = n.findIndex(({ value: a }) => a === t.month);
15
- n.splice(0, o);
1
+ const a = /* @__PURE__ */ new WeakMap();
2
+ function d(t, n, e = !1) {
3
+ if (!t || !(t instanceof HTMLElement)) return;
4
+ const o = {};
5
+ Object.entries(n).forEach(([i, s]) => {
6
+ if (i.startsWith("--")) {
7
+ t.style.setProperty(i, s);
8
+ return;
16
9
  }
17
- if (e.month && r.year === e.year) {
18
- const o = n.findIndex(({ value: a }) => a === e.month);
19
- n.splice(o + 1, n.length);
20
- }
21
- return n;
22
- }, [r.year, t.year, t.month, e.year, e.month]), c = s(() => {
23
- if (r.month === 0)
24
- return [];
25
- const n = i(r.month, r.year), o = Array.from({ length: n }, (a, y) => ({
26
- title: `${y + 1}`,
27
- value: y + 1
28
- }));
29
- if (t.day && r.month === t.month && r.year === t.year) {
30
- const a = o.findIndex(({ value: y }) => y === t.day);
31
- o.splice(0, a);
32
- }
33
- if (e.day && r.month === e.month && r.year === e.year) {
34
- const a = o.findIndex(({ value: y }) => y === e.day);
35
- o.splice(a + 1, o.length);
36
- }
37
- return o;
38
- }, [r.month, r.year, t, e]);
39
- return { years: h, months: d, days: c };
40
- };
10
+ o[i] = t.style[i], t.style[i] = s;
11
+ }), !e && a.set(t, o);
12
+ }
13
+ function p(t, n) {
14
+ if (!t || !(t instanceof HTMLElement)) return;
15
+ const e = a.get(t);
16
+ e && (t.style[n] = e[n]);
17
+ }
18
+ function w(t) {
19
+ if (!t)
20
+ return null;
21
+ const n = window.getComputedStyle(t), e = (
22
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
+ // @ts-ignore
24
+ n.transform || n.webkitTransform || n.mozTransform
25
+ );
26
+ let o = e.match(/^matrix3d\((.+)\)$/);
27
+ return o ? parseFloat(o[1].split(", ")[13]) : (o = e.match(/^matrix\((.+)\)$/), o ? parseFloat(o[1].split(", ")[5]) : null);
28
+ }
29
+ function h(t) {
30
+ return 8 * (Math.log(t + 1) - 2);
31
+ }
32
+ const u = /* @__PURE__ */ new Set([
33
+ "checkbox",
34
+ "radio",
35
+ "range",
36
+ "color",
37
+ "file",
38
+ "image",
39
+ "button",
40
+ "submit",
41
+ "reset"
42
+ ]);
43
+ function T(t) {
44
+ return t instanceof HTMLInputElement && !u.has(t.type) || t instanceof HTMLTextAreaElement || t instanceof HTMLElement && t.isContentEditable;
45
+ }
46
+ function r(t) {
47
+ return typeof window < "u" && window.navigator != null ? t.test(window.navigator.platform) : void 0;
48
+ }
49
+ function f() {
50
+ return r(/^Mac/);
51
+ }
52
+ function c() {
53
+ return r(/^iPhone/);
54
+ }
55
+ function l() {
56
+ return r(/^iPad/) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
57
+ f() && navigator.maxTouchPoints > 1;
58
+ }
59
+ function M() {
60
+ return c() || l();
61
+ }
62
+ function g() {
63
+ const t = navigator.userAgent;
64
+ return typeof window < "u" && (/Firefox/.test(t) && /Mobile/.test(t) || /FxiOS/.test(t));
65
+ }
66
+ function m(t, n) {
67
+ typeof t == "function" ? t(n) : t != null && (t.current = n);
68
+ }
69
+ function x(...t) {
70
+ return (n) => t.forEach((e) => m(e, n));
71
+ }
41
72
  export {
42
- p as defaultMax,
43
- u as defaultMin,
44
- I as useCalendarOptions
73
+ x as composeRefs,
74
+ h as dampenValue,
75
+ w as getTranslate,
76
+ M as isIOS,
77
+ T as isInput,
78
+ g as isMobileFirefox,
79
+ p as reset,
80
+ d as set
45
81
  };
@@ -1,35 +1,95 @@
1
- import { jsxs as E, jsx as c } from "react/jsx-runtime";
2
- import { useRef as p, useState as v, useLayoutEffect as N, useEffect as y } from "react";
3
- import { Editor as R } from "./bundle.es41.js";
4
- const k = (d) => {
5
- const {
6
- id: e,
7
- className: f,
8
- inputClassName: i,
9
- placeholderClassName: m,
10
- placeholder: r,
11
- value: s,
12
- inputMode: n,
13
- onCreate: b,
14
- onClick: A
15
- } = d, u = p(null), o = p(null), [h, a] = v(!0);
16
- return N(() => {
17
- const t = document.createElement("span");
18
- t.setAttribute("contenteditable", "true"), t.setAttribute("class", i), t.dataset.placeholder = r, e && t.setAttribute("id", e), n && t.setAttribute("inputmode", n), u.current && u.current.appendChild(t);
19
- const l = new R(t), C = l.onContentChange((x) => {
20
- a(x.length === 0);
21
- });
22
- return b(l), o.current = t, () => {
23
- C(), o.current = null, t.remove();
24
- };
25
- }, []), y(() => {
26
- const t = o.current;
27
- t && (e && t.setAttribute("id", e), n && t.setAttribute("inputmode", n), s && (t.textContent = s, a(!1)), t.setAttribute("class", i), t.setAttribute("role", "textbox"), t.setAttribute("aria-multiline", "true"), r && t.setAttribute("aria-label", r));
28
- }, [e, i, n, r, s]), /* @__PURE__ */ E("div", { role: "presentation", className: f, children: [
29
- h && /* @__PURE__ */ c("span", { "aria-hidden": "true", className: m, children: r }),
30
- /* @__PURE__ */ c("div", { role: "presentation", ref: u, onClick: A })
31
- ] });
32
- };
1
+ import { useLayoutEffect as Y, useEffect as B } from "react";
2
+ import { isIOS as R, isInput as g } from "./bundle.es69.js";
3
+ const C = 24, F = typeof window < "u" ? Y : B;
4
+ function w(...t) {
5
+ return (...e) => {
6
+ for (const o of t)
7
+ typeof o == "function" && o(...e);
8
+ };
9
+ }
10
+ const m = typeof document < "u" ? window.visualViewport : null;
11
+ function E(t) {
12
+ const e = window.getComputedStyle(t);
13
+ return /(auto|scroll)/.test(e.overflow + e.overflowX + e.overflowY);
14
+ }
15
+ function y(t) {
16
+ for (E(t) && (t = t.parentElement); t && !E(t); )
17
+ t = t.parentElement;
18
+ return t || document.scrollingElement || document.documentElement;
19
+ }
20
+ let s = 0, v;
21
+ function H(t = {}) {
22
+ const { isDisabled: e } = t;
23
+ F(() => {
24
+ if (!e)
25
+ return s++, s === 1 && R() && (v = D()), () => {
26
+ s--, s === 0 && v?.();
27
+ };
28
+ }, [e]);
29
+ }
30
+ function D() {
31
+ let t, e = 0;
32
+ const o = (r) => {
33
+ t = y(r.target), !(t === document.documentElement && t === document.body) && (e = r.changedTouches[0].pageY);
34
+ }, c = (r) => {
35
+ if (!t || t === document.documentElement || t === document.body) {
36
+ r.preventDefault();
37
+ return;
38
+ }
39
+ const n = r.changedTouches[0].pageY, d = t.scrollTop, p = t.scrollHeight - t.clientHeight;
40
+ p !== 0 && ((d <= 0 && n > e || d >= p && n < e) && r.preventDefault(), e = n);
41
+ }, i = (r) => {
42
+ const n = r.target;
43
+ g(n) && n !== document.activeElement && (r.preventDefault(), n.style.transform = "translateY(-2000px)", n.focus(), requestAnimationFrame(() => {
44
+ n.style.transform = "";
45
+ }));
46
+ }, u = (r) => {
47
+ const n = r.target;
48
+ g(n) && (n.style.transform = "translateY(-2000px)", requestAnimationFrame(() => {
49
+ n.style.transform = "", m && (m.height < window.innerHeight ? requestAnimationFrame(() => {
50
+ h(n);
51
+ }) : m.addEventListener("resize", () => h(n), { once: !0 }));
52
+ }));
53
+ }, a = () => {
54
+ window.scrollTo(0, 0);
55
+ }, f = window.pageXOffset, b = window.pageYOffset, T = w(
56
+ L(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`)
57
+ );
58
+ window.scrollTo(0, 0);
59
+ const S = w(
60
+ l(document, "touchstart", o, { passive: !1, capture: !0 }),
61
+ l(document, "touchmove", c, { passive: !1, capture: !0 }),
62
+ l(document, "touchend", i, { passive: !1, capture: !0 }),
63
+ l(document, "focus", u, !0),
64
+ l(window, "scroll", a)
65
+ );
66
+ return () => {
67
+ T(), S(), window.scrollTo(f, b);
68
+ };
69
+ }
70
+ function L(t, e, o) {
71
+ const c = t.style[e];
72
+ return t.style[e] = o, () => {
73
+ t.style[e] = c;
74
+ };
75
+ }
76
+ function l(t, e, o, c) {
77
+ return t.addEventListener(e, o, c), () => {
78
+ t.removeEventListener(e, o, c);
79
+ };
80
+ }
81
+ function h(t) {
82
+ const e = document.scrollingElement || document.documentElement;
83
+ let o = t;
84
+ for (; o && o !== e; ) {
85
+ const c = y(o);
86
+ if (c !== document.documentElement && c !== document.body && c !== o) {
87
+ const i = c.getBoundingClientRect().top, u = o.getBoundingClientRect().top, a = o.getBoundingClientRect().bottom, f = c.getBoundingClientRect().bottom + C;
88
+ a > f && (c.scrollTop += u - i);
89
+ }
90
+ o = c.parentElement;
91
+ }
92
+ }
33
93
  export {
34
- k as WriteBarInput
94
+ H as usePreventScroll
35
95
  };
@@ -1,68 +1,12 @@
1
- var a = /* @__PURE__ */ ((o) => (o.Mod = "Mod", o.Alt = "Alt", o.Shift = "Shift", o.Meta = "Meta", o))(a || {});
2
- const l = [
3
- "Shift",
4
- "Mod",
5
- "ArrowDown",
6
- "ArrowUp",
7
- "Mod+ArrowDown",
8
- "Mod+ArrowUp",
9
- "Enter",
10
- "Escape",
11
- "Backspace",
12
- "Shift+Enter",
13
- "Mod+Enter",
14
- "ArrowLeft",
15
- "ArrowRight",
16
- "Tab",
17
- "Shift+Tab",
18
- "Space",
19
- "Mod+B",
20
- "Mod+U",
21
- "Mod+I",
22
- "Mod+S",
23
- "Mod+K",
24
- "Mod+Equal",
25
- "Mod+Shift+Equal",
26
- "Mod+Minus",
27
- "Mod+Shift+Minus",
28
- "PageUp",
29
- "PageDown",
30
- "Home",
31
- "End"
32
- ], c = typeof navigator < "u" && /Mac|iPhone|iPad|iPod/i.test(navigator.platform), d = (o) => o.key === "Meta" || o.metaKey, s = (o) => o.key === "Control" || o.ctrlKey, M = {
33
- Mod: (o) => c ? d(o) : s(o),
34
- Alt: (o) => o.key === "Alt" || o.altKey,
35
- Shift: (o) => o.key === "Shift" || o.shiftKey,
36
- Meta: (o) => c ? s(o) : d(o)
37
- }, f = (o) => {
38
- try {
39
- const t = [];
40
- for (const e of Object.values(a))
41
- M[e](o) && t.push(e);
42
- if (["Meta", "Control", "Alt", "Shift"].includes(o.key)) {
43
- const e = t.join("+");
44
- return { key: e, code: e };
45
- }
46
- const r = ["Key", "Digit", "Numpad"].find((e) => o.code.startsWith(e)), n = r ? o.code.slice(r.length) : o.code, i = o.key.length === 1 ? o.key.toUpperCase() : o.key;
47
- return {
48
- key: [...t, i].join("+"),
49
- code: [...t, n].join("+")
50
- };
51
- } catch {
52
- return;
53
- }
54
- }, y = (o) => {
55
- const t = f(o);
56
- if (!t)
57
- return null;
58
- const { key: r, code: n } = t;
59
- return [r, n].find((i) => l.includes(i)) ?? null;
60
- }, u = (o) => (t) => {
61
- o(y(t), t);
62
- };
1
+ const O = {
2
+ DURATION: 0.5,
3
+ EASE: [0.32, 0.72, 0, 1]
4
+ }, S = 0.4, T = 0.25, E = 100, L = "drawer-dragging", n = 26;
63
5
  export {
64
- a as Modifier,
65
- f as getKeyCombo,
66
- y as getModuleKeyCombo,
67
- u as onElementKeyDownFactory
6
+ T as CLOSE_THRESHOLD,
7
+ L as DRAG_CLASS,
8
+ E as SCROLL_LOCK_TIMEOUT,
9
+ O as TRANSITIONS,
10
+ S as VELOCITY_THRESHOLD,
11
+ n as WINDOW_TOP_OFFSET
68
12
  };