@plasmicpkgs/radix-ui 0.0.2 → 0.0.6

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.
package/dist/dialog.d.ts CHANGED
@@ -3,7 +3,6 @@ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
3
  import clsx from "clsx";
4
4
  import { AnimatedProps } from "./util";
5
5
  import { Registerable } from "./reg-util";
6
- export declare function prefixClasses(x: string): string;
7
6
  export declare const DialogClose: React.ForwardRefExoticComponent<Pick<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>, "form" | "slot" | "style" | "title" | "key" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "type" | "value" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "content" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "asChild"> & React.RefAttributes<HTMLButtonElement>>;
8
7
  export declare const DialogContent: React.ForwardRefExoticComponent<{
9
8
  themeResetClass?: string | undefined;
@@ -46,6 +45,7 @@ export declare const Dialog: React.ForwardRefExoticComponent<DialogPrimitive.Dia
46
45
  overlayClassName?: string | undefined;
47
46
  themeResetClass?: string | undefined;
48
47
  noContain?: boolean | undefined;
48
+ triggerSlot?: React.ReactNode;
49
49
  } & React.RefAttributes<never>>;
50
50
  export declare const DialogTitle: React.ForwardRefExoticComponent<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;
51
51
  export declare const DialogDescription: React.ForwardRefExoticComponent<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
package/dist/index.d.ts CHANGED
@@ -2,3 +2,6 @@ import { Registerable } from "./reg-util";
2
2
  export declare function registerAll(PLASMIC?: Registerable): void;
3
3
  export * from "./dialog";
4
4
  export * from "./popover";
5
+ export * from "./tooltip";
6
+ export { popoverProps } from "./util";
7
+ export { PopoverExtraProps } from "./util";
package/dist/popover.d.ts CHANGED
@@ -1,15 +1,11 @@
1
1
  import * as React from "react";
2
2
  import * as PopoverPrimitive from "@radix-ui/react-popover";
3
- import { ReactNode } from "react";
4
- import { AnimatedProps } from "./util";
3
+ import { PopoverExtraProps } from "./util";
5
4
  import { Registerable } from "./reg-util";
6
- export declare function Popover({ open, onOpenChange, defaultOpen, modal, className, sideOffset, themeResetClass, overlay, slideIn, trigger, children, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content> & AnimatedProps & PopoverPrimitive.PopoverProps & {
7
- themeResetClass?: string;
8
- overlay?: ReactNode;
5
+ export declare function Popover({ open, onOpenChange, defaultOpen, modal, className, sideOffset, themeResetClass, overlay, slideIn, trigger, children, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content> & PopoverPrimitive.PopoverProps & PopoverExtraProps & {
9
6
  trigger?: boolean;
10
- slideIn?: boolean;
11
7
  }): React.JSX.Element;
12
8
  export declare namespace Popover {
13
- var displayName: string | undefined;
9
+ var displayName: string;
14
10
  }
15
11
  export declare function registerPopover(PLASMIC?: Registerable): void;
@@ -13,6 +13,7 @@ require('@plasmicapp/host/registerGlobalContext');
13
13
  var DialogPrimitive = require('@radix-ui/react-dialog');
14
14
  var classVarianceAuthority = require('class-variance-authority');
15
15
  var lucideReact = require('lucide-react');
16
+ var TooltipPrimitive = require('@radix-ui/react-tooltip');
16
17
 
17
18
  function _extends() {
18
19
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -55,9 +56,9 @@ var useId = (_React$useId = React.useId) != null ? _React$useId : function () {
55
56
  /** Allow attaching pseudoclasses and other CSS selectors to this unique component instance */
56
57
  var StyleWrapper = function StyleWrapper(_ref) {
57
58
  var children = _ref.children,
58
- css = _ref.css;
59
+ cssStr = _ref.cssStr;
59
60
  var dynClass = "pd__" + useId().replace(/:/g, "");
60
- return React.createElement(React.Fragment, null, children(dynClass), React.createElement("style", null, dynClass ? css.replace(/&/g, "." + dynClass) : ""));
61
+ return React.createElement(React.Fragment, null, children(dynClass), React.createElement("style", null, dynClass ? cssStr.replace(/&/g, "." + dynClass) : ""));
61
62
  };
62
63
  var Animated = function Animated(_ref2) {
63
64
  var children = _ref2.children,
@@ -114,10 +115,10 @@ var Animated = function Animated(_ref2) {
114
115
  "zoom-exit": "--tw-exit-scale: " + exitScale + ";"
115
116
  };
116
117
  return React.createElement(StyleWrapper, {
117
- css: "\n &[data-state=\"closed\"] {\n animation-duration: " + exitDuration + "s;\n animation-timing-function: " + exitTiming + ";\n animation-delay: " + exitDelay + ";\n " + exitAnimations.map(function (exitAnimation) {
118
+ cssStr: "\n &&[data-state=closed] {\n animation-duration: " + exitDuration + "s;\n animation-timing-function: " + exitTiming + ";\n animation-delay: " + exitDelay + ";\n " + exitAnimations.map(function (exitAnimation) {
118
119
  var _animations$exitAnima;
119
120
  return (_animations$exitAnima = animations[exitAnimation]) != null ? _animations$exitAnima : "";
120
- }).join(" ") + "\n }\n &[data-state=\"open\"] {\n animation-duration: " + enterDuration + "s;\n animation-timing-function: " + enterTiming + ";\n animation-delay: " + enterDelay + ";\n " + enterAnimations.map(function (enterAnimation) {
121
+ }).join(" ") + "\n }\n &&,\n &&[data-state=open] {\n animation-duration: " + enterDuration + "s;\n animation-timing-function: " + enterTiming + ";\n animation-delay: " + enterDelay + ";\n " + enterAnimations.map(function (enterAnimation) {
121
122
  var _animations$enterAnim;
122
123
  return (_animations$enterAnim = animations[enterAnimation]) != null ? _animations$enterAnim : "";
123
124
  }).join(" ") + "\n }\n "
@@ -148,7 +149,7 @@ var animPropTypes = function animPropTypes(_ref3) {
148
149
  var _ps$exitAnimations;
149
150
  return (_ps$exitAnimations = ps.exitAnimations) != null ? _ps$exitAnimations : defaultExitAnimations;
150
151
  };
151
- return {
152
+ var props = {
152
153
  enterAnimations: {
153
154
  type: "choice",
154
155
  options: mungeNames(enterAnims),
@@ -258,26 +259,101 @@ var animPropTypes = function animPropTypes(_ref3) {
258
259
  suggestions: ["linear", "ease", "ease-in", "ease-out", "ease-in-out"]
259
260
  })
260
261
  };
262
+ return props;
261
263
  };
262
- var popoverProps = {
264
+ var overlayStates = {
263
265
  open: {
264
- type: "boolean",
265
- editOnly: true,
266
- uncontrolledProp: "defaultOpen"
266
+ type: "writable",
267
+ valueProp: "open",
268
+ onChangeProp: "onOpenChange",
269
+ variableType: "boolean"
270
+ }
271
+ };
272
+ var overlayProps = function overlayProps(_ref4) {
273
+ var _props;
274
+ var defaultSlotContent = _ref4.defaultSlotContent,
275
+ triggerSlotName = _ref4.triggerSlotName,
276
+ openDisplay = _ref4.openDisplay;
277
+ var props = (_props = {
278
+ open: {
279
+ type: "boolean",
280
+ displayName: openDisplay,
281
+ editOnly: true,
282
+ uncontrolledProp: "defaultOpen"
283
+ },
284
+ modal: {
285
+ type: "boolean",
286
+ advanced: true,
287
+ description: "Disable interaction with outside elements. Only popover content will be visible to screen readers."
288
+ },
289
+ onOpenChange: {
290
+ type: "eventHandler",
291
+ argTypes: [{
292
+ type: "boolean",
293
+ name: "open"
294
+ }]
295
+ }
296
+ }, _props[triggerSlotName] = _extends({
297
+ type: "slot",
298
+ defaultValue: [defaultSlotContent]
299
+ }, {
300
+ mergeWithParent: true
301
+ }), _props.themeResetClass = {
302
+ type: "themeResetClass"
303
+ }, _props);
304
+ return props;
305
+ };
306
+ function prefixClasses(x) {
307
+ return x.trim().split(/\s+/g).map(function (part) {
308
+ return "pl__" + part;
309
+ }).join(" ");
310
+ }
311
+ // Be careful formatting this!
312
+ // Note that these are magically prepended with pl__
313
+ var prefixedBaseStyles = /*#__PURE__*/"\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n}\n.h-full {\n height: 100%;\n}\n.z-50 { z-index: 50; }\n.fixed { position: fixed; }\n.inset-0 { top: 0; left: 0; right: 0; bottom: 0; }\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.right-0 {\n right: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.right-4 {\n right: 1rem;\n}\n.top-4 {\n top: 1rem;\n}\n.h-4 { height: 1rem; }\n.w-4 { width: 1rem; }\n.outline-none { outline: none; }\n\n@keyframes plsmc-enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes plsmc-exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.animate-in,\n.data-\\[state\\=open\\]\\:animate-in[data-state=open] {\n animation-name: plsmc-enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.animate-out,\n.data-\\[state\\=closed\\]\\:animate-out[data-state=closed] {\n animation-name: plsmc-exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom] {\n --tw-enter-translate-y: -0.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left] {\n --tw-enter-translate-x: 0.5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right] {\n --tw-enter-translate-x: -0.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top] {\n --tw-enter-translate-y: 0.5rem;\n}\n\n".replace(/\n\./g, ".pl__");
314
+ function BaseStyles() {
315
+ // return <style>{prefixedBaseStyles}</style>;
316
+ return React.createElement("style", {
317
+ dangerouslySetInnerHTML: {
318
+ __html: prefixedBaseStyles
319
+ }
320
+ });
321
+ }
322
+ var popoverProps = /*#__PURE__*/_extends({
323
+ side: {
324
+ type: "choice",
325
+ options: ["top", "bottom", "left", "right"],
326
+ defaultValueHint: "bottom"
267
327
  },
268
- modal: {
269
- type: "boolean",
270
- advanced: true,
271
- description: "Disable interaction with outside elements. Only popover content will be visible to screen readers."
328
+ sideOffset: {
329
+ type: "number",
330
+ defaultValueHint: 4,
331
+ advanced: true
272
332
  },
273
- onOpenChange: {
274
- type: "eventHandler",
275
- argTypes: [{
276
- type: "boolean",
277
- name: "open"
278
- }]
333
+ align: {
334
+ type: "choice",
335
+ options: ["center", "start", "end"],
336
+ defaultValueHint: "center"
337
+ },
338
+ alignOffset: {
339
+ type: "number",
340
+ defaultValueHint: 0,
341
+ advanced: true
279
342
  }
280
- };
343
+ }, /*#__PURE__*/animPropTypes({
344
+ defaultEnterAnimations: function defaultEnterAnimations() {
345
+ return ["fade-in", "zoom-enter"];
346
+ },
347
+ defaultExitAnimations: function defaultExitAnimations() {
348
+ return ["fade-out", "zoom-exit"];
349
+ }
350
+ }), {
351
+ slideIn: {
352
+ type: "boolean",
353
+ defaultValueHint: true,
354
+ description: "Add additional subtle slide-in animation on reveal, which can depend on where the tooltip is dynamically placed."
355
+ }
356
+ });
281
357
 
282
358
  function registerComponentHelper(loader, component, meta) {
283
359
  if (loader) {
@@ -310,55 +386,50 @@ function Popover(_ref) {
310
386
  return React.createElement(Animated, Object.assign({
311
387
  enterAnimations: ["fade-in", "zoom-enter"],
312
388
  exitAnimations: ["fade-out", "zoom-exit"]
313
- }, animProps), function (plsmcId) {
389
+ }, animProps), function (dynClass) {
314
390
  return React.createElement(PopoverPrimitive.Root, {
315
391
  open: open,
316
392
  onOpenChange: onOpenChange,
317
393
  defaultOpen: defaultOpen,
318
394
  modal: modal
319
- }, trigger ? React.createElement(PopoverPrimitive.Trigger, null, children) : React.createElement(PopoverPrimitive.Anchor, null, children), React.createElement(PopoverPrimitive.Portal, null, React.createElement(PopoverPrimitive.Content, Object.assign({
320
- className: clsx("outline-none data-[state=open]:animate-in data-[state=closed]:animate-out", slideIn ? "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2" : "", plsmcId ? plsmcId : "", className, themeResetClass),
395
+ }, trigger ? React.createElement(PopoverPrimitive.Trigger, {
396
+ asChild: true
397
+ }, children) : React.createElement(PopoverPrimitive.Anchor, {
398
+ asChild: true
399
+ }, children), React.createElement(PopoverPrimitive.Portal, null, React.createElement(PopoverPrimitive.Content, Object.assign({
400
+ className: clsx(prefixClasses("outline-none data-[state=open]:animate-in data-[state=closed]:animate-out"), slideIn ? prefixClasses("data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2") : "", dynClass ? dynClass : "", className, themeResetClass),
321
401
  sideOffset: sideOffset
322
- }, rest), overlay)));
402
+ }, rest), overlay)), React.createElement(BaseStyles, null));
323
403
  });
324
404
  }
325
- Popover.displayName = PopoverPrimitive.Content.displayName;
405
+ Popover.displayName = "PlasmicRadixPopover";
326
406
  function registerPopover(PLASMIC) {
327
407
  registerComponentHelper(PLASMIC, Popover, {
328
408
  name: "hostless-radix-popover",
329
409
  displayName: "Popover",
330
410
  importPath: "@plasmicpkgs/radix-ui/popover",
331
411
  importName: "Popover",
332
- props: _extends({}, popoverProps, {
412
+ states: overlayStates,
413
+ props: _extends({}, overlayProps({
414
+ triggerSlotName: "children",
415
+ defaultSlotContent: {
416
+ type: "default-component",
417
+ kind: "button",
418
+ props: {
419
+ children: {
420
+ type: "text",
421
+ value: "Show popover"
422
+ }
423
+ }
424
+ }
425
+ }), {
333
426
  trigger: {
334
427
  type: "boolean",
335
428
  displayName: "Trigger on click",
336
429
  defaultValueHint: true,
337
430
  advanced: true
338
- },
339
- themeResetClass: {
340
- type: "themeResetClass"
341
- },
342
- side: {
343
- type: "choice",
344
- options: ["top", "bottom", "left", "right"],
345
- defaultValueHint: "bottom"
346
- },
347
- sideOffset: {
348
- type: "number",
349
- defaultValueHint: 4,
350
- advanced: true
351
- },
352
- align: {
353
- type: "choice",
354
- options: ["center", "start", "end"],
355
- defaultValueHint: "center"
356
- },
357
- alignOffset: {
358
- type: "number",
359
- defaultValueHint: 0,
360
- advanced: true
361
- },
431
+ }
432
+ }, popoverProps, {
362
433
  overlay: _extends({
363
434
  type: "slot",
364
435
  defaultValue: {
@@ -375,30 +446,11 @@ function registerPopover(PLASMIC) {
375
446
  boxShadow: "0px 4px 16px 0px #00000033",
376
447
  alignItems: "stretch"
377
448
  },
378
- children: ["Hello World"]
449
+ children: ["Here is the popover content."]
379
450
  }
380
451
  }, {
381
452
  mergeWithParent: true
382
- }),
383
- children: _extends({
384
- type: "slot",
385
- defaultValue: ["Popover here"]
386
- }, {
387
- mergeWithParent: true
388
453
  })
389
- }, animPropTypes({
390
- defaultEnterAnimations: function defaultEnterAnimations() {
391
- return ["fade-in", "zoom-enter"];
392
- },
393
- defaultExitAnimations: function defaultExitAnimations() {
394
- return ["fade-out", "zoom-exit"];
395
- }
396
- }), {
397
- slideIn: {
398
- type: "boolean",
399
- defaultValueHint: true,
400
- description: "Add additional subtle slide-in animation on reveal, which can depend on where the popover is dynamically placed."
401
- }
402
454
  })
403
455
  });
404
456
  }
@@ -406,34 +458,32 @@ function registerPopover(PLASMIC) {
406
458
  var _excluded$1 = ["className"],
407
459
  _excluded2 = ["className", "themeResetClass"],
408
460
  _excluded3 = ["className", "themeResetClass", "side"],
409
- _excluded4 = ["open", "onOpenChange", "modal", "className", "themeResetClass", "children", "noContain", "defaultOpen"];
410
- function prefixClasses(x) {
411
- return x.trim().split(/\s+/g).map(function (part) {
412
- return "plsmc__" + part;
413
- }).join(" ");
414
- }
415
- var baseSty = /*#__PURE__*/"\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n}\n.h-full {\n height: 100%;\n}\n.z-50 { z-index: 50; }\n.fixed { position: fixed; }\n.inset-0 { top: 0; left: 0; right: 0; bottom: 0; }\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.right-0 {\n right: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.right-4 {\n right: 1rem;\n}\n.top-4 {\n top: 1rem;\n}\n.h-4 { height: 1rem; }\n.w-4 { width: 1rem; }\n.outline-none { outline: none; }\n\n@keyframes plsmc-enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes plsmc-exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.data-\\[state\\=open\\]\\:animate-in[data-state=open] {\n animation-name: plsmc-enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:animate-out[data-state=closed] {\n animation-name: plsmc-exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom] {\n --tw-enter-translate-y: -0.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left] {\n --tw-enter-translate-x: 0.5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right] {\n --tw-enter-translate-x: -0.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top] {\n --tw-enter-translate-y: 0.5rem;\n}\n\n".replace(/\n\./g, ".plsmc__");
461
+ _excluded4 = ["open", "onOpenChange", "modal", "themeResetClass", "children", "noContain", "defaultOpen", "triggerSlot", "overlayClassName"];
416
462
  var DialogClose = /*#__PURE__*/React.forwardRef(function (props) {
417
463
  var _props$children;
418
- return React.createElement(DialogPrimitive.Close, Object.assign({}, props), (_props$children = props.children) != null ? _props$children : React.createElement(lucideReact.X, {
419
- className: prefixClasses("h-4 w-4") + " " + props.className
464
+ return React.createElement(DialogPrimitive.Close, Object.assign({}, props, {
465
+ asChild: true
466
+ }), React.createElement("div", {
467
+ className: props.className
468
+ }, (_props$children = props.children) != null ? _props$children : React.createElement(lucideReact.X, {
469
+ className: prefixClasses("h-4 w-4")
420
470
  }), React.createElement("span", {
421
- className: "sr-only"
422
- }, "Close"));
471
+ className: prefixClasses("sr-only")
472
+ }, "Close")));
423
473
  });
424
- DialogClose.displayName = DialogPrimitive.Close.displayName;
474
+ DialogClose.displayName = "PlasmicRadixDialogClose";
425
475
  var DialogOverlay = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
426
476
  var className = _ref.className,
427
477
  props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
428
- return React.createElement(Animated, Object.assign({}, props), function (plsmcId) {
478
+ return React.createElement(Animated, Object.assign({}, props), function (dynClass) {
429
479
  return React.createElement(DialogPrimitive.Overlay, Object.assign({
430
- className: clsx(["fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out"].map(prefixClasses), plsmcId ? plsmcId : "", className)
480
+ className: clsx(["fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out"].map(prefixClasses), dynClass ? dynClass : "", className)
431
481
  }, props, {
432
482
  ref: ref
433
483
  }));
434
484
  });
435
485
  });
436
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
486
+ DialogOverlay.displayName = "PlasmicOverlay";
437
487
  var DialogContent = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
438
488
  var _animProps$enterAnima, _animProps$exitAnimat;
439
489
  var className = _ref2.className,
@@ -447,12 +497,12 @@ var DialogContent = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
447
497
  exitAnimations: (_animProps$exitAnimat = animProps.exitAnimations) != null ? _animProps$exitAnimat : ["zoom-exit", "fade-out"]
448
498
  }), function (dynClass) {
449
499
  return React.createElement(DialogPrimitive.Content, Object.assign({}, rest, {
450
- className: clsx("fixed z-50 data-[state=open]:animate-in data-[state=closed]:animate-out", dynClass ? dynClass : "", themeResetClass, className),
500
+ className: clsx(prefixClasses("fixed z-50 outline-none relative data-[state=open]:animate-in data-[state=closed]:animate-out"), dynClass ? dynClass : "", themeResetClass, className),
451
501
  ref: ref
452
502
  }));
453
503
  });
454
504
  });
455
- DialogContent.displayName = DialogPrimitive.Content.displayName;
505
+ DialogContent.displayName = "PlasmicRadixDialogContent";
456
506
  function getDefaultSheetAnims(side) {
457
507
  if (side === void 0) {
458
508
  side = "right";
@@ -476,18 +526,18 @@ var SheetContent = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
476
526
  return React.createElement(Animated, Object.assign({}, props, {
477
527
  enterAnimations: (_props$enterAnimation = props.enterAnimations) != null ? _props$enterAnimation : [defaultEnterAnimation],
478
528
  exitAnimations: (_props$exitAnimations = props.exitAnimations) != null ? _props$exitAnimations : [defaultExitAnimation]
479
- }), function (plsmcId) {
529
+ }), function (dynClass) {
480
530
  return React.createElement(DialogPrimitive.Content, Object.assign({
481
531
  className: clsx(sheetVariants({
482
532
  side: side
483
- }), plsmcId ? plsmcId : "", className)
533
+ }), dynClass ? dynClass : "", className)
484
534
  }, props, {
485
535
  ref: ref
486
536
  }));
487
537
  });
488
538
  });
489
- SheetContent.displayName = DialogPrimitive.Content.displayName;
490
- var sheetVariants = /*#__PURE__*/classVarianceAuthority.cva( /*#__PURE__*/prefixClasses("fixed z-50 data-[state=open]:animate-in data-[state=closed]:animate-out"), {
539
+ SheetContent.displayName = "PlasmicRadixSheetContent";
540
+ var sheetVariants = /*#__PURE__*/classVarianceAuthority.cva( /*#__PURE__*/prefixClasses("fixed z-50 outline-none relative data-[state=open]:animate-in data-[state=closed]:animate-out"), {
491
541
  variants: {
492
542
  side: {
493
543
  top: /*#__PURE__*/prefixClasses("inset-x-0 top-0"),
@@ -504,24 +554,31 @@ var Dialog = /*#__PURE__*/React.forwardRef(function (_ref4, ref) {
504
554
  var open = _ref4.open,
505
555
  onOpenChange = _ref4.onOpenChange,
506
556
  modal = _ref4.modal,
507
- className = _ref4.className,
508
557
  themeResetClass = _ref4.themeResetClass,
509
558
  children = _ref4.children,
510
559
  noContain = _ref4.noContain,
511
560
  defaultOpen = _ref4.defaultOpen,
561
+ triggerSlot = _ref4.triggerSlot,
562
+ overlayClassName = _ref4.overlayClassName,
512
563
  props = _objectWithoutPropertiesLoose(_ref4, _excluded4);
513
564
  return React.createElement(DialogPrimitive.Root, {
514
565
  open: open,
515
566
  modal: modal,
516
567
  onOpenChange: onOpenChange,
517
568
  defaultOpen: defaultOpen
518
- }, React.createElement(DialogPrimitive.Portal, null, noContain ? React.createElement(React.Fragment, null, React.createElement(DialogOverlay, Object.assign({}, props, {
519
- className: clsx(className, themeResetClass)
520
- })), children) : React.createElement(DialogOverlay, Object.assign({}, props, {
521
- className: clsx(className, themeResetClass)
522
- }), children)), React.createElement("style", null, baseSty));
569
+ }, React.createElement(DialogPrimitive.Trigger, {
570
+ asChild: true
571
+ }, triggerSlot), React.createElement(DialogPrimitive.Portal, null, noContain ? React.createElement(React.Fragment, null, React.createElement(DialogOverlay, Object.assign({
572
+ ref: ref
573
+ }, props, {
574
+ className: clsx(overlayClassName, themeResetClass)
575
+ })), children) : React.createElement(DialogOverlay, Object.assign({
576
+ ref: ref
577
+ }, props, {
578
+ className: clsx(overlayClassName, themeResetClass)
579
+ }), children)), React.createElement(BaseStyles, null));
523
580
  });
524
- Dialog.displayName = DialogPrimitive.Root.displayName;
581
+ Dialog.displayName = "PlasmicRadixDialog";
525
582
  var DialogTitle = DialogPrimitive.Title;
526
583
  var DialogDescription = DialogPrimitive.Description;
527
584
  function registerDialog(PLASMIC) {
@@ -530,6 +587,7 @@ function registerDialog(PLASMIC) {
530
587
  displayName: "Dialog",
531
588
  importPath: "@plasmicpkgs/radix-ui/dialog",
532
589
  importName: "Dialog",
590
+ styleSections: false,
533
591
  defaultStyles: {
534
592
  // Note: unable to set position styles since Plasmic coerces to auto layout
535
593
  display: "flex",
@@ -538,15 +596,27 @@ function registerDialog(PLASMIC) {
538
596
  backdropFilter: "blur(10px)",
539
597
  background: "rgba(255,255,255,0.8)"
540
598
  },
541
- props: _extends({}, popoverProps, {
599
+ props: _extends({}, overlayProps({
600
+ defaultSlotContent: {
601
+ type: "default-component",
602
+ kind: "button",
603
+ props: {
604
+ children: {
605
+ type: "text",
606
+ value: "Show dialog"
607
+ }
608
+ }
609
+ },
610
+ triggerSlotName: "triggerSlot"
611
+ }), {
612
+ overlayClassName: {
613
+ type: "class"
614
+ },
542
615
  noContain: {
543
616
  type: "boolean",
544
617
  advanced: true,
545
618
  description: "Place the dialog content over the overlay instead of inside the overlay. Useful for separating their animations, but you also won't be able to conveniently set layout on the overlay as a parent."
546
619
  },
547
- themeResetClass: {
548
- type: "themeResetClass"
549
- },
550
620
  children: {
551
621
  type: "slot",
552
622
  allowedComponents: ["hostless-radix-sheet-content", "hostless-radix-dialog-content"],
@@ -555,7 +625,8 @@ function registerDialog(PLASMIC) {
555
625
  name: "hostless-radix-dialog-content"
556
626
  }
557
627
  }
558
- })
628
+ }),
629
+ states: overlayStates
559
630
  });
560
631
  registerComponentHelper(PLASMIC, DialogClose, {
561
632
  name: "hostless-radix-dialog-close",
@@ -710,9 +781,88 @@ function registerDialog(PLASMIC) {
710
781
  });
711
782
  }
712
783
 
784
+ var _excluded$2 = ["className", "sideOffset", "themeResetClass", "slideIn", "overlay", "delayDuration", "disableHoverableContent", "open", "onOpenChange", "defaultOpen", "children"];
785
+ var Tooltip = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
786
+ var className = _ref.className,
787
+ _ref$sideOffset = _ref.sideOffset,
788
+ sideOffset = _ref$sideOffset === void 0 ? 4 : _ref$sideOffset,
789
+ themeResetClass = _ref.themeResetClass,
790
+ _ref$slideIn = _ref.slideIn,
791
+ slideIn = _ref$slideIn === void 0 ? true : _ref$slideIn,
792
+ overlay = _ref.overlay,
793
+ delayDuration = _ref.delayDuration,
794
+ disableHoverableContent = _ref.disableHoverableContent,
795
+ open = _ref.open,
796
+ onOpenChange = _ref.onOpenChange,
797
+ defaultOpen = _ref.defaultOpen,
798
+ children = _ref.children,
799
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
800
+ var _splitAnimProps = splitAnimProps(props),
801
+ animProps = _splitAnimProps[0],
802
+ rest = _splitAnimProps[1];
803
+ return React.createElement(Animated, Object.assign({
804
+ enterAnimations: ["fade-in", "zoom-enter"],
805
+ exitAnimations: ["fade-out", "zoom-exit"]
806
+ }, animProps), function (dynClass) {
807
+ return React.createElement(TooltipPrimitive.Provider, null, React.createElement(TooltipPrimitive.Root, Object.assign({}, {
808
+ delayDuration: delayDuration,
809
+ disableHoverableContent: disableHoverableContent,
810
+ open: open,
811
+ onOpenChange: onOpenChange,
812
+ defaultOpen: defaultOpen
813
+ }), React.createElement(TooltipPrimitive.Trigger, {
814
+ asChild: true
815
+ }, children), React.createElement(TooltipPrimitive.Content, Object.assign({
816
+ ref: ref,
817
+ sideOffset: sideOffset,
818
+ className: clsx(prefixClasses("animate-in data-[state=closed]:animate-out"), slideIn ? prefixClasses("data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2") : "", dynClass ? dynClass : "", className, themeResetClass)
819
+ }, rest), overlay), React.createElement(BaseStyles, null)));
820
+ });
821
+ });
822
+ Tooltip.displayName = "PlasmicRadixTooltip";
823
+ function registerTooltip(PLASMIC) {
824
+ registerComponentHelper(PLASMIC, Tooltip, {
825
+ name: "hostless-radix-tooltip",
826
+ displayName: "Tooltip",
827
+ importPath: "@plasmicpkgs/radix-ui/tooltip",
828
+ importName: "Tooltip",
829
+ props: _extends({}, overlayProps({
830
+ triggerSlotName: "children",
831
+ defaultSlotContent: {
832
+ type: "text",
833
+ value: "I have a tooltip."
834
+ },
835
+ openDisplay: "Preview open"
836
+ }), popoverProps, {
837
+ overlay: _extends({
838
+ type: "slot",
839
+ defaultValue: {
840
+ type: "vbox",
841
+ styles: {
842
+ padding: "16px",
843
+ width: "300px",
844
+ maxWidth: "100%",
845
+ borderWidth: "1px",
846
+ borderStyle: "solid",
847
+ borderColor: "#E2E8F0",
848
+ backgroundColor: "white",
849
+ borderRadius: "8px",
850
+ boxShadow: "0px 4px 16px 0px #00000033",
851
+ alignItems: "stretch"
852
+ },
853
+ children: ["Here is the tooltip content."]
854
+ }
855
+ }, {
856
+ mergeWithParent: true
857
+ })
858
+ })
859
+ });
860
+ }
861
+
713
862
  function registerAll(PLASMIC) {
714
863
  registerPopover(PLASMIC);
715
864
  registerDialog(PLASMIC);
865
+ registerTooltip(PLASMIC);
716
866
  }
717
867
 
718
868
  exports.Dialog = Dialog;
@@ -722,9 +872,11 @@ exports.DialogDescription = DialogDescription;
722
872
  exports.DialogTitle = DialogTitle;
723
873
  exports.Popover = Popover;
724
874
  exports.SheetContent = SheetContent;
725
- exports.prefixClasses = prefixClasses;
875
+ exports.Tooltip = Tooltip;
876
+ exports.popoverProps = popoverProps;
726
877
  exports.registerAll = registerAll;
727
878
  exports.registerDialog = registerDialog;
728
879
  exports.registerPopover = registerPopover;
880
+ exports.registerTooltip = registerTooltip;
729
881
  exports.sheetVariants = sheetVariants;
730
882
  //# sourceMappingURL=radix-ui.cjs.development.js.map