@ceed/ads 1.35.1 → 1.36.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 (122) hide show
  1. package/README.md +85 -95
  2. package/dist/components/Accordions/Accordions.d.ts +1 -0
  3. package/dist/components/Alert/Alert.d.ts +5 -5
  4. package/dist/components/Autocomplete/Autocomplete.d.ts +2 -2
  5. package/dist/components/Avatar/Avatar.d.ts +7 -17
  6. package/dist/components/Box/Box.d.ts +1 -0
  7. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +6 -5
  8. package/dist/components/Button/Button.d.ts +3 -2
  9. package/dist/components/Calendar/Calendar.d.ts +1 -0
  10. package/dist/components/Card/Card.d.ts +1 -0
  11. package/dist/components/Checkbox/Checkbox.d.ts +1 -0
  12. package/dist/components/Chip/Chip.d.ts +1 -0
  13. package/dist/components/Container/Container.d.ts +6 -1
  14. package/dist/components/DialogActions/DialogActions.d.ts +1 -0
  15. package/dist/components/DialogContent/DialogContent.d.ts +1 -0
  16. package/dist/components/DialogFrame/DialogFrame.d.ts +1 -1
  17. package/dist/components/DialogTitle/DialogTitle.d.ts +1 -0
  18. package/dist/components/Divider/Divider.d.ts +1 -0
  19. package/dist/components/Dropdown/Dropdown.d.ts +28 -1
  20. package/dist/components/FilterMenu/components/MonthRange.d.ts +11 -0
  21. package/dist/components/FilterMenu/types.d.ts +5 -1
  22. package/dist/components/FormControl/FormControl.d.ts +1 -0
  23. package/dist/components/FormHelperText/FormHelperText.d.ts +1 -0
  24. package/dist/components/FormLabel/FormLabel.d.ts +1 -0
  25. package/dist/components/Grid/Grid.d.ts +1 -0
  26. package/dist/components/IconButton/IconButton.d.ts +3 -2
  27. package/dist/components/IconMenuButton/IconMenuButton.d.ts +7 -6
  28. package/dist/components/InfoSign/InfoSign.d.ts +3 -2
  29. package/dist/components/Input/Input.d.ts +8 -22
  30. package/dist/components/InsetDrawer/InsetDrawer.d.ts +1 -0
  31. package/dist/components/Markdown/Markdown.d.ts +9 -24
  32. package/dist/components/Menu/Menu.d.ts +2 -1
  33. package/dist/components/MenuButton/MenuButton.d.ts +10 -8
  34. package/dist/components/Modal/Modal.d.ts +4 -2
  35. package/dist/components/NavigationGroup/NavigationGroup.d.ts +3 -2
  36. package/dist/components/NavigationItem/NavigationItem.d.ts +3 -2
  37. package/dist/components/Navigator/Navigator.d.ts +5 -4
  38. package/dist/components/Pagination/Pagination.d.ts +1 -1
  39. package/dist/components/ProfileMenu/ProfileMenu.d.ts +2 -2
  40. package/dist/components/Radio/Radio.d.ts +1 -0
  41. package/dist/components/RadioList/RadioList.d.ts +3 -2
  42. package/dist/components/Select/Select.d.ts +12 -10
  43. package/dist/components/Sheet/Sheet.d.ts +1 -0
  44. package/dist/components/Stack/Stack.d.ts +1 -0
  45. package/dist/components/Stepper/Stepper.d.ts +2 -1
  46. package/dist/components/Switch/Switch.d.ts +1 -0
  47. package/dist/components/Table/Table.d.ts +7 -5
  48. package/dist/components/Tabs/Tabs.d.ts +1 -0
  49. package/dist/components/Textarea/Textarea.d.ts +8 -20
  50. package/dist/components/ThemeProvider/ThemeProvider.d.ts +4 -2
  51. package/dist/components/Tooltip/Tooltip.d.ts +1 -0
  52. package/dist/components/Typography/Typography.d.ts +1 -0
  53. package/dist/components/Uploader/Uploader.d.ts +18 -17
  54. package/dist/components/data-display/Avatar.md +60 -72
  55. package/dist/components/data-display/Badge.md +197 -181
  56. package/dist/components/data-display/Chip.md +164 -142
  57. package/dist/components/data-display/DataTable.md +843 -338
  58. package/dist/components/data-display/InfoSign.md +1 -3
  59. package/dist/components/data-display/Markdown.md +93 -125
  60. package/dist/components/data-display/Table.md +1453 -1007
  61. package/dist/components/data-display/Typography.md +101 -104
  62. package/dist/components/feedback/Alert.md +80 -86
  63. package/dist/components/feedback/CircularProgress.md +32 -36
  64. package/dist/components/feedback/Dialog.md +25 -17
  65. package/dist/components/feedback/Modal.md +296 -265
  66. package/dist/components/feedback/Skeleton.md +125 -89
  67. package/dist/components/index.d.ts +60 -1
  68. package/dist/components/inputs/Autocomplete.md +191 -95
  69. package/dist/components/inputs/Button.md +83 -83
  70. package/dist/components/inputs/ButtonGroup.md +195 -185
  71. package/dist/components/inputs/Calendar.md +25 -28
  72. package/dist/components/inputs/Checkbox.md +11 -29
  73. package/dist/components/inputs/CurrencyInput.md +4 -4
  74. package/dist/components/inputs/DatePicker.md +229 -110
  75. package/dist/components/inputs/DateRangePicker.md +248 -137
  76. package/dist/components/inputs/FilterMenu.md +138 -8
  77. package/dist/components/inputs/FilterableCheckboxGroup.md +115 -55
  78. package/dist/components/inputs/FormControl.md +75 -69
  79. package/dist/components/inputs/IconButton.md +229 -205
  80. package/dist/components/inputs/Input.md +131 -98
  81. package/dist/components/inputs/MonthPicker.md +186 -84
  82. package/dist/components/inputs/MonthRangePicker.md +73 -49
  83. package/dist/components/inputs/PercentageInput.md +15 -31
  84. package/dist/components/inputs/RadioButton.md +320 -256
  85. package/dist/components/inputs/RadioList.md +66 -50
  86. package/dist/components/inputs/RadioTileGroup.md +287 -170
  87. package/dist/components/inputs/SearchBar.md +82 -60
  88. package/dist/components/inputs/Select.md +106 -95
  89. package/dist/components/inputs/Slider.md +153 -102
  90. package/dist/components/inputs/Switch.md +193 -138
  91. package/dist/components/inputs/Textarea.md +15 -20
  92. package/dist/components/inputs/Uploader/Uploader.md +68 -39
  93. package/dist/components/layout/Box.md +841 -662
  94. package/dist/components/layout/Container.md +3 -11
  95. package/dist/components/layout/Grid.md +480 -394
  96. package/dist/components/layout/Stack.md +739 -566
  97. package/dist/components/navigation/Breadcrumbs.md +182 -116
  98. package/dist/components/navigation/Dropdown.md +732 -391
  99. package/dist/components/navigation/IconMenuButton.md +14 -6
  100. package/dist/components/navigation/InsetDrawer.md +550 -378
  101. package/dist/components/navigation/Link.md +104 -94
  102. package/dist/components/navigation/Menu.md +623 -502
  103. package/dist/components/navigation/MenuButton.md +18 -10
  104. package/dist/components/navigation/NavigationGroup.md +19 -50
  105. package/dist/components/navigation/NavigationItem.md +6 -6
  106. package/dist/components/navigation/Navigator.md +26 -28
  107. package/dist/components/navigation/Pagination.md +86 -75
  108. package/dist/components/navigation/ProfileMenu.md +65 -43
  109. package/dist/components/navigation/Stepper.md +2 -12
  110. package/dist/components/navigation/Tabs.md +209 -183
  111. package/dist/components/surfaces/Accordions.md +89 -172
  112. package/dist/components/surfaces/Card.md +1094 -709
  113. package/dist/components/surfaces/Divider.md +562 -412
  114. package/dist/components/surfaces/Sheet.md +700 -518
  115. package/dist/guides/ThemeProvider.md +65 -40
  116. package/dist/index.browser.js +4 -4
  117. package/dist/index.browser.js.map +4 -4
  118. package/dist/index.cjs +1643 -1550
  119. package/dist/index.d.ts +1 -1
  120. package/dist/index.js +1303 -1202
  121. package/framer/index.js +1 -1
  122. package/package.json +32 -35
@@ -81,10 +81,10 @@ Available size options: `sm`, `md`, `lg`.
81
81
 
82
82
  ```tsx
83
83
  <>
84
- <Accordions {...args} size="sm" />
85
- <Accordions {...args} size="md" />
86
- <Accordions {...args} size="lg" />
87
- </>
84
+ <Accordions {...args} size="sm" />
85
+ <Accordions {...args} size="md" />
86
+ <Accordions {...args} size="lg" />
87
+ </>
88
88
  ```
89
89
 
90
90
  ## Accordion Variants
@@ -93,23 +93,23 @@ Style variants: `plain`, `outlined`, `soft`, `solid`.
93
93
 
94
94
  ```tsx
95
95
  <>
96
- <div>
97
- <h3>Plain</h3>
98
- <Accordions {...args} variant="plain" />
99
- </div>
100
- <div>
101
- <h3>Outlined</h3>
102
- <Accordions {...args} variant="outlined" />
103
- </div>
104
- <div>
105
- <h3>Soft</h3>
106
- <Accordions {...args} variant="soft" />
107
- </div>
108
- <div>
109
- <h3>Solid</h3>
110
- <Accordions {...args} variant="solid" />
111
- </div>
112
- </>
96
+ <div>
97
+ <h3>Plain</h3>
98
+ <Accordions {...args} variant="plain" />
99
+ </div>
100
+ <div>
101
+ <h3>Outlined</h3>
102
+ <Accordions {...args} variant="outlined" />
103
+ </div>
104
+ <div>
105
+ <h3>Soft</h3>
106
+ <Accordions {...args} variant="soft" />
107
+ </div>
108
+ <div>
109
+ <h3>Solid</h3>
110
+ <Accordions {...args} variant="solid" />
111
+ </div>
112
+ </>
113
113
  ```
114
114
 
115
115
  ## Accordion Colors
@@ -118,27 +118,27 @@ Color options: `primary`, `neutral`, `danger`, `success`, `warning`.
118
118
 
119
119
  ```tsx
120
120
  <>
121
- <div>
122
- <h3>Primary</h3>
123
- <Accordions {...args} color="primary" />
124
- </div>
125
- <div>
126
- <h3>Neutral</h3>
127
- <Accordions {...args} color="neutral" />
128
- </div>
129
- <div>
130
- <h3>Danger</h3>
131
- <Accordions {...args} color="danger" />
132
- </div>
133
- <div>
134
- <h3>Success</h3>
135
- <Accordions {...args} color="success" />
136
- </div>
137
- <div>
138
- <h3>Warning</h3>
139
- <Accordions {...args} color="warning" />
140
- </div>
141
- </>
121
+ <div>
122
+ <h3>Primary</h3>
123
+ <Accordions {...args} color="primary" />
124
+ </div>
125
+ <div>
126
+ <h3>Neutral</h3>
127
+ <Accordions {...args} color="neutral" />
128
+ </div>
129
+ <div>
130
+ <h3>Danger</h3>
131
+ <Accordions {...args} color="danger" />
132
+ </div>
133
+ <div>
134
+ <h3>Success</h3>
135
+ <Accordions {...args} color="success" />
136
+ </div>
137
+ <div>
138
+ <h3>Warning</h3>
139
+ <Accordions {...args} color="warning" />
140
+ </div>
141
+ </>
142
142
  ```
143
143
 
144
144
  ## Accordion without Divider
@@ -179,8 +179,8 @@ function FAQAccordion() {
179
179
  summary: 'What payment methods do you accept?',
180
180
  details: (
181
181
  <Typography>
182
- We accept Visa, MasterCard, American Express, and PayPal.
183
- All payments are processed securely through our payment gateway.
182
+ We accept Visa, MasterCard, American Express, and PayPal. All payments are processed securely through our
183
+ payment gateway.
184
184
  </Typography>
185
185
  ),
186
186
  },
@@ -188,9 +188,8 @@ function FAQAccordion() {
188
188
  summary: 'How can I track my order?',
189
189
  details: (
190
190
  <Typography>
191
- Once your order ships, you'll receive an email with a tracking
192
- number. You can use this number on our website or the carrier's
193
- site to track your package.
191
+ Once your order ships, you'll receive an email with a tracking number. You can use this number on our website
192
+ or the carrier's site to track your package.
194
193
  </Typography>
195
194
  ),
196
195
  },
@@ -231,18 +230,11 @@ function SettingsAccordion({ settings, onSettingChange }) {
231
230
  <Stack gap={2}>
232
231
  <FormControl>
233
232
  <FormLabel>Display Name</FormLabel>
234
- <Input
235
- value={settings.displayName}
236
- onChange={(e) => onSettingChange('displayName', e.target.value)}
237
- />
233
+ <Input value={settings.displayName} onChange={(e) => onSettingChange('displayName', e.target.value)} />
238
234
  </FormControl>
239
235
  <FormControl>
240
236
  <FormLabel>Email</FormLabel>
241
- <Input
242
- type="email"
243
- value={settings.email}
244
- onChange={(e) => onSettingChange('email', e.target.value)}
245
- />
237
+ <Input type="email" value={settings.email} onChange={(e) => onSettingChange('email', e.target.value)} />
246
238
  </FormControl>
247
239
  </Stack>
248
240
  ),
@@ -254,16 +246,12 @@ function SettingsAccordion({ settings, onSettingChange }) {
254
246
  <Checkbox
255
247
  label="Email notifications"
256
248
  checked={settings.emailNotifications}
257
- onChange={(e) =>
258
- onSettingChange('emailNotifications', e.target.checked)
259
- }
249
+ onChange={(e) => onSettingChange('emailNotifications', e.target.checked)}
260
250
  />
261
251
  <Checkbox
262
252
  label="Push notifications"
263
253
  checked={settings.pushNotifications}
264
- onChange={(e) =>
265
- onSettingChange('pushNotifications', e.target.checked)
266
- }
254
+ onChange={(e) => onSettingChange('pushNotifications', e.target.checked)}
267
255
  />
268
256
  <Checkbox
269
257
  label="Weekly digest"
@@ -310,9 +298,7 @@ function ProductAccordion({ product }) {
310
298
  const productDetails = [
311
299
  {
312
300
  summary: 'Description',
313
- details: (
314
- <Typography>{product.description}</Typography>
315
- ),
301
+ details: <Typography>{product.description}</Typography>,
316
302
  },
317
303
  {
318
304
  summary: 'Specifications',
@@ -341,15 +327,11 @@ function ProductAccordion({ product }) {
341
327
  <Stack gap={2}>
342
328
  <Box>
343
329
  <Typography level="title-sm">Shipping</Typography>
344
- <Typography level="body-sm">
345
- Free shipping on orders over $50. Standard delivery 3-5 days.
346
- </Typography>
330
+ <Typography level="body-sm">Free shipping on orders over $50. Standard delivery 3-5 days.</Typography>
347
331
  </Box>
348
332
  <Box>
349
333
  <Typography level="title-sm">Returns</Typography>
350
- <Typography level="body-sm">
351
- 30-day return policy. Items must be unused with original tags.
352
- </Typography>
334
+ <Typography level="body-sm">30-day return policy. Items must be unused with original tags.</Typography>
353
335
  </Box>
354
336
  </Stack>
355
337
  ),
@@ -393,19 +375,13 @@ function NavigationAccordion() {
393
375
  details: (
394
376
  <List size="sm">
395
377
  <ListItem>
396
- <ListItemButton onClick={() => navigate('/products/electronics')}>
397
- Electronics
398
- </ListItemButton>
378
+ <ListItemButton onClick={() => navigate('/products/electronics')}>Electronics</ListItemButton>
399
379
  </ListItem>
400
380
  <ListItem>
401
- <ListItemButton onClick={() => navigate('/products/clothing')}>
402
- Clothing
403
- </ListItemButton>
381
+ <ListItemButton onClick={() => navigate('/products/clothing')}>Clothing</ListItemButton>
404
382
  </ListItem>
405
383
  <ListItem>
406
- <ListItemButton onClick={() => navigate('/products/home')}>
407
- Home & Garden
408
- </ListItemButton>
384
+ <ListItemButton onClick={() => navigate('/products/home')}>Home & Garden</ListItemButton>
409
385
  </ListItem>
410
386
  </List>
411
387
  ),
@@ -415,14 +391,10 @@ function NavigationAccordion() {
415
391
  details: (
416
392
  <List size="sm">
417
393
  <ListItem>
418
- <ListItemButton onClick={() => navigate('/services/consulting')}>
419
- Consulting
420
- </ListItemButton>
394
+ <ListItemButton onClick={() => navigate('/services/consulting')}>Consulting</ListItemButton>
421
395
  </ListItem>
422
396
  <ListItem>
423
- <ListItemButton onClick={() => navigate('/services/support')}>
424
- Support
425
- </ListItemButton>
397
+ <ListItemButton onClick={() => navigate('/services/support')}>Support</ListItemButton>
426
398
  </ListItem>
427
399
  </List>
428
400
  ),
@@ -432,19 +404,13 @@ function NavigationAccordion() {
432
404
  details: (
433
405
  <List size="sm">
434
406
  <ListItem>
435
- <ListItemButton onClick={() => navigate('/docs')}>
436
- Documentation
437
- </ListItemButton>
407
+ <ListItemButton onClick={() => navigate('/docs')}>Documentation</ListItemButton>
438
408
  </ListItem>
439
409
  <ListItem>
440
- <ListItemButton onClick={() => navigate('/blog')}>
441
- Blog
442
- </ListItemButton>
410
+ <ListItemButton onClick={() => navigate('/blog')}>Blog</ListItemButton>
443
411
  </ListItem>
444
412
  <ListItem>
445
- <ListItemButton onClick={() => navigate('/tutorials')}>
446
- Tutorials
447
- </ListItemButton>
413
+ <ListItemButton onClick={() => navigate('/tutorials')}>Tutorials</ListItemButton>
448
414
  </ListItem>
449
415
  </List>
450
416
  ),
@@ -469,17 +435,11 @@ function HelpAccordion() {
469
435
  details: (
470
436
  <Stack gap={2}>
471
437
  <Typography level="title-sm">Step 1: Create an Account</Typography>
472
- <Typography level="body-sm">
473
- Click the "Sign Up" button and fill in your details.
474
- </Typography>
438
+ <Typography level="body-sm">Click the "Sign Up" button and fill in your details.</Typography>
475
439
  <Typography level="title-sm">Step 2: Verify Email</Typography>
476
- <Typography level="body-sm">
477
- Check your inbox for a verification email and click the link.
478
- </Typography>
440
+ <Typography level="body-sm">Check your inbox for a verification email and click the link.</Typography>
479
441
  <Typography level="title-sm">Step 3: Complete Profile</Typography>
480
- <Typography level="body-sm">
481
- Add your profile picture and bio to personalize your account.
482
- </Typography>
442
+ <Typography level="body-sm">Add your profile picture and bio to personalize your account.</Typography>
483
443
  </Stack>
484
444
  ),
485
445
  },
@@ -491,17 +451,13 @@ function HelpAccordion() {
491
451
  <Typography level="title-sm" color="danger">
492
452
  Can't log in?
493
453
  </Typography>
494
- <Typography level="body-sm">
495
- Try resetting your password or clearing your browser cache.
496
- </Typography>
454
+ <Typography level="body-sm">Try resetting your password or clearing your browser cache.</Typography>
497
455
  </Box>
498
456
  <Box>
499
457
  <Typography level="title-sm" color="danger">
500
458
  Page not loading?
501
459
  </Typography>
502
- <Typography level="body-sm">
503
- Check your internet connection and try refreshing the page.
504
- </Typography>
460
+ <Typography level="body-sm">Check your internet connection and try refreshing the page.</Typography>
505
461
  </Box>
506
462
  </Stack>
507
463
  ),
@@ -510,19 +466,11 @@ function HelpAccordion() {
510
466
  summary: 'Contact Support',
511
467
  details: (
512
468
  <Stack gap={2}>
513
- <Typography level="body-sm">
514
- Need more help? Reach out to our support team:
515
- </Typography>
469
+ <Typography level="body-sm">Need more help? Reach out to our support team:</Typography>
516
470
  <Stack gap={1}>
517
- <Typography level="body-sm">
518
- 📧 Email: support@example.com
519
- </Typography>
520
- <Typography level="body-sm">
521
- 💬 Live Chat: Available 9am-5pm EST
522
- </Typography>
523
- <Typography level="body-sm">
524
- 📞 Phone: 1-800-EXAMPLE
525
- </Typography>
471
+ <Typography level="body-sm">📧 Email: support@example.com</Typography>
472
+ <Typography level="body-sm">💬 Live Chat: Available 9am-5pm EST</Typography>
473
+ <Typography level="body-sm">📞 Phone: 1-800-EXAMPLE</Typography>
526
474
  </Stack>
527
475
  </Stack>
528
476
  ),
@@ -567,18 +515,14 @@ function MultiSectionForm({ onSubmit }) {
567
515
  <FormLabel>First Name</FormLabel>
568
516
  <Input
569
517
  value={formData.personal.firstName}
570
- onChange={(e) =>
571
- updateField('personal', 'firstName', e.target.value)
572
- }
518
+ onChange={(e) => updateField('personal', 'firstName', e.target.value)}
573
519
  />
574
520
  </FormControl>
575
521
  <FormControl sx={{ flex: 1 }}>
576
522
  <FormLabel>Last Name</FormLabel>
577
523
  <Input
578
524
  value={formData.personal.lastName}
579
- onChange={(e) =>
580
- updateField('personal', 'lastName', e.target.value)
581
- }
525
+ onChange={(e) => updateField('personal', 'lastName', e.target.value)}
582
526
  />
583
527
  </FormControl>
584
528
  </Stack>
@@ -587,9 +531,7 @@ function MultiSectionForm({ onSubmit }) {
587
531
  <Input
588
532
  type="email"
589
533
  value={formData.personal.email}
590
- onChange={(e) =>
591
- updateField('personal', 'email', e.target.value)
592
- }
534
+ onChange={(e) => updateField('personal', 'email', e.target.value)}
593
535
  />
594
536
  </FormControl>
595
537
  </Stack>
@@ -601,30 +543,18 @@ function MultiSectionForm({ onSubmit }) {
601
543
  <Stack gap={2}>
602
544
  <FormControl>
603
545
  <FormLabel>Street Address</FormLabel>
604
- <Input
605
- value={formData.address.street}
606
- onChange={(e) =>
607
- updateField('address', 'street', e.target.value)
608
- }
609
- />
546
+ <Input value={formData.address.street} onChange={(e) => updateField('address', 'street', e.target.value)} />
610
547
  </FormControl>
611
548
  <Stack direction="row" gap={2}>
612
549
  <FormControl sx={{ flex: 2 }}>
613
550
  <FormLabel>City</FormLabel>
614
- <Input
615
- value={formData.address.city}
616
- onChange={(e) =>
617
- updateField('address', 'city', e.target.value)
618
- }
619
- />
551
+ <Input value={formData.address.city} onChange={(e) => updateField('address', 'city', e.target.value)} />
620
552
  </FormControl>
621
553
  <FormControl sx={{ flex: 1 }}>
622
554
  <FormLabel>ZIP Code</FormLabel>
623
555
  <Input
624
556
  value={formData.address.zipCode}
625
- onChange={(e) =>
626
- updateField('address', 'zipCode', e.target.value)
627
- }
557
+ onChange={(e) => updateField('address', 'zipCode', e.target.value)}
628
558
  />
629
559
  </FormControl>
630
560
  </Stack>
@@ -640,9 +570,7 @@ function MultiSectionForm({ onSubmit }) {
640
570
  <Input
641
571
  placeholder="1234 5678 9012 3456"
642
572
  value={formData.payment.cardNumber}
643
- onChange={(e) =>
644
- updateField('payment', 'cardNumber', e.target.value)
645
- }
573
+ onChange={(e) => updateField('payment', 'cardNumber', e.target.value)}
646
574
  />
647
575
  </FormControl>
648
576
  <Stack direction="row" gap={2}>
@@ -651,9 +579,7 @@ function MultiSectionForm({ onSubmit }) {
651
579
  <Input
652
580
  placeholder="MM/YY"
653
581
  value={formData.payment.expiry}
654
- onChange={(e) =>
655
- updateField('payment', 'expiry', e.target.value)
656
- }
582
+ onChange={(e) => updateField('payment', 'expiry', e.target.value)}
657
583
  />
658
584
  </FormControl>
659
585
  <FormControl sx={{ flex: 1 }}>
@@ -662,9 +588,7 @@ function MultiSectionForm({ onSubmit }) {
662
588
  type="password"
663
589
  placeholder="123"
664
590
  value={formData.payment.cvv}
665
- onChange={(e) =>
666
- updateField('payment', 'cvv', e.target.value)
667
- }
591
+ onChange={(e) => updateField('payment', 'cvv', e.target.value)}
668
592
  />
669
593
  </FormControl>
670
594
  </Stack>
@@ -700,7 +624,7 @@ function MultiSectionForm({ onSubmit }) {
700
624
 
701
625
  ```tsx
702
626
  interface AccordionItem {
703
- summary: string; // Header text displayed when collapsed
627
+ summary: string; // Header text displayed when collapsed
704
628
  details: ReactNode; // Content shown when expanded
705
629
  }
706
630
 
@@ -799,7 +723,7 @@ Accordions includes built-in accessibility features:
799
723
  <Accordions
800
724
  items={[
801
725
  {
802
- summary: 'Shipping Information', // Announced as header
726
+ summary: 'Shipping Information', // Announced as header
803
727
  details: <Typography>Content...</Typography>,
804
728
  },
805
729
  ]}
@@ -965,10 +889,10 @@ const accordionItems = useMemo(
965
889
  details: <ExpensiveComponent data={data2} />,
966
890
  },
967
891
  ],
968
- [data1, data2]
892
+ [data1, data2],
969
893
  );
970
894
 
971
- <Accordions items={accordionItems} />
895
+ <Accordions items={accordionItems} />;
972
896
  ```
973
897
 
974
898
  ### Avoid Inline Functions in Items
@@ -980,7 +904,7 @@ const accordionItems = useMemo(
980
904
  summary: item.title,
981
905
  details: <Content data={item} />,
982
906
  }))}
983
- />
907
+ />;
984
908
 
985
909
  // ✅ Good: Memoized transformation
986
910
  const items = useMemo(
@@ -989,9 +913,9 @@ const items = useMemo(
989
913
  summary: item.title,
990
914
  details: <Content data={item} />,
991
915
  })),
992
- [data]
916
+ [data],
993
917
  );
994
- <Accordions items={items} />
918
+ <Accordions items={items} />;
995
919
  ```
996
920
 
997
921
  ### Virtualize Long Lists
@@ -1008,20 +932,13 @@ function FilteredAccordions({ allItems }) {
1008
932
  const [search, setSearch] = useState('');
1009
933
 
1010
934
  const filteredItems = useMemo(
1011
- () =>
1012
- allItems.filter((item) =>
1013
- item.summary.toLowerCase().includes(search.toLowerCase())
1014
- ),
1015
- [allItems, search]
935
+ () => allItems.filter((item) => item.summary.toLowerCase().includes(search.toLowerCase())),
936
+ [allItems, search],
1016
937
  );
1017
938
 
1018
939
  return (
1019
940
  <Stack gap={2}>
1020
- <Input
1021
- placeholder="Search..."
1022
- value={search}
1023
- onChange={(e) => setSearch(e.target.value)}
1024
- />
941
+ <Input placeholder="Search..." value={search} onChange={(e) => setSearch(e.target.value)} />
1025
942
  <Accordions items={filteredItems.slice(0, 10)} />
1026
943
  {filteredItems.length > 10 && (
1027
944
  <Typography level="body-sm" color="neutral">