@moduix/react 2.4.0 → 2.5.1

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.
@@ -24,6 +24,7 @@
24
24
  display: flex;
25
25
  position: relative;
26
26
  overflow: hidden;
27
+ container-type: inline-size;
27
28
  }
28
29
 
29
30
  .panel-l44YAX[data-state="collapsed"] .header-YkNEAV, .panel-l44YAX[data-state="collapsed"] .footer-RydM38, .panel-l44YAX[data-state="collapsed"] .group-cwd3z7 {
@@ -34,6 +35,10 @@
34
35
  justify-content: center;
35
36
  }
36
37
 
38
+ .panel-l44YAX[data-state="collapsed"] .header-YkNEAV > :only-child {
39
+ width: auto;
40
+ }
41
+
37
42
  .panel-l44YAX[data-state="collapsed"] .content-v0UxPJ {
38
43
  scrollbar-gutter: auto;
39
44
  scrollbar-width: none;
@@ -95,28 +100,39 @@
95
100
 
96
101
  .trigger-_fUcgc {
97
102
  box-sizing: border-box;
103
+ z-index: 4;
98
104
  width: var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7));
99
105
  min-width: var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7));
100
106
  height: var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7));
107
+ margin-inline: calc(var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7)) * -.5);
108
+ border: var(--moduix-sidebar-trigger-border-width, var(--moduix-border-width-sm)) solid
109
+ var(--moduix-sidebar-trigger-border-color, var(--moduix-color-border));
101
110
  border-radius: var(--moduix-sidebar-trigger-radius, var(--moduix-radius-full));
111
+ background-color: var(--moduix-sidebar-trigger-bg, var(--moduix-color-background));
102
112
  color: var(--moduix-sidebar-muted-color, var(--moduix-color-muted-foreground));
103
113
  appearance: none;
104
114
  cursor: pointer;
115
+ translate: 0 var(--moduix-sidebar-trigger-offset-y, 40px);
116
+ box-shadow: var(--moduix-sidebar-trigger-shadow, var(--moduix-shadow-sm));
105
117
  transition: background-color var(--moduix-sidebar-transition, var(--moduix-transition-default)),
106
118
  color var(--moduix-sidebar-transition, var(--moduix-transition-default)),
107
119
  box-shadow var(--moduix-sidebar-transition, var(--moduix-transition-default));
108
- background-color: #0000;
109
- border: 0;
110
120
  flex: none;
111
121
  justify-content: center;
112
122
  align-items: center;
113
123
  padding: 0;
114
124
  display: inline-flex;
125
+ position: relative;
115
126
  }
116
127
 
117
128
  .trigger-_fUcgc > svg {
118
129
  width: var(--moduix-sidebar-icon-size, var(--moduix-spacing-4));
119
130
  height: var(--moduix-sidebar-icon-size, var(--moduix-spacing-4));
131
+ transition: transform var(--moduix-sidebar-transition, var(--moduix-transition-default));
132
+ }
133
+
134
+ .trigger-_fUcgc[data-side="left"][data-state="collapsed"] > svg, .trigger-_fUcgc[data-side="right"][data-state="expanded"] > svg {
135
+ transform: rotate(180deg);
120
136
  }
121
137
 
122
138
  .trigger-_fUcgc:focus-visible {
@@ -137,30 +153,6 @@
137
153
  }
138
154
  }
139
155
 
140
- .trigger-_fUcgc {
141
- z-index: 4;
142
- margin-block-start: 0;
143
- margin-inline: calc(var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7)) * -.5);
144
- border: var(--moduix-sidebar-trigger-border-width, var(--moduix-border-width-sm)) solid
145
- var(--moduix-sidebar-trigger-border-color, var(--moduix-color-border));
146
- border-radius: var(--moduix-sidebar-trigger-radius, var(--moduix-radius-full));
147
- background-color: var(--moduix-sidebar-trigger-bg, var(--moduix-color-background));
148
- box-shadow: var(--moduix-sidebar-trigger-shadow, var(--moduix-shadow-sm));
149
- position: relative;
150
- }
151
-
152
- .trigger-_fUcgc[data-side="left"][data-state="collapsed"] > svg, .trigger-_fUcgc[data-side="right"][data-state="expanded"] > svg {
153
- transform: rotate(180deg);
154
- }
155
-
156
- .trigger-_fUcgc > svg {
157
- transition: transform var(--moduix-sidebar-transition, var(--moduix-transition-default));
158
- }
159
-
160
- .trigger-_fUcgc {
161
- translate: 0 var(--moduix-sidebar-trigger-offset-y, 40px);
162
- }
163
-
164
156
  .label-trHnso, .groupLabel-IvBtsR {
165
157
  text-overflow: ellipsis;
166
158
  white-space: nowrap;
@@ -181,6 +173,10 @@
181
173
  var(--moduix-sidebar-border-color, var(--moduix-color-border));
182
174
  }
183
175
 
176
+ .header-YkNEAV > :only-child {
177
+ width: 100%;
178
+ }
179
+
184
180
  .footer-RydM38 {
185
181
  border-block-start: var(--moduix-sidebar-section-border-width, 0) solid
186
182
  var(--moduix-sidebar-border-color, var(--moduix-color-border));
@@ -216,7 +212,7 @@
216
212
  .groupAction-aoQPc4 {
217
213
  width: var(--moduix-sidebar-group-action-size, var(--moduix-size-xs));
218
214
  height: var(--moduix-sidebar-group-action-size, var(--moduix-size-xs));
219
- border-radius: var(--moduix-sidebar-menu-button-radius, var(--moduix-radius-md));
215
+ border-radius: var(--moduix-sidebar-navigation-button-radius, var(--moduix-radius-md));
220
216
  color: var(--moduix-sidebar-muted-color, var(--moduix-color-muted-foreground));
221
217
  appearance: none;
222
218
  cursor: pointer;
@@ -256,12 +252,16 @@
256
252
  }
257
253
 
258
254
  .group-cwd3z7:has(.groupAction-aoQPc4) .groupLabel-IvBtsR {
255
+ min-height: var(--moduix-sidebar-group-action-size, var(--moduix-size-xs));
259
256
  grid-column: 1;
257
+ align-items: center;
258
+ display: flex;
260
259
  }
261
260
 
262
261
  .group-cwd3z7:has(.groupAction-aoQPc4) .groupAction-aoQPc4 {
263
262
  grid-column: 2;
264
263
  align-self: center;
264
+ margin-inline-end: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
265
265
  }
266
266
 
267
267
  .groupContent-_s9yul {
@@ -273,8 +273,12 @@
273
273
  grid-column: 1 / -1;
274
274
  }
275
275
 
276
+ .group-cwd3z7:has(.groupAction-aoQPc4) .menu-UwagMF {
277
+ grid-column: 1 / -1;
278
+ }
279
+
276
280
  .menu-UwagMF, .menuSub-xn2r86 {
277
- gap: var(--moduix-sidebar-menu-gap, var(--moduix-spacing-1));
281
+ gap: var(--moduix-sidebar-navigation-gap, var(--moduix-spacing-1));
278
282
  flex-direction: column;
279
283
  width: 100%;
280
284
  min-width: 0;
@@ -284,21 +288,31 @@
284
288
  display: flex;
285
289
  }
286
290
 
287
- .menuItem-ktGhRk, .menuSubItem-NeKVH5 {
291
+ .menuItem-ktGhRk {
288
292
  min-width: 0;
289
293
  position: relative;
290
294
  }
291
295
 
296
+ .menuSubItem-NeKVH5 {
297
+ min-width: 0;
298
+ }
299
+
300
+ .menuItem-ktGhRk > [data-scope="select"][data-part="root"] {
301
+ --moduix-select-width: 100%;
302
+ }
303
+
292
304
  .menuButton-OAl6eQ, .menuSubButton-MjeEfX {
293
305
  box-sizing: border-box;
294
- border: var(--moduix-sidebar-menu-button-border-width, 0) solid transparent;
295
- border-radius: var(--moduix-sidebar-menu-button-radius, var(--moduix-radius-md));
306
+ border: var(--moduix-sidebar-navigation-button-border-width, 0) solid transparent;
307
+ border-radius: var(--moduix-sidebar-navigation-button-radius, var(--moduix-radius-md));
296
308
  width: 100%;
297
309
  min-width: 0;
298
310
  color: var(--moduix-sidebar-color, var(--moduix-color-card-foreground));
299
311
  appearance: none;
300
312
  font: inherit;
301
313
  text-align: start;
314
+ text-overflow: ellipsis;
315
+ white-space: nowrap;
302
316
  cursor: pointer;
303
317
  transition: background-color var(--moduix-sidebar-transition, var(--moduix-transition-default)),
304
318
  border-color var(--moduix-sidebar-transition, var(--moduix-transition-default)),
@@ -308,6 +322,7 @@
308
322
  align-items: center;
309
323
  text-decoration: none;
310
324
  display: flex;
325
+ overflow: hidden;
311
326
  }
312
327
 
313
328
  :is(.menuButton-OAl6eQ, .menuSubButton-MjeEfX) > svg {
@@ -352,36 +367,32 @@
352
367
  }
353
368
 
354
369
  .menuButton-OAl6eQ {
355
- gap: var(--moduix-sidebar-menu-button-gap, var(--moduix-spacing-2));
356
- min-height: var(--moduix-sidebar-menu-button-height, var(--moduix-size-md));
357
- padding-block: var(--moduix-sidebar-menu-button-padding-y, var(--moduix-spacing-1));
358
- padding-inline: var(--moduix-sidebar-menu-button-padding-x, var(--moduix-spacing-2));
359
- font-size: var(--moduix-sidebar-menu-button-font-size, var(--moduix-text-sm));
360
- line-height: var(--moduix-sidebar-menu-button-line-height, var(--moduix-line-height-text-sm));
370
+ gap: var(--moduix-sidebar-navigation-button-gap, var(--moduix-spacing-2));
371
+ min-height: var(--moduix-sidebar-navigation-button-height, var(--moduix-size-md));
372
+ padding-block: var(--moduix-sidebar-navigation-button-padding-y, var(--moduix-spacing-1));
373
+ padding-inline: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
374
+ font-size: var(--moduix-sidebar-navigation-button-font-size, var(--moduix-text-sm));
375
+ line-height: var(--moduix-sidebar-navigation-button-line-height, var(--moduix-line-height-text-sm));
361
376
  }
362
377
 
363
378
  .menuButton-OAl6eQ[data-size="sm"] {
364
- min-height: var(--moduix-sidebar-menu-button-height-sm, var(--moduix-size-sm));
365
- font-size: var(--moduix-sidebar-menu-button-font-size-sm, var(--moduix-text-xs));
379
+ min-height: var(--moduix-sidebar-navigation-button-height-sm, var(--moduix-size-sm));
380
+ font-size: var(--moduix-sidebar-navigation-button-font-size-sm, var(--moduix-text-xs));
366
381
  }
367
382
 
368
383
  .menuButton-OAl6eQ[data-size="lg"] {
369
- min-height: var(--moduix-sidebar-menu-button-height-lg, var(--moduix-size-lg));
384
+ min-height: var(--moduix-sidebar-navigation-button-height-lg, var(--moduix-size-lg));
370
385
  }
371
386
 
372
- .menuButton-OAl6eQ > [data-slot="collapsible-indicator"], .menuButton-OAl6eQ > [data-slot="menu-indicator"] {
387
+ .menuButton-OAl6eQ > [data-slot="collapsible-indicator"], .menuButton-OAl6eQ > [data-slot="menu-indicator"], .menuButton-OAl6eQ > [data-scope="select"][data-part="indicator"] {
373
388
  margin-inline-start: auto;
374
389
  }
375
390
 
376
- .panel-l44YAX .menuButton-OAl6eQ {
377
- justify-content: flex-start;
378
- }
379
-
380
391
  .menuAction-_BDfHY {
381
392
  z-index: 1;
382
- width: var(--moduix-sidebar-menu-action-size, var(--moduix-size-xs));
383
- height: var(--moduix-sidebar-menu-action-size, var(--moduix-size-xs));
384
- border-radius: var(--moduix-sidebar-menu-button-radius, var(--moduix-radius-md));
393
+ width: var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs));
394
+ height: var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs));
395
+ border-radius: var(--moduix-sidebar-navigation-button-radius, var(--moduix-radius-md));
385
396
  color: var(--moduix-sidebar-muted-color, var(--moduix-color-muted-foreground));
386
397
  appearance: none;
387
398
  cursor: pointer;
@@ -394,10 +405,10 @@
394
405
  padding: 0;
395
406
  display: inline-flex;
396
407
  position: absolute;
397
- inset-block-start: calc((var(--moduix-sidebar-menu-button-height, var(--moduix-size-md)) -
398
- var(--moduix-sidebar-menu-action-size, var(--moduix-size-xs))) /
408
+ inset-block-start: calc((var(--moduix-sidebar-navigation-button-height, var(--moduix-size-md)) -
409
+ var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs))) /
399
410
  2);
400
- inset-inline-end: var(--moduix-sidebar-menu-button-padding-x, var(--moduix-spacing-2));
411
+ inset-inline-end: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
401
412
  }
402
413
 
403
414
  .menuAction-_BDfHY > svg {
@@ -420,28 +431,57 @@
420
431
 
421
432
  .menuBadge-GKf4u4 {
422
433
  z-index: 1;
423
- min-width: var(--moduix-sidebar-menu-badge-min-width, 1.5rem);
424
- min-height: var(--moduix-sidebar-menu-badge-min-width, 1.5rem);
425
- padding-inline: var(--moduix-sidebar-menu-badge-padding-x, var(--moduix-spacing-1));
434
+ min-width: var(--moduix-sidebar-navigation-badge-min-width, 1.125rem);
435
+ min-height: var(--moduix-sidebar-navigation-badge-min-width, 1.125rem);
436
+ padding-inline: var(--moduix-sidebar-navigation-badge-padding-x, var(--moduix-spacing-0-5));
426
437
  border-radius: var(--moduix-radius-full);
427
438
  background-color: var(--moduix-sidebar-accent-bg, var(--moduix-color-accent));
428
439
  color: var(--moduix-sidebar-accent-color, var(--moduix-color-accent-foreground));
429
- font-size: var(--moduix-text-xs);
440
+ font-size: var(--moduix-sidebar-navigation-badge-font-size, .625rem);
441
+ font-weight: var(--moduix-sidebar-navigation-badge-font-weight, var(--moduix-weight-medium));
430
442
  font-variant-numeric: tabular-nums;
431
443
  justify-content: center;
432
444
  align-items: center;
433
445
  line-height: 1;
434
446
  display: inline-flex;
435
447
  position: absolute;
436
- inset-block-start: calc((var(--moduix-sidebar-menu-button-height, var(--moduix-size-md)) -
437
- var(--moduix-sidebar-menu-badge-min-width, 1.5rem)) /
448
+ inset-block-start: calc((var(--moduix-sidebar-navigation-button-height, var(--moduix-size-md)) -
449
+ var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
450
+ 2);
451
+ inset-inline-end: calc(var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) +
452
+ (var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
453
+ var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
454
+ 2);
455
+ }
456
+
457
+ .menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ {
458
+ padding-inline-end: calc(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) +
459
+ var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 2);
460
+ }
461
+
462
+ .menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ {
463
+ padding-inline-end: calc(var(--moduix-sidebar-navigation-badge-min-width, 1.125rem) +
464
+ var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 2 +
465
+ (var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
466
+ var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
438
467
  2);
439
- inset-inline-end: var(--moduix-sidebar-menu-button-padding-x, var(--moduix-spacing-2));
440
468
  }
441
469
 
442
- :is(.menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ, .menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ) {
443
- padding-inline-end: calc(var(--moduix-sidebar-menu-action-size, var(--moduix-size-xs)) +
444
- var(--moduix-sidebar-menu-button-padding-x, var(--moduix-spacing-2)) * 2);
470
+ .menuItem-ktGhRk:has(.menuAction-_BDfHY):has(.menuBadge-GKf4u4) .menuButton-OAl6eQ {
471
+ padding-inline-end: calc(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) +
472
+ var(--moduix-sidebar-navigation-badge-min-width, 1.125rem) +
473
+ var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 3 +
474
+ (var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
475
+ var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
476
+ 2);
477
+ }
478
+
479
+ .menuItem-ktGhRk:has(.menuAction-_BDfHY):has(.menuBadge-GKf4u4) .menuAction-_BDfHY {
480
+ inset-inline-end: calc(var(--moduix-sidebar-navigation-badge-min-width, 1.125rem) +
481
+ var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 2 +
482
+ (var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
483
+ var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
484
+ 2);
445
485
  }
446
486
 
447
487
  :is(.panel-l44YAX[data-state="collapsed"] .menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ, .panel-l44YAX[data-state="collapsed"] .menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ) {
@@ -451,19 +491,29 @@
451
491
  .menuSub-xn2r86 {
452
492
  box-sizing: border-box;
453
493
  width: auto;
454
- border-inline-start: var(--moduix-sidebar-menu-sub-border-width, var(--moduix-border-width-sm))
494
+ border-inline-start: var(--moduix-sidebar-navigation-sub-border-width, var(--moduix-border-width-sm))
455
495
  solid var(--moduix-sidebar-border-color, var(--moduix-color-border));
456
- margin-block-start: var(--moduix-sidebar-menu-sub-margin-y, var(--moduix-spacing-1));
457
- margin-inline-start: var(--moduix-sidebar-menu-sub-margin-x, var(--moduix-spacing-4));
458
- padding-inline-start: var(--moduix-sidebar-menu-sub-padding-x, var(--moduix-spacing-2));
496
+ margin-block-start: var(--moduix-sidebar-navigation-sub-margin-y, var(--moduix-spacing-1));
497
+ margin-inline-start: var(--moduix-sidebar-navigation-sub-margin-x, var(--moduix-spacing-4));
498
+ padding-inline-start: var(--moduix-sidebar-navigation-sub-padding-x, var(--moduix-spacing-2));
459
499
  }
460
500
 
461
501
  .menuSubButton-MjeEfX {
462
- gap: var(--moduix-sidebar-menu-sub-button-gap, var(--moduix-spacing-2));
463
- min-height: var(--moduix-sidebar-menu-sub-button-height, var(--moduix-size-sm));
464
- padding-inline: var(--moduix-sidebar-menu-sub-button-padding-x, var(--moduix-spacing-2));
465
- font-size: var(--moduix-sidebar-menu-sub-button-font-size, var(--moduix-text-sm));
466
- line-height: var(--moduix-sidebar-menu-sub-button-line-height, var(--moduix-line-height-text-sm));
502
+ gap: var(--moduix-sidebar-navigation-sub-button-gap, var(--moduix-spacing-2));
503
+ min-height: var(--moduix-sidebar-navigation-sub-button-height, var(--moduix-size-sm));
504
+ padding-inline: var(--moduix-sidebar-navigation-sub-button-padding-x, var(--moduix-spacing-2));
505
+ font-size: var(--moduix-sidebar-navigation-sub-button-font-size, var(--moduix-text-sm));
506
+ line-height: var(--moduix-sidebar-navigation-sub-button-line-height, var(--moduix-line-height-text-sm));
507
+ }
508
+
509
+ @container (width <= 7rem) {
510
+ .groupAction-aoQPc4, .menuAction-_BDfHY, .menuBadge-GKf4u4, [data-slot="collapsible-indicator"], [data-slot="menu-indicator"], [data-slot="select-indicator"] {
511
+ display: none;
512
+ }
513
+
514
+ :is(.menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ, .menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ) {
515
+ padding-inline-end: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
516
+ }
467
517
  }
468
518
 
469
519
  .input-nqDU3w {
@@ -0,0 +1,23 @@
1
+ import { Toc as TocPrimitive, type UseTocProps } from '@ark-ui/react/toc';
2
+ import type { ComponentProps } from 'react';
3
+ declare const useToc: ({ autoScroll, ...props }: UseTocProps) => import("@ark-ui/react/toc").UseTocReturn;
4
+ declare const useTocContext: () => import("@ark-ui/react/toc").UseTocContext;
5
+ type TocRailProps = ComponentProps<'svg'> & {
6
+ depth: number;
7
+ previousDepth?: number;
8
+ nextDepth?: number;
9
+ };
10
+ declare const Toc: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.RootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
11
+ Root: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.RootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
12
+ RootProvider: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.RootProviderProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
13
+ Context: (props: TocPrimitive.ContextProps) => import("react").ReactNode;
14
+ Content: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.ContentProps & import("react").RefAttributes<HTMLElement>, "ref"> & import("react").RefAttributes<HTMLElement>>;
15
+ Nav: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.NavProps & import("react").RefAttributes<HTMLElement>, "ref"> & import("react").RefAttributes<HTMLElement>>;
16
+ Title: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.TitleProps & import("react").RefAttributes<HTMLHeadingElement>, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
17
+ List: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.ListProps & import("react").RefAttributes<HTMLUListElement>, "ref"> & import("react").RefAttributes<HTMLUListElement>>;
18
+ Item: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.ItemProps & import("react").RefAttributes<HTMLLIElement>, "ref"> & import("react").RefAttributes<HTMLLIElement>>;
19
+ Link: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.LinkProps & import("react").RefAttributes<HTMLAnchorElement>, "ref"> & import("react").RefAttributes<HTMLAnchorElement>>;
20
+ Indicator: import("react").ForwardRefExoticComponent<Omit<TocPrimitive.IndicatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
21
+ Rail: import("react").ForwardRefExoticComponent<Omit<TocRailProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
22
+ };
23
+ export { Toc, useToc, useTocContext };
@@ -0,0 +1,144 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { Toc, useToc, useTocContext } from "@ark-ui/react/toc";
4
+ import { clsx } from "clsx";
5
+ import { forwardRef } from "react";
6
+ import { normalizeClassName } from "../../internal/normalizeClassName.js";
7
+ import Toc_module from "./Toc.module.js";
8
+ const railBaseOffset = 0;
9
+ const railStep = 12;
10
+ const railBridge = 6;
11
+ const maxRailLevel = 2;
12
+ const getRailOffset = (depth)=>railBaseOffset + Math.min(Math.max(depth - 2, 0), maxRailLevel) * railStep;
13
+ const Toc_useToc = ({ autoScroll = false, ...props })=>useToc({
14
+ autoScroll,
15
+ ...props
16
+ });
17
+ const Toc_useTocContext = useTocContext;
18
+ const Toc_TocRoot = /*#__PURE__*/ forwardRef(function({ autoScroll = false, className, ...props }, ref) {
19
+ return /*#__PURE__*/ jsx(Toc.Root, {
20
+ ref: ref,
21
+ autoScroll: autoScroll,
22
+ "data-slot": "toc-root",
23
+ className: clsx(Toc_module.root, normalizeClassName(className)),
24
+ ...props
25
+ });
26
+ });
27
+ const Toc_TocRootProvider = /*#__PURE__*/ forwardRef(function({ className, style, value, ...props }, ref) {
28
+ return /*#__PURE__*/ jsx(Toc.RootProvider, {
29
+ ref: ref,
30
+ value: value,
31
+ "data-slot": "toc-root-provider",
32
+ className: clsx(Toc_module.root, normalizeClassName(className)),
33
+ style: {
34
+ ...value.getRootProps().style,
35
+ ...style
36
+ },
37
+ ...props
38
+ });
39
+ });
40
+ const Toc_TocContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
41
+ return /*#__PURE__*/ jsx(Toc.Content, {
42
+ ref: ref,
43
+ "data-slot": "toc-content",
44
+ className: clsx(Toc_module.content, normalizeClassName(className)),
45
+ ...props
46
+ });
47
+ });
48
+ const Toc_TocNav = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
49
+ return /*#__PURE__*/ jsx(Toc.Nav, {
50
+ ref: ref,
51
+ "data-slot": "toc-nav",
52
+ className: clsx(Toc_module.nav, normalizeClassName(className)),
53
+ ...props
54
+ });
55
+ });
56
+ const Toc_TocTitle = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
57
+ return /*#__PURE__*/ jsx(Toc.Title, {
58
+ ref: ref,
59
+ "data-slot": "toc-title",
60
+ className: clsx(Toc_module.title, normalizeClassName(className)),
61
+ ...props
62
+ });
63
+ });
64
+ const Toc_TocList = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
65
+ return /*#__PURE__*/ jsx(Toc.List, {
66
+ ref: ref,
67
+ "data-slot": "toc-list",
68
+ className: clsx(Toc_module.list, normalizeClassName(className)),
69
+ ...props
70
+ });
71
+ });
72
+ const Toc_TocItem = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
73
+ return /*#__PURE__*/ jsx(Toc.Item, {
74
+ ref: ref,
75
+ "data-slot": "toc-item",
76
+ className: clsx(Toc_module.item, normalizeClassName(className)),
77
+ ...props
78
+ });
79
+ });
80
+ const Toc_TocLink = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
81
+ return /*#__PURE__*/ jsx(Toc.Link, {
82
+ ref: ref,
83
+ "data-slot": "toc-link",
84
+ className: clsx(Toc_module.link, normalizeClassName(className)),
85
+ ...props
86
+ });
87
+ });
88
+ const Toc_TocIndicator = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
89
+ return /*#__PURE__*/ jsx(Toc.Indicator, {
90
+ ref: ref,
91
+ "data-slot": "toc-indicator",
92
+ className: clsx(Toc_module.indicator, normalizeClassName(className)),
93
+ ...props
94
+ });
95
+ });
96
+ const Toc_TocRail = /*#__PURE__*/ forwardRef(function({ className, depth, nextDepth = depth, previousDepth = depth, style, ...props }, ref) {
97
+ const lineOffset = getRailOffset(depth);
98
+ const previousLineOffset = getRailOffset(previousDepth);
99
+ const nextLineOffset = getRailOffset(nextDepth);
100
+ const hasTurn = previousLineOffset !== lineOffset;
101
+ const width = Math.max(previousLineOffset, lineOffset, nextLineOffset) + 2;
102
+ return /*#__PURE__*/ jsxs("svg", {
103
+ ref: ref,
104
+ "aria-hidden": "true",
105
+ "data-slot": "toc-rail",
106
+ className: clsx(Toc_module.rail, normalizeClassName(className)),
107
+ style: {
108
+ width,
109
+ height: lineOffset === nextLineOffset ? `calc(100% + ${railBridge}px + var(--moduix-table-of-contents-list-gap, var(--moduix-spacing-0-5)))` : '100%',
110
+ ...style
111
+ },
112
+ ...props,
113
+ children: [
114
+ hasTurn && /*#__PURE__*/ jsx("path", {
115
+ d: `M ${previousLineOffset + 0.5} 0 C ${previousLineOffset + 0.5} 8 ${lineOffset + 0.5} 4 ${lineOffset + 0.5} ${2 * railBridge}`,
116
+ fill: "none",
117
+ vectorEffect: "non-scaling-stroke",
118
+ stroke: "currentColor"
119
+ }),
120
+ /*#__PURE__*/ jsx("line", {
121
+ x1: lineOffset + 0.5,
122
+ y1: hasTurn ? 2 * railBridge : railBridge,
123
+ x2: lineOffset + 0.5,
124
+ y2: "100%",
125
+ vectorEffect: "non-scaling-stroke",
126
+ stroke: "currentColor"
127
+ })
128
+ ]
129
+ });
130
+ });
131
+ const Toc_Toc = Object.assign(Toc_TocRoot, {
132
+ Root: Toc_TocRoot,
133
+ RootProvider: Toc_TocRootProvider,
134
+ Context: Toc.Context,
135
+ Content: Toc_TocContent,
136
+ Nav: Toc_TocNav,
137
+ Title: Toc_TocTitle,
138
+ List: Toc_TocList,
139
+ Item: Toc_TocItem,
140
+ Link: Toc_TocLink,
141
+ Indicator: Toc_TocIndicator,
142
+ Rail: Toc_TocRail
143
+ });
144
+ export { Toc_Toc as Toc, Toc_useToc as useToc, Toc_useTocContext as useTocContext };
@@ -0,0 +1,13 @@
1
+ import "./Toc_module.css";
2
+ const Toc_module = {
3
+ root: "root-VBggED",
4
+ content: "content-AHeziM",
5
+ nav: "nav-q0EDqs",
6
+ title: "title-RjjR4J",
7
+ list: "list-KZD4Qg",
8
+ indicator: "indicator-Zeit8l",
9
+ item: "item-xFlCTb",
10
+ link: "link-L4LQA0",
11
+ rail: "rail-BwE9eo"
12
+ };
13
+ export default Toc_module;