@yugnex/nexui 2.0.0

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 (138) hide show
  1. package/LICENSE +59 -0
  2. package/css/nexui-base.css +157 -0
  3. package/css/nexui-icons.css +86 -0
  4. package/css/nexui-tokens.css +113 -0
  5. package/css/nexui.css +16 -0
  6. package/dist/assets/geometry.d.ts +98 -0
  7. package/dist/assets/geometry.d.ts.map +1 -0
  8. package/dist/assets/geometry.js +114 -0
  9. package/dist/assets/geometry.js.map +1 -0
  10. package/dist/assets/typography.d.ts +3 -0
  11. package/dist/assets/typography.d.ts.map +1 -0
  12. package/dist/assets/typography.js +178 -0
  13. package/dist/assets/typography.js.map +1 -0
  14. package/dist/core/compiler.d.ts +30 -0
  15. package/dist/core/compiler.d.ts.map +1 -0
  16. package/dist/core/compiler.js +124 -0
  17. package/dist/core/compiler.js.map +1 -0
  18. package/dist/core/cx.d.ts +7 -0
  19. package/dist/core/cx.d.ts.map +1 -0
  20. package/dist/core/cx.js +34 -0
  21. package/dist/core/cx.js.map +1 -0
  22. package/dist/core/matrix.d.ts +118 -0
  23. package/dist/core/matrix.d.ts.map +1 -0
  24. package/dist/core/matrix.js +180 -0
  25. package/dist/core/matrix.js.map +1 -0
  26. package/dist/index.d.ts +27 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +74 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/primitives/avatar.d.ts +8 -0
  31. package/dist/primitives/avatar.d.ts.map +1 -0
  32. package/dist/primitives/avatar.js +146 -0
  33. package/dist/primitives/avatar.js.map +1 -0
  34. package/dist/primitives/badge.d.ts +8 -0
  35. package/dist/primitives/badge.d.ts.map +1 -0
  36. package/dist/primitives/badge.js +88 -0
  37. package/dist/primitives/badge.js.map +1 -0
  38. package/dist/primitives/button.d.ts +10 -0
  39. package/dist/primitives/button.d.ts.map +1 -0
  40. package/dist/primitives/button.js +137 -0
  41. package/dist/primitives/button.js.map +1 -0
  42. package/dist/primitives/checkbox.d.ts +13 -0
  43. package/dist/primitives/checkbox.d.ts.map +1 -0
  44. package/dist/primitives/checkbox.js +107 -0
  45. package/dist/primitives/checkbox.js.map +1 -0
  46. package/dist/primitives/input.d.ts +14 -0
  47. package/dist/primitives/input.d.ts.map +1 -0
  48. package/dist/primitives/input.js +177 -0
  49. package/dist/primitives/input.js.map +1 -0
  50. package/dist/primitives/panel.d.ts +9 -0
  51. package/dist/primitives/panel.d.ts.map +1 -0
  52. package/dist/primitives/panel.js +101 -0
  53. package/dist/primitives/panel.js.map +1 -0
  54. package/dist/primitives/progress.d.ts +8 -0
  55. package/dist/primitives/progress.d.ts.map +1 -0
  56. package/dist/primitives/progress.js +105 -0
  57. package/dist/primitives/progress.js.map +1 -0
  58. package/dist/primitives/separator.d.ts +8 -0
  59. package/dist/primitives/separator.d.ts.map +1 -0
  60. package/dist/primitives/separator.js +69 -0
  61. package/dist/primitives/separator.js.map +1 -0
  62. package/dist/primitives/skeleton.d.ts +8 -0
  63. package/dist/primitives/skeleton.d.ts.map +1 -0
  64. package/dist/primitives/skeleton.js +61 -0
  65. package/dist/primitives/skeleton.js.map +1 -0
  66. package/dist/primitives/spinner.d.ts +8 -0
  67. package/dist/primitives/spinner.d.ts.map +1 -0
  68. package/dist/primitives/spinner.js +64 -0
  69. package/dist/primitives/spinner.js.map +1 -0
  70. package/dist/primitives/status-ring.d.ts +8 -0
  71. package/dist/primitives/status-ring.d.ts.map +1 -0
  72. package/dist/primitives/status-ring.js +101 -0
  73. package/dist/primitives/status-ring.js.map +1 -0
  74. package/dist/primitives/switch.d.ts +12 -0
  75. package/dist/primitives/switch.d.ts.map +1 -0
  76. package/dist/primitives/switch.js +124 -0
  77. package/dist/primitives/switch.js.map +1 -0
  78. package/dist/primitives/text-stream.d.ts +23 -0
  79. package/dist/primitives/text-stream.d.ts.map +1 -0
  80. package/dist/primitives/text-stream.js +167 -0
  81. package/dist/primitives/text-stream.js.map +1 -0
  82. package/dist/tokens/colors.d.ts +127 -0
  83. package/dist/tokens/colors.d.ts.map +1 -0
  84. package/dist/tokens/colors.js +135 -0
  85. package/dist/tokens/colors.js.map +1 -0
  86. package/dist/tokens/motion.d.ts +37 -0
  87. package/dist/tokens/motion.d.ts.map +1 -0
  88. package/dist/tokens/motion.js +93 -0
  89. package/dist/tokens/motion.js.map +1 -0
  90. package/dist/tokens/shadows.d.ts +34 -0
  91. package/dist/tokens/shadows.d.ts.map +1 -0
  92. package/dist/tokens/shadows.js +45 -0
  93. package/dist/tokens/shadows.js.map +1 -0
  94. package/dist/tokens/spacing.d.ts +69 -0
  95. package/dist/tokens/spacing.d.ts.map +1 -0
  96. package/dist/tokens/spacing.js +71 -0
  97. package/dist/tokens/spacing.js.map +1 -0
  98. package/dist/tokens/type.d.ts +166 -0
  99. package/dist/tokens/type.d.ts.map +1 -0
  100. package/dist/tokens/type.js +215 -0
  101. package/dist/tokens/type.js.map +1 -0
  102. package/fonts/NexuiIcons.woff2 +0 -0
  103. package/fonts/NexuiMono-Regular.otf +0 -0
  104. package/fonts/NexuiMono-Regular.woff2 +0 -0
  105. package/fonts/NexuiSans-Bold.otf +0 -0
  106. package/fonts/NexuiSans-Bold.woff2 +0 -0
  107. package/fonts/NexuiSans-Medium.otf +0 -0
  108. package/fonts/NexuiSans-Medium.woff2 +0 -0
  109. package/fonts/NexuiSans-Regular.otf +0 -0
  110. package/fonts/NexuiSans-Regular.woff2 +0 -0
  111. package/native/Cargo.toml +16 -0
  112. package/native/src/lib.rs +127 -0
  113. package/nexui-utils.css +485 -0
  114. package/package.json +58 -0
  115. package/src/assets/geometry.ts +144 -0
  116. package/src/assets/typography.ts +184 -0
  117. package/src/core/compiler.ts +139 -0
  118. package/src/core/cx.ts +50 -0
  119. package/src/core/matrix.ts +195 -0
  120. package/src/index.ts +78 -0
  121. package/src/primitives/avatar.ts +159 -0
  122. package/src/primitives/badge.ts +98 -0
  123. package/src/primitives/button.ts +149 -0
  124. package/src/primitives/checkbox.ts +113 -0
  125. package/src/primitives/input.ts +187 -0
  126. package/src/primitives/panel.ts +111 -0
  127. package/src/primitives/progress.ts +112 -0
  128. package/src/primitives/separator.ts +73 -0
  129. package/src/primitives/skeleton.ts +68 -0
  130. package/src/primitives/spinner.ts +71 -0
  131. package/src/primitives/status-ring.ts +109 -0
  132. package/src/primitives/switch.ts +134 -0
  133. package/src/primitives/text-stream.ts +187 -0
  134. package/src/tokens/colors.ts +149 -0
  135. package/src/tokens/motion.ts +97 -0
  136. package/src/tokens/shadows.ts +58 -0
  137. package/src/tokens/spacing.ts +79 -0
  138. package/src/tokens/type.ts +224 -0
package/LICENSE ADDED
@@ -0,0 +1,59 @@
1
+ YUGNEX PROPRIETARY SOFTWARE LICENSE
2
+ Version 1.0, Effective January 2026
3
+
4
+ Copyright (c) 2026 YugNex Technology (OPC) Private Limited
5
+ DIPP234393 — Bhilwara, Rajasthan, India
6
+
7
+ All rights reserved.
8
+
9
+ GRANT OF LICENSE
10
+
11
+ YugNex Technology (OPC) Private Limited ("YugNex") grants to the licensee
12
+ a non-exclusive, non-transferable, non-sublicensable license to use this
13
+ software ("@yugnex/nexui") solely for:
14
+
15
+ (a) Internal use within products and services developed and operated by
16
+ YugNex Technology (OPC) Private Limited, including but not limited to
17
+ the NexSidi platform; and
18
+
19
+ (b) Any other use explicitly authorized in writing by YugNex.
20
+
21
+ RESTRICTIONS
22
+
23
+ The licensee may NOT:
24
+
25
+ 1. Distribute, sell, sublicense, or otherwise transfer this software or
26
+ any derivative works to any third party without explicit written
27
+ authorization from YugNex.
28
+
29
+ 2. Remove or alter any copyright, trademark, or proprietary notices
30
+ contained in the software.
31
+
32
+ 3. Use the software as the basis for a competing product or service.
33
+
34
+ 4. Reverse-engineer, decompile, or disassemble the compiled WASM binary
35
+ modules included with this package.
36
+
37
+ INTELLECTUAL PROPERTY
38
+
39
+ This software embodies methods described in Indian Patent Application
40
+ #202611001020 filed January 5, 2026. Unauthorized use of the patented
41
+ methods is prohibited.
42
+
43
+ DISCLAIMER OF WARRANTIES
44
+
45
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
46
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
47
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
48
+
49
+ LIMITATION OF LIABILITY
50
+
51
+ IN NO EVENT SHALL YUGNEX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ LIABILITY ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
53
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
54
+
55
+ CONTACT
56
+
57
+ YugNex Technology (OPC) Private Limited
58
+ legal@yugnex.com
59
+ https://yugnex.com
@@ -0,0 +1,157 @@
1
+ /* @yugnex/nexui — Base Reset + Typography
2
+ Requires nexui-tokens.css to be loaded first.
3
+ Usage: @import "@yugnex/nexui/css/nexui-base.css";
4
+ */
5
+
6
+ @font-face {
7
+ font-family: 'NexuiSans';
8
+ font-style: normal;
9
+ font-weight: 400;
10
+ font-display: swap;
11
+ src: url('../fonts/NexuiSans-Regular.woff2') format('woff2');
12
+ }
13
+ @font-face {
14
+ font-family: 'NexuiSans';
15
+ font-style: normal;
16
+ font-weight: 500;
17
+ font-display: swap;
18
+ src: url('../fonts/NexuiSans-Medium.woff2') format('woff2');
19
+ }
20
+ @font-face {
21
+ font-family: 'NexuiSans';
22
+ font-style: normal;
23
+ font-weight: 700;
24
+ font-display: swap;
25
+ src: url('../fonts/NexuiSans-Bold.woff2') format('woff2');
26
+ }
27
+ @font-face {
28
+ font-family: 'NexuiMono';
29
+ font-style: normal;
30
+ font-weight: 400;
31
+ font-display: swap;
32
+ src: url('../fonts/NexuiMono-Regular.woff2') format('woff2');
33
+ }
34
+
35
+ *,
36
+ *::before,
37
+ *::after {
38
+ box-sizing: border-box;
39
+ }
40
+
41
+ html {
42
+ -webkit-text-size-adjust: 100%;
43
+ tab-size: 2;
44
+ font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
45
+ -webkit-font-smoothing: antialiased;
46
+ -moz-osx-font-smoothing: grayscale;
47
+ }
48
+
49
+ body {
50
+ margin: 0;
51
+ font-family: var(--nx-ff-sans);
52
+ font-size: var(--nx-fs-base);
53
+ line-height: var(--nx-lh-relaxed);
54
+ color: var(--nx-text);
55
+ background-color: var(--nx-bg-base);
56
+ }
57
+
58
+ code, kbd, samp, pre {
59
+ font-family: var(--nx-ff-mono);
60
+ font-size: 0.9em;
61
+ }
62
+
63
+ h1, h2, h3, h4, h5, h6 {
64
+ margin: 0;
65
+ font-family: var(--nx-ff-display);
66
+ line-height: var(--nx-lh-tight);
67
+ color: var(--nx-text);
68
+ }
69
+
70
+ h1 { font-size: var(--nx-fs-4xl); font-weight: 700; }
71
+ h2 { font-size: var(--nx-fs-3xl); font-weight: 700; }
72
+ h3 { font-size: var(--nx-fs-2xl); font-weight: 600; }
73
+ h4 { font-size: var(--nx-fs-xl); font-weight: 600; }
74
+ h5 { font-size: var(--nx-fs-lg); font-weight: 600; }
75
+ h6 { font-size: var(--nx-fs-md); font-weight: 500; }
76
+
77
+ p { margin: 0; line-height: var(--nx-lh-relaxed); }
78
+
79
+ a {
80
+ color: var(--nx-accent-text);
81
+ text-decoration: none;
82
+ }
83
+ a:hover { text-decoration: underline; }
84
+
85
+ strong, b { font-weight: 600; }
86
+ em, i { font-style: italic; }
87
+ small { font-size: var(--nx-fs-xs); }
88
+
89
+ pre {
90
+ margin: 0;
91
+ overflow-x: auto;
92
+ tab-size: 2;
93
+ }
94
+
95
+ img, svg { display: block; max-width: 100%; }
96
+
97
+ button {
98
+ cursor: pointer;
99
+ border: none;
100
+ background: none;
101
+ font: inherit;
102
+ }
103
+
104
+ input, textarea, select {
105
+ font: inherit;
106
+ }
107
+
108
+ /* Scrollbar */
109
+ ::-webkit-scrollbar { width: 6px; height: 6px; }
110
+ ::-webkit-scrollbar-track { background: transparent; }
111
+ ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 3px; }
112
+ ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.20); }
113
+
114
+ /* Focus */
115
+ :focus-visible {
116
+ outline: 2px solid var(--nx-accent);
117
+ outline-offset: 2px;
118
+ }
119
+ :focus:not(:focus-visible) { outline: none; }
120
+
121
+ /* Selection */
122
+ ::selection {
123
+ background: rgba(232,144,16,0.25);
124
+ color: var(--nx-text);
125
+ }
126
+
127
+ /* Reduced motion */
128
+ @media (prefers-reduced-motion: reduce) {
129
+ *, *::before, *::after {
130
+ animation-duration: 0.01ms !important;
131
+ animation-iteration-count: 1 !important;
132
+ transition-duration: 0.01ms !important;
133
+ scroll-behavior: auto !important;
134
+ }
135
+ }
136
+
137
+ /* Keyframes */
138
+ @keyframes nx-fade-in {
139
+ from { opacity: 0; transform: translateY(6px); }
140
+ to { opacity: 1; transform: translateY(0); }
141
+ }
142
+ @keyframes nx-pulse {
143
+ 0%, 100% { opacity: 1; }
144
+ 50% { opacity: 0.4; }
145
+ }
146
+ @keyframes nx-spin {
147
+ from { transform: rotate(0deg); }
148
+ to { transform: rotate(360deg); }
149
+ }
150
+ @keyframes nx-shimmer {
151
+ 0% { background-position: -200% 0; }
152
+ 100% { background-position: 200% 0; }
153
+ }
154
+ @keyframes nx-slide-in-r {
155
+ from { opacity: 0; transform: translateX(12px); }
156
+ to { opacity: 1; transform: translateX(0); }
157
+ }
@@ -0,0 +1,86 @@
1
+ /* @yugnex/nexui — Icon Font
2
+ NexuiIcons: 30 custom geometric icons, zero third-party dependency.
3
+ All icons live in Unicode Private Use Area (U+E001–U+E01E).
4
+
5
+ Usage:
6
+ @import "@yugnex/nexui/css/nexui-icons.css";
7
+ <i class="nxi nxi-folder"></i>
8
+
9
+ Size: set font-size on .nxi or parent.
10
+ Color: inherits currentColor.
11
+ */
12
+
13
+ @font-face {
14
+ font-family: 'NexuiIcons';
15
+ font-style: normal;
16
+ font-weight: normal;
17
+ font-display: block;
18
+ src: url('../fonts/NexuiIcons.woff2') format('woff2');
19
+ }
20
+
21
+ /* Base class */
22
+ .nxi {
23
+ font-family: 'NexuiIcons' !important;
24
+ font-style: normal;
25
+ font-weight: normal;
26
+ font-variant: normal;
27
+ text-transform: none;
28
+ line-height: 1;
29
+ display: inline-block;
30
+ vertical-align: middle;
31
+ speak: never;
32
+ -webkit-font-smoothing: antialiased;
33
+ -moz-osx-font-smoothing: grayscale;
34
+ }
35
+
36
+ /* Icon codepoint map */
37
+ .nxi-folder::before { content: "\E001"; }
38
+ .nxi-folder-open::before { content: "\E002"; }
39
+ .nxi-file::before { content: "\E003"; }
40
+ .nxi-check::before { content: "\E004"; }
41
+ .nxi-x::before { content: "\E005"; }
42
+ .nxi-chevron-r::before { content: "\E006"; }
43
+ .nxi-chevron-d::before { content: "\E007"; }
44
+ .nxi-chevron-l::before { content: "\E008"; }
45
+ .nxi-plus::before { content: "\E009"; }
46
+ .nxi-minus::before { content: "\E00A"; }
47
+ .nxi-trash::before { content: "\E00B"; }
48
+ .nxi-code::before { content: "\E00C"; }
49
+ .nxi-terminal::before { content: "\E00D"; }
50
+ .nxi-git-branch::before { content: "\E00E"; }
51
+ .nxi-git-commit::before { content: "\E00F"; }
52
+ .nxi-search::before { content: "\E010"; }
53
+ .nxi-eye::before { content: "\E011"; }
54
+ .nxi-copy::before { content: "\E012"; }
55
+ .nxi-clock::before { content: "\E013"; }
56
+ .nxi-warning::before { content: "\E014"; }
57
+ .nxi-info::before { content: "\E015"; }
58
+ .nxi-download::before { content: "\E016"; }
59
+ .nxi-link::before { content: "\E017"; }
60
+ .nxi-user::before { content: "\E018"; }
61
+ .nxi-dots::before { content: "\E019"; }
62
+ .nxi-refresh::before { content: "\E01A"; }
63
+ .nxi-arrow-r::before { content: "\E01B"; }
64
+ .nxi-arrow-u::before { content: "\E01C"; }
65
+ .nxi-settings::before { content: "\E01D"; }
66
+ .nxi-star::before { content: "\E01E"; }
67
+
68
+ /* Convenience size modifiers */
69
+ .nxi-sm { font-size: 14px; }
70
+ .nxi-md { font-size: 16px; }
71
+ .nxi-lg { font-size: 20px; }
72
+ .nxi-xl { font-size: 24px; }
73
+ .nxi-2xl { font-size: 32px; }
74
+
75
+ /* Color aliases */
76
+ .nxi-green { color: var(--nx-green); }
77
+ .nxi-blue { color: var(--nx-blue); }
78
+ .nxi-red { color: var(--nx-red); }
79
+ .nxi-yellow { color: var(--nx-yellow); }
80
+ .nxi-accent { color: var(--nx-accent); }
81
+ .nxi-muted { color: var(--nx-text3); }
82
+ .nxi-cyan { color: var(--nx-cyan); }
83
+ .nxi-purple { color: var(--nx-purple); }
84
+
85
+ /* Spin animation for loading states */
86
+ .nxi-spin { animation: nx-spin 1s linear infinite; }
@@ -0,0 +1,113 @@
1
+ /* @yugnex/nexui — Design Tokens
2
+ CSS custom properties for the NexUI design system.
3
+ Import this first; all other nexui CSS depends on these vars.
4
+ Usage: @import "@yugnex/nexui/css/nexui-tokens.css";
5
+ */
6
+
7
+ :root {
8
+ /* ── Color palette ─────────────────────────────────────────── */
9
+ --nx-bg-base: #0D1117;
10
+ --nx-bg-elevated: #161B22;
11
+ --nx-bg-overlay: #1C2128;
12
+ --nx-bg-subtle: #21262D;
13
+ --nx-bg-muted: #2D333B;
14
+
15
+ --nx-border: rgba(48, 54, 61, 0.9);
16
+ --nx-border-muted:rgba(48, 54, 61, 0.5);
17
+
18
+ --nx-text: #E6EDF3;
19
+ --nx-text2: #8B949E;
20
+ --nx-text3: #6E7681;
21
+ --nx-text-inv: #0D1117;
22
+
23
+ --nx-accent: #E89010;
24
+ --nx-accent-text: #F5B342;
25
+ --nx-accent-muted:rgba(232, 144, 16, 0.15);
26
+
27
+ --nx-green: #3FB950;
28
+ --nx-green-muted: rgba(63, 185, 80, 0.15);
29
+ --nx-blue: #58A6FF;
30
+ --nx-blue-muted: rgba(88, 166, 255, 0.15);
31
+ --nx-red: #F85149;
32
+ --nx-red-muted: rgba(248, 81, 73, 0.15);
33
+ --nx-yellow: #D29922;
34
+ --nx-yellow-muted:rgba(210, 153, 34, 0.15);
35
+ --nx-purple: #BC8CFF;
36
+ --nx-purple-muted:rgba(188, 140, 255, 0.15);
37
+ --nx-cyan: #39D0D8;
38
+ --nx-cyan-muted: rgba(57, 208, 216, 0.15);
39
+ --nx-orange: #F0883E;
40
+ --nx-orange-muted:rgba(240, 136, 62, 0.15);
41
+
42
+ /* ── Typography ────────────────────────────────────────────── */
43
+ --nx-ff-sans: 'NexuiSans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
44
+ --nx-ff-mono: 'NexuiMono', 'JetBrains Mono', 'Fira Code', 'SF Mono', monospace;
45
+ --nx-ff-display: 'NexuiSans', -apple-system, BlinkMacSystemFont, sans-serif;
46
+ --nx-ff-icons: 'NexuiIcons';
47
+
48
+ --nx-fs-2xs: clamp(10px, 0.3636px + 1.0227vw, 11px);
49
+ --nx-fs-xs: clamp(12px, 0.7273px + 1.3636vw, 14px);
50
+ --nx-fs-sm: clamp(13px, 1.0909px + 1.4773vw, 15px);
51
+ --nx-fs-base: clamp(14px, 1.4545px + 1.5909vw, 16px);
52
+ --nx-fs-md: clamp(15px, 1.8182px + 1.7045vw, 18px);
53
+ --nx-fs-lg: clamp(16px, 1.0909px + 2.0455vw, 20px);
54
+ --nx-fs-xl: clamp(18px, 0.0909px + 2.6136vw, 24px);
55
+ --nx-fs-2xl: clamp(20px, -2.1818px + 3.4091vw, 28px);
56
+ --nx-fs-3xl: clamp(24px, -3.2727px + 4.2045vw, 36px);
57
+ --nx-fs-4xl: clamp(28px, -7.6364px + 5.5909vw, 48px);
58
+ --nx-fs-5xl: clamp(32px, -15.2727px + 7.5vw, 60px);
59
+ --nx-fs-6xl: clamp(40px, -20px + 9.375vw, 72px);
60
+ --nx-fs-7xl: clamp(48px, -30px + 11.25vw, 96px);
61
+
62
+ --nx-lh-tight: 1.2;
63
+ --nx-lh-normal: 1.5;
64
+ --nx-lh-relaxed: 1.65;
65
+ --nx-lh-code: 1.7;
66
+
67
+ /* ── Spacing ────────────────────────────────────────────────── */
68
+ --nx-sp-1: 4px;
69
+ --nx-sp-2: 8px;
70
+ --nx-sp-3: 12px;
71
+ --nx-sp-4: 16px;
72
+ --nx-sp-5: 20px;
73
+ --nx-sp-6: 24px;
74
+ --nx-sp-8: 32px;
75
+ --nx-sp-10: 40px;
76
+ --nx-sp-12: 48px;
77
+ --nx-sp-16: 64px;
78
+ --nx-sp-20: 80px;
79
+
80
+ /* ── Radius ─────────────────────────────────────────────────── */
81
+ --nx-r-sm: 4px;
82
+ --nx-r-md: 6px;
83
+ --nx-r-lg: 8px;
84
+ --nx-r-xl: 12px;
85
+ --nx-r-2xl: 16px;
86
+ --nx-r-full: 9999px;
87
+
88
+ /* ── Shadows ────────────────────────────────────────────────── */
89
+ --nx-shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
90
+ --nx-shadow-md: 0 4px 12px rgba(0,0,0,0.5);
91
+ --nx-shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
92
+ --nx-shadow-xl: 0 20px 60px rgba(0,0,0,0.7);
93
+ --nx-glow-accent: 0 0 20px rgba(232,144,16,0.25);
94
+ --nx-glow-blue: 0 0 20px rgba(88,166,255,0.2);
95
+ --nx-glow-green: 0 0 20px rgba(63,185,80,0.2);
96
+
97
+ /* ── Motion ─────────────────────────────────────────────────── */
98
+ --nx-dur-fast: 120ms;
99
+ --nx-dur-base: 200ms;
100
+ --nx-dur-slow: 350ms;
101
+ --nx-ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
102
+ --nx-ease-in: cubic-bezier(0.4, 0.0, 1.0, 1);
103
+ --nx-ease-inout: cubic-bezier(0.4, 0.0, 0.2, 1);
104
+ --nx-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
105
+
106
+ /* ── Z-index ────────────────────────────────────────────────── */
107
+ --nx-z-base: 0;
108
+ --nx-z-raised: 10;
109
+ --nx-z-dropdown:100;
110
+ --nx-z-modal: 200;
111
+ --nx-z-toast: 300;
112
+ --nx-z-top: 400;
113
+ }
package/css/nexui.css ADDED
@@ -0,0 +1,16 @@
1
+ /* @yugnex/nexui — Master CSS Entry Point
2
+ Imports all NexUI stylesheets in dependency order.
3
+
4
+ Usage (Next.js app/layout.tsx or globals.css):
5
+ import "@yugnex/nexui/css/nexui.css";
6
+
7
+ Or in CSS:
8
+ @import "@yugnex/nexui/css/nexui.css";
9
+
10
+ This is the equivalent of `import "tailwindcss"` — one import,
11
+ everything you need: tokens, reset, fonts, icons, utilities.
12
+ */
13
+
14
+ @import "./nexui-tokens.css";
15
+ @import "./nexui-base.css";
16
+ @import "./nexui-icons.css";
@@ -0,0 +1,98 @@
1
+ export declare const NexuiIcons: {
2
+ readonly arrowLeft: "M19 12H5M5 12l7-7M5 12l7 7";
3
+ readonly arrowRight: "M5 12h14M13 5l7 7-7 7";
4
+ readonly arrowUp: "M12 19V5M5 12l7-7 7 7";
5
+ readonly arrowDown: "M12 5v14M19 12l-7 7-7-7";
6
+ readonly chevronLeft: "M15 18l-6-6 6-6";
7
+ readonly chevronRight: "M9 18l6-6-6-6";
8
+ readonly chevronUp: "M18 15l-6-6-6 6";
9
+ readonly chevronDown: "M6 9l6 6 6-6";
10
+ readonly chevronUpDown: "M8 9l4-4 4 4M8 15l4 4 4-4";
11
+ readonly externalLink: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3";
12
+ readonly file: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6";
13
+ readonly fileCode: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M10 13l-2 2 2 2 M14 13l2 2-2 2";
14
+ readonly fileText: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M16 13H8 M16 17H8 M10 9H8";
15
+ readonly folder: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z";
16
+ readonly folderOpen: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z M2 10h20";
17
+ readonly home: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z M9 22V12h6v10";
18
+ readonly menu: "M3 12h18M3 6h18M3 18h18";
19
+ readonly x: "M18 6L6 18M6 6l12 12";
20
+ readonly plus: "M12 5v14M5 12h14";
21
+ readonly minus: "M5 12h14";
22
+ readonly check: "M20 6L9 17l-5-5";
23
+ readonly search: "M21 21l-4.35-4.35M17 11A6 6 0 1 1 5 11a6 6 0 0 1 12 0z";
24
+ readonly filter: "M22 3H2l8 9.46V19l4 2v-8.54z";
25
+ readonly settings: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z";
26
+ readonly moreHoriz: "M5 12h.01M12 12h.01M19 12h.01";
27
+ readonly moreVert: "M12 5h.01M12 12h.01M12 19h.01";
28
+ readonly copy: "M20 9H11a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2z M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1";
29
+ readonly trash: "M3 6h18M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2";
30
+ readonly edit: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7 M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z";
31
+ readonly download: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M7 10l5 5 5-5 M12 15V3";
32
+ readonly upload: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M17 8l-5-5-5 5 M12 3v12";
33
+ readonly share: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8 M16 6l-4-4-4 4 M12 2v13";
34
+ readonly refresh: "M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15";
35
+ readonly info: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 8h.01 M12 12v4";
36
+ readonly alertCircle: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 8v4 M12 16h.01";
37
+ readonly alertTriangle: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z M12 9v4 M12 17h.01";
38
+ readonly checkCircle: "M22 11.08V12a10 10 0 1 1-5.93-9.14 M22 4L12 14.01l-3-3";
39
+ readonly loader: "M12 2v4 M12 18v4 M4.93 4.93l2.83 2.83 M16.24 16.24l2.83 2.83 M2 12h4 M18 12h4 M4.93 19.07l2.83-2.83 M16.24 7.76l2.83-2.83";
40
+ readonly activity: "M22 12h-4l-3 9L9 3l-3 9H2";
41
+ readonly message: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z";
42
+ readonly send: "M22 2L11 13 M22 2L15 22l-4-9-9-4 22-7z";
43
+ readonly bell: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0";
44
+ readonly code: "M16 18l6-6-6-6 M8 6l-6 6 6 6";
45
+ readonly terminal: "M4 17l6-6-6-6 M12 19h8";
46
+ readonly cpu: "M18 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z M9 9h6v6H9z M9 1v3 M15 1v3 M9 20v3 M15 20v3 M20 9h3 M20 14h3 M1 9h3 M1 14h3";
47
+ readonly database: "M12 2C7.58 2 4 3.79 4 6v12c0 2.21 3.58 4 8 4s8-1.79 8-4V6c0-2.21-3.58-4-8-4z M4 12c0 2.21 3.58 4 8 4s8-1.79 8-4 M4 6c0 2.21 3.58 4 8 4s8-1.79 8-4";
48
+ readonly server: "M22 2H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z M0 14h24v4a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-4z M6 6h.01 M6 18h.01";
49
+ readonly git: "M18 3a3 3 0 0 1 0 6 3 3 0 0 1-2.83-2H9.83A3 3 0 0 1 4 9a3 3 0 0 1 3-3 3 3 0 0 1 2.83 2h5.34A3 3 0 0 1 18 6z M6 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M6 9v6";
50
+ readonly gitBranch: "M6 3v12 M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M18 9a9 9 0 0 1-9 9";
51
+ readonly gitCommit: "M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M1.05 12H7 M17.01 12H23";
52
+ readonly gitPullRequest: "M18 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M6 3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M13 6h3a2 2 0 0 1 2 2v7 M6 9v12";
53
+ readonly package: "M16.5 9.4L7.55 4.24 M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 1 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z M3.27 6.96L12 12.01l8.73-5.05 M12 22.08V12";
54
+ readonly play: "M5 3l14 9-14 9V3z";
55
+ readonly stop: "M18 18H6V6h12z";
56
+ readonly pause: "M6 19h4V5H6v14zM14 5v14h4V5h-4z";
57
+ readonly lock: "M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2z M7 11V7a5 5 0 0 1 10 0v4";
58
+ readonly unlock: "M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2z M7 11V7a5 5 0 0 1 9.9-1";
59
+ readonly shield: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z";
60
+ readonly shieldCheck: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z M9 12l2 2 4-4";
61
+ readonly eye: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z";
62
+ readonly eyeOff: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94 M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19 M1 1l22 22";
63
+ readonly key: "M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4";
64
+ readonly user: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2 M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z";
65
+ readonly users: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2 M23 21v-2a4 4 0 0 0-3-3.87 M16 3.13a4 4 0 0 1 0 7.75 M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z";
66
+ readonly userPlus: "M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2 M8.5 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M20 8v6 M23 11h-6";
67
+ readonly layout: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M3 9h18 M9 21V9";
68
+ readonly sidebar: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M9 3v18";
69
+ readonly grid: "M3 3h7v7H3z M14 3h7v7h-7z M14 14h7v7h-7z M3 14h7v7H3z";
70
+ readonly columns: "M12 3h9v18h-9z M3 3h7v18H3z";
71
+ readonly maximize: "M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3";
72
+ readonly minimize: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3";
73
+ readonly barChart: "M18 20V10 M12 20V4 M6 20v-6";
74
+ readonly lineChart: "M3 3v18h18 M3 9l4.5 4.5L12 9l4.5 6L21 9";
75
+ readonly pieChart: "M21.21 15.89A10 10 0 1 1 8 2.83 M22 12A10 10 0 0 0 12 2v10z";
76
+ readonly trendUp: "M23 6l-9.5 9.5-5-5L1 18 M17 6h6v6";
77
+ readonly trendDown: "M23 18l-9.5-9.5-5 5L1 6 M17 18h6v-6";
78
+ readonly zap: "M13 2L3 14h9l-1 8 10-12h-9l1-8z";
79
+ readonly star: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z";
80
+ readonly heart: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z";
81
+ readonly bookmark: "M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z";
82
+ readonly tag: "M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z M7 7h.01";
83
+ readonly link: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71 M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71";
84
+ readonly globe: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M2 12h20 M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z";
85
+ readonly clock: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 6v6l4 2";
86
+ readonly calendar: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M16 1v4 M8 1v4 M3 9h18";
87
+ readonly sparkles: "M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5z M19 15l.75 2.25L22 18l-2.25.75L19 21l-.75-2.25L16 18l2.25-.75z M5 3l.5 1.5L7 5l-1.5.5L5 7l-.5-1.5L3 5l1.5-.5z";
88
+ };
89
+ export type NexuiIconName = keyof typeof NexuiIcons;
90
+ /** Renders an SVG string for the given icon. */
91
+ export declare function nexIcon(name: NexuiIconName, opts?: {
92
+ size?: number;
93
+ strokeWidth?: number;
94
+ color?: string;
95
+ className?: string;
96
+ ariaLabel?: string;
97
+ }): string;
98
+ //# sourceMappingURL=geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/assets/geometry.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Gb,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,UAAU,CAAC;AAEpD,gDAAgD;AAChD,wBAAgB,OAAO,CACrB,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE;IACJ,IAAI,CAAC,EAAS,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAQ,MAAM,CAAC;IACrB,SAAS,CAAC,EAAI,MAAM,CAAC;IACrB,SAAS,CAAC,EAAI,MAAM,CAAC;CACjB,GACL,MAAM,CAcR"}
@@ -0,0 +1,114 @@
1
+ // @yugnex/nexui — Icon Geometry
2
+ // Hand-authored SVG path data. 24x24 viewBox. Stroke-based (fill:none).
3
+ // Render: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
4
+ // <path d={NexuiIcons.check} />
5
+ // </svg>
6
+ export const NexuiIcons = {
7
+ // ── Navigation & Actions ─────────────────────────────────────────────────
8
+ arrowLeft: "M19 12H5M5 12l7-7M5 12l7 7",
9
+ arrowRight: "M5 12h14M13 5l7 7-7 7",
10
+ arrowUp: "M12 19V5M5 12l7-7 7 7",
11
+ arrowDown: "M12 5v14M19 12l-7 7-7-7",
12
+ chevronLeft: "M15 18l-6-6 6-6",
13
+ chevronRight: "M9 18l6-6-6-6",
14
+ chevronUp: "M18 15l-6-6-6 6",
15
+ chevronDown: "M6 9l6 6 6-6",
16
+ chevronUpDown: "M8 9l4-4 4 4M8 15l4 4 4-4",
17
+ externalLink: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3",
18
+ // ── File & Folder ────────────────────────────────────────────────────────
19
+ file: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6",
20
+ fileCode: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M10 13l-2 2 2 2 M14 13l2 2-2 2",
21
+ fileText: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z M14 2v6h6 M16 13H8 M16 17H8 M10 9H8",
22
+ folder: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z",
23
+ folderOpen: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z M2 10h20",
24
+ // ── Interface ────────────────────────────────────────────────────────────
25
+ home: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z M9 22V12h6v10",
26
+ menu: "M3 12h18M3 6h18M3 18h18",
27
+ x: "M18 6L6 18M6 6l12 12",
28
+ plus: "M12 5v14M5 12h14",
29
+ minus: "M5 12h14",
30
+ check: "M20 6L9 17l-5-5",
31
+ search: "M21 21l-4.35-4.35M17 11A6 6 0 1 1 5 11a6 6 0 0 1 12 0z",
32
+ filter: "M22 3H2l8 9.46V19l4 2v-8.54z",
33
+ settings: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z",
34
+ moreHoriz: "M5 12h.01M12 12h.01M19 12h.01",
35
+ moreVert: "M12 5h.01M12 12h.01M12 19h.01",
36
+ copy: "M20 9H11a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2z M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",
37
+ trash: "M3 6h18M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6M10 11v6M14 11v6M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2",
38
+ edit: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7 M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z",
39
+ download: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M7 10l5 5 5-5 M12 15V3",
40
+ upload: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M17 8l-5-5-5 5 M12 3v12",
41
+ share: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8 M16 6l-4-4-4 4 M12 2v13",
42
+ refresh: "M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15",
43
+ // ── Status & Feedback ────────────────────────────────────────────────────
44
+ info: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 8h.01 M12 12v4",
45
+ alertCircle: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 8v4 M12 16h.01",
46
+ alertTriangle: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z M12 9v4 M12 17h.01",
47
+ checkCircle: "M22 11.08V12a10 10 0 1 1-5.93-9.14 M22 4L12 14.01l-3-3",
48
+ loader: "M12 2v4 M12 18v4 M4.93 4.93l2.83 2.83 M16.24 16.24l2.83 2.83 M2 12h4 M18 12h4 M4.93 19.07l2.83-2.83 M16.24 7.76l2.83-2.83",
49
+ activity: "M22 12h-4l-3 9L9 3l-3 9H2",
50
+ // ── Communication ────────────────────────────────────────────────────────
51
+ message: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",
52
+ send: "M22 2L11 13 M22 2L15 22l-4-9-9-4 22-7z",
53
+ bell: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0",
54
+ // ── Code & Tech ──────────────────────────────────────────────────────────
55
+ code: "M16 18l6-6-6-6 M8 6l-6 6 6 6",
56
+ terminal: "M4 17l6-6-6-6 M12 19h8",
57
+ cpu: "M18 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z M9 9h6v6H9z M9 1v3 M15 1v3 M9 20v3 M15 20v3 M20 9h3 M20 14h3 M1 9h3 M1 14h3",
58
+ database: "M12 2C7.58 2 4 3.79 4 6v12c0 2.21 3.58 4 8 4s8-1.79 8-4V6c0-2.21-3.58-4-8-4z M4 12c0 2.21 3.58 4 8 4s8-1.79 8-4 M4 6c0 2.21 3.58 4 8 4s8-1.79 8-4",
59
+ server: "M22 2H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z M0 14h24v4a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-4z M6 6h.01 M6 18h.01",
60
+ git: "M18 3a3 3 0 0 1 0 6 3 3 0 0 1-2.83-2H9.83A3 3 0 0 1 4 9a3 3 0 0 1 3-3 3 3 0 0 1 2.83 2h5.34A3 3 0 0 1 18 6z M6 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M6 9v6",
61
+ gitBranch: "M6 3v12 M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M18 9a9 9 0 0 1-9 9",
62
+ gitCommit: "M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M1.05 12H7 M17.01 12H23",
63
+ gitPullRequest: "M18 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M6 3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z M13 6h3a2 2 0 0 1 2 2v7 M6 9v12",
64
+ package: "M16.5 9.4L7.55 4.24 M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 1 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z M3.27 6.96L12 12.01l8.73-5.05 M12 22.08V12",
65
+ play: "M5 3l14 9-14 9V3z",
66
+ stop: "M18 18H6V6h12z",
67
+ pause: "M6 19h4V5H6v14zM14 5v14h4V5h-4z",
68
+ // ── Security ─────────────────────────────────────────────────────────────
69
+ // Fixed padlock — corrected from the malformed original
70
+ lock: "M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2z M7 11V7a5 5 0 0 1 10 0v4",
71
+ unlock: "M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2z M7 11V7a5 5 0 0 1 9.9-1",
72
+ shield: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",
73
+ shieldCheck: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z M9 12l2 2 4-4",
74
+ eye: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",
75
+ eyeOff: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94 M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19 M1 1l22 22",
76
+ key: "M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4",
77
+ // ── User & Social ────────────────────────────────────────────────────────
78
+ user: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2 M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",
79
+ users: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2 M23 21v-2a4 4 0 0 0-3-3.87 M16 3.13a4 4 0 0 1 0 7.75 M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",
80
+ userPlus: "M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2 M8.5 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M20 8v6 M23 11h-6",
81
+ // ── Layout & Panels ──────────────────────────────────────────────────────
82
+ layout: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M3 9h18 M9 21V9",
83
+ sidebar: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M9 3v18",
84
+ grid: "M3 3h7v7H3z M14 3h7v7h-7z M14 14h7v7h-7z M3 14h7v7H3z",
85
+ columns: "M12 3h9v18h-9z M3 3h7v18H3z",
86
+ maximize: "M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3",
87
+ minimize: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3",
88
+ // ── Charts & Data ────────────────────────────────────────────────────────
89
+ barChart: "M18 20V10 M12 20V4 M6 20v-6",
90
+ lineChart: "M3 3v18h18 M3 9l4.5 4.5L12 9l4.5 6L21 9",
91
+ pieChart: "M21.21 15.89A10 10 0 1 1 8 2.83 M22 12A10 10 0 0 0 12 2v10z",
92
+ trendUp: "M23 6l-9.5 9.5-5-5L1 18 M17 6h6v6",
93
+ trendDown: "M23 18l-9.5-9.5-5 5L1 6 M17 18h6v-6",
94
+ zap: "M13 2L3 14h9l-1 8 10-12h-9l1-8z",
95
+ // ── Misc ─────────────────────────────────────────────────────────────────
96
+ star: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z",
97
+ heart: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z",
98
+ bookmark: "M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",
99
+ tag: "M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z M7 7h.01",
100
+ link: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71 M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",
101
+ globe: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M2 12h20 M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",
102
+ clock: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z M12 6v6l4 2",
103
+ calendar: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z M16 1v4 M8 1v4 M3 9h18",
104
+ sparkles: "M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5z M19 15l.75 2.25L22 18l-2.25.75L19 21l-.75-2.25L16 18l2.25-.75z M5 3l.5 1.5L7 5l-1.5.5L5 7l-.5-1.5L3 5l1.5-.5z",
105
+ };
106
+ /** Renders an SVG string for the given icon. */
107
+ export function nexIcon(name, opts = {}) {
108
+ const { size = 16, strokeWidth = 1.5, color = "currentColor", className = "", ariaLabel, } = opts;
109
+ const aria = ariaLabel
110
+ ? `role="img" aria-label="${ariaLabel}"`
111
+ : `aria-hidden="true"`;
112
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 24 24" fill="none" stroke="${color}" stroke-width="${strokeWidth}" stroke-linecap="round" stroke-linejoin="round"${className ? ` class="${className}"` : ""} ${aria}><path d="${NexuiIcons[name]}"/></svg>`;
113
+ }
114
+ //# sourceMappingURL=geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../src/assets/geometry.ts"],"names":[],"mappings":"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"}