@cerberus-design/react 0.16.0-next-004ae01 → 0.16.0-next-7f1fa64

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 (97) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +104 -112
  2. package/build/legacy/components/accordion/index.cjs +178 -0
  3. package/build/legacy/components/accordion/index.cjs.map +1 -0
  4. package/build/legacy/components/accordion/item-group.cjs +166 -0
  5. package/build/legacy/components/accordion/item-group.cjs.map +1 -0
  6. package/build/legacy/components/accordion/item-indicator.cjs +114 -0
  7. package/build/legacy/components/accordion/item-indicator.cjs.map +1 -0
  8. package/build/legacy/components/accordion/parts.cjs +91 -0
  9. package/build/legacy/components/accordion/parts.cjs.map +1 -0
  10. package/build/legacy/components/{Accordion.cjs → accordion/primitives.cjs} +35 -32
  11. package/build/legacy/components/accordion/primitives.cjs.map +1 -0
  12. package/build/legacy/index.cjs +471 -473
  13. package/build/legacy/index.cjs.map +1 -1
  14. package/build/modern/_tsup-dts-rollup.d.ts +104 -112
  15. package/build/modern/{chunk-RHCTPSKT.js → chunk-2KPSUYFL.js} +4 -4
  16. package/build/modern/{chunk-6I2FW4WI.js → chunk-32M5JS5F.js} +5 -5
  17. package/build/modern/{chunk-FBS7AX76.js → chunk-3J5D3O6Z.js} +5 -5
  18. package/build/modern/chunk-6OJ27QWV.js +21 -0
  19. package/build/modern/chunk-6OJ27QWV.js.map +1 -0
  20. package/build/modern/{chunk-RKVY2HJ3.js → chunk-AAGQR6B4.js} +4 -4
  21. package/build/modern/chunk-CPNKDKC2.js +64 -0
  22. package/build/modern/chunk-CPNKDKC2.js.map +1 -0
  23. package/build/modern/chunk-FWVFM7RK.js +38 -0
  24. package/build/modern/chunk-FWVFM7RK.js.map +1 -0
  25. package/build/modern/chunk-R2V75WU6.js +1 -0
  26. package/build/modern/{chunk-R7MPDSXX.js → chunk-R662TP4N.js} +5 -5
  27. package/build/modern/{chunk-LT62577B.js → chunk-R7IDIIST.js} +2 -2
  28. package/build/modern/{chunk-VSTOSLFS.js → chunk-VNPLKMEM.js} +4 -4
  29. package/build/modern/{chunk-U5XRQ2JZ.js → chunk-WA3QADO4.js} +4 -4
  30. package/build/modern/chunk-XBDEIBW2.js +21 -0
  31. package/build/modern/chunk-XBDEIBW2.js.map +1 -0
  32. package/build/modern/{chunk-QQCB6JXW.js → chunk-XTIIAYPU.js} +4 -4
  33. package/build/modern/{chunk-VTQ6RW3Z.js → chunk-Z6EXPMTS.js} +3 -3
  34. package/build/modern/components/DatePicker.client.js +3 -3
  35. package/build/modern/components/FileStatus.js +6 -6
  36. package/build/modern/components/accordion/index.js +31 -0
  37. package/build/modern/components/accordion/item-group.js +16 -0
  38. package/build/modern/components/accordion/item-indicator.js +11 -0
  39. package/build/modern/components/accordion/item-indicator.js.map +1 -0
  40. package/build/modern/components/accordion/parts.js +8 -0
  41. package/build/modern/components/accordion/parts.js.map +1 -0
  42. package/build/modern/components/accordion/primitives.js +15 -0
  43. package/build/modern/components/accordion/primitives.js.map +1 -0
  44. package/build/modern/components/combobox/index.js +3 -3
  45. package/build/modern/components/cta-dialog/index.js +2 -2
  46. package/build/modern/components/cta-dialog/provider.js +2 -2
  47. package/build/modern/components/deprecated/Label.js +6 -6
  48. package/build/modern/components/field/field.js +4 -4
  49. package/build/modern/components/field/index.js +7 -7
  50. package/build/modern/components/field/parts.js +3 -3
  51. package/build/modern/components/field/primitives.js +2 -2
  52. package/build/modern/components/rating/index.js +2 -2
  53. package/build/modern/components/rating/rating.js +2 -2
  54. package/build/modern/components/select/index.js +4 -4
  55. package/build/modern/context/confirm-modal.js +3 -3
  56. package/build/modern/context/field.js +2 -2
  57. package/build/modern/context/notification-center.js +3 -3
  58. package/build/modern/context/prompt-modal.js +8 -8
  59. package/build/modern/index.js +118 -112
  60. package/build/modern/index.js.map +1 -1
  61. package/package.json +2 -2
  62. package/src/components/accordion/index.ts +3 -0
  63. package/src/components/accordion/item-group.tsx +66 -0
  64. package/src/components/accordion/item-indicator.tsx +27 -0
  65. package/src/components/accordion/parts.ts +53 -0
  66. package/src/components/accordion/primitives.tsx +101 -0
  67. package/src/index.ts +1 -3
  68. package/build/legacy/components/Accordion.cjs.map +0 -1
  69. package/build/legacy/components/Accordion.client.cjs +0 -64
  70. package/build/legacy/components/Accordion.client.cjs.map +0 -1
  71. package/build/legacy/components/AccordionItemGroup.cjs +0 -142
  72. package/build/legacy/components/AccordionItemGroup.cjs.map +0 -1
  73. package/build/modern/chunk-AZRFYQO7.js +0 -60
  74. package/build/modern/chunk-AZRFYQO7.js.map +0 -1
  75. package/build/modern/chunk-WN7TJX6J.js +0 -41
  76. package/build/modern/chunk-WN7TJX6J.js.map +0 -1
  77. package/build/modern/chunk-XZGXRRSQ.js +0 -31
  78. package/build/modern/chunk-XZGXRRSQ.js.map +0 -1
  79. package/build/modern/components/Accordion.client.js +0 -9
  80. package/build/modern/components/Accordion.js +0 -13
  81. package/build/modern/components/AccordionItemGroup.js +0 -11
  82. package/src/components/Accordion.client.tsx +0 -46
  83. package/src/components/Accordion.tsx +0 -125
  84. package/src/components/AccordionItemGroup.tsx +0 -79
  85. /package/build/modern/{chunk-RHCTPSKT.js.map → chunk-2KPSUYFL.js.map} +0 -0
  86. /package/build/modern/{chunk-6I2FW4WI.js.map → chunk-32M5JS5F.js.map} +0 -0
  87. /package/build/modern/{chunk-FBS7AX76.js.map → chunk-3J5D3O6Z.js.map} +0 -0
  88. /package/build/modern/{chunk-RKVY2HJ3.js.map → chunk-AAGQR6B4.js.map} +0 -0
  89. /package/build/modern/{components/Accordion.client.js.map → chunk-R2V75WU6.js.map} +0 -0
  90. /package/build/modern/{chunk-R7MPDSXX.js.map → chunk-R662TP4N.js.map} +0 -0
  91. /package/build/modern/{chunk-LT62577B.js.map → chunk-R7IDIIST.js.map} +0 -0
  92. /package/build/modern/{chunk-VSTOSLFS.js.map → chunk-VNPLKMEM.js.map} +0 -0
  93. /package/build/modern/{chunk-U5XRQ2JZ.js.map → chunk-WA3QADO4.js.map} +0 -0
  94. /package/build/modern/{chunk-QQCB6JXW.js.map → chunk-XTIIAYPU.js.map} +0 -0
  95. /package/build/modern/{chunk-VTQ6RW3Z.js.map → chunk-Z6EXPMTS.js.map} +0 -0
  96. /package/build/modern/components/{Accordion.js.map → accordion/index.js.map} +0 -0
  97. /package/build/modern/components/{AccordionItemGroup.js.map → accordion/item-group.js.map} +0 -0
@@ -1,4 +1,8 @@
1
- import { Accordion as Accordion_2 } from '@ark-ui/react';
1
+ import { AccordionItemContentProps } from '@ark-ui/react/accordion';
2
+ import { AccordionItemIndicatorProps } from '@ark-ui/react/accordion';
3
+ import { AccordionItemProps } from '@ark-ui/react/accordion';
4
+ import { AccordionItemTriggerProps } from '@ark-ui/react/accordion';
5
+ import { AccordionRootProps } from '@ark-ui/react/accordion';
2
6
  import { AccordionVariantProps } from '@cerberus/styled-system/recipes';
3
7
  import { Activator } from '@dnd-kit/core';
4
8
  import { Activators } from '@dnd-kit/core';
@@ -238,89 +242,58 @@ import { useSensor } from '@dnd-kit/core';
238
242
  import { useSensors } from '@dnd-kit/core';
239
243
 
240
244
  /**
241
- * The context provider for the Accordion family.
242
- * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)
243
- * @example
244
- * ```tsx
245
- * <Accordion>
246
- * <AccordionItemGroup heading="Item 1 heading" value="one">
247
- * This is the content
248
- * </AccordionItemGroup>
249
- * </Accordion>
250
- * ```
245
+ * This module contains an abstraction of the AccordionItem components.
246
+ * @module
251
247
  */
252
- declare function Accordion(props: AccordionProps): JSX_2.Element;
248
+ declare const Accordion: ElementType;
253
249
  export { Accordion }
254
250
  export { Accordion as Accordion_alias_1 }
251
+ export { Accordion as Accordion_alias_2 }
255
252
 
256
253
  /**
257
- * The item for the Accordion component.
258
- * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)
259
- * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)
260
- * @example
261
- * ```tsx
262
- * <Accordion>
263
- * <AccordionItem value="one">
264
- * <AccordionTrigger>
265
- * Accordion Item 1
266
- * <AccordionIndicator />
267
- * </AccordionTrigger>
268
- * <AccordionContent>Accordion Item 1 content</AccordionContent>
269
- * </AccordionItem>
270
- * </Accordion>
271
- * ```
254
+ * This module contains the internal AccordionItemIndicator component.
255
+ * @module 'accordion/item-indicator'
272
256
  */
273
- declare function AccordionItem(props: AccordionItemProps): JSX_2.Element;
257
+ export declare function AccordionChevronItemIndicator(props: AccordionItemIndicatorProps & AccordionVariantProps): JSX_2.Element;
258
+
259
+ /**
260
+ * The primitive item component of the Accordion component.
261
+ *
262
+ * This component returns the Ark `Accordion.Item` component which has a
263
+ * base style using the Cerberus `accordion` recipe that can be overridden.
264
+ */
265
+ declare function AccordionItem(props: AccordionItemProps & AccordionVariantProps): JSX_2.Element;
274
266
  export { AccordionItem }
275
267
  export { AccordionItem as AccordionItem_alias_1 }
268
+ export { AccordionItem as AccordionItem_alias_2 }
276
269
 
277
270
  /**
278
- * The content for the Accordion component.
279
- * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)
280
- * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)
281
- * @example
282
- * ```tsx
283
- * <Accordion>
284
- * <AccordionItem value="one">
285
- * <AccordionTrigger>
286
- * Accordion Item 1
287
- * <AccordionIndicator />
288
- * </AccordionTrigger>
289
- * <AccordionContent>Accordion Item 1 content</AccordionContent>
290
- * </AccordionItem>
291
- * </Accordion>
292
- * ```
293
- * */
271
+ * The primitive content component of the Accordion component.
272
+ *
273
+ * This component returns the Ark `Accordion.Content` component which has a
274
+ * base style using the Cerberus `accordion` recipe that can be overridden.
275
+ */
294
276
  declare function AccordionItemContent(props: AccordionItemContentProps): JSX_2.Element;
295
277
  export { AccordionItemContent }
296
278
  export { AccordionItemContent as AccordionItemContent_alias_1 }
297
-
298
- declare type AccordionItemContentProps = Accordion_2.ItemContentProps & AccordionVariantProps;
299
- export { AccordionItemContentProps }
300
- export { AccordionItemContentProps as AccordionItemContentProps_alias_1 }
279
+ export { AccordionItemContent as AccordionItemContent_alias_2 }
301
280
 
302
281
  /**
303
- * A grouped item for the Accordion component.
304
- * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)
305
- * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)
306
- * @example
307
- * ```tsx
308
- * <Accordion>
309
- * <AccordionItemGroup heading="Accordion Item 1" value="one">
310
- * Accordion Item 1 content
311
- * </AccordionItemGroup>
312
- * </Accordion>
313
- * ```
282
+ * The AccordionItemGroup component is an abstraction of the Accordion primitive
283
+ * components which renders an accordion item with a heading and an indicator.
284
+ *
285
+ * It is a wrapper around the `AccordionParts.Item`, `AccordionParts.
286
+ * ItemTrigger`, `AccordionParts.ItemIndicator`, and `AccordionParts.ItemContent` components.
287
+ *
288
+ * @description [Cerberus docs](https://cerberus.digitalu.design/react/accordion)
289
+ * @description [Ark docs](https://ark-ui.com/react/docs/components/accordion)
314
290
  */
315
- declare function AccordionItemGroup(props: PropsWithChildren<AccordionItemGroupProps>): JSX_2.Element;
291
+ declare function AccordionItemGroup(props: AccordionItemGroupProps): JSX_2.Element;
316
292
  export { AccordionItemGroup }
317
293
  export { AccordionItemGroup as AccordionItemGroup_alias_1 }
294
+ export { AccordionItemGroup as AccordionItemGroup_alias_2 }
318
295
 
319
- /**
320
- * This module contains an abstraction of the AccordionItem components.
321
- * @module
322
- */
323
- declare interface AccordionItemGroupBaseProps extends Accordion_2.ItemProps {
296
+ declare interface AccordionItemGroupProps extends AccordionItemProps, AccordionVariantProps {
324
297
  /**
325
298
  * The heading of the accordion item to open and close the content.
326
299
  */
@@ -330,68 +303,87 @@ declare interface AccordionItemGroupBaseProps extends Accordion_2.ItemProps {
330
303
  */
331
304
  indicatorPosition?: 'start' | 'end';
332
305
  }
333
- export { AccordionItemGroupBaseProps }
334
- export { AccordionItemGroupBaseProps as AccordionItemGroupBaseProps_alias_1 }
335
-
336
- declare type AccordionItemGroupProps = AccordionItemGroupBaseProps & AccordionVariantProps;
337
306
  export { AccordionItemGroupProps }
338
307
  export { AccordionItemGroupProps as AccordionItemGroupProps_alias_1 }
308
+ export { AccordionItemGroupProps as AccordionItemGroupProps_alias_2 }
339
309
 
340
310
  /**
341
- * The indicator for the Accordion component.
342
- * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)
343
- * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)
344
- * @example
345
- * ```tsx
346
- * <Accordion>
347
- * <AccordionItem value="one">
348
- * <AccordionTrigger>
349
- * Accordion Item 1
350
- * <AccordionIndicator />
351
- * </AccordionTrigger>
352
- * <AccordionContent>Accordion Item 1 content</AccordionContent>
353
- * </AccordionItem>
354
- * </Accordion>
355
- * ```
356
- * */
311
+ * The primitive item indicator component of the Accordion component.
312
+ *
313
+ * This component returns the Ark `Accordion.ItemIndicator` component which has
314
+ * a base style using the Cerberus `accordion` recipe that can be overridden.
315
+ */
357
316
  declare function AccordionItemIndicator(props: AccordionItemIndicatorProps): JSX_2.Element;
358
317
  export { AccordionItemIndicator }
359
318
  export { AccordionItemIndicator as AccordionItemIndicator_alias_1 }
360
-
361
- declare type AccordionItemIndicatorProps = Accordion_2.ItemIndicatorProps & AccordionVariantProps;
362
- export { AccordionItemIndicatorProps }
363
- export { AccordionItemIndicatorProps as AccordionItemIndicatorProps_alias_1 }
364
-
365
- declare type AccordionItemProps = Accordion_2.ItemProps & AccordionVariantProps;
319
+ export { AccordionItemIndicator as AccordionItemIndicator_alias_2 }
366
320
 
367
321
  /**
368
- * The trigger for the Accordion component.
369
- * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)
370
- * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)
371
- * @example
372
- * ```tsx
373
- * <Accordion>
374
- * <AccordionItem value="one">
375
- * <AccordionTrigger>
376
- * Accordion Item 1
377
- * <AccordionIndicator />
378
- * </AccordionTrigger>
379
- * <AccordionContent>Accordion Item 1 content</AccordionContent>
380
- * </AccordionItem>
381
- * </Accordion>
382
- * ```
322
+ * The primitive trigger component of the Accordion component.
323
+ *
324
+ * This component returns the Ark `Accordion.ItemTrigger` component which has
325
+ * a base style using the Cerberus `accordion` recipe that can be overridden.
383
326
  */
384
327
  declare function AccordionItemTrigger(props: AccordionItemTriggerProps): JSX_2.Element;
385
328
  export { AccordionItemTrigger }
386
329
  export { AccordionItemTrigger as AccordionItemTrigger_alias_1 }
330
+ export { AccordionItemTrigger as AccordionItemTrigger_alias_2 }
387
331
 
388
- declare type AccordionItemTriggerProps = Accordion_2.ItemTriggerProps & AccordionVariantProps;
389
- export { AccordionItemTriggerProps }
390
- export { AccordionItemTriggerProps as AccordionItemTriggerProps_alias_1 }
332
+ /**
333
+ * An Object containing the parts of the Accordion component. For users that
334
+ * prefer Object component syntax.
335
+ *
336
+ * @remarks
337
+ *
338
+ * When using object component syntax, you import the AccordionParts object and
339
+ * the entire family of components vs. only what you use.
340
+ */
341
+ declare const AccordionParts: AccordionPartsValue;
342
+ export { AccordionParts }
343
+ export { AccordionParts as AccordionParts_alias_1 }
344
+ export { AccordionParts as AccordionParts_alias_2 }
345
+
346
+ /**
347
+ * This module contains the parts of the Accordion component.
348
+ * @module 'accordion/parts'
349
+ */
350
+ declare interface AccordionPartsValue {
351
+ /**
352
+ * The context provider of the accordion.
353
+ */
354
+ Root: ElementType;
355
+ /**
356
+ * The item of the accordion.
357
+ */
358
+ Item: ElementType;
359
+ /**
360
+ * The trigger of the accordion item.
361
+ */
362
+ ItemTrigger: ElementType;
363
+ /**
364
+ * The content of the accordion item.
365
+ */
366
+ ItemContent: ElementType;
367
+ /**
368
+ * The indicator of the accordion item.
369
+ */
370
+ ItemIndicator: ElementType;
371
+ }
391
372
 
392
- declare type AccordionProps = Accordion_2.RootProps & AccordionVariantProps;
393
- export { AccordionProps }
394
- export { AccordionProps as AccordionProps_alias_1 }
373
+ /**
374
+ * This module contains the primitives of the Accordion component.
375
+ * @module 'accordion/primitives'
376
+ */
377
+ /**
378
+ * The primitive root component of the Accordion component.
379
+ *
380
+ * This component returns the Ark `Accordion.Root` component which has a
381
+ * base style using the Cerberus `accordion` recipe that can be overridden.
382
+ */
383
+ declare function AccordionRoot(props: AccordionRootProps & AccordionVariantProps): JSX_2.Element;
384
+ export { AccordionRoot }
385
+ export { AccordionRoot as AccordionRoot_alias_1 }
386
+ export { AccordionRoot as AccordionRoot_alias_2 }
395
387
 
396
388
  export { Activator }
397
389
 
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/accordion/index.ts
21
+ var accordion_exports = {};
22
+ __export(accordion_exports, {
23
+ Accordion: () => Accordion2,
24
+ AccordionItem: () => AccordionItem,
25
+ AccordionItemContent: () => AccordionItemContent,
26
+ AccordionItemGroup: () => AccordionItemGroup,
27
+ AccordionItemIndicator: () => AccordionItemIndicator,
28
+ AccordionItemTrigger: () => AccordionItemTrigger,
29
+ AccordionParts: () => AccordionParts,
30
+ AccordionRoot: () => AccordionRoot
31
+ });
32
+ module.exports = __toCommonJS(accordion_exports);
33
+
34
+ // src/components/accordion/primitives.tsx
35
+ var import_accordion = require("@ark-ui/react/accordion");
36
+ var import_css = require("@cerberus/styled-system/css");
37
+ var import_recipes = require("@cerberus/styled-system/recipes");
38
+ var import_jsx_runtime = require("react/jsx-runtime");
39
+ function AccordionRoot(props) {
40
+ const { size, ...rootProps } = props;
41
+ const styles = (0, import_recipes.accordion)({ size });
42
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ import_accordion.Accordion.Root,
44
+ {
45
+ ...props,
46
+ className: (0, import_css.cx)(styles.root, rootProps.className),
47
+ "data-size": size
48
+ }
49
+ );
50
+ }
51
+ function AccordionItem(props) {
52
+ const styles = (0, import_recipes.accordion)();
53
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_accordion.Accordion.Item, { ...props, className: (0, import_css.cx)(styles.item, props.className) });
54
+ }
55
+ function AccordionItemTrigger(props) {
56
+ const styles = (0, import_recipes.accordion)();
57
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
+ import_accordion.Accordion.ItemTrigger,
59
+ {
60
+ ...props,
61
+ className: (0, import_css.cx)(styles.itemTrigger, props.className)
62
+ }
63
+ );
64
+ }
65
+ function AccordionItemIndicator(props) {
66
+ const styles = (0, import_recipes.accordion)();
67
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
68
+ import_accordion.Accordion.ItemIndicator,
69
+ {
70
+ ...props,
71
+ className: (0, import_css.cx)(styles.itemIndicator, props.className)
72
+ }
73
+ );
74
+ }
75
+ function AccordionItemContent(props) {
76
+ const styles = (0, import_recipes.accordion)();
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
+ import_accordion.Accordion.ItemContent,
79
+ {
80
+ ...props,
81
+ className: (0, import_css.cx)(styles.itemContent, props.className)
82
+ }
83
+ );
84
+ }
85
+
86
+ // src/components/accordion/parts.ts
87
+ var AccordionParts = {
88
+ Root: AccordionRoot,
89
+ Item: AccordionItem,
90
+ ItemTrigger: AccordionItemTrigger,
91
+ ItemContent: AccordionItemContent,
92
+ ItemIndicator: AccordionItemIndicator
93
+ };
94
+
95
+ // src/utils/index.ts
96
+ function splitProps(props, ...keyGroups) {
97
+ const result = keyGroups.map(() => ({}));
98
+ const rest = {};
99
+ for (const key in props) {
100
+ let assigned = false;
101
+ for (let i = 0; i < keyGroups.length; i++) {
102
+ if (keyGroups[i].includes(key)) {
103
+ result[i][key] = props[key];
104
+ assigned = true;
105
+ break;
106
+ }
107
+ }
108
+ if (!assigned) {
109
+ rest[key] = props[key];
110
+ }
111
+ }
112
+ return [...result, rest];
113
+ }
114
+
115
+ // src/components/Show.tsx
116
+ var import_react = require("react");
117
+ function Show(props) {
118
+ const { when, children, fallback } = props;
119
+ const condition = (0, import_react.useMemo)(() => when ?? false, [when]);
120
+ return (0, import_react.useMemo)(() => {
121
+ if (condition) return children;
122
+ return fallback ?? null;
123
+ }, [condition, children, fallback]);
124
+ }
125
+
126
+ // src/context/cerberus.tsx
127
+ var import_react2 = require("react");
128
+ var import_jsx_runtime2 = require("react/jsx-runtime");
129
+ var CerberusContext = (0, import_react2.createContext)(null);
130
+ function useCerberusContext() {
131
+ const context = (0, import_react2.useContext)(CerberusContext);
132
+ if (!context) {
133
+ throw new Error("useCerberus must be used within a CerberusProvider");
134
+ }
135
+ return context;
136
+ }
137
+
138
+ // src/components/accordion/item-indicator.tsx
139
+ var import_jsx_runtime3 = require("react/jsx-runtime");
140
+ function AccordionChevronItemIndicator(props) {
141
+ const { size, ...indicatorProps } = props;
142
+ const iconSize = size === "sm" ? 16 : "24";
143
+ const { icons } = useCerberusContext();
144
+ const { accordionIndicator: ChevronDown } = icons;
145
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AccordionParts.ItemIndicator, { ...indicatorProps, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChevronDown, { size: iconSize }) });
146
+ }
147
+
148
+ // src/components/accordion/item-group.tsx
149
+ var import_jsx_runtime4 = require("react/jsx-runtime");
150
+ var Accordion2 = AccordionParts.Root;
151
+ function AccordionItemGroup(props) {
152
+ const [groupProps, itemProps] = splitProps(props, [
153
+ "heading",
154
+ "children",
155
+ "indicatorPosition"
156
+ ]);
157
+ const indicatorPosition = groupProps.indicatorPosition ?? "end";
158
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(AccordionParts.Item, { ...itemProps, children: [
159
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(AccordionParts.ItemTrigger, { "data-indicator-position": indicatorPosition, children: [
160
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Show, { when: indicatorPosition === "start", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionChevronItemIndicator, {}) }),
161
+ groupProps.heading,
162
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Show, { when: indicatorPosition === "end", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionChevronItemIndicator, {}) })
163
+ ] }),
164
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionParts.ItemContent, { children: groupProps.children })
165
+ ] });
166
+ }
167
+ // Annotate the CommonJS export names for ESM import in node:
168
+ 0 && (module.exports = {
169
+ Accordion,
170
+ AccordionItem,
171
+ AccordionItemContent,
172
+ AccordionItemGroup,
173
+ AccordionItemIndicator,
174
+ AccordionItemTrigger,
175
+ AccordionParts,
176
+ AccordionRoot
177
+ });
178
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/accordion/index.ts","../../../../src/components/accordion/primitives.tsx","../../../../src/components/accordion/parts.ts","../../../../src/utils/index.ts","../../../../src/components/Show.tsx","../../../../src/context/cerberus.tsx","../../../../src/components/accordion/item-indicator.tsx","../../../../src/components/accordion/item-group.tsx"],"sourcesContent":["export * from './parts'\nexport * from './primitives'\nexport * from './item-group'\n","import {\n Accordion,\n type AccordionItemContentProps,\n type AccordionItemIndicatorProps,\n type AccordionItemProps,\n type AccordionItemTriggerProps,\n type AccordionRootProps,\n} from '@ark-ui/react/accordion'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n accordion,\n type AccordionVariantProps,\n} from '@cerberus/styled-system/recipes'\n\n/**\n * This module contains the primitives of the Accordion component.\n * @module 'accordion/primitives'\n */\n\n/**\n * The primitive root component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Root` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport function AccordionRoot(\n props: AccordionRootProps & AccordionVariantProps,\n) {\n const { size, ...rootProps } = props\n const styles = accordion({ size })\n return (\n <Accordion.Root\n {...props}\n className={cx(styles.root, rootProps.className)}\n data-size={size}\n />\n )\n}\n\n/**\n * The primitive item component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Item` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport function AccordionItem(\n props: AccordionItemProps & AccordionVariantProps,\n) {\n const styles = accordion()\n return (\n <Accordion.Item {...props} className={cx(styles.item, props.className)} />\n )\n}\n\n/**\n * The primitive trigger component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemTrigger` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport function AccordionItemTrigger(props: AccordionItemTriggerProps) {\n const styles = accordion()\n return (\n <Accordion.ItemTrigger\n {...props}\n className={cx(styles.itemTrigger, props.className)}\n />\n )\n}\n\n/**\n * The primitive item indicator component of the Accordion component.\n *\n * This component returns the Ark `Accordion.ItemIndicator` component which has\n * a base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport function AccordionItemIndicator(props: AccordionItemIndicatorProps) {\n const styles = accordion()\n return (\n <Accordion.ItemIndicator\n {...props}\n className={cx(styles.itemIndicator, props.className)}\n />\n )\n}\n\n/**\n * The primitive content component of the Accordion component.\n *\n * This component returns the Ark `Accordion.Content` component which has a\n * base style using the Cerberus `accordion` recipe that can be overridden.\n */\nexport function AccordionItemContent(props: AccordionItemContentProps) {\n const styles = accordion()\n return (\n <Accordion.ItemContent\n {...props}\n className={cx(styles.itemContent, props.className)}\n />\n )\n}\n","import type { ElementType } from 'react'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemIndicator,\n AccordionItemTrigger,\n AccordionRoot,\n} from './primitives'\n\n/**\n * This module contains the parts of the Accordion component.\n * @module 'accordion/parts'\n */\n\ninterface AccordionPartsValue {\n /**\n * The context provider of the accordion.\n */\n Root: ElementType\n /**\n * The item of the accordion.\n */\n Item: ElementType\n /**\n * The trigger of the accordion item.\n */\n ItemTrigger: ElementType\n /**\n * The content of the accordion item.\n */\n ItemContent: ElementType\n /**\n * The indicator of the accordion item.\n */\n ItemIndicator: ElementType\n}\n\n/**\n * An Object containing the parts of the Accordion component. For users that\n * prefer Object component syntax.\n *\n * @remarks\n *\n * When using object component syntax, you import the AccordionParts object and\n * the entire family of components vs. only what you use.\n */\nexport const AccordionParts: AccordionPartsValue = {\n Root: AccordionRoot,\n Item: AccordionItem,\n ItemTrigger: AccordionItemTrigger,\n ItemContent: AccordionItemContent,\n ItemIndicator: AccordionItemIndicator,\n}\n","/**\n * This module contains utility functions that are used across your app.\n * @module Utils\n */\n\n/**\n * Formats the count of notifications to be displayed in the notification badge.\n * @param count - The number of notifications.\n * @returns The formatted count of notifications.\n * @example\n * ```tsx\n * const count = formatNotifyCount(100)\n * console.log(count) // '99+'\n * ```\n */\nexport function formatNotifyCount(count: number): string {\n if (count > 99) return '99+'\n return count.toString()\n}\n\n/**\n * Splits the properties of an object into multiple groups based on lists of keys.\n * @param props - The object to split.\n * @param keyGroups - The lists of keys to include in each group.\n * @returns An array of objects: each containing the properties specified in the corresponding key group, and the last object containing the remaining keys.\n */\nexport function splitProps<T extends object>(\n props: T,\n ...keyGroups: (keyof T)[][]\n): { [K in keyof T]?: T[K] }[] {\n const result = keyGroups.map(() => ({}) as { [K in keyof T]?: T[K] })\n const rest = {} as { [K in keyof T]?: T[K] }\n\n for (const key in props) {\n let assigned = false\n for (let i = 0; i < keyGroups.length; i++) {\n if (keyGroups[i].includes(key as keyof T)) {\n result[i][key as keyof T] = props[key]\n assigned = true\n break\n }\n }\n if (!assigned) {\n rest[key as keyof T] = props[key]\n }\n }\n\n return [...result, rest]\n}\n\nexport * from './localStorage'\n","'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\n/**\n * This module contains the Show component.\n * @module\n */\n\nexport interface ShowProps {\n /**\n * The condition to render memoized children or the fallback content.\n */\n when: boolean | null | undefined\n /**\n * The children to render when the condition is false.\n */\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render a memoized version of the children or optional fallback\n * content.\n * @see https://cerberus.digitalu.design/react/show\n * @example\n * ```tsx\n * <Show when={isLoggedIn} fallback={<Navigate to=\"/login\" />}>\n * <Dashboard />\n * </Show>\n */\nexport function Show(props: PropsWithChildren<ShowProps>): ReactNode {\n const { when, children, fallback } = props\n const condition = useMemo(() => when ?? false, [when])\n\n return useMemo(() => {\n if (condition) return children\n return fallback ?? null\n }, [condition, children, fallback])\n}\n","'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport type { SystemConfig } from '../config'\n\n/**\n * This module contains the Cerberus configuration context and helpers.\n * @module context/cerberus\n */\n\ntype CerberusContextValue = SystemConfig\n\nconst CerberusContext = createContext<CerberusContextValue | null>(null)\n\ninterface CerberusProviderProps {\n config: SystemConfig\n}\n\n/**\n * Cerberus configuration provider.\n * @param props.config The Cerberus configuration created with\n * `makeSystemConfig` helper.\n */\nexport function CerberusProvider(\n props: PropsWithChildren<CerberusProviderProps>,\n) {\n return (\n <CerberusContext.Provider value={props.config}>\n {props.children}\n </CerberusContext.Provider>\n )\n}\n\n/**\n * Returns the Cerberus configuration context.\n * @returns The Cerberus configuration context.\n */\nexport function useCerberusContext() {\n const context = useContext(CerberusContext)\n if (!context) {\n throw new Error('useCerberus must be used within a CerberusProvider')\n }\n return context\n}\n","'use client'\n\nimport { type AccordionItemIndicatorProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from '@cerberus/styled-system/recipes'\nimport { useCerberusContext } from '../../context/cerberus'\nimport { AccordionParts } from './parts'\n\n/**\n * This module contains the internal AccordionItemIndicator component.\n * @module 'accordion/item-indicator'\n */\n\nexport function AccordionChevronItemIndicator(\n props: AccordionItemIndicatorProps & AccordionVariantProps,\n) {\n const { size, ...indicatorProps } = props\n const iconSize = size === 'sm' ? 16 : '24'\n\n const { icons } = useCerberusContext()\n const { accordionIndicator: ChevronDown } = icons\n\n return (\n <AccordionParts.ItemIndicator {...indicatorProps}>\n <ChevronDown size={iconSize} />\n </AccordionParts.ItemIndicator>\n )\n}\n","import type { AccordionItemProps } from '@ark-ui/react/accordion'\nimport { type AccordionVariantProps } from '@cerberus/styled-system/recipes'\nimport { splitProps } from '../../utils/index'\nimport { Show } from '../Show'\nimport { AccordionParts } from './parts'\nimport { AccordionChevronItemIndicator } from './item-indicator'\n\n/**\n * This module contains an abstraction of the AccordionItem components.\n * @module\n */\n\n// We are only exposing this to keep the API consistent\nexport const Accordion = AccordionParts.Root\n\nexport interface AccordionItemGroupProps\n extends AccordionItemProps,\n AccordionVariantProps {\n /**\n * The heading of the accordion item to open and close the content.\n */\n heading: string\n /**\n * The position of the arrow indicator.\n */\n indicatorPosition?: 'start' | 'end'\n}\n\n/**\n * The AccordionItemGroup component is an abstraction of the Accordion primitive\n * components which renders an accordion item with a heading and an indicator.\n *\n * It is a wrapper around the `AccordionParts.Item`, `AccordionParts.\n * ItemTrigger`, `AccordionParts.ItemIndicator`, and `AccordionParts.ItemContent` components.\n *\n * @description [Cerberus docs](https://cerberus.digitalu.design/react/accordion)\n * @description [Ark docs](https://ark-ui.com/react/docs/components/accordion)\n */\nexport function AccordionItemGroup(props: AccordionItemGroupProps) {\n const [groupProps, itemProps] = splitProps(props, [\n 'heading',\n 'children',\n 'indicatorPosition',\n ])\n const indicatorPosition = groupProps.indicatorPosition ?? 'end'\n\n return (\n <AccordionParts.Item {...itemProps}>\n <AccordionParts.ItemTrigger data-indicator-position={indicatorPosition}>\n <Show when={indicatorPosition === 'start'}>\n <AccordionChevronItemIndicator />\n </Show>\n\n {groupProps.heading}\n\n <Show when={indicatorPosition === 'end'}>\n <AccordionChevronItemIndicator />\n </Show>\n </AccordionParts.ItemTrigger>\n\n <AccordionParts.ItemContent>\n {groupProps.children}\n </AccordionParts.ItemContent>\n </AccordionParts.Item>\n )\n}\n"],"mappings":"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","names":["Accordion","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Accordion"]}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/accordion/item-group.tsx
21
+ var item_group_exports = {};
22
+ __export(item_group_exports, {
23
+ Accordion: () => Accordion2,
24
+ AccordionItemGroup: () => AccordionItemGroup
25
+ });
26
+ module.exports = __toCommonJS(item_group_exports);
27
+
28
+ // src/utils/index.ts
29
+ function splitProps(props, ...keyGroups) {
30
+ const result = keyGroups.map(() => ({}));
31
+ const rest = {};
32
+ for (const key in props) {
33
+ let assigned = false;
34
+ for (let i = 0; i < keyGroups.length; i++) {
35
+ if (keyGroups[i].includes(key)) {
36
+ result[i][key] = props[key];
37
+ assigned = true;
38
+ break;
39
+ }
40
+ }
41
+ if (!assigned) {
42
+ rest[key] = props[key];
43
+ }
44
+ }
45
+ return [...result, rest];
46
+ }
47
+
48
+ // src/components/Show.tsx
49
+ var import_react = require("react");
50
+ function Show(props) {
51
+ const { when, children, fallback } = props;
52
+ const condition = (0, import_react.useMemo)(() => when ?? false, [when]);
53
+ return (0, import_react.useMemo)(() => {
54
+ if (condition) return children;
55
+ return fallback ?? null;
56
+ }, [condition, children, fallback]);
57
+ }
58
+
59
+ // src/components/accordion/primitives.tsx
60
+ var import_accordion = require("@ark-ui/react/accordion");
61
+ var import_css = require("@cerberus/styled-system/css");
62
+ var import_recipes = require("@cerberus/styled-system/recipes");
63
+ var import_jsx_runtime = require("react/jsx-runtime");
64
+ function AccordionRoot(props) {
65
+ const { size, ...rootProps } = props;
66
+ const styles = (0, import_recipes.accordion)({ size });
67
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
68
+ import_accordion.Accordion.Root,
69
+ {
70
+ ...props,
71
+ className: (0, import_css.cx)(styles.root, rootProps.className),
72
+ "data-size": size
73
+ }
74
+ );
75
+ }
76
+ function AccordionItem(props) {
77
+ const styles = (0, import_recipes.accordion)();
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_accordion.Accordion.Item, { ...props, className: (0, import_css.cx)(styles.item, props.className) });
79
+ }
80
+ function AccordionItemTrigger(props) {
81
+ const styles = (0, import_recipes.accordion)();
82
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
+ import_accordion.Accordion.ItemTrigger,
84
+ {
85
+ ...props,
86
+ className: (0, import_css.cx)(styles.itemTrigger, props.className)
87
+ }
88
+ );
89
+ }
90
+ function AccordionItemIndicator(props) {
91
+ const styles = (0, import_recipes.accordion)();
92
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
93
+ import_accordion.Accordion.ItemIndicator,
94
+ {
95
+ ...props,
96
+ className: (0, import_css.cx)(styles.itemIndicator, props.className)
97
+ }
98
+ );
99
+ }
100
+ function AccordionItemContent(props) {
101
+ const styles = (0, import_recipes.accordion)();
102
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
103
+ import_accordion.Accordion.ItemContent,
104
+ {
105
+ ...props,
106
+ className: (0, import_css.cx)(styles.itemContent, props.className)
107
+ }
108
+ );
109
+ }
110
+
111
+ // src/components/accordion/parts.ts
112
+ var AccordionParts = {
113
+ Root: AccordionRoot,
114
+ Item: AccordionItem,
115
+ ItemTrigger: AccordionItemTrigger,
116
+ ItemContent: AccordionItemContent,
117
+ ItemIndicator: AccordionItemIndicator
118
+ };
119
+
120
+ // src/context/cerberus.tsx
121
+ var import_react2 = require("react");
122
+ var import_jsx_runtime2 = require("react/jsx-runtime");
123
+ var CerberusContext = (0, import_react2.createContext)(null);
124
+ function useCerberusContext() {
125
+ const context = (0, import_react2.useContext)(CerberusContext);
126
+ if (!context) {
127
+ throw new Error("useCerberus must be used within a CerberusProvider");
128
+ }
129
+ return context;
130
+ }
131
+
132
+ // src/components/accordion/item-indicator.tsx
133
+ var import_jsx_runtime3 = require("react/jsx-runtime");
134
+ function AccordionChevronItemIndicator(props) {
135
+ const { size, ...indicatorProps } = props;
136
+ const iconSize = size === "sm" ? 16 : "24";
137
+ const { icons } = useCerberusContext();
138
+ const { accordionIndicator: ChevronDown } = icons;
139
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AccordionParts.ItemIndicator, { ...indicatorProps, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChevronDown, { size: iconSize }) });
140
+ }
141
+
142
+ // src/components/accordion/item-group.tsx
143
+ var import_jsx_runtime4 = require("react/jsx-runtime");
144
+ var Accordion2 = AccordionParts.Root;
145
+ function AccordionItemGroup(props) {
146
+ const [groupProps, itemProps] = splitProps(props, [
147
+ "heading",
148
+ "children",
149
+ "indicatorPosition"
150
+ ]);
151
+ const indicatorPosition = groupProps.indicatorPosition ?? "end";
152
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(AccordionParts.Item, { ...itemProps, children: [
153
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(AccordionParts.ItemTrigger, { "data-indicator-position": indicatorPosition, children: [
154
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Show, { when: indicatorPosition === "start", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionChevronItemIndicator, {}) }),
155
+ groupProps.heading,
156
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Show, { when: indicatorPosition === "end", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionChevronItemIndicator, {}) })
157
+ ] }),
158
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionParts.ItemContent, { children: groupProps.children })
159
+ ] });
160
+ }
161
+ // Annotate the CommonJS export names for ESM import in node:
162
+ 0 && (module.exports = {
163
+ Accordion,
164
+ AccordionItemGroup
165
+ });
166
+ //# sourceMappingURL=item-group.cjs.map