@companix/uikit 0.0.1 → 0.0.3

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 (254) hide show
  1. package/dist/bundle.es.js +61 -0
  2. package/dist/bundle.es10.js +87 -0
  3. package/dist/bundle.es11.js +75 -0
  4. package/dist/bundle.es12.js +38 -0
  5. package/dist/bundle.es13.js +33 -0
  6. package/dist/bundle.es14.js +18 -0
  7. package/dist/bundle.es15.js +11 -0
  8. package/dist/bundle.es16.js +35 -0
  9. package/dist/bundle.es17.js +27 -0
  10. package/dist/bundle.es18.js +23 -0
  11. package/dist/bundle.es19.js +24 -0
  12. package/dist/bundle.es20.js +15 -0
  13. package/dist/bundle.es21.js +41 -0
  14. package/dist/bundle.es22.js +18 -0
  15. package/dist/bundle.es23.js +36 -0
  16. package/dist/bundle.es24.js +23 -0
  17. package/dist/bundle.es25.js +42 -0
  18. package/dist/bundle.es26.js +114 -0
  19. package/dist/bundle.es27.js +115 -0
  20. package/dist/bundle.es28.js +38 -0
  21. package/dist/bundle.es29.js +13 -0
  22. package/dist/bundle.es3.js +45 -0
  23. package/dist/bundle.es30.js +27 -0
  24. package/dist/bundle.es31.js +38 -0
  25. package/dist/bundle.es35.js +43 -0
  26. package/dist/bundle.es36.js +442 -0
  27. package/dist/bundle.es37.js +24 -0
  28. package/dist/bundle.es38.js +26 -0
  29. package/dist/bundle.es39.js +83 -0
  30. package/dist/bundle.es4.js +14 -0
  31. package/dist/bundle.es40.js +20 -0
  32. package/dist/bundle.es41.js +16 -0
  33. package/dist/bundle.es43.js +7 -0
  34. package/dist/bundle.es44.js +23 -0
  35. package/dist/bundle.es45.js +16 -0
  36. package/dist/bundle.es46.js +72 -0
  37. package/dist/bundle.es47.js +70 -0
  38. package/dist/bundle.es48.js +34 -0
  39. package/dist/bundle.es49.js +70 -0
  40. package/dist/bundle.es5.js +88 -0
  41. package/dist/bundle.es50.js +33 -0
  42. package/dist/bundle.es51.js +78 -0
  43. package/dist/bundle.es52.js +51 -0
  44. package/dist/bundle.es53.js +45 -0
  45. package/dist/bundle.es54.js +40 -0
  46. package/dist/bundle.es55.js +36 -0
  47. package/dist/bundle.es56.js +9 -0
  48. package/dist/bundle.es57.js +9 -0
  49. package/dist/bundle.es58.js +7 -0
  50. package/dist/bundle.es59.js +9 -0
  51. package/dist/bundle.es6.js +87 -0
  52. package/dist/bundle.es60.js +8 -0
  53. package/dist/bundle.es61.js +19 -0
  54. package/dist/bundle.es62.js +15 -0
  55. package/dist/bundle.es63.js +22 -0
  56. package/dist/bundle.es64.js +45 -0
  57. package/dist/bundle.es65.js +28 -0
  58. package/dist/bundle.es66.js +34 -0
  59. package/dist/bundle.es67.js +6 -0
  60. package/dist/bundle.es68.js +12 -0
  61. package/dist/bundle.es69.js +47 -0
  62. package/dist/bundle.es7.js +80 -0
  63. package/dist/bundle.es70.js +11 -0
  64. package/dist/bundle.es71.js +18 -0
  65. package/dist/bundle.es72.js +32 -0
  66. package/dist/bundle.es73.js +35 -0
  67. package/dist/bundle.es74.js +6 -0
  68. package/dist/bundle.es75.js +7 -0
  69. package/dist/bundle.es76.js +7 -0
  70. package/dist/bundle.es77.js +11 -0
  71. package/dist/bundle.es78.js +17 -0
  72. package/dist/bundle.es79.js +7 -0
  73. package/dist/bundle.es8.js +29 -0
  74. package/dist/bundle.es80.js +17 -0
  75. package/dist/bundle.es81.js +25 -0
  76. package/dist/bundle.es9.js +47 -0
  77. package/dist/types/Button/index.d.ts +20 -0
  78. package/dist/types/ButtonGroup/index.d.ts +7 -0
  79. package/dist/types/Checkbox/index.d.ts +10 -0
  80. package/dist/types/Countdown/index.d.ts +7 -0
  81. package/dist/types/DateInput/index.d.ts +13 -0
  82. package/dist/types/DatePicker/Calendar.d.ts +14 -0
  83. package/dist/types/DatePicker/CalendarHeader.d.ts +10 -0
  84. package/dist/types/DatePicker/index.d.ts +12 -0
  85. package/dist/types/Dialog/index.d.ts +12 -0
  86. package/dist/types/DialogAlert/Alert.d.ts +19 -0
  87. package/dist/types/DialogAlert/Viewport.d.ts +8 -0
  88. package/dist/types/DialogAlert/index.d.ts +11 -0
  89. package/dist/types/Drawer/index.d.ts +13 -0
  90. package/dist/types/File/index.d.ts +10 -0
  91. package/dist/types/Form/index.d.ts +17 -0
  92. package/dist/types/Icon/index.d.ts +7 -0
  93. package/dist/types/LoadButton/index.d.ts +5 -0
  94. package/dist/types/NumberInput/index.d.ts +6 -0
  95. package/dist/types/OptionItem/OptionItem.d.ts +7 -0
  96. package/dist/types/OptionItem/OptionsList.d.ts +8 -0
  97. package/dist/types/Popover/index.d.ts +26 -0
  98. package/dist/types/Radio/index.d.ts +20 -0
  99. package/dist/types/Scrollable/ImitateScroll.d.ts +10 -0
  100. package/dist/types/Scrollable/index.d.ts +33 -0
  101. package/dist/types/Select/SelectInput.d.ts +14 -0
  102. package/dist/types/Select/index.d.ts +15 -0
  103. package/dist/types/SelectTags/index.d.ts +15 -0
  104. package/dist/types/Spinner/index.d.ts +8 -0
  105. package/dist/types/Stepper/index.d.ts +8 -0
  106. package/dist/types/Switch/index.d.ts +10 -0
  107. package/dist/types/Tabs/index.d.ts +13 -0
  108. package/dist/types/TextArea/index.d.ts +7 -0
  109. package/dist/types/Toaster/RemoveListener.d.ts +3 -0
  110. package/dist/types/Toaster/Toast.d.ts +9 -0
  111. package/dist/types/Toaster/Viewport.d.ts +13 -0
  112. package/dist/types/Toaster/index.d.ts +15 -0
  113. package/dist/types/Tooltip/index.d.ts +8 -0
  114. package/dist/types/__hooks/use-frooze-closing.d.ts +5 -0
  115. package/dist/types/__hooks/use-loading.d.ts +8 -0
  116. package/dist/types/__hooks/use-local-storage.d.ts +1 -0
  117. package/dist/types/__hooks/use-popover-position.d.ts +8 -0
  118. package/dist/types/__hooks/use-previos.d.ts +2 -0
  119. package/dist/types/__hooks/use-resize.d.ts +3 -0
  120. package/dist/types/__hooks/use-scrollbox.d.ts +7 -0
  121. package/dist/types/__hooks/use-stepper-input.d.ts +13 -0
  122. package/dist/types/__hooks/use-update.d.ts +1 -0
  123. package/dist/types/__hooks/useCalendar.d.ts +17 -0
  124. package/dist/types/__hooks/useCalendarOptions-copy.d.ts +22 -0
  125. package/dist/types/__hooks/useCalendarOptions.d.ts +31 -0
  126. package/dist/types/__libs/calendar.d.ts +25 -0
  127. package/dist/types/__utils/utils.d.ts +25 -0
  128. package/dist/types/index.d.ts +31 -0
  129. package/dist/types/types.d.ts +13 -0
  130. package/dist/uikit.css +1 -0
  131. package/package.json +10 -6
  132. package/.eslintrc +0 -54
  133. package/declaration.d.ts +0 -4
  134. package/index.html +0 -12
  135. package/playground/App.tsx +0 -166
  136. package/playground/Example.tsx +0 -14
  137. package/playground/Test.tsx +0 -44
  138. package/playground/animation-test-1/index.scss +0 -20
  139. package/playground/animation-test-1/index.tsx +0 -17
  140. package/playground/animation-test-2/index.scss +0 -62
  141. package/playground/animation-test-2/index.tsx +0 -32
  142. package/playground/bootstrap.tsx +0 -19
  143. package/playground/buttons/index.tsx +0 -132
  144. package/playground/checkbox/index.tsx +0 -64
  145. package/playground/date-input/index.tsx +0 -45
  146. package/playground/date-picker/index.tsx +0 -41
  147. package/playground/dialog/index.tsx +0 -92
  148. package/playground/dialog-alert/index.tsx +0 -47
  149. package/playground/drawer/index.tsx +0 -55
  150. package/playground/index.css +0 -33
  151. package/playground/index.scss +0 -270
  152. package/playground/input/index.tsx +0 -112
  153. package/playground/number-inputs/index.tsx +0 -50
  154. package/playground/popovers/index.tsx +0 -70
  155. package/playground/radio-group/index.tsx +0 -69
  156. package/playground/select/index.tsx +0 -72
  157. package/playground/select-tags/index.tsx +0 -36
  158. package/playground/styles.scss +0 -2
  159. package/playground/switch/index.tsx +0 -44
  160. package/playground/tabs/index.tsx +0 -16
  161. package/playground/test.scss +0 -0
  162. package/playground/text-area/index.tsx +0 -17
  163. package/playground/text-input/index.tsx +0 -12
  164. package/playground/toaster/index.tsx +0 -156
  165. package/playground/tooltip/index.tsx +0 -26
  166. package/src/Button/Button.scss +0 -128
  167. package/src/Button/index.tsx +0 -72
  168. package/src/ButtonGroup/ButtonGroup.scss +0 -18
  169. package/src/ButtonGroup/index.tsx +0 -20
  170. package/src/Checkbox/Checkbox.scss +0 -115
  171. package/src/Checkbox/index.tsx +0 -46
  172. package/src/Countdown/index.tsx +0 -54
  173. package/src/DateInput/DateInput.scss +0 -11
  174. package/src/DateInput/index.tsx +0 -96
  175. package/src/DatePicker/Calendar.scss +0 -125
  176. package/src/DatePicker/Calendar.tsx +0 -157
  177. package/src/DatePicker/CalendarHeader.tsx +0 -139
  178. package/src/DatePicker/DatePicker.scss +0 -0
  179. package/src/DatePicker/index.tsx +0 -177
  180. package/src/Dialog/Dialog.scss +0 -25
  181. package/src/Dialog/Popup.scss +0 -55
  182. package/src/Dialog/index.tsx +0 -31
  183. package/src/DialogAlert/Alert.scss +0 -52
  184. package/src/DialogAlert/Alert.tsx +0 -78
  185. package/src/DialogAlert/Viewport.tsx +0 -52
  186. package/src/DialogAlert/index.tsx +0 -37
  187. package/src/Drawer/Drawer.scss +0 -112
  188. package/src/Drawer/index.tsx +0 -46
  189. package/src/File/index.tsx +0 -60
  190. package/src/Form/Form.scss +0 -70
  191. package/src/Form/Input.scss +0 -24
  192. package/src/Form/index.tsx +0 -131
  193. package/src/Icon/icon.scss +0 -18
  194. package/src/Icon/index.tsx +0 -43
  195. package/src/LoadButton/index.tsx +0 -17
  196. package/src/NumberInput/index.tsx +0 -74
  197. package/src/OptionItem/Option.scss +0 -89
  198. package/src/OptionItem/OptionItem.tsx +0 -49
  199. package/src/OptionItem/OptionsList.tsx +0 -26
  200. package/src/Popover/Popover.scss +0 -80
  201. package/src/Popover/index.tsx +0 -117
  202. package/src/Radio/Radio.scss +0 -148
  203. package/src/Radio/index.tsx +0 -68
  204. package/src/Scrollable/ImitateScroll.tsx +0 -141
  205. package/src/Scrollable/Scrollable.scss +0 -50
  206. package/src/Scrollable/index.tsx +0 -141
  207. package/src/Select/Select.scss +0 -80
  208. package/src/Select/SelectInput.tsx +0 -131
  209. package/src/Select/index.tsx +0 -134
  210. package/src/SelectTags/SelectTags.scss +0 -66
  211. package/src/SelectTags/index.tsx +0 -192
  212. package/src/Spinner/Spinner.scss +0 -14
  213. package/src/Spinner/index.tsx +0 -19
  214. package/src/Stepper/StepperInput.scss +0 -35
  215. package/src/Stepper/index.tsx +0 -76
  216. package/src/Switch/Switch.scss +0 -102
  217. package/src/Switch/index.tsx +0 -49
  218. package/src/Tabs/Tabs.scss +0 -58
  219. package/src/Tabs/index.tsx +0 -89
  220. package/src/TextArea/TextArea.scss +0 -34
  221. package/src/TextArea/index.tsx +0 -51
  222. package/src/Toaster/RemoveListener.tsx +0 -11
  223. package/src/Toaster/Toast.tsx +0 -69
  224. package/src/Toaster/Toaster.scss +0 -151
  225. package/src/Toaster/Viewport.tsx +0 -117
  226. package/src/Toaster/index.tsx +0 -52
  227. package/src/Tooltip/Tooltip.scss +0 -28
  228. package/src/Tooltip/index.tsx +0 -33
  229. package/src/__hooks/use-frooze-closing.ts +0 -51
  230. package/src/__hooks/use-loading.ts +0 -34
  231. package/src/__hooks/use-local-storage.ts +0 -19
  232. package/src/__hooks/use-popover-position.ts +0 -24
  233. package/src/__hooks/use-previos.ts +0 -25
  234. package/src/__hooks/use-resize.ts +0 -41
  235. package/src/__hooks/use-scrollbox.ts +0 -45
  236. package/src/__hooks/use-stepper-input.ts +0 -82
  237. package/src/__hooks/use-update.ts +0 -19
  238. package/src/__hooks/useCalendar.ts +0 -104
  239. package/src/__hooks/useCalendarOptions-copy.ts +0 -87
  240. package/src/__hooks/useCalendarOptions.ts +0 -68
  241. package/src/__libs/calendar.ts +0 -175
  242. package/src/__utils/utils.ts +0 -137
  243. package/src/css.scss +0 -120
  244. package/src/index.scss +0 -22
  245. package/src/index.ts +0 -36
  246. package/src/mixins.scss +0 -99
  247. package/src/theme.scss +0 -103
  248. package/src/types.ts +0 -14
  249. package/tailwind.config.js +0 -91
  250. package/themes/classic/animations.scss +0 -179
  251. package/themes/classic/classic.scss +0 -493
  252. package/tsconfig.json +0 -27
  253. package/vite.build.ts +0 -35
  254. package/vite.config.ts +0 -33
@@ -0,0 +1,114 @@
1
+ import { jsx as o, jsxs as c } from "react/jsx-runtime";
2
+ import { useFroozeClosing as F } from "./bundle.es38.js";
3
+ /* empty css */
4
+ import { Popover as I } from "./bundle.es7.js";
5
+ import { OptionItem as L } from "./bundle.es12.js";
6
+ import { OptionsList as M } from "./bundle.es14.js";
7
+ import { useState as j, useRef as d, useMemo as h } from "react";
8
+ import { Icon as g } from "./bundle.es37.js";
9
+ import { faClose as V, faChevronDown as B } from "@fortawesome/free-solid-svg-icons";
10
+ import { attr as H, getActiveElementByAnotherElement as Q, contains as q } from "@companix/utils-browser";
11
+ const te = (v) => {
12
+ const {
13
+ options: r,
14
+ closeAfterSelect: x,
15
+ placeholder: C,
16
+ onChange: l,
17
+ emptyText: N = "Ничего не найдено",
18
+ readOnly: m,
19
+ size: z = "md",
20
+ value: n,
21
+ disabled: f
22
+ } = v, [i, A] = j(""), a = d(null), y = d(null), { popoverRef: u, froozePopoverPosition: D, handleAnimationEnd: R } = F(), b = h(() => {
23
+ const e = {};
24
+ return r.forEach((t) => {
25
+ e[t.value] = t;
26
+ }), e;
27
+ }, [r]), w = (e) => n.includes(e) ? [...n] : [...n, e], E = (e) => n.filter((t) => e !== t), O = (e, t) => {
28
+ x ? (D(), l(e), t()) : l(e);
29
+ }, p = h(() => i.trim() ? r.filter(({ title: e }) => {
30
+ const t = e.toLowerCase(), s = i.trim().toLowerCase();
31
+ return t.indexOf(s) >= 0;
32
+ }) : r, [i, r]), P = (e) => {
33
+ if (f) return;
34
+ u.current && u.current.getAttribute("data-state") === "open" && e.preventDefault();
35
+ const t = Q(e.currentTarget);
36
+ e.defaultPrevented || q(e.currentTarget, t) || a.current && a.current.focus();
37
+ }, T = (e) => {
38
+ e.target !== a.current && e.preventDefault();
39
+ }, k = (e, t) => {
40
+ e.stopPropagation(), l(E(t));
41
+ };
42
+ return /* @__PURE__ */ o(
43
+ I,
44
+ {
45
+ minimal: !0,
46
+ ref: u,
47
+ sideOffset: 0,
48
+ matchTarget: "width",
49
+ onAnimationEnd: R,
50
+ onOpenAutoFocus: (e) => e.preventDefault(),
51
+ onCloseAutoFocus: (e) => e.preventDefault(),
52
+ content: ({ close: e }) => /* @__PURE__ */ c(M, { maxHeight: 300, children: [
53
+ p.length === 0 && /* @__PURE__ */ o("div", { className: "select-tags-empty", children: N }),
54
+ p.map(({ value: t, title: s, icon: S }, $) => /* @__PURE__ */ o(
55
+ L,
56
+ {
57
+ active: n.includes(t),
58
+ onClick: () => O(w(t), e),
59
+ title: s,
60
+ icon: S
61
+ },
62
+ `option-item-${t}-${$}`
63
+ ))
64
+ ] }),
65
+ children: /* @__PURE__ */ o(
66
+ "div",
67
+ {
68
+ className: "form",
69
+ onClick: P,
70
+ onMouseDown: T,
71
+ "data-size": z,
72
+ children: /* @__PURE__ */ c("div", { className: "select-tags-container", children: [
73
+ /* @__PURE__ */ c("div", { className: "select-tags", children: [
74
+ n.length > 0 && /* @__PURE__ */ o(
75
+ "div",
76
+ {
77
+ className: "tag-container",
78
+ ref: y,
79
+ role: "listbox",
80
+ "data-readonly": H(m),
81
+ children: n.map((e, t) => /* @__PURE__ */ c("div", { className: "tag", children: [
82
+ /* @__PURE__ */ o("span", { className: "tag-name", children: b[e].title }),
83
+ /* @__PURE__ */ o("button", { className: "tag-close-button", onClick: (s) => k(s, e), children: /* @__PURE__ */ o(g, { className: "tag-close-icon", icon: V, size: "xxxs" }) })
84
+ ] }, `tag-option-${e}-${t}`))
85
+ }
86
+ ),
87
+ (!m || n.length === 0) && /* @__PURE__ */ o(
88
+ "input",
89
+ {
90
+ ref: a,
91
+ type: "text",
92
+ autoCapitalize: "none",
93
+ autoComplete: "off",
94
+ autoCorrect: "off",
95
+ className: "form-input",
96
+ spellCheck: !1,
97
+ value: i,
98
+ disabled: f,
99
+ readOnly: m,
100
+ placeholder: C,
101
+ onChange: ({ target: e }) => A(e.value)
102
+ }
103
+ )
104
+ ] }),
105
+ /* @__PURE__ */ o(g, { className: "expand-icon", icon: B, size: "xxxs" })
106
+ ] })
107
+ }
108
+ )
109
+ }
110
+ );
111
+ };
112
+ export {
113
+ te as SelectTags
114
+ };
@@ -0,0 +1,115 @@
1
+ import { jsx as l, jsxs as O, Fragment as R } from "react/jsx-runtime";
2
+ /* empty css */
3
+ import { Popover as z } from "./bundle.es7.js";
4
+ import { Form as Y } from "./bundle.es11.js";
5
+ import { faClose as E, faChevronDown as S } from "@fortawesome/free-solid-svg-icons";
6
+ import { Icon as F } from "./bundle.es37.js";
7
+ import { useState as _, useRef as q } from "react";
8
+ import { Calendar as G } from "./bundle.es46.js";
9
+ import { useDayDisableCheker as H } from "./bundle.es47.js";
10
+ import { formatTime as I, getNum as d } from "@companix/utils-js";
11
+ const h = (t, i = "-") => {
12
+ if (t) {
13
+ const n = I(t.getDate()), r = I(t.getMonth() + 1), s = t.getFullYear();
14
+ return [n, r, s].join(i);
15
+ }
16
+ return "";
17
+ }, y = (t, i = "-") => {
18
+ const n = t.split(i);
19
+ if (n.length === 3) {
20
+ const [r, s, a] = [d(n[0]), d(n[1]), d(n[2])];
21
+ if (r && s && a) {
22
+ const o = new Date(a, s - 1, r);
23
+ if (o.getFullYear() === a && o.getDate() === r && o.getMonth() === s - 1)
24
+ return o;
25
+ }
26
+ }
27
+ return null;
28
+ }, ne = (t) => {
29
+ const {
30
+ minimalOptions: i,
31
+ clearButton: n,
32
+ clearButtonIcon: r,
33
+ children: s,
34
+ disabled: a,
35
+ // calendar props
36
+ value: o,
37
+ enableTime: P,
38
+ disablePickers: v,
39
+ showNeighboringMonth: A,
40
+ onChange: u,
41
+ shouldDisableDate: g,
42
+ viewDate: N,
43
+ disablePast: D,
44
+ disableFuture: C,
45
+ minDateTime: b,
46
+ maxDateTime: x,
47
+ // input props
48
+ ...T
49
+ } = t, [m, c] = _(() => h(o ?? null)), p = q(null), k = H({
50
+ disableFuture: C,
51
+ disablePast: D,
52
+ shouldDisableDate: g,
53
+ minDateTime: b,
54
+ maxDateTime: x
55
+ }), w = (e) => {
56
+ a || p.current && p.current.getAttribute("data-state") === "open" && e.preventDefault();
57
+ }, B = (e) => {
58
+ e.stopPropagation(), c(""), u?.(null);
59
+ }, V = (e) => {
60
+ c(e);
61
+ const f = y(e);
62
+ f && !k(f) && u?.(f);
63
+ }, j = () => {
64
+ const e = y(m);
65
+ (!e || k(e)) && c(h(o ?? null));
66
+ }, M = (e) => {
67
+ u?.(e), c(h(e));
68
+ };
69
+ return /* @__PURE__ */ l(
70
+ z,
71
+ {
72
+ minimal: !0,
73
+ ref: p,
74
+ sideOffset: 0,
75
+ onOpenAutoFocus: (e) => e.preventDefault(),
76
+ onCloseAutoFocus: (e) => e.preventDefault(),
77
+ disabled: a,
78
+ content: () => /* @__PURE__ */ l(
79
+ G,
80
+ {
81
+ value: o,
82
+ disablePast: D,
83
+ disableFuture: C,
84
+ enableTime: P,
85
+ disablePickers: v,
86
+ showNeighboringMonth: A,
87
+ onChange: M,
88
+ shouldDisableDate: g,
89
+ viewDate: N,
90
+ minDateTime: b,
91
+ maxDateTime: x
92
+ }
93
+ ),
94
+ children: /* @__PURE__ */ l(
95
+ Y,
96
+ {
97
+ ...T,
98
+ value: m,
99
+ disabled: a,
100
+ onClick: w,
101
+ onValueChange: V,
102
+ onBlur: j,
103
+ mask: "99-99-9999",
104
+ rightElement: /* @__PURE__ */ O(R, { children: [
105
+ n && J(m) && /* @__PURE__ */ l("button", { className: "select-close-button", onClick: B, children: r ?? /* @__PURE__ */ l(F, { className: "select-close-icon", icon: E, size: "xxxs" }) }),
106
+ /* @__PURE__ */ l(F, { className: "expand-icon select-expand", icon: S, size: "xxxs" })
107
+ ] })
108
+ }
109
+ )
110
+ }
111
+ );
112
+ }, J = (t) => t.trim().replaceAll("-", "").replaceAll("_", "");
113
+ export {
114
+ ne as DatePicker
115
+ };
@@ -0,0 +1,38 @@
1
+ import { jsxs as c, jsx as o } from "react/jsx-runtime";
2
+ import { VisuallyHidden as s } from "@radix-ui/react-visually-hidden";
3
+ import { useRef as p } from "react";
4
+ const d = ({
5
+ onChange: n,
6
+ disabled: r,
7
+ mimes: l,
8
+ children: a,
9
+ multiple: i,
10
+ className: f
11
+ }) => {
12
+ const e = p(null), u = (t) => {
13
+ r || (t.target.files && n?.(Array.from(t.target.files)), e.current && (e.current.value = ""));
14
+ };
15
+ return /* @__PURE__ */ c("label", { className: f, children: [
16
+ a,
17
+ /* @__PURE__ */ o(s, { asChild: !0, children: /* @__PURE__ */ o(
18
+ "input",
19
+ {
20
+ ref: e,
21
+ hidden: !0,
22
+ type: "file",
23
+ autoComplete: "off",
24
+ autoCapitalize: "none",
25
+ autoCorrect: "off",
26
+ spellCheck: "false",
27
+ "aria-autocomplete": "none",
28
+ multiple: i,
29
+ accept: (l ?? []).join(", "),
30
+ onChange: u,
31
+ disabled: r
32
+ }
33
+ ) })
34
+ ] });
35
+ };
36
+ export {
37
+ d as FileOverlay
38
+ };
@@ -0,0 +1,13 @@
1
+ import { useState as s, useEffect as c } from "react";
2
+ const l = (e, a) => {
3
+ const [t, o] = s(() => {
4
+ const r = localStorage.getItem(e);
5
+ return r ? JSON.parse(r) : a;
6
+ });
7
+ return c(() => {
8
+ localStorage.setItem(e, JSON.stringify(t));
9
+ }, [t]), [t, o];
10
+ };
11
+ export {
12
+ l as useLocalStorage
13
+ };
@@ -0,0 +1,45 @@
1
+ import { jsx as e, jsxs as b, Fragment as h } from "react/jsx-runtime";
2
+ import j from "classnames";
3
+ import { Spinner as k } from "./bundle.es4.js";
4
+ import { forwardRef as v } from "react";
5
+ import { attr as r } from "@companix/utils-browser";
6
+ const F = v(
7
+ ({
8
+ children: d,
9
+ fill: o,
10
+ text: m,
11
+ active: l,
12
+ mode: c = "default",
13
+ appearance: f = "neutral",
14
+ size: s = "md",
15
+ align: p,
16
+ icon: n,
17
+ loading: a,
18
+ className: u,
19
+ iconRight: i,
20
+ ...t
21
+ }, x) => /* @__PURE__ */ e(
22
+ "button",
23
+ {
24
+ ref: x,
25
+ className: j("button", u),
26
+ "data-size": s,
27
+ "data-loading": r(a),
28
+ "data-align": a ? "center" : p ?? (n && i ? "left" : "center"),
29
+ "data-appearance": f,
30
+ "data-mode": c,
31
+ "data-fill": r(o),
32
+ "data-active": r(l),
33
+ ...t,
34
+ onClick: a ?? t.disabled ? void 0 : t.onClick,
35
+ children: a ? /* @__PURE__ */ e(k, { size: 14, width: 2 }) : /* @__PURE__ */ b(h, { children: [
36
+ n,
37
+ (d ?? m) && /* @__PURE__ */ e("span", { className: "button-text", children: m ?? d }),
38
+ i
39
+ ] })
40
+ }
41
+ )
42
+ );
43
+ export {
44
+ F as Button
45
+ };
@@ -0,0 +1,27 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { hash as m } from "@companix/utils-js";
3
+ import { useRef as n, useMemo as s } from "react";
4
+ import { Viewport as u } from "./bundle.es48.js";
5
+ const h = (t = {}) => {
6
+ const e = {
7
+ emit: (r) => {
8
+ console.error("uninitialized", r);
9
+ }
10
+ };
11
+ return {
12
+ show: (r) => {
13
+ e.emit({ ...r, id: m() });
14
+ },
15
+ Viewport: () => {
16
+ const r = n(null);
17
+ return s(() => {
18
+ e.emit = (o) => {
19
+ r.current && r.current.showAlert(o);
20
+ };
21
+ }, []), /* @__PURE__ */ i(u, { ref: r, ...t });
22
+ }
23
+ };
24
+ };
25
+ export {
26
+ h as createAlertAgent
27
+ };
@@ -0,0 +1,38 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { hash as d } from "@companix/utils-js";
3
+ import { Viewport as s } from "./bundle.es49.js";
4
+ import { useRef as c, useMemo as l } from "react";
5
+ const f = (i = {}) => {
6
+ const t = {
7
+ emit: (e) => {
8
+ console.error("uninitialized", e);
9
+ }
10
+ };
11
+ return {
12
+ send: (e) => {
13
+ t.emit({ ...e, id: d() });
14
+ },
15
+ Viewport: (e = {}) => {
16
+ const n = c(null);
17
+ return l(() => {
18
+ t.emit = (r) => {
19
+ n.current && n.current.addToast(r);
20
+ };
21
+ }, []), /* @__PURE__ */ a(
22
+ s,
23
+ {
24
+ ref: n,
25
+ align: e.align ?? i.align,
26
+ closeIcon: e.closeIcon ?? i.closeIcon,
27
+ duration: e.duration ?? i.duration,
28
+ gap: e.gap ?? i.gap,
29
+ side: e.side ?? i.side,
30
+ swipeThreshold: e.swipeThreshold ?? i.swipeThreshold
31
+ }
32
+ );
33
+ }
34
+ };
35
+ };
36
+ export {
37
+ f as createToaster
38
+ };
@@ -0,0 +1,43 @@
1
+ import { useRef as p, useMemo as v, useCallback as S, useState as d, useLayoutEffect as h } from "react";
2
+ import { getFloatDigits as x, truncateNumber as C, normalize as g } from "@companix/utils-js";
3
+ const b = ({ minValue: s, value: n, onChange: m, step: a }) => {
4
+ const r = p(null), c = v(() => x(a.toString()), [a]), i = S(
5
+ (u) => s && u < s ? s.toFixed(c) : C(u, c),
6
+ [s, c]
7
+ ), [e, l] = d({
8
+ value: i(n),
9
+ cursor: 0
10
+ }), o = (u, t = 0) => {
11
+ const f = i(u);
12
+ l({ value: f, cursor: (r.current?.selectionStart || 0) + t }), m(+f);
13
+ };
14
+ return +e.value !== n && l({ value: i(n), cursor: 0 }), h(() => {
15
+ r.current && (r.current.setSelectionRange(e.cursor, e.cursor), r.current.focus());
16
+ }, [e]), {
17
+ inputRef: r,
18
+ value: e.value,
19
+ increment: () => {
20
+ o(g(n + a, c));
21
+ },
22
+ decrement: () => {
23
+ o(g(n - a, c));
24
+ },
25
+ handleChange: (u) => {
26
+ const t = u.currentTarget.value.trim();
27
+ if (t) {
28
+ if (isNaN(+t) || t.includes("e")) {
29
+ o(+e.value, -1);
30
+ return;
31
+ }
32
+ if (e.value.includes(".") && e.value.replace(".", "") === t && r.current && r.current.selectionStart) {
33
+ o(+e.value);
34
+ return;
35
+ }
36
+ }
37
+ o(+t);
38
+ }
39
+ };
40
+ };
41
+ export {
42
+ b as useStepperInput
43
+ };