@rovula/ui 0.1.18 → 0.1.21

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 (50) hide show
  1. package/dist/cjs/bundle.css +141 -17
  2. package/dist/cjs/bundle.js +3 -3
  3. package/dist/cjs/bundle.js.map +1 -1
  4. package/dist/cjs/types/components/DropdownMenu/DropdownMenu.stories.d.ts +29 -30
  5. package/dist/cjs/types/components/Form/Form.d.ts +2 -1
  6. package/dist/cjs/types/components/Form/Form.stories.d.ts +4 -0
  7. package/dist/cjs/types/components/ScrollArea/ScrollArea.d.ts +38 -0
  8. package/dist/cjs/types/components/ScrollArea/ScrollArea.stories.d.ts +301 -0
  9. package/dist/cjs/types/index.d.ts +1 -0
  10. package/dist/cjs/types/patterns/confirm-dialog/ConfirmDialog.d.ts +1 -0
  11. package/dist/cjs/types/patterns/confirm-dialog/ConfirmDialog.stories.d.ts +1 -0
  12. package/dist/components/DropdownMenu/DropdownMenu.js +7 -9
  13. package/dist/components/DropdownMenu/DropdownMenu.stories.js +79 -91
  14. package/dist/components/Form/Form.js +11 -4
  15. package/dist/components/Form/Form.stories.js +27 -0
  16. package/dist/components/ScrollArea/ScrollArea.js +50 -0
  17. package/dist/components/ScrollArea/ScrollArea.stories.js +56 -0
  18. package/dist/esm/bundle.css +141 -17
  19. package/dist/esm/bundle.js +3 -3
  20. package/dist/esm/bundle.js.map +1 -1
  21. package/dist/esm/types/components/DropdownMenu/DropdownMenu.stories.d.ts +29 -30
  22. package/dist/esm/types/components/Form/Form.d.ts +2 -1
  23. package/dist/esm/types/components/Form/Form.stories.d.ts +4 -0
  24. package/dist/esm/types/components/ScrollArea/ScrollArea.d.ts +38 -0
  25. package/dist/esm/types/components/ScrollArea/ScrollArea.stories.d.ts +301 -0
  26. package/dist/esm/types/index.d.ts +1 -0
  27. package/dist/esm/types/patterns/confirm-dialog/ConfirmDialog.d.ts +1 -0
  28. package/dist/esm/types/patterns/confirm-dialog/ConfirmDialog.stories.d.ts +1 -0
  29. package/dist/index.d.ts +42 -2
  30. package/dist/index.js +1 -0
  31. package/dist/patterns/confirm-dialog/ConfirmDialog.js +2 -2
  32. package/dist/patterns/form-dialog/FormDialog.js +1 -1
  33. package/dist/src/theme/global.css +196 -20
  34. package/package.json +1 -1
  35. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +482 -297
  36. package/src/components/DropdownMenu/DropdownMenu.tsx +7 -8
  37. package/src/components/Form/Form.stories.tsx +70 -0
  38. package/src/components/Form/Form.tsx +23 -0
  39. package/src/components/ScrollArea/ScrollArea.stories.tsx +229 -0
  40. package/src/components/ScrollArea/ScrollArea.tsx +72 -0
  41. package/src/index.ts +1 -0
  42. package/src/patterns/confirm-dialog/ConfirmDialog.tsx +4 -0
  43. package/src/patterns/form-dialog/FormDialog.tsx +5 -1
  44. package/src/theme/global.css +84 -11
  45. package/src/theme/themes/xspector/baseline.css +1 -0
  46. package/src/theme/themes/xspector/components/dropdown-menu.css +2 -2
  47. package/src/theme/themes/xspector/components/scrollbar.css +12 -0
  48. package/src/theme/tokens/baseline.css +2 -1
  49. package/src/theme/tokens/components/dropdown-menu.css +1 -1
  50. package/src/theme/tokens/components/scrollbar.css +18 -0
@@ -2964,7 +2964,7 @@
2964
2964
  --dropdown-menu-selected-text: var(--text-g-contrast-high);
2965
2965
  /* Disabled State */
2966
2966
  --dropdown-menu-disabled-bg: transparent;
2967
- --dropdown-menu-disabled-text: var(--state-disable-outline);
2967
+ --dropdown-menu-disabled-text: var(--state-disable-solid);
2968
2968
  /* ------------------------------------------------------------------ */
2969
2969
  /* Switch Component Tokens */
2970
2970
  /* ------------------------------------------------------------------ */
@@ -2987,6 +2987,19 @@
2987
2987
  /* Disabled State */
2988
2988
  --switch-disabled-color: rgb(from var(--state-disable-solid) r g b / 0.32);
2989
2989
  --switch-thumb-disabled-color: var(--state-disable-solid, #454f5b);
2990
+ /* ------------------------------------------------------------------ */
2991
+ /* Scrollbar Component Tokens */
2992
+ /* ------------------------------------------------------------------ */
2993
+ /* Thumb sizes (track width/height) */
2994
+ --scrollbar-m-thickness: 12px;
2995
+ --scrollbar-s-thickness: 6px;
2996
+ --scrollbar-xs-thickness: 2px;
2997
+ /* Track border — visible on M size only */
2998
+ --scrollbar-track-border-width: 1px;
2999
+ --scrollbar-track-border-color: rgba(158, 158, 158, 0.16);
3000
+ /* Thumb colours */
3001
+ --scrollbar-thumb-default-color: color-mix(in srgb, var(--text-g-contrast-low) 48%, transparent);
3002
+ --scrollbar-thumb-hover-color: color-mix(in srgb, var(--text-g-contrast-high) 48%, transparent);
2990
3003
  }
2991
3004
 
2992
3005
  /* TODO: remove this */
@@ -3550,6 +3563,35 @@ video {
3550
3563
 
3551
3564
  * {
3552
3565
  /* @apply border-border; */
3566
+ scrollbar-width: thin;
3567
+ scrollbar-color: var(--scrollbar-thumb-default-color) transparent;
3568
+ }
3569
+
3570
+ *::-webkit-scrollbar {
3571
+ width: var(--scrollbar-s-thickness);
3572
+ height: var(--scrollbar-s-thickness);
3573
+ background: transparent;
3574
+ }
3575
+
3576
+ *::-webkit-scrollbar-thumb {
3577
+ border-radius: 12px;
3578
+ background: var(--scrollbar-thumb-default-color);
3579
+ }
3580
+
3581
+ *::-webkit-scrollbar-thumb:hover {
3582
+ background: var(--scrollbar-thumb-hover-color);
3583
+ }
3584
+
3585
+ *::-webkit-scrollbar-track:vertical {
3586
+ border-left: var(--scrollbar-track-border-width) solid var(--scrollbar-track-border-color);
3587
+ }
3588
+
3589
+ *::-webkit-scrollbar-track:horizontal {
3590
+ border-top: var(--scrollbar-track-border-width) solid var(--scrollbar-track-border-color);
3591
+ }
3592
+
3593
+ *::-webkit-scrollbar-corner {
3594
+ background: transparent;
3553
3595
  }
3554
3596
 
3555
3597
  body {
@@ -3822,6 +3864,10 @@ input[type=number] {
3822
3864
  margin-bottom: 0.5rem;
3823
3865
  }
3824
3866
 
3867
+ .mb-4 {
3868
+ margin-bottom: 1rem;
3869
+ }
3870
+
3825
3871
  .ml-1 {
3826
3872
  margin-left: 0.25rem;
3827
3873
  }
@@ -3842,6 +3888,10 @@ input[type=number] {
3842
3888
  margin-left: auto;
3843
3889
  }
3844
3890
 
3891
+ .mr-1 {
3892
+ margin-right: 0.25rem;
3893
+ }
3894
+
3845
3895
  .mr-2 {
3846
3896
  margin-right: 0.5rem;
3847
3897
  }
@@ -4106,6 +4156,22 @@ input[type=number] {
4106
4156
  max-height: 15rem;
4107
4157
  }
4108
4158
 
4159
+ .max-h-\[\.\.\.\] {
4160
+ max-height: ...;
4161
+ }
4162
+
4163
+ .max-h-\[160px\] {
4164
+ max-height: 160px;
4165
+ }
4166
+
4167
+ .max-h-\[216px\] {
4168
+ max-height: 216px;
4169
+ }
4170
+
4171
+ .max-h-\[270px\] {
4172
+ max-height: 270px;
4173
+ }
4174
+
4109
4175
  .max-h-\[80vh\] {
4110
4176
  max-height: 80vh;
4111
4177
  }
@@ -4194,6 +4260,10 @@ input[type=number] {
4194
4260
  width: 200px;
4195
4261
  }
4196
4262
 
4263
+ .w-\[230px\] {
4264
+ width: 230px;
4265
+ }
4266
+
4197
4267
  .w-\[24px\] {
4198
4268
  width: 24px;
4199
4269
  }
@@ -4577,6 +4647,12 @@ input[type=number] {
4577
4647
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
4578
4648
  }
4579
4649
 
4650
+ .space-y-1 > :not([hidden]) ~ :not([hidden]) {
4651
+ --tw-space-y-reverse: 0;
4652
+ margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
4653
+ margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
4654
+ }
4655
+
4580
4656
  .space-y-2 > :not([hidden]) ~ :not([hidden]) {
4581
4657
  --tw-space-y-reverse: 0;
4582
4658
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
@@ -4627,6 +4703,14 @@ input[type=number] {
4627
4703
  overflow-y: auto;
4628
4704
  }
4629
4705
 
4706
+ .overflow-x-hidden {
4707
+ overflow-x: hidden;
4708
+ }
4709
+
4710
+ .overflow-y-hidden {
4711
+ overflow-y: hidden;
4712
+ }
4713
+
4630
4714
  .overflow-y-scroll {
4631
4715
  overflow-y: scroll;
4632
4716
  }
@@ -4864,6 +4948,10 @@ input[type=number] {
4864
4948
  border-color: color-mix(in srgb, var(--function-default-hover) calc(100% * var(--tw-border-opacity, 1)), transparent) !important;
4865
4949
  }
4866
4950
 
4951
+ .border-\[var\(--dropdown-menu-seperator-bg\)\] {
4952
+ border-color: var(--dropdown-menu-seperator-bg);
4953
+ }
4954
+
4867
4955
  .border-action-button-icon-active {
4868
4956
  --tw-border-opacity: 1;
4869
4957
  border-color: color-mix(in srgb, var(--action-button-icon-active-border) calc(100% * var(--tw-border-opacity, 1)), transparent);
@@ -5156,6 +5244,10 @@ input[type=number] {
5156
5244
  border-top-color: color-mix(in srgb, var(--state-secondary-default) calc(100% * var(--tw-border-opacity, 1)), transparent);
5157
5245
  }
5158
5246
 
5247
+ .\!bg-\[var\(--dropdown-menu-hover-bg\)\] {
5248
+ background-color: var(--dropdown-menu-hover-bg) !important;
5249
+ }
5250
+
5159
5251
  .\!bg-action-button-icon-active-hover {
5160
5252
  --tw-bg-opacity: 1 !important;
5161
5253
  background-color: color-mix(in srgb, var(--action-button-icon-active-hover-bg) calc(100% * var(--tw-bg-opacity, 1)), transparent) !important;
@@ -6989,6 +7081,10 @@ input[type=number] {
6989
7081
  stroke: color-mix(in srgb, var(--state-primary-default) calc(100% * 1), transparent);
6990
7082
  }
6991
7083
 
7084
+ .\!p-0 {
7085
+ padding: 0px !important;
7086
+ }
7087
+
6992
7088
  .p-0 {
6993
7089
  padding: 0px;
6994
7090
  }
@@ -6997,6 +7093,10 @@ input[type=number] {
6997
7093
  padding: 0.25rem;
6998
7094
  }
6999
7095
 
7096
+ .p-10 {
7097
+ padding: 2.5rem;
7098
+ }
7099
+
7000
7100
  .p-2 {
7001
7101
  padding: 0.5rem;
7002
7102
  }
@@ -7030,11 +7130,6 @@ input[type=number] {
7030
7130
  padding-right: 0.25rem;
7031
7131
  }
7032
7132
 
7033
- .px-2 {
7034
- padding-left: 0.5rem;
7035
- padding-right: 0.5rem;
7036
- }
7037
-
7038
7133
  .px-3 {
7039
7134
  padding-left: 0.75rem;
7040
7135
  padding-right: 0.75rem;
@@ -7201,6 +7296,10 @@ input[type=number] {
7201
7296
  padding-inline-start: 72px !important;
7202
7297
  }
7203
7298
 
7299
+ .pb-2 {
7300
+ padding-bottom: 0.5rem;
7301
+ }
7302
+
7204
7303
  .pe-\[30px\] {
7205
7304
  padding-inline-end: 30px;
7206
7305
  }
@@ -7840,6 +7939,11 @@ input[type=number] {
7840
7939
  color: color-mix(in srgb, var(--state-disable-outline) calc(100% * var(--tw-text-opacity, 1)), transparent);
7841
7940
  }
7842
7941
 
7942
+ .text-state-error-default {
7943
+ --tw-text-opacity: 1;
7944
+ color: color-mix(in srgb, var(--state-error-default) calc(100% * var(--tw-text-opacity, 1)), transparent);
7945
+ }
7946
+
7843
7947
  .text-state-primary-text-solid {
7844
7948
  --tw-text-opacity: 1;
7845
7949
  color: color-mix(in srgb, var(--state-primary-text-solid) calc(100% * var(--tw-text-opacity, 1)), transparent);
@@ -7850,6 +7954,11 @@ input[type=number] {
7850
7954
  color: color-mix(in srgb, var(--state-secondary-text-solid) calc(100% * var(--tw-text-opacity, 1)), transparent);
7851
7955
  }
7852
7956
 
7957
+ .text-state-success-default {
7958
+ --tw-text-opacity: 1;
7959
+ color: color-mix(in srgb, var(--state-success-default) calc(100% * var(--tw-text-opacity, 1)), transparent);
7960
+ }
7961
+
7853
7962
  .text-success {
7854
7963
  --tw-text-opacity: 1;
7855
7964
  color: color-mix(in srgb, var(--state-success-default) calc(100% * var(--tw-text-opacity, 1)), transparent);
@@ -7972,6 +8081,12 @@ input[type=number] {
7972
8081
  outline-style: solid;
7973
8082
  }
7974
8083
 
8084
+ .\!ring-0 {
8085
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;
8086
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;
8087
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) !important;
8088
+ }
8089
+
7975
8090
  .ring-0 {
7976
8091
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
7977
8092
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -8323,26 +8438,82 @@ input[type=number] {
8323
8438
  font-weight: var(--button-button-ms-weight, 700);
8324
8439
  }
8325
8440
 
8441
+ /* ------------------------------------------------------------------ */
8442
+
8443
+ /* Scrollbar utility — applies the design-system scrollbar style */
8444
+
8445
+ /* Default size: S (6px thumb, matches Figma Size=S) */
8446
+
8447
+ /* Usage: add `ui-scrollbar` + optional size modifier to any */
8448
+
8449
+ /* overflow-auto / overflow-y-auto / overflow-x-auto container. */
8450
+
8451
+ /* ------------------------------------------------------------------ */
8452
+
8453
+ /* --- Track --- */
8454
+
8326
8455
  .ui-scrollbar::-webkit-scrollbar {
8327
- height: 6px;
8328
- width: 6px;
8329
- background: rgba(0, 0, 0, 0.08);
8456
+ width: var(--scrollbar-s-thickness);
8457
+ height: var(--scrollbar-s-thickness);
8458
+ background: transparent;
8330
8459
  }
8331
8460
 
8461
+ /* --- Thumb --- */
8462
+
8332
8463
  .ui-scrollbar::-webkit-scrollbar-thumb {
8333
- border-radius: 6px;
8334
- background: rgba(121, 141, 150, 0.48);
8335
- width: 6px;
8464
+ border-radius: 12px;
8465
+ background: var(--scrollbar-thumb-default-color);
8336
8466
  }
8337
8467
 
8338
8468
  .ui-scrollbar::-webkit-scrollbar-thumb:hover {
8339
- background: rgba(251, 252, 253, 0.48);
8469
+ background: var(--scrollbar-thumb-hover-color);
8340
8470
  cursor: pointer;
8341
8471
  }
8342
8472
 
8473
+ /* --- Track border (vertical) --- */
8474
+
8475
+ .ui-scrollbar::-webkit-scrollbar-track:vertical {
8476
+ border-left: var(--scrollbar-track-border-width) solid var(--scrollbar-track-border-color);
8477
+ }
8478
+
8479
+ /* --- Track border (horizontal) --- */
8480
+
8481
+ .ui-scrollbar::-webkit-scrollbar-track:horizontal {
8482
+ border-top: var(--scrollbar-track-border-width) solid var(--scrollbar-track-border-color);
8483
+ }
8484
+
8343
8485
  .ui-scrollbar::-webkit-scrollbar-corner {
8344
- display: none;
8345
- /* background: transparent; */
8486
+ background: transparent;
8487
+ }
8488
+
8489
+ /* --- Size variants --- */
8490
+
8491
+ /* Size M — 12px */
8492
+
8493
+ .ui-scrollbar-m::-webkit-scrollbar {
8494
+ width: var(--scrollbar-m-thickness);
8495
+ height: var(--scrollbar-m-thickness);
8496
+ }
8497
+
8498
+ /* Size S — 6px (default, same as base .ui-scrollbar) */
8499
+
8500
+ .ui-scrollbar-s::-webkit-scrollbar {
8501
+ width: var(--scrollbar-s-thickness);
8502
+ height: var(--scrollbar-s-thickness);
8503
+ }
8504
+
8505
+ /* Size XS — 2px */
8506
+
8507
+ .ui-scrollbar-xs::-webkit-scrollbar {
8508
+ width: var(--scrollbar-xs-thickness);
8509
+ height: var(--scrollbar-xs-thickness);
8510
+ }
8511
+
8512
+ /* XS size has no track border */
8513
+
8514
+ .ui-scrollbar-xs::-webkit-scrollbar-track:vertical,
8515
+ .ui-scrollbar-xs::-webkit-scrollbar-track:horizontal {
8516
+ border: none;
8346
8517
  }
8347
8518
 
8348
8519
  .\[filter\:var\(--switch-thumb-filter\)\] {
@@ -8369,6 +8540,16 @@ input[type=number] {
8369
8540
  color: color-mix(in srgb, var(--input-disable-text) calc(100% * var(--tw-text-opacity, 1)), transparent);
8370
8541
  }
8371
8542
 
8543
+ .placeholder\:text-text-g-contrast-medium::-moz-placeholder {
8544
+ --tw-text-opacity: 1;
8545
+ color: color-mix(in srgb, var(--text-g-contrast-medium) calc(100% * var(--tw-text-opacity, 1)), transparent);
8546
+ }
8547
+
8548
+ .placeholder\:text-text-g-contrast-medium::placeholder {
8549
+ --tw-text-opacity: 1;
8550
+ color: color-mix(in srgb, var(--text-g-contrast-medium) calc(100% * var(--tw-text-opacity, 1)), transparent);
8551
+ }
8552
+
8372
8553
  .placeholder\:text-transparent::-moz-placeholder {
8373
8554
  color: transparent;
8374
8555
  }
@@ -9103,11 +9284,6 @@ input[type=number] {
9103
9284
  background-color: var(--dropdown-menu-hover-bg) !important;
9104
9285
  }
9105
9286
 
9106
- .focus\:bg-primary:focus {
9107
- --tw-bg-opacity: 1;
9108
- background-color: color-mix(in srgb, var(--state-primary-default) calc(100% * var(--tw-bg-opacity, 1)), transparent);
9109
- }
9110
-
9111
9287
  .focus\:pe-10:focus {
9112
9288
  padding-inline-end: 2.5rem;
9113
9289
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rovula/ui",
3
- "version": "0.1.18",
3
+ "version": "0.1.21",
4
4
  "main": "dist/cjs/bundle.js",
5
5
  "module": "dist/esm/bundle.js",
6
6
  "types": "dist/index.d.ts",