@akbarsafari00/ods-react 0.1.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 (128) hide show
  1. package/README.md +61 -0
  2. package/dist/components/alert-dialog.d.ts +32 -0
  3. package/dist/components/alert-dialog.d.ts.map +1 -0
  4. package/dist/components/alert-dialog.js +48 -0
  5. package/dist/components/alert-dialog.js.map +1 -0
  6. package/dist/components/alert.d.ts +11 -0
  7. package/dist/components/alert.d.ts.map +1 -0
  8. package/dist/components/alert.js +28 -0
  9. package/dist/components/alert.js.map +1 -0
  10. package/dist/components/badge.d.ts +10 -0
  11. package/dist/components/badge.d.ts.map +1 -0
  12. package/dist/components/badge.js +25 -0
  13. package/dist/components/badge.js.map +1 -0
  14. package/dist/components/button-group.d.ts +17 -0
  15. package/dist/components/button-group.d.ts.map +1 -0
  16. package/dist/components/button-group.js +38 -0
  17. package/dist/components/button-group.js.map +1 -0
  18. package/dist/components/button.d.ts +8 -0
  19. package/dist/components/button.d.ts.map +1 -0
  20. package/dist/components/button.js +21 -0
  21. package/dist/components/button.js.map +1 -0
  22. package/dist/components/card.d.ts +10 -0
  23. package/dist/components/card.d.ts.map +1 -0
  24. package/dist/components/card.js +25 -0
  25. package/dist/components/card.js.map +1 -0
  26. package/dist/components/checkbox.d.ts +5 -0
  27. package/dist/components/checkbox.d.ts.map +1 -0
  28. package/dist/components/checkbox.js +10 -0
  29. package/dist/components/checkbox.js.map +1 -0
  30. package/dist/components/collapsible.d.ts +15 -0
  31. package/dist/components/collapsible.d.ts.map +1 -0
  32. package/dist/components/collapsible.js +16 -0
  33. package/dist/components/collapsible.js.map +1 -0
  34. package/dist/components/combobox.d.ts +34 -0
  35. package/dist/components/combobox.d.ts.map +1 -0
  36. package/dist/components/combobox.js +280 -0
  37. package/dist/components/combobox.js.map +1 -0
  38. package/dist/components/context-menu.d.ts +60 -0
  39. package/dist/components/context-menu.d.ts.map +1 -0
  40. package/dist/components/context-menu.js +71 -0
  41. package/dist/components/context-menu.js.map +1 -0
  42. package/dist/components/data-table.d.ts +68 -0
  43. package/dist/components/data-table.d.ts.map +1 -0
  44. package/dist/components/data-table.js +100 -0
  45. package/dist/components/data-table.js.map +1 -0
  46. package/dist/components/dialog.d.ts +32 -0
  47. package/dist/components/dialog.d.ts.map +1 -0
  48. package/dist/components/dialog.js +43 -0
  49. package/dist/components/dialog.js.map +1 -0
  50. package/dist/components/drawer.d.ts +32 -0
  51. package/dist/components/drawer.d.ts.map +1 -0
  52. package/dist/components/drawer.js +43 -0
  53. package/dist/components/drawer.js.map +1 -0
  54. package/dist/components/field.d.ts +50 -0
  55. package/dist/components/field.d.ts.map +1 -0
  56. package/dist/components/field.js +93 -0
  57. package/dist/components/field.js.map +1 -0
  58. package/dist/components/icon-button.d.ts +14 -0
  59. package/dist/components/icon-button.d.ts.map +1 -0
  60. package/dist/components/icon-button.js +28 -0
  61. package/dist/components/icon-button.js.map +1 -0
  62. package/dist/components/input-group.d.ts +17 -0
  63. package/dist/components/input-group.d.ts.map +1 -0
  64. package/dist/components/input-group.js +56 -0
  65. package/dist/components/input-group.js.map +1 -0
  66. package/dist/components/input.d.ts +9 -0
  67. package/dist/components/input.d.ts.map +1 -0
  68. package/dist/components/input.js +7 -0
  69. package/dist/components/input.js.map +1 -0
  70. package/dist/components/label.d.ts +5 -0
  71. package/dist/components/label.d.ts.map +1 -0
  72. package/dist/components/label.js +8 -0
  73. package/dist/components/label.js.map +1 -0
  74. package/dist/components/menubar.d.ts +73 -0
  75. package/dist/components/menubar.d.ts.map +1 -0
  76. package/dist/components/menubar.js +74 -0
  77. package/dist/components/menubar.js.map +1 -0
  78. package/dist/components/pagination.d.ts +23 -0
  79. package/dist/components/pagination.d.ts.map +1 -0
  80. package/dist/components/pagination.js +64 -0
  81. package/dist/components/pagination.js.map +1 -0
  82. package/dist/components/progress.d.ts +17 -0
  83. package/dist/components/progress.d.ts.map +1 -0
  84. package/dist/components/progress.js +23 -0
  85. package/dist/components/progress.js.map +1 -0
  86. package/dist/components/radio-group.d.ts +6 -0
  87. package/dist/components/radio-group.d.ts.map +1 -0
  88. package/dist/components/radio-group.js +12 -0
  89. package/dist/components/radio-group.js.map +1 -0
  90. package/dist/components/select.d.ts +14 -0
  91. package/dist/components/select.d.ts.map +1 -0
  92. package/dist/components/select.js +38 -0
  93. package/dist/components/select.js.map +1 -0
  94. package/dist/components/separator.d.ts +5 -0
  95. package/dist/components/separator.d.ts.map +1 -0
  96. package/dist/components/separator.js +8 -0
  97. package/dist/components/separator.js.map +1 -0
  98. package/dist/components/skeleton.d.ts +23 -0
  99. package/dist/components/skeleton.d.ts.map +1 -0
  100. package/dist/components/skeleton.js +18 -0
  101. package/dist/components/skeleton.js.map +1 -0
  102. package/dist/components/switch.d.ts +7 -0
  103. package/dist/components/switch.d.ts.map +1 -0
  104. package/dist/components/switch.js +8 -0
  105. package/dist/components/switch.js.map +1 -0
  106. package/dist/components/table.d.ts +22 -0
  107. package/dist/components/table.d.ts.map +1 -0
  108. package/dist/components/table.js +31 -0
  109. package/dist/components/table.js.map +1 -0
  110. package/dist/components/tabs.d.ts +36 -0
  111. package/dist/components/tabs.d.ts.map +1 -0
  112. package/dist/components/tabs.js +49 -0
  113. package/dist/components/tabs.js.map +1 -0
  114. package/dist/components/textarea.d.ts +4 -0
  115. package/dist/components/textarea.d.ts.map +1 -0
  116. package/dist/components/textarea.js +7 -0
  117. package/dist/components/textarea.js.map +1 -0
  118. package/dist/index.d.ts +30 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +30 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/lib/utils.d.ts +3 -0
  123. package/dist/lib/utils.d.ts.map +1 -0
  124. package/dist/lib/utils.js +6 -0
  125. package/dist/lib/utils.js.map +1 -0
  126. package/dist/styles/globals.css +660 -0
  127. package/dist/styles/themes/ods-default.css +130 -0
  128. package/package.json +88 -0
@@ -0,0 +1,660 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+ @import "@fontsource-variable/geist";
4
+ @import "./themes/ods-default.css";
5
+
6
+ @custom-variant dark (&:is(.dark *));
7
+ @source "../../../apps/**/*.{ts,tsx}";
8
+ @source "../../../components/**/*.{ts,tsx}";
9
+ @source "../**/*.{ts,tsx}";
10
+
11
+ @theme inline {
12
+ --font-heading: var(--font-sans);
13
+ --color-sidebar-ring: var(--sidebar-ring);
14
+ --color-sidebar-border: var(--sidebar-border);
15
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
16
+ --color-sidebar-accent: var(--sidebar-accent);
17
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
18
+ --color-sidebar-primary: var(--sidebar-primary);
19
+ --color-sidebar-foreground: var(--sidebar-foreground);
20
+ --color-sidebar: var(--sidebar);
21
+ --color-chart-5: var(--chart-5);
22
+ --color-chart-4: var(--chart-4);
23
+ --color-chart-3: var(--chart-3);
24
+ --color-chart-2: var(--chart-2);
25
+ --color-chart-1: var(--chart-1);
26
+ --color-ring: var(--ring);
27
+ --color-input: var(--input);
28
+ --color-border: var(--border);
29
+ --color-destructive: var(--destructive);
30
+ --color-destructive-foreground: var(--destructive-foreground);
31
+ --color-success: var(--success);
32
+ --color-success-foreground: var(--success-foreground);
33
+ --color-warning: var(--warning);
34
+ --color-warning-foreground: var(--warning-foreground);
35
+ --color-info: var(--info);
36
+ --color-info-foreground: var(--info-foreground);
37
+ --color-surface: var(--surface);
38
+ --color-surface-muted: var(--surface-muted);
39
+ --color-surface-raised: var(--surface-raised);
40
+ --color-accent-foreground: var(--accent-foreground);
41
+ --color-accent: var(--accent);
42
+ --color-muted-foreground: var(--muted-foreground);
43
+ --color-muted: var(--muted);
44
+ --color-secondary-foreground: var(--secondary-foreground);
45
+ --color-secondary: var(--secondary);
46
+ --color-primary-foreground: var(--primary-foreground);
47
+ --color-primary: var(--primary);
48
+ --color-popover-foreground: var(--popover-foreground);
49
+ --color-popover: var(--popover);
50
+ --color-card-foreground: var(--card-foreground);
51
+ --color-card: var(--card);
52
+ --color-foreground: var(--foreground);
53
+ --color-background: var(--background);
54
+ --radius-sm: calc(var(--radius) * 0.6);
55
+ --radius-md: calc(var(--radius) * 0.8);
56
+ --radius-lg: var(--radius);
57
+ --radius-xl: calc(var(--radius) * 1.4);
58
+ --radius-2xl: calc(var(--radius) * 1.8);
59
+ --radius-3xl: calc(var(--radius) * 2.2);
60
+ --radius-4xl: calc(var(--radius) * 2.6);
61
+ --font-sans: "Geist Variable", "Noto Sans Arabic", Tahoma, sans-serif;
62
+ }
63
+
64
+ @layer base {
65
+ * {
66
+ @apply border-border outline-ring/50;
67
+ }
68
+ html {
69
+ @apply bg-background;
70
+ scroll-behavior: smooth;
71
+ }
72
+ body {
73
+ @apply min-h-svh bg-background text-foreground antialiased;
74
+ }
75
+ }
76
+
77
+ [data-slot="dialog-overlay"][data-state="open"],
78
+ [data-slot="alert-dialog-overlay"][data-state="open"],
79
+ [data-slot="drawer-overlay"][data-state="open"] {
80
+ animation-name: ods-overlay-in;
81
+ animation-duration: var(--ods-motion-duration-enter);
82
+ animation-timing-function: var(--ods-motion-easing-enter);
83
+ animation-fill-mode: both;
84
+ }
85
+
86
+ [data-slot="dialog-overlay"][data-state="closed"],
87
+ [data-slot="alert-dialog-overlay"][data-state="closed"],
88
+ [data-slot="drawer-overlay"][data-state="closed"] {
89
+ animation-name: ods-overlay-out;
90
+ animation-duration: var(--ods-motion-duration-exit);
91
+ animation-timing-function: var(--ods-motion-easing-exit);
92
+ animation-fill-mode: both;
93
+ }
94
+
95
+ [data-slot="alert-dialog-content"] {
96
+ --ods-alert-dialog-inline-size: 32rem;
97
+ inset-block: auto 0;
98
+ inset-inline: 0;
99
+ width: 100%;
100
+ border-radius: var(--ods-radius-surface) var(--ods-radius-surface) 0 0;
101
+ will-change: transform, opacity;
102
+ }
103
+
104
+ [data-slot="alert-dialog-content"][data-size="compact"] {
105
+ --ods-alert-dialog-inline-size: 28rem;
106
+ }
107
+
108
+ [data-slot="alert-dialog-content"][data-state="open"] {
109
+ animation-name: ods-dialog-sheet-in;
110
+ animation-duration: var(--ods-motion-duration-enter);
111
+ animation-timing-function: var(--ods-motion-easing-enter);
112
+ animation-fill-mode: both;
113
+ }
114
+
115
+ [data-slot="alert-dialog-content"][data-state="closed"] {
116
+ animation-name: ods-dialog-sheet-out;
117
+ animation-duration: var(--ods-motion-duration-exit);
118
+ animation-timing-function: var(--ods-motion-easing-exit);
119
+ animation-fill-mode: both;
120
+ }
121
+
122
+ @media (min-width: 40rem) {
123
+ [data-slot="alert-dialog-content"] {
124
+ inset: auto;
125
+ inset-block: auto;
126
+ inset-inline: auto;
127
+ top: 50%;
128
+ left: 50%;
129
+ width: min(var(--ods-alert-dialog-inline-size), calc(100vw - 2rem));
130
+ border-radius: var(--ods-radius-surface);
131
+ transform: translate(-50%, -50%);
132
+ }
133
+
134
+ [data-slot="alert-dialog-content"][data-state="open"] {
135
+ animation-name: ods-dialog-modal-in;
136
+ }
137
+
138
+ [data-slot="alert-dialog-content"][data-state="closed"] {
139
+ animation-name: ods-dialog-modal-out;
140
+ }
141
+ }
142
+
143
+ [data-slot="dialog-content"] {
144
+ --ods-dialog-inline-size: 32rem;
145
+ inset-block: auto 0;
146
+ inset-inline: 0;
147
+ width: 100%;
148
+ border-radius: var(--ods-radius-surface) var(--ods-radius-surface) 0 0;
149
+ will-change: transform, opacity;
150
+ }
151
+
152
+ [data-slot="dialog-content"][data-size="compact"] {
153
+ --ods-dialog-inline-size: 24rem;
154
+ }
155
+
156
+ [data-slot="dialog-content"][data-size="wide"] {
157
+ --ods-dialog-inline-size: 40rem;
158
+ }
159
+
160
+ [data-slot="dialog-handle"] {
161
+ position: absolute;
162
+ inset-block-start: 0.5rem;
163
+ inset-inline-start: 50%;
164
+ width: 2.5rem;
165
+ height: 0.25rem;
166
+ border-radius: 9999px;
167
+ background: var(--border);
168
+ transform: translateX(-50%);
169
+ }
170
+
171
+ [data-slot="dialog-content"][data-state="open"] {
172
+ animation-name: ods-dialog-sheet-in;
173
+ animation-duration: var(--ods-motion-duration-enter);
174
+ animation-timing-function: var(--ods-motion-easing-enter);
175
+ animation-fill-mode: both;
176
+ }
177
+
178
+ [data-slot="dialog-content"][data-state="closed"] {
179
+ animation-name: ods-dialog-sheet-out;
180
+ animation-duration: var(--ods-motion-duration-exit);
181
+ animation-timing-function: var(--ods-motion-easing-exit);
182
+ animation-fill-mode: both;
183
+ }
184
+
185
+ @media (min-width: 40rem) {
186
+ [data-slot="dialog-content"] {
187
+ inset: auto;
188
+ inset-block: auto;
189
+ inset-inline: auto;
190
+ top: 50%;
191
+ left: 50%;
192
+ width: min(var(--ods-dialog-inline-size), calc(100vw - 2rem));
193
+ border-radius: var(--ods-radius-surface);
194
+ transform: translate(-50%, -50%);
195
+ }
196
+
197
+ [data-slot="dialog-handle"] {
198
+ display: none;
199
+ }
200
+
201
+ [data-slot="dialog-content"][data-state="open"] {
202
+ animation-name: ods-dialog-modal-in;
203
+ }
204
+
205
+ [data-slot="dialog-content"][data-state="closed"] {
206
+ animation-name: ods-dialog-modal-out;
207
+ }
208
+ }
209
+
210
+ [data-slot="drawer-content"] {
211
+ --ods-drawer-inline-size: 32rem;
212
+ --ods-drawer-motion-offset: 100%;
213
+ inset-block: 0;
214
+ width: min(var(--ods-drawer-inline-size), calc(100vw - 1rem));
215
+ touch-action: pan-y;
216
+ will-change: transform;
217
+ }
218
+
219
+ [data-slot="drawer-content"][data-width="narrow"] {
220
+ --ods-drawer-inline-size: 24rem;
221
+ }
222
+
223
+ [data-slot="drawer-content"][data-width="medium"] {
224
+ --ods-drawer-inline-size: 32rem;
225
+ }
226
+
227
+ [data-slot="drawer-content"][data-width="wide"] {
228
+ --ods-drawer-inline-size: 42rem;
229
+ }
230
+
231
+ [data-slot="drawer-content"][data-side="end"] {
232
+ inset-inline-end: 0;
233
+ border-inline-start: 1px solid var(--border);
234
+ border-start-start-radius: var(--ods-radius-surface);
235
+ border-end-start-radius: var(--ods-radius-surface);
236
+ }
237
+
238
+ [data-slot="drawer-content"][data-side="start"] {
239
+ --ods-drawer-motion-offset: -100%;
240
+ inset-inline-start: 0;
241
+ border-inline-end: 1px solid var(--border);
242
+ border-start-end-radius: var(--ods-radius-surface);
243
+ border-end-end-radius: var(--ods-radius-surface);
244
+ }
245
+
246
+ :dir(rtl)[data-slot="drawer-content"][data-side="end"] {
247
+ --ods-drawer-motion-offset: -100%;
248
+ }
249
+
250
+ :dir(rtl)[data-slot="drawer-content"][data-side="start"] {
251
+ --ods-drawer-motion-offset: 100%;
252
+ }
253
+
254
+ [data-slot="drawer-content"][data-state="open"] {
255
+ animation-name: ods-drawer-in;
256
+ animation-duration: var(--ods-motion-duration-panel-enter);
257
+ animation-timing-function: var(--ods-motion-easing-enter);
258
+ animation-fill-mode: both;
259
+ }
260
+
261
+ [data-slot="drawer-content"][data-state="closed"] {
262
+ animation-name: ods-drawer-out;
263
+ animation-duration: var(--ods-motion-duration-panel-exit);
264
+ animation-timing-function: var(--ods-motion-easing-exit);
265
+ animation-fill-mode: both;
266
+ }
267
+
268
+ [data-slot="collapsible-content"] {
269
+ will-change: height, opacity;
270
+ }
271
+
272
+ [data-slot="collapsible-content"][data-state="open"] {
273
+ animation-name: ods-collapsible-expand;
274
+ animation-duration: var(--ods-motion-duration-enter);
275
+ animation-timing-function: var(--ods-motion-easing-enter);
276
+ animation-fill-mode: both;
277
+ }
278
+
279
+ [data-slot="collapsible-content"][data-state="closed"] {
280
+ animation-name: ods-collapsible-collapse;
281
+ animation-duration: var(--ods-motion-duration-exit);
282
+ animation-timing-function: var(--ods-motion-easing-exit);
283
+ animation-fill-mode: both;
284
+ }
285
+
286
+ [data-slot="context-menu-content"] {
287
+ min-width: min(14rem, var(--radix-context-menu-content-available-width));
288
+ max-width: min(
289
+ 20rem,
290
+ calc(100vw - 1rem),
291
+ var(--radix-context-menu-content-available-width)
292
+ );
293
+ }
294
+
295
+ [data-slot="context-menu-sub-content"] {
296
+ min-width: min(12rem, var(--radix-context-menu-content-available-width));
297
+ max-width: min(
298
+ 20rem,
299
+ calc(100vw - 1rem),
300
+ var(--radix-context-menu-content-available-width)
301
+ );
302
+ }
303
+
304
+ [data-slot="context-menu-content"],
305
+ [data-slot="context-menu-sub-content"] {
306
+ max-height: var(--radix-context-menu-content-available-height);
307
+ transform-origin: var(--radix-context-menu-content-transform-origin);
308
+ will-change: transform, opacity;
309
+ }
310
+
311
+ [data-slot="context-menu-content"][data-state="open"],
312
+ [data-slot="context-menu-sub-content"][data-state="open"] {
313
+ animation-name: ods-menu-in;
314
+ animation-duration: var(--ods-motion-duration-feedback);
315
+ animation-timing-function: var(--ods-motion-easing-enter);
316
+ animation-fill-mode: both;
317
+ }
318
+
319
+ [data-slot="context-menu-content"][data-state="closed"],
320
+ [data-slot="context-menu-sub-content"][data-state="closed"] {
321
+ animation-name: ods-menu-out;
322
+ animation-duration: var(--ods-motion-duration-exit);
323
+ animation-timing-function: var(--ods-motion-easing-exit);
324
+ animation-fill-mode: both;
325
+ }
326
+
327
+ [data-slot="tabs-content"][data-state="active"] {
328
+ animation-name: ods-tabs-content-in;
329
+ animation-duration: var(--ods-motion-duration-feedback);
330
+ animation-timing-function: var(--ods-motion-easing-enter);
331
+ animation-fill-mode: both;
332
+ }
333
+
334
+ [data-slot="skeleton"] {
335
+ position: relative;
336
+ }
337
+
338
+ [data-slot="skeleton"]::after {
339
+ position: absolute;
340
+ inset: 0;
341
+ content: "";
342
+ background: linear-gradient(
343
+ 90deg,
344
+ transparent 0%,
345
+ color-mix(in oklab, var(--surface-raised) 70%, transparent) 50%,
346
+ transparent 100%
347
+ );
348
+ transform: translateX(-100%);
349
+ animation: ods-skeleton-wave 1.6s var(--ods-motion-easing-standard) infinite;
350
+ }
351
+
352
+ :dir(rtl) [data-slot="skeleton"]::after {
353
+ transform: translateX(100%);
354
+ animation-name: ods-skeleton-wave-rtl;
355
+ }
356
+
357
+ [data-slot="skeleton"][data-motion="pulse"],
358
+ [data-slot="skeleton-group"][data-motion="pulse"] [data-slot="skeleton"] {
359
+ animation: ods-skeleton-pulse 1.6s ease-in-out infinite;
360
+ }
361
+
362
+ [data-slot="skeleton"][data-motion="pulse"]::after,
363
+ [data-slot="skeleton-group"][data-motion="pulse"] [data-slot="skeleton"]::after,
364
+ [data-slot="skeleton"][data-motion="none"]::after,
365
+ [data-slot="skeleton-group"][data-motion="none"] [data-slot="skeleton"]::after {
366
+ display: none;
367
+ }
368
+
369
+ [data-slot="skeleton"][data-motion="none"],
370
+ [data-slot="skeleton-group"][data-motion="none"] [data-slot="skeleton"] {
371
+ animation: none;
372
+ }
373
+
374
+ [data-slot="pagination-direction-icon"] {
375
+ transition: transform var(--ods-motion-duration-feedback)
376
+ var(--ods-motion-easing-standard);
377
+ }
378
+
379
+ :dir(rtl) [data-slot="pagination-direction-icon"] {
380
+ transform: rotate(180deg);
381
+ }
382
+
383
+ [data-slot="progress-indicator"][data-state="loading"],
384
+ [data-slot="progress-indicator"][data-state="complete"] {
385
+ inline-size: var(--ods-progress-value);
386
+ margin-inline-end: auto;
387
+ }
388
+
389
+ [data-slot="progress-indicator"][data-state="indeterminate"] {
390
+ inline-size: 40%;
391
+ animation: ods-progress-indeterminate 1.4s var(--ods-motion-easing-standard)
392
+ infinite;
393
+ }
394
+
395
+ :dir(rtl) [data-slot="progress-indicator"][data-state="indeterminate"] {
396
+ animation-name: ods-progress-indeterminate-rtl;
397
+ }
398
+
399
+ [data-slot="menubar-content"] {
400
+ min-width: min(14rem, var(--radix-menubar-content-available-width));
401
+ max-width: min(
402
+ 20rem,
403
+ calc(100vw - 1rem),
404
+ var(--radix-menubar-content-available-width)
405
+ );
406
+ }
407
+
408
+ [data-slot="menubar-sub-content"] {
409
+ min-width: min(12rem, var(--radix-menubar-content-available-width));
410
+ max-width: min(
411
+ 20rem,
412
+ calc(100vw - 1rem),
413
+ var(--radix-menubar-content-available-width)
414
+ );
415
+ }
416
+
417
+ [data-slot="menubar-content"],
418
+ [data-slot="menubar-sub-content"] {
419
+ max-height: var(--radix-menubar-content-available-height);
420
+ transform-origin: var(--radix-menubar-content-transform-origin);
421
+ will-change: transform, opacity;
422
+ }
423
+
424
+ [data-slot="menubar-content"][data-state="open"],
425
+ [data-slot="menubar-sub-content"][data-state="open"] {
426
+ animation-name: ods-menu-in;
427
+ animation-duration: var(--ods-motion-duration-feedback);
428
+ animation-timing-function: var(--ods-motion-easing-enter);
429
+ animation-fill-mode: both;
430
+ }
431
+
432
+ [data-slot="menubar-content"][data-state="closed"],
433
+ [data-slot="menubar-sub-content"][data-state="closed"] {
434
+ animation-name: ods-menu-out;
435
+ animation-duration: var(--ods-motion-duration-exit);
436
+ animation-timing-function: var(--ods-motion-easing-exit);
437
+ animation-fill-mode: both;
438
+ }
439
+
440
+ [data-slot="menubar-direction-icon"] {
441
+ transition: transform var(--ods-motion-duration-feedback)
442
+ var(--ods-motion-easing-standard);
443
+ }
444
+
445
+ :dir(rtl) [data-slot="menubar-direction-icon"] {
446
+ transform: rotate(180deg);
447
+ }
448
+
449
+ :dir(rtl) [data-slot="data-table-direction-icon"] {
450
+ transform: rotate(180deg);
451
+ }
452
+
453
+ [data-slot="combobox-content"] {
454
+ animation: ods-menu-in var(--ods-motion-duration-feedback)
455
+ var(--ods-motion-easing-enter) both;
456
+ will-change: transform, opacity;
457
+ }
458
+
459
+ [data-slot="combobox-content"][data-side="bottom"] {
460
+ transform-origin: top;
461
+ }
462
+
463
+ [data-slot="combobox-content"][data-side="top"] {
464
+ transform-origin: bottom;
465
+ }
466
+
467
+ @media (prefers-reduced-motion: reduce) {
468
+ [data-slot="skeleton"],
469
+ [data-slot="skeleton"]::after {
470
+ animation: none !important;
471
+ }
472
+
473
+ [data-slot="skeleton"]::after {
474
+ display: none;
475
+ }
476
+
477
+ [data-slot="progress-indicator"][data-state="indeterminate"] {
478
+ inline-size: 100%;
479
+ opacity: 0.45;
480
+ transform: none;
481
+ animation: none;
482
+ }
483
+
484
+ [data-slot="combobox-content"] {
485
+ animation: none;
486
+ }
487
+ }
488
+
489
+ @keyframes ods-overlay-in {
490
+ from {
491
+ opacity: 0;
492
+ }
493
+ to {
494
+ opacity: 1;
495
+ }
496
+ }
497
+
498
+ @keyframes ods-overlay-out {
499
+ from {
500
+ opacity: 1;
501
+ }
502
+ to {
503
+ opacity: 0;
504
+ }
505
+ }
506
+
507
+ @keyframes ods-dialog-sheet-in {
508
+ from {
509
+ opacity: 0;
510
+ transform: translateY(100%);
511
+ }
512
+ to {
513
+ opacity: 1;
514
+ transform: translateY(0);
515
+ }
516
+ }
517
+
518
+ @keyframes ods-dialog-sheet-out {
519
+ from {
520
+ opacity: 1;
521
+ transform: translateY(0);
522
+ }
523
+ to {
524
+ opacity: 0;
525
+ transform: translateY(100%);
526
+ }
527
+ }
528
+
529
+ @keyframes ods-dialog-modal-in {
530
+ from {
531
+ opacity: 0;
532
+ transform: translate(-50%, -50%) scale(0.97);
533
+ }
534
+ to {
535
+ opacity: 1;
536
+ transform: translate(-50%, -50%) scale(1);
537
+ }
538
+ }
539
+
540
+ @keyframes ods-dialog-modal-out {
541
+ from {
542
+ opacity: 1;
543
+ transform: translate(-50%, -50%) scale(1);
544
+ }
545
+ to {
546
+ opacity: 0;
547
+ transform: translate(-50%, -50%) scale(0.97);
548
+ }
549
+ }
550
+
551
+ @keyframes ods-drawer-in {
552
+ from {
553
+ transform: translateX(var(--ods-drawer-motion-offset));
554
+ }
555
+ to {
556
+ transform: translateX(0);
557
+ }
558
+ }
559
+
560
+ @keyframes ods-drawer-out {
561
+ from {
562
+ transform: translateX(0);
563
+ }
564
+ to {
565
+ transform: translateX(var(--ods-drawer-motion-offset));
566
+ }
567
+ }
568
+
569
+ @keyframes ods-collapsible-expand {
570
+ from {
571
+ height: 0;
572
+ opacity: 0;
573
+ }
574
+ to {
575
+ height: var(--radix-collapsible-content-height);
576
+ opacity: 1;
577
+ }
578
+ }
579
+
580
+ @keyframes ods-collapsible-collapse {
581
+ from {
582
+ height: var(--radix-collapsible-content-height);
583
+ opacity: 1;
584
+ }
585
+ to {
586
+ height: 0;
587
+ opacity: 0;
588
+ }
589
+ }
590
+
591
+ @keyframes ods-menu-in {
592
+ from {
593
+ opacity: 0;
594
+ transform: scale(0.97);
595
+ }
596
+ to {
597
+ opacity: 1;
598
+ transform: scale(1);
599
+ }
600
+ }
601
+
602
+ @keyframes ods-menu-out {
603
+ from {
604
+ opacity: 1;
605
+ transform: scale(1);
606
+ }
607
+ to {
608
+ opacity: 0;
609
+ transform: scale(0.98);
610
+ }
611
+ }
612
+
613
+ @keyframes ods-tabs-content-in {
614
+ from {
615
+ opacity: 0.72;
616
+ }
617
+ to {
618
+ opacity: 1;
619
+ }
620
+ }
621
+
622
+ @keyframes ods-skeleton-wave {
623
+ to {
624
+ transform: translateX(100%);
625
+ }
626
+ }
627
+
628
+ @keyframes ods-skeleton-wave-rtl {
629
+ to {
630
+ transform: translateX(-100%);
631
+ }
632
+ }
633
+
634
+ @keyframes ods-skeleton-pulse {
635
+ 0%,
636
+ 100% {
637
+ opacity: 1;
638
+ }
639
+ 50% {
640
+ opacity: 0.58;
641
+ }
642
+ }
643
+
644
+ @keyframes ods-progress-indeterminate {
645
+ from {
646
+ transform: translateX(-100%);
647
+ }
648
+ to {
649
+ transform: translateX(250%);
650
+ }
651
+ }
652
+
653
+ @keyframes ods-progress-indeterminate-rtl {
654
+ from {
655
+ transform: translateX(100%);
656
+ }
657
+ to {
658
+ transform: translateX(-250%);
659
+ }
660
+ }