@ropav/styles 0.4.0 → 0.6.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.
Files changed (181) hide show
  1. package/README.md +89 -5
  2. package/dist/components/accordion.css +6 -14
  3. package/dist/components/alert-dialog.css +1 -13
  4. package/dist/components/alert.css +1 -1
  5. package/dist/components/autocomplete/autocomplete.styles.d.ts +33 -0
  6. package/dist/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
  7. package/dist/components/autocomplete/autocomplete.styles.js +12 -0
  8. package/dist/components/autocomplete.css +54 -36
  9. package/dist/components/breadcrumbs.css +9 -2
  10. package/dist/components/button-group.css +6 -10
  11. package/dist/components/button.css +10 -18
  12. package/dist/components/calendar-year-picker.css +20 -8
  13. package/dist/components/calendar.css +46 -21
  14. package/dist/components/card.css +1 -1
  15. package/dist/components/checkbox.css +54 -56
  16. package/dist/components/chip.css +3 -1
  17. package/dist/components/close-button.css +7 -6
  18. package/dist/components/color-area.css +6 -6
  19. package/dist/components/color-input-group/color-input-group.styles.d.ts +27 -0
  20. package/dist/components/color-input-group/color-input-group.styles.d.ts.map +1 -1
  21. package/dist/components/color-input-group/color-input-group.styles.js +6 -0
  22. package/dist/components/color-input-group.css +31 -28
  23. package/dist/components/color-picker.css +1 -5
  24. package/dist/components/color-slider.css +14 -12
  25. package/dist/components/color-swatch-picker.css +2 -85
  26. package/dist/components/color-swatch.css +1 -1
  27. package/dist/components/combo-box/combo-box.styles.d.ts +27 -0
  28. package/dist/components/combo-box/combo-box.styles.d.ts.map +1 -1
  29. package/dist/components/combo-box/combo-box.styles.js +17 -7
  30. package/dist/components/combo-box.css +34 -4
  31. package/dist/components/date-input-group/date-input-group.styles.d.ts +27 -0
  32. package/dist/components/date-input-group/date-input-group.styles.d.ts.map +1 -1
  33. package/dist/components/date-input-group/date-input-group.styles.js +6 -0
  34. package/dist/components/date-input-group.css +55 -33
  35. package/dist/components/date-picker.css +1 -5
  36. package/dist/components/date-range-picker.css +1 -5
  37. package/dist/components/disclosure.css +0 -4
  38. package/dist/components/drawer.css +4 -8
  39. package/dist/components/drop-zone/drop-zone.styles.d.ts +34 -0
  40. package/dist/components/drop-zone/drop-zone.styles.d.ts.map +1 -0
  41. package/dist/components/drop-zone/drop-zone.styles.js +8 -0
  42. package/dist/components/drop-zone/index.d.ts +2 -0
  43. package/dist/components/drop-zone/index.d.ts.map +1 -0
  44. package/dist/components/drop-zone/index.js +2 -0
  45. package/dist/components/drop-zone.css +78 -0
  46. package/dist/components/dropdown.css +1 -5
  47. package/dist/components/error-message.css +0 -4
  48. package/dist/components/field-error.css +0 -4
  49. package/dist/components/index.css +5 -0
  50. package/dist/components/index.d.ts +5 -0
  51. package/dist/components/index.d.ts.map +1 -1
  52. package/dist/components/input/input.styles.d.ts +15 -0
  53. package/dist/components/input/input.styles.d.ts.map +1 -1
  54. package/dist/components/input/input.styles.js +6 -0
  55. package/dist/components/input-group/input-group.styles.d.ts +27 -0
  56. package/dist/components/input-group/input-group.styles.d.ts.map +1 -1
  57. package/dist/components/input-group/input-group.styles.js +6 -0
  58. package/dist/components/input-group.css +35 -38
  59. package/dist/components/input-otp.css +14 -26
  60. package/dist/components/input.css +23 -32
  61. package/dist/components/kbd.css +3 -1
  62. package/dist/components/label.css +7 -2
  63. package/dist/components/link.css +13 -11
  64. package/dist/components/list-box/list-box.styles.d.ts +15 -0
  65. package/dist/components/list-box/list-box.styles.d.ts.map +1 -1
  66. package/dist/components/list-box/list-box.styles.js +15 -5
  67. package/dist/components/list-box-item.css +8 -12
  68. package/dist/components/list-box.css +19 -0
  69. package/dist/components/menu/menu.styles.d.ts +19 -1
  70. package/dist/components/menu/menu.styles.d.ts.map +1 -1
  71. package/dist/components/menu/menu.styles.js +9 -1
  72. package/dist/components/menu-item.css +4 -10
  73. package/dist/components/menu.css +19 -0
  74. package/dist/components/meter.css +8 -16
  75. package/dist/components/modal.css +1 -13
  76. package/dist/components/number-field/number-field.styles.d.ts +27 -0
  77. package/dist/components/number-field/number-field.styles.d.ts.map +1 -1
  78. package/dist/components/number-field/number-field.styles.js +6 -0
  79. package/dist/components/number-field.css +83 -36
  80. package/dist/components/pagination.css +6 -10
  81. package/dist/components/popover.css +15 -5
  82. package/dist/components/progress-bar/progress-bar.styles.d.ts +36 -0
  83. package/dist/components/progress-bar/progress-bar.styles.d.ts.map +1 -1
  84. package/dist/components/progress-bar/progress-bar.styles.js +10 -0
  85. package/dist/components/progress-bar.css +82 -16
  86. package/dist/components/progress-circle.css +0 -4
  87. package/dist/components/radio.css +7 -9
  88. package/dist/components/range-calendar.css +73 -31
  89. package/dist/components/search-field/search-field.styles.d.ts +27 -0
  90. package/dist/components/search-field/search-field.styles.d.ts.map +1 -1
  91. package/dist/components/search-field/search-field.styles.js +6 -0
  92. package/dist/components/search-field.css +36 -29
  93. package/dist/components/segmented-control/index.d.ts +2 -0
  94. package/dist/components/segmented-control/index.d.ts.map +1 -0
  95. package/dist/components/segmented-control/index.js +2 -0
  96. package/dist/components/segmented-control/segmented-control.styles.d.ts +73 -0
  97. package/dist/components/segmented-control/segmented-control.styles.d.ts.map +1 -0
  98. package/dist/components/segmented-control/segmented-control.styles.js +27 -0
  99. package/dist/components/segmented-control.css +188 -0
  100. package/dist/components/select/select.styles.d.ts +33 -0
  101. package/dist/components/select/select.styles.d.ts.map +1 -1
  102. package/dist/components/select/select.styles.js +12 -0
  103. package/dist/components/select.css +47 -33
  104. package/dist/components/sidebar/index.d.ts +2 -0
  105. package/dist/components/sidebar/index.d.ts.map +1 -0
  106. package/dist/components/sidebar/index.js +2 -0
  107. package/dist/components/sidebar/sidebar.styles.d.ts +226 -0
  108. package/dist/components/sidebar/sidebar.styles.d.ts.map +1 -0
  109. package/dist/components/sidebar/sidebar.styles.js +65 -0
  110. package/dist/components/sidebar.css +604 -0
  111. package/dist/components/slider.css +10 -11
  112. package/dist/components/splitter/index.d.ts +2 -0
  113. package/dist/components/splitter/index.d.ts.map +1 -0
  114. package/dist/components/splitter/index.js +2 -0
  115. package/dist/components/splitter/splitter.styles.d.ts +61 -0
  116. package/dist/components/splitter/splitter.styles.d.ts.map +1 -0
  117. package/dist/components/splitter/splitter.styles.js +26 -0
  118. package/dist/components/splitter.css +249 -0
  119. package/dist/components/switch.css +16 -15
  120. package/dist/components/table.css +72 -30
  121. package/dist/components/tabs.css +9 -20
  122. package/dist/components/tag.css +32 -24
  123. package/dist/components/textarea/textarea.styles.d.ts +15 -0
  124. package/dist/components/textarea/textarea.styles.d.ts.map +1 -1
  125. package/dist/components/textarea/textarea.styles.js +6 -0
  126. package/dist/components/textarea.css +23 -32
  127. package/dist/components/toast.css +4 -2
  128. package/dist/components/toggle-button-group.css +7 -11
  129. package/dist/components/toggle-button.css +9 -17
  130. package/dist/components/toolbar.css +1 -1
  131. package/dist/components/tooltip.css +15 -6
  132. package/dist/components/typography.css +12 -4
  133. package/dist/components/virtualizer/index.d.ts +2 -0
  134. package/dist/components/virtualizer/index.d.ts.map +1 -0
  135. package/dist/components/virtualizer/index.js +2 -0
  136. package/dist/components/virtualizer/virtualizer.styles.d.ts +44 -0
  137. package/dist/components/virtualizer/virtualizer.styles.d.ts.map +1 -0
  138. package/dist/components/virtualizer/virtualizer.styles.js +15 -0
  139. package/dist/components/virtualizer.css +72 -0
  140. package/dist/index.js +6 -1
  141. package/dist/ropav.min.css +2 -2
  142. package/dist/themes/airbnb.css +11 -4
  143. package/dist/themes/all.css +1 -0
  144. package/dist/themes/coinbase.css +11 -4
  145. package/dist/themes/default.css +40 -8
  146. package/dist/themes/discord.css +11 -4
  147. package/dist/themes/hero.css +282 -0
  148. package/dist/themes/lavender.css +11 -4
  149. package/dist/themes/mint.css +11 -4
  150. package/dist/themes/netflix.css +11 -4
  151. package/dist/themes/rabbit.css +11 -4
  152. package/dist/themes/shared/theme.css +20 -2
  153. package/dist/themes/sky.css +11 -4
  154. package/dist/themes/spotify.css +11 -4
  155. package/dist/themes/uber.css +11 -4
  156. package/dist/utilities/index.css +27 -0
  157. package/package.json +1 -1
  158. package/src/components/autocomplete/autocomplete.styles.ts +12 -0
  159. package/src/components/color-input-group/color-input-group.styles.ts +10 -0
  160. package/src/components/combo-box/combo-box.styles.ts +12 -0
  161. package/src/components/date-input-group/date-input-group.styles.ts +10 -0
  162. package/src/components/drop-zone/drop-zone.styles.ts +12 -0
  163. package/src/components/drop-zone/index.ts +1 -0
  164. package/src/components/index.ts +5 -0
  165. package/src/components/input/input.styles.ts +6 -0
  166. package/src/components/input-group/input-group.styles.ts +10 -0
  167. package/src/components/list-box/list-box.styles.ts +6 -0
  168. package/src/components/menu/menu.styles.ts +10 -0
  169. package/src/components/number-field/number-field.styles.ts +10 -0
  170. package/src/components/progress-bar/progress-bar.styles.ts +14 -0
  171. package/src/components/search-field/search-field.styles.ts +10 -0
  172. package/src/components/segmented-control/index.ts +1 -0
  173. package/src/components/segmented-control/segmented-control.styles.ts +37 -0
  174. package/src/components/select/select.styles.ts +12 -0
  175. package/src/components/sidebar/index.ts +1 -0
  176. package/src/components/sidebar/sidebar.styles.ts +117 -0
  177. package/src/components/splitter/index.ts +1 -0
  178. package/src/components/splitter/splitter.styles.ts +44 -0
  179. package/src/components/textarea/textarea.styles.ts +6 -0
  180. package/src/components/virtualizer/index.ts +1 -0
  181. package/src/components/virtualizer/virtualizer.styles.ts +15 -0
@@ -9,10 +9,6 @@
9
9
  .drawer__trigger {
10
10
  @apply inline-block cursor-(--cursor-interactive);
11
11
 
12
- /**
13
- * Transitions
14
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
15
- */
16
12
  transition:
17
13
  transform 250ms var(--ease-out-quart),
18
14
  background-color 150ms var(--ease-smooth),
@@ -155,15 +151,15 @@
155
151
  &[data-placement="bottom"] {
156
152
  @apply w-full;
157
153
  @apply max-h-[85vh];
158
- border-start-start-radius: min(32px, var(--radius-2xl));
159
- border-start-end-radius: min(32px, var(--radius-2xl));
154
+ border-start-start-radius: min(32px, var(--component-radius));
155
+ border-start-end-radius: min(32px, var(--component-radius));
160
156
  }
161
157
 
162
158
  &[data-placement="top"] {
163
159
  @apply w-full;
164
160
  @apply max-h-[85vh];
165
- border-end-start-radius: min(32px, var(--radius-2xl));
166
- border-end-end-radius: min(32px, var(--radius-2xl));
161
+ border-end-start-radius: min(32px, var(--component-radius));
162
+ border-end-end-radius: min(32px, var(--component-radius));
167
163
  }
168
164
 
169
165
  /* Left/right placement: auto width, full height */
@@ -0,0 +1,34 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ export declare const dropZoneVariants: import("tailwind-variants").TVReturnType<{
3
+ [key: string]: {
4
+ [key: string]: {
5
+ base?: import("tailwind-variants").ClassValue;
6
+ trigger?: import("tailwind-variants").ClassValue;
7
+ } | import("tailwind-variants").ClassValue;
8
+ };
9
+ } | {
10
+ [x: string]: {
11
+ [x: string]: {
12
+ base?: import("tailwind-variants").ClassValue;
13
+ trigger?: import("tailwind-variants").ClassValue;
14
+ } | import("tailwind-variants").ClassValue;
15
+ };
16
+ } | {}, {
17
+ base: string;
18
+ trigger: string;
19
+ }, undefined, {
20
+ [key: string]: {
21
+ [key: string]: {
22
+ base?: import("tailwind-variants").ClassValue;
23
+ trigger?: import("tailwind-variants").ClassValue;
24
+ } | import("tailwind-variants").ClassValue;
25
+ };
26
+ } | {}, {
27
+ base: string;
28
+ trigger: string;
29
+ }, import("tailwind-variants").TVReturnTypeLike<unknown, {
30
+ base: string;
31
+ trigger: string;
32
+ }>>;
33
+ export type DropZoneVariants = VariantProps<typeof dropZoneVariants>;
34
+ //# sourceMappingURL=drop-zone.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drop-zone.styles.d.ts","sourceRoot":"","sources":["../../../src/components/drop-zone/drop-zone.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { tv } from "tailwind-variants";
2
+ //#region src/components/drop-zone/drop-zone.styles.ts
3
+ const dropZoneVariants = tv({ slots: {
4
+ base: "drop-zone",
5
+ trigger: "drop-zone__trigger"
6
+ } });
7
+ //#endregion
8
+ export { dropZoneVariants };
@@ -0,0 +1,2 @@
1
+ export * from "./drop-zone.styles";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/drop-zone/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { dropZoneVariants } from "./drop-zone.styles.js";
2
+ export { dropZoneVariants };
@@ -0,0 +1,78 @@
1
+ /* Drop zone component styles */
2
+
3
+ .drop-zone {
4
+ @apply relative flex w-full flex-col items-center justify-center gap-2 rounded-component p-6 text-center text-sm outline-none;
5
+
6
+ /* The dashed edge is this component's whole affordance, so it is painted from `--border`
7
+ * rather than `--field-border`: the default theme sets that to `transparent` with a width of
8
+ * `0`, which is right for an input sitting on a filled background and wrong for a region
9
+ * whose only boundary is the line itself. */
10
+ --drop-zone-border: var(--border);
11
+ --drop-zone-bg: transparent;
12
+ --drop-zone-fg: var(--muted);
13
+
14
+ border: var(--border-width) dashed var(--drop-zone-border);
15
+ background-color: var(--drop-zone-bg);
16
+ color: var(--drop-zone-fg);
17
+
18
+ transition:
19
+ background-color 150ms var(--ease-smooth),
20
+ border-color 150ms var(--ease-smooth);
21
+ @apply motion-reduce:transition-none;
22
+
23
+ @media (hover: hover) {
24
+ &:hover,
25
+ &[data-hovered="true"] {
26
+ --drop-zone-border: var(--field-border-hover);
27
+ }
28
+ }
29
+
30
+ /* The ring is painted for the hidden file input inside, which is what a keyboard focuses. */
31
+ &[data-focus-visible="true"] {
32
+ @apply status-focused;
33
+ }
34
+
35
+ /* A drag the zone would take. Both the line and the fill move, because the fill alone is a
36
+ * ~15% tint that a light theme barely separates from the page. */
37
+ &[data-drop-target="true"] {
38
+ --drop-zone-border: var(--accent);
39
+ --drop-zone-bg: var(--accent-soft);
40
+ --drop-zone-fg: var(--foreground);
41
+ }
42
+
43
+ /* A drag carrying a type `accept` rules out.
44
+ *
45
+ * Accept takes `--accent` to match the one drop state the library already had
46
+ * (`--table-cell-bg-drop-target`), which leaves the two verdicts a hue apart in most themes
47
+ * but nearly together in one whose accent is itself red — measured at hue 28 for both under
48
+ * `netflix`, separated only by lightness. That is a collision only the theme can settle, and
49
+ * the properties above are how: repoint `--drop-zone-border` and `--drop-zone-bg`. */
50
+ &[data-status="reject"] {
51
+ --drop-zone-border: var(--danger);
52
+ --drop-zone-bg: var(--danger-soft);
53
+ --drop-zone-fg: var(--foreground);
54
+ }
55
+
56
+ /* Forced Colors Mode forces every colour to a system keyword, so the accent and danger fills
57
+ * above flatten onto the page and the three states become one dashed box. The border is the
58
+ * only channel left that the platform still lets a rule choose, hence the keywords. */
59
+ @media (forced-colors: active) {
60
+ &[data-drop-target="true"] {
61
+ border-color: Highlight;
62
+ }
63
+
64
+ &[data-status="reject"] {
65
+ border-color: LinkText;
66
+ }
67
+ }
68
+
69
+ &[data-disabled="true"] {
70
+ @apply status-disabled;
71
+ }
72
+ }
73
+
74
+ .drop-zone__trigger {
75
+ @apply rounded-field underline underline-offset-2 outline-none;
76
+
77
+ cursor: var(--cursor-interactive);
78
+ }
@@ -22,10 +22,6 @@
22
22
  outline-offset: -1px;
23
23
  }
24
24
  }
25
- /**
26
- * Transitions
27
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
28
- */
29
25
  transition:
30
26
  transform 250ms var(--ease-out-quart),
31
27
  background-color 150ms var(--ease-smooth),
@@ -62,7 +58,7 @@
62
58
  /* Similar to select popover styles */
63
59
  .dropdown__popover {
64
60
  @apply max-w-[48svw] origin-(--trigger-anchor-point) scroll-py-1 scrollbar overflow-y-auto overscroll-contain bg-overlay p-0 text-sm will-change-transform md:min-w-55;
65
- border-radius: min(32px, var(--radius-3xl));
61
+ border-radius: min(32px, var(--component-radius));
66
62
  box-shadow: var(--shadow-overlay);
67
63
 
68
64
  /* Focus state */
@@ -2,10 +2,6 @@
2
2
  .error-message {
3
3
  @apply h-auto text-xs wrap-break-word text-danger;
4
4
 
5
- /**
6
- * Transitions
7
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
8
- */
9
5
  transition:
10
6
  opacity 150ms var(--ease-out),
11
7
  height 350ms var(--ease-smooth);
@@ -2,10 +2,6 @@
2
2
  .field-error {
3
3
  @apply h-0 px-1 text-xs wrap-break-word text-danger opacity-0 data-visible:h-auto data-visible:opacity-100;
4
4
 
5
- /**
6
- * Transitions
7
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
8
- */
9
5
  transition:
10
6
  opacity 150ms var(--ease-out),
11
7
  height 350ms var(--ease-smooth);
@@ -30,6 +30,7 @@
30
30
  @import "./disclosure.css";
31
31
  @import "./link.css";
32
32
  @import "./pagination.css";
33
+ @import "./sidebar.css";
33
34
  @import "./tabs.css";
34
35
 
35
36
  /* ------------------------------------------------------------------------------------------------
@@ -68,6 +69,7 @@
68
69
  /* ------------------------------------------------------------------------------------------------
69
70
  * Controls
70
71
  * ------------------------------------------------------------------------------------------------ */
72
+ @import "./segmented-control.css";
71
73
  @import "./slider.css";
72
74
  @import "./switch.css";
73
75
  @import "./switch-group.css";
@@ -96,6 +98,7 @@
96
98
  * ------------------------------------------------------------------------------------------------ */
97
99
  @import "./checkbox-group.css";
98
100
  @import "./checkbox.css";
101
+ @import "./drop-zone.css";
99
102
  @import "./fieldset.css";
100
103
  @import "./input-otp.css";
101
104
  @import "./input.css";
@@ -125,6 +128,7 @@
125
128
  @import "./card.css";
126
129
  @import "./header.css";
127
130
  @import "./separator.css";
131
+ @import "./splitter.css";
128
132
  @import "./surface.css";
129
133
 
130
134
  /* ------------------------------------------------------------------------------------------------
@@ -158,3 +162,4 @@
158
162
  * Utilities
159
163
  * ------------------------------------------------------------------------------------------------ */
160
164
  @import "./scroll-shadow.css";
165
+ @import "./virtualizer.css";
@@ -31,6 +31,7 @@ export * from "./description";
31
31
  export * from "./drawer";
32
32
  export * from "./disclosure";
33
33
  export * from "./disclosure-group";
34
+ export * from "./drop-zone";
34
35
  export * from "./dropdown";
35
36
  export * from "./empty-state";
36
37
  export * from "./error-message";
@@ -60,11 +61,14 @@ export * from "./radio";
60
61
  export * from "./radio-group";
61
62
  export * from "./scroll-shadow";
62
63
  export * from "./search-field";
64
+ export * from "./segmented-control";
63
65
  export * from "./select";
64
66
  export * from "./separator";
67
+ export * from "./sidebar";
65
68
  export * from "./skeleton";
66
69
  export * from "./slider";
67
70
  export * from "./spinner";
71
+ export * from "./splitter";
68
72
  export * from "./surface";
69
73
  export * from "./switch";
70
74
  export * from "./switch-group";
@@ -81,4 +85,5 @@ export * from "./toggle-button";
81
85
  export * from "./toggle-button-group";
82
86
  export * from "./toolbar";
83
87
  export * from "./tooltip";
88
+ export * from "./virtualizer";
84
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
@@ -4,6 +4,11 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
4
4
  false: "";
5
5
  true: "input--full-width";
6
6
  };
7
+ size: {
8
+ lg: "input--lg";
9
+ md: "";
10
+ sm: "input--sm";
11
+ };
7
12
  variant: {
8
13
  primary: "input--primary";
9
14
  secondary: "input--secondary";
@@ -13,6 +18,11 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
13
18
  false: "";
14
19
  true: "input--full-width";
15
20
  };
21
+ size: {
22
+ lg: "input--lg";
23
+ md: "";
24
+ sm: "input--sm";
25
+ };
16
26
  variant: {
17
27
  primary: "input--primary";
18
28
  secondary: "input--secondary";
@@ -22,6 +32,11 @@ export declare const inputVariants: import("tailwind-variants").TVReturnType<{
22
32
  false: "";
23
33
  true: "input--full-width";
24
34
  };
35
+ size: {
36
+ lg: "input--lg";
37
+ md: "";
38
+ sm: "input--sm";
39
+ };
25
40
  variant: {
26
41
  primary: "input--primary";
27
42
  secondary: "input--secondary";
@@ -1 +1 @@
1
- {"version":3,"file":"input.styles.d.ts","sourceRoot":"","sources":["../../../src/components/input/input.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgBxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"input.styles.d.ts","sourceRoot":"","sources":["../../../src/components/input/input.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsBxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -4,6 +4,7 @@ const inputVariants = tv({
4
4
  base: "input",
5
5
  defaultVariants: {
6
6
  fullWidth: false,
7
+ size: "md",
7
8
  variant: "primary"
8
9
  },
9
10
  variants: {
@@ -11,6 +12,11 @@ const inputVariants = tv({
11
12
  false: "",
12
13
  true: "input--full-width"
13
14
  },
15
+ size: {
16
+ lg: "input--lg",
17
+ md: "",
18
+ sm: "input--sm"
19
+ },
14
20
  variant: {
15
21
  primary: "input--primary",
16
22
  secondary: "input--secondary"
@@ -6,6 +6,15 @@ export declare const inputGroupVariants: import("tailwind-variants").TVReturnTyp
6
6
  base: string;
7
7
  };
8
8
  };
9
+ size: {
10
+ lg: {
11
+ base: string;
12
+ };
13
+ md: {};
14
+ sm: {
15
+ base: string;
16
+ };
17
+ };
9
18
  variant: {
10
19
  primary: {
11
20
  base: string;
@@ -26,6 +35,15 @@ export declare const inputGroupVariants: import("tailwind-variants").TVReturnTyp
26
35
  base: string;
27
36
  };
28
37
  };
38
+ size: {
39
+ lg: {
40
+ base: string;
41
+ };
42
+ md: {};
43
+ sm: {
44
+ base: string;
45
+ };
46
+ };
29
47
  variant: {
30
48
  primary: {
31
49
  base: string;
@@ -46,6 +64,15 @@ export declare const inputGroupVariants: import("tailwind-variants").TVReturnTyp
46
64
  base: string;
47
65
  };
48
66
  };
67
+ size: {
68
+ lg: {
69
+ base: string;
70
+ };
71
+ md: {};
72
+ sm: {
73
+ base: string;
74
+ };
75
+ };
49
76
  variant: {
50
77
  primary: {
51
78
  base: string;
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.styles.d.ts","sourceRoot":"","sources":["../../../src/components/input-group/input-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,kBAAkB;;QAazB,KAAK;QACL,IAAI;YACF,IAAI;;;;QAIN,OAAO;YACL,IAAI;;QAEN,SAAS;YACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIV,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"input-group.styles.d.ts","sourceRoot":"","sources":["../../../src/components/input-group/input-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,kBAAkB;;QAczB,KAAK;QACL,IAAI;YACF,IAAI;;;;QAIN,EAAE;YACA,IAAI;;QAEN,EAAE;QACF,EAAE;YACA,IAAI;;;;QAIN,OAAO;YACL,IAAI;;QAEN,SAAS;YACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIV,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import { tv } from "tailwind-variants";
3
3
  const inputGroupVariants = tv({
4
4
  defaultVariants: {
5
5
  fullWidth: false,
6
+ size: "md",
6
7
  variant: "primary"
7
8
  },
8
9
  slots: {
@@ -16,6 +17,11 @@ const inputGroupVariants = tv({
16
17
  false: {},
17
18
  true: { base: "input-group--full-width" }
18
19
  },
20
+ size: {
21
+ lg: { base: "input-group--lg" },
22
+ md: {},
23
+ sm: { base: "input-group--sm" }
24
+ },
19
25
  variant: {
20
26
  primary: { base: "input-group--primary" },
21
27
  secondary: { base: "input-group--secondary" }
@@ -1,6 +1,13 @@
1
1
  /* Input group styles */
2
2
  .input-group {
3
- @apply inline-flex min-h-9 items-center rounded-field border bg-field text-sm text-field-foreground shadow-field outline-none;
3
+ @apply inline-flex min-h-9 items-center rounded-field border text-sm text-field-foreground shadow-field outline-none;
4
+
5
+ /* The fill, per state. The `--secondary` variant re-points these and declares nothing else. */
6
+ --input-group-bg: var(--field-background, var(--default));
7
+ --input-group-bg-hover: var(--field-hover);
8
+ --input-group-bg-focus: var(--field-focus);
9
+
10
+ background-color: var(--input-group-bg);
4
11
  border-width: var(--border-width-field);
5
12
  border-color: var(--field-border);
6
13
 
@@ -19,10 +26,6 @@
19
26
  height: auto;
20
27
  }
21
28
 
22
- /**
23
- * Transitions
24
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
25
- */
26
29
  transition:
27
30
  background-color 150ms var(--ease-smooth),
28
31
  border-color 150ms var(--ease-smooth),
@@ -33,7 +36,7 @@
33
36
  @media (hover: hover) {
34
37
  &:hover:not(:focus-within),
35
38
  &[data-hovered="true"]:not([data-focus-within="true"]) {
36
- @apply bg-field-hover;
39
+ background-color: var(--input-group-bg-hover);
37
40
  border-color: var(--field-border-hover);
38
41
  }
39
42
  }
@@ -43,13 +46,13 @@
43
46
  &:has([data-slot="input-group-textarea"]:focus) {
44
47
  @apply status-focused-field;
45
48
  border-color: var(--field-border-focus);
46
- background-color: var(--field-focus);
49
+ background-color: var(--input-group-bg-focus);
47
50
  }
48
51
 
49
52
  /* Invalid state */
50
53
  &[data-invalid="true"] {
51
54
  @apply status-invalid-field;
52
- background-color: var(--field-focus);
55
+ background-color: var(--input-group-bg-focus);
53
56
  border-color: var(--color-field-border-invalid);
54
57
  }
55
58
 
@@ -70,13 +73,13 @@
70
73
  */
71
74
  &:has([data-slot="input-group-input"]:-webkit-autofill),
72
75
  &:has([data-slot="input-group-input"]:autofill) {
73
- background-color: var(--field-focus);
76
+ background-color: var(--input-group-bg-focus);
74
77
  border-color: var(--field-border-focus);
75
78
  }
76
79
  }
77
80
 
78
81
  .input-group__input {
79
- @apply flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-base shadow-none outline-none placeholder:text-field-placeholder sm:text-sm;
82
+ @apply flex-1 rounded-none border-0 bg-transparent px-3 field-line-md shadow-none outline-none placeholder:text-field-placeholder;
80
83
 
81
84
  /* Remove border radius on left side when prefix is present */
82
85
  .input-group:has([data-slot="input-group-prefix"]) & {
@@ -136,10 +139,6 @@
136
139
  padding-top: 0.5rem;
137
140
  }
138
141
 
139
- /**
140
- * Transitions
141
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
142
- */
143
142
  transition:
144
143
  background-color 150ms var(--ease-smooth),
145
144
  border-color 150ms var(--ease-smooth);
@@ -162,10 +161,6 @@
162
161
  padding-top: 0.5rem;
163
162
  }
164
163
 
165
- /**
166
- * Transitions
167
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
168
- */
169
164
  transition:
170
165
  background-color 150ms var(--ease-smooth),
171
166
  border-color 150ms var(--ease-smooth);
@@ -179,31 +174,11 @@
179
174
 
180
175
  .input-group--secondary {
181
176
  @apply shadow-none;
182
- background-color: var(--input-group-bg);
183
177
 
184
178
  --input-group-bg: var(--default);
185
179
  --input-group-bg-hover: var(--default-hover);
186
180
  --input-group-bg-focus: var(--default);
187
181
 
188
- @media (hover: hover) {
189
- &:hover:not(:focus-within),
190
- &[data-hovered="true"]:not([data-focus-within="true"]) {
191
- background-color: var(--input-group-bg-hover);
192
- }
193
- }
194
-
195
- &:has([data-slot="input-group-input"]:focus),
196
- &:has([data-slot="input-group-textarea"]:focus) {
197
- background-color: var(--input-group-bg-focus);
198
- }
199
-
200
- /* Invalid state */
201
- &[data-invalid="true"] {
202
- @apply status-invalid-field;
203
- border-color: var(--color-field-border-invalid);
204
- background-color: var(--input-group-bg-focus);
205
- }
206
-
207
182
  [data-slot="input-group-input"],
208
183
  [data-slot="input-group-textarea"] {
209
184
  @apply bg-transparent;
@@ -214,3 +189,25 @@
214
189
  .input-group--full-width {
215
190
  @apply w-full;
216
191
  }
192
+
193
+ /* ==========================================================================
194
+ Size variants
195
+ ========================================================================== */
196
+
197
+ /* The shell states the floor and the control inside carries the metrics, which is the same split
198
+ * the base makes - the group may grow around a textarea, so it cannot state a height. */
199
+ .input-group--sm {
200
+ @apply min-h-8;
201
+
202
+ .input-group__input {
203
+ @apply field-line-sm;
204
+ }
205
+ }
206
+
207
+ .input-group--lg {
208
+ @apply min-h-10;
209
+
210
+ .input-group__input {
211
+ @apply field-line-lg;
212
+ }
213
+ }
@@ -15,16 +15,19 @@
15
15
  /* Individual slot box - fully rounded, standalone */
16
16
  .input-otp__slot {
17
17
  @apply relative flex h-10 w-9.5 min-w-0 flex-1 items-center justify-center;
18
- @apply border bg-field text-field-foreground shadow-field;
18
+ @apply border text-field-foreground shadow-field;
19
+
20
+ /* The fill, per state. The `--secondary` variant re-points these and declares nothing else. */
21
+ --input-otp-slot-bg: var(--field-background, var(--default));
22
+ --input-otp-slot-bg-hover: var(--field-hover);
23
+ --input-otp-slot-bg-focus: var(--field-focus);
24
+
25
+ background-color: var(--input-otp-slot-bg);
19
26
  @apply rounded-field text-sm font-semibold outline-none;
20
27
 
21
28
  border-width: var(--border-width-field);
22
29
  border-color: var(--field-border);
23
30
 
24
- /**
25
- * Transitions
26
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
27
- */
28
31
  transition:
29
32
  background-color 150ms var(--ease-smooth),
30
33
  border-color 150ms var(--ease-smooth),
@@ -35,19 +38,21 @@
35
38
  @media (hover: hover) {
36
39
  &:hover,
37
40
  &[data-hovered="true"] {
38
- @apply bg-field-hover;
41
+ background-color: var(--input-otp-slot-bg-hover);
39
42
  border-color: var(--field-border-hover);
40
43
  }
41
44
  }
42
45
 
43
46
  /* Active/Focus */
44
47
  &[data-active="true"] {
45
- @apply z-10 bg-field-focus status-focused-field;
48
+ @apply z-10 status-focused-field;
49
+
50
+ background-color: var(--input-otp-slot-bg-focus);
46
51
  }
47
52
 
48
53
  /* Filled */
49
54
  &[data-filled="true"] {
50
- @apply bg-field-focus;
55
+ background-color: var(--input-otp-slot-bg-focus);
51
56
  }
52
57
 
53
58
  /* Disabled */
@@ -58,7 +63,7 @@
58
63
  /* Invalid */
59
64
  &[data-invalid="true"] {
60
65
  @apply status-invalid-field;
61
- background-color: var(--field-focus);
66
+ background-color: var(--input-otp-slot-bg-focus);
62
67
  }
63
68
  }
64
69
 
@@ -66,10 +71,6 @@
66
71
  .input-otp__slot-value {
67
72
  @apply text-lg leading-6 tracking-[-0.27px];
68
73
 
69
- /**
70
- * Animations
71
- * CRITICAL: motion-reduce must be AFTER animation for correct override specificity
72
- */
73
74
  animation: slot-value-in 250ms var(--ease-smooth) both;
74
75
  transform-origin: bottom center;
75
76
  @apply motion-reduce:animate-none;
@@ -92,23 +93,10 @@
92
93
 
93
94
  .input-otp--secondary .input-otp__slot {
94
95
  @apply shadow-none;
95
- background-color: var(--input-otp-slot-bg);
96
96
 
97
97
  --input-otp-slot-bg: var(--default);
98
98
  --input-otp-slot-bg-hover: var(--default-hover);
99
99
  --input-otp-slot-bg-focus: var(--default);
100
-
101
- @media (hover: hover) {
102
- &:hover,
103
- &[data-hovered="true"] {
104
- background-color: var(--input-otp-slot-bg-hover);
105
- }
106
- }
107
-
108
- &[data-active="true"],
109
- &[data-filled="true"] {
110
- background-color: var(--input-otp-slot-bg-focus);
111
- }
112
100
  }
113
101
 
114
102
  /* Animations */