@mindlogic-ai/logician-ui 3.1.0-alpha.7 → 3.1.0-alpha.9

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.
@@ -1,3 +1,3 @@
1
1
  import { InfoSprinkleProps } from './InfoSprinkle.types';
2
- export declare const InfoSprinkle: ({ children, iconButtonProps, contentProps, baseFontSize, ...rest }: InfoSprinkleProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const InfoSprinkle: ({ children, iconButtonProps, contentProps, baseFontSize, open: openProp, defaultOpen, onOpenChange, ...rest }: InfoSprinkleProps) => import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=InfoSprinkle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InfoSprinkle.d.ts","sourceRoot":"","sources":["../../../src/components/InfoSprinkle/InfoSprinkle.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,YAAY,GAAI,oEAM1B,iBAAiB,4CAmCnB,CAAC"}
1
+ {"version":3,"file":"InfoSprinkle.d.ts","sourceRoot":"","sources":["../../../src/components/InfoSprinkle/InfoSprinkle.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,YAAY,GAAI,+GAS1B,iBAAiB,4CA4DnB,CAAC"}
@@ -2,14 +2,37 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
5
6
  var react = require('@chakra-ui/react');
7
+ var useHasHover = require('../../hooks/useHasHover.js');
6
8
  var index = require('../Icon/index.js');
7
9
  var IconButton = require('../IconButton/IconButton.js');
8
10
  require('../IconButton/IconButton.styles.js');
9
11
  var ScaledContext = require('../ScaledContext/ScaledContext.js');
10
12
 
11
- const InfoSprinkle = ({ children, iconButtonProps, contentProps, baseFontSize = '14px', ...rest }) => {
12
- return (jsxRuntime.jsxs(react.HoverCard.Root, { positioning: { placement: 'top' }, openDelay: 0, closeDelay: 0, lazyMount: true, ...rest, children: [jsxRuntime.jsx(react.HoverCard.Trigger, { asChild: true, children: jsxRuntime.jsx(IconButton.IconButton, { "aria-label": "Info", opacity: 0.5, transition: "opacity 0.2s", _hover: { opacity: 1, ...iconButtonProps?._hover }, ...iconButtonProps, children: jsxRuntime.jsx(index.LuInfo, { color: iconButtonProps?.color ?? 'fg.muted', boxSize: iconButtonProps?.size ?? 'xs' }) }) }), jsxRuntime.jsx(react.Portal, { children: jsxRuntime.jsx(react.HoverCard.Positioner, { children: jsxRuntime.jsxs(react.HoverCard.Content, { p: 2, ...contentProps, children: [jsxRuntime.jsx(react.HoverCard.Arrow, { children: jsxRuntime.jsx(react.HoverCard.ArrowTip, {}) }), jsxRuntime.jsx(ScaledContext.ScaledContext, { fontSize: baseFontSize, children: children })] }) }) })] }));
13
+ const InfoSprinkle = ({ children, iconButtonProps, contentProps, baseFontSize = '14px', open: openProp, defaultOpen, onOpenChange, ...rest }) => {
14
+ // HoverCard (zag-js) opens on mouse hover and on focus, but its pointer
15
+ // handlers ignore `pointerType: 'touch'`. Browsers that focus the trigger on
16
+ // tap (e.g. Android Chrome) therefore open it for free, but those that don't
17
+ // focus buttons on tap (e.g. iOS Safari) never open it. To cover both, on
18
+ // non-hover devices we open the card on tap. Closing stays with the machine's
19
+ // own dismissal (tap-outside / blur), and opening is idempotent with the
20
+ // focus-open path so it doesn't fight devices that already open on tap.
21
+ const hasHover = useHasHover.useHasHover();
22
+ const [internalOpen, setInternalOpen] = React.useState(defaultOpen ?? false);
23
+ const isControlled = openProp !== undefined;
24
+ const open = isControlled ? openProp : internalOpen;
25
+ const setOpen = (next) => {
26
+ if (!isControlled)
27
+ setInternalOpen(next);
28
+ onOpenChange?.({ open: next });
29
+ };
30
+ return (jsxRuntime.jsxs(react.HoverCard.Root, { positioning: { placement: 'top' }, openDelay: 0, closeDelay: 0, lazyMount: true, open: open, onOpenChange: (e) => setOpen(e.open), ...rest, children: [jsxRuntime.jsx(react.HoverCard.Trigger, { asChild: true, children: jsxRuntime.jsx(IconButton.IconButton, { "aria-label": "Info", opacity: 0.5, transition: "opacity 0.2s", _hover: { opacity: 1, ...iconButtonProps?._hover }, ...iconButtonProps, onClick: (e) => {
31
+ // On non-hover (touch) devices, tapping opens the card.
32
+ if (!hasHover)
33
+ setOpen(true);
34
+ iconButtonProps?.onClick?.(e);
35
+ }, children: jsxRuntime.jsx(index.LuInfo, { color: iconButtonProps?.color ?? 'fg.muted', boxSize: iconButtonProps?.size ?? 'xs' }) }) }), jsxRuntime.jsx(react.Portal, { children: jsxRuntime.jsx(react.HoverCard.Positioner, { children: jsxRuntime.jsxs(react.HoverCard.Content, { p: 2, ...contentProps, children: [jsxRuntime.jsx(react.HoverCard.Arrow, { children: jsxRuntime.jsx(react.HoverCard.ArrowTip, {}) }), jsxRuntime.jsx(ScaledContext.ScaledContext, { fontSize: baseFontSize, children: children })] }) }) })] }));
13
36
  };
14
37
 
15
38
  exports.InfoSprinkle = InfoSprinkle;
@@ -1 +1 @@
1
- {"version":3,"file":"InfoSprinkle.js","sources":["../../../src/components/InfoSprinkle/InfoSprinkle.tsx"],"sourcesContent":[null],"names":["_jsxs","HoverCard","_jsx","IconButton","LuInfo","Portal","ScaledContext"],"mappings":";;;;;;;;;;MAOa,YAAY,GAAG,CAAC,EAC3B,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GAAG,MAAM,EACrB,GAAG,IAAI,EACW,KAAI;AACtB,IAAA,QACEA,eAAA,CAACC,eAAS,CAAC,IAAI,EAAA,EACb,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EACjC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,CAAC,EACb,SAAS,EAAA,IAAA,EAAA,GACL,IAAI,EAAA,QAAA,EAAA,CAERC,cAAA,CAACD,eAAS,CAAC,OAAO,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACxBC,cAAA,CAACC,qBAAU,EAAA,EAAA,YAAA,EACE,MAAM,EACjB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAC,cAAc,EACzB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAI,eAAe,EAAE,MAAc,EAAE,EAAA,GACvD,eAAe,EAAA,QAAA,EAEnBD,eAACE,YAAM,EAAA,EACL,KAAK,EAAG,eAAe,EAAE,KAAgB,IAAI,UAAU,EACvD,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,IAAI,EAAA,CACtC,EAAA,CACS,EAAA,CACK,EACpBF,cAAA,CAACG,YAAM,EAAA,EAAA,QAAA,EACLH,cAAA,CAACD,eAAS,CAAC,UAAU,EAAA,EAAA,QAAA,EACnBD,eAAA,CAACC,eAAS,CAAC,OAAO,EAAA,EAAC,CAAC,EAAE,CAAC,EAAA,GAAM,YAAY,EAAA,QAAA,EAAA,CACvCC,cAAA,CAACD,eAAS,CAAC,KAAK,EAAA,EAAA,QAAA,EACdC,cAAA,CAACD,eAAS,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACN,EAClBC,cAAA,CAACI,2BAAa,EAAA,EAAC,QAAQ,EAAE,YAAY,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAiB,CAAA,EAAA,CAC/C,EAAA,CACC,EAAA,CAChB,CAAA,EAAA,CACM;AAErB;;;;"}
1
+ {"version":3,"file":"InfoSprinkle.js","sources":["../../../src/components/InfoSprinkle/InfoSprinkle.tsx"],"sourcesContent":[null],"names":["useHasHover","useState","_jsxs","HoverCard","_jsx","IconButton","LuInfo","Portal","ScaledContext"],"mappings":";;;;;;;;;;;;AAWO,MAAM,YAAY,GAAG,CAAC,EAC3B,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GAAG,MAAM,EACrB,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,YAAY,EACZ,GAAG,IAAI,EACW,KAAI;;;;;;;;AAQtB,IAAA,MAAM,QAAQ,GAAGA,uBAAW,EAAE;AAC9B,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAAC,WAAW,IAAI,KAAK,CAAC;AAEtE,IAAA,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS;IAC3C,MAAM,IAAI,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY;AAEnD,IAAA,MAAM,OAAO,GAAG,CAAC,IAAa,KAAI;AAChC,QAAA,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,IAAI,CAAC;QACxC,YAAY,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChC,IAAA,CAAC;AAED,IAAA,QACEC,eAAA,CAACC,eAAS,CAAC,IAAI,EAAA,EACb,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EACjC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,CAAC,EACb,SAAS,EAAA,IAAA,EACT,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAA,GAChC,IAAI,EAAA,QAAA,EAAA,CAERC,eAACD,eAAS,CAAC,OAAO,EAAA,EAAC,OAAO,kBACxBC,cAAA,CAACC,qBAAU,EAAA,EAAA,YAAA,EACE,MAAM,EACjB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAC,cAAc,EACzB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAI,eAAe,EAAE,MAAc,EAAE,EAAA,GACvD,eAAe,EACnB,OAAO,EAAE,CAAC,CAAC,KAAI;;AAEb,wBAAA,IAAI,CAAC,QAAQ;4BAAE,OAAO,CAAC,IAAI,CAAC;AAC5B,wBAAA,eAAe,EAAE,OAAO,GAAG,CAAC,CAAC;AAC/B,oBAAA,CAAC,EAAA,QAAA,EAEDD,cAAA,CAACE,YAAM,EAAA,EACL,KAAK,EAAG,eAAe,EAAE,KAAgB,IAAI,UAAU,EACvD,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,IAAI,EAAA,CACtC,EAAA,CACS,EAAA,CACK,EACpBF,cAAA,CAACG,YAAM,EAAA,EAAA,QAAA,EACLH,cAAA,CAACD,eAAS,CAAC,UAAU,EAAA,EAAA,QAAA,EACnBD,gBAACC,eAAS,CAAC,OAAO,EAAA,EAAC,CAAC,EAAE,CAAC,EAAA,GAAM,YAAY,EAAA,QAAA,EAAA,CACvCC,cAAA,CAACD,eAAS,CAAC,KAAK,EAAA,EAAA,QAAA,EACdC,cAAA,CAACD,eAAS,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACN,EAClBC,cAAA,CAACI,2BAAa,EAAA,EAAC,QAAQ,EAAE,YAAY,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAiB,CAAA,EAAA,CAC/C,EAAA,CACC,EAAA,CAChB,CAAA,EAAA,CACM;AAErB;;;;"}
@@ -1,13 +1,36 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useState } from 'react';
3
4
  import { HoverCard, Portal } from '@chakra-ui/react';
5
+ import { useHasHover } from '../../hooks/useHasHover.mjs';
4
6
  import { LuInfo } from '../Icon/index.mjs';
5
7
  import { IconButton } from '../IconButton/IconButton.mjs';
6
8
  import '../IconButton/IconButton.styles.mjs';
7
9
  import { ScaledContext } from '../ScaledContext/ScaledContext.mjs';
8
10
 
9
- const InfoSprinkle = ({ children, iconButtonProps, contentProps, baseFontSize = '14px', ...rest }) => {
10
- return (jsxs(HoverCard.Root, { positioning: { placement: 'top' }, openDelay: 0, closeDelay: 0, lazyMount: true, ...rest, children: [jsx(HoverCard.Trigger, { asChild: true, children: jsx(IconButton, { "aria-label": "Info", opacity: 0.5, transition: "opacity 0.2s", _hover: { opacity: 1, ...iconButtonProps?._hover }, ...iconButtonProps, children: jsx(LuInfo, { color: iconButtonProps?.color ?? 'fg.muted', boxSize: iconButtonProps?.size ?? 'xs' }) }) }), jsx(Portal, { children: jsx(HoverCard.Positioner, { children: jsxs(HoverCard.Content, { p: 2, ...contentProps, children: [jsx(HoverCard.Arrow, { children: jsx(HoverCard.ArrowTip, {}) }), jsx(ScaledContext, { fontSize: baseFontSize, children: children })] }) }) })] }));
11
+ const InfoSprinkle = ({ children, iconButtonProps, contentProps, baseFontSize = '14px', open: openProp, defaultOpen, onOpenChange, ...rest }) => {
12
+ // HoverCard (zag-js) opens on mouse hover and on focus, but its pointer
13
+ // handlers ignore `pointerType: 'touch'`. Browsers that focus the trigger on
14
+ // tap (e.g. Android Chrome) therefore open it for free, but those that don't
15
+ // focus buttons on tap (e.g. iOS Safari) never open it. To cover both, on
16
+ // non-hover devices we open the card on tap. Closing stays with the machine's
17
+ // own dismissal (tap-outside / blur), and opening is idempotent with the
18
+ // focus-open path so it doesn't fight devices that already open on tap.
19
+ const hasHover = useHasHover();
20
+ const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);
21
+ const isControlled = openProp !== undefined;
22
+ const open = isControlled ? openProp : internalOpen;
23
+ const setOpen = (next) => {
24
+ if (!isControlled)
25
+ setInternalOpen(next);
26
+ onOpenChange?.({ open: next });
27
+ };
28
+ return (jsxs(HoverCard.Root, { positioning: { placement: 'top' }, openDelay: 0, closeDelay: 0, lazyMount: true, open: open, onOpenChange: (e) => setOpen(e.open), ...rest, children: [jsx(HoverCard.Trigger, { asChild: true, children: jsx(IconButton, { "aria-label": "Info", opacity: 0.5, transition: "opacity 0.2s", _hover: { opacity: 1, ...iconButtonProps?._hover }, ...iconButtonProps, onClick: (e) => {
29
+ // On non-hover (touch) devices, tapping opens the card.
30
+ if (!hasHover)
31
+ setOpen(true);
32
+ iconButtonProps?.onClick?.(e);
33
+ }, children: jsx(LuInfo, { color: iconButtonProps?.color ?? 'fg.muted', boxSize: iconButtonProps?.size ?? 'xs' }) }) }), jsx(Portal, { children: jsx(HoverCard.Positioner, { children: jsxs(HoverCard.Content, { p: 2, ...contentProps, children: [jsx(HoverCard.Arrow, { children: jsx(HoverCard.ArrowTip, {}) }), jsx(ScaledContext, { fontSize: baseFontSize, children: children })] }) }) })] }));
11
34
  };
12
35
 
13
36
  export { InfoSprinkle };
@@ -1 +1 @@
1
- {"version":3,"file":"InfoSprinkle.mjs","sources":["../../../src/components/InfoSprinkle/InfoSprinkle.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;MAOa,YAAY,GAAG,CAAC,EAC3B,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GAAG,MAAM,EACrB,GAAG,IAAI,EACW,KAAI;AACtB,IAAA,QACEA,IAAA,CAAC,SAAS,CAAC,IAAI,EAAA,EACb,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EACjC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,CAAC,EACb,SAAS,EAAA,IAAA,EAAA,GACL,IAAI,EAAA,QAAA,EAAA,CAERC,GAAA,CAAC,SAAS,CAAC,OAAO,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACxBA,GAAA,CAAC,UAAU,EAAA,EAAA,YAAA,EACE,MAAM,EACjB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAC,cAAc,EACzB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAI,eAAe,EAAE,MAAc,EAAE,EAAA,GACvD,eAAe,EAAA,QAAA,EAEnBA,IAAC,MAAM,EAAA,EACL,KAAK,EAAG,eAAe,EAAE,KAAgB,IAAI,UAAU,EACvD,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,IAAI,EAAA,CACtC,EAAA,CACS,EAAA,CACK,EACpBA,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EACLA,GAAA,CAAC,SAAS,CAAC,UAAU,EAAA,EAAA,QAAA,EACnBD,IAAA,CAAC,SAAS,CAAC,OAAO,EAAA,EAAC,CAAC,EAAE,CAAC,EAAA,GAAM,YAAY,EAAA,QAAA,EAAA,CACvCC,GAAA,CAAC,SAAS,CAAC,KAAK,EAAA,EAAA,QAAA,EACdA,GAAA,CAAC,SAAS,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACN,EAClBA,GAAA,CAAC,aAAa,EAAA,EAAC,QAAQ,EAAE,YAAY,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAiB,CAAA,EAAA,CAC/C,EAAA,CACC,EAAA,CAChB,CAAA,EAAA,CACM;AAErB;;;;"}
1
+ {"version":3,"file":"InfoSprinkle.mjs","sources":["../../../src/components/InfoSprinkle/InfoSprinkle.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;AAWO,MAAM,YAAY,GAAG,CAAC,EAC3B,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,GAAG,MAAM,EACrB,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,YAAY,EACZ,GAAG,IAAI,EACW,KAAI;;;;;;;;AAQtB,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC;AAEtE,IAAA,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS;IAC3C,MAAM,IAAI,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY;AAEnD,IAAA,MAAM,OAAO,GAAG,CAAC,IAAa,KAAI;AAChC,QAAA,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,IAAI,CAAC;QACxC,YAAY,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChC,IAAA,CAAC;AAED,IAAA,QACEA,IAAA,CAAC,SAAS,CAAC,IAAI,EAAA,EACb,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EACjC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,CAAC,EACb,SAAS,EAAA,IAAA,EACT,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAA,GAChC,IAAI,EAAA,QAAA,EAAA,CAERC,IAAC,SAAS,CAAC,OAAO,EAAA,EAAC,OAAO,kBACxBA,GAAA,CAAC,UAAU,EAAA,EAAA,YAAA,EACE,MAAM,EACjB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAC,cAAc,EACzB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAI,eAAe,EAAE,MAAc,EAAE,EAAA,GACvD,eAAe,EACnB,OAAO,EAAE,CAAC,CAAC,KAAI;;AAEb,wBAAA,IAAI,CAAC,QAAQ;4BAAE,OAAO,CAAC,IAAI,CAAC;AAC5B,wBAAA,eAAe,EAAE,OAAO,GAAG,CAAC,CAAC;AAC/B,oBAAA,CAAC,EAAA,QAAA,EAEDA,GAAA,CAAC,MAAM,EAAA,EACL,KAAK,EAAG,eAAe,EAAE,KAAgB,IAAI,UAAU,EACvD,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,IAAI,EAAA,CACtC,EAAA,CACS,EAAA,CACK,EACpBA,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EACLA,GAAA,CAAC,SAAS,CAAC,UAAU,EAAA,EAAA,QAAA,EACnBD,KAAC,SAAS,CAAC,OAAO,EAAA,EAAC,CAAC,EAAE,CAAC,EAAA,GAAM,YAAY,EAAA,QAAA,EAAA,CACvCC,GAAA,CAAC,SAAS,CAAC,KAAK,EAAA,EAAA,QAAA,EACdA,GAAA,CAAC,SAAS,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACN,EAClBA,GAAA,CAAC,aAAa,EAAA,EAAC,QAAQ,EAAE,YAAY,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAiB,CAAA,EAAA,CAC/C,EAAA,CACC,EAAA,CAChB,CAAA,EAAA,CACM;AAErB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MDXEditor.d.ts","sourceRoot":"","sources":["../../../src/components/MDXEditor/MDXEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,EAeL,gBAAgB,EAChB,cAAc,IAAI,eAAe,EAOlC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,SAAS,+HAqRpB,CAAC"}
1
+ {"version":3,"file":"MDXEditor.d.ts","sourceRoot":"","sources":["../../../src/components/MDXEditor/MDXEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,EAeL,gBAAgB,EAChB,cAAc,IAAI,eAAe,EAOlC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,SAAS,+HA4SpB,CAAC"}
@@ -58,6 +58,28 @@ const MDXEditor = React.forwardRef(({ containerProps, autoFocus = true, onError,
58
58
  flexShrink: 0,
59
59
  cursor: 'default',
60
60
  },
61
+ // Toolbar icons. mdxeditor colors its toolbar svgs with its own
62
+ // `--baseTextContrast` (its internal slate scale), which doesn't follow
63
+ // our color mode — in dark mode they stay near-black (#1c2024) and all
64
+ // but vanish against the dark toolbar. Flip them onto the semantic
65
+ // foreground token so they track light/dark like the editor body text.
66
+ '& .mdxeditor-toolbar svg': {
67
+ color: 'var(--chakra-colors-fg-default)',
68
+ },
69
+ // Disabled toolbar buttons (e.g. undo/redo with nothing to undo) — keep
70
+ // them dimmed but still mode-aware, instead of mdxeditor's light-only
71
+ // border color.
72
+ '& .mdxeditor-toolbar [data-disabled] svg': {
73
+ color: 'var(--chakra-colors-fg-subtle)',
74
+ },
75
+ // Hover / pressed / toggled-on backgrounds. mdxeditor paints these with
76
+ // `--baseBgActive` (its slate scale), which also doesn't track the color
77
+ // mode — in dark mode it goes light-grey, so the now-light icons sit on a
78
+ // light fill and disappear on hover and when a format is active. Flip the
79
+ // fill onto the semantic hover token so it stays mode-aware.
80
+ '& .mdxeditor-toolbar button:hover, & .mdxeditor-toolbar button[data-state="on"], & .mdxeditor-toolbar button:active': {
81
+ background: 'var(--chakra-colors-bg-muted)',
82
+ },
61
83
  // Block-type select trigger in the toolbar — mdxeditor themes it with
62
84
  // its own vars (left white), so flip it onto the semantic surface.
63
85
  '& [class*="_selectTrigger_"]': {
@@ -1 +1 @@
1
- {"version":3,"file":"MDXEditor.js","sources":["../../../src/components/MDXEditor/MDXEditor.tsx"],"sourcesContent":[null],"names":["forwardRef","useState","useToken","useRef","useImperativeHandle","_jsx","Box","Editor","headingsPlugin","linkPlugin","listsPlugin","imagePlugin","quotePlugin","thematicBreakPlugin","markdownShortcutPlugin","tablePlugin","diffSourcePlugin","toolbarPlugin","_jsxs","_Fragment","UndoRedo","Separator","BoldItalicUnderlineToggles","CodeToggle","ListsToggle","BlockTypeSelect","InsertTable","InsertThematicBreak","DiffSourceToggleWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"MDXEditor.js","sources":["../../../src/components/MDXEditor/MDXEditor.tsx"],"sourcesContent":[null],"names":["forwardRef","useState","useToken","useRef","useImperativeHandle","_jsx","Box","Editor","headingsPlugin","linkPlugin","listsPlugin","imagePlugin","quotePlugin","thematicBreakPlugin","markdownShortcutPlugin","tablePlugin","diffSourcePlugin","toolbarPlugin","_jsxs","_Fragment","UndoRedo","Separator","BoldItalicUnderlineToggles","CodeToggle","ListsToggle","BlockTypeSelect","InsertTable","InsertThematicBreak","DiffSourceToggleWrapper"],"mappings":"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"}
@@ -56,6 +56,28 @@ const MDXEditor = forwardRef(({ containerProps, autoFocus = true, onError, ...re
56
56
  flexShrink: 0,
57
57
  cursor: 'default',
58
58
  },
59
+ // Toolbar icons. mdxeditor colors its toolbar svgs with its own
60
+ // `--baseTextContrast` (its internal slate scale), which doesn't follow
61
+ // our color mode — in dark mode they stay near-black (#1c2024) and all
62
+ // but vanish against the dark toolbar. Flip them onto the semantic
63
+ // foreground token so they track light/dark like the editor body text.
64
+ '& .mdxeditor-toolbar svg': {
65
+ color: 'var(--chakra-colors-fg-default)',
66
+ },
67
+ // Disabled toolbar buttons (e.g. undo/redo with nothing to undo) — keep
68
+ // them dimmed but still mode-aware, instead of mdxeditor's light-only
69
+ // border color.
70
+ '& .mdxeditor-toolbar [data-disabled] svg': {
71
+ color: 'var(--chakra-colors-fg-subtle)',
72
+ },
73
+ // Hover / pressed / toggled-on backgrounds. mdxeditor paints these with
74
+ // `--baseBgActive` (its slate scale), which also doesn't track the color
75
+ // mode — in dark mode it goes light-grey, so the now-light icons sit on a
76
+ // light fill and disappear on hover and when a format is active. Flip the
77
+ // fill onto the semantic hover token so it stays mode-aware.
78
+ '& .mdxeditor-toolbar button:hover, & .mdxeditor-toolbar button[data-state="on"], & .mdxeditor-toolbar button:active': {
79
+ background: 'var(--chakra-colors-bg-muted)',
80
+ },
59
81
  // Block-type select trigger in the toolbar — mdxeditor themes it with
60
82
  // its own vars (left white), so flip it onto the semantic surface.
61
83
  '& [class*="_selectTrigger_"]': {
@@ -1 +1 @@
1
- {"version":3,"file":"MDXEditor.mjs","sources":["../../../src/components/MDXEditor/MDXEditor.tsx"],"sourcesContent":[null],"names":["_jsx","Editor","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"MDXEditor.mjs","sources":["../../../src/components/MDXEditor/MDXEditor.tsx"],"sourcesContent":[null],"names":["_jsx","Editor","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Returns whether the primary pointing device is capable of hovering
3
+ * (i.e. a mouse/trackpad rather than a touchscreen).
4
+ *
5
+ * Useful for components that rely on hover interactions on desktop but need a
6
+ * tap/click affordance on touch devices, where hover events never fire.
7
+ *
8
+ * Defaults to `true` so server-rendered markup matches the most common
9
+ * (desktop) case, then resolves to the real value after mount.
10
+ */
11
+ export declare const useHasHover: () => boolean;
12
+ export default useHasHover;
13
+ //# sourceMappingURL=useHasHover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHasHover.d.ts","sourceRoot":"","sources":["../../src/hooks/useHasHover.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,eAevB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var React = require('react');
7
+
8
+ /**
9
+ * Returns whether the primary pointing device is capable of hovering
10
+ * (i.e. a mouse/trackpad rather than a touchscreen).
11
+ *
12
+ * Useful for components that rely on hover interactions on desktop but need a
13
+ * tap/click affordance on touch devices, where hover events never fire.
14
+ *
15
+ * Defaults to `true` so server-rendered markup matches the most common
16
+ * (desktop) case, then resolves to the real value after mount.
17
+ */
18
+ const useHasHover = () => {
19
+ const [hasHover, setHasHover] = React.useState(true);
20
+ React.useEffect(() => {
21
+ if (typeof window === 'undefined' || !window.matchMedia)
22
+ return;
23
+ const mql = window.matchMedia('(hover: hover)');
24
+ const update = () => setHasHover(mql.matches);
25
+ update();
26
+ mql.addEventListener('change', update);
27
+ return () => mql.removeEventListener('change', update);
28
+ }, []);
29
+ return hasHover;
30
+ };
31
+
32
+ exports.default = useHasHover;
33
+ exports.useHasHover = useHasHover;
34
+ //# sourceMappingURL=useHasHover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHasHover.js","sources":["../../src/hooks/useHasHover.ts"],"sourcesContent":[null],"names":["useState","useEffect"],"mappings":";;;;;;;AAIA;;;;;;;;;AASG;AACI,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAC,IAAI,CAAC;IAE9CC,eAAS,CAAC,MAAK;QACb,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE;QAEzD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAE7C,QAAA,MAAM,EAAE;AACR,QAAA,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,OAAO,MAAM,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IACxD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AACjB;;;;;"}
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { useState, useEffect } from 'react';
3
+
4
+ /**
5
+ * Returns whether the primary pointing device is capable of hovering
6
+ * (i.e. a mouse/trackpad rather than a touchscreen).
7
+ *
8
+ * Useful for components that rely on hover interactions on desktop but need a
9
+ * tap/click affordance on touch devices, where hover events never fire.
10
+ *
11
+ * Defaults to `true` so server-rendered markup matches the most common
12
+ * (desktop) case, then resolves to the real value after mount.
13
+ */
14
+ const useHasHover = () => {
15
+ const [hasHover, setHasHover] = useState(true);
16
+ useEffect(() => {
17
+ if (typeof window === 'undefined' || !window.matchMedia)
18
+ return;
19
+ const mql = window.matchMedia('(hover: hover)');
20
+ const update = () => setHasHover(mql.matches);
21
+ update();
22
+ mql.addEventListener('change', update);
23
+ return () => mql.removeEventListener('change', update);
24
+ }, []);
25
+ return hasHover;
26
+ };
27
+
28
+ export { useHasHover as default, useHasHover };
29
+ //# sourceMappingURL=useHasHover.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHasHover.mjs","sources":["../../src/hooks/useHasHover.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;;;;AASG;AACI,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE9C,SAAS,CAAC,MAAK;QACb,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE;QAEzD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAE7C,QAAA,MAAM,EAAE;AACR,QAAA,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,OAAO,MAAM,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IACxD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AACjB;;;;"}
package/dist/index.d.ts CHANGED
@@ -61,6 +61,7 @@ export * from './components/Textarea';
61
61
  export * from './components/Toast';
62
62
  export * from './components/Tooltip';
63
63
  export { H1, H2, H3, H4, H5, Link, Subtext, Subtitle, Text, } from './components/Typography';
64
+ export { useHasHover } from './hooks/useHasHover';
64
65
  export type { LanguageContextValue } from './hooks/useLanguage';
65
66
  export { LanguageContext, useLanguage } from './hooks/useLanguage';
66
67
  export { logicianConfig, system, theme } from './theme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAGvC,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,cAAc,yBAAyB,CAAC;AAGxC,YAAY,EACV,WAAW,EACX,SAAS,IAAI,eAAe,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAG3E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,GACL,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAGvC,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,cAAc,yBAAyB,CAAC;AAGxC,YAAY,EACV,WAAW,EACX,SAAS,IAAI,eAAe,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAG3E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,GACL,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -127,6 +127,7 @@ var Link = require('./components/Typography/Link.js');
127
127
  var Subtext = require('./components/Typography/Subtext.js');
128
128
  var Subtitle = require('./components/Typography/Subtitle.js');
129
129
  var Text = require('./components/Typography/Text.js');
130
+ var useHasHover = require('./hooks/useHasHover.js');
130
131
  var useLanguage = require('./hooks/useLanguage.js');
131
132
  var index = require('./theme/index.js');
132
133
 
@@ -299,6 +300,7 @@ exports.Link = Link.Link;
299
300
  exports.Subtext = Subtext.Subtext;
300
301
  exports.Subtitle = Subtitle.Subtitle;
301
302
  exports.Text = Text.Text;
303
+ exports.useHasHover = useHasHover.useHasHover;
302
304
  exports.LanguageContext = useLanguage.LanguageContext;
303
305
  exports.useLanguage = useLanguage.useLanguage;
304
306
  exports.logicianConfig = index.logicianConfig;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.mjs CHANGED
@@ -125,6 +125,7 @@ export { Link } from './components/Typography/Link.mjs';
125
125
  export { Subtext } from './components/Typography/Subtext.mjs';
126
126
  export { Subtitle } from './components/Typography/Subtitle.mjs';
127
127
  export { Text } from './components/Typography/Text.mjs';
128
+ export { useHasHover } from './hooks/useHasHover.mjs';
128
129
  export { LanguageContext, useLanguage } from './hooks/useLanguage.mjs';
129
130
  export { logicianConfig, system, theme } from './theme/index.mjs';
130
131
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindlogic-ai/logician-ui",
3
- "version": "3.1.0-alpha.7",
3
+ "version": "3.1.0-alpha.9",
4
4
  "description": "A comprehensive React design system built on Chakra UI",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -1,5 +1,9 @@
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
1
4
  import { HoverCard, Portal } from '@chakra-ui/react';
2
5
 
6
+ import { useHasHover } from '../../hooks/useHasHover';
3
7
  import { LuInfo } from '../Icon';
4
8
  import { IconButton } from '../IconButton';
5
9
  import { ScaledContext } from '../ScaledContext';
@@ -10,14 +14,37 @@ export const InfoSprinkle = ({
10
14
  iconButtonProps,
11
15
  contentProps,
12
16
  baseFontSize = '14px',
17
+ open: openProp,
18
+ defaultOpen,
19
+ onOpenChange,
13
20
  ...rest
14
21
  }: InfoSprinkleProps) => {
22
+ // HoverCard (zag-js) opens on mouse hover and on focus, but its pointer
23
+ // handlers ignore `pointerType: 'touch'`. Browsers that focus the trigger on
24
+ // tap (e.g. Android Chrome) therefore open it for free, but those that don't
25
+ // focus buttons on tap (e.g. iOS Safari) never open it. To cover both, on
26
+ // non-hover devices we open the card on tap. Closing stays with the machine's
27
+ // own dismissal (tap-outside / blur), and opening is idempotent with the
28
+ // focus-open path so it doesn't fight devices that already open on tap.
29
+ const hasHover = useHasHover();
30
+ const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);
31
+
32
+ const isControlled = openProp !== undefined;
33
+ const open = isControlled ? openProp : internalOpen;
34
+
35
+ const setOpen = (next: boolean) => {
36
+ if (!isControlled) setInternalOpen(next);
37
+ onOpenChange?.({ open: next });
38
+ };
39
+
15
40
  return (
16
41
  <HoverCard.Root
17
42
  positioning={{ placement: 'top' }}
18
43
  openDelay={0}
19
44
  closeDelay={0}
20
45
  lazyMount
46
+ open={open}
47
+ onOpenChange={(e) => setOpen(e.open)}
21
48
  {...rest}
22
49
  >
23
50
  <HoverCard.Trigger asChild>
@@ -27,6 +54,11 @@ export const InfoSprinkle = ({
27
54
  transition="opacity 0.2s"
28
55
  _hover={{ opacity: 1, ...(iconButtonProps?._hover as any) }}
29
56
  {...iconButtonProps}
57
+ onClick={(e) => {
58
+ // On non-hover (touch) devices, tapping opens the card.
59
+ if (!hasHover) setOpen(true);
60
+ iconButtonProps?.onClick?.(e);
61
+ }}
30
62
  >
31
63
  <LuInfo
32
64
  color={(iconButtonProps?.color as string) ?? 'fg.muted'}
@@ -102,6 +102,29 @@ export const MDXEditor = forwardRef<
102
102
  flexShrink: 0,
103
103
  cursor: 'default',
104
104
  },
105
+ // Toolbar icons. mdxeditor colors its toolbar svgs with its own
106
+ // `--baseTextContrast` (its internal slate scale), which doesn't follow
107
+ // our color mode — in dark mode they stay near-black (#1c2024) and all
108
+ // but vanish against the dark toolbar. Flip them onto the semantic
109
+ // foreground token so they track light/dark like the editor body text.
110
+ '& .mdxeditor-toolbar svg': {
111
+ color: 'var(--chakra-colors-fg-default)',
112
+ },
113
+ // Disabled toolbar buttons (e.g. undo/redo with nothing to undo) — keep
114
+ // them dimmed but still mode-aware, instead of mdxeditor's light-only
115
+ // border color.
116
+ '& .mdxeditor-toolbar [data-disabled] svg': {
117
+ color: 'var(--chakra-colors-fg-subtle)',
118
+ },
119
+ // Hover / pressed / toggled-on backgrounds. mdxeditor paints these with
120
+ // `--baseBgActive` (its slate scale), which also doesn't track the color
121
+ // mode — in dark mode it goes light-grey, so the now-light icons sit on a
122
+ // light fill and disappear on hover and when a format is active. Flip the
123
+ // fill onto the semantic hover token so it stays mode-aware.
124
+ '& .mdxeditor-toolbar button:hover, & .mdxeditor-toolbar button[data-state="on"], & .mdxeditor-toolbar button:active':
125
+ {
126
+ background: 'var(--chakra-colors-bg-muted)',
127
+ },
105
128
  // Block-type select trigger in the toolbar — mdxeditor themes it with
106
129
  // its own vars (left white), so flip it onto the semantic surface.
107
130
  '& [class*="_selectTrigger_"]': {
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+
3
+ import { useEffect, useState } from 'react';
4
+
5
+ /**
6
+ * Returns whether the primary pointing device is capable of hovering
7
+ * (i.e. a mouse/trackpad rather than a touchscreen).
8
+ *
9
+ * Useful for components that rely on hover interactions on desktop but need a
10
+ * tap/click affordance on touch devices, where hover events never fire.
11
+ *
12
+ * Defaults to `true` so server-rendered markup matches the most common
13
+ * (desktop) case, then resolves to the real value after mount.
14
+ */
15
+ export const useHasHover = () => {
16
+ const [hasHover, setHasHover] = useState(true);
17
+
18
+ useEffect(() => {
19
+ if (typeof window === 'undefined' || !window.matchMedia) return;
20
+
21
+ const mql = window.matchMedia('(hover: hover)');
22
+ const update = () => setHasHover(mql.matches);
23
+
24
+ update();
25
+ mql.addEventListener('change', update);
26
+ return () => mql.removeEventListener('change', update);
27
+ }, []);
28
+
29
+ return hasHover;
30
+ };
31
+
32
+ export default useHasHover;
package/src/index.ts CHANGED
@@ -102,6 +102,7 @@ export {
102
102
  } from './components/Typography';
103
103
 
104
104
  // Hooks
105
+ export { useHasHover } from './hooks/useHasHover';
105
106
  export type { LanguageContextValue } from './hooks/useLanguage';
106
107
  export { LanguageContext, useLanguage } from './hooks/useLanguage';
107
108