bonkers-ui 2.0.8 → 2.0.9

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 (49) hide show
  1. package/README.md +3 -3
  2. package/assets/UiInputRange.css +1 -1
  3. package/components/UiAccordion/UiAccordion.context.js +27 -27
  4. package/components/UiAccordion/UiAccordion.context.js.map +1 -1
  5. package/components/UiBerRank/UiBerRank.js +87 -90
  6. package/components/UiBerRank/UiBerRank.js.map +1 -1
  7. package/components/UiCheckbox/UiCheckbox.js +36 -36
  8. package/components/UiCheckbox/UiCheckbox.js.map +1 -1
  9. package/components/UiIconBadge/_types.d.ts +1 -1
  10. package/components/UiIconBadge/_types.js.map +1 -1
  11. package/components/UiInput/UiInput.base.js +2 -2
  12. package/components/UiInput/UiInput.base.js.map +1 -1
  13. package/components/UiInput/UiInputText.js +1 -1
  14. package/components/UiInput/UiInputText.js.map +1 -1
  15. package/components/UiInputRange/UiInputRange.js +66 -51
  16. package/components/UiInputRange/UiInputRange.js.map +1 -1
  17. package/components/UiPills/UiPills.js +1 -1
  18. package/components/UiPills/UiPills.js.map +1 -1
  19. package/components/UiPlainRadio/UiPlainRadio.js +16 -5
  20. package/components/UiPlainRadio/UiPlainRadio.js.map +1 -1
  21. package/components/UiProductCard/UiProductCard.js +1 -1
  22. package/components/UiProductCard/UiProductCard.js.map +1 -1
  23. package/components/UiProgress/UiProgress.js +1 -1
  24. package/components/UiProgress/UiProgress.js.map +1 -1
  25. package/components/UiRadioFancy/UiRadioFancy.js +2 -2
  26. package/components/UiRadioFancy/UiRadioFancy.js.map +1 -1
  27. package/components/UiSelect/UiSelect.js +54 -54
  28. package/components/UiSelect/UiSelect.js.map +1 -1
  29. package/components/UiSkeleton/UiSkeleton.js +42 -42
  30. package/components/UiSkeleton/UiSkeleton.js.map +1 -1
  31. package/components/UiTable/UiTable.js +9 -9
  32. package/components/UiTable/UiTable.js.map +1 -1
  33. package/components/UiTable/UiTableCell.d.ts +1 -0
  34. package/components/UiTable/UiTableCell.js +17 -9
  35. package/components/UiTable/UiTableCell.js.map +1 -1
  36. package/components/UiTable/UiTableRow.d.ts +1 -4
  37. package/components/UiTable/UiTableRow.js +8 -12
  38. package/components/UiTable/UiTableRow.js.map +1 -1
  39. package/components/UiTable/_types.d.ts +0 -3
  40. package/components/UiTable/_types.js +2 -3
  41. package/components/UiTable/_types.js.map +1 -1
  42. package/components/UiTable/index.d.ts +1 -1
  43. package/components/UiTable/index.js +6 -7
  44. package/components/UiTabs/UiTabs.js +1 -1
  45. package/components/UiTabs/UiTabs.js.map +1 -1
  46. package/components/UiToggle/UiToggle.js +27 -27
  47. package/components/UiToggle/UiToggle.js.map +1 -1
  48. package/eslint.config.mjs +33 -1
  49. package/package.json +21 -20
@@ -1,26 +1,26 @@
1
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as _, jsx as r } from "react/jsx-runtime";
2
2
  import { useState as U, useEffect as v } from "react";
3
3
  import i from "classnames";
4
4
  import { EJustify as t } from "../../_types/align.js";
5
- import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiToggle__dot_checked_1uov6_13", x = "_UiToggle__icon_1uov6_17", N = "_UiToggle__icon_checked_1uov6_26", c = {
5
+ import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiToggle__dot_checked_1uov6_13", x = "_UiToggle__icon_1uov6_17", N = "_UiToggle__icon_checked_1uov6_26", n = {
6
6
  UiToggle__dot: w,
7
7
  UiToggle__dot_checked: k,
8
8
  UiToggle__icon: x,
9
9
  UiToggle__icon_checked: N
10
- }, A = ({
11
- children: d,
10
+ }, R = ({
11
+ children: a,
12
12
  disabled: o = !1,
13
- invertOrder: u = !1,
14
- justify: f = t.START,
13
+ invertOrder: d = !1,
14
+ justify: u = t.START,
15
15
  checked: s,
16
- value: l,
17
- className: m,
18
- defaultChecked: p,
19
- onChange: n,
20
- ...T
16
+ value: c,
17
+ className: h,
18
+ defaultChecked: f,
19
+ onChange: m,
20
+ ...p
21
21
  }) => {
22
- const [_, g] = U(p ?? !1), e = l ?? s ?? _, h = () => {
23
- l === void 0 && s === void 0 && g(!_), n == null || n(!e);
22
+ const [l, g] = U(f ?? !1), e = c ?? s ?? l, T = () => {
23
+ c === void 0 && s === void 0 && g(!l), m?.(!e);
24
24
  };
25
25
  v(() => {
26
26
  s !== void 0 && g(s);
@@ -33,7 +33,7 @@ import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiT
33
33
  [t.AROUND]: "justify-around",
34
34
  [t.EVENLY]: "justify-evenly"
35
35
  };
36
- return /* @__PURE__ */ a("label", { className: i(
36
+ return /* @__PURE__ */ _("label", { className: i(
37
37
  "ui-toggle",
38
38
  "flex",
39
39
  "cursor-pointer",
@@ -44,13 +44,13 @@ import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiT
44
44
  "leading-normal",
45
45
  "text-md",
46
46
  {
47
- "flex-row-reverse": u,
47
+ "flex-row-reverse": d,
48
48
  "pointer-events-none opacity-50": o
49
49
  },
50
- y[f],
51
- m
50
+ y[u],
51
+ h
52
52
  ), children: [
53
- /* @__PURE__ */ a("span", { className: i(
53
+ /* @__PURE__ */ _("span", { className: i(
54
54
  "relative",
55
55
  "block",
56
56
  "h-md"
@@ -66,10 +66,10 @@ import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiT
66
66
  ),
67
67
  type: "checkbox",
68
68
  checked: e,
69
- onChange: h,
69
+ onChange: T,
70
70
  disabled: o,
71
- value: l,
72
- ...T
71
+ value: c,
72
+ ...p
73
73
  }
74
74
  ),
75
75
  /* @__PURE__ */ r("span", { className: i(
@@ -90,21 +90,21 @@ import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiT
90
90
  "block",
91
91
  "rounded-full",
92
92
  "bg-white",
93
- c.UiToggle__dot,
93
+ n.UiToggle__dot,
94
94
  {
95
95
  "hover:shadow-border-secondary": !e && !o,
96
96
  "hover:shadow-border-primary": e && !o,
97
- [c.UiToggle__dot_checked]: e
97
+ [n.UiToggle__dot_checked]: e
98
98
  }
99
99
  ), children: /* @__PURE__ */ r(
100
100
  "svg",
101
101
  {
102
102
  className: i(
103
- c.UiToggle__icon,
103
+ n.UiToggle__icon,
104
104
  "absolute",
105
105
  o ? "text-primary-300" : "text-primary-600",
106
106
  {
107
- [c.UiToggle__icon_checked]: e
107
+ [n.UiToggle__icon_checked]: e
108
108
  }
109
109
  ),
110
110
  width: "16",
@@ -124,10 +124,10 @@ import '../../assets/UiToggle.css';const w = "_UiToggle__dot_1uov6_1", k = "_UiT
124
124
  }
125
125
  ) })
126
126
  ] }),
127
- d
127
+ a
128
128
  ] });
129
129
  };
130
130
  export {
131
- A as UiToggle
131
+ R as UiToggle
132
132
  };
133
133
  //# sourceMappingURL=UiToggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiToggle.js","sources":["../../../src/components/UiToggle/UiToggle.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./UiToggle.module.css\";\nimport { EJustify } from \"../../_types/align\";\n\ntype TUiToggleProps = {\n\tchildren?: React.ReactNode\n\tdisabled?: boolean\n\tinvertOrder?: boolean\n\tjustify?: EJustify;\n\tdefaultChecked?: boolean\n\tchecked?: boolean\n\tvalue?: boolean\n\tonChange?: (checked: boolean) => void\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"onChange\">;\n\nexport const UiToggle: React.FC<TUiToggleProps> = ({\n\tchildren,\n\tdisabled = false,\n\tinvertOrder = false,\n\tjustify = EJustify.START,\n\tchecked,\n\tvalue,\n\tclassName,\n\tdefaultChecked,\n\tonChange,\n\t...rest\n}) => {\n\n\tconst [toggled, setIsToggled] = useState<boolean>(defaultChecked ?? false);\n\n\tconst isChecked = value ?? checked ?? toggled;\n\n\tconst handleChange = () => {\n\t\tif (value === undefined && checked === undefined) {\n\t\t\tsetIsToggled(!toggled);\n\t\t}\n\n\t\tonChange?.(!isChecked);\n\t};\n\n\tuseEffect(()=>{\n\t\tif ( checked !== undefined) {\n\t\t\tsetIsToggled(checked);\n\t\t}\n\t}, [checked]);\n\n\tconst justificationClasses = {\n\t\t[EJustify.START]: \"justify-start\",\n\t\t[EJustify.END]: \"justify-end\",\n\t\t[EJustify.CENTER]: \"justify-center\",\n\t\t[EJustify.BETWEEN]: \"justify-between\",\n\t\t[EJustify.AROUND]: \"justify-around\",\n\t\t[EJustify.EVENLY]: \"justify-evenly\"\n\t};\n\n\treturn (\n\t\t<label className={ cx(\n\t\t\t\"ui-toggle\",\n\t\t\t\"flex\",\n\t\t\t\"cursor-pointer\",\n\t\t\t\"gap-sm\",\n\t\t\t\"rounded-full\",\n\t\t\t\"items-center\",\n\t\t\t\"w-full\",\n\t\t\t\"leading-normal\",\n\t\t\t\"text-md\",\n\t\t\t{\n\t\t\t\t\"flex-row-reverse\": invertOrder,\n\t\t\t\t\"pointer-events-none opacity-50\": disabled\n\t\t\t},\n\t\t\tjustificationClasses[justify],\n\t\t\tclassName\n\t\t) }>\n\t\t\t<span className={ cx(\n\t\t\t\t\"relative\",\n\t\t\t\t\"block\",\n\t\t\t\t\"h-md\"\n\t\t\t) }>\n\n\t\t\t\t<input className={ cx(\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"size-0\",\n\t\t\t\t\t\"appearance-none\",\n\t\t\t\t\t\"border-0\"\n\t\t\t\t) }\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={ isChecked }\n\t\t\t\tonChange={ handleChange }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tvalue={ value }\n\t\t\t\t{ ...rest }\n\t\t\t\t>\n\t\t\t\t</input>\n\n\t\t\t\t<span className={ cx(\n\t\t\t\t\t\"block\",\n\t\t\t\t\t\"h-md\",\n\t\t\t\t\t\"w-xl\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t{\n\t\t\t\t\t\t\"bg-primary-600\": isChecked && !disabled,\n\t\t\t\t\t\t\"bg-secondary-alt-300\": !isChecked && disabled,\n\t\t\t\t\t\t\"bg-secondary-alt-600\": !isChecked && !disabled,\n\t\t\t\t\t\t\"bg-primary-300\": isChecked && disabled\n\n\t\t\t\t\t}\n\t\t\t\t) }/>\n\n\t\t\t\t<span className={ cx(\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"top-[50%]\",\n\t\t\t\t\t\"block\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\"bg-white\",\n\t\t\t\t\tstyles.UiToggle__dot,\n\t\t\t\t\t{\n\t\t\t\t\t\t\"hover:shadow-border-secondary\": !isChecked && !disabled,\n\t\t\t\t\t\t\"hover:shadow-border-primary\": isChecked && !disabled,\n\t\t\t\t\t\t[styles.UiToggle__dot_checked]: isChecked\n\t\t\t\t\t},\n\n\t\t\t\t) }>\n\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName={ cx(\n\t\t\t\t\t\t\tstyles.UiToggle__icon,\n\t\t\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t? \"text-primary-300\"\n\t\t\t\t\t\t\t\t: \"text-primary-600\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[styles.UiToggle__icon_checked]: isChecked ,\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t) }\n\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\td=\"M1 4.40106L6.60071 10.1135L15.1694 1.71245\"\n\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\tstroke-width=\"1.6\"\n\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</svg>\n\n\t\t\t\t</span>\n\t\t\t</span>\n\n\t\t\t{ children }\n\n\t\t</label>\n\n\t);\n};\n"],"names":["UiToggle","children","disabled","invertOrder","justify","EJustify","checked","value","className","defaultChecked","onChange","rest","toggled","setIsToggled","useState","isChecked","handleChange","useEffect","justificationClasses","jsxs","cx","jsx","styles"],"mappings":"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"}
1
+ {"version":3,"file":"UiToggle.js","sources":["../../../src/components/UiToggle/UiToggle.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./UiToggle.module.css\";\nimport { EJustify } from \"../../_types/align\";\n\ntype TUiToggleProps = {\n\tchildren?: React.ReactNode\n\tdisabled?: boolean\n\tinvertOrder?: boolean\n\tjustify?: EJustify;\n\tdefaultChecked?: boolean\n\tchecked?: boolean\n\tvalue?: boolean\n\tonChange?: (checked: boolean) => void\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"onChange\">;\n\nexport const UiToggle: React.FC<TUiToggleProps> = ({\n\tchildren,\n\tdisabled = false,\n\tinvertOrder = false,\n\tjustify = EJustify.START,\n\tchecked,\n\tvalue,\n\tclassName,\n\tdefaultChecked,\n\tonChange,\n\t...rest\n}) => {\n\n\tconst [toggled, setIsToggled] = useState<boolean>(defaultChecked ?? false);\n\n\tconst isChecked = value ?? checked ?? toggled;\n\n\tconst handleChange = () => {\n\t\tif (value === undefined && checked === undefined) {\n\t\t\tsetIsToggled(!toggled);\n\t\t}\n\n\t\tonChange?.(!isChecked);\n\t};\n\n\tuseEffect(()=>{\n\t\tif ( checked !== undefined) {\n\t\t\tsetIsToggled(checked);\n\t\t}\n\t}, [checked]);\n\n\tconst justificationClasses = {\n\t\t[EJustify.START]: \"justify-start\",\n\t\t[EJustify.END]: \"justify-end\",\n\t\t[EJustify.CENTER]: \"justify-center\",\n\t\t[EJustify.BETWEEN]: \"justify-between\",\n\t\t[EJustify.AROUND]: \"justify-around\",\n\t\t[EJustify.EVENLY]: \"justify-evenly\"\n\t};\n\n\treturn (\n\t\t<label className={ cx(\n\t\t\t\"ui-toggle\",\n\t\t\t\"flex\",\n\t\t\t\"cursor-pointer\",\n\t\t\t\"gap-sm\",\n\t\t\t\"rounded-full\",\n\t\t\t\"items-center\",\n\t\t\t\"w-full\",\n\t\t\t\"leading-normal\",\n\t\t\t\"text-md\",\n\t\t\t{\n\t\t\t\t\"flex-row-reverse\": invertOrder,\n\t\t\t\t\"pointer-events-none opacity-50\": disabled\n\t\t\t},\n\t\t\tjustificationClasses[justify],\n\t\t\tclassName\n\t\t) }>\n\t\t\t<span className={ cx(\n\t\t\t\t\"relative\",\n\t\t\t\t\"block\",\n\t\t\t\t\"h-md\"\n\t\t\t) }>\n\n\t\t\t\t<input className={ cx(\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"size-0\",\n\t\t\t\t\t\"appearance-none\",\n\t\t\t\t\t\"border-0\"\n\t\t\t\t) }\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={ isChecked }\n\t\t\t\tonChange={ handleChange }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tvalue={ value }\n\t\t\t\t{ ...rest }\n\t\t\t\t>\n\t\t\t\t</input>\n\n\t\t\t\t<span className={ cx(\n\t\t\t\t\t\"block\",\n\t\t\t\t\t\"h-md\",\n\t\t\t\t\t\"w-xl\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t{\n\t\t\t\t\t\t\"bg-primary-600\": isChecked && !disabled,\n\t\t\t\t\t\t\"bg-secondary-alt-300\": !isChecked && disabled,\n\t\t\t\t\t\t\"bg-secondary-alt-600\": !isChecked && !disabled,\n\t\t\t\t\t\t\"bg-primary-300\": isChecked && disabled\n\n\t\t\t\t\t}\n\t\t\t\t) }/>\n\n\t\t\t\t<span className={ cx(\n\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\"top-[50%]\",\n\t\t\t\t\t\"block\",\n\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\"bg-white\",\n\t\t\t\t\tstyles.UiToggle__dot,\n\t\t\t\t\t{\n\t\t\t\t\t\t\"hover:shadow-border-secondary\": !isChecked && !disabled,\n\t\t\t\t\t\t\"hover:shadow-border-primary\": isChecked && !disabled,\n\t\t\t\t\t\t[styles.UiToggle__dot_checked]: isChecked\n\t\t\t\t\t},\n\n\t\t\t\t) }>\n\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName={ cx(\n\t\t\t\t\t\t\tstyles.UiToggle__icon,\n\t\t\t\t\t\t\t\"absolute\",\n\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t? \"text-primary-300\"\n\t\t\t\t\t\t\t\t: \"text-primary-600\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[styles.UiToggle__icon_checked]: isChecked ,\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t) }\n\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\theight=\"16\"\n\t\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\td=\"M1 4.40106L6.60071 10.1135L15.1694 1.71245\"\n\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\tstroke-width=\"1.6\"\n\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</svg>\n\n\t\t\t\t</span>\n\t\t\t</span>\n\n\t\t\t{ children }\n\n\t\t</label>\n\n\t);\n};\n"],"names":["UiToggle","children","disabled","invertOrder","justify","EJustify","checked","value","className","defaultChecked","onChange","rest","toggled","setIsToggled","useState","isChecked","handleChange","useEffect","justificationClasses","jsxs","cx","jsx","styles"],"mappings":"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"}
package/eslint.config.mjs CHANGED
@@ -2,6 +2,7 @@ import react from "eslint-plugin-react";
2
2
  import tseslint from "typescript-eslint";
3
3
  import stylisticPlugin from "@stylistic/eslint-plugin";
4
4
  import storybook from "eslint-plugin-storybook";
5
+ import eslintPluginBetterTailwindcss from "eslint-plugin-better-tailwindcss";
5
6
 
6
7
  // Not compatible with tailwind v4: https://github.com/francoismassart/eslint-plugin-tailwindcss/issues/325
7
8
  // import pluginTailwind from "eslint-plugin-tailwindcss";
@@ -13,6 +14,7 @@ export default [
13
14
  plugins: {
14
15
  react,
15
16
  "@stylistic": stylisticPlugin,
17
+ "better-tailwindcss": eslintPluginBetterTailwindcss
16
18
  },
17
19
  languageOptions: {
18
20
  parserOptions: {
@@ -21,6 +23,11 @@ export default [
21
23
  },
22
24
  },
23
25
  },
26
+ settings: {
27
+ "better-tailwindcss": {
28
+ entryPoint: "src/main.css",
29
+ }
30
+ },
24
31
  rules: {
25
32
  quotes: [
26
33
  "error",
@@ -88,7 +95,32 @@ export default [
88
95
  "varsIgnorePattern": "^_",
89
96
  "caughtErrorsIgnorePattern": "^_"
90
97
  }
91
- ]
98
+ ],
99
+ ...(eslintPluginBetterTailwindcss.configs["recommended-warn"]).rules,
100
+ ...(eslintPluginBetterTailwindcss.configs["recommended-error"]).rules,
101
+ "better-tailwindcss/enforce-consistent-line-wrapping": [
102
+ "error",
103
+ {
104
+ indent: "tab",
105
+ printWidth: 140,
106
+ classesPerLine: 1,
107
+ preferSingleLine: true,
108
+ },
109
+ ],
110
+ "better-tailwindcss/no-restricted-classes": [
111
+ "error",
112
+ {
113
+ restrict: [
114
+ {
115
+ pattern: "^.*!$",
116
+ message: "No important classes allowed."
117
+
118
+ }]
119
+ }
120
+ ],
121
+ "better-tailwindcss/no-unregistered-classes": [
122
+ "warn",
123
+ ],
92
124
  },
93
125
  },
94
126
  ...tseslint.configs.recommended,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bonkers-ui",
3
- "version": "v2.0.8",
3
+ "version": "v2.0.9",
4
4
  "type": "module",
5
5
  "description": "Bonkers ui library",
6
6
  "author": "cc6.magister@gmail.com",
@@ -18,37 +18,38 @@
18
18
  "prepare": "husky"
19
19
  },
20
20
  "dependencies": {
21
- "@tailwindcss/vite": "^4.1.10",
21
+ "@tailwindcss/vite": "^4.1.11",
22
22
  "ajv": "^8.17.1",
23
23
  "classnames": "^2.5.1",
24
24
  "postcss": "^8.5.6",
25
- "prettier": "^3.5.3",
26
- "react": "^19.1.0",
27
- "react-dom": "^19.1.0",
28
- "tailwindcss": "^4.1.10",
25
+ "prettier": "^3.6.2",
26
+ "react": "^19.1.1",
27
+ "react-dom": "^19.1.1",
28
+ "tailwindcss": "^4.1.11",
29
29
  "vite-tsconfig-paths": "^5.1.4"
30
30
  },
31
31
  "devDependencies": {
32
- "@chromatic-com/storybook": "^4.0.0",
33
- "@storybook/addon-docs": "^9.0.12",
34
- "@storybook/addon-onboarding": "^9.0.12",
35
- "@storybook/react-vite": "^9.0.12",
36
- "@stylistic/eslint-plugin": "^4.4.1",
32
+ "@chromatic-com/storybook": "^4.0.1",
33
+ "@storybook/addon-docs": "^9.0.18",
34
+ "@storybook/addon-onboarding": "^9.0.18",
35
+ "@storybook/react-vite": "^9.0.18",
36
+ "@stylistic/eslint-plugin": "^5.2.2",
37
37
  "@types/bun": "latest",
38
- "@types/react": "^19.1.8",
39
- "@types/react-dom": "^19.1.6",
40
- "@vitejs/plugin-react": "^4.5.2",
41
- "eslint": "^9.29.0",
38
+ "@types/react": "^19.1.9",
39
+ "@types/react-dom": "^19.1.7",
40
+ "@vitejs/plugin-react": "^4.7.0",
41
+ "eslint": "^9.32.0",
42
+ "eslint-plugin-better-tailwindcss": "^3.7.3",
42
43
  "eslint-plugin-react": "^7.37.5",
43
- "eslint-plugin-storybook": "^9.0.12",
44
- "eslint-plugin-tailwindcss": "^3.18.0",
44
+ "eslint-plugin-storybook": "^9.0.18",
45
+ "eslint-plugin-tailwindcss": "^3.18.2",
45
46
  "gh-pages": "^6.3.0",
46
47
  "husky": "^9.1.7",
47
48
  "lint-staged": "^16.1.2",
48
- "storybook": "^9.0.12",
49
+ "storybook": "^9.0.18",
49
50
  "typescript": "^5.8.3",
50
- "typescript-eslint": "^8.34.1",
51
- "vite": "^6.3.5",
51
+ "typescript-eslint": "^8.38.0",
52
+ "vite": "^7.0.6",
52
53
  "vite-plugin-dts": "^4.5.4",
53
54
  "vite-plugin-lib-inject-css": "^2.2.2"
54
55
  },