@radix-ui/react-primitive
Advanced tools
Comparing version 1.0.3 to 1.1.0-rc.1
@@ -1,9 +0,10 @@ | ||
import * as React from "react"; | ||
import * as React from 'react'; | ||
declare const NODES: readonly ["a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "span", "svg", "ul"]; | ||
type PropsWithoutRef<P> = P extends any ? ('ref' extends keyof P ? Pick<P, Exclude<keyof P, 'ref'>> : P) : P; | ||
export type ComponentPropsWithoutRef<T extends React.ElementType> = PropsWithoutRef<React.ComponentProps<T>>; | ||
type Primitives = { | ||
declare type PropsWithoutRef<P> = P extends any ? ('ref' extends keyof P ? Pick<P, Exclude<keyof P, 'ref'>> : P) : P; | ||
declare type ComponentPropsWithoutRef<T extends React.ElementType> = PropsWithoutRef<React.ComponentProps<T>>; | ||
declare type Primitives = { | ||
[E in typeof NODES[number]]: PrimitiveForwardRefComponent<E>; | ||
}; | ||
export type PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & { | ||
declare type PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & { | ||
asChild?: boolean; | ||
@@ -13,3 +14,3 @@ }; | ||
} | ||
export const Primitive: Primitives; | ||
declare const Primitive: Primitives; | ||
/** | ||
@@ -51,5 +52,5 @@ * Flush custom event dispatch | ||
*/ | ||
export function dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E): void; | ||
export const Root: Primitives; | ||
declare function dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E): void; | ||
declare const Root: Primitives; | ||
//# sourceMappingURL=index.d.ts.map | ||
export { type ComponentPropsWithoutRef, Primitive, type PrimitivePropsWithRef, Root, dispatchDiscreteCustomEvent }; |
@@ -1,105 +0,72 @@ | ||
var $iMixA$babelruntimehelpersextends = require("@babel/runtime/helpers/extends"); | ||
var $iMixA$react = require("react"); | ||
var $iMixA$reactdom = require("react-dom"); | ||
var $iMixA$radixuireactslot = require("@radix-ui/react-slot"); | ||
"use strict"; | ||
(() => { | ||
var __create = Object.create; | ||
var __defProp = Object.defineProperty; | ||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
var __getOwnPropNames = Object.getOwnPropertyNames; | ||
var __getProtoOf = Object.getPrototypeOf; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { | ||
get: (a, b) => (typeof require !== "undefined" ? require : a)[b] | ||
}) : x)(function(x) { | ||
if (typeof require !== "undefined") return require.apply(this, arguments); | ||
throw Error('Dynamic require of "' + x + '" is not supported'); | ||
}); | ||
var __copyProps = (to, from, except, desc) => { | ||
if (from && typeof from === "object" || typeof from === "function") { | ||
for (let key of __getOwnPropNames(from)) | ||
if (!__hasOwnProp.call(to, key) && key !== except) | ||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
} | ||
return to; | ||
}; | ||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( | ||
// If the importer is in node compatibility mode or this is not an ESM | ||
// file that has been converted to a CommonJS file using a Babel- | ||
// compatible transform (i.e. "__esModule" has not been set), then set | ||
// "default" to the CommonJS "module.exports" for node compatibility. | ||
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, | ||
mod | ||
)); | ||
function $parcel$export(e, n, v, s) { | ||
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); | ||
} | ||
function $parcel$interopDefault(a) { | ||
return a && a.__esModule ? a.default : a; | ||
} | ||
$parcel$export(module.exports, "Primitive", () => $c3def6332c2749a6$export$250ffa63cdc0d034); | ||
$parcel$export(module.exports, "Root", () => $c3def6332c2749a6$export$be92b6f5f03c0fe9); | ||
$parcel$export(module.exports, "dispatchDiscreteCustomEvent", () => $c3def6332c2749a6$export$6d1a0317bde7de7f); | ||
const $c3def6332c2749a6$var$NODES = [ | ||
'a', | ||
'button', | ||
'div', | ||
'form', | ||
'h2', | ||
'h3', | ||
'img', | ||
'input', | ||
'label', | ||
'li', | ||
'nav', | ||
'ol', | ||
'p', | ||
'span', | ||
'svg', | ||
'ul' | ||
]; // Temporary while we await merge of this fix: | ||
// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396 | ||
// prettier-ignore | ||
/* ------------------------------------------------------------------------------------------------- | ||
* Primitive | ||
* -----------------------------------------------------------------------------------------------*/ const $c3def6332c2749a6$export$250ffa63cdc0d034 = $c3def6332c2749a6$var$NODES.reduce((primitive, node)=>{ | ||
const Node = /*#__PURE__*/ $iMixA$react.forwardRef((props, forwardedRef)=>{ | ||
const { asChild: asChild , ...primitiveProps } = props; | ||
const Comp = asChild ? $iMixA$radixuireactslot.Slot : node; | ||
$iMixA$react.useEffect(()=>{ | ||
window[Symbol.for('radix-ui')] = true; | ||
}, []); | ||
return /*#__PURE__*/ $iMixA$react.createElement(Comp, ($parcel$interopDefault($iMixA$babelruntimehelpersextends))({}, primitiveProps, { | ||
ref: forwardedRef | ||
})); | ||
// packages/react/primitive/src/Primitive.tsx | ||
var React = __toESM(__require("react")); | ||
var ReactDOM = __toESM(__require("react-dom")); | ||
var import_react_slot = __require("@radix-ui/react-slot"); | ||
var import_jsx_runtime = __require("react/jsx-runtime"); | ||
var NODES = [ | ||
"a", | ||
"button", | ||
"div", | ||
"form", | ||
"h2", | ||
"h3", | ||
"img", | ||
"input", | ||
"label", | ||
"li", | ||
"nav", | ||
"ol", | ||
"p", | ||
"span", | ||
"svg", | ||
"ul" | ||
]; | ||
var Primitive = NODES.reduce((primitive, node) => { | ||
const Node = React.forwardRef((props, forwardedRef) => { | ||
const { asChild, ...primitiveProps } = props; | ||
const Comp = asChild ? import_react_slot.Slot : node; | ||
React.useEffect(() => { | ||
window[Symbol.for("radix-ui")] = true; | ||
}, []); | ||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); | ||
}); | ||
Node.displayName = `Primitive.${node}`; | ||
return { | ||
...primitive, | ||
[node]: Node | ||
}; | ||
}, {}); | ||
/* ------------------------------------------------------------------------------------------------- | ||
* Utils | ||
* -----------------------------------------------------------------------------------------------*/ /** | ||
* Flush custom event dispatch | ||
* https://github.com/radix-ui/primitives/pull/1378 | ||
* | ||
* React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types. | ||
* | ||
* Internally, React prioritises events in the following order: | ||
* - discrete | ||
* - continuous | ||
* - default | ||
* | ||
* https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350 | ||
* | ||
* `discrete` is an important distinction as updates within these events are applied immediately. | ||
* React however, is not able to infer the priority of custom event types due to how they are detected internally. | ||
* Because of this, it's possible for updates from custom events to be unexpectedly batched when | ||
* dispatched by another `discrete` event. | ||
* | ||
* In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch. | ||
* This utility should be used when dispatching a custom event from within another `discrete` event, this utility | ||
* is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event. | ||
* For example: | ||
* | ||
* dispatching a known click 👎 | ||
* target.dispatchEvent(new Event(‘click’)) | ||
* | ||
* dispatching a custom type within a non-discrete event 👎 | ||
* onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))} | ||
* | ||
* dispatching a custom type within a `discrete` event 👍 | ||
* onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))} | ||
* | ||
* Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use | ||
* this utility with them. This is because it's possible for those handlers to be called implicitly during render | ||
* e.g. when focus is within a component as it is unmounted, or when managing focus on mount. | ||
*/ function $c3def6332c2749a6$export$6d1a0317bde7de7f(target, event) { | ||
if (target) $iMixA$reactdom.flushSync(()=>target.dispatchEvent(event) | ||
); | ||
} | ||
/* -----------------------------------------------------------------------------------------------*/ const $c3def6332c2749a6$export$be92b6f5f03c0fe9 = $c3def6332c2749a6$export$250ffa63cdc0d034; | ||
return { ...primitive, [node]: Node }; | ||
}, {}); | ||
function dispatchDiscreteCustomEvent(target, event) { | ||
if (target) ReactDOM.flushSync(() => target.dispatchEvent(event)); | ||
} | ||
var Root = Primitive; | ||
})(); | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@radix-ui/react-primitive", | ||
"version": "1.0.3", | ||
"version": "1.1.0-rc.1", | ||
"license": "MIT", | ||
@@ -31,4 +31,3 @@ "exports": { | ||
"dependencies": { | ||
"@babel/runtime": "^7.13.10", | ||
"@radix-ui/react-slot": "1.0.2" | ||
"@radix-ui/react-slot": "1.1.0-rc.1" | ||
}, | ||
@@ -59,3 +58,4 @@ "devDependencies": { | ||
"url": "https://github.com/radix-ui/primitives/issues" | ||
} | ||
}, | ||
"stableVersion": "1.0.3" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5
22000
8
168
1
3
1
+ Added@radix-ui/react-compose-refs@1.1.0-rc.1(transitive)
+ Added@radix-ui/react-slot@1.1.0-rc.1(transitive)
- Removed@babel/runtime@^7.13.10
- Removed@babel/runtime@7.26.0(transitive)
- Removed@radix-ui/react-compose-refs@1.0.1(transitive)
- Removed@radix-ui/react-slot@1.0.2(transitive)
- Removedregenerator-runtime@0.14.1(transitive)