@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/CHANGELOG.md +119 -0
- package/README.md +138 -0
- package/bin/init.mjs +134 -31
- package/dist/components/data-views/hub-table.js +6 -5
- package/dist/components/data-views/hub-table.js.map +1 -1
- package/dist/components/data-views/index.js +6 -5
- package/dist/components/data-views/index.js.map +1 -1
- package/dist/components/ui/banner.d.ts +2 -2
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/src/components/data-views/hub-table.tsx +13 -9
- package/template/eslint.config.mjs +9 -39
- package/template/package.json +0 -1
- package/tokens/hooks-index.json +2874 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exxatdesignux/ui",
|
|
3
|
-
"version": "0.4.
|
|
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
|
|
502
|
-
//
|
|
503
|
-
// `
|
|
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]
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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
|
package/template/package.json
CHANGED