Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add jsr support #2831

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions deno.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"name": "@radix-ui-fork/primitives",
"version": "0.0.7",
"exclude": ["**/package.json", "**/*.test.tsx", "**/*.stories.tsx"],
"compilerOptions": {
"noErrorTruncation": true,
"jsx": "react-jsx",
"lib": [
"es2022",
"dom",
"dom.iterable",
"dom.asynciterable"
]
},
"workspaces": [
"./packages/core/primitive",
"./packages/core/number",
"./packages/core/rect",
"./packages/react/accordion",
"./packages/react/announce",
"./packages/react/aspect-ratio",
"./packages/react/avatar",
"./packages/react/form",
"./packages/react/hover-card",
"./packages/react/scroll-area",
"./packages/react/navigation-menu",
"./packages/react/progress",
"./packages/react/radio-group",
"./packages/react/select",
"./packages/react/separator",
"./packages/react/slider",
"./packages/react/switch",
"./packages/react/popover",
"./packages/react/alert-dialog",
"./packages/react/toolbar",
"./packages/react/toggle",
"./packages/react/toggle-group",
"./packages/react/tabs",
"./packages/react/label",
"./packages/react/dialog",
"./packages/react/direction",
"./packages/react/popper",
"./packages/react/arrow",
"./packages/react/portal",
"./packages/react/focus-scope",
"./packages/react/focus-guards",
"./packages/react/roving-focus",
"./packages/react/use-escape-keydown",
"./packages/react/dismissable-layer",
"./packages/react/menu",
"./packages/react/dropdown-menu",
"./packages/react/checkbox",
"./packages/react/use-size",
"./packages/react/use-previous",
"./packages/react/direction",
"./packages/react/collapsible",
"./packages/react/presence",
"./packages/react/use-controllable-state",
"./packages/react/use-callback-ref",
"./packages/react/id",
"./packages/react/use-layout-effect",
"./packages/react/collection",
"./packages/react/context",
"./packages/react/accessible-icon",
"./packages/react/visually-hidden",
"./packages/react/compose-refs",
"./packages/react/slot",
"./packages/react/primitive"
]
}
7 changes: 7 additions & 0 deletions packages/core/number/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "@radix-ui-fork/number",
"version": "0.0.7",
"exports": {
".": "./src/index.ts"
}
}
2 changes: 1 addition & 1 deletion packages/core/number/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { clamp } from './number';
export { clamp } from './number.ts';
7 changes: 7 additions & 0 deletions packages/core/primitive/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "@radix-ui-fork/primitive",
"version": "0.0.7",
"exports": {
".": "./src/index.ts"
}
}
2 changes: 1 addition & 1 deletion packages/core/primitive/src/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { composeEventHandlers } from './primitive';
export { composeEventHandlers } from './primitive.tsx';
2 changes: 1 addition & 1 deletion packages/core/primitive/src/primitive.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ function composeEventHandlers<E>(
originalEventHandler?: (event: E) => void,
ourEventHandler?: (event: E) => void,
{ checkForDefaultPrevented = true } = {}
) {
): (event: E) => void {
return function handleEvent(event: E) {
originalEventHandler?.(event);

Expand Down
7 changes: 7 additions & 0 deletions packages/core/rect/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "@radix-ui-fork/rect",
"version": "0.0.7",
"exports": {
".": "./src/index.ts"
}
}
4 changes: 2 additions & 2 deletions packages/core/rect/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export { observeElementRect } from './observeElementRect';
export type { Measurable } from './observeElementRect';
export { observeElementRect } from './observeElementRect.ts';
export type { Measurable } from './observeElementRect.ts';
2 changes: 1 addition & 1 deletion packages/core/rect/src/observeElementRect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ function observeElementRect(
elementToObserve: Measurable,
/** The callback which will be called when the rect changes */
callback: CallbackFn
) {
): () => void {
const observedData = observedElements.get(elementToObserve);

if (observedData === undefined) {
Expand Down
15 changes: 15 additions & 0 deletions packages/react/accessible-icon/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "@radix-ui-fork/react-accessible-icon",
"version": "0.0.7",
"exclude": ["**/package.json", "**/*.test.tsx", "**/*.stories.tsx"],
"imports": {
"react": "npm:react@^18.2.0",
"@types/react": "npm:@types/react@^18.2.0",
"@radix-ui/react-primitive": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-visually-hidden": "jsr:@radix-ui-fork/[email protected]"
},
"exports": {
".": "./src/index.ts"
}
}

Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @deno-types="npm:@types/react@^18.2.0"
import * as React from 'react';
import { AccessibleIcon } from '@radix-ui/react-accessible-icon';

Expand Down
1 change: 1 addition & 0 deletions packages/react/accessible-icon/src/AccessibleIcon.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @deno-types="npm:@types/react@^18.2.0"
import * as React from 'react';
import * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';

Expand Down
4 changes: 2 additions & 2 deletions packages/react/accessible-icon/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ export {
AccessibleIcon,
//
Root,
} from './AccessibleIcon';
export type { AccessibleIconProps } from './AccessibleIcon';
} from './AccessibleIcon.tsx';
export type { AccessibleIconProps } from './AccessibleIcon.tsx';
23 changes: 23 additions & 0 deletions packages/react/accordion/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "@radix-ui-fork/react-accordion",
"version": "0.0.7",
"exclude": ["**/package.json", "**/*.test.tsx", "**/*.stories.tsx"],
"imports": {
"react": "npm:react@^18.2.0",
"@types/react": "npm:@types/react@^18.2.0",
"@radix-ui/primitive": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-id": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-use-controllable-state": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-use-layout-effect": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-compose-refs": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-context": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-collapsible": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-collection": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-direction": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-primitive": "jsr:@radix-ui-fork/[email protected]"
},
"exports": {
".": "./src/index.ts"
}
}

1 change: 1 addition & 0 deletions packages/react/accordion/src/Accordion.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* eslint-disable jsx-a11y/anchor-is-valid */
// @deno-types="npm:@types/react@^18.2.0"
import * as React from 'react';
import { css, keyframes } from '../../../../stitches.config';
import * as Accordion from '@radix-ui/react-accordion';
Expand Down
1 change: 1 addition & 0 deletions packages/react/accordion/src/Accordion.test.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @deno-types="npm:@types/react@^18.2.0"
import * as React from 'react';
import { axe } from 'jest-axe';
import { render, fireEvent, RenderResult } from '@testing-library/react';
Expand Down
53 changes: 37 additions & 16 deletions packages/react/accordion/src/Accordion.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @deno-types="npm:@types/react@^18.2.0"
import React from 'react';
import { createContextScope } from '@radix-ui/react-context';
import { createCollection } from '@radix-ui/react-collection';
Expand All @@ -22,15 +23,22 @@ type Direction = 'ltr' | 'rtl';
const ACCORDION_NAME = 'Accordion';
const ACCORDION_KEYS = ['Home', 'End', 'ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'];

const [Collection, useCollection, createCollectionScope] =
const collection: ReturnType<typeof createCollection<AccordionTriggerElement>> =
createCollection<AccordionTriggerElement>(ACCORDION_NAME);
const Collection = collection[0]
const useCollection = collection[1];
const createCollectionScope = collection[2];

type ScopedProps<P> = P & { __scopeAccordion?: Scope };
const [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [
const contextScope: ReturnType<
typeof createContextScope
> = createContextScope(ACCORDION_NAME, [
createCollectionScope,
createCollapsibleScope,
]);
const useCollapsibleScope = createCollapsibleScope();
const createAccordionContext = contextScope[0];
const createAccordionScope = contextScope[1];
const useCollapsibleScope: ReturnType<typeof createCollapsibleScope> = createCollapsibleScope();

type AccordionElement = AccordionImplMultipleElement | AccordionImplSingleElement;
interface AccordionSingleProps extends AccordionImplSingleProps {
Expand All @@ -40,7 +48,8 @@ interface AccordionMultipleProps extends AccordionImplMultipleProps {
type: 'multiple';
}

const Accordion = React.forwardRef<AccordionElement, AccordionSingleProps | AccordionMultipleProps>(
const Accordion: React.ForwardRefExoticComponent<(AccordionSingleProps | AccordionMultipleProps) & React.RefAttributes<AccordionElement>>
= React.forwardRef<AccordionElement, AccordionSingleProps | AccordionMultipleProps>(
(props: ScopedProps<AccordionSingleProps | AccordionMultipleProps>, forwardedRef) => {
const { type, ...accordionProps } = props;
const singleProps = accordionProps as AccordionImplSingleProps;
Expand Down Expand Up @@ -89,13 +98,19 @@ type AccordionValueContextValue = {
onItemClose(value: string): void;
};

const [AccordionValueProvider, useAccordionValueContext] =
createAccordionContext<AccordionValueContextValue>(ACCORDION_NAME);
const accordionValueContext: ReturnType<
typeof createAccordionContext<AccordionValueContextValue>
> = createAccordionContext<AccordionValueContextValue>(ACCORDION_NAME);
const AccordionValueProvider = accordionValueContext[0];
const useAccordionValueContext = accordionValueContext[1];

const [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(
ACCORDION_NAME,
const accordionCollapsibleContext: ReturnType<
typeof createAccordionContext<{ collapsible: boolean }>
> = createAccordionContext<{ collapsible: boolean }>(ACCORDION_NAME,
{ collapsible: false }
);
const AccordionCollapsibleProvider = accordionCollapsibleContext[0];
const useAccordionCollapsibleContext = accordionCollapsibleContext[1];

type AccordionImplSingleElement = AccordionImplElement;
interface AccordionImplSingleProps extends AccordionImplProps {
Expand All @@ -119,7 +134,8 @@ interface AccordionImplSingleProps extends AccordionImplProps {
collapsible?: boolean;
}

const AccordionImplSingle = React.forwardRef<AccordionImplSingleElement, AccordionImplSingleProps>(
const AccordionImplSingle: React.ForwardRefExoticComponent<AccordionImplSingleProps & React.RefAttributes<AccordionImplSingleElement>>
= React.forwardRef<AccordionImplSingleElement, AccordionImplSingleProps>(
(props: ScopedProps<AccordionImplSingleProps>, forwardedRef) => {
const {
value: valueProp,
Expand Down Expand Up @@ -169,7 +185,8 @@ interface AccordionImplMultipleProps extends AccordionImplProps {
onValueChange?(value: string[]): void;
}

const AccordionImplMultiple = React.forwardRef<
const AccordionImplMultiple: React.ForwardRefExoticComponent<AccordionImplMultipleProps & React.RefAttributes<AccordionImplMultipleElement>>
= React.forwardRef<
AccordionImplMultipleElement,
AccordionImplMultipleProps
>((props: ScopedProps<AccordionImplMultipleProps>, forwardedRef) => {
Expand Down Expand Up @@ -242,7 +259,7 @@ interface AccordionImplProps extends PrimitiveDivProps {
dir?: Direction;
}

const AccordionImpl = React.forwardRef<AccordionImplElement, AccordionImplProps>(
const AccordionImpl: React.ForwardRefExoticComponent<AccordionImplProps & React.RefAttributes<AccordionImplElement>> = React.forwardRef<AccordionImplElement, AccordionImplProps>(
(props: ScopedProps<AccordionImplProps>, forwardedRef) => {
const { __scopeAccordion, disabled, dir, orientation = 'vertical', ...accordionProps } = props;
const accordionRef = React.useRef<AccordionImplElement>(null);
Expand Down Expand Up @@ -371,7 +388,8 @@ interface AccordionItemProps
/**
* `AccordionItem` contains all of the parts of a collapsible section inside of an `Accordion`.
*/
const AccordionItem = React.forwardRef<AccordionItemElement, AccordionItemProps>(
const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionItemProps, "ref"> & React.RefAttributes<AccordionItemElement>>
= React.forwardRef<AccordionItemElement, AccordionItemProps>(
(props: ScopedProps<AccordionItemProps>, forwardedRef) => {
const { __scopeAccordion, value, ...accordionItemProps } = props;
const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);
Expand Down Expand Up @@ -425,7 +443,8 @@ interface AccordionHeaderProps extends PrimitiveHeading3Props {}
* `AccordionHeader` contains the content for the parts of an `AccordionItem` that will be visible
* whether or not its content is collapsed.
*/
const AccordionHeader = React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(
const AccordionHeader: React.ForwardRefExoticComponent<AccordionHeaderProps & React.RefAttributes<AccordionHeaderElement>>
= React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(
(props: ScopedProps<AccordionHeaderProps>, forwardedRef) => {
const { __scopeAccordion, ...headerProps } = props;
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
Expand Down Expand Up @@ -458,7 +477,8 @@ interface AccordionTriggerProps extends CollapsibleTriggerProps {}
* `AccordionTrigger` is the trigger that toggles the collapsed state of an `AccordionItem`. It
* should always be nested inside of an `AccordionHeader`.
*/
const AccordionTrigger = React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(
const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<AccordionTriggerElement>>
= React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(
(props: ScopedProps<AccordionTriggerProps>, forwardedRef) => {
const { __scopeAccordion, ...triggerProps } = props;
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
Expand Down Expand Up @@ -495,7 +515,8 @@ interface AccordionContentProps extends CollapsibleContentProps {}
/**
* `AccordionContent` contains the collapsible content for an `AccordionItem`.
*/
const AccordionContent = React.forwardRef<AccordionContentElement, AccordionContentProps>(
const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<AccordionContentElement>>
= React.forwardRef<AccordionContentElement, AccordionContentProps>(
(props: ScopedProps<AccordionContentProps>, forwardedRef) => {
const { __scopeAccordion, ...contentProps } = props;
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
Expand Down Expand Up @@ -523,7 +544,7 @@ AccordionContent.displayName = CONTENT_NAME;

/* -----------------------------------------------------------------------------------------------*/

function getState(open?: boolean) {
function getState(open?: boolean): "open" | "closed" {
return open ? 'open' : 'closed';
}

Expand Down
4 changes: 2 additions & 2 deletions packages/react/accordion/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ export {
Header,
Trigger,
Content,
} from './Accordion';
} from './Accordion.tsx';
export type {
AccordionSingleProps,
AccordionMultipleProps,
AccordionItemProps,
AccordionHeaderProps,
AccordionTriggerProps,
AccordionContentProps,
} from './Accordion';
} from './Accordion.tsx';
22 changes: 22 additions & 0 deletions packages/react/alert-dialog/deno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "@radix-ui-fork/react-alert-dialog",
"version": "0.0.7",
"imports": {
"react": "npm:react@^18.2.0",
"@types/react": "npm:@types/react@^18.2.0",
"@radix-ui/primitive": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-id": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-dialog": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-use-layout-effect": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-compose-refs": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-context": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-slot": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-collection": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-use-callback-ref": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-direction": "jsr:@radix-ui-fork/[email protected]",
"@radix-ui/react-primitive": "jsr:@radix-ui-fork/[email protected]"
},
"exports": {
".": "./src/index.ts"
}
}
1 change: 1 addition & 0 deletions packages/react/alert-dialog/src/AlertDialog.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @deno-types="npm:@types/react@^18.2.0"
import * as React from 'react';
import { css } from '../../../../stitches.config';
import * as AlertDialog from '@radix-ui/react-alert-dialog';
Expand Down
Loading