@donotdev/ui 0.0.4 → 0.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.
package/dist/dndev.css CHANGED
@@ -1069,12 +1069,13 @@ em {
1069
1069
  }
1070
1070
 
1071
1071
  .dndev-surface[data-variant='glass'] {
1072
- background: color-mix(in oklab, var(--card) 40%, transparent);
1073
- backdrop-filter: blur(12px);
1074
- -webkit-backdrop-filter: blur(12px);
1072
+ background: color-mix(in oklab, var(--card) 55%, transparent);
1073
+ backdrop-filter: blur(20px) saturate(180%);
1074
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
1075
1075
  border: var(--border-hairline) solid
1076
- color-mix(in oklab, var(--card-foreground) 15%, transparent);
1077
- box-shadow: var(--shadow-lg);
1076
+ color-mix(in oklab, var(--card-foreground) 25%, transparent);
1077
+ box-shadow: var(--shadow-lg),
1078
+ inset 0 1px 0 0 color-mix(in oklab, var(--card-foreground) 10%, transparent);
1078
1079
  }
1079
1080
 
1080
1081
  /* Separator style */
@@ -2144,6 +2145,7 @@ em {
2144
2145
  background: transparent;
2145
2146
  color: inherit;
2146
2147
  font-size: var(--font-size-base);
2148
+ font-weight: var(--font-weight-medium);
2147
2149
  }
2148
2150
 
2149
2151
  .dndev-interactive[data-role='accordion-trigger']:hover {
@@ -2168,6 +2170,7 @@ em {
2168
2170
  transition: all var(--dur-fast) var(--ease-in-out);
2169
2171
  width: 100%;
2170
2172
  min-width: 0;
2173
+ text-align: start;
2171
2174
  }
2172
2175
 
2173
2176
  .dndev-accordion-content[data-state='closed'] {
@@ -2900,8 +2903,6 @@ em {
2900
2903
  /* packages/components/src/atomic/CallToAction/CallToAction.css */
2901
2904
 
2902
2905
  .dndev-cta {
2903
- /* Default gradient */
2904
- background: linear-gradient(to right, var(--secondary), var(--background));
2905
2906
  color: var(--foreground);
2906
2907
  /* Padding for background - vertical only, horizontal handled by content */
2907
2908
  padding-block: var(--gap-lg);
@@ -2909,29 +2910,32 @@ em {
2909
2910
 
2910
2911
  /* Tone variants - leverage existing data-tone system */
2911
2912
 
2913
+ /* Ghost (default) - no background */
2914
+
2915
+ .dndev-cta[data-tone='ghost'],
2916
+ .dndev-cta:not([data-tone]) {
2917
+ background: transparent;
2918
+ }
2919
+
2912
2920
  .dndev-cta[data-tone='base'] {
2913
- background: linear-gradient(to right, var(--secondary), var(--background));
2921
+ background: var(--background);
2914
2922
  }
2915
2923
 
2916
2924
  .dndev-cta[data-tone='muted'] {
2917
- background: linear-gradient(to right, var(--muted), var(--background));
2925
+ background: var(--muted);
2918
2926
  }
2919
2927
 
2920
- .dndev-cta[data-tone='accent'] {
2921
- background: linear-gradient(
2922
- to right,
2923
- color-mix(in oklab, var(--accent) 10%, transparent),
2924
- var(--background)
2925
- );
2928
+ .dndev-cta[data-tone='elevated'] {
2929
+ background: var(--background);
2926
2930
  }
2927
2931
 
2928
2932
  .dndev-cta[data-tone='contrast'] {
2929
- background: linear-gradient(to right, var(--foreground), var(--background));
2933
+ background: var(--foreground);
2930
2934
  color: var(--background);
2931
2935
  }
2932
2936
 
2933
- .dndev-cta[data-tone='elevated'] {
2934
- background: linear-gradient(to right, var(--secondary), var(--background));
2937
+ .dndev-cta[data-tone='accent'] {
2938
+ background: color-mix(in oklab, var(--accent) 5%, transparent);
2935
2939
  }
2936
2940
 
2937
2941
  .dndev-cta-content {
@@ -3038,11 +3042,12 @@ em {
3038
3042
  word-wrap: break-word;
3039
3043
  }
3040
3044
 
3041
- .dndev-card-subtitle {
3045
+ .dndev-surface .dndev-card-subtitle {
3042
3046
  margin-top: 0;
3043
3047
  margin-bottom: 0;
3044
3048
  min-width: 0;
3045
3049
  word-wrap: break-word;
3050
+ color: color-mix(in oklab, var(--card-foreground) 70%, transparent);
3046
3051
  }
3047
3052
 
3048
3053
  /* packages/components/src/atomic/Checkbox/Checkbox.css */
@@ -3133,6 +3138,203 @@ em {
3133
3138
  }
3134
3139
  }
3135
3140
 
3141
+ /* packages/components/src/atomic/Collapsible/Collapsible.css */
3142
+
3143
+ .dndev-collapsible {
3144
+ width: 100%;
3145
+ display: flex;
3146
+ flex-direction: column;
3147
+ }
3148
+
3149
+ .dndev-collapsible-content {
3150
+ overflow: hidden;
3151
+ width: 100%;
3152
+ }
3153
+
3154
+ .dndev-collapsible-content[data-state='open'] {
3155
+ animation: slideDown var(--dur-normal) var(--ease-in-out);
3156
+ }
3157
+
3158
+ .dndev-collapsible-content[data-state='closed'] {
3159
+ animation: slideUp var(--dur-normal) var(--ease-in-out);
3160
+ }
3161
+
3162
+ @keyframes slideDown {
3163
+ from {
3164
+ height: 0;
3165
+ }
3166
+ to {
3167
+ height: var(--radix-collapsible-content-height);
3168
+ }
3169
+ }
3170
+
3171
+ @keyframes slideUp {
3172
+ from {
3173
+ height: var(--radix-collapsible-content-height);
3174
+ }
3175
+ to {
3176
+ height: 0;
3177
+ }
3178
+ }
3179
+
3180
+ /* packages/components/src/atomic/Combobox/Combobox.css */
3181
+
3182
+ .dndev-combobox-trigger {
3183
+ display: flex;
3184
+ justify-content: space-between;
3185
+ align-items: center;
3186
+ width: 100%;
3187
+ text-align: left;
3188
+ }
3189
+
3190
+ .dndev-combobox-trigger button {
3191
+ display: flex;
3192
+ justify-content: space-between;
3193
+ align-items: center;
3194
+ width: 100%;
3195
+ }
3196
+
3197
+ .dndev-combobox-placeholder {
3198
+ opacity: var(--opacity-muted);
3199
+ }
3200
+
3201
+ .dndev-combobox-trigger-icons {
3202
+ display: flex;
3203
+ align-items: center;
3204
+ gap: var(--gap-tight);
3205
+ margin-inline-start: auto;
3206
+ }
3207
+
3208
+ .dndev-combobox-clear {
3209
+ display: flex;
3210
+ align-items: center;
3211
+ justify-content: center;
3212
+ cursor: pointer;
3213
+ opacity: var(--opacity-muted);
3214
+ transition: opacity var(--dur-fast) var(--ease-in-out);
3215
+ -webkit-user-select: none;
3216
+ -moz-user-select: none;
3217
+ user-select: none;
3218
+ }
3219
+
3220
+ .dndev-combobox-clear:hover,
3221
+ .dndev-combobox-clear:focus {
3222
+ opacity: 1;
3223
+ outline: none;
3224
+ }
3225
+
3226
+ .dndev-combobox-clear svg {
3227
+ width: var(--icon-sm);
3228
+ height: var(--icon-sm);
3229
+ }
3230
+
3231
+ .dndev-combobox-chevron {
3232
+ width: var(--icon-md);
3233
+ height: var(--icon-md);
3234
+ opacity: var(--opacity-muted);
3235
+ transition: transform var(--dur-fast) var(--ease-in-out);
3236
+ }
3237
+
3238
+ [data-state='open'] .dndev-combobox-chevron {
3239
+ transform: rotate(180deg);
3240
+ }
3241
+
3242
+ .dndev-combobox-loading-container {
3243
+ display: flex;
3244
+ align-items: center;
3245
+ gap: var(--gap-sm);
3246
+ }
3247
+
3248
+ .dndev-combobox-loading-spinner {
3249
+ width: var(--icon-md);
3250
+ height: var(--icon-md);
3251
+ border-radius: var(--radius-full);
3252
+ border: 2px solid currentColor;
3253
+ border-top-color: transparent;
3254
+ }
3255
+
3256
+ .dndev-combobox-content {
3257
+ width: var(--radix-popover-trigger-width);
3258
+ min-width: var(--radix-popover-trigger-width);
3259
+ max-height: 300px;
3260
+ display: flex;
3261
+ flex-direction: column;
3262
+ padding: 0;
3263
+ }
3264
+
3265
+ .dndev-combobox-search-container {
3266
+ padding: var(--gap-sm);
3267
+ border-bottom: var(--border-width) solid var(--line-2);
3268
+ }
3269
+
3270
+ .dndev-combobox-search-input {
3271
+ width: 100%;
3272
+ }
3273
+
3274
+ .dndev-combobox-list {
3275
+ overflow-y: auto;
3276
+ padding: var(--gap-tight);
3277
+ display: flex;
3278
+ flex-direction: column;
3279
+ gap: var(--gap-none);
3280
+ }
3281
+
3282
+ .dndev-combobox-option {
3283
+ all: unset;
3284
+ display: flex;
3285
+ align-items: center;
3286
+ justify-content: space-between;
3287
+ padding: var(--gap-sm) var(--gap-md);
3288
+ cursor: pointer;
3289
+ border-radius: var(--radius-interactive);
3290
+ transition: background-color var(--dur-fast) var(--ease-in-out);
3291
+ }
3292
+
3293
+ .dndev-combobox-option:disabled {
3294
+ opacity: var(--opacity-muted);
3295
+ cursor: not-allowed;
3296
+ }
3297
+
3298
+ .dndev-combobox-option-highlighted:not(:disabled) {
3299
+ background-color: var(--accent);
3300
+ opacity: var(--opacity-strong);
3301
+ }
3302
+
3303
+ .dndev-combobox-option-selected {
3304
+ font-weight: var(--font-weight-medium);
3305
+ }
3306
+
3307
+ .dndev-combobox-option-content {
3308
+ display: flex;
3309
+ flex-direction: column;
3310
+ gap: var(--gap-tight);
3311
+ flex: 1;
3312
+ }
3313
+
3314
+ .dndev-combobox-option-label {
3315
+ font-size: var(--font-size-sm);
3316
+ color: var(--foreground);
3317
+ }
3318
+
3319
+ .dndev-combobox-option-description {
3320
+ font-size: var(--font-size-xs);
3321
+ color: var(--muted-foreground);
3322
+ }
3323
+
3324
+ .dndev-combobox-option-check {
3325
+ width: var(--icon-md);
3326
+ height: var(--icon-md);
3327
+ color: currentColor;
3328
+ flex-shrink: 0;
3329
+ }
3330
+
3331
+ .dndev-combobox-empty {
3332
+ padding: var(--gap-lg) var(--gap-md);
3333
+ text-align: center;
3334
+ font-size: var(--font-size-sm);
3335
+ color: var(--muted-foreground);
3336
+ }
3337
+
3136
3338
  /* packages/components/src/atomic/DualCard/DualCard.css */
3137
3339
 
3138
3340
  .dndev-dual-card {
@@ -4248,6 +4450,10 @@ em {
4248
4450
  text-align: start; /* Always start-aligned, even when parent is centered */
4249
4451
  }
4250
4452
 
4453
+ .dndev-list[data-gap='none'] {
4454
+ gap: var(--gap-none);
4455
+ }
4456
+
4251
4457
  .dndev-list[data-gap='tight'] {
4252
4458
  gap: var(--gap-sm);
4253
4459
  }
@@ -4977,17 +5183,17 @@ em {
4977
5183
  margin-block-end: var(--gap-md);
4978
5184
  }
4979
5185
 
4980
- .dndev-section-full-width[data-text-align='start'] .dndev-section-content {
4981
- text-align: start;
4982
- }
5186
+ .dndev-section-full-width[data-text-align='start'] .dndev-section-title {
5187
+ text-align: start;
5188
+ }
4983
5189
 
4984
- .dndev-section-full-width[data-text-align='center'] .dndev-section-content {
4985
- text-align: center;
4986
- }
5190
+ .dndev-section-full-width[data-text-align='center'] .dndev-section-title {
5191
+ text-align: center;
5192
+ }
4987
5193
 
4988
- .dndev-section-full-width[data-text-align='end'] .dndev-section-content {
4989
- text-align: end;
4990
- }
5194
+ .dndev-section-full-width[data-text-align='end'] .dndev-section-title {
5195
+ text-align: end;
5196
+ }
4991
5197
 
4992
5198
  /* packages/components/src/atomic/Separator/Separator.css */
4993
5199
 
@@ -6140,6 +6346,123 @@ em {
6140
6346
  display: none;
6141
6347
  }
6142
6348
 
6349
+ /* packages/components/src/atomic/Tag/Tag.css */
6350
+
6351
+ .dndev-tag {
6352
+ display: inline-flex;
6353
+ align-items: center;
6354
+ gap: var(--gap-xs);
6355
+ border-radius: var(--radius-full);
6356
+ border: 1px solid transparent;
6357
+ font-size: var(--font-size-sm);
6358
+ font-weight: 500;
6359
+ line-height: 1;
6360
+ white-space: nowrap;
6361
+ transition: all var(--dur-fast) var(--ease-in-out);
6362
+
6363
+ /* Default variant */
6364
+ background-color: var(--secondary);
6365
+ color: var(--secondary-foreground);
6366
+ }
6367
+
6368
+ .dndev-tag .dndev-tag-remove {
6369
+ display: inline-flex;
6370
+ align-items: center;
6371
+ justify-content: center;
6372
+ padding: 0;
6373
+ margin-left: 2px;
6374
+ background: transparent;
6375
+ border: none;
6376
+ cursor: pointer;
6377
+ color: inherit;
6378
+ opacity: 0.7;
6379
+ border-radius: 50%;
6380
+ width: 14px;
6381
+ height: 14px;
6382
+ transition: opacity var(--dur-fast);
6383
+ }
6384
+
6385
+ :is(.dndev-tag .dndev-tag-remove):hover {
6386
+ opacity: 1;
6387
+ background-color: rgba(0, 0, 0, 0.1);
6388
+ }
6389
+
6390
+ :is(.dndev-tag .dndev-tag-remove):focus-visible {
6391
+ outline: 2px solid var(--ring);
6392
+ }
6393
+
6394
+ .dndev-tag .dndev-tag-remove-icon {
6395
+ width: 10px;
6396
+ height: 10px;
6397
+ }
6398
+
6399
+ /* Sizes */
6400
+
6401
+ .dndev-tag-sm {
6402
+ padding: 0.125rem 0.5rem;
6403
+ font-size: var(--font-size-xs);
6404
+ height: 20px;
6405
+ }
6406
+
6407
+ .dndev-tag-md {
6408
+ padding: 0.25rem 0.75rem;
6409
+ font-size: var(--font-size-sm);
6410
+ height: 24px;
6411
+ }
6412
+
6413
+ .dndev-tag-lg {
6414
+ padding: 0.375rem 0.875rem;
6415
+ font-size: var(--font-size-base);
6416
+ height: 32px;
6417
+ }
6418
+
6419
+ /* Variants */
6420
+
6421
+ .dndev-tag-outline {
6422
+ background-color: transparent;
6423
+ border-color: var(--border);
6424
+ color: var(--foreground);
6425
+ }
6426
+
6427
+ .dndev-tag-accent {
6428
+ background-color: var(--accent);
6429
+ color: var(--accent-foreground);
6430
+ border-color: transparent;
6431
+ }
6432
+
6433
+ /* Interactive States */
6434
+
6435
+ .dndev-tag-interactive {
6436
+ cursor: pointer;
6437
+ -webkit-user-select: none;
6438
+ -moz-user-select: none;
6439
+ user-select: none;
6440
+ }
6441
+
6442
+ .dndev-tag-interactive:hover {
6443
+ opacity: 0.8;
6444
+ }
6445
+
6446
+ .dndev-tag-interactive:focus-visible {
6447
+ outline: 2px solid var(--ring);
6448
+ outline-offset: 2px;
6449
+ }
6450
+
6451
+ .dndev-tag-disabled {
6452
+ pointer-events: none;
6453
+ opacity: 0.5;
6454
+ }
6455
+
6456
+ .dndev-tag-sm .dndev-tag-remove-icon {
6457
+ width: 8px;
6458
+ height: 8px;
6459
+ }
6460
+
6461
+ .dndev-tag-lg .dndev-tag-remove-icon {
6462
+ width: 12px;
6463
+ height: 12px;
6464
+ }
6465
+
6143
6466
  /* packages/components/src/atomic/Text/Text.css */
6144
6467
 
6145
6468
  .dndev-text-base[data-text-align='start'] {
@@ -6161,7 +6484,7 @@ em {
6161
6484
  }
6162
6485
 
6163
6486
  .dndev-text-base[data-variant='default'] {
6164
- color: var(--foreground);
6487
+ color: inherit;
6165
6488
  }
6166
6489
 
6167
6490
  .dndev-text-base[data-variant='muted'] {
@@ -6221,7 +6544,6 @@ em {
6221
6544
  .dndev-text-base[data-level='h4'] {
6222
6545
  font-size: var(--font-size-base);
6223
6546
  font-weight: var(--font-weight-medium);
6224
- color: var(--muted-foreground);
6225
6547
  }
6226
6548
 
6227
6549
  .dndev-text-base[data-level='body'] {
@@ -6585,6 +6907,14 @@ em {
6585
6907
  display: block;
6586
6908
  }
6587
6909
 
6910
+ /* SVG placeholder - zero bytes, instant render */
6911
+
6912
+ .dndev-video-placeholder {
6913
+ width: 100%;
6914
+ height: 100%;
6915
+ display: block;
6916
+ }
6917
+
6588
6918
  /* Play button overlay */
6589
6919
 
6590
6920
  .dndev-video-play-overlay {
@@ -1 +1 @@
1
- {"version":3,"file":"DnDevLayout.d.ts","sourceRoot":"","sources":["../../../src/internal/layout/DnDevLayout.tsx"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,gBAAgB,CAAC;AA2CxB,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,GAAI,kCAIzB,yBAAyB,4CA4T3B,CAAC"}
1
+ {"version":3,"file":"DnDevLayout.d.ts","sourceRoot":"","sources":["../../../src/internal/layout/DnDevLayout.tsx"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,gBAAgB,CAAC;AA2CxB,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,GAAI,kCAIzB,yBAAyB,4CAsT3B,CAAC"}
@@ -247,9 +247,5 @@ export const DnDevLayout = ({ children, layout, className, }) => {
247
247
  };
248
248
  startTransition(updateDOM);
249
249
  }, [effectivePreset]);
250
- return (_jsxs("div", { className: cn('dndev-layout', className), children: [resolvedHeader, resolvedSidebar, _jsxs("main", { ref: mainRef, role: "main", className: "main", children: [breadcrumbs !== false && (_jsx("div", { className: "breadcrumbs-container", children: _jsx(Breadcrumbs, { variant: breadcrumbs === 'smart'
251
- ? 'smart'
252
- : breadcrumbs === 'always'
253
- ? 'default'
254
- : 'smart' }) })), isDev() && (_jsx(Suspense, { fallback: null, children: _jsx(DebugTools, {}) })), _jsx(Stack, { flex: "1", className: "dndev-min-h-0", children: content }, pathname)] }), resolvedFooter, resolvedMergedBar, _jsx(GoToWrapper, {})] }));
250
+ return (_jsxs("div", { className: cn('dndev-layout', className), children: [resolvedHeader, resolvedSidebar, _jsxs("main", { ref: mainRef, role: "main", className: "main", children: [breadcrumbs !== 'never' && (_jsx("div", { className: "breadcrumbs-container", children: _jsx(Breadcrumbs, { variant: breadcrumbs === 'always' ? 'default' : 'smart' }) })), isDev() && (_jsx(Suspense, { fallback: null, children: _jsx(DebugTools, {}) })), _jsx(Stack, { flex: "1", className: "dndev-min-h-0", children: content }, pathname)] }), resolvedFooter, resolvedMergedBar, _jsx(GoToWrapper, {})] }));
255
251
  };
@@ -1065,12 +1065,13 @@ em {
1065
1065
  }
1066
1066
 
1067
1067
  .dndev-surface[data-variant='glass'] {
1068
- background: color-mix(in oklab, var(--card) 40%, transparent);
1069
- backdrop-filter: blur(12px);
1070
- -webkit-backdrop-filter: blur(12px);
1068
+ background: color-mix(in oklab, var(--card) 55%, transparent);
1069
+ backdrop-filter: blur(20px) saturate(180%);
1070
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
1071
1071
  border: var(--border-hairline) solid
1072
- color-mix(in oklab, var(--card-foreground) 15%, transparent);
1073
- box-shadow: var(--shadow-lg);
1072
+ color-mix(in oklab, var(--card-foreground) 25%, transparent);
1073
+ box-shadow: var(--shadow-lg),
1074
+ inset 0 1px 0 0 color-mix(in oklab, var(--card-foreground) 10%, transparent);
1074
1075
  }
1075
1076
 
1076
1077
  /* Separator style */
@@ -2140,6 +2141,7 @@ em {
2140
2141
  background: transparent;
2141
2142
  color: inherit;
2142
2143
  font-size: var(--font-size-base);
2144
+ font-weight: var(--font-weight-medium);
2143
2145
  }
2144
2146
 
2145
2147
  .dndev-interactive[data-role='accordion-trigger']:hover {
@@ -2164,6 +2166,7 @@ em {
2164
2166
  transition: all var(--dur-fast) var(--ease-in-out);
2165
2167
  width: 100%;
2166
2168
  min-width: 0;
2169
+ text-align: start;
2167
2170
  }
2168
2171
 
2169
2172
  .dndev-accordion-content[data-state='closed'] {
@@ -2896,8 +2899,6 @@ em {
2896
2899
  /* packages/components/src/atomic/CallToAction/CallToAction.css */
2897
2900
 
2898
2901
  .dndev-cta {
2899
- /* Default gradient */
2900
- background: linear-gradient(to right, var(--secondary), var(--background));
2901
2902
  color: var(--foreground);
2902
2903
  /* Padding for background - vertical only, horizontal handled by content */
2903
2904
  padding-block: var(--gap-lg);
@@ -2905,29 +2906,32 @@ em {
2905
2906
 
2906
2907
  /* Tone variants - leverage existing data-tone system */
2907
2908
 
2909
+ /* Ghost (default) - no background */
2910
+
2911
+ .dndev-cta[data-tone='ghost'],
2912
+ .dndev-cta:not([data-tone]) {
2913
+ background: transparent;
2914
+ }
2915
+
2908
2916
  .dndev-cta[data-tone='base'] {
2909
- background: linear-gradient(to right, var(--secondary), var(--background));
2917
+ background: var(--background);
2910
2918
  }
2911
2919
 
2912
2920
  .dndev-cta[data-tone='muted'] {
2913
- background: linear-gradient(to right, var(--muted), var(--background));
2921
+ background: var(--muted);
2914
2922
  }
2915
2923
 
2916
- .dndev-cta[data-tone='accent'] {
2917
- background: linear-gradient(
2918
- to right,
2919
- color-mix(in oklab, var(--accent) 10%, transparent),
2920
- var(--background)
2921
- );
2924
+ .dndev-cta[data-tone='elevated'] {
2925
+ background: var(--background);
2922
2926
  }
2923
2927
 
2924
2928
  .dndev-cta[data-tone='contrast'] {
2925
- background: linear-gradient(to right, var(--foreground), var(--background));
2929
+ background: var(--foreground);
2926
2930
  color: var(--background);
2927
2931
  }
2928
2932
 
2929
- .dndev-cta[data-tone='elevated'] {
2930
- background: linear-gradient(to right, var(--secondary), var(--background));
2933
+ .dndev-cta[data-tone='accent'] {
2934
+ background: color-mix(in oklab, var(--accent) 5%, transparent);
2931
2935
  }
2932
2936
 
2933
2937
  .dndev-cta-content {
@@ -3034,11 +3038,12 @@ em {
3034
3038
  word-wrap: break-word;
3035
3039
  }
3036
3040
 
3037
- .dndev-card-subtitle {
3041
+ .dndev-surface .dndev-card-subtitle {
3038
3042
  margin-top: 0;
3039
3043
  margin-bottom: 0;
3040
3044
  min-width: 0;
3041
3045
  word-wrap: break-word;
3046
+ color: color-mix(in oklab, var(--card-foreground) 70%, transparent);
3042
3047
  }
3043
3048
 
3044
3049
  /* packages/components/src/atomic/Checkbox/Checkbox.css */
@@ -3129,6 +3134,203 @@ em {
3129
3134
  }
3130
3135
  }
3131
3136
 
3137
+ /* packages/components/src/atomic/Collapsible/Collapsible.css */
3138
+
3139
+ .dndev-collapsible {
3140
+ width: 100%;
3141
+ display: flex;
3142
+ flex-direction: column;
3143
+ }
3144
+
3145
+ .dndev-collapsible-content {
3146
+ overflow: hidden;
3147
+ width: 100%;
3148
+ }
3149
+
3150
+ .dndev-collapsible-content[data-state='open'] {
3151
+ animation: slideDown var(--dur-normal) var(--ease-in-out);
3152
+ }
3153
+
3154
+ .dndev-collapsible-content[data-state='closed'] {
3155
+ animation: slideUp var(--dur-normal) var(--ease-in-out);
3156
+ }
3157
+
3158
+ @keyframes slideDown {
3159
+ from {
3160
+ height: 0;
3161
+ }
3162
+ to {
3163
+ height: var(--radix-collapsible-content-height);
3164
+ }
3165
+ }
3166
+
3167
+ @keyframes slideUp {
3168
+ from {
3169
+ height: var(--radix-collapsible-content-height);
3170
+ }
3171
+ to {
3172
+ height: 0;
3173
+ }
3174
+ }
3175
+
3176
+ /* packages/components/src/atomic/Combobox/Combobox.css */
3177
+
3178
+ .dndev-combobox-trigger {
3179
+ display: flex;
3180
+ justify-content: space-between;
3181
+ align-items: center;
3182
+ width: 100%;
3183
+ text-align: left;
3184
+ }
3185
+
3186
+ .dndev-combobox-trigger button {
3187
+ display: flex;
3188
+ justify-content: space-between;
3189
+ align-items: center;
3190
+ width: 100%;
3191
+ }
3192
+
3193
+ .dndev-combobox-placeholder {
3194
+ opacity: var(--opacity-muted);
3195
+ }
3196
+
3197
+ .dndev-combobox-trigger-icons {
3198
+ display: flex;
3199
+ align-items: center;
3200
+ gap: var(--gap-tight);
3201
+ margin-inline-start: auto;
3202
+ }
3203
+
3204
+ .dndev-combobox-clear {
3205
+ display: flex;
3206
+ align-items: center;
3207
+ justify-content: center;
3208
+ cursor: pointer;
3209
+ opacity: var(--opacity-muted);
3210
+ transition: opacity var(--dur-fast) var(--ease-in-out);
3211
+ -webkit-user-select: none;
3212
+ -moz-user-select: none;
3213
+ user-select: none;
3214
+ }
3215
+
3216
+ .dndev-combobox-clear:hover,
3217
+ .dndev-combobox-clear:focus {
3218
+ opacity: 1;
3219
+ outline: none;
3220
+ }
3221
+
3222
+ .dndev-combobox-clear svg {
3223
+ width: var(--icon-sm);
3224
+ height: var(--icon-sm);
3225
+ }
3226
+
3227
+ .dndev-combobox-chevron {
3228
+ width: var(--icon-md);
3229
+ height: var(--icon-md);
3230
+ opacity: var(--opacity-muted);
3231
+ transition: transform var(--dur-fast) var(--ease-in-out);
3232
+ }
3233
+
3234
+ [data-state='open'] .dndev-combobox-chevron {
3235
+ transform: rotate(180deg);
3236
+ }
3237
+
3238
+ .dndev-combobox-loading-container {
3239
+ display: flex;
3240
+ align-items: center;
3241
+ gap: var(--gap-sm);
3242
+ }
3243
+
3244
+ .dndev-combobox-loading-spinner {
3245
+ width: var(--icon-md);
3246
+ height: var(--icon-md);
3247
+ border-radius: var(--radius-full);
3248
+ border: 2px solid currentColor;
3249
+ border-top-color: transparent;
3250
+ }
3251
+
3252
+ .dndev-combobox-content {
3253
+ width: var(--radix-popover-trigger-width);
3254
+ min-width: var(--radix-popover-trigger-width);
3255
+ max-height: 300px;
3256
+ display: flex;
3257
+ flex-direction: column;
3258
+ padding: 0;
3259
+ }
3260
+
3261
+ .dndev-combobox-search-container {
3262
+ padding: var(--gap-sm);
3263
+ border-bottom: var(--border-width) solid var(--line-2);
3264
+ }
3265
+
3266
+ .dndev-combobox-search-input {
3267
+ width: 100%;
3268
+ }
3269
+
3270
+ .dndev-combobox-list {
3271
+ overflow-y: auto;
3272
+ padding: var(--gap-tight);
3273
+ display: flex;
3274
+ flex-direction: column;
3275
+ gap: var(--gap-none);
3276
+ }
3277
+
3278
+ .dndev-combobox-option {
3279
+ all: unset;
3280
+ display: flex;
3281
+ align-items: center;
3282
+ justify-content: space-between;
3283
+ padding: var(--gap-sm) var(--gap-md);
3284
+ cursor: pointer;
3285
+ border-radius: var(--radius-interactive);
3286
+ transition: background-color var(--dur-fast) var(--ease-in-out);
3287
+ }
3288
+
3289
+ .dndev-combobox-option:disabled {
3290
+ opacity: var(--opacity-muted);
3291
+ cursor: not-allowed;
3292
+ }
3293
+
3294
+ .dndev-combobox-option-highlighted:not(:disabled) {
3295
+ background-color: var(--accent);
3296
+ opacity: var(--opacity-strong);
3297
+ }
3298
+
3299
+ .dndev-combobox-option-selected {
3300
+ font-weight: var(--font-weight-medium);
3301
+ }
3302
+
3303
+ .dndev-combobox-option-content {
3304
+ display: flex;
3305
+ flex-direction: column;
3306
+ gap: var(--gap-tight);
3307
+ flex: 1;
3308
+ }
3309
+
3310
+ .dndev-combobox-option-label {
3311
+ font-size: var(--font-size-sm);
3312
+ color: var(--foreground);
3313
+ }
3314
+
3315
+ .dndev-combobox-option-description {
3316
+ font-size: var(--font-size-xs);
3317
+ color: var(--muted-foreground);
3318
+ }
3319
+
3320
+ .dndev-combobox-option-check {
3321
+ width: var(--icon-md);
3322
+ height: var(--icon-md);
3323
+ color: currentColor;
3324
+ flex-shrink: 0;
3325
+ }
3326
+
3327
+ .dndev-combobox-empty {
3328
+ padding: var(--gap-lg) var(--gap-md);
3329
+ text-align: center;
3330
+ font-size: var(--font-size-sm);
3331
+ color: var(--muted-foreground);
3332
+ }
3333
+
3132
3334
  /* packages/components/src/atomic/DualCard/DualCard.css */
3133
3335
 
3134
3336
  .dndev-dual-card {
@@ -4244,6 +4446,10 @@ em {
4244
4446
  text-align: start; /* Always start-aligned, even when parent is centered */
4245
4447
  }
4246
4448
 
4449
+ .dndev-list[data-gap='none'] {
4450
+ gap: var(--gap-none);
4451
+ }
4452
+
4247
4453
  .dndev-list[data-gap='tight'] {
4248
4454
  gap: var(--gap-sm);
4249
4455
  }
@@ -4973,17 +5179,17 @@ em {
4973
5179
  margin-block-end: var(--gap-md);
4974
5180
  }
4975
5181
 
4976
- .dndev-section-full-width[data-text-align='start'] .dndev-section-content {
4977
- text-align: start;
4978
- }
5182
+ .dndev-section-full-width[data-text-align='start'] .dndev-section-title {
5183
+ text-align: start;
5184
+ }
4979
5185
 
4980
- .dndev-section-full-width[data-text-align='center'] .dndev-section-content {
4981
- text-align: center;
4982
- }
5186
+ .dndev-section-full-width[data-text-align='center'] .dndev-section-title {
5187
+ text-align: center;
5188
+ }
4983
5189
 
4984
- .dndev-section-full-width[data-text-align='end'] .dndev-section-content {
4985
- text-align: end;
4986
- }
5190
+ .dndev-section-full-width[data-text-align='end'] .dndev-section-title {
5191
+ text-align: end;
5192
+ }
4987
5193
 
4988
5194
  /* packages/components/src/atomic/Separator/Separator.css */
4989
5195
 
@@ -6136,6 +6342,123 @@ em {
6136
6342
  display: none;
6137
6343
  }
6138
6344
 
6345
+ /* packages/components/src/atomic/Tag/Tag.css */
6346
+
6347
+ .dndev-tag {
6348
+ display: inline-flex;
6349
+ align-items: center;
6350
+ gap: var(--gap-xs);
6351
+ border-radius: var(--radius-full);
6352
+ border: 1px solid transparent;
6353
+ font-size: var(--font-size-sm);
6354
+ font-weight: 500;
6355
+ line-height: 1;
6356
+ white-space: nowrap;
6357
+ transition: all var(--dur-fast) var(--ease-in-out);
6358
+
6359
+ /* Default variant */
6360
+ background-color: var(--secondary);
6361
+ color: var(--secondary-foreground);
6362
+ }
6363
+
6364
+ .dndev-tag .dndev-tag-remove {
6365
+ display: inline-flex;
6366
+ align-items: center;
6367
+ justify-content: center;
6368
+ padding: 0;
6369
+ margin-left: 2px;
6370
+ background: transparent;
6371
+ border: none;
6372
+ cursor: pointer;
6373
+ color: inherit;
6374
+ opacity: 0.7;
6375
+ border-radius: 50%;
6376
+ width: 14px;
6377
+ height: 14px;
6378
+ transition: opacity var(--dur-fast);
6379
+ }
6380
+
6381
+ :is(.dndev-tag .dndev-tag-remove):hover {
6382
+ opacity: 1;
6383
+ background-color: rgba(0, 0, 0, 0.1);
6384
+ }
6385
+
6386
+ :is(.dndev-tag .dndev-tag-remove):focus-visible {
6387
+ outline: 2px solid var(--ring);
6388
+ }
6389
+
6390
+ .dndev-tag .dndev-tag-remove-icon {
6391
+ width: 10px;
6392
+ height: 10px;
6393
+ }
6394
+
6395
+ /* Sizes */
6396
+
6397
+ .dndev-tag-sm {
6398
+ padding: 0.125rem 0.5rem;
6399
+ font-size: var(--font-size-xs);
6400
+ height: 20px;
6401
+ }
6402
+
6403
+ .dndev-tag-md {
6404
+ padding: 0.25rem 0.75rem;
6405
+ font-size: var(--font-size-sm);
6406
+ height: 24px;
6407
+ }
6408
+
6409
+ .dndev-tag-lg {
6410
+ padding: 0.375rem 0.875rem;
6411
+ font-size: var(--font-size-base);
6412
+ height: 32px;
6413
+ }
6414
+
6415
+ /* Variants */
6416
+
6417
+ .dndev-tag-outline {
6418
+ background-color: transparent;
6419
+ border-color: var(--border);
6420
+ color: var(--foreground);
6421
+ }
6422
+
6423
+ .dndev-tag-accent {
6424
+ background-color: var(--accent);
6425
+ color: var(--accent-foreground);
6426
+ border-color: transparent;
6427
+ }
6428
+
6429
+ /* Interactive States */
6430
+
6431
+ .dndev-tag-interactive {
6432
+ cursor: pointer;
6433
+ -webkit-user-select: none;
6434
+ -moz-user-select: none;
6435
+ user-select: none;
6436
+ }
6437
+
6438
+ .dndev-tag-interactive:hover {
6439
+ opacity: 0.8;
6440
+ }
6441
+
6442
+ .dndev-tag-interactive:focus-visible {
6443
+ outline: 2px solid var(--ring);
6444
+ outline-offset: 2px;
6445
+ }
6446
+
6447
+ .dndev-tag-disabled {
6448
+ pointer-events: none;
6449
+ opacity: 0.5;
6450
+ }
6451
+
6452
+ .dndev-tag-sm .dndev-tag-remove-icon {
6453
+ width: 8px;
6454
+ height: 8px;
6455
+ }
6456
+
6457
+ .dndev-tag-lg .dndev-tag-remove-icon {
6458
+ width: 12px;
6459
+ height: 12px;
6460
+ }
6461
+
6139
6462
  /* packages/components/src/atomic/Text/Text.css */
6140
6463
 
6141
6464
  .dndev-text-base[data-text-align='start'] {
@@ -6157,7 +6480,7 @@ em {
6157
6480
  }
6158
6481
 
6159
6482
  .dndev-text-base[data-variant='default'] {
6160
- color: var(--foreground);
6483
+ color: inherit;
6161
6484
  }
6162
6485
 
6163
6486
  .dndev-text-base[data-variant='muted'] {
@@ -6217,7 +6540,6 @@ em {
6217
6540
  .dndev-text-base[data-level='h4'] {
6218
6541
  font-size: var(--font-size-base);
6219
6542
  font-weight: var(--font-weight-medium);
6220
- color: var(--muted-foreground);
6221
6543
  }
6222
6544
 
6223
6545
  .dndev-text-base[data-level='body'] {
@@ -6581,6 +6903,14 @@ em {
6581
6903
  display: block;
6582
6904
  }
6583
6905
 
6906
+ /* SVG placeholder - zero bytes, instant render */
6907
+
6908
+ .dndev-video-placeholder {
6909
+ width: 100%;
6910
+ height: 100%;
6911
+ display: block;
6912
+ }
6913
+
6584
6914
  /* Play button overlay */
6585
6915
 
6586
6916
  .dndev-video-play-overlay {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@donotdev/ui",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -53,14 +53,14 @@
53
53
  "react-hook-form": "^7.68.0"
54
54
  },
55
55
  "peerDependencies": {
56
- "@donotdev/adv-comps": "0.0.4",
57
- "@donotdev/auth": "0.0.4",
58
- "@donotdev/billing": "0.0.4",
59
- "@donotdev/components": "0.0.4",
60
- "@donotdev/core": "0.0.4",
61
- "@donotdev/crud": "0.0.4",
62
- "@donotdev/firebase": "0.0.4",
63
- "@donotdev/oauth": "0.0.4",
56
+ "@donotdev/adv-comps": "0.0.5",
57
+ "@donotdev/auth": "0.0.5",
58
+ "@donotdev/billing": "0.0.5",
59
+ "@donotdev/components": "0.0.5",
60
+ "@donotdev/core": "0.0.5",
61
+ "@donotdev/crud": "0.0.5",
62
+ "@donotdev/firebase": "0.0.5",
63
+ "@donotdev/oauth": "0.0.5",
64
64
  "firebase": "^12.5.0",
65
65
  "lucide-react": "^0.562.0",
66
66
  "react": "^19.2.3",