@cerberus-design/react 0.14.2-next-a928afd → 0.14.2-next-0052cda

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 (188) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +111 -34
  2. package/build/legacy/components/Accordion.cjs +4 -187
  3. package/build/legacy/components/Accordion.cjs.map +1 -1
  4. package/build/legacy/components/Accordion.client.cjs +64 -0
  5. package/build/legacy/components/Accordion.client.cjs.map +1 -0
  6. package/build/legacy/components/AccordionItemGroup.cjs +41 -185
  7. package/build/legacy/components/AccordionItemGroup.cjs.map +1 -1
  8. package/build/legacy/components/Admonition.cjs +89 -239
  9. package/build/legacy/components/Admonition.cjs.map +1 -1
  10. package/build/legacy/components/Admonition.client.cjs +219 -0
  11. package/build/legacy/components/Admonition.client.cjs.map +1 -0
  12. package/build/legacy/components/AnimatingUploadIcon.cjs.map +1 -1
  13. package/build/legacy/components/Avatar.cjs +23 -174
  14. package/build/legacy/components/Avatar.cjs.map +1 -1
  15. package/build/legacy/components/Checkbox.cjs +22 -168
  16. package/build/legacy/components/Checkbox.cjs.map +1 -1
  17. package/build/legacy/components/DatePicker.client.cjs +119 -268
  18. package/build/legacy/components/DatePicker.client.cjs.map +1 -1
  19. package/build/legacy/components/DatePicker.server.cjs +17 -271
  20. package/build/legacy/components/DatePicker.server.cjs.map +1 -1
  21. package/build/legacy/components/FileStatus.cjs +62 -212
  22. package/build/legacy/components/FileStatus.cjs.map +1 -1
  23. package/build/legacy/components/FileUploader.cjs +29 -180
  24. package/build/legacy/components/FileUploader.cjs.map +1 -1
  25. package/build/legacy/components/Input.cjs +20 -172
  26. package/build/legacy/components/Input.cjs.map +1 -1
  27. package/build/legacy/components/Notification.cjs +25 -176
  28. package/build/legacy/components/Notification.cjs.map +1 -1
  29. package/build/legacy/components/Select.cjs +26 -178
  30. package/build/legacy/components/Select.cjs.map +1 -1
  31. package/build/legacy/components/Tag.cjs +16 -167
  32. package/build/legacy/components/Tag.cjs.map +1 -1
  33. package/build/legacy/components/Toggle.cjs +20 -172
  34. package/build/legacy/components/Toggle.cjs.map +1 -1
  35. package/build/legacy/config/defineIcons.cjs +3 -39
  36. package/build/legacy/config/defineIcons.cjs.map +1 -1
  37. package/build/legacy/config/{cerbIcons.cjs → index.cjs} +22 -29
  38. package/build/legacy/config/index.cjs.map +1 -0
  39. package/build/legacy/config/types.cjs +19 -0
  40. package/build/legacy/config/types.cjs.map +1 -0
  41. package/build/legacy/context/cerberus.cjs +46 -0
  42. package/build/legacy/context/cerberus.cjs.map +1 -0
  43. package/build/legacy/context/confirm-modal.cjs +58 -207
  44. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  45. package/build/legacy/context/cta-modal.cjs +57 -209
  46. package/build/legacy/context/cta-modal.cjs.map +1 -1
  47. package/build/legacy/context/notification-center.cjs +55 -206
  48. package/build/legacy/context/notification-center.cjs.map +1 -1
  49. package/build/legacy/context/prompt-modal.cjs +83 -233
  50. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  51. package/build/legacy/index.cjs +950 -930
  52. package/build/legacy/index.cjs.map +1 -1
  53. package/build/modern/_tsup-dts-rollup.d.ts +111 -34
  54. package/build/modern/{chunk-BVCXVZAF.js → chunk-25HMVHLT.js} +6 -5
  55. package/build/modern/chunk-25HMVHLT.js.map +1 -0
  56. package/build/modern/chunk-36N4527B.js +1 -0
  57. package/build/modern/chunk-5EWCH7AI.js +82 -0
  58. package/build/modern/chunk-5EWCH7AI.js.map +1 -0
  59. package/build/modern/chunk-5SNLQZYP.js +25 -0
  60. package/build/modern/chunk-5SNLQZYP.js.map +1 -0
  61. package/build/modern/{chunk-6BH5J5GF.js → chunk-CCTLGF5U.js} +18 -17
  62. package/build/modern/chunk-CCTLGF5U.js.map +1 -0
  63. package/build/modern/{chunk-HKJMLWVP.js → chunk-EDARV2EI.js} +5 -4
  64. package/build/modern/chunk-EDARV2EI.js.map +1 -0
  65. package/build/modern/{chunk-FXLLRVAM.js → chunk-EMNBMH7Z.js} +13 -11
  66. package/build/modern/chunk-EMNBMH7Z.js.map +1 -0
  67. package/build/modern/{chunk-PVIMOXSO.js → chunk-GCQMH4QA.js} +5 -4
  68. package/build/modern/chunk-GCQMH4QA.js.map +1 -0
  69. package/build/modern/chunk-GITT5645.js +20 -0
  70. package/build/modern/chunk-GITT5645.js.map +1 -0
  71. package/build/modern/{chunk-TJCFYL5W.js → chunk-IGHMP4WA.js} +1 -20
  72. package/build/modern/chunk-IGHMP4WA.js.map +1 -0
  73. package/build/modern/chunk-ISCJ542I.js +82 -0
  74. package/build/modern/chunk-ISCJ542I.js.map +1 -0
  75. package/build/modern/{chunk-HVKM54BA.js → chunk-IW3LIRDG.js} +1 -1
  76. package/build/modern/chunk-IW3LIRDG.js.map +1 -0
  77. package/build/modern/{chunk-KWJ5FKX7.js → chunk-JQCRDZNI.js} +8 -6
  78. package/build/modern/chunk-JQCRDZNI.js.map +1 -0
  79. package/build/modern/chunk-KDDPAJMR.js +9 -0
  80. package/build/modern/chunk-KDDPAJMR.js.map +1 -0
  81. package/build/modern/{chunk-JJZQGR7A.js → chunk-KF35CYT4.js} +8 -6
  82. package/build/modern/chunk-KF35CYT4.js.map +1 -0
  83. package/build/modern/{chunk-XOROL3JY.js → chunk-KKHL3ZO4.js} +5 -4
  84. package/build/modern/chunk-KKHL3ZO4.js.map +1 -0
  85. package/build/modern/{chunk-U36UZJGZ.js → chunk-MZ3UCDUL.js} +5 -4
  86. package/build/modern/chunk-MZ3UCDUL.js.map +1 -0
  87. package/build/modern/{chunk-T2JOPPGL.js → chunk-N24COMHJ.js} +11 -4
  88. package/build/modern/chunk-N24COMHJ.js.map +1 -0
  89. package/build/modern/{chunk-CVTON5DQ.js → chunk-N3L3PEMF.js} +2 -2
  90. package/build/modern/chunk-NJSETNRL.js +68 -0
  91. package/build/modern/chunk-NJSETNRL.js.map +1 -0
  92. package/build/modern/{chunk-XXWR7UGH.js → chunk-QKZZHZL4.js} +22 -21
  93. package/build/modern/chunk-QKZZHZL4.js.map +1 -0
  94. package/build/modern/{chunk-KPUYKHLW.js → chunk-UMF2TWZN.js} +59 -9
  95. package/build/modern/chunk-UMF2TWZN.js.map +1 -0
  96. package/build/modern/{chunk-QK7R2XJM.js → chunk-XQICKZH4.js} +6 -5
  97. package/build/modern/chunk-XQICKZH4.js.map +1 -0
  98. package/build/modern/chunk-XZGXRRSQ.js +31 -0
  99. package/build/modern/chunk-XZGXRRSQ.js.map +1 -0
  100. package/build/modern/{chunk-5OVH3INN.js → chunk-Z64YZ5IH.js} +18 -18
  101. package/build/modern/chunk-Z64YZ5IH.js.map +1 -0
  102. package/build/modern/components/Accordion.client.js +9 -0
  103. package/build/modern/components/Accordion.client.js.map +1 -0
  104. package/build/modern/components/Accordion.js +1 -7
  105. package/build/modern/components/AccordionItemGroup.js +4 -6
  106. package/build/modern/components/Admonition.client.js +11 -0
  107. package/build/modern/components/Admonition.client.js.map +1 -0
  108. package/build/modern/components/Admonition.js +4 -6
  109. package/build/modern/components/AnimatingUploadIcon.js +1 -1
  110. package/build/modern/components/Avatar.js +3 -5
  111. package/build/modern/components/Checkbox.js +2 -5
  112. package/build/modern/components/DatePicker.client.js +8 -7
  113. package/build/modern/components/DatePicker.server.js +3 -13
  114. package/build/modern/components/FileStatus.js +4 -7
  115. package/build/modern/components/FileUploader.js +3 -6
  116. package/build/modern/components/Input.js +2 -5
  117. package/build/modern/components/Notification.js +2 -5
  118. package/build/modern/components/Select.js +2 -5
  119. package/build/modern/components/Tag.js +3 -5
  120. package/build/modern/components/Toggle.js +2 -5
  121. package/build/modern/config/defineIcons.js +2 -5
  122. package/build/modern/config/index.js +14 -0
  123. package/build/modern/config/index.js.map +1 -0
  124. package/build/modern/config/types.js +2 -0
  125. package/build/modern/config/types.js.map +1 -0
  126. package/build/modern/context/cerberus.js +10 -0
  127. package/build/modern/context/cerberus.js.map +1 -0
  128. package/build/modern/context/confirm-modal.js +6 -9
  129. package/build/modern/context/cta-modal.js +6 -9
  130. package/build/modern/context/notification-center.js +3 -6
  131. package/build/modern/context/prompt-modal.js +8 -11
  132. package/build/modern/index.js +105 -94
  133. package/build/modern/index.js.map +1 -1
  134. package/package.json +4 -8
  135. package/src/components/Accordion.client.tsx +46 -0
  136. package/src/components/Accordion.tsx +0 -37
  137. package/src/components/AccordionItemGroup.tsx +1 -1
  138. package/src/components/Admonition.client.tsx +73 -0
  139. package/src/components/Admonition.tsx +1 -70
  140. package/src/components/AnimatingUploadIcon.tsx +3 -3
  141. package/src/components/Avatar.tsx +5 -2
  142. package/src/components/Checkbox.tsx +10 -3
  143. package/src/components/DatePicker.client.tsx +79 -7
  144. package/src/components/DatePicker.server.tsx +2 -75
  145. package/src/components/FileStatus.tsx +5 -3
  146. package/src/components/FileUploader.tsx +3 -2
  147. package/src/components/Input.tsx +4 -2
  148. package/src/components/Notification.tsx +7 -4
  149. package/src/components/Select.tsx +5 -2
  150. package/src/components/Tag.tsx +5 -2
  151. package/src/components/Toggle.tsx +4 -3
  152. package/src/config/defineIcons.ts +28 -16
  153. package/src/config/index.ts +28 -0
  154. package/src/config/types.ts +42 -0
  155. package/src/context/cerberus.tsx +44 -0
  156. package/src/context/confirm-modal.tsx +4 -2
  157. package/src/context/cta-modal.tsx +5 -4
  158. package/src/context/prompt-modal.tsx +4 -2
  159. package/src/index.ts +3 -1
  160. package/build/legacy/config/cerbIcons.cjs.map +0 -1
  161. package/build/modern/chunk-5OVH3INN.js.map +0 -1
  162. package/build/modern/chunk-6BH5J5GF.js.map +0 -1
  163. package/build/modern/chunk-BC5SZDYY.js +0 -132
  164. package/build/modern/chunk-BC5SZDYY.js.map +0 -1
  165. package/build/modern/chunk-BVCXVZAF.js.map +0 -1
  166. package/build/modern/chunk-CRII2HNX.js +0 -55
  167. package/build/modern/chunk-CRII2HNX.js.map +0 -1
  168. package/build/modern/chunk-FXLLRVAM.js.map +0 -1
  169. package/build/modern/chunk-HKJMLWVP.js.map +0 -1
  170. package/build/modern/chunk-HVKM54BA.js.map +0 -1
  171. package/build/modern/chunk-JJZQGR7A.js.map +0 -1
  172. package/build/modern/chunk-KPUYKHLW.js.map +0 -1
  173. package/build/modern/chunk-KWJ5FKX7.js.map +0 -1
  174. package/build/modern/chunk-PVIMOXSO.js.map +0 -1
  175. package/build/modern/chunk-QK7R2XJM.js.map +0 -1
  176. package/build/modern/chunk-QMF5ZNDG.js +0 -27
  177. package/build/modern/chunk-QMF5ZNDG.js.map +0 -1
  178. package/build/modern/chunk-QQOWWMZ3.js +0 -138
  179. package/build/modern/chunk-QQOWWMZ3.js.map +0 -1
  180. package/build/modern/chunk-T2JOPPGL.js.map +0 -1
  181. package/build/modern/chunk-TJCFYL5W.js.map +0 -1
  182. package/build/modern/chunk-U36UZJGZ.js.map +0 -1
  183. package/build/modern/chunk-XOROL3JY.js.map +0 -1
  184. package/build/modern/chunk-XXWR7UGH.js.map +0 -1
  185. package/build/modern/config/cerbIcons.js +0 -9
  186. package/src/config/cerbIcons.ts +0 -73
  187. /package/build/modern/{config/cerbIcons.js.map → chunk-36N4527B.js.map} +0 -0
  188. /package/build/modern/{chunk-CVTON5DQ.js.map → chunk-N3L3PEMF.js.map} +0 -0
@@ -0,0 +1,20 @@
1
+ // src/context/cerberus.tsx
2
+ import { createContext, useContext } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ var CerberusContext = createContext(null);
5
+ function CerberusProvider(props) {
6
+ return /* @__PURE__ */ jsx(CerberusContext.Provider, { value: props.config, children: props.children });
7
+ }
8
+ function useCerberusContext() {
9
+ const context = useContext(CerberusContext);
10
+ if (!context) {
11
+ throw new Error("useCerberus must be used within a CerberusProvider");
12
+ }
13
+ return context;
14
+ }
15
+
16
+ export {
17
+ CerberusProvider,
18
+ useCerberusContext
19
+ };
20
+ //# sourceMappingURL=chunk-GITT5645.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/cerberus.tsx"],"sourcesContent":["'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"],"mappings":";AAEA,SAAS,eAAe,kBAA0C;AAyB9D;AAfJ,IAAM,kBAAkB,cAA2C,IAAI;AAWhE,SAAS,iBACd,OACA;AACA,SACE,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,MAAM,QACpC,gBAAM,UACT;AAEJ;AAMO,SAAS,qBAAqB;AACnC,QAAM,UAAU,WAAW,eAAe;AAC1C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,SAAO;AACT;","names":[]}
@@ -1,7 +1,3 @@
1
- import {
2
- $cerberusIcons
3
- } from "./chunk-QMF5ZNDG.js";
4
-
5
1
  // src/components/Accordion.tsx
6
2
  import { Accordion as ArkAccordion } from "@ark-ui/react";
7
3
  import { cx } from "@cerberus/styled-system/css";
@@ -43,20 +39,6 @@ function AccordionItemTrigger(props) {
43
39
  }
44
40
  );
45
41
  }
46
- function AccordionItemIndicator(props) {
47
- const { size, ...indicatorProps } = props;
48
- const styles = accordion({ size });
49
- const iconSize = size === "sm" ? 16 : "24";
50
- const { accordionIndicator: ChevronDown } = $cerberusIcons;
51
- return /* @__PURE__ */ jsx(
52
- ArkAccordion.ItemIndicator,
53
- {
54
- ...indicatorProps,
55
- className: cx(indicatorProps.className, styles.itemIndicator),
56
- children: /* @__PURE__ */ jsx(ChevronDown, { size: iconSize })
57
- }
58
- );
59
- }
60
42
  function AccordionItemContent(props) {
61
43
  const { size, ...contentProps } = props;
62
44
  const styles = accordion({ size });
@@ -73,7 +55,6 @@ export {
73
55
  Accordion,
74
56
  AccordionItem,
75
57
  AccordionItemTrigger,
76
- AccordionItemIndicator,
77
58
  AccordionItemContent
78
59
  };
79
- //# sourceMappingURL=chunk-TJCFYL5W.js.map
60
+ //# sourceMappingURL=chunk-IGHMP4WA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Accordion.tsx"],"sourcesContent":["import { Accordion as ArkAccordion } from '@ark-ui/react'\nimport { cx } from '@cerberus/styled-system/css'\nimport {\n accordion,\n type AccordionVariantProps,\n} from '@cerberus/styled-system/recipes'\n\nexport type AccordionProps = ArkAccordion.RootProps & AccordionVariantProps\n\n/**\n * The context provider for the Accordion family.\n * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)\n * @example\n * ```tsx\n * <Accordion>\n * <AccordionItemGroup heading=\"Item 1 heading\" value=\"one\">\n * This is the content\n * </AccordionItemGroup>\n * </Accordion>\n * ```\n */\nexport function Accordion(props: AccordionProps) {\n const { size, className, ...rootProps } = props\n const styles = accordion({ size })\n return (\n <ArkAccordion.Root\n collapsible\n className={cx(className, styles.root)}\n {...rootProps}\n />\n )\n}\n\ntype AccordionItemProps = ArkAccordion.ItemProps & AccordionVariantProps\n\n/**\n * The item for the Accordion component.\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)\n * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)\n * @example\n * ```tsx\n * <Accordion>\n * <AccordionItem value=\"one\">\n * <AccordionTrigger>\n * Accordion Item 1\n * <AccordionIndicator />\n * </AccordionTrigger>\n * <AccordionContent>Accordion Item 1 content</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nexport function AccordionItem(props: AccordionItemProps) {\n const { size, ...itemProps } = props\n const styles = accordion({ size })\n return (\n <ArkAccordion.Item\n {...itemProps}\n className={cx(itemProps.className, styles.item)}\n />\n )\n}\n\nexport type AccordionItemTriggerProps = ArkAccordion.ItemTriggerProps &\n AccordionVariantProps\n\n/**\n * The trigger for the Accordion component.\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)\n * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)\n * @example\n * ```tsx\n * <Accordion>\n * <AccordionItem value=\"one\">\n * <AccordionTrigger>\n * Accordion Item 1\n * <AccordionIndicator />\n * </AccordionTrigger>\n * <AccordionContent>Accordion Item 1 content</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nexport function AccordionItemTrigger(props: AccordionItemTriggerProps) {\n const { size, ...triggerProps } = props\n const styles = accordion({ size })\n return (\n <ArkAccordion.ItemTrigger\n {...triggerProps}\n className={cx(triggerProps.className, styles.itemTrigger)}\n />\n )\n}\n\nexport type AccordionItemContentProps = ArkAccordion.ItemContentProps &\n AccordionVariantProps\n\n/**\n * The content for the Accordion component.\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)\n * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)\n * @example\n * ```tsx\n * <Accordion>\n * <AccordionItem value=\"one\">\n * <AccordionTrigger>\n * Accordion Item 1\n * <AccordionIndicator />\n * </AccordionTrigger>\n * <AccordionContent>Accordion Item 1 content</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n * */\nexport function AccordionItemContent(props: AccordionItemContentProps) {\n const { size, ...contentProps } = props\n const styles = accordion({ size })\n return (\n <ArkAccordion.ItemContent\n {...contentProps}\n className={cx(contentProps.className, styles.itemContent)}\n />\n )\n}\n"],"mappings":";AAAA,SAAS,aAAa,oBAAoB;AAC1C,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,OAEK;AAoBH;AAJG,SAAS,UAAU,OAAuB;AAC/C,QAAM,EAAE,MAAM,WAAW,GAAG,UAAU,IAAI;AAC1C,QAAM,SAAS,UAAU,EAAE,KAAK,CAAC;AACjC,SACE;AAAA,IAAC,aAAa;AAAA,IAAb;AAAA,MACC,aAAW;AAAA,MACX,WAAW,GAAG,WAAW,OAAO,IAAI;AAAA,MACnC,GAAG;AAAA;AAAA,EACN;AAEJ;AAqBO,SAAS,cAAc,OAA2B;AACvD,QAAM,EAAE,MAAM,GAAG,UAAU,IAAI;AAC/B,QAAM,SAAS,UAAU,EAAE,KAAK,CAAC;AACjC,SACE;AAAA,IAAC,aAAa;AAAA,IAAb;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,GAAG,UAAU,WAAW,OAAO,IAAI;AAAA;AAAA,EAChD;AAEJ;AAsBO,SAAS,qBAAqB,OAAkC;AACrE,QAAM,EAAE,MAAM,GAAG,aAAa,IAAI;AAClC,QAAM,SAAS,UAAU,EAAE,KAAK,CAAC;AACjC,SACE;AAAA,IAAC,aAAa;AAAA,IAAb;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,GAAG,aAAa,WAAW,OAAO,WAAW;AAAA;AAAA,EAC1D;AAEJ;AAsBO,SAAS,qBAAqB,OAAkC;AACrE,QAAM,EAAE,MAAM,GAAG,aAAa,IAAI;AAClC,QAAM,SAAS,UAAU,EAAE,KAAK,CAAC;AACjC,SACE;AAAA,IAAC,aAAa;AAAA,IAAb;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,GAAG,aAAa,WAAW,OAAO,WAAW;AAAA;AAAA,EAC1D;AAEJ;","names":[]}
@@ -0,0 +1,82 @@
1
+ import {
2
+ Avatar
3
+ } from "./chunk-GCQMH4QA.js";
4
+ import {
5
+ useCerberusContext
6
+ } from "./chunk-GITT5645.js";
7
+
8
+ // src/components/Admonition.client.tsx
9
+ import { jsx } from "react/jsx-runtime";
10
+ function MatchAvatar(props) {
11
+ const { icons } = useCerberusContext();
12
+ const {
13
+ infoNotification: InfoIcon,
14
+ successNotification: SuccessIcon,
15
+ warningNotification: WarningIcon,
16
+ dangerNotification: DangerIcon
17
+ } = icons;
18
+ switch (props.palette) {
19
+ case "page":
20
+ return /* @__PURE__ */ jsx(
21
+ Avatar,
22
+ {
23
+ gradient: "charon-light",
24
+ ariaLabel: "",
25
+ icon: /* @__PURE__ */ jsx(InfoIcon, {}),
26
+ size: "sm",
27
+ src: ""
28
+ }
29
+ );
30
+ case "info":
31
+ return /* @__PURE__ */ jsx(
32
+ Avatar,
33
+ {
34
+ gradient: "amphiaraus-dark",
35
+ ariaLabel: "",
36
+ icon: /* @__PURE__ */ jsx(InfoIcon, {}),
37
+ size: "sm",
38
+ src: ""
39
+ }
40
+ );
41
+ case "success":
42
+ return /* @__PURE__ */ jsx(
43
+ Avatar,
44
+ {
45
+ gradient: "thanatos-dark",
46
+ ariaLabel: "",
47
+ icon: /* @__PURE__ */ jsx(SuccessIcon, {}),
48
+ size: "sm",
49
+ src: ""
50
+ }
51
+ );
52
+ case "warning":
53
+ return /* @__PURE__ */ jsx(
54
+ Avatar,
55
+ {
56
+ gradient: "asphodel-light",
57
+ ariaLabel: "",
58
+ icon: /* @__PURE__ */ jsx(WarningIcon, {}),
59
+ size: "sm",
60
+ src: ""
61
+ }
62
+ );
63
+ case "danger":
64
+ return /* @__PURE__ */ jsx(
65
+ Avatar,
66
+ {
67
+ gradient: "hades-light",
68
+ ariaLabel: "",
69
+ icon: /* @__PURE__ */ jsx(DangerIcon, {}),
70
+ size: "sm",
71
+ src: ""
72
+ }
73
+ );
74
+ default:
75
+ throw new Error("Unsupported admonition palette");
76
+ }
77
+ }
78
+
79
+ export {
80
+ MatchAvatar
81
+ };
82
+ //# sourceMappingURL=chunk-ISCJ542I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Admonition.client.tsx"],"sourcesContent":["'use client'\n\nimport type { AdmonitionVariantProps } from '@cerberus/styled-system/recipes'\nimport { useCerberusContext } from '../context/cerberus'\nimport { Avatar } from './Avatar'\n\ntype MatchAvatarProps = AdmonitionVariantProps\n\nexport function MatchAvatar(props: MatchAvatarProps) {\n const { icons } = useCerberusContext()\n const {\n infoNotification: InfoIcon,\n successNotification: SuccessIcon,\n warningNotification: WarningIcon,\n dangerNotification: DangerIcon,\n } = icons\n\n switch (props.palette) {\n case 'page':\n return (\n <Avatar\n gradient=\"charon-light\"\n ariaLabel=\"\"\n icon={<InfoIcon />}\n size=\"sm\"\n src=\"\"\n />\n )\n case 'info':\n return (\n <Avatar\n gradient=\"amphiaraus-dark\"\n ariaLabel=\"\"\n icon={<InfoIcon />}\n size=\"sm\"\n src=\"\"\n />\n )\n case 'success':\n return (\n <Avatar\n gradient=\"thanatos-dark\"\n ariaLabel=\"\"\n icon={<SuccessIcon />}\n size=\"sm\"\n src=\"\"\n />\n )\n case 'warning':\n return (\n <Avatar\n gradient=\"asphodel-light\"\n ariaLabel=\"\"\n icon={<WarningIcon />}\n size=\"sm\"\n src=\"\"\n />\n )\n case 'danger':\n return (\n <Avatar\n gradient=\"hades-light\"\n ariaLabel=\"\"\n icon={<DangerIcon />}\n size=\"sm\"\n src=\"\"\n />\n )\n\n default:\n throw new Error('Unsupported admonition palette')\n }\n}\n"],"mappings":";;;;;;;;AAuBgB;AAfT,SAAS,YAAY,OAAyB;AACnD,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM;AAAA,IACJ,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,EACtB,IAAI;AAEJ,UAAQ,MAAM,SAAS;AAAA,IACrB,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,WAAU;AAAA,UACV,MAAM,oBAAC,YAAS;AAAA,UAChB,MAAK;AAAA,UACL,KAAI;AAAA;AAAA,MACN;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,WAAU;AAAA,UACV,MAAM,oBAAC,YAAS;AAAA,UAChB,MAAK;AAAA,UACL,KAAI;AAAA;AAAA,MACN;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,WAAU;AAAA,UACV,MAAM,oBAAC,eAAY;AAAA,UACnB,MAAK;AAAA,UACL,KAAI;AAAA;AAAA,MACN;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,WAAU;AAAA,UACV,MAAM,oBAAC,eAAY;AAAA,UACnB,MAAK;AAAA,UACL,KAAI;AAAA;AAAA,MACN;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,WAAU;AAAA,UACV,MAAM,oBAAC,cAAW;AAAA,UAClB,MAAK;AAAA,UACL,KAAI;AAAA;AAAA,MACN;AAAA,IAGJ;AACE,YAAM,IAAI,MAAM,gCAAgC;AAAA,EACpD;AACF;","names":[]}
@@ -97,4 +97,4 @@ function AnimatingUploadIcon(props) {
97
97
  export {
98
98
  AnimatingUploadIcon
99
99
  };
100
- //# sourceMappingURL=chunk-HVKM54BA.js.map
100
+ //# sourceMappingURL=chunk-IW3LIRDG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/AnimatingUploadIcon.tsx"],"sourcesContent":["/**\n * This module contains an animating icon to use for the FileStatus component.\n * @module\n */\n\nexport interface AnimatingUploadIconProps {\n size?: 16 | 20 | 24 | 32\n}\n\nexport function AnimatingUploadIcon(props: AnimatingUploadIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={props.size ?? '1em'}\n height={props.size ?? '1em'}\n viewBox=\"0 0 24 24\"\n >\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n >\n <path\n data-name=\"animating-trail\"\n strokeDasharray=\"2 4\"\n strokeDashoffset={6}\n d=\"M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n dur=\"0.45s\"\n repeatCount=\"indefinite\"\n values=\"6;0\"\n ></animate>\n </path>\n\n <path\n data-name=\"half-circle\"\n strokeDasharray={32}\n strokeDashoffset={32}\n d=\"M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n begin=\"0.075s\"\n dur=\"0.3s\"\n values=\"32;0\"\n ></animate>\n </path>\n\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"0.8em\"\n height=\"0.8em\"\n x=\"27%\"\n y=\"27%\"\n viewBox=\"0 0 24 24\"\n >\n <polygon\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth={0.8}\n opacity=\"1\"\n points=\"3.7,6.7 7.5,2.9 7.5,15 8.5,15 8.5,2.9 12.3,6.7 13,6 8,1 3,6 \"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"opacity\"\n values=\"1;0;1\"\n dur=\"2s\"\n repeatCount=\"indefinite\"\n ></animate>\n </polygon>\n </svg>\n </g>\n </svg>\n )\n}\n"],"mappings":";AAkBM,SAaI,KAbJ;AATC,SAAS,oBAAoB,OAAiC;AACnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,OAAO,MAAM,QAAQ;AAAA,MACrB,QAAQ,MAAM,QAAQ;AAAA,MACtB,SAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UAEb;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,aAAU;AAAA,gBACV,iBAAgB;AAAA,gBAChB,kBAAkB;AAAA,gBAClB,GAAE;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,eAAc;AAAA,oBACd,KAAI;AAAA,oBACJ,aAAY;AAAA,oBACZ,QAAO;AAAA;AAAA,gBACR;AAAA;AAAA,YACH;AAAA,YAEA;AAAA,cAAC;AAAA;AAAA,gBACC,aAAU;AAAA,gBACV,iBAAiB;AAAA,gBACjB,kBAAkB;AAAA,gBAClB,GAAE;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,eAAc;AAAA,oBACd,OAAM;AAAA,oBACN,KAAI;AAAA,oBACJ,QAAO;AAAA;AAAA,gBACR;AAAA;AAAA,YACH;AAAA,YAEA;AAAA,cAAC;AAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,OAAM;AAAA,gBACN,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,SAAQ;AAAA,gBAER;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,QAAO;AAAA,oBACP,aAAa;AAAA,oBACb,SAAQ;AAAA,oBACR,QAAO;AAAA,oBAEP;AAAA,sBAAC;AAAA;AAAA,wBACC,MAAK;AAAA,wBACL,eAAc;AAAA,wBACd,QAAO;AAAA,wBACP,KAAI;AAAA,wBACJ,aAAY;AAAA;AAAA,oBACb;AAAA;AAAA,gBACH;AAAA;AAAA,YACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,12 +1,14 @@
1
+ import {
2
+ Show
3
+ } from "./chunk-BUVVRQLZ.js";
4
+ import {
5
+ AccordionItemIndicator
6
+ } from "./chunk-XZGXRRSQ.js";
1
7
  import {
2
8
  AccordionItem,
3
9
  AccordionItemContent,
4
- AccordionItemIndicator,
5
10
  AccordionItemTrigger
6
- } from "./chunk-TJCFYL5W.js";
7
- import {
8
- Show
9
- } from "./chunk-BUVVRQLZ.js";
11
+ } from "./chunk-IGHMP4WA.js";
10
12
 
11
13
  // src/components/AccordionItemGroup.tsx
12
14
  import { css } from "@cerberus/styled-system/css";
@@ -36,4 +38,4 @@ function AccordionItemGroup(props) {
36
38
  export {
37
39
  AccordionItemGroup
38
40
  };
39
- //# sourceMappingURL=chunk-KWJ5FKX7.js.map
41
+ //# sourceMappingURL=chunk-JQCRDZNI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/AccordionItemGroup.tsx"],"sourcesContent":["import { Accordion as ArkAccordion } from '@ark-ui/react'\nimport { type AccordionVariantProps } from '@cerberus/styled-system/recipes'\nimport type { PropsWithChildren } from 'react'\nimport { Show } from './Show'\nimport {\n AccordionItem,\n AccordionItemContent,\n AccordionItemTrigger,\n} from './Accordion'\nimport { css } from '@cerberus/styled-system/css'\nimport { AccordionItemIndicator } from './Accordion.client'\n\n/**\n * This module contains an abstraction of the AccordionItem components.\n * @module\n */\n\nexport interface AccordionItemGroupBaseProps extends ArkAccordion.ItemProps {\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}\nexport type AccordionItemGroupProps = AccordionItemGroupBaseProps &\n AccordionVariantProps\n\n/**\n * A grouped item for the Accordion component.\n * @definition [ARK docs](https://ark-ui.com/react/docs/components/accordion)\n * @definition [Accordion docs](https://cerberus.digitalu.design/react/accordion)\n * @example\n * ```tsx\n * <Accordion>\n * <AccordionItemGroup heading=\"Accordion Item 1\" value=\"one\">\n * Accordion Item 1 content\n * </AccordionItemGroup>\n * </Accordion>\n * ```\n */\nexport function AccordionItemGroup(\n props: PropsWithChildren<AccordionItemGroupProps>,\n) {\n const {\n size,\n heading,\n children,\n indicatorPosition = 'end',\n ...itemProps\n } = props\n const triggerStyles =\n indicatorPosition === 'start'\n ? {\n gap: 'md',\n justifyContent: 'flex-start',\n }\n : undefined\n\n return (\n <AccordionItem {...itemProps}>\n <AccordionItemTrigger className={css(triggerStyles)} size={size}>\n <Show when={indicatorPosition === 'start'}>\n <AccordionItemIndicator size={size} />\n </Show>\n\n {heading}\n\n <Show when={indicatorPosition === 'end'}>\n <AccordionItemIndicator size={size} />\n </Show>\n </AccordionItemTrigger>\n\n <AccordionItemContent size={size}>{children}</AccordionItemContent>\n </AccordionItem>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AASA,SAAS,WAAW;AAsDd,SAEI,KAFJ;AApBC,SAAS,mBACd,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,gBACJ,sBAAsB,UAClB;AAAA,IACE,KAAK;AAAA,IACL,gBAAgB;AAAA,EAClB,IACA;AAEN,SACE,qBAAC,iBAAe,GAAG,WACjB;AAAA,yBAAC,wBAAqB,WAAW,IAAI,aAAa,GAAG,MACnD;AAAA,0BAAC,QAAK,MAAM,sBAAsB,SAChC,8BAAC,0BAAuB,MAAY,GACtC;AAAA,MAEC;AAAA,MAED,oBAAC,QAAK,MAAM,sBAAsB,OAChC,8BAAC,0BAAuB,MAAY,GACtC;AAAA,OACF;AAAA,IAEA,oBAAC,wBAAqB,MAAa,UAAS;AAAA,KAC9C;AAEJ;","names":[]}
@@ -0,0 +1,9 @@
1
+ // src/config/index.ts
2
+ function makeSystemConfig(options) {
3
+ return options;
4
+ }
5
+
6
+ export {
7
+ makeSystemConfig
8
+ };
9
+ //# sourceMappingURL=chunk-KDDPAJMR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/config/index.ts"],"sourcesContent":["import type { SystemConfig } from './types'\n\n/**\n * Create a system configuration object to be used on the CerberusProvider.\n * @param options The system configuration options you want to customize.\n * @returns A CerberusProvider-compatible system configuration object.\n * @example\n * ```tsx\n * const icons = defineIcons({\n * accordionIndicator: MyAccordionIndicatorIcon,\n * ...\n * })\n * const config = makeSystemConfig({\n * icons,\n * })\n *\n * // In your app\n * <CerberusProvider config={config}>\n * <App />\n * </CerberusProvider>\n * ```\n */\nexport function makeSystemConfig(options: SystemConfig): SystemConfig {\n return options\n}\n\nexport * from './defineIcons'\nexport * from './types'\n"],"mappings":";AAsBO,SAAS,iBAAiB,SAAqC;AACpE,SAAO;AACT;","names":[]}
@@ -1,9 +1,9 @@
1
+ import {
2
+ useCerberusContext
3
+ } from "./chunk-GITT5645.js";
1
4
  import {
2
5
  trapFocus
3
6
  } from "./chunk-JIZQFTW6.js";
4
- import {
5
- $cerberusIcons
6
- } from "./chunk-QMF5ZNDG.js";
7
7
 
8
8
  // src/components/Notification.tsx
9
9
  import { cx } from "@cerberus/styled-system/css";
@@ -16,9 +16,10 @@ import {
16
16
  } from "react";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
18
18
  function MatchNotificationIcon(props) {
19
+ const { icons } = useCerberusContext();
19
20
  const palette = props.palette || "info";
20
21
  const key = `${palette}Notification`;
21
- const Icon = $cerberusIcons[key];
22
+ const Icon = icons[key];
22
23
  return /* @__PURE__ */ jsx(Icon, {});
23
24
  }
24
25
  function Notification(props) {
@@ -26,7 +27,8 @@ function Notification(props) {
26
27
  const ref = useRef(null);
27
28
  const onKeyDown = trapFocus(ref);
28
29
  const styles = notification({ palette });
29
- const { close: CloseIcon } = $cerberusIcons;
30
+ const { icons } = useCerberusContext();
31
+ const { close: CloseIcon } = icons;
30
32
  return /* @__PURE__ */ jsxs(
31
33
  "dialog",
32
34
  {
@@ -72,4 +74,4 @@ function Notification(props) {
72
74
  export {
73
75
  Notification
74
76
  };
75
- //# sourceMappingURL=chunk-JJZQGR7A.js.map
77
+ //# sourceMappingURL=chunk-KF35CYT4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Notification.tsx"],"sourcesContent":["'use client'\n\nimport { cx } from '@cerberus/styled-system/css'\nimport { hstack, vstack } from '@cerberus/styled-system/patterns'\nimport {\n notification,\n type NotificationVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport {\n useRef,\n type DialogHTMLAttributes,\n type PropsWithChildren,\n type MouseEvent,\n} from 'react'\nimport { trapFocus } from '../aria-helpers/trap-focus.aria'\nimport { useCerberusContext } from '../context/cerberus'\n\n/**\n * This module exports the Notification component.\n * @module\n */\n\nfunction MatchNotificationIcon(props: NotificationVariantProps) {\n const { icons } = useCerberusContext()\n const palette = (props.palette || 'info') as\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n const key = `${palette}Notification` as keyof typeof icons\n const Icon = icons[key]\n return <Icon />\n}\n\nexport interface NotificationBaseProps\n extends Omit<DialogHTMLAttributes<HTMLDialogElement>, 'onClose'> {\n /**\n * The unique id of the notification. Required for the onClose callback.\n */\n id: string\n /**\n * Called when the close button is clicked.\n */\n onClose?: (e: MouseEvent<HTMLButtonElement>) => void\n}\nexport type NotificationProps = NotificationBaseProps & NotificationVariantProps\n\n/**\n * A static Notification component that displays a message to the user. This\n * is typically only used when not utilizing the NotificationCenter.\n * @see https://cerberus.digitalu.design/react/notification\n * @memberof module:NotificationCenter\n * @example\n * ```tsx\n * <Notification id=\"info:1\" open>\n * <NotificationHeading>Info Notification</NotificationHeading>\n * <NotificationDescription>\n * This is a description with a <a href=\"#\">link</a> in the message.\n * </NotificationDescription>\n * </Notification>\n * ```\n */\nexport function Notification(props: PropsWithChildren<NotificationProps>) {\n const { children, palette, onClose, ...nativeProps } = props\n const ref = useRef<HTMLDialogElement>(null)\n const onKeyDown = trapFocus(ref)\n const styles = notification({ palette })\n\n const { icons } = useCerberusContext()\n const { close: CloseIcon } = icons\n\n return (\n <dialog\n {...nativeProps}\n className={cx(\n nativeProps.className,\n hstack({\n position: 'relative',\n gap: '4',\n }),\n styles.dialog,\n )}\n onKeyDown={onKeyDown}\n ref={ref}\n >\n <span className={styles.icon}>\n <MatchNotificationIcon palette={palette} />\n </span>\n\n <div\n className={vstack({\n alignItems: 'flex-start',\n gap: '0',\n py: '2',\n })}\n >\n {children}\n </div>\n\n <button\n aria-label=\"Close\"\n className={styles.close}\n onClick={onClose}\n value={props.id}\n >\n <CloseIcon />\n </button>\n </dialog>\n )\n}\n"],"mappings":";;;;;;;;AAEA,SAAS,UAAU;AACnB,SAAS,QAAQ,cAAc;AAC/B;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAIK;AAkBE,cAyCL,YAzCK;AATT,SAAS,sBAAsB,OAAiC;AAC9D,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,UAAW,MAAM,WAAW;AAKlC,QAAM,MAAM,GAAG,OAAO;AACtB,QAAM,OAAO,MAAM,GAAG;AACtB,SAAO,oBAAC,QAAK;AACf;AA8BO,SAAS,aAAa,OAA6C;AACxE,QAAM,EAAE,UAAU,SAAS,SAAS,GAAG,YAAY,IAAI;AACvD,QAAM,MAAM,OAA0B,IAAI;AAC1C,QAAM,YAAY,UAAU,GAAG;AAC/B,QAAM,SAAS,aAAa,EAAE,QAAQ,CAAC;AAEvC,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,OAAO,UAAU,IAAI;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,UACL,UAAU;AAAA,UACV,KAAK;AAAA,QACP,CAAC;AAAA,QACD,OAAO;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,4BAAC,UAAK,WAAW,OAAO,MACtB,8BAAC,yBAAsB,SAAkB,GAC3C;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,OAAO;AAAA,cAChB,YAAY;AAAA,cACZ,KAAK;AAAA,cACL,IAAI;AAAA,YACN,CAAC;AAAA,YAEA;AAAA;AAAA,QACH;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,cAAW;AAAA,YACX,WAAW,OAAO;AAAA,YAClB,SAAS;AAAA,YACT,OAAO,MAAM;AAAA,YAEb,8BAAC,aAAU;AAAA;AAAA,QACb;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -5,8 +5,8 @@ import {
5
5
  Show
6
6
  } from "./chunk-BUVVRQLZ.js";
7
7
  import {
8
- $cerberusIcons
9
- } from "./chunk-QMF5ZNDG.js";
8
+ useCerberusContext
9
+ } from "./chunk-GITT5645.js";
10
10
 
11
11
  // src/components/Select.tsx
12
12
  import { cx } from "@cerberus/styled-system/css";
@@ -18,7 +18,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
18
18
  function Select(props) {
19
19
  const { describedBy, size, ...nativeProps } = props;
20
20
  const { invalid, ...fieldStates } = useFieldContext();
21
- const { invalid: InvalidIcon, selectArrow: SelectArrow } = $cerberusIcons;
21
+ const { icons } = useCerberusContext();
22
+ const { invalid: InvalidIcon, selectArrow: SelectArrow } = icons;
22
23
  const styles = select({
23
24
  size
24
25
  });
@@ -65,4 +66,4 @@ export {
65
66
  Select,
66
67
  Option
67
68
  };
68
- //# sourceMappingURL=chunk-XOROL3JY.js.map
69
+ //# sourceMappingURL=chunk-KKHL3ZO4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Select.tsx"],"sourcesContent":["'use client'\n\nimport { cx } from '@cerberus/styled-system/css'\nimport { hstack } from '@cerberus/styled-system/patterns'\nimport {\n select,\n type SelectVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport type { OptionHTMLAttributes, SelectHTMLAttributes } from 'react'\nimport { useFieldContext } from '../context/field'\nimport { useCerberusContext } from '../context/cerberus'\nimport { Show } from './Show'\n\n/**\n * This module contains the select components.\n * @module\n */\n\nexport type SelectProps = Omit<\n SelectHTMLAttributes<HTMLSelectElement>,\n 'size'\n> &\n SelectVariantProps & {\n /**\n * The unique id of the select element. Required for accessibility.\n */\n id: string\n /**\n * The id of the FieldMessage that describes the select element.\n */\n describedBy?: string\n }\n\n/**\n * Used to allow users to select a single option from a list of options.\n * @see https://cerberus.digitalu.design/react/select\n * @memberof module:Field\n * @example\n * ```tsx\n * <Field>\n * <Select describedby=\"help:fruit\" id=\"fruit\">\n * <Option value=\"\">Choose option</Option>\n * <Option value=\"one\">Option 1</Option>\n * <Option value=\"two\">Option 2</Option>\n * <Option value=\"three\">Option 3</Option>\n * </Select>\n * </Field>\n * ```\n */\nexport function Select(props: SelectProps) {\n const { describedBy, size, ...nativeProps } = props\n const { invalid, ...fieldStates } = useFieldContext()\n\n const { icons } = useCerberusContext()\n const { invalid: InvalidIcon, selectArrow: SelectArrow } = icons\n\n const styles = select({\n size,\n })\n\n return (\n <div className={styles.root}>\n <select\n {...nativeProps}\n {...fieldStates}\n {...(describedBy && { 'aria-describedby': describedBy })}\n {...(invalid && { 'aria-invalid': true })}\n className={styles.input}\n />\n <span\n className={cx(\n styles.iconStack,\n hstack({\n gap: '2',\n }),\n )}\n >\n <Show when={invalid}>\n <span\n {...(invalid && { 'data-invalid': true })}\n className={styles.stateIcon}\n >\n <InvalidIcon />\n </span>\n </Show>\n <span className={styles.arrowIcon}>\n <SelectArrow />\n </span>\n </span>\n </div>\n )\n}\n\n// We only export this component for consistency with the other components\n\nexport type OptionProps = OptionHTMLAttributes<HTMLOptionElement>\n\n/**\n * Option component\n * props: OptionHTMLAttributes<HTMLOptionElement>\n * @example\n * ```tsx\n * <Option value=\"one\">Option 1</Option>\n * ```\n */\nexport function Option(props: OptionProps) {\n return <option {...props} />\n}\n"],"mappings":";;;;;;;;;;;AAEA,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,OAEK;AAuDD,cAOA,YAPA;AAbC,SAAS,OAAO,OAAoB;AACzC,QAAM,EAAE,aAAa,MAAM,GAAG,YAAY,IAAI;AAC9C,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI,gBAAgB;AAEpD,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,SAAS,aAAa,aAAa,YAAY,IAAI;AAE3D,QAAM,SAAS,OAAO;AAAA,IACpB;AAAA,EACF,CAAC;AAED,SACE,qBAAC,SAAI,WAAW,OAAO,MACrB;AAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAI,eAAe,EAAE,oBAAoB,YAAY;AAAA,QACrD,GAAI,WAAW,EAAE,gBAAgB,KAAK;AAAA,QACvC,WAAW,OAAO;AAAA;AAAA,IACpB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,OAAO;AAAA,UACP,OAAO;AAAA,YACL,KAAK;AAAA,UACP,CAAC;AAAA,QACH;AAAA,QAEA;AAAA,8BAAC,QAAK,MAAM,SACV;AAAA,YAAC;AAAA;AAAA,cACE,GAAI,WAAW,EAAE,gBAAgB,KAAK;AAAA,cACvC,WAAW,OAAO;AAAA,cAElB,8BAAC,eAAY;AAAA;AAAA,UACf,GACF;AAAA,UACA,oBAAC,UAAK,WAAW,OAAO,WACtB,8BAAC,eAAY,GACf;AAAA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAcO,SAAS,OAAO,OAAoB;AACzC,SAAO,oBAAC,YAAQ,GAAG,OAAO;AAC5B;","names":[]}
@@ -5,8 +5,8 @@ import {
5
5
  Show
6
6
  } from "./chunk-BUVVRQLZ.js";
7
7
  import {
8
- $cerberusIcons
9
- } from "./chunk-QMF5ZNDG.js";
8
+ useCerberusContext
9
+ } from "./chunk-GITT5645.js";
10
10
 
11
11
  // src/components/Input.tsx
12
12
  import { input } from "@cerberus/styled-system/recipes";
@@ -17,7 +17,8 @@ function Input(props) {
17
17
  const inputStyles = input({ size });
18
18
  const { invalid, ...fieldStates } = useFieldContext();
19
19
  const hasEndIcon = Boolean(endIcon);
20
- const { invalid: InvalidIcon } = $cerberusIcons;
20
+ const { icons } = useCerberusContext();
21
+ const { invalid: InvalidIcon } = icons;
21
22
  return /* @__PURE__ */ jsxs("div", { className: inputStyles.root, children: [
22
23
  /* @__PURE__ */ jsx(Show, { when: Boolean(startIcon), children: /* @__PURE__ */ jsx("span", { className: inputStyles.startIcon, children: startIcon }) }),
23
24
  /* @__PURE__ */ jsx(
@@ -39,4 +40,4 @@ function Input(props) {
39
40
  export {
40
41
  Input
41
42
  };
42
- //# sourceMappingURL=chunk-U36UZJGZ.js.map
43
+ //# sourceMappingURL=chunk-MZ3UCDUL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Input.tsx"],"sourcesContent":["'use client'\n\nimport type { InputHTMLAttributes, ReactNode } from 'react'\nimport { input, type InputVariantProps } from '@cerberus/styled-system/recipes'\nimport { cx } from '@cerberus/styled-system/css'\nimport { useFieldContext } from '../context/field'\nimport { useCerberusContext } from '../context/cerberus'\nimport { Show } from './Show'\n\nexport interface InputBaseProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'id' | 'size'> {\n /**\n * The id of the FieldMessage component used to describe the input. Required for accessibility.\n */\n describedBy?: string\n /**\n * The unique identifier for the input element. Required for accessibility.\n */\n id: string\n /**\n * An optional icon to display at the start of the input.\n */\n startIcon?: ReactNode\n /**\n * An optional icon to display at the end of the input.\n */\n endIcon?: ReactNode\n}\nexport type InputProps = InputBaseProps & InputVariantProps\n\n/**\n * A component that allows the user to input text. Must be wrapped in a Field\n * component to keep track of the state for entire group of elements related to\n * the field.\n * @see https://cerberus.digitalu.design/react/input\n */\nexport function Input(props: InputProps) {\n const { describedBy, size, startIcon, endIcon, ...nativeProps } = props\n const inputStyles = input({ size })\n const { invalid, ...fieldStates } = useFieldContext()\n const hasEndIcon = Boolean(endIcon)\n\n const { icons } = useCerberusContext()\n const { invalid: InvalidIcon } = icons\n\n return (\n <div className={inputStyles.root}>\n <Show when={Boolean(startIcon)}>\n <span className={inputStyles.startIcon}>{startIcon}</span>\n </Show>\n\n <input\n {...nativeProps}\n {...fieldStates}\n {...(describedBy && { 'aria-describedby': describedBy })}\n {...(invalid && { 'aria-invalid': true })}\n data-start-icon={Boolean(startIcon)}\n className={cx('peer', nativeProps.className, inputStyles.input)}\n />\n\n <Show when={invalid}>\n <InvalidIcon className={inputStyles.icon} />\n </Show>\n <Show when={hasEndIcon && !invalid}>\n <span className={inputStyles.icon}>{endIcon}</span>\n </Show>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAGA,SAAS,aAAqC;AAC9C,SAAS,UAAU;AA0Cf,SAEI,KAFJ;AAVG,SAAS,MAAM,OAAmB;AACvC,QAAM,EAAE,aAAa,MAAM,WAAW,SAAS,GAAG,YAAY,IAAI;AAClE,QAAM,cAAc,MAAM,EAAE,KAAK,CAAC;AAClC,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI,gBAAgB;AACpD,QAAM,aAAa,QAAQ,OAAO;AAElC,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,SAAS,YAAY,IAAI;AAEjC,SACE,qBAAC,SAAI,WAAW,YAAY,MAC1B;AAAA,wBAAC,QAAK,MAAM,QAAQ,SAAS,GAC3B,8BAAC,UAAK,WAAW,YAAY,WAAY,qBAAU,GACrD;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAI,eAAe,EAAE,oBAAoB,YAAY;AAAA,QACrD,GAAI,WAAW,EAAE,gBAAgB,KAAK;AAAA,QACvC,mBAAiB,QAAQ,SAAS;AAAA,QAClC,WAAW,GAAG,QAAQ,YAAY,WAAW,YAAY,KAAK;AAAA;AAAA,IAChE;AAAA,IAEA,oBAAC,QAAK,MAAM,SACV,8BAAC,eAAY,WAAW,YAAY,MAAM,GAC5C;AAAA,IACA,oBAAC,QAAK,MAAM,cAAc,CAAC,SACzB,8BAAC,UAAK,WAAW,YAAY,MAAO,mBAAQ,GAC9C;AAAA,KACF;AAEJ;","names":[]}
@@ -5,8 +5,8 @@ import {
5
5
  Show
6
6
  } from "./chunk-BUVVRQLZ.js";
7
7
  import {
8
- $cerberusIcons
9
- } from "./chunk-QMF5ZNDG.js";
8
+ useCerberusContext
9
+ } from "./chunk-GITT5645.js";
10
10
 
11
11
  // src/components/Checkbox.tsx
12
12
  import {
@@ -19,7 +19,14 @@ function Checkbox(props) {
19
19
  const { describedBy, size, checked, mixed, ...nativeProps } = props;
20
20
  const { invalid, ...fieldStates } = useFieldContext();
21
21
  const styles = checkbox({ size });
22
- const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = $cerberusIcons;
22
+ const { icons } = useCerberusContext();
23
+ const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons;
24
+ if (!CheckIcon) {
25
+ throw new Error("The CerberusProvider is missing the checkbox icon.");
26
+ }
27
+ if (!IndeterminateIcon) {
28
+ throw new Error("The CerberusProvider is missing the indeterminate icon.");
29
+ }
23
30
  return /* @__PURE__ */ jsxs(
24
31
  "div",
25
32
  {
@@ -53,4 +60,4 @@ function Checkbox(props) {
53
60
  export {
54
61
  Checkbox
55
62
  };
56
- //# sourceMappingURL=chunk-T2JOPPGL.js.map
63
+ //# sourceMappingURL=chunk-N24COMHJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Checkbox.tsx"],"sourcesContent":["'use client'\n\nimport {\n checkbox,\n type CheckboxVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport { vstack } from '@cerberus/styled-system/patterns'\nimport { cx } from '@cerberus/styled-system/css'\nimport type { InputHTMLAttributes } from 'react'\nimport { Show } from './Show'\nimport { useFieldContext } from '../context/field'\nimport { useCerberusContext } from '../context/cerberus'\n\n/**\n * This module contains the Checkbox component.\n * @module\n */\n\nexport type CheckboxProps = CheckboxVariantProps &\n Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'id'> & {\n /**\n * The id of the FieldMessage element describing the Checkbox.\n */\n describedBy?: string\n /**\n * The unique identifier for the checkbox. Required for accessibility.\n */\n id: string\n /**\n * Used to display a mixed checked state.\n * @description [ARIA Mixed State](https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/examples/checkbox-mixed/)\n */\n mixed?: boolean\n }\n\n/**\n * Checkbox component\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [ARIA Forms](https://www.a11yproject.com/checklist/#forms)\n * @see https://cerberus.digitalu.design/react/checkbox\n * @example\n * ```tsx\n * <Field>\n * <Checkbox id=\"legal\" checked={checked.legal} onChange={handleChange} />\n * </Field>\n * ```\n */\nexport function Checkbox(props: CheckboxProps) {\n const { describedBy, size, checked, mixed, ...nativeProps } = props\n const { invalid, ...fieldStates } = useFieldContext()\n const styles = checkbox({ size })\n const { icons } = useCerberusContext()\n const { checkbox: CheckIcon, indeterminate: IndeterminateIcon } = icons\n\n if (!CheckIcon) {\n throw new Error('The CerberusProvider is missing the checkbox icon.')\n }\n if (!IndeterminateIcon) {\n throw new Error('The CerberusProvider is missing the indeterminate icon.')\n }\n\n return (\n <div\n className={cx(\n styles.root,\n vstack({\n gap: '0',\n justify: 'center',\n }),\n )}\n >\n <input\n {...nativeProps}\n {...fieldStates}\n {...(describedBy && { 'aria-describedby': describedBy })}\n {...(invalid && { 'aria-invalid': true })}\n {...(mixed && { 'aria-checked': 'mixed' })}\n className={cx('peer', nativeProps.className, styles.input)}\n type=\"checkbox\"\n />\n <Show when={checked && !mixed}>\n <span className={styles.icon}>\n <CheckIcon />\n </span>\n </Show>\n <Show when={mixed}>\n <span className={styles.icon}>\n <IndeterminateIcon />\n </span>\n </Show>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAEA;AAAA,EACE;AAAA,OAEK;AACP,SAAS,cAAc;AACvB,SAAS,UAAU;AAuDf,SASE,KATF;AAfG,SAAS,SAAS,OAAsB;AAC7C,QAAM,EAAE,aAAa,MAAM,SAAS,OAAO,GAAG,YAAY,IAAI;AAC9D,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI,gBAAgB;AACpD,QAAM,SAAS,SAAS,EAAE,KAAK,CAAC;AAChC,QAAM,EAAE,MAAM,IAAI,mBAAmB;AACrC,QAAM,EAAE,UAAU,WAAW,eAAe,kBAAkB,IAAI;AAElE,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,MAAI,CAAC,mBAAmB;AACtB,UAAM,IAAI,MAAM,yDAAyD;AAAA,EAC3E;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,UACL,KAAK;AAAA,UACL,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG;AAAA,YACH,GAAG;AAAA,YACH,GAAI,eAAe,EAAE,oBAAoB,YAAY;AAAA,YACrD,GAAI,WAAW,EAAE,gBAAgB,KAAK;AAAA,YACtC,GAAI,SAAS,EAAE,gBAAgB,QAAQ;AAAA,YACxC,WAAW,GAAG,QAAQ,YAAY,WAAW,OAAO,KAAK;AAAA,YACzD,MAAK;AAAA;AAAA,QACP;AAAA,QACA,oBAAC,QAAK,MAAM,WAAW,CAAC,OACtB,8BAAC,UAAK,WAAW,OAAO,MACtB,8BAAC,aAAU,GACb,GACF;AAAA,QACA,oBAAC,QAAK,MAAM,OACV,8BAAC,UAAK,WAAW,OAAO,MACtB,8BAAC,qBAAkB,GACrB,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Notification
3
- } from "./chunk-JJZQGR7A.js";
3
+ } from "./chunk-KF35CYT4.js";
4
4
  import {
5
5
  NotificationDescription
6
6
  } from "./chunk-UXY3KCC3.js";
@@ -159,4 +159,4 @@ export {
159
159
  NotificationCenter,
160
160
  useNotificationCenter
161
161
  };
162
- //# sourceMappingURL=chunk-CVTON5DQ.js.map
162
+ //# sourceMappingURL=chunk-N3L3PEMF.js.map
@@ -0,0 +1,68 @@
1
+ import {
2
+ MatchAvatar
3
+ } from "./chunk-ISCJ542I.js";
4
+ import {
5
+ Show
6
+ } from "./chunk-BUVVRQLZ.js";
7
+
8
+ // src/components/Admonition.tsx
9
+ import {
10
+ admonition
11
+ } from "@cerberus/styled-system/recipes";
12
+ import { cx } from "@cerberus/styled-system/css";
13
+ import { hstack } from "@cerberus/styled-system/patterns";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ function Admonition(props) {
16
+ const { children, palette = "page", usage, icon, ...nativeProps } = props;
17
+ return /* @__PURE__ */ jsxs(
18
+ "aside",
19
+ {
20
+ ...nativeProps,
21
+ className: cx(
22
+ nativeProps.className,
23
+ hstack({
24
+ gap: "md",
25
+ w: "full"
26
+ }),
27
+ admonition({ palette, usage }).root
28
+ ),
29
+ children: [
30
+ /* @__PURE__ */ jsx(Show, { when: Boolean(icon), fallback: /* @__PURE__ */ jsx(MatchAvatar, { palette }), children: icon }),
31
+ /* @__PURE__ */ jsx("div", { children })
32
+ ]
33
+ }
34
+ );
35
+ }
36
+ function AdmonitionHeading(props) {
37
+ const { palette, usage, ...nativeProps } = props;
38
+ return /* @__PURE__ */ jsx(
39
+ "p",
40
+ {
41
+ ...nativeProps,
42
+ className: cx(
43
+ nativeProps.className,
44
+ admonition({ palette, usage }).heading
45
+ )
46
+ }
47
+ );
48
+ }
49
+ function AdmonitionDescription(props) {
50
+ const { palette, usage, ...nativeProps } = props;
51
+ return /* @__PURE__ */ jsx(
52
+ "p",
53
+ {
54
+ ...nativeProps,
55
+ className: cx(
56
+ nativeProps.className,
57
+ admonition({ palette, usage }).description
58
+ )
59
+ }
60
+ );
61
+ }
62
+
63
+ export {
64
+ Admonition,
65
+ AdmonitionHeading,
66
+ AdmonitionDescription
67
+ };
68
+ //# sourceMappingURL=chunk-NJSETNRL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Admonition.tsx"],"sourcesContent":["import {\n admonition,\n type AdmonitionVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport { cx } from '@cerberus/styled-system/css'\nimport { hstack } from '@cerberus/styled-system/patterns'\nimport type { HTMLAttributes, ReactNode } from 'react'\nimport { Show } from './Show'\nimport { MatchAvatar } from './Admonition.client'\n\n/**\n * This module provides a set of components for creating admonitions.\n * @module Admonition\n */\n\nexport type AdmonitionProps = HTMLAttributes<HTMLDivElement> &\n AdmonitionVariantProps & {\n /**\n * One off replacement for the icon.\n */\n icon?: ReactNode\n }\n\n/**\n * The `Admonition` component is used to create an admonition.\n * @example\n * ```tsx\n * <Admonition palette=\"page\">\n * <AdmonitionHeading palette=\"page\">Page</AdmonitionHeading>\n * <AdmonitionDescription palette=\"page\">\n * This is a page admonition.\n * </AdmonitionDescription>\n * </Admonition>\n * ```\n * @see https://cerberus.digitalu.design/react/admonition\n */\nexport function Admonition(props: AdmonitionProps) {\n const { children, palette = 'page', usage, icon, ...nativeProps } = props\n return (\n <aside\n {...nativeProps}\n className={cx(\n nativeProps.className,\n hstack({\n gap: 'md',\n w: 'full',\n }),\n admonition({ palette, usage }).root,\n )}\n >\n <Show when={Boolean(icon)} fallback={<MatchAvatar palette={palette} />}>\n {icon}\n </Show>\n <div>{children}</div>\n </aside>\n )\n}\n\nexport type AdmonitionHeadingProps = HTMLAttributes<HTMLParagraphElement> &\n AdmonitionVariantProps\n\n/**\n * The `AdmonitionHeading` component is used to create a heading within an\n * admonition.\n * @example\n * ```tsx\n * <Admonition palette=\"page\">\n * <AdmonitionHeading palette=\"page\">Page</AdmonitionHeading>\n * <AdmonitionDescription palette=\"page\">\n * This is a page admonition.\n * </AdmonitionDescription>\n * </Admonition>\n * ```\n * @see https://cerberus.digitalu.design/react/admonition\n */\nexport function AdmonitionHeading(props: AdmonitionHeadingProps) {\n const { palette, usage, ...nativeProps } = props\n return (\n <p\n {...nativeProps}\n className={cx(\n nativeProps.className,\n admonition({ palette, usage }).heading,\n )}\n />\n )\n}\n\nexport type AdmonitionDescriptionProps = HTMLAttributes<HTMLParagraphElement> &\n AdmonitionVariantProps\n\n/**\n * The `AdmonitionDescription` component is used to create a description within\n * an admonition.\n * @example\n * ```tsx\n * <Admonition palette=\"page\">\n * <AdmonitionHeading palette=\"page\">Page</AdmonitionHeading>\n * <AdmonitionDescription palette=\"page\">\n * This is a page admonition.\n * </AdmonitionDescription>\n * </Admonition>\n * ```\n * @see https://cerberus.digitalu.design/react/admonition\n */\nexport function AdmonitionDescription(props: AdmonitionDescriptionProps) {\n const { palette, usage, ...nativeProps } = props\n return (\n <p\n {...nativeProps}\n className={cx(\n nativeProps.className,\n admonition({ palette, usage }).description,\n )}\n />\n )\n}\n"],"mappings":";;;;;;;;AAAA;AAAA,EACE;AAAA,OAEK;AACP,SAAS,UAAU;AACnB,SAAS,cAAc;AAkCnB,SAWuC,KAXvC;AAHG,SAAS,WAAW,OAAwB;AACjD,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,MAAM,GAAG,YAAY,IAAI;AACpE,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,UACL,KAAK;AAAA,UACL,GAAG;AAAA,QACL,CAAC;AAAA,QACD,WAAW,EAAE,SAAS,MAAM,CAAC,EAAE;AAAA,MACjC;AAAA,MAEA;AAAA,4BAAC,QAAK,MAAM,QAAQ,IAAI,GAAG,UAAU,oBAAC,eAAY,SAAkB,GACjE,gBACH;AAAA,QACA,oBAAC,SAAK,UAAS;AAAA;AAAA;AAAA,EACjB;AAEJ;AAmBO,SAAS,kBAAkB,OAA+B;AAC/D,QAAM,EAAE,SAAS,OAAO,GAAG,YAAY,IAAI;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,WAAW,EAAE,SAAS,MAAM,CAAC,EAAE;AAAA,MACjC;AAAA;AAAA,EACF;AAEJ;AAmBO,SAAS,sBAAsB,OAAmC;AACvE,QAAM,EAAE,SAAS,OAAO,GAAG,YAAY,IAAI;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,WAAW,EAAE,SAAS,MAAM,CAAC,EAAE;AAAA,MACjC;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,3 +1,12 @@
1
+ import {
2
+ ModalHeader
3
+ } from "./chunk-XY6WL55R.js";
4
+ import {
5
+ ModalHeading
6
+ } from "./chunk-2UXE5PDG.js";
7
+ import {
8
+ Input
9
+ } from "./chunk-MZ3UCDUL.js";
1
10
  import {
2
11
  Label
3
12
  } from "./chunk-NMF2HYWO.js";
@@ -7,39 +16,30 @@ import {
7
16
  import {
8
17
  ModalDescription
9
18
  } from "./chunk-Q7BRMIBR.js";
10
- import {
11
- ModalHeader
12
- } from "./chunk-XY6WL55R.js";
13
- import {
14
- ModalHeading
15
- } from "./chunk-2UXE5PDG.js";
16
- import {
17
- Input
18
- } from "./chunk-U36UZJGZ.js";
19
19
  import {
20
20
  Portal
21
21
  } from "./chunk-IQJDVFPP.js";
22
22
  import {
23
- Field
24
- } from "./chunk-UZDVOIW5.js";
23
+ Avatar
24
+ } from "./chunk-GCQMH4QA.js";
25
25
  import {
26
26
  Button
27
27
  } from "./chunk-EXGKZGML.js";
28
28
  import {
29
- Avatar
30
- } from "./chunk-PVIMOXSO.js";
29
+ Field
30
+ } from "./chunk-UZDVOIW5.js";
31
31
  import {
32
32
  Show
33
33
  } from "./chunk-BUVVRQLZ.js";
34
- import {
35
- trapFocus
36
- } from "./chunk-JIZQFTW6.js";
37
- import {
38
- $cerberusIcons
39
- } from "./chunk-QMF5ZNDG.js";
40
34
  import {
41
35
  useModal
42
36
  } from "./chunk-KGQG5JGW.js";
37
+ import {
38
+ useCerberusContext
39
+ } from "./chunk-GITT5645.js";
40
+ import {
41
+ trapFocus
42
+ } from "./chunk-JIZQFTW6.js";
43
43
 
44
44
  // src/context/prompt-modal.tsx
45
45
  import {
@@ -60,7 +60,8 @@ function PromptModal(props) {
60
60
  const [content, setContent] = useState(null);
61
61
  const [inputValue, setInputValue] = useState("");
62
62
  const focusTrap = trapFocus(modalRef);
63
- const PromptIcon = $cerberusIcons.promptModal;
63
+ const { icons } = useCerberusContext();
64
+ const { promptModal: PromptIcon } = icons;
64
65
  const isValid = useMemo(
65
66
  () => inputValue === content?.key,
66
67
  [inputValue, content]
@@ -240,4 +241,4 @@ export {
240
241
  PromptModal,
241
242
  usePromptModal
242
243
  };
243
- //# sourceMappingURL=chunk-XXWR7UGH.js.map
244
+ //# sourceMappingURL=chunk-QKZZHZL4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/prompt-modal.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { Portal } from '../components/Portal'\nimport { Button } from '../components/Button'\nimport { css } from '@cerberus/styled-system/css'\nimport { hstack, vstack } from '@cerberus/styled-system/patterns'\nimport { trapFocus } from '../aria-helpers/trap-focus.aria'\nimport { Input } from '../components/Input'\nimport { Field } from './field'\nimport { Label } from '../components/Label'\nimport { Show } from '../components/Show'\nimport { useModal } from '../hooks/useModal'\nimport { Modal } from '../components/Modal'\nimport { ModalHeader } from '../components/ModalHeader'\nimport { ModalHeading } from '../components/ModalHeading'\nimport { ModalDescription } from '../components/ModalDescription'\nimport { Avatar } from '../components/Avatar'\nimport { useCerberusContext } from './cerberus'\n\n/**\n * This module provides a context and hook for the prompt modal.\n * @module PromptModal\n */\n\nexport interface ShowPromptModalOptions {\n /**\n * The kind of prompt modal to show.\n * @default 'non-destructive'\n */\n kind?: 'destructive' | 'non-destructive'\n /**\n * The heading of the prompt modal.\n */\n heading: string\n /**\n * The description of the prompt modal.\n */\n description?: string\n /**\n * The key to confirm the action.\n */\n key: string\n /**\n * The text for the action button.\n */\n actionText: string\n /**\n * The text for the cancel button.\n */\n cancelText: string\n}\nexport type PromptShowResult =\n | ((value: string | PromiseLike<string>) => void)\n | null\n\nexport interface PromptModalValue {\n /**\n * The method to trigger the prompt modal.\n * @returns the value of the key if the action is confirmed.\n * @example\n * ```tsx\n * const accepted = await prompt.show({\n * kind: 'destructive',\n * heading: 'Delete channel?',\n * description:\n * 'This will permanently delete a channel on your account. There is no going back.',\n * key: CHANNEL_NAME,\n * actionText: 'Yes, delete channel',\n * cancelText: 'No, cancel',\n * })\n */\n show: (options: ShowPromptModalOptions) => Promise<string>\n}\n\nconst PromptModalContext = createContext<PromptModalValue | null>(null)\n\nexport type PromptModalProviderProps = PropsWithChildren<unknown>\n\n/**\n * Provides a prompt modal to the app.\n * @see https://cerberus.digitalu.design/react/prompt-modal\n * @example\n * ```tsx\n * // Wrap the Provider around the root of the feature.\n * <PromptModal>\n * <SomeFeatureSection />\n * </PromptModal>\n *\n * // Use the hook to show the prompt modal.\n * const prompt = usePromptModal()\n *\n * const handleClick = useCallback(async () => {\n * const accepted = await prompt.show({\n * kind: 'destructive',\n * heading: 'Delete channel?',\n * description:\n * 'This will permanently delete a channel on your account. There is no going back.',\n * key: CHANNEL_NAME,\n * actionText: 'Yes, delete channel',\n * cancelText: 'No, cancel',\n * })\n * // do something with accepted\n * }, [prompt])\n * ```\n */\nexport function PromptModal(\n props: PropsWithChildren<PromptModalProviderProps>,\n) {\n const { modalRef, show, close } = useModal()\n const resolveRef = useRef<PromptShowResult>(null)\n const [content, setContent] = useState<ShowPromptModalOptions | null>(null)\n const [inputValue, setInputValue] = useState<string>('')\n const focusTrap = trapFocus(modalRef)\n\n const { icons } = useCerberusContext()\n const { promptModal: PromptIcon } = icons\n\n const isValid = useMemo(\n () => inputValue === content?.key,\n [inputValue, content],\n )\n\n const palette = useMemo(\n () => (content?.kind === 'destructive' ? 'danger' : 'action'),\n [content],\n )\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.currentTarget.value)\n },\n [content],\n )\n\n const handleChoice = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const target = e.currentTarget as HTMLButtonElement\n if (target.value === 'true') {\n resolveRef.current?.(inputValue)\n }\n close()\n },\n [inputValue, close],\n )\n\n const handleShow = useCallback(\n (options: ShowPromptModalOptions) => {\n return new Promise<string>((resolve) => {\n setContent({ ...options, kind: options.kind || 'non-destructive' })\n show()\n resolveRef.current = resolve\n })\n },\n [show],\n )\n\n const value = useMemo(\n () => ({\n show: handleShow,\n }),\n [handleShow],\n )\n\n return (\n <PromptModalContext.Provider value={value}>\n {props.children}\n\n <Portal>\n <Modal onKeyDown={focusTrap} ref={modalRef}>\n <ModalHeader>\n <div\n className={hstack({\n justify: 'center',\n w: 'full',\n })}\n >\n <Show\n when={palette === 'danger'}\n fallback={\n <Avatar\n ariaLabel=\"\"\n gradient=\"charon-light\"\n icon={<PromptIcon size={24} />}\n src=\"\"\n />\n }\n >\n <Avatar\n ariaLabel=\"\"\n gradient=\"hades-dark\"\n icon={<PromptIcon size={24} />}\n src=\"\"\n />\n </Show>\n </div>\n <ModalHeading>{content?.heading}</ModalHeading>\n <ModalDescription>{content?.description}</ModalDescription>\n </ModalHeader>\n\n <div\n className={vstack({\n alignItems: 'flex-start',\n mt: '4',\n mb: '8',\n })}\n >\n <Field invalid={!isValid}>\n <Label\n className={css({\n gap: 1,\n justifyContent: 'flex-start',\n })}\n htmlFor=\"confirm\"\n size=\"md\"\n >\n Type\n <strong\n className={css({\n textTransform: 'uppercase',\n })}\n >\n {content?.key}\n </strong>\n to confirm\n </Label>\n <Input\n id=\"confirm\"\n name=\"confirm\"\n onChange={handleChange}\n type=\"text\"\n />\n </Field>\n </div>\n\n <div\n className={hstack({\n justifyContent: 'stretch',\n gap: '4',\n })}\n >\n <Button\n autoFocus\n className={css({\n w: '1/2',\n })}\n disabled={!isValid}\n name=\"confirm\"\n onClick={handleChoice}\n palette={palette}\n value=\"true\"\n >\n {content?.actionText}\n </Button>\n <Button\n className={css({\n w: '1/2',\n })}\n name=\"cancel\"\n onClick={handleChoice}\n usage=\"outlined\"\n value=\"false\"\n >\n {content?.cancelText}\n </Button>\n </div>\n </Modal>\n </Portal>\n </PromptModalContext.Provider>\n )\n}\n\n/**\n * Used to retrieve the context of the PromptModal provider.\n */\nexport function usePromptModal(): PromptModalValue {\n const context = useContext(PromptModalContext)\n if (context === null) {\n throw new Error('usePromptModal must be used within a PromptModal Provider')\n }\n return context\n}\n"],"mappings":"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","names":[]}