@recursica/mantine-adapter 0.27.0 → 0.29.0

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/CHANGELOG.md +26 -0
  2. package/dist/mantine-adapter.cjs +11 -1
  3. package/dist/mantine-adapter.cjs.map +1 -1
  4. package/dist/mantine-adapter.css +1 -1
  5. package/dist/mantine-adapter.js +2036 -1851
  6. package/dist/mantine-adapter.js.map +1 -1
  7. package/dist/src/components/Panel/Panel.d.ts +1 -1
  8. package/dist/src/components/Popover/Popover.d.ts +3 -1
  9. package/dist/src/components/Tree/Tree.d.ts +9 -0
  10. package/dist/src/components/Tree/index.d.ts +1 -0
  11. package/dist/src/components/index.d.ts +2 -0
  12. package/dist/src/index.d.ts +153 -1
  13. package/package.json +2 -2
  14. package/src/OverStyling.tsx +67 -3
  15. package/src/components/AutoComplete/AutoComplete.tsx +2 -2
  16. package/src/components/Button/Button.module.css +42 -0
  17. package/src/components/Card/Card.tsx +3 -1
  18. package/src/components/DatePicker/DatePicker.stories.tsx +0 -1
  19. package/src/components/Dropdown/Dropdown.stories.tsx +0 -6
  20. package/src/components/Dropdown/Dropdown.tsx +1 -1
  21. package/src/components/Link/Link.tsx +1 -1
  22. package/src/components/NumberInput/NumberInput.stories.tsx +0 -2
  23. package/src/components/Panel/Panel.tsx +1 -1
  24. package/src/components/Popover/Popover.tsx +8 -3
  25. package/src/components/SegmentedControl/SegmentedControl.module.css +1 -0
  26. package/src/components/Slider/Slider.module.css +29 -0
  27. package/src/components/Table/Table.module.css +387 -2
  28. package/src/components/Table/Table.tsx +1 -1
  29. package/src/components/Tabs/Tabs.module.css +2 -0
  30. package/src/components/Toast/Toast.module.css +6 -1
  31. package/src/components/Tree/Tree.module.css +43 -0
  32. package/src/components/Tree/Tree.stories.tsx +14 -0
  33. package/src/components/Tree/Tree.tsx +24 -0
  34. package/src/components/Tree/index.ts +1 -0
  35. package/src/components/index.ts +2 -0
  36. package/src/index.ts +157 -1
@@ -4,7 +4,7 @@ import { RecursicaPanelProps as BaseRecursicaPanelProps } from '@recursica/adapt
4
4
  /**
5
5
  * Recursica Panel root props. Extends Mantine Drawer.
6
6
  */
7
- export interface RecursicaPanelProps extends Omit<MantineDrawerProps, "size" | "styles" | "classNames" | "style" | "position">, BaseRecursicaPanelProps {
7
+ export interface RecursicaPanelProps extends Omit<MantineDrawerProps, "size" | "styles" | "classNames" | "style" | "position" | "opened">, BaseRecursicaPanelProps {
8
8
  }
9
9
  export type PanelProps = RecursicaOverStyled<RecursicaPanelProps>;
10
10
  /**
@@ -17,7 +17,9 @@ import { RecursicaPopoverProps } from '@recursica/adapter-common';
17
17
  * </Popover>
18
18
  * ```
19
19
  */
20
- export type PopoverProps = RecursicaOverStyled<MantinePopoverProps & RecursicaPopoverProps>;
20
+ export type PopoverProps = Omit<RecursicaOverStyled<Omit<MantinePopoverProps, "position"> & RecursicaPopoverProps>, "position"> & {
21
+ position?: MantinePopoverProps["position"];
22
+ };
21
23
  declare const PopoverBase: {
22
24
  ({ overStyled, withBeak, ...rest }: PopoverProps): import("react/jsx-runtime").JSX.Element;
23
25
  displayName: string;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { RecursicaOverStyled } from '../../utils/filterStylingProps';
3
+ export interface TreeProps extends React.ComponentPropsWithoutRef<"div"> {
4
+ overStyled?: boolean;
5
+ }
6
+ /**
7
+ * Placeholder component for Tree (Coming Soon).
8
+ */
9
+ export declare const Tree: React.ForwardRefExoticComponent<RecursicaOverStyled<TreeProps> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export * from './Tree';
@@ -42,7 +42,9 @@ export * from './TextArea/TextArea';
42
42
  export * from './TextField/TextField';
43
43
  export * from './TimePicker/TimePicker';
44
44
  export * from './Timeline/Timeline';
45
+ export * from './Timeline/TimelineItem';
45
46
  export * from './Title/Title';
46
47
  export * from './Toast';
47
48
  export * from './Tooltip/Tooltip';
48
49
  export * from './TransferList/TransferList';
50
+ export * from './Tree';
@@ -1,3 +1,155 @@
1
- export * from './components';
1
+ import * as rawComponents from "./components";
2
2
  export * from '@recursica/adapter-common';
3
+ export declare const Flex: (<C = "div">(props: import('@mantine/core').PolymorphicComponentProps<C, rawComponents.FlexProps>) => React.ReactElement) & Omit<import('react').FunctionComponent<(Omit<import('@mantine/core').FlexProps & import('@recursica/adapter-common').RecursicaFlexProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
4
+ m?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
5
+ mx?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
6
+ my?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
7
+ mt?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
8
+ mb?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
9
+ ml?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
10
+ mr?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
11
+ gap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
12
+ rowGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
13
+ columnGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
14
+ } & {
15
+ component?: any;
16
+ } & Omit<Omit<any, "ref">, "className" | "classNames" | "style" | "styles" | "vars" | "p" | "px" | "py" | "pt" | "pb" | "pl" | "pr" | "bg" | "c" | "opacity" | "ff" | "fz" | "fw" | "lts" | "ta" | "lh" | "fs" | "tt" | "td" | "bd" | "w" | "miw" | "maw" | "h" | "mih" | "mah" | "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap" | "top" | "left" | "bottom" | "right" | "key" | "defaultValue" | "onChange" | "variant" | "slot" | "title" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "content" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "__vars" | "__size" | "hiddenFrom" | "visibleFrom" | "lightHidden" | "darkHidden" | "mod" | "ms" | "me" | "ps" | "pe" | "bdrs" | "bgsz" | "bgp" | "bgr" | "bga" | "pos" | "inset" | "display" | "flex" | "unstyled" | "attributes" | "justify" | "component" | "wrap" | "align" | "direction"> & {
17
+ ref?: any;
18
+ renderRoot?: (props: any) => any;
19
+ }) | (Omit<import('@mantine/core').FlexProps & import('@recursica/adapter-common').RecursicaFlexProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
20
+ m?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
21
+ mx?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
22
+ my?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
23
+ mt?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
24
+ mb?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
25
+ ml?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
26
+ mr?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
27
+ gap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
28
+ rowGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
29
+ columnGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
30
+ } & {
31
+ component: React.ElementType;
32
+ renderRoot?: (props: Record<string, any>) => any;
33
+ })>, never> & Record<string, never>;
34
+ export declare const Group: import('react').ForwardRefExoticComponent<Omit<import('@mantine/core').GroupProps & import('@recursica/adapter-common').RecursicaGroupProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
35
+ m?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
36
+ mx?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
37
+ my?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
38
+ mt?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
39
+ mb?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
40
+ ml?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
41
+ mr?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
42
+ gap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
43
+ rowGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
44
+ columnGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
45
+ } & import('react').RefAttributes<HTMLDivElement>>;
46
+ export declare const Stack: (<C = "div">(props: import('@mantine/core').PolymorphicComponentProps<C, rawComponents.StackProps>) => React.ReactElement) & Omit<import('react').FunctionComponent<(Omit<import('@mantine/core').StackProps & import('@recursica/adapter-common').RecursicaStackProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
47
+ m?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
48
+ mx?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
49
+ my?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
50
+ mt?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
51
+ mb?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
52
+ ml?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
53
+ mr?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
54
+ gap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
55
+ rowGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
56
+ columnGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
57
+ } & {
58
+ component?: any;
59
+ } & Omit<Omit<any, "ref">, "className" | "classNames" | "style" | "styles" | "vars" | "p" | "px" | "py" | "pt" | "pb" | "pl" | "pr" | "bg" | "c" | "opacity" | "ff" | "fz" | "fw" | "lts" | "ta" | "lh" | "fs" | "tt" | "td" | "bd" | "w" | "miw" | "maw" | "h" | "mih" | "mah" | "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap" | "top" | "left" | "bottom" | "right" | "key" | "defaultValue" | "onChange" | "variant" | "slot" | "title" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "content" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "__vars" | "__size" | "hiddenFrom" | "visibleFrom" | "lightHidden" | "darkHidden" | "mod" | "ms" | "me" | "ps" | "pe" | "bdrs" | "bgsz" | "bgp" | "bgr" | "bga" | "pos" | "inset" | "display" | "flex" | "unstyled" | "attributes" | "justify" | "component" | "align"> & {
60
+ ref?: any;
61
+ renderRoot?: (props: any) => any;
62
+ }) | (Omit<import('@mantine/core').StackProps & import('@recursica/adapter-common').RecursicaStackProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
63
+ m?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
64
+ mx?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
65
+ my?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
66
+ mt?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
67
+ mb?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
68
+ ml?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
69
+ mr?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
70
+ gap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
71
+ rowGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
72
+ columnGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
73
+ } & {
74
+ component: React.ElementType;
75
+ renderRoot?: (props: Record<string, any>) => any;
76
+ })>, never> & Record<string, never>;
77
+ export declare const Container: import('react').ForwardRefExoticComponent<Omit<Omit<import('@mantine/core').ContainerProps, "size"> & import('@recursica/adapter-common').RecursicaContainerProps, "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap"> & {
78
+ m?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
79
+ mx?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
80
+ my?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
81
+ mt?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
82
+ mb?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
83
+ ml?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
84
+ mr?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
85
+ gap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
86
+ rowGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
87
+ columnGap?: string | number | import('@recursica/adapter-common').RecursicaSpacing;
88
+ } & import('react').RefAttributes<HTMLDivElement>>;
89
+ export declare const Link: (<C = "a">(props: import('@mantine/core').PolymorphicComponentProps<C, rawComponents.LinkProps>) => React.ReactElement) & Omit<import('react').FunctionComponent<((rawComponents.LinkProps & {
90
+ component?: any;
91
+ }) & Omit<Omit<any, "ref">, "className" | "classNames" | "style" | "styles" | "vars" | "p" | "px" | "py" | "pt" | "pb" | "pl" | "pr" | "bg" | "c" | "opacity" | "ff" | "fz" | "fw" | "lts" | "ta" | "lh" | "fs" | "tt" | "td" | "bd" | "w" | "miw" | "maw" | "h" | "mih" | "mah" | "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap" | "top" | "left" | "bottom" | "right" | "variant" | "color" | "children" | "__vars" | "__size" | "hiddenFrom" | "visibleFrom" | "lightHidden" | "darkHidden" | "mod" | "ms" | "me" | "ps" | "pe" | "bdrs" | "bgsz" | "bgp" | "bgr" | "bga" | "pos" | "inset" | "display" | "flex" | "unstyled" | "attributes" | "overStyled" | "icon" | "inherit" | "inline" | "size" | "__staticSelector" | "component" | "gradient" | "lineClamp" | "truncate"> & {
92
+ ref?: any;
93
+ renderRoot?: (props: any) => any;
94
+ }) | (rawComponents.LinkProps & {
95
+ component: React.ElementType;
96
+ renderRoot?: (props: Record<string, any>) => any;
97
+ })>, never> & Record<string, never>;
98
+ export declare const Text: (<C = "p">(props: import('@mantine/core').PolymorphicComponentProps<C, rawComponents.TextProps>) => React.ReactElement) & Omit<import('react').FunctionComponent<((rawComponents.TextProps & {
99
+ component?: any;
100
+ }) & Omit<Omit<any, "ref">, "className" | "classNames" | "style" | "styles" | "vars" | "p" | "px" | "py" | "pt" | "pb" | "pl" | "pr" | "bg" | "c" | "opacity" | "ff" | "fz" | "fw" | "lts" | "ta" | "lh" | "fs" | "tt" | "td" | "bd" | "w" | "miw" | "maw" | "h" | "mih" | "mah" | "m" | "my" | "mx" | "mt" | "mb" | "ml" | "mr" | "gap" | "rowGap" | "columnGap" | "top" | "left" | "bottom" | "right" | "variant" | "span" | "color" | "children" | "__vars" | "__size" | "hiddenFrom" | "visibleFrom" | "lightHidden" | "darkHidden" | "mod" | "ms" | "me" | "ps" | "pe" | "bdrs" | "bgsz" | "bgp" | "bgr" | "bga" | "pos" | "inset" | "display" | "flex" | "unstyled" | "attributes" | "overStyled" | "inherit" | "inline" | "size" | "__staticSelector" | "component" | "gradient" | "lineClamp" | "truncate"> & {
101
+ ref?: any;
102
+ renderRoot?: (props: any) => any;
103
+ }) | (rawComponents.TextProps & {
104
+ component: React.ElementType;
105
+ renderRoot?: (props: Record<string, any>) => any;
106
+ })>, never> & Record<string, never>;
107
+ export declare const Accordion: typeof rawComponents.Accordion;
108
+ export declare const AccordionItem: typeof rawComponents.AccordionItem;
109
+ export declare const AccordionControl: typeof rawComponents.AccordionControl;
110
+ export declare const AccordionPanel: typeof rawComponents.AccordionPanel;
111
+ export declare const AutoComplete: typeof rawComponents.AutoComplete;
112
+ export declare const Avatar: typeof rawComponents.Avatar;
113
+ export declare const Badge: typeof rawComponents.Badge;
114
+ export declare const Breadcrumb: typeof rawComponents.Breadcrumb;
115
+ export declare const Button: typeof rawComponents.Button;
116
+ export declare const Card: typeof rawComponents.Card;
117
+ export declare const Checkbox: typeof rawComponents.Checkbox;
118
+ export declare const CheckboxGroup: typeof rawComponents.CheckboxGroup;
119
+ export declare const Chip: typeof rawComponents.Chip;
120
+ export declare const DatePicker: typeof rawComponents.DatePicker;
121
+ export declare const Dropdown: typeof rawComponents.Dropdown;
122
+ export declare const FileInput: typeof rawComponents.FileInput;
123
+ export declare const FileUpload: typeof rawComponents.FileUpload;
124
+ export declare const FormControlLayout: typeof rawComponents.FormControlLayout;
125
+ export declare const HoverCard: typeof rawComponents.HoverCard;
126
+ export declare const Loader: typeof rawComponents.Loader;
127
+ export declare const Label: typeof rawComponents.Label;
128
+ export declare const Menu: typeof rawComponents.Menu;
129
+ export declare const Modal: typeof rawComponents.Modal;
130
+ export declare const NumberInput: typeof rawComponents.NumberInput;
131
+ export declare const Pagination: typeof rawComponents.Pagination;
132
+ export declare const Panel: typeof rawComponents.Panel;
133
+ export declare const PanelFooter: typeof rawComponents.PanelFooter;
134
+ export declare const Popover: typeof rawComponents.Popover;
135
+ export declare const Radio: typeof rawComponents.Radio;
136
+ export declare const RadioGroup: typeof rawComponents.RadioGroup;
137
+ export declare const ReadOnlyField: typeof rawComponents.ReadOnlyField;
138
+ export declare const SegmentedControl: typeof rawComponents.SegmentedControl;
139
+ export declare const Slider: typeof rawComponents.Slider;
140
+ export declare const Stepper: typeof rawComponents.Stepper;
141
+ export declare const Switch: typeof rawComponents.Switch;
142
+ export declare const SwitchGroup: typeof rawComponents.SwitchGroup;
143
+ export declare const Table: typeof rawComponents.Table;
144
+ export declare const Tabs: typeof rawComponents.Tabs;
145
+ export declare const TextArea: typeof rawComponents.TextArea;
146
+ export declare const TextField: typeof rawComponents.TextField;
147
+ export declare const TimePicker: typeof rawComponents.TimePicker;
148
+ export declare const Timeline: typeof rawComponents.Timeline;
149
+ export declare const TimelineItem: typeof rawComponents.TimelineItem;
150
+ export declare const Title: typeof rawComponents.Title;
151
+ export declare const Toast: typeof rawComponents.Toast;
152
+ export declare const Tooltip: typeof rawComponents.Tooltip;
153
+ export declare const TransferList: typeof rawComponents.TransferList;
154
+ export declare const Tree: typeof rawComponents.Tree;
3
155
  export type { RecursicaCheckboxGroupProps, RecursicaDatePickerProps, RecursicaDropdownProps, RecursicaNumberInputProps, RecursicaRadioGroupProps, RecursicaReadOnlyFieldProps, RecursicaReadOnlyTextFieldProps, RecursicaSliderProps, RecursicaSwitchGroupProps, RecursicaTextAreaProps, RecursicaTextFieldProps, } from './components';
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "url": "git+https://github.com/borderux/recursica.git",
14
14
  "directory": "packages/mantine-adapter"
15
15
  },
16
- "version": "0.27.0",
16
+ "version": "0.29.0",
17
17
  "type": "module",
18
18
  "main": "./dist/mantine-adapter.cjs",
19
19
  "module": "./dist/mantine-adapter.js",
@@ -52,7 +52,7 @@
52
52
  "build-storybook": "storybook build -o storybook-static",
53
53
  "lint": "eslint .",
54
54
  "storybook": "storybook dev -p 6011",
55
- "analyze-tokens": "analyze-tokens --css recursica_variables_scoped.css --dir src/components --output token-analysis.json",
55
+ "analyze-tokens": "analyze-tokens --css @recursica/official-release/recursica_variables_scoped.css --dir src/components --output token-analysis.json",
56
56
  "prebuild": "npm run analyze-tokens"
57
57
  },
58
58
  "devDependencies": {
@@ -1,7 +1,25 @@
1
- import { Container, Card, Title, Text, Group, Stack } from "./components";
2
- import { Button } from "./components/Button/Button";
1
+ import {
2
+ Container,
3
+ Card,
4
+ Title,
5
+ Text as RawText,
6
+ Group,
7
+ Stack,
8
+ Switch as RawSwitch,
9
+ } from "./components";
10
+ import { Button as RawButton } from "./components/Button/Button";
11
+ import {
12
+ useGlobalOverStyled,
13
+ toggleGlobalOverStyled,
14
+ wrapComponent,
15
+ } from "@recursica/adapter-common";
16
+
17
+ const Button = wrapComponent(RawButton);
18
+ const Text = wrapComponent(RawText);
19
+ const Switch = wrapComponent(RawSwitch);
3
20
 
4
21
  export const OverStylingInfo = () => {
22
+ const isHighlightActive = useGlobalOverStyled();
5
23
  return (
6
24
  <Container size="md" style={{ padding: "32px 0" }}>
7
25
  <Card>
@@ -197,6 +215,52 @@ export const OverStylingInfo = () => {
197
215
  mb="rec-xl"
198
216
  />
199
217
 
218
+ <Title order={3} mb="rec-sm">
219
+ Visual Auditing & Highlights (Development Only)
220
+ </Title>
221
+ <Text mb="rec-sm">
222
+ To make it easy to spot technical debt and design system violations,
223
+ Recursica automatically tracks any component that uses the{" "}
224
+ <code>overStyled={`{true}`}</code> prop.
225
+ </Text>
226
+ <Text mb="rec-sm">
227
+ In <strong>development builds</strong>, you can highlight all
228
+ over-styled components on the page. Open your browser's developer
229
+ console and run:
230
+ </Text>
231
+ <Stack
232
+ style={{
233
+ padding: 12,
234
+ backgroundColor: "#f5f5f5",
235
+ borderRadius: 6,
236
+ fontSize: 13,
237
+ marginTop: 8,
238
+ marginBottom: 16,
239
+ }}
240
+ >
241
+ <code>recursica.toggleOverStyled()</code>
242
+ </Stack>
243
+ <Group mb="rec-md">
244
+ <Switch
245
+ label="Highlight Over-Styled Components"
246
+ checked={isHighlightActive}
247
+ onChange={() => toggleGlobalOverStyled()}
248
+ />
249
+ </Group>
250
+ <Text mb="rec-xl">
251
+ This toggles a <strong>cyan 2px box shadow</strong> outline around
252
+ the children of all over-styled components. The wrapping elements
253
+ use <code>display: contents</code> under the hood to ensure they
254
+ occupy zero DOM space and do not affect flex, grid, or absolute
255
+ positioning flow. In production builds, this debugging helper is
256
+ completely disabled and stripped with zero performance overhead.
257
+ </Text>
258
+
259
+ <Stack
260
+ style={{ height: 1, backgroundColor: "#eaeaea" }}
261
+ mb="rec-xl"
262
+ />
263
+
200
264
  <Title order={3} mb="rec-md">
201
265
  Live Example
202
266
  </Title>
@@ -217,7 +281,7 @@ export const OverStylingInfo = () => {
217
281
  </Stack>
218
282
  <Stack gap="rec-sm">
219
283
  <Text overStyled size="sm" c="dimmed">
220
- overStyled={`{true}`}
284
+ overStyled
221
285
  </Text>
222
286
  <Button overStyled={true} bg="pink" c="black" radius="xl">
223
287
  Unsafe Pink Marketing Button
@@ -149,8 +149,8 @@ export const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(
149
149
  ref={ref}
150
150
  classNames={mergedClassNames}
151
151
  disabled={disabled}
152
- value={value as any}
153
- defaultValue={defaultValue as any}
152
+ value={value as string | undefined}
153
+ defaultValue={defaultValue as string | undefined}
154
154
  wrapperProps={{
155
155
  "data-disabled": disabled ? "true" : undefined,
156
156
  "data-error": error ? "true" : undefined,
@@ -356,9 +356,23 @@
356
356
  color: var(
357
357
  --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_text-hover
358
358
  );
359
+ border-color: var(
360
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_border-color-hover
361
+ );
359
362
  box-shadow: var(
360
363
  --recursica_ui-kit_components_button_variants_styles_solid_properties_hover-elevation
361
364
  );
365
+
366
+ .iconWrapper {
367
+ color: var(
368
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_icon-color-hover
369
+ );
370
+ }
371
+ }
372
+ .root[data-variant="solid"]:disabled {
373
+ box-shadow: var(
374
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_disabled-elevation
375
+ );
362
376
  }
363
377
 
364
378
  /* OUTLINE */
@@ -389,9 +403,23 @@
389
403
  color: var(
390
404
  --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_text-hover
391
405
  );
406
+ border-color: var(
407
+ --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_border-color-hover
408
+ );
392
409
  box-shadow: var(
393
410
  --recursica_ui-kit_components_button_variants_styles_outline_properties_hover-elevation
394
411
  );
412
+
413
+ .iconWrapper {
414
+ color: var(
415
+ --recursica_ui-kit_components_button_variants_styles_outline_properties_colors_icon-color-hover
416
+ );
417
+ }
418
+ }
419
+ .root[data-variant="outline"]:disabled {
420
+ box-shadow: var(
421
+ --recursica_ui-kit_components_button_variants_styles_outline_properties_disabled-elevation
422
+ );
395
423
  }
396
424
 
397
425
  /* TEXT */
@@ -422,7 +450,21 @@
422
450
  color: var(
423
451
  --recursica_ui-kit_components_button_variants_styles_text_properties_colors_text-hover
424
452
  );
453
+ border-color: var(
454
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_border-color-hover
455
+ );
425
456
  box-shadow: var(
426
457
  --recursica_ui-kit_components_button_variants_styles_text_properties_hover-elevation
427
458
  );
459
+
460
+ .iconWrapper {
461
+ color: var(
462
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_icon-color-hover
463
+ );
464
+ }
465
+ }
466
+ .root[data-variant="text"]:disabled {
467
+ box-shadow: var(
468
+ --recursica_ui-kit_components_button_variants_styles_text_properties_disabled-elevation
469
+ );
428
470
  }
@@ -50,7 +50,9 @@ const CardBase = forwardRef<HTMLDivElement, CardProps>(function Card(
50
50
  ] as const;
51
51
  safeCardLayoutKeys.forEach((key) => {
52
52
  if (key in rest && !(key in sanitizedProps)) {
53
- (sanitizedProps as any)[key] = (rest as any)[key];
53
+ (sanitizedProps as Record<string, unknown>)[key] = (
54
+ rest as Record<string, unknown>
55
+ )[key];
54
56
  }
55
57
  });
56
58
 
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import type { Meta, StoryObj } from "@storybook/react";
3
2
  import { DatePicker } from "./DatePicker";
4
3
  import { formControlArgTypes } from "../../../.storybook/commonArgTypes";
@@ -42,12 +42,6 @@ const meta: Meta<DropdownStoryProps> = {
42
42
  clearable: {
43
43
  control: "boolean",
44
44
  },
45
- checked: {
46
- table: { disable: true },
47
- },
48
- defaultChecked: {
49
- table: { disable: true },
50
- },
51
45
  containerWidth: {
52
46
  table: { disable: true },
53
47
  },
@@ -150,7 +150,7 @@ export const Dropdown = forwardRef<HTMLInputElement, DropdownProps>(
150
150
  disabled={disabled}
151
151
  value={value}
152
152
  defaultValue={defaultValue}
153
- data={(data as any) || []}
153
+ data={(data as unknown as MantineSelectProps["data"]) || []}
154
154
  label={undefined}
155
155
  description={undefined}
156
156
  error={undefined}
@@ -49,7 +49,7 @@ const _Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(
49
49
  classNames={mergedClassNames}
50
50
  underline="never"
51
51
  {...(icon ? { "data-has-icon": "" } : {})}
52
- {...(sanitizedProps as any)}
52
+ {...(sanitizedProps as Record<string, unknown>)}
53
53
  >
54
54
  {icon && (
55
55
  <span className={styles.iconWrapper} aria-hidden>
@@ -21,8 +21,6 @@ const meta: Meta<typeof NumberInput> = {
21
21
  control: "select",
22
22
  options: ["small", "default", "large"],
23
23
  },
24
- checked: { table: { disable: true } },
25
- defaultChecked: { table: { disable: true } },
26
24
  assistiveWithIcon: { table: { disable: true } },
27
25
  labelOptionalText: { table: { disable: true } },
28
26
  labelWithEditIcon: { table: { disable: true } },
@@ -21,7 +21,7 @@ import { type RecursicaPanelProps as BaseRecursicaPanelProps } from "@recursica/
21
21
  export interface RecursicaPanelProps
22
22
  extends Omit<
23
23
  MantineDrawerProps,
24
- "size" | "styles" | "classNames" | "style" | "position"
24
+ "size" | "styles" | "classNames" | "style" | "position" | "opened"
25
25
  >,
26
26
  BaseRecursicaPanelProps {}
27
27
 
@@ -35,9 +35,14 @@ import { type RecursicaPopoverProps } from "@recursica/adapter-common";
35
35
  * </Popover>
36
36
  * ```
37
37
  */
38
- export type PopoverProps = RecursicaOverStyled<
39
- MantinePopoverProps & RecursicaPopoverProps
40
- >;
38
+ export type PopoverProps = Omit<
39
+ RecursicaOverStyled<
40
+ Omit<MantinePopoverProps, "position"> & RecursicaPopoverProps
41
+ >,
42
+ "position"
43
+ > & {
44
+ position?: MantinePopoverProps["position"];
45
+ };
41
46
 
42
47
  const PopoverBase = function Popover({
43
48
  overStyled = false,
@@ -3,6 +3,7 @@
3
3
  - background-color: transparent; on label hover (overriding Mantine)
4
4
  - Scope prefix .root to enforce Figma tokens over Mantine's inline calculation without using !important
5
5
  */
6
+ /* recursica-ignore: --recursica_ui-kit_components_segmented-control-item_properties_item_border-radius */
6
7
 
7
8
  .root {
8
9
  background-color: var(
@@ -5,6 +5,7 @@
5
5
  * - transform: translateX(-50%); (Mantine's standard step marks positioning alignment offset)
6
6
  * - outline: none; border-style: solid; (Standard focus reset and border outlines)
7
7
  */
8
+ /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-border-size */
8
9
 
9
10
  /* ==========================================
10
11
  1. Baseline, Reset & Layout Overrides
@@ -356,6 +357,34 @@
356
357
  6. State-Specific Overrides (Disabled, Error)
357
358
  ========================================== */
358
359
 
360
+ /* Focus states */
361
+ .sliderRoot:has(.sliderThumb:focus) .sliderTrack,
362
+ .sliderRoot:focus-within .sliderTrack {
363
+ background-color: var(
364
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_track
365
+ );
366
+ }
367
+
368
+ .sliderRoot:has(.sliderThumb:focus) .sliderMark,
369
+ .sliderRoot:focus-within .sliderMark {
370
+ background-color: var(
371
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_step-indicator-color
372
+ );
373
+ }
374
+
375
+ .sliderRoot:has(.sliderThumb:focus) .sliderMark[data-filled],
376
+ .sliderRoot:focus-within .sliderMark[data-filled] {
377
+ background-color: var(
378
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_step-indicator-color-active
379
+ );
380
+ }
381
+
382
+ .sliderContainer:focus-within .iconWrapper {
383
+ color: var(
384
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_icon-color
385
+ );
386
+ }
387
+
359
388
  /* Disabled state */
360
389
  .sliderContainer[data-disabled="true"] .iconWrapper {
361
390
  color: var(