@exxatdesignux/ui 0.4.0 → 0.4.2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exxatdesignux/ui",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Exxat shared design system (components, hooks, tokens). Monorepo setup: clone repo then pnpm bootstrap at workspace root — see github.com/ExxatDesign/Exxat-DS-Workspace README.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Exxat Design",
@@ -98,7 +98,8 @@
98
98
  "src",
99
99
  "bin",
100
100
  "template",
101
- "consumer-extras"
101
+ "consumer-extras",
102
+ "tokens"
102
103
  ],
103
104
  "dependencies": {
104
105
  "@hookform/resolvers": "^5.2.2",
@@ -498,19 +498,23 @@ export function HubTable<TRow extends Record<string, unknown>>({
498
498
  patchDisplay,
499
499
  }
500
500
 
501
- // Dev-time warning when a `supportedViewType` has no renderer (other than `table`,
502
- // which has the built-in default). Mirrors `defineHubViewRenderers` from
503
- // `lib/hub-connected-view-renderers.ts` but inline so we don't double-wrap.
501
+ // Dev-time warning when a `supportedViewType` has no renderer AND no centralized
502
+ // default is available. `data-table` always falls back to the built-in
503
+ // `defaultTableRenderer`; `list-with-toolbar` and `board-with-toolbar` fall back
504
+ // to the synthesised defaults below when the hub passes `renderListRow` /
505
+ // `renderBoardCard` (the happy path for most hubs). The warning only fires for
506
+ // exotic surfaces that genuinely need an explicit renderer entry.
504
507
  if (process.env.NODE_ENV !== "production") {
505
508
  for (const v of supportedViewTypes) {
506
509
  const kind = getDataListViewRenderKind(v)
507
510
  if (kind === "data-table") continue
508
- if (renderers[kind] == null) {
509
- console.warn(
510
- `[Exxat DS][HubTable: ${hubLabel}] Missing renderer for supported view "${v}" (${kind}). ` +
511
- "Add a renderer entry, or remove the view from supportedViewTypes.",
512
- )
513
- }
511
+ if (renderers[kind] != null) continue
512
+ if (kind === "list-with-toolbar" && renderListRow != null) continue
513
+ if (kind === "board-with-toolbar" && renderBoardCard != null && boardGroups != null) continue
514
+ console.warn(
515
+ `[Exxat DS][HubTable: ${hubLabel}] Missing renderer for supported view "${v}" (${kind}). ` +
516
+ "Add a renderer entry, or remove the view from supportedViewTypes.",
517
+ )
514
518
  }
515
519
  }
516
520
 
@@ -1,14 +1,15 @@
1
- import { defineConfig, globalIgnores } from "eslint/config";
2
- import nextVitals from "eslint-config-next/core-web-vitals";
3
- import nextTs from "eslint-config-next/typescript";
4
- import exxatDs from "@exxatdesignux/eslint-plugin";
1
+ import { defineConfig, globalIgnores } from "eslint/config"
2
+ import nextVitals from "eslint-config-next/core-web-vitals"
3
+ import nextTs from "eslint-config-next/typescript"
5
4
 
5
+ // Consumer-facing ESLint config for a scaffolded Exxat DS app.
6
+ // The Exxat-DS guardrail plugin (`@exxatdesignux/eslint-plugin`) is
7
+ // currently workspace-internal — once it lands on npm you can add it
8
+ // alongside the blocks below and the same DS lint rules will run here.
6
9
  const eslintConfig = defineConfig([
7
10
  ...nextVitals,
8
11
  ...nextTs,
9
- // Override default ignores of eslint-config-next.
10
12
  globalIgnores([
11
- // Default ignores of eslint-config-next:
12
13
  ".next/**",
13
14
  "out/**",
14
15
  "build/**",
@@ -16,11 +17,6 @@ const eslintConfig = defineConfig([
16
17
  ]),
17
18
  {
18
19
  rules: {
19
- // Allow intentionally-unused args / vars / destructured props /
20
- // generics when prefixed with `_`. This is the standard escape hatch
21
- // for "I'm satisfying a callback signature but don't need this slot"
22
- // — common in cell renderers (`(value, _row) => …`), destructured
23
- // tuples (`const [_, setX] = useState()`), and generic constraints.
24
20
  "@typescript-eslint/no-unused-vars": [
25
21
  "warn",
26
22
  {
@@ -32,32 +28,6 @@ const eslintConfig = defineConfig([
32
28
  ],
33
29
  },
34
30
  },
35
- // -------------------------------------------------------------------------
36
- // Exxat DS guardrails (@exxatdesignux/eslint-plugin — packages/eslint-plugin-exxat-ds).
37
- // - no-hex-color: token discipline (no hex literals in JSX/style)
38
- // - no-deprecated-tokens: reads @exxatdesignux/ui tokens/hooks-index.json
39
- // - no-sonner-toast: enforces .cursor/rules/exxat-no-toast.mdc
40
- // - no-slds-classes: enforces .cursor/rules/exxat-no-slds-leakage.mdc
41
- // - no-lightning-elements: enforces .cursor/rules/exxat-no-slds-leakage.mdc
42
- // -------------------------------------------------------------------------
43
- {
44
- files: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}", "lib/**/*.{ts,tsx}", "hooks/**/*.{ts,tsx}", "contexts/**/*.{ts,tsx}", "stores/**/*.{ts,tsx}"],
45
- plugins: { "exxat-ds": exxatDs },
46
- rules: {
47
- "exxat-ds/no-hex-color": [
48
- "warn",
49
- {
50
- // Files where hex is legitimately needed (CSS variable definitions,
51
- // OS theme-color meta, etc.) are intentionally excluded by path.
52
- allowFiles: ["/app/globals.css", "/packages/ui/src/globals.css", "/lib/theme-color", "/lib/windows-contrast-theme"],
53
- },
54
- ],
55
- "exxat-ds/no-deprecated-tokens": "error",
56
- "exxat-ds/no-sonner-toast": "error",
57
- "exxat-ds/no-slds-classes": "error",
58
- "exxat-ds/no-lightning-elements": "error",
59
- },
60
- },
61
- ]);
31
+ ])
62
32
 
63
- export default eslintConfig;
33
+ export default eslintConfig
@@ -60,7 +60,6 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "@eslint/eslintrc": "^3",
63
- "@exxatdesignux/eslint-plugin": "workspace:*",
64
63
  "@next/bundle-analyzer": "16.2.6",
65
64
  "@tailwindcss/postcss": "^4.2.1",
66
65
  "@testing-library/jest-dom": "^6.9.1",