@taicode/common-web 1.1.2 → 1.1.4

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 (131) hide show
  1. package/output/cache-api/cache-api.d.ts +7 -1
  2. package/output/cache-api/cache-api.d.ts.map +1 -1
  3. package/output/cache-api/cache-api.js +26 -6
  4. package/output/cache-api/cache-api.test.js +134 -33
  5. package/output/catalyst/alert.d.ts +5 -5
  6. package/output/catalyst/alert.d.ts.map +1 -1
  7. package/output/catalyst/alert.js +46 -0
  8. package/output/catalyst/auth-layout.d.ts +1 -1
  9. package/output/catalyst/auth-layout.d.ts.map +1 -1
  10. package/output/catalyst/auth-layout.js +4 -0
  11. package/output/catalyst/avatar.d.ts +1 -1
  12. package/output/catalyst/avatar.d.ts.map +1 -1
  13. package/output/catalyst/{avatar.jsx → avatar.js} +5 -20
  14. package/output/catalyst/badge.d.ts +1 -1
  15. package/output/catalyst/badge.d.ts.map +1 -1
  16. package/output/catalyst/{badge.jsx → badge.js} +4 -11
  17. package/output/catalyst/button.d.ts +1 -1
  18. package/output/catalyst/button.d.ts.map +1 -1
  19. package/output/catalyst/{button.jsx → button.js} +4 -10
  20. package/output/catalyst/checkbox.d.ts +3 -3
  21. package/output/catalyst/checkbox.d.ts.map +1 -1
  22. package/output/catalyst/{checkbox.jsx → checkbox.js} +6 -14
  23. package/output/catalyst/combobox.d.ts +4 -4
  24. package/output/catalyst/combobox.d.ts.map +1 -1
  25. package/output/catalyst/combobox.js +101 -0
  26. package/output/catalyst/description-list.d.ts +3 -3
  27. package/output/catalyst/description-list.d.ts.map +1 -1
  28. package/output/catalyst/{description-list.jsx → description-list.js} +4 -3
  29. package/output/catalyst/dialog.d.ts +5 -5
  30. package/output/catalyst/dialog.d.ts.map +1 -1
  31. package/output/catalyst/dialog.js +46 -0
  32. package/output/catalyst/divider.d.ts +1 -1
  33. package/output/catalyst/divider.d.ts.map +1 -1
  34. package/output/catalyst/{divider.jsx → divider.js} +2 -1
  35. package/output/catalyst/dropdown.d.ts +11 -11
  36. package/output/catalyst/dropdown.d.ts.map +1 -1
  37. package/output/catalyst/{dropdown.jsx → dropdown.js} +15 -18
  38. package/output/catalyst/fieldset.d.ts +7 -7
  39. package/output/catalyst/fieldset.d.ts.map +1 -1
  40. package/output/catalyst/fieldset.js +42 -0
  41. package/output/catalyst/heading.d.ts +2 -2
  42. package/output/catalyst/heading.d.ts.map +1 -1
  43. package/output/catalyst/{heading.jsx → heading.js} +3 -2
  44. package/output/catalyst/input.d.ts +1 -1
  45. package/output/catalyst/input.d.ts.map +1 -1
  46. package/output/catalyst/input.js +70 -0
  47. package/output/catalyst/{link.jsx → link.js} +3 -4
  48. package/output/catalyst/listbox.d.ts +4 -4
  49. package/output/catalyst/listbox.d.ts.map +1 -1
  50. package/output/catalyst/listbox.js +99 -0
  51. package/output/catalyst/navbar.d.ts +5 -5
  52. package/output/catalyst/navbar.d.ts.map +1 -1
  53. package/output/catalyst/{navbar.jsx → navbar.js} +8 -16
  54. package/output/catalyst/pagination.d.ts +6 -6
  55. package/output/catalyst/pagination.d.ts.map +1 -1
  56. package/output/catalyst/pagination.js +35 -0
  57. package/output/catalyst/radio.d.ts +3 -3
  58. package/output/catalyst/radio.d.ts.map +1 -1
  59. package/output/catalyst/{radio.jsx → radio.js} +8 -11
  60. package/output/catalyst/select.js +52 -0
  61. package/output/catalyst/sidebar-layout.d.ts +1 -1
  62. package/output/catalyst/sidebar-layout.d.ts.map +1 -1
  63. package/output/catalyst/sidebar-layout.js +18 -0
  64. package/output/catalyst/sidebar.d.ts +9 -9
  65. package/output/catalyst/sidebar.d.ts.map +1 -1
  66. package/output/catalyst/{sidebar.jsx → sidebar.js} +12 -20
  67. package/output/catalyst/stacked-layout.d.ts +1 -1
  68. package/output/catalyst/stacked-layout.d.ts.map +1 -1
  69. package/output/catalyst/stacked-layout.js +18 -0
  70. package/output/catalyst/switch.d.ts +3 -3
  71. package/output/catalyst/switch.d.ts.map +1 -1
  72. package/output/catalyst/{switch.jsx → switch.js} +19 -20
  73. package/output/catalyst/table.d.ts +6 -6
  74. package/output/catalyst/table.d.ts.map +1 -1
  75. package/output/catalyst/table.js +56 -0
  76. package/output/catalyst/text.d.ts +4 -4
  77. package/output/catalyst/text.d.ts.map +1 -1
  78. package/output/catalyst/{text.jsx → text.js} +5 -4
  79. package/output/catalyst/{textarea.jsx → textarea.js} +21 -22
  80. package/output/service/{service.test.jsx → service.test.js} +6 -15
  81. package/output/side-cache/side-cache.d.ts +1 -0
  82. package/output/side-cache/side-cache.d.ts.map +1 -1
  83. package/output/side-cache/side-cache.js +25 -1
  84. package/output/side-cache/side-cache.test.js +92 -0
  85. package/package.json +1 -1
  86. package/output/catalyst/alert.jsx +0 -55
  87. package/output/catalyst/auth-layout.jsx +0 -7
  88. package/output/catalyst/combobox.jsx +0 -120
  89. package/output/catalyst/dialog.jsx +0 -55
  90. package/output/catalyst/fieldset.jsx +0 -41
  91. package/output/catalyst/input.jsx +0 -73
  92. package/output/catalyst/listbox.jsx +0 -120
  93. package/output/catalyst/pagination.jsx +0 -52
  94. package/output/catalyst/select.jsx +0 -59
  95. package/output/catalyst/sidebar-layout.jsx +0 -58
  96. package/output/catalyst/stacked-layout.jsx +0 -55
  97. package/output/catalyst/table.jsx +0 -68
  98. package/output/helpers/cache-api/cache-api.d.ts +0 -13
  99. package/output/helpers/cache-api/cache-api.d.ts.map +0 -1
  100. package/output/helpers/cache-api/cache-api.js +0 -114
  101. package/output/helpers/cache-api/cache-api.test.d.ts +0 -2
  102. package/output/helpers/cache-api/cache-api.test.d.ts.map +0 -1
  103. package/output/helpers/cache-api/cache-api.test.js +0 -348
  104. package/output/helpers/cache-api/index.d.ts +0 -2
  105. package/output/helpers/cache-api/index.d.ts.map +0 -1
  106. package/output/helpers/cache-api/index.js +0 -1
  107. package/output/helpers/service/index.d.ts +0 -1
  108. package/output/helpers/service/index.d.ts.map +0 -1
  109. package/output/helpers/service/index.js +0 -1
  110. package/output/helpers/service/service.d.ts +0 -5
  111. package/output/helpers/service/service.d.ts.map +0 -1
  112. package/output/helpers/service/service.js +0 -2
  113. package/output/helpers/side-cache/index.d.ts +0 -2
  114. package/output/helpers/side-cache/index.d.ts.map +0 -1
  115. package/output/helpers/side-cache/index.js +0 -1
  116. package/output/helpers/side-cache/side-cache.d.ts +0 -10
  117. package/output/helpers/side-cache/side-cache.d.ts.map +0 -1
  118. package/output/helpers/side-cache/side-cache.js +0 -137
  119. package/output/helpers/side-cache/side-cache.test.d.ts +0 -2
  120. package/output/helpers/side-cache/side-cache.test.d.ts.map +0 -1
  121. package/output/helpers/side-cache/side-cache.test.js +0 -179
  122. package/output/helpers/use-observer/index.d.ts +0 -2
  123. package/output/helpers/use-observer/index.d.ts.map +0 -1
  124. package/output/helpers/use-observer/index.js +0 -1
  125. package/output/helpers/use-observer/use-observer.d.ts +0 -3
  126. package/output/helpers/use-observer/use-observer.d.ts.map +0 -1
  127. package/output/helpers/use-observer/use-observer.js +0 -16
  128. package/output/helpers/use-observer/use-observer.test.d.ts +0 -2
  129. package/output/helpers/use-observer/use-observer.test.d.ts.map +0 -1
  130. package/output/use-observer/use-observer.test.jsx +0 -134
  131. /package/output/{helpers/use-observer/use-observer.test.jsx → use-observer/use-observer.test.js} +0 -0
@@ -0,0 +1,52 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import * as Headless from '@headlessui/react';
14
+ import clsx from 'clsx';
15
+ import { forwardRef } from 'react';
16
+ export const Select = forwardRef(function Select(_a, ref) {
17
+ var { className, multiple } = _a, props = __rest(_a, ["className", "multiple"]);
18
+ return (_jsxs("span", { "data-slot": "control", className: clsx([
19
+ className,
20
+ // Basic layout
21
+ 'group relative block w-full',
22
+ // Background color + shadow applied to inset pseudo element, so shadow blends with border in light mode
23
+ 'before:absolute before:inset-px before:rounded-[calc(var(--radius-lg)-1px)] before:bg-white before:shadow-sm',
24
+ // Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo
25
+ 'dark:before:hidden',
26
+ // Focus ring
27
+ 'after:pointer-events-none after:absolute after:inset-0 after:rounded-lg after:ring-transparent after:ring-inset has-data-focus:after:ring-2 has-data-focus:after:ring-blue-500',
28
+ // Disabled state
29
+ 'has-data-disabled:opacity-50 has-data-disabled:before:bg-zinc-950/5 has-data-disabled:before:shadow-none',
30
+ ]), children: [_jsx(Headless.Select, Object.assign({ ref: ref, multiple: multiple }, props, { className: clsx([
31
+ // Basic layout
32
+ 'relative block w-full appearance-none rounded-lg py-[calc(--spacing(2.5)-1px)] sm:py-[calc(--spacing(1.5)-1px)]',
33
+ // Horizontal padding
34
+ multiple
35
+ ? 'px-[calc(--spacing(3.5)-1px)] sm:px-[calc(--spacing(3)-1px)]'
36
+ : 'pr-[calc(--spacing(10)-1px)] pl-[calc(--spacing(3.5)-1px)] sm:pr-[calc(--spacing(9)-1px)] sm:pl-[calc(--spacing(3)-1px)]',
37
+ // Options (multi-select)
38
+ '[&_optgroup]:font-semibold',
39
+ // Typography
40
+ 'text-base/6 text-zinc-950 placeholder:text-zinc-500 sm:text-sm/6 dark:text-white dark:*:text-white',
41
+ // Border
42
+ 'border border-zinc-950/10 data-hover:border-zinc-950/20 dark:border-white/10 dark:data-hover:border-white/20',
43
+ // Background color
44
+ 'bg-transparent dark:bg-white/5 dark:*:bg-zinc-800',
45
+ // Hide default focus styles
46
+ 'focus:outline-hidden',
47
+ // Invalid state
48
+ 'data-invalid:border-red-500 data-invalid:data-hover:border-red-500 dark:data-invalid:border-red-600 dark:data-invalid:data-hover:border-red-600',
49
+ // Disabled state
50
+ 'data-disabled:border-zinc-950/20 data-disabled:opacity-100 dark:data-disabled:border-white/15 dark:data-disabled:bg-white/2.5 dark:data-hover:data-disabled:border-white/15',
51
+ ]) })), !multiple && (_jsx("span", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2", children: _jsxs("svg", { className: "size-5 stroke-zinc-500 group-has-data-disabled:stroke-zinc-600 sm:size-4 dark:stroke-zinc-400 forced-colors:stroke-[CanvasText]", viewBox: "0 0 16 16", "aria-hidden": "true", fill: "none", children: [_jsx("path", { d: "M5.75 10.75L8 13L10.25 10.75", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M10.25 5.25L8 3L5.75 5.25", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" })] }) }))] }));
52
+ });
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  export declare function SidebarLayout({ navbar, sidebar, children, }: React.PropsWithChildren<{
3
3
  navbar: React.ReactNode;
4
4
  sidebar: React.ReactNode;
5
- }>): React.JSX.Element;
5
+ }>): import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=sidebar-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-layout.d.ts","sourceRoot":"","sources":["../../source/catalyst/sidebar-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2CvC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,qBA+BhF"}
1
+ {"version":3,"file":"sidebar-layout.d.ts","sourceRoot":"","sources":["../../source/catalyst/sidebar-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2CvC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,2CA+BhF"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as Headless from '@headlessui/react';
4
+ import { useState } from 'react';
5
+ import { NavbarItem } from './navbar';
6
+ function OpenMenuIcon() {
7
+ return (_jsx("svg", { "data-slot": "icon", viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("path", { d: "M2 6.75C2 6.33579 2.33579 6 2.75 6H17.25C17.6642 6 18 6.33579 18 6.75C18 7.16421 17.6642 7.5 17.25 7.5H2.75C2.33579 7.5 2 7.16421 2 6.75ZM2 13.25C2 12.8358 2.33579 12.5 2.75 12.5H17.25C17.6642 12.5 18 12.8358 18 13.25C18 13.6642 17.6642 14 17.25 14H2.75C2.33579 14 2 13.6642 2 13.25Z" }) }));
8
+ }
9
+ function CloseMenuIcon() {
10
+ return (_jsx("svg", { "data-slot": "icon", viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" }) }));
11
+ }
12
+ function MobileSidebar({ open, close, children }) {
13
+ return (_jsxs(Headless.Dialog, { open: open, onClose: close, className: "lg:hidden", children: [_jsx(Headless.DialogBackdrop, { transition: true, className: "fixed inset-0 bg-black/30 transition data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in" }), _jsx(Headless.DialogPanel, { transition: true, className: "fixed inset-y-0 w-full max-w-80 p-2 transition duration-300 ease-in-out data-closed:-translate-x-full", children: _jsxs("div", { className: "flex h-full flex-col rounded-lg bg-white shadow-xs ring-1 ring-zinc-950/5 dark:bg-zinc-900 dark:ring-white/10", children: [_jsx("div", { className: "-mb-3 px-4 pt-3", children: _jsx(Headless.CloseButton, { as: NavbarItem, "aria-label": "Close navigation", children: _jsx(CloseMenuIcon, {}) }) }), children] }) })] }));
14
+ }
15
+ export function SidebarLayout({ navbar, sidebar, children, }) {
16
+ let [showSidebar, setShowSidebar] = useState(false);
17
+ return (_jsxs("div", { className: "relative isolate flex min-h-svh w-full bg-white max-lg:flex-col lg:bg-zinc-100 dark:bg-zinc-900 dark:lg:bg-zinc-950", children: [_jsx("div", { className: "fixed inset-y-0 left-0 w-64 max-lg:hidden", children: sidebar }), _jsx(MobileSidebar, { open: showSidebar, close: () => setShowSidebar(false), children: sidebar }), _jsxs("header", { className: "flex items-center px-4 lg:hidden", children: [_jsx("div", { className: "py-2.5", children: _jsx(NavbarItem, { onClick: () => setShowSidebar(true), "aria-label": "Open navigation", children: _jsx(OpenMenuIcon, {}) }) }), _jsx("div", { className: "min-w-0 flex-1", children: navbar })] }), _jsx("main", { className: "flex flex-1 flex-col pb-2 lg:min-w-0 lg:pt-2 lg:pr-2 lg:pl-64", children: _jsx("div", { className: "grow 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: _jsx("div", { className: "mx-auto max-w-6xl", children: children }) }) })] }));
18
+ }
@@ -1,13 +1,13 @@
1
1
  import * as Headless from '@headlessui/react';
2
2
  import React from 'react';
3
- export declare function Sidebar({ className, ...props }: React.ComponentPropsWithoutRef<'nav'>): React.JSX.Element;
4
- export declare function SidebarHeader({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
5
- export declare function SidebarBody({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
6
- export declare function SidebarFooter({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
7
- export declare function SidebarSection({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
8
- export declare function SidebarDivider({ className, ...props }: React.ComponentPropsWithoutRef<'hr'>): React.JSX.Element;
9
- export declare function SidebarSpacer({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
10
- export declare function SidebarHeading({ className, ...props }: React.ComponentPropsWithoutRef<'h3'>): React.JSX.Element;
3
+ export declare function Sidebar({ className, ...props }: React.ComponentPropsWithoutRef<'nav'>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function SidebarHeader({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function SidebarBody({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function SidebarFooter({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function SidebarSection({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function SidebarDivider({ className, ...props }: React.ComponentPropsWithoutRef<'hr'>): import("react/jsx-runtime").JSX.Element;
9
+ export declare function SidebarSpacer({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
10
+ export declare function SidebarHeading({ className, ...props }: React.ComponentPropsWithoutRef<'h3'>): import("react/jsx-runtime").JSX.Element;
11
11
  export declare const SidebarItem: React.ForwardRefExoticComponent<({
12
12
  current?: boolean;
13
13
  className?: string;
@@ -15,5 +15,5 @@ export declare const SidebarItem: React.ForwardRefExoticComponent<({
15
15
  } & (Omit<Headless.ButtonProps<"button">, "className" | "as"> | Omit<Headless.ButtonProps<React.ForwardRefExoticComponent<{
16
16
  href: string;
17
17
  } & Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>>, "className" | "as">)) & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
18
- export declare function SidebarLabel({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): React.JSX.Element;
18
+ export declare function SidebarLabel({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
19
19
  //# sourceMappingURL=sidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../source/catalyst/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAErF;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAU3F;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAUzF;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAU3F;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAQ5F;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBAE3F;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAE3F;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBAI3F;AAED,eAAO,MAAM,WAAW;cAMP,OAAO;gBAAc,MAAM;cAAY,KAAK,CAAC,SAAS;;;0OA0DrE,CAAA;AAEF,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,qBAE3F"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../source/catalyst/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAG7C,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAErF;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAU3F;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAUzF;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAU3F;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAQ5F;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,2CAE3F;AAED,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAE3F;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,2CAI3F;AAED,eAAO,MAAM,WAAW;cAMP,OAAO;gBAAc,MAAM;cAAY,KAAK,CAAC,SAAS;;;0OA0DrE,CAAA;AAEF,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAE3F"}
@@ -10,46 +10,45 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  }
11
11
  return t;
12
12
  };
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
14
  import * as Headless from '@headlessui/react';
14
15
  import clsx from 'clsx';
15
16
  import { LayoutGroup, motion } from 'framer-motion';
16
- import React, { forwardRef, useId } from 'react';
17
+ import { forwardRef, useId } from 'react';
17
18
  import { TouchTarget } from './button';
18
19
  import { Link } from './link';
19
20
  export function Sidebar(_a) {
20
21
  var { className } = _a, props = __rest(_a, ["className"]);
21
- return <nav {...props} className={clsx(className, 'flex h-full min-h-0 flex-col')}/>;
22
+ return _jsx("nav", Object.assign({}, props, { className: clsx(className, 'flex h-full min-h-0 flex-col') }));
22
23
  }
23
24
  export function SidebarHeader(_a) {
24
25
  var { className } = _a, props = __rest(_a, ["className"]);
25
- return (<div {...props} className={clsx(className, 'flex flex-col border-b border-zinc-950/5 p-4 dark:border-white/5 [&>[data-slot=section]+[data-slot=section]]:mt-2.5')}/>);
26
+ return (_jsx("div", Object.assign({}, props, { className: clsx(className, 'flex flex-col border-b border-zinc-950/5 p-4 dark:border-white/5 [&>[data-slot=section]+[data-slot=section]]:mt-2.5') })));
26
27
  }
27
28
  export function SidebarBody(_a) {
28
29
  var { className } = _a, props = __rest(_a, ["className"]);
29
- return (<div {...props} className={clsx(className, 'flex flex-1 flex-col overflow-y-auto p-4 [&>[data-slot=section]+[data-slot=section]]:mt-8')}/>);
30
+ return (_jsx("div", Object.assign({}, props, { className: clsx(className, 'flex flex-1 flex-col overflow-y-auto p-4 [&>[data-slot=section]+[data-slot=section]]:mt-8') })));
30
31
  }
31
32
  export function SidebarFooter(_a) {
32
33
  var { className } = _a, props = __rest(_a, ["className"]);
33
- return (<div {...props} className={clsx(className, 'flex flex-col border-t border-zinc-950/5 p-4 dark:border-white/5 [&>[data-slot=section]+[data-slot=section]]:mt-2.5')}/>);
34
+ return (_jsx("div", Object.assign({}, props, { className: clsx(className, 'flex flex-col border-t border-zinc-950/5 p-4 dark:border-white/5 [&>[data-slot=section]+[data-slot=section]]:mt-2.5') })));
34
35
  }
35
36
  export function SidebarSection(_a) {
36
37
  var { className } = _a, props = __rest(_a, ["className"]);
37
38
  let id = useId();
38
- return (<LayoutGroup id={id}>
39
- <div {...props} data-slot="section" className={clsx(className, 'flex flex-col gap-0.5')}/>
40
- </LayoutGroup>);
39
+ return (_jsx(LayoutGroup, { id: id, children: _jsx("div", Object.assign({}, props, { "data-slot": "section", className: clsx(className, 'flex flex-col gap-0.5') })) }));
41
40
  }
42
41
  export function SidebarDivider(_a) {
43
42
  var { className } = _a, props = __rest(_a, ["className"]);
44
- return <hr {...props} className={clsx(className, 'my-4 border-t border-zinc-950/5 lg:-mx-4 dark:border-white/5')}/>;
43
+ return _jsx("hr", Object.assign({}, props, { className: clsx(className, 'my-4 border-t border-zinc-950/5 lg:-mx-4 dark:border-white/5') }));
45
44
  }
46
45
  export function SidebarSpacer(_a) {
47
46
  var { className } = _a, props = __rest(_a, ["className"]);
48
- return <div aria-hidden="true" {...props} className={clsx(className, 'mt-8 flex-1')}/>;
47
+ return _jsx("div", Object.assign({ "aria-hidden": "true" }, props, { className: clsx(className, 'mt-8 flex-1') }));
49
48
  }
50
49
  export function SidebarHeading(_a) {
51
50
  var { className } = _a, props = __rest(_a, ["className"]);
52
- return (<h3 {...props} className={clsx(className, 'mb-1 px-2 text-xs/6 font-medium text-zinc-500 dark:text-zinc-400')}/>);
51
+ return (_jsx("h3", Object.assign({}, props, { className: clsx(className, 'mb-1 px-2 text-xs/6 font-medium text-zinc-500 dark:text-zinc-400') })));
53
52
  }
54
53
  export const SidebarItem = forwardRef(function SidebarItem(_a, ref) {
55
54
  var { current, className, children } = _a, props = __rest(_a, ["current", "className", "children"]);
@@ -70,16 +69,9 @@ export const SidebarItem = forwardRef(function SidebarItem(_a, ref) {
70
69
  'data-current:*:data-[slot=icon]:fill-zinc-950',
71
70
  // Dark mode
72
71
  'dark:text-white dark:*:data-[slot=icon]:fill-zinc-400', 'dark:data-hover:bg-white/5 dark:data-hover:*:data-[slot=icon]:fill-white', 'dark:data-active:bg-white/5 dark:data-active:*:data-[slot=icon]:fill-white', 'dark:data-current:*:data-[slot=icon]:fill-white');
73
- return (<span className={clsx(className, 'relative')}>
74
- {current && (<motion.span layoutId="current-indicator" className="absolute inset-y-2 -left-4 w-0.5 rounded-full bg-zinc-950 dark:bg-white"/>)}
75
- {'href' in props ? (<Headless.CloseButton as={Link} {...props} className={classes} data-current={current ? 'true' : undefined} ref={ref}>
76
- <TouchTarget>{children}</TouchTarget>
77
- </Headless.CloseButton>) : (<Headless.Button {...props} className={clsx('cursor-default', classes)} data-current={current ? 'true' : undefined} ref={ref}>
78
- <TouchTarget>{children}</TouchTarget>
79
- </Headless.Button>)}
80
- </span>);
72
+ return (_jsxs("span", { className: clsx(className, 'relative'), children: [current && (_jsx(motion.span, { layoutId: "current-indicator", className: "absolute inset-y-2 -left-4 w-0.5 rounded-full bg-zinc-950 dark:bg-white" })), 'href' in props ? (_jsx(Headless.CloseButton, Object.assign({ as: Link }, props, { className: classes, "data-current": current ? 'true' : undefined, ref: ref, children: _jsx(TouchTarget, { children: children }) }))) : (_jsx(Headless.Button, Object.assign({}, props, { className: clsx('cursor-default', classes), "data-current": current ? 'true' : undefined, ref: ref, children: _jsx(TouchTarget, { children: children }) })))] }));
81
73
  });
82
74
  export function SidebarLabel(_a) {
83
75
  var { className } = _a, props = __rest(_a, ["className"]);
84
- return <span {...props} className={clsx(className, 'truncate')}/>;
76
+ return _jsx("span", Object.assign({}, props, { className: clsx(className, 'truncate') }));
85
77
  }
@@ -2,5 +2,5 @@ import React from 'react';
2
2
  export declare function StackedLayout({ navbar, sidebar, children, }: React.PropsWithChildren<{
3
3
  navbar: React.ReactNode;
4
4
  sidebar: React.ReactNode;
5
- }>): React.JSX.Element;
5
+ }>): import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=stacked-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stacked-layout.d.ts","sourceRoot":"","sources":["../../source/catalyst/stacked-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2CvC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,qBA4BhF"}
1
+ {"version":3,"file":"stacked-layout.d.ts","sourceRoot":"","sources":["../../source/catalyst/stacked-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2CvC,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,2CA4BhF"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as Headless from '@headlessui/react';
4
+ import { useState } from 'react';
5
+ import { NavbarItem } from './navbar';
6
+ function OpenMenuIcon() {
7
+ return (_jsx("svg", { "data-slot": "icon", viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("path", { d: "M2 6.75C2 6.33579 2.33579 6 2.75 6H17.25C17.6642 6 18 6.33579 18 6.75C18 7.16421 17.6642 7.5 17.25 7.5H2.75C2.33579 7.5 2 7.16421 2 6.75ZM2 13.25C2 12.8358 2.33579 12.5 2.75 12.5H17.25C17.6642 12.5 18 12.8358 18 13.25C18 13.6642 17.6642 14 17.25 14H2.75C2.33579 14 2 13.6642 2 13.25Z" }) }));
8
+ }
9
+ function CloseMenuIcon() {
10
+ return (_jsx("svg", { "data-slot": "icon", viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" }) }));
11
+ }
12
+ function MobileSidebar({ open, close, children }) {
13
+ return (_jsxs(Headless.Dialog, { open: open, onClose: close, className: "lg:hidden", children: [_jsx(Headless.DialogBackdrop, { transition: true, className: "fixed inset-0 bg-black/30 transition data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in" }), _jsx(Headless.DialogPanel, { transition: true, className: "fixed inset-y-0 w-full max-w-80 p-2 transition duration-300 ease-in-out data-closed:-translate-x-full", children: _jsxs("div", { className: "flex h-full flex-col rounded-lg bg-white shadow-xs ring-1 ring-zinc-950/5 dark:bg-zinc-900 dark:ring-white/10", children: [_jsx("div", { className: "-mb-3 px-4 pt-3", children: _jsx(Headless.CloseButton, { as: NavbarItem, "aria-label": "Close navigation", children: _jsx(CloseMenuIcon, {}) }) }), children] }) })] }));
14
+ }
15
+ export function StackedLayout({ navbar, sidebar, children, }) {
16
+ let [showSidebar, setShowSidebar] = useState(false);
17
+ return (_jsxs("div", { className: "relative isolate flex min-h-svh w-full flex-col bg-white lg:bg-zinc-100 dark:bg-zinc-900 dark:lg:bg-zinc-950", children: [_jsx(MobileSidebar, { open: showSidebar, close: () => setShowSidebar(false), children: sidebar }), _jsxs("header", { className: "flex items-center px-4", children: [_jsx("div", { className: "py-2.5 lg:hidden", children: _jsx(NavbarItem, { onClick: () => setShowSidebar(true), "aria-label": "Open navigation", children: _jsx(OpenMenuIcon, {}) }) }), _jsx("div", { className: "min-w-0 flex-1", children: navbar })] }), _jsx("main", { className: "flex flex-1 flex-col pb-2 lg:px-2", children: _jsx("div", { className: "grow 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: _jsx("div", { className: "mx-auto max-w-6xl", children: children }) }) })] }));
18
+ }
@@ -1,9 +1,9 @@
1
1
  import * as Headless from '@headlessui/react';
2
2
  import type React from 'react';
3
- export declare function SwitchGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
3
+ export declare function SwitchGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
4
4
  export declare function SwitchField({ className, ...props }: {
5
5
  className?: string;
6
- } & Omit<Headless.FieldProps, 'as' | 'className'>): React.JSX.Element;
6
+ } & Omit<Headless.FieldProps, 'as' | 'className'>): import("react/jsx-runtime").JSX.Element;
7
7
  declare const colors: {
8
8
  'dark/zinc': string[];
9
9
  'dark/white': string[];
@@ -32,6 +32,6 @@ type Color = keyof typeof colors;
32
32
  export declare function Switch({ color, className, ...props }: {
33
33
  color?: Color;
34
34
  className?: string;
35
- } & Omit<Headless.SwitchProps, 'as' | 'className' | 'children'>): React.JSX.Element;
35
+ } & Omit<Headless.SwitchProps, 'as' | 'className' | 'children'>): import("react/jsx-runtime").JSX.Element;
36
36
  export {};
37
37
  //# sourceMappingURL=switch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../source/catalyst/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAczF;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,qBAoBxE;AAED,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAyFX,CAAA;AAED,KAAK,KAAK,GAAG,MAAM,OAAO,MAAM,CAAA;AAEhC,wBAAgB,MAAM,CAAC,EACrB,KAAmB,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IACD,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,qBAiD9D"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../source/catalyst/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAczF;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,2CAoBxE;AAED,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAyFX,CAAA;AAED,KAAK,KAAK,GAAG,MAAM,OAAO,MAAM,CAAA;AAEhC,wBAAgB,MAAM,CAAC,EACrB,KAAmB,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IACD,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,2CAiD9D"}
@@ -9,19 +9,20 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
12
13
  import * as Headless from '@headlessui/react';
13
14
  import clsx from 'clsx';
14
15
  export function SwitchGroup(_a) {
15
16
  var { className } = _a, props = __rest(_a, ["className"]);
16
- return (<div data-slot="control" {...props} className={clsx(className,
17
+ return (_jsx("div", Object.assign({ "data-slot": "control" }, props, { className: clsx(className,
17
18
  // Basic groups
18
19
  'space-y-3 **:data-[slot=label]:font-normal',
19
20
  // With descriptions
20
- 'has-data-[slot=description]:space-y-6 has-data-[slot=description]:**:data-[slot=label]:font-medium')}/>);
21
+ 'has-data-[slot=description]:space-y-6 has-data-[slot=description]:**:data-[slot=label]:font-medium') })));
21
22
  }
22
23
  export function SwitchField(_a) {
23
24
  var { className } = _a, props = __rest(_a, ["className"]);
24
- return (<Headless.Field data-slot="field" {...props} className={clsx(className,
25
+ return (_jsx(Headless.Field, Object.assign({ "data-slot": "field" }, props, { className: clsx(className,
25
26
  // Base layout
26
27
  'grid grid-cols-[1fr_auto] gap-x-8 gap-y-1 sm:grid-cols-[1fr_auto]',
27
28
  // Control layout
@@ -31,7 +32,7 @@ export function SwitchField(_a) {
31
32
  // Description layout
32
33
  '*:data-[slot=description]:col-start-1 *:data-[slot=description]:row-start-2',
33
34
  // With description
34
- 'has-data-[slot=description]:**:data-[slot=label]:font-medium')}/>);
35
+ 'has-data-[slot=description]:**:data-[slot=label]:font-medium') })));
35
36
  }
36
37
  const colors = {
37
38
  'dark/zinc': [
@@ -125,7 +126,7 @@ const colors = {
125
126
  };
126
127
  export function Switch(_a) {
127
128
  var { color = 'dark/zinc', className } = _a, props = __rest(_a, ["color", "className"]);
128
- return (<Headless.Switch data-slot="control" {...props} className={clsx(className,
129
+ return (_jsx(Headless.Switch, Object.assign({ "data-slot": "control" }, props, { className: clsx(className,
129
130
  // Base styles
130
131
  'group relative isolate inline-flex h-6 w-10 cursor-default rounded-full p-[3px] sm:h-5 sm:w-8',
131
132
  // Transitions
@@ -143,19 +144,17 @@ export function Switch(_a) {
143
144
  // Disabled
144
145
  'data-disabled:bg-zinc-200 data-disabled:opacity-50 data-disabled:data-checked:bg-zinc-200 data-disabled:data-checked:ring-black/5', 'dark:data-disabled:bg-white/15 dark:data-disabled:data-checked:bg-white/15 dark:data-disabled:data-checked:ring-white/15',
145
146
  // Color specific styles
146
- colors[color])}>
147
- <span aria-hidden="true" className={clsx(
148
- // Basic layout
149
- 'pointer-events-none relative inline-block size-4.5 rounded-full sm:size-3.5',
150
- // Transition
151
- 'translate-x-0 transition duration-200 ease-in-out',
152
- // Invisible border so the switch is still visible in forced-colors mode
153
- 'border border-transparent',
154
- // Unchecked
155
- 'bg-white shadow-sm ring-1 ring-black/5',
156
- // Checked
157
- 'group-data-checked:bg-(--switch) group-data-checked:shadow-(--switch-shadow) group-data-checked:ring-(--switch-ring)', 'group-data-checked:translate-x-4 sm:group-data-checked:translate-x-3',
158
- // Disabled
159
- 'group-data-checked:group-data-disabled:bg-white group-data-checked:group-data-disabled:shadow-sm group-data-checked:group-data-disabled:ring-black/5')}/>
160
- </Headless.Switch>);
147
+ colors[color]), children: _jsx("span", { "aria-hidden": "true", className: clsx(
148
+ // Basic layout
149
+ 'pointer-events-none relative inline-block size-4.5 rounded-full sm:size-3.5',
150
+ // Transition
151
+ 'translate-x-0 transition duration-200 ease-in-out',
152
+ // Invisible border so the switch is still visible in forced-colors mode
153
+ 'border border-transparent',
154
+ // Unchecked
155
+ 'bg-white shadow-sm ring-1 ring-black/5',
156
+ // Checked
157
+ 'group-data-checked:bg-(--switch) group-data-checked:shadow-(--switch-shadow) group-data-checked:ring-(--switch-ring)', 'group-data-checked:translate-x-4 sm:group-data-checked:translate-x-3',
158
+ // Disabled
159
+ 'group-data-checked:group-data-disabled:bg-white group-data-checked:group-data-disabled:shadow-sm group-data-checked:group-data-disabled:ring-black/5') }) })));
161
160
  }
@@ -4,14 +4,14 @@ export declare function Table({ bleed, dense, grid, striped, className, children
4
4
  dense?: boolean;
5
5
  grid?: boolean;
6
6
  striped?: boolean;
7
- } & React.ComponentPropsWithoutRef<'div'>): React.JSX.Element;
8
- export declare function TableHead({ className, ...props }: React.ComponentPropsWithoutRef<'thead'>): React.JSX.Element;
9
- export declare function TableBody(props: React.ComponentPropsWithoutRef<'tbody'>): React.JSX.Element;
7
+ } & React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function TableHead({ className, ...props }: React.ComponentPropsWithoutRef<'thead'>): import("react/jsx-runtime").JSX.Element;
9
+ export declare function TableBody(props: React.ComponentPropsWithoutRef<'tbody'>): import("react/jsx-runtime").JSX.Element;
10
10
  export declare function TableRow({ href, target, title, className, ...props }: {
11
11
  href?: string;
12
12
  target?: string;
13
13
  title?: string;
14
- } & React.ComponentPropsWithoutRef<'tr'>): React.JSX.Element;
15
- export declare function TableHeader({ className, ...props }: React.ComponentPropsWithoutRef<'th'>): React.JSX.Element;
16
- export declare function TableCell({ className, children, ...props }: React.ComponentPropsWithoutRef<'td'>): React.JSX.Element;
14
+ } & React.ComponentPropsWithoutRef<'tr'>): import("react/jsx-runtime").JSX.Element;
15
+ export declare function TableHeader({ className, ...props }: React.ComponentPropsWithoutRef<'th'>): import("react/jsx-runtime").JSX.Element;
16
+ export declare function TableCell({ className, children, ...props }: React.ComponentPropsWithoutRef<'td'>): import("react/jsx-runtime").JSX.Element;
17
17
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../source/catalyst/table.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,wBAAgB,KAAK,CAAC,EACpB,KAAa,EACb,KAAa,EACb,IAAY,EACZ,OAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,qBAYjH;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,qBAEzF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,qBAEvE;AAQD,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBAkB3F;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBAcxF;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBA+BhG"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../source/catalyst/table.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,wBAAgB,KAAK,CAAC,EACpB,KAAa,EACb,KAAa,EACb,IAAY,EACZ,OAAe,EACf,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,2CAYjH;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,2CAEzF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,2CAEvE;AAQD,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,2CAkB3F;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,2CAcxF;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,2CA+BhG"}
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import clsx from 'clsx';
15
+ import { createContext, useContext, useState } from 'react';
16
+ import { Link } from './link';
17
+ const TableContext = createContext({
18
+ bleed: false,
19
+ dense: false,
20
+ grid: false,
21
+ striped: false,
22
+ });
23
+ export function Table(_a) {
24
+ var { bleed = false, dense = false, grid = false, striped = false, className, children } = _a, props = __rest(_a, ["bleed", "dense", "grid", "striped", "className", "children"]);
25
+ return (_jsx(TableContext.Provider, { value: { bleed, dense, grid, striped }, children: _jsx("div", { className: "flow-root", children: _jsx("div", Object.assign({}, props, { className: clsx(className, '-mx-(--gutter) overflow-x-auto whitespace-nowrap'), children: _jsx("div", { className: clsx('inline-block min-w-full align-middle', !bleed && 'sm:px-(--gutter)'), children: _jsx("table", { className: "min-w-full text-left text-sm/6 text-zinc-950 dark:text-white", children: children }) }) })) }) }));
26
+ }
27
+ export function TableHead(_a) {
28
+ var { className } = _a, props = __rest(_a, ["className"]);
29
+ return _jsx("thead", Object.assign({}, props, { className: clsx(className, 'text-zinc-500 dark:text-zinc-400') }));
30
+ }
31
+ export function TableBody(props) {
32
+ return _jsx("tbody", Object.assign({}, props));
33
+ }
34
+ const TableRowContext = createContext({
35
+ href: undefined,
36
+ target: undefined,
37
+ title: undefined,
38
+ });
39
+ export function TableRow(_a) {
40
+ var { href, target, title, className } = _a, props = __rest(_a, ["href", "target", "title", "className"]);
41
+ let { striped } = useContext(TableContext);
42
+ return (_jsx(TableRowContext.Provider, { value: { href, target, title }, children: _jsx("tr", Object.assign({}, props, { className: clsx(className, href &&
43
+ 'has-[[data-row-link][data-focus]]:outline-2 has-[[data-row-link][data-focus]]:-outline-offset-2 has-[[data-row-link][data-focus]]:outline-blue-500 dark:focus-within:bg-white/2.5', striped && 'even:bg-zinc-950/2.5 dark:even:bg-white/2.5', href && striped && 'hover:bg-zinc-950/5 dark:hover:bg-white/5', href && !striped && 'hover:bg-zinc-950/2.5 dark:hover:bg-white/2.5') })) }));
44
+ }
45
+ export function TableHeader(_a) {
46
+ var { className } = _a, props = __rest(_a, ["className"]);
47
+ let { bleed, grid } = useContext(TableContext);
48
+ return (_jsx("th", Object.assign({}, props, { className: clsx(className, 'border-b border-b-zinc-950/10 px-4 py-2 font-medium first:pl-(--gutter,--spacing(2)) last:pr-(--gutter,--spacing(2)) dark:border-b-white/10', grid && 'border-l border-l-zinc-950/5 first:border-l-0 dark:border-l-white/5', !bleed && 'sm:first:pl-1 sm:last:pr-1') })));
49
+ }
50
+ export function TableCell(_a) {
51
+ var { className, children } = _a, props = __rest(_a, ["className", "children"]);
52
+ let { bleed, dense, grid, striped } = useContext(TableContext);
53
+ let { href, target, title } = useContext(TableRowContext);
54
+ let [cellRef, setCellRef] = useState(null);
55
+ return (_jsxs("td", Object.assign({ ref: href ? setCellRef : undefined }, props, { className: clsx(className, 'relative px-4 first:pl-(--gutter,--spacing(2)) last:pr-(--gutter,--spacing(2))', !striped && 'border-b border-zinc-950/5 dark:border-white/5', grid && 'border-l border-l-zinc-950/5 first:border-l-0 dark:border-l-white/5', dense ? 'py-2.5' : 'py-4', !bleed && 'sm:first:pl-1 sm:last:pr-1'), children: [href && (_jsx(Link, { "data-row-link": true, href: href, target: target, "aria-label": title, tabIndex: (cellRef === null || cellRef === void 0 ? void 0 : cellRef.previousElementSibling) === null ? 0 : -1, className: "absolute inset-0 focus:outline-hidden" })), children] })));
56
+ }
@@ -1,6 +1,6 @@
1
1
  import { Link } from './link';
2
- export declare function Text({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react").JSX.Element;
3
- export declare function TextLink({ className, ...props }: React.ComponentPropsWithoutRef<typeof Link>): import("react").JSX.Element;
4
- export declare function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>): import("react").JSX.Element;
5
- export declare function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>): import("react").JSX.Element;
2
+ export declare function Text({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function TextLink({ className, ...props }: React.ComponentPropsWithoutRef<typeof Link>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>): import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../source/catalyst/text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,+BAQhF;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,+BAU5F;AAED,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,+BAEvF;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,+BAUnF"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../source/catalyst/text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,2CAQhF;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,2CAU5F;AAED,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,2CAEvF;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,2CAUnF"}
@@ -9,21 +9,22 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
12
13
  import clsx from 'clsx';
13
14
  import { Link } from './link';
14
15
  export function Text(_a) {
15
16
  var { className } = _a, props = __rest(_a, ["className"]);
16
- return (<p data-slot="text" {...props} className={clsx(className, 'text-base/6 text-zinc-500 sm:text-sm/6 dark:text-zinc-400')}/>);
17
+ return (_jsx("p", Object.assign({ "data-slot": "text" }, props, { className: clsx(className, 'text-base/6 text-zinc-500 sm:text-sm/6 dark:text-zinc-400') })));
17
18
  }
18
19
  export function TextLink(_a) {
19
20
  var { className } = _a, props = __rest(_a, ["className"]);
20
- return (<Link {...props} className={clsx(className, 'text-zinc-950 underline decoration-zinc-950/50 data-hover:decoration-zinc-950 dark:text-white dark:decoration-white/50 dark:data-hover:decoration-white')}/>);
21
+ return (_jsx(Link, Object.assign({}, props, { className: clsx(className, 'text-zinc-950 underline decoration-zinc-950/50 data-hover:decoration-zinc-950 dark:text-white dark:decoration-white/50 dark:data-hover:decoration-white') })));
21
22
  }
22
23
  export function Strong(_a) {
23
24
  var { className } = _a, props = __rest(_a, ["className"]);
24
- return <strong {...props} className={clsx(className, 'font-medium text-zinc-950 dark:text-white')}/>;
25
+ return _jsx("strong", Object.assign({}, props, { className: clsx(className, 'font-medium text-zinc-950 dark:text-white') }));
25
26
  }
26
27
  export function Code(_a) {
27
28
  var { className } = _a, props = __rest(_a, ["className"]);
28
- return (<code {...props} className={clsx(className, 'rounded-sm border border-zinc-950/10 bg-zinc-950/2.5 px-0.5 text-sm font-medium text-zinc-950 sm:text-[0.8125rem] dark:border-white/20 dark:bg-white/5 dark:text-white')}/>);
29
+ return (_jsx("code", Object.assign({}, props, { className: clsx(className, 'rounded-sm border border-zinc-950/10 bg-zinc-950/2.5 px-0.5 text-sm font-medium text-zinc-950 sm:text-[0.8125rem] dark:border-white/20 dark:bg-white/5 dark:text-white') })));
29
30
  }
@@ -9,12 +9,13 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
12
13
  import * as Headless from '@headlessui/react';
13
14
  import clsx from 'clsx';
14
- import React, { forwardRef } from 'react';
15
+ import { forwardRef } from 'react';
15
16
  export const Textarea = forwardRef(function Textarea(_a, ref) {
16
17
  var { className, resizable = true } = _a, props = __rest(_a, ["className", "resizable"]);
17
- return (<span data-slot="control" className={clsx([
18
+ return (_jsx("span", { "data-slot": "control", className: clsx([
18
19
  className,
19
20
  // Basic layout
20
21
  'relative block w-full',
@@ -26,24 +27,22 @@ export const Textarea = forwardRef(function Textarea(_a, ref) {
26
27
  'after:pointer-events-none after:absolute after:inset-0 after:rounded-lg after:ring-transparent after:ring-inset sm:focus-within:after:ring-2 sm:focus-within:after:ring-blue-500',
27
28
  // Disabled state
28
29
  'has-data-disabled:opacity-50 has-data-disabled:before:bg-zinc-950/5 has-data-disabled:before:shadow-none',
29
- ])}>
30
- <Headless.Textarea ref={ref} {...props} className={clsx([
31
- // Basic layout
32
- 'relative block h-full w-full appearance-none rounded-lg px-[calc(--spacing(3.5)-1px)] py-[calc(--spacing(2.5)-1px)] sm:px-[calc(--spacing(3)-1px)] sm:py-[calc(--spacing(1.5)-1px)]',
33
- // Typography
34
- 'text-base/6 text-zinc-950 placeholder:text-zinc-500 sm:text-sm/6 dark:text-white',
35
- // Border
36
- 'border border-zinc-950/10 data-hover:border-zinc-950/20 dark:border-white/10 dark:data-hover:border-white/20',
37
- // Background color
38
- 'bg-transparent dark:bg-white/5',
39
- // Hide default focus styles
40
- 'focus:outline-hidden',
41
- // Invalid state
42
- 'data-invalid:border-red-500 data-invalid:data-hover:border-red-500 dark:data-invalid:border-red-600 dark:data-invalid:data-hover:border-red-600',
43
- // Disabled state
44
- 'disabled:border-zinc-950/20 dark:disabled:border-white/15 dark:disabled:bg-white/2.5 dark:data-hover:disabled:border-white/15',
45
- // Resizable
46
- resizable ? 'resize-y' : 'resize-none',
47
- ])}/>
48
- </span>);
30
+ ]), children: _jsx(Headless.Textarea, Object.assign({ ref: ref }, props, { className: clsx([
31
+ // Basic layout
32
+ 'relative block h-full w-full appearance-none rounded-lg px-[calc(--spacing(3.5)-1px)] py-[calc(--spacing(2.5)-1px)] sm:px-[calc(--spacing(3)-1px)] sm:py-[calc(--spacing(1.5)-1px)]',
33
+ // Typography
34
+ 'text-base/6 text-zinc-950 placeholder:text-zinc-500 sm:text-sm/6 dark:text-white',
35
+ // Border
36
+ 'border border-zinc-950/10 data-hover:border-zinc-950/20 dark:border-white/10 dark:data-hover:border-white/20',
37
+ // Background color
38
+ 'bg-transparent dark:bg-white/5',
39
+ // Hide default focus styles
40
+ 'focus:outline-hidden',
41
+ // Invalid state
42
+ 'data-invalid:border-red-500 data-invalid:data-hover:border-red-500 dark:data-invalid:border-red-600 dark:data-invalid:data-hover:border-red-600',
43
+ // Disabled state
44
+ 'disabled:border-zinc-950/20 dark:disabled:border-white/15 dark:disabled:bg-white/2.5 dark:data-hover:disabled:border-white/15',
45
+ // Resizable
46
+ resizable ? 'resize-y' : 'resize-none',
47
+ ]) })) }));
49
48
  });