jvdm-ui 1.0.5

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 (74) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +221 -0
  3. package/bin/jvdm-ui.mjs +49 -0
  4. package/dist/atoms/index.d.ts +343 -0
  5. package/dist/atoms/index.js +3 -0
  6. package/dist/atoms/index.js.map +1 -0
  7. package/dist/chunk-AHE2576G.js +682 -0
  8. package/dist/chunk-AHE2576G.js.map +1 -0
  9. package/dist/chunk-CGDYSB4G.js +3 -0
  10. package/dist/chunk-CGDYSB4G.js.map +1 -0
  11. package/dist/chunk-JYNDKPAH.js +362 -0
  12. package/dist/chunk-JYNDKPAH.js.map +1 -0
  13. package/dist/chunk-WWOXGKLF.js +724 -0
  14. package/dist/chunk-WWOXGKLF.js.map +1 -0
  15. package/dist/client/code-block.d.ts +9 -0
  16. package/dist/client/code-block.js +65 -0
  17. package/dist/client/code-block.js.map +1 -0
  18. package/dist/client/confirm-dialog.d.ts +16 -0
  19. package/dist/client/confirm-dialog.js +181 -0
  20. package/dist/client/confirm-dialog.js.map +1 -0
  21. package/dist/client/date-picker.d.ts +10 -0
  22. package/dist/client/date-picker.js +236 -0
  23. package/dist/client/date-picker.js.map +1 -0
  24. package/dist/client/file-upload.d.ts +12 -0
  25. package/dist/client/file-upload.js +58 -0
  26. package/dist/client/file-upload.js.map +1 -0
  27. package/dist/client/gallery.d.ts +14 -0
  28. package/dist/client/gallery.js +122 -0
  29. package/dist/client/gallery.js.map +1 -0
  30. package/dist/client/menu.d.ts +24 -0
  31. package/dist/client/menu.js +115 -0
  32. package/dist/client/menu.js.map +1 -0
  33. package/dist/client/modal.d.ts +19 -0
  34. package/dist/client/modal.js +147 -0
  35. package/dist/client/modal.js.map +1 -0
  36. package/dist/client/multi-select.d.ts +16 -0
  37. package/dist/client/multi-select.js +84 -0
  38. package/dist/client/multi-select.js.map +1 -0
  39. package/dist/client/number-input.d.ts +6 -0
  40. package/dist/client/number-input.js +59 -0
  41. package/dist/client/number-input.js.map +1 -0
  42. package/dist/client/password-input.d.ts +16 -0
  43. package/dist/client/password-input.js +103 -0
  44. package/dist/client/password-input.js.map +1 -0
  45. package/dist/client/pin-input.d.ts +10 -0
  46. package/dist/client/pin-input.js +55 -0
  47. package/dist/client/pin-input.js.map +1 -0
  48. package/dist/client/theme-toggle.d.ts +8 -0
  49. package/dist/client/theme-toggle.js +126 -0
  50. package/dist/client/theme-toggle.js.map +1 -0
  51. package/dist/client/theme.d.ts +8 -0
  52. package/dist/client/theme.js +32 -0
  53. package/dist/client/theme.js.map +1 -0
  54. package/dist/client/time-picker.d.ts +10 -0
  55. package/dist/client/time-picker.js +140 -0
  56. package/dist/client/time-picker.js.map +1 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.js +6 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/molecules/index.d.ts +309 -0
  61. package/dist/molecules/index.js +4 -0
  62. package/dist/molecules/index.js.map +1 -0
  63. package/dist/organisms/index.d.ts +113 -0
  64. package/dist/organisms/index.js +4 -0
  65. package/dist/organisms/index.js.map +1 -0
  66. package/dist/presets/gavel.css +19 -0
  67. package/dist/theme/index.d.ts +60 -0
  68. package/dist/theme/index.js +85 -0
  69. package/dist/theme/index.js.map +1 -0
  70. package/dist/tokens/index.d.ts +8 -0
  71. package/dist/tokens/index.js +3 -0
  72. package/dist/tokens/index.js.map +1 -0
  73. package/dist/tokens.css +129 -0
  74. package/package.json +114 -0
@@ -0,0 +1,129 @@
1
+ @theme {
2
+ --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
3
+ --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
4
+
5
+ --text-2xs: 11px;
6
+ --text-2xs--line-height: 1.45;
7
+ --text-xs: 12px;
8
+ --text-xs--line-height: 1.45;
9
+ --text-sm: 13px;
10
+ --text-sm--line-height: 1.5;
11
+ --text-base: 15px;
12
+ --text-base--line-height: 1.55;
13
+ --text-lg: 18px;
14
+ --text-lg--line-height: 1.45;
15
+ --text-xl: 23px;
16
+ --text-xl--line-height: 1.3;
17
+ --text-2xl: 29px;
18
+ --text-2xl--line-height: 1.2;
19
+ --text-display: 58px;
20
+ --text-display--line-height: 0.98;
21
+
22
+ --spacing: 0.25rem;
23
+
24
+ --tracking-caps: 0.06em;
25
+ --tracking-code: 0.4em;
26
+ --tracking-tight: -0.015em;
27
+ --tracking-display: -0.025em;
28
+
29
+ --font-weight-normal: 400;
30
+ --font-weight-medium: 500;
31
+ --font-weight-bold: 700;
32
+
33
+ --radius-xs: 3px;
34
+ --radius-sm: 5px;
35
+ --radius-md: 8px;
36
+ --radius-lg: 12px;
37
+ --radius-xl: 20px;
38
+
39
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
40
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
41
+ --ease-over: cubic-bezier(0.34, 1.42, 0.64, 1);
42
+
43
+ --duration-instant: 90ms;
44
+ --duration-fast: 160ms;
45
+ --duration-base: 240ms;
46
+ --duration-slow: 420ms;
47
+
48
+ --color-app: light-dark(oklch(0.965 0.012 78), oklch(0.18 0.015 78));
49
+ --color-rail: light-dark(oklch(0.945 0.014 78), oklch(0.15 0.018 78));
50
+ --color-panel: light-dark(oklch(0.95 0.01 78), oklch(0.17 0.016 78));
51
+ --color-surface: light-dark(oklch(0.99 0.008 78), oklch(0.23 0.015 78));
52
+ --color-field: light-dark(oklch(0.98 0.008 78), oklch(0.215 0.015 78));
53
+ --color-raised: light-dark(oklch(0.93 0.012 78), oklch(0.3 0.02 78));
54
+
55
+ --color-line: light-dark(oklch(0.89 0.015 78), oklch(0.275 0.018 78));
56
+ --color-line-strong: light-dark(oklch(0.82 0.018 78), oklch(0.35 0.02 78));
57
+
58
+ --color-ink: light-dark(oklch(0.23 0.02 78), oklch(0.95 0.01 78));
59
+ --color-ink-soft: light-dark(oklch(0.36 0.018 78), oklch(0.82 0.016 78));
60
+ --color-ink-muted: light-dark(oklch(0.51 0.014 78), oklch(0.65 0.012 78));
61
+ --color-ink-dim: light-dark(oklch(0.56 0.012 78), oklch(0.57 0.012 78));
62
+
63
+ --color-accent: light-dark(oklch(0.25 0.025 78), oklch(0.94 0.015 78));
64
+ --color-accent-ink: light-dark(oklch(0.33 0.022 78), oklch(0.87 0.018 78));
65
+ --color-accent-soft: light-dark(oklch(0.92 0.025 78), oklch(0.29 0.02 78));
66
+ --color-on-accent: light-dark(oklch(0.99 0.008 78), oklch(0.16 0.018 78));
67
+
68
+ --color-ok: light-dark(oklch(0.5 0.13 155), oklch(0.78 0.12 155));
69
+ --color-ok-soft: light-dark(oklch(0.94 0.04 155), oklch(0.29 0.05 155));
70
+ --color-warn: light-dark(oklch(0.58 0.14 62), oklch(0.78 0.14 62));
71
+ --color-warn-soft: light-dark(oklch(0.94 0.05 62), oklch(0.31 0.06 62));
72
+ --color-danger: light-dark(oklch(0.51 0.21 22), oklch(0.7 0.18 22));
73
+ --color-danger-soft: light-dark(oklch(0.94 0.05 22), oklch(0.29 0.07 22));
74
+ --color-info: light-dark(oklch(0.5 0.14 250), oklch(0.72 0.11 245));
75
+ --color-info-soft: light-dark(oklch(0.94 0.035 250), oklch(0.29 0.055 245));
76
+
77
+ --shadow-raised:
78
+ 0 1px 1px light-dark(oklch(0.23 0.02 78 / 0.05), oklch(0 0 0 / 0.36)),
79
+ 0 2px 4px -1px light-dark(oklch(0.23 0.02 78 / 0.06), oklch(0 0 0 / 0.4));
80
+ --shadow-popover:
81
+ 0 2px 4px -2px light-dark(oklch(0.23 0.02 78 / 0.06), oklch(0 0 0 / 0.4)),
82
+ 0 10px 24px -6px light-dark(oklch(0.23 0.02 78 / 0.12), oklch(0 0 0 / 0.52));
83
+ --shadow-modal:
84
+ 0 4px 10px -4px light-dark(oklch(0.23 0.02 78 / 0.08), oklch(0 0 0 / 0.44)),
85
+ 0 28px 64px -16px light-dark(oklch(0.23 0.02 78 / 0.18), oklch(0 0 0 / 0.64));
86
+ }
87
+
88
+ :root {
89
+ color-scheme: dark;
90
+ }
91
+
92
+ @media (prefers-color-scheme: light) {
93
+ :root {
94
+ color-scheme: light;
95
+ }
96
+ }
97
+
98
+ :root[data-theme="light"] {
99
+ color-scheme: light;
100
+ }
101
+
102
+ :root[data-theme="dark"] {
103
+ color-scheme: dark;
104
+ }
105
+
106
+ @keyframes attention {
107
+ 0%,
108
+ 100% {
109
+ box-shadow: 0 0 0 0 transparent;
110
+ }
111
+ 50% {
112
+ box-shadow: 0 0 0 4px var(--attention-ring, var(--color-danger-soft));
113
+ }
114
+ }
115
+
116
+ .attention {
117
+ animation: attention 2.4s var(--ease-in-out) infinite;
118
+ }
119
+
120
+ .attention-warn {
121
+ --attention-ring: var(--color-warn-soft);
122
+ }
123
+
124
+ @media (prefers-reduced-motion: reduce) {
125
+ .attention {
126
+ animation: none;
127
+ box-shadow: 0 0 0 2px var(--attention-ring, var(--color-danger-soft));
128
+ }
129
+ }
package/package.json ADDED
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "jvdm-ui",
3
+ "version": "1.0.5",
4
+ "description": "Design system em React 19 + Tailwind v4: tokens em oklch, tema claro/escuro e componentes em quatro camadas.",
5
+ "license": "MIT",
6
+ "author": "João Vitor Duarte Mariucio",
7
+ "type": "module",
8
+ "sideEffects": [
9
+ "*.css"
10
+ ],
11
+ "files": [
12
+ "dist",
13
+ "bin"
14
+ ],
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js"
19
+ },
20
+ "./client/*": {
21
+ "types": "./dist/client/*.d.ts",
22
+ "import": "./dist/client/*.js"
23
+ },
24
+ "./tokens": {
25
+ "types": "./dist/tokens/index.d.ts",
26
+ "import": "./dist/tokens/index.js"
27
+ },
28
+ "./atoms": {
29
+ "types": "./dist/atoms/index.d.ts",
30
+ "import": "./dist/atoms/index.js"
31
+ },
32
+ "./molecules": {
33
+ "types": "./dist/molecules/index.d.ts",
34
+ "import": "./dist/molecules/index.js"
35
+ },
36
+ "./organisms": {
37
+ "types": "./dist/organisms/index.d.ts",
38
+ "import": "./dist/organisms/index.js"
39
+ },
40
+ "./tokens.css": "./dist/tokens.css",
41
+ "./theme": {
42
+ "types": "./dist/theme/index.d.ts",
43
+ "import": "./dist/theme/index.js"
44
+ },
45
+ "./presets/gavel.css": "./dist/presets/gavel.css"
46
+ },
47
+ "scripts": {
48
+ "build": "rm -rf dist && tsup && node scripts/build-presets.mjs && cp src/tokens/tokens.css dist/tokens.css",
49
+ "dev": "tsup --watch",
50
+ "typecheck": "tsc --noEmit",
51
+ "test": "npm run build && vitest run && node --test tests/theme.test.mjs",
52
+ "test:coverage": "npm run build && vitest run --coverage && node --test tests/theme.test.mjs",
53
+ "lint": "eslint",
54
+ "lint:fix": "eslint --fix",
55
+ "format": "prettier --write .",
56
+ "format:check": "prettier --check .",
57
+ "prepare": "npm run build",
58
+ "prepublishOnly": "npm run typecheck && npm run lint && npm run format:check && npm run build",
59
+ "site:dev": "vite --config site/vite.config.ts",
60
+ "site:build": "vite build --config site/vite.config.ts",
61
+ "typecheck:site": "tsc --noEmit -p site/tsconfig.json"
62
+ },
63
+ "peerDependencies": {
64
+ "react": "^19.0.0"
65
+ },
66
+ "devDependencies": {
67
+ "@eslint/js": "^10.0.1",
68
+ "@tailwindcss/vite": "^4.3.3",
69
+ "@types/node": "^26.6.2",
70
+ "@types/react": "^19",
71
+ "@types/react-dom": "^19.3.0",
72
+ "@types/react-test-renderer": "^19.3.0",
73
+ "@vitejs/plugin-react": "^6.1.1",
74
+ "@vitest/coverage-v8": "^5.0.2",
75
+ "eslint": "^10.11.0",
76
+ "eslint-config-prettier": "^10.1.8",
77
+ "eslint-import-resolver-typescript": "^4.4.5",
78
+ "eslint-plugin-boundaries": "^7.2.0",
79
+ "eslint-plugin-react-hooks": "^7.1.1",
80
+ "globals": "^17.12.0",
81
+ "prettier": "^3.9.9",
82
+ "prettier-plugin-tailwindcss": "^0.8.1",
83
+ "react": "^19.3.0",
84
+ "react-dom": "^19.3.0",
85
+ "react-test-renderer": "^19.3.0",
86
+ "tailwindcss": "^4.3.3",
87
+ "tsup": "^8.5.0",
88
+ "typescript": "^5",
89
+ "typescript-eslint": "^8.70.1",
90
+ "vite": "^8.3.1",
91
+ "vitest": "^5.0.1"
92
+ },
93
+ "bin": {
94
+ "jvdm-ui": "./bin/jvdm-ui.mjs"
95
+ },
96
+ "keywords": [
97
+ "design-system",
98
+ "react",
99
+ "tailwindcss",
100
+ "ui",
101
+ "components",
102
+ "theming",
103
+ "design-tokens",
104
+ "oklch"
105
+ ],
106
+ "repository": {
107
+ "type": "git",
108
+ "url": "git+https://github.com/joaoduartemariucio/jvdm-ui.git"
109
+ },
110
+ "homepage": "https://joaoduartemariucio.github.io/jvdm-ui",
111
+ "bugs": {
112
+ "url": "https://github.com/joaoduartemariucio/jvdm-ui/issues"
113
+ }
114
+ }