@revealui/presentation 0.2.0 → 0.3.2

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 (134) hide show
  1. package/README.md +146 -42
  2. package/dist/Text-BWMs9_wn.js +196 -0
  3. package/dist/Text-BWMs9_wn.js.map +1 -0
  4. package/dist/client.d.ts +3 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +89 -2938
  7. package/dist/client.js.map +1 -1
  8. package/dist/components/BuiltWithRevealUI.d.ts +13 -0
  9. package/dist/components/BuiltWithRevealUI.d.ts.map +1 -0
  10. package/dist/components/Button.d.ts +3 -1
  11. package/dist/components/Button.d.ts.map +1 -1
  12. package/dist/components/Card.d.ts +18 -6
  13. package/dist/components/Card.d.ts.map +1 -1
  14. package/dist/components/Checkbox.d.ts +6 -3
  15. package/dist/components/Checkbox.d.ts.map +1 -1
  16. package/dist/components/FormLabel.d.ts +5 -1
  17. package/dist/components/FormLabel.d.ts.map +1 -1
  18. package/dist/components/Input.d.ts +4 -2
  19. package/dist/components/Input.d.ts.map +1 -1
  20. package/dist/components/Label.d.ts +7 -2
  21. package/dist/components/Label.d.ts.map +1 -1
  22. package/dist/components/Pagination.d.ts +12 -23
  23. package/dist/components/Pagination.d.ts.map +1 -1
  24. package/dist/components/Select.d.ts +36 -13
  25. package/dist/components/Select.d.ts.map +1 -1
  26. package/dist/components/Textarea.d.ts +4 -2
  27. package/dist/components/Textarea.d.ts.map +1 -1
  28. package/dist/components/accordion.d.ts.map +1 -1
  29. package/dist/components/alert.d.ts.map +1 -1
  30. package/dist/components/auth-layout.d.ts +7 -2
  31. package/dist/components/auth-layout.d.ts.map +1 -1
  32. package/dist/components/avatar-group.d.ts.map +1 -1
  33. package/dist/components/avatar.d.ts +6 -5
  34. package/dist/components/avatar.d.ts.map +1 -1
  35. package/dist/components/badge.d.ts +5 -5
  36. package/dist/components/badge.d.ts.map +1 -1
  37. package/dist/components/breadcrumb.d.ts.map +1 -1
  38. package/dist/components/button-headless.d.ts +2 -1
  39. package/dist/components/button-headless.d.ts.map +1 -1
  40. package/dist/components/callout.d.ts.map +1 -1
  41. package/dist/components/checkbox-headless.d.ts.map +1 -1
  42. package/dist/components/code-block.d.ts.map +1 -1
  43. package/dist/components/combobox.d.ts.map +1 -1
  44. package/dist/components/dialog.d.ts.map +1 -1
  45. package/dist/components/drawer.d.ts.map +1 -1
  46. package/dist/components/dropdown.d.ts.map +1 -1
  47. package/dist/components/empty-state.d.ts.map +1 -1
  48. package/dist/components/fieldset.d.ts.map +1 -1
  49. package/dist/components/form-field.d.ts +23 -0
  50. package/dist/components/form-field.d.ts.map +1 -0
  51. package/dist/components/heading.d.ts.map +1 -1
  52. package/dist/components/index.d.ts +20 -1
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/input-headless.d.ts +5 -3
  55. package/dist/components/input-headless.d.ts.map +1 -1
  56. package/dist/components/kbd.d.ts.map +1 -1
  57. package/dist/components/link.d.ts +3 -2
  58. package/dist/components/link.d.ts.map +1 -1
  59. package/dist/components/listbox.d.ts.map +1 -1
  60. package/dist/components/navbar.d.ts +5 -5
  61. package/dist/components/navbar.d.ts.map +1 -1
  62. package/dist/components/pricing-table.d.ts +23 -0
  63. package/dist/components/pricing-table.d.ts.map +1 -0
  64. package/dist/components/progress.d.ts.map +1 -1
  65. package/dist/components/radio.d.ts.map +1 -1
  66. package/dist/components/rating.d.ts.map +1 -1
  67. package/dist/components/select-headless.d.ts +5 -2
  68. package/dist/components/select-headless.d.ts.map +1 -1
  69. package/dist/components/sidebar-layout.d.ts.map +1 -1
  70. package/dist/components/sidebar.d.ts +5 -5
  71. package/dist/components/sidebar.d.ts.map +1 -1
  72. package/dist/components/skeleton.d.ts.map +1 -1
  73. package/dist/components/slider.d.ts.map +1 -1
  74. package/dist/components/stacked-layout.d.ts.map +1 -1
  75. package/dist/components/stat.d.ts.map +1 -1
  76. package/dist/components/stepper.d.ts.map +1 -1
  77. package/dist/components/switch.d.ts.map +1 -1
  78. package/dist/components/table.d.ts.map +1 -1
  79. package/dist/components/tabs.d.ts.map +1 -1
  80. package/dist/components/text.d.ts.map +1 -1
  81. package/dist/components/textarea-headless.d.ts +5 -2
  82. package/dist/components/textarea-headless.d.ts.map +1 -1
  83. package/dist/components/timeline.d.ts.map +1 -1
  84. package/dist/components/toast.d.ts.map +1 -1
  85. package/dist/components/tooltip.d.ts +7 -5
  86. package/dist/components/tooltip.d.ts.map +1 -1
  87. package/dist/hooks/index.d.ts.map +1 -1
  88. package/dist/hooks/use-click-outside.d.ts.map +1 -1
  89. package/dist/hooks/use-close-context.d.ts.map +1 -1
  90. package/dist/hooks/use-controllable-state.d.ts.map +1 -1
  91. package/dist/hooks/use-data-interactive.d.ts.map +1 -1
  92. package/dist/hooks/use-field-context.d.ts.map +1 -1
  93. package/dist/hooks/use-focus-trap.d.ts.map +1 -1
  94. package/dist/hooks/use-layout-animation.d.ts.map +1 -1
  95. package/dist/hooks/use-popover.d.ts.map +1 -1
  96. package/dist/hooks/use-roving-tabindex.d.ts.map +1 -1
  97. package/dist/hooks/use-toggle.d.ts.map +1 -1
  98. package/dist/hooks/use-transition.d.ts.map +1 -1
  99. package/dist/hooks/use-type-ahead.d.ts.map +1 -1
  100. package/dist/index.d.ts +1 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +67 -85
  103. package/dist/index.js.map +1 -1
  104. package/dist/primitives/Box.d.ts +3 -1
  105. package/dist/primitives/Box.d.ts.map +1 -1
  106. package/dist/primitives/Flex.d.ts +3 -1
  107. package/dist/primitives/Flex.d.ts.map +1 -1
  108. package/dist/primitives/Grid.d.ts +3 -1
  109. package/dist/primitives/Grid.d.ts.map +1 -1
  110. package/dist/primitives/Heading.d.ts +3 -1
  111. package/dist/primitives/Heading.d.ts.map +1 -1
  112. package/dist/primitives/Slot.d.ts +3 -1
  113. package/dist/primitives/Slot.d.ts.map +1 -1
  114. package/dist/primitives/Text.d.ts +3 -1
  115. package/dist/primitives/Text.d.ts.map +1 -1
  116. package/dist/primitives/index.d.ts.map +1 -1
  117. package/dist/server.d.ts +6 -1
  118. package/dist/server.d.ts.map +1 -1
  119. package/dist/server.js +3 -32
  120. package/dist/skeleton-Bb51IWbG.js +520 -0
  121. package/dist/skeleton-Bb51IWbG.js.map +1 -0
  122. package/dist/tokens.css +265 -0
  123. package/dist/tooltip-DZGP3hO_.js +3893 -0
  124. package/dist/tooltip-DZGP3hO_.js.map +1 -0
  125. package/dist/utils/cn.d.ts.map +1 -1
  126. package/dist/utils/index.d.ts.map +1 -1
  127. package/package.json +16 -12
  128. package/dist/Box-DDhRNK02.js +0 -45
  129. package/dist/Box-DDhRNK02.js.map +0 -1
  130. package/dist/Text-BIym7IhD.js +0 -425
  131. package/dist/Text-BIym7IhD.js.map +0 -1
  132. package/dist/server.js.map +0 -1
  133. package/dist/tooltip-oH4lAnkn.js +0 -2277
  134. package/dist/tooltip-oH4lAnkn.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE3F,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAqBlD"}
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE5F,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAqBlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revealui/presentation",
3
- "version": "0.2.0",
3
+ "version": "0.3.2",
4
4
  "description": "Shared UI components and presentation layer for RevealUI applications",
5
5
  "keywords": [
6
6
  "components",
@@ -19,18 +19,22 @@
19
19
  "@testing-library/jest-dom": "^6.9.1",
20
20
  "@testing-library/react": "^16.3.2",
21
21
  "@testing-library/user-event": "^14.6.1",
22
- "@types/node": "^25.3.0",
22
+ "@types/node": "^25.5.0",
23
23
  "@types/react": "^19.2.14",
24
24
  "@types/react-dom": "^19.2.3",
25
- "@vitejs/plugin-react-swc": "^4.2.2",
26
- "@vitest/coverage-v8": "^4.0.18",
27
- "jsdom": "^27.4.0",
28
- "typescript": "^5.9.3",
29
- "vite": "^7.3.1",
25
+ "@vitejs/plugin-react-swc": "^4.3.0",
26
+ "@vitest/coverage-v8": "^4.1.0",
27
+ "cross-env": "^10.1.0",
28
+ "jsdom": "^29.0.1",
29
+ "typescript": "^6.0.2",
30
+ "vite": "^8.0.3",
30
31
  "vite-plugin-dts": "^4.5.4",
31
- "vitest": "^4.0.18",
32
+ "vitest": "^4.1.0",
32
33
  "dev": "0.0.1"
33
34
  },
35
+ "engines": {
36
+ "node": ">=24.13.0"
37
+ },
34
38
  "exports": {
35
39
  ".": {
36
40
  "types": "./dist/index.d.ts",
@@ -55,7 +59,8 @@
55
59
  "./hooks": {
56
60
  "types": "./dist/hooks/index.d.ts",
57
61
  "import": "./dist/hooks/index.js"
58
- }
62
+ },
63
+ "./tokens.css": "./dist/tokens.css"
59
64
  },
60
65
  "files": [
61
66
  "dist"
@@ -73,13 +78,12 @@
73
78
  "type": "module",
74
79
  "types": "./dist/index.d.ts",
75
80
  "scripts": {
76
- "build": "vite build",
81
+ "build": "cross-env NODE_ENV=production vite build && cp src/tokens.css dist/tokens.css",
77
82
  "clean": "rm -rf dist",
78
83
  "dev": "vite build --watch --mode development",
79
84
  "lint": "biome check .",
80
- "lint:eslint": "eslint .",
81
85
  "test": "vitest run --passWithNoTests",
82
- "test:coverage": "vitest run --coverage",
86
+ "test:coverage": "vitest run --coverage --coverage.reporter=json-summary --coverage.reporter=html --coverage.reporter=text",
83
87
  "test:watch": "vitest",
84
88
  "typecheck": "tsc --noEmit"
85
89
  }
@@ -1,45 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import React__default from "react";
3
- function r(e) {
4
- var t, f, n = "";
5
- if ("string" == typeof e || "number" == typeof e) n += e;
6
- else if ("object" == typeof e) if (Array.isArray(e)) {
7
- var o = e.length;
8
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
9
- } else for (f in e) e[f] && (n && (n += " "), n += f);
10
- return n;
11
- }
12
- function clsx() {
13
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
14
- return n;
15
- }
16
- function cn(...inputs) {
17
- const classes = [];
18
- for (const input of inputs.flat()) {
19
- if (!input) continue;
20
- if (typeof input === "string" || typeof input === "number") {
21
- classes.push(String(input));
22
- continue;
23
- }
24
- if (typeof input === "object") {
25
- for (const [key, value] of Object.entries(input)) {
26
- if (value) {
27
- classes.push(key);
28
- }
29
- }
30
- }
31
- }
32
- return classes.join(" ").trim();
33
- }
34
- const Box = React__default.forwardRef(
35
- ({ as: Component = "div", className, ...props }, ref) => {
36
- return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props });
37
- }
38
- );
39
- Box.displayName = "Box";
40
- export {
41
- Box as B,
42
- clsx as a,
43
- cn as c
44
- };
45
- //# sourceMappingURL=Box-DDhRNK02.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Box-DDhRNK02.js","sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/utils/cn.ts","../src/primitives/Box.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Utility function for conditionally joining classNames together\n * Similar to clsx/classnames but simpler for Tailwind CSS usage\n */\ntype ClassValue = string | number | boolean | undefined | null | { [key: string]: boolean }\n\nexport function cn(...inputs: ClassValue[]): string {\n const classes: string[] = []\n\n for (const input of inputs.flat()) {\n if (!input) continue\n\n if (typeof input === 'string' || typeof input === 'number') {\n classes.push(String(input))\n continue\n }\n\n if (typeof input === 'object') {\n for (const [key, value] of Object.entries(input)) {\n if (value) {\n classes.push(key)\n }\n }\n }\n }\n\n return classes.join(' ').trim()\n}\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: 'div' | 'span' | 'section' | 'article' | 'header' | 'footer' | 'main' | 'aside' | 'nav'\n}\n\n/**\n * Box primitive - Basic container component\n */\nexport const Box = React.forwardRef<HTMLDivElement, BoxProps>(\n ({ as: Component = 'div', className, ...props }, ref) => {\n return <Component ref={ref} className={cn(className)} {...props} />\n },\n)\n\nBox.displayName = 'Box'\n"],"names":["React"],"mappings":";;AAAA,SAAS,EAAE,GAAE;AAAC,MAAI,GAAE,GAAE,IAAE;AAAG,MAAG,YAAU,OAAO,KAAG,YAAU,OAAO,EAAE,MAAG;AAAA,WAAU,YAAU,OAAO,EAAE,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,QAAI,IAAE,EAAE;AAAO,SAAI,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,CAAC,MAAI,IAAE,EAAE,EAAE,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAA,EAAE,MAAM,MAAI,KAAK,EAAE,GAAE,CAAC,MAAI,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;AAAQ,SAAS,OAAM;AAAC,WAAQ,GAAE,GAAE,IAAE,GAAE,IAAE,IAAG,IAAE,UAAU,QAAO,IAAE,GAAE,IAAI,EAAC,IAAE,UAAU,CAAC,OAAK,IAAE,EAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;ACMxW,SAAS,MAAM,QAA8B;AAClD,QAAM,UAAoB,CAAA;AAE1B,aAAW,SAAS,OAAO,QAAQ;AACjC,QAAI,CAAC,MAAO;AAEZ,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAC1D,cAAQ,KAAK,OAAO,KAAK,CAAC;AAC1B;AAAA,IACF;AAEA,QAAI,OAAO,UAAU,UAAU;AAC7B,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AAChD,YAAI,OAAO;AACT,kBAAQ,KAAK,GAAG;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,KAAK,GAAG,EAAE,KAAA;AAC3B;ACjBO,MAAM,MAAMA,eAAM;AAAA,EACvB,CAAC,EAAE,IAAI,YAAY,OAAO,WAAW,GAAG,MAAA,GAAS,QAAQ;AACvD,WAAO,oBAAC,aAAU,KAAU,WAAW,GAAG,SAAS,GAAI,GAAG,OAAO;AAAA,EACnE;AACF;AAEA,IAAI,cAAc;","x_google_ignoreList":[0]}
@@ -1,425 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import React__default from "react";
4
- import { a as clsx, c as cn } from "./Box-DDhRNK02.js";
5
- function AuthLayout({ children }) {
6
- return /* @__PURE__ */ jsx("main", { className: "flex min-h-dvh flex-col p-2", children: /* @__PURE__ */ jsx("div", { className: "flex grow items-center justify-center p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10", children }) });
7
- }
8
- const falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
9
- const cx = clsx;
10
- const cva = (base, config) => (props) => {
11
- var _config_compoundVariants;
12
- if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
13
- const { variants, defaultVariants } = config;
14
- const getVariantClassNames = Object.keys(variants).map((variant) => {
15
- const variantProp = props === null || props === void 0 ? void 0 : props[variant];
16
- const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
17
- if (variantProp === null) return null;
18
- const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
19
- return variants[variant][variantKey];
20
- });
21
- const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
22
- let [key, value] = param;
23
- if (value === void 0) {
24
- return acc;
25
- }
26
- acc[key] = value;
27
- return acc;
28
- }, {});
29
- const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
30
- let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
31
- return Object.entries(compoundVariantOptions).every((param2) => {
32
- let [key, value] = param2;
33
- return Array.isArray(value) ? value.includes({
34
- ...defaultVariants,
35
- ...propsWithoutUndefined
36
- }[key]) : {
37
- ...defaultVariants,
38
- ...propsWithoutUndefined
39
- }[key] === value;
40
- }) ? [
41
- ...acc,
42
- cvClass,
43
- cvClassName
44
- ] : acc;
45
- }, []);
46
- return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
47
- };
48
- const Slot = React__default.forwardRef((props, forwardedRef) => {
49
- const { children, asChild, ...slotProps } = props;
50
- if (asChild && React__default.isValidElement(children)) {
51
- return React__default.cloneElement(children, {
52
- ...slotProps,
53
- ...children.props,
54
- ref: forwardedRef
55
- });
56
- }
57
- return /* @__PURE__ */ jsx("div", { ...slotProps, ref: forwardedRef, children });
58
- });
59
- Slot.displayName = "Slot";
60
- const buttonVariants = cva(
61
- "inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
62
- {
63
- defaultVariants: {
64
- size: "default",
65
- variant: "default"
66
- },
67
- variants: {
68
- size: {
69
- clear: "",
70
- default: "h-10 px-4 py-2",
71
- icon: "size-10",
72
- lg: "h-11 rounded px-8",
73
- sm: "h-9 rounded px-3"
74
- },
75
- variant: {
76
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
77
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
78
- ghost: "hover:bg-card hover:text-accent-foreground",
79
- link: "text-primary items-start justify-start underline-offset-4 hover:underline",
80
- outline: "border border-border bg-background hover:bg-card hover:text-accent-foreground",
81
- primary: "bg-primary text-primary-foreground hover:bg-primary/90",
82
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80"
83
- }
84
- }
85
- }
86
- );
87
- const Button = React__default.forwardRef(
88
- ({ asChild = false, className, size, variant, ...props }, ref) => {
89
- const Comp = asChild ? Slot : "button";
90
- return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ className, size, variant })), ref, ...props });
91
- }
92
- );
93
- Button.displayName = "Button";
94
- const Card = React__default.forwardRef(
95
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
96
- "div",
97
- {
98
- className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className),
99
- ref,
100
- ...props
101
- }
102
- )
103
- );
104
- Card.displayName = "Card";
105
- const CardHeader = React__default.forwardRef(
106
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-1.5 p-6", className), ref, ...props })
107
- );
108
- CardHeader.displayName = "CardHeader";
109
- const CardTitle = React__default.forwardRef(
110
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
111
- "h3",
112
- {
113
- className: cn("text-2xl font-semibold leading-none tracking-tight", className),
114
- ref,
115
- ...props
116
- }
117
- )
118
- );
119
- CardTitle.displayName = "CardTitle";
120
- const CardDescription = React__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground", className), ref, ...props }));
121
- CardDescription.displayName = "CardDescription";
122
- const CardContent = React__default.forwardRef(
123
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("p-6 pt-0", className), ref, ...props })
124
- );
125
- CardContent.displayName = "CardContent";
126
- const CardFooter = React__default.forwardRef(
127
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center p-6 pt-0", className), ref, ...props })
128
- );
129
- CardFooter.displayName = "CardFooter";
130
- const Label = React__default.forwardRef(({ className, ...props }, ref) => {
131
- return (
132
- // biome-ignore lint/a11y/noLabelWithoutControl: label associations are provided by consumers.
133
- /* @__PURE__ */ jsx(
134
- "label",
135
- {
136
- ref,
137
- className: cn(
138
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
139
- className
140
- ),
141
- ...props
142
- }
143
- )
144
- );
145
- });
146
- Label.displayName = "Label";
147
- const FormLabel = React__default.forwardRef(
148
- ({ required, className, children, ...props }, ref) => {
149
- return /* @__PURE__ */ jsxs(Label, { ref, className: cn(className), ...props, children: [
150
- children,
151
- required && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
152
- ] });
153
- }
154
- );
155
- FormLabel.displayName = "FormLabel";
156
- const Input = React__default.forwardRef(
157
- ({ type, className, ...props }, ref) => {
158
- return /* @__PURE__ */ jsx(
159
- "input",
160
- {
161
- className: cn(
162
- "flex h-10 w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
163
- className
164
- ),
165
- ref,
166
- type,
167
- ...props
168
- }
169
- );
170
- }
171
- );
172
- Input.displayName = "Input";
173
- const ChevronLeft = ({ className }) => {
174
- return /* @__PURE__ */ jsxs(
175
- "svg",
176
- {
177
- xmlns: "http://www.w3.org/2000/svg",
178
- fill: "none",
179
- viewBox: "0 0 24 24",
180
- strokeWidth: 1.5,
181
- stroke: "currentColor",
182
- className: cn("size-6", className),
183
- children: [
184
- /* @__PURE__ */ jsx("title", { children: "Previous page" }),
185
- /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 19.5 8.25 12l7.5-7.5" })
186
- ]
187
- }
188
- );
189
- };
190
- const ChevronRight = ({ className }) => {
191
- return /* @__PURE__ */ jsxs(
192
- "svg",
193
- {
194
- xmlns: "http://www.w3.org/2000/svg",
195
- fill: "none",
196
- viewBox: "0 0 24 24",
197
- strokeWidth: 1.5,
198
- stroke: "currentColor",
199
- className: cn("size-6", className),
200
- children: [
201
- /* @__PURE__ */ jsx("title", { children: "Next page" }),
202
- /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m8.25 4.5 7.5 7.5-7.5 7.5" })
203
- ]
204
- }
205
- );
206
- };
207
- const MoreHorizontal = ({ className }) => {
208
- return /* @__PURE__ */ jsxs(
209
- "svg",
210
- {
211
- xmlns: "http://www.w3.org/2000/svg",
212
- fill: "none",
213
- viewBox: "0 0 24 6",
214
- className: cn("size-6", className),
215
- children: [
216
- /* @__PURE__ */ jsx("title", { children: "More pages" }),
217
- /* @__PURE__ */ jsx("circle", { cx: "6", cy: "3", r: "3", fill: "currentColor" }),
218
- /* @__PURE__ */ jsx("circle", { cx: "12", cy: "3", r: "3", fill: "currentColor" }),
219
- /* @__PURE__ */ jsx("circle", { cx: "18", cy: "3", r: "3", fill: "currentColor" })
220
- ]
221
- }
222
- );
223
- };
224
- const Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
225
- "nav",
226
- {
227
- "aria-label": "pagination",
228
- className: cn("mx-auto flex w-full justify-center", className),
229
- ...props
230
- }
231
- );
232
- Pagination.displayName = "Pagination";
233
- const PaginationContent = React.forwardRef(
234
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("ul", { className: cn("flex flex-row items-center gap-1", className), ref, ...props })
235
- );
236
- PaginationContent.displayName = "PaginationContent";
237
- const PaginationItem = React.forwardRef(
238
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { className: cn("", className), ref, ...props })
239
- );
240
- PaginationItem.displayName = "PaginationItem";
241
- const PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ jsx(
242
- "button",
243
- {
244
- "aria-current": isActive ? "page" : void 0,
245
- className: cn(
246
- buttonVariants({
247
- size,
248
- variant: isActive ? "outline" : "ghost"
249
- }),
250
- className
251
- ),
252
- ...props
253
- }
254
- );
255
- PaginationLink.displayName = "PaginationLink";
256
- const PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs(
257
- PaginationLink,
258
- {
259
- "aria-label": "Go to previous page",
260
- className: cn("gap-1 pl-2.5", className),
261
- size: "default",
262
- ...props,
263
- children: [
264
- /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4" }),
265
- /* @__PURE__ */ jsx("span", { children: "Previous" })
266
- ]
267
- }
268
- );
269
- PaginationPrevious.displayName = "PaginationPrevious";
270
- const PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs(
271
- PaginationLink,
272
- {
273
- "aria-label": "Go to next page",
274
- className: cn("gap-1 pr-2.5", className),
275
- size: "default",
276
- ...props,
277
- children: [
278
- /* @__PURE__ */ jsx("span", { children: "Next" }),
279
- /* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })
280
- ]
281
- }
282
- );
283
- PaginationNext.displayName = "PaginationNext";
284
- const PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs(
285
- "span",
286
- {
287
- "aria-hidden": true,
288
- className: cn("flex h-9 w-9 items-center justify-center", className),
289
- ...props,
290
- children: [
291
- /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
292
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
293
- ]
294
- }
295
- );
296
- PaginationEllipsis.displayName = "PaginationEllipsis";
297
- const Textarea = React__default.forwardRef(
298
- ({ className, ...props }, ref) => {
299
- return /* @__PURE__ */ jsx(
300
- "textarea",
301
- {
302
- className: cn(
303
- "flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
304
- className
305
- ),
306
- ref,
307
- ...props
308
- }
309
- );
310
- }
311
- );
312
- Textarea.displayName = "Textarea";
313
- const Flex = React__default.forwardRef(
314
- ({ direction = "row", align, justify, wrap, gap, className, style, ...props }, ref) => {
315
- const flexClasses = cn(
316
- "flex",
317
- direction && `flex-${direction}`,
318
- align && `items-${align === "start" ? "start" : align === "end" ? "end" : align}`,
319
- justify && `justify-${justify === "start" ? "start" : justify === "end" ? "end" : justify === "between" ? "between" : justify === "around" ? "around" : justify === "evenly" ? "evenly" : "center"}`,
320
- wrap === true && "flex-wrap",
321
- wrap === "wrap" && "flex-wrap",
322
- wrap === "nowrap" && "flex-nowrap",
323
- wrap === "wrap-reverse" && "flex-wrap-reverse",
324
- className
325
- );
326
- const flexStyle = {
327
- ...style,
328
- ...gap && { gap: typeof gap === "number" ? `${gap}px` : gap }
329
- };
330
- return /* @__PURE__ */ jsx("div", { ref, className: flexClasses, style: flexStyle, ...props });
331
- }
332
- );
333
- Flex.displayName = "Flex";
334
- const Grid = React__default.forwardRef(
335
- ({ cols, rows, gap, className, style, ...props }, ref) => {
336
- const gridStyle = {
337
- ...style,
338
- ...cols && {
339
- gridTemplateColumns: typeof cols === "number" ? `repeat(${cols}, 1fr)` : cols
340
- },
341
- ...rows && {
342
- gridTemplateRows: typeof rows === "number" ? `repeat(${rows}, 1fr)` : rows
343
- },
344
- ...gap && { gap: typeof gap === "number" ? `${gap}px` : gap }
345
- };
346
- return /* @__PURE__ */ jsx("div", { ref, className: cn("grid", className), style: gridStyle, ...props });
347
- }
348
- );
349
- Grid.displayName = "Grid";
350
- const Heading = React__default.forwardRef(
351
- ({ as, size = "base", className, children, ...props }, ref) => {
352
- const Component = as || "h2";
353
- const headingClasses = cn(
354
- size === "sm" && "text-sm",
355
- size === "base" && "text-base",
356
- size === "lg" && "text-lg",
357
- size === "xl" && "text-xl",
358
- size === "2xl" && "text-2xl",
359
- size === "3xl" && "text-3xl",
360
- size === "4xl" && "text-4xl",
361
- "font-semibold",
362
- className
363
- );
364
- return /* @__PURE__ */ jsx(Component, { ref, className: headingClasses, ...props, children });
365
- }
366
- );
367
- Heading.displayName = "Heading";
368
- const Text = React__default.forwardRef(
369
- ({
370
- as: Component = "p",
371
- size = "base",
372
- weight = "normal",
373
- color = "default",
374
- className,
375
- ...props
376
- }, ref) => {
377
- const textClasses = cn(
378
- size === "xs" && "text-xs",
379
- size === "sm" && "text-sm",
380
- size === "base" && "text-base",
381
- size === "lg" && "text-lg",
382
- size === "xl" && "text-xl",
383
- size === "2xl" && "text-2xl",
384
- weight === "normal" && "font-normal",
385
- weight === "medium" && "font-medium",
386
- weight === "semibold" && "font-semibold",
387
- weight === "bold" && "font-bold",
388
- color === "muted" && "text-muted-foreground",
389
- color === "primary" && "text-primary",
390
- color === "secondary" && "text-secondary-foreground",
391
- color === "destructive" && "text-destructive",
392
- className
393
- );
394
- return /* @__PURE__ */ jsx(Component, { ref, className: textClasses, ...props });
395
- }
396
- );
397
- Text.displayName = "Text";
398
- export {
399
- AuthLayout as A,
400
- Button as B,
401
- Card as C,
402
- Flex as F,
403
- Grid as G,
404
- Heading as H,
405
- Input as I,
406
- Label as L,
407
- Pagination as P,
408
- Slot as S,
409
- Text as T,
410
- CardContent as a,
411
- CardDescription as b,
412
- CardFooter as c,
413
- CardHeader as d,
414
- CardTitle as e,
415
- FormLabel as f,
416
- PaginationContent as g,
417
- PaginationEllipsis as h,
418
- PaginationItem as i,
419
- PaginationLink as j,
420
- PaginationNext as k,
421
- PaginationPrevious as l,
422
- Textarea as m,
423
- buttonVariants as n
424
- };
425
- //# sourceMappingURL=Text-BIym7IhD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Text-BIym7IhD.js","sources":["../src/components/auth-layout.tsx","../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../src/primitives/Slot.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Label.tsx","../src/components/FormLabel.tsx","../src/components/Input.tsx","../src/components/Pagination.tsx","../src/components/Textarea.tsx","../src/primitives/Flex.tsx","../src/primitives/Grid.tsx","../src/primitives/Heading.tsx","../src/primitives/Text.tsx"],"sourcesContent":["import type React from 'react'\n\nexport function AuthLayout({ children }: { children: React.ReactNode }) {\n return (\n <main className=\"flex min-h-dvh flex-col p-2\">\n <div className=\"flex grow items-center justify-center p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10\">\n {children}\n </div>\n </main>\n )\n}\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import React, { type Ref } from 'react'\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode\n asChild?: boolean\n}\n\n/**\n * Slot component for polymorphic composition\n * Allows components to merge props with child elements\n */\nexport const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, asChild, ...slotProps } = props\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...slotProps,\n ...(children.props as Record<string, unknown>),\n ref: forwardedRef,\n } as unknown as React.HTMLAttributes<HTMLElement>)\n }\n\n return (\n <div {...slotProps} ref={forwardedRef as Ref<HTMLDivElement>}>\n {children}\n </div>\n )\n})\n\nSlot.displayName = 'Slot'\n","import { cva, type VariantProps } from 'class-variance-authority'\nimport React from 'react'\nimport { Slot } from '../primitives/Slot.js'\nimport { cn } from '../utils/cn.js'\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n defaultVariants: {\n size: 'default',\n variant: 'default',\n },\n variants: {\n size: {\n clear: '',\n default: 'h-10 px-4 py-2',\n icon: 'size-10',\n lg: 'h-11 rounded px-8',\n sm: 'h-9 rounded px-3',\n },\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n ghost: 'hover:bg-card hover:text-accent-foreground',\n link: 'text-primary items-start justify-start underline-offset-4 hover:underline',\n outline: 'border border-border bg-background hover:bg-card hover:text-accent-foreground',\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n },\n },\n },\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ asChild = false, className, size, variant, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp className={cn(buttonVariants({ className, size, variant }))} ref={ref} {...props} />\n )\n },\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)}\n ref={ref}\n {...props}\n />\n ),\n)\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div className={cn('flex flex-col space-y-1.5 p-6', className)} ref={ref} {...props} />\n ),\n)\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n ref={ref}\n {...props}\n />\n ),\n)\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p className={cn('text-sm text-muted-foreground', className)} ref={ref} {...props} />\n))\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div className={cn('p-6 pt-0', className)} ref={ref} {...props} />\n ),\n)\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div className={cn('flex items-center p-6 pt-0', className)} ref={ref} {...props} />\n ),\n)\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle }\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport type LabelProps = React.LabelHTMLAttributes<HTMLLabelElement>\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(({ className, ...props }, ref) => {\n return (\n // biome-ignore lint/a11y/noLabelWithoutControl: label associations are provided by consumers.\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className,\n )}\n {...props}\n />\n )\n})\nLabel.displayName = 'Label'\n\nexport { Label }\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\nimport { Label, type LabelProps } from './Label.js'\n\nexport interface FormLabelProps extends LabelProps {\n required?: boolean\n}\n\nconst FormLabel = React.forwardRef<HTMLLabelElement, FormLabelProps>(\n ({ required, className, children, ...props }, ref) => {\n return (\n <Label ref={ref} className={cn(className)} {...props}>\n {children}\n {required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n )\n },\n)\nFormLabel.displayName = 'FormLabel'\n\nexport { FormLabel }\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement>\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ type, className, ...props }, ref) => {\n return (\n <input\n className={cn(\n 'flex h-10 w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n type={type}\n {...props}\n />\n )\n },\n)\nInput.displayName = 'Input'\n\nexport { Input }\n","import * as React from 'react'\nimport { cn } from '../utils/cn.js'\nimport type { ButtonProps } from './Button.js'\nimport { buttonVariants } from './Button.js'\n\nconst ChevronLeft = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className={cn('size-6', className)}\n >\n <title>Previous page</title>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n </svg>\n )\n}\n\nconst ChevronRight = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className={cn('size-6', className)}\n >\n <title>Next page</title>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\n </svg>\n )\n}\n\nconst MoreHorizontal = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 6\"\n className={cn('size-6', className)}\n >\n <title>More pages</title>\n <circle cx=\"6\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"18\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n </svg>\n )\n}\n\nexport type PaginationProps = React.ComponentProps<'nav'>\n\nconst Pagination = ({ className, ...props }: PaginationProps) => (\n <nav\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul className={cn('flex flex-row items-center gap-1', className)} ref={ref} {...props} />\n ),\n)\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => <li className={cn('', className)} ref={ref} {...props} />,\n)\nPaginationItem.displayName = 'PaginationItem'\n\nexport interface PaginationLinkProps\n extends Pick<ButtonProps, 'size'>,\n React.ComponentProps<'button'> {\n isActive?: boolean\n}\n\nconst PaginationLink = ({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) => (\n <button\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n buttonVariants({\n size,\n variant: isActive ? 'outline' : 'ghost',\n }),\n className,\n )}\n {...props}\n />\n)\nPaginationLink.displayName = 'PaginationLink'\n\nexport type PaginationPreviousProps = React.ComponentProps<typeof PaginationLink>\n\nconst PaginationPrevious = ({ className, ...props }: PaginationPreviousProps) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn('gap-1 pl-2.5', className)}\n size=\"default\"\n {...props}\n >\n <ChevronLeft className=\"size-4\" />\n <span>Previous</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink>\n\nconst PaginationNext = ({ className, ...props }: PaginationNextProps) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn('gap-1 pr-2.5', className)}\n size=\"default\"\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"size-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = 'PaginationNext'\n\nexport type PaginationEllipsisProps = React.ComponentProps<'span'>\n\nconst PaginationEllipsis = ({ className, ...props }: PaginationEllipsisProps) => (\n <span\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse'\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline'\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'\n wrap?: boolean | 'wrap' | 'nowrap' | 'wrap-reverse'\n gap?: number | string\n}\n\n/**\n * Flex primitive - Flexbox container component\n */\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n ({ direction = 'row', align, justify, wrap, gap, className, style, ...props }, ref) => {\n const flexClasses = cn(\n 'flex',\n direction && `flex-${direction}`,\n align && `items-${align === 'start' ? 'start' : align === 'end' ? 'end' : align}`,\n justify &&\n `justify-${justify === 'start' ? 'start' : justify === 'end' ? 'end' : justify === 'between' ? 'between' : justify === 'around' ? 'around' : justify === 'evenly' ? 'evenly' : 'center'}`,\n wrap === true && 'flex-wrap',\n wrap === 'wrap' && 'flex-wrap',\n wrap === 'nowrap' && 'flex-nowrap',\n wrap === 'wrap-reverse' && 'flex-wrap-reverse',\n className,\n )\n\n const flexStyle = {\n ...style,\n ...(gap && { gap: typeof gap === 'number' ? `${gap}px` : gap }),\n }\n\n return <div ref={ref} className={flexClasses} style={flexStyle} {...props} />\n },\n)\n\nFlex.displayName = 'Flex'\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n cols?: number | string\n rows?: number | string\n gap?: number | string\n}\n\n/**\n * Grid primitive - CSS Grid container component\n */\nexport const Grid = React.forwardRef<HTMLDivElement, GridProps>(\n ({ cols, rows, gap, className, style, ...props }, ref) => {\n const gridStyle: React.CSSProperties = {\n ...style,\n ...(cols && {\n gridTemplateColumns: typeof cols === 'number' ? `repeat(${cols}, 1fr)` : cols,\n }),\n ...(rows && {\n gridTemplateRows: typeof rows === 'number' ? `repeat(${rows}, 1fr)` : rows,\n }),\n ...(gap && { gap: typeof gap === 'number' ? `${gap}px` : gap }),\n }\n\n return <div ref={ref} className={cn('grid', className)} style={gridStyle} {...props} />\n },\n)\n\nGrid.displayName = 'Grid'\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n size?: 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl'\n}\n\n/**\n * Heading primitive - Heading component\n */\nexport const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ as, size = 'base', className, children, ...props }, ref) => {\n const Component = as || 'h2'\n\n const headingClasses = cn(\n size === 'sm' && 'text-sm',\n size === 'base' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl',\n size === '2xl' && 'text-2xl',\n size === '3xl' && 'text-3xl',\n size === '4xl' && 'text-4xl',\n 'font-semibold',\n className,\n )\n\n return (\n <Component ref={ref} className={headingClasses} {...props}>\n {children}\n </Component>\n )\n },\n)\n\nHeading.displayName = 'Heading'\n","import React from 'react'\nimport { cn } from '../utils/cn.js'\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n as?: 'p' | 'span' | 'div'\n size?: 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl'\n weight?: 'normal' | 'medium' | 'semibold' | 'bold'\n color?: 'default' | 'muted' | 'primary' | 'secondary' | 'destructive'\n}\n\n/**\n * Text primitive - Typography component\n */\nexport const Text = React.forwardRef<HTMLParagraphElement, TextProps>(\n (\n {\n as: Component = 'p',\n size = 'base',\n weight = 'normal',\n color = 'default',\n className,\n ...props\n },\n ref,\n ) => {\n const textClasses = cn(\n size === 'xs' && 'text-xs',\n size === 'sm' && 'text-sm',\n size === 'base' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl',\n size === '2xl' && 'text-2xl',\n weight === 'normal' && 'font-normal',\n weight === 'medium' && 'font-medium',\n weight === 'semibold' && 'font-semibold',\n weight === 'bold' && 'font-bold',\n color === 'muted' && 'text-muted-foreground',\n color === 'primary' && 'text-primary',\n color === 'secondary' && 'text-secondary-foreground',\n color === 'destructive' && 'text-destructive',\n className,\n )\n\n return <Component ref={ref} className={textClasses} {...props} />\n },\n)\n\nText.displayName = 'Text'\n"],"names":["param","React"],"mappings":"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","x_google_ignoreList":[1]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}