@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
@@ -0,0 +1,188 @@
1
+ /* ==========================================================================
2
+ SegmentedControl - one choice out of a few, drawn as a pill that slides
3
+
4
+ Structure (explicit composition):
5
+ .segmented-control → role="radiogroup", the track the pill slides in
6
+ .segmented-control__item → button[role="radio"]
7
+ .segmented-control__indicator
8
+ ========================================================================== */
9
+
10
+ .segmented-control {
11
+ @apply relative inline-flex w-max items-center bg-default p-1;
12
+
13
+ /* The same corner a button of this size wears, not a larger one stepped out by the padding.
14
+ * The size scale already lines the track up with a button and a field; a corner of its own
15
+ * would break that agreement at exactly the place two of them sit side by side.
16
+ *
17
+ * Read through `var(--component-radius)` rather than the `rounded-component` utility, because
18
+ * raw CSS resolves the alias on `:root` and then inherits the root theme's radius into every
19
+ * `data-theme` subtree. */
20
+ border-radius: min(32px, var(--component-radius));
21
+
22
+ /* Forced Colors Mode flattens the track's fill onto the page, which leaves the pill sitting
23
+ * in nothing. `CanvasText` is the platform's own edge; an outline rather than a border so
24
+ * nothing shifts. */
25
+ @media (forced-colors: active) {
26
+ outline: 1px solid CanvasText;
27
+ outline-offset: -1px;
28
+ }
29
+
30
+ /* Disabled state */
31
+ &[data-disabled="true"] {
32
+ @apply status-disabled;
33
+ }
34
+ }
35
+
36
+ /* ==========================================================================
37
+ Segment
38
+ ========================================================================== */
39
+
40
+ .segmented-control__item {
41
+ @apply relative inline-flex h-7 min-w-0 shrink-0 appearance-none items-center justify-center gap-2 rounded-component border-0 bg-transparent px-3 text-center text-sm font-medium whitespace-nowrap outline-none select-none no-highlight;
42
+
43
+ --segmented-control-item-fg: var(--muted);
44
+ --segmented-control-item-fg-hover: var(--foreground);
45
+ --segmented-control-item-fg-selected: var(--segment-foreground);
46
+
47
+ color: var(--segmented-control-item-fg);
48
+
49
+ z-index: 1;
50
+ cursor: var(--cursor-interactive);
51
+
52
+ transition:
53
+ color 150ms var(--ease-smooth),
54
+ opacity 150ms var(--ease-smooth);
55
+ @apply motion-reduce:transition-none;
56
+
57
+ /* Selected state */
58
+ &[data-selected="true"] {
59
+ color: var(--segmented-control-item-fg-selected);
60
+
61
+ /* Sits on top of the indicator, which forced colors paints `Highlight`. `forced-color-adjust`
62
+ * suppresses the `Canvas` backplate Chromium would otherwise paint behind this label - it
63
+ * covers the indicator, and black-on-black is exactly what it would leave. */
64
+ @media (forced-colors: active) {
65
+ forced-color-adjust: none;
66
+ color: HighlightText;
67
+ }
68
+ }
69
+
70
+ /* Hover states - both approaches for compatibility */
71
+ @media (hover: hover) {
72
+ &:not([data-selected="true"]):not([data-disabled="true"]):hover,
73
+ &[data-hovered="true"]:not([data-selected="true"]):not([data-disabled="true"]) {
74
+ color: var(--segmented-control-item-fg-hover);
75
+ }
76
+ }
77
+
78
+ /* Pressed states - both approaches for compatibility */
79
+ &:not([data-disabled="true"]):active,
80
+ &[data-pressed="true"]:not([data-disabled="true"]) {
81
+ @apply opacity-70;
82
+ }
83
+
84
+ /* Focus states - comprehensive fallback */
85
+ &:focus-visible:not(:focus),
86
+ &[data-focus-visible="true"] {
87
+ @apply status-focused;
88
+
89
+ /* Written after the utility, which sets this same property. Inset and offsetless so the ring
90
+ * stays inside the track's padding instead of spilling over its rounded edge - the same
91
+ * correction ToggleButtonGroup makes for an attached row. */
92
+ --tw-ring-offset-width: 0px;
93
+ @apply ring-inset;
94
+ }
95
+
96
+ /* Disabled state */
97
+ &:disabled,
98
+ &[data-disabled="true"] {
99
+ @apply status-disabled;
100
+ }
101
+ }
102
+
103
+ /* ==========================================================================
104
+ Separator - a hairline between adjacent segments. Rendered inside each
105
+ segment and pinned to its leading edge, so it divides that segment from the
106
+ one before it rather than being a node between the two.
107
+ ========================================================================== */
108
+
109
+ .segmented-control__separator {
110
+ @apply pointer-events-none absolute start-0 top-1/4 h-1/2 w-px rounded-sm bg-muted/25;
111
+
112
+ transition: opacity 150ms var(--ease-smooth);
113
+ @apply motion-reduce:transition-none;
114
+
115
+ /* Nothing to divide in front of the first segment. */
116
+ .segmented-control__item:first-child & {
117
+ @apply opacity-0;
118
+ }
119
+ }
120
+
121
+ /* The pill covers its own leading divider, and the divider on the segment that follows would
122
+ otherwise sit hard against the pill's trailing edge. Both step aside as it arrives. */
123
+ .segmented-control__item[data-selected="true"] .segmented-control__separator,
124
+ .segmented-control__item[data-selected="true"]
125
+ + .segmented-control__item
126
+ .segmented-control__separator {
127
+ @apply opacity-0;
128
+ }
129
+
130
+ /* ==========================================================================
131
+ Indicator - React Aria's SelectionIndicator. One is rendered inside every
132
+ segment and only the selected one is present, so what looks like a pill
133
+ sliding along is one element handing its place to the next.
134
+ ========================================================================== */
135
+
136
+ .segmented-control__indicator {
137
+ @apply absolute start-0 top-0 size-full rounded-component bg-segment shadow-surface;
138
+
139
+ z-index: -1;
140
+
141
+ /* The indicator is a background and nothing else, so Forced Colors Mode flattens it away
142
+ * and nothing marks the selected segment. `Highlight` behind `HighlightText` is the
143
+ * platform's own pairing for a selected segment. */
144
+ @media (forced-colors: active) {
145
+ background-color: Highlight;
146
+ }
147
+
148
+ /**
149
+ * `useSharedElement` reads this very declaration to decide what to carry across the handoff,
150
+ * so the stylesheet stays the only place that decides what animates. `height` is listed even
151
+ * though the pill only travels along one axis today, so a vertical orientation needs no
152
+ * change here.
153
+ */
154
+ transition-duration: 250ms;
155
+ transition-property: translate, width, height;
156
+ transition-timing-function: var(--ease-out-fluid);
157
+ @apply motion-reduce:transition-none;
158
+ }
159
+
160
+ /* ==========================================================================
161
+ Sizes - the outer track lands on the control scale (32/36/40px), so a
162
+ segmented control lines up with a button or a field of the same size. The
163
+ track's own `p-1` is the 8px difference.
164
+ ========================================================================== */
165
+
166
+ .segmented-control--sm .segmented-control__item {
167
+ @apply h-6 px-2.5 text-xs;
168
+ }
169
+
170
+ .segmented-control--md {
171
+ /* No styles as this is the default size */
172
+ }
173
+
174
+ .segmented-control--lg .segmented-control__item {
175
+ @apply h-8 px-4;
176
+ }
177
+
178
+ /* ==========================================================================
179
+ Full width modifier
180
+ ========================================================================== */
181
+
182
+ .segmented-control--full-width {
183
+ @apply flex w-full;
184
+
185
+ .segmented-control__item {
186
+ @apply flex-1;
187
+ }
188
+ }
@@ -7,6 +7,17 @@ export declare const selectVariants: import("tailwind-variants").TVReturnType<{
7
7
  trigger: string;
8
8
  };
9
9
  };
10
+ size: {
11
+ lg: {
12
+ base: string;
13
+ popover: string;
14
+ };
15
+ md: {};
16
+ sm: {
17
+ base: string;
18
+ popover: string;
19
+ };
20
+ };
10
21
  variant: {
11
22
  primary: {
12
23
  base: string;
@@ -29,6 +40,17 @@ export declare const selectVariants: import("tailwind-variants").TVReturnType<{
29
40
  trigger: string;
30
41
  };
31
42
  };
43
+ size: {
44
+ lg: {
45
+ base: string;
46
+ popover: string;
47
+ };
48
+ md: {};
49
+ sm: {
50
+ base: string;
51
+ popover: string;
52
+ };
53
+ };
32
54
  variant: {
33
55
  primary: {
34
56
  base: string;
@@ -51,6 +73,17 @@ export declare const selectVariants: import("tailwind-variants").TVReturnType<{
51
73
  trigger: string;
52
74
  };
53
75
  };
76
+ size: {
77
+ lg: {
78
+ base: string;
79
+ popover: string;
80
+ };
81
+ md: {};
82
+ sm: {
83
+ base: string;
84
+ popover: string;
85
+ };
86
+ };
54
87
  variant: {
55
88
  primary: {
56
89
  base: string;
@@ -1 +1 @@
1
- {"version":3,"file":"select.styles.d.ts","sourceRoot":"","sources":["../../../src/components/select/select.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,cAAc;;QAcrB,KAAK;QACL,IAAI;YACF,IAAI;YACJ,OAAO;;;;QAIT,OAAO;YACL,IAAI;;QAEN,SAAS;YACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIV,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"select.styles.d.ts","sourceRoot":"","sources":["../../../src/components/select/select.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,cAAc;;QAerB,KAAK;QACL,IAAI;YACF,IAAI;YACJ,OAAO;;;;QAIT,EAAE;YACA,IAAI;YACJ,OAAO;;QAET,EAAE;QACF,EAAE;YACA,IAAI;YACJ,OAAO;;;;QAIT,OAAO;YACL,IAAI;;QAEN,SAAS;YACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIV,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import { tv } from "tailwind-variants";
3
3
  const selectVariants = tv({
4
4
  defaultVariants: {
5
5
  fullWidth: false,
6
+ size: "md",
6
7
  variant: "primary"
7
8
  },
8
9
  slots: {
@@ -20,6 +21,17 @@ const selectVariants = tv({
20
21
  trigger: "select__trigger--full-width"
21
22
  }
22
23
  },
24
+ size: {
25
+ lg: {
26
+ base: "select--lg",
27
+ popover: "select__popover--lg"
28
+ },
29
+ md: {},
30
+ sm: {
31
+ base: "select--sm",
32
+ popover: "select__popover--sm"
33
+ }
34
+ },
23
35
  variant: {
24
36
  primary: { base: "select--primary" },
25
37
  secondary: { base: "select--secondary" }
@@ -15,7 +15,14 @@
15
15
  }
16
16
 
17
17
  .select__trigger {
18
- @apply relative isolate inline-flex min-h-9 rounded-field border bg-field px-3 py-2 text-sm text-field-foreground shadow-field outline-none select-none no-highlight;
18
+ @apply relative isolate inline-flex min-h-9 rounded-field border px-3 field-line-md text-field-foreground shadow-field outline-none select-none no-highlight;
19
+
20
+ /* The fill, per state. The `--secondary` variant re-points these and declares nothing else. */
21
+ --select-trigger-bg: var(--field-background, var(--default));
22
+ --select-trigger-bg-hover: var(--field-hover);
23
+ --select-trigger-bg-focus: var(--field-focus);
24
+
25
+ background-color: var(--select-trigger-bg);
19
26
 
20
27
  /* Forced Colors Mode flattens the fill onto the page and strips the shadow, leaving a field that
21
28
  * reads as bare text - `--border-width-field` is 0, so the declared border brings nothing back on
@@ -26,10 +33,6 @@
26
33
  outline-offset: -1px;
27
34
  }
28
35
 
29
- /**
30
- * Transitions
31
- * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
32
- */
33
36
  transition:
34
37
  background-color 150ms var(--ease-smooth),
35
38
  border-color 150ms var(--ease-smooth),
@@ -51,7 +54,7 @@
51
54
  @media (hover: hover) {
52
55
  &:hover,
53
56
  &[data-hovered="true"] {
54
- @apply bg-field-hover;
57
+ background-color: var(--select-trigger-bg-hover);
55
58
  border-color: var(--field-border-hover);
56
59
  }
57
60
  }
@@ -61,7 +64,7 @@
61
64
  &[data-focus-visible="true"] {
62
65
  @apply status-focused;
63
66
  border-color: var(--field-border-focus);
64
- background-color: var(--field-focus);
67
+ background-color: var(--select-trigger-bg-focus);
65
68
  }
66
69
 
67
70
  /* Focus state */
@@ -73,7 +76,7 @@
73
76
  .select[data-invalid="true"] &,
74
77
  .select[aria-invalid="true"] & {
75
78
  @apply status-invalid-field;
76
- background-color: var(--field-focus);
79
+ background-color: var(--select-trigger-bg-focus);
77
80
  }
78
81
 
79
82
  /* Disabled state */
@@ -91,39 +94,22 @@
91
94
 
92
95
  .select--secondary .select__trigger {
93
96
  @apply shadow-none;
94
- background-color: var(--select-trigger-bg);
95
97
 
96
98
  --select-trigger-bg: var(--default);
97
99
  --select-trigger-bg-hover: var(--default-hover);
98
100
  --select-trigger-bg-focus: var(--default);
99
-
100
- @media (hover: hover) {
101
- &:hover,
102
- &[data-hovered="true"] {
103
- background-color: var(--select-trigger-bg-hover);
104
- }
105
- }
106
-
107
- &:focus-visible:not(:focus),
108
- &[data-focus-visible="true"] {
109
- background-color: var(--select-trigger-bg-focus);
110
- }
111
-
112
- &:focus,
113
- &[data-focus="true"] {
114
- }
115
-
116
- .select[data-invalid="true"] &,
117
- .select[aria-invalid="true"] & {
118
- background-color: var(--select-trigger-bg-focus);
119
- }
120
101
  }
121
102
 
122
103
  .select__value {
123
- @apply flex-1 text-start text-base wrap-break-word text-current sm:text-sm;
104
+ @apply flex-1 text-start wrap-break-word;
105
+
106
+ --select-value-fg: currentcolor;
107
+ --select-value-fg-placeholder: var(--field-placeholder, var(--muted));
108
+
109
+ color: var(--select-value-fg);
124
110
 
125
111
  &[data-placeholder="true"] {
126
- @apply text-field-placeholder;
112
+ color: var(--select-value-fg-placeholder);
127
113
  }
128
114
 
129
115
  /* Removes the list-box-item indicator element from the select value*/
@@ -147,7 +133,7 @@
147
133
  /* Similar to popover content styles */
148
134
  .select__popover {
149
135
  @apply min-w-(--trigger-width) origin-(--trigger-anchor-point) scroll-py-1 scrollbar overflow-y-auto overscroll-contain bg-overlay p-0 text-sm;
150
- border-radius: min(32px, var(--radius-3xl));
136
+ border-radius: min(32px, var(--component-radius));
151
137
  box-shadow: var(--shadow-overlay);
152
138
 
153
139
  /* Focus state */
@@ -224,6 +210,34 @@
224
210
  }
225
211
  }
226
212
 
213
+ /* ==========================================================================
214
+ Size variants
215
+ ========================================================================== */
216
+
217
+ /* The trigger's own metrics, and the option rows in a popover that is portalled out of this tree -
218
+ * which is why the popover carries its own size class rather than being reached from the base. */
219
+ .select--sm .select__trigger {
220
+ @apply min-h-8 field-line-sm;
221
+ }
222
+
223
+ .select--lg .select__trigger {
224
+ @apply min-h-10 field-line-lg;
225
+ }
226
+
227
+ .select__popover--sm {
228
+ [data-slot="list-box-item"] {
229
+ @apply min-h-8 py-1;
230
+ }
231
+ }
232
+
233
+ .select__popover--lg {
234
+ @apply text-base;
235
+
236
+ [data-slot="list-box-item"] {
237
+ @apply min-h-10 py-2;
238
+ }
239
+ }
240
+
227
241
  /* Full width modifier */
228
242
  .select--full-width {
229
243
  @apply w-full;
@@ -0,0 +1,2 @@
1
+ export * from "./sidebar.styles";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { sidebarVariants } from "./sidebar.styles.js";
2
+ export { sidebarVariants };
@@ -0,0 +1,226 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ export declare const sidebarVariants: import("tailwind-variants").TVReturnType<{
3
+ collapsible: {
4
+ icon: {
5
+ panel: string;
6
+ };
7
+ none: {
8
+ panel: string;
9
+ };
10
+ offcanvas: {
11
+ panel: string;
12
+ };
13
+ };
14
+ inDrawer: {
15
+ true: {
16
+ panel: string;
17
+ };
18
+ };
19
+ isCollapsible: {
20
+ true: {
21
+ subMenu: string;
22
+ };
23
+ };
24
+ isResizable: {
25
+ true: {
26
+ rail: string;
27
+ };
28
+ };
29
+ isSub: {
30
+ true: {
31
+ item: string;
32
+ };
33
+ };
34
+ side: {
35
+ left: {
36
+ base: string;
37
+ panel: string;
38
+ };
39
+ right: {
40
+ base: string;
41
+ panel: string;
42
+ };
43
+ };
44
+ variant: {
45
+ floating: {
46
+ panel: string;
47
+ rail: string;
48
+ };
49
+ inset: {
50
+ inset: string;
51
+ panel: string;
52
+ rail: string;
53
+ };
54
+ sidebar: {};
55
+ };
56
+ }, {
57
+ base: string;
58
+ content: string;
59
+ footer: string;
60
+ group: string;
61
+ groupLabel: string;
62
+ header: string;
63
+ inset: string;
64
+ item: string;
65
+ itemIcon: string;
66
+ itemIndicator: string;
67
+ itemLabel: string;
68
+ itemTooltip: string;
69
+ itemTrailing: string;
70
+ panel: string;
71
+ rail: string;
72
+ railTarget: string;
73
+ separator: string;
74
+ subMenu: string;
75
+ trigger: string;
76
+ }, undefined, {
77
+ collapsible: {
78
+ icon: {
79
+ panel: string;
80
+ };
81
+ none: {
82
+ panel: string;
83
+ };
84
+ offcanvas: {
85
+ panel: string;
86
+ };
87
+ };
88
+ inDrawer: {
89
+ true: {
90
+ panel: string;
91
+ };
92
+ };
93
+ isCollapsible: {
94
+ true: {
95
+ subMenu: string;
96
+ };
97
+ };
98
+ isResizable: {
99
+ true: {
100
+ rail: string;
101
+ };
102
+ };
103
+ isSub: {
104
+ true: {
105
+ item: string;
106
+ };
107
+ };
108
+ side: {
109
+ left: {
110
+ base: string;
111
+ panel: string;
112
+ };
113
+ right: {
114
+ base: string;
115
+ panel: string;
116
+ };
117
+ };
118
+ variant: {
119
+ floating: {
120
+ panel: string;
121
+ rail: string;
122
+ };
123
+ inset: {
124
+ inset: string;
125
+ panel: string;
126
+ rail: string;
127
+ };
128
+ sidebar: {};
129
+ };
130
+ }, {
131
+ base: string;
132
+ content: string;
133
+ footer: string;
134
+ group: string;
135
+ groupLabel: string;
136
+ header: string;
137
+ inset: string;
138
+ item: string;
139
+ itemIcon: string;
140
+ itemIndicator: string;
141
+ itemLabel: string;
142
+ itemTooltip: string;
143
+ itemTrailing: string;
144
+ panel: string;
145
+ rail: string;
146
+ railTarget: string;
147
+ separator: string;
148
+ subMenu: string;
149
+ trigger: string;
150
+ }, import("tailwind-variants").TVReturnTypeLike<{
151
+ collapsible: {
152
+ icon: {
153
+ panel: string;
154
+ };
155
+ none: {
156
+ panel: string;
157
+ };
158
+ offcanvas: {
159
+ panel: string;
160
+ };
161
+ };
162
+ inDrawer: {
163
+ true: {
164
+ panel: string;
165
+ };
166
+ };
167
+ isCollapsible: {
168
+ true: {
169
+ subMenu: string;
170
+ };
171
+ };
172
+ isResizable: {
173
+ true: {
174
+ rail: string;
175
+ };
176
+ };
177
+ isSub: {
178
+ true: {
179
+ item: string;
180
+ };
181
+ };
182
+ side: {
183
+ left: {
184
+ base: string;
185
+ panel: string;
186
+ };
187
+ right: {
188
+ base: string;
189
+ panel: string;
190
+ };
191
+ };
192
+ variant: {
193
+ floating: {
194
+ panel: string;
195
+ rail: string;
196
+ };
197
+ inset: {
198
+ inset: string;
199
+ panel: string;
200
+ rail: string;
201
+ };
202
+ sidebar: {};
203
+ };
204
+ }, {
205
+ base: string;
206
+ content: string;
207
+ footer: string;
208
+ group: string;
209
+ groupLabel: string;
210
+ header: string;
211
+ inset: string;
212
+ item: string;
213
+ itemIcon: string;
214
+ itemIndicator: string;
215
+ itemLabel: string;
216
+ itemTooltip: string;
217
+ itemTrailing: string;
218
+ panel: string;
219
+ rail: string;
220
+ railTarget: string;
221
+ separator: string;
222
+ subMenu: string;
223
+ trigger: string;
224
+ }>>;
225
+ export type SidebarVariants = VariantProps<typeof sidebarVariants>;
226
+ //# sourceMappingURL=sidebar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AActD,eAAO,MAAM,eAAe;;QA6BtB,IAAI;YACF,KAAK;;QAEP,IAAI;YACF,KAAK;;QAEP,SAAS;YACP,KAAK;;;;QAMP,IAAI;YACF,KAAK;;;;QAMP,IAAI;YACF,OAAO;;;;QAMT,IAAI;YACF,IAAI;;;;QAMN,IAAI;YACF,IAAI;;;;QAIN,IAAI;YACF,IAAI;YACJ,KAAK;;QAEP,KAAK;YACH,IAAI;YACJ,KAAK;;;;QAcP,QAAQ;YACN,KAAK;YACL,IAAI;;QAEN,KAAK;YACH,KAAK;YACL,KAAK;YACL,IAAI;;QAEN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGX,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC"}