@ansh-ui/react 0.2.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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/dist/chunk-5CFQFMP5.js +178 -0
  3. package/dist/chunk-5CFQFMP5.js.map +1 -0
  4. package/dist/chunk-6VRF7X5C.cjs +164 -0
  5. package/dist/chunk-6VRF7X5C.cjs.map +1 -0
  6. package/dist/chunk-AVPEA5PB.cjs +718 -0
  7. package/dist/chunk-AVPEA5PB.cjs.map +1 -0
  8. package/dist/chunk-C32LKF23.cjs +198 -0
  9. package/dist/chunk-C32LKF23.cjs.map +1 -0
  10. package/dist/chunk-C5JG6TMM.cjs +1200 -0
  11. package/dist/chunk-C5JG6TMM.cjs.map +1 -0
  12. package/dist/chunk-DATBU46V.cjs +614 -0
  13. package/dist/chunk-DATBU46V.cjs.map +1 -0
  14. package/dist/chunk-EGG4CP7C.js +320 -0
  15. package/dist/chunk-EGG4CP7C.js.map +1 -0
  16. package/dist/chunk-H34OXXJU.js +55 -0
  17. package/dist/chunk-H34OXXJU.js.map +1 -0
  18. package/dist/chunk-HO2YSF5O.js +187 -0
  19. package/dist/chunk-HO2YSF5O.js.map +1 -0
  20. package/dist/chunk-HPGCILO4.js +760 -0
  21. package/dist/chunk-HPGCILO4.js.map +1 -0
  22. package/dist/chunk-IBXLC5IE.js +154 -0
  23. package/dist/chunk-IBXLC5IE.js.map +1 -0
  24. package/dist/chunk-LDCZQP3R.js +1185 -0
  25. package/dist/chunk-LDCZQP3R.js.map +1 -0
  26. package/dist/chunk-LXCIXR5T.js +27 -0
  27. package/dist/chunk-LXCIXR5T.js.map +1 -0
  28. package/dist/chunk-O2PX54KX.js +94 -0
  29. package/dist/chunk-O2PX54KX.js.map +1 -0
  30. package/dist/chunk-OHBWBXLO.cjs +101 -0
  31. package/dist/chunk-OHBWBXLO.cjs.map +1 -0
  32. package/dist/chunk-OJN5JBNP.cjs +776 -0
  33. package/dist/chunk-OJN5JBNP.cjs.map +1 -0
  34. package/dist/chunk-OLTS6G5M.js +606 -0
  35. package/dist/chunk-OLTS6G5M.js.map +1 -0
  36. package/dist/chunk-PO5DU3FU.cjs +29 -0
  37. package/dist/chunk-PO5DU3FU.cjs.map +1 -0
  38. package/dist/chunk-QO3E7TJS.js +2940 -0
  39. package/dist/chunk-QO3E7TJS.js.map +1 -0
  40. package/dist/chunk-RHTLNSVW.cjs +2976 -0
  41. package/dist/chunk-RHTLNSVW.cjs.map +1 -0
  42. package/dist/chunk-SFU5EPSN.cjs +61 -0
  43. package/dist/chunk-SFU5EPSN.cjs.map +1 -0
  44. package/dist/chunk-T4AK2KLM.js +699 -0
  45. package/dist/chunk-T4AK2KLM.js.map +1 -0
  46. package/dist/chunk-WGYNCSTP.cjs +333 -0
  47. package/dist/chunk-WGYNCSTP.cjs.map +1 -0
  48. package/dist/chunk-XEP6P7E6.js +279 -0
  49. package/dist/chunk-XEP6P7E6.js.map +1 -0
  50. package/dist/chunk-XMXECSQO.cjs +286 -0
  51. package/dist/chunk-XMXECSQO.cjs.map +1 -0
  52. package/dist/chunk-ZWAFLHC2.cjs +181 -0
  53. package/dist/chunk-ZWAFLHC2.cjs.map +1 -0
  54. package/dist/data.cjs +71 -0
  55. package/dist/data.cjs.map +1 -0
  56. package/dist/data.d.cts +316 -0
  57. package/dist/data.d.ts +316 -0
  58. package/dist/data.js +6 -0
  59. package/dist/data.js.map +1 -0
  60. package/dist/form.cjs +153 -0
  61. package/dist/form.cjs.map +1 -0
  62. package/dist/form.d.cts +660 -0
  63. package/dist/form.d.ts +660 -0
  64. package/dist/form.js +8 -0
  65. package/dist/form.js.map +1 -0
  66. package/dist/index.cjs +1641 -0
  67. package/dist/index.cjs.map +1 -0
  68. package/dist/index.d.cts +552 -0
  69. package/dist/index.d.ts +552 -0
  70. package/dist/index.js +956 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/layout.cjs +68 -0
  73. package/dist/layout.cjs.map +1 -0
  74. package/dist/layout.d.cts +169 -0
  75. package/dist/layout.d.ts +169 -0
  76. package/dist/layout.js +7 -0
  77. package/dist/layout.js.map +1 -0
  78. package/dist/motion-CQmCq6_k.d.ts +395 -0
  79. package/dist/motion-CSX4g2N8.d.cts +395 -0
  80. package/dist/motion.cjs +79 -0
  81. package/dist/motion.cjs.map +1 -0
  82. package/dist/motion.d.cts +4 -0
  83. package/dist/motion.d.ts +4 -0
  84. package/dist/motion.js +6 -0
  85. package/dist/motion.js.map +1 -0
  86. package/dist/navigation.cjs +48 -0
  87. package/dist/navigation.cjs.map +1 -0
  88. package/dist/navigation.d.cts +210 -0
  89. package/dist/navigation.d.ts +210 -0
  90. package/dist/navigation.js +7 -0
  91. package/dist/navigation.js.map +1 -0
  92. package/dist/overlay.cjs +69 -0
  93. package/dist/overlay.cjs.map +1 -0
  94. package/dist/overlay.d.cts +330 -0
  95. package/dist/overlay.d.ts +330 -0
  96. package/dist/overlay.js +8 -0
  97. package/dist/overlay.js.map +1 -0
  98. package/dist/position-DVScKcaa.d.cts +66 -0
  99. package/dist/position-DVScKcaa.d.ts +66 -0
  100. package/dist/primitives.cjs +162 -0
  101. package/dist/primitives.cjs.map +1 -0
  102. package/dist/primitives.d.cts +294 -0
  103. package/dist/primitives.d.ts +294 -0
  104. package/dist/primitives.js +9 -0
  105. package/dist/primitives.js.map +1 -0
  106. package/dist/sidebar-D-PafAXw.d.cts +71 -0
  107. package/dist/sidebar-D-PafAXw.d.ts +71 -0
  108. package/dist/styles.css +5575 -0
  109. package/dist/use-observers-B9qtimrk.d.cts +99 -0
  110. package/dist/use-observers-B9qtimrk.d.ts +99 -0
  111. package/package.json +92 -0
@@ -0,0 +1,210 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ export { A as AppShell, a as AppShellProps, N as NavItem, b as NavSection, S as Sidebar, c as SidebarProps } from './sidebar-D-PafAXw.cjs';
4
+
5
+ interface TabItem {
6
+ id: string;
7
+ label: ReactNode;
8
+ icon?: ReactNode;
9
+ /** Count or status shown after the label. */
10
+ badge?: ReactNode;
11
+ disabled?: boolean;
12
+ content?: ReactNode;
13
+ }
14
+ interface TabsProps {
15
+ items: readonly TabItem[];
16
+ value?: string;
17
+ defaultValue?: string;
18
+ onChange?: (value: string) => void;
19
+ variant?: 'underline' | 'pill' | 'enclosed';
20
+ orientation?: 'horizontal' | 'vertical';
21
+ size?: 'sm' | 'md';
22
+ /** Stretch tabs to fill the available width. */
23
+ fitted?: boolean;
24
+ /**
25
+ * Activate on arrow-key focus, rather than requiring Enter.
26
+ *
27
+ * Automatic is the ARIA-preferred default for cheap panels. Set `false` when switching a tab
28
+ * triggers a fetch — arrowing past three tabs would fire three requests.
29
+ */
30
+ activateOnFocus?: boolean;
31
+ /** Accessible name for the tab list. */
32
+ label: string;
33
+ className?: string;
34
+ children?: ReactNode;
35
+ }
36
+ /**
37
+ * Tabs.
38
+ *
39
+ * The full WAI-ARIA tab pattern: a single tab stop for the whole list (roving tabindex), arrow keys
40
+ * to move between tabs, Home/End to jump to the ends, and `aria-controls`/`aria-labelledby` linking
41
+ * each tab to its panel in both directions.
42
+ *
43
+ * Panels are unmounted when inactive rather than hidden. Hiding keeps the whole tree mounted, which
44
+ * means timers keep running, media keeps buffering and forms keep their state — the last of which
45
+ * sounds desirable until a hidden required field blocks submission with no visible error.
46
+ */
47
+ declare function Tabs({ items, value, defaultValue, onChange, variant, orientation, size, fitted, activateOnFocus, label, className, children, }: TabsProps): react.JSX.Element;
48
+
49
+ interface Crumb {
50
+ label: ReactNode;
51
+ href?: string;
52
+ icon?: ReactNode;
53
+ onClick?: () => void;
54
+ }
55
+ interface BreadcrumbsProps {
56
+ items: readonly Crumb[];
57
+ /** Collapse the middle when there are more than this many. Default `Infinity`. */
58
+ maxItems?: number;
59
+ separator?: ReactNode;
60
+ className?: string;
61
+ }
62
+ /**
63
+ * A breadcrumb trail.
64
+ *
65
+ * `<nav aria-label="Breadcrumb">` around an ordered list, with the last item marked
66
+ * `aria-current="page"` and rendered as text rather than a link. Making the current page a link to
67
+ * itself is a small thing that wastes a keyboard user's time on every page.
68
+ *
69
+ * Separators are `aria-hidden`, so the trail reads as "Home, Projects, Invoice 401" rather than
70
+ * "Home slash Projects slash".
71
+ */
72
+ declare function Breadcrumbs({ items, maxItems, separator, className, }: BreadcrumbsProps): react.JSX.Element;
73
+ interface Step {
74
+ id: string;
75
+ label: ReactNode;
76
+ description?: ReactNode;
77
+ /** Marks the step failed — validation errors on a wizard page. */
78
+ error?: boolean;
79
+ /** Allow jumping to this step directly. */
80
+ clickable?: boolean;
81
+ }
82
+ interface StepperProps {
83
+ steps: readonly Step[];
84
+ /** Index of the current step. Steps before it are complete. */
85
+ current: number;
86
+ onStepChange?: (index: number) => void;
87
+ orientation?: 'horizontal' | 'vertical';
88
+ className?: string;
89
+ }
90
+ /**
91
+ * A progress stepper for multi-page flows — checkout, onboarding, approvals.
92
+ *
93
+ * The state of each step is announced in text, not just drawn: `aria-current="step"` on the active
94
+ * one and a visually hidden "completed"/"current"/"not started" on each. A stepper that
95
+ * distinguishes its states with a tick glyph and a colour tells a screen-reader user nothing.
96
+ */
97
+ declare function Stepper({ steps, current, onStepChange, orientation, className, }: StepperProps): react.JSX.Element;
98
+
99
+ interface MegaMenuLink {
100
+ id: string;
101
+ label: string;
102
+ description?: string;
103
+ href?: string;
104
+ icon?: ReactNode;
105
+ onClick?: () => void;
106
+ }
107
+ interface MegaMenuColumn {
108
+ id: string;
109
+ heading?: string;
110
+ links: readonly MegaMenuLink[];
111
+ }
112
+ interface NavMenuItem {
113
+ id: string;
114
+ label: string;
115
+ href?: string;
116
+ /** Columns of links. Presence of this makes the item a dropdown rather than a link. */
117
+ columns?: readonly MegaMenuColumn[];
118
+ /** Promoted panel on the right of the dropdown — a featured post, a CTA. */
119
+ feature?: ReactNode;
120
+ }
121
+ interface NavigationMenuProps {
122
+ items: readonly NavMenuItem[];
123
+ label?: string;
124
+ className?: string;
125
+ }
126
+ /**
127
+ * A site navigation bar with mega-menu dropdowns.
128
+ *
129
+ * The pattern marketing sites need and the one most likely to be built with hover alone. This one:
130
+ *
131
+ * - opens on hover **and** on click/Enter, so it works with a keyboard and on touch;
132
+ * - keeps the panel open while the pointer travels toward it, via a close delay;
133
+ * - closes on Escape, returning focus to the trigger;
134
+ * - marks each trigger `aria-expanded` and links it to its panel with `aria-controls`.
135
+ *
136
+ * The panel is a plain absolutely-positioned element rather than a portal. A mega menu is full-width
137
+ * and anchored to the bar, not to a point, so the portal's viewport-relative positioning would fight
138
+ * the layout rather than help it.
139
+ */
140
+ declare function NavigationMenu({ items, label, className, }: NavigationMenuProps): react.JSX.Element;
141
+
142
+ /**
143
+ * Disclosure widgets.
144
+ *
145
+ * The animation here is the interesting part. Height cannot be transitioned to `auto`, so the usual
146
+ * workarounds are measuring the content with JavaScript (a forced layout on every toggle, and wrong
147
+ * the moment the content reflows) or a `max-height` guess (which either clips tall content or makes
148
+ * short content ease over an invisible gap, so the timing looks wrong).
149
+ *
150
+ * `grid-template-rows: 0fr → 1fr` transitions to the content's intrinsic height with no JavaScript
151
+ * and no magic numbers. It needs the extra wrapper with `min-height: 0` — without that the grid
152
+ * child refuses to shrink below its content size and nothing animates.
153
+ */
154
+ interface CollapsibleProps {
155
+ open?: boolean;
156
+ defaultOpen?: boolean;
157
+ onOpenChange?: (open: boolean) => void;
158
+ trigger: ReactNode;
159
+ /** Render the trigger as-is rather than wrapping it in the styled button row. */
160
+ bare?: boolean;
161
+ className?: string;
162
+ children: ReactNode;
163
+ }
164
+ /** A single show/hide region. */
165
+ declare function Collapsible({ open, defaultOpen, onOpenChange, trigger, bare, className, children, }: CollapsibleProps): react.JSX.Element;
166
+ interface AccordionItem {
167
+ id: string;
168
+ title: ReactNode;
169
+ /** Secondary line under the title. */
170
+ subtitle?: ReactNode;
171
+ icon?: ReactNode;
172
+ disabled?: boolean;
173
+ content: ReactNode;
174
+ }
175
+ interface AccordionProps {
176
+ items: readonly AccordionItem[];
177
+ /** Allow several panels open at once. Default `false`. */
178
+ multiple?: boolean;
179
+ /** Open panel ids. */
180
+ value?: readonly string[];
181
+ defaultValue?: readonly string[];
182
+ onChange?: (value: readonly string[]) => void;
183
+ variant?: 'bordered' | 'separated' | 'plain';
184
+ className?: string;
185
+ }
186
+ /**
187
+ * A stack of collapsible sections.
188
+ *
189
+ * Headings are real `<h3>` elements wrapping the button, which is the ARIA-recommended structure: a
190
+ * screen-reader user navigating by heading finds each section, and the button inside carries the
191
+ * expanded state. A `<div>` with `role="button"` looks identical and is invisible to heading
192
+ * navigation.
193
+ *
194
+ * Arrow keys move between headers, and Home/End jump to the ends — the accordion is a composite
195
+ * widget, so this is expected behaviour rather than a nicety.
196
+ */
197
+ declare function Accordion({ items, multiple, value, defaultValue, onChange, variant, className, }: AccordionProps): react.JSX.Element;
198
+ interface DisclosureListProps {
199
+ /** Simple show-more list — the pattern for "N more items". */
200
+ items: readonly ReactNode[];
201
+ /** How many to show before collapsing. Default `3`. */
202
+ initial?: number;
203
+ moreLabel?: (hidden: number) => string;
204
+ lessLabel?: string;
205
+ className?: string;
206
+ }
207
+ /** Show a few items with a "show N more" toggle. */
208
+ declare function DisclosureList({ items, initial, moreLabel, lessLabel, className, }: DisclosureListProps): react.JSX.Element;
209
+
210
+ export { Accordion, type AccordionItem, type AccordionProps, Breadcrumbs, type BreadcrumbsProps, Collapsible, type CollapsibleProps, type Crumb, DisclosureList, type DisclosureListProps, type MegaMenuColumn, type MegaMenuLink, type NavMenuItem, NavigationMenu, type NavigationMenuProps, type Step, Stepper, type StepperProps, type TabItem, Tabs, type TabsProps };
@@ -0,0 +1,210 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ export { A as AppShell, a as AppShellProps, N as NavItem, b as NavSection, S as Sidebar, c as SidebarProps } from './sidebar-D-PafAXw.js';
4
+
5
+ interface TabItem {
6
+ id: string;
7
+ label: ReactNode;
8
+ icon?: ReactNode;
9
+ /** Count or status shown after the label. */
10
+ badge?: ReactNode;
11
+ disabled?: boolean;
12
+ content?: ReactNode;
13
+ }
14
+ interface TabsProps {
15
+ items: readonly TabItem[];
16
+ value?: string;
17
+ defaultValue?: string;
18
+ onChange?: (value: string) => void;
19
+ variant?: 'underline' | 'pill' | 'enclosed';
20
+ orientation?: 'horizontal' | 'vertical';
21
+ size?: 'sm' | 'md';
22
+ /** Stretch tabs to fill the available width. */
23
+ fitted?: boolean;
24
+ /**
25
+ * Activate on arrow-key focus, rather than requiring Enter.
26
+ *
27
+ * Automatic is the ARIA-preferred default for cheap panels. Set `false` when switching a tab
28
+ * triggers a fetch — arrowing past three tabs would fire three requests.
29
+ */
30
+ activateOnFocus?: boolean;
31
+ /** Accessible name for the tab list. */
32
+ label: string;
33
+ className?: string;
34
+ children?: ReactNode;
35
+ }
36
+ /**
37
+ * Tabs.
38
+ *
39
+ * The full WAI-ARIA tab pattern: a single tab stop for the whole list (roving tabindex), arrow keys
40
+ * to move between tabs, Home/End to jump to the ends, and `aria-controls`/`aria-labelledby` linking
41
+ * each tab to its panel in both directions.
42
+ *
43
+ * Panels are unmounted when inactive rather than hidden. Hiding keeps the whole tree mounted, which
44
+ * means timers keep running, media keeps buffering and forms keep their state — the last of which
45
+ * sounds desirable until a hidden required field blocks submission with no visible error.
46
+ */
47
+ declare function Tabs({ items, value, defaultValue, onChange, variant, orientation, size, fitted, activateOnFocus, label, className, children, }: TabsProps): react.JSX.Element;
48
+
49
+ interface Crumb {
50
+ label: ReactNode;
51
+ href?: string;
52
+ icon?: ReactNode;
53
+ onClick?: () => void;
54
+ }
55
+ interface BreadcrumbsProps {
56
+ items: readonly Crumb[];
57
+ /** Collapse the middle when there are more than this many. Default `Infinity`. */
58
+ maxItems?: number;
59
+ separator?: ReactNode;
60
+ className?: string;
61
+ }
62
+ /**
63
+ * A breadcrumb trail.
64
+ *
65
+ * `<nav aria-label="Breadcrumb">` around an ordered list, with the last item marked
66
+ * `aria-current="page"` and rendered as text rather than a link. Making the current page a link to
67
+ * itself is a small thing that wastes a keyboard user's time on every page.
68
+ *
69
+ * Separators are `aria-hidden`, so the trail reads as "Home, Projects, Invoice 401" rather than
70
+ * "Home slash Projects slash".
71
+ */
72
+ declare function Breadcrumbs({ items, maxItems, separator, className, }: BreadcrumbsProps): react.JSX.Element;
73
+ interface Step {
74
+ id: string;
75
+ label: ReactNode;
76
+ description?: ReactNode;
77
+ /** Marks the step failed — validation errors on a wizard page. */
78
+ error?: boolean;
79
+ /** Allow jumping to this step directly. */
80
+ clickable?: boolean;
81
+ }
82
+ interface StepperProps {
83
+ steps: readonly Step[];
84
+ /** Index of the current step. Steps before it are complete. */
85
+ current: number;
86
+ onStepChange?: (index: number) => void;
87
+ orientation?: 'horizontal' | 'vertical';
88
+ className?: string;
89
+ }
90
+ /**
91
+ * A progress stepper for multi-page flows — checkout, onboarding, approvals.
92
+ *
93
+ * The state of each step is announced in text, not just drawn: `aria-current="step"` on the active
94
+ * one and a visually hidden "completed"/"current"/"not started" on each. A stepper that
95
+ * distinguishes its states with a tick glyph and a colour tells a screen-reader user nothing.
96
+ */
97
+ declare function Stepper({ steps, current, onStepChange, orientation, className, }: StepperProps): react.JSX.Element;
98
+
99
+ interface MegaMenuLink {
100
+ id: string;
101
+ label: string;
102
+ description?: string;
103
+ href?: string;
104
+ icon?: ReactNode;
105
+ onClick?: () => void;
106
+ }
107
+ interface MegaMenuColumn {
108
+ id: string;
109
+ heading?: string;
110
+ links: readonly MegaMenuLink[];
111
+ }
112
+ interface NavMenuItem {
113
+ id: string;
114
+ label: string;
115
+ href?: string;
116
+ /** Columns of links. Presence of this makes the item a dropdown rather than a link. */
117
+ columns?: readonly MegaMenuColumn[];
118
+ /** Promoted panel on the right of the dropdown — a featured post, a CTA. */
119
+ feature?: ReactNode;
120
+ }
121
+ interface NavigationMenuProps {
122
+ items: readonly NavMenuItem[];
123
+ label?: string;
124
+ className?: string;
125
+ }
126
+ /**
127
+ * A site navigation bar with mega-menu dropdowns.
128
+ *
129
+ * The pattern marketing sites need and the one most likely to be built with hover alone. This one:
130
+ *
131
+ * - opens on hover **and** on click/Enter, so it works with a keyboard and on touch;
132
+ * - keeps the panel open while the pointer travels toward it, via a close delay;
133
+ * - closes on Escape, returning focus to the trigger;
134
+ * - marks each trigger `aria-expanded` and links it to its panel with `aria-controls`.
135
+ *
136
+ * The panel is a plain absolutely-positioned element rather than a portal. A mega menu is full-width
137
+ * and anchored to the bar, not to a point, so the portal's viewport-relative positioning would fight
138
+ * the layout rather than help it.
139
+ */
140
+ declare function NavigationMenu({ items, label, className, }: NavigationMenuProps): react.JSX.Element;
141
+
142
+ /**
143
+ * Disclosure widgets.
144
+ *
145
+ * The animation here is the interesting part. Height cannot be transitioned to `auto`, so the usual
146
+ * workarounds are measuring the content with JavaScript (a forced layout on every toggle, and wrong
147
+ * the moment the content reflows) or a `max-height` guess (which either clips tall content or makes
148
+ * short content ease over an invisible gap, so the timing looks wrong).
149
+ *
150
+ * `grid-template-rows: 0fr → 1fr` transitions to the content's intrinsic height with no JavaScript
151
+ * and no magic numbers. It needs the extra wrapper with `min-height: 0` — without that the grid
152
+ * child refuses to shrink below its content size and nothing animates.
153
+ */
154
+ interface CollapsibleProps {
155
+ open?: boolean;
156
+ defaultOpen?: boolean;
157
+ onOpenChange?: (open: boolean) => void;
158
+ trigger: ReactNode;
159
+ /** Render the trigger as-is rather than wrapping it in the styled button row. */
160
+ bare?: boolean;
161
+ className?: string;
162
+ children: ReactNode;
163
+ }
164
+ /** A single show/hide region. */
165
+ declare function Collapsible({ open, defaultOpen, onOpenChange, trigger, bare, className, children, }: CollapsibleProps): react.JSX.Element;
166
+ interface AccordionItem {
167
+ id: string;
168
+ title: ReactNode;
169
+ /** Secondary line under the title. */
170
+ subtitle?: ReactNode;
171
+ icon?: ReactNode;
172
+ disabled?: boolean;
173
+ content: ReactNode;
174
+ }
175
+ interface AccordionProps {
176
+ items: readonly AccordionItem[];
177
+ /** Allow several panels open at once. Default `false`. */
178
+ multiple?: boolean;
179
+ /** Open panel ids. */
180
+ value?: readonly string[];
181
+ defaultValue?: readonly string[];
182
+ onChange?: (value: readonly string[]) => void;
183
+ variant?: 'bordered' | 'separated' | 'plain';
184
+ className?: string;
185
+ }
186
+ /**
187
+ * A stack of collapsible sections.
188
+ *
189
+ * Headings are real `<h3>` elements wrapping the button, which is the ARIA-recommended structure: a
190
+ * screen-reader user navigating by heading finds each section, and the button inside carries the
191
+ * expanded state. A `<div>` with `role="button"` looks identical and is invisible to heading
192
+ * navigation.
193
+ *
194
+ * Arrow keys move between headers, and Home/End jump to the ends — the accordion is a composite
195
+ * widget, so this is expected behaviour rather than a nicety.
196
+ */
197
+ declare function Accordion({ items, multiple, value, defaultValue, onChange, variant, className, }: AccordionProps): react.JSX.Element;
198
+ interface DisclosureListProps {
199
+ /** Simple show-more list — the pattern for "N more items". */
200
+ items: readonly ReactNode[];
201
+ /** How many to show before collapsing. Default `3`. */
202
+ initial?: number;
203
+ moreLabel?: (hidden: number) => string;
204
+ lessLabel?: string;
205
+ className?: string;
206
+ }
207
+ /** Show a few items with a "show N more" toggle. */
208
+ declare function DisclosureList({ items, initial, moreLabel, lessLabel, className, }: DisclosureListProps): react.JSX.Element;
209
+
210
+ export { Accordion, type AccordionItem, type AccordionProps, Breadcrumbs, type BreadcrumbsProps, Collapsible, type CollapsibleProps, type Crumb, DisclosureList, type DisclosureListProps, type MegaMenuColumn, type MegaMenuLink, type NavMenuItem, NavigationMenu, type NavigationMenuProps, type Step, Stepper, type StepperProps, type TabItem, Tabs, type TabsProps };
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ export { Accordion, Breadcrumbs, Collapsible, DisclosureList, NavigationMenu, Stepper, Tabs } from './chunk-OLTS6G5M.js';
3
+ export { AppShell, Sidebar } from './chunk-5CFQFMP5.js';
4
+ import './chunk-LXCIXR5T.js';
5
+ import './chunk-H34OXXJU.js';
6
+ //# sourceMappingURL=navigation.js.map
7
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"navigation.js"}
@@ -0,0 +1,69 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var chunkC5JG6TMM_cjs = require('./chunk-C5JG6TMM.cjs');
5
+ require('./chunk-C32LKF23.cjs');
6
+ require('./chunk-XMXECSQO.cjs');
7
+ require('./chunk-PO5DU3FU.cjs');
8
+ require('./chunk-SFU5EPSN.cjs');
9
+
10
+
11
+
12
+ Object.defineProperty(exports, "AlertDialog", {
13
+ enumerable: true,
14
+ get: function () { return chunkC5JG6TMM_cjs.AlertDialog; }
15
+ });
16
+ Object.defineProperty(exports, "CommandPalette", {
17
+ enumerable: true,
18
+ get: function () { return chunkC5JG6TMM_cjs.CommandPalette; }
19
+ });
20
+ Object.defineProperty(exports, "ContextMenu", {
21
+ enumerable: true,
22
+ get: function () { return chunkC5JG6TMM_cjs.ContextMenu; }
23
+ });
24
+ Object.defineProperty(exports, "Dialog", {
25
+ enumerable: true,
26
+ get: function () { return chunkC5JG6TMM_cjs.Dialog; }
27
+ });
28
+ Object.defineProperty(exports, "DialogFooter", {
29
+ enumerable: true,
30
+ get: function () { return chunkC5JG6TMM_cjs.DialogFooter; }
31
+ });
32
+ Object.defineProperty(exports, "Drawer", {
33
+ enumerable: true,
34
+ get: function () { return chunkC5JG6TMM_cjs.Drawer; }
35
+ });
36
+ Object.defineProperty(exports, "DropdownMenu", {
37
+ enumerable: true,
38
+ get: function () { return chunkC5JG6TMM_cjs.DropdownMenu; }
39
+ });
40
+ Object.defineProperty(exports, "HoverCard", {
41
+ enumerable: true,
42
+ get: function () { return chunkC5JG6TMM_cjs.HoverCard; }
43
+ });
44
+ Object.defineProperty(exports, "Popover", {
45
+ enumerable: true,
46
+ get: function () { return chunkC5JG6TMM_cjs.Popover; }
47
+ });
48
+ Object.defineProperty(exports, "PopoverContent", {
49
+ enumerable: true,
50
+ get: function () { return chunkC5JG6TMM_cjs.PopoverContent; }
51
+ });
52
+ Object.defineProperty(exports, "PopoverTrigger", {
53
+ enumerable: true,
54
+ get: function () { return chunkC5JG6TMM_cjs.PopoverTrigger; }
55
+ });
56
+ Object.defineProperty(exports, "Tooltip", {
57
+ enumerable: true,
58
+ get: function () { return chunkC5JG6TMM_cjs.Tooltip; }
59
+ });
60
+ Object.defineProperty(exports, "TooltipProvider", {
61
+ enumerable: true,
62
+ get: function () { return chunkC5JG6TMM_cjs.TooltipProvider; }
63
+ });
64
+ Object.defineProperty(exports, "useCommandShortcut", {
65
+ enumerable: true,
66
+ get: function () { return chunkC5JG6TMM_cjs.useCommandShortcut; }
67
+ });
68
+ //# sourceMappingURL=overlay.cjs.map
69
+ //# sourceMappingURL=overlay.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"overlay.cjs"}