@neynar/ui 0.1.1 → 0.1.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 (173) hide show
  1. package/dist/components/ui/accordion.d.ts +1 -25
  2. package/dist/components/ui/accordion.d.ts.map +1 -1
  3. package/dist/components/ui/alert-dialog.d.ts +240 -46
  4. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  5. package/dist/components/ui/alert.d.ts +73 -11
  6. package/dist/components/ui/alert.d.ts.map +1 -1
  7. package/dist/components/ui/aspect-ratio.d.ts +44 -10
  8. package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
  9. package/dist/components/ui/avatar.d.ts +117 -33
  10. package/dist/components/ui/avatar.d.ts.map +1 -1
  11. package/dist/components/ui/badge.d.ts +50 -71
  12. package/dist/components/ui/badge.d.ts.map +1 -1
  13. package/dist/components/ui/breadcrumb.d.ts +231 -49
  14. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  15. package/dist/components/ui/button.d.ts +189 -71
  16. package/dist/components/ui/button.d.ts.map +1 -1
  17. package/dist/components/ui/calendar.d.ts +197 -40
  18. package/dist/components/ui/calendar.d.ts.map +1 -1
  19. package/dist/components/ui/card.d.ts +7 -22
  20. package/dist/components/ui/card.d.ts.map +1 -1
  21. package/dist/components/ui/carousel.d.ts +369 -99
  22. package/dist/components/ui/carousel.d.ts.map +1 -1
  23. package/dist/components/ui/chart.d.ts.map +1 -1
  24. package/dist/components/ui/checkbox.d.ts +110 -38
  25. package/dist/components/ui/checkbox.d.ts.map +1 -1
  26. package/dist/components/ui/collapsible.d.ts +246 -61
  27. package/dist/components/ui/collapsible.d.ts.map +1 -1
  28. package/dist/components/ui/combobox.d.ts +207 -159
  29. package/dist/components/ui/combobox.d.ts.map +1 -1
  30. package/dist/components/ui/command.d.ts +336 -67
  31. package/dist/components/ui/command.d.ts.map +1 -1
  32. package/dist/components/ui/container.d.ts +159 -64
  33. package/dist/components/ui/container.d.ts.map +1 -1
  34. package/dist/components/ui/context-menu.d.ts +321 -39
  35. package/dist/components/ui/context-menu.d.ts.map +1 -1
  36. package/dist/components/ui/date-picker.d.ts +113 -86
  37. package/dist/components/ui/date-picker.d.ts.map +1 -1
  38. package/dist/components/ui/dialog.d.ts +106 -25
  39. package/dist/components/ui/dialog.d.ts.map +1 -1
  40. package/dist/components/ui/drawer.d.ts +388 -59
  41. package/dist/components/ui/drawer.d.ts.map +1 -1
  42. package/dist/components/ui/dropdown-menu.d.ts +521 -74
  43. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  44. package/dist/components/ui/empty-state.d.ts +148 -76
  45. package/dist/components/ui/empty-state.d.ts.map +1 -1
  46. package/dist/components/ui/hover-card.d.ts +253 -34
  47. package/dist/components/ui/hover-card.d.ts.map +1 -1
  48. package/dist/components/ui/input.d.ts +143 -44
  49. package/dist/components/ui/input.d.ts.map +1 -1
  50. package/dist/components/ui/label.d.ts +0 -8
  51. package/dist/components/ui/label.d.ts.map +1 -1
  52. package/dist/components/ui/menubar.d.ts +288 -46
  53. package/dist/components/ui/menubar.d.ts.map +1 -1
  54. package/dist/components/ui/navigation-menu.d.ts +444 -127
  55. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  56. package/dist/components/ui/pagination.d.ts +342 -66
  57. package/dist/components/ui/pagination.d.ts.map +1 -1
  58. package/dist/components/ui/popover.d.ts +0 -8
  59. package/dist/components/ui/popover.d.ts.map +1 -1
  60. package/dist/components/ui/progress.d.ts +88 -30
  61. package/dist/components/ui/progress.d.ts.map +1 -1
  62. package/dist/components/ui/radio-group.d.ts +189 -45
  63. package/dist/components/ui/radio-group.d.ts.map +1 -1
  64. package/dist/components/ui/resizable.d.ts +178 -62
  65. package/dist/components/ui/resizable.d.ts.map +1 -1
  66. package/dist/components/ui/scroll-area.d.ts +180 -21
  67. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  68. package/dist/components/ui/select.d.ts +382 -60
  69. package/dist/components/ui/select.d.ts.map +1 -1
  70. package/dist/components/ui/separator.d.ts +52 -39
  71. package/dist/components/ui/separator.d.ts.map +1 -1
  72. package/dist/components/ui/sheet.d.ts +144 -27
  73. package/dist/components/ui/sheet.d.ts.map +1 -1
  74. package/dist/components/ui/sidebar.d.ts +81 -31
  75. package/dist/components/ui/sidebar.d.ts.map +1 -1
  76. package/dist/components/ui/skeleton.d.ts +94 -32
  77. package/dist/components/ui/skeleton.d.ts.map +1 -1
  78. package/dist/components/ui/slider.d.ts +37 -31
  79. package/dist/components/ui/slider.d.ts.map +1 -1
  80. package/dist/components/ui/sonner.d.ts +280 -46
  81. package/dist/components/ui/sonner.d.ts.map +1 -1
  82. package/dist/components/ui/stack.d.ts +289 -148
  83. package/dist/components/ui/stack.d.ts.map +1 -1
  84. package/dist/components/ui/stories/aspect-ratio.stories.d.ts +1 -2
  85. package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -1
  86. package/dist/components/ui/stories/container.stories.d.ts +2 -3
  87. package/dist/components/ui/stories/container.stories.d.ts.map +1 -1
  88. package/dist/components/ui/stories/empty-state.stories.d.ts +2 -2
  89. package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -2
  90. package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -1
  91. package/dist/components/ui/stories/stack.stories.d.ts +1 -1
  92. package/dist/components/ui/stories/text-field.stories.d.ts +7 -1
  93. package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -1
  94. package/dist/components/ui/switch.d.ts +44 -38
  95. package/dist/components/ui/switch.d.ts.map +1 -1
  96. package/dist/components/ui/table.d.ts +33 -0
  97. package/dist/components/ui/table.d.ts.map +1 -1
  98. package/dist/components/ui/tabs.d.ts +4 -22
  99. package/dist/components/ui/tabs.d.ts.map +1 -1
  100. package/dist/components/ui/text-field.d.ts +170 -84
  101. package/dist/components/ui/text-field.d.ts.map +1 -1
  102. package/dist/components/ui/textarea.d.ts +106 -29
  103. package/dist/components/ui/textarea.d.ts.map +1 -1
  104. package/dist/components/ui/theme-toggle.d.ts +190 -65
  105. package/dist/components/ui/theme-toggle.d.ts.map +1 -1
  106. package/dist/components/ui/theme.d.ts +107 -23
  107. package/dist/components/ui/theme.d.ts.map +1 -1
  108. package/dist/components/ui/toggle-group.d.ts +143 -67
  109. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  110. package/dist/components/ui/toggle.d.ts +118 -30
  111. package/dist/components/ui/toggle.d.ts.map +1 -1
  112. package/dist/components/ui/tooltip.d.ts +152 -28
  113. package/dist/components/ui/tooltip.d.ts.map +1 -1
  114. package/dist/components/ui/typography.d.ts +452 -134
  115. package/dist/components/ui/typography.d.ts.map +1 -1
  116. package/dist/index.js +9388 -8281
  117. package/dist/index.js.map +1 -1
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/llms.txt +173 -3
  120. package/package.json +5 -2
  121. package/src/components/ui/accordion.tsx +112 -27
  122. package/src/components/ui/alert-dialog.tsx +401 -46
  123. package/src/components/ui/alert.tsx +114 -11
  124. package/src/components/ui/aspect-ratio.tsx +69 -14
  125. package/src/components/ui/avatar.tsx +179 -33
  126. package/src/components/ui/badge.tsx +74 -75
  127. package/src/components/ui/breadcrumb.tsx +335 -50
  128. package/src/components/ui/button.tsx +198 -90
  129. package/src/components/ui/calendar.tsx +867 -43
  130. package/src/components/ui/card.tsx +140 -33
  131. package/src/components/ui/carousel.tsx +529 -98
  132. package/src/components/ui/chart.tsx +222 -1
  133. package/src/components/ui/checkbox.tsx +176 -38
  134. package/src/components/ui/collapsible.tsx +321 -67
  135. package/src/components/ui/combobox.tsx +284 -83
  136. package/src/components/ui/command.tsx +527 -67
  137. package/src/components/ui/container.tsx +217 -65
  138. package/src/components/ui/context-menu.tsx +716 -51
  139. package/src/components/ui/date-picker.tsx +228 -38
  140. package/src/components/ui/dialog.tsx +270 -33
  141. package/src/components/ui/drawer.tsx +546 -67
  142. package/src/components/ui/dropdown-menu.tsx +657 -74
  143. package/src/components/ui/empty-state.tsx +241 -82
  144. package/src/components/ui/hover-card.tsx +328 -39
  145. package/src/components/ui/input.tsx +207 -44
  146. package/src/components/ui/label.tsx +98 -8
  147. package/src/components/ui/menubar.tsx +587 -54
  148. package/src/components/ui/navigation-menu.tsx +557 -128
  149. package/src/components/ui/pagination.tsx +561 -79
  150. package/src/components/ui/popover.tsx +119 -8
  151. package/src/components/ui/progress.tsx +131 -29
  152. package/src/components/ui/radio-group.tsx +260 -51
  153. package/src/components/ui/resizable.tsx +289 -63
  154. package/src/components/ui/scroll-area.tsx +377 -66
  155. package/src/components/ui/select.tsx +545 -60
  156. package/src/components/ui/separator.tsx +146 -40
  157. package/src/components/ui/sheet.tsx +348 -31
  158. package/src/components/ui/sidebar.tsx +471 -29
  159. package/src/components/ui/skeleton.tsx +114 -32
  160. package/src/components/ui/slider.tsx +77 -31
  161. package/src/components/ui/sonner.tsx +574 -46
  162. package/src/components/ui/stack.tsx +423 -101
  163. package/src/components/ui/switch.tsx +78 -39
  164. package/src/components/ui/table.tsx +170 -4
  165. package/src/components/ui/tabs.tsx +108 -22
  166. package/src/components/ui/text-field.tsx +226 -81
  167. package/src/components/ui/textarea.tsx +180 -29
  168. package/src/components/ui/theme-toggle.tsx +313 -65
  169. package/src/components/ui/theme.tsx +117 -23
  170. package/src/components/ui/toggle-group.tsx +280 -69
  171. package/src/components/ui/toggle.tsx +124 -35
  172. package/src/components/ui/tooltip.tsx +239 -29
  173. package/src/components/ui/typography.tsx +1115 -165
@@ -6,7 +6,7 @@ import * as SelectPrimitive from "@radix-ui/react-select";
6
6
  * Provides a dropdown menu for selecting a single option from a list of choices.
7
7
  * Features comprehensive keyboard navigation, grouping capabilities, accessibility
8
8
  * compliance, and flexible styling options. Perfect for forms, filters, and
9
- * configuration interfaces.
9
+ * configuration interfaces. Built on Radix UI Select.Root with enhanced styling.
10
10
  *
11
11
  * @component
12
12
  * @example
@@ -42,7 +42,7 @@ import * as SelectPrimitive from "@radix-ui/react-select";
42
42
  *
43
43
  * @example
44
44
  * ```tsx
45
- * // Grouped options with separators
45
+ * // Grouped options with separators and labels
46
46
  * <Select>
47
47
  * <SelectTrigger>
48
48
  * <SelectValue placeholder="Select a timezone" />
@@ -52,6 +52,7 @@ import * as SelectPrimitive from "@radix-ui/react-select";
52
52
  * <SelectLabel>North America</SelectLabel>
53
53
  * <SelectItem value="est">Eastern Time (EST)</SelectItem>
54
54
  * <SelectItem value="cst">Central Time (CST)</SelectItem>
55
+ * <SelectItem value="pst">Pacific Time (PST)</SelectItem>
55
56
  * </SelectGroup>
56
57
  * <SelectSeparator />
57
58
  * <SelectGroup>
@@ -63,19 +64,55 @@ import * as SelectPrimitive from "@radix-ui/react-select";
63
64
  * </Select>
64
65
  * ```
65
66
  *
67
+ * @example
68
+ * ```tsx
69
+ * // Form integration with validation and required state
70
+ * <form>
71
+ * <Select name="userRole" required defaultValue="">
72
+ * <SelectTrigger id="role" aria-describedby="role-error">
73
+ * <SelectValue placeholder="Choose your role" />
74
+ * </SelectTrigger>
75
+ * <SelectContent>
76
+ * <SelectItem value="admin">Administrator</SelectItem>
77
+ * <SelectItem value="user">User</SelectItem>
78
+ * <SelectItem value="guest">Guest</SelectItem>
79
+ * </SelectContent>
80
+ * </Select>
81
+ * </form>
82
+ * ```
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * // Disabled states and interactions
87
+ * <Select disabled>
88
+ * <SelectTrigger>
89
+ * <SelectValue placeholder="Disabled select" />
90
+ * </SelectTrigger>
91
+ * <SelectContent>
92
+ * <SelectItem value="1">Option 1</SelectItem>
93
+ * <SelectItem value="2" disabled>Option 2 (disabled)</SelectItem>
94
+ * </SelectContent>
95
+ * </Select>
96
+ * ```
97
+ *
66
98
  * @accessibility
67
- * - Full keyboard navigation (Arrow keys, Enter, Space, Escape, Home, End)
68
- * - ARIA compliant with proper roles, states, and properties
69
- * - Screen reader announcements for selection changes and state updates
70
- * - Focus management and trapping within dropdown
71
- * - Support for disabled state on both trigger and individual items
72
- * - Proper labeling and description associations
99
+ * - **Keyboard Navigation**: Arrow keys to navigate items, Enter/Space to select, Escape to close
100
+ * - **Focus Management**: Focus trapped within dropdown when open, returns to trigger on close
101
+ * - **Screen Reader Support**: Announces selected values, state changes, and item counts
102
+ * - **ARIA Compliance**: Proper roles (combobox, listbox, option), states (expanded, selected), and properties
103
+ * - **Typeahead**: Type characters to jump to matching items
104
+ * - **Home/End Keys**: Jump to first/last items in the list
105
+ * - **Disabled State**: Properly communicated to assistive technology
106
+ * - **Required Field**: Integrates with form validation and screen reader announcements
73
107
  *
74
108
  * @see {@link SelectTrigger} - The button that opens the dropdown
75
109
  * @see {@link SelectContent} - The dropdown content container
76
110
  * @see {@link SelectItem} - Individual selectable options
77
111
  * @see {@link SelectGroup} - Container for grouping related items
78
112
  * @see {@link SelectValue} - Displays selected value or placeholder
113
+ * @see {@link SelectLabel} - Non-selectable labels for groups
114
+ * @see {@link SelectSeparator} - Visual dividers between groups
115
+ * @see {@link https://www.radix-ui.com/primitives/docs/components/select} for Radix UI documentation
79
116
  * @see {@link https://ui.shadcn.com/docs/components/select} for design patterns
80
117
  * @since 1.0.0
81
118
  */
@@ -84,20 +121,57 @@ declare function Select({ ...props }: React.ComponentProps<typeof SelectPrimitiv
84
121
  * SelectGroup - Container for grouping related select items
85
122
  *
86
123
  * Groups related options together with an optional label for better organization
87
- * and improved user experience when dealing with many options.
124
+ * and improved user experience when dealing with many options. Built on Radix UI
125
+ * Select.Group with semantic grouping that enhances screen reader navigation.
88
126
  *
89
127
  * @component
90
128
  * @example
91
129
  * ```tsx
130
+ * // Basic group with label
92
131
  * <SelectGroup>
93
132
  * <SelectLabel>Fruits</SelectLabel>
94
133
  * <SelectItem value="apple">Apple</SelectItem>
95
134
  * <SelectItem value="banana">Banana</SelectItem>
135
+ * <SelectItem value="orange">Orange</SelectItem>
136
+ * </SelectGroup>
137
+ * ```
138
+ *
139
+ * @example
140
+ * ```tsx
141
+ * // Multiple groups with separators
142
+ * <SelectContent>
143
+ * <SelectGroup>
144
+ * <SelectLabel>Popular Choices</SelectLabel>
145
+ * <SelectItem value="most-popular">Most Popular</SelectItem>
146
+ * <SelectItem value="trending">Trending</SelectItem>
147
+ * </SelectGroup>
148
+ * <SelectSeparator />
149
+ * <SelectGroup>
150
+ * <SelectLabel>All Options</SelectLabel>
151
+ * <SelectItem value="option1">Option 1</SelectItem>
152
+ * <SelectItem value="option2">Option 2</SelectItem>
153
+ * </SelectGroup>
154
+ * </SelectContent>
155
+ * ```
156
+ *
157
+ * @example
158
+ * ```tsx
159
+ * // Group without label for simple separation
160
+ * <SelectGroup>
161
+ * <SelectItem value="item1">Item 1</SelectItem>
162
+ * <SelectItem value="item2">Item 2</SelectItem>
96
163
  * </SelectGroup>
97
164
  * ```
98
165
  *
99
- * @see {@link SelectLabel} - Label for the group
100
- * @see {@link SelectItem} - Items within the group
166
+ * @accessibility
167
+ * - **Semantic Grouping**: Creates logical groups that screen readers can navigate
168
+ * - **Label Association**: SelectLabel properly associates with group items
169
+ * - **Focus Management**: Arrow keys move between items within and across groups
170
+ * - **Screen Reader Navigation**: Group boundaries announced to assistive technology
171
+ *
172
+ * @see {@link SelectLabel} - Optional label for the group
173
+ * @see {@link SelectItem} - Individual items within the group
174
+ * @see {@link SelectSeparator} - Visual divider between groups
101
175
  * @since 1.0.0
102
176
  */
103
177
  declare function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
@@ -105,17 +179,56 @@ declare function SelectGroup({ ...props }: React.ComponentProps<typeof SelectPri
105
179
  * SelectValue - Displays the selected value or placeholder
106
180
  *
107
181
  * Renders the currently selected option's text or a placeholder when no option
108
- * is selected. Must be used inside SelectTrigger.
182
+ * is selected. Built on Radix UI Select.Value with proper text truncation and
183
+ * styling. Must be used inside SelectTrigger to display the current selection state.
109
184
  *
110
185
  * @component
111
186
  * @example
112
187
  * ```tsx
188
+ * // Basic usage with placeholder
113
189
  * <SelectTrigger>
114
190
  * <SelectValue placeholder="Choose an option" />
115
191
  * </SelectTrigger>
116
192
  * ```
117
193
  *
118
- * @see {@link SelectTrigger} - Parent container for the value
194
+ * @example
195
+ * ```tsx
196
+ * // Custom placeholder styling
197
+ * <SelectTrigger>
198
+ * <SelectValue
199
+ * placeholder={
200
+ * <span className="text-muted-foreground italic">
201
+ * No selection made
202
+ * </span>
203
+ * }
204
+ * />
205
+ * </SelectTrigger>
206
+ * ```
207
+ *
208
+ * @example
209
+ * ```tsx
210
+ * // Using asChild for complete custom rendering
211
+ * <SelectValue asChild>
212
+ * <div className="flex items-center gap-2">
213
+ * {selectedItem ? (
214
+ * <>
215
+ * <ItemIcon />
216
+ * <span>{selectedItem.label}</span>
217
+ * </>
218
+ * ) : (
219
+ * <span className="text-muted-foreground">Select item...</span>
220
+ * )}
221
+ * </div>
222
+ * </SelectValue>
223
+ * ```
224
+ *
225
+ * @accessibility
226
+ * - **Value Announcement**: Selected value announced to screen readers
227
+ * - **Placeholder Semantics**: Placeholder properly identified for assistive technology
228
+ * - **Text Truncation**: Long values truncated with ellipsis to prevent layout issues
229
+ * - **Content Updates**: Dynamic content changes announced to screen readers
230
+ *
231
+ * @see {@link SelectTrigger} - Required parent container for the value display
119
232
  * @since 1.0.0
120
233
  */
121
234
  declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): import("react/jsx-runtime").JSX.Element;
@@ -123,8 +236,13 @@ declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPri
123
236
  * SelectTrigger - The button that opens the select dropdown
124
237
  *
125
238
  * A styled button that displays the current value and triggers the dropdown menu.
126
- * Includes a chevron icon to indicate dropdown functionality and supports different
127
- * size variants for various UI contexts.
239
+ * Built on Radix UI Select.Trigger with enhanced styling including focus states,
240
+ * size variants, and proper hover interactions. Includes a chevron icon to indicate
241
+ * dropdown functionality and supports different size variants for various UI contexts.
242
+ *
243
+ * **Size Variants:**
244
+ * - `default`: Standard height (36px) suitable for most forms and interfaces
245
+ * - `sm`: Compact height (32px) ideal for dense layouts and table interfaces
128
246
  *
129
247
  * @component
130
248
  * @example
@@ -139,45 +257,63 @@ declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPri
139
257
  * ```tsx
140
258
  * // Small size variant for compact layouts
141
259
  * <SelectTrigger size="sm" className="w-[150px]">
142
- * <SelectValue placeholder="Compact" />
260
+ * <SelectValue placeholder="Compact select" />
143
261
  * </SelectTrigger>
144
262
  * ```
145
263
  *
146
264
  * @example
147
265
  * ```tsx
148
- * // With form integration
266
+ * // Form integration with accessibility attributes
267
+ * <label htmlFor="user-role">User Role</label>
149
268
  * <SelectTrigger id="user-role" aria-describedby="role-help">
150
269
  * <SelectValue placeholder="Choose role" />
151
270
  * </SelectTrigger>
271
+ * <div id="role-help">Select the appropriate role for this user</div>
272
+ * ```
273
+ *
274
+ * @example
275
+ * ```tsx
276
+ * // Custom composition using asChild
277
+ * <SelectTrigger asChild>
278
+ * <button className="custom-trigger-styles">
279
+ * <SelectValue />
280
+ * <CustomChevronIcon />
281
+ * </button>
282
+ * </SelectTrigger>
152
283
  * ```
153
284
  *
154
285
  * @accessibility
155
- * - Keyboard accessible with Enter/Space to open dropdown
156
- * - Arrow keys navigate when closed (opens and moves to first/last item)
157
- * - Properly announces state changes to screen readers
158
- * - Focus visible ring for keyboard navigation
159
- * - Supports aria-describedby for additional context
160
- * - Disabled state properly communicated to assistive technology
286
+ * - **Keyboard Navigation**: Enter/Space to open dropdown, Arrow keys to navigate when closed
287
+ * - **Focus Management**: Clear focus ring for keyboard users, focus returns after selection
288
+ * - **State Announcements**: Screen readers announce open/closed state and selected value
289
+ * - **ARIA Support**: Proper combobox role with expanded state and controls relationship
290
+ * - **Form Integration**: Works with labels, validation, and form submission
291
+ * - **Disabled State**: Properly communicated to assistive technology with reduced opacity
292
+ * - **RTL Support**: Automatically adapts layout for right-to-left reading modes
161
293
  *
162
294
  * @see {@link SelectValue} - Displays the selected value or placeholder
295
+ * @see {@link SelectContent} - The dropdown content that opens
163
296
  * @since 1.0.0
164
297
  */
165
298
  declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
166
- /**
167
- * The size variant of the trigger button
168
- * @default "default"
169
- */
170
299
  size?: "sm" | "default";
171
300
  }): import("react/jsx-runtime").JSX.Element;
172
301
  /**
173
302
  * SelectContent - Container for the dropdown content
174
303
  *
175
304
  * The dropdown panel that contains all selectable items, groups, and labels.
176
- * Automatically handles scrolling for long lists and positioning relative to the trigger.
305
+ * Built on Radix UI Select.Content with Portal rendering for proper layering.
306
+ * Automatically handles scrolling for long lists, collision detection, and
307
+ * positioning relative to the trigger with smooth animations.
308
+ *
309
+ * **Positioning Strategy:**
310
+ * - `popper`: Uses Floating UI for precise positioning with collision detection
311
+ * - `item-aligned`: Aligns content with the selected item for natural feel
177
312
  *
178
313
  * @component
179
314
  * @example
180
315
  * ```tsx
316
+ * // Basic content with multiple items
181
317
  * <SelectContent>
182
318
  * <SelectItem value="1">Option 1</SelectItem>
183
319
  * <SelectItem value="2">Option 2</SelectItem>
@@ -187,19 +323,56 @@ declare function SelectTrigger({ className, size, children, ...props }: React.Co
187
323
  *
188
324
  * @example
189
325
  * ```tsx
190
- * // With fixed positioning
326
+ * // Item-aligned positioning (default behavior)
191
327
  * <SelectContent position="item-aligned">
328
+ * <SelectItem value="apple">Apple</SelectItem>
329
+ * <SelectItem value="banana">Banana</SelectItem>
330
+ * </SelectContent>
331
+ * ```
332
+ *
333
+ * @example
334
+ * ```tsx
335
+ * // Popper positioning with custom placement
336
+ * <SelectContent position="popper" side="top" align="end">
192
337
  * <SelectItem value="1">Option 1</SelectItem>
338
+ * <SelectItem value="2">Option 2</SelectItem>
339
+ * </SelectContent>
340
+ * ```
341
+ *
342
+ * @example
343
+ * ```tsx
344
+ * // Complex content with groups and scrolling
345
+ * <SelectContent>
346
+ * <SelectGroup>
347
+ * <SelectLabel>Recent Items</SelectLabel>
348
+ * <SelectItem value="recent1">Recently Used 1</SelectItem>
349
+ * <SelectItem value="recent2">Recently Used 2</SelectItem>
350
+ * </SelectGroup>
351
+ * <SelectSeparator />
352
+ * <SelectGroup>
353
+ * <SelectLabel>All Items</SelectLabel>
354
+ * {items.map((item) => (
355
+ * <SelectItem key={item.id} value={item.id}>
356
+ * {item.label}
357
+ * </SelectItem>
358
+ * ))}
359
+ * </SelectGroup>
193
360
  * </SelectContent>
194
361
  * ```
195
362
  *
196
363
  * @accessibility
197
- * - Focus trapped within dropdown when open
198
- * - Scrollable with keyboard navigation
199
- * - Escape key closes the dropdown
364
+ * - **Focus Management**: Focus trapped within dropdown when open, managed viewport scrolling
365
+ * - **Keyboard Navigation**: Arrow keys navigate items, Page Up/Down for quick navigation
366
+ * - **Portal Rendering**: Renders in document body for proper layering and screen reader access
367
+ * - **Collision Detection**: Automatically repositions to stay within viewport boundaries
368
+ * - **Scroll Indicators**: Shows scroll buttons when content exceeds available height
369
+ * - **Animation**: Smooth enter/exit animations that respect user's motion preferences
370
+ * - **Escape Handling**: Escape key closes dropdown and returns focus to trigger
200
371
  *
201
- * @see {@link SelectItem} - Individual options
202
- * @see {@link SelectGroup} - Group container
372
+ * @see {@link SelectItem} - Individual selectable options
373
+ * @see {@link SelectGroup} - Container for grouping related items
374
+ * @see {@link SelectScrollUpButton} - Scroll up indicator for long lists
375
+ * @see {@link SelectScrollDownButton} - Scroll down indicator for long lists
203
376
  * @since 1.0.0
204
377
  */
205
378
  declare function SelectContent({ className, children, position, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
@@ -207,80 +380,173 @@ declare function SelectContent({ className, children, position, ...props }: Reac
207
380
  * SelectLabel - Label for a group of select items
208
381
  *
209
382
  * Provides a non-selectable label for categorizing groups of options.
210
- * Helps users understand the context of the options below.
383
+ * Built on Radix UI Select.Label with muted styling and proper typography.
384
+ * Helps users understand the context of the options below and improves
385
+ * navigation for screen reader users.
211
386
  *
212
387
  * @component
213
388
  * @example
214
389
  * ```tsx
390
+ * // Basic group label
215
391
  * <SelectGroup>
216
392
  * <SelectLabel>Countries</SelectLabel>
217
393
  * <SelectItem value="us">United States</SelectItem>
218
394
  * <SelectItem value="uk">United Kingdom</SelectItem>
395
+ * <SelectItem value="ca">Canada</SelectItem>
219
396
  * </SelectGroup>
220
397
  * ```
221
398
  *
399
+ * @example
400
+ * ```tsx
401
+ * // Multiple labeled groups
402
+ * <SelectContent>
403
+ * <SelectGroup>
404
+ * <SelectLabel>Primary Options</SelectLabel>
405
+ * <SelectItem value="primary1">Primary Choice 1</SelectItem>
406
+ * <SelectItem value="primary2">Primary Choice 2</SelectItem>
407
+ * </SelectGroup>
408
+ * <SelectSeparator />
409
+ * <SelectGroup>
410
+ * <SelectLabel>Advanced Options</SelectLabel>
411
+ * <SelectItem value="advanced1">Advanced Choice 1</SelectItem>
412
+ * <SelectItem value="advanced2">Advanced Choice 2</SelectItem>
413
+ * </SelectGroup>
414
+ * </SelectContent>
415
+ * ```
416
+ *
417
+ * @example
418
+ * ```tsx
419
+ * // Custom styling with asChild
420
+ * <SelectLabel asChild>
421
+ * <div className="flex items-center gap-1 px-2 py-1 font-semibold">
422
+ * <Icon className="size-3" />
423
+ * <span>Categories</span>
424
+ * </div>
425
+ * </SelectLabel>
426
+ * ```
427
+ *
222
428
  * @accessibility
223
- * - Properly associated with group for screen readers
224
- * - Non-selectable and non-focusable
429
+ * - **Semantic Association**: Properly associated with group items for screen readers
430
+ * - **Non-Interactive**: Cannot receive focus or be selected
431
+ * - **Group Navigation**: Helps screen reader users understand item organization
432
+ * - **Descriptive Text**: Provides context for the items that follow
225
433
  *
226
- * @see {@link SelectGroup} - Parent container
434
+ * @see {@link SelectGroup} - Required parent container
435
+ * @see {@link SelectItem} - Items that this label describes
227
436
  * @since 1.0.0
228
437
  */
229
438
  declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
230
439
  /**
231
440
  * SelectItem - Individual selectable option in the dropdown
232
441
  *
233
- * Represents a single option that users can select. Shows a checkmark
234
- * when selected and supports keyboard navigation.
442
+ * Represents a single option that users can select. Built on Radix UI Select.Item
443
+ * with enhanced styling including hover states, selection indicators, and proper
444
+ * spacing. Shows a checkmark when selected and supports keyboard navigation with
445
+ * proper focus management.
235
446
  *
236
447
  * @component
237
448
  * @example
238
449
  * ```tsx
450
+ * // Basic item
239
451
  * <SelectItem value="apple">Apple</SelectItem>
240
452
  * ```
241
453
  *
242
454
  * @example
243
455
  * ```tsx
244
- * // Disabled item
456
+ * // Disabled item that cannot be selected
245
457
  * <SelectItem value="sold-out" disabled>
246
- * Sold Out
458
+ * Sold Out - Unavailable
247
459
  * </SelectItem>
248
460
  * ```
249
461
  *
250
- * @accessibility
251
- * - Arrow keys navigate between items
252
- * - Enter or Space selects the item
253
- * - Shows checkmark icon when selected
254
- * - Supports disabled state
462
+ * @example
463
+ * ```tsx
464
+ * // Complex item content with custom text value for typeahead
465
+ * <SelectItem value="user-123" textValue="John Doe">
466
+ * <div className="flex items-center gap-2">
467
+ * <Avatar size="sm" />
468
+ * <div>
469
+ * <div>John Doe</div>
470
+ * <div className="text-xs text-muted-foreground">john@example.com</div>
471
+ * </div>
472
+ * </div>
473
+ * </SelectItem>
474
+ * ```
255
475
  *
256
- * @see {@link SelectContent} - Parent container
476
+ * @example
477
+ * ```tsx
478
+ * // Using asChild for custom item composition
479
+ * <SelectItem value="custom" asChild>
480
+ * <div className="custom-item-styles">
481
+ * Custom item content
482
+ * </div>
483
+ * </SelectItem>
484
+ * ```
485
+ *
486
+ * @accessibility
487
+ * - **Keyboard Navigation**: Arrow keys navigate between items, Home/End jump to first/last
488
+ * - **Selection**: Enter or Space selects the item and closes dropdown
489
+ * - **Visual Feedback**: Check icon indicates selected state, focus ring for keyboard users
490
+ * - **Disabled State**: Cannot be selected or focused, announced to screen readers
491
+ * - **Typeahead**: Type characters to jump to matching items (uses textValue or content)
492
+ * - **Screen Reader**: Announces item text and selection state changes
493
+ *
494
+ * @see {@link SelectContent} - Parent container that manages items
495
+ * @see {@link SelectGroup} - Optional grouping container
257
496
  * @since 1.0.0
258
497
  */
259
498
  declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
260
499
  /**
261
500
  * SelectSeparator - Visual divider between select groups
262
501
  *
263
- * A horizontal line that visually separates groups of options
264
- * for better organization and clarity.
502
+ * A horizontal line that visually separates groups of options for better
503
+ * organization and clarity. Built on Radix UI Select.Separator with subtle
504
+ * border styling that adapts to the current theme.
265
505
  *
266
506
  * @component
267
507
  * @example
268
508
  * ```tsx
509
+ * // Basic separation between groups
269
510
  * <SelectContent>
270
511
  * <SelectGroup>
512
+ * <SelectLabel>Group 1</SelectLabel>
271
513
  * <SelectItem value="1">Option 1</SelectItem>
272
514
  * </SelectGroup>
273
515
  * <SelectSeparator />
274
516
  * <SelectGroup>
517
+ * <SelectLabel>Group 2</SelectLabel>
275
518
  * <SelectItem value="2">Option 2</SelectItem>
276
519
  * </SelectGroup>
277
520
  * </SelectContent>
278
521
  * ```
279
522
  *
523
+ * @example
524
+ * ```tsx
525
+ * // Multiple separators in complex layouts
526
+ * <SelectContent>
527
+ * <SelectGroup>
528
+ * <SelectItem value="recent">Recent Items</SelectItem>
529
+ * </SelectGroup>
530
+ * <SelectSeparator />
531
+ * <SelectGroup>
532
+ * <SelectItem value="favorite">Favorites</SelectItem>
533
+ * </SelectGroup>
534
+ * <SelectSeparator />
535
+ * <SelectGroup>
536
+ * <SelectLabel>All Items</SelectLabel>
537
+ * <SelectItem value="all1">Item 1</SelectItem>
538
+ * <SelectItem value="all2">Item 2</SelectItem>
539
+ * </SelectGroup>
540
+ * </SelectContent>
541
+ * ```
542
+ *
280
543
  * @accessibility
281
- * - Decorative element with no semantic meaning
282
- * - Not focusable or interactive
544
+ * - **Decorative Role**: Pure visual element with no semantic meaning for screen readers
545
+ * - **Non-Interactive**: Cannot receive focus or be activated
546
+ * - **Visual Organization**: Helps sighted users understand content structure
547
+ * - **Theme Adaptive**: Border color adapts to light/dark themes automatically
283
548
  *
549
+ * @see {@link SelectGroup} - Typically used to separate different groups
284
550
  * @since 1.0.0
285
551
  */
286
552
  declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
@@ -288,13 +554,41 @@ declare function SelectSeparator({ className, ...props }: React.ComponentProps<t
288
554
  * SelectScrollUpButton - Scroll button for navigating up in long lists
289
555
  *
290
556
  * Appears at the top of the dropdown when there are more items above
291
- * the visible area. Allows scrolling through long option lists.
557
+ * the visible area. Built on Radix UI Select.ScrollUpButton with chevron
558
+ * icon and hover states. Automatically shows/hides based on scroll position.
292
559
  *
293
560
  * @component
294
- * @accessibility
295
- * - Keyboard accessible
296
- * - Only visible when scrolling is available
561
+ * @example
562
+ * ```tsx
563
+ * // Automatically included in SelectContent
564
+ * <SelectContent>
565
+ * // ScrollUpButton appears here when needed
566
+ * <SelectItem value="1">Item 1</SelectItem>
567
+ * // ... many items ...
568
+ * <SelectItem value="100">Item 100</SelectItem>
569
+ * // ScrollDownButton appears here when needed
570
+ * </SelectContent>
571
+ * ```
572
+ *
573
+ * @example
574
+ * ```tsx
575
+ * // Custom scroll button using asChild
576
+ * <SelectScrollUpButton asChild>
577
+ * <button className="custom-scroll-styles">
578
+ * <CustomUpIcon />
579
+ * </button>
580
+ * </SelectScrollUpButton>
581
+ * ```
297
582
  *
583
+ * @accessibility
584
+ * - **Auto-Visibility**: Only appears when upward scrolling is possible
585
+ * - **Keyboard Accessible**: Can be activated with Enter/Space
586
+ * - **Focus Management**: Receives focus during keyboard navigation
587
+ * - **Screen Reader**: Announced as scroll control with directional context
588
+ * - **Mouse/Touch**: Responds to click/touch interactions for scrolling
589
+ *
590
+ * @see {@link SelectContent} - Container that manages scroll button visibility
591
+ * @see {@link SelectScrollDownButton} - Counterpart for downward scrolling
298
592
  * @since 1.0.0
299
593
  */
300
594
  declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): import("react/jsx-runtime").JSX.Element;
@@ -302,13 +596,41 @@ declare function SelectScrollUpButton({ className, ...props }: React.ComponentPr
302
596
  * SelectScrollDownButton - Scroll button for navigating down in long lists
303
597
  *
304
598
  * Appears at the bottom of the dropdown when there are more items below
305
- * the visible area. Allows scrolling through long option lists.
599
+ * the visible area. Built on Radix UI Select.ScrollDownButton with chevron
600
+ * icon and hover states. Automatically shows/hides based on scroll position.
306
601
  *
307
602
  * @component
308
- * @accessibility
309
- * - Keyboard accessible
310
- * - Only visible when scrolling is available
603
+ * @example
604
+ * ```tsx
605
+ * // Automatically included in SelectContent
606
+ * <SelectContent>
607
+ * // ScrollUpButton appears here when needed
608
+ * <SelectItem value="1">Item 1</SelectItem>
609
+ * // ... many items ...
610
+ * <SelectItem value="100">Item 100</SelectItem>
611
+ * // ScrollDownButton appears here when needed
612
+ * </SelectContent>
613
+ * ```
614
+ *
615
+ * @example
616
+ * ```tsx
617
+ * // Custom scroll button using asChild
618
+ * <SelectScrollDownButton asChild>
619
+ * <button className="custom-scroll-styles">
620
+ * <CustomDownIcon />
621
+ * </button>
622
+ * </SelectScrollDownButton>
623
+ * ```
311
624
  *
625
+ * @accessibility
626
+ * - **Auto-Visibility**: Only appears when downward scrolling is possible
627
+ * - **Keyboard Accessible**: Can be activated with Enter/Space
628
+ * - **Focus Management**: Receives focus during keyboard navigation
629
+ * - **Screen Reader**: Announced as scroll control with directional context
630
+ * - **Mouse/Touch**: Responds to click/touch interactions for scrolling
631
+ *
632
+ * @see {@link SelectContent} - Container that manages scroll button visibility
633
+ * @see {@link SelectScrollUpButton} - Counterpart for upward scrolling
312
634
  * @since 1.0.0
313
635
  */
314
636
  declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CA4BtD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAwK1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmHG;AACH,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CA4BtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAC"}