@donotdev/ui 0.0.4 → 0.0.6

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 {
@@ -2972,10 +2976,14 @@ em {
2972
2976
  flex-direction: column;
2973
2977
  gap: var(--gap-md);
2974
2978
  justify-content: center;
2975
-
2976
- /* Button contrast overrides */
2977
2979
  }
2978
2980
 
2981
+ .dndev-cta-actions .dndev-interactive {
2982
+ min-width: 150px;
2983
+ }
2984
+
2985
+ /* Button contrast overrides */
2986
+
2979
2987
  .dndev-cta-actions .dndev-interactive[data-variant='primary'] {
2980
2988
  background: var(--foreground);
2981
2989
  color: var(--background);
@@ -3038,11 +3046,12 @@ em {
3038
3046
  word-wrap: break-word;
3039
3047
  }
3040
3048
 
3041
- .dndev-card-subtitle {
3049
+ .dndev-surface .dndev-card-subtitle {
3042
3050
  margin-top: 0;
3043
3051
  margin-bottom: 0;
3044
3052
  min-width: 0;
3045
3053
  word-wrap: break-word;
3054
+ color: color-mix(in oklab, var(--card-foreground) 70%, transparent);
3046
3055
  }
3047
3056
 
3048
3057
  /* packages/components/src/atomic/Checkbox/Checkbox.css */
@@ -3133,6 +3142,203 @@ em {
3133
3142
  }
3134
3143
  }
3135
3144
 
3145
+ /* packages/components/src/atomic/Collapsible/Collapsible.css */
3146
+
3147
+ .dndev-collapsible {
3148
+ width: 100%;
3149
+ display: flex;
3150
+ flex-direction: column;
3151
+ }
3152
+
3153
+ .dndev-collapsible-content {
3154
+ overflow: hidden;
3155
+ width: 100%;
3156
+ }
3157
+
3158
+ .dndev-collapsible-content[data-state='open'] {
3159
+ animation: slideDown var(--dur-normal) var(--ease-in-out);
3160
+ }
3161
+
3162
+ .dndev-collapsible-content[data-state='closed'] {
3163
+ animation: slideUp var(--dur-normal) var(--ease-in-out);
3164
+ }
3165
+
3166
+ @keyframes slideDown {
3167
+ from {
3168
+ height: 0;
3169
+ }
3170
+ to {
3171
+ height: var(--radix-collapsible-content-height);
3172
+ }
3173
+ }
3174
+
3175
+ @keyframes slideUp {
3176
+ from {
3177
+ height: var(--radix-collapsible-content-height);
3178
+ }
3179
+ to {
3180
+ height: 0;
3181
+ }
3182
+ }
3183
+
3184
+ /* packages/components/src/atomic/Combobox/Combobox.css */
3185
+
3186
+ .dndev-combobox-trigger {
3187
+ display: flex;
3188
+ justify-content: space-between;
3189
+ align-items: center;
3190
+ width: 100%;
3191
+ text-align: left;
3192
+ }
3193
+
3194
+ .dndev-combobox-trigger button {
3195
+ display: flex;
3196
+ justify-content: space-between;
3197
+ align-items: center;
3198
+ width: 100%;
3199
+ }
3200
+
3201
+ .dndev-combobox-placeholder {
3202
+ opacity: var(--opacity-muted);
3203
+ }
3204
+
3205
+ .dndev-combobox-trigger-icons {
3206
+ display: flex;
3207
+ align-items: center;
3208
+ gap: var(--gap-tight);
3209
+ margin-inline-start: auto;
3210
+ }
3211
+
3212
+ .dndev-combobox-clear {
3213
+ display: flex;
3214
+ align-items: center;
3215
+ justify-content: center;
3216
+ cursor: pointer;
3217
+ opacity: var(--opacity-muted);
3218
+ transition: opacity var(--dur-fast) var(--ease-in-out);
3219
+ -webkit-user-select: none;
3220
+ -moz-user-select: none;
3221
+ user-select: none;
3222
+ }
3223
+
3224
+ .dndev-combobox-clear:hover,
3225
+ .dndev-combobox-clear:focus {
3226
+ opacity: 1;
3227
+ outline: none;
3228
+ }
3229
+
3230
+ .dndev-combobox-clear svg {
3231
+ width: var(--icon-sm);
3232
+ height: var(--icon-sm);
3233
+ }
3234
+
3235
+ .dndev-combobox-chevron {
3236
+ width: var(--icon-md);
3237
+ height: var(--icon-md);
3238
+ opacity: var(--opacity-muted);
3239
+ transition: transform var(--dur-fast) var(--ease-in-out);
3240
+ }
3241
+
3242
+ [data-state='open'] .dndev-combobox-chevron {
3243
+ transform: rotate(180deg);
3244
+ }
3245
+
3246
+ .dndev-combobox-loading-container {
3247
+ display: flex;
3248
+ align-items: center;
3249
+ gap: var(--gap-sm);
3250
+ }
3251
+
3252
+ .dndev-combobox-loading-spinner {
3253
+ width: var(--icon-md);
3254
+ height: var(--icon-md);
3255
+ border-radius: var(--radius-full);
3256
+ border: 2px solid currentColor;
3257
+ border-top-color: transparent;
3258
+ }
3259
+
3260
+ .dndev-combobox-content {
3261
+ width: var(--radix-popover-trigger-width);
3262
+ min-width: var(--radix-popover-trigger-width);
3263
+ max-height: 300px;
3264
+ display: flex;
3265
+ flex-direction: column;
3266
+ padding: 0;
3267
+ }
3268
+
3269
+ .dndev-combobox-search-container {
3270
+ padding: var(--gap-sm);
3271
+ border-bottom: var(--border-width) solid var(--line-2);
3272
+ }
3273
+
3274
+ .dndev-combobox-search-input {
3275
+ width: 100%;
3276
+ }
3277
+
3278
+ .dndev-combobox-list {
3279
+ overflow-y: auto;
3280
+ padding: var(--gap-tight);
3281
+ display: flex;
3282
+ flex-direction: column;
3283
+ gap: var(--gap-none);
3284
+ }
3285
+
3286
+ .dndev-combobox-option {
3287
+ all: unset;
3288
+ display: flex;
3289
+ align-items: center;
3290
+ justify-content: space-between;
3291
+ padding: var(--gap-sm) var(--gap-md);
3292
+ cursor: pointer;
3293
+ border-radius: var(--radius-interactive);
3294
+ transition: background-color var(--dur-fast) var(--ease-in-out);
3295
+ }
3296
+
3297
+ .dndev-combobox-option:disabled {
3298
+ opacity: var(--opacity-muted);
3299
+ cursor: not-allowed;
3300
+ }
3301
+
3302
+ .dndev-combobox-option-highlighted:not(:disabled) {
3303
+ background-color: var(--accent);
3304
+ opacity: var(--opacity-strong);
3305
+ }
3306
+
3307
+ .dndev-combobox-option-selected {
3308
+ font-weight: var(--font-weight-medium);
3309
+ }
3310
+
3311
+ .dndev-combobox-option-content {
3312
+ display: flex;
3313
+ flex-direction: column;
3314
+ gap: var(--gap-tight);
3315
+ flex: 1;
3316
+ }
3317
+
3318
+ .dndev-combobox-option-label {
3319
+ font-size: var(--font-size-sm);
3320
+ color: var(--foreground);
3321
+ }
3322
+
3323
+ .dndev-combobox-option-description {
3324
+ font-size: var(--font-size-xs);
3325
+ color: var(--muted-foreground);
3326
+ }
3327
+
3328
+ .dndev-combobox-option-check {
3329
+ width: var(--icon-md);
3330
+ height: var(--icon-md);
3331
+ color: currentColor;
3332
+ flex-shrink: 0;
3333
+ }
3334
+
3335
+ .dndev-combobox-empty {
3336
+ padding: var(--gap-lg) var(--gap-md);
3337
+ text-align: center;
3338
+ font-size: var(--font-size-sm);
3339
+ color: var(--muted-foreground);
3340
+ }
3341
+
3136
3342
  /* packages/components/src/atomic/DualCard/DualCard.css */
3137
3343
 
3138
3344
  .dndev-dual-card {
@@ -4248,6 +4454,10 @@ em {
4248
4454
  text-align: start; /* Always start-aligned, even when parent is centered */
4249
4455
  }
4250
4456
 
4457
+ .dndev-list[data-gap='none'] {
4458
+ gap: var(--gap-none);
4459
+ }
4460
+
4251
4461
  .dndev-list[data-gap='tight'] {
4252
4462
  gap: var(--gap-sm);
4253
4463
  }
@@ -4977,17 +5187,17 @@ em {
4977
5187
  margin-block-end: var(--gap-md);
4978
5188
  }
4979
5189
 
4980
- .dndev-section-full-width[data-text-align='start'] .dndev-section-content {
4981
- text-align: start;
4982
- }
5190
+ .dndev-section-full-width[data-text-align='start'] .dndev-section-title {
5191
+ text-align: start;
5192
+ }
4983
5193
 
4984
- .dndev-section-full-width[data-text-align='center'] .dndev-section-content {
4985
- text-align: center;
4986
- }
5194
+ .dndev-section-full-width[data-text-align='center'] .dndev-section-title {
5195
+ text-align: center;
5196
+ }
4987
5197
 
4988
- .dndev-section-full-width[data-text-align='end'] .dndev-section-content {
4989
- text-align: end;
4990
- }
5198
+ .dndev-section-full-width[data-text-align='end'] .dndev-section-title {
5199
+ text-align: end;
5200
+ }
4991
5201
 
4992
5202
  /* packages/components/src/atomic/Separator/Separator.css */
4993
5203
 
@@ -5839,7 +6049,7 @@ em {
5839
6049
  display: block;
5840
6050
  width: 1.25rem;
5841
6051
  height: 1.25rem;
5842
- background-color: var(--background);
6052
+ background-color: var(--foreground);
5843
6053
  border-radius: 9999px;
5844
6054
  box-shadow: var(--shadow-md);
5845
6055
  transition: transform var(--dur-normal) var(--ease-in-out);
@@ -6140,6 +6350,123 @@ em {
6140
6350
  display: none;
6141
6351
  }
6142
6352
 
6353
+ /* packages/components/src/atomic/Tag/Tag.css */
6354
+
6355
+ .dndev-tag {
6356
+ display: inline-flex;
6357
+ align-items: center;
6358
+ gap: var(--gap-xs);
6359
+ border-radius: var(--radius-full);
6360
+ border: 1px solid transparent;
6361
+ font-size: var(--font-size-sm);
6362
+ font-weight: 500;
6363
+ line-height: 1;
6364
+ white-space: nowrap;
6365
+ transition: all var(--dur-fast) var(--ease-in-out);
6366
+
6367
+ /* Default variant */
6368
+ background-color: var(--secondary);
6369
+ color: var(--secondary-foreground);
6370
+ }
6371
+
6372
+ .dndev-tag .dndev-tag-remove {
6373
+ display: inline-flex;
6374
+ align-items: center;
6375
+ justify-content: center;
6376
+ padding: 0;
6377
+ margin-left: 2px;
6378
+ background: transparent;
6379
+ border: none;
6380
+ cursor: pointer;
6381
+ color: inherit;
6382
+ opacity: 0.7;
6383
+ border-radius: 50%;
6384
+ width: 14px;
6385
+ height: 14px;
6386
+ transition: opacity var(--dur-fast);
6387
+ }
6388
+
6389
+ :is(.dndev-tag .dndev-tag-remove):hover {
6390
+ opacity: 1;
6391
+ background-color: rgba(0, 0, 0, 0.1);
6392
+ }
6393
+
6394
+ :is(.dndev-tag .dndev-tag-remove):focus-visible {
6395
+ outline: 2px solid var(--ring);
6396
+ }
6397
+
6398
+ .dndev-tag .dndev-tag-remove-icon {
6399
+ width: 10px;
6400
+ height: 10px;
6401
+ }
6402
+
6403
+ /* Sizes */
6404
+
6405
+ .dndev-tag-sm {
6406
+ padding: 0.125rem 0.5rem;
6407
+ font-size: var(--font-size-xs);
6408
+ height: 20px;
6409
+ }
6410
+
6411
+ .dndev-tag-md {
6412
+ padding: 0.25rem 0.75rem;
6413
+ font-size: var(--font-size-sm);
6414
+ height: 24px;
6415
+ }
6416
+
6417
+ .dndev-tag-lg {
6418
+ padding: 0.375rem 0.875rem;
6419
+ font-size: var(--font-size-base);
6420
+ height: 32px;
6421
+ }
6422
+
6423
+ /* Variants */
6424
+
6425
+ .dndev-tag-outline {
6426
+ background-color: transparent;
6427
+ border-color: var(--border);
6428
+ color: var(--foreground);
6429
+ }
6430
+
6431
+ .dndev-tag-accent {
6432
+ background-color: var(--accent);
6433
+ color: var(--accent-foreground);
6434
+ border-color: transparent;
6435
+ }
6436
+
6437
+ /* Interactive States */
6438
+
6439
+ .dndev-tag-interactive {
6440
+ cursor: pointer;
6441
+ -webkit-user-select: none;
6442
+ -moz-user-select: none;
6443
+ user-select: none;
6444
+ }
6445
+
6446
+ .dndev-tag-interactive:hover {
6447
+ opacity: 0.8;
6448
+ }
6449
+
6450
+ .dndev-tag-interactive:focus-visible {
6451
+ outline: 2px solid var(--ring);
6452
+ outline-offset: 2px;
6453
+ }
6454
+
6455
+ .dndev-tag-disabled {
6456
+ pointer-events: none;
6457
+ opacity: 0.5;
6458
+ }
6459
+
6460
+ .dndev-tag-sm .dndev-tag-remove-icon {
6461
+ width: 8px;
6462
+ height: 8px;
6463
+ }
6464
+
6465
+ .dndev-tag-lg .dndev-tag-remove-icon {
6466
+ width: 12px;
6467
+ height: 12px;
6468
+ }
6469
+
6143
6470
  /* packages/components/src/atomic/Text/Text.css */
6144
6471
 
6145
6472
  .dndev-text-base[data-text-align='start'] {
@@ -6161,7 +6488,7 @@ em {
6161
6488
  }
6162
6489
 
6163
6490
  .dndev-text-base[data-variant='default'] {
6164
- color: var(--foreground);
6491
+ color: inherit;
6165
6492
  }
6166
6493
 
6167
6494
  .dndev-text-base[data-variant='muted'] {
@@ -6221,7 +6548,6 @@ em {
6221
6548
  .dndev-text-base[data-level='h4'] {
6222
6549
  font-size: var(--font-size-base);
6223
6550
  font-weight: var(--font-weight-medium);
6224
- color: var(--muted-foreground);
6225
6551
  }
6226
6552
 
6227
6553
  .dndev-text-base[data-level='body'] {
@@ -6445,7 +6771,7 @@ em {
6445
6771
 
6446
6772
  .dndev-toggle-group .dndev-interactive {
6447
6773
  border: none;
6448
- border-radius: calc(var(--radius) - 2px);
6774
+ border-radius: var(--radius-interactive);
6449
6775
  background-color: transparent !important;
6450
6776
  min-height: auto;
6451
6777
  padding: var(--gap-sm) var(--gap-md);
@@ -6585,6 +6911,14 @@ em {
6585
6911
  display: block;
6586
6912
  }
6587
6913
 
6914
+ /* SVG placeholder - zero bytes, instant render */
6915
+
6916
+ .dndev-video-placeholder {
6917
+ width: 100%;
6918
+ height: 100%;
6919
+ display: block;
6920
+ }
6921
+
6588
6922
  /* Play button overlay */
6589
6923
 
6590
6924
  .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 {
@@ -2968,10 +2972,14 @@ em {
2968
2972
  flex-direction: column;
2969
2973
  gap: var(--gap-md);
2970
2974
  justify-content: center;
2971
-
2972
- /* Button contrast overrides */
2973
2975
  }
2974
2976
 
2977
+ .dndev-cta-actions .dndev-interactive {
2978
+ min-width: 150px;
2979
+ }
2980
+
2981
+ /* Button contrast overrides */
2982
+
2975
2983
  .dndev-cta-actions .dndev-interactive[data-variant='primary'] {
2976
2984
  background: var(--foreground);
2977
2985
  color: var(--background);
@@ -3034,11 +3042,12 @@ em {
3034
3042
  word-wrap: break-word;
3035
3043
  }
3036
3044
 
3037
- .dndev-card-subtitle {
3045
+ .dndev-surface .dndev-card-subtitle {
3038
3046
  margin-top: 0;
3039
3047
  margin-bottom: 0;
3040
3048
  min-width: 0;
3041
3049
  word-wrap: break-word;
3050
+ color: color-mix(in oklab, var(--card-foreground) 70%, transparent);
3042
3051
  }
3043
3052
 
3044
3053
  /* packages/components/src/atomic/Checkbox/Checkbox.css */
@@ -3129,6 +3138,203 @@ em {
3129
3138
  }
3130
3139
  }
3131
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
+
3132
3338
  /* packages/components/src/atomic/DualCard/DualCard.css */
3133
3339
 
3134
3340
  .dndev-dual-card {
@@ -4244,6 +4450,10 @@ em {
4244
4450
  text-align: start; /* Always start-aligned, even when parent is centered */
4245
4451
  }
4246
4452
 
4453
+ .dndev-list[data-gap='none'] {
4454
+ gap: var(--gap-none);
4455
+ }
4456
+
4247
4457
  .dndev-list[data-gap='tight'] {
4248
4458
  gap: var(--gap-sm);
4249
4459
  }
@@ -4973,17 +5183,17 @@ em {
4973
5183
  margin-block-end: var(--gap-md);
4974
5184
  }
4975
5185
 
4976
- .dndev-section-full-width[data-text-align='start'] .dndev-section-content {
4977
- text-align: start;
4978
- }
5186
+ .dndev-section-full-width[data-text-align='start'] .dndev-section-title {
5187
+ text-align: start;
5188
+ }
4979
5189
 
4980
- .dndev-section-full-width[data-text-align='center'] .dndev-section-content {
4981
- text-align: center;
4982
- }
5190
+ .dndev-section-full-width[data-text-align='center'] .dndev-section-title {
5191
+ text-align: center;
5192
+ }
4983
5193
 
4984
- .dndev-section-full-width[data-text-align='end'] .dndev-section-content {
4985
- text-align: end;
4986
- }
5194
+ .dndev-section-full-width[data-text-align='end'] .dndev-section-title {
5195
+ text-align: end;
5196
+ }
4987
5197
 
4988
5198
  /* packages/components/src/atomic/Separator/Separator.css */
4989
5199
 
@@ -5835,7 +6045,7 @@ em {
5835
6045
  display: block;
5836
6046
  width: 1.25rem;
5837
6047
  height: 1.25rem;
5838
- background-color: var(--background);
6048
+ background-color: var(--foreground);
5839
6049
  border-radius: 9999px;
5840
6050
  box-shadow: var(--shadow-md);
5841
6051
  transition: transform var(--dur-normal) var(--ease-in-out);
@@ -6136,6 +6346,123 @@ em {
6136
6346
  display: none;
6137
6347
  }
6138
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
+
6139
6466
  /* packages/components/src/atomic/Text/Text.css */
6140
6467
 
6141
6468
  .dndev-text-base[data-text-align='start'] {
@@ -6157,7 +6484,7 @@ em {
6157
6484
  }
6158
6485
 
6159
6486
  .dndev-text-base[data-variant='default'] {
6160
- color: var(--foreground);
6487
+ color: inherit;
6161
6488
  }
6162
6489
 
6163
6490
  .dndev-text-base[data-variant='muted'] {
@@ -6217,7 +6544,6 @@ em {
6217
6544
  .dndev-text-base[data-level='h4'] {
6218
6545
  font-size: var(--font-size-base);
6219
6546
  font-weight: var(--font-weight-medium);
6220
- color: var(--muted-foreground);
6221
6547
  }
6222
6548
 
6223
6549
  .dndev-text-base[data-level='body'] {
@@ -6441,7 +6767,7 @@ em {
6441
6767
 
6442
6768
  .dndev-toggle-group .dndev-interactive {
6443
6769
  border: none;
6444
- border-radius: calc(var(--radius) - 2px);
6770
+ border-radius: var(--radius-interactive);
6445
6771
  background-color: transparent !important;
6446
6772
  min-height: auto;
6447
6773
  padding: var(--gap-sm) var(--gap-md);
@@ -6581,6 +6907,14 @@ em {
6581
6907
  display: block;
6582
6908
  }
6583
6909
 
6910
+ /* SVG placeholder - zero bytes, instant render */
6911
+
6912
+ .dndev-video-placeholder {
6913
+ width: 100%;
6914
+ height: 100%;
6915
+ display: block;
6916
+ }
6917
+
6584
6918
  /* Play button overlay */
6585
6919
 
6586
6920
  .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.6",
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.6",
57
+ "@donotdev/auth": "0.0.6",
58
+ "@donotdev/billing": "0.0.6",
59
+ "@donotdev/components": "0.0.6",
60
+ "@donotdev/core": "0.0.6",
61
+ "@donotdev/crud": "0.0.6",
62
+ "@donotdev/firebase": "0.0.6",
63
+ "@donotdev/oauth": "0.0.6",
64
64
  "firebase": "^12.5.0",
65
65
  "lucide-react": "^0.562.0",
66
66
  "react": "^19.2.3",