@ryanhelsing/ry-ui 1.0.4 → 1.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.
@@ -290,7 +290,7 @@ ry {
290
290
  ry-toggle-button, ry-knob, ry-slider, ry-number-select, ry-color-picker, ry-color-input,
291
291
  ry-gradient-picker, ry-tree, ry-tree-item,
292
292
  ry-tag, ry-tag-input, ry-hero, ry-stat, ry-feature, ry-feature-grid,
293
- ry-pricing, ry-pricing-card, ry-carousel) {
293
+ ry-pricing, ry-pricing-card, ry-carousel, ry-combobox) {
294
294
  box-sizing: border-box;
295
295
  }
296
296
 
@@ -675,20 +675,13 @@ ry-button[icon][size="sm"]:empty {
675
675
 
676
676
  ry-button-group {
677
677
  display: inline-flex;
678
+ gap: 2px;
679
+ padding: 2px;
680
+ border-radius: var(--ry-radius-md, 0.375rem);
678
681
  }
679
682
 
680
683
  ry-button-group > :is(ry-button, ry-toggle-button) {
681
- border-radius: 0;
682
- }
683
-
684
- ry-button-group > :is(ry-button, ry-toggle-button):first-child {
685
- border-start-start-radius: var(--ry-radius-md, 0.375rem);
686
- border-end-start-radius: var(--ry-radius-md, 0.375rem);
687
- }
688
-
689
- ry-button-group > :is(ry-button, ry-toggle-button):last-child {
690
- border-start-end-radius: var(--ry-radius-md, 0.375rem);
691
- border-end-end-radius: var(--ry-radius-md, 0.375rem);
684
+ border-radius: calc(var(--ry-radius-md, 0.375rem) - 2px);
692
685
  }
693
686
 
694
687
  /* ═══════════════════════════════════════════════════════════════
@@ -1065,6 +1058,23 @@ ry-card {
1065
1058
  display: block;
1066
1059
  padding: var(--ry-space-6, 1.5rem);
1067
1060
  container-type: inline-size;
1061
+ transition: transform var(--ry-duration-fast, 100ms) var(--ry-ease, ease);
1062
+ }
1063
+
1064
+ ry-card:hover {
1065
+ transform: translateY(-2px);
1066
+ }
1067
+
1068
+ ry-card[interactive] {
1069
+ cursor: pointer;
1070
+ }
1071
+
1072
+ ry-card[interactive]:hover {
1073
+ transform: translateY(-3px);
1074
+ }
1075
+
1076
+ ry-card[interactive]:active {
1077
+ transform: translateY(0);
1068
1078
  }
1069
1079
 
1070
1080
  ry-card h3 {
@@ -3049,6 +3059,126 @@ ry-carousel [data-ry-target="dot"] {
3049
3059
  cursor: pointer;
3050
3060
  }
3051
3061
 
3062
+ /* ═══════════════════════════════════════════════════════════════
3063
+ COMBOBOX
3064
+ ═══════════════════════════════════════════════════════════════ */
3065
+
3066
+ ry-combobox {
3067
+ position: relative;
3068
+ display: inline-block;
3069
+ min-width: 12rem;
3070
+ }
3071
+
3072
+ ry-combobox[disabled] {
3073
+ cursor: not-allowed;
3074
+ }
3075
+
3076
+ ry-combobox [data-ry-target="input-wrapper"] {
3077
+ display: flex;
3078
+ align-items: center;
3079
+ gap: var(--ry-space-2, 0.5rem);
3080
+ width: 100%;
3081
+ }
3082
+
3083
+ ry-combobox [data-ry-target="input"] {
3084
+ flex: 1;
3085
+ width: 100%;
3086
+ min-width: 0;
3087
+ padding: var(--ry-space-2, 0.5rem) var(--ry-space-3, 0.75rem);
3088
+ border: none;
3089
+ outline: none;
3090
+ background: transparent;
3091
+ }
3092
+
3093
+ ry-combobox [data-ry-target="arrow"] {
3094
+ flex-shrink: 0;
3095
+ padding-inline-end: var(--ry-space-2, 0.5rem);
3096
+ cursor: pointer;
3097
+ transition: transform var(--ry-duration-fast, 100ms) var(--ry-ease, ease);
3098
+ }
3099
+
3100
+ ry-combobox[data-ry-state="open"] [data-ry-target="arrow"] {
3101
+ transform: rotate(180deg);
3102
+ }
3103
+
3104
+ ry-combobox [data-ry-target="dropdown"] {
3105
+ position: absolute;
3106
+ top: 100%;
3107
+ left: 0;
3108
+ right: 0;
3109
+ z-index: var(--ry-z-dropdown, 1000);
3110
+ margin-block-start: var(--ry-space-1, 0.25rem);
3111
+ padding: var(--ry-space-1, 0.25rem);
3112
+ max-height: 15rem;
3113
+ overflow-y: auto;
3114
+ overscroll-behavior: contain;
3115
+ opacity: 0;
3116
+ visibility: hidden;
3117
+ transform: translateY(-0.5rem);
3118
+ transition: opacity var(--ry-duration-fast, 100ms) var(--ry-ease, ease),
3119
+ visibility var(--ry-duration-fast, 100ms) var(--ry-ease, ease),
3120
+ transform var(--ry-duration-fast, 100ms) var(--ry-ease, ease);
3121
+ transition-behavior: allow-discrete;
3122
+ }
3123
+
3124
+ ry-combobox[data-ry-state="open"] [data-ry-target="dropdown"] {
3125
+ opacity: 1;
3126
+ visibility: visible;
3127
+ transform: translateY(0);
3128
+ }
3129
+
3130
+ @starting-style {
3131
+ ry-combobox[data-ry-state="open"] [data-ry-target="dropdown"] {
3132
+ opacity: 0;
3133
+ transform: translateY(-0.5rem);
3134
+ }
3135
+ }
3136
+
3137
+ ry-combobox[data-ry-position="top"] [data-ry-target="dropdown"] {
3138
+ top: auto;
3139
+ bottom: 100%;
3140
+ margin-block-start: 0;
3141
+ margin-block-end: var(--ry-space-1, 0.25rem);
3142
+ transform: translateY(0.5rem);
3143
+ }
3144
+
3145
+ ry-combobox[data-ry-position="top"][data-ry-state="open"] [data-ry-target="dropdown"] {
3146
+ transform: translateY(0);
3147
+ }
3148
+
3149
+ ry-combobox [data-ry-target="option"] {
3150
+ padding: var(--ry-space-2, 0.5rem) var(--ry-space-3, 0.75rem);
3151
+ cursor: pointer;
3152
+ }
3153
+
3154
+ ry-combobox [data-ry-target="option"][hidden] {
3155
+ display: none;
3156
+ }
3157
+
3158
+ ry-combobox [data-ry-target="option"][data-disabled] {
3159
+ cursor: not-allowed;
3160
+ }
3161
+
3162
+ ry-combobox [data-ry-target="empty"] {
3163
+ padding: var(--ry-space-3, 0.75rem);
3164
+ text-align: center;
3165
+ }
3166
+
3167
+ ry-combobox [data-ry-target="empty"][hidden] {
3168
+ display: none;
3169
+ }
3170
+
3171
+ ry-combobox [data-ry-target="native"] {
3172
+ position: absolute;
3173
+ width: 1px;
3174
+ height: 1px;
3175
+ margin: -1px;
3176
+ padding: 0;
3177
+ overflow: hidden;
3178
+ clip: rect(0, 0, 0, 0);
3179
+ border: 0;
3180
+ }
3181
+
3052
3182
  } /* @layer ry-structure */
3053
3183
 
3054
3184
  /**
@@ -3281,23 +3411,18 @@ ry-split [data-ry-target="handle"]:focus-visible::after {
3281
3411
  BUTTON GROUP
3282
3412
  ═══════════════════════════════════════════════════════════════ */
3283
3413
 
3284
- ry-button-group > :is(ry-button, ry-toggle-button) {
3285
- border-color: var(--ry-color-border);
3414
+ ry-button-group {
3415
+ background-color: var(--ry-color-bg-muted);
3286
3416
  }
3287
3417
 
3288
- ry-button-group > :is(ry-button, ry-toggle-button):not(:first-child) {
3289
- border-inline-start-color: transparent;
3418
+ ry-button-group > :is(ry-button, ry-toggle-button) {
3419
+ border-color: transparent;
3420
+ background-color: transparent;
3421
+ color: var(--ry-color-text-muted);
3290
3422
  }
3291
3423
 
3292
- /* Default children to outline style for segmented look */
3293
- ry-button-group:not([variant]) > :is(ry-button, ry-toggle-button):not([pressed]) {
3294
- background-color: var(--ry-color-bg);
3424
+ ry-button-group > :is(ry-button, ry-toggle-button):hover:not([pressed]) {
3295
3425
  color: var(--ry-color-text);
3296
- border-color: var(--ry-color-border);
3297
- }
3298
-
3299
- ry-button-group:not([variant]) > :is(ry-button, ry-toggle-button):not([pressed]):hover {
3300
- background-color: var(--ry-color-bg-muted);
3301
3426
  }
3302
3427
 
3303
3428
  /* Button sizes (typography only - padding is structural) */
@@ -3733,6 +3858,18 @@ ry-card {
3733
3858
  border: var(--ry-border-width) solid var(--ry-color-border);
3734
3859
  border-radius: var(--ry-radius-lg);
3735
3860
  box-shadow: var(--ry-shadow-sm);
3861
+ transition: border-color var(--ry-duration-fast) var(--ry-ease),
3862
+ box-shadow var(--ry-duration-fast) var(--ry-ease);
3863
+ }
3864
+
3865
+ ry-card:hover {
3866
+ border-color: var(--ry-color-border-strong);
3867
+ box-shadow: var(--ry-shadow-md);
3868
+ }
3869
+
3870
+ ry-card[interactive]:hover {
3871
+ border-color: var(--ry-color-primary);
3872
+ box-shadow: var(--ry-shadow-lg);
3736
3873
  }
3737
3874
 
3738
3875
  ry-card h3 {
@@ -5249,4 +5386,86 @@ ry-pricing-card ul li:last-child {
5249
5386
  font-weight: var(--ry-font-bold);
5250
5387
  }
5251
5388
 
5389
+ /* ═══════════════════════════════════════════════════════════════
5390
+ COMBOBOX
5391
+ ═══════════════════════════════════════════════════════════════ */
5392
+
5393
+ ry-combobox[disabled] {
5394
+ opacity: 0.5;
5395
+ }
5396
+
5397
+ .ry-combobox__input-wrapper {
5398
+ font-family: var(--ry-font-sans);
5399
+ font-size: var(--ry-text-base);
5400
+ line-height: var(--ry-leading-normal);
5401
+ background-color: var(--ry-color-bg);
5402
+ border: var(--ry-border-width) solid var(--ry-color-border);
5403
+ border-radius: var(--ry-radius-md);
5404
+ transition: border-color var(--ry-duration-fast) var(--ry-ease),
5405
+ box-shadow var(--ry-duration-fast) var(--ry-ease);
5406
+ }
5407
+
5408
+ ry-combobox:hover .ry-combobox__input-wrapper {
5409
+ border-color: var(--ry-color-border-strong);
5410
+ }
5411
+
5412
+ ry-combobox:focus-within .ry-combobox__input-wrapper {
5413
+ border-color: var(--ry-color-primary);
5414
+ box-shadow: var(--ry-focus-ring);
5415
+ }
5416
+
5417
+ ry-combobox[data-ry-state="open"] .ry-combobox__input-wrapper {
5418
+ border-color: var(--ry-color-primary);
5419
+ }
5420
+
5421
+ .ry-combobox__input {
5422
+ font: inherit;
5423
+ color: var(--ry-color-text);
5424
+ }
5425
+
5426
+ .ry-combobox__input::placeholder {
5427
+ color: var(--ry-color-text-muted);
5428
+ }
5429
+
5430
+ .ry-combobox__arrow {
5431
+ font-size: var(--ry-text-xs);
5432
+ color: var(--ry-color-text-muted);
5433
+ }
5434
+
5435
+ .ry-combobox__dropdown {
5436
+ background-color: var(--ry-color-bg);
5437
+ border: var(--ry-border-width) solid var(--ry-color-border);
5438
+ border-radius: var(--ry-radius-lg);
5439
+ box-shadow: var(--ry-shadow-lg);
5440
+ }
5441
+
5442
+ .ry-combobox__option {
5443
+ font-size: var(--ry-text-sm);
5444
+ color: var(--ry-color-text);
5445
+ border-radius: var(--ry-radius-md);
5446
+ transition: background-color var(--ry-duration-fast) var(--ry-ease);
5447
+ }
5448
+
5449
+ .ry-combobox__option:is(:hover, [data-highlighted]) {
5450
+ background-color: var(--ry-color-bg-muted);
5451
+ }
5452
+
5453
+ .ry-combobox__option[aria-selected="true"] {
5454
+ background-color: var(--ry-color-primary);
5455
+ color: var(--ry-color-text-inverse);
5456
+ }
5457
+
5458
+ .ry-combobox__option[data-disabled] {
5459
+ opacity: 0.5;
5460
+ }
5461
+
5462
+ .ry-combobox__option[data-disabled]:hover {
5463
+ background-color: transparent;
5464
+ }
5465
+
5466
+ .ry-combobox__empty {
5467
+ font-size: var(--ry-text-sm);
5468
+ color: var(--ry-color-text-muted);
5469
+ }
5470
+
5252
5471
  } /* @layer ry-theme */
package/dist/ry-ui.d.ts CHANGED
@@ -30,6 +30,7 @@ export { RyButton } from './components/ry-button.js';
30
30
  export { RyButtonGroup } from './components/ry-button-group.js';
31
31
  export { RySplit } from './components/ry-split.js';
32
32
  export { RyThemeToggle } from './components/ry-theme-toggle.js';
33
+ export { RyCard } from './components/ry-card.js';
33
34
  export { RyAlert } from './components/ry-alert.js';
34
35
  export { RyField } from './components/ry-field.js';
35
36
  export { RySwitch } from './components/ry-switch.js';
@@ -37,6 +38,7 @@ export { RyTooltip } from './components/ry-tooltip.js';
37
38
  export { RyDrawer } from './components/ry-drawer.js';
38
39
  export { RyToast } from './components/ry-toast.js';
39
40
  export { RySelect } from './components/ry-select.js';
41
+ export { RyCombobox } from './components/ry-combobox.js';
40
42
  export { RyCode } from './components/ry-code.js';
41
43
  export { RyExample } from './components/ry-example.js';
42
44
  export { RyIcon } from './components/ry-icon.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ry-ui.d.ts","sourceRoot":"","sources":["../src/ts/ry-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGxF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,EAAE,OAAO,QAAQ,CAAC;KAC1B;CACF"}
1
+ {"version":3,"file":"ry-ui.d.ts","sourceRoot":"","sources":["../src/ts/ry-ui.ts"],"names":[],"mappings":"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"}