mado-ui 0.1.1 → 0.2.0

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/css/index.css CHANGED
@@ -346,6 +346,9 @@
346
346
  .inline-block {
347
347
  display: inline-block;
348
348
  }
349
+ .field-sizing-content {
350
+ field-sizing: content;
351
+ }
349
352
  .size-5 {
350
353
  width: calc(var(--spacing) * 5);
351
354
  height: calc(var(--spacing) * 5);
@@ -435,12 +438,18 @@
435
438
  .cursor-wait {
436
439
  cursor: wait;
437
440
  }
441
+ .resize-none {
442
+ resize: none;
443
+ }
438
444
  .list-inside {
439
445
  list-style-position: inside;
440
446
  }
441
447
  .list-disc {
442
448
  list-style-type: disc;
443
449
  }
450
+ .flex-wrap {
451
+ flex-wrap: wrap;
452
+ }
444
453
  .items-center {
445
454
  align-items: center;
446
455
  }
@@ -453,6 +462,9 @@
453
462
  .gap-3 {
454
463
  gap: calc(var(--spacing) * 3);
455
464
  }
465
+ .gap-4 {
466
+ gap: calc(var(--spacing) * 4);
467
+ }
456
468
  .gap-8 {
457
469
  gap: calc(var(--spacing) * 8);
458
470
  }
@@ -498,12 +510,6 @@
498
510
  border-style: var(--tw-border-style);
499
511
  border-width: 1px;
500
512
  }
501
- .border-neutral-50\/15 {
502
- border-color: color-mix(in srgb, oklch(98.5% 0 0) 15%, transparent);
503
- @supports (color: color-mix(in lab, red, red)) {
504
- border-color: color-mix(in oklab, var(--color-neutral-50) 15%, transparent);
505
- }
506
- }
507
513
  .border-neutral-500\/50 {
508
514
  border-color: color-mix(in srgb, oklch(55.6% 0 0) 50%, transparent);
509
515
  @supports (color: color-mix(in lab, red, red)) {
@@ -630,13 +636,6 @@
630
636
  --tw-gradient-from: currentcolor;
631
637
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
632
638
  }
633
- .from-neutral-900\/50 {
634
- --tw-gradient-from: color-mix(in srgb, oklch(20.5% 0 0) 50%, transparent);
635
- @supports (color: color-mix(in lab, red, red)) {
636
- --tw-gradient-from: color-mix(in oklab, var(--color-neutral-900) 50%, transparent);
637
- }
638
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
639
- }
640
639
  .from-ui-blue {
641
640
  --tw-gradient-from: var(--color-ui-blue);
642
641
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
@@ -789,14 +788,6 @@
789
788
  --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
790
789
  --tw-gradient-stops: var(--tw-gradient-via-stops);
791
790
  }
792
- .via-neutral-800\/50 {
793
- --tw-gradient-via: color-mix(in srgb, oklch(26.9% 0 0) 50%, transparent);
794
- @supports (color: color-mix(in lab, red, red)) {
795
- --tw-gradient-via: color-mix(in oklab, var(--color-neutral-800) 50%, transparent);
796
- }
797
- --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
798
- --tw-gradient-stops: var(--tw-gradient-via-stops);
799
- }
800
791
  .via-ui-blue {
801
792
  --tw-gradient-via: var(--color-ui-blue);
802
793
  --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
@@ -825,13 +816,6 @@
825
816
  --tw-gradient-to: currentcolor;
826
817
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
827
818
  }
828
- .to-neutral-700\/50 {
829
- --tw-gradient-to: color-mix(in srgb, oklch(37.1% 0 0) 50%, transparent);
830
- @supports (color: color-mix(in lab, red, red)) {
831
- --tw-gradient-to: color-mix(in oklab, var(--color-neutral-700) 50%, transparent);
832
- }
833
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
834
- }
835
819
  .to-ui-blue {
836
820
  --tw-gradient-to: var(--color-ui-blue);
837
821
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
@@ -1016,9 +1000,6 @@
1016
1000
  .bg-clip-text {
1017
1001
  background-clip: text;
1018
1002
  }
1019
- .\[background-position\:50\%_50\%\] {
1020
- background-position: 50% 50%;
1021
- }
1022
1003
  .bg-\[position\:0\%_100\%\] {
1023
1004
  background-position: 0% 100%;
1024
1005
  }
@@ -1046,9 +1027,6 @@
1046
1027
  .bg-\[position\:100\%_auto\] {
1047
1028
  background-position: 100% auto;
1048
1029
  }
1049
- .bg-\[position\:auto_100\%\] {
1050
- background-position: auto 100%;
1051
- }
1052
1030
  .bg-bottom-left {
1053
1031
  background-position: left bottom;
1054
1032
  }
@@ -1082,9 +1060,6 @@
1082
1060
  .px-2 {
1083
1061
  padding-inline: calc(var(--spacing) * 2);
1084
1062
  }
1085
- .px-3 {
1086
- padding-inline: calc(var(--spacing) * 3);
1087
- }
1088
1063
  .px-4 {
1089
1064
  padding-inline: calc(var(--spacing) * 4);
1090
1065
  }
@@ -1124,9 +1099,6 @@
1124
1099
  .py-12 {
1125
1100
  padding-block: calc(var(--spacing) * 12);
1126
1101
  }
1127
- .pt-2 {
1128
- padding-top: calc(var(--spacing) * 2);
1129
- }
1130
1102
  .pt-4 {
1131
1103
  padding-top: calc(var(--spacing) * 4);
1132
1104
  }
@@ -1160,9 +1132,6 @@
1160
1132
  .text-center {
1161
1133
  text-align: center;
1162
1134
  }
1163
- .font-mono {
1164
- font-family: var(--font-mono);
1165
- }
1166
1135
  .text-2xl {
1167
1136
  font-size: var(--text-2xl);
1168
1137
  line-height: var(--tw-leading, var(--text-2xl--line-height));
@@ -1203,9 +1172,6 @@
1203
1172
  font-size: var(--text-xs);
1204
1173
  line-height: var(--tw-leading, var(--text-xs--line-height));
1205
1174
  }
1206
- .text-\[size\:smaller\] {
1207
- font-size: smaller;
1208
- }
1209
1175
  .leading-6 {
1210
1176
  --tw-leading: calc(var(--spacing) * 6);
1211
1177
  line-height: calc(var(--spacing) * 6);
@@ -1303,9 +1269,6 @@
1303
1269
  .opacity-75 {
1304
1270
  opacity: 75%;
1305
1271
  }
1306
- .mix-blend-soft-light {
1307
- mix-blend-mode: soft-light;
1308
- }
1309
1272
  .shadow-2xl {
1310
1273
  --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
1311
1274
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -1314,10 +1277,6 @@
1314
1277
  --tw-shadow: 0 -15px 50px -12px var(--tw-shadow-color, currentcolor);
1315
1278
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1316
1279
  }
1317
- .shadow-inner {
1318
- --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
1319
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1320
- }
1321
1280
  .shadow-lg {
1322
1281
  --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1323
1282
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -1508,21 +1467,6 @@
1508
1467
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1509
1468
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1510
1469
  }
1511
- .transition-\[transform_background-color_box-shadow\] {
1512
- transition-property: transform background-color box-shadow;
1513
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1514
- transition-duration: var(--tw-duration, var(--default-transition-duration));
1515
- }
1516
- .transition-\[transform_background-color_color_box-shadow\] {
1517
- transition-property: transform background-color color box-shadow;
1518
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1519
- transition-duration: var(--tw-duration, var(--default-transition-duration));
1520
- }
1521
- .transition-\[transform_background-position\] {
1522
- transition-property: transform background-position;
1523
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1524
- transition-duration: var(--tw-duration, var(--default-transition-duration));
1525
- }
1526
1470
  .transition-\[transform_color\] {
1527
1471
  transition-property: transform color;
1528
1472
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -1776,12 +1720,6 @@
1776
1720
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1777
1721
  }
1778
1722
  }
1779
- .before\:text-white {
1780
- &::before {
1781
- content: var(--tw-content);
1782
- color: var(--color-white);
1783
- }
1784
- }
1785
1723
  .before\:opacity-75 {
1786
1724
  &::before {
1787
1725
  content: var(--tw-content);
@@ -2278,6 +2216,19 @@
2278
2216
  padding-bottom: calc(var(--spacing) * 0);
2279
2217
  }
2280
2218
  }
2219
+ .user-invalid\:border-ui-red {
2220
+ &:user-invalid {
2221
+ border-color: var(--color-ui-red);
2222
+ }
2223
+ }
2224
+ .user-invalid\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_20\%\,var\(--color-neutral-100\)\)\] {
2225
+ &:user-invalid {
2226
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 20%,oklch(97% 0 0));
2227
+ @supports (color: color-mix(in lab, red, red)) {
2228
+ background-color: color-mix(in oklab,var(--color-ui-red) 20%,var(--color-neutral-100));
2229
+ }
2230
+ }
2231
+ }
2281
2232
  .focus-visible\:scale-101 {
2282
2233
  &:focus-visible {
2283
2234
  --tw-scale-x: 101%;
@@ -2478,6 +2429,16 @@
2478
2429
  outline-width: 3px;
2479
2430
  }
2480
2431
  }
2432
+ .user-invalid\:focus-visible\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_1\%\,var\(--color-neutral-100\)\)\] {
2433
+ &:user-invalid {
2434
+ &:focus-visible {
2435
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 1%,oklch(97% 0 0));
2436
+ @supports (color: color-mix(in lab, red, red)) {
2437
+ background-color: color-mix(in oklab,var(--color-ui-red) 1%,var(--color-neutral-100));
2438
+ }
2439
+ }
2440
+ }
2441
+ }
2481
2442
  .active\:scale-95 {
2482
2443
  &:active {
2483
2444
  --tw-scale-x: 95%;
@@ -2672,11 +2633,6 @@
2672
2633
  background-size: auto 100%;
2673
2634
  }
2674
2635
  }
2675
- .active\:\[background-position\:50\%_75\%\] {
2676
- &:active {
2677
- background-position: 50% 75%;
2678
- }
2679
- }
2680
2636
  .active\:text-zinc-50 {
2681
2637
  &:active {
2682
2638
  color: var(--color-zinc-50);
@@ -2853,6 +2809,16 @@
2853
2809
  }
2854
2810
  }
2855
2811
  }
2812
+ .user-invalid\:active\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_25\%\,var\(--color-neutral-100\)\)\] {
2813
+ &:user-invalid {
2814
+ &:active {
2815
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 25%,oklch(97% 0 0));
2816
+ @supports (color: color-mix(in lab, red, red)) {
2817
+ background-color: color-mix(in oklab,var(--color-ui-red) 25%,var(--color-neutral-100));
2818
+ }
2819
+ }
2820
+ }
2821
+ }
2856
2822
  .data-closed\:scale-50 {
2857
2823
  &[data-closed] {
2858
2824
  --tw-scale-x: 50%;
@@ -4215,6 +4181,16 @@
4215
4181
  }
4216
4182
  }
4217
4183
  }
4184
+ .dark\:user-invalid\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_20\%\,var\(--color-neutral-800\)\)\] {
4185
+ @media (prefers-color-scheme: dark) {
4186
+ &:user-invalid {
4187
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 20%,oklch(26.9% 0 0));
4188
+ @supports (color: color-mix(in lab, red, red)) {
4189
+ background-color: color-mix(in oklab,var(--color-ui-red) 20%,var(--color-neutral-800));
4190
+ }
4191
+ }
4192
+ }
4193
+ }
4218
4194
  .dark\:focus-visible\:bg-neutral-600 {
4219
4195
  @media (prefers-color-scheme: dark) {
4220
4196
  &:focus-visible {
@@ -4238,6 +4214,18 @@
4238
4214
  }
4239
4215
  }
4240
4216
  }
4217
+ .dark\:user-invalid\:focus-visible\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_1\%\,var\(--color-neutral-800\)\)\] {
4218
+ @media (prefers-color-scheme: dark) {
4219
+ &:user-invalid {
4220
+ &:focus-visible {
4221
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 1%,oklch(26.9% 0 0));
4222
+ @supports (color: color-mix(in lab, red, red)) {
4223
+ background-color: color-mix(in oklab,var(--color-ui-red) 1%,var(--color-neutral-800));
4224
+ }
4225
+ }
4226
+ }
4227
+ }
4228
+ }
4241
4229
  .dark\:active\:bg-neutral-800 {
4242
4230
  @media (prefers-color-scheme: dark) {
4243
4231
  &:active {
@@ -4271,6 +4259,18 @@
4271
4259
  }
4272
4260
  }
4273
4261
  }
4262
+ .dark\:user-invalid\:active\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_25\%\,var\(--color-neutral-800\)\)\] {
4263
+ @media (prefers-color-scheme: dark) {
4264
+ &:user-invalid {
4265
+ &:active {
4266
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 25%,oklch(26.9% 0 0));
4267
+ @supports (color: color-mix(in lab, red, red)) {
4268
+ background-color: color-mix(in oklab,var(--color-ui-red) 25%,var(--color-neutral-800));
4269
+ }
4270
+ }
4271
+ }
4272
+ }
4273
+ }
4274
4274
  .dark\:contrast-more\:from-zinc-300 {
4275
4275
  @media (prefers-color-scheme: dark) {
4276
4276
  @media (prefers-contrast: more) {
@@ -4721,15 +4721,6 @@
4721
4721
  }
4722
4722
  }
4723
4723
  }
4724
- .pointer-fine\:hover\:\[background-position\:50\%_0\%\] {
4725
- @media (pointer: fine) {
4726
- &:hover {
4727
- @media (hover: hover) {
4728
- background-position: 50% 0%;
4729
- }
4730
- }
4731
- }
4732
- }
4733
4724
  .pointer-fine\:hover\:text-zinc-50 {
4734
4725
  @media (pointer: fine) {
4735
4726
  &:hover {
@@ -4984,6 +4975,32 @@
4984
4975
  }
4985
4976
  }
4986
4977
  }
4978
+ .user-invalid\:pointer-fine\:hover\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_10\%\,var\(--color-neutral-100\)\)\] {
4979
+ &:user-invalid {
4980
+ @media (pointer: fine) {
4981
+ &:hover {
4982
+ @media (hover: hover) {
4983
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 10%,oklch(97% 0 0));
4984
+ @supports (color: color-mix(in lab, red, red)) {
4985
+ background-color: color-mix(in oklab,var(--color-ui-red) 10%,var(--color-neutral-100));
4986
+ }
4987
+ }
4988
+ }
4989
+ }
4990
+ }
4991
+ }
4992
+ .user-invalid\:pointer-fine\:focus-visible\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_1\%\,var\(--color-neutral-100\)\)\] {
4993
+ &:user-invalid {
4994
+ @media (pointer: fine) {
4995
+ &:focus-visible {
4996
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 1%,oklch(97% 0 0));
4997
+ @supports (color: color-mix(in lab, red, red)) {
4998
+ background-color: color-mix(in oklab,var(--color-ui-red) 1%,var(--color-neutral-100));
4999
+ }
5000
+ }
5001
+ }
5002
+ }
5003
+ }
4987
5004
  .pointer-fine\:active\:scale-99 {
4988
5005
  @media (pointer: fine) {
4989
5006
  &:active {
@@ -5033,6 +5050,18 @@
5033
5050
  }
5034
5051
  }
5035
5052
  }
5053
+ .user-invalid\:pointer-fine\:active\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_25\%\,var\(--color-neutral-100\)\)\] {
5054
+ &:user-invalid {
5055
+ @media (pointer: fine) {
5056
+ &:active {
5057
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 25%,oklch(97% 0 0));
5058
+ @supports (color: color-mix(in lab, red, red)) {
5059
+ background-color: color-mix(in oklab,var(--color-ui-red) 25%,var(--color-neutral-100));
5060
+ }
5061
+ }
5062
+ }
5063
+ }
5064
+ }
5036
5065
  .pointer-fine\:hover\:contrast-more\:from-ui-blue {
5037
5066
  @media (pointer: fine) {
5038
5067
  &:hover {
@@ -5394,6 +5423,36 @@
5394
5423
  }
5395
5424
  }
5396
5425
  }
5426
+ .dark\:user-invalid\:pointer-fine\:hover\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_10\%\,var\(--color-neutral-800\)\)\] {
5427
+ @media (prefers-color-scheme: dark) {
5428
+ &:user-invalid {
5429
+ @media (pointer: fine) {
5430
+ &:hover {
5431
+ @media (hover: hover) {
5432
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 10%,oklch(26.9% 0 0));
5433
+ @supports (color: color-mix(in lab, red, red)) {
5434
+ background-color: color-mix(in oklab,var(--color-ui-red) 10%,var(--color-neutral-800));
5435
+ }
5436
+ }
5437
+ }
5438
+ }
5439
+ }
5440
+ }
5441
+ }
5442
+ .dark\:user-invalid\:pointer-fine\:focus-visible\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_1\%\,var\(--color-neutral-800\)\)\] {
5443
+ @media (prefers-color-scheme: dark) {
5444
+ &:user-invalid {
5445
+ @media (pointer: fine) {
5446
+ &:focus-visible {
5447
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 1%,oklch(26.9% 0 0));
5448
+ @supports (color: color-mix(in lab, red, red)) {
5449
+ background-color: color-mix(in oklab,var(--color-ui-red) 1%,var(--color-neutral-800));
5450
+ }
5451
+ }
5452
+ }
5453
+ }
5454
+ }
5455
+ }
5397
5456
  .dark\:pointer-fine\:active\:bg-neutral-800 {
5398
5457
  @media (prefers-color-scheme: dark) {
5399
5458
  @media (pointer: fine) {
@@ -5403,6 +5462,20 @@
5403
5462
  }
5404
5463
  }
5405
5464
  }
5465
+ .dark\:user-invalid\:pointer-fine\:active\:bg-\[color-mix\(in_oklab\,var\(--color-ui-red\)_25\%\,var\(--color-neutral-800\)\)\] {
5466
+ @media (prefers-color-scheme: dark) {
5467
+ &:user-invalid {
5468
+ @media (pointer: fine) {
5469
+ &:active {
5470
+ background-color: color-mix(in srgb,oklab(0.5656944011258305 0.17137043937370722 0.0983431730576434) 25%,oklch(26.9% 0 0));
5471
+ @supports (color: color-mix(in lab, red, red)) {
5472
+ background-color: color-mix(in oklab,var(--color-ui-red) 25%,var(--color-neutral-800));
5473
+ }
5474
+ }
5475
+ }
5476
+ }
5477
+ }
5478
+ }
5406
5479
  .dark\:pointer-fine\:hover\:contrast-more\:from-zinc-300 {
5407
5480
  @media (prefers-color-scheme: dark) {
5408
5481
  @media (pointer: fine) {
@@ -10,7 +10,7 @@ export type ButtonProps<T extends HTMLButtonElement | HTMLAnchorElement | unknow
10
10
  /** The size of the border-1 radius. */
11
11
  rounded?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
12
12
  /** Color theme. */
13
- theme?: 'blue' | 'blue-gradient' | 'brown' | 'brown-gradient' | 'green' | 'green-gradient' | 'grey' | 'grey-gradient' | 'sky-blue' | 'sky-blue-gradient' | 'magenta' | 'magenta-gradient' | 'neutral' | 'neutral-gradient' | 'orange' | 'orange-gradient' | 'pink' | 'pink-gradient' | 'primary' | 'primary-gradient' | 'primary-light' | 'purple' | 'purple-gradient' | 'red' | 'red-gradient' | 'violet' | 'violet-gradient' | 'yellow' | 'yellow-gradient';
13
+ theme?: 'blue' | 'blue-gradient' | 'brown' | 'brown-gradient' | 'green' | 'green-gradient' | 'grey' | 'grey-gradient' | 'sky-blue' | 'sky-blue-gradient' | 'magenta' | 'magenta-gradient' | 'neutral' | 'neutral-gradient' | 'orange' | 'orange-gradient' | 'pink' | 'pink-gradient' | 'purple' | 'purple-gradient' | 'red' | 'red-gradient' | 'violet' | 'violet-gradient' | 'yellow' | 'yellow-gradient';
14
14
  };
15
15
  import { AnchorProps } from './link';
16
16
  /**
@@ -27,4 +27,5 @@ import { FormContext, FormStatus } from '../../hooks';
27
27
  export default function Form<T extends ElementType = 'form'>({ controlled, initialStatus, ...props }: FormProps<T>): import("react/jsx-runtime").JSX.Element;
28
28
  import Input, { InputProps } from './input';
29
29
  import SubmitButton, { SubmitButtonProps } from './submit-button';
30
- export { Input, InputProps, SubmitButton, SubmitButtonProps };
30
+ import Textarea, { TextareaProps } from './textarea';
31
+ export { Input, InputProps, Textarea, TextareaProps, SubmitButton, SubmitButtonProps };
@@ -1,4 +1,4 @@
1
- import { HTMLInputTypeAttribute, RefObject } from 'react';
1
+ import { HTMLInputTypeAttribute, ReactNode, RefObject } from 'react';
2
2
  import { OneOf } from '../../../types';
3
3
  type PasswordOptionList = {
4
4
  matchPreviousInput: boolean;
@@ -17,13 +17,13 @@ type TypeOfPasswordOrNot = OneOf<[
17
17
  }
18
18
  ]>;
19
19
  export type InputProps = Omit<HeadlessInputProps, 'name' | 'type'> & TypeOfPasswordOrNot & {
20
- description?: string;
20
+ description?: ReactNode;
21
21
  descriptionProps?: Omit<DescriptionProps, 'children'> & {
22
22
  /** @deprecated Use the `description` prop instead. */
23
23
  children?: never;
24
24
  };
25
25
  fieldProps?: Omit<FieldProps, 'children' | 'disabled'>;
26
- label?: string;
26
+ label?: ReactNode;
27
27
  labelProps?: Omit<LabelProps, 'children'> & {
28
28
  /** @deprecated Use the `label` prop instead. */
29
29
  children?: never;
@@ -32,5 +32,5 @@ export type InputProps = Omit<HeadlessInputProps, 'name' | 'type'> & TypeOfPassw
32
32
  ref?: RefObject<HTMLInputElement | null>;
33
33
  };
34
34
  import { DescriptionProps, FieldProps, InputProps as HeadlessInputProps, LabelProps } from '@headlessui/react';
35
- export default function Input({ checked, className, defaultValue, description, descriptionProps, disabled, fieldProps, invalid, label, labelProps, name, onChange, placeholder, ref, required, type, value, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
35
+ export default function Input({ checked, className, defaultValue, description, descriptionProps, disabled, fieldProps, invalid, label, labelProps, name, onBlur, onChange, placeholder, ref, required, type, value, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
36
36
  export {};
@@ -17,4 +17,4 @@ export type SubmitButtonProps = ButtonProps<HTMLButtonElement> & {
17
17
  readonly?: ReactNode;
18
18
  };
19
19
  import { ButtonProps } from '../button';
20
- export default function SubmitButton({ children, className, 'aria-disabled': ariaDisabled, error, incomplete, loading, success, theme, type, ref, ...props }: SubmitButtonProps): import("react/jsx-runtime").JSX.Element;
20
+ export default function SubmitButton({ children, className, error, incomplete, loading, success, theme, type, ref, ...props }: SubmitButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ export type TextareaProps = Omit<HeadlessTextareaProps, 'name'> & {
3
+ description?: ReactNode;
4
+ descriptionProps?: Omit<DescriptionProps, 'children'> & {
5
+ /** @deprecated Use the `description` prop instead. */
6
+ children?: never;
7
+ };
8
+ fieldProps?: Omit<FieldProps, 'children' | 'disabled'>;
9
+ label?: ReactNode;
10
+ labelProps?: Omit<LabelProps, 'children'> & {
11
+ /** @deprecated Use the `label` prop instead. */
12
+ children?: never;
13
+ };
14
+ name: string;
15
+ ref?: RefObject<HTMLTextAreaElement | null>;
16
+ };
17
+ import { DescriptionProps, FieldProps, TextareaProps as HeadlessTextareaProps, LabelProps } from '@headlessui/react';
18
+ export default function Textarea({ className, defaultValue, description, descriptionProps, disabled, fieldProps, invalid, label, labelProps, name, onBlur, onChange, placeholder, ref, required, value, ...props }: TextareaProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,13 @@
1
1
  export type HeadingProps = HTMLAttributes<HTMLHeadingElement> & {
2
2
  as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
3
+ customize?: Partial<{
4
+ h1: string;
5
+ h2: string;
6
+ h3: string;
7
+ h4: string;
8
+ h5: string;
9
+ h6: string;
10
+ }>;
3
11
  ref?: RefObject<HTMLHeadingElement | null>;
4
12
  };
5
13
  import { HTMLAttributes, RefObject } from 'react';
@@ -8,4 +16,4 @@ import { HTMLAttributes, RefObject } from 'react';
8
16
  * A heading component that renders HTML heading elements (h1-h6) with appropriate styling.
9
17
  * Automatically generates an ID for the heading based on its content if none is provided.
10
18
  */
11
- export default function Heading({ as, children, className, id, ref, ...props }: HeadingProps): import("react/jsx-runtime").JSX.Element;
19
+ export default function Heading({ as, children, customize, className, id, ref, ...props }: HeadingProps): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import Button, { ButtonProps } from './button';
2
- import Form, { FormProps, FormSubmitArgs, Input, InputProps, SubmitButton, SubmitButtonProps } from './form';
2
+ import Form, { FormProps, FormSubmitArgs, Input, InputProps, SubmitButton, SubmitButtonProps, Textarea, TextareaProps } from './form';
3
3
  import Ghost from './ghost';
4
4
  import Heading, { HeadingProps } from './heading';
5
5
  import Link, { Anchor, AnchorProps, LinkProps } from './link';
6
6
  import Modal, { ModalDialog, ModalProps, ModalTrigger } from './modal';
7
7
  import Time from './time';
8
- export { Anchor, AnchorProps, Button, ButtonProps, Form, FormProps, FormSubmitArgs, Ghost, Heading, HeadingProps, Input, InputProps, Link, LinkProps, Modal, ModalDialog, ModalProps, ModalTrigger, SubmitButton, SubmitButtonProps, Time, };
8
+ export { Anchor, AnchorProps, Button, ButtonProps, Form, FormProps, FormSubmitArgs, Ghost, Heading, HeadingProps, Input, InputProps, Link, LinkProps, Modal, ModalDialog, ModalProps, ModalTrigger, SubmitButton, SubmitButtonProps, Textarea, TextareaProps, Time, };
@@ -1,24 +1,19 @@
1
- import { OneOf } from '../types';
2
- import { AnchorHTMLAttributes, RefObject } from 'react';
1
+ import { AnyElementProps, OneOf } from '../types';
2
+ import { AnchorHTMLAttributes, ElementType, RefObject } from 'react';
3
3
  export type AnchorProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
4
4
  disabled?: boolean;
5
5
  ref?: RefObject<HTMLAnchorElement | null>;
6
6
  };
7
7
  export declare function Anchor({ className, disabled, href, onClick, ref, target, rel, ...props }: AnchorProps): import("react/jsx-runtime").JSX.Element;
8
- export type LinkProps = AnchorProps & OneOf<[
8
+ export type LinkProps<T extends ElementType = typeof Anchor> = AnyElementProps<T, OneOf<[
9
9
  {
10
10
  type?: 'center' | 'lift' | 'ltr' | 'multiline' | 'multiline-center' | 'multiline-lift' | 'multiline-ltr' | 'multiline-rtl' | 'multiline-static' | 'normal' | 'rtl' | 'static';
11
11
  },
12
12
  {
13
13
  type?: 'fill' | 'fill-lift' | 'fill-ltr' | 'fill-rtl' | 'multiline-fill' | 'multiline-fill-center' | 'multiline-fill-ltr' | 'multiline-fill-lift' | 'multiline-fill-rtl';
14
- theme?: 'blue' | 'brown' | 'green' | 'grey' | 'sky-blue' | 'magenta' | 'neutral' | 'orange' | 'pink' | 'primary' | 'purple' | 'red' | 'violet' | 'yellow';
14
+ theme?: 'blue' | 'brown' | 'green' | 'grey' | 'sky-blue' | 'magenta' | 'neutral' | 'orange' | 'pink' | 'purple' | 'red' | 'violet' | 'yellow';
15
15
  }
16
- ]>;
17
- export declare const lineNormalClasses: string;
18
- export declare const lineLtrClasses: string;
19
- export declare const lineRtlClasses: string;
20
- export declare const lineCenterClasses: string;
21
- export declare const lineLiftClasses: string;
16
+ ]>>;
22
17
  /**
23
18
  * # Link
24
19
  *
@@ -48,4 +43,4 @@ export declare const lineLiftClasses: string;
48
43
  * @example
49
44
  * <Link href='/about' type='fill-ltr' theme='red' title='About Us'>Learn more about our company</Link>
50
45
  */
51
- export default function Link({ type, theme, className, ref, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;
46
+ export default function Link({ as, className, ref, theme, type, ...props }: LinkProps): import("react/jsx-runtime").JSX.Element;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
- import { Anchor, AnchorProps, Button, ButtonProps, Form, FormProps, FormSubmitArgs, Ghost, Heading, HeadingProps, Input, InputProps, Link, LinkProps, Modal, ModalDialog, ModalProps, ModalTrigger, SubmitButton, SubmitButtonProps, Time } from './components';
1
+ import { Anchor, AnchorProps, Button, ButtonProps, Form, FormProps, FormSubmitArgs, Ghost, Heading, HeadingProps, Input, InputProps, Link, LinkProps, Modal, ModalDialog, ModalProps, ModalTrigger, SubmitButton, SubmitButtonProps, Textarea, TextareaProps, Time } from './components';
2
2
  import { defineField, Field, FieldType, FormContext, FormContextProvider, FormStatus, FormStatusProvider, useFormContext, useFormStatus } from './hooks';
3
- export { Anchor, AnchorProps, Button, ButtonProps, defineField, Field, FieldType, Form, FormProps, FormSubmitArgs, FormContext, FormContextProvider, FormStatus, FormStatusProvider, Ghost, Heading, HeadingProps, Input, InputProps, Link, LinkProps, Modal, ModalDialog, ModalProps, ModalTrigger, SubmitButton, SubmitButtonProps, Time, useFormContext, useFormStatus, };
3
+ import { Airplane, ArrowTriangle2CirclepathCircle, ArrowTriangle2CirclepathCircleFill, BagFill, Banknote, BellFill, BoltCar, BoltFill, BoltRingClosed, BoltTrianglebadgeExclamationmark, BookFill, BookmarkFill, BriefcaseFill, BubbleLeftFill, Building2Fill, Calendar, CameraFill, CarFill, CartFill, ChartBarDocHorizontal, Checkmark, CheckmarkSeal, ChevronCompactDown, ChevronDown, ChevronLeft, ChevronLeftForwardslashChevronRight, ChevronRight, ChevronUpChevronDown, CircleFill, ClockBadgeCheckmark, ClockFill, CloudFill, CubeFill, CurvePointLeft, DialHigh, DocFill, DocOnClipboard, DocOnDoc, DocOnDocFill, DocTextMagnifyingglass, DollarSign, EllipsisCircle, EllipsisCircleFill, Envelope, EnvelopeFill, Eye, ExclamationmarkOctagon, FigureWaterFitness, FlagFill, FlameFill, Folder, FolderFill, Gearshape, GearshapeFill, GiftFill, GlobeAmericasFill, House, HouseDeskclock, IPhoneHouse, LightbulbFill, LightbulbLed, ListBulletClipboardFill, LightRibbon, HareFill, HouseFill, Magnifyingglass, MapPinEllipse, MinusPlusBatteryblock, Network, NetworkShield, NewspaperFill, Number, PaperplaneFill, Person, PersonCropSquare, PersonFill, PersonFillQuestionmark, Phone, PhoneArrowUpRight, PhoneFill, PlayRectangleFill, Plus, Qrcode, RectanglePortraitAndArrowLeft, RectanglePortraitAndArrowLeftFill, Sensor, Signature, SolarPanel, SquareAndArrowDown, SquareAndArrowDownFill, SquareAndArrowUp, SquareAndArrowUpFill, SquareAndPencil, SquareAndPencilFill, TextBubble, ThreePeople, ThreeRectanglesDesktop, ThreeRectanglesDesktopFill, Trash, TrashFill, Tree, UmbrellaFill, Xmark } from './icons';
4
+ import { AcceptsRef, AnyElementProps, AsElement, MergeTypes, OneOf, OnlyFirst } from './types';
5
+ import { addClass, AdditionalmadoClassGroupIds, currentMonthName, currentWeekdayName, daysInMonth, easeOutExpo, emailRegex, extendMadoTailwindMerge, findComponentByType, firstOfMonth, formatPhoneNumber, getDate, getHours, getHoursIn12, getWeekdayName, getMilliseconds, getPreviousMonth, getMeridianFromHour, getMinutes, getMonth, getMonthIndexFromName, getMonthName, getNextMonth, getSeconds, getUserReadableDate, getUserReadableDateFromTimestampz, getYearsInRange, hasClass, isEmail, isPhoneNumber, MonthName, monthNamesList, removeClass, telRegex, toFullDateString, toggleClass, toLowerCase, twMerge, twSort, WeekdayName, weekdayNamesList } from './utils';
6
+ export { Airplane, ArrowTriangle2CirclepathCircle, ArrowTriangle2CirclepathCircleFill, BagFill, Banknote, BellFill, BoltCar, BoltFill, BoltRingClosed, BoltTrianglebadgeExclamationmark, BookFill, BookmarkFill, BriefcaseFill, BubbleLeftFill, Building2Fill, Calendar, CameraFill, CarFill, CartFill, ChartBarDocHorizontal, Checkmark, CheckmarkSeal, ChevronCompactDown, ChevronDown, ChevronLeft, ChevronLeftForwardslashChevronRight, ChevronRight, ChevronUpChevronDown, CircleFill, ClockBadgeCheckmark, ClockFill, CloudFill, CubeFill, CurvePointLeft, DialHigh, DocFill, DocOnClipboard, DocOnDoc, DocOnDocFill, DocTextMagnifyingglass, DollarSign, EllipsisCircle, EllipsisCircleFill, Envelope, EnvelopeFill, Eye, ExclamationmarkOctagon, FigureWaterFitness, FlagFill, FlameFill, Folder, FolderFill, Gearshape, GearshapeFill, GiftFill, GlobeAmericasFill, House, HouseDeskclock, IPhoneHouse, LightbulbFill, LightbulbLed, ListBulletClipboardFill, LightRibbon, HareFill, HouseFill, Magnifyingglass, MapPinEllipse, MinusPlusBatteryblock, Network, NetworkShield, NewspaperFill, Number, PaperplaneFill, Person, PersonCropSquare, PersonFill, PersonFillQuestionmark, Phone, PhoneArrowUpRight, PhoneFill, PlayRectangleFill, Plus, Qrcode, RectanglePortraitAndArrowLeft, RectanglePortraitAndArrowLeftFill, Sensor, Signature, SolarPanel, SquareAndArrowDown, SquareAndArrowDownFill, SquareAndArrowUp, SquareAndArrowUpFill, SquareAndPencil, SquareAndPencilFill, TextBubble, ThreePeople, ThreeRectanglesDesktop, ThreeRectanglesDesktopFill, Trash, TrashFill, Tree, UmbrellaFill, Xmark, AcceptsRef, addClass, AdditionalmadoClassGroupIds, Anchor, AnchorProps, AnyElementProps, AsElement, Button, ButtonProps, currentMonthName, currentWeekdayName, daysInMonth, defineField, easeOutExpo, emailRegex, extendMadoTailwindMerge, Field, FieldType, findComponentByType, firstOfMonth, Form, formatPhoneNumber, FormProps, FormSubmitArgs, FormContext, FormContextProvider, FormStatus, FormStatusProvider, getDate, getHours, getHoursIn12, getWeekdayName, getMilliseconds, getPreviousMonth, getMeridianFromHour, getMinutes, getMonth, getMonthIndexFromName, getMonthName, getNextMonth, getSeconds, getUserReadableDate, getUserReadableDateFromTimestampz, getYearsInRange, Ghost, hasClass, Heading, HeadingProps, Input, InputProps, isEmail, isPhoneNumber, Link, LinkProps, MergeTypes, Modal, ModalDialog, ModalProps, ModalTrigger, MonthName, monthNamesList, OneOf, OnlyFirst, removeClass, SubmitButton, SubmitButtonProps, telRegex, Textarea, TextareaProps, Time, toFullDateString, toggleClass, toLowerCase, twMerge, twSort, useFormContext, useFormStatus, WeekdayName, weekdayNamesList, };