@ecopages/radiant-ui 0.1.0-beta.0 → 0.1.0-beta.2

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 (75) hide show
  1. package/README.md +4 -2
  2. package/dist/components/ui/alert/alert.css +56 -23
  3. package/dist/components/ui/breadcrumb/breadcrumb.css +85 -36
  4. package/dist/components/ui/carousel/carousel.css +465 -166
  5. package/dist/components/ui/checkbox/checkbox.css +196 -49
  6. package/dist/components/ui/combobox/combobox.css +213 -60
  7. package/dist/components/ui/dialog/dialog.css +176 -49
  8. package/dist/components/ui/disclosure/disclosure.css +228 -100
  9. package/dist/components/ui/feed/feed.css +30 -10
  10. package/dist/components/ui/field/field.css +18 -22
  11. package/dist/components/ui/form/form.css +7 -8
  12. package/dist/components/ui/grid/grid.css +172 -43
  13. package/dist/components/ui/input/input.css +126 -30
  14. package/dist/components/ui/label/label.css +20 -6
  15. package/dist/components/ui/listbox/listbox.css +137 -19
  16. package/dist/components/ui/menu-button/index.js +1 -1
  17. package/dist/components/ui/menu-button/index.js.map +4 -4
  18. package/dist/components/ui/menu-button/menu-button.css +158 -38
  19. package/dist/components/ui/menu-button/menu-button.script.d.ts +7 -7
  20. package/dist/components/ui/menubar/index.js +1 -1
  21. package/dist/components/ui/menubar/index.js.map +2 -2
  22. package/dist/components/ui/menubar/menubar.css +207 -39
  23. package/dist/components/ui/meter/meter.css +50 -13
  24. package/dist/components/ui/navigation-menu/navigation-menu.css +281 -85
  25. package/dist/components/ui/radio-group/radio-group.css +179 -40
  26. package/dist/components/ui/shared/floating-position.d.ts +37 -0
  27. package/dist/components/ui/shared/floating-position.test.d.ts +1 -0
  28. package/dist/components/ui/shared/placement.d.ts +2 -0
  29. package/dist/components/ui/sidebar/sidebar.css +407 -189
  30. package/dist/components/ui/slider/slider.css +220 -47
  31. package/dist/components/ui/spinbutton/spinbutton.css +65 -15
  32. package/dist/components/ui/switch/switch.css +164 -43
  33. package/dist/components/ui/tabs/tabs.css +145 -24
  34. package/dist/components/ui/textarea/textarea.css +128 -31
  35. package/dist/components/ui/toast/toast.css +388 -255
  36. package/dist/components/ui/toolbar/toolbar.css +118 -11
  37. package/dist/components/ui/tooltip/index.js +1 -1
  38. package/dist/components/ui/tooltip/index.js.map +4 -4
  39. package/dist/components/ui/tooltip/tooltip.css +119 -21
  40. package/dist/components/ui/tooltip/tooltip.script.d.ts +6 -6
  41. package/dist/components/ui/tree/tree.css +180 -49
  42. package/dist/components/ui/treegrid/treegrid.css +190 -72
  43. package/dist/components/ui/window-splitter/window-splitter.css +144 -31
  44. package/dist/index.js +1 -1
  45. package/dist/index.js.map +4 -4
  46. package/dist/styles/components/button.css +299 -113
  47. package/dist/styles/radiant-ui-core.css +828 -7
  48. package/dist/styles/radiant-ui.css +1497 -8
  49. package/dist/styles/styles.css +5830 -36
  50. package/dist/styles/tailwind.css +1607 -27
  51. package/dist/styles/themes/aurora.css +637 -15
  52. package/dist/styles/themes/default-compact-soft.css +580 -15
  53. package/dist/styles/themes/default.css +641 -2
  54. package/dist/styles/themes/glacier.css +637 -15
  55. package/dist/styles/tokens/colors/aurora.css +1 -73
  56. package/dist/styles/tokens/colors/basalt.css +1 -36
  57. package/dist/styles/tokens/colors/glacier.css +1 -45
  58. package/dist/styles/tokens/colors/palettes.css +1 -3
  59. package/dist/styles/tokens/elevation/default.css +11 -19
  60. package/dist/styles/tokens/elevation/flat.css +11 -19
  61. package/dist/styles/tokens/motion/default.css +6 -17
  62. package/dist/styles/tokens/motion/snappy.css +6 -17
  63. package/dist/styles/tokens/presets/colors/index.css +446 -4
  64. package/dist/styles/tokens/radius/default.css +17 -31
  65. package/dist/styles/tokens/radius/edgy.css +17 -32
  66. package/dist/styles/tokens/radius/sharp.css +20 -2
  67. package/dist/styles/tokens/radius/soft.css +17 -31
  68. package/dist/styles/tokens/semantic.css +445 -79
  69. package/dist/styles/tokens/spacing/compact.css +16 -21
  70. package/dist/styles/tokens/spacing/default.css +16 -21
  71. package/dist/styles/tokens/spacing/scale-bridge.css +1 -17
  72. package/dist/styles/tokens/spacing/wide.css +16 -21
  73. package/dist/styles/tokens/system.css +21 -33
  74. package/dist/styles/tokens/typography/default.css +23 -33
  75. package/package.json +5 -6
@@ -1,90 +1,286 @@
1
- @reference '../../../styles/radiant-ui.css';
2
-
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
3
  rui-navigation-menu {
4
- @apply block w-full;
4
+ display: block;
5
+ width: 100%;
5
6
  }
6
-
7
7
  @layer components {
8
- .rui-navigation-menu {
9
- @apply flex flex-col overflow-hidden rounded-container border border-border bg-surface shadow-sm;
10
- }
11
-
12
- .rui-navigation-menu__bar {
13
- @apply flex flex-wrap items-center gap-1 border-b border-border bg-background px-3 py-2;
14
- }
15
-
16
- .rui-navigation-menu__bar .rui-button,
8
+ .rui-navigation-menu {
9
+ display: flex;
10
+ flex-direction: column;
11
+ overflow: hidden;
12
+ border-radius: var(--radius-container, var(--radius-container));
13
+ border-style: var(--tw-border-style);
14
+ border-width: 1px;
15
+ border-color: var(--color-border, var(--border));
16
+ background-color: var(--color-surface, var(--surface));
17
+ --tw-shadow: var(--shadow-control);
18
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
19
+ }
20
+ .rui-navigation-menu__bar {
21
+ display: flex;
22
+ flex-wrap: wrap;
23
+ align-items: center;
24
+ gap: var(--spacing-1, var(--space-1));
25
+ border-bottom-style: var(--tw-border-style);
26
+ border-bottom-width: 1px;
27
+ border-color: var(--color-border, var(--border));
28
+ background-color: var(--color-background, var(--background));
29
+ padding-inline: var(--spacing-3, var(--space-3));
30
+ padding-block: var(--spacing-2, var(--space-2));
31
+ }
32
+ .rui-navigation-menu__bar .rui-button,
17
33
  .rui-navigation-menu__bar a.rui-button {
18
- @apply rounded-container no-underline;
19
- }
20
-
21
- .rui-navigation-menu [data-navigation-trigger] {
22
- @apply relative;
23
- }
24
-
25
- .rui-navigation-menu [data-navigation-trigger][aria-expanded='true'] {
26
- @apply bg-primary-container font-medium text-on-primary-container shadow-none;
27
- @apply ring-2 ring-inset ring-primary/25;
28
- }
29
-
30
- .rui-navigation-menu__panels {
31
- @apply bg-background;
32
- }
33
-
34
- .rui-navigation-menu__panels [data-navigation-panel] {
35
- @apply block px-5 py-5 text-sm text-on-background;
36
- }
37
-
38
- .rui-navigation-menu__panels [data-navigation-panel][hidden] {
39
- display: none;
40
- }
41
-
42
- .rui-navigation-menu__panels [data-navigation-panel] > p {
43
- @apply m-0 leading-relaxed text-on-surface;
44
- }
45
-
46
- .rui-navigation-menu__panels [data-navigation-panel] rui-grid {
47
- @apply max-w-3xl;
48
- }
49
-
50
- .rui-navigation-menu__panels [data-navigation-panel] rui-disclosure {
51
- @apply mt-4 block border-t border-border pt-3;
52
- }
53
-
54
- .rui-navigation-menu__panels [data-navigation-panel] rui-disclosure + rui-disclosure {
55
- @apply mt-1 border-t border-border pt-1;
56
- }
57
-
58
- .rui-navigation-menu__panels [data-navigation-panel] .rui-disclosure__panel:not([hidden]) {
59
- display: block;
60
- }
61
-
62
- .rui-navigation-menu__megamenu {
63
- @apply grid gap-6;
64
- }
65
-
66
- .rui-navigation-menu__link-columns {
67
- @apply grid gap-6 sm:grid-cols-2;
68
- }
69
-
70
- .rui-navigation-menu__link-group-label {
71
- @apply m-0 mb-2 text-xs font-semibold tracking-wide text-on-surface uppercase;
72
- }
73
-
74
- .rui-navigation-menu__link-list {
75
- @apply m-0 list-none space-y-1 p-0;
76
- }
77
-
78
- .rui-navigation-menu__link-list a {
79
- @apply block rounded-container px-2 py-1.5 font-medium text-link no-underline transition-colors duration-fast;
80
- @apply hover:bg-surface hover:underline;
81
- }
82
-
83
- .rui-navigation-menu__link-list a:focus-visible {
84
- @apply bg-surface ring-2 ring-focus-ring outline-hidden;
85
- }
86
-
87
- .rui-navigation-menu__disclosure-copy {
88
- @apply m-0 text-on-surface;
89
- }
34
+ border-radius: var(--radius-container, var(--radius-container));
35
+ text-decoration-line: none;
36
+ }
37
+ .rui-navigation-menu [data-navigation-trigger] {
38
+ position: relative;
39
+ }
40
+ .rui-navigation-menu [data-navigation-trigger][aria-expanded='true'] {
41
+ background-color: var(--color-primary-container, var(--primary-container));
42
+ --tw-font-weight: var(--font-weight-medium, var(--weight-medium));
43
+ font-weight: var(--font-weight-medium, var(--weight-medium));
44
+ color: var(--color-on-primary-container, var(--on-primary-container));
45
+ --tw-shadow: 0 0 #0000;
46
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
47
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
48
+ --tw-ring-color: var(--color-primary, var(--primary));
49
+ @supports (color: color-mix(in lab, red, red)) {
50
+ --tw-ring-color: color-mix(in oklab, var(--color-primary, var(--primary)) 25%, transparent);
51
+ }
52
+ --tw-ring-inset: inset;
53
+ }
54
+ .rui-navigation-menu__panels {
55
+ background-color: var(--color-background, var(--background));
56
+ }
57
+ .rui-navigation-menu__panels [data-navigation-panel] {
58
+ display: block;
59
+ padding-inline: var(--spacing-5, var(--space-5));
60
+ padding-block: var(--spacing-5, var(--space-5));
61
+ font-size: var(--text-sm, var(--text-sm));
62
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
63
+ color: var(--color-on-background, var(--on-background));
64
+ }
65
+ .rui-navigation-menu__panels [data-navigation-panel][hidden] {
66
+ display: none;
67
+ }
68
+ .rui-navigation-menu__panels [data-navigation-panel] > p {
69
+ margin: 0px;
70
+ --tw-leading: var(--leading-relaxed, 1.625);
71
+ line-height: var(--leading-relaxed, 1.625);
72
+ color: var(--color-on-surface, var(--on-surface));
73
+ }
74
+ .rui-navigation-menu__panels [data-navigation-panel] rui-grid {
75
+ max-width: var(--container-3xl, 48rem);
76
+ }
77
+ .rui-navigation-menu__panels [data-navigation-panel] rui-disclosure {
78
+ margin-top: var(--spacing-4, var(--space-4));
79
+ display: block;
80
+ border-top-style: var(--tw-border-style);
81
+ border-top-width: 1px;
82
+ border-color: var(--color-border, var(--border));
83
+ padding-top: var(--spacing-3, var(--space-3));
84
+ }
85
+ .rui-navigation-menu__panels [data-navigation-panel] rui-disclosure + rui-disclosure {
86
+ margin-top: var(--spacing-1, var(--space-1));
87
+ border-top-style: var(--tw-border-style);
88
+ border-top-width: 1px;
89
+ border-color: var(--color-border, var(--border));
90
+ padding-top: var(--spacing-1, var(--space-1));
91
+ }
92
+ .rui-navigation-menu__panels [data-navigation-panel] .rui-disclosure__panel:not([hidden]) {
93
+ display: block;
94
+ }
95
+ .rui-navigation-menu__megamenu {
96
+ display: grid;
97
+ gap: var(--spacing-6, var(--space-6));
98
+ }
99
+ .rui-navigation-menu__link-columns {
100
+ display: grid;
101
+ gap: var(--spacing-6, var(--space-6));
102
+ @media (width >= 40rem) {
103
+ grid-template-columns: repeat(2, minmax(0, 1fr));
104
+ }
105
+ }
106
+ .rui-navigation-menu__link-group-label {
107
+ margin: 0px;
108
+ margin-bottom: var(--spacing-2, var(--space-2));
109
+ font-size: var(--text-xs, var(--text-xs));
110
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
111
+ --tw-font-weight: var(--font-weight-semibold, var(--weight-semibold));
112
+ font-weight: var(--font-weight-semibold, var(--weight-semibold));
113
+ --tw-tracking: var(--tracking-wide, 0.025em);
114
+ letter-spacing: var(--tracking-wide, 0.025em);
115
+ color: var(--color-on-surface, var(--on-surface));
116
+ text-transform: uppercase;
117
+ }
118
+ .rui-navigation-menu__link-list {
119
+ margin: 0px;
120
+ list-style-type: none;
121
+ :where(& > :not(:last-child)) {
122
+ --tw-space-y-reverse: 0;
123
+ margin-block-start: calc(var(--spacing-1, var(--space-1)) * var(--tw-space-y-reverse));
124
+ margin-block-end: calc(var(--spacing-1, var(--space-1)) * calc(1 - var(--tw-space-y-reverse)));
125
+ }
126
+ padding: 0px;
127
+ }
128
+ .rui-navigation-menu__link-list a {
129
+ display: block;
130
+ border-radius: var(--radius-container, var(--radius-container));
131
+ padding-inline: var(--spacing-2, var(--space-2));
132
+ padding-block: calc(var(--spacing, 0.25rem) * 1.5);
133
+ --tw-font-weight: var(--font-weight-medium, var(--weight-medium));
134
+ font-weight: var(--font-weight-medium, var(--weight-medium));
135
+ color: var(--color-link, var(--link));
136
+ text-decoration-line: none;
137
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
138
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
139
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
140
+ --tw-duration: var(--transition-duration-fast, var(--duration-fast));
141
+ transition-duration: var(--transition-duration-fast, var(--duration-fast));
142
+ &:hover {
143
+ @media (hover: hover) {
144
+ background-color: var(--color-surface, var(--surface));
145
+ }
146
+ }
147
+ &:hover {
148
+ @media (hover: hover) {
149
+ text-decoration-line: underline;
150
+ }
151
+ }
152
+ }
153
+ .rui-navigation-menu__link-list a:focus-visible {
154
+ background-color: var(--color-surface, var(--surface));
155
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
156
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
157
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
158
+ --tw-outline-style: none;
159
+ outline-style: none;
160
+ @media (forced-colors: active) {
161
+ outline: 2px solid transparent;
162
+ outline-offset: 2px;
163
+ }
164
+ }
165
+ .rui-navigation-menu__disclosure-copy {
166
+ margin: 0px;
167
+ color: var(--color-on-surface, var(--on-surface));
168
+ }
169
+ }
170
+ @property --tw-border-style {
171
+ syntax: "*";
172
+ inherits: false;
173
+ initial-value: solid;
174
+ }
175
+ @property --tw-shadow {
176
+ syntax: "*";
177
+ inherits: false;
178
+ initial-value: 0 0 #0000;
179
+ }
180
+ @property --tw-shadow-color {
181
+ syntax: "*";
182
+ inherits: false;
183
+ }
184
+ @property --tw-shadow-alpha {
185
+ syntax: "<percentage>";
186
+ inherits: false;
187
+ initial-value: 100%;
188
+ }
189
+ @property --tw-inset-shadow {
190
+ syntax: "*";
191
+ inherits: false;
192
+ initial-value: 0 0 #0000;
193
+ }
194
+ @property --tw-inset-shadow-color {
195
+ syntax: "*";
196
+ inherits: false;
197
+ }
198
+ @property --tw-inset-shadow-alpha {
199
+ syntax: "<percentage>";
200
+ inherits: false;
201
+ initial-value: 100%;
202
+ }
203
+ @property --tw-ring-color {
204
+ syntax: "*";
205
+ inherits: false;
206
+ }
207
+ @property --tw-ring-shadow {
208
+ syntax: "*";
209
+ inherits: false;
210
+ initial-value: 0 0 #0000;
211
+ }
212
+ @property --tw-inset-ring-color {
213
+ syntax: "*";
214
+ inherits: false;
215
+ }
216
+ @property --tw-inset-ring-shadow {
217
+ syntax: "*";
218
+ inherits: false;
219
+ initial-value: 0 0 #0000;
220
+ }
221
+ @property --tw-ring-inset {
222
+ syntax: "*";
223
+ inherits: false;
224
+ }
225
+ @property --tw-ring-offset-width {
226
+ syntax: "<length>";
227
+ inherits: false;
228
+ initial-value: 0px;
229
+ }
230
+ @property --tw-ring-offset-color {
231
+ syntax: "*";
232
+ inherits: false;
233
+ initial-value: #fff;
234
+ }
235
+ @property --tw-ring-offset-shadow {
236
+ syntax: "*";
237
+ inherits: false;
238
+ initial-value: 0 0 #0000;
239
+ }
240
+ @property --tw-font-weight {
241
+ syntax: "*";
242
+ inherits: false;
243
+ }
244
+ @property --tw-leading {
245
+ syntax: "*";
246
+ inherits: false;
247
+ }
248
+ @property --tw-tracking {
249
+ syntax: "*";
250
+ inherits: false;
251
+ }
252
+ @property --tw-space-y-reverse {
253
+ syntax: "*";
254
+ inherits: false;
255
+ initial-value: 0;
256
+ }
257
+ @property --tw-duration {
258
+ syntax: "*";
259
+ inherits: false;
260
+ }
261
+ @layer properties {
262
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
263
+ *, ::before, ::after, ::backdrop {
264
+ --tw-border-style: solid;
265
+ --tw-shadow: 0 0 #0000;
266
+ --tw-shadow-color: initial;
267
+ --tw-shadow-alpha: 100%;
268
+ --tw-inset-shadow: 0 0 #0000;
269
+ --tw-inset-shadow-color: initial;
270
+ --tw-inset-shadow-alpha: 100%;
271
+ --tw-ring-color: initial;
272
+ --tw-ring-shadow: 0 0 #0000;
273
+ --tw-inset-ring-color: initial;
274
+ --tw-inset-ring-shadow: 0 0 #0000;
275
+ --tw-ring-inset: initial;
276
+ --tw-ring-offset-width: 0px;
277
+ --tw-ring-offset-color: #fff;
278
+ --tw-ring-offset-shadow: 0 0 #0000;
279
+ --tw-font-weight: initial;
280
+ --tw-leading: initial;
281
+ --tw-tracking: initial;
282
+ --tw-space-y-reverse: 0;
283
+ --tw-duration: initial;
284
+ }
285
+ }
90
286
  }
@@ -1,44 +1,183 @@
1
- @reference '../../../styles/radiant-ui.css';
2
-
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
3
  rui-radio-group {
4
- @apply block;
4
+ display: block;
5
5
  }
6
-
7
6
  @layer components {
8
- .rui-radio-group {
9
- @apply flex flex-col gap-inline;
10
- }
11
-
12
- .rui-radio {
13
- @apply inline-flex items-center gap-inline cursor-pointer text-sm text-on-background;
14
- }
15
-
16
- .rui-radio:has(input:disabled) {
17
- @apply cursor-not-allowed opacity-disabled;
18
- }
19
-
20
- .rui-radio__input {
21
- @apply sr-only;
22
- }
23
-
24
- .rui-radio__control {
25
- @apply relative size-4 shrink-0 rounded-full border border-border bg-background;
26
- }
27
-
28
- .rui-radio__input:focus-visible + .rui-radio__control {
29
- @apply ring-2 ring-focus-ring ring-offset-2;
30
- }
31
-
32
- .rui-radio__input:checked + .rui-radio__control {
33
- @apply border-primary;
34
- }
35
-
36
- .rui-radio__input:checked + .rui-radio__control::after {
37
- content: '';
38
- @apply absolute left-1/2 top-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary;
39
- }
40
-
41
- .rui-radio__label {
42
- @apply select-none;
43
- }
7
+ .rui-radio-group {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: var(--spacing-inline, var(--space-inline));
11
+ }
12
+ .rui-radio {
13
+ display: inline-flex;
14
+ cursor: pointer;
15
+ align-items: center;
16
+ gap: var(--spacing-inline, var(--space-inline));
17
+ font-size: var(--text-sm, var(--text-sm));
18
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
19
+ color: var(--color-on-background, var(--on-background));
20
+ }
21
+ .rui-radio:has(input:disabled) {
22
+ cursor: not-allowed;
23
+ opacity: var(--opacity-disabled, var(--opacity-disabled));
24
+ }
25
+ .rui-radio__input {
26
+ position: absolute;
27
+ width: 1px;
28
+ height: 1px;
29
+ padding: 0;
30
+ margin: -1px;
31
+ overflow: hidden;
32
+ clip-path: inset(50%);
33
+ white-space: nowrap;
34
+ border-width: 0;
35
+ }
36
+ .rui-radio__control {
37
+ position: relative;
38
+ width: var(--spacing-4, var(--space-4));
39
+ height: var(--spacing-4, var(--space-4));
40
+ flex-shrink: 0;
41
+ border-radius: var(--radius-full, var(--border-radius-full));
42
+ border-style: var(--tw-border-style);
43
+ border-width: 1px;
44
+ border-color: var(--color-border, var(--border));
45
+ background-color: var(--color-background, var(--background));
46
+ }
47
+ .rui-radio__input:focus-visible + .rui-radio__control {
48
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
49
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
50
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
51
+ --tw-ring-offset-width: 2px;
52
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
53
+ }
54
+ .rui-radio__input:checked + .rui-radio__control {
55
+ border-color: var(--color-primary, var(--primary));
56
+ }
57
+ .rui-radio__input:checked + .rui-radio__control::after {
58
+ content: '';
59
+ position: absolute;
60
+ top: calc(1 / 2 * 100%);
61
+ left: calc(1 / 2 * 100%);
62
+ width: var(--spacing-2, var(--space-2));
63
+ height: var(--spacing-2, var(--space-2));
64
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
65
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
66
+ translate: var(--tw-translate-x) var(--tw-translate-y);
67
+ border-radius: var(--radius-full, var(--border-radius-full));
68
+ background-color: var(--color-primary, var(--primary));
69
+ }
70
+ .rui-radio__label {
71
+ -webkit-user-select: none;
72
+ user-select: none;
73
+ }
74
+ }
75
+ @property --tw-border-style {
76
+ syntax: "*";
77
+ inherits: false;
78
+ initial-value: solid;
79
+ }
80
+ @property --tw-shadow {
81
+ syntax: "*";
82
+ inherits: false;
83
+ initial-value: 0 0 #0000;
84
+ }
85
+ @property --tw-shadow-color {
86
+ syntax: "*";
87
+ inherits: false;
88
+ }
89
+ @property --tw-shadow-alpha {
90
+ syntax: "<percentage>";
91
+ inherits: false;
92
+ initial-value: 100%;
93
+ }
94
+ @property --tw-inset-shadow {
95
+ syntax: "*";
96
+ inherits: false;
97
+ initial-value: 0 0 #0000;
98
+ }
99
+ @property --tw-inset-shadow-color {
100
+ syntax: "*";
101
+ inherits: false;
102
+ }
103
+ @property --tw-inset-shadow-alpha {
104
+ syntax: "<percentage>";
105
+ inherits: false;
106
+ initial-value: 100%;
107
+ }
108
+ @property --tw-ring-color {
109
+ syntax: "*";
110
+ inherits: false;
111
+ }
112
+ @property --tw-ring-shadow {
113
+ syntax: "*";
114
+ inherits: false;
115
+ initial-value: 0 0 #0000;
116
+ }
117
+ @property --tw-inset-ring-color {
118
+ syntax: "*";
119
+ inherits: false;
120
+ }
121
+ @property --tw-inset-ring-shadow {
122
+ syntax: "*";
123
+ inherits: false;
124
+ initial-value: 0 0 #0000;
125
+ }
126
+ @property --tw-ring-inset {
127
+ syntax: "*";
128
+ inherits: false;
129
+ }
130
+ @property --tw-ring-offset-width {
131
+ syntax: "<length>";
132
+ inherits: false;
133
+ initial-value: 0px;
134
+ }
135
+ @property --tw-ring-offset-color {
136
+ syntax: "*";
137
+ inherits: false;
138
+ initial-value: #fff;
139
+ }
140
+ @property --tw-ring-offset-shadow {
141
+ syntax: "*";
142
+ inherits: false;
143
+ initial-value: 0 0 #0000;
144
+ }
145
+ @property --tw-translate-x {
146
+ syntax: "*";
147
+ inherits: false;
148
+ initial-value: 0;
149
+ }
150
+ @property --tw-translate-y {
151
+ syntax: "*";
152
+ inherits: false;
153
+ initial-value: 0;
154
+ }
155
+ @property --tw-translate-z {
156
+ syntax: "*";
157
+ inherits: false;
158
+ initial-value: 0;
159
+ }
160
+ @layer properties {
161
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
162
+ *, ::before, ::after, ::backdrop {
163
+ --tw-border-style: solid;
164
+ --tw-shadow: 0 0 #0000;
165
+ --tw-shadow-color: initial;
166
+ --tw-shadow-alpha: 100%;
167
+ --tw-inset-shadow: 0 0 #0000;
168
+ --tw-inset-shadow-color: initial;
169
+ --tw-inset-shadow-alpha: 100%;
170
+ --tw-ring-color: initial;
171
+ --tw-ring-shadow: 0 0 #0000;
172
+ --tw-inset-ring-color: initial;
173
+ --tw-inset-ring-shadow: 0 0 #0000;
174
+ --tw-ring-inset: initial;
175
+ --tw-ring-offset-width: 0px;
176
+ --tw-ring-offset-color: #fff;
177
+ --tw-ring-offset-shadow: 0 0 #0000;
178
+ --tw-translate-x: 0;
179
+ --tw-translate-y: 0;
180
+ --tw-translate-z: 0;
181
+ }
182
+ }
44
183
  }
@@ -0,0 +1,37 @@
1
+ import type { RuiPlacement } from './placement';
2
+ export type FloatingSize = {
3
+ width: number;
4
+ height: number;
5
+ };
6
+ export type FloatingCoords = {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ export type FloatingViewport = {
11
+ width: number;
12
+ height: number;
13
+ padding: number;
14
+ };
15
+ /**
16
+ * Computes fixed-position coords for a floating surface.
17
+ *
18
+ * @remarks
19
+ * Prefers `placement`, then flips on the primary axis when the opposite side
20
+ * has more free space. Clamps only the cross-axis so the floating surface
21
+ * never slides onto its anchor.
22
+ */
23
+ export declare function computeFloatingCoords(anchor: DOMRect, size: FloatingSize, placement: RuiPlacement, gap: number, viewport?: FloatingViewport): FloatingCoords;
24
+ /** Applies fixed coords to a floating element. */
25
+ export declare function applyFloatingPosition(anchor: HTMLElement, floating: HTMLElement, placement: RuiPlacement, gap: number): void;
26
+ export type AttachFloatingOptions = {
27
+ anchor: HTMLElement;
28
+ floating: HTMLElement;
29
+ getPlacement: () => RuiPlacement;
30
+ gap: number;
31
+ };
32
+ /**
33
+ * Positions on attach and keeps the floating element updated on scroll/resize.
34
+ *
35
+ * @returns Cleanup that removes listeners and observers.
36
+ */
37
+ export declare function attachFloating({ anchor, floating, getPlacement, gap }: AttachFloatingOptions): () => void;
@@ -0,0 +1,2 @@
1
+ /** Placement of a floating surface relative to its anchor. */
2
+ export type RuiPlacement = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';