singularity-components 0.1.151 → 0.1.193

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 (244) hide show
  1. package/README.md +29 -12
  2. package/dist/components/blocks/cards/blogpost-card.d.ts +9 -4
  3. package/dist/components/blocks/cards/blogpost-card.js +37 -23
  4. package/dist/components/blocks/cards/blogpost-card.js.map +1 -1
  5. package/dist/components/blocks/cards/card.js +1 -1
  6. package/dist/components/blocks/cards/card.js.map +1 -1
  7. package/dist/components/blocks/empty-state/EmptyState.d.ts +15 -0
  8. package/dist/components/blocks/empty-state/EmptyState.js +36 -0
  9. package/dist/components/blocks/empty-state/EmptyState.js.map +1 -0
  10. package/dist/components/blocks/index.d.ts +2 -0
  11. package/dist/components/blocks/index.js +4 -2
  12. package/dist/components/blocks/index.js.map +1 -1
  13. package/dist/components/blocks/post-list/post-filters.d.ts +19 -0
  14. package/dist/components/blocks/post-list/post-filters.js +99 -0
  15. package/dist/components/blocks/post-list/post-filters.js.map +1 -0
  16. package/dist/components/blocks/post-list/post-list-with-filters.d.ts +19 -0
  17. package/dist/components/blocks/post-list/post-list-with-filters.js +439 -0
  18. package/dist/components/blocks/post-list/post-list-with-filters.js.map +1 -0
  19. package/dist/components/index.d.ts +42 -12
  20. package/dist/components/index.js +5 -6
  21. package/dist/components/index.js.map +1 -1
  22. package/dist/components/pages/admin/admin-page.d.ts +8 -0
  23. package/dist/components/pages/admin/admin-page.js +299 -0
  24. package/dist/components/pages/admin/admin-page.js.map +1 -0
  25. package/dist/components/pages/blogpost/blogpost.js +440 -0
  26. package/dist/components/pages/blogpost/blogpost.js.map +1 -0
  27. package/dist/components/pages/category/category-page.d.ts +8 -0
  28. package/dist/components/pages/category/category-page.js +69 -0
  29. package/dist/components/pages/category/category-page.js.map +1 -0
  30. package/dist/components/pages/chat/chat-page.d.ts +5 -0
  31. package/dist/components/pages/chat/chat-page.js +209 -0
  32. package/dist/components/pages/chat/chat-page.js.map +1 -0
  33. package/dist/components/pages/index.d.ts +11 -0
  34. package/dist/components/pages/index.js +11 -0
  35. package/dist/components/pages/index.js.map +1 -0
  36. package/dist/components/pages/login/login-page.d.ts +19 -0
  37. package/dist/components/pages/login/login-page.js +108 -0
  38. package/dist/components/pages/login/login-page.js.map +1 -0
  39. package/dist/components/pages/maintenance/maintenance-page.d.ts +5 -0
  40. package/dist/components/pages/maintenance/maintenance-page.js +50 -0
  41. package/dist/components/pages/maintenance/maintenance-page.js.map +1 -0
  42. package/dist/components/pages/not-found/not-found.d.ts +10 -0
  43. package/dist/components/pages/not-found/not-found.js +64 -0
  44. package/dist/components/pages/not-found/not-found.js.map +1 -0
  45. package/dist/components/pages/privacy/privacy-page.d.ts +15 -0
  46. package/dist/components/pages/privacy/privacy-page.js +98 -0
  47. package/dist/components/pages/privacy/privacy-page.js.map +1 -0
  48. package/dist/components/pages/search/search-page.d.ts +5 -0
  49. package/dist/components/pages/search/search-page.js +18 -0
  50. package/dist/components/pages/search/search-page.js.map +1 -0
  51. package/dist/components/pages/startpage/startpage.js +50 -0
  52. package/dist/components/pages/startpage/startpage.js.map +1 -0
  53. package/dist/components/pages/terms/terms-page.d.ts +15 -0
  54. package/dist/components/pages/terms/terms-page.js +98 -0
  55. package/dist/components/pages/terms/terms-page.js.map +1 -0
  56. package/dist/components/primitives/accordion/accordion.js +1 -1
  57. package/dist/components/primitives/accordion/accordion.js.map +1 -1
  58. package/dist/components/primitives/alert/alert.js +1 -1
  59. package/dist/components/primitives/alert/alert.js.map +1 -1
  60. package/dist/components/primitives/avatar/avatar.d.ts +14 -0
  61. package/dist/components/primitives/avatar/avatar.js +103 -0
  62. package/dist/components/primitives/avatar/avatar.js.map +1 -0
  63. package/dist/components/primitives/badge/badge.d.ts +1 -1
  64. package/dist/components/primitives/badge/badge.js +5 -5
  65. package/dist/components/primitives/badge/badge.js.map +1 -1
  66. package/dist/components/primitives/badge/badges.js +1 -1
  67. package/dist/components/primitives/badge/badges.js.map +1 -1
  68. package/dist/components/primitives/{button → buttons}/button.d.ts +8 -7
  69. package/dist/components/primitives/{button → buttons}/button.js +19 -14
  70. package/dist/components/primitives/buttons/button.js.map +1 -0
  71. package/dist/components/primitives/buttons/icon-button.d.ts +33 -0
  72. package/dist/components/primitives/buttons/icon-button.js +61 -0
  73. package/dist/components/primitives/buttons/icon-button.js.map +1 -0
  74. package/dist/components/primitives/{link → buttons}/link-button.d.ts +7 -4
  75. package/dist/components/primitives/buttons/link-button.js +35 -0
  76. package/dist/components/primitives/buttons/link-button.js.map +1 -0
  77. package/dist/components/primitives/collapsible/collapsible.d.ts +9 -0
  78. package/dist/components/primitives/collapsible/collapsible.js +53 -0
  79. package/dist/components/primitives/collapsible/collapsible.js.map +1 -0
  80. package/dist/components/primitives/dropdown-menu/dropdown-menu.d.ts +30 -0
  81. package/dist/components/primitives/dropdown-menu/dropdown-menu.js +164 -0
  82. package/dist/components/primitives/dropdown-menu/dropdown-menu.js.map +1 -0
  83. package/dist/components/primitives/forms/checkbox.d.ts +6 -0
  84. package/dist/components/primitives/forms/checkbox.js +30 -0
  85. package/dist/components/primitives/forms/checkbox.js.map +1 -0
  86. package/dist/components/primitives/forms/field.d.ts +29 -0
  87. package/dist/components/primitives/forms/field.js +218 -0
  88. package/dist/components/primitives/forms/field.js.map +1 -0
  89. package/dist/components/primitives/forms/input.d.ts +6 -0
  90. package/dist/components/primitives/forms/input.js +22 -0
  91. package/dist/components/primitives/forms/input.js.map +1 -0
  92. package/dist/components/primitives/forms/select.d.ts +22 -0
  93. package/dist/components/primitives/forms/select.js +169 -0
  94. package/dist/components/primitives/forms/select.js.map +1 -0
  95. package/dist/components/primitives/forms/textarea.d.ts +6 -0
  96. package/dist/components/primitives/forms/textarea.js +20 -0
  97. package/dist/components/primitives/forms/textarea.js.map +1 -0
  98. package/dist/components/primitives/icon/icon.d.ts +9 -2
  99. package/dist/components/primitives/icon/icon.js +10 -3
  100. package/dist/components/primitives/icon/icon.js.map +1 -1
  101. package/dist/components/primitives/index.d.ts +23 -7
  102. package/dist/components/primitives/index.js +31 -20
  103. package/dist/components/primitives/index.js.map +1 -1
  104. package/dist/components/primitives/label/label.d.ts +6 -0
  105. package/dist/components/primitives/label/label.js +22 -0
  106. package/dist/components/primitives/label/label.js.map +1 -0
  107. package/dist/components/primitives/layout/layout.d.ts +6 -3
  108. package/dist/components/primitives/layout/layout.js +28 -11
  109. package/dist/components/primitives/layout/layout.js.map +1 -1
  110. package/dist/components/primitives/link/link.d.ts +11 -5
  111. package/dist/components/primitives/link/link.js +38 -11
  112. package/dist/components/primitives/link/link.js.map +1 -1
  113. package/dist/components/primitives/separator/separator.js +1 -1
  114. package/dist/components/primitives/separator/separator.js.map +1 -1
  115. package/dist/components/primitives/sheet/sheet.d.ts +29 -0
  116. package/dist/components/primitives/sheet/sheet.js +117 -0
  117. package/dist/components/primitives/sheet/sheet.js.map +1 -0
  118. package/dist/components/primitives/skeleton/skeleton.js +1 -1
  119. package/dist/components/primitives/skeleton/skeleton.js.map +1 -1
  120. package/dist/components/primitives/sonner/sonner.d.ts +7 -0
  121. package/dist/components/primitives/sonner/sonner.js +42 -0
  122. package/dist/components/primitives/sonner/sonner.js.map +1 -0
  123. package/dist/components/primitives/sonner/use-toast.d.ts +24 -0
  124. package/dist/components/primitives/sonner/use-toast.js +21 -0
  125. package/dist/components/primitives/sonner/use-toast.js.map +1 -0
  126. package/dist/components/primitives/spinner/spinner.js +1 -1
  127. package/dist/components/primitives/spinner/spinner.js.map +1 -1
  128. package/dist/components/primitives/stack/stack.d.ts +3 -0
  129. package/dist/components/primitives/stack/stack.js +34 -4
  130. package/dist/components/primitives/stack/stack.js.map +1 -1
  131. package/dist/components/primitives/text/{text-heading.d.ts → heading.d.ts} +5 -5
  132. package/dist/components/primitives/text/{text-heading.js → heading.js} +11 -11
  133. package/dist/components/primitives/text/heading.js.map +1 -0
  134. package/dist/components/primitives/text/internal/text-element.d.ts +7 -3
  135. package/dist/components/primitives/text/internal/text-element.js +4 -2
  136. package/dist/components/primitives/text/internal/text-element.js.map +1 -1
  137. package/dist/components/primitives/text/text-code.d.ts +26 -0
  138. package/dist/components/primitives/text/text-code.js +44 -0
  139. package/dist/components/primitives/text/text-code.js.map +1 -0
  140. package/dist/components/primitives/text/text-div.js +2 -2
  141. package/dist/components/primitives/text/text-div.js.map +1 -1
  142. package/dist/components/primitives/text/text-span.js +2 -2
  143. package/dist/components/primitives/text/text-span.js.map +1 -1
  144. package/dist/components/primitives/text/text-time.js +2 -2
  145. package/dist/components/primitives/text/text-time.js.map +1 -1
  146. package/dist/components/primitives/text/{text-paragraph.d.ts → text.d.ts} +4 -4
  147. package/dist/components/primitives/text/{text-paragraph.js → text.js} +11 -11
  148. package/dist/components/primitives/text/text.js.map +1 -0
  149. package/dist/components/primitives/{ui-image.d.ts → ui-image/ui-image.d.ts} +1 -1
  150. package/dist/components/primitives/{ui-image.js → ui-image/ui-image.js} +3 -3
  151. package/dist/components/primitives/ui-image/ui-image.js.map +1 -0
  152. package/dist/components/primitives/ui-link/ui-link.d.ts +8 -0
  153. package/dist/components/primitives/ui-link/ui-link.js +19 -0
  154. package/dist/components/primitives/ui-link/ui-link.js.map +1 -0
  155. package/dist/components/providers/LinkContext.d.ts +1 -1
  156. package/dist/components/providers/LinkContext.js +1 -1
  157. package/dist/components/providers/LinkContext.js.map +1 -1
  158. package/dist/components/providers/SingularityContext.d.ts +4 -1
  159. package/dist/components/providers/SingularityContext.js +7 -3
  160. package/dist/components/providers/SingularityContext.js.map +1 -1
  161. package/dist/components/providers/auth-provider.d.ts +15 -0
  162. package/dist/components/providers/auth-provider.js +30 -0
  163. package/dist/components/providers/auth-provider.js.map +1 -0
  164. package/dist/components/providers/index.d.ts +3 -0
  165. package/dist/components/providers/index.js +5 -3
  166. package/dist/components/providers/index.js.map +1 -1
  167. package/dist/components/providers/theme-provider.d.ts +27 -0
  168. package/dist/components/providers/theme-provider.js +75 -0
  169. package/dist/components/providers/theme-provider.js.map +1 -0
  170. package/dist/components/templates/container/container.d.ts +20 -0
  171. package/dist/components/templates/container/container.js +58 -0
  172. package/dist/components/templates/container/container.js.map +1 -0
  173. package/dist/components/templates/footer/footer.d.ts +5 -0
  174. package/dist/components/templates/footer/footer.js +12 -0
  175. package/dist/components/templates/footer/footer.js.map +1 -0
  176. package/dist/components/templates/form/form.d.ts +5 -0
  177. package/dist/components/templates/form/form.js +141 -0
  178. package/dist/components/templates/form/form.js.map +1 -0
  179. package/dist/components/templates/hero/hero.d.ts +18 -0
  180. package/dist/components/{sections → templates}/hero/hero.js +52 -22
  181. package/dist/components/templates/hero/hero.js.map +1 -0
  182. package/dist/components/templates/index.d.ts +4 -2
  183. package/dist/components/templates/index.js +4 -2
  184. package/dist/components/templates/index.js.map +1 -1
  185. package/dist/components/templates/navigation/header.d.ts +19 -0
  186. package/dist/components/templates/navigation/header.js +222 -0
  187. package/dist/components/templates/navigation/header.js.map +1 -0
  188. package/dist/components/templates/navigation/index.d.ts +3 -0
  189. package/dist/components/templates/navigation/index.js +2 -0
  190. package/dist/components/templates/navigation/index.js.map +1 -0
  191. package/dist/css/variables.css +2 -2
  192. package/dist/css/variables.css.map +1 -1
  193. package/dist/data/authors.d.ts +12 -0
  194. package/dist/data/authors.js +33 -0
  195. package/dist/data/authors.js.map +1 -0
  196. package/dist/data/posts.d.ts +5 -3
  197. package/dist/data/posts.js +66 -47
  198. package/dist/data/posts.js.map +1 -1
  199. package/dist/index.d.ts +42 -12
  200. package/dist/index.js +1 -1
  201. package/dist/index.js.map +1 -1
  202. package/dist/lib/helpers/index.js +1 -1
  203. package/dist/lib/helpers/index.js.map +1 -1
  204. package/dist/lib/index.js +2 -2
  205. package/dist/lib/index.js.map +1 -1
  206. package/dist/lib/types.d.ts +4 -8
  207. package/dist/main.css +1528 -85
  208. package/dist/main.css.map +1 -1
  209. package/dist/{utils.js → utils/index.js} +1 -1
  210. package/dist/utils/index.js.map +1 -0
  211. package/dist/utils/index.test.js +37 -0
  212. package/dist/utils/index.test.js.map +1 -0
  213. package/package.json +69 -44
  214. package/dist/components/primitives/button/button.js.map +0 -1
  215. package/dist/components/primitives/link/link-button.js +0 -21
  216. package/dist/components/primitives/link/link-button.js.map +0 -1
  217. package/dist/components/primitives/text/text-heading.js.map +0 -1
  218. package/dist/components/primitives/text/text-paragraph.js.map +0 -1
  219. package/dist/components/primitives/ui-image.js.map +0 -1
  220. package/dist/components/primitives/ui-link.d.ts +0 -8
  221. package/dist/components/primitives/ui-link.js +0 -16
  222. package/dist/components/primitives/ui-link.js.map +0 -1
  223. package/dist/components/sections/body/body.d.ts +0 -19
  224. package/dist/components/sections/body/body.js +0 -49
  225. package/dist/components/sections/body/body.js.map +0 -1
  226. package/dist/components/sections/footer/footer.d.ts +0 -12
  227. package/dist/components/sections/footer/footer.js +0 -59
  228. package/dist/components/sections/footer/footer.js.map +0 -1
  229. package/dist/components/sections/hero/hero.d.ts +0 -6
  230. package/dist/components/sections/hero/hero.js.map +0 -1
  231. package/dist/components/sections/index.d.ts +0 -3
  232. package/dist/components/sections/index.js +0 -4
  233. package/dist/components/sections/index.js.map +0 -1
  234. package/dist/components/templates/blogpost/blogpost.js +0 -173
  235. package/dist/components/templates/blogpost/blogpost.js.map +0 -1
  236. package/dist/components/templates/startpage/startpage.js +0 -48
  237. package/dist/components/templates/startpage/startpage.js.map +0 -1
  238. package/dist/components/units/index.js +0 -1
  239. package/dist/components/units/index.js.map +0 -1
  240. package/dist/utils.js.map +0 -1
  241. /package/dist/components/{templates → pages}/blogpost/blogpost.d.ts +0 -0
  242. /package/dist/components/{templates → pages}/startpage/startpage.d.ts +0 -0
  243. /package/dist/{utils.d.ts → utils/index.d.ts} +0 -0
  244. /package/dist/{components/units/index.d.ts → utils/index.test.d.ts} +0 -0
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { useIsClient } from "../../lib";
3
+ import { useIsClient } from "singularity-components/lib";
4
4
  import {
5
5
  DefaultImage,
6
6
  useImage
7
- } from "../providers/ImageContext";
8
- import { Skeleton } from "./skeleton/skeleton";
7
+ } from "singularity-components/components/providers/ImageContext";
8
+ import { Skeleton } from "../skeleton/skeleton.js";
9
9
  function UiImage({
10
10
  showServerSideDefaultImageComponent,
11
11
  ...props
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/primitives/ui-image/ui-image.tsx"],"sourcesContent":["\"use client\";\r\nimport { useIsClient } from \"singularity-components/lib\";\r\nimport {\r\n DefaultImage,\r\n useImage,\r\n type BaseImageProps,\r\n} from \"singularity-components/components/providers/ImageContext\";\r\nimport { Skeleton } from \"../skeleton/skeleton\";\r\n\r\ntype Props = {\r\n showServerSideDefaultImageComponent?: boolean;\r\n} & BaseImageProps;\r\n\r\nexport function UiImage({\r\n showServerSideDefaultImageComponent,\r\n ...props\r\n}: Props) {\r\n const isClient = useIsClient();\r\n\r\n const ImageComponent = useImage();\r\n\r\n if (!isClient) {\r\n if (showServerSideDefaultImageComponent) {\r\n return (\r\n <DefaultImage\r\n src={props.src}\r\n alt={props.alt}\r\n className={props.className}\r\n />\r\n );\r\n } else {\r\n return <Skeleton />;\r\n }\r\n }\r\n\r\n return <ImageComponent {...props} />;\r\n}\r\n"],"mappings":";AAwBQ;AAvBR,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,gBAAgB;AAMlB,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAAU;AACR,QAAM,WAAW,YAAY;AAE7B,QAAM,iBAAiB,SAAS;AAEhC,MAAI,CAAC,UAAU;AACb,QAAI,qCAAqC;AACvC,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,MAAM;AAAA,UACX,KAAK,MAAM;AAAA,UACX,WAAW,MAAM;AAAA;AAAA,MACnB;AAAA,IAEJ,OAAO;AACL,aAAO,oBAAC,YAAS;AAAA,IACnB;AAAA,EACF;AAEA,SAAO,oBAAC,kBAAgB,GAAG,OAAO;AACpC;","names":[]}
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { BaseLinkProps } from '../../providers/LinkContext.js';
3
+ import 'react';
4
+
5
+ type Props = BaseLinkProps;
6
+ declare const UiLink: ({ ...props }: Props) => react_jsx_runtime.JSX.Element;
7
+
8
+ export { UiLink };
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useIsClient } from "singularity-components/lib";
4
+ import {
5
+ useLink,
6
+ DefaultLink
7
+ } from "../../providers/index.js";
8
+ const UiLink = ({ ...props }) => {
9
+ const isClient = useIsClient();
10
+ const LinkComponent = useLink();
11
+ if (!isClient) {
12
+ return /* @__PURE__ */ jsx(DefaultLink, { to: props.to, className: props.className, children: props.children });
13
+ }
14
+ return /* @__PURE__ */ jsx(LinkComponent, { className: props.className, ...props, children: props.children });
15
+ };
16
+ export {
17
+ UiLink
18
+ };
19
+ //# sourceMappingURL=ui-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/primitives/ui-link/ui-link.tsx"],"sourcesContent":["\"use client\";\r\nimport { useIsClient } from \"singularity-components/lib\";\r\nimport {\r\n type BaseLinkProps,\r\n useLink,\r\n DefaultLink,\r\n} from \"../../providers/index\";\r\n\r\ntype Props = BaseLinkProps;\r\n\r\nexport const UiLink = ({ ...props }: Props) => {\r\n const isClient = useIsClient();\r\n const LinkComponent = useLink();\r\n\r\n if (!isClient) {\r\n return (\r\n <DefaultLink to={props.to} className={props.className}>\r\n {props.children}\r\n </DefaultLink>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent className={props.className} {...props}>\r\n {props.children}\r\n </LinkComponent>\r\n );\r\n};\r\n"],"mappings":";AAgBM;AAfN,SAAS,mBAAmB;AAC5B;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AAIA,MAAM,SAAS,CAAC,EAAE,GAAG,MAAM,MAAa;AAC7C,QAAM,WAAW,YAAY;AAC7B,QAAM,gBAAgB,QAAQ;AAE9B,MAAI,CAAC,UAAU;AACb,WACE,oBAAC,eAAY,IAAI,MAAM,IAAI,WAAW,MAAM,WACzC,gBAAM,UACT;AAAA,EAEJ;AAEA,SACE,oBAAC,iBAAc,WAAW,MAAM,WAAY,GAAG,OAC5C,gBAAM,UACT;AAEJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import React__default, { HTMLAttributeAnchorTarget, ReactNode } from 'react';
2
2
 
3
3
  interface BaseLinkProps {
4
- href: string;
4
+ to: string;
5
5
  target?: HTMLAttributeAnchorTarget;
6
6
  className?: string;
7
7
  [key: string]: any;
@@ -4,7 +4,7 @@ import React, {
4
4
  createContext,
5
5
  useContext
6
6
  } from "react";
7
- const DefaultLink = ({ href, ...rest }) => /* @__PURE__ */ jsx("a", { href, ...rest });
7
+ const DefaultLink = ({ to, ...rest }) => /* @__PURE__ */ jsx("a", { href: to, ...rest });
8
8
  const LinkContext = createContext({
9
9
  LinkComponent: DefaultLink
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/providers/LinkContext.tsx"],"sourcesContent":["\"use client\";\r\nimport React, {\r\n createContext,\r\n useContext,\r\n type HTMLAttributeAnchorTarget,\r\n type ReactNode,\r\n} from \"react\";\r\n\r\nexport interface BaseLinkProps {\r\n href: string;\r\n target?: HTMLAttributeAnchorTarget;\r\n className?: string;\r\n [key: string]: any; // allow framework-specific props\r\n}\r\n\r\n// Define the LinkComponent type\r\nexport type LinkComponentType<P extends BaseLinkProps = BaseLinkProps> =\r\n React.ComponentType<P>;\r\n\r\n// Define the context value\r\ninterface LinkContextValue {\r\n LinkComponent: LinkComponentType;\r\n}\r\n\r\n// Default <a> fallback\r\nexport const DefaultLink: LinkComponentType = ({ href, ...rest }) => (\r\n <a href={href} {...rest} />\r\n);\r\n\r\n// Create the context\r\nconst LinkContext = createContext<LinkContextValue>({\r\n LinkComponent: DefaultLink,\r\n});\r\n\r\n// Provider props (type-safe)\r\ninterface LinkProviderProps {\r\n LinkComponent: LinkComponentType;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LinkProvider: React.FC<LinkProviderProps> = ({\r\n LinkComponent,\r\n children,\r\n}) => (\r\n <LinkContext.Provider value={{ LinkComponent }}>\r\n {children}\r\n </LinkContext.Provider>\r\n);\r\n\r\nexport const useLink = <\r\n P extends BaseLinkProps = BaseLinkProps\r\n>(): LinkComponentType<P> => {\r\n const ctx = useContext(LinkContext);\r\n if (!ctx) {\r\n throw new Error(\"useLink must be used within an LinkProvider\");\r\n }\r\n return ctx.LinkComponent as LinkComponentType<P>;\r\n};\r\n"],"mappings":";AA0BE;AAzBF,OAAO;AAAA,EACL;AAAA,EACA;AAAA,OAGK;AAmBA,MAAM,cAAiC,CAAC,EAAE,MAAM,GAAG,KAAK,MAC7D,oBAAC,OAAE,MAAa,GAAG,MAAM;AAI3B,MAAM,cAAc,cAAgC;AAAA,EAClD,eAAe;AACjB,CAAC;AAQM,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AACF,MACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,cAAc,GAC1C,UACH;AAGK,MAAM,UAAU,MAEM;AAC3B,QAAM,MAAM,WAAW,WAAW;AAClC,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,SAAO,IAAI;AACb;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/providers/LinkContext.tsx"],"sourcesContent":["\"use client\";\r\nimport React, {\r\n createContext,\r\n useContext,\r\n type HTMLAttributeAnchorTarget,\r\n type ReactNode,\r\n} from \"react\";\r\n\r\nexport interface BaseLinkProps {\r\n to: string;\r\n target?: HTMLAttributeAnchorTarget;\r\n className?: string;\r\n [key: string]: any; // allow framework-specific props\r\n}\r\n\r\n// Define the LinkComponent type\r\nexport type LinkComponentType<P extends BaseLinkProps = BaseLinkProps> =\r\n React.ComponentType<P>;\r\n\r\n// Define the context value\r\ninterface LinkContextValue {\r\n LinkComponent: LinkComponentType;\r\n}\r\n\r\n// Default <a> fallback\r\nexport const DefaultLink: LinkComponentType = ({ to, ...rest }) => (\r\n <a href={to} {...rest} />\r\n);\r\n\r\n// Create the context\r\nconst LinkContext = createContext<LinkContextValue>({\r\n LinkComponent: DefaultLink,\r\n});\r\n\r\n// Provider props (type-safe)\r\ninterface LinkProviderProps {\r\n LinkComponent: LinkComponentType;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LinkProvider: React.FC<LinkProviderProps> = ({\r\n LinkComponent,\r\n children,\r\n}) => (\r\n <LinkContext.Provider value={{ LinkComponent }}>\r\n {children}\r\n </LinkContext.Provider>\r\n);\r\n\r\nexport const useLink = <\r\n P extends BaseLinkProps = BaseLinkProps,\r\n>(): LinkComponentType<P> => {\r\n const ctx = useContext(LinkContext);\r\n if (!ctx) {\r\n throw new Error(\"useLink must be used within an LinkProvider\");\r\n }\r\n return ctx.LinkComponent as LinkComponentType<P>;\r\n};\r\n"],"mappings":";AA0BE;AAzBF,OAAO;AAAA,EACL;AAAA,EACA;AAAA,OAGK;AAmBA,MAAM,cAAiC,CAAC,EAAE,IAAI,GAAG,KAAK,MAC3D,oBAAC,OAAE,MAAM,IAAK,GAAG,MAAM;AAIzB,MAAM,cAAc,cAAgC;AAAA,EAClD,eAAe;AACjB,CAAC;AAQM,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AACF,MACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,cAAc,GAC1C,UACH;AAGK,MAAM,UAAU,MAEM;AAC3B,QAAM,MAAM,WAAW,WAAW;AAClC,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,SAAO,IAAI;AACb;","names":[]}
@@ -1,10 +1,13 @@
1
+ import React__default, { ReactNode } from 'react';
1
2
  import { ImageComponentType } from './ImageContext.js';
2
3
  import { LinkComponentType } from './LinkContext.js';
3
- import React__default, { ReactNode } from 'react';
4
+ import { Theme } from './theme-provider.js';
5
+ import 'react/jsx-runtime';
4
6
 
5
7
  interface SingularityProviderProps {
6
8
  ImageComponent?: ImageComponentType;
7
9
  LinkComponent?: LinkComponentType;
10
+ defaultTheme?: Theme;
8
11
  children: ReactNode;
9
12
  }
10
13
  declare const SingularityProvider: React__default.FC<SingularityProviderProps>;
@@ -4,17 +4,21 @@ import React, {} from "react";
4
4
  import {
5
5
  ImageProvider,
6
6
  DefaultImage
7
- } from "./ImageContext";
7
+ } from "./ImageContext.js";
8
8
  import {
9
9
  LinkProvider,
10
10
  DefaultLink
11
- } from "./LinkContext";
11
+ } from "./LinkContext.js";
12
+ import {
13
+ ThemeProvider
14
+ } from "./theme-provider.js";
12
15
  const SingularityProvider = ({
13
16
  ImageComponent = DefaultImage,
14
17
  LinkComponent = DefaultLink,
18
+ defaultTheme = "system",
15
19
  children
16
20
  }) => {
17
- return /* @__PURE__ */ jsx(ImageProvider, { ImageComponent, children: /* @__PURE__ */ jsx(LinkProvider, { LinkComponent, children }) });
21
+ return /* @__PURE__ */ jsx(ThemeProvider, { defaultTheme, children: /* @__PURE__ */ jsx(ImageProvider, { ImageComponent, children: /* @__PURE__ */ jsx(LinkProvider, { LinkComponent, children }) }) });
18
22
  };
19
23
  export {
20
24
  SingularityProvider
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/providers/SingularityContext.tsx"],"sourcesContent":["\"use client\";\nimport React, { type ReactNode } from \"react\";\nimport {\n ImageProvider,\n type ImageComponentType,\n DefaultImage,\n} from \"./ImageContext\";\nimport {\n LinkProvider,\n type LinkComponentType,\n DefaultLink,\n} from \"./LinkContext\";\n\ninterface SingularityProviderProps {\n ImageComponent?: ImageComponentType;\n LinkComponent?: LinkComponentType;\n children: ReactNode;\n}\n\nexport const SingularityProvider: React.FC<SingularityProviderProps> = ({\n ImageComponent = DefaultImage,\n LinkComponent = DefaultLink,\n children,\n}) => {\n return (\n <ImageProvider ImageComponent={ImageComponent}>\n <LinkProvider LinkComponent={LinkComponent}>{children}</LinkProvider>\n </ImageProvider>\n );\n};\n"],"mappings":";AA0BM;AAzBN,OAAO,eAA+B;AACtC;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAQA,MAAM,sBAA0D,CAAC;AAAA,EACtE,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB;AACF,MAAM;AACJ,SACE,oBAAC,iBAAc,gBACb,8BAAC,gBAAa,eAA+B,UAAS,GACxD;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/providers/SingularityContext.tsx"],"sourcesContent":["\"use client\";\nimport React, { type ReactNode } from \"react\";\nimport {\n ImageProvider,\n type ImageComponentType,\n DefaultImage,\n} from \"./ImageContext\";\nimport {\n LinkProvider,\n type LinkComponentType,\n DefaultLink,\n} from \"./LinkContext\";\n\nimport {\n ThemeProvider,\n type Theme,\n} from \"./theme-provider\";\n\ninterface SingularityProviderProps {\n ImageComponent?: ImageComponentType;\n LinkComponent?: LinkComponentType;\n defaultTheme?: Theme;\n children: ReactNode;\n}\n\nexport const SingularityProvider: React.FC<SingularityProviderProps> = ({\n ImageComponent = DefaultImage,\n LinkComponent = DefaultLink,\n defaultTheme = \"system\",\n children,\n}) => {\n return (\n <ThemeProvider defaultTheme={defaultTheme}>\n <ImageProvider ImageComponent={ImageComponent}>\n <LinkProvider LinkComponent={LinkComponent}>{children}</LinkProvider>\n </ImageProvider>\n </ThemeProvider>\n );\n};\n"],"mappings":";AAkCQ;AAjCR,OAAO,eAA+B;AACtC;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,OAEK;AASA,MAAM,sBAA0D,CAAC;AAAA,EACtE,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf;AACF,MAAM;AACJ,SACE,oBAAC,iBAAc,cACb,8BAAC,iBAAc,gBACb,8BAAC,gBAAa,eAA+B,UAAS,GACxD,GACF;AAEJ;","names":[]}
@@ -0,0 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface AuthContextType {
5
+ isLoggedIn: boolean;
6
+ userName: string;
7
+ login: (name: string) => void;
8
+ logout: () => void;
9
+ }
10
+ declare function AuthProvider({ children }: {
11
+ children: ReactNode;
12
+ }): react_jsx_runtime.JSX.Element;
13
+ declare const useAuth: () => AuthContextType;
14
+
15
+ export { AuthProvider, useAuth };
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useState } from "react";
4
+ const AuthContext = createContext({
5
+ isLoggedIn: false,
6
+ userName: "",
7
+ login: () => {
8
+ },
9
+ logout: () => {
10
+ }
11
+ });
12
+ function AuthProvider({ children }) {
13
+ const [isLoggedIn, setIsLoggedIn] = useState(false);
14
+ const [userName, setUserName] = useState("");
15
+ const login = (name) => {
16
+ setIsLoggedIn(true);
17
+ setUserName(name);
18
+ };
19
+ const logout = () => {
20
+ setIsLoggedIn(false);
21
+ setUserName("");
22
+ };
23
+ return /* @__PURE__ */ jsx(AuthContext.Provider, { value: { isLoggedIn, userName, login, logout }, children });
24
+ }
25
+ const useAuth = () => useContext(AuthContext);
26
+ export {
27
+ AuthProvider,
28
+ useAuth
29
+ };
30
+ //# sourceMappingURL=auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/providers/auth-provider.tsx"],"sourcesContent":["\"use client\";\nimport { createContext, useContext, useState, type ReactNode } from \"react\";\n\ninterface AuthContextType {\n isLoggedIn: boolean;\n userName: string;\n login: (name: string) => void;\n logout: () => void;\n}\n\nconst AuthContext = createContext<AuthContextType>({\n isLoggedIn: false,\n userName: \"\",\n login: () => {},\n logout: () => {},\n});\n\nexport function AuthProvider({ children }: { children: ReactNode }) {\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n const [userName, setUserName] = useState(\"\");\n\n const login = (name: string) => {\n setIsLoggedIn(true);\n setUserName(name);\n };\n\n const logout = () => {\n setIsLoggedIn(false);\n setUserName(\"\");\n };\n\n return (\n <AuthContext.Provider value={{ isLoggedIn, userName, login, logout }}>\n {children}\n </AuthContext.Provider>\n );\n}\n\nexport const useAuth = () => useContext(AuthContext);\n"],"mappings":";AAgCI;AA/BJ,SAAS,eAAe,YAAY,gBAAgC;AASpE,MAAM,cAAc,cAA+B;AAAA,EACjD,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,QAAQ,MAAM;AAAA,EAAC;AACjB,CAAC;AAEM,SAAS,aAAa,EAAE,SAAS,GAA4B;AAClE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,EAAE;AAE3C,QAAM,QAAQ,CAAC,SAAiB;AAC9B,kBAAc,IAAI;AAClB,gBAAY,IAAI;AAAA,EAClB;AAEA,QAAM,SAAS,MAAM;AACnB,kBAAc,KAAK;AACnB,gBAAY,EAAE;AAAA,EAChB;AAEA,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,YAAY,UAAU,OAAO,OAAO,GAChE,UACH;AAEJ;AAEO,MAAM,UAAU,MAAM,WAAW,WAAW;","names":[]}
@@ -1,4 +1,7 @@
1
1
  export { BaseImageProps, DefaultImage, ImageComponentType, ImageProvider, useImage } from './ImageContext.js';
2
2
  export { BaseLinkProps, DefaultLink, LinkComponentType, LinkProvider, useLink } from './LinkContext.js';
3
3
  export { SingularityProvider } from './SingularityContext.js';
4
+ export { AuthProvider, useAuth } from './auth-provider.js';
5
+ export { Theme, ThemeProvider, ThemeProviderProps, ThemeProviderState, useTheme } from './theme-provider.js';
4
6
  import 'react';
7
+ import 'react/jsx-runtime';
@@ -1,4 +1,6 @@
1
- export * from "./ImageContext";
2
- export * from "./LinkContext";
3
- export * from "./SingularityContext";
1
+ export * from "./ImageContext.js";
2
+ export * from "./LinkContext.js";
3
+ export * from "./SingularityContext.js";
4
+ export * from "./auth-provider.js";
5
+ export * from "./theme-provider.js";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/providers/index.ts"],"sourcesContent":["export * from \"./ImageContext\";\r\nexport * from \"./LinkContext\";\r\nexport * from \"./SingularityContext\";"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/providers/index.ts"],"sourcesContent":["/**\n * Providers index\n *\n * Please keep exports sorted alphabetically by path!\n */\n\nexport * from \"./ImageContext\";\nexport * from \"./LinkContext\";\nexport * from \"./SingularityContext\";\nexport * from \"./auth-provider\";\nexport * from \"./theme-provider\";\n"],"mappings":"AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type Theme = "dark" | "light" | "system";
5
+ type ThemeProviderProps = {
6
+ children: React.ReactNode;
7
+ defaultTheme?: Theme;
8
+ };
9
+ type ThemeProviderState = {
10
+ theme: Theme;
11
+ setTheme: (theme: Theme) => void;
12
+ toggleTheme: () => void;
13
+ resolvedTheme: "light" | "dark";
14
+ mounted: boolean;
15
+ };
16
+ /**
17
+ * ThemeProvider component that manages the application's theme state.
18
+ * Supports "light", "dark", and "system" modes.
19
+ * Default is "system" with a fallback to "dark".
20
+ */
21
+ declare function ThemeProvider({ children, defaultTheme, ...props }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
22
+ /**
23
+ * Hook to access the current theme and setTheme function.
24
+ */
25
+ declare const useTheme: () => ThemeProviderState;
26
+
27
+ export { type Theme, ThemeProvider, type ThemeProviderProps, type ThemeProviderState, useTheme };
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ const initialState = {
5
+ theme: "system",
6
+ setTheme: () => null,
7
+ toggleTheme: () => null,
8
+ resolvedTheme: "dark",
9
+ mounted: false
10
+ };
11
+ const ThemeProviderContext = React.createContext(initialState);
12
+ function ThemeProvider({
13
+ children,
14
+ defaultTheme = "system",
15
+ ...props
16
+ }) {
17
+ const [theme, setThemeState] = React.useState(defaultTheme);
18
+ const [systemTheme, setSystemTheme] = React.useState("dark");
19
+ const [mounted, setMounted] = React.useState(false);
20
+ React.useEffect(() => {
21
+ if (typeof window === "undefined") return;
22
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
23
+ const currentSystem = mediaQuery.matches ? "dark" : "light";
24
+ setSystemTheme(currentSystem);
25
+ const handleChange = () => {
26
+ setSystemTheme(mediaQuery.matches ? "dark" : "light");
27
+ };
28
+ mediaQuery.addEventListener("change", handleChange);
29
+ setMounted(true);
30
+ return () => mediaQuery.removeEventListener("change", handleChange);
31
+ }, []);
32
+ const resolvedTheme = React.useMemo(() => {
33
+ if (theme === "system") return systemTheme;
34
+ return theme;
35
+ }, [theme, systemTheme]);
36
+ React.useEffect(() => {
37
+ if (!mounted) return;
38
+ const root = window.document.documentElement;
39
+ root.classList.remove("light", "dark");
40
+ root.classList.add(resolvedTheme);
41
+ }, [resolvedTheme, mounted]);
42
+ const value = React.useMemo(
43
+ () => ({
44
+ theme,
45
+ setTheme: (newTheme) => {
46
+ setThemeState(newTheme);
47
+ },
48
+ toggleTheme: () => {
49
+ setThemeState((prev) => {
50
+ let currentVisual = prev;
51
+ if (prev === "system") {
52
+ const systemMatch = window.matchMedia("(prefers-color-scheme: dark)").matches;
53
+ currentVisual = systemMatch ? "dark" : "light";
54
+ }
55
+ return currentVisual === "dark" ? "light" : "dark";
56
+ });
57
+ },
58
+ resolvedTheme,
59
+ mounted
60
+ }),
61
+ [theme, resolvedTheme, systemTheme, mounted]
62
+ );
63
+ return /* @__PURE__ */ jsx(ThemeProviderContext.Provider, { ...props, value, children });
64
+ }
65
+ const useTheme = () => {
66
+ const context = React.useContext(ThemeProviderContext);
67
+ if (context === void 0)
68
+ throw new Error("useTheme must be used within a ThemeProvider");
69
+ return context;
70
+ };
71
+ export {
72
+ ThemeProvider,
73
+ useTheme
74
+ };
75
+ //# sourceMappingURL=theme-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/providers/theme-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nexport type Theme = \"dark\" | \"light\" | \"system\";\n\nexport type ThemeProviderProps = {\n children: React.ReactNode;\n defaultTheme?: Theme;\n};\n\nexport type ThemeProviderState = {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n toggleTheme: () => void;\n resolvedTheme: \"light\" | \"dark\";\n mounted: boolean;\n};\n\nconst initialState: ThemeProviderState = {\n theme: \"system\",\n setTheme: () => null,\n toggleTheme: () => null,\n resolvedTheme: \"dark\",\n mounted: false,\n};\n\nconst ThemeProviderContext =\n React.createContext<ThemeProviderState>(initialState);\n\n/**\n * ThemeProvider component that manages the application's theme state.\n * Supports \"light\", \"dark\", and \"system\" modes.\n * Default is \"system\" with a fallback to \"dark\".\n */\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n ...props\n}: ThemeProviderProps) {\n const [theme, setThemeState] = React.useState<Theme>(defaultTheme);\n const [systemTheme, setSystemTheme] = React.useState<\"light\" | \"dark\">(\"dark\"); // Default fallback to dark\n const [mounted, setMounted] = React.useState(false);\n\n // Unified initialization effect\n React.useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n // 1. Detect System Theme\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const currentSystem = mediaQuery.matches ? \"dark\" : \"light\";\n setSystemTheme(currentSystem);\n\n const handleChange = () => {\n setSystemTheme(mediaQuery.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handleChange);\n\n // 2. Mark as mounted\n setMounted(true);\n\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, []);\n\n /**\n * Computed visual theme.\n * Purely derived from state, with a default fallback to \"dark\".\n */\n const resolvedTheme = React.useMemo(() => {\n if (theme === \"system\") return systemTheme;\n return theme as \"light\" | \"dark\";\n }, [theme, systemTheme]);\n\n // Sync resolved theme to document root\n React.useEffect(() => {\n if (!mounted) return;\n\n const root = window.document.documentElement;\n root.classList.remove(\"light\", \"dark\");\n root.classList.add(resolvedTheme);\n }, [resolvedTheme, mounted]);\n\n const value = React.useMemo(\n () => ({\n theme,\n setTheme: (newTheme: Theme) => {\n setThemeState(newTheme);\n },\n toggleTheme: () => {\n setThemeState((prev) => {\n let currentVisual = prev as \"light\" | \"dark\";\n if (prev === \"system\") {\n const systemMatch = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n currentVisual = systemMatch ? \"dark\" : \"light\";\n }\n \n return currentVisual === \"dark\" ? \"light\" : \"dark\";\n });\n },\n resolvedTheme,\n mounted,\n }),\n [theme, resolvedTheme, systemTheme, mounted],\n );\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n\n/**\n * Hook to access the current theme and setTheme function.\n */\nexport const useTheme = () => {\n const context = React.useContext(ThemeProviderContext);\n\n if (context === undefined)\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n\n return context;\n};\n"],"mappings":";AA0GI;AAxGJ,YAAY,WAAW;AAiBvB,MAAM,eAAmC;AAAA,EACvC,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAChB,aAAa,MAAM;AAAA,EACnB,eAAe;AAAA,EACf,SAAS;AACX;AAEA,MAAM,uBACJ,MAAM,cAAkC,YAAY;AAO/C,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,eAAe;AAAA,EACf,GAAG;AACL,GAAuB;AACrB,QAAM,CAAC,OAAO,aAAa,IAAI,MAAM,SAAgB,YAAY;AACjE,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAA2B,MAAM;AAC7E,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAS,KAAK;AAGlD,QAAM,UAAU,MAAM;AACpB,QAAI,OAAO,WAAW,YAAa;AAGnC,UAAM,aAAa,OAAO,WAAW,8BAA8B;AACnE,UAAM,gBAAgB,WAAW,UAAU,SAAS;AACpD,mBAAe,aAAa;AAE5B,UAAM,eAAe,MAAM;AACzB,qBAAe,WAAW,UAAU,SAAS,OAAO;AAAA,IACtD;AACA,eAAW,iBAAiB,UAAU,YAAY;AAGlD,eAAW,IAAI;AAEf,WAAO,MAAM,WAAW,oBAAoB,UAAU,YAAY;AAAA,EACpE,GAAG,CAAC,CAAC;AAML,QAAM,gBAAgB,MAAM,QAAQ,MAAM;AACxC,QAAI,UAAU,SAAU,QAAO;AAC/B,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,WAAW,CAAC;AAGvB,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,QAAS;AAEd,UAAM,OAAO,OAAO,SAAS;AAC7B,SAAK,UAAU,OAAO,SAAS,MAAM;AACrC,SAAK,UAAU,IAAI,aAAa;AAAA,EAClC,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO;AAAA,MACL;AAAA,MACA,UAAU,CAAC,aAAoB;AAC7B,sBAAc,QAAQ;AAAA,MACxB;AAAA,MACA,aAAa,MAAM;AACjB,sBAAc,CAAC,SAAS;AACtB,cAAI,gBAAgB;AACpB,cAAI,SAAS,UAAU;AACrB,kBAAM,cAAc,OAAO,WAAW,8BAA8B,EAAE;AACtE,4BAAgB,cAAc,SAAS;AAAA,UACzC;AAEA,iBAAO,kBAAkB,SAAS,UAAU;AAAA,QAC9C,CAAC;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,OAAO,eAAe,aAAa,OAAO;AAAA,EAC7C;AAEA,SACE,oBAAC,qBAAqB,UAArB,EAA+B,GAAG,OAAO,OACvC,UACH;AAEJ;AAKO,MAAM,WAAW,MAAM;AAC5B,QAAM,UAAU,MAAM,WAAW,oBAAoB;AAErD,MAAI,YAAY;AACd,UAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAO;AACT;","names":[]}
@@ -0,0 +1,20 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { PropsWithChildren } from 'react';
4
+
5
+ type Prop = {
6
+ children?: React.ReactNode;
7
+ as?: "body" | "div";
8
+ } & React.HTMLAttributes<HTMLElement>;
9
+ declare function Container({ children, as: Component, className, ...rest }: PropsWithChildren<Prop>): react_jsx_runtime.JSX.Element;
10
+ declare namespace Container {
11
+ var Header: ({ children, as: Component, ...props }: ChildProp) => react_jsx_runtime.JSX.Element;
12
+ var Content: ({ children, as: Component, ...props }: ChildProp) => react_jsx_runtime.JSX.Element;
13
+ var Footer: ({ children, as: Component, ...props }: ChildProp) => react_jsx_runtime.JSX.Element;
14
+ }
15
+ type ChildProp = {
16
+ children?: React.ReactNode;
17
+ as?: React.ElementType;
18
+ } & React.HTMLAttributes<HTMLElement>;
19
+
20
+ export { Container };
@@ -0,0 +1,58 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../../../utils/index.js";
4
+ function Container({
5
+ children,
6
+ as: Component = "div",
7
+ className,
8
+ ...rest
9
+ }) {
10
+ const childArray = React.Children.toArray(children);
11
+ const header = childArray.find(
12
+ (child) => React.isValidElement(child) && child.type === Header
13
+ );
14
+ const content = childArray.find(
15
+ (child) => React.isValidElement(child) && child.type === Content
16
+ );
17
+ const footer = childArray.find(
18
+ (child) => React.isValidElement(child) && child.type === Footer
19
+ );
20
+ const gridRows = cn(
21
+ "sg:grid",
22
+ header && footer && "sg:grid-rows-[auto_1fr_auto]",
23
+ header && !footer && "sg:grid-rows-[auto_1fr]",
24
+ !header && footer && "sg:grid-rows-[1fr_auto]",
25
+ !header && !footer && "sg:grid-rows-[1fr]",
26
+ className
27
+ );
28
+ return /* @__PURE__ */ jsxs(Component, { className: gridRows, ...rest, children: [
29
+ header,
30
+ content,
31
+ footer
32
+ ] });
33
+ }
34
+ function Header({ children, as: Component, ...props }) {
35
+ if (Component) {
36
+ return /* @__PURE__ */ jsx(Component, { ...props, children });
37
+ }
38
+ return /* @__PURE__ */ jsx(Fragment, { children });
39
+ }
40
+ function Content({ children, as: Component, ...props }) {
41
+ if (Component) {
42
+ return /* @__PURE__ */ jsx(Component, { ...props, children });
43
+ }
44
+ return /* @__PURE__ */ jsx(Fragment, { children });
45
+ }
46
+ function Footer({ children, as: Component, ...props }) {
47
+ if (Component) {
48
+ return /* @__PURE__ */ jsx(Component, { ...props, children });
49
+ }
50
+ return /* @__PURE__ */ jsx(Fragment, { children });
51
+ }
52
+ Container.Header = Header;
53
+ Container.Content = Content;
54
+ Container.Footer = Footer;
55
+ export {
56
+ Container
57
+ };
58
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/templates/container/container.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../../utils/index\";\nimport type { PropsWithChildren } from \"react\";\n\ntype Prop = {\n children?: React.ReactNode;\n as?: \"body\" | \"div\";\n} & React.HTMLAttributes<HTMLElement>;\n\nfunction Container({\n children,\n as: Component = \"div\",\n className,\n ...rest\n}: PropsWithChildren<Prop>) {\n const childArray = React.Children.toArray(children);\n\n const header = childArray.find(\n (child) => React.isValidElement(child) && child.type === Header,\n );\n const content = childArray.find(\n (child) => React.isValidElement(child) && child.type === Content,\n );\n const footer = childArray.find(\n (child) => React.isValidElement(child) && child.type === Footer,\n );\n\n const gridRows = cn(\n \"sg:grid\",\n header && footer && \"sg:grid-rows-[auto_1fr_auto]\",\n header && !footer && \"sg:grid-rows-[auto_1fr]\",\n !header && footer && \"sg:grid-rows-[1fr_auto]\",\n !header && !footer && \"sg:grid-rows-[1fr]\",\n className,\n );\n\n return (\n <Component className={gridRows} {...rest}>\n {header}\n {content}\n {footer}\n </Component>\n );\n}\n\ntype ChildProp = {\n children?: React.ReactNode;\n as?: React.ElementType;\n} & React.HTMLAttributes<HTMLElement>;\n\nfunction Header({ children, as: Component, ...props }: ChildProp) {\n if (Component) {\n return <Component {...props}>{children}</Component>;\n }\n return <>{children}</>;\n}\n\nfunction Content({ children, as: Component, ...props }: ChildProp) {\n if (Component) {\n return <Component {...props}>{children}</Component>;\n }\n return <>{children}</>;\n}\n\nfunction Footer({ children, as: Component, ...props }: ChildProp) {\n if (Component) {\n return <Component {...props}>{children}</Component>;\n }\n return <>{children}</>;\n}\n\nContainer.Header = Header;\nContainer.Content = Content;\nContainer.Footer = Footer;\n\nexport { Container };\n"],"mappings":"AAqCI,SAiBK,UAFE,KAfP;AArCJ,YAAY,WAAW;AACvB,SAAS,UAAU;AAQnB,SAAS,UAAU;AAAA,EACjB;AAAA,EACA,IAAI,YAAY;AAAA,EAChB;AAAA,EACA,GAAG;AACL,GAA4B;AAC1B,QAAM,aAAa,MAAM,SAAS,QAAQ,QAAQ;AAElD,QAAM,SAAS,WAAW;AAAA,IACxB,CAAC,UAAU,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS;AAAA,EAC3D;AACA,QAAM,UAAU,WAAW;AAAA,IACzB,CAAC,UAAU,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS;AAAA,EAC3D;AACA,QAAM,SAAS,WAAW;AAAA,IACxB,CAAC,UAAU,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS;AAAA,EAC3D;AAEA,QAAM,WAAW;AAAA,IACf;AAAA,IACA,UAAU,UAAU;AAAA,IACpB,UAAU,CAAC,UAAU;AAAA,IACrB,CAAC,UAAU,UAAU;AAAA,IACrB,CAAC,UAAU,CAAC,UAAU;AAAA,IACtB;AAAA,EACF;AAEA,SACE,qBAAC,aAAU,WAAW,UAAW,GAAG,MACjC;AAAA;AAAA,IACA;AAAA,IACA;AAAA,KACH;AAEJ;AAOA,SAAS,OAAO,EAAE,UAAU,IAAI,WAAW,GAAG,MAAM,GAAc;AAChE,MAAI,WAAW;AACb,WAAO,oBAAC,aAAW,GAAG,OAAQ,UAAS;AAAA,EACzC;AACA,SAAO,gCAAG,UAAS;AACrB;AAEA,SAAS,QAAQ,EAAE,UAAU,IAAI,WAAW,GAAG,MAAM,GAAc;AACjE,MAAI,WAAW;AACb,WAAO,oBAAC,aAAW,GAAG,OAAQ,UAAS;AAAA,EACzC;AACA,SAAO,gCAAG,UAAS;AACrB;AAEA,SAAS,OAAO,EAAE,UAAU,IAAI,WAAW,GAAG,MAAM,GAAc;AAChE,MAAI,WAAW;AACb,WAAO,oBAAC,aAAW,GAAG,OAAQ,UAAS;AAAA,EACzC;AACA,SAAO,gCAAG,UAAS;AACrB;AAEA,UAAU,SAAS;AACnB,UAAU,UAAU;AACpB,UAAU,SAAS;","names":[]}
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function Footer(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { Footer };
@@ -0,0 +1,12 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Layout, TextSpan } from "../../primitives/index.js";
3
+ function Footer() {
4
+ return /* @__PURE__ */ jsx(Layout, { as: "footer", className: "sg:border-t sg:mt-auto sg:py-12", children: /* @__PURE__ */ jsx(Layout.Col1, { className: "sg:text-center", children: /* @__PURE__ */ jsxs(TextSpan, { size: "xl", fontweight: "bold", foreground: "primary", children: [
5
+ "filion",
6
+ /* @__PURE__ */ jsx(TextSpan, { size: "xl", fontweight: "bold", foreground: "secondary", children: "." })
7
+ ] }) }) });
8
+ }
9
+ export {
10
+ Footer
11
+ };
12
+ //# sourceMappingURL=footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/templates/footer/footer.tsx"],"sourcesContent":["import { Layout, TextSpan } from \"../../primitives/index\";\r\n\r\nfunction Footer() {\r\n return (\r\n <Layout as=\"footer\" className=\"sg:border-t sg:mt-auto sg:py-12\">\r\n <Layout.Col1 className=\"sg:text-center\">\r\n <TextSpan size=\"xl\" fontweight=\"bold\" foreground=\"primary\">\r\n filion\r\n <TextSpan size=\"xl\" fontweight=\"bold\" foreground=\"secondary\">\r\n .\r\n </TextSpan>\r\n </TextSpan>\r\n </Layout.Col1>\r\n </Layout>\r\n );\r\n}\r\n\r\nexport { Footer };\r\n"],"mappings":"AAMQ,SAEE,KAFF;AANR,SAAS,QAAQ,gBAAgB;AAEjC,SAAS,SAAS;AAChB,SACE,oBAAC,UAAO,IAAG,UAAS,WAAU,mCAC5B,8BAAC,OAAO,MAAP,EAAY,WAAU,kBACrB,+BAAC,YAAS,MAAK,MAAK,YAAW,QAAO,YAAW,WAAU;AAAA;AAAA,IAEzD,oBAAC,YAAS,MAAK,MAAK,YAAW,QAAO,YAAW,aAAY,eAE7D;AAAA,KACF,GACF,GACF;AAEJ;","names":[]}
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function Form(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { Form as default };
@@ -0,0 +1,141 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ Button,
4
+ Checkbox,
5
+ Input,
6
+ Layout,
7
+ Select,
8
+ SelectContent,
9
+ SelectGroup,
10
+ SelectItem,
11
+ SelectTrigger,
12
+ SelectValue,
13
+ Textarea
14
+ } from "../../primitives/index.js";
15
+ import {
16
+ Field,
17
+ FieldDescription,
18
+ FieldGroup,
19
+ FieldLabel,
20
+ FieldLegend,
21
+ FieldSeparator,
22
+ FieldSet
23
+ } from "../../primitives/forms/field.js";
24
+ const months = [
25
+ { label: "MM", value: null },
26
+ { label: "01", value: "01" },
27
+ { label: "02", value: "02" },
28
+ { label: "03", value: "03" },
29
+ { label: "04", value: "04" },
30
+ { label: "05", value: "05" },
31
+ { label: "06", value: "06" },
32
+ { label: "07", value: "07" },
33
+ { label: "08", value: "08" },
34
+ { label: "09", value: "09" },
35
+ { label: "10", value: "10" },
36
+ { label: "11", value: "11" },
37
+ { label: "12", value: "12" }
38
+ ];
39
+ const years = [
40
+ { label: "YYYY", value: null },
41
+ { label: "2024", value: "2024" },
42
+ { label: "2025", value: "2025" },
43
+ { label: "2026", value: "2026" },
44
+ { label: "2027", value: "2027" },
45
+ { label: "2028", value: "2028" },
46
+ { label: "2029", value: "2029" }
47
+ ];
48
+ function Form() {
49
+ return /* @__PURE__ */ jsx(Layout, { children: /* @__PURE__ */ jsx(Layout.Col1, { children: /* @__PURE__ */ jsx("form", { children: /* @__PURE__ */ jsxs(FieldGroup, { children: [
50
+ /* @__PURE__ */ jsxs(FieldSet, { children: [
51
+ /* @__PURE__ */ jsx(FieldLegend, { children: "Payment Method" }),
52
+ /* @__PURE__ */ jsx(FieldDescription, { children: "All transactions are secure and encrypted" }),
53
+ /* @__PURE__ */ jsxs(FieldGroup, { children: [
54
+ /* @__PURE__ */ jsxs(Field, { children: [
55
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: "checkout-7j9-card-name-43j", children: "Name on Card" }),
56
+ /* @__PURE__ */ jsx(
57
+ Input,
58
+ {
59
+ id: "checkout-7j9-card-name-43j",
60
+ placeholder: "Evil Rabbit",
61
+ required: true
62
+ }
63
+ )
64
+ ] }),
65
+ /* @__PURE__ */ jsxs(Field, { children: [
66
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: "checkout-7j9-card-number-uw1", children: "Card Number" }),
67
+ /* @__PURE__ */ jsx(
68
+ Input,
69
+ {
70
+ id: "checkout-7j9-card-number-uw1",
71
+ placeholder: "1234 5678 9012 3456",
72
+ required: true
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsx(FieldDescription, { children: "Enter your 16-digit card number" })
76
+ ] }),
77
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-4", children: [
78
+ /* @__PURE__ */ jsxs(Field, { children: [
79
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: "checkout-exp-month-ts6", children: "Month" }),
80
+ /* @__PURE__ */ jsxs(Select, { items: months, children: [
81
+ /* @__PURE__ */ jsx(SelectTrigger, { id: "checkout-exp-month-ts6", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
82
+ /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsx(SelectGroup, { children: months.map((item) => /* @__PURE__ */ jsx(SelectItem, { value: item.value, children: item.label }, item.value)) }) })
83
+ ] })
84
+ ] }),
85
+ /* @__PURE__ */ jsxs(Field, { children: [
86
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: "checkout-7j9-exp-year-f59", children: "Year" }),
87
+ /* @__PURE__ */ jsxs(Select, { items: years, children: [
88
+ /* @__PURE__ */ jsx(SelectTrigger, { id: "checkout-7j9-exp-year-f59", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
89
+ /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsx(SelectGroup, { children: years.map((item) => /* @__PURE__ */ jsx(SelectItem, { value: item.value, children: item.label }, item.value)) }) })
90
+ ] })
91
+ ] }),
92
+ /* @__PURE__ */ jsxs(Field, { children: [
93
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: "checkout-7j9-cvv", children: "CVV" }),
94
+ /* @__PURE__ */ jsx(Input, { id: "checkout-7j9-cvv", placeholder: "123", required: true })
95
+ ] })
96
+ ] })
97
+ ] })
98
+ ] }),
99
+ /* @__PURE__ */ jsx(FieldSeparator, {}),
100
+ /* @__PURE__ */ jsxs(FieldSet, { children: [
101
+ /* @__PURE__ */ jsx(FieldLegend, { children: "Billing Address" }),
102
+ /* @__PURE__ */ jsx(FieldDescription, { children: "The billing address associated with your payment method" }),
103
+ /* @__PURE__ */ jsx(FieldGroup, { children: /* @__PURE__ */ jsxs(Field, { orientation: "horizontal", children: [
104
+ /* @__PURE__ */ jsx(
105
+ Checkbox,
106
+ {
107
+ id: "checkout-7j9-same-as-shipping-wgm",
108
+ defaultChecked: true
109
+ }
110
+ ),
111
+ /* @__PURE__ */ jsx(
112
+ FieldLabel,
113
+ {
114
+ htmlFor: "checkout-7j9-same-as-shipping-wgm",
115
+ className: "font-normal",
116
+ children: "Same as shipping address"
117
+ }
118
+ )
119
+ ] }) })
120
+ ] }),
121
+ /* @__PURE__ */ jsx(FieldSet, { children: /* @__PURE__ */ jsx(FieldGroup, { children: /* @__PURE__ */ jsxs(Field, { children: [
122
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: "checkout-7j9-optional-comments", children: "Comments" }),
123
+ /* @__PURE__ */ jsx(
124
+ Textarea,
125
+ {
126
+ id: "checkout-7j9-optional-comments",
127
+ placeholder: "Add any additional comments",
128
+ className: "resize-none"
129
+ }
130
+ )
131
+ ] }) }) }),
132
+ /* @__PURE__ */ jsxs(Field, { orientation: "horizontal", children: [
133
+ /* @__PURE__ */ jsx(Button, { type: "submit", children: "Submit" }),
134
+ /* @__PURE__ */ jsx(Button, { variant: "outline", type: "button", children: "Cancel" })
135
+ ] })
136
+ ] }) }) }) });
137
+ }
138
+ export {
139
+ Form as default
140
+ };
141
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/templates/form/form.tsx"],"sourcesContent":["import {\r\n Button,\r\n Checkbox,\r\n Input,\r\n Layout,\r\n Select,\r\n SelectContent,\r\n SelectGroup,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n Textarea,\r\n} from \"../../primitives/index\";\r\nimport {\r\n Field,\r\n FieldDescription,\r\n FieldGroup,\r\n FieldLabel,\r\n FieldLegend,\r\n FieldSeparator,\r\n FieldSet,\r\n} from \"../../primitives/forms/field\";\r\n\r\nconst months = [\r\n { label: \"MM\", value: null },\r\n { label: \"01\", value: \"01\" },\r\n { label: \"02\", value: \"02\" },\r\n { label: \"03\", value: \"03\" },\r\n { label: \"04\", value: \"04\" },\r\n { label: \"05\", value: \"05\" },\r\n { label: \"06\", value: \"06\" },\r\n { label: \"07\", value: \"07\" },\r\n { label: \"08\", value: \"08\" },\r\n { label: \"09\", value: \"09\" },\r\n { label: \"10\", value: \"10\" },\r\n { label: \"11\", value: \"11\" },\r\n { label: \"12\", value: \"12\" },\r\n];\r\n\r\nconst years = [\r\n { label: \"YYYY\", value: null },\r\n { label: \"2024\", value: \"2024\" },\r\n { label: \"2025\", value: \"2025\" },\r\n { label: \"2026\", value: \"2026\" },\r\n { label: \"2027\", value: \"2027\" },\r\n { label: \"2028\", value: \"2028\" },\r\n { label: \"2029\", value: \"2029\" },\r\n];\r\n\r\nexport default function Form() {\r\n return (\r\n <Layout>\r\n <Layout.Col1>\r\n <form>\r\n <FieldGroup>\r\n <FieldSet>\r\n <FieldLegend>Payment Method</FieldLegend>\r\n <FieldDescription>\r\n All transactions are secure and encrypted\r\n </FieldDescription>\r\n <FieldGroup>\r\n <Field>\r\n <FieldLabel htmlFor=\"checkout-7j9-card-name-43j\">\r\n Name on Card\r\n </FieldLabel>\r\n <Input\r\n id=\"checkout-7j9-card-name-43j\"\r\n placeholder=\"Evil Rabbit\"\r\n required\r\n />\r\n </Field>\r\n <Field>\r\n <FieldLabel htmlFor=\"checkout-7j9-card-number-uw1\">\r\n Card Number\r\n </FieldLabel>\r\n <Input\r\n id=\"checkout-7j9-card-number-uw1\"\r\n placeholder=\"1234 5678 9012 3456\"\r\n required\r\n />\r\n <FieldDescription>\r\n Enter your 16-digit card number\r\n </FieldDescription>\r\n </Field>\r\n <div className=\"grid grid-cols-3 gap-4\">\r\n <Field>\r\n <FieldLabel htmlFor=\"checkout-exp-month-ts6\">\r\n Month\r\n </FieldLabel>\r\n <Select items={months}>\r\n <SelectTrigger id=\"checkout-exp-month-ts6\">\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectGroup>\r\n {months.map((item) => (\r\n <SelectItem key={item.value} value={item.value}>\r\n {item.label}\r\n </SelectItem>\r\n ))}\r\n </SelectGroup>\r\n </SelectContent>\r\n </Select>\r\n </Field>\r\n <Field>\r\n <FieldLabel htmlFor=\"checkout-7j9-exp-year-f59\">\r\n Year\r\n </FieldLabel>\r\n <Select items={years}>\r\n <SelectTrigger id=\"checkout-7j9-exp-year-f59\">\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectGroup>\r\n {years.map((item) => (\r\n <SelectItem key={item.value} value={item.value}>\r\n {item.label}\r\n </SelectItem>\r\n ))}\r\n </SelectGroup>\r\n </SelectContent>\r\n </Select>\r\n </Field>\r\n <Field>\r\n <FieldLabel htmlFor=\"checkout-7j9-cvv\">CVV</FieldLabel>\r\n <Input id=\"checkout-7j9-cvv\" placeholder=\"123\" required />\r\n </Field>\r\n </div>\r\n </FieldGroup>\r\n </FieldSet>\r\n <FieldSeparator />\r\n <FieldSet>\r\n <FieldLegend>Billing Address</FieldLegend>\r\n <FieldDescription>\r\n The billing address associated with your payment method\r\n </FieldDescription>\r\n <FieldGroup>\r\n <Field orientation=\"horizontal\">\r\n <Checkbox\r\n id=\"checkout-7j9-same-as-shipping-wgm\"\r\n defaultChecked\r\n />\r\n <FieldLabel\r\n htmlFor=\"checkout-7j9-same-as-shipping-wgm\"\r\n className=\"font-normal\"\r\n >\r\n Same as shipping address\r\n </FieldLabel>\r\n </Field>\r\n </FieldGroup>\r\n </FieldSet>\r\n <FieldSet>\r\n <FieldGroup>\r\n <Field>\r\n <FieldLabel htmlFor=\"checkout-7j9-optional-comments\">\r\n Comments\r\n </FieldLabel>\r\n <Textarea\r\n id=\"checkout-7j9-optional-comments\"\r\n placeholder=\"Add any additional comments\"\r\n className=\"resize-none\"\r\n />\r\n </Field>\r\n </FieldGroup>\r\n </FieldSet>\r\n <Field orientation=\"horizontal\">\r\n <Button type=\"submit\">Submit</Button>\r\n <Button variant=\"outline\" type=\"button\">\r\n Cancel\r\n </Button>\r\n </Field>\r\n </FieldGroup>\r\n </form>\r\n </Layout.Col1>\r\n </Layout>\r\n );\r\n}\r\n"],"mappings":"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","names":[]}