@oomol-lab/open-flow 0.1.0-beta.66 → 0.1.0-beta.67

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 (36) hide show
  1. package/dist/browser/{createResourceDialog-C-Si_cYs.js → createResourceDialog-BQVD8Rqb.js} +2 -2
  2. package/dist/browser/{icons-BD3m0RQq.js → dialog-CS2Vt2if.js} +1225 -1224
  3. package/dist/browser/event-sources.d.ts +4 -1
  4. package/dist/browser/flow-authoring-node.d.ts +2 -0
  5. package/dist/browser/flow-authoring.js +6 -5
  6. package/dist/browser/flow-change.js +6 -5
  7. package/dist/browser/{flowChanges-T4_R5p1f.js → flowChanges-VB9Y4iy7.js} +2186 -1939
  8. package/dist/browser/{flowWorkspace-C0J5C0oM.js → flowWorkspace-C1hlTnZq.js} +801 -666
  9. package/dist/browser/preview.css +121 -55
  10. package/dist/browser/preview.js +34156 -33896
  11. package/dist/browser/theme.css +1 -0
  12. package/dist/browser/ui.css +34 -4
  13. package/dist/browser/workbench-contract.d.ts +1 -1
  14. package/dist/browser/workbench.css +130 -98
  15. package/dist/browser/workbench.d.ts +0 -1
  16. package/dist/browser/workbench.js +361 -120
  17. package/dist/browser/{workbenchSelect-B-PFpF_Q.js → workbenchSelect-CpXhjUou.js} +1 -1
  18. package/dist/command/index.js +25 -25
  19. package/dist/common/authoringExamples.d.ts +2 -2
  20. package/dist/common/control-api-conformance.js +31 -9
  21. package/dist/common/control-api.d.ts +4 -1
  22. package/dist/common/control-api.js +15 -5
  23. package/dist/common/control-requests.js +7 -6
  24. package/dist/common/decision.js +5 -4
  25. package/dist/common/flow-encoding.js +7 -4
  26. package/dist/common/flow-semantics.js +11 -8
  27. package/dist/common/integration-trigger.js +5 -4
  28. package/dist/common/mcp.js +16 -6
  29. package/dist/common/openapi.js +5 -4
  30. package/dist/common/poll-trigger.js +5 -4
  31. package/dist/common/scheduler.js +5 -4
  32. package/dist/common/webhook-trigger.js +5 -4
  33. package/dist/common/workflow.js +5 -4
  34. package/package.json +1 -1
  35. package/skills/open-flow/SKILL.md +9 -0
  36. package/skills/open-flow/references/flow-authoring.md +2 -0
@@ -21632,6 +21632,7 @@ function webhookSupportsBody(method) {
21632
21632
  return method !== "GET";
21633
21633
  }
21634
21634
  var text = string();
21635
+ var actionConnection = text.describe("Account selection: omit while unconfigured; use an account ID to select it; use \"\" to explicitly defer configuration. Deferred Actions fail if called; deferred Agent tools are excluded from the callable tool set. Not supported by Triggers.");
21635
21636
  var json = json$1();
21636
21637
  var strings = array(text);
21637
21638
  var port = object({
@@ -21687,7 +21688,7 @@ var capability = union([
21687
21688
  mode: literal("independent"),
21688
21689
  actions: array(strictObject({
21689
21690
  action: text,
21690
- connectionId: text.optional()
21691
+ connectionId: actionConnection.optional()
21691
21692
  }))
21692
21693
  }),
21693
21694
  strictObject({
@@ -21747,7 +21748,7 @@ var managedFields = object({
21747
21748
  object({
21748
21749
  kind: literal("connector"),
21749
21750
  action: text,
21750
- connectionId: text.optional(),
21751
+ connectionId: actionConnection.optional(),
21751
21752
  outputMode: literal("value").optional()
21752
21753
  }),
21753
21754
  object({
@@ -21787,13 +21788,13 @@ var managedFields = object({
21787
21788
  name: text,
21788
21789
  description: text,
21789
21790
  action: text,
21790
- connectionId: text.optional(),
21791
+ connectionId: actionConnection.optional(),
21791
21792
  approval: boolean(),
21792
21793
  inputs: array(input.extend({ source: agentInput }))
21793
21794
  })),
21794
21795
  notification: object({
21795
21796
  action: text,
21796
- connectionId: text.optional(),
21797
+ connectionId: actionConnection.optional(),
21797
21798
  inputDefinitions: array(input),
21798
21799
  messageHandle: text,
21799
21800
  inputs: record$1(text, agentValue)
@@ -22490,7 +22491,7 @@ function decodeConnectorCapabilities(value) {
22490
22491
  const actions = source.actions.map((entry) => {
22491
22492
  if (entry == null || typeof entry != "object" || Array.isArray(entry)) throw new TypeError("Invalid Connector Action.");
22492
22493
  const action = entry;
22493
- if (Object.keys(action).some((key) => !["action", "connectionId"].includes(key)) || typeof action.action != "string" || !/^[A-Za-z0-9_-]+\.[A-Za-z0-9_.-]+$/.test(action.action) || Object.hasOwn(action, "connectionId") && (typeof action.connectionId != "string" || action.connectionId.length == 0)) throw new TypeError("Invalid Connector Action permission.");
22494
+ if (Object.keys(action).some((key) => !["action", "connectionId"].includes(key)) || typeof action.action != "string" || !/^[A-Za-z0-9_-]+\.[A-Za-z0-9_.-]+$/.test(action.action) || Object.hasOwn(action, "connectionId") && typeof action.connectionId != "string") throw new TypeError("Invalid Connector Action permission.");
22494
22495
  return action.connectionId == null ? { action: action.action } : {
22495
22496
  action: action.action,
22496
22497
  connectionId: action.connectionId
@@ -26202,1167 +26203,1359 @@ function Spinner({ className, ...props }) {
26202
26203
  });
26203
26204
  }
26204
26205
  //#endregion
26205
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/root/DialogRootContext.js
26206
- var DialogRootContext = /*#__PURE__*/ React.createContext(void 0);
26207
- if (process.env.NODE_ENV !== "production") DialogRootContext.displayName = "DialogRootContext";
26208
- function useDialogRootContext(optional) {
26209
- const dialogRootContext = React.useContext(DialogRootContext);
26210
- if (optional === false && dialogRootContext === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: DialogRootContext is missing. Dialog parts must be placed within <Dialog.Root>." : formatErrorMessage(27));
26211
- return dialogRootContext;
26206
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/root/TooltipRootContext.js
26207
+ var TooltipRootContext = /*#__PURE__*/ React.createContext(void 0);
26208
+ if (process.env.NODE_ENV !== "production") TooltipRootContext.displayName = "TooltipRootContext";
26209
+ function useTooltipRootContext(optional) {
26210
+ const context = React.useContext(TooltipRootContext);
26211
+ if (context === void 0 && !optional) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>." : formatErrorMessage(72));
26212
+ return context;
26212
26213
  }
26213
26214
  //#endregion
26214
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/backdrop/DialogBackdrop.js
26215
- var stateAttributesMapping$2 = {
26216
- ...popupStateMapping,
26217
- ...transitionStatusMapping
26215
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/store/TooltipStore.js
26216
+ var selectors$1 = {
26217
+ ...popupStoreSelectors,
26218
+ disabled: createSelector((state) => state.disabled),
26219
+ instantType: createSelector((state) => state.instantType),
26220
+ isInstantPhase: createSelector((state) => state.isInstantPhase),
26221
+ trackCursorAxis: createSelector((state) => state.trackCursorAxis),
26222
+ disableHoverablePopup: createSelector((state) => state.disableHoverablePopup),
26223
+ lastOpenChangeReason: createSelector((state) => state.openChangeReason),
26224
+ closeOnClick: createSelector((state) => state.closeOnClick),
26225
+ closeDelay: createSelector((state) => state.closeDelay),
26226
+ hasViewport: createSelector((state) => state.hasViewport)
26227
+ };
26228
+ var TooltipStore = class TooltipStore extends ReactStore {
26229
+ constructor(initialState) {
26230
+ super({
26231
+ ...createInitialState$1(),
26232
+ ...initialState
26233
+ }, {
26234
+ popupRef: /*#__PURE__*/ React.createRef(),
26235
+ onOpenChange: void 0,
26236
+ onOpenChangeComplete: void 0,
26237
+ triggerElements: new PopupTriggerMap()
26238
+ }, selectors$1);
26239
+ }
26240
+ setOpen = (nextOpen, eventDetails) => {
26241
+ const reason = eventDetails.reason;
26242
+ const isHover = reason === triggerHover;
26243
+ const isFocusOpen = nextOpen && reason === "trigger-focus";
26244
+ const isDismissClose = !nextOpen && (reason === "trigger-press" || reason === "escape-key");
26245
+ eventDetails.preventUnmountOnClose = () => {
26246
+ this.set("preventUnmountingOnClose", true);
26247
+ };
26248
+ this.context.onOpenChange?.(nextOpen, eventDetails);
26249
+ if (eventDetails.isCanceled) return;
26250
+ this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
26251
+ const changeState = () => {
26252
+ const updatedState = {
26253
+ open: nextOpen,
26254
+ openChangeReason: reason
26255
+ };
26256
+ if (isFocusOpen) updatedState.instantType = "focus";
26257
+ else if (isDismissClose) updatedState.instantType = "dismiss";
26258
+ else if (reason === "trigger-hover") updatedState.instantType = void 0;
26259
+ const newTriggerId = eventDetails.trigger?.id ?? null;
26260
+ if (newTriggerId || nextOpen) {
26261
+ updatedState.activeTriggerId = newTriggerId;
26262
+ updatedState.activeTriggerElement = eventDetails.trigger ?? null;
26263
+ }
26264
+ this.update(updatedState);
26265
+ };
26266
+ if (isHover) ReactDOM.flushSync(changeState);
26267
+ else changeState();
26268
+ };
26269
+ static useStore(externalStore, initialState) {
26270
+ const internalStore = useRefWithInit(() => {
26271
+ return new TooltipStore(initialState);
26272
+ }).current;
26273
+ const store = externalStore ?? internalStore;
26274
+ const floatingRootContext = useSyncedFloatingRootContext({
26275
+ popupStore: store,
26276
+ onOpenChange: store.setOpen
26277
+ });
26278
+ store.state.floatingRootContext = floatingRootContext;
26279
+ return store;
26280
+ }
26218
26281
  };
26282
+ function createInitialState$1() {
26283
+ return {
26284
+ ...createInitialPopupStoreState(),
26285
+ disabled: false,
26286
+ instantType: void 0,
26287
+ isInstantPhase: false,
26288
+ trackCursorAxis: "none",
26289
+ disableHoverablePopup: false,
26290
+ openChangeReason: null,
26291
+ closeOnClick: true,
26292
+ closeDelay: 0,
26293
+ hasViewport: false
26294
+ };
26295
+ }
26296
+ //#endregion
26297
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/root/TooltipRoot.js
26219
26298
  /**
26220
- * An overlay displayed beneath the popup.
26221
- * Renders a `<div>` element.
26299
+ * Groups all parts of the tooltip.
26300
+ * Doesn't render its own HTML element.
26222
26301
  *
26223
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26302
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26224
26303
  */
26225
- var DialogBackdrop = /*#__PURE__*/ React.forwardRef(function DialogBackdrop(componentProps, forwardedRef) {
26226
- const { render, className, style, forceRender = false, ...elementProps } = componentProps;
26227
- const { store } = useDialogRootContext();
26228
- const open = store.useState("open");
26229
- const nested = store.useState("nested");
26230
- const mounted = store.useState("mounted");
26231
- return useRenderElement("div", componentProps, {
26232
- state: {
26233
- open,
26234
- transitionStatus: store.useState("transitionStatus")
26235
- },
26236
- ref: [store.context.backdropRef, forwardedRef],
26237
- stateAttributesMapping: stateAttributesMapping$2,
26238
- props: [{
26239
- role: "presentation",
26240
- hidden: !mounted,
26241
- style: {
26242
- userSelect: "none",
26243
- WebkitUserSelect: "none"
26244
- }
26245
- }, elementProps],
26246
- enabled: forceRender || !nested
26304
+ var TooltipRoot = fastComponent(function TooltipRoot(props) {
26305
+ const { disabled: disabled$1 = false, defaultOpen = false, open: openProp, disableHoverablePopup = false, trackCursorAxis = "none", actionsRef, onOpenChange, onOpenChangeComplete, handle, triggerId: triggerIdProp, defaultTriggerId: defaultTriggerIdProp = null, children } = props;
26306
+ const store = TooltipStore.useStore(handle?.store, {
26307
+ open: defaultOpen,
26308
+ openProp,
26309
+ activeTriggerId: defaultTriggerIdProp,
26310
+ triggerIdProp
26311
+ });
26312
+ useOnFirstRender(() => {
26313
+ if (openProp === void 0 && store.state.open === false && defaultOpen === true) store.update({
26314
+ open: true,
26315
+ activeTriggerId: defaultTriggerIdProp
26316
+ });
26317
+ });
26318
+ store.useControlledProp("openProp", openProp);
26319
+ store.useControlledProp("triggerIdProp", triggerIdProp);
26320
+ store.useContextCallback("onOpenChange", onOpenChange);
26321
+ store.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
26322
+ const openState = store.useState("open");
26323
+ const open = !disabled$1 && openState;
26324
+ const activeTriggerId = store.useState("activeTriggerId");
26325
+ const payload = store.useState("payload");
26326
+ store.useSyncedValues({
26327
+ trackCursorAxis,
26328
+ disableHoverablePopup
26329
+ });
26330
+ useIsoLayoutEffect(() => {
26331
+ if (openState && disabled$1) store.setOpen(false, createChangeEventDetails(disabled));
26332
+ }, [
26333
+ openState,
26334
+ disabled$1,
26335
+ store
26336
+ ]);
26337
+ store.useSyncedValue("disabled", disabled$1);
26338
+ useImplicitActiveTrigger(store);
26339
+ const { forceUnmount, transitionStatus } = useOpenStateTransitions(open, store);
26340
+ const floatingRootContext = store.select("floatingRootContext");
26341
+ const isInstantPhase = store.useState("isInstantPhase");
26342
+ const instantType = store.useState("instantType");
26343
+ const lastOpenChangeReason = store.useState("lastOpenChangeReason");
26344
+ const previousInstantTypeRef = React.useRef(null);
26345
+ useIsoLayoutEffect(() => {
26346
+ if (transitionStatus === "ending" && lastOpenChangeReason === "none" || transitionStatus !== "ending" && isInstantPhase) {
26347
+ if (instantType !== "delay") previousInstantTypeRef.current = instantType;
26348
+ store.set("instantType", "delay");
26349
+ } else if (previousInstantTypeRef.current !== null) {
26350
+ store.set("instantType", previousInstantTypeRef.current);
26351
+ previousInstantTypeRef.current = null;
26352
+ }
26353
+ }, [
26354
+ transitionStatus,
26355
+ isInstantPhase,
26356
+ lastOpenChangeReason,
26357
+ instantType,
26358
+ store
26359
+ ]);
26360
+ useIsoLayoutEffect(() => {
26361
+ if (open) {
26362
+ if (activeTriggerId == null) store.set("payload", void 0);
26363
+ }
26364
+ }, [
26365
+ store,
26366
+ activeTriggerId,
26367
+ open
26368
+ ]);
26369
+ const handleImperativeClose = React.useCallback(() => {
26370
+ store.setOpen(false, createChangeEventDetails(imperativeAction));
26371
+ }, [store]);
26372
+ React.useImperativeHandle(actionsRef, () => ({
26373
+ unmount: forceUnmount,
26374
+ close: handleImperativeClose
26375
+ }), [forceUnmount, handleImperativeClose]);
26376
+ const { getReferenceProps, getFloatingProps, getTriggerProps } = useInteractions([useDismiss(floatingRootContext, {
26377
+ enabled: !disabled$1,
26378
+ referencePress: () => store.select("closeOnClick")
26379
+ }), useClientPoint(floatingRootContext, {
26380
+ enabled: !disabled$1 && trackCursorAxis !== "none",
26381
+ axis: trackCursorAxis === "none" ? void 0 : trackCursorAxis
26382
+ })]);
26383
+ const activeTriggerProps = React.useMemo(() => getReferenceProps(), [getReferenceProps]);
26384
+ const inactiveTriggerProps = React.useMemo(() => getTriggerProps(), [getTriggerProps]);
26385
+ const popupProps = React.useMemo(() => getFloatingProps(), [getFloatingProps]);
26386
+ store.useSyncedValues({
26387
+ activeTriggerProps,
26388
+ inactiveTriggerProps,
26389
+ popupProps
26390
+ });
26391
+ return /*#__PURE__*/ jsx(TooltipRootContext.Provider, {
26392
+ value: store,
26393
+ children: typeof children === "function" ? children({ payload }) : children
26247
26394
  });
26248
26395
  });
26249
- if (process.env.NODE_ENV !== "production") DialogBackdrop.displayName = "DialogBackdrop";
26396
+ if (process.env.NODE_ENV !== "production") TooltipRoot.displayName = "TooltipRoot";
26250
26397
  //#endregion
26251
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/close/DialogClose.js
26398
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProviderContext.js
26399
+ var TooltipProviderContext = /*#__PURE__*/ React.createContext(void 0);
26400
+ if (process.env.NODE_ENV !== "production") TooltipProviderContext.displayName = "TooltipProviderContext";
26401
+ function useTooltipProviderContext() {
26402
+ return React.useContext(TooltipProviderContext);
26403
+ }
26404
+ //#endregion
26405
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTriggerDataAttributes.js
26406
+ var TooltipTriggerDataAttributes = function(TooltipTriggerDataAttributes) {
26407
+ /**
26408
+ * Present when the corresponding tooltip is open.
26409
+ */
26410
+ TooltipTriggerDataAttributes[TooltipTriggerDataAttributes["popupOpen"] = CommonTriggerDataAttributes.popupOpen] = "popupOpen";
26411
+ /**
26412
+ * Present when the trigger is disabled, either by the `disabled` prop or by a parent `<Tooltip.Root>` component.
26413
+ */
26414
+ TooltipTriggerDataAttributes["triggerDisabled"] = "data-trigger-disabled";
26415
+ return TooltipTriggerDataAttributes;
26416
+ }({});
26417
+ //#endregion
26418
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTrigger.js
26252
26419
  /**
26253
- * A button that closes the dialog.
26420
+ * An element to attach the tooltip to.
26254
26421
  * Renders a `<button>` element.
26255
26422
  *
26256
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26423
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26257
26424
  */
26258
- var DialogClose$1 = /*#__PURE__*/ React.forwardRef(function DialogClose(componentProps, forwardedRef) {
26259
- const { render, className, disabled = false, nativeButton = true, style, ...elementProps } = componentProps;
26260
- const { store } = useDialogRootContext();
26261
- const open = store.useState("open");
26262
- function handleClick(event) {
26263
- if (open) store.setOpen(false, createChangeEventDetails(closePress, event.nativeEvent));
26264
- }
26265
- const { getButtonProps, buttonRef } = useButton({
26266
- disabled,
26267
- native: nativeButton
26268
- });
26269
- return useRenderElement("button", componentProps, {
26270
- state: { disabled },
26271
- ref: [forwardedRef, buttonRef],
26272
- props: [
26273
- { onClick: handleClick },
26274
- elementProps,
26275
- getButtonProps
26276
- ]
26277
- });
26278
- });
26279
- if (process.env.NODE_ENV !== "production") DialogClose$1.displayName = "DialogClose";
26280
- //#endregion
26281
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/description/DialogDescription.js
26282
- /**
26283
- * A paragraph with additional information about the dialog.
26284
- * Renders a `<p>` element.
26285
- *
26286
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26287
- */
26288
- var DialogDescription$1 = /*#__PURE__*/ React.forwardRef(function DialogDescription(componentProps, forwardedRef) {
26289
- const { render, className, style, id: idProp, ...elementProps } = componentProps;
26290
- const { store } = useDialogRootContext();
26291
- const id = useBaseUiId(idProp);
26292
- store.useSyncedValueWithCleanup("descriptionElementId", id);
26293
- return useRenderElement("p", componentProps, {
26294
- ref: forwardedRef,
26295
- props: [{ id }, elementProps]
26296
- });
26297
- });
26298
- if (process.env.NODE_ENV !== "production") DialogDescription$1.displayName = "DialogDescription";
26299
- //#endregion
26300
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupCssVars.js
26301
- var DialogPopupCssVars = /*#__PURE__*/ function(DialogPopupCssVars) {
26302
- /**
26303
- * Indicates how many dialogs are nested within.
26304
- * @type {number}
26305
- */
26306
- DialogPopupCssVars["nestedDialogs"] = "--nested-dialogs";
26307
- return DialogPopupCssVars;
26308
- }({});
26309
- //#endregion
26310
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupDataAttributes.js
26311
- var DialogPopupDataAttributes = function(DialogPopupDataAttributes) {
26312
- /**
26313
- * Present when the dialog is open.
26314
- */
26315
- DialogPopupDataAttributes[DialogPopupDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
26316
- /**
26317
- * Present when the dialog is closed.
26318
- */
26319
- DialogPopupDataAttributes[DialogPopupDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
26320
- /**
26321
- * Present when the dialog is animating in.
26322
- */
26323
- DialogPopupDataAttributes[DialogPopupDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
26324
- /**
26325
- * Present when the dialog is animating out.
26326
- */
26327
- DialogPopupDataAttributes[DialogPopupDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
26328
- /**
26329
- * Present when the dialog is nested within another dialog.
26330
- */
26331
- DialogPopupDataAttributes["nested"] = "data-nested";
26332
- /**
26333
- * Present when the dialog has other open dialogs nested within it.
26334
- */
26335
- DialogPopupDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
26336
- return DialogPopupDataAttributes;
26337
- }({});
26338
- //#endregion
26339
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/portal/DialogPortalContext.js
26340
- var DialogPortalContext = /*#__PURE__*/ React.createContext(void 0);
26341
- if (process.env.NODE_ENV !== "production") DialogPortalContext.displayName = "DialogPortalContext";
26342
- function useDialogPortalContext() {
26343
- const value = React.useContext(DialogPortalContext);
26344
- if (value === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Dialog.Portal> is missing." : formatErrorMessage(26));
26345
- return value;
26346
- }
26347
- //#endregion
26348
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/popup/DialogPopup.js
26349
- var stateAttributesMapping$1 = {
26350
- ...popupStateMapping,
26351
- ...transitionStatusMapping,
26352
- nestedDialogOpen(value) {
26353
- return value ? { [DialogPopupDataAttributes.nestedDialogOpen]: "" } : null;
26354
- }
26355
- };
26356
- /**
26357
- * A container for the dialog contents.
26358
- * Renders a `<div>` element.
26359
- *
26360
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26361
- */
26362
- var DialogPopup = /*#__PURE__*/ React.forwardRef(function DialogPopup(componentProps, forwardedRef) {
26363
- const { className, finalFocus, initialFocus, render, style, ...elementProps } = componentProps;
26364
- const { store } = useDialogRootContext();
26365
- const descriptionElementId = store.useState("descriptionElementId");
26366
- const disablePointerDismissal = store.useState("disablePointerDismissal");
26425
+ var TooltipTrigger$1 = fastComponentRef(function TooltipTrigger(componentProps, forwardedRef) {
26426
+ const { className, render, handle, payload, disabled: disabledProp, delay, closeOnClick = true, closeDelay, id: idProp, style, ...elementProps } = componentProps;
26427
+ const rootContext = useTooltipRootContext(true);
26428
+ const store = handle?.store ?? rootContext;
26429
+ if (!store) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle." : formatErrorMessage(82));
26430
+ const thisTriggerId = useBaseUiId(idProp);
26431
+ const isTriggerActive = store.useState("isTriggerActive", thisTriggerId);
26432
+ const isOpenedByThisTrigger = store.useState("isOpenedByTrigger", thisTriggerId);
26367
26433
  const floatingRootContext = store.useState("floatingRootContext");
26368
- const rootPopupProps = store.useState("popupProps");
26369
- const modal = store.useState("modal");
26370
- const mounted = store.useState("mounted");
26371
- const nested = store.useState("nested");
26372
- const nestedOpenDialogCount = store.useState("nestedOpenDialogCount");
26373
- const open = store.useState("open");
26374
- const openMethod = store.useState("openMethod");
26375
- const titleElementId = store.useState("titleElementId");
26376
- const transitionStatus = store.useState("transitionStatus");
26377
- const role = store.useState("role");
26378
- useDialogPortalContext();
26379
- useOpenChangeComplete({
26380
- open,
26381
- ref: store.context.popupRef,
26382
- onComplete() {
26383
- if (open) store.context.onOpenChangeComplete?.(true);
26384
- }
26434
+ const triggerElementRef = React.useRef(null);
26435
+ const delayWithDefault = delay ?? 600;
26436
+ const closeDelayWithDefault = closeDelay ?? 0;
26437
+ const { registerTrigger, isMountedByThisTrigger } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {
26438
+ payload,
26439
+ closeOnClick,
26440
+ closeDelay: closeDelayWithDefault
26385
26441
  });
26386
- function defaultInitialFocus(interactionType) {
26387
- if (interactionType === "touch") return store.context.popupRef.current;
26388
- return true;
26389
- }
26390
- const resolvedInitialFocus = initialFocus === void 0 ? defaultInitialFocus : initialFocus;
26391
- const element = useRenderElement("div", componentProps, {
26392
- state: {
26393
- open,
26394
- nested,
26395
- transitionStatus,
26396
- nestedDialogOpen: nestedOpenDialogCount > 0
26442
+ const providerContext = useTooltipProviderContext();
26443
+ const { delayRef, isInstantPhase, hasProvider } = useDelayGroup(floatingRootContext, { open: isOpenedByThisTrigger });
26444
+ store.useSyncedValue("isInstantPhase", isInstantPhase);
26445
+ const rootDisabled = store.useState("disabled");
26446
+ const disabled = disabledProp ?? rootDisabled;
26447
+ const trackCursorAxis = store.useState("trackCursorAxis");
26448
+ const disableHoverablePopup = store.useState("disableHoverablePopup");
26449
+ const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
26450
+ enabled: !disabled,
26451
+ mouseOnly: true,
26452
+ move: false,
26453
+ handleClose: !disableHoverablePopup && trackCursorAxis !== "both" ? safePolygon() : null,
26454
+ restMs() {
26455
+ const providerDelay = providerContext?.delay;
26456
+ const groupOpenValue = typeof delayRef.current === "object" ? delayRef.current.open : void 0;
26457
+ let computedRestMs = delayWithDefault;
26458
+ if (hasProvider) {
26459
+ if (groupOpenValue !== 0) computedRestMs = delay ?? providerDelay ?? delayWithDefault;
26460
+ else computedRestMs = 0;
26461
+ }
26462
+ return computedRestMs;
26397
26463
  },
26464
+ delay() {
26465
+ const closeValue = typeof delayRef.current === "object" ? delayRef.current.close : void 0;
26466
+ let computedCloseDelay = closeDelayWithDefault;
26467
+ if (closeDelay == null && hasProvider) computedCloseDelay = closeValue;
26468
+ return { close: computedCloseDelay };
26469
+ },
26470
+ triggerElementRef,
26471
+ isActiveTrigger: isTriggerActive,
26472
+ isClosing: () => store.select("transitionStatus") === "ending"
26473
+ });
26474
+ const focusProps = useFocus(floatingRootContext, { enabled: !disabled }).reference;
26475
+ const state = { open: isOpenedByThisTrigger };
26476
+ const rootTriggerProps = store.useState("triggerProps", isMountedByThisTrigger);
26477
+ return useRenderElement("button", componentProps, {
26478
+ state,
26479
+ ref: [
26480
+ forwardedRef,
26481
+ registerTrigger,
26482
+ triggerElementRef
26483
+ ],
26398
26484
  props: [
26399
- rootPopupProps,
26485
+ hoverProps,
26486
+ focusProps,
26487
+ rootTriggerProps,
26400
26488
  {
26401
- "aria-labelledby": titleElementId ?? void 0,
26402
- "aria-describedby": descriptionElementId ?? void 0,
26403
- role,
26404
- tabIndex: -1,
26405
- hidden: !mounted,
26406
- onKeyDown(event) {
26407
- if (COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
26489
+ onPointerDown() {
26490
+ store.set("closeOnClick", closeOnClick);
26408
26491
  },
26409
- style: { [DialogPopupCssVars.nestedDialogs]: nestedOpenDialogCount }
26492
+ id: thisTriggerId,
26493
+ [TooltipTriggerDataAttributes.triggerDisabled]: disabled ? "" : void 0
26410
26494
  },
26411
26495
  elementProps
26412
26496
  ],
26413
- ref: [
26414
- forwardedRef,
26415
- store.context.popupRef,
26416
- store.useStateSetter("popupElement")
26417
- ],
26418
- stateAttributesMapping: stateAttributesMapping$1
26497
+ stateAttributesMapping: triggerOpenStateMapping
26419
26498
  });
26420
- return /*#__PURE__*/ jsx(FloatingFocusManager, {
26421
- context: floatingRootContext,
26422
- openInteractionType: openMethod,
26423
- disabled: !mounted,
26424
- closeOnFocusOut: !disablePointerDismissal,
26425
- initialFocus: resolvedInitialFocus,
26426
- returnFocus: finalFocus,
26427
- modal: modal !== false,
26428
- restoreFocus: "popup",
26429
- children: element
26499
+ });
26500
+ if (process.env.NODE_ENV !== "production") TooltipTrigger$1.displayName = "TooltipTrigger";
26501
+ //#endregion
26502
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortalContext.js
26503
+ var TooltipPortalContext = /*#__PURE__*/ React.createContext(void 0);
26504
+ if (process.env.NODE_ENV !== "production") TooltipPortalContext.displayName = "TooltipPortalContext";
26505
+ function useTooltipPortalContext() {
26506
+ const value = React.useContext(TooltipPortalContext);
26507
+ if (value === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Tooltip.Portal> is missing." : formatErrorMessage(70));
26508
+ return value;
26509
+ }
26510
+ //#endregion
26511
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/utils/FloatingPortalLite.js
26512
+ /**
26513
+ * `FloatingPortal` includes tabbable logic handling for focus management.
26514
+ * For components that don't need tabbable logic, use `FloatingPortalLite`.
26515
+ * @internal
26516
+ */
26517
+ var FloatingPortalLite = /*#__PURE__*/ React.forwardRef(function FloatingPortalLite(componentProps, forwardedRef) {
26518
+ const { children, container, className, render, style, ...elementProps } = componentProps;
26519
+ const { portalNode, portalSubtree } = useFloatingPortalNode({
26520
+ container,
26521
+ ref: forwardedRef,
26522
+ componentProps,
26523
+ elementProps
26430
26524
  });
26525
+ if (!portalSubtree && !portalNode) return null;
26526
+ return /*#__PURE__*/ jsxs(React.Fragment, { children: [portalSubtree, portalNode && /*#__PURE__*/ ReactDOM.createPortal(children, portalNode)] });
26431
26527
  });
26432
- if (process.env.NODE_ENV !== "production") DialogPopup.displayName = "DialogPopup";
26528
+ if (process.env.NODE_ENV !== "production") FloatingPortalLite.displayName = "FloatingPortalLite";
26433
26529
  //#endregion
26434
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/portal/DialogPortal.js
26530
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortal.js
26435
26531
  /**
26436
26532
  * A portal element that moves the popup to a different part of the DOM.
26437
26533
  * By default, the portal element is appended to `<body>`.
26438
26534
  * Renders a `<div>` element.
26439
26535
  *
26440
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26536
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26441
26537
  */
26442
- var DialogPortal$1 = /*#__PURE__*/ React.forwardRef(function DialogPortal(props, forwardedRef) {
26538
+ var TooltipPortal = /*#__PURE__*/ React.forwardRef(function TooltipPortal(props, forwardedRef) {
26443
26539
  const { keepMounted = false, ...portalProps } = props;
26444
- const { store } = useDialogRootContext();
26445
- const mounted = store.useState("mounted");
26446
- const modal = store.useState("modal");
26447
- const open = store.useState("open");
26448
- if (!(mounted || keepMounted)) return null;
26449
- return /*#__PURE__*/ jsx(DialogPortalContext.Provider, {
26540
+ if (!(useTooltipRootContext().useState("mounted") || keepMounted)) return null;
26541
+ return /*#__PURE__*/ jsx(TooltipPortalContext.Provider, {
26450
26542
  value: keepMounted,
26451
- children: /*#__PURE__*/ jsxs(FloatingPortal, {
26543
+ children: /*#__PURE__*/ jsx(FloatingPortalLite, {
26452
26544
  ref: forwardedRef,
26453
- ...portalProps,
26454
- children: [mounted && modal === true && /*#__PURE__*/ jsx(InternalBackdrop, {
26455
- ref: store.context.internalBackdropRef,
26456
- inert: inertValue(!open)
26457
- }), props.children]
26545
+ ...portalProps
26458
26546
  })
26459
26547
  });
26460
26548
  });
26461
- if (process.env.NODE_ENV !== "production") DialogPortal$1.displayName = "DialogPortal";
26549
+ if (process.env.NODE_ENV !== "production") TooltipPortal.displayName = "TooltipPortal";
26462
26550
  //#endregion
26463
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/root/useDialogRoot.js
26464
- function useDialogRoot(params) {
26465
- const { store, parentContext, actionsRef, isDrawer } = params;
26551
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositionerContext.js
26552
+ var TooltipPositionerContext = /*#__PURE__*/ React.createContext(void 0);
26553
+ if (process.env.NODE_ENV !== "production") TooltipPositionerContext.displayName = "TooltipPositionerContext";
26554
+ function useTooltipPositionerContext() {
26555
+ const context = React.useContext(TooltipPositionerContext);
26556
+ if (context === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>." : formatErrorMessage(71));
26557
+ return context;
26558
+ }
26559
+ //#endregion
26560
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositioner.js
26561
+ /**
26562
+ * Positions the tooltip against the trigger.
26563
+ * Renders a `<div>` element.
26564
+ *
26565
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26566
+ */
26567
+ var TooltipPositioner = /*#__PURE__*/ React.forwardRef(function TooltipPositioner(componentProps, forwardedRef) {
26568
+ const { render, className, anchor, positionMethod = "absolute", side = "top", align = "center", sideOffset = 0, alignOffset = 0, collisionBoundary = "clipping-ancestors", collisionPadding = 5, arrowPadding = 5, sticky = false, disableAnchorTracking = false, collisionAvoidance = POPUP_COLLISION_AVOIDANCE, style, ...elementProps } = componentProps;
26569
+ const store = useTooltipRootContext();
26570
+ const keepMounted = useTooltipPortalContext();
26466
26571
  const open = store.useState("open");
26467
- const disablePointerDismissal = store.useState("disablePointerDismissal");
26468
- const modal = store.useState("modal");
26469
- const popupElement = store.useState("popupElement");
26470
- const { openMethod, triggerProps } = useOpenInteractionType(open);
26471
- useImplicitActiveTrigger(store);
26472
- const { forceUnmount } = useOpenStateTransitions(open, store);
26473
- const handleImperativeClose = React.useCallback(() => {
26474
- store.setOpen(false, createChangeEventDetails(imperativeAction));
26475
- }, [store]);
26476
- React.useImperativeHandle(actionsRef, () => ({
26477
- unmount: forceUnmount,
26478
- close: handleImperativeClose
26479
- }), [forceUnmount, handleImperativeClose]);
26480
- const floatingRootContext = useSyncedFloatingRootContext({
26481
- popupStore: store,
26482
- onOpenChange: store.setOpen,
26483
- treatPopupAsFloatingElement: true
26484
- });
26485
- const [ownNestedOpenDialogs, setOwnNestedOpenDialogs] = React.useState(0);
26486
- const [ownNestedOpenDrawers, setOwnNestedOpenDrawers] = React.useState(0);
26487
- const isTopmost = ownNestedOpenDialogs === 0;
26488
- const role = useRole(floatingRootContext);
26489
- const dismiss = useDismiss(floatingRootContext, {
26490
- outsidePressEvent() {
26491
- if (store.context.internalBackdropRef.current || store.context.backdropRef.current) return "intentional";
26492
- return {
26493
- mouse: modal === "trap-focus" ? "sloppy" : "intentional",
26494
- touch: "sloppy"
26495
- };
26496
- },
26497
- outsidePress(event) {
26498
- if (!store.context.outsidePressEnabledRef.current) return false;
26499
- if ("button" in event && event.button !== 0) return false;
26500
- if ("touches" in event && event.touches.length !== 1) return false;
26501
- const target = getTarget(event);
26502
- if (isTopmost && !disablePointerDismissal) {
26503
- const eventTarget = target;
26504
- if (modal) return store.context.internalBackdropRef.current || store.context.backdropRef.current ? store.context.internalBackdropRef.current === eventTarget || store.context.backdropRef.current === eventTarget || contains(eventTarget, popupElement) && !eventTarget?.hasAttribute("data-base-ui-portal") : true;
26505
- return true;
26506
- }
26507
- return false;
26508
- },
26509
- escapeKey: isTopmost
26510
- });
26511
- useScrollLock(open && modal === true, popupElement);
26512
- const { getReferenceProps, getFloatingProps, getTriggerProps } = useInteractions([role, dismiss]);
26513
- store.useContextCallback("onNestedDialogOpen", (dialogCount, drawerCount) => {
26514
- setOwnNestedOpenDialogs(dialogCount);
26515
- setOwnNestedOpenDrawers(drawerCount);
26516
- });
26517
- store.useContextCallback("onNestedDialogClose", () => {
26518
- setOwnNestedOpenDialogs(0);
26519
- setOwnNestedOpenDrawers(0);
26572
+ const mounted = store.useState("mounted");
26573
+ const trackCursorAxis = store.useState("trackCursorAxis");
26574
+ const disableHoverablePopup = store.useState("disableHoverablePopup");
26575
+ const floatingRootContext = store.useState("floatingRootContext");
26576
+ const instantType = store.useState("instantType");
26577
+ const transitionStatus = store.useState("transitionStatus");
26578
+ const positioning = useAnchorPositioning({
26579
+ anchor,
26580
+ positionMethod,
26581
+ floatingRootContext,
26582
+ mounted,
26583
+ side,
26584
+ sideOffset,
26585
+ align,
26586
+ alignOffset,
26587
+ collisionBoundary,
26588
+ collisionPadding,
26589
+ sticky,
26590
+ arrowPadding,
26591
+ disableAnchorTracking,
26592
+ keepMounted,
26593
+ collisionAvoidance,
26594
+ adaptiveOrigin: store.useState("hasViewport") ? adaptiveOrigin : void 0
26520
26595
  });
26521
- React.useEffect(() => {
26522
- if (parentContext?.onNestedDialogOpen && open) parentContext.onNestedDialogOpen(ownNestedOpenDialogs + 1, ownNestedOpenDrawers + (isDrawer ? 1 : 0));
26523
- if (parentContext?.onNestedDialogClose && !open) parentContext.onNestedDialogClose();
26524
- return () => {
26525
- if (parentContext?.onNestedDialogClose && open) parentContext.onNestedDialogClose();
26526
- };
26527
- }, [
26528
- isDrawer,
26596
+ const element = usePositioner(componentProps, React.useMemo(() => ({
26529
26597
  open,
26530
- ownNestedOpenDialogs,
26531
- ownNestedOpenDrawers,
26532
- parentContext
26533
- ]);
26534
- const activeTriggerProps = React.useMemo(() => getReferenceProps(triggerProps), [getReferenceProps, triggerProps]);
26535
- const inactiveTriggerProps = React.useMemo(() => getTriggerProps(triggerProps), [getTriggerProps, triggerProps]);
26536
- const popupProps = React.useMemo(() => getFloatingProps(), [getFloatingProps]);
26537
- store.useSyncedValues({
26538
- openMethod,
26539
- activeTriggerProps,
26540
- inactiveTriggerProps,
26541
- popupProps,
26542
- floatingRootContext,
26543
- nestedOpenDialogCount: ownNestedOpenDialogs,
26544
- nestedOpenDrawerCount: ownNestedOpenDrawers
26598
+ side: positioning.side,
26599
+ align: positioning.align,
26600
+ anchorHidden: positioning.anchorHidden,
26601
+ instant: trackCursorAxis !== "none" ? "tracking-cursor" : instantType
26602
+ }), [
26603
+ open,
26604
+ positioning.side,
26605
+ positioning.align,
26606
+ positioning.anchorHidden,
26607
+ trackCursorAxis,
26608
+ instantType
26609
+ ]), {
26610
+ styles: positioning.positionerStyles,
26611
+ transitionStatus,
26612
+ props: elementProps,
26613
+ refs: [forwardedRef, store.useStateSetter("positionerElement")],
26614
+ hidden: !mounted,
26615
+ inert: !open || trackCursorAxis === "both" || disableHoverablePopup
26545
26616
  });
26546
- }
26617
+ return /*#__PURE__*/ jsx(TooltipPositionerContext.Provider, {
26618
+ value: positioning,
26619
+ children: element
26620
+ });
26621
+ });
26622
+ if (process.env.NODE_ENV !== "production") TooltipPositioner.displayName = "TooltipPositioner";
26547
26623
  //#endregion
26548
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/store/DialogStore.js
26549
- var selectors$1 = {
26550
- ...popupStoreSelectors,
26551
- modal: createSelector((state) => state.modal),
26552
- nested: createSelector((state) => state.nested),
26553
- nestedOpenDialogCount: createSelector((state) => state.nestedOpenDialogCount),
26554
- nestedOpenDrawerCount: createSelector((state) => state.nestedOpenDrawerCount),
26555
- disablePointerDismissal: createSelector((state) => state.disablePointerDismissal),
26556
- openMethod: createSelector((state) => state.openMethod),
26557
- descriptionElementId: createSelector((state) => state.descriptionElementId),
26558
- titleElementId: createSelector((state) => state.titleElementId),
26559
- viewportElement: createSelector((state) => state.viewportElement),
26560
- role: createSelector((state) => state.role)
26561
- };
26562
- var DialogStore = class DialogStore extends ReactStore {
26563
- constructor(initialState) {
26564
- super(createInitialState$1(initialState), {
26565
- popupRef: /*#__PURE__*/ React.createRef(),
26566
- backdropRef: /*#__PURE__*/ React.createRef(),
26567
- internalBackdropRef: /*#__PURE__*/ React.createRef(),
26568
- outsidePressEnabledRef: { current: true },
26569
- triggerElements: new PopupTriggerMap(),
26570
- onOpenChange: void 0,
26571
- onOpenChangeComplete: void 0
26572
- }, selectors$1);
26573
- }
26574
- setOpen = (nextOpen, eventDetails) => {
26575
- eventDetails.preventUnmountOnClose = () => {
26576
- this.set("preventUnmountingOnClose", true);
26577
- };
26578
- if (!nextOpen && eventDetails.trigger == null && this.state.activeTriggerId != null) eventDetails.trigger = this.state.activeTriggerElement ?? void 0;
26579
- this.context.onOpenChange?.(nextOpen, eventDetails);
26580
- if (eventDetails.isCanceled) return;
26581
- this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
26582
- const updatedState = { open: nextOpen };
26583
- const newTriggerId = eventDetails.trigger?.id ?? null;
26584
- if (newTriggerId || nextOpen) {
26585
- updatedState.activeTriggerId = newTriggerId;
26586
- updatedState.activeTriggerElement = eventDetails.trigger ?? null;
26587
- }
26588
- this.update(updatedState);
26589
- };
26590
- static useStore(externalStore, initialState) {
26591
- const internalStore = useRefWithInit(() => {
26592
- return new DialogStore(initialState);
26593
- }).current;
26594
- return externalStore ?? internalStore;
26595
- }
26624
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/popup/TooltipPopup.js
26625
+ var stateAttributesMapping$2 = {
26626
+ ...popupStateMapping,
26627
+ ...transitionStatusMapping
26596
26628
  };
26597
- function createInitialState$1(initialState = {}) {
26598
- return {
26599
- ...createInitialPopupStoreState(),
26600
- modal: true,
26601
- disablePointerDismissal: false,
26602
- popupElement: null,
26603
- viewportElement: null,
26604
- descriptionElementId: void 0,
26605
- titleElementId: void 0,
26606
- openMethod: null,
26607
- nested: false,
26608
- nestedOpenDialogCount: 0,
26609
- nestedOpenDrawerCount: 0,
26610
- role: "dialog",
26611
- ...initialState
26612
- };
26613
- }
26614
- //#endregion
26615
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/root/DialogRoot.js
26616
- var IsDrawerContext = /*#__PURE__*/ React.createContext(false);
26617
26629
  /**
26618
- * Groups all parts of the dialog.
26619
- * Doesn't render its own HTML element.
26630
+ * A container for the tooltip contents.
26631
+ * Renders a `<div>` element.
26620
26632
  *
26621
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26633
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26622
26634
  */
26623
- if (process.env.NODE_ENV !== "production") IsDrawerContext.displayName = "IsDrawerContext";
26624
- function DialogRoot(props) {
26625
- const { children, open: openProp, defaultOpen = false, onOpenChange, onOpenChangeComplete, disablePointerDismissal = false, modal = true, actionsRef, handle, triggerId: triggerIdProp, defaultTriggerId: defaultTriggerIdProp = null } = props;
26626
- const parentDialogRootContext = useDialogRootContext(true);
26627
- const isDrawer = React.useContext(IsDrawerContext);
26628
- const nested = Boolean(parentDialogRootContext);
26629
- const store = DialogStore.useStore(handle?.store, {
26630
- open: defaultOpen,
26631
- openProp,
26632
- activeTriggerId: defaultTriggerIdProp,
26633
- triggerIdProp,
26634
- modal,
26635
- disablePointerDismissal,
26636
- nested
26637
- });
26638
- useOnFirstRender(() => {
26639
- if (openProp === void 0 && store.state.open === false && defaultOpen === true) store.update({
26640
- open: true,
26641
- activeTriggerId: defaultTriggerIdProp
26642
- });
26643
- });
26644
- store.useControlledProp("openProp", openProp);
26645
- store.useControlledProp("triggerIdProp", triggerIdProp);
26646
- store.useSyncedValues({
26647
- disablePointerDismissal,
26648
- nested,
26649
- modal
26635
+ var TooltipPopup = /*#__PURE__*/ React.forwardRef(function TooltipPopup(componentProps, forwardedRef) {
26636
+ const { className, render, style, ...elementProps } = componentProps;
26637
+ const store = useTooltipRootContext();
26638
+ const { side, align } = useTooltipPositionerContext();
26639
+ const open = store.useState("open");
26640
+ const instantType = store.useState("instantType");
26641
+ const transitionStatus = store.useState("transitionStatus");
26642
+ const popupProps = store.useState("popupProps");
26643
+ const floatingContext = store.useState("floatingRootContext");
26644
+ useOpenChangeComplete({
26645
+ open,
26646
+ ref: store.context.popupRef,
26647
+ onComplete() {
26648
+ if (open) store.context.onOpenChangeComplete?.(true);
26649
+ }
26650
26650
  });
26651
- store.useContextCallback("onOpenChange", onOpenChange);
26652
- store.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
26653
- const payload = store.useState("payload");
26654
- useDialogRoot({
26655
- store,
26656
- actionsRef,
26657
- parentContext: parentDialogRootContext?.store.context,
26658
- isDrawer,
26659
- onOpenChange,
26660
- triggerIdProp
26651
+ const disabled = store.useState("disabled");
26652
+ const closeDelay = store.useState("closeDelay");
26653
+ useHoverFloatingInteraction(floatingContext, {
26654
+ enabled: !disabled,
26655
+ closeDelay
26661
26656
  });
26662
- const contextValue = React.useMemo(() => ({ store }), [store]);
26663
- return /*#__PURE__*/ jsx(IsDrawerContext.Provider, {
26664
- value: false,
26665
- children: /*#__PURE__*/ jsx(DialogRootContext.Provider, {
26666
- value: contextValue,
26667
- children: typeof children === "function" ? children({ payload }) : children
26668
- })
26657
+ return useRenderElement("div", componentProps, {
26658
+ state: {
26659
+ open,
26660
+ side,
26661
+ align,
26662
+ instant: instantType,
26663
+ transitionStatus
26664
+ },
26665
+ ref: [
26666
+ forwardedRef,
26667
+ store.context.popupRef,
26668
+ store.useStateSetter("popupElement")
26669
+ ],
26670
+ props: [
26671
+ popupProps,
26672
+ getDisabledMountTransitionStyles(transitionStatus),
26673
+ elementProps
26674
+ ],
26675
+ stateAttributesMapping: stateAttributesMapping$2
26669
26676
  });
26670
- }
26677
+ });
26678
+ if (process.env.NODE_ENV !== "production") TooltipPopup.displayName = "TooltipPopup";
26671
26679
  //#endregion
26672
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/title/DialogTitle.js
26680
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/arrow/TooltipArrow.js
26673
26681
  /**
26674
- * A heading that labels the dialog.
26675
- * Renders an `<h2>` element.
26682
+ * Displays an element positioned against the tooltip anchor.
26683
+ * Renders a `<div>` element.
26676
26684
  *
26677
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26685
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26678
26686
  */
26679
- var DialogTitle$1 = /*#__PURE__*/ React.forwardRef(function DialogTitle(componentProps, forwardedRef) {
26680
- const { render, className, style, id: idProp, ...elementProps } = componentProps;
26681
- const { store } = useDialogRootContext();
26682
- const id = useBaseUiId(idProp);
26683
- store.useSyncedValueWithCleanup("titleElementId", id);
26684
- return useRenderElement("h2", componentProps, {
26685
- ref: forwardedRef,
26686
- props: [{ id }, elementProps]
26687
+ var TooltipArrow = /*#__PURE__*/ React.forwardRef(function TooltipArrow(componentProps, forwardedRef) {
26688
+ const { className, render, style, ...elementProps } = componentProps;
26689
+ const store = useTooltipRootContext();
26690
+ const open = store.useState("open");
26691
+ const instantType = store.useState("instantType");
26692
+ const { arrowRef, side, align, arrowUncentered, arrowStyles } = useTooltipPositionerContext();
26693
+ return useRenderElement("div", componentProps, {
26694
+ state: {
26695
+ open,
26696
+ side,
26697
+ align,
26698
+ uncentered: arrowUncentered,
26699
+ instant: instantType
26700
+ },
26701
+ ref: [forwardedRef, arrowRef],
26702
+ props: [{
26703
+ style: arrowStyles,
26704
+ "aria-hidden": true
26705
+ }, elementProps],
26706
+ stateAttributesMapping: popupStateMapping
26687
26707
  });
26688
26708
  });
26689
- if (process.env.NODE_ENV !== "production") DialogTitle$1.displayName = "DialogTitle";
26709
+ if (process.env.NODE_ENV !== "production") TooltipArrow.displayName = "TooltipArrow";
26690
26710
  //#endregion
26691
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/trigger/DialogTrigger.js
26711
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProvider.js
26692
26712
  /**
26693
- * A button that opens the dialog.
26694
- * Renders a `<button>` element.
26713
+ * Provides a shared delay for multiple tooltips. The grouping logic ensures that
26714
+ * once a tooltip becomes visible, the adjacent tooltips will be shown instantly.
26695
26715
  *
26696
- * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26716
+ * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26697
26717
  */
26698
- var DialogTrigger$1 = /*#__PURE__*/ React.forwardRef(function DialogTrigger(componentProps, forwardedRef) {
26699
- const { render, className, disabled = false, nativeButton = true, id: idProp, payload, handle, style, ...elementProps } = componentProps;
26700
- const dialogRootContext = useDialogRootContext(true);
26701
- const store = handle?.store ?? dialogRootContext?.store;
26702
- if (!store) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Dialog.Trigger> must be used within <Dialog.Root> or provided with a handle." : formatErrorMessage(79));
26703
- const thisTriggerId = useBaseUiId(idProp);
26704
- const floatingContext = store.useState("floatingRootContext");
26705
- const isOpenedByThisTrigger = store.useState("isOpenedByTrigger", thisTriggerId);
26706
- const triggerElementRef = React.useRef(null);
26707
- const { registerTrigger, isMountedByThisTrigger } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, { payload });
26708
- const { getButtonProps, buttonRef } = useButton({
26709
- disabled,
26710
- native: nativeButton
26711
- });
26712
- const localInteractionProps = useInteractions([useClick(floatingContext, { enabled: floatingContext != null })]);
26713
- const state = {
26714
- disabled,
26715
- open: isOpenedByThisTrigger
26716
- };
26717
- const rootTriggerProps = store.useState("triggerProps", isMountedByThisTrigger);
26718
- return useRenderElement("button", componentProps, {
26719
- state,
26720
- ref: [
26721
- buttonRef,
26722
- forwardedRef,
26723
- registerTrigger,
26724
- triggerElementRef
26725
- ],
26726
- props: [
26727
- localInteractionProps.getReferenceProps(),
26728
- rootTriggerProps,
26729
- {
26730
- [CLICK_TRIGGER_IDENTIFIER]: "",
26731
- id: thisTriggerId
26732
- },
26733
- elementProps,
26734
- getButtonProps
26735
- ],
26736
- stateAttributesMapping: triggerOpenStateMapping
26718
+ var TooltipProvider$1 = function TooltipProvider(props) {
26719
+ const { delay, closeDelay, timeout = 400 } = props;
26720
+ const contextValue = React.useMemo(() => ({
26721
+ delay,
26722
+ closeDelay
26723
+ }), [delay, closeDelay]);
26724
+ const delayValue = React.useMemo(() => ({
26725
+ open: delay,
26726
+ close: closeDelay
26727
+ }), [delay, closeDelay]);
26728
+ return /*#__PURE__*/ jsx(TooltipProviderContext.Provider, {
26729
+ value: contextValue,
26730
+ children: /*#__PURE__*/ jsx(FloatingDelayGroup, {
26731
+ delay: delayValue,
26732
+ timeoutMs: timeout,
26733
+ children: props.children
26734
+ })
26737
26735
  });
26738
- });
26739
- if (process.env.NODE_ENV !== "production") DialogTrigger$1.displayName = "DialogTrigger";
26736
+ };
26737
+ if (process.env.NODE_ENV !== "production") TooltipProvider$1.displayName = "TooltipProvider";
26740
26738
  //#endregion
26741
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/root/TooltipRootContext.js
26742
- var TooltipRootContext = /*#__PURE__*/ React.createContext(void 0);
26743
- if (process.env.NODE_ENV !== "production") TooltipRootContext.displayName = "TooltipRootContext";
26744
- function useTooltipRootContext(optional) {
26745
- const context = React.useContext(TooltipRootContext);
26746
- if (context === void 0 && !optional) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>." : formatErrorMessage(72));
26747
- return context;
26739
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/store/TooltipHandle.js
26740
+ /**
26741
+ * A handle to control a tooltip imperatively and to associate detached triggers with it.
26742
+ */
26743
+ var TooltipHandle = class {
26744
+ /**
26745
+ * Internal store holding the tooltip state.
26746
+ * @internal
26747
+ */
26748
+ constructor() {
26749
+ this.store = new TooltipStore();
26750
+ }
26751
+ /**
26752
+ * Opens the tooltip and associates it with the trigger with the given ID.
26753
+ * The trigger must be a Tooltip.Trigger component with this handle passed as a prop.
26754
+ *
26755
+ * This method should only be called in an event handler or an effect (not during rendering).
26756
+ *
26757
+ * @param triggerId ID of the trigger to associate with the tooltip.
26758
+ */
26759
+ open(triggerId) {
26760
+ const triggerElement = triggerId ? this.store.context.triggerElements.getById(triggerId) : void 0;
26761
+ if (triggerId && !triggerElement) throw new Error(process.env.NODE_ENV !== "production" ? `Base UI: TooltipHandle.open: No trigger found with id "${triggerId}".` : formatErrorMessage(81, triggerId));
26762
+ this.store.setOpen(true, createChangeEventDetails(imperativeAction, void 0, triggerElement));
26763
+ }
26764
+ /**
26765
+ * Closes the tooltip.
26766
+ */
26767
+ close() {
26768
+ this.store.setOpen(false, createChangeEventDetails(imperativeAction, void 0, void 0));
26769
+ }
26770
+ /**
26771
+ * Indicates whether the tooltip is currently open.
26772
+ */
26773
+ get isOpen() {
26774
+ return this.store.state.open;
26775
+ }
26776
+ };
26777
+ /**
26778
+ * Creates a new handle to connect a Tooltip.Root with detached Tooltip.Trigger components.
26779
+ */
26780
+ function createTooltipHandle$1() {
26781
+ return new TooltipHandle();
26748
26782
  }
26749
26783
  //#endregion
26750
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/store/TooltipStore.js
26751
- var selectors = {
26752
- ...popupStoreSelectors,
26753
- disabled: createSelector((state) => state.disabled),
26754
- instantType: createSelector((state) => state.instantType),
26755
- isInstantPhase: createSelector((state) => state.isInstantPhase),
26756
- trackCursorAxis: createSelector((state) => state.trackCursorAxis),
26757
- disableHoverablePopup: createSelector((state) => state.disableHoverablePopup),
26758
- lastOpenChangeReason: createSelector((state) => state.openChangeReason),
26759
- closeOnClick: createSelector((state) => state.closeOnClick),
26760
- closeDelay: createSelector((state) => state.closeDelay),
26761
- hasViewport: createSelector((state) => state.hasViewport)
26762
- };
26763
- var TooltipStore = class TooltipStore extends ReactStore {
26764
- constructor(initialState) {
26765
- super({
26766
- ...createInitialState(),
26767
- ...initialState
26768
- }, {
26769
- popupRef: /*#__PURE__*/ React.createRef(),
26770
- onOpenChange: void 0,
26771
- onOpenChangeComplete: void 0,
26772
- triggerElements: new PopupTriggerMap()
26773
- }, selectors);
26774
- }
26775
- setOpen = (nextOpen, eventDetails) => {
26776
- const reason = eventDetails.reason;
26777
- const isHover = reason === triggerHover;
26778
- const isFocusOpen = nextOpen && reason === "trigger-focus";
26779
- const isDismissClose = !nextOpen && (reason === "trigger-press" || reason === "escape-key");
26780
- eventDetails.preventUnmountOnClose = () => {
26781
- this.set("preventUnmountingOnClose", true);
26782
- };
26783
- this.context.onOpenChange?.(nextOpen, eventDetails);
26784
- if (eventDetails.isCanceled) return;
26785
- this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
26786
- const changeState = () => {
26787
- const updatedState = {
26788
- open: nextOpen,
26789
- openChangeReason: reason
26790
- };
26791
- if (isFocusOpen) updatedState.instantType = "focus";
26792
- else if (isDismissClose) updatedState.instantType = "dismiss";
26793
- else if (reason === "trigger-hover") updatedState.instantType = void 0;
26794
- const newTriggerId = eventDetails.trigger?.id ?? null;
26795
- if (newTriggerId || nextOpen) {
26796
- updatedState.activeTriggerId = newTriggerId;
26797
- updatedState.activeTriggerElement = eventDetails.trigger ?? null;
26798
- }
26799
- this.update(updatedState);
26800
- };
26801
- if (isHover) ReactDOM.flushSync(changeState);
26802
- else changeState();
26803
- };
26804
- static useStore(externalStore, initialState) {
26805
- const internalStore = useRefWithInit(() => {
26806
- return new TooltipStore(initialState);
26807
- }).current;
26808
- const store = externalStore ?? internalStore;
26809
- const floatingRootContext = useSyncedFloatingRootContext({
26810
- popupStore: store,
26811
- onOpenChange: store.setOpen
26812
- });
26813
- store.state.floatingRootContext = floatingRootContext;
26814
- return store;
26815
- }
26816
- };
26817
- function createInitialState() {
26818
- return {
26819
- ...createInitialPopupStoreState(),
26820
- disabled: false,
26821
- instantType: void 0,
26822
- isInstantPhase: false,
26823
- trackCursorAxis: "none",
26824
- disableHoverablePopup: false,
26825
- openChangeReason: null,
26826
- closeOnClick: true,
26827
- closeDelay: 0,
26828
- hasViewport: false
26829
- };
26784
+ //#region src/ui/browser/tooltip.tsx
26785
+ function TooltipProvider({ delay = 0, ...props }) {
26786
+ return /* @__PURE__ */ jsx(TooltipProvider$1, {
26787
+ "data-slot": "tooltip-provider",
26788
+ delay,
26789
+ ...props
26790
+ });
26830
26791
  }
26792
+ function Tooltip({ ...props }) {
26793
+ return /* @__PURE__ */ jsx(TooltipRoot, {
26794
+ "data-slot": "tooltip",
26795
+ ...props
26796
+ });
26797
+ }
26798
+ var TooltipTrigger = forwardRef(function TooltipTrigger(props, ref) {
26799
+ return /* @__PURE__ */ jsx(TooltipTrigger$1, {
26800
+ "data-slot": "tooltip-trigger",
26801
+ ...props,
26802
+ ref
26803
+ });
26804
+ });
26805
+ function TooltipContent({ className, container, positionMethod, collisionBoundary, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
26806
+ const portalContainer = container?.closest("[data-tooltip-portal]") ?? container;
26807
+ return /* @__PURE__ */ jsx(TooltipPortal, {
26808
+ container: portalContainer,
26809
+ className: "contents",
26810
+ children: /* @__PURE__ */ jsx(TooltipPositioner, {
26811
+ positionMethod,
26812
+ collisionBoundary,
26813
+ align,
26814
+ alignOffset,
26815
+ side,
26816
+ sideOffset,
26817
+ className: "isolate z-[1000]",
26818
+ children: /* @__PURE__ */ jsxs(TooltipPopup, {
26819
+ "data-slot": "tooltip-content",
26820
+ className: cn("z-[1000] inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 [overflow-wrap:anywhere] rounded-[6px] bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-[1000] **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
26821
+ ...props,
26822
+ children: [children, /* @__PURE__ */ jsx(TooltipArrow, {
26823
+ className: "z-[1000] size-2.5 translate-x-0 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5",
26824
+ "data-slot": "tooltip-arrow"
26825
+ })]
26826
+ })
26827
+ })
26828
+ });
26829
+ }
26830
+ var createTooltipHandle = createTooltipHandle$1;
26831
26831
  //#endregion
26832
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/root/TooltipRoot.js
26833
- /**
26834
- * Groups all parts of the tooltip.
26835
- * Doesn't render its own HTML element.
26836
- *
26837
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
26838
- */
26839
- var TooltipRoot = fastComponent(function TooltipRoot(props) {
26840
- const { disabled: disabled$1 = false, defaultOpen = false, open: openProp, disableHoverablePopup = false, trackCursorAxis = "none", actionsRef, onOpenChange, onOpenChangeComplete, handle, triggerId: triggerIdProp, defaultTriggerId: defaultTriggerIdProp = null, children } = props;
26841
- const store = TooltipStore.useStore(handle?.store, {
26842
- open: defaultOpen,
26843
- openProp,
26844
- activeTriggerId: defaultTriggerIdProp,
26845
- triggerIdProp
26832
+ //#region src/workbench/browser/runtime/icons.tsx
26833
+ function glyph(name) {
26834
+ switch (name) {
26835
+ case "alert": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26836
+ /* @__PURE__ */ jsx("circle", {
26837
+ cx: "12",
26838
+ cy: "12",
26839
+ r: "9"
26840
+ }),
26841
+ /* @__PURE__ */ jsx("path", { d: "M12 7v6" }),
26842
+ /* @__PURE__ */ jsx("path", { d: "M12 17h.01" })
26843
+ ] });
26844
+ case "check": return /* @__PURE__ */ jsx("path", { d: "m5 12 4 4L19 6" });
26845
+ case "chevron-down": return /* @__PURE__ */ jsx("path", { d: "m7 10 5 5 5-5" });
26846
+ case "chevron-left": return /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" });
26847
+ case "chevron-up": return /* @__PURE__ */ jsx("path", { d: "m7 14 5-5 5 5" });
26848
+ case "close": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "m6 6 12 12" }), /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" })] });
26849
+ case "condition": return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("path", { d: "M5 5h14l-5.5 6v6l-3 2v-8z" }) });
26850
+ case "connection": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M10 13a5 5 0 0 0 7.1.1l2-2a5 5 0 0 0-7.1-7.1l-1.1 1.1" }), /* @__PURE__ */ jsx("path", { d: "M14 11a5 5 0 0 0-7.1-.1l-2 2A5 5 0 0 0 12 20l1.1-1.1" })] });
26851
+ case "download": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26852
+ /* @__PURE__ */ jsx("path", { d: "M12 4v11" }),
26853
+ /* @__PURE__ */ jsx("path", { d: "m7 10 5 5 5-5" }),
26854
+ /* @__PURE__ */ jsx("path", { d: "M5 20h14" })
26855
+ ] });
26856
+ case "fit": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26857
+ /* @__PURE__ */ jsx("path", { d: "M8 3H3v5" }),
26858
+ /* @__PURE__ */ jsx("path", { d: "M16 3h5v5" }),
26859
+ /* @__PURE__ */ jsx("path", { d: "M8 21H3v-5" }),
26860
+ /* @__PURE__ */ jsx("path", { d: "M16 21h5v-5" })
26861
+ ] });
26862
+ case "filter": return /* @__PURE__ */ jsx("path", { d: "M4 6h16l-6 7v5l-4 2v-7z" });
26863
+ case "hand": return /* @__PURE__ */ jsx("path", { d: "M8 11V6a1.5 1.5 0 0 1 3 0v4-6a1.5 1.5 0 0 1 3 0v6-4a1.5 1.5 0 0 1 3 0v5-2a1.5 1.5 0 0 1 3 0v4a8 8 0 0 1-16 0v-2a2 2 0 0 1 4 0Z" });
26864
+ case "logo": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26865
+ /* @__PURE__ */ jsx("circle", {
26866
+ cx: "7",
26867
+ cy: "5",
26868
+ r: "2.5"
26869
+ }),
26870
+ /* @__PURE__ */ jsx("circle", {
26871
+ cx: "7",
26872
+ cy: "19",
26873
+ r: "2.5"
26874
+ }),
26875
+ /* @__PURE__ */ jsx("circle", {
26876
+ cx: "18",
26877
+ cy: "12",
26878
+ r: "2.5"
26879
+ }),
26880
+ /* @__PURE__ */ jsx("path", { d: "M9.2 6.2 15.7 10M9.2 17.8l6.5-3.8M7 7.5v9" })
26881
+ ] });
26882
+ case "llm": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26883
+ /* @__PURE__ */ jsx("path", { d: "M7 7h10v10H7z" }),
26884
+ /* @__PURE__ */ jsx("path", { d: "M9 2v3m6-3v3M9 19v3m6-3v3M2 9h3m-3 6h3m14-6h3m-3 6h3" }),
26885
+ /* @__PURE__ */ jsx("circle", {
26886
+ cx: "10",
26887
+ cy: "11",
26888
+ r: ".7",
26889
+ fill: "currentColor",
26890
+ stroke: "none"
26891
+ }),
26892
+ /* @__PURE__ */ jsx("circle", {
26893
+ cx: "14",
26894
+ cy: "11",
26895
+ r: ".7",
26896
+ fill: "currentColor",
26897
+ stroke: "none"
26898
+ }),
26899
+ /* @__PURE__ */ jsx("path", { d: "M10 14h4" })
26900
+ ] });
26901
+ case "more": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26902
+ /* @__PURE__ */ jsx("circle", {
26903
+ cx: "5",
26904
+ cy: "12",
26905
+ r: "1",
26906
+ fill: "currentColor",
26907
+ stroke: "none"
26908
+ }),
26909
+ /* @__PURE__ */ jsx("circle", {
26910
+ cx: "12",
26911
+ cy: "12",
26912
+ r: "1",
26913
+ fill: "currentColor",
26914
+ stroke: "none"
26915
+ }),
26916
+ /* @__PURE__ */ jsx("circle", {
26917
+ cx: "19",
26918
+ cy: "12",
26919
+ r: "1",
26920
+ fill: "currentColor",
26921
+ stroke: "none"
26922
+ })
26923
+ ] });
26924
+ case "panel": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("rect", {
26925
+ x: "3",
26926
+ y: "4",
26927
+ width: "18",
26928
+ height: "16",
26929
+ rx: "2"
26930
+ }), /* @__PURE__ */ jsx("path", { d: "M15 4v16" })] });
26931
+ case "play":
26932
+ case "run": return /* @__PURE__ */ jsx("path", { d: "m8 5 11 7-11 7z" });
26933
+ case "pointer": return /* @__PURE__ */ jsx("path", { d: "m5 3 13 9-6 1-3 6z" });
26934
+ case "plus": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M12 5v14" }), /* @__PURE__ */ jsx("path", { d: "M5 12h14" })] });
26935
+ case "project": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M3 7h6l2 2h10v10H3z" }), /* @__PURE__ */ jsx("path", { d: "M3 7V5h7l2 2" })] });
26936
+ case "publish": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26937
+ /* @__PURE__ */ jsx("path", { d: "M12 16V4" }),
26938
+ /* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" }),
26939
+ /* @__PURE__ */ jsx("path", { d: "M5 14v5h14v-5" })
26940
+ ] });
26941
+ case "refresh": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26942
+ /* @__PURE__ */ jsx("path", { d: "M20 11a8 8 0 0 0-14.7-4.4L3 9" }),
26943
+ /* @__PURE__ */ jsx("path", { d: "M3 4v5h5" }),
26944
+ /* @__PURE__ */ jsx("path", { d: "M4 13a8 8 0 0 0 14.7 4.4L21 15" }),
26945
+ /* @__PURE__ */ jsx("path", { d: "M21 20v-5h-5" })
26946
+ ] });
26947
+ case "search": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("circle", {
26948
+ cx: "11",
26949
+ cy: "11",
26950
+ r: "7"
26951
+ }), /* @__PURE__ */ jsx("path", { d: "m16 16 4 4" })] });
26952
+ case "settings": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("circle", {
26953
+ cx: "12",
26954
+ cy: "12",
26955
+ r: "3"
26956
+ }), /* @__PURE__ */ jsx("path", {
26957
+ d: "M19 13.5v-3l-2-.6-.7-1.7 1-1.8-2.1-2.1-1.8 1-1.7-.7L10.5 3h-3l-.6 2-1.7.7-1.8-1-2.1 2.1 1 1.8-.7 1.7-2 .6v3l2 .6.7 1.7-1 1.8 2.1 2.1 1.8-1 1.7.7.6 2h3l.6-2 1.7-.7 1.8 1 2.1-2.1-1-1.8.7-1.7z",
26958
+ transform: "translate(2.5) scale(.8)"
26959
+ })] });
26960
+ case "value": return /* @__PURE__ */ jsx("path", { d: "m12 3 8 9-8 9-8-9z" });
26961
+ case "wait": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("circle", {
26962
+ cx: "12",
26963
+ cy: "12",
26964
+ r: "9"
26965
+ }), /* @__PURE__ */ jsx("path", { d: "M12 7v5l3 2" })] });
26966
+ case "task": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("rect", {
26967
+ x: "4",
26968
+ y: "4",
26969
+ width: "16",
26970
+ height: "16",
26971
+ rx: "3"
26972
+ }), /* @__PURE__ */ jsx("path", { d: "m9 12 2 2 4-5" })] });
26973
+ case "trigger": return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("path", { d: "M13 2 5 14h6l-1 8 8-12h-6z" }) });
26974
+ case "trash": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
26975
+ /* @__PURE__ */ jsx("path", { d: "M4 7h16" }),
26976
+ /* @__PURE__ */ jsx("path", { d: "M9 7V4h6v3" }),
26977
+ /* @__PURE__ */ jsx("path", { d: "m6 7 1 13h10l1-13" }),
26978
+ /* @__PURE__ */ jsx("path", { d: "M10 11v5M14 11v5" })
26979
+ ] });
26980
+ }
26981
+ }
26982
+ function Icon({ name, size = 18, ...props }) {
26983
+ if (name === "outputs") return /* @__PURE__ */ jsx(LogOut, {
26984
+ "aria-hidden": "true",
26985
+ size,
26986
+ strokeWidth: 1.5,
26987
+ ...props
26846
26988
  });
26847
- useOnFirstRender(() => {
26848
- if (openProp === void 0 && store.state.open === false && defaultOpen === true) store.update({
26849
- open: true,
26850
- activeTriggerId: defaultTriggerIdProp
26851
- });
26989
+ if (name === "decision") return /* @__PURE__ */ jsx(BrainCircuit, {
26990
+ "aria-hidden": "true",
26991
+ size,
26992
+ strokeWidth: 1.5,
26993
+ ...props
26852
26994
  });
26853
- store.useControlledProp("openProp", openProp);
26854
- store.useControlledProp("triggerIdProp", triggerIdProp);
26855
- store.useContextCallback("onOpenChange", onOpenChange);
26856
- store.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
26857
- const openState = store.useState("open");
26858
- const open = !disabled$1 && openState;
26859
- const activeTriggerId = store.useState("activeTriggerId");
26860
- const payload = store.useState("payload");
26861
- store.useSyncedValues({
26862
- trackCursorAxis,
26863
- disableHoverablePopup
26995
+ if (name === "comment") return /* @__PURE__ */ jsx(StickyNote, {
26996
+ "aria-hidden": "true",
26997
+ size,
26998
+ strokeWidth: 1.5,
26999
+ ...props
26864
27000
  });
26865
- useIsoLayoutEffect(() => {
26866
- if (openState && disabled$1) store.setOpen(false, createChangeEventDetails(disabled));
26867
- }, [
26868
- openState,
26869
- disabled$1,
26870
- store
26871
- ]);
26872
- store.useSyncedValue("disabled", disabled$1);
26873
- useImplicitActiveTrigger(store);
26874
- const { forceUnmount, transitionStatus } = useOpenStateTransitions(open, store);
26875
- const floatingRootContext = store.select("floatingRootContext");
26876
- const isInstantPhase = store.useState("isInstantPhase");
26877
- const instantType = store.useState("instantType");
26878
- const lastOpenChangeReason = store.useState("lastOpenChangeReason");
26879
- const previousInstantTypeRef = React.useRef(null);
26880
- useIsoLayoutEffect(() => {
26881
- if (transitionStatus === "ending" && lastOpenChangeReason === "none" || transitionStatus !== "ending" && isInstantPhase) {
26882
- if (instantType !== "delay") previousInstantTypeRef.current = instantType;
26883
- store.set("instantType", "delay");
26884
- } else if (previousInstantTypeRef.current !== null) {
26885
- store.set("instantType", previousInstantTypeRef.current);
26886
- previousInstantTypeRef.current = null;
26887
- }
26888
- }, [
26889
- transitionStatus,
26890
- isInstantPhase,
26891
- lastOpenChangeReason,
26892
- instantType,
26893
- store
26894
- ]);
26895
- useIsoLayoutEffect(() => {
26896
- if (open) {
26897
- if (activeTriggerId == null) store.set("payload", void 0);
26898
- }
26899
- }, [
26900
- store,
26901
- activeTriggerId,
26902
- open
26903
- ]);
26904
- const handleImperativeClose = React.useCallback(() => {
26905
- store.setOpen(false, createChangeEventDetails(imperativeAction));
26906
- }, [store]);
26907
- React.useImperativeHandle(actionsRef, () => ({
26908
- unmount: forceUnmount,
26909
- close: handleImperativeClose
26910
- }), [forceUnmount, handleImperativeClose]);
26911
- const { getReferenceProps, getFloatingProps, getTriggerProps } = useInteractions([useDismiss(floatingRootContext, {
26912
- enabled: !disabled$1,
26913
- referencePress: () => store.select("closeOnClick")
26914
- }), useClientPoint(floatingRootContext, {
26915
- enabled: !disabled$1 && trackCursorAxis !== "none",
26916
- axis: trackCursorAxis === "none" ? void 0 : trackCursorAxis
26917
- })]);
26918
- const activeTriggerProps = React.useMemo(() => getReferenceProps(), [getReferenceProps]);
26919
- const inactiveTriggerProps = React.useMemo(() => getTriggerProps(), [getTriggerProps]);
26920
- const popupProps = React.useMemo(() => getFloatingProps(), [getFloatingProps]);
26921
- store.useSyncedValues({
26922
- activeTriggerProps,
26923
- inactiveTriggerProps,
26924
- popupProps
27001
+ if (name === "flow") return /* @__PURE__ */ jsx(Network, {
27002
+ "aria-hidden": "true",
27003
+ size,
27004
+ strokeWidth: 1.5,
27005
+ ...props
27006
+ });
27007
+ return /* @__PURE__ */ jsx("svg", {
27008
+ "aria-hidden": "true",
27009
+ fill: "none",
27010
+ height: size,
27011
+ viewBox: "0 0 24 24",
27012
+ width: size,
27013
+ ...props,
27014
+ children: /* @__PURE__ */ jsx("g", {
27015
+ stroke: "currentColor",
27016
+ strokeLinecap: "round",
27017
+ strokeLinejoin: "round",
27018
+ strokeWidth: "1.7",
27019
+ children: glyph(name)
27020
+ })
27021
+ });
27022
+ }
27023
+ //#endregion
27024
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/root/DialogRootContext.js
27025
+ var DialogRootContext = /*#__PURE__*/ React.createContext(void 0);
27026
+ if (process.env.NODE_ENV !== "production") DialogRootContext.displayName = "DialogRootContext";
27027
+ function useDialogRootContext(optional) {
27028
+ const dialogRootContext = React.useContext(DialogRootContext);
27029
+ if (optional === false && dialogRootContext === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: DialogRootContext is missing. Dialog parts must be placed within <Dialog.Root>." : formatErrorMessage(27));
27030
+ return dialogRootContext;
27031
+ }
27032
+ //#endregion
27033
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/backdrop/DialogBackdrop.js
27034
+ var stateAttributesMapping$1 = {
27035
+ ...popupStateMapping,
27036
+ ...transitionStatusMapping
27037
+ };
27038
+ /**
27039
+ * An overlay displayed beneath the popup.
27040
+ * Renders a `<div>` element.
27041
+ *
27042
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27043
+ */
27044
+ var DialogBackdrop = /*#__PURE__*/ React.forwardRef(function DialogBackdrop(componentProps, forwardedRef) {
27045
+ const { render, className, style, forceRender = false, ...elementProps } = componentProps;
27046
+ const { store } = useDialogRootContext();
27047
+ const open = store.useState("open");
27048
+ const nested = store.useState("nested");
27049
+ const mounted = store.useState("mounted");
27050
+ return useRenderElement("div", componentProps, {
27051
+ state: {
27052
+ open,
27053
+ transitionStatus: store.useState("transitionStatus")
27054
+ },
27055
+ ref: [store.context.backdropRef, forwardedRef],
27056
+ stateAttributesMapping: stateAttributesMapping$1,
27057
+ props: [{
27058
+ role: "presentation",
27059
+ hidden: !mounted,
27060
+ style: {
27061
+ userSelect: "none",
27062
+ WebkitUserSelect: "none"
27063
+ }
27064
+ }, elementProps],
27065
+ enabled: forceRender || !nested
26925
27066
  });
26926
- return /*#__PURE__*/ jsx(TooltipRootContext.Provider, {
26927
- value: store,
26928
- children: typeof children === "function" ? children({ payload }) : children
27067
+ });
27068
+ if (process.env.NODE_ENV !== "production") DialogBackdrop.displayName = "DialogBackdrop";
27069
+ //#endregion
27070
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/close/DialogClose.js
27071
+ /**
27072
+ * A button that closes the dialog.
27073
+ * Renders a `<button>` element.
27074
+ *
27075
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27076
+ */
27077
+ var DialogClose$1 = /*#__PURE__*/ React.forwardRef(function DialogClose(componentProps, forwardedRef) {
27078
+ const { render, className, disabled = false, nativeButton = true, style, ...elementProps } = componentProps;
27079
+ const { store } = useDialogRootContext();
27080
+ const open = store.useState("open");
27081
+ function handleClick(event) {
27082
+ if (open) store.setOpen(false, createChangeEventDetails(closePress, event.nativeEvent));
27083
+ }
27084
+ const { getButtonProps, buttonRef } = useButton({
27085
+ disabled,
27086
+ native: nativeButton
27087
+ });
27088
+ return useRenderElement("button", componentProps, {
27089
+ state: { disabled },
27090
+ ref: [forwardedRef, buttonRef],
27091
+ props: [
27092
+ { onClick: handleClick },
27093
+ elementProps,
27094
+ getButtonProps
27095
+ ]
26929
27096
  });
26930
27097
  });
26931
- if (process.env.NODE_ENV !== "production") TooltipRoot.displayName = "TooltipRoot";
27098
+ if (process.env.NODE_ENV !== "production") DialogClose$1.displayName = "DialogClose";
26932
27099
  //#endregion
26933
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProviderContext.js
26934
- var TooltipProviderContext = /*#__PURE__*/ React.createContext(void 0);
26935
- if (process.env.NODE_ENV !== "production") TooltipProviderContext.displayName = "TooltipProviderContext";
26936
- function useTooltipProviderContext() {
26937
- return React.useContext(TooltipProviderContext);
26938
- }
27100
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/description/DialogDescription.js
27101
+ /**
27102
+ * A paragraph with additional information about the dialog.
27103
+ * Renders a `<p>` element.
27104
+ *
27105
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27106
+ */
27107
+ var DialogDescription$1 = /*#__PURE__*/ React.forwardRef(function DialogDescription(componentProps, forwardedRef) {
27108
+ const { render, className, style, id: idProp, ...elementProps } = componentProps;
27109
+ const { store } = useDialogRootContext();
27110
+ const id = useBaseUiId(idProp);
27111
+ store.useSyncedValueWithCleanup("descriptionElementId", id);
27112
+ return useRenderElement("p", componentProps, {
27113
+ ref: forwardedRef,
27114
+ props: [{ id }, elementProps]
27115
+ });
27116
+ });
27117
+ if (process.env.NODE_ENV !== "production") DialogDescription$1.displayName = "DialogDescription";
26939
27118
  //#endregion
26940
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTriggerDataAttributes.js
26941
- var TooltipTriggerDataAttributes = function(TooltipTriggerDataAttributes) {
27119
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupCssVars.js
27120
+ var DialogPopupCssVars = /*#__PURE__*/ function(DialogPopupCssVars) {
26942
27121
  /**
26943
- * Present when the corresponding tooltip is open.
27122
+ * Indicates how many dialogs are nested within.
27123
+ * @type {number}
26944
27124
  */
26945
- TooltipTriggerDataAttributes[TooltipTriggerDataAttributes["popupOpen"] = CommonTriggerDataAttributes.popupOpen] = "popupOpen";
27125
+ DialogPopupCssVars["nestedDialogs"] = "--nested-dialogs";
27126
+ return DialogPopupCssVars;
27127
+ }({});
27128
+ //#endregion
27129
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupDataAttributes.js
27130
+ var DialogPopupDataAttributes = function(DialogPopupDataAttributes) {
26946
27131
  /**
26947
- * Present when the trigger is disabled, either by the `disabled` prop or by a parent `<Tooltip.Root>` component.
27132
+ * Present when the dialog is open.
26948
27133
  */
26949
- TooltipTriggerDataAttributes["triggerDisabled"] = "data-trigger-disabled";
26950
- return TooltipTriggerDataAttributes;
27134
+ DialogPopupDataAttributes[DialogPopupDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
27135
+ /**
27136
+ * Present when the dialog is closed.
27137
+ */
27138
+ DialogPopupDataAttributes[DialogPopupDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
27139
+ /**
27140
+ * Present when the dialog is animating in.
27141
+ */
27142
+ DialogPopupDataAttributes[DialogPopupDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
27143
+ /**
27144
+ * Present when the dialog is animating out.
27145
+ */
27146
+ DialogPopupDataAttributes[DialogPopupDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
27147
+ /**
27148
+ * Present when the dialog is nested within another dialog.
27149
+ */
27150
+ DialogPopupDataAttributes["nested"] = "data-nested";
27151
+ /**
27152
+ * Present when the dialog has other open dialogs nested within it.
27153
+ */
27154
+ DialogPopupDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
27155
+ return DialogPopupDataAttributes;
26951
27156
  }({});
26952
27157
  //#endregion
26953
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTrigger.js
27158
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/portal/DialogPortalContext.js
27159
+ var DialogPortalContext = /*#__PURE__*/ React.createContext(void 0);
27160
+ if (process.env.NODE_ENV !== "production") DialogPortalContext.displayName = "DialogPortalContext";
27161
+ function useDialogPortalContext() {
27162
+ const value = React.useContext(DialogPortalContext);
27163
+ if (value === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Dialog.Portal> is missing." : formatErrorMessage(26));
27164
+ return value;
27165
+ }
27166
+ //#endregion
27167
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/popup/DialogPopup.js
27168
+ var stateAttributesMapping = {
27169
+ ...popupStateMapping,
27170
+ ...transitionStatusMapping,
27171
+ nestedDialogOpen(value) {
27172
+ return value ? { [DialogPopupDataAttributes.nestedDialogOpen]: "" } : null;
27173
+ }
27174
+ };
26954
27175
  /**
26955
- * An element to attach the tooltip to.
26956
- * Renders a `<button>` element.
27176
+ * A container for the dialog contents.
27177
+ * Renders a `<div>` element.
26957
27178
  *
26958
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
27179
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
26959
27180
  */
26960
- var TooltipTrigger$1 = fastComponentRef(function TooltipTrigger(componentProps, forwardedRef) {
26961
- const { className, render, handle, payload, disabled: disabledProp, delay, closeOnClick = true, closeDelay, id: idProp, style, ...elementProps } = componentProps;
26962
- const rootContext = useTooltipRootContext(true);
26963
- const store = handle?.store ?? rootContext;
26964
- if (!store) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle." : formatErrorMessage(82));
26965
- const thisTriggerId = useBaseUiId(idProp);
26966
- const isTriggerActive = store.useState("isTriggerActive", thisTriggerId);
26967
- const isOpenedByThisTrigger = store.useState("isOpenedByTrigger", thisTriggerId);
27181
+ var DialogPopup = /*#__PURE__*/ React.forwardRef(function DialogPopup(componentProps, forwardedRef) {
27182
+ const { className, finalFocus, initialFocus, render, style, ...elementProps } = componentProps;
27183
+ const { store } = useDialogRootContext();
27184
+ const descriptionElementId = store.useState("descriptionElementId");
27185
+ const disablePointerDismissal = store.useState("disablePointerDismissal");
26968
27186
  const floatingRootContext = store.useState("floatingRootContext");
26969
- const triggerElementRef = React.useRef(null);
26970
- const delayWithDefault = delay ?? 600;
26971
- const closeDelayWithDefault = closeDelay ?? 0;
26972
- const { registerTrigger, isMountedByThisTrigger } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {
26973
- payload,
26974
- closeOnClick,
26975
- closeDelay: closeDelayWithDefault
27187
+ const rootPopupProps = store.useState("popupProps");
27188
+ const modal = store.useState("modal");
27189
+ const mounted = store.useState("mounted");
27190
+ const nested = store.useState("nested");
27191
+ const nestedOpenDialogCount = store.useState("nestedOpenDialogCount");
27192
+ const open = store.useState("open");
27193
+ const openMethod = store.useState("openMethod");
27194
+ const titleElementId = store.useState("titleElementId");
27195
+ const transitionStatus = store.useState("transitionStatus");
27196
+ const role = store.useState("role");
27197
+ useDialogPortalContext();
27198
+ useOpenChangeComplete({
27199
+ open,
27200
+ ref: store.context.popupRef,
27201
+ onComplete() {
27202
+ if (open) store.context.onOpenChangeComplete?.(true);
27203
+ }
26976
27204
  });
26977
- const providerContext = useTooltipProviderContext();
26978
- const { delayRef, isInstantPhase, hasProvider } = useDelayGroup(floatingRootContext, { open: isOpenedByThisTrigger });
26979
- store.useSyncedValue("isInstantPhase", isInstantPhase);
26980
- const rootDisabled = store.useState("disabled");
26981
- const disabled = disabledProp ?? rootDisabled;
26982
- const trackCursorAxis = store.useState("trackCursorAxis");
26983
- const disableHoverablePopup = store.useState("disableHoverablePopup");
26984
- const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
26985
- enabled: !disabled,
26986
- mouseOnly: true,
26987
- move: false,
26988
- handleClose: !disableHoverablePopup && trackCursorAxis !== "both" ? safePolygon() : null,
26989
- restMs() {
26990
- const providerDelay = providerContext?.delay;
26991
- const groupOpenValue = typeof delayRef.current === "object" ? delayRef.current.open : void 0;
26992
- let computedRestMs = delayWithDefault;
26993
- if (hasProvider) {
26994
- if (groupOpenValue !== 0) computedRestMs = delay ?? providerDelay ?? delayWithDefault;
26995
- else computedRestMs = 0;
26996
- }
26997
- return computedRestMs;
26998
- },
26999
- delay() {
27000
- const closeValue = typeof delayRef.current === "object" ? delayRef.current.close : void 0;
27001
- let computedCloseDelay = closeDelayWithDefault;
27002
- if (closeDelay == null && hasProvider) computedCloseDelay = closeValue;
27003
- return { close: computedCloseDelay };
27205
+ function defaultInitialFocus(interactionType) {
27206
+ if (interactionType === "touch") return store.context.popupRef.current;
27207
+ return true;
27208
+ }
27209
+ const resolvedInitialFocus = initialFocus === void 0 ? defaultInitialFocus : initialFocus;
27210
+ const element = useRenderElement("div", componentProps, {
27211
+ state: {
27212
+ open,
27213
+ nested,
27214
+ transitionStatus,
27215
+ nestedDialogOpen: nestedOpenDialogCount > 0
27004
27216
  },
27005
- triggerElementRef,
27006
- isActiveTrigger: isTriggerActive,
27007
- isClosing: () => store.select("transitionStatus") === "ending"
27008
- });
27009
- const focusProps = useFocus(floatingRootContext, { enabled: !disabled }).reference;
27010
- const state = { open: isOpenedByThisTrigger };
27011
- const rootTriggerProps = store.useState("triggerProps", isMountedByThisTrigger);
27012
- return useRenderElement("button", componentProps, {
27013
- state,
27014
- ref: [
27015
- forwardedRef,
27016
- registerTrigger,
27017
- triggerElementRef
27018
- ],
27019
27217
  props: [
27020
- hoverProps,
27021
- focusProps,
27022
- rootTriggerProps,
27218
+ rootPopupProps,
27023
27219
  {
27024
- onPointerDown() {
27025
- store.set("closeOnClick", closeOnClick);
27220
+ "aria-labelledby": titleElementId ?? void 0,
27221
+ "aria-describedby": descriptionElementId ?? void 0,
27222
+ role,
27223
+ tabIndex: -1,
27224
+ hidden: !mounted,
27225
+ onKeyDown(event) {
27226
+ if (COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
27026
27227
  },
27027
- id: thisTriggerId,
27028
- [TooltipTriggerDataAttributes.triggerDisabled]: disabled ? "" : void 0
27228
+ style: { [DialogPopupCssVars.nestedDialogs]: nestedOpenDialogCount }
27029
27229
  },
27030
27230
  elementProps
27031
27231
  ],
27032
- stateAttributesMapping: triggerOpenStateMapping
27232
+ ref: [
27233
+ forwardedRef,
27234
+ store.context.popupRef,
27235
+ store.useStateSetter("popupElement")
27236
+ ],
27237
+ stateAttributesMapping
27033
27238
  });
27034
- });
27035
- if (process.env.NODE_ENV !== "production") TooltipTrigger$1.displayName = "TooltipTrigger";
27036
- //#endregion
27037
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortalContext.js
27038
- var TooltipPortalContext = /*#__PURE__*/ React.createContext(void 0);
27039
- if (process.env.NODE_ENV !== "production") TooltipPortalContext.displayName = "TooltipPortalContext";
27040
- function useTooltipPortalContext() {
27041
- const value = React.useContext(TooltipPortalContext);
27042
- if (value === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Tooltip.Portal> is missing." : formatErrorMessage(70));
27043
- return value;
27044
- }
27045
- //#endregion
27046
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/utils/FloatingPortalLite.js
27047
- /**
27048
- * `FloatingPortal` includes tabbable logic handling for focus management.
27049
- * For components that don't need tabbable logic, use `FloatingPortalLite`.
27050
- * @internal
27051
- */
27052
- var FloatingPortalLite = /*#__PURE__*/ React.forwardRef(function FloatingPortalLite(componentProps, forwardedRef) {
27053
- const { children, container, className, render, style, ...elementProps } = componentProps;
27054
- const { portalNode, portalSubtree } = useFloatingPortalNode({
27055
- container,
27056
- ref: forwardedRef,
27057
- componentProps,
27058
- elementProps
27239
+ return /*#__PURE__*/ jsx(FloatingFocusManager, {
27240
+ context: floatingRootContext,
27241
+ openInteractionType: openMethod,
27242
+ disabled: !mounted,
27243
+ closeOnFocusOut: !disablePointerDismissal,
27244
+ initialFocus: resolvedInitialFocus,
27245
+ returnFocus: finalFocus,
27246
+ modal: modal !== false,
27247
+ restoreFocus: "popup",
27248
+ children: element
27059
27249
  });
27060
- if (!portalSubtree && !portalNode) return null;
27061
- return /*#__PURE__*/ jsxs(React.Fragment, { children: [portalSubtree, portalNode && /*#__PURE__*/ ReactDOM.createPortal(children, portalNode)] });
27062
27250
  });
27063
- if (process.env.NODE_ENV !== "production") FloatingPortalLite.displayName = "FloatingPortalLite";
27251
+ if (process.env.NODE_ENV !== "production") DialogPopup.displayName = "DialogPopup";
27064
27252
  //#endregion
27065
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortal.js
27253
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/portal/DialogPortal.js
27066
27254
  /**
27067
27255
  * A portal element that moves the popup to a different part of the DOM.
27068
27256
  * By default, the portal element is appended to `<body>`.
27069
27257
  * Renders a `<div>` element.
27070
27258
  *
27071
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
27259
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27072
27260
  */
27073
- var TooltipPortal = /*#__PURE__*/ React.forwardRef(function TooltipPortal(props, forwardedRef) {
27261
+ var DialogPortal$1 = /*#__PURE__*/ React.forwardRef(function DialogPortal(props, forwardedRef) {
27074
27262
  const { keepMounted = false, ...portalProps } = props;
27075
- if (!(useTooltipRootContext().useState("mounted") || keepMounted)) return null;
27076
- return /*#__PURE__*/ jsx(TooltipPortalContext.Provider, {
27263
+ const { store } = useDialogRootContext();
27264
+ const mounted = store.useState("mounted");
27265
+ const modal = store.useState("modal");
27266
+ const open = store.useState("open");
27267
+ if (!(mounted || keepMounted)) return null;
27268
+ return /*#__PURE__*/ jsx(DialogPortalContext.Provider, {
27077
27269
  value: keepMounted,
27078
- children: /*#__PURE__*/ jsx(FloatingPortalLite, {
27270
+ children: /*#__PURE__*/ jsxs(FloatingPortal, {
27079
27271
  ref: forwardedRef,
27080
- ...portalProps
27272
+ ...portalProps,
27273
+ children: [mounted && modal === true && /*#__PURE__*/ jsx(InternalBackdrop, {
27274
+ ref: store.context.internalBackdropRef,
27275
+ inert: inertValue(!open)
27276
+ }), props.children]
27081
27277
  })
27082
27278
  });
27083
27279
  });
27084
- if (process.env.NODE_ENV !== "production") TooltipPortal.displayName = "TooltipPortal";
27085
- //#endregion
27086
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositionerContext.js
27087
- var TooltipPositionerContext = /*#__PURE__*/ React.createContext(void 0);
27088
- if (process.env.NODE_ENV !== "production") TooltipPositionerContext.displayName = "TooltipPositionerContext";
27089
- function useTooltipPositionerContext() {
27090
- const context = React.useContext(TooltipPositionerContext);
27091
- if (context === void 0) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>." : formatErrorMessage(71));
27092
- return context;
27093
- }
27280
+ if (process.env.NODE_ENV !== "production") DialogPortal$1.displayName = "DialogPortal";
27094
27281
  //#endregion
27095
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositioner.js
27096
- /**
27097
- * Positions the tooltip against the trigger.
27098
- * Renders a `<div>` element.
27099
- *
27100
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
27101
- */
27102
- var TooltipPositioner = /*#__PURE__*/ React.forwardRef(function TooltipPositioner(componentProps, forwardedRef) {
27103
- const { render, className, anchor, positionMethod = "absolute", side = "top", align = "center", sideOffset = 0, alignOffset = 0, collisionBoundary = "clipping-ancestors", collisionPadding = 5, arrowPadding = 5, sticky = false, disableAnchorTracking = false, collisionAvoidance = POPUP_COLLISION_AVOIDANCE, style, ...elementProps } = componentProps;
27104
- const store = useTooltipRootContext();
27105
- const keepMounted = useTooltipPortalContext();
27282
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/root/useDialogRoot.js
27283
+ function useDialogRoot(params) {
27284
+ const { store, parentContext, actionsRef, isDrawer } = params;
27106
27285
  const open = store.useState("open");
27107
- const mounted = store.useState("mounted");
27108
- const trackCursorAxis = store.useState("trackCursorAxis");
27109
- const disableHoverablePopup = store.useState("disableHoverablePopup");
27110
- const floatingRootContext = store.useState("floatingRootContext");
27111
- const instantType = store.useState("instantType");
27112
- const transitionStatus = store.useState("transitionStatus");
27113
- const positioning = useAnchorPositioning({
27114
- anchor,
27115
- positionMethod,
27116
- floatingRootContext,
27117
- mounted,
27118
- side,
27119
- sideOffset,
27120
- align,
27121
- alignOffset,
27122
- collisionBoundary,
27123
- collisionPadding,
27124
- sticky,
27125
- arrowPadding,
27126
- disableAnchorTracking,
27127
- keepMounted,
27128
- collisionAvoidance,
27129
- adaptiveOrigin: store.useState("hasViewport") ? adaptiveOrigin : void 0
27286
+ const disablePointerDismissal = store.useState("disablePointerDismissal");
27287
+ const modal = store.useState("modal");
27288
+ const popupElement = store.useState("popupElement");
27289
+ const { openMethod, triggerProps } = useOpenInteractionType(open);
27290
+ useImplicitActiveTrigger(store);
27291
+ const { forceUnmount } = useOpenStateTransitions(open, store);
27292
+ const handleImperativeClose = React.useCallback(() => {
27293
+ store.setOpen(false, createChangeEventDetails(imperativeAction));
27294
+ }, [store]);
27295
+ React.useImperativeHandle(actionsRef, () => ({
27296
+ unmount: forceUnmount,
27297
+ close: handleImperativeClose
27298
+ }), [forceUnmount, handleImperativeClose]);
27299
+ const floatingRootContext = useSyncedFloatingRootContext({
27300
+ popupStore: store,
27301
+ onOpenChange: store.setOpen,
27302
+ treatPopupAsFloatingElement: true
27130
27303
  });
27131
- const element = usePositioner(componentProps, React.useMemo(() => ({
27132
- open,
27133
- side: positioning.side,
27134
- align: positioning.align,
27135
- anchorHidden: positioning.anchorHidden,
27136
- instant: trackCursorAxis !== "none" ? "tracking-cursor" : instantType
27137
- }), [
27138
- open,
27139
- positioning.side,
27140
- positioning.align,
27141
- positioning.anchorHidden,
27142
- trackCursorAxis,
27143
- instantType
27144
- ]), {
27145
- styles: positioning.positionerStyles,
27146
- transitionStatus,
27147
- props: elementProps,
27148
- refs: [forwardedRef, store.useStateSetter("positionerElement")],
27149
- hidden: !mounted,
27150
- inert: !open || trackCursorAxis === "both" || disableHoverablePopup
27304
+ const [ownNestedOpenDialogs, setOwnNestedOpenDialogs] = React.useState(0);
27305
+ const [ownNestedOpenDrawers, setOwnNestedOpenDrawers] = React.useState(0);
27306
+ const isTopmost = ownNestedOpenDialogs === 0;
27307
+ const role = useRole(floatingRootContext);
27308
+ const dismiss = useDismiss(floatingRootContext, {
27309
+ outsidePressEvent() {
27310
+ if (store.context.internalBackdropRef.current || store.context.backdropRef.current) return "intentional";
27311
+ return {
27312
+ mouse: modal === "trap-focus" ? "sloppy" : "intentional",
27313
+ touch: "sloppy"
27314
+ };
27315
+ },
27316
+ outsidePress(event) {
27317
+ if (!store.context.outsidePressEnabledRef.current) return false;
27318
+ if ("button" in event && event.button !== 0) return false;
27319
+ if ("touches" in event && event.touches.length !== 1) return false;
27320
+ const target = getTarget(event);
27321
+ if (isTopmost && !disablePointerDismissal) {
27322
+ const eventTarget = target;
27323
+ if (modal) return store.context.internalBackdropRef.current || store.context.backdropRef.current ? store.context.internalBackdropRef.current === eventTarget || store.context.backdropRef.current === eventTarget || contains(eventTarget, popupElement) && !eventTarget?.hasAttribute("data-base-ui-portal") : true;
27324
+ return true;
27325
+ }
27326
+ return false;
27327
+ },
27328
+ escapeKey: isTopmost
27151
27329
  });
27152
- return /*#__PURE__*/ jsx(TooltipPositionerContext.Provider, {
27153
- value: positioning,
27154
- children: element
27330
+ useScrollLock(open && modal === true, popupElement);
27331
+ const { getReferenceProps, getFloatingProps, getTriggerProps } = useInteractions([role, dismiss]);
27332
+ store.useContextCallback("onNestedDialogOpen", (dialogCount, drawerCount) => {
27333
+ setOwnNestedOpenDialogs(dialogCount);
27334
+ setOwnNestedOpenDrawers(drawerCount);
27155
27335
  });
27156
- });
27157
- if (process.env.NODE_ENV !== "production") TooltipPositioner.displayName = "TooltipPositioner";
27336
+ store.useContextCallback("onNestedDialogClose", () => {
27337
+ setOwnNestedOpenDialogs(0);
27338
+ setOwnNestedOpenDrawers(0);
27339
+ });
27340
+ React.useEffect(() => {
27341
+ if (parentContext?.onNestedDialogOpen && open) parentContext.onNestedDialogOpen(ownNestedOpenDialogs + 1, ownNestedOpenDrawers + (isDrawer ? 1 : 0));
27342
+ if (parentContext?.onNestedDialogClose && !open) parentContext.onNestedDialogClose();
27343
+ return () => {
27344
+ if (parentContext?.onNestedDialogClose && open) parentContext.onNestedDialogClose();
27345
+ };
27346
+ }, [
27347
+ isDrawer,
27348
+ open,
27349
+ ownNestedOpenDialogs,
27350
+ ownNestedOpenDrawers,
27351
+ parentContext
27352
+ ]);
27353
+ const activeTriggerProps = React.useMemo(() => getReferenceProps(triggerProps), [getReferenceProps, triggerProps]);
27354
+ const inactiveTriggerProps = React.useMemo(() => getTriggerProps(triggerProps), [getTriggerProps, triggerProps]);
27355
+ const popupProps = React.useMemo(() => getFloatingProps(), [getFloatingProps]);
27356
+ store.useSyncedValues({
27357
+ openMethod,
27358
+ activeTriggerProps,
27359
+ inactiveTriggerProps,
27360
+ popupProps,
27361
+ floatingRootContext,
27362
+ nestedOpenDialogCount: ownNestedOpenDialogs,
27363
+ nestedOpenDrawerCount: ownNestedOpenDrawers
27364
+ });
27365
+ }
27158
27366
  //#endregion
27159
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/popup/TooltipPopup.js
27160
- var stateAttributesMapping = {
27161
- ...popupStateMapping,
27162
- ...transitionStatusMapping
27367
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/store/DialogStore.js
27368
+ var selectors = {
27369
+ ...popupStoreSelectors,
27370
+ modal: createSelector((state) => state.modal),
27371
+ nested: createSelector((state) => state.nested),
27372
+ nestedOpenDialogCount: createSelector((state) => state.nestedOpenDialogCount),
27373
+ nestedOpenDrawerCount: createSelector((state) => state.nestedOpenDrawerCount),
27374
+ disablePointerDismissal: createSelector((state) => state.disablePointerDismissal),
27375
+ openMethod: createSelector((state) => state.openMethod),
27376
+ descriptionElementId: createSelector((state) => state.descriptionElementId),
27377
+ titleElementId: createSelector((state) => state.titleElementId),
27378
+ viewportElement: createSelector((state) => state.viewportElement),
27379
+ role: createSelector((state) => state.role)
27380
+ };
27381
+ var DialogStore = class DialogStore extends ReactStore {
27382
+ constructor(initialState) {
27383
+ super(createInitialState(initialState), {
27384
+ popupRef: /*#__PURE__*/ React.createRef(),
27385
+ backdropRef: /*#__PURE__*/ React.createRef(),
27386
+ internalBackdropRef: /*#__PURE__*/ React.createRef(),
27387
+ outsidePressEnabledRef: { current: true },
27388
+ triggerElements: new PopupTriggerMap(),
27389
+ onOpenChange: void 0,
27390
+ onOpenChangeComplete: void 0
27391
+ }, selectors);
27392
+ }
27393
+ setOpen = (nextOpen, eventDetails) => {
27394
+ eventDetails.preventUnmountOnClose = () => {
27395
+ this.set("preventUnmountingOnClose", true);
27396
+ };
27397
+ if (!nextOpen && eventDetails.trigger == null && this.state.activeTriggerId != null) eventDetails.trigger = this.state.activeTriggerElement ?? void 0;
27398
+ this.context.onOpenChange?.(nextOpen, eventDetails);
27399
+ if (eventDetails.isCanceled) return;
27400
+ this.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
27401
+ const updatedState = { open: nextOpen };
27402
+ const newTriggerId = eventDetails.trigger?.id ?? null;
27403
+ if (newTriggerId || nextOpen) {
27404
+ updatedState.activeTriggerId = newTriggerId;
27405
+ updatedState.activeTriggerElement = eventDetails.trigger ?? null;
27406
+ }
27407
+ this.update(updatedState);
27408
+ };
27409
+ static useStore(externalStore, initialState) {
27410
+ const internalStore = useRefWithInit(() => {
27411
+ return new DialogStore(initialState);
27412
+ }).current;
27413
+ return externalStore ?? internalStore;
27414
+ }
27163
27415
  };
27416
+ function createInitialState(initialState = {}) {
27417
+ return {
27418
+ ...createInitialPopupStoreState(),
27419
+ modal: true,
27420
+ disablePointerDismissal: false,
27421
+ popupElement: null,
27422
+ viewportElement: null,
27423
+ descriptionElementId: void 0,
27424
+ titleElementId: void 0,
27425
+ openMethod: null,
27426
+ nested: false,
27427
+ nestedOpenDialogCount: 0,
27428
+ nestedOpenDrawerCount: 0,
27429
+ role: "dialog",
27430
+ ...initialState
27431
+ };
27432
+ }
27433
+ //#endregion
27434
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/root/DialogRoot.js
27435
+ var IsDrawerContext = /*#__PURE__*/ React.createContext(false);
27164
27436
  /**
27165
- * A container for the tooltip contents.
27166
- * Renders a `<div>` element.
27437
+ * Groups all parts of the dialog.
27438
+ * Doesn't render its own HTML element.
27167
27439
  *
27168
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
27440
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27169
27441
  */
27170
- var TooltipPopup = /*#__PURE__*/ React.forwardRef(function TooltipPopup(componentProps, forwardedRef) {
27171
- const { className, render, style, ...elementProps } = componentProps;
27172
- const store = useTooltipRootContext();
27173
- const { side, align } = useTooltipPositionerContext();
27174
- const open = store.useState("open");
27175
- const instantType = store.useState("instantType");
27176
- const transitionStatus = store.useState("transitionStatus");
27177
- const popupProps = store.useState("popupProps");
27178
- const floatingContext = store.useState("floatingRootContext");
27179
- useOpenChangeComplete({
27180
- open,
27181
- ref: store.context.popupRef,
27182
- onComplete() {
27183
- if (open) store.context.onOpenChangeComplete?.(true);
27184
- }
27442
+ if (process.env.NODE_ENV !== "production") IsDrawerContext.displayName = "IsDrawerContext";
27443
+ function DialogRoot(props) {
27444
+ const { children, open: openProp, defaultOpen = false, onOpenChange, onOpenChangeComplete, disablePointerDismissal = false, modal = true, actionsRef, handle, triggerId: triggerIdProp, defaultTriggerId: defaultTriggerIdProp = null } = props;
27445
+ const parentDialogRootContext = useDialogRootContext(true);
27446
+ const isDrawer = React.useContext(IsDrawerContext);
27447
+ const nested = Boolean(parentDialogRootContext);
27448
+ const store = DialogStore.useStore(handle?.store, {
27449
+ open: defaultOpen,
27450
+ openProp,
27451
+ activeTriggerId: defaultTriggerIdProp,
27452
+ triggerIdProp,
27453
+ modal,
27454
+ disablePointerDismissal,
27455
+ nested
27185
27456
  });
27186
- const disabled = store.useState("disabled");
27187
- const closeDelay = store.useState("closeDelay");
27188
- useHoverFloatingInteraction(floatingContext, {
27189
- enabled: !disabled,
27190
- closeDelay
27457
+ useOnFirstRender(() => {
27458
+ if (openProp === void 0 && store.state.open === false && defaultOpen === true) store.update({
27459
+ open: true,
27460
+ activeTriggerId: defaultTriggerIdProp
27461
+ });
27191
27462
  });
27192
- return useRenderElement("div", componentProps, {
27193
- state: {
27194
- open,
27195
- side,
27196
- align,
27197
- instant: instantType,
27198
- transitionStatus
27199
- },
27200
- ref: [
27201
- forwardedRef,
27202
- store.context.popupRef,
27203
- store.useStateSetter("popupElement")
27204
- ],
27205
- props: [
27206
- popupProps,
27207
- getDisabledMountTransitionStyles(transitionStatus),
27208
- elementProps
27209
- ],
27210
- stateAttributesMapping
27463
+ store.useControlledProp("openProp", openProp);
27464
+ store.useControlledProp("triggerIdProp", triggerIdProp);
27465
+ store.useSyncedValues({
27466
+ disablePointerDismissal,
27467
+ nested,
27468
+ modal
27211
27469
  });
27212
- });
27213
- if (process.env.NODE_ENV !== "production") TooltipPopup.displayName = "TooltipPopup";
27470
+ store.useContextCallback("onOpenChange", onOpenChange);
27471
+ store.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
27472
+ const payload = store.useState("payload");
27473
+ useDialogRoot({
27474
+ store,
27475
+ actionsRef,
27476
+ parentContext: parentDialogRootContext?.store.context,
27477
+ isDrawer,
27478
+ onOpenChange,
27479
+ triggerIdProp
27480
+ });
27481
+ const contextValue = React.useMemo(() => ({ store }), [store]);
27482
+ return /*#__PURE__*/ jsx(IsDrawerContext.Provider, {
27483
+ value: false,
27484
+ children: /*#__PURE__*/ jsx(DialogRootContext.Provider, {
27485
+ value: contextValue,
27486
+ children: typeof children === "function" ? children({ payload }) : children
27487
+ })
27488
+ });
27489
+ }
27214
27490
  //#endregion
27215
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/arrow/TooltipArrow.js
27491
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/title/DialogTitle.js
27216
27492
  /**
27217
- * Displays an element positioned against the tooltip anchor.
27218
- * Renders a `<div>` element.
27493
+ * A heading that labels the dialog.
27494
+ * Renders an `<h2>` element.
27219
27495
  *
27220
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
27496
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27221
27497
  */
27222
- var TooltipArrow = /*#__PURE__*/ React.forwardRef(function TooltipArrow(componentProps, forwardedRef) {
27223
- const { className, render, style, ...elementProps } = componentProps;
27224
- const store = useTooltipRootContext();
27225
- const open = store.useState("open");
27226
- const instantType = store.useState("instantType");
27227
- const { arrowRef, side, align, arrowUncentered, arrowStyles } = useTooltipPositionerContext();
27228
- return useRenderElement("div", componentProps, {
27229
- state: {
27230
- open,
27231
- side,
27232
- align,
27233
- uncentered: arrowUncentered,
27234
- instant: instantType
27235
- },
27236
- ref: [forwardedRef, arrowRef],
27237
- props: [{
27238
- style: arrowStyles,
27239
- "aria-hidden": true
27240
- }, elementProps],
27241
- stateAttributesMapping: popupStateMapping
27498
+ var DialogTitle$1 = /*#__PURE__*/ React.forwardRef(function DialogTitle(componentProps, forwardedRef) {
27499
+ const { render, className, style, id: idProp, ...elementProps } = componentProps;
27500
+ const { store } = useDialogRootContext();
27501
+ const id = useBaseUiId(idProp);
27502
+ store.useSyncedValueWithCleanup("titleElementId", id);
27503
+ return useRenderElement("h2", componentProps, {
27504
+ ref: forwardedRef,
27505
+ props: [{ id }, elementProps]
27242
27506
  });
27243
27507
  });
27244
- if (process.env.NODE_ENV !== "production") TooltipArrow.displayName = "TooltipArrow";
27508
+ if (process.env.NODE_ENV !== "production") DialogTitle$1.displayName = "DialogTitle";
27245
27509
  //#endregion
27246
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProvider.js
27510
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/trigger/DialogTrigger.js
27247
27511
  /**
27248
- * Provides a shared delay for multiple tooltips. The grouping logic ensures that
27249
- * once a tooltip becomes visible, the adjacent tooltips will be shown instantly.
27512
+ * A button that opens the dialog.
27513
+ * Renders a `<button>` element.
27250
27514
  *
27251
- * Documentation: [Base UI Tooltip](https://base-ui.com/react/components/tooltip)
27252
- */
27253
- var TooltipProvider$1 = function TooltipProvider(props) {
27254
- const { delay, closeDelay, timeout = 400 } = props;
27255
- const contextValue = React.useMemo(() => ({
27256
- delay,
27257
- closeDelay
27258
- }), [delay, closeDelay]);
27259
- const delayValue = React.useMemo(() => ({
27260
- open: delay,
27261
- close: closeDelay
27262
- }), [delay, closeDelay]);
27263
- return /*#__PURE__*/ jsx(TooltipProviderContext.Provider, {
27264
- value: contextValue,
27265
- children: /*#__PURE__*/ jsx(FloatingDelayGroup, {
27266
- delay: delayValue,
27267
- timeoutMs: timeout,
27268
- children: props.children
27269
- })
27270
- });
27271
- };
27272
- if (process.env.NODE_ENV !== "production") TooltipProvider$1.displayName = "TooltipProvider";
27273
- //#endregion
27274
- //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/tooltip/store/TooltipHandle.js
27275
- /**
27276
- * A handle to control a tooltip imperatively and to associate detached triggers with it.
27277
- */
27278
- var TooltipHandle = class {
27279
- /**
27280
- * Internal store holding the tooltip state.
27281
- * @internal
27282
- */
27283
- constructor() {
27284
- this.store = new TooltipStore();
27285
- }
27286
- /**
27287
- * Opens the tooltip and associates it with the trigger with the given ID.
27288
- * The trigger must be a Tooltip.Trigger component with this handle passed as a prop.
27289
- *
27290
- * This method should only be called in an event handler or an effect (not during rendering).
27291
- *
27292
- * @param triggerId ID of the trigger to associate with the tooltip.
27293
- */
27294
- open(triggerId) {
27295
- const triggerElement = triggerId ? this.store.context.triggerElements.getById(triggerId) : void 0;
27296
- if (triggerId && !triggerElement) throw new Error(process.env.NODE_ENV !== "production" ? `Base UI: TooltipHandle.open: No trigger found with id "${triggerId}".` : formatErrorMessage(81, triggerId));
27297
- this.store.setOpen(true, createChangeEventDetails(imperativeAction, void 0, triggerElement));
27298
- }
27299
- /**
27300
- * Closes the tooltip.
27301
- */
27302
- close() {
27303
- this.store.setOpen(false, createChangeEventDetails(imperativeAction, void 0, void 0));
27304
- }
27305
- /**
27306
- * Indicates whether the tooltip is currently open.
27307
- */
27308
- get isOpen() {
27309
- return this.store.state.open;
27310
- }
27311
- };
27312
- /**
27313
- * Creates a new handle to connect a Tooltip.Root with detached Tooltip.Trigger components.
27515
+ * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)
27314
27516
  */
27315
- function createTooltipHandle$1() {
27316
- return new TooltipHandle();
27317
- }
27318
- //#endregion
27319
- //#region src/ui/browser/tooltip.tsx
27320
- function TooltipProvider({ delay = 0, ...props }) {
27321
- return /* @__PURE__ */ jsx(TooltipProvider$1, {
27322
- "data-slot": "tooltip-provider",
27323
- delay,
27324
- ...props
27325
- });
27326
- }
27327
- function Tooltip({ ...props }) {
27328
- return /* @__PURE__ */ jsx(TooltipRoot, {
27329
- "data-slot": "tooltip",
27330
- ...props
27517
+ var DialogTrigger$1 = /*#__PURE__*/ React.forwardRef(function DialogTrigger(componentProps, forwardedRef) {
27518
+ const { render, className, disabled = false, nativeButton = true, id: idProp, payload, handle, style, ...elementProps } = componentProps;
27519
+ const dialogRootContext = useDialogRootContext(true);
27520
+ const store = handle?.store ?? dialogRootContext?.store;
27521
+ if (!store) throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Dialog.Trigger> must be used within <Dialog.Root> or provided with a handle." : formatErrorMessage(79));
27522
+ const thisTriggerId = useBaseUiId(idProp);
27523
+ const floatingContext = store.useState("floatingRootContext");
27524
+ const isOpenedByThisTrigger = store.useState("isOpenedByTrigger", thisTriggerId);
27525
+ const triggerElementRef = React.useRef(null);
27526
+ const { registerTrigger, isMountedByThisTrigger } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, { payload });
27527
+ const { getButtonProps, buttonRef } = useButton({
27528
+ disabled,
27529
+ native: nativeButton
27331
27530
  });
27332
- }
27333
- var TooltipTrigger = forwardRef(function TooltipTrigger(props, ref) {
27334
- return /* @__PURE__ */ jsx(TooltipTrigger$1, {
27335
- "data-slot": "tooltip-trigger",
27336
- ...props,
27337
- ref
27531
+ const localInteractionProps = useInteractions([useClick(floatingContext, { enabled: floatingContext != null })]);
27532
+ const state = {
27533
+ disabled,
27534
+ open: isOpenedByThisTrigger
27535
+ };
27536
+ const rootTriggerProps = store.useState("triggerProps", isMountedByThisTrigger);
27537
+ return useRenderElement("button", componentProps, {
27538
+ state,
27539
+ ref: [
27540
+ buttonRef,
27541
+ forwardedRef,
27542
+ registerTrigger,
27543
+ triggerElementRef
27544
+ ],
27545
+ props: [
27546
+ localInteractionProps.getReferenceProps(),
27547
+ rootTriggerProps,
27548
+ {
27549
+ [CLICK_TRIGGER_IDENTIFIER]: "",
27550
+ id: thisTriggerId
27551
+ },
27552
+ elementProps,
27553
+ getButtonProps
27554
+ ],
27555
+ stateAttributesMapping: triggerOpenStateMapping
27338
27556
  });
27339
27557
  });
27340
- function TooltipContent({ className, container, positionMethod, collisionBoundary, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
27341
- const portalContainer = container?.closest("[data-tooltip-portal]") ?? container;
27342
- return /* @__PURE__ */ jsx(TooltipPortal, {
27343
- container: portalContainer,
27344
- className: "contents",
27345
- children: /* @__PURE__ */ jsx(TooltipPositioner, {
27346
- positionMethod,
27347
- collisionBoundary,
27348
- align,
27349
- alignOffset,
27350
- side,
27351
- sideOffset,
27352
- className: "isolate z-[1000]",
27353
- children: /* @__PURE__ */ jsxs(TooltipPopup, {
27354
- "data-slot": "tooltip-content",
27355
- className: cn("z-[1000] inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 [overflow-wrap:anywhere] rounded-[6px] bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-[1000] **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
27356
- ...props,
27357
- children: [children, /* @__PURE__ */ jsx(TooltipArrow, {
27358
- className: "z-[1000] size-2.5 translate-x-0 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5",
27359
- "data-slot": "tooltip-arrow"
27360
- })]
27361
- })
27362
- })
27363
- });
27364
- }
27365
- var createTooltipHandle = createTooltipHandle$1;
27558
+ if (process.env.NODE_ENV !== "production") DialogTrigger$1.displayName = "DialogTrigger";
27366
27559
  //#endregion
27367
27560
  //#region src/ui/browser/dialog.tsx
27368
27561
  function Dialog(props) {
@@ -27453,196 +27646,4 @@ function DialogDescription({ className, ...props }) {
27453
27646
  });
27454
27647
  }
27455
27648
  //#endregion
27456
- //#region src/workbench/browser/runtime/icons.tsx
27457
- function glyph(name) {
27458
- switch (name) {
27459
- case "alert": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27460
- /* @__PURE__ */ jsx("circle", {
27461
- cx: "12",
27462
- cy: "12",
27463
- r: "9"
27464
- }),
27465
- /* @__PURE__ */ jsx("path", { d: "M12 7v6" }),
27466
- /* @__PURE__ */ jsx("path", { d: "M12 17h.01" })
27467
- ] });
27468
- case "check": return /* @__PURE__ */ jsx("path", { d: "m5 12 4 4L19 6" });
27469
- case "chevron-down": return /* @__PURE__ */ jsx("path", { d: "m7 10 5 5 5-5" });
27470
- case "chevron-left": return /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" });
27471
- case "chevron-up": return /* @__PURE__ */ jsx("path", { d: "m7 14 5-5 5 5" });
27472
- case "close": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "m6 6 12 12" }), /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" })] });
27473
- case "condition": return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("path", { d: "M5 5h14l-5.5 6v6l-3 2v-8z" }) });
27474
- case "connection": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M10 13a5 5 0 0 0 7.1.1l2-2a5 5 0 0 0-7.1-7.1l-1.1 1.1" }), /* @__PURE__ */ jsx("path", { d: "M14 11a5 5 0 0 0-7.1-.1l-2 2A5 5 0 0 0 12 20l1.1-1.1" })] });
27475
- case "download": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27476
- /* @__PURE__ */ jsx("path", { d: "M12 4v11" }),
27477
- /* @__PURE__ */ jsx("path", { d: "m7 10 5 5 5-5" }),
27478
- /* @__PURE__ */ jsx("path", { d: "M5 20h14" })
27479
- ] });
27480
- case "fit": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27481
- /* @__PURE__ */ jsx("path", { d: "M8 3H3v5" }),
27482
- /* @__PURE__ */ jsx("path", { d: "M16 3h5v5" }),
27483
- /* @__PURE__ */ jsx("path", { d: "M8 21H3v-5" }),
27484
- /* @__PURE__ */ jsx("path", { d: "M16 21h5v-5" })
27485
- ] });
27486
- case "filter": return /* @__PURE__ */ jsx("path", { d: "M4 6h16l-6 7v5l-4 2v-7z" });
27487
- case "hand": return /* @__PURE__ */ jsx("path", { d: "M8 11V6a1.5 1.5 0 0 1 3 0v4-6a1.5 1.5 0 0 1 3 0v6-4a1.5 1.5 0 0 1 3 0v5-2a1.5 1.5 0 0 1 3 0v4a8 8 0 0 1-16 0v-2a2 2 0 0 1 4 0Z" });
27488
- case "logo": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27489
- /* @__PURE__ */ jsx("circle", {
27490
- cx: "7",
27491
- cy: "5",
27492
- r: "2.5"
27493
- }),
27494
- /* @__PURE__ */ jsx("circle", {
27495
- cx: "7",
27496
- cy: "19",
27497
- r: "2.5"
27498
- }),
27499
- /* @__PURE__ */ jsx("circle", {
27500
- cx: "18",
27501
- cy: "12",
27502
- r: "2.5"
27503
- }),
27504
- /* @__PURE__ */ jsx("path", { d: "M9.2 6.2 15.7 10M9.2 17.8l6.5-3.8M7 7.5v9" })
27505
- ] });
27506
- case "llm": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27507
- /* @__PURE__ */ jsx("path", { d: "M7 7h10v10H7z" }),
27508
- /* @__PURE__ */ jsx("path", { d: "M9 2v3m6-3v3M9 19v3m6-3v3M2 9h3m-3 6h3m14-6h3m-3 6h3" }),
27509
- /* @__PURE__ */ jsx("circle", {
27510
- cx: "10",
27511
- cy: "11",
27512
- r: ".7",
27513
- fill: "currentColor",
27514
- stroke: "none"
27515
- }),
27516
- /* @__PURE__ */ jsx("circle", {
27517
- cx: "14",
27518
- cy: "11",
27519
- r: ".7",
27520
- fill: "currentColor",
27521
- stroke: "none"
27522
- }),
27523
- /* @__PURE__ */ jsx("path", { d: "M10 14h4" })
27524
- ] });
27525
- case "more": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27526
- /* @__PURE__ */ jsx("circle", {
27527
- cx: "5",
27528
- cy: "12",
27529
- r: "1",
27530
- fill: "currentColor",
27531
- stroke: "none"
27532
- }),
27533
- /* @__PURE__ */ jsx("circle", {
27534
- cx: "12",
27535
- cy: "12",
27536
- r: "1",
27537
- fill: "currentColor",
27538
- stroke: "none"
27539
- }),
27540
- /* @__PURE__ */ jsx("circle", {
27541
- cx: "19",
27542
- cy: "12",
27543
- r: "1",
27544
- fill: "currentColor",
27545
- stroke: "none"
27546
- })
27547
- ] });
27548
- case "panel": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("rect", {
27549
- x: "3",
27550
- y: "4",
27551
- width: "18",
27552
- height: "16",
27553
- rx: "2"
27554
- }), /* @__PURE__ */ jsx("path", { d: "M15 4v16" })] });
27555
- case "play":
27556
- case "run": return /* @__PURE__ */ jsx("path", { d: "m8 5 11 7-11 7z" });
27557
- case "pointer": return /* @__PURE__ */ jsx("path", { d: "m5 3 13 9-6 1-3 6z" });
27558
- case "plus": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M12 5v14" }), /* @__PURE__ */ jsx("path", { d: "M5 12h14" })] });
27559
- case "project": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("path", { d: "M3 7h6l2 2h10v10H3z" }), /* @__PURE__ */ jsx("path", { d: "M3 7V5h7l2 2" })] });
27560
- case "publish": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27561
- /* @__PURE__ */ jsx("path", { d: "M12 16V4" }),
27562
- /* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" }),
27563
- /* @__PURE__ */ jsx("path", { d: "M5 14v5h14v-5" })
27564
- ] });
27565
- case "refresh": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27566
- /* @__PURE__ */ jsx("path", { d: "M20 11a8 8 0 0 0-14.7-4.4L3 9" }),
27567
- /* @__PURE__ */ jsx("path", { d: "M3 4v5h5" }),
27568
- /* @__PURE__ */ jsx("path", { d: "M4 13a8 8 0 0 0 14.7 4.4L21 15" }),
27569
- /* @__PURE__ */ jsx("path", { d: "M21 20v-5h-5" })
27570
- ] });
27571
- case "search": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("circle", {
27572
- cx: "11",
27573
- cy: "11",
27574
- r: "7"
27575
- }), /* @__PURE__ */ jsx("path", { d: "m16 16 4 4" })] });
27576
- case "settings": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("circle", {
27577
- cx: "12",
27578
- cy: "12",
27579
- r: "3"
27580
- }), /* @__PURE__ */ jsx("path", {
27581
- d: "M19 13.5v-3l-2-.6-.7-1.7 1-1.8-2.1-2.1-1.8 1-1.7-.7L10.5 3h-3l-.6 2-1.7.7-1.8-1-2.1 2.1 1 1.8-.7 1.7-2 .6v3l2 .6.7 1.7-1 1.8 2.1 2.1 1.8-1 1.7.7.6 2h3l.6-2 1.7-.7 1.8 1 2.1-2.1-1-1.8.7-1.7z",
27582
- transform: "translate(2.5) scale(.8)"
27583
- })] });
27584
- case "value": return /* @__PURE__ */ jsx("path", { d: "m12 3 8 9-8 9-8-9z" });
27585
- case "wait": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("circle", {
27586
- cx: "12",
27587
- cy: "12",
27588
- r: "9"
27589
- }), /* @__PURE__ */ jsx("path", { d: "M12 7v5l3 2" })] });
27590
- case "task": return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("rect", {
27591
- x: "4",
27592
- y: "4",
27593
- width: "16",
27594
- height: "16",
27595
- rx: "3"
27596
- }), /* @__PURE__ */ jsx("path", { d: "m9 12 2 2 4-5" })] });
27597
- case "trigger": return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("path", { d: "M13 2 5 14h6l-1 8 8-12h-6z" }) });
27598
- case "trash": return /* @__PURE__ */ jsxs(Fragment$1, { children: [
27599
- /* @__PURE__ */ jsx("path", { d: "M4 7h16" }),
27600
- /* @__PURE__ */ jsx("path", { d: "M9 7V4h6v3" }),
27601
- /* @__PURE__ */ jsx("path", { d: "m6 7 1 13h10l1-13" }),
27602
- /* @__PURE__ */ jsx("path", { d: "M10 11v5M14 11v5" })
27603
- ] });
27604
- }
27605
- }
27606
- function Icon({ name, size = 18, ...props }) {
27607
- if (name === "outputs") return /* @__PURE__ */ jsx(LogOut, {
27608
- "aria-hidden": "true",
27609
- size,
27610
- strokeWidth: 1.5,
27611
- ...props
27612
- });
27613
- if (name === "decision") return /* @__PURE__ */ jsx(BrainCircuit, {
27614
- "aria-hidden": "true",
27615
- size,
27616
- strokeWidth: 1.5,
27617
- ...props
27618
- });
27619
- if (name === "comment") return /* @__PURE__ */ jsx(StickyNote, {
27620
- "aria-hidden": "true",
27621
- size,
27622
- strokeWidth: 1.5,
27623
- ...props
27624
- });
27625
- if (name === "flow") return /* @__PURE__ */ jsx(Network, {
27626
- "aria-hidden": "true",
27627
- size,
27628
- strokeWidth: 1.5,
27629
- ...props
27630
- });
27631
- return /* @__PURE__ */ jsx("svg", {
27632
- "aria-hidden": "true",
27633
- fill: "none",
27634
- height: size,
27635
- viewBox: "0 0 24 24",
27636
- width: size,
27637
- ...props,
27638
- children: /* @__PURE__ */ jsx("g", {
27639
- stroke: "currentColor",
27640
- strokeLinecap: "round",
27641
- strokeLinejoin: "round",
27642
- strokeWidth: "1.7",
27643
- children: glyph(name)
27644
- })
27645
- });
27646
- }
27647
- //#endregion
27648
- export { decodeRevisionContent as $, FocusGuard as $n, escapeKey as $r, useAnchoredPopupScrollLock as $t, variableInputCompatible as A, EMPTY_ARRAY as Ai, useFocus as An, activeElement as Ar, SelectItem as At, upgradeManualTrigger as B, useIsoLayoutEffect as Bi, useDismiss as Bn, createLucideIcon as Br, ARROW_LEFT as Bt, FieldDescription as C, useControlled as Ci, safePolygon as Cn, getGridNavigatedIndex as Cr, union as Ct, comparePorts as D, cva as Di, useInteractions as Dn, isListIndexDisabled as Dr, SelectChevron as Dt, FieldLabel as E, cn as Ei, useListNavigation as En, isIndexOutOfListBounds as Er, Select as Et, nextNodeName as F, useButton as Fi, PopupTriggerMap as Fn, isMac as Fr, IndexGuessBehavior as Ft, mapConditionSources as G, isElement as Gi, useFloatingNodeId as Gn, transitionStatusMapping as Gr, HORIZONTAL_KEYS as Gt, clearConditionBindings as H, useStableCallback as Hi, FloatingFocusManager as Hn, useOpenChangeComplete as Hr, ARROW_UP as Ht, nodeNameIssue as I, CompositeRootContext as Ii, useImplicitActiveTrigger as In, ownerDocument as Ir, useCompositeListItem as It, operatorsForType as J, FloatingTreeStore as Jn, createChangeEventDetails as Jr, VERTICAL_KEYS as Jt, nodeInputMappings as K, isHTMLElement as Ki, useFloatingParentNodeId as Kn, useOnMount as Kr, HORIZONTAL_KEYS_WITH_EXTRA_KEYS as Kt, normalizeNodeName as L, useCompositeRootContext as Li, useOpenStateTransitions as Ln, useLabelableId as Lr, ALL_KEYS as Lt, applyFlowChanges as M, NOOP as Mi, useFloatingRootContext as Mn, getTarget as Mr, SelectTrigger as Mt, isSchemaKeyword as N, warn as Ni, createInitialPopupStoreState as Nn, isAndroid as Nr, SelectValue as Nt, matchesSchema as O, clsx as Oi, useHoverReferenceInteraction as On, stopEvent as Or, SelectContent as Ot, isTriggerNode as P, useMergedRefs as Pi, popupStoreSelectors as Pn, isFirefox as Pr, Separator as Pt, authoringDefinitionSchemas as Q, POPUP_COLLISION_AVOIDANCE as Qn, closePress as Qr, useToolbarRootContext as Qt, portsByHandle as R, formatErrorMessage as Ri, useTriggerDataForwarding as Rn, ChevronDown as Rr, ARROW_DOWN as Rt, Field as S, visuallyHiddenInput as Si, selectedValueIncludes as Sn, getGridCellIndices as Sr, string as St, FieldGroup as T, buttonVariants as Ti, useRole as Tn, getMinListIndex as Tr, dequal as Tt, comparisonIssue as U, useRefWithInit as Ui, FloatingNode as Un, useAnimationsFinished as Ur, COMPOSITE_KEYS as Ut, upgradeRevisionContent as V, SafeReact as Vi, useClick as Vn, useTransitionStatus as Vr, ARROW_RIGHT as Vt, conditionInputPorts as W, getParentNode as Wi, FloatingTree as Wn, TransitionStatusDataAttributes as Wr, HOME as Wt, unaryOperator as X, CLICK_TRIGGER_IDENTIFIER as Xn, cancelOpen as Xr, isNativeInput as Xt, otherwiseOutput as Y, FloatingPortal as Yn, createGenericEventDetails as Yr, VERTICAL_KEYS_WITH_EXTRA_KEYS as Yt, valueType as Z, DROPDOWN_COLLISION_AVOIDANCE as Zn, clearPress as Zr, scrollIntoViewIfNeeded as Zt, TooltipPositioner as _, useBaseUiId as _i, stringifyAsValue as _n, getTabbableBeforeElement as _r, literal as _t, DialogDescription as a, itemPress as ai, useDirection as an, fastComponentRef as ar, decisionQuestionIssues as at, TooltipRoot as b, fieldValidityMapping as bi, findItemIndex as bn, findNonDisabledListIndex as br, record$1 as bt, DialogTitle as c, outsidePress as ci, getPseudoElementBounds as cn, createSelector as cr, limitDecisionQuestions as ct, TooltipContent as d, triggerHover as di, triggerOpenStateMapping as dn, Label as dr, array as dt, focusOut as ei, usePositioner as en, addEventListener as er, webhookMethods as et, TooltipProvider as f, triggerPress as fi, resolveAriaLabelledBy as fn, Input as fr, boolean as ft, TooltipPopup as g, useFieldRootContext as gi, stringifyAsLabel as gn, getTabbableAfterElement as gr, lazy$1 as gt, TooltipArrow as h, useRegisterFieldControl as hi, isGroupedItems as hn, getNextTabbable as hr, json$1 as ht, DialogContent as i, inputPress as ii, adaptiveOrigin as in, fastComponent as ir, decisionModel as it, FlowChangeError as j, EMPTY_OBJECT as ji, useSyncedFloatingRootContext as jn, contains as jr, SelectSeparator as jt, schemaObject as k, useRenderElement as ki, useHoverFloatingInteraction as kn, isInteractiveElement as kr, SelectGroup as kt, DialogTrigger as l, siblingOpen as li, popupStateMapping as ln, useValueAsRef as lr, format as lt, createTooltipHandle as m, useFormContext as mi, hasNullItemLabel as mn, useTimeout as mr, int as mt, Dialog as n, inputChange as ni, InternalBackdrop as nn, Store as nr, checkJsonDepth as nt, DialogFooter as o, listNavigation as oi, CompositeList as on, require_with_selector as or, decisionTask as ot, TooltipTrigger as p, useLabelableContext as pi, useOpenInteractionType as pn, Timeout as pr, discriminatedUnion as pt, operandHandle as q, isLastTraversableNode as qi, useFloatingTree as qn, useValueChanged as qr, MODIFIER_KEYS as qt, DialogClose as r, inputClear as ri, useAnchorPositioning as rn, useStore as rr, decisionLimits as rt, DialogHeader as s, none as si, inertValue as sn, require_builtin_esm_external_require_react as sr, defaultDecisionQuestion as st, Icon as t, imperativeAction as ti, getDisabledMountTransitionStyles as tn, ReactStore as tr, webhookSupportsBody as tt, Tooltip as u, triggerFocus as ui, pressableTriggerOpenStateMapping as un, useOnFirstRender as ur, _enum as ut, TooltipPortal as v, useId$1 as vi, compareItemEquality as vn, isOutsideEvent as vr, number as vt, FieldError as w, Button as wi, useTypeahead as wn, getMaxListIndex as wr, unknown as wt, Spinner as x, visuallyHidden as xi, removeItem as xn, getGridCellIndexOfCorner as xr, strictObject as xt, TooltipTrigger$1 as y, DEFAULT_FIELD_STATE_ATTRIBUTES as yi, defaultItemEquality as yn, createGridCellMap as yr, object as yt, resourceNameIssue as z, mergeProps$1 as zi, useTriggerRegistration as zn, Check as zr, ARROW_KEYS as zt };
27649
+ export { decodeRevisionContent as $, FocusGuard as $n, escapeKey as $r, useAnchoredPopupScrollLock as $t, variableInputCompatible as A, EMPTY_ARRAY as Ai, useFocus as An, activeElement as Ar, SelectItem as At, upgradeManualTrigger as B, useIsoLayoutEffect as Bi, useDismiss as Bn, createLucideIcon as Br, ARROW_LEFT as Bt, FieldDescription as C, useControlled as Ci, safePolygon as Cn, getGridNavigatedIndex as Cr, union as Ct, comparePorts as D, cva as Di, useInteractions as Dn, isListIndexDisabled as Dr, SelectChevron as Dt, FieldLabel as E, cn as Ei, useListNavigation as En, isIndexOutOfListBounds as Er, Select as Et, nextNodeName as F, useButton as Fi, PopupTriggerMap as Fn, isMac as Fr, IndexGuessBehavior as Ft, mapConditionSources as G, isElement as Gi, useFloatingNodeId as Gn, transitionStatusMapping as Gr, HORIZONTAL_KEYS as Gt, clearConditionBindings as H, useStableCallback as Hi, FloatingFocusManager as Hn, useOpenChangeComplete as Hr, ARROW_UP as Ht, nodeNameIssue as I, CompositeRootContext as Ii, useImplicitActiveTrigger as In, ownerDocument as Ir, useCompositeListItem as It, operatorsForType as J, FloatingTreeStore as Jn, createChangeEventDetails as Jr, VERTICAL_KEYS as Jt, nodeInputMappings as K, isHTMLElement as Ki, useFloatingParentNodeId as Kn, useOnMount as Kr, HORIZONTAL_KEYS_WITH_EXTRA_KEYS as Kt, normalizeNodeName as L, useCompositeRootContext as Li, useOpenStateTransitions as Ln, useLabelableId as Lr, ALL_KEYS as Lt, applyFlowChanges as M, NOOP as Mi, useFloatingRootContext as Mn, getTarget as Mr, SelectTrigger as Mt, isSchemaKeyword as N, warn as Ni, createInitialPopupStoreState as Nn, isAndroid as Nr, SelectValue as Nt, matchesSchema as O, clsx as Oi, useHoverReferenceInteraction as On, stopEvent as Or, SelectContent as Ot, isTriggerNode as P, useMergedRefs as Pi, popupStoreSelectors as Pn, isFirefox as Pr, Separator as Pt, authoringDefinitionSchemas as Q, POPUP_COLLISION_AVOIDANCE as Qn, closePress as Qr, useToolbarRootContext as Qt, portsByHandle as R, formatErrorMessage as Ri, useTriggerDataForwarding as Rn, ChevronDown as Rr, ARROW_DOWN as Rt, Field as S, visuallyHiddenInput as Si, selectedValueIncludes as Sn, getGridCellIndices as Sr, string as St, FieldGroup as T, buttonVariants as Ti, useRole as Tn, getMinListIndex as Tr, dequal as Tt, comparisonIssue as U, useRefWithInit as Ui, FloatingNode as Un, useAnimationsFinished as Ur, COMPOSITE_KEYS as Ut, upgradeRevisionContent as V, SafeReact as Vi, useClick as Vn, useTransitionStatus as Vr, ARROW_RIGHT as Vt, conditionInputPorts as W, getParentNode as Wi, FloatingTree as Wn, TransitionStatusDataAttributes as Wr, HOME as Wt, unaryOperator as X, CLICK_TRIGGER_IDENTIFIER as Xn, cancelOpen as Xr, isNativeInput as Xt, otherwiseOutput as Y, FloatingPortal as Yn, createGenericEventDetails as Yr, VERTICAL_KEYS_WITH_EXTRA_KEYS as Yt, valueType as Z, DROPDOWN_COLLISION_AVOIDANCE as Zn, clearPress as Zr, scrollIntoViewIfNeeded as Zt, TooltipPositioner as _, useBaseUiId as _i, stringifyAsValue as _n, getTabbableBeforeElement as _r, literal as _t, DialogFooter as a, itemPress as ai, useDirection as an, fastComponentRef as ar, decisionQuestionIssues as at, TooltipRoot as b, fieldValidityMapping as bi, findItemIndex as bn, findNonDisabledListIndex as br, record$1 as bt, DialogTrigger as c, outsidePress as ci, getPseudoElementBounds as cn, createSelector as cr, limitDecisionQuestions as ct, TooltipContent as d, triggerHover as di, triggerOpenStateMapping as dn, Label as dr, array as dt, focusOut as ei, usePositioner as en, addEventListener as er, webhookMethods as et, TooltipProvider as f, triggerPress as fi, resolveAriaLabelledBy as fn, Input as fr, boolean as ft, TooltipPopup as g, useFieldRootContext as gi, stringifyAsLabel as gn, getTabbableAfterElement as gr, lazy$1 as gt, TooltipArrow as h, useRegisterFieldControl as hi, isGroupedItems as hn, getNextTabbable as hr, json$1 as ht, DialogDescription as i, inputPress as ii, adaptiveOrigin as in, fastComponent as ir, decisionModel as it, FlowChangeError as j, EMPTY_OBJECT as ji, useSyncedFloatingRootContext as jn, contains as jr, SelectSeparator as jt, schemaObject as k, useRenderElement as ki, useHoverFloatingInteraction as kn, isInteractiveElement as kr, SelectGroup as kt, Icon as l, siblingOpen as li, popupStateMapping as ln, useValueAsRef as lr, format as lt, createTooltipHandle as m, useFormContext as mi, hasNullItemLabel as mn, useTimeout as mr, int as mt, DialogClose as n, inputChange as ni, InternalBackdrop as nn, Store as nr, checkJsonDepth as nt, DialogHeader as o, listNavigation as oi, CompositeList as on, require_with_selector as or, decisionTask as ot, TooltipTrigger as p, useLabelableContext as pi, useOpenInteractionType as pn, Timeout as pr, discriminatedUnion as pt, operandHandle as q, isLastTraversableNode as qi, useFloatingTree as qn, useValueChanged as qr, MODIFIER_KEYS as qt, DialogContent as r, inputClear as ri, useAnchorPositioning as rn, useStore as rr, decisionLimits as rt, DialogTitle as s, none as si, inertValue as sn, require_builtin_esm_external_require_react as sr, defaultDecisionQuestion as st, Dialog as t, imperativeAction as ti, getDisabledMountTransitionStyles as tn, ReactStore as tr, webhookSupportsBody as tt, Tooltip as u, triggerFocus as ui, pressableTriggerOpenStateMapping as un, useOnFirstRender as ur, _enum as ut, TooltipPortal as v, useId$1 as vi, compareItemEquality as vn, isOutsideEvent as vr, number as vt, FieldError as w, Button as wi, useTypeahead as wn, getMaxListIndex as wr, unknown as wt, Spinner as x, visuallyHidden as xi, removeItem as xn, getGridCellIndexOfCorner as xr, strictObject as xt, TooltipTrigger$1 as y, DEFAULT_FIELD_STATE_ATTRIBUTES as yi, defaultItemEquality as yn, createGridCellMap as yr, object as yt, resourceNameIssue as z, mergeProps$1 as zi, useTriggerRegistration as zn, Check as zr, ARROW_KEYS as zt };