@mendylanda/ui 0.3.0-alpha.0 → 0.3.0-alpha.10

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 (55) hide show
  1. package/README.md +20 -3
  2. package/dist/class-names.js +1 -1
  3. package/dist/filters/filter-bar.d.ts +1 -1
  4. package/dist/filters/filter-bar.js +53 -12
  5. package/dist/filters/filter-menu-focus.d.ts +1 -1
  6. package/dist/filters/filter-menu-panel.d.ts +1 -1
  7. package/dist/filters/use-menu-placement.d.ts +1 -1
  8. package/dist/primitives/popover.d.ts +5 -0
  9. package/dist/primitives/popover.js +10 -0
  10. package/dist/styles.css +153 -27
  11. package/dist/styles.tailwind3.css +153 -27
  12. package/dist/table/clipboard.d.ts +1 -1
  13. package/dist/table/clipboard.js +35 -22
  14. package/dist/table/column-widths.d.ts +9 -0
  15. package/dist/table/column-widths.js +23 -0
  16. package/dist/table/columns.d.ts +6 -0
  17. package/dist/table/columns.js +4 -0
  18. package/dist/table/data-table.d.ts +3 -0
  19. package/dist/table/data-table.js +6 -3
  20. package/dist/table/index.d.ts +1 -0
  21. package/dist/table/index.js +1 -0
  22. package/dist/table/table-column-settings.d.ts +6 -0
  23. package/dist/table/table-column-settings.js +55 -0
  24. package/dist/table/table-controls.d.ts +1 -3
  25. package/dist/table/table-controls.js +4 -41
  26. package/dist/table/table-feedback.d.ts +5 -1
  27. package/dist/table/table-feedback.js +5 -4
  28. package/dist/table/table-filters.d.ts +8 -0
  29. package/dist/table/table-filters.js +9 -0
  30. package/dist/table/table-frame.d.ts +10 -0
  31. package/dist/table/table-frame.js +10 -0
  32. package/dist/table/table-layout.d.ts +44 -0
  33. package/dist/table/table-layout.js +68 -0
  34. package/dist/table/table-loading.d.ts +12 -0
  35. package/dist/table/table-loading.js +6 -0
  36. package/dist/table/table-parts.d.ts +20 -2
  37. package/dist/table/table-parts.js +91 -37
  38. package/dist/table/table-view.d.ts +19 -2
  39. package/dist/table/table-view.js +60 -53
  40. package/dist/table/use-column-window.d.ts +42 -0
  41. package/dist/table/use-column-window.js +65 -0
  42. package/dist/table/use-data-table.d.ts +2 -2
  43. package/dist/table/use-data-table.js +15 -2
  44. package/dist/table/use-fill-layout.d.ts +2 -0
  45. package/dist/table/use-fill-layout.js +67 -0
  46. package/dist/table/use-inline-row-selection.d.ts +10 -0
  47. package/dist/table/use-inline-row-selection.js +33 -0
  48. package/dist/table/use-stable-array.d.ts +3 -0
  49. package/dist/table/use-stable-array.js +16 -0
  50. package/dist/table/use-table-interaction.d.ts +1 -1
  51. package/dist/table/use-table-interaction.js +32 -3
  52. package/dist/table/use-table-results.d.ts +8 -0
  53. package/dist/table/use-table-results.js +63 -0
  54. package/dist/utils.js +13 -2
  55. package/package.json +9 -8
package/dist/utils.js CHANGED
@@ -1,10 +1,17 @@
1
1
  import { clsx } from "clsx";
2
2
  import { twMerge } from "tailwind-merge";
3
3
  import { originalClassNames } from "./class-names.js";
4
+ // Cache complete merges, including the private-class translation. Bound the cache
5
+ // because application-supplied class names may contain arbitrary values.
6
+ const mergedClasses = new Map();
4
7
  /** Merge before restoring private classes so application overrides remain ordinary CSS. */
5
8
  export function cn(...inputs) {
9
+ const input = clsx(inputs);
10
+ const cached = mergedClasses.get(input);
11
+ if (cached !== undefined)
12
+ return cached;
6
13
  const originals = new Map();
7
- const tokens = clsx(inputs).split(/\s+/).filter(Boolean);
14
+ const tokens = input.split(/\s+/).filter(Boolean);
8
15
  const merged = twMerge(tokens
9
16
  .map((token) => {
10
17
  const original = originalClassNames[token] ?? token;
@@ -12,8 +19,12 @@ export function cn(...inputs) {
12
19
  return original;
13
20
  })
14
21
  .join(" "));
15
- return merged
22
+ const result = merged
16
23
  .split(" ")
17
24
  .map((token) => originals.get(token) ?? token)
18
25
  .join(" ");
26
+ if (mergedClasses.size >= 512)
27
+ mergedClasses.delete(mergedClasses.keys().next().value);
28
+ mergedClasses.set(input, result);
29
+ return result;
19
30
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mendylanda/ui",
3
- "version": "0.3.0-alpha.0",
4
- "description": "Mendy Landa\u2019s reusable React components. Typed filters and tables with shared interaction behavior and customizable UI.",
3
+ "version": "0.3.0-alpha.10",
4
+ "description": "Mendy Landa’s reusable React components. Typed filters and tables with shared interaction behavior and customizable UI.",
5
5
  "homepage": "https://ui.mendylanda.com",
6
6
  "license": "MIT",
7
7
  "author": "Mendy Landa",
@@ -71,15 +71,12 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "scripts": {
75
- "build": "tsc -p tsconfig.build.json && node scripts/build-css.mjs",
76
- "typecheck": "tsc -p tsconfig.build.json --noEmit",
77
- "prepack": "pnpm build"
78
- },
79
74
  "dependencies": {
75
+ "@hello-pangea/dnd": "18.0.1",
80
76
  "@radix-ui/react-checkbox": "^1.3.3",
81
77
  "@radix-ui/react-dropdown-menu": "^2.1.16",
82
78
  "@radix-ui/react-label": "^2.1.7",
79
+ "@radix-ui/react-popover": "1.1.15",
83
80
  "@radix-ui/react-slot": "^1.2.3",
84
81
  "@tanstack/react-table": "9.2.4",
85
82
  "@tanstack/react-virtual": "^3.14.11",
@@ -110,5 +107,9 @@
110
107
  "nuqs": {
111
108
  "optional": true
112
109
  }
110
+ },
111
+ "scripts": {
112
+ "build": "tsc -p tsconfig.build.json && node scripts/build-css.mjs",
113
+ "typecheck": "tsc -p tsconfig.build.json --noEmit"
113
114
  }
114
- }
115
+ }