@cerberus-design/react 0.1.0 → 0.1.1-next-3a4c6c1

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 (189) hide show
  1. package/build/legacy/aria-helpers/nav-menu.aria.js +3 -7
  2. package/build/legacy/aria-helpers/nav-menu.aria.js.map +1 -1
  3. package/build/legacy/chunk-55J6XMHW.js +1 -0
  4. package/build/legacy/chunk-6YEAMVRY.js +82 -0
  5. package/build/legacy/chunk-6YEAMVRY.js.map +1 -0
  6. package/build/legacy/chunk-BPIYUAYS.js +26 -0
  7. package/build/legacy/chunk-BPIYUAYS.js.map +1 -0
  8. package/build/legacy/chunk-JA4IX7GN.js +48 -0
  9. package/build/legacy/chunk-JA4IX7GN.js.map +1 -0
  10. package/build/legacy/chunk-JF76VIL3.js +12 -0
  11. package/build/legacy/chunk-JF76VIL3.js.map +1 -0
  12. package/build/legacy/chunk-KETL4ZJK.js +33 -0
  13. package/build/legacy/chunk-KETL4ZJK.js.map +1 -0
  14. package/build/legacy/chunk-KJUCHZHV.js +51 -0
  15. package/build/legacy/chunk-KJUCHZHV.js.map +1 -0
  16. package/build/legacy/chunk-R4H3352X.js +16 -0
  17. package/build/legacy/chunk-R4H3352X.js.map +1 -0
  18. package/build/legacy/chunk-SXXWC6UD.js +83 -0
  19. package/build/legacy/chunk-SXXWC6UD.js.map +1 -0
  20. package/build/legacy/chunk-WSQTX34C.js +86 -0
  21. package/build/legacy/chunk-WSQTX34C.js.map +1 -0
  22. package/build/legacy/chunk-XFWARXLU.js +26 -0
  23. package/build/legacy/chunk-XFWARXLU.js.map +1 -0
  24. package/build/legacy/components/Button.js +3 -21
  25. package/build/legacy/components/Button.js.map +1 -1
  26. package/build/legacy/components/IconButton.js +3 -21
  27. package/build/legacy/components/IconButton.js.map +1 -1
  28. package/build/legacy/components/NavMenuLink.js +4 -40
  29. package/build/legacy/components/NavMenuLink.js.map +1 -1
  30. package/build/legacy/components/NavMenuList.js +6 -76
  31. package/build/legacy/components/NavMenuList.js.map +1 -1
  32. package/build/legacy/components/NavMenuTrigger.js +5 -72
  33. package/build/legacy/components/NavMenuTrigger.js.map +1 -1
  34. package/build/legacy/components/Show.js +3 -12
  35. package/build/legacy/components/Show.js.map +1 -1
  36. package/build/legacy/context/field.js +3 -27
  37. package/build/legacy/context/field.js.map +1 -1
  38. package/build/legacy/context/navMenu.js +3 -45
  39. package/build/legacy/context/navMenu.js.map +1 -1
  40. package/build/legacy/context/theme.js +6 -21
  41. package/build/legacy/context/theme.js.map +1 -1
  42. package/build/legacy/hooks/useTheme.js +2 -56
  43. package/build/legacy/hooks/useTheme.js.map +1 -1
  44. package/build/legacy/index.js +57 -13
  45. package/build/legacy/index.js.map +1 -1
  46. package/build/legacy/types.js +1 -0
  47. package/build/modern/aria-helpers/nav-menu.aria.js +3 -7
  48. package/build/modern/aria-helpers/nav-menu.aria.js.map +1 -1
  49. package/build/modern/chunk-55J6XMHW.js +1 -0
  50. package/build/modern/chunk-6YEAMVRY.js +82 -0
  51. package/build/modern/chunk-6YEAMVRY.js.map +1 -0
  52. package/build/modern/chunk-BPIYUAYS.js +26 -0
  53. package/build/modern/chunk-BPIYUAYS.js.map +1 -0
  54. package/build/modern/chunk-JA4IX7GN.js +48 -0
  55. package/build/modern/chunk-JA4IX7GN.js.map +1 -0
  56. package/build/modern/chunk-JF76VIL3.js +12 -0
  57. package/build/modern/chunk-JF76VIL3.js.map +1 -0
  58. package/build/modern/chunk-KETL4ZJK.js +33 -0
  59. package/build/modern/chunk-KETL4ZJK.js.map +1 -0
  60. package/build/modern/chunk-KJUCHZHV.js +51 -0
  61. package/build/modern/chunk-KJUCHZHV.js.map +1 -0
  62. package/build/modern/chunk-R4H3352X.js +16 -0
  63. package/build/modern/chunk-R4H3352X.js.map +1 -0
  64. package/build/modern/chunk-SXXWC6UD.js +83 -0
  65. package/build/modern/chunk-SXXWC6UD.js.map +1 -0
  66. package/build/modern/chunk-WSQTX34C.js +86 -0
  67. package/build/modern/chunk-WSQTX34C.js.map +1 -0
  68. package/build/modern/chunk-XFWARXLU.js +26 -0
  69. package/build/modern/chunk-XFWARXLU.js.map +1 -0
  70. package/build/modern/components/Button.js +3 -21
  71. package/build/modern/components/Button.js.map +1 -1
  72. package/build/modern/components/IconButton.js +3 -21
  73. package/build/modern/components/IconButton.js.map +1 -1
  74. package/build/modern/components/NavMenuLink.js +4 -40
  75. package/build/modern/components/NavMenuLink.js.map +1 -1
  76. package/build/modern/components/NavMenuList.js +6 -76
  77. package/build/modern/components/NavMenuList.js.map +1 -1
  78. package/build/modern/components/NavMenuTrigger.js +5 -72
  79. package/build/modern/components/NavMenuTrigger.js.map +1 -1
  80. package/build/modern/components/Show.js +3 -12
  81. package/build/modern/components/Show.js.map +1 -1
  82. package/build/modern/context/field.js +3 -27
  83. package/build/modern/context/field.js.map +1 -1
  84. package/build/modern/context/navMenu.js +3 -45
  85. package/build/modern/context/navMenu.js.map +1 -1
  86. package/build/modern/context/theme.js +6 -21
  87. package/build/modern/context/theme.js.map +1 -1
  88. package/build/modern/hooks/useTheme.js +2 -56
  89. package/build/modern/hooks/useTheme.js.map +1 -1
  90. package/build/modern/index.js +57 -13
  91. package/build/modern/index.js.map +1 -1
  92. package/build/modern/types.js +1 -0
  93. package/package.json +5 -12
  94. package/src/components/NavMenuLink.tsx +1 -1
  95. package/src/components/NavMenuList.tsx +3 -3
  96. package/src/components/NavMenuTrigger.tsx +2 -2
  97. package/build/legacy/_tsup-dts-rollup.d.cts +0 -254
  98. package/build/legacy/aria-helpers/nav-menu.aria.cjs +0 -36
  99. package/build/legacy/aria-helpers/nav-menu.aria.cjs.map +0 -1
  100. package/build/legacy/aria-helpers/nav-menu.aria.d.cts +0 -2
  101. package/build/legacy/components/Button.cjs +0 -50
  102. package/build/legacy/components/Button.cjs.map +0 -1
  103. package/build/legacy/components/Button.d.cts +0 -2
  104. package/build/legacy/components/IconButton.cjs +0 -50
  105. package/build/legacy/components/IconButton.cjs.map +0 -1
  106. package/build/legacy/components/IconButton.d.cts +0 -3
  107. package/build/legacy/components/NavMenuLink.cjs +0 -69
  108. package/build/legacy/components/NavMenuLink.cjs.map +0 -1
  109. package/build/legacy/components/NavMenuLink.d.cts +0 -2
  110. package/build/legacy/components/NavMenuList.cjs +0 -107
  111. package/build/legacy/components/NavMenuList.cjs.map +0 -1
  112. package/build/legacy/components/NavMenuList.d.cts +0 -3
  113. package/build/legacy/components/NavMenuTrigger.cjs +0 -98
  114. package/build/legacy/components/NavMenuTrigger.cjs.map +0 -1
  115. package/build/legacy/components/NavMenuTrigger.d.cts +0 -2
  116. package/build/legacy/components/Show.cjs +0 -41
  117. package/build/legacy/components/Show.cjs.map +0 -1
  118. package/build/legacy/components/Show.d.cts +0 -2
  119. package/build/legacy/context/field.cjs +0 -55
  120. package/build/legacy/context/field.cjs.map +0 -1
  121. package/build/legacy/context/field.d.cts +0 -3
  122. package/build/legacy/context/navMenu.cjs +0 -70
  123. package/build/legacy/context/navMenu.cjs.map +0 -1
  124. package/build/legacy/context/navMenu.d.cts +0 -5
  125. package/build/legacy/context/theme.cjs +0 -56
  126. package/build/legacy/context/theme.cjs.map +0 -1
  127. package/build/legacy/context/theme.d.cts +0 -8
  128. package/build/legacy/global.d.cjs +0 -2
  129. package/build/legacy/global.d.d.cts +0 -1
  130. package/build/legacy/global.d.d.ts +0 -1
  131. package/build/legacy/global.d.js +0 -1
  132. package/build/legacy/hooks/useTheme.cjs +0 -77
  133. package/build/legacy/hooks/useTheme.cjs.map +0 -1
  134. package/build/legacy/hooks/useTheme.d.cts +0 -1
  135. package/build/legacy/index.cjs +0 -47
  136. package/build/legacy/index.cjs.map +0 -1
  137. package/build/legacy/index.d.cts +0 -34
  138. package/build/legacy/types.cjs +0 -19
  139. package/build/legacy/types.cjs.map +0 -1
  140. package/build/legacy/types.d.cts +0 -1
  141. package/build/modern/_tsup-dts-rollup.d.cts +0 -254
  142. package/build/modern/aria-helpers/nav-menu.aria.cjs +0 -36
  143. package/build/modern/aria-helpers/nav-menu.aria.cjs.map +0 -1
  144. package/build/modern/aria-helpers/nav-menu.aria.d.cts +0 -2
  145. package/build/modern/components/Button.cjs +0 -50
  146. package/build/modern/components/Button.cjs.map +0 -1
  147. package/build/modern/components/Button.d.cts +0 -2
  148. package/build/modern/components/IconButton.cjs +0 -50
  149. package/build/modern/components/IconButton.cjs.map +0 -1
  150. package/build/modern/components/IconButton.d.cts +0 -3
  151. package/build/modern/components/NavMenuLink.cjs +0 -69
  152. package/build/modern/components/NavMenuLink.cjs.map +0 -1
  153. package/build/modern/components/NavMenuLink.d.cts +0 -2
  154. package/build/modern/components/NavMenuList.cjs +0 -107
  155. package/build/modern/components/NavMenuList.cjs.map +0 -1
  156. package/build/modern/components/NavMenuList.d.cts +0 -3
  157. package/build/modern/components/NavMenuTrigger.cjs +0 -98
  158. package/build/modern/components/NavMenuTrigger.cjs.map +0 -1
  159. package/build/modern/components/NavMenuTrigger.d.cts +0 -2
  160. package/build/modern/components/Show.cjs +0 -41
  161. package/build/modern/components/Show.cjs.map +0 -1
  162. package/build/modern/components/Show.d.cts +0 -2
  163. package/build/modern/context/field.cjs +0 -55
  164. package/build/modern/context/field.cjs.map +0 -1
  165. package/build/modern/context/field.d.cts +0 -3
  166. package/build/modern/context/navMenu.cjs +0 -70
  167. package/build/modern/context/navMenu.cjs.map +0 -1
  168. package/build/modern/context/navMenu.d.cts +0 -5
  169. package/build/modern/context/theme.cjs +0 -56
  170. package/build/modern/context/theme.cjs.map +0 -1
  171. package/build/modern/context/theme.d.cts +0 -8
  172. package/build/modern/global.d.cjs +0 -2
  173. package/build/modern/global.d.cjs.map +0 -1
  174. package/build/modern/global.d.d.cts +0 -1
  175. package/build/modern/global.d.d.ts +0 -1
  176. package/build/modern/global.d.js +0 -1
  177. package/build/modern/global.d.js.map +0 -1
  178. package/build/modern/hooks/useTheme.cjs +0 -77
  179. package/build/modern/hooks/useTheme.cjs.map +0 -1
  180. package/build/modern/hooks/useTheme.d.cts +0 -1
  181. package/build/modern/index.cjs +0 -47
  182. package/build/modern/index.cjs.map +0 -1
  183. package/build/modern/index.d.cts +0 -34
  184. package/build/modern/types.cjs +0 -19
  185. package/build/modern/types.cjs.map +0 -1
  186. package/build/modern/types.d.cts +0 -1
  187. package/src/global.d.ts +0 -19
  188. /package/build/legacy/{global.d.cjs.map → chunk-55J6XMHW.js.map} +0 -0
  189. /package/build/{legacy/global.d.js.map → modern/chunk-55J6XMHW.js.map} +0 -0
@@ -1,43 +1,7 @@
1
- // src/components/NavMenuLink.tsx
2
- import { Show } from "./Show.js";
3
- import { css, cx } from "@cerberus/styled-system/css.js";
4
- import { jsx } from "react/jsx-runtime";
5
- function NavMenuLink(props) {
6
- const { as, ...nativeProps } = props;
7
- const hasAs = Boolean(as);
8
- const AsSub = as;
9
- return /* @__PURE__ */ jsx(
10
- "li",
11
- {
12
- className: css({
13
- w: "full"
14
- }),
15
- children: /* @__PURE__ */ jsx(
16
- Show,
17
- {
18
- when: hasAs,
19
- fallback: /* @__PURE__ */ jsx(
20
- "a",
21
- {
22
- ...nativeProps,
23
- className: cx(
24
- nativeProps.className,
25
- css({
26
- color: "action.navigation.initial",
27
- textStyle: "link",
28
- _hover: {
29
- color: "action.navigation.hover"
30
- }
31
- })
32
- )
33
- }
34
- ),
35
- children: hasAs && /* @__PURE__ */ jsx(AsSub, { ...nativeProps })
36
- }
37
- )
38
- }
39
- );
40
- }
1
+ import {
2
+ NavMenuLink
3
+ } from "../chunk-JA4IX7GN.js";
4
+ import "../chunk-R4H3352X.js";
41
5
  export {
42
6
  NavMenuLink
43
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NavMenuLink.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, ElementType } from 'react'\nimport { Show } from './Show'\nimport { css, cx } from '@cerberus/styled-system/css'\n\nexport interface NavMenuLinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement> {\n as?: ElementType\n}\n\nexport function NavMenuLink(props: NavMenuLinkProps): JSX.Element {\n const { as, ...nativeProps } = props\n const hasAs = Boolean(as)\n const AsSub: ElementType = as!\n\n return (\n <li\n className={css({\n w: 'full',\n })}\n >\n <Show\n when={hasAs}\n fallback={\n <a\n {...nativeProps}\n className={cx(\n nativeProps.className,\n css({\n color: 'action.navigation.initial',\n textStyle: 'link',\n _hover: {\n color: 'action.navigation.hover',\n },\n }),\n )}\n />\n }\n >\n {hasAs && <AsSub {...nativeProps} />}\n </Show>\n </li>\n )\n}\n"],"mappings":";AACA,SAAS,YAAY;AACrB,SAAS,KAAK,UAAU;AAqBd;AAdH,SAAS,YAAY,OAAsC;AAChE,QAAM,EAAE,IAAI,GAAG,YAAY,IAAI;AAC/B,QAAM,QAAQ,QAAQ,EAAE;AACxB,QAAM,QAAqB;AAE3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,IAAI;AAAA,QACb,GAAG;AAAA,MACL,CAAC;AAAA,MAED;AAAA,QAAC;AAAA;AAAA,UACC,MAAM;AAAA,UACN,UACE;AAAA,YAAC;AAAA;AAAA,cACE,GAAG;AAAA,cACJ,WAAW;AAAA,gBACT,YAAY;AAAA,gBACZ,IAAI;AAAA,kBACF,OAAO;AAAA,kBACP,WAAW;AAAA,kBACX,QAAQ;AAAA,oBACN,OAAO;AAAA,kBACT;AAAA,gBACF,CAAC;AAAA,cACH;AAAA;AAAA,UACF;AAAA,UAGD,mBAAS,oBAAC,SAAO,GAAG,aAAa;AAAA;AAAA,MACpC;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,80 +1,10 @@
1
1
  "use client";
2
-
3
- // src/components/NavMenuList.tsx
4
- import { useMemo } from "react";
5
- import { useNavMenuContext } from "../context/navMenu.js";
6
- import { Show } from "./Show.js";
7
- import { cx } from "@cerberus/styled-system/css.js";
8
- import { vstack } from "@cerberus/styled-system/patterns.js";
9
- import { jsx } from "react/jsx-runtime";
10
- function getPosition(position) {
11
- const defaultPositions = {
12
- left: "auto",
13
- right: "auto",
14
- top: "auto",
15
- bottom: "auto"
16
- };
17
- switch (position) {
18
- case "right":
19
- return { ...defaultPositions, top: "0%", left: "105%" };
20
- case "left":
21
- return { ...defaultPositions, top: "0%", right: "105%" };
22
- case "bottom":
23
- return { ...defaultPositions, top: "110%" };
24
- case "top":
25
- return { ...defaultPositions, bottom: "110%" };
26
- default:
27
- return defaultPositions;
28
- }
29
- }
30
- var navListStyles = vstack({
31
- alignItems: "flex-start",
32
- bgColor: "neutral.surface.100",
33
- boxShadow: "lg",
34
- gap: "2",
35
- opacity: "0",
36
- p: "4",
37
- position: "absolute",
38
- rounded: "md",
39
- zIndex: "dropdown",
40
- _motionSafe: {
41
- animationName: "zoomIn",
42
- animationDelay: "100ms",
43
- animationDuration: "150ms",
44
- animationFillMode: "both",
45
- animationTimingFunction: "ease-in-out"
46
- },
47
- _positionBottom: {
48
- transformOrigin: "top left"
49
- },
50
- _positionTop: {
51
- transformOrigin: "bottom left"
52
- },
53
- _positionLeft: {
54
- transformOrigin: "top right"
55
- },
56
- _positionRight: {
57
- transformOrigin: "top left"
58
- }
59
- });
60
- function NavMenuList(props) {
61
- const { position, ...nativeProps } = props;
62
- const { menuRef, expanded } = useNavMenuContext();
63
- const locationStyles = useMemo(
64
- () => getPosition(position ?? "bottom"),
65
- [position]
66
- );
67
- return /* @__PURE__ */ jsx(Show, { when: expanded, children: /* @__PURE__ */ jsx(
68
- "ul",
69
- {
70
- ...nativeProps,
71
- "data-position": position ?? "bottom",
72
- className: cx(nativeProps.className, navListStyles),
73
- ref: menuRef,
74
- style: locationStyles
75
- }
76
- ) });
77
- }
2
+ import {
3
+ NavMenuList,
4
+ getPosition
5
+ } from "../chunk-WSQTX34C.js";
6
+ import "../chunk-KJUCHZHV.js";
7
+ import "../chunk-R4H3352X.js";
78
8
  export {
79
9
  NavMenuList,
80
10
  getPosition
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NavMenuList.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo, type HTMLAttributes } from 'react'\nimport { useNavMenuContext } from '../context/navMenu'\nimport { Show } from './Show'\nimport type { Positions } from '../types'\nimport { cx } from '@cerberus/styled-system/css'\nimport { vstack } from '@cerberus/styled-system/patterns'\n\ninterface GetPositionResult {\n left: string\n right: string\n top: string\n bottom: string\n}\n\nexport function getPosition(position: Positions): GetPositionResult {\n const defaultPositions = {\n left: 'auto',\n right: 'auto',\n top: 'auto',\n bottom: 'auto',\n }\n switch (position) {\n case 'right':\n return { ...defaultPositions, top: '0%', left: '105%' }\n case 'left':\n return { ...defaultPositions, top: '0%', right: '105%' }\n case 'bottom':\n return { ...defaultPositions, top: '110%' }\n case 'top':\n return { ...defaultPositions, bottom: '110%' }\n default:\n return defaultPositions\n }\n}\n\nconst navListStyles = vstack({\n alignItems: 'flex-start',\n bgColor: 'neutral.surface.100',\n boxShadow: 'lg',\n gap: '2',\n opacity: '0',\n p: '4',\n position: 'absolute',\n rounded: 'md',\n zIndex: 'dropdown',\n _motionSafe: {\n animationName: 'zoomIn',\n animationDelay: '100ms',\n animationDuration: '150ms',\n animationFillMode: 'both',\n animationTimingFunction: 'ease-in-out',\n },\n _positionBottom: {\n transformOrigin: 'top left',\n },\n _positionTop: {\n transformOrigin: 'bottom left',\n },\n _positionLeft: {\n transformOrigin: 'top right',\n },\n _positionRight: {\n transformOrigin: 'top left',\n },\n})\n\nexport interface NavMenuListProps extends HTMLAttributes<HTMLUListElement> {\n id: string\n position?: Positions\n}\n\n/**\n * A component that allows the user to display a menu of navigation links.\n * @definition [Disclosure Nav](https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/examples/disclosure-navigation/)\n * @definition [NavMenu Docs](https://cerberus.digitalu.design/react/nav-menu)\n *\n * @example\n * ```tsx\n * <NavMenuList id=\"nav-menu-list\" position=\"bottom\">\n * <NavMenuLink href=\"/home\">Home</NavMenuLink>\n * <NavMenuLink href=\"/about\">About</NavMenuLink>\n * </NavMenuList>\n * ```\n **/\nexport function NavMenuList(props: NavMenuListProps): JSX.Element {\n const { position, ...nativeProps } = props\n const { menuRef, expanded } = useNavMenuContext()\n const locationStyles = useMemo(\n () => getPosition(position ?? 'bottom'),\n [position],\n )\n\n return (\n <Show when={expanded}>\n <ul\n {...nativeProps}\n data-position={position ?? 'bottom'}\n className={cx(nativeProps.className, navListStyles)}\n ref={menuRef}\n style={locationStyles}\n />\n </Show>\n )\n}\n"],"mappings":";;;AAEA,SAAS,eAAoC;AAC7C,SAAS,yBAAyB;AAClC,SAAS,YAAY;AAErB,SAAS,UAAU;AACnB,SAAS,cAAc;AAyFjB;AAhFC,SAAS,YAAY,UAAwC;AAClE,QAAM,mBAAmB;AAAA,IACvB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACA,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,EAAE,GAAG,kBAAkB,KAAK,MAAM,MAAM,OAAO;AAAA,IACxD,KAAK;AACH,aAAO,EAAE,GAAG,kBAAkB,KAAK,MAAM,OAAO,OAAO;AAAA,IACzD,KAAK;AACH,aAAO,EAAE,GAAG,kBAAkB,KAAK,OAAO;AAAA,IAC5C,KAAK;AACH,aAAO,EAAE,GAAG,kBAAkB,QAAQ,OAAO;AAAA,IAC/C;AACE,aAAO;AAAA,EACX;AACF;AAEA,IAAM,gBAAgB,OAAO;AAAA,EAC3B,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,KAAK;AAAA,EACL,SAAS;AAAA,EACT,GAAG;AAAA,EACH,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC3B;AAAA,EACA,iBAAiB;AAAA,IACf,iBAAiB;AAAA,EACnB;AAAA,EACA,cAAc;AAAA,IACZ,iBAAiB;AAAA,EACnB;AAAA,EACA,eAAe;AAAA,IACb,iBAAiB;AAAA,EACnB;AAAA,EACA,gBAAgB;AAAA,IACd,iBAAiB;AAAA,EACnB;AACF,CAAC;AAoBM,SAAS,YAAY,OAAsC;AAChE,QAAM,EAAE,UAAU,GAAG,YAAY,IAAI;AACrC,QAAM,EAAE,SAAS,SAAS,IAAI,kBAAkB;AAChD,QAAM,iBAAiB;AAAA,IACrB,MAAM,YAAY,YAAY,QAAQ;AAAA,IACtC,CAAC,QAAQ;AAAA,EACX;AAEA,SACE,oBAAC,QAAK,MAAM,UACV;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,iBAAe,YAAY;AAAA,MAC3B,WAAW,GAAG,YAAY,WAAW,aAAa;AAAA,MAClD,KAAK;AAAA,MACL,OAAO;AAAA;AAAA,EACT,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,77 +1,10 @@
1
1
  "use client";
2
-
3
- // src/components/NavMenuTrigger.tsx
4
2
  import {
5
- useCallback
6
- } from "react";
7
- import { cx } from "@cerberus/styled-system/css.js";
8
- import { button } from "@cerberus/styled-system/recipes.js";
9
- import {
10
- createNavTriggerProps
11
- } from "../aria-helpers/nav-menu.aria.js";
12
- import { Show } from "./Show.js";
13
- import { useNavMenuContext } from "../context/navMenu.js";
14
- import { jsx } from "react/jsx-runtime";
15
- function NavMenuTrigger(props) {
16
- const {
17
- as,
18
- palette,
19
- usage,
20
- shape,
21
- controls,
22
- expanded: propsExpanded,
23
- onClick,
24
- ...nativeProps
25
- } = props;
26
- const { triggerRef, onToggle, expanded } = useNavMenuContext();
27
- const ariaProps = createNavTriggerProps({
28
- controls,
29
- expanded: propsExpanded ?? expanded
30
- });
31
- const hasAs = Boolean(as);
32
- const AsSub = as;
33
- const handleClick = useCallback(
34
- (e) => {
35
- if (onClick)
36
- return onClick(e);
37
- onToggle();
38
- },
39
- [onClick, onToggle]
40
- );
41
- return /* @__PURE__ */ jsx(
42
- Show,
43
- {
44
- when: hasAs,
45
- fallback: /* @__PURE__ */ jsx(
46
- "button",
47
- {
48
- ...nativeProps,
49
- ...ariaProps,
50
- className: cx(
51
- nativeProps.className,
52
- button({
53
- palette,
54
- usage,
55
- shape
56
- })
57
- ),
58
- onClick: handleClick,
59
- ref: triggerRef,
60
- children: props.children
61
- }
62
- ),
63
- children: hasAs && /* @__PURE__ */ jsx(
64
- AsSub,
65
- {
66
- ...nativeProps,
67
- ...ariaProps,
68
- onClick: handleClick,
69
- ref: triggerRef
70
- }
71
- )
72
- }
73
- );
74
- }
3
+ NavMenuTrigger
4
+ } from "../chunk-6YEAMVRY.js";
5
+ import "../chunk-JF76VIL3.js";
6
+ import "../chunk-KJUCHZHV.js";
7
+ import "../chunk-R4H3352X.js";
75
8
  export {
76
9
  NavMenuTrigger
77
10
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NavMenuTrigger.tsx"],"sourcesContent":["'use client'\n\nimport {\n useCallback,\n type ButtonHTMLAttributes,\n type ElementType,\n type MouseEvent,\n} from 'react'\nimport { cx } from '@cerberus/styled-system/css'\nimport { button } from '@cerberus/styled-system/recipes'\nimport {\n createNavTriggerProps,\n type NavTriggerAriaValues,\n} from '../aria-helpers/nav-menu.aria'\nimport { Show } from './Show'\nimport type { ButtonProps } from './Button'\nimport { useNavMenuContext } from '../context/navMenu'\n\nexport interface NavMenuTriggerProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n ButtonProps,\n NavTriggerAriaValues {\n as?: ElementType\n}\n\n/**\n * A component that allows the user to trigger a navigation menu.\n * @definition [NavMenu Docs](https://cerberus.digitalu.design/react/nav-menu)\n * @example\n * ```tsx\n * <NavMenu>\n * <NavMenuTrigger controls=\"nav-menu-list\">\n * Menu\n * </NavMenuTrigger>\n * </NavMenu>\n * ```\n */\nexport function NavMenuTrigger(props: NavMenuTriggerProps): JSX.Element {\n const {\n as,\n palette,\n usage,\n shape,\n controls,\n expanded: propsExpanded,\n onClick,\n ...nativeProps\n } = props\n const { triggerRef, onToggle, expanded } = useNavMenuContext()\n const ariaProps = createNavTriggerProps({\n controls,\n expanded: propsExpanded ?? expanded,\n })\n const hasAs = Boolean(as)\n const AsSub: ElementType = as!\n\n const handleClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n if (onClick) return onClick(e)\n onToggle()\n },\n [onClick, onToggle],\n )\n\n return (\n <Show\n when={hasAs}\n fallback={\n <button\n {...nativeProps}\n {...ariaProps}\n className={cx(\n nativeProps.className,\n button({\n palette,\n usage,\n shape,\n }),\n )}\n onClick={handleClick}\n ref={triggerRef}\n >\n {props.children}\n </button>\n }\n >\n {hasAs && (\n <AsSub\n {...nativeProps}\n {...ariaProps}\n onClick={handleClick}\n ref={triggerRef}\n />\n )}\n </Show>\n )\n}\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,OAIK;AACP,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,OAEK;AACP,SAAS,YAAY;AAErB,SAAS,yBAAyB;AAoD1B;AA/BD,SAAS,eAAe,OAAyC;AACtE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,EAAE,YAAY,UAAU,SAAS,IAAI,kBAAkB;AAC7D,QAAM,YAAY,sBAAsB;AAAA,IACtC;AAAA,IACA,UAAU,iBAAiB;AAAA,EAC7B,CAAC;AACD,QAAM,QAAQ,QAAQ,EAAE;AACxB,QAAM,QAAqB;AAE3B,QAAM,cAAc;AAAA,IAClB,CAAC,MAAqC;AACpC,UAAI;AAAS,eAAO,QAAQ,CAAC;AAC7B,eAAS;AAAA,IACX;AAAA,IACA,CAAC,SAAS,QAAQ;AAAA,EACpB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,UACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACH,GAAG;AAAA,UACJ,WAAW;AAAA,YACT,YAAY;AAAA,YACZ,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,SAAS;AAAA,UACT,KAAK;AAAA,UAEJ,gBAAM;AAAA;AAAA,MACT;AAAA,MAGD,mBACC;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACH,GAAG;AAAA,UACJ,SAAS;AAAA,UACT,KAAK;AAAA;AAAA,MACP;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,16 +1,7 @@
1
1
  "use client";
2
-
3
- // src/components/Show.tsx
4
- import { useMemo } from "react";
5
- function Show(props) {
6
- const { when, children, fallback } = props;
7
- const condition = useMemo(() => when ?? false, [when]);
8
- return useMemo(() => {
9
- if (condition)
10
- return children;
11
- return fallback ?? null;
12
- }, [condition, children, fallback]);
13
- }
2
+ import {
3
+ Show
4
+ } from "../chunk-R4H3352X.js";
14
5
  export {
15
6
  Show
16
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Show.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo, type PropsWithChildren, type ReactNode } from 'react'\n\nexport interface ShowProps {\n when: boolean | null | undefined\n fallback?: ReactNode\n}\n\n/**\n * Conditionally render its children or an optional fallback component\n * based on the SolidJS component.\n * @definition [Show docs](https://cerberus.digitalu.design/react/show)\n * @example\n * ```tsx\n * <Show when={condition}>\n * <div>Content</div>\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"],"mappings":";;;AAEA,SAAS,eAAuD;AAiBzD,SAAS,KAAK,OAAgD;AACnE,QAAM,EAAE,MAAM,UAAU,SAAS,IAAI;AACrC,QAAM,YAAY,QAAQ,MAAM,QAAQ,OAAO,CAAC,IAAI,CAAC;AAErD,SAAO,QAAQ,MAAM;AACnB,QAAI;AAAW,aAAO;AACtB,WAAO,YAAY;AAAA,EACrB,GAAG,CAAC,WAAW,UAAU,QAAQ,CAAC;AACpC;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,32 +1,8 @@
1
1
  "use client";
2
-
3
- // src/context/field.tsx
4
2
  import {
5
- createContext,
6
- useContext,
7
- useMemo
8
- } from "react";
9
- import { jsx } from "react/jsx-runtime";
10
- var FieldContext = createContext(null);
11
- function Field(props) {
12
- const value = useMemo(
13
- () => ({
14
- disabled: props.disabled,
15
- readonly: props.readonly,
16
- required: props.required,
17
- invalid: props.invalid
18
- }),
19
- [props.disabled, props.readonly, props.required, props.invalid]
20
- );
21
- return /* @__PURE__ */ jsx(FieldContext.Provider, { value, children: props.children });
22
- }
23
- function useFieldContext() {
24
- const context = useContext(FieldContext);
25
- if (!context) {
26
- throw new Error("useFieldContext must be used within a Field Provider.");
27
- }
28
- return context;
29
- }
3
+ Field,
4
+ useFieldContext
5
+ } from "../chunk-KETL4ZJK.js";
30
6
  export {
31
7
  Field,
32
8
  useFieldContext
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/field.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useContext,\n useMemo,\n type PropsWithChildren,\n} from 'react'\n\nexport interface FieldContextValue {\n disabled?: boolean\n readonly?: boolean\n required?: boolean\n invalid?: boolean\n}\n\nconst FieldContext = createContext<FieldContextValue | null>(null)\n\nexport function Field(\n props: PropsWithChildren<FieldContextValue>,\n): JSX.Element {\n const value = useMemo(\n () => ({\n disabled: props.disabled,\n readonly: props.readonly,\n required: props.required,\n invalid: props.invalid,\n }),\n [props.disabled, props.readonly, props.required, props.invalid],\n )\n\n return (\n <FieldContext.Provider value={value}>\n {props.children}\n </FieldContext.Provider>\n )\n}\n\nexport function useFieldContext(): FieldContextValue {\n const context = useContext(FieldContext)\n if (!context) {\n throw new Error('useFieldContext must be used within a Field Provider.')\n }\n return context\n}\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAyBH;AAhBJ,IAAM,eAAe,cAAwC,IAAI;AAE1D,SAAS,MACd,OACa;AACb,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,CAAC,MAAM,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,OAAO;AAAA,EAChE;AAEA,SACE,oBAAC,aAAa,UAAb,EAAsB,OACpB,gBAAM,UACT;AAEJ;AAEO,SAAS,kBAAqC;AACnD,QAAM,UAAU,WAAW,YAAY;AACvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,50 +1,8 @@
1
1
  "use client";
2
-
3
- // src/context/navMenu.tsx
4
- import { css } from "@cerberus/styled-system/css.js";
5
2
  import {
6
- createContext,
7
- useCallback,
8
- useContext,
9
- useMemo,
10
- useRef,
11
- useState
12
- } from "react";
13
- import { jsx } from "react/jsx-runtime";
14
- var NavMenuContext = createContext(null);
15
- function NavMenu(props) {
16
- const triggerRef = useRef(null);
17
- const menuRef = useRef(null);
18
- const [expanded, setExpanded] = useState(false);
19
- const handleToggle = useCallback(() => {
20
- setExpanded((prev) => !prev);
21
- }, []);
22
- const value = useMemo(
23
- () => ({
24
- triggerRef,
25
- menuRef,
26
- expanded,
27
- onToggle: handleToggle
28
- }),
29
- [expanded, handleToggle]
30
- );
31
- return /* @__PURE__ */ jsx(NavMenuContext.Provider, { value, children: /* @__PURE__ */ jsx(
32
- "nav",
33
- {
34
- className: css({
35
- position: "relative"
36
- }),
37
- children: props.children
38
- }
39
- ) });
40
- }
41
- function useNavMenuContext() {
42
- const context = useContext(NavMenuContext);
43
- if (!context) {
44
- throw new Error("useNavMenuContext must be used within a NavMenu.");
45
- }
46
- return context;
47
- }
3
+ NavMenu,
4
+ useNavMenuContext
5
+ } from "../chunk-KJUCHZHV.js";
48
6
  export {
49
7
  NavMenu,
50
8
  useNavMenuContext
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/navMenu.tsx"],"sourcesContent":["'use client'\n\nimport { css } from '@cerberus/styled-system/css'\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type PropsWithChildren,\n type RefObject,\n} from 'react'\n\nexport type NavTriggerRef = RefObject<HTMLButtonElement>\nexport type NavMenuRef = RefObject<HTMLUListElement>\n\nexport interface NavMenuContextValue {\n triggerRef: NavTriggerRef | null\n menuRef: NavMenuRef | null\n expanded: boolean\n onToggle: () => void\n}\n\nconst NavMenuContext = createContext<NavMenuContextValue | null>(null)\n\nexport function NavMenu(props: PropsWithChildren): JSX.Element {\n const triggerRef = useRef<HTMLButtonElement>(null)\n const menuRef = useRef<HTMLUListElement>(null)\n const [expanded, setExpanded] = useState<boolean>(false)\n\n const handleToggle = useCallback(() => {\n setExpanded((prev) => !prev)\n }, [])\n\n const value = useMemo(\n () => ({\n triggerRef,\n menuRef,\n expanded,\n onToggle: handleToggle,\n }),\n [expanded, handleToggle],\n )\n\n return (\n <NavMenuContext.Provider value={value}>\n <nav\n className={css({\n position: 'relative',\n })}\n >\n {props.children}\n </nav>\n </NavMenuContext.Provider>\n )\n}\n\nexport function useNavMenuContext(): NavMenuContextValue {\n const context = useContext(NavMenuContext)\n if (!context) {\n throw new Error('useNavMenuContext must be used within a NavMenu.')\n }\n return context\n}\n"],"mappings":";;;AAEA,SAAS,WAAW;AACpB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAmCD;AAvBN,IAAM,iBAAiB,cAA0C,IAAI;AAE9D,SAAS,QAAQ,OAAuC;AAC7D,QAAM,aAAa,OAA0B,IAAI;AACjD,QAAM,UAAU,OAAyB,IAAI;AAC7C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAkB,KAAK;AAEvD,QAAM,eAAe,YAAY,MAAM;AACrC,gBAAY,CAAC,SAAS,CAAC,IAAI;AAAA,EAC7B,GAAG,CAAC,CAAC;AAEL,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,IACA,CAAC,UAAU,YAAY;AAAA,EACzB;AAEA,SACE,oBAAC,eAAe,UAAf,EAAwB,OACvB;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,IAAI;AAAA,QACb,UAAU;AAAA,MACZ,CAAC;AAAA,MAEA,gBAAM;AAAA;AAAA,EACT,GACF;AAEJ;AAEO,SAAS,oBAAyC;AACvD,QAAM,UAAU,WAAW,cAAc;AACzC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,25 +1,10 @@
1
1
  "use client";
2
-
3
- // src/context/theme.tsx
4
- import { createContext, useContext } from "react";
5
- import { useTheme } from "../hooks/useTheme.js";
6
- import { jsx } from "react/jsx-runtime";
7
- var THEME_KEY = "cerberus-theme";
8
- var MODE_KEY = "cerberus-mode";
9
- var ThemeContext = createContext(
10
- null
11
- );
12
- function ThemeProvider(props) {
13
- const state = useTheme();
14
- return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: state, children: props.children });
15
- }
16
- function useThemeContext() {
17
- const context = useContext(ThemeContext);
18
- if (!context) {
19
- throw new Error("useThemeContext must be used within a ThemeProvider");
20
- }
21
- return context;
22
- }
2
+ import {
3
+ MODE_KEY,
4
+ THEME_KEY,
5
+ ThemeProvider,
6
+ useThemeContext
7
+ } from "../chunk-SXXWC6UD.js";
23
8
  export {
24
9
  MODE_KEY,
25
10
  THEME_KEY,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/theme.tsx"],"sourcesContent":["'use client'\n\nimport { createContext, useContext, type PropsWithChildren } from 'react'\nimport { useTheme } from '../hooks/useTheme'\n\nexport type DefaultThemes = 'cerberus'\nexport type CustomThemes<K extends string = DefaultThemes> = 'cerberus' | K\nexport type ColorModes = 'light' | 'dark'\n\nexport interface ThemeContextValue<T extends string = DefaultThemes> {\n theme: CustomThemes<T>\n mode: ColorModes\n updateTheme: (theme: T) => void\n updateMode: () => void\n}\n\nexport const THEME_KEY = 'cerberus-theme'\nexport const MODE_KEY = 'cerberus-mode'\n\nconst ThemeContext = createContext<ThemeContextValue<DefaultThemes> | null>(\n null,\n)\n\n/**\n * A context provider that allows the user to set the theme and mode of the application.\n * @example\n * ```tsx\n * <ThemeProvider>\n * <App />\n * </ThemeProvider>\n * ```\n */\nexport function ThemeProvider(props: PropsWithChildren<unknown>): JSX.Element {\n const state = useTheme()\n return (\n <ThemeContext.Provider value={state}>\n {props.children}\n </ThemeContext.Provider>\n )\n}\n\nexport function useThemeContext(): ThemeContextValue<DefaultThemes> {\n const context = useContext(ThemeContext)\n if (!context) {\n throw new Error('useThemeContext must be used within a ThemeProvider')\n }\n return context\n}\n"],"mappings":";;;AAEA,SAAS,eAAe,kBAA0C;AAClE,SAAS,gBAAgB;AAgCrB;AAnBG,IAAM,YAAY;AAClB,IAAM,WAAW;AAExB,IAAM,eAAe;AAAA,EACnB;AACF;AAWO,SAAS,cAAc,OAAgD;AAC5E,QAAM,QAAQ,SAAS;AACvB,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAC3B,gBAAM,UACT;AAEJ;AAEO,SAAS,kBAAoD;AAClE,QAAM,UAAU,WAAW,YAAY;AACvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,61 +1,7 @@
1
1
  "use client";
2
-
3
- // src/hooks/useTheme.ts
4
2
  import {
5
- useCallback,
6
- useEffect,
7
- useLayoutEffect,
8
- useMemo,
9
- useState
10
- } from "react";
11
- import {
12
- MODE_KEY,
13
- THEME_KEY
14
- } from "../context/theme.js";
15
- function useTheme(defaultTheme = "cerberus", defaultColorMode = "light") {
16
- const [theme, setTheme] = useState(defaultTheme);
17
- const [colorMode, setColorMode] = useState(defaultColorMode);
18
- const handleThemeChange = useCallback((newTheme) => {
19
- setTheme(newTheme);
20
- localStorage.setItem(THEME_KEY, newTheme);
21
- }, []);
22
- const handleColorModeChange = useCallback(() => {
23
- setColorMode((prev) => {
24
- const newMode = prev === "light" ? "dark" : "light";
25
- localStorage.setItem(MODE_KEY, newMode);
26
- return newMode;
27
- });
28
- }, []);
29
- useLayoutEffect(() => {
30
- const theme2 = localStorage.getItem(THEME_KEY);
31
- if (theme2) {
32
- setTheme(theme2);
33
- }
34
- }, []);
35
- useLayoutEffect(() => {
36
- const mode = localStorage.getItem(MODE_KEY);
37
- if (mode) {
38
- setColorMode(mode);
39
- }
40
- }, []);
41
- useEffect(() => {
42
- const root = document.documentElement;
43
- root.dataset.theme = theme;
44
- }, [theme]);
45
- useEffect(() => {
46
- const root = document.documentElement;
47
- root.dataset.colorMode = colorMode;
48
- }, [colorMode]);
49
- return useMemo(
50
- () => ({
51
- theme,
52
- mode: colorMode,
53
- updateTheme: handleThemeChange,
54
- updateMode: handleColorModeChange
55
- }),
56
- [theme, colorMode, handleThemeChange, handleColorModeChange]
57
- );
58
- }
3
+ useTheme
4
+ } from "../chunk-SXXWC6UD.js";
59
5
  export {
60
6
  useTheme
61
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useTheme.ts"],"sourcesContent":["'use client'\n\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react'\nimport {\n MODE_KEY,\n THEME_KEY,\n type ColorModes,\n type CustomThemes,\n type DefaultThemes,\n type ThemeContextValue,\n} from '../context/theme'\n\nexport function useTheme<C extends string = DefaultThemes>(\n defaultTheme: CustomThemes<C> = 'cerberus',\n defaultColorMode: ColorModes = 'light',\n): ThemeContextValue<C> {\n const [theme, setTheme] = useState<CustomThemes<C>>(defaultTheme)\n const [colorMode, setColorMode] = useState<ColorModes>(defaultColorMode)\n\n const handleThemeChange = useCallback((newTheme: CustomThemes<C>) => {\n setTheme(newTheme)\n localStorage.setItem(THEME_KEY, newTheme)\n }, [])\n\n const handleColorModeChange = useCallback(() => {\n setColorMode((prev) => {\n const newMode = prev === 'light' ? 'dark' : 'light'\n localStorage.setItem(MODE_KEY, newMode)\n return newMode\n })\n }, [])\n\n useLayoutEffect(() => {\n const theme = localStorage.getItem(THEME_KEY)\n if (theme) {\n setTheme(theme as CustomThemes<C>)\n }\n }, [])\n\n useLayoutEffect(() => {\n const mode = localStorage.getItem(MODE_KEY)\n if (mode) {\n setColorMode(mode as ColorModes)\n }\n }, [])\n\n useEffect(() => {\n const root = document.documentElement\n root.dataset.theme = theme\n }, [theme])\n\n useEffect(() => {\n const root = document.documentElement\n root.dataset.colorMode = colorMode\n }, [colorMode])\n\n return useMemo(\n () => ({\n theme,\n mode: colorMode,\n updateTheme: handleThemeChange,\n updateMode: handleColorModeChange,\n }),\n [theme, colorMode, handleThemeChange, handleColorModeChange],\n )\n}\n"],"mappings":";;;AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAKK;AAEA,SAAS,SACd,eAAgC,YAChC,mBAA+B,SACT;AACtB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA0B,YAAY;AAChE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAqB,gBAAgB;AAEvE,QAAM,oBAAoB,YAAY,CAAC,aAA8B;AACnE,aAAS,QAAQ;AACjB,iBAAa,QAAQ,WAAW,QAAQ;AAAA,EAC1C,GAAG,CAAC,CAAC;AAEL,QAAM,wBAAwB,YAAY,MAAM;AAC9C,iBAAa,CAAC,SAAS;AACrB,YAAM,UAAU,SAAS,UAAU,SAAS;AAC5C,mBAAa,QAAQ,UAAU,OAAO;AACtC,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,kBAAgB,MAAM;AACpB,UAAMA,SAAQ,aAAa,QAAQ,SAAS;AAC5C,QAAIA,QAAO;AACT,eAASA,MAAwB;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,kBAAgB,MAAM;AACpB,UAAM,OAAO,aAAa,QAAQ,QAAQ;AAC1C,QAAI,MAAM;AACR,mBAAa,IAAkB;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,UAAM,OAAO,SAAS;AACtB,SAAK,QAAQ,QAAQ;AAAA,EACvB,GAAG,CAAC,KAAK,CAAC;AAEV,YAAU,MAAM;AACd,UAAM,OAAO,SAAS;AACtB,SAAK,QAAQ,YAAY;AAAA,EAC3B,GAAG,CAAC,SAAS,CAAC;AAEd,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,IACd;AAAA,IACA,CAAC,OAAO,WAAW,mBAAmB,qBAAqB;AAAA,EAC7D;AACF;","names":["theme"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,14 +1,58 @@
1
- // src/index.ts
2
- export * from "./components/Button.js";
3
- export * from "./components/IconButton.js";
4
- export * from "./components/NavMenuTrigger.js";
5
- export * from "./components/NavMenuList.js";
6
- export * from "./components/NavMenuLink.js";
7
- export * from "./components/Show.js";
8
- export * from "./context/field.js";
9
- export * from "./context/navMenu.js";
10
- export * from "./context/theme.js";
11
- export * from "./hooks/useTheme.js";
12
- export * from "./aria-helpers/nav-menu.aria.js";
13
- export * from "./types.js";
1
+ import {
2
+ NavMenuTrigger
3
+ } from "./chunk-6YEAMVRY.js";
4
+ import {
5
+ Field,
6
+ useFieldContext
7
+ } from "./chunk-KETL4ZJK.js";
8
+ import "./chunk-55J6XMHW.js";
9
+ import {
10
+ createNavTriggerProps
11
+ } from "./chunk-JF76VIL3.js";
12
+ import {
13
+ MODE_KEY,
14
+ THEME_KEY,
15
+ ThemeProvider,
16
+ useTheme,
17
+ useThemeContext
18
+ } from "./chunk-SXXWC6UD.js";
19
+ import {
20
+ Button
21
+ } from "./chunk-XFWARXLU.js";
22
+ import {
23
+ IconButton
24
+ } from "./chunk-BPIYUAYS.js";
25
+ import {
26
+ NavMenuLink
27
+ } from "./chunk-JA4IX7GN.js";
28
+ import {
29
+ NavMenuList,
30
+ getPosition
31
+ } from "./chunk-WSQTX34C.js";
32
+ import {
33
+ NavMenu,
34
+ useNavMenuContext
35
+ } from "./chunk-KJUCHZHV.js";
36
+ import {
37
+ Show
38
+ } from "./chunk-R4H3352X.js";
39
+ export {
40
+ Button,
41
+ Field,
42
+ IconButton,
43
+ MODE_KEY,
44
+ NavMenu,
45
+ NavMenuLink,
46
+ NavMenuList,
47
+ NavMenuTrigger,
48
+ Show,
49
+ THEME_KEY,
50
+ ThemeProvider,
51
+ createNavTriggerProps,
52
+ getPosition,
53
+ useFieldContext,
54
+ useNavMenuContext,
55
+ useTheme,
56
+ useThemeContext
57
+ };
14
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * This module is the entry point for the Cerberus React package.\n * @module\n */\n\n// components\n\nexport * from './components/Button'\nexport * from './components/IconButton'\nexport * from './components/NavMenuTrigger'\nexport * from './components/NavMenuList'\nexport * from './components/NavMenuLink'\nexport * from './components/Show'\n\n// context\n\nexport * from './context/field'\nexport * from './context/navMenu'\nexport * from './context/theme'\n\n// hooks\n\nexport * from './hooks/useTheme'\n\n// aria-helpers\n\nexport * from './aria-helpers/nav-menu.aria'\n\n// shared types\n\nexport * from './types'\n"],"mappings":";AAOA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAId,cAAc;AACd,cAAc;AACd,cAAc;AAId,cAAc;AAId,cAAc;AAId,cAAc;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +1,2 @@
1
+ import "./chunk-55J6XMHW.js";
1
2
  //# sourceMappingURL=types.js.map
@@ -1,10 +1,6 @@
1
- // src/aria-helpers/nav-menu.aria.ts
2
- function createNavTriggerProps(values) {
3
- return {
4
- ["aria-controls"]: values.controls,
5
- ["aria-expanded"]: values.expanded ?? false
6
- };
7
- }
1
+ import {
2
+ createNavTriggerProps
3
+ } from "../chunk-JF76VIL3.js";
8
4
  export {
9
5
  createNavTriggerProps
10
6
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/aria-helpers/nav-menu.aria.ts"],"sourcesContent":["export interface NavTriggerAriaValues {\n controls: string\n expanded?: boolean\n}\n\ninterface NavTriggerAriaReturn {\n ['aria-controls']: string\n ['aria-expanded']: boolean\n}\n\nexport function createNavTriggerProps(\n values: NavTriggerAriaValues,\n): NavTriggerAriaReturn {\n return {\n ['aria-controls']: values.controls,\n ['aria-expanded']: values.expanded ?? false,\n }\n}\n"],"mappings":";AAUO,SAAS,sBACd,QACsB;AACtB,SAAO;AAAA,IACL,CAAC,eAAe,GAAG,OAAO;AAAA,IAC1B,CAAC,eAAe,GAAG,OAAO,YAAY;AAAA,EACxC;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-55J6XMHW.js.map