bonkers-ui 2.0.1 → 2.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 (150) hide show
  1. package/README.md +25 -40
  2. package/_types/colors.d.ts +2 -0
  3. package/_types/colors.js +1 -1
  4. package/_types/colors.js.map +1 -1
  5. package/assets/UiBerRank.css +1 -0
  6. package/assets/UiButton.css +0 -0
  7. package/assets/UiCheckbox.css +1 -0
  8. package/assets/UiInputRange.css +1 -0
  9. package/assets/UiRadio.css +1 -0
  10. package/assets/UiSelect.css +1 -0
  11. package/bonkers.css +243 -0
  12. package/components/UiAccordion/UiAccordion.InfoDropdown.d.ts +8 -0
  13. package/components/UiAccordion/UiAccordion.InfoDropdown.js +31 -0
  14. package/components/UiAccordion/UiAccordion.InfoDropdown.js.map +1 -0
  15. package/components/UiAccordion/UiAccordion.base.d.ts +9 -0
  16. package/components/UiAccordion/UiAccordion.base.js +13 -0
  17. package/components/UiAccordion/UiAccordion.base.js.map +1 -0
  18. package/components/UiAccordion/UiAccordion.context.d.ts +22 -0
  19. package/components/UiAccordion/UiAccordion.context.js +39 -0
  20. package/components/UiAccordion/UiAccordion.context.js.map +1 -0
  21. package/components/UiAccordion/UiAccordionItem.base.d.ts +16 -0
  22. package/components/UiAccordion/UiAccordionItem.base.js +43 -0
  23. package/components/UiAccordion/UiAccordionItem.base.js.map +1 -0
  24. package/components/UiAccordion/_types.d.ts +4 -0
  25. package/components/UiAccordion/_types.js +5 -0
  26. package/components/UiAccordion/_types.js.map +1 -0
  27. package/components/UiAccordion/index.d.ts +5 -0
  28. package/components/UiAccordion/index.js +13 -0
  29. package/{index.js.map → components/UiAccordion/index.js.map} +1 -1
  30. package/components/UiBerRank/UiBerRank.js +30 -28
  31. package/components/UiBerRank/UiBerRank.js.map +1 -1
  32. package/components/UiBerRank/_types.js +6 -5
  33. package/components/UiBerRank/_types.js.map +1 -1
  34. package/components/UiButton/UiButton.d.ts +1 -0
  35. package/components/UiButton/UiButton.js +363 -100
  36. package/components/UiButton/UiButton.js.map +1 -1
  37. package/components/UiButton/_types.d.ts +37 -3
  38. package/components/UiButton/_types.js +1 -1
  39. package/components/UiButton/_types.js.map +1 -1
  40. package/components/UiCheckbox/UiCheckbox.js +46 -42
  41. package/components/UiCheckbox/UiCheckbox.js.map +1 -1
  42. package/components/UiCheckbox/index.d.ts +1 -0
  43. package/components/UiCheckbox/index.js +4 -2
  44. package/components/UiCheckbox/index.js.map +1 -1
  45. package/components/UiIcon/UiIcon.d.ts +1 -0
  46. package/components/UiIcon/UiIcon.js +10 -9
  47. package/components/UiIcon/UiIcon.js.map +1 -1
  48. package/components/UiInput/UiInput.base.d.ts +9 -0
  49. package/components/UiInput/UiInput.base.js +43 -0
  50. package/components/UiInput/UiInput.base.js.map +1 -0
  51. package/components/UiInput/UiInputText.d.ts +12 -0
  52. package/components/UiInput/UiInputText.js +39 -0
  53. package/components/UiInput/UiInputText.js.map +1 -0
  54. package/components/UiInput/UiInputTitled.d.ts +10 -0
  55. package/components/UiInput/UiInputTitled.js +36 -0
  56. package/components/UiInput/UiInputTitled.js.map +1 -0
  57. package/components/UiInput/_types.d.ts +5 -0
  58. package/components/UiInput/_types.js +5 -0
  59. package/components/UiInput/_types.js.map +1 -0
  60. package/components/UiInput/index.d.ts +4 -0
  61. package/components/UiInput/index.js +11 -0
  62. package/components/UiInput/index.js.map +1 -0
  63. package/components/UiInputRange/UiInputRange.js +26 -25
  64. package/components/UiInputRange/UiInputRange.js.map +1 -1
  65. package/components/UiList/UiList.d.ts +2 -1
  66. package/components/UiList/UiList.js +23 -18
  67. package/components/UiList/UiList.js.map +1 -1
  68. package/components/UiList/_types.d.ts +4 -0
  69. package/components/UiList/_types.js +4 -3
  70. package/components/UiList/_types.js.map +1 -1
  71. package/components/UiNotificationBadge/UiNotificationBadge.d.ts +10 -0
  72. package/components/UiNotificationBadge/UiNotificationBadge.js +67 -0
  73. package/components/UiNotificationBadge/UiNotificationBadge.js.map +1 -0
  74. package/components/UiNotificationBadge/_types.d.ts +14 -0
  75. package/components/UiNotificationBadge/_types.js +7 -0
  76. package/components/UiNotificationBadge/_types.js.map +1 -0
  77. package/components/UiNotificationBadge/index.d.ts +1 -0
  78. package/components/UiNotificationBadge/index.js +5 -0
  79. package/components/UiNotificationBadge/index.js.map +1 -0
  80. package/components/UiPills/UiPills.js +5 -5
  81. package/components/UiPills/UiPills.js.map +1 -1
  82. package/components/UiProductCard/UiProductCard.js +6 -6
  83. package/components/UiProductCard/UiProductCard.js.map +1 -1
  84. package/components/UiProgress/UiProgress.js +4 -4
  85. package/components/UiProgress/UiProgress.js.map +1 -1
  86. package/components/UiRadio/UiRadio.js +13 -11
  87. package/components/UiRadio/UiRadio.js.map +1 -1
  88. package/components/UiRadioFancy/UiRadioFancy.d.ts +8 -4
  89. package/components/UiRadioFancy/UiRadioFancy.js +38 -28
  90. package/components/UiRadioFancy/UiRadioFancy.js.map +1 -1
  91. package/components/UiRadioFancy/_types.d.ts +1 -1
  92. package/components/UiRadioFancy/_types.js +2 -2
  93. package/components/UiRadioFancy/_types.js.map +1 -1
  94. package/components/UiSelect/UiSelect.js +98 -0
  95. package/components/UiSelect/UiSelect.js.map +1 -0
  96. package/components/UiSelect/index.js +5 -0
  97. package/components/UiSelect/index.js.map +1 -0
  98. package/components/UiSkeleton/UiSkeleton.js +163 -197
  99. package/components/UiSkeleton/UiSkeleton.js.map +1 -1
  100. package/components/UiSkeleton/_types.d.ts +1 -2
  101. package/components/UiSkeleton/_types.js +2 -2
  102. package/components/UiSkeleton/_types.js.map +1 -1
  103. package/components/UiSnackbar/UiSnackbar.d.ts +9 -0
  104. package/components/UiSnackbar/UiSnackbar.js +69 -0
  105. package/components/UiSnackbar/UiSnackbar.js.map +1 -0
  106. package/components/UiSnackbar/_types.d.ts +7 -0
  107. package/components/UiSnackbar/_types.js +5 -0
  108. package/components/UiSnackbar/_types.js.map +1 -0
  109. package/components/UiSnackbar/index.d.ts +1 -0
  110. package/components/UiSnackbar/index.js +5 -0
  111. package/components/UiSnackbar/index.js.map +1 -0
  112. package/components/UiTable/UiTableRow.js +10 -9
  113. package/components/UiTable/UiTableRow.js.map +1 -1
  114. package/components/UiTabs/UiTabs.js +19 -18
  115. package/components/UiTabs/UiTabs.js.map +1 -1
  116. package/components/UiToggle/UiToggle.d.ts +7 -4
  117. package/components/UiToggle/UiToggle.js +89 -89
  118. package/components/UiToggle/UiToggle.js.map +1 -1
  119. package/components/UiTypography/UiTypography.d.ts +4 -5
  120. package/components/UiTypography/UiTypography.js +31 -26
  121. package/components/UiTypography/UiTypography.js.map +1 -1
  122. package/eslint.config.mjs +4 -3
  123. package/helper.d.ts +31 -0
  124. package/index.d.ts +23 -18
  125. package/package.json +41 -40
  126. package/stories/Colors/Colors.d.ts +2 -0
  127. package/stories/FontSizes/FontSizes.d.ts +2 -0
  128. package/stories/Spacings/Spacings.d.ts +2 -0
  129. package/bonkers-ui.css +0 -1
  130. package/bonkers-ui.umd.js +0 -103
  131. package/bonkers-ui.umd.js.map +0 -1
  132. package/components/UiBerRank/UiBerRank.module.css.js +0 -10
  133. package/components/UiBerRank/UiBerRank.module.css.js.map +0 -1
  134. package/components/UiButton/UiButton.module.css.js +0 -8
  135. package/components/UiButton/UiButton.module.css.js.map +0 -1
  136. package/components/UiCheckbox/UiCheckbox.module.css.js +0 -15
  137. package/components/UiCheckbox/UiCheckbox.module.css.js.map +0 -1
  138. package/components/UiInputRange/UiInputRange.module.css.js +0 -8
  139. package/components/UiInputRange/UiInputRange.module.css.js.map +0 -1
  140. package/components/UiRadio/UiRadio.module.css.js +0 -10
  141. package/components/UiRadio/UiRadio.module.css.js.map +0 -1
  142. package/index.js +0 -39
  143. package/plugin.ts +0 -160
  144. package/postcss.config.mjs +0 -9
  145. package/src/_styles/_backdropBlur.json +0 -10
  146. package/src/_styles/_colors.json +0 -81
  147. package/src/_styles/_fontSizes.json +0 -12
  148. package/src/_styles/_shadow.json +0 -8
  149. package/src/_styles/_spacing.json +0 -16
  150. package/tailwind.config.ts +0 -15
@@ -1,79 +1,83 @@
1
- import { jsxs as y, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as k, jsx as i } from "react/jsx-runtime";
2
2
  import "react";
3
- import o from "./UiCheckbox.module.css.js";
4
- import c from "classnames";
3
+ import r from "classnames";
5
4
  import { EJustify as e } from "../../_types/align.js";
6
5
  import { ECheckboxSize as s } from "./_types.js";
7
- const b = {
6
+ import '../../assets/UiCheckbox.css';const C = "_UiCheckbox_6diu5_1", f = "_UiCheckbox__custom_6diu5_5", U = "_UiCheckbox__icon_6diu5_11", p = "_UiCheckbox__disabled_6diu5_63", t = {
7
+ UiCheckbox: C,
8
+ UiCheckbox__custom: f,
9
+ UiCheckbox__icon: U,
10
+ UiCheckbox__disabled: p
11
+ }, y = {
8
12
  [e.START]: "justify-start",
9
13
  [e.END]: "justify-end",
10
14
  [e.CENTER]: "justify-center",
11
15
  [e.BETWEEN]: "justify-between",
12
16
  [e.AROUND]: "justify-around",
13
17
  [e.EVENLY]: "justify-evenly"
14
- }, k = {
18
+ }, j = {
15
19
  [s.SM]: "size-sm",
16
20
  [s.MD]: "size-md"
17
- }, j = {
21
+ }, E = {
18
22
  [s.SM]: "size-xs",
19
23
  [s.MD]: "size-sm"
20
- }, z = ({
21
- checked: l,
22
- value: m,
23
- size: a = s.MD,
24
- disabled: i = !1,
25
- justify: d = e.START,
26
- invertOrder: f = !1,
27
- children: n,
28
- onChange: t,
29
- name: u,
30
- ...p
24
+ }, M = ({
25
+ checked: a,
26
+ value: d,
27
+ size: n = s.MD,
28
+ disabled: c = !1,
29
+ justify: l = e.START,
30
+ invertOrder: x = !1,
31
+ children: _,
32
+ onChange: o,
33
+ name: b,
34
+ ...h
31
35
  }) => {
32
- const x = (h) => {
33
- !i && t && (t == null || t(h.target.checked));
36
+ const u = (m) => {
37
+ !c && o && (o == null || o(m.target.checked));
34
38
  };
35
- return /* @__PURE__ */ y("label", { className: c(
36
- o.UiCheckbox,
39
+ return /* @__PURE__ */ k("label", { className: r(
40
+ t.UiCheckbox,
37
41
  "grid",
38
42
  "cursor-pointer",
39
- n && "items-center gap-sm",
40
- b[d],
41
- i && o.UiCheckbox__disabled
43
+ _ && "items-center gap-sm",
44
+ y[l],
45
+ c && t.UiCheckbox__disabled
42
46
  ), children: [
43
- /* @__PURE__ */ r(
47
+ /* @__PURE__ */ i(
44
48
  "input",
45
49
  {
46
- ...p,
50
+ ...h,
47
51
  className: "absolute appearance-none",
48
52
  type: "checkbox",
49
- checked: l,
50
- disabled: i,
51
- value: m,
52
- name: u,
53
- onChange: x
53
+ checked: a,
54
+ disabled: c,
55
+ value: d,
56
+ name: b,
57
+ onChange: u
54
58
  }
55
59
  ),
56
- /* @__PURE__ */ r("span", { className: c(
57
- o.UiCheckbox__custom,
60
+ /* @__PURE__ */ i("span", { className: r(
61
+ t.UiCheckbox__custom,
58
62
  "relative",
59
63
  "flex",
60
64
  "items-center",
61
65
  "justify-center",
62
- "rounded",
66
+ "rounded-sm",
63
67
  "border",
64
- "border-secondary-alt-500",
68
+ "border-secondary-alt-600",
65
69
  "hover:border-secondary-alt-700",
66
- f && "order-last",
67
- k[a]
68
- ), children: /* @__PURE__ */ r(
70
+ x && "order-last",
71
+ j[n]
72
+ ), children: /* @__PURE__ */ i(
69
73
  "svg",
70
74
  {
71
- className: c(o.UiCheckbox__icon, "text-white", j[a]),
75
+ className: r(t.UiCheckbox__icon, "text-white", E[n]),
72
76
  viewBox: "0 0 16 12",
73
77
  fill: "none",
74
78
  xmlns: "http://www.w3.org/2000/svg",
75
79
  "aria-hidden": "true",
76
- children: /* @__PURE__ */ r(
80
+ children: /* @__PURE__ */ i(
77
81
  "path",
78
82
  {
79
83
  d: "M1 4.40106L6.60071 10.1135L15.1694 1.71245",
@@ -84,10 +88,10 @@ const b = {
84
88
  )
85
89
  }
86
90
  ) }),
87
- n
91
+ _
88
92
  ] });
89
93
  };
90
94
  export {
91
- z as UiCheckbox
95
+ M as UiCheckbox
92
96
  };
93
97
  //# sourceMappingURL=UiCheckbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiCheckbox.js","sources":["../../../src/components/UiCheckbox/UiCheckbox.tsx"],"sourcesContent":["import React from \"react\";\nimport styles from \"./UiCheckbox.module.css\";\nimport cx from \"classnames\";\nimport { EJustify } from \"../../_types/align\";\nimport { ECheckboxSize } from \"./_types.ts\";\n\nexport type TUiCheckboxProps = {\n\tinvertOrder?: boolean;\n\tjustify?: EJustify;\n\tdisabled?: boolean;\n\tvalue?: string;\n\tsize?: ECheckboxSize;\n\tonChange?: (checked: boolean) => void;\n\tname?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"onChange\">;\n\nconst justificationClasses = {\n\t[EJustify.START]: \"justify-start\",\n\t[EJustify.END]: \"justify-end\",\n\t[EJustify.CENTER]: \"justify-center\",\n\t[EJustify.BETWEEN]: \"justify-between\",\n\t[EJustify.AROUND]: \"justify-around\",\n\t[EJustify.EVENLY]: \"justify-evenly\"\n};\n\nconst spanSizeClasses = {\n\t[ECheckboxSize.SM]: \"size-sm\",\n\t[ECheckboxSize.MD]: \"size-md\"\n};\n\nconst svgSizeClasses = {\n\t[ECheckboxSize.SM]: \"size-xs\",\n\t[ECheckboxSize.MD]: \"size-sm\"\n};\n\nexport const UiCheckbox: React.FC<TUiCheckboxProps> = ({\n\tchecked,\n\tvalue,\n\tsize = ECheckboxSize.MD,\n\tdisabled = false,\n\tjustify = EJustify.START,\n\tinvertOrder = false,\n\tchildren,\n\tonChange,\n\tname,\n\t...rest\n}) => {\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (!disabled && onChange) {\n\t\t\tonChange?.(event.target.checked);\n\t\t}\n\t};\n\treturn (\n\t\t<label className={\n\t\t\tcx(styles.UiCheckbox,\n\t\t\t\t\"grid\",\n\t\t\t\t\"cursor-pointer\",\n\t\t\t\tchildren && \"items-center gap-sm\",\n\t\t\t\tjustificationClasses[justify],\n\t\t\t\tdisabled && styles.UiCheckbox__disabled)\n\t\t}>\n\t\t\t<input\n\t\t\t\t{ ...rest }\n\t\t\t\tclassName=\"absolute appearance-none\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={ checked }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tvalue={ value }\n\t\t\t\tname={ name }\n\t\t\t\tonChange={ handleChange }\n\t\t\t/>\n\t\t\t<span className={ cx(styles.UiCheckbox__custom,\n\t\t\t\t\"relative\",\n\t\t\t\t\"flex\",\n\t\t\t\t\"items-center\",\n\t\t\t\t\"justify-center\",\n\t\t\t\t\"rounded\",\n\t\t\t\t\"border\",\n\t\t\t\t\"border-secondary-alt-500\",\n\t\t\t\t\"hover:border-secondary-alt-700\",\n\t\t\t\tinvertOrder && \"order-last\",\n\t\t\t\tspanSizeClasses[size]\n\t\t\t) }>\n\t\t\t\t<svg\n\t\t\t\t\tclassName={ cx(styles.UiCheckbox__icon, \"text-white\", svgSizeClasses[size]) }\n\t\t\t\t\tviewBox=\"0 0 16 12\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1 4.40106L6.60071 10.1135L15.1694 1.71245\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"1.6\"\n\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t{ children }\n\t\t</label>\n\t);\n};\n"],"names":["justificationClasses","EJustify","spanSizeClasses","ECheckboxSize","svgSizeClasses","UiCheckbox","checked","value","size","disabled","justify","invertOrder","children","onChange","name","rest","handleChange","event","jsxs","cx","styles","jsx"],"mappings":";;;;;;AAgBA,MAAMA,IAAuB;AAAA,EAC5B,CAACC,EAAS,KAAK,GAAG;AAAA,EAClB,CAACA,EAAS,GAAG,GAAG;AAAA,EAChB,CAACA,EAAS,MAAM,GAAG;AAAA,EACnB,CAACA,EAAS,OAAO,GAAG;AAAA,EACpB,CAACA,EAAS,MAAM,GAAG;AAAA,EACnB,CAACA,EAAS,MAAM,GAAG;AACpB,GAEMC,IAAkB;AAAA,EACvB,CAACC,EAAc,EAAE,GAAG;AAAA,EACpB,CAACA,EAAc,EAAE,GAAG;AACrB,GAEMC,IAAiB;AAAA,EACtB,CAACD,EAAc,EAAE,GAAG;AAAA,EACpB,CAACA,EAAc,EAAE,GAAG;AACrB,GAEaE,IAAyC,CAAC;AAAA,EACtD,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAOL,EAAc;AAAA,EACrB,UAAAM,IAAW;AAAA,EACX,SAAAC,IAAUT,EAAS;AAAA,EACnB,aAAAU,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACJ,MAAM;AACC,QAAAC,IAAe,CAACC,MAA+C;AAChE,IAAA,CAACR,KAAYI,MACLA,KAAA,QAAAA,EAAAI,EAAM,OAAO;AAAA,EAE1B;AAEC,SAAA,gBAAAC,EAAC,WAAM,WACNC;AAAA,IAAGC,EAAO;AAAA,IACT;AAAA,IACA;AAAA,IACAR,KAAY;AAAA,IACZZ,EAAqBU,CAAO;AAAA,IAC5BD,KAAYW,EAAO;AAAA,EAEpB,GAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGN;AAAA,QACL,WAAU;AAAA,QACV,MAAK;AAAA,QACL,SAAAT;AAAA,QACA,UAAAG;AAAA,QACA,OAAAF;AAAA,QACA,MAAAO;AAAA,QACA,UAAWE;AAAA,MAAA;AAAA,IACZ;AAAA,IACA,gBAAAK,EAAC,UAAK,WAAYF;AAAA,MAAGC,EAAO;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAT,KAAe;AAAA,MACfT,EAAgBM,CAAI;AAAA,IAEpB,GAAA,UAAA,gBAAAa;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,WAAYF,EAAGC,EAAO,kBAAkB,cAAchB,EAAeI,CAAI,CAAC;AAAA,QAC1E,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,eAAY;AAAA,QAEZ,UAAA,gBAAAa;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MACf;AAAA,IAAA,GAEF;AAAA,IACET;AAAA,EAAA,GACH;AAEF;"}
1
+ {"version":3,"file":"UiCheckbox.js","sources":["../../../src/components/UiCheckbox/UiCheckbox.tsx"],"sourcesContent":["import React from \"react\";\nimport styles from \"./UiCheckbox.module.css\";\nimport cx from \"classnames\";\nimport { EJustify } from \"../../_types/align\";\nimport { ECheckboxSize } from \"./_types.ts\";\n\nexport type TUiCheckboxProps = {\n\tinvertOrder?: boolean;\n\tjustify?: EJustify;\n\tdisabled?: boolean;\n\tvalue?: string;\n\tsize?: ECheckboxSize;\n\tonChange?: (checked: boolean) => void;\n\tname?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"onChange\">;\n\nconst justificationClasses = {\n\t[EJustify.START]: \"justify-start\",\n\t[EJustify.END]: \"justify-end\",\n\t[EJustify.CENTER]: \"justify-center\",\n\t[EJustify.BETWEEN]: \"justify-between\",\n\t[EJustify.AROUND]: \"justify-around\",\n\t[EJustify.EVENLY]: \"justify-evenly\"\n};\n\nconst spanSizeClasses = {\n\t[ECheckboxSize.SM]: \"size-sm\",\n\t[ECheckboxSize.MD]: \"size-md\"\n};\n\nconst svgSizeClasses = {\n\t[ECheckboxSize.SM]: \"size-xs\",\n\t[ECheckboxSize.MD]: \"size-sm\"\n};\n\nexport const UiCheckbox: React.FC<TUiCheckboxProps> = ({\n\tchecked,\n\tvalue,\n\tsize = ECheckboxSize.MD,\n\tdisabled = false,\n\tjustify = EJustify.START,\n\tinvertOrder = false,\n\tchildren,\n\tonChange,\n\tname,\n\t...rest\n}) => {\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n\t\tif (!disabled && onChange) {\n\t\t\tonChange?.(event.target.checked);\n\t\t}\n\t};\n\treturn (\n\t\t<label className={\n\t\t\tcx(styles.UiCheckbox,\n\t\t\t\t\"grid\",\n\t\t\t\t\"cursor-pointer\",\n\t\t\t\tchildren && \"items-center gap-sm\",\n\t\t\t\tjustificationClasses[justify],\n\t\t\t\tdisabled && styles.UiCheckbox__disabled)\n\t\t}>\n\t\t\t<input\n\t\t\t\t{ ...rest }\n\t\t\t\tclassName=\"absolute appearance-none\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={ checked }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tvalue={ value }\n\t\t\t\tname={ name }\n\t\t\t\tonChange={ handleChange }\n\t\t\t/>\n\t\t\t<span className={ cx(styles.UiCheckbox__custom,\n\t\t\t\t\"relative\",\n\t\t\t\t\"flex\",\n\t\t\t\t\"items-center\",\n\t\t\t\t\"justify-center\",\n\t\t\t\t\"rounded-sm\",\n\t\t\t\t\"border\",\n\t\t\t\t\"border-secondary-alt-600\",\n\t\t\t\t\"hover:border-secondary-alt-700\",\n\t\t\t\tinvertOrder && \"order-last\",\n\t\t\t\tspanSizeClasses[size]\n\t\t\t) }>\n\t\t\t\t<svg\n\t\t\t\t\tclassName={ cx(styles.UiCheckbox__icon, \"text-white\", svgSizeClasses[size]) }\n\t\t\t\t\tviewBox=\"0 0 16 12\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1 4.40106L6.60071 10.1135L15.1694 1.71245\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"1.6\"\n\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t{ children }\n\t\t</label>\n\t);\n};\n"],"names":["justificationClasses","EJustify","spanSizeClasses","ECheckboxSize","svgSizeClasses","UiCheckbox","checked","value","size","disabled","justify","invertOrder","children","onChange","name","rest","handleChange","event","jsxs","cx","styles","jsx"],"mappings":";;;;;;;;;;GAgBMA,IAAuB;AAAA,EAC5B,CAACC,EAAS,KAAK,GAAG;AAAA,EAClB,CAACA,EAAS,GAAG,GAAG;AAAA,EAChB,CAACA,EAAS,MAAM,GAAG;AAAA,EACnB,CAACA,EAAS,OAAO,GAAG;AAAA,EACpB,CAACA,EAAS,MAAM,GAAG;AAAA,EACnB,CAACA,EAAS,MAAM,GAAG;AACpB,GAEMC,IAAkB;AAAA,EACvB,CAACC,EAAc,EAAE,GAAG;AAAA,EACpB,CAACA,EAAc,EAAE,GAAG;AACrB,GAEMC,IAAiB;AAAA,EACtB,CAACD,EAAc,EAAE,GAAG;AAAA,EACpB,CAACA,EAAc,EAAE,GAAG;AACrB,GAEaE,IAAyC,CAAC;AAAA,EACtD,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC,IAAOL,EAAc;AAAA,EACrB,UAAAM,IAAW;AAAA,EACX,SAAAC,IAAUT,EAAS;AAAA,EACnB,aAAAU,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACJ,MAAM;AACC,QAAAC,IAAe,CAACC,MAA+C;AAChE,IAAA,CAACR,KAAYI,MACLA,KAAA,QAAAA,EAAAI,EAAM,OAAO;AAAA,EAE1B;AAEC,SAAA,gBAAAC,EAAC,WAAM,WACNC;AAAA,IAAGC,EAAO;AAAA,IACT;AAAA,IACA;AAAA,IACAR,KAAY;AAAA,IACZZ,EAAqBU,CAAO;AAAA,IAC5BD,KAAYW,EAAO;AAAA,EAEpB,GAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGN;AAAA,QACL,WAAU;AAAA,QACV,MAAK;AAAA,QACL,SAAAT;AAAA,QACA,UAAAG;AAAA,QACA,OAAAF;AAAA,QACA,MAAAO;AAAA,QACA,UAAWE;AAAA,MAAA;AAAA,IACZ;AAAA,IACA,gBAAAK,EAAC,UAAK,WAAYF;AAAA,MAAGC,EAAO;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAT,KAAe;AAAA,MACfT,EAAgBM,CAAI;AAAA,IAEpB,GAAA,UAAA,gBAAAa;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,WAAYF,EAAGC,EAAO,kBAAkB,cAAchB,EAAeI,CAAI,CAAC;AAAA,QAC1E,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,eAAY;AAAA,QAEZ,UAAA,gBAAAa;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MACf;AAAA,IAAA,GAEF;AAAA,IACET;AAAA,EAAA,GACH;AAEF;"}
@@ -1,2 +1,3 @@
1
1
  export { UiCheckbox } from './UiCheckbox';
2
2
  export { ECheckboxSize } from './_types';
3
+ export { EJustify } from '../../_types/align';
@@ -1,7 +1,9 @@
1
1
  import { UiCheckbox as r } from "./UiCheckbox.js";
2
- import { ECheckboxSize as b } from "./_types.js";
2
+ import { ECheckboxSize as f } from "./_types.js";
3
+ import { EJustify as i } from "../../_types/align.js";
3
4
  export {
4
- b as ECheckboxSize,
5
+ f as ECheckboxSize,
6
+ i as EJustify,
5
7
  r as UiCheckbox
6
8
  };
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -4,6 +4,7 @@ import { IconProp } from '@fortawesome/fontawesome-svg-core';
4
4
  interface IUiIconProps {
5
5
  name: IconProp;
6
6
  size?: ESize;
7
+ className?: string;
7
8
  }
8
9
  export declare const UiIcon: React.FC<IUiIconProps>;
9
10
  export {};
@@ -1,10 +1,10 @@
1
- import { jsx as o } from "react/jsx-runtime";
1
+ import { jsx as x } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { ESize as i } from "../../_types/sizing.js";
4
- import { FontAwesomeIcon as x } from "@fortawesome/react-fontawesome";
5
- import X from "classnames";
4
+ import { FontAwesomeIcon as X } from "@fortawesome/react-fontawesome";
5
+ import m from "classnames";
6
6
  import "@fortawesome/fontawesome-svg-core";
7
- const m = {
7
+ const r = {
8
8
  [i.XXXS]: "size-xxxs",
9
9
  [i.XXS]: "size-xxs",
10
10
  [i.XS]: "size-xs",
@@ -18,20 +18,21 @@ const m = {
18
18
  [i.XXXXXL]: "size-xxxxxl",
19
19
  [i.AUTO]: "size-auto",
20
20
  [i.ZERO]: "size-zero"
21
- }, p = ({ size: s, name: e }) => /* @__PURE__ */ o(
22
- x,
21
+ }, a = ({ size: s, name: e, className: o }) => /* @__PURE__ */ x(
22
+ X,
23
23
  {
24
24
  icon: e,
25
- className: X(
25
+ className: m(
26
26
  "ui-icon",
27
27
  "inline",
28
28
  "overflow-visible",
29
29
  "align-[-.125em]",
30
- s && m[s]
30
+ s && r[s],
31
+ o
31
32
  )
32
33
  }
33
34
  );
34
35
  export {
35
- p as UiIcon
36
+ a as UiIcon
36
37
  };
37
38
  //# sourceMappingURL=UiIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiIcon.js","sources":["../../../src/components/UiIcon/UiIcon.tsx"],"sourcesContent":["import React from \"react\";\nimport { ESize } from \"../../_types/sizing\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport cx from \"classnames\";\nimport { type IconProp } from \"@fortawesome/fontawesome-svg-core\";\n\ninterface IUiIconProps {\n\tname: IconProp;\n\tsize?: ESize;\n}\n\nconst sizeToClassName: { [key in ESize]: string } = {\n\t[ESize.XXXS]: \"size-xxxs\",\n\t[ESize.XXS]: \"size-xxs\",\n\t[ESize.XS]: \"size-xs\",\n\t[ESize.SM]: \"size-sm\",\n\t[ESize.MD]: \"size-md\",\n\t[ESize.LG]: \"size-lg\",\n\t[ESize.XL]: \"size-xl\",\n\t[ESize.XXL]: \"size-xxl\",\n\t[ESize.XXXL]: \"size-xxxl\",\n\t[ESize.XXXXL]: \"size-xxxxl\",\n\t[ESize.XXXXXL]: \"size-xxxxxl\",\n\t[ESize.AUTO]: \"size-auto\",\n\t[ESize.ZERO]: \"size-zero\",\n};\n\nexport const UiIcon: React.FC<IUiIconProps> = ({ size, name }) => {\n\n\treturn (\n\t\t<FontAwesomeIcon\n\t\t\ticon={ name }\n\t\t\tclassName={ cx(\n\t\t\t\t\"ui-icon\",\n\t\t\t\t\"inline\",\n\t\t\t\t\"overflow-visible\",\n\t\t\t\t\"align-[-.125em]\",\n\t\t\t\tsize && sizeToClassName[size]\n\t\t\t) }\n\t\t/>\n\t);\n};\n"],"names":["sizeToClassName","ESize","UiIcon","size","name","jsx","FontAwesomeIcon","cx"],"mappings":";;;;;;AAWA,MAAMA,IAA8C;AAAA,EACnD,CAACC,EAAM,IAAI,GAAG;AAAA,EACd,CAACA,EAAM,GAAG,GAAG;AAAA,EACb,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,GAAG,GAAG;AAAA,EACb,CAACA,EAAM,IAAI,GAAG;AAAA,EACd,CAACA,EAAM,KAAK,GAAG;AAAA,EACf,CAACA,EAAM,MAAM,GAAG;AAAA,EAChB,CAACA,EAAM,IAAI,GAAG;AAAA,EACd,CAACA,EAAM,IAAI,GAAG;AACf,GAEaC,IAAiC,CAAC,EAAE,MAAAC,GAAM,MAAAC,QAGrD,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACA,MAAOF;AAAA,IACP,WAAYG;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAJ,KAAQH,EAAgBG,CAAI;AAAA,IAAA;AAAA,EAC7B;AACD;"}
1
+ {"version":3,"file":"UiIcon.js","sources":["../../../src/components/UiIcon/UiIcon.tsx"],"sourcesContent":["import React from \"react\";\nimport { ESize } from \"../../_types/sizing\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport cx from \"classnames\";\nimport { type IconProp } from \"@fortawesome/fontawesome-svg-core\";\n\ninterface IUiIconProps {\n\tname: IconProp;\n\tsize?: ESize;\n\tclassName?: string;\n}\n\nconst sizeToClassName: { [key in ESize]: string } = {\n\t[ESize.XXXS]: \"size-xxxs\",\n\t[ESize.XXS]: \"size-xxs\",\n\t[ESize.XS]: \"size-xs\",\n\t[ESize.SM]: \"size-sm\",\n\t[ESize.MD]: \"size-md\",\n\t[ESize.LG]: \"size-lg\",\n\t[ESize.XL]: \"size-xl\",\n\t[ESize.XXL]: \"size-xxl\",\n\t[ESize.XXXL]: \"size-xxxl\",\n\t[ESize.XXXXL]: \"size-xxxxl\",\n\t[ESize.XXXXXL]: \"size-xxxxxl\",\n\t[ESize.AUTO]: \"size-auto\",\n\t[ESize.ZERO]: \"size-zero\",\n};\n\nexport const UiIcon: React.FC<IUiIconProps> = ({ size, name, className }) => {\n\n\treturn (\n\t\t<FontAwesomeIcon\n\t\t\ticon={ name }\n\t\t\tclassName={ cx(\n\t\t\t\t\"ui-icon\",\n\t\t\t\t\"inline\",\n\t\t\t\t\"overflow-visible\",\n\t\t\t\t\"align-[-.125em]\",\n\t\t\t\tsize && sizeToClassName[size],\n\t\t\t\tclassName\n\t\t\t) }\n\t\t/>\n\t);\n};\n"],"names":["sizeToClassName","ESize","UiIcon","size","name","className","jsx","FontAwesomeIcon","cx"],"mappings":";;;;;;AAYA,MAAMA,IAA8C;AAAA,EACnD,CAACC,EAAM,IAAI,GAAG;AAAA,EACd,CAACA,EAAM,GAAG,GAAG;AAAA,EACb,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,EAAE,GAAG;AAAA,EACZ,CAACA,EAAM,GAAG,GAAG;AAAA,EACb,CAACA,EAAM,IAAI,GAAG;AAAA,EACd,CAACA,EAAM,KAAK,GAAG;AAAA,EACf,CAACA,EAAM,MAAM,GAAG;AAAA,EAChB,CAACA,EAAM,IAAI,GAAG;AAAA,EACd,CAACA,EAAM,IAAI,GAAG;AACf,GAEaC,IAAiC,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,WAAAC,QAG3D,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACA,MAAOH;AAAA,IACP,WAAYI;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAL,KAAQH,EAAgBG,CAAI;AAAA,MAC5BE;AAAA,IAAA;AAAA,EACD;AACD;"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { EInputKind } from './_types';
3
+ export type TUiInputBaseProps = {
4
+ id: string;
5
+ postIcon?: React.ReactNode;
6
+ preIcon?: React.ReactNode;
7
+ kind?: EInputKind;
8
+ } & React.InputHTMLAttributes<HTMLInputElement>;
9
+ export declare const UiInputBase: React.FC<TUiInputBaseProps>;
@@ -0,0 +1,43 @@
1
+ import { jsxs as s, jsx as i } from "react/jsx-runtime";
2
+ import "react";
3
+ import { UiTypography as n } from "../UiTypography/UiTypography.js";
4
+ import { EInputKind as e } from "./_types.js";
5
+ import t from "classnames";
6
+ const x = ({ postIcon: o, preIcon: a, kind: l = e.DEFAULT, ...r }) => {
7
+ const d = {
8
+ [e.DEFAULT]: "border-secondary-alt-600 hover:border-secondary-alt-700",
9
+ [e.ERROR]: "border-error",
10
+ [e.SUCCESS]: "border-primary-600"
11
+ };
12
+ return /* @__PURE__ */ s(
13
+ n,
14
+ {
15
+ tag: "label",
16
+ htmlFor: r.id,
17
+ className: t(
18
+ "ui-input-wrapper",
19
+ "flex flex-row items-center gap-sm rounded-xl border p-sm",
20
+ l && d[l],
21
+ {
22
+ "bg-white": !r.disabled,
23
+ "border-secondary-alt-300 bg-secondary-alt-200": r.disabled
24
+ }
25
+ ),
26
+ children: [
27
+ a || null,
28
+ /* @__PURE__ */ i(
29
+ "input",
30
+ {
31
+ className: t("border-0 flex-1 bg-transparent outline-hidden placeholder:text-secondary-alt-600 w-full"),
32
+ ...r
33
+ }
34
+ ),
35
+ o || null
36
+ ]
37
+ }
38
+ );
39
+ };
40
+ export {
41
+ x as UiInputBase
42
+ };
43
+ //# sourceMappingURL=UiInput.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiInput.base.js","sources":["../../../src/components/UiInput/UiInput.base.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiTypography } from \"../UiTypography\";\nimport { EInputKind } from \"./_types\";\nimport cx from \"classnames\";\n\nexport type TUiInputBaseProps = {\n\tid: string;\n\tpostIcon?: React.ReactNode;\n\tpreIcon?: React.ReactNode;\n\tkind?: EInputKind;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const UiInputBase: React.FC<\n\tTUiInputBaseProps\n> = ({ postIcon, preIcon, kind = EInputKind.DEFAULT, ...rest } ) => {\n\n\tconst stateClasses = {\n\t\t[EInputKind.DEFAULT]: \"border-secondary-alt-600 hover:border-secondary-alt-700\",\n\t\t[EInputKind.ERROR]: \"border-error\",\n\t\t[EInputKind.SUCCESS]: \"border-primary-600\",\n\t};\n\n\treturn (\n\t\t<UiTypography\n\t\t\ttag=\"label\"\n\t\t\thtmlFor={ rest.id }\n\t\t\tclassName={\n\t\t\t\tcx(\"ui-input-wrapper\",\n\t\t\t\t\t\"flex flex-row items-center gap-sm rounded-xl border p-sm\",\n\t\t\t\t\tkind && stateClasses[kind],\n\t\t\t\t\t{\n\t\t\t\t\t\t\"bg-white\": !rest.disabled,\n\t\t\t\t\t\t\"border-secondary-alt-300 bg-secondary-alt-200\": rest.disabled,\n\t\t\t\t\t})\n\t\t\t}\n\t\t>\n\t\t\t{ preIcon ? preIcon : null }\n\t\t\t<input\n\t\t\t\tclassName={ cx(\"border-0 flex-1 bg-transparent outline-hidden placeholder:text-secondary-alt-600 w-full\") }\n\t\t\t\t{ ...rest }\n\t\t\t/>\n\t\t\t{ postIcon ? postIcon : null }\n\t\t</UiTypography>\n\t);\n};\n"],"names":["UiInputBase","postIcon","preIcon","kind","EInputKind","rest","stateClasses","jsxs","UiTypography","cx","jsx"],"mappings":";;;;;AAYa,MAAAA,IAET,CAAC,EAAE,UAAAC,GAAU,SAAAC,GAAS,MAAAC,IAAOC,EAAW,SAAS,GAAGC,QAAY;AAEnE,QAAMC,IAAe;AAAA,IACpB,CAACF,EAAW,OAAO,GAAG;AAAA,IACtB,CAACA,EAAW,KAAK,GAAG;AAAA,IACpB,CAACA,EAAW,OAAO,GAAG;AAAA,EACvB;AAGC,SAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,KAAI;AAAA,MACJ,SAAUH,EAAK;AAAA,MACf,WACCI;AAAA,QAAG;AAAA,QACF;AAAA,QACAN,KAAQG,EAAaH,CAAI;AAAA,QACzB;AAAA,UACC,YAAY,CAACE,EAAK;AAAA,UAClB,iDAAiDA,EAAK;AAAA,QAAA;AAAA,MACtD;AAAA,MAGD,UAAA;AAAA,QAAAH,KAAoB;AAAA,QACtB,gBAAAQ;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAYD,EAAG,yFAAyF;AAAA,YACtG,GAAGJ;AAAA,UAAA;AAAA,QACN;AAAA,QACEJ,KAAsB;AAAA,MAAA;AAAA,IAAA;AAAA,EACzB;AAEF;"}
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { EInputKind } from './_types.ts';
3
+ type TUiInputTextProps = {
4
+ id: string;
5
+ kind?: EInputKind;
6
+ statusMessage?: string;
7
+ title?: React.ReactNode;
8
+ subtitle?: React.ReactNode;
9
+ infoComponent?: React.ReactNode;
10
+ } & React.InputHTMLAttributes<HTMLInputElement>;
11
+ export declare const UiInputText: React.FC<TUiInputTextProps>;
12
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsxs as n, jsx as r } from "react/jsx-runtime";
2
+ import "react";
3
+ import { UiInputBase as l } from "./UiInput.base.js";
4
+ import { UiInputTitled as u } from "./UiInputTitled.js";
5
+ import { EInputKind as s } from "./_types.js";
6
+ import { UiTypography as d } from "../UiTypography/UiTypography.js";
7
+ import { ETypographySizes as f } from "../UiTypography/_types.js";
8
+ import { EColors as i } from "../../_types/colors.js";
9
+ import x from "classnames";
10
+ const j = ({
11
+ kind: o,
12
+ title: m,
13
+ infoComponent: p,
14
+ subtitle: a,
15
+ statusMessage: t,
16
+ ...e
17
+ }) => /* @__PURE__ */ n(u, { title: m, subtitle: a, infoComponent: p, children: [
18
+ t ? /* @__PURE__ */ r(
19
+ d,
20
+ {
21
+ className: x(
22
+ "mb-xxs",
23
+ "transition-all duration-300 ease-in-out",
24
+ "max-h-0 opacity-0 overflow-hidden",
25
+ "data-[status=true]:max-h-lg data-[status=true]:opacity-100"
26
+ ),
27
+ lineHeight: !0,
28
+ color: o === s.ERROR ? i.ERROR : i.PRIMARY,
29
+ size: f.SM,
30
+ "data-status": !!t,
31
+ children: t
32
+ }
33
+ ) : null,
34
+ /* @__PURE__ */ r(l, { kind: o, ...e })
35
+ ] });
36
+ export {
37
+ j as UiInputText
38
+ };
39
+ //# sourceMappingURL=UiInputText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiInputText.js","sources":["../../../src/components/UiInput/UiInputText.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiInputBase } from \"./UiInput.base.tsx\";\nimport { UiInputTitled } from \"./UiInputTitled.tsx\";\nimport { EInputKind } from \"./_types.ts\";\nimport { EColors, ETypographySizes, UiTypography } from \"../UiTypography/index.ts\";\nimport cx from \"classnames\";\n\ntype TUiInputTextProps = {\n\tid: string;\n\tkind?: EInputKind;\n\tstatusMessage?: string;\n\ttitle?: React.ReactNode;\n\tsubtitle?: React.ReactNode;\n\tinfoComponent?: React.ReactNode;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const UiInputText: React.FC<TUiInputTextProps> = ({\n\tkind,\n\ttitle,\n\tinfoComponent,\n\tsubtitle,\n\tstatusMessage,\n\t...rest\n}) => {\n\treturn (\n\t\t<UiInputTitled title={ title } subtitle={ subtitle } infoComponent={ infoComponent } >\n\t\t\t{ statusMessage\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography\n\t\t\t\t\t\tclassName={ cx(\n\t\t\t\t\t\t\t\"mb-xxs\",\n\t\t\t\t\t\t\t\"transition-all duration-300 ease-in-out\",\n\t\t\t\t\t\t\t\"max-h-0 opacity-0 overflow-hidden\",\n\t\t\t\t\t\t\t\"data-[status=true]:max-h-lg data-[status=true]:opacity-100\"\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlineHeight\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tkind === EInputKind.ERROR ? EColors.ERROR : EColors.PRIMARY\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsize={ ETypographySizes.SM }\n\t\t\t\t\t\tdata-status={ !!statusMessage }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ statusMessage }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\t\t\t<UiInputBase kind={ kind } { ...rest }/>\n\t\t</UiInputTitled>\n\t);\n};\n"],"names":["UiInputText","kind","title","infoComponent","subtitle","statusMessage","rest","jsxs","UiInputTitled","jsx","UiTypography","cx","EInputKind","EColors","ETypographySizes","UiInputBase"],"mappings":";;;;;;;;;AAgBO,MAAMA,IAA2C,CAAC;AAAA,EACxD,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACJ,MAEG,gBAAAC,EAAAC,GAAA,EAAc,OAAAN,GAAgB,UAAAE,GAAsB,eAAAD,GAClD,UAAA;AAAA,EAEAE,IAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,WAAYC;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACA,YAAU;AAAA,MACV,OACCV,MAASW,EAAW,QAAQC,EAAQ,QAAQA,EAAQ;AAAA,MAErD,MAAOC,EAAiB;AAAA,MACxB,eAAc,CAAC,CAACT;AAAA,MAEd,UAAAA;AAAA,IAAA;AAAA,EAAA,IAGF;AAAA,EACF,gBAAAI,EAAAM,GAAA,EAAY,MAAAd,GAAgB,GAAGK,EAAM,CAAA;AAAA,GACvC;"}
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ type TUiInputTitledProps = {
3
+ children: React.ReactNode;
4
+ infoComponent?: React.ReactNode;
5
+ statusMessage?: string;
6
+ subtitle?: React.ReactNode;
7
+ title?: React.ReactNode;
8
+ };
9
+ export declare const UiInputTitled: React.FC<TUiInputTitledProps>;
10
+ export {};
@@ -0,0 +1,36 @@
1
+ import { jsxs as t, jsx as r } from "react/jsx-runtime";
2
+ import "react";
3
+ import { UiTypography as l } from "../UiTypography/UiTypography.js";
4
+ import { ETypographySizes as e } from "../UiTypography/_types.js";
5
+ import { EColors as p } from "../../_types/colors.js";
6
+ const g = ({
7
+ children: s,
8
+ infoComponent: m,
9
+ title: i,
10
+ subtitle: o
11
+ }) => /* @__PURE__ */ t("div", { className: "grid w-full grid-flow-row gap-xxxs", children: [
12
+ i ? /* @__PURE__ */ r(
13
+ l,
14
+ {
15
+ size: e.MD,
16
+ color: p.SECONDARY,
17
+ lineHeight: !0,
18
+ children: i
19
+ }
20
+ ) : null,
21
+ m,
22
+ o ? /* @__PURE__ */ r(
23
+ l,
24
+ {
25
+ lineHeight: !0,
26
+ color: p.SECONDARY_ALT_600,
27
+ size: e.SM,
28
+ children: o
29
+ }
30
+ ) : null,
31
+ /* @__PURE__ */ r("div", { className: "relative w-full", children: s })
32
+ ] });
33
+ export {
34
+ g as UiInputTitled
35
+ };
36
+ //# sourceMappingURL=UiInputTitled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiInputTitled.js","sources":["../../../src/components/UiInput/UiInputTitled.tsx"],"sourcesContent":["import React from \"react\";\nimport { EColors, ETypographySizes, UiTypography } from \"../UiTypography\";\n\ntype TUiInputTitledProps = {\n\tchildren: React.ReactNode;\n\tinfoComponent?: React.ReactNode;\n\tstatusMessage?: string;\n\tsubtitle?: React.ReactNode\n\ttitle?: React.ReactNode;\n};\n\nexport const UiInputTitled: React.FC<TUiInputTitledProps> = ({\n\tchildren,\n\tinfoComponent,\n\ttitle,\n\tsubtitle\n}) => {\n\n\treturn (\n\t\t<div className=\"grid w-full grid-flow-row gap-xxxs\">\n\t\t\t{ title\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography\n\t\t\t\t\t\tsize={ ETypographySizes.MD }\n\t\t\t\t\t\tcolor={ EColors.SECONDARY }\n\t\t\t\t\t\tlineHeight\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\t\t\t{ infoComponent }\n\t\t\t{ subtitle\n\t\t\t\t? (\n\t\t\t\t\t<UiTypography\n\t\t\t\t\t\tlineHeight\n\t\t\t\t\t\tcolor={ EColors.SECONDARY_ALT_600 }\n\t\t\t\t\t\tsize={ ETypographySizes.SM }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ subtitle }\n\t\t\t\t\t</UiTypography>\n\t\t\t\t)\n\t\t\t\t: null }\n\t\t\t<div className=\"relative w-full\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"],"names":["UiInputTitled","children","infoComponent","title","subtitle","jsxs","jsx","UiTypography","ETypographySizes","EColors"],"mappings":";;;;;AAWO,MAAMA,IAA+C,CAAC;AAAA,EAC5D,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AACD,MAGE,gBAAAC,EAAC,OAAI,EAAA,WAAU,sCACZ,UAAA;AAAA,EAEAF,IAAA,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,MAAOC,EAAiB;AAAA,MACxB,OAAQC,EAAQ;AAAA,MAChB,YAAU;AAAA,MAER,UAAAN;AAAA,IAAA;AAAA,EAAA,IAGF;AAAA,EACDD;AAAA,EACAE,IAEA,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,YAAU;AAAA,MACV,OAAQE,EAAQ;AAAA,MAChB,MAAOD,EAAiB;AAAA,MAEtB,UAAAJ;AAAA,IAAA;AAAA,EAAA,IAGF;AAAA,EACF,gBAAAE,EAAA,OAAA,EAAI,WAAU,mBACZ,UAAAL,EACH,CAAA;AAAA,GACD;"}
@@ -0,0 +1,5 @@
1
+ export declare enum EInputKind {
2
+ DEFAULT = "DEFAULT",
3
+ ERROR = "ERROR",
4
+ SUCCESS = "SUCCESS"
5
+ }
@@ -0,0 +1,5 @@
1
+ var S = /* @__PURE__ */ ((R) => (R.DEFAULT = "DEFAULT", R.ERROR = "ERROR", R.SUCCESS = "SUCCESS", R))(S || {});
2
+ export {
3
+ S as EInputKind
4
+ };
5
+ //# sourceMappingURL=_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_types.js","sources":["../../../src/components/UiInput/_types.ts"],"sourcesContent":["export enum EInputKind {\n\tDEFAULT = \"DEFAULT\",\n\tERROR = \"ERROR\",\n\tSUCCESS = \"SUCCESS\",\n}\n"],"names":["EInputKind"],"mappings":"AAAY,IAAAA,sBAAAA,OACXA,EAAA,UAAU,WACVA,EAAA,QAAQ,SACRA,EAAA,UAAU,WAHCA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -0,0 +1,4 @@
1
+ export { UiInputBase } from './UiInput.base.tsx';
2
+ export { UiInputTitled } from './UiInputTitled.tsx';
3
+ export { UiInputText } from './UiInputText.tsx';
4
+ export { EInputKind } from './_types.ts';
@@ -0,0 +1,11 @@
1
+ import { UiInputBase as p } from "./UiInput.base.js";
2
+ import { UiInputTitled as e } from "./UiInputTitled.js";
3
+ import { UiInputText as n } from "./UiInputText.js";
4
+ import { EInputKind as f } from "./_types.js";
5
+ export {
6
+ f as EInputKind,
7
+ p as UiInputBase,
8
+ n as UiInputText,
9
+ e as UiInputTitled
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,30 +1,31 @@
1
- import { jsxs as S, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as P, jsx as e } from "react/jsx-runtime";
2
2
  import n from "react";
3
- import d from "classnames";
4
- import W from "./UiInputRange.module.css.js";
5
- const j = ({
3
+ import h from "classnames";
4
+ import '../../assets/UiInputRange.css';const S = "_thumb_hkko1_18", W = {
5
+ thumb: S
6
+ }, j = ({
6
7
  value: o,
7
- min: s,
8
- max: a,
9
- step: h,
8
+ min: a,
9
+ max: r,
10
+ step: p,
10
11
  onChangeHandler: m,
11
12
  ...l
12
13
  }) => {
13
- const i = n.useRef(null), c = n.useRef(null), [f, b] = n.useState(0), [g, x] = n.useState(0);
14
+ const c = n.useRef(null), i = n.useRef(null), [b, f] = n.useState(0), [g, x] = n.useState(0);
14
15
  n.useEffect(() => {
15
- if (!i.current || !c.current) return;
16
- const t = parseFloat(String(o)), r = parseFloat(String(s)), v = parseFloat(String(a)), M = (t - r) / (v - r) * 100, N = c.current.getBoundingClientRect().width, P = i.current.clientWidth, u = N / P * 100, p = M * (1 - u / 100);
17
- b(Math.max(0, Math.min(100, p))), x(Math.max(0, Math.min(100, p + u)));
18
- }, [s, a, o]);
16
+ if (!c.current || !i.current) return;
17
+ const t = parseFloat(String(o)), s = parseFloat(String(a)), v = parseFloat(String(r)), M = (t - s) / (v - s) * 100, k = i.current.getBoundingClientRect().width, N = c.current.clientWidth, u = k / N * 100, d = M * (1 - u / 100);
18
+ f(Math.max(0, Math.min(100, d))), x(Math.max(0, Math.min(100, d + u)));
19
+ }, [a, r, o]);
19
20
  const y = (t) => {
20
21
  if (t === o) return;
21
- const r = parseFloat(t.toFixed(10));
22
- m(r);
22
+ const s = parseFloat(t.toFixed(10));
23
+ m(s);
23
24
  };
24
- return /* @__PURE__ */ S(
25
+ return /* @__PURE__ */ P(
25
26
  "div",
26
27
  {
27
- className: d(
28
+ className: h(
28
29
  "relative box-content h-xl py-xxs",
29
30
  l.disabled && "opacity-60 cursor-default pointer-events-none"
30
31
  ),
@@ -33,26 +34,26 @@ const j = ({
33
34
  "input",
34
35
  {
35
36
  ...l,
36
- ref: i,
37
+ ref: c,
37
38
  className: "absolute left-0 top-0 size-full cursor-pointer appearance-none bg-transparent",
38
39
  style: {
39
40
  touchAction: "none"
40
41
  },
41
42
  type: "range",
42
- min: s,
43
- max: a,
44
- step: h,
43
+ min: a,
44
+ max: r,
45
+ step: p,
45
46
  value: o,
46
47
  onChange: (t) => y(+t.target.value),
47
48
  onTouchStart: (t) => t.stopPropagation(),
48
49
  onTouchMove: (t) => t.stopPropagation()
49
50
  }
50
51
  ),
51
- /* @__PURE__ */ e("div", { className: "pointer-events-none absolute left-0 top-1/2 h-xxs w-full -translate-y-1/2 rounded bg-secondary-alt" }),
52
+ /* @__PURE__ */ e("div", { className: "pointer-events-none absolute left-0 top-1/2 h-xxs w-full -translate-y-1/2 rounded-sm bg-secondary-alt" }),
52
53
  /* @__PURE__ */ e(
53
54
  "div",
54
55
  {
55
- className: "pointer-events-none absolute left-0 top-1/2 h-xxs -translate-y-1/2 rounded bg-primary",
56
+ className: "pointer-events-none absolute left-0 top-1/2 h-xxs -translate-y-1/2 rounded-sm bg-primary",
56
57
  style: {
57
58
  width: `${g}%`
58
59
  }
@@ -61,7 +62,7 @@ const j = ({
61
62
  /* @__PURE__ */ e(
62
63
  "div",
63
64
  {
64
- className: d(
65
+ className: h(
65
66
  W.thumb,
66
67
  "pointer-events-none",
67
68
  "absolute",
@@ -72,9 +73,9 @@ const j = ({
72
73
  "bg-white",
73
74
  "border-primary"
74
75
  ),
75
- ref: c,
76
+ ref: i,
76
77
  style: {
77
- left: `${f}%`
78
+ left: `${b}%`
78
79
  },
79
80
  children: /* @__PURE__ */ e("div", { className: "absolute left-1/2 top-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary" })
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UiInputRange.js","sources":["../../../src/components/UiInputRange/UiInputRange.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./UiInputRange.module.css\";\n\nexport type TUiInputRangeProps = {\n\tvalue: number;\n\tmin: string | number;\n\tmax: string | number;\n\tstep: string | number;\n\tonChangeHandler: (value: number) => void;\n} & React.HTMLProps<HTMLInputElement>;\n\nexport const UiInputRange: React.FC<TUiInputRangeProps> = ({\n\tvalue,\n\tmin,\n\tmax,\n\tstep,\n\tonChangeHandler,\n\t...rest\n}) => {\n\tconst track = React.useRef<HTMLInputElement>(null);\n\tconst thumb = React.useRef<HTMLDivElement>(null);\n\n\tconst [thumbPosition, setThumbPosition] = React.useState(0);\n\tconst [trackWidth, setTrackWidth] = React.useState(0);\n\n\tReact.useEffect(() => {\n\t\tif (!track.current || !thumb.current) return;\n\n\t\tconst numValue = parseFloat(String(value));\n\t\tconst numMin = parseFloat(String(min));\n\t\tconst numMax = parseFloat(String(max));\n\n\t\tconst percentage = ((numValue - numMin) / (numMax - numMin)) * 100;\n\n\t\tconst thumbWidth = thumb.current.getBoundingClientRect().width;\n\t\tconst trackWidth = track.current.clientWidth;\n\t\tconst thumbWidthPercentage = (thumbWidth / trackWidth) * 100;\n\t\tconst adjustedPercentage = percentage * (1 - thumbWidthPercentage / 100);\n\n\t\tsetThumbPosition(Math.max(0, Math.min(100, adjustedPercentage)));\n\t\tsetTrackWidth(Math.max(0, Math.min(100, adjustedPercentage + thumbWidthPercentage)));\n\t}, [min, max, value]);\n\n\tconst handleOnChange = (newValue: number) => {\n\t\tif (newValue === value) return;\n\t\tconst preciseValue = parseFloat(newValue.toFixed(10));\n\t\tonChangeHandler(preciseValue);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ cx(\n\t\t\t\t\"relative box-content h-xl py-xxs\",\n\t\t\t\trest.disabled && \"opacity-60 cursor-default pointer-events-none\",\n\t\t\t) }\n\t\t>\n\t\t\t<input\n\t\t\t\t{ ...rest }\n\t\t\t\tref={ track }\n\t\t\t\tclassName=\"absolute left-0 top-0 size-full cursor-pointer appearance-none bg-transparent\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttouchAction: \"none\",\n\t\t\t\t} }\n\t\t\t\ttype=\"range\"\n\t\t\t\tmin={ min }\n\t\t\t\tmax={ max }\n\t\t\t\tstep={ step }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ (e) => handleOnChange(+e.target.value) }\n\t\t\t\tonTouchStart={ (e) => e.stopPropagation() }\n\t\t\t\tonTouchMove={ (e) => e.stopPropagation() }\n\t\t\t/>\n\n\t\t\t<div className=\"pointer-events-none absolute left-0 top-1/2 h-xxs w-full -translate-y-1/2 rounded bg-secondary-alt\" />\n\n\t\t\t<div\n\t\t\t\tclassName=\"pointer-events-none absolute left-0 top-1/2 h-xxs -translate-y-1/2 rounded bg-primary\"\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth: `${trackWidth}%`,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<div\n\t\t\t\tclassName={ cx(\n\t\t\t\t\tstyles.thumb,\n\t\t\t\t\t\"pointer-events-none\",\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"box-content\",\n\t\t\t\t\t\"size-md\",\n\t\t\t\t\t\"-translate-y-1/2\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\"bg-white\",\n\t\t\t\t\t\"border-primary\",\n\t\t\t\t) }\n\t\t\t\tref={ thumb }\n\t\t\t\tstyle={ {\n\t\t\t\t\tleft: `${thumbPosition}%`,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"absolute left-1/2 top-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"],"names":["UiInputRange","value","min","max","step","onChangeHandler","rest","track","React","thumb","thumbPosition","setThumbPosition","trackWidth","setTrackWidth","numValue","numMin","numMax","percentage","thumbWidth","thumbWidthPercentage","adjustedPercentage","handleOnChange","newValue","preciseValue","jsxs","cx","jsx","e","styles"],"mappings":";;;;AAYO,MAAMA,IAA6C,CAAC;AAAA,EAC1D,OAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACJ,MAAM;AACC,QAAAC,IAAQC,EAAM,OAAyB,IAAI,GAC3CC,IAAQD,EAAM,OAAuB,IAAI,GAEzC,CAACE,GAAeC,CAAgB,IAAIH,EAAM,SAAS,CAAC,GACpD,CAACI,GAAYC,CAAa,IAAIL,EAAM,SAAS,CAAC;AAEpD,EAAAA,EAAM,UAAU,MAAM;AACrB,QAAI,CAACD,EAAM,WAAW,CAACE,EAAM,QAAS;AAEtC,UAAMK,IAAW,WAAW,OAAOb,CAAK,CAAC,GACnCc,IAAS,WAAW,OAAOb,CAAG,CAAC,GAC/Bc,IAAS,WAAW,OAAOb,CAAG,CAAC,GAE/Bc,KAAeH,IAAWC,MAAWC,IAASD,KAAW,KAEzDG,IAAaT,EAAM,QAAQ,sBAAwB,EAAA,OACnDG,IAAaL,EAAM,QAAQ,aAC3BY,IAAwBD,IAAaN,IAAc,KACnDQ,IAAqBH,KAAc,IAAIE,IAAuB;AAEnD,IAAAR,EAAA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAKS,CAAkB,CAAC,CAAC,GACjDP,EAAA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAKO,IAAqBD,CAAoB,CAAC,CAAC;AAAA,EACjF,GAAA,CAACjB,GAAKC,GAAKF,CAAK,CAAC;AAEd,QAAAoB,IAAiB,CAACC,MAAqB;AAC5C,QAAIA,MAAarB,EAAO;AACxB,UAAMsB,IAAe,WAAWD,EAAS,QAAQ,EAAE,CAAC;AACpD,IAAAjB,EAAgBkB,CAAY;AAAA,EAC7B;AAGC,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAYC;AAAA,QACX;AAAA,QACAnB,EAAK,YAAY;AAAA,MAClB;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAoB;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAGpB;AAAA,YACL,KAAMC;AAAA,YACN,WAAU;AAAA,YACV,OAAQ;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACA,MAAK;AAAA,YACL,KAAAL;AAAA,YACA,KAAAC;AAAA,YACA,MAAAC;AAAA,YACA,OAAAH;AAAA,YACA,UAAW,CAAC0B,MAAMN,EAAe,CAACM,EAAE,OAAO,KAAK;AAAA,YAChD,cAAe,CAACA,MAAMA,EAAE,gBAAgB;AAAA,YACxC,aAAc,CAACA,MAAMA,EAAE,gBAAgB;AAAA,UAAA;AAAA,QACxC;AAAA,QAEA,gBAAAD,EAAC,OAAI,EAAA,WAAU,qGAAqG,CAAA;AAAA,QAEpH,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAU;AAAA,YACV,OAAQ;AAAA,cACP,OAAO,GAAGd,CAAU;AAAA,YAAA;AAAA,UACrB;AAAA,QACD;AAAA,QAEA,gBAAAc;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAYD;AAAA,cACXG,EAAO;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACD;AAAA,YACA,KAAMnB;AAAA,YACN,OAAQ;AAAA,cACP,MAAM,GAAGC,CAAa;AAAA,YACvB;AAAA,YAEA,UAAA,gBAAAgB,EAAC,OAAI,EAAA,WAAU,+FAA+F,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/G;AAAA,IAAA;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"UiInputRange.js","sources":["../../../src/components/UiInputRange/UiInputRange.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./UiInputRange.module.css\";\n\nexport type TUiInputRangeProps = {\n\tvalue: number;\n\tmin: string | number;\n\tmax: string | number;\n\tstep: string | number;\n\tonChangeHandler: (value: number) => void;\n} & React.HTMLProps<HTMLInputElement>;\n\nexport const UiInputRange: React.FC<TUiInputRangeProps> = ({\n\tvalue,\n\tmin,\n\tmax,\n\tstep,\n\tonChangeHandler,\n\t...rest\n}) => {\n\tconst track = React.useRef<HTMLInputElement>(null);\n\tconst thumb = React.useRef<HTMLDivElement>(null);\n\n\tconst [thumbPosition, setThumbPosition] = React.useState(0);\n\tconst [trackWidth, setTrackWidth] = React.useState(0);\n\n\tReact.useEffect(() => {\n\t\tif (!track.current || !thumb.current) return;\n\n\t\tconst numValue = parseFloat(String(value));\n\t\tconst numMin = parseFloat(String(min));\n\t\tconst numMax = parseFloat(String(max));\n\n\t\tconst percentage = ((numValue - numMin) / (numMax - numMin)) * 100;\n\n\t\tconst thumbWidth = thumb.current.getBoundingClientRect().width;\n\t\tconst trackWidth = track.current.clientWidth;\n\t\tconst thumbWidthPercentage = (thumbWidth / trackWidth) * 100;\n\t\tconst adjustedPercentage = percentage * (1 - thumbWidthPercentage / 100);\n\n\t\tsetThumbPosition(Math.max(0, Math.min(100, adjustedPercentage)));\n\t\tsetTrackWidth(Math.max(0, Math.min(100, adjustedPercentage + thumbWidthPercentage)));\n\t}, [min, max, value]);\n\n\tconst handleOnChange = (newValue: number) => {\n\t\tif (newValue === value) return;\n\t\tconst preciseValue = parseFloat(newValue.toFixed(10));\n\t\tonChangeHandler(preciseValue);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ cx(\n\t\t\t\t\"relative box-content h-xl py-xxs\",\n\t\t\t\trest.disabled && \"opacity-60 cursor-default pointer-events-none\",\n\t\t\t) }\n\t\t>\n\t\t\t<input\n\t\t\t\t{ ...rest }\n\t\t\t\tref={ track }\n\t\t\t\tclassName=\"absolute left-0 top-0 size-full cursor-pointer appearance-none bg-transparent\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttouchAction: \"none\",\n\t\t\t\t} }\n\t\t\t\ttype=\"range\"\n\t\t\t\tmin={ min }\n\t\t\t\tmax={ max }\n\t\t\t\tstep={ step }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ (e) => handleOnChange(+e.target.value) }\n\t\t\t\tonTouchStart={ (e) => e.stopPropagation() }\n\t\t\t\tonTouchMove={ (e) => e.stopPropagation() }\n\t\t\t/>\n\n\t\t\t<div className=\"pointer-events-none absolute left-0 top-1/2 h-xxs w-full -translate-y-1/2 rounded-sm bg-secondary-alt\" />\n\n\t\t\t<div\n\t\t\t\tclassName=\"pointer-events-none absolute left-0 top-1/2 h-xxs -translate-y-1/2 rounded-sm bg-primary\"\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth: `${trackWidth}%`,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<div\n\t\t\t\tclassName={ cx(\n\t\t\t\t\tstyles.thumb,\n\t\t\t\t\t\"pointer-events-none\",\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"box-content\",\n\t\t\t\t\t\"size-md\",\n\t\t\t\t\t\"-translate-y-1/2\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\"bg-white\",\n\t\t\t\t\t\"border-primary\",\n\t\t\t\t) }\n\t\t\t\tref={ thumb }\n\t\t\t\tstyle={ {\n\t\t\t\t\tleft: `${thumbPosition}%`,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"absolute left-1/2 top-1/2 size-xxs -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n"],"names":["UiInputRange","value","min","max","step","onChangeHandler","rest","track","React","thumb","thumbPosition","setThumbPosition","trackWidth","setTrackWidth","numValue","numMin","numMax","percentage","thumbWidth","thumbWidthPercentage","adjustedPercentage","handleOnChange","newValue","preciseValue","jsxs","cx","jsx","e","styles"],"mappings":";;;;;GAYaA,IAA6C,CAAC;AAAA,EAC1D,OAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACJ,MAAM;AACC,QAAAC,IAAQC,EAAM,OAAyB,IAAI,GAC3CC,IAAQD,EAAM,OAAuB,IAAI,GAEzC,CAACE,GAAeC,CAAgB,IAAIH,EAAM,SAAS,CAAC,GACpD,CAACI,GAAYC,CAAa,IAAIL,EAAM,SAAS,CAAC;AAEpD,EAAAA,EAAM,UAAU,MAAM;AACrB,QAAI,CAACD,EAAM,WAAW,CAACE,EAAM,QAAS;AAEtC,UAAMK,IAAW,WAAW,OAAOb,CAAK,CAAC,GACnCc,IAAS,WAAW,OAAOb,CAAG,CAAC,GAC/Bc,IAAS,WAAW,OAAOb,CAAG,CAAC,GAE/Bc,KAAeH,IAAWC,MAAWC,IAASD,KAAW,KAEzDG,IAAaT,EAAM,QAAQ,sBAAwB,EAAA,OACnDG,IAAaL,EAAM,QAAQ,aAC3BY,IAAwBD,IAAaN,IAAc,KACnDQ,IAAqBH,KAAc,IAAIE,IAAuB;AAEnD,IAAAR,EAAA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAKS,CAAkB,CAAC,CAAC,GACjDP,EAAA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAKO,IAAqBD,CAAoB,CAAC,CAAC;AAAA,EACjF,GAAA,CAACjB,GAAKC,GAAKF,CAAK,CAAC;AAEd,QAAAoB,IAAiB,CAACC,MAAqB;AAC5C,QAAIA,MAAarB,EAAO;AACxB,UAAMsB,IAAe,WAAWD,EAAS,QAAQ,EAAE,CAAC;AACpD,IAAAjB,EAAgBkB,CAAY;AAAA,EAC7B;AAGC,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAYC;AAAA,QACX;AAAA,QACAnB,EAAK,YAAY;AAAA,MAClB;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAoB;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAGpB;AAAA,YACL,KAAMC;AAAA,YACN,WAAU;AAAA,YACV,OAAQ;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACA,MAAK;AAAA,YACL,KAAAL;AAAA,YACA,KAAAC;AAAA,YACA,MAAAC;AAAA,YACA,OAAAH;AAAA,YACA,UAAW,CAAC0B,MAAMN,EAAe,CAACM,EAAE,OAAO,KAAK;AAAA,YAChD,cAAe,CAACA,MAAMA,EAAE,gBAAgB;AAAA,YACxC,aAAc,CAACA,MAAMA,EAAE,gBAAgB;AAAA,UAAA;AAAA,QACxC;AAAA,QAEA,gBAAAD,EAAC,OAAI,EAAA,WAAU,wGAAwG,CAAA;AAAA,QAEvH,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAU;AAAA,YACV,OAAQ;AAAA,cACP,OAAO,GAAGd,CAAU;AAAA,YAAA;AAAA,UACrB;AAAA,QACD;AAAA,QAEA,gBAAAc;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAYD;AAAA,cACXG,EAAO;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACD;AAAA,YACA,KAAMnB;AAAA,YACN,OAAQ;AAAA,cACP,MAAM,GAAGC,CAAa;AAAA,YACvB;AAAA,YAEA,UAAA,gBAAAgB,EAAC,OAAI,EAAA,WAAU,+FAA+F,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/G;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -1,7 +1,8 @@
1
1
  import { default as React } from 'react';
2
- import { EListItemSize, EListItemSpacing } from './_types.ts';
2
+ import { EListItemDirection, EListItemSize, EListItemSpacing } from './_types.ts';
3
3
  interface IUiListProps {
4
4
  children?: React.ReactNode;
5
+ direction?: EListItemDirection;
5
6
  size?: EListItemSize;
6
7
  spacing?: EListItemSpacing;
7
8
  }