@nexus-cross/design-system 1.0.10 → 1.0.12

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 (39) hide show
  1. package/cursor-rules/nexus-ui-api.mdc +27 -5
  2. package/dist/chunks/{chunk-CV4GMFWP.js → chunk-2WM23PO6.js} +5 -3
  3. package/dist/chunks/chunk-5J63FUAS.mjs +256 -0
  4. package/dist/chunks/{chunk-BMYFRG3M.mjs → chunk-BQ6GJJB6.mjs} +1 -1
  5. package/dist/chunks/{chunk-P73MEU7N.mjs → chunk-HI5XZ4PB.mjs} +5 -3
  6. package/dist/chunks/chunk-LAGQ7J5A.js +279 -0
  7. package/dist/chunks/{chunk-6MT6Y6OF.js → chunk-WXMMOQXZ.js} +1 -1
  8. package/dist/components/ImageUpload.d.ts +23 -0
  9. package/dist/components/ImageUpload.d.ts.map +1 -0
  10. package/dist/components/ToggleGroup.d.ts +2 -0
  11. package/dist/components/ToggleGroup.d.ts.map +1 -1
  12. package/dist/image-upload.js +16 -0
  13. package/dist/image-upload.mjs +3 -0
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +25 -16
  17. package/dist/index.mjs +3 -2
  18. package/dist/schemas/_all.json +87 -0
  19. package/dist/schemas/image-upload.d.ts +45 -0
  20. package/dist/schemas/image-upload.d.ts.map +1 -0
  21. package/dist/schemas/imageUpload.json +83 -0
  22. package/dist/schemas/index.d.ts +1 -0
  23. package/dist/schemas/index.d.ts.map +1 -1
  24. package/dist/schemas/toggle-group.d.ts +3 -0
  25. package/dist/schemas/toggle-group.d.ts.map +1 -1
  26. package/dist/schemas/toggleGroup.json +4 -0
  27. package/dist/schemas.js +19 -0
  28. package/dist/schemas.mjs +19 -1
  29. package/dist/styles/.generated/built.d.ts +1 -1
  30. package/dist/styles/.generated/built.d.ts.map +1 -1
  31. package/dist/styles/layer.js +2 -2
  32. package/dist/styles/layer.mjs +1 -1
  33. package/dist/styles.css +269 -15
  34. package/dist/styles.js +2 -2
  35. package/dist/styles.layered.css +269 -15
  36. package/dist/styles.mjs +1 -1
  37. package/dist/toggle-group.js +3 -3
  38. package/dist/toggle-group.mjs +1 -1
  39. package/package.json +2 -2
@@ -3918,14 +3918,17 @@
3918
3918
  align-items: center;
3919
3919
  gap: var(--spacing-gap-sm, 0.5rem);
3920
3920
  padding: var(--spacing-padding-xs, 0.5rem) var(--spacing-padding-sm, 0.75rem);
3921
- border: var(--border-width-stroke-default, 1px) solid var(--color-border-default);
3921
+ border: var(--border-width-stroke-default, 1px) solid
3922
+ var(--color-border-default);
3922
3923
  border-radius: var(--radius-corner-md, 0.5rem);
3923
3924
  background: var(--color-surface-default);
3924
3925
  font: inherit;
3925
3926
  font-size: var(--text-text-sm, 0.875rem);
3926
3927
  color: var(--color-text-primary);
3927
3928
  cursor: pointer;
3928
- transition: border-color 150ms, box-shadow 150ms;
3929
+ transition:
3930
+ border-color 150ms,
3931
+ box-shadow 150ms;
3929
3932
  min-width: 10rem;
3930
3933
  }
3931
3934
  .nexus-datepicker__trigger:hover {
@@ -3960,10 +3963,12 @@
3960
3963
  .nexus-datepicker__popover {
3961
3964
  z-index: var(--z-index-layer-popover, 30);
3962
3965
  background: var(--color-surface-default);
3963
- border: var(--border-width-stroke-default, 1px) solid var(--color-border-default);
3966
+ border: var(--border-width-stroke-default, 1px) solid
3967
+ var(--color-border-default);
3964
3968
  border-radius: var(--radius-corner-lg, 0.75rem);
3965
3969
  box-shadow: var(--shadow-xl, 0 4px 15px -3px rgb(0 0 0 / 0.12));
3966
- padding: var(--spacing-padding-sm, 0.75rem) var(--spacing-padding-md, 1rem) var(--spacing-padding-md, 1rem);
3970
+ padding: var(--spacing-padding-sm, 0.75rem) var(--spacing-padding-md, 1rem)
3971
+ var(--spacing-padding-md, 1rem);
3967
3972
  animation: nexus-datepicker-enter-bottom 200ms cubic-bezier(0, 0, 0.2, 1);
3968
3973
  }
3969
3974
 
@@ -4009,7 +4014,9 @@
4009
4014
  border-radius: var(--radius-corner-full, 9999px);
4010
4015
  cursor: pointer;
4011
4016
  color: var(--color-icon-tertiary);
4012
- transition: background 150ms, color 150ms;
4017
+ transition:
4018
+ background 150ms,
4019
+ color 150ms;
4013
4020
  }
4014
4021
  .nexus-calendar__nav-btn svg {
4015
4022
  width: 1.125rem;
@@ -4064,7 +4071,11 @@
4064
4071
  font-size: var(--text-text-sm, 0.875rem);
4065
4072
  color: var(--color-text-primary);
4066
4073
  position: relative;
4067
- transition: background 150ms, color 150ms, border-color 150ms, box-shadow 150ms;
4074
+ transition:
4075
+ background 150ms,
4076
+ color 150ms,
4077
+ border-color 150ms,
4078
+ box-shadow 150ms;
4068
4079
  }
4069
4080
  .nexus-calendar__day:hover {
4070
4081
  background: color-mix(in srgb, var(--color-accent-primary) 10%, transparent);
@@ -4117,12 +4128,24 @@
4117
4128
  }
4118
4129
 
4119
4130
  @keyframes nexus-datepicker-enter-bottom {
4120
- from { opacity: 0; transform: translateY(-6px) scale(0.98); }
4121
- to { opacity: 1; transform: translateY(0) scale(1); }
4131
+ from {
4132
+ opacity: 0;
4133
+ transform: translateY(-6px) scale(0.98);
4134
+ }
4135
+ to {
4136
+ opacity: 1;
4137
+ transform: translateY(0) scale(1);
4138
+ }
4122
4139
  }
4123
4140
  @keyframes nexus-datepicker-enter-top {
4124
- from { opacity: 0; transform: translateY(6px) scale(0.98); }
4125
- to { opacity: 1; transform: translateY(0) scale(1); }
4141
+ from {
4142
+ opacity: 0;
4143
+ transform: translateY(6px) scale(0.98);
4144
+ }
4145
+ to {
4146
+ opacity: 1;
4147
+ transform: translateY(0) scale(1);
4148
+ }
4126
4149
  }
4127
4150
  .nexus-datepicker__popover[data-side='bottom'] {
4128
4151
  animation-name: nexus-datepicker-enter-bottom;
@@ -4131,11 +4154,21 @@
4131
4154
  animation-name: nexus-datepicker-enter-top;
4132
4155
  }
4133
4156
  @media (prefers-reduced-motion: reduce) {
4134
- .nexus-datepicker__popover { animation: none; }
4135
- .nexus-calendar__day { transition: none; }
4136
- .nexus-datepicker__trigger { transition: none; }
4137
- .nexus-calendar__nav-btn { transition: none; }
4138
- .nexus-datepicker__icon { transition: none; }
4157
+ .nexus-datepicker__popover {
4158
+ animation: none;
4159
+ }
4160
+ .nexus-calendar__day {
4161
+ transition: none;
4162
+ }
4163
+ .nexus-datepicker__trigger {
4164
+ transition: none;
4165
+ }
4166
+ .nexus-calendar__nav-btn {
4167
+ transition: none;
4168
+ }
4169
+ .nexus-datepicker__icon {
4170
+ transition: none;
4171
+ }
4139
4172
  }
4140
4173
 
4141
4174
  @keyframes nexus-fade-in {
@@ -4149,4 +4182,225 @@
4149
4182
  }
4150
4183
  }
4151
4184
 
4185
+ /* ─── ImageUpload ─── */
4186
+ .nexus-image-upload__container {
4187
+ width: 100%;
4188
+ background: var(--color-bg-subtle);
4189
+ border-radius: var(--radius-corner-md, 8px);
4190
+ overflow: hidden;
4191
+ }
4192
+ .nexus-image-upload {
4193
+ position: relative;
4194
+ display: flex;
4195
+ flex-direction: column;
4196
+ align-items: center;
4197
+ justify-content: center;
4198
+ gap: var(--spacing-gap-sm, 0.5rem);
4199
+ width: 100%;
4200
+ border: 1px dashed var(--color-border-medium);
4201
+ border-radius: var(--radius-corner-md, 8px);
4202
+ background: transparent;
4203
+ cursor: pointer;
4204
+ overflow: hidden;
4205
+ transition:
4206
+ border-color 150ms ease,
4207
+ background-color 150ms ease,
4208
+ box-shadow 150ms ease;
4209
+ outline: none;
4210
+ }
4211
+ .nexus-image-upload:hover {
4212
+ border-color: var(--color-border-default-hover);
4213
+ box-shadow: 0 0 0 0.5px var(--color-border-default-hover);
4214
+ }
4215
+ .nexus-image-upload:focus-visible {
4216
+ outline: none;
4217
+ border-color: var(--color-accent-primary);
4218
+ box-shadow: 0 0 0 0.5px var(--color-accent-primary);
4219
+ }
4220
+ .nexus-image-upload--dragging {
4221
+ border-color: var(--color-accent-primary);
4222
+ border-style: solid;
4223
+ background: color-mix(
4224
+ in srgb,
4225
+ var(--color-accent-primary) 6%,
4226
+ var(--color-surface-default)
4227
+ );
4228
+ }
4229
+ .nexus-image-upload--disabled {
4230
+ opacity: var(--opacity-disabled-element, 0.4);
4231
+ cursor: not-allowed;
4232
+ pointer-events: none;
4233
+ }
4234
+
4235
+ .nexus-image-upload--sm {
4236
+ padding: var(--spacing-padding-xs, 0.5rem) var(--spacing-padding-sm, 0.75rem);
4237
+ min-height: 80px;
4238
+ }
4239
+ .nexus-image-upload--md {
4240
+ padding: var(--spacing-padding-md, 1rem) var(--spacing-padding-sm, 0.75rem);
4241
+ min-height: 120px;
4242
+ }
4243
+ .nexus-image-upload--lg {
4244
+ padding: var(--spacing-padding-xl, 2rem) var(--spacing-padding-md, 1rem);
4245
+ min-height: 180px;
4246
+ }
4247
+
4248
+ .nexus-image-upload__icon {
4249
+ width: var(--size-icon-xl, 32px);
4250
+ height: var(--size-icon-xl, 32px);
4251
+ color: var(--color-icon-muted);
4252
+ flex-shrink: 0;
4253
+ }
4254
+ .nexus-image-upload--sm .nexus-image-upload__icon {
4255
+ width: var(--size-icon-lg, 24px);
4256
+ height: var(--size-icon-lg, 24px);
4257
+ }
4258
+
4259
+ .nexus-image-upload__text-group {
4260
+ display: flex;
4261
+ flex-direction: column;
4262
+ align-items: center;
4263
+ gap: var(--spacing-gap-xs, 0.25rem);
4264
+ }
4265
+ .nexus-image-upload__text {
4266
+ font-size: var(--text-text-medium-xs);
4267
+ font-weight: var(--font-weight-text-medium-xs, 500);
4268
+ line-height: 1.5;
4269
+ letter-spacing: var(--letter-spacing-text-medium-xs, -0.01em);
4270
+ color: var(--color-text-tertiary);
4271
+ white-space: nowrap;
4272
+ }
4273
+ .nexus-image-upload__format {
4274
+ font-size: var(--text-text-xs);
4275
+ font-weight: var(--font-weight-text-xs, 400);
4276
+ line-height: 1.5;
4277
+ letter-spacing: var(--letter-spacing-text-xs, -0.01em);
4278
+ color: var(--color-text-tertiary);
4279
+ word-break: keep-all;
4280
+ overflow-wrap: break-word;
4281
+ }
4282
+ .nexus-image-upload__input {
4283
+ position: absolute;
4284
+ width: 1px;
4285
+ height: 1px;
4286
+ padding: 0;
4287
+ margin: -1px;
4288
+ overflow: hidden;
4289
+ clip: rect(0, 0, 0, 0);
4290
+ white-space: nowrap;
4291
+ border-width: 0;
4292
+ }
4293
+
4294
+ /* ─── ImageUpload: Preview State ─── */
4295
+ .nexus-image-upload--has-preview {
4296
+ display: flex;
4297
+ flex-direction: row;
4298
+ align-items: flex-start;
4299
+ gap: var(--spacing-gap-md, 1rem);
4300
+ padding: 6px 6px 0 0;
4301
+ overflow: visible;
4302
+ }
4303
+ .nexus-image-upload__preview-area {
4304
+ position: relative;
4305
+ flex-shrink: 0;
4306
+ }
4307
+ .nexus-image-upload__preview-wrapper {
4308
+ width: 116px;
4309
+ height: 116px;
4310
+ border-radius: var(--radius-corner-md, 8px);
4311
+ border: 1px solid var(--color-border-default);
4312
+ overflow: hidden;
4313
+ }
4314
+ .nexus-image-upload--sm .nexus-image-upload__preview-wrapper {
4315
+ width: 80px;
4316
+ height: 80px;
4317
+ }
4318
+ .nexus-image-upload--lg .nexus-image-upload__preview-wrapper {
4319
+ width: 160px;
4320
+ height: 160px;
4321
+ }
4322
+ .nexus-image-upload__preview {
4323
+ width: 100%;
4324
+ height: 100%;
4325
+ object-fit: contain;
4326
+ pointer-events: none;
4327
+ border-radius: var(--radius-corner-md, 8px);
4328
+ }
4329
+ .nexus-image-upload__remove {
4330
+ position: absolute;
4331
+ top: -6px;
4332
+ right: -6px;
4333
+ display: flex;
4334
+ align-items: center;
4335
+ justify-content: center;
4336
+ width: 20px;
4337
+ height: 20px;
4338
+ border: none;
4339
+ border-radius: var(--radius-corner-full, 9999px);
4340
+ background: var(--color-surface-inverted);
4341
+ color: var(--color-icon-inverted);
4342
+ cursor: pointer;
4343
+ transition: opacity 150ms ease;
4344
+ z-index: 1;
4345
+ }
4346
+ .nexus-image-upload__remove:hover {
4347
+ opacity: 0.8;
4348
+ }
4349
+ .nexus-image-upload__remove-icon {
4350
+ width: 16px;
4351
+ height: 16px;
4352
+ }
4353
+
4354
+ .nexus-image-upload__info {
4355
+ display: flex;
4356
+ flex-direction: column;
4357
+ align-items: flex-start;
4358
+ gap: var(--spacing-gap-sm, 0.5rem);
4359
+ padding-top: 2px;
4360
+ }
4361
+ .nexus-image-upload__change-btn {
4362
+ display: inline-flex;
4363
+ align-items: center;
4364
+ justify-content: center;
4365
+ height: var(--size-control-xs, 24px);
4366
+ padding: var(--spacing-padding-2xs, 0.25rem) var(--spacing-padding-xs, 0.5rem);
4367
+ border: 1px solid var(--color-border-default);
4368
+ border-radius: var(--radius-corner-sm, 4px);
4369
+ background: var(--color-surface-default);
4370
+ font-size: var(--text-label-sm);
4371
+ font-weight: var(--font-weight-label-sm, 500);
4372
+ color: var(--color-text-primary);
4373
+ cursor: pointer;
4374
+ white-space: nowrap;
4375
+ transition:
4376
+ border-color 150ms ease,
4377
+ background-color 150ms ease;
4378
+ }
4379
+ .nexus-image-upload__change-btn:hover {
4380
+ border-color: var(--color-border-default-hover);
4381
+ background: var(--color-surface-default-hover);
4382
+ }
4383
+
4384
+ /* ─── ImageUpload: Field wrapper (label + description) ─── */
4385
+ .nexus-image-upload-field {
4386
+ display: flex;
4387
+ flex-direction: column;
4388
+ gap: var(--spacing-gap-xs, 0.25rem);
4389
+ }
4390
+ .nexus-image-upload-field__label {
4391
+ font-size: var(--text-label-semibold-md);
4392
+ font-weight: var(--font-weight-label-semibold-md, 600);
4393
+ line-height: 1;
4394
+ letter-spacing: var(--letter-spacing-label-semibold-md, 0);
4395
+ color: var(--color-text-tertiary);
4396
+ }
4397
+ .nexus-image-upload-field__description {
4398
+ font-size: var(--text-text-xs);
4399
+ font-weight: var(--font-weight-text-xs, 400);
4400
+ line-height: 1.5;
4401
+ letter-spacing: var(--letter-spacing-text-xs, -0.01em);
4402
+ color: var(--color-text-tertiary);
4403
+ margin: 0;
4404
+ }
4405
+
4152
4406
  }
package/dist/styles.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { built_default } from './chunks/chunk-BMYFRG3M.mjs';
1
+ import { built_default } from './chunks/chunk-BQ6GJJB6.mjs';
2
2
  import './chunks/chunk-CVYXRSXT.mjs';
3
3
 
4
4
  // src/styles/inject.ts
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkCV4GMFWP_js = require('./chunks/chunk-CV4GMFWP.js');
3
+ var chunk2WM23PO6_js = require('./chunks/chunk-2WM23PO6.js');
4
4
  require('./chunks/chunk-CZC76ZD5.js');
5
5
  require('./chunks/chunk-JNMCYWGY.js');
6
6
 
@@ -8,9 +8,9 @@ require('./chunks/chunk-JNMCYWGY.js');
8
8
 
9
9
  Object.defineProperty(exports, "ToggleGroup", {
10
10
  enumerable: true,
11
- get: function () { return chunkCV4GMFWP_js.ToggleGroup; }
11
+ get: function () { return chunk2WM23PO6_js.ToggleGroup; }
12
12
  });
13
13
  Object.defineProperty(exports, "toggleGroupVariants", {
14
14
  enumerable: true,
15
- get: function () { return chunkCV4GMFWP_js.toggleGroupVariants; }
15
+ get: function () { return chunk2WM23PO6_js.toggleGroupVariants; }
16
16
  });
@@ -1,3 +1,3 @@
1
- export { ToggleGroup, toggleGroupVariants } from './chunks/chunk-P73MEU7N.mjs';
1
+ export { ToggleGroup, toggleGroupVariants } from './chunks/chunk-HI5XZ4PB.mjs';
2
2
  import './chunks/chunk-MCKOWMLS.mjs';
3
3
  import './chunks/chunk-CVYXRSXT.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus-cross/design-system",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "NEXUS Design System UI Components",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -348,7 +348,7 @@
348
348
  "typescript": "^5.0.0",
349
349
  "vitest": "^1.6.1",
350
350
  "zod-to-json-schema": "^3.25.2",
351
- "@nexus-cross/tokens": "1.0.10"
351
+ "@nexus-cross/tokens": "1.0.12"
352
352
  },
353
353
  "scripts": {
354
354
  "postinstall": "node scripts/setup-cursor-rules.cjs",