@godxjp/ui 21.0.0 → 23.0.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 (154) hide show
  1. package/README.md +4 -4
  2. package/dist/app/app-provider.js +2 -1
  3. package/dist/components/data-display/badge.d.ts +28 -1
  4. package/dist/components/data-display/badge.js +2 -0
  5. package/dist/components/data-display/data-table.d.ts +18 -2
  6. package/dist/components/data-display/data-table.js +4 -0
  7. package/dist/components/data-display/index.d.ts +1 -1
  8. package/dist/components/data-display/popover.d.ts +19 -1
  9. package/dist/components/data-display/popover.js +9 -1
  10. package/dist/components/data-display/progress.d.ts +37 -0
  11. package/dist/components/data-display/progress.js +57 -5
  12. package/dist/components/data-display/scroll-area.d.ts +24 -4
  13. package/dist/components/data-display/scroll-area.js +34 -72
  14. package/dist/components/data-entry/cascader.js +8 -6
  15. package/dist/components/data-entry/checkbox.js +2 -0
  16. package/dist/components/data-entry/choice-hit-target.d.ts +24 -0
  17. package/dist/components/data-entry/choice-hit-target.js +12 -0
  18. package/dist/components/data-entry/control-surface.d.ts +8 -0
  19. package/dist/components/data-entry/control-surface.js +10 -1
  20. package/dist/components/data-entry/date-picker.d.ts +10 -3
  21. package/dist/components/data-entry/date-picker.js +503 -238
  22. package/dist/components/data-entry/form-field.d.ts +1 -1
  23. package/dist/components/data-entry/form-field.js +7 -3
  24. package/dist/components/data-entry/form.js +10 -1
  25. package/dist/components/data-entry/index.d.ts +0 -6
  26. package/dist/components/data-entry/index.js +0 -6
  27. package/dist/components/data-entry/label.d.ts +14 -1
  28. package/dist/components/data-entry/label.js +6 -1
  29. package/dist/components/data-entry/radio.d.ts +27 -6
  30. package/dist/components/data-entry/radio.js +89 -43
  31. package/dist/components/data-entry/search-select.js +226 -89
  32. package/dist/components/data-entry/select.d.ts +76 -14
  33. package/dist/components/data-entry/select.js +497 -163
  34. package/dist/components/data-entry/slider.d.ts +3 -11
  35. package/dist/components/data-entry/slider.js +582 -93
  36. package/dist/components/data-entry/switch.d.ts +6 -3
  37. package/dist/components/data-entry/switch.js +36 -11
  38. package/dist/components/layout/mobile-shell.d.ts +1 -1
  39. package/dist/components/layout/mobile-shell.js +2 -0
  40. package/dist/components/navigation/dropdown-menu.d.ts +11 -3
  41. package/dist/components/navigation/dropdown-menu.js +190 -15
  42. package/dist/components/navigation/index.d.ts +0 -3
  43. package/dist/components/navigation/index.js +0 -78
  44. package/dist/components/navigation/steps.d.ts +1 -1
  45. package/dist/components/navigation/steps.js +3 -1
  46. package/dist/components/navigation/tabs-scroll.d.ts +27 -0
  47. package/dist/components/navigation/tabs-scroll.js +52 -1
  48. package/dist/components/navigation/tabs.d.ts +2 -2
  49. package/dist/components/navigation/tabs.js +88 -23
  50. package/dist/components/ui/index.d.ts +0 -4
  51. package/dist/components/ui/index.js +0 -4
  52. package/dist/components/ui/input-otp.d.ts +1 -1
  53. package/dist/components/ui/segmented.d.ts +15 -1
  54. package/dist/components/ui/segmented.js +15 -6
  55. package/dist/components/ui/tag-input.js +3 -5
  56. package/dist/i18n/messages/en.json +3 -2
  57. package/dist/i18n/messages/ja.json +3 -2
  58. package/dist/i18n/messages/vi.json +3 -2
  59. package/dist/lib/datetime/picker-format.d.ts +18 -0
  60. package/dist/lib/datetime/picker-format.js +35 -1
  61. package/dist/lib/field-a11y.d.ts +12 -0
  62. package/dist/lib/field-a11y.js +14 -1
  63. package/dist/lib/select-options.d.ts +21 -0
  64. package/dist/lib/select-options.js +46 -0
  65. package/dist/props/components/data-display.prop.d.ts +16 -6
  66. package/dist/props/components/data-entry.prop.d.ts +503 -129
  67. package/dist/props/components/index.d.ts +2 -2
  68. package/dist/props/components/layout.prop.d.ts +12 -1
  69. package/dist/props/components/navigation.prop.d.ts +93 -1
  70. package/dist/props/registry.d.ts +79 -16
  71. package/dist/props/registry.js +85 -15
  72. package/dist/props/vocabulary/data.prop.d.ts +12 -0
  73. package/dist/props/vocabulary/index.d.ts +2 -2
  74. package/dist/props/vocabulary/layout.prop.d.ts +11 -0
  75. package/dist/styles/badge-layout.css +4 -0
  76. package/dist/styles/card-layout.css +6 -6
  77. package/dist/styles/control.css +220 -29
  78. package/dist/styles/data-display-layout.css +94 -23
  79. package/dist/styles/focus-ring.css +6 -4
  80. package/dist/styles/fonts.css +88 -4
  81. package/dist/styles/navigation-layout.css +36 -236
  82. package/dist/styles/shell-layout.css +149 -139
  83. package/dist/styles/table-layout.css +41 -3
  84. package/dist/tokens/components/control.css +4 -0
  85. package/dist/tokens/components/data-display.css +9 -5
  86. package/dist/tokens/components/navigation.css +9 -5
  87. package/dist/tokens/components/scroll-area.css +7 -0
  88. package/dist/tokens/components/segmented.css +0 -2
  89. package/dist/tokens/components/shell.css +2 -0
  90. package/dist/tokens/components/table.css +3 -0
  91. package/dist/tokens/foundation.css +7 -0
  92. package/docs/COMPONENTS.md +14 -14
  93. package/docs/CONSUMER-RULES.md +24 -1
  94. package/docs/CUSTOMER-THEMING.md +7 -1
  95. package/docs/FRAME-COVERAGE-REPORT.md +5 -11
  96. package/docs/TOKENS.md +65 -0
  97. package/docs/data-display/badge.tsx +37 -0
  98. package/docs/data-display/data-table/index.tsx +45 -1
  99. package/docs/data-display/popover.tsx +43 -5
  100. package/docs/data-display/progress.tsx +28 -0
  101. package/docs/data-display/scroll-area.tsx +51 -45
  102. package/docs/data-entry/calendar.tsx +2 -2
  103. package/docs/data-entry/date-picker.tsx +144 -5
  104. package/docs/data-entry/form/examples/invoice-form.tsx +2 -2
  105. package/docs/data-entry/form-field/examples/a11y-contract.tsx +3 -5
  106. package/docs/data-entry/form.tsx +4 -4
  107. package/docs/data-entry/input-otp.tsx +5 -2
  108. package/docs/data-entry/number-input.tsx +31 -0
  109. package/docs/data-entry/segmented.tsx +143 -2
  110. package/docs/data-entry/select-matrix.tsx +1 -2
  111. package/docs/data-entry/select.tsx +108 -3
  112. package/docs/data-entry/slider.tsx +125 -47
  113. package/docs/feedback/dialog.tsx +1 -2
  114. package/docs/feedback/sheet.tsx +1 -2
  115. package/docs/layout/app-shell-states.tsx +143 -0
  116. package/docs/layout/mobile-shell.tsx +5 -0
  117. package/docs/navigation/dropdown-menu.tsx +75 -4
  118. package/docs/navigation/tabs.tsx +149 -0
  119. package/docs/roadmap/antd-parity.md +35 -34
  120. package/docs/roadmap/parity-audit-data-entry.md +196 -172
  121. package/docs/roadmap/parity-audit-layout-navigation-general.md +304 -310
  122. package/docs/roadmap/parity-backlog.md +8 -10
  123. package/docs/showcase/acme-portal.tsx +7 -0
  124. package/package.json +28 -64
  125. package/scripts/ui-audit.mjs +18 -5
  126. package/scripts/visual-audit-rules.mjs +0 -7
  127. package/scripts/visual-audit.mjs +6 -27
  128. package/dist/components/data-entry/date-range-picker.d.ts +0 -11
  129. package/dist/components/data-entry/date-range-picker.js +0 -349
  130. package/dist/components/data-entry/month-picker.d.ts +0 -10
  131. package/dist/components/data-entry/month-picker.js +0 -241
  132. package/dist/components/data-entry/month-range-picker.d.ts +0 -10
  133. package/dist/components/data-entry/month-range-picker.js +0 -301
  134. package/dist/components/navigation/context-menu.d.ts +0 -21
  135. package/dist/components/navigation/context-menu.js +0 -149
  136. package/dist/components/navigation/menubar.d.ts +0 -21
  137. package/dist/components/navigation/menubar.js +0 -136
  138. package/dist/components/navigation/navigation-menu.d.ts +0 -10
  139. package/dist/components/navigation/navigation-menu.js +0 -91
  140. package/dist/components/ui/context-menu.d.ts +0 -1
  141. package/dist/components/ui/context-menu.js +0 -2
  142. package/dist/components/ui/date-range-picker.d.ts +0 -1
  143. package/dist/components/ui/date-range-picker.js +0 -2
  144. package/dist/components/ui/menubar.d.ts +0 -1
  145. package/dist/components/ui/menubar.js +0 -2
  146. package/dist/components/ui/navigation-menu.d.ts +0 -1
  147. package/dist/components/ui/navigation-menu.js +0 -2
  148. package/docs/FRAME-A11Y-CI.md +0 -349
  149. package/docs/data-entry/date-range-picker.tsx +0 -175
  150. package/docs/data-entry/month-picker.tsx +0 -101
  151. package/docs/data-entry/month-range-picker.tsx +0 -115
  152. package/docs/navigation/context-menu.tsx +0 -128
  153. package/docs/navigation/menubar.tsx +0 -141
  154. package/docs/navigation/navigation-menu.tsx +0 -158
@@ -6,11 +6,95 @@
6
6
  @import "@fontsource/noto-sans-jp/500.css";
7
7
  @import "@fontsource/noto-sans-jp/700.css";
8
8
 
9
+ @font-face {
10
+ font-family: "Noto Sans JP Fallback";
11
+ font-weight: 400;
12
+ src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans");
13
+ size-adjust: 103.02%;
14
+ ascent-override: 112.6%;
15
+ descent-override: 27.96%;
16
+ line-gap-override: 0%;
17
+ unicode-range:
18
+ U+0000-02CC, U+02CE-02D7, U+02DA, U+02DC-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
19
+ U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20C0, U+2113, U+2122, U+2191, U+2193, U+2212,
20
+ U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
21
+ }
22
+ @font-face {
23
+ font-family: "Noto Sans JP Fallback";
24
+ font-weight: 500;
25
+ src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans");
26
+ size-adjust: 105.5%;
27
+ ascent-override: 109.95%;
28
+ descent-override: 27.3%;
29
+ line-gap-override: 0%;
30
+ unicode-range:
31
+ U+0000-02CC, U+02CE-02D7, U+02DA, U+02DC-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
32
+ U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20C0, U+2113, U+2122, U+2191, U+2193, U+2212,
33
+ U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
34
+ }
35
+ @font-face {
36
+ font-family: "Noto Sans JP Fallback";
37
+ font-weight: 700;
38
+ src:
39
+ local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"),
40
+ local("LiberationSans-Bold");
41
+ size-adjust: 101.5%;
42
+ ascent-override: 114.29%;
43
+ descent-override: 28.37%;
44
+ line-gap-override: 0%;
45
+ unicode-range:
46
+ U+0000-02CC, U+02CE-02D7, U+02DA, U+02DC-0301, U+0303-0304, U+0308-0309, U+0323, U+0329,
47
+ U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20C0, U+2113, U+2122, U+2191, U+2193, U+2212,
48
+ U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
49
+ }
50
+ @font-face {
51
+ font-family: "Noto Sans JP Fallback";
52
+ font-weight: 400;
53
+ src:
54
+ local("Hiragino Sans W3"), local("HiraginoSans-W3"), local("Hiragino Kaku Gothic ProN W3"),
55
+ local("HiraKakuProN-W3"), local("Yu Gothic Medium"), local("YuGothic-Medium"), local("Meiryo"),
56
+ local("Noto Sans CJK JP"), local("NotoSansCJKjp-Regular"), local("IPAGothic");
57
+ ascent-override: 116%;
58
+ descent-override: 28.8%;
59
+ line-gap-override: 0%;
60
+ unicode-range:
61
+ U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF, U+20000-2FA1F;
62
+ }
63
+ @font-face {
64
+ font-family: "Noto Sans JP Fallback";
65
+ font-weight: 500;
66
+ src:
67
+ local("Hiragino Sans W5"), local("HiraginoSans-W5"), local("Hiragino Kaku Gothic ProN W3"),
68
+ local("HiraKakuProN-W3"), local("Yu Gothic Medium"), local("YuGothic-Medium"), local("Meiryo"),
69
+ local("Noto Sans CJK JP Medium"), local("NotoSansCJKjp-Medium"), local("Noto Sans CJK JP"),
70
+ local("NotoSansCJKjp-Regular"), local("IPAGothic");
71
+ ascent-override: 116%;
72
+ descent-override: 28.8%;
73
+ line-gap-override: 0%;
74
+ unicode-range:
75
+ U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF, U+20000-2FA1F;
76
+ }
77
+ @font-face {
78
+ font-family: "Noto Sans JP Fallback";
79
+ font-weight: 700;
80
+ src:
81
+ local("Hiragino Sans W6"), local("HiraginoSans-W6"), local("Hiragino Kaku Gothic ProN W6"),
82
+ local("HiraKakuProN-W6"), local("Yu Gothic Bold"), local("YuGothic-Bold"), local("Meiryo Bold"),
83
+ local("Meiryo-Bold"), local("Noto Sans CJK JP Bold"), local("NotoSansCJKjp-Bold"),
84
+ local("IPAGothic");
85
+ ascent-override: 116%;
86
+ descent-override: 28.8%;
87
+ line-gap-override: 0%;
88
+ unicode-range:
89
+ U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF, U+20000-2FA1F;
90
+ }
91
+
9
92
  :root {
10
93
  --font-sans-base:
11
- "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", YuGothic,
12
- "M PLUS 2", Meiryo, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;
94
+ "Noto Sans JP", "Noto Sans JP Fallback", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
95
+ "Yu Gothic Medium", YuGothic, "M PLUS 2", Meiryo, -apple-system, BlinkMacSystemFont, "Segoe UI",
96
+ Roboto, system-ui, sans-serif;
13
97
  --font-sans-vi:
14
- "Noto Sans JP", "M PLUS 2", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui,
15
- sans-serif;
98
+ "Noto Sans JP", "Noto Sans JP Fallback", "M PLUS 2", -apple-system, BlinkMacSystemFont,
99
+ "Segoe UI", Roboto, system-ui, sans-serif;
16
100
  }
@@ -96,6 +96,10 @@
96
96
 
97
97
  .ui-tabs-bar > [data-slot="tabs-list"] {
98
98
  min-inline-size: 0;
99
+ flex: 0 1 auto;
100
+ }
101
+
102
+ [data-slot="tabs"]:not([data-orientation="vertical"]) .ui-tabs-bar > [data-slot="tabs-list"] {
99
103
  flex: 1 1 auto;
100
104
  }
101
105
 
@@ -146,6 +150,27 @@
146
150
  block-size: var(--tabs-tab-remove-icon-size);
147
151
  }
148
152
 
153
+ .ui-tabs-overflow {
154
+ display: inline-flex;
155
+ flex: 0 0 auto;
156
+ inline-size: var(--tabs-overflow-size);
157
+ block-size: var(--tabs-overflow-size);
158
+ align-items: center;
159
+ justify-content: center;
160
+ border-radius: var(--tabs-overflow-radius);
161
+ color: hsl(var(--muted-foreground));
162
+ }
163
+
164
+ .ui-tabs-overflow:hover {
165
+ background: hsl(var(--accent));
166
+ color: hsl(var(--accent-foreground));
167
+ }
168
+
169
+ .ui-tabs-overflow-icon {
170
+ inline-size: var(--tabs-overflow-icon-size);
171
+ block-size: var(--tabs-overflow-icon-size);
172
+ }
173
+
149
174
  .ui-tabs-add {
150
175
  display: inline-flex;
151
176
  flex: 0 0 auto;
@@ -208,30 +233,6 @@
208
233
  text-align: center;
209
234
  }
210
235
 
211
- .ui-context-menu-content {
212
- z-index: var(--overlay-z-index);
213
- min-width: var(--menu-content-min-width);
214
- overflow: hidden;
215
- border-radius: var(--radius-md);
216
- border: 1px solid hsl(var(--border));
217
- background: hsl(var(--popover));
218
- color: hsl(var(--popover-foreground));
219
- padding: var(--space-1);
220
- box-shadow: var(--shadow-md), var(--shadow-glow);
221
- }
222
-
223
- .ui-context-menu-item,
224
- .ui-context-menu-label,
225
- .ui-context-menu-sub-trigger,
226
- .ui-context-menu-checkbox-item,
227
- .ui-context-menu-radio-item,
228
- .ui-context-menu-shortcut,
229
- .ui-menubar-item,
230
- .ui-menubar-label,
231
- .ui-menubar-trigger,
232
- .ui-menubar-sub-trigger,
233
- .ui-menubar-checkbox-item,
234
- .ui-menubar-radio-item,
235
236
  .ui-dropdown-menu-item,
236
237
  .ui-dropdown-menu-label,
237
238
  .ui-dropdown-menu-sub-trigger,
@@ -247,12 +248,6 @@
247
248
  font-size: var(--menu-item-font-size);
248
249
  }
249
250
 
250
- .ui-context-menu-item > svg,
251
- .ui-context-menu-checkbox-item > svg,
252
- .ui-context-menu-radio-item > svg,
253
- .ui-menubar-item > svg,
254
- .ui-menubar-checkbox-item > svg,
255
- .ui-menubar-radio-item > svg,
256
251
  .ui-dropdown-menu-item > svg,
257
252
  .ui-dropdown-menu-checkbox-item > svg,
258
253
  .ui-dropdown-menu-radio-item > svg {
@@ -267,19 +262,10 @@
267
262
  padding-inline-start: var(--menu-item-inset-space-inline-start);
268
263
  }
269
264
 
270
- .ui-context-menu-item,
271
- .ui-context-menu-checkbox-item,
272
- .ui-context-menu-radio-item,
273
- .ui-context-menu-sub-trigger,
274
- .ui-menubar-item,
275
- .ui-menubar-checkbox-item,
276
- .ui-menubar-radio-item,
277
- .ui-menubar-sub-trigger,
278
265
  .ui-dropdown-menu-item,
279
266
  .ui-dropdown-menu-checkbox-item,
280
267
  .ui-dropdown-menu-radio-item,
281
- .ui-dropdown-menu-sub-trigger,
282
- .ui-navigation-menu-link {
268
+ .ui-dropdown-menu-sub-trigger {
283
269
  cursor: pointer;
284
270
  outline: none;
285
271
  user-select: none;
@@ -288,50 +274,25 @@
288
274
  color 150ms ease;
289
275
  }
290
276
 
291
- .ui-context-menu-item:hover,
292
- .ui-context-menu-sub-trigger:hover,
293
- .ui-menubar-item:hover,
294
- .ui-menubar-sub-trigger:hover,
295
277
  .ui-dropdown-menu-item:hover,
296
- .ui-dropdown-menu-sub-trigger:hover,
297
- .ui-navigation-menu-link:hover,
298
- .ui-navigation-menu-item:hover {
299
- background: var(--menubar-item-hover-background, hsl(var(--accent)));
300
- color: var(--menubar-item-hover-foreground, hsl(var(--accent-foreground)));
301
- }
302
-
303
- .ui-context-menu-item[data-state="open"],
304
- .ui-context-menu-item[data-state="checked"],
305
- .ui-context-menu-item[data-highlighted],
306
- .ui-menubar-item[data-state="open"],
307
- .ui-menubar-item[data-state="active"],
308
- .ui-menubar-item[data-state="checked"],
309
- .ui-menubar-sub-trigger[data-state="open"],
278
+ .ui-dropdown-menu-sub-trigger:hover {
279
+ background: var(--menu-item-hover-background, hsl(var(--accent)));
280
+ color: var(--menu-item-hover-foreground, hsl(var(--accent-foreground)));
281
+ }
282
+
310
283
  .ui-dropdown-menu-item[data-state="open"],
311
284
  .ui-dropdown-menu-item[data-highlighted],
312
285
  .ui-dropdown-menu-checkbox-item[data-highlighted],
313
286
  .ui-dropdown-menu-radio-item[data-highlighted],
314
- .ui-dropdown-menu-sub-trigger[data-state="open"],
315
- .ui-navigation-menu-link[data-highlighted],
316
- .ui-navigation-menu-item[data-focus-visible] {
317
- background: var(--menubar-item-hover-background, hsl(var(--accent)));
318
- color: var(--menubar-item-hover-foreground, hsl(var(--accent-foreground)));
287
+ .ui-dropdown-menu-sub-trigger[data-state="open"] {
288
+ background: var(--menu-item-hover-background, hsl(var(--accent)));
289
+ color: var(--menu-item-hover-foreground, hsl(var(--accent-foreground)));
319
290
  }
320
291
 
321
- .ui-context-menu-item[data-variant="destructive"],
322
- .ui-menubar-item[data-variant="destructive"],
323
292
  .ui-dropdown-menu-item[data-variant="destructive"] {
324
293
  color: hsl(var(--destructive));
325
294
  }
326
295
 
327
- .ui-context-menu-item[data-variant="destructive"][data-state="focused"],
328
- .ui-menubar-item[data-variant="destructive"][data-state="focused"] {
329
- background: hsl(var(--destructive));
330
- color: hsl(var(--destructive-foreground));
331
- }
332
-
333
- .ui-context-menu-separator,
334
- .ui-menubar-separator,
335
296
  .ui-dropdown-menu-separator,
336
297
  .ui-select-separator {
337
298
  margin-block: var(--menu-separator-space-block);
@@ -340,8 +301,6 @@
340
301
  background: hsl(var(--border));
341
302
  }
342
303
 
343
- .ui-context-menu-label,
344
- .ui-menubar-label,
345
304
  .ui-dropdown-menu-label {
346
305
  height: auto;
347
306
  min-height: var(--menu-item-height);
@@ -349,19 +308,14 @@
349
308
  font-weight: var(--font-weight-medium);
350
309
  }
351
310
 
352
- .ui-context-menu-shortcut,
353
- .ui-menubar-shortcut,
354
311
  .ui-dropdown-menu-shortcut {
355
312
  margin-inline-start: auto;
356
313
  text-align: end;
357
314
  color: hsl(var(--muted-foreground));
358
- font-size: var(--menubar-shortcut-font-size);
315
+ font-size: var(--menu-shortcut-font-size);
359
316
  }
360
317
 
361
- .ui-context-menu-item-indicator,
362
- .ui-menubar-item-indicator,
363
- .ui-dropdown-menu-item-indicator,
364
- .ui-navigation-menu-item-indicator {
318
+ .ui-dropdown-menu-item-indicator {
365
319
  display: inline-flex;
366
320
  width: 1rem;
367
321
  height: 1rem;
@@ -369,160 +323,6 @@
369
323
  justify-content: center;
370
324
  color: hsl(var(--accent-foreground));
371
325
  }
372
-
373
- .ui-context-menu-check,
374
- .ui-menubar-check {
375
- width: 1rem;
376
- height: 1rem;
377
- }
378
-
379
- .ui-context-menu-dot,
380
- .ui-menubar-dot {
381
- width: 0.5rem;
382
- height: 0.5rem;
383
- border-radius: var(--radius-pill);
384
- background: currentColor;
385
- }
386
-
387
- .ui-context-menu-sub-content,
388
- .ui-context-menu-sub-trigger,
389
- .ui-menubar-sub-content,
390
- .ui-menubar-sub-trigger {
391
- position: relative;
392
- }
393
-
394
- .ui-context-menu-sub-content,
395
- .ui-menubar-sub-content {
396
- min-width: 10rem;
397
- overflow: hidden;
398
- border-radius: var(--radius-md);
399
- border: 1px solid hsl(var(--border));
400
- background: hsl(var(--popover));
401
- color: hsl(var(--popover-foreground));
402
- padding: var(--space-1);
403
- box-shadow: var(--shadow-md), var(--shadow-glow);
404
- }
405
-
406
- .ui-context-menu-sub-trigger-icon,
407
- .ui-menubar-sub-trigger-icon {
408
- width: var(--menu-icon-size);
409
- height: var(--menu-icon-size);
410
- margin-inline-start: auto;
411
- opacity: 0.75;
412
- }
413
-
414
- .ui-menubar {
415
- display: flex;
416
- min-height: var(--control-height);
417
- align-items: center;
418
- gap: var(--space-1);
419
- border-radius: var(--radius-md);
420
- }
421
-
422
- .ui-menubar-trigger {
423
- height: var(--control-height);
424
- padding: 0 var(--space-3);
425
- border-radius: var(--radius-md);
426
- }
427
-
428
- .ui-menubar-content {
429
- min-width: 10rem;
430
- overflow: hidden;
431
- border-radius: var(--radius-md);
432
- border: 1px solid hsl(var(--border));
433
- background: hsl(var(--popover));
434
- color: hsl(var(--popover-foreground));
435
- padding: var(--space-1);
436
- box-shadow: var(--shadow-md), var(--shadow-glow);
437
- }
438
-
439
- .ui-menubar-trigger[data-state="open"],
440
- .ui-menubar-sub-trigger[data-state="open"] {
441
- background: var(--menubar-item-hover-background, hsl(var(--accent)));
442
- color: var(--menubar-item-hover-foreground, hsl(var(--accent-foreground)));
443
- }
444
-
445
- .ui-navigation-menu {
446
- position: relative;
447
- width: max-content;
448
- }
449
-
450
- .ui-navigation-menu-list {
451
- display: flex;
452
- align-items: center;
453
- gap: var(--space-1);
454
- }
455
-
456
- .ui-navigation-menu-item,
457
- .ui-navigation-menu-trigger {
458
- position: relative;
459
- cursor: pointer;
460
- border-radius: var(--radius-md);
461
- padding-inline: var(--space-2);
462
- padding-block: var(--space-2);
463
- height: var(--control-height);
464
- font-size: var(--font-size-base);
465
- display: inline-flex;
466
- align-items: center;
467
- gap: var(--space-1);
468
- outline: none;
469
- }
470
-
471
- .ui-navigation-menu-trigger-icon {
472
- width: var(--navigation-menu-trigger-icon-size);
473
- height: var(--navigation-menu-trigger-icon-size);
474
- margin-inline-start: var(--space-2);
475
- opacity: 0.7;
476
- }
477
-
478
- .ui-navigation-menu-content {
479
- position: absolute;
480
- top: 100%;
481
- inset-inline-start: 0;
482
- min-width: 14rem;
483
- z-index: 50;
484
- overflow: hidden;
485
- border: 1px solid hsl(var(--border));
486
- border-radius: var(--radius-md);
487
- background: hsl(var(--popover));
488
- color: hsl(var(--popover-foreground));
489
- padding: var(--space-1);
490
- box-shadow: var(--shadow-md), var(--shadow-glow);
491
- }
492
-
493
- .ui-navigation-menu-link {
494
- width: 100%;
495
- cursor: pointer;
496
- }
497
-
498
- .ui-navigation-menu-viewport {
499
- position: absolute;
500
- inset-inline-start: 0;
501
- top: 100%;
502
- width: 100%;
503
- overflow: hidden;
504
- border-radius: var(--radius-md);
505
- border: 1px solid hsl(var(--border));
506
- background: hsl(var(--popover));
507
- color: hsl(var(--popover-foreground));
508
- }
509
-
510
- .ui-navigation-menu-indicator {
511
- position: absolute;
512
- top: 100%;
513
- z-index: 50;
514
- display: flex;
515
- align-items: center;
516
- justify-content: center;
517
- height: 0.75rem;
518
- overflow: hidden;
519
- }
520
-
521
- .ui-navigation-menu-item-indicator {
522
- width: 100%;
523
- transition: transform 200ms ease;
524
- transform-origin: center;
525
- }
526
326
  }
527
327
 
528
328
  @layer components {