@xyo-network/react-property 4.4.11 → 5.0.0-rc.2

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 (32) hide show
  1. package/dist/browser/index.mjs +10 -10
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/types/components/Property.d.ts +9 -0
  4. package/dist/types/components/Property.d.ts.map +1 -0
  5. package/dist/{browser → types}/components/Value.d.ts +6 -1
  6. package/dist/types/components/Value.d.ts.map +1 -0
  7. package/package.json +23 -21
  8. package/src/components/Property.tsx +50 -52
  9. package/src/components/Value.tsx +5 -5
  10. package/dist/browser/components/Property.d.ts +0 -4
  11. package/dist/browser/components/Property.d.ts.map +0 -1
  12. package/dist/browser/components/Value.d.ts.map +0 -1
  13. /package/dist/{browser → types}/components/Action.d.ts +0 -0
  14. /package/dist/{browser → types}/components/Action.d.ts.map +0 -0
  15. /package/dist/{browser → types}/components/Actions.d.ts +0 -0
  16. /package/dist/{browser → types}/components/Actions.d.ts.map +0 -0
  17. /package/dist/{browser → types}/components/ActionsMenu.d.ts +0 -0
  18. /package/dist/{browser → types}/components/ActionsMenu.d.ts.map +0 -0
  19. /package/dist/{browser → types}/components/ActionsProps.d.ts +0 -0
  20. /package/dist/{browser → types}/components/ActionsProps.d.ts.map +0 -0
  21. /package/dist/{browser → types}/components/Group.d.ts +0 -0
  22. /package/dist/{browser → types}/components/Group.d.ts.map +0 -0
  23. /package/dist/{browser → types}/components/IdenticonCorner.d.ts +0 -0
  24. /package/dist/{browser → types}/components/IdenticonCorner.d.ts.map +0 -0
  25. /package/dist/{browser → types}/components/Props.d.ts +0 -0
  26. /package/dist/{browser → types}/components/Props.d.ts.map +0 -0
  27. /package/dist/{browser → types}/components/Title.d.ts +0 -0
  28. /package/dist/{browser → types}/components/Title.d.ts.map +0 -0
  29. /package/dist/{browser → types}/components/index.d.ts +0 -0
  30. /package/dist/{browser → types}/components/index.d.ts.map +0 -0
  31. /package/dist/{browser → types}/index.d.ts +0 -0
  32. /package/dist/{browser → types}/index.d.ts.map +0 -0
@@ -106,7 +106,7 @@ var PropertyGroup = /* @__PURE__ */ __name((props) => {
106
106
  // src/components/Property.tsx
107
107
  import { CircularProgress, Paper as Paper2 } from "@mui/material";
108
108
  import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
109
- import React6, { forwardRef as forwardRef2 } from "react";
109
+ import React6 from "react";
110
110
 
111
111
  // src/components/ActionsMenu.tsx
112
112
  import { MoreHoriz as MoreHorizIcon } from "@mui/icons-material";
@@ -177,8 +177,8 @@ var IdenticonCorner = /* @__PURE__ */ __name(({ value, ...props }) => {
177
177
 
178
178
  // src/components/Value.tsx
179
179
  import { EllipsizeBox } from "@xyo-network/react-shared";
180
- import React5, { forwardRef } from "react";
181
- var PropertyValue = /* @__PURE__ */ forwardRef(({ typographyVariant = "body1", value, ...props }, ref) => {
180
+ import React5 from "react";
181
+ var PropertyValue = /* @__PURE__ */ __name(({ ref, typographyVariant = "body1", value, ...props }) => {
182
182
  return value === void 0 ? null : /* @__PURE__ */ React5.createElement(EllipsizeBox, {
183
183
  typographyProps: {
184
184
  component: void 0,
@@ -189,11 +189,11 @@ var PropertyValue = /* @__PURE__ */ forwardRef(({ typographyVariant = "body1", v
189
189
  ref,
190
190
  ...props
191
191
  }, value);
192
- });
192
+ }, "PropertyValue");
193
193
  PropertyValue.displayName = "PropertyValue";
194
194
 
195
195
  // src/components/Property.tsx
196
- var PropertyBox = /* @__PURE__ */ forwardRef2(({ titleProps, title, value, children, size = "medium", tip, actions, required, badge = false, ...props }, ref) => {
196
+ var PropertyBox = /* @__PURE__ */ __name(({ ref, titleProps, title, value, children, size = "medium", tip, actions, required, badge = false, ...props }) => {
197
197
  const sizeValueHeight = {
198
198
  large: 48,
199
199
  medium: 36,
@@ -233,9 +233,9 @@ var PropertyBox = /* @__PURE__ */ forwardRef2(({ titleProps, title, value, child
233
233
  })), value === void 0 ? null : badge ? /* @__PURE__ */ React6.createElement(IdenticonCorner, {
234
234
  value
235
235
  }) : null));
236
- });
236
+ }, "PropertyBox");
237
237
  PropertyBox.displayName = "PropertyBox";
238
- var PropertyPaper = /* @__PURE__ */ forwardRef2(({ style, variant, elevation = 2, square, ...props }, ref) => {
238
+ var PropertyPaper = /* @__PURE__ */ __name(({ ref, style, variant, elevation = 2, square, ...props }) => {
239
239
  return /* @__PURE__ */ React6.createElement(Paper2, {
240
240
  ref,
241
241
  style: {
@@ -250,9 +250,9 @@ var PropertyPaper = /* @__PURE__ */ forwardRef2(({ style, variant, elevation = 2
250
250
  ...props,
251
251
  paper: false
252
252
  }));
253
- });
253
+ }, "PropertyPaper");
254
254
  PropertyPaper.displayName = "PropertyPaper";
255
- var Property = /* @__PURE__ */ forwardRef2((props, ref) => {
255
+ var Property = /* @__PURE__ */ __name(({ ref, ...props }) => {
256
256
  return props.paper ? /* @__PURE__ */ React6.createElement(PropertyPaper, {
257
257
  ref,
258
258
  ...props
@@ -260,7 +260,7 @@ var Property = /* @__PURE__ */ forwardRef2((props, ref) => {
260
260
  ref,
261
261
  ...props
262
262
  });
263
- });
263
+ }, "Property");
264
264
  Property.displayName = "Property";
265
265
  export {
266
266
  Property,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Group.tsx","../../src/components/Title.tsx","../../src/components/Property.tsx","../../src/components/ActionsMenu.tsx","../../src/components/IdenticonCorner.tsx","../../src/components/Value.tsx"],"sourcesContent":["import { Paper, useTheme } from '@mui/material'\nimport {\n FlexCol, FlexGrowRow, FlexRow,\n} from '@xylabs/react-flexbox'\nimport { typeOf } from '@xyo-network/typeof'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nimport type {\n PropertyGroupBoxProps, PropertyGroupPaperProps, PropertyGroupProps,\n} from './Props.ts'\nimport { PropertyTitle } from './Title.tsx'\n\nconst PropertyGroupBox: React.FC<PropertyGroupBoxProps> = ({\n titleProps, children, title, tip, ...props\n}) => {\n const theme = useTheme()\n const childrenArray = typeOf(children) === 'array' ? (children as ReactElement[]) : undefined\n return (\n <FlexCol alignItems=\"stretch\" overflow=\"hidden\" {...props}>\n <FlexRow overflow=\"hidden\" justifyContent=\"stretch\" alignItems=\"stretch\">\n <PropertyTitle alignItems=\"flex-start\" size=\"full\" title={title} tip={tip} {...titleProps} />\n {childrenArray\n ? (\n <FlexGrowRow>\n {childrenArray?.map((child, index) => {\n return child\n ? (\n <FlexGrowRow key={index} borderLeft={1} borderColor={theme.palette.divider}>\n {child}\n </FlexGrowRow>\n )\n : null\n })}\n </FlexGrowRow>\n )\n : <FlexGrowRow overflow=\"hidden\">{children}</FlexGrowRow>}\n </FlexRow>\n </FlexCol>\n )\n}\n\nconst PropertyGroupPaper: React.FC<PropertyGroupPaperProps> = ({\n style, variant, elevation, square, ...props\n}) => {\n return (\n <Paper\n style={{\n minWidth: 0, overflow: 'hidden', ...style,\n }}\n variant={variant}\n elevation={elevation}\n square={square}\n >\n <PropertyGroupBox {...props} paper={false} />\n </Paper>\n )\n}\n\nexport const PropertyGroup: React.FC<PropertyGroupProps> = (props) => {\n return props.paper ? <PropertyGroupPaper {...props} /> : <PropertyGroupBox {...props} />\n}\n","import type { TypographyVariant } from '@mui/material'\nimport {\n darken, lighten, Typography, useTheme,\n} from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nexport type TitleSizeProp = SizeProp | 'full'\n\nexport interface PropertyTitleProps extends FlexBoxProps {\n elevation?: number\n more?: ReactNode\n size?: TitleSizeProp\n tip?: ReactNode\n title?: string\n}\n\nexport const PropertyTitle: React.FC<PropertyTitleProps> = ({\n elevation = 1, size = 'medium', tip, more, title, ...props\n}) => {\n const sizeVariants: Record<TitleSizeProp, TypographyVariant> = {\n full: 'caption',\n large: 'caption',\n medium: 'caption',\n small: 'caption',\n }\n\n const sizeTitleHeight: Record<TitleSizeProp, number | undefined> = {\n full: undefined,\n large: 32,\n medium: 20,\n small: 16,\n }\n\n const sizeFontSize: Record<TitleSizeProp, number> = {\n full: 16,\n large: 16,\n medium: 14,\n small: 10,\n }\n\n const quickTipSize = Math.min(sizeFontSize[size], 16)\n\n const theme = useTheme()\n\n return (\n <FlexRow\n bgcolor={\n theme.palette.mode === 'dark'\n ? lighten(theme.palette.background.paper, 0.05 * elevation)\n : darken(theme.palette.background.paper, 0.025 * elevation)\n }\n alignItems=\"center\"\n height={sizeTitleHeight[size]}\n justifyContent=\"space-between\"\n {...props}\n >\n <FlexRow paddingX={1} paddingY={0.5}>\n <Typography fontWeight={500} noWrap variant={sizeVariants[size]} fontSize={sizeFontSize[size]}>\n <small>\n <strong>{title}</strong>\n </small>\n </Typography>\n {tip\n ? (\n <QuickTipButton style={{ fontSize: quickTipSize }} color=\"inherit\" title={title ?? ''}>\n {tip}\n </QuickTipButton>\n )\n : null}\n </FlexRow>\n {more}\n </FlexRow>\n )\n}\n","import type { TypographyVariant } from '@mui/material'\nimport { CircularProgress, Paper } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport React, { forwardRef } from 'react'\n\nimport { PropertyActionsMenu } from './ActionsMenu.tsx'\nimport { IdenticonCorner } from './IdenticonCorner.tsx'\nimport type {\n PropertyBoxProps, PropertyPaperProps, PropertyProps,\n} from './Props.ts'\nimport { PropertyTitle } from './Title.tsx'\nimport { PropertyValue } from './Value.tsx'\n\nconst PropertyBox = forwardRef<HTMLDivElement, PropertyBoxProps>(\n ({\n titleProps, title, value, children, size = 'medium', tip, actions, required, badge = false, ...props\n }, ref) => {\n const sizeValueHeight: Record<SizeProp, number> = {\n large: 48,\n medium: 36,\n small: 24,\n }\n\n const sizeVariants: Record<SizeProp, TypographyVariant> = {\n large: 'h6',\n medium: 'body1',\n small: 'body2',\n }\n\n return (\n <FlexRow ref={ref} flexDirection=\"column\" minWidth={0} alignItems=\"stretch\" overflow=\"hidden\" {...props}>\n {title === undefined\n ? null\n : (\n <PropertyTitle\n tip={tip}\n title={required ? `${title}*` : title}\n size={size}\n more={<PropertyActionsMenu actions={actions} />}\n {...titleProps}\n />\n )}\n <FlexRow\n pl={1}\n columnGap={1}\n justifyContent={value === undefined ? 'center' : 'space-between'}\n overflow=\"hidden\"\n height={sizeValueHeight[size]}\n >\n {children ?? ((value === undefined)\n ? <CircularProgress size={16} />\n : <PropertyValue value={value} typographyVariant={sizeVariants[size]} />)}\n {value === undefined\n ? null\n : badge\n ? <IdenticonCorner value={value} />\n : null}\n </FlexRow>\n </FlexRow>\n )\n },\n)\nPropertyBox.displayName = 'PropertyBox'\n\nconst PropertyPaper = forwardRef<HTMLDivElement, PropertyPaperProps>(({\n style, variant, elevation = 2, square, ...props\n}, ref) => {\n return (\n <Paper\n ref={ref}\n style={{\n minWidth: 0, overflow: 'hidden', ...style,\n }}\n variant={variant}\n elevation={elevation}\n square={square}\n >\n <PropertyBox {...props} paper={false} />\n </Paper>\n )\n})\nPropertyPaper.displayName = 'PropertyPaper'\n\nexport const Property = forwardRef<HTMLDivElement, PropertyProps>((props, ref) => {\n return props.paper ? <PropertyPaper ref={ref} {...props} /> : <PropertyBox ref={ref} {...props} />\n})\nProperty.displayName = 'Property'\n","import { MoreHoriz as MoreHorizIcon } from '@mui/icons-material'\nimport {\n IconButton, Menu, MenuItem,\n} from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport type { PropertyActionsProps } from './ActionsProps.ts'\n\nexport const PropertyActionsMenu: React.FC<PropertyActionsProps> = ({ actions, ...props }) => {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const open = !!anchorEl\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget)\n }\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return actions && actions?.length > 0\n ? (\n <FlexRow {...props}>\n <IconButton size=\"small\" color=\"inherit\" onClick={handleClick}>\n <MoreHorizIcon fontSize=\"inherit\" />\n </IconButton>\n <Menu anchorEl={anchorEl} open={open} onClose={handleClose}>\n {actions?.map((action) => {\n return (\n <MenuItem\n key={action.name}\n onClick={() => {\n action?.onClick?.()\n handleClose()\n }}\n >\n {action.name}\n </MenuItem>\n )\n })}\n </Menu>\n </FlexRow>\n )\n : null\n}\n","import { useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Identicon } from '@xylabs/react-identicon'\nimport React, { useMemo, useRef } from 'react'\n\nexport interface IdenticonCornerProps extends FlexBoxProps {\n value?: string | number | boolean | null\n}\n\nexport const IdenticonCorner: React.FC<IdenticonCornerProps> = ({ value, ...props }) => {\n const theme = useTheme()\n const ref = useRef<HTMLDivElement>(null)\n\n const parentHeight = useMemo(() => ref.current?.parentElement?.parentElement?.clientHeight, [ref.current])\n\n const calculatedHeight = parentHeight ?? 0\n\n return (\n <FlexRow alignItems=\"flex-start\" height=\"100%\">\n <FlexRow background height={calculatedHeight} width={calculatedHeight} borderLeft={`1px solid ${theme.palette.divider}`}>\n <div ref={ref}>\n <Identicon size={calculatedHeight * 0.6} value={`${value}`} sx={{ padding: `${calculatedHeight * 0.2}px` }} {...props} />\n </div>\n </FlexRow>\n </FlexRow>\n )\n}\n","import type { Variant } from '@mui/material/styles/createTypography.js'\nimport type { EllipsizeBoxProps } from '@xyo-network/react-shared'\nimport { EllipsizeBox } from '@xyo-network/react-shared'\nimport React, { forwardRef } from 'react'\n\nexport interface PropertyValueProps extends Omit<EllipsizeBoxProps, 'ref'> {\n typographyVariant?: Variant\n value?: string | number | boolean | null\n}\n\nexport const PropertyValue = forwardRef<HTMLDivElement, PropertyValueProps>(({\n typographyVariant = 'body1', value, ...props\n}, ref) => {\n return value === undefined\n ? null\n : (\n <EllipsizeBox\n typographyProps={{\n component: undefined, title: value?.toString(), variant: typographyVariant,\n }}\n width=\"100%\"\n ref={ref}\n {...props}\n >\n {value}\n </EllipsizeBox>\n )\n})\n\nPropertyValue.displayName = 'PropertyValue'\n"],"mappings":"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","names":["Paper","useTheme","FlexCol","FlexGrowRow","FlexRow","typeOf","React","darken","lighten","Typography","useTheme","FlexRow","QuickTipButton","React","PropertyTitle","elevation","size","tip","more","title","props","sizeVariants","full","large","medium","small","sizeTitleHeight","undefined","sizeFontSize","quickTipSize","Math","min","theme","useTheme","FlexRow","bgcolor","palette","mode","lighten","background","paper","darken","alignItems","height","justifyContent","paddingX","paddingY","Typography","fontWeight","noWrap","variant","fontSize","strong","QuickTipButton","style","color","PropertyGroupBox","titleProps","children","title","tip","props","theme","useTheme","childrenArray","typeOf","undefined","React","FlexCol","alignItems","overflow","FlexRow","justifyContent","PropertyTitle","size","FlexGrowRow","map","child","index","key","borderLeft","borderColor","palette","divider","PropertyGroupPaper","style","variant","elevation","square","Paper","minWidth","paper","PropertyGroup","CircularProgress","Paper","FlexRow","React","forwardRef","MoreHoriz","MoreHorizIcon","IconButton","Menu","MenuItem","FlexRow","React","useState","PropertyActionsMenu","actions","props","anchorEl","setAnchorEl","useState","open","handleClick","event","currentTarget","handleClose","length","React","FlexRow","IconButton","size","color","onClick","MoreHorizIcon","fontSize","Menu","onClose","map","action","MenuItem","key","name","useTheme","FlexRow","Identicon","React","useMemo","useRef","IdenticonCorner","value","props","theme","useTheme","ref","useRef","parentHeight","useMemo","current","parentElement","clientHeight","calculatedHeight","React","FlexRow","alignItems","height","background","width","borderLeft","palette","divider","div","Identicon","size","sx","padding","EllipsizeBox","React","forwardRef","PropertyValue","typographyVariant","value","props","ref","undefined","typographyProps","component","title","toString","variant","width","displayName","PropertyBox","forwardRef","titleProps","title","value","children","size","tip","actions","required","badge","props","ref","sizeValueHeight","large","medium","small","sizeVariants","React","FlexRow","flexDirection","minWidth","alignItems","overflow","undefined","PropertyTitle","more","PropertyActionsMenu","pl","columnGap","justifyContent","height","CircularProgress","PropertyValue","typographyVariant","IdenticonCorner","displayName","PropertyPaper","style","variant","elevation","square","Paper","paper","Property"]}
1
+ {"version":3,"sources":["../../src/components/Group.tsx","../../src/components/Title.tsx","../../src/components/Property.tsx","../../src/components/ActionsMenu.tsx","../../src/components/IdenticonCorner.tsx","../../src/components/Value.tsx"],"sourcesContent":["import { Paper, useTheme } from '@mui/material'\nimport {\n FlexCol, FlexGrowRow, FlexRow,\n} from '@xylabs/react-flexbox'\nimport { typeOf } from '@xyo-network/typeof'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nimport type {\n PropertyGroupBoxProps, PropertyGroupPaperProps, PropertyGroupProps,\n} from './Props.ts'\nimport { PropertyTitle } from './Title.tsx'\n\nconst PropertyGroupBox: React.FC<PropertyGroupBoxProps> = ({\n titleProps, children, title, tip, ...props\n}) => {\n const theme = useTheme()\n const childrenArray = typeOf(children) === 'array' ? (children as ReactElement[]) : undefined\n return (\n <FlexCol alignItems=\"stretch\" overflow=\"hidden\" {...props}>\n <FlexRow overflow=\"hidden\" justifyContent=\"stretch\" alignItems=\"stretch\">\n <PropertyTitle alignItems=\"flex-start\" size=\"full\" title={title} tip={tip} {...titleProps} />\n {childrenArray\n ? (\n <FlexGrowRow>\n {childrenArray?.map((child, index) => {\n return child\n ? (\n <FlexGrowRow key={index} borderLeft={1} borderColor={theme.palette.divider}>\n {child}\n </FlexGrowRow>\n )\n : null\n })}\n </FlexGrowRow>\n )\n : <FlexGrowRow overflow=\"hidden\">{children}</FlexGrowRow>}\n </FlexRow>\n </FlexCol>\n )\n}\n\nconst PropertyGroupPaper: React.FC<PropertyGroupPaperProps> = ({\n style, variant, elevation, square, ...props\n}) => {\n return (\n <Paper\n style={{\n minWidth: 0, overflow: 'hidden', ...style,\n }}\n variant={variant}\n elevation={elevation}\n square={square}\n >\n <PropertyGroupBox {...props} paper={false} />\n </Paper>\n )\n}\n\nexport const PropertyGroup: React.FC<PropertyGroupProps> = (props) => {\n return props.paper ? <PropertyGroupPaper {...props} /> : <PropertyGroupBox {...props} />\n}\n","import type { TypographyVariant } from '@mui/material'\nimport {\n darken, lighten, Typography, useTheme,\n} from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nexport type TitleSizeProp = SizeProp | 'full'\n\nexport interface PropertyTitleProps extends FlexBoxProps {\n elevation?: number\n more?: ReactNode\n size?: TitleSizeProp\n tip?: ReactNode\n title?: string\n}\n\nexport const PropertyTitle: React.FC<PropertyTitleProps> = ({\n elevation = 1, size = 'medium', tip, more, title, ...props\n}) => {\n const sizeVariants: Record<TitleSizeProp, TypographyVariant> = {\n full: 'caption',\n large: 'caption',\n medium: 'caption',\n small: 'caption',\n }\n\n const sizeTitleHeight: Record<TitleSizeProp, number | undefined> = {\n full: undefined,\n large: 32,\n medium: 20,\n small: 16,\n }\n\n const sizeFontSize: Record<TitleSizeProp, number> = {\n full: 16,\n large: 16,\n medium: 14,\n small: 10,\n }\n\n const quickTipSize = Math.min(sizeFontSize[size], 16)\n\n const theme = useTheme()\n\n return (\n <FlexRow\n bgcolor={\n theme.palette.mode === 'dark'\n ? lighten(theme.palette.background.paper, 0.05 * elevation)\n : darken(theme.palette.background.paper, 0.025 * elevation)\n }\n alignItems=\"center\"\n height={sizeTitleHeight[size]}\n justifyContent=\"space-between\"\n {...props}\n >\n <FlexRow paddingX={1} paddingY={0.5}>\n <Typography fontWeight={500} noWrap variant={sizeVariants[size]} fontSize={sizeFontSize[size]}>\n <small>\n <strong>{title}</strong>\n </small>\n </Typography>\n {tip\n ? (\n <QuickTipButton style={{ fontSize: quickTipSize }} color=\"inherit\" title={title ?? ''}>\n {tip}\n </QuickTipButton>\n )\n : null}\n </FlexRow>\n {more}\n </FlexRow>\n )\n}\n","import type { TypographyVariant } from '@mui/material'\nimport { CircularProgress, Paper } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport React from 'react'\n\nimport { PropertyActionsMenu } from './ActionsMenu.tsx'\nimport { IdenticonCorner } from './IdenticonCorner.tsx'\nimport type {\n PropertyBoxProps, PropertyPaperProps, PropertyProps,\n} from './Props.ts'\nimport { PropertyTitle } from './Title.tsx'\nimport { PropertyValue } from './Value.tsx'\n\nconst PropertyBox = ({\n ref, titleProps, title, value, children, size = 'medium', tip, actions, required, badge = false, ...props\n}: PropertyBoxProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {\n const sizeValueHeight: Record<SizeProp, number> = {\n large: 48,\n medium: 36,\n small: 24,\n }\n\n const sizeVariants: Record<SizeProp, TypographyVariant> = {\n large: 'h6',\n medium: 'body1',\n small: 'body2',\n }\n\n return (\n <FlexRow ref={ref} flexDirection=\"column\" minWidth={0} alignItems=\"stretch\" overflow=\"hidden\" {...props}>\n {title === undefined\n ? null\n : (\n <PropertyTitle\n tip={tip}\n title={required ? `${title}*` : title}\n size={size}\n more={<PropertyActionsMenu actions={actions} />}\n {...titleProps}\n />\n )}\n <FlexRow\n pl={1}\n columnGap={1}\n justifyContent={value === undefined ? 'center' : 'space-between'}\n overflow=\"hidden\"\n height={sizeValueHeight[size]}\n >\n {children ?? ((value === undefined)\n ? <CircularProgress size={16} />\n : <PropertyValue value={value} typographyVariant={sizeVariants[size]} />)}\n {value === undefined\n ? null\n : badge\n ? <IdenticonCorner value={value} />\n : null}\n </FlexRow>\n </FlexRow>\n )\n}\nPropertyBox.displayName = 'PropertyBox'\n\nconst PropertyPaper = ({\n ref, style, variant, elevation = 2, square, ...props\n}: PropertyPaperProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {\n return (\n <Paper\n ref={ref}\n style={{\n minWidth: 0, overflow: 'hidden', ...style,\n }}\n variant={variant}\n elevation={elevation}\n square={square}\n >\n <PropertyBox {...props} paper={false} />\n </Paper>\n )\n}\nPropertyPaper.displayName = 'PropertyPaper'\n\nexport const Property = ({ ref, ...props }: PropertyProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {\n return props.paper ? <PropertyPaper ref={ref} {...props} /> : <PropertyBox ref={ref} {...props} />\n}\nProperty.displayName = 'Property'\n","import { MoreHoriz as MoreHorizIcon } from '@mui/icons-material'\nimport {\n IconButton, Menu, MenuItem,\n} from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport type { PropertyActionsProps } from './ActionsProps.ts'\n\nexport const PropertyActionsMenu: React.FC<PropertyActionsProps> = ({ actions, ...props }) => {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const open = !!anchorEl\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget)\n }\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return actions && actions?.length > 0\n ? (\n <FlexRow {...props}>\n <IconButton size=\"small\" color=\"inherit\" onClick={handleClick}>\n <MoreHorizIcon fontSize=\"inherit\" />\n </IconButton>\n <Menu anchorEl={anchorEl} open={open} onClose={handleClose}>\n {actions?.map((action) => {\n return (\n <MenuItem\n key={action.name}\n onClick={() => {\n action?.onClick?.()\n handleClose()\n }}\n >\n {action.name}\n </MenuItem>\n )\n })}\n </Menu>\n </FlexRow>\n )\n : null\n}\n","import { useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { Identicon } from '@xylabs/react-identicon'\nimport React, { useMemo, useRef } from 'react'\n\nexport interface IdenticonCornerProps extends FlexBoxProps {\n value?: string | number | boolean | null\n}\n\nexport const IdenticonCorner: React.FC<IdenticonCornerProps> = ({ value, ...props }) => {\n const theme = useTheme()\n const ref = useRef<HTMLDivElement>(null)\n\n const parentHeight = useMemo(() => ref.current?.parentElement?.parentElement?.clientHeight, [ref.current])\n\n const calculatedHeight = parentHeight ?? 0\n\n return (\n <FlexRow alignItems=\"flex-start\" height=\"100%\">\n <FlexRow background height={calculatedHeight} width={calculatedHeight} borderLeft={`1px solid ${theme.palette.divider}`}>\n <div ref={ref}>\n <Identicon size={calculatedHeight * 0.6} value={`${value}`} sx={{ padding: `${calculatedHeight * 0.2}px` }} {...props} />\n </div>\n </FlexRow>\n </FlexRow>\n )\n}\n","import type { Variant } from '@mui/material/styles/createTypography.js'\nimport type { EllipsizeBoxProps } from '@xyo-network/react-shared'\nimport { EllipsizeBox } from '@xyo-network/react-shared'\nimport React from 'react'\n\nexport interface PropertyValueProps extends Omit<EllipsizeBoxProps, 'ref'> {\n typographyVariant?: Variant\n value?: string | number | boolean | null\n}\n\nexport const PropertyValue = ({\n ref, typographyVariant = 'body1', value, ...props\n}: PropertyValueProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {\n return value === undefined\n ? null\n : (\n <EllipsizeBox\n typographyProps={{\n component: undefined, title: value?.toString(), variant: typographyVariant,\n }}\n width=\"100%\"\n ref={ref}\n {...props}\n >\n {value}\n </EllipsizeBox>\n )\n}\n\nPropertyValue.displayName = 'PropertyValue'\n"],"mappings":"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","names":["Paper","useTheme","FlexCol","FlexGrowRow","FlexRow","typeOf","React","darken","lighten","Typography","useTheme","FlexRow","QuickTipButton","React","PropertyTitle","elevation","size","tip","more","title","props","sizeVariants","full","large","medium","small","sizeTitleHeight","undefined","sizeFontSize","quickTipSize","Math","min","theme","useTheme","FlexRow","bgcolor","palette","mode","lighten","background","paper","darken","alignItems","height","justifyContent","paddingX","paddingY","Typography","fontWeight","noWrap","variant","fontSize","strong","QuickTipButton","style","color","PropertyGroupBox","titleProps","children","title","tip","props","theme","useTheme","childrenArray","typeOf","undefined","React","FlexCol","alignItems","overflow","FlexRow","justifyContent","PropertyTitle","size","FlexGrowRow","map","child","index","key","borderLeft","borderColor","palette","divider","PropertyGroupPaper","style","variant","elevation","square","Paper","minWidth","paper","PropertyGroup","CircularProgress","Paper","FlexRow","React","MoreHoriz","MoreHorizIcon","IconButton","Menu","MenuItem","FlexRow","React","useState","PropertyActionsMenu","actions","props","anchorEl","setAnchorEl","useState","open","handleClick","event","currentTarget","handleClose","length","React","FlexRow","IconButton","size","color","onClick","MoreHorizIcon","fontSize","Menu","onClose","map","action","MenuItem","key","name","useTheme","FlexRow","Identicon","React","useMemo","useRef","IdenticonCorner","value","props","theme","useTheme","ref","useRef","parentHeight","useMemo","current","parentElement","clientHeight","calculatedHeight","React","FlexRow","alignItems","height","background","width","borderLeft","palette","divider","div","Identicon","size","sx","padding","EllipsizeBox","React","PropertyValue","ref","typographyVariant","value","props","undefined","React","EllipsizeBox","typographyProps","component","title","toString","variant","width","displayName","PropertyBox","ref","titleProps","title","value","children","size","tip","actions","required","badge","props","sizeValueHeight","large","medium","small","sizeVariants","React","FlexRow","flexDirection","minWidth","alignItems","overflow","undefined","PropertyTitle","more","PropertyActionsMenu","pl","columnGap","justifyContent","height","CircularProgress","PropertyValue","typographyVariant","IdenticonCorner","displayName","PropertyPaper","style","variant","elevation","square","Paper","paper","Property"]}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { PropertyProps } from './Props.ts';
3
+ export declare const Property: {
4
+ ({ ref, ...props }: PropertyProps & {
5
+ ref?: React.RefObject<HTMLDivElement | null>;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
9
+ //# sourceMappingURL=Property.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Property.d.ts","sourceRoot":"","sources":["../../../src/components/Property.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAC4B,aAAa,EACpD,MAAM,YAAY,CAAA;AAwEnB,eAAO,MAAM,QAAQ;wBAAuB,aAAa,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;KAAE;;CAE3G,CAAA"}
@@ -5,5 +5,10 @@ export interface PropertyValueProps extends Omit<EllipsizeBoxProps, 'ref'> {
5
5
  typographyVariant?: Variant;
6
6
  value?: string | number | boolean | null;
7
7
  }
8
- export declare const PropertyValue: React.ForwardRefExoticComponent<PropertyValueProps & React.RefAttributes<HTMLDivElement>>;
8
+ export declare const PropertyValue: {
9
+ ({ ref, typographyVariant, value, ...props }: PropertyValueProps & {
10
+ ref?: React.RefObject<HTMLDivElement | null>;
11
+ }): import("react/jsx-runtime").JSX.Element | null;
12
+ displayName: string;
13
+ };
9
14
  //# sourceMappingURL=Value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../../src/components/Value.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;CACzC;AAED,eAAO,MAAM,aAAa;kDAEvB,kBAAkB,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;KAAE;;CAevE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-property",
3
- "version": "4.4.11",
3
+ "version": "5.0.0-rc.2",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -28,10 +28,10 @@
28
28
  "exports": {
29
29
  ".": {
30
30
  "browser": {
31
- "types": "./dist/browser/index.d.ts",
31
+ "types": "./dist/types/index.d.ts",
32
32
  "default": "./dist/browser/index.mjs"
33
33
  },
34
- "types": "./dist/browser/index.d.ts",
34
+ "types": "./dist/types/index.d.ts",
35
35
  "default": "./dist/browser/index.mjs"
36
36
  },
37
37
  "./package.json": "./package.json"
@@ -43,34 +43,36 @@
43
43
  "lint-pkg": "npmPkgJsonLint ."
44
44
  },
45
45
  "dependencies": {
46
- "@xylabs/react-button": "^5.3.25",
47
- "@xylabs/react-flexbox": "^5.3.25",
48
- "@xylabs/react-identicon": "^5.3.25",
49
- "@xylabs/react-quick-tip-button": "^5.3.25",
50
- "@xyo-network/react-shared": "^4.4.11",
51
- "@xyo-network/typeof": "^3.9.25"
46
+ "@xylabs/react-button": "^6.0.0-rc.2",
47
+ "@xylabs/react-flexbox": "^6.0.0-rc.2",
48
+ "@xylabs/react-identicon": "^6.0.0-rc.2",
49
+ "@xylabs/react-quick-tip-button": "^6.0.0-rc.2",
50
+ "@xyo-network/react-shared": "^5.0.0-rc.2",
51
+ "@xyo-network/typeof": "^3.9.35"
52
52
  },
53
53
  "devDependencies": {
54
- "@mui/icons-material": "^6.4.6",
55
- "@mui/material": "^6.4.6",
56
- "@mui/styles": "^6.4.6",
57
- "@storybook/react": "^8.6.3",
58
- "@xylabs/ts-scripts-yarn3": "^5.0.39",
59
- "@xylabs/tsconfig-react": "^5.0.39",
60
- "react": "^18.3.1",
61
- "react-dom": "^18.3.1",
62
- "storybook": "^8.6.3",
54
+ "@mui/icons-material": "^6.4.7",
55
+ "@mui/material": "^6.4.7",
56
+ "@mui/styles": "^6.4.7",
57
+ "@storybook/react": "^8.6.4",
58
+ "@types/react": "^19.0.10",
59
+ "@xylabs/ts-scripts-yarn3": "^6.0.3",
60
+ "@xylabs/tsconfig-react": "^6.0.3",
61
+ "react": "^19",
62
+ "react-dom": "^19",
63
+ "storybook": "^8.6.4",
63
64
  "typescript": "^5.8.2"
64
65
  },
65
66
  "peerDependencies": {
66
67
  "@mui/icons-material": "^6",
67
68
  "@mui/material": "^6",
68
69
  "@mui/styles": "^6",
69
- "react": "^18",
70
- "react-dom": "^18"
70
+ "react": "^19",
71
+ "react-dom": "^19"
71
72
  },
72
73
  "publishConfig": {
73
74
  "access": "public"
74
75
  },
75
- "docs": "dist/docs.json"
76
+ "docs": "dist/docs.json",
77
+ "stableVersion": "4.4.11"
76
78
  }
@@ -2,7 +2,7 @@ import type { TypographyVariant } from '@mui/material'
2
2
  import { CircularProgress, Paper } from '@mui/material'
3
3
  import { FlexRow } from '@xylabs/react-flexbox'
4
4
  import type { SizeProp } from '@xyo-network/react-shared'
5
- import React, { forwardRef } from 'react'
5
+ import React from 'react'
6
6
 
7
7
  import { PropertyActionsMenu } from './ActionsMenu.tsx'
8
8
  import { IdenticonCorner } from './IdenticonCorner.tsx'
@@ -12,60 +12,58 @@ import type {
12
12
  import { PropertyTitle } from './Title.tsx'
13
13
  import { PropertyValue } from './Value.tsx'
14
14
 
15
- const PropertyBox = forwardRef<HTMLDivElement, PropertyBoxProps>(
16
- ({
17
- titleProps, title, value, children, size = 'medium', tip, actions, required, badge = false, ...props
18
- }, ref) => {
19
- const sizeValueHeight: Record<SizeProp, number> = {
20
- large: 48,
21
- medium: 36,
22
- small: 24,
23
- }
15
+ const PropertyBox = ({
16
+ ref, titleProps, title, value, children, size = 'medium', tip, actions, required, badge = false, ...props
17
+ }: PropertyBoxProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {
18
+ const sizeValueHeight: Record<SizeProp, number> = {
19
+ large: 48,
20
+ medium: 36,
21
+ small: 24,
22
+ }
24
23
 
25
- const sizeVariants: Record<SizeProp, TypographyVariant> = {
26
- large: 'h6',
27
- medium: 'body1',
28
- small: 'body2',
29
- }
24
+ const sizeVariants: Record<SizeProp, TypographyVariant> = {
25
+ large: 'h6',
26
+ medium: 'body1',
27
+ small: 'body2',
28
+ }
30
29
 
31
- return (
32
- <FlexRow ref={ref} flexDirection="column" minWidth={0} alignItems="stretch" overflow="hidden" {...props}>
33
- {title === undefined
30
+ return (
31
+ <FlexRow ref={ref} flexDirection="column" minWidth={0} alignItems="stretch" overflow="hidden" {...props}>
32
+ {title === undefined
33
+ ? null
34
+ : (
35
+ <PropertyTitle
36
+ tip={tip}
37
+ title={required ? `${title}*` : title}
38
+ size={size}
39
+ more={<PropertyActionsMenu actions={actions} />}
40
+ {...titleProps}
41
+ />
42
+ )}
43
+ <FlexRow
44
+ pl={1}
45
+ columnGap={1}
46
+ justifyContent={value === undefined ? 'center' : 'space-between'}
47
+ overflow="hidden"
48
+ height={sizeValueHeight[size]}
49
+ >
50
+ {children ?? ((value === undefined)
51
+ ? <CircularProgress size={16} />
52
+ : <PropertyValue value={value} typographyVariant={sizeVariants[size]} />)}
53
+ {value === undefined
34
54
  ? null
35
- : (
36
- <PropertyTitle
37
- tip={tip}
38
- title={required ? `${title}*` : title}
39
- size={size}
40
- more={<PropertyActionsMenu actions={actions} />}
41
- {...titleProps}
42
- />
43
- )}
44
- <FlexRow
45
- pl={1}
46
- columnGap={1}
47
- justifyContent={value === undefined ? 'center' : 'space-between'}
48
- overflow="hidden"
49
- height={sizeValueHeight[size]}
50
- >
51
- {children ?? ((value === undefined)
52
- ? <CircularProgress size={16} />
53
- : <PropertyValue value={value} typographyVariant={sizeVariants[size]} />)}
54
- {value === undefined
55
- ? null
56
- : badge
57
- ? <IdenticonCorner value={value} />
58
- : null}
59
- </FlexRow>
55
+ : badge
56
+ ? <IdenticonCorner value={value} />
57
+ : null}
60
58
  </FlexRow>
61
- )
62
- },
63
- )
59
+ </FlexRow>
60
+ )
61
+ }
64
62
  PropertyBox.displayName = 'PropertyBox'
65
63
 
66
- const PropertyPaper = forwardRef<HTMLDivElement, PropertyPaperProps>(({
67
- style, variant, elevation = 2, square, ...props
68
- }, ref) => {
64
+ const PropertyPaper = ({
65
+ ref, style, variant, elevation = 2, square, ...props
66
+ }: PropertyPaperProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {
69
67
  return (
70
68
  <Paper
71
69
  ref={ref}
@@ -79,10 +77,10 @@ const PropertyPaper = forwardRef<HTMLDivElement, PropertyPaperProps>(({
79
77
  <PropertyBox {...props} paper={false} />
80
78
  </Paper>
81
79
  )
82
- })
80
+ }
83
81
  PropertyPaper.displayName = 'PropertyPaper'
84
82
 
85
- export const Property = forwardRef<HTMLDivElement, PropertyProps>((props, ref) => {
83
+ export const Property = ({ ref, ...props }: PropertyProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {
86
84
  return props.paper ? <PropertyPaper ref={ref} {...props} /> : <PropertyBox ref={ref} {...props} />
87
- })
85
+ }
88
86
  Property.displayName = 'Property'
@@ -1,16 +1,16 @@
1
1
  import type { Variant } from '@mui/material/styles/createTypography.js'
2
2
  import type { EllipsizeBoxProps } from '@xyo-network/react-shared'
3
3
  import { EllipsizeBox } from '@xyo-network/react-shared'
4
- import React, { forwardRef } from 'react'
4
+ import React from 'react'
5
5
 
6
6
  export interface PropertyValueProps extends Omit<EllipsizeBoxProps, 'ref'> {
7
7
  typographyVariant?: Variant
8
8
  value?: string | number | boolean | null
9
9
  }
10
10
 
11
- export const PropertyValue = forwardRef<HTMLDivElement, PropertyValueProps>(({
12
- typographyVariant = 'body1', value, ...props
13
- }, ref) => {
11
+ export const PropertyValue = ({
12
+ ref, typographyVariant = 'body1', value, ...props
13
+ }: PropertyValueProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {
14
14
  return value === undefined
15
15
  ? null
16
16
  : (
@@ -25,6 +25,6 @@ export const PropertyValue = forwardRef<HTMLDivElement, PropertyValueProps>(({
25
25
  {value}
26
26
  </EllipsizeBox>
27
27
  )
28
- })
28
+ }
29
29
 
30
30
  PropertyValue.displayName = 'PropertyValue'
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import type { PropertyBoxProps, PropertyPaperProps } from './Props.ts';
3
- export declare const Property: React.ForwardRefExoticComponent<(PropertyBoxProps | Omit<PropertyPaperProps, "ref">) & React.RefAttributes<HTMLDivElement>>;
4
- //# sourceMappingURL=Property.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Property.d.ts","sourceRoot":"","sources":["../../../src/components/Property.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAIzC,OAAO,KAAK,EACV,gBAAgB,EAAE,kBAAkB,EACrC,MAAM,YAAY,CAAA;AA0EnB,eAAO,MAAM,QAAQ,6HAEnB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../../src/components/Value.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;CACzC;AAED,eAAO,MAAM,aAAa,2FAiBxB,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes