@dxos/plugin-preview 0.8.3 → 0.8.4-main.03d5cd7b56

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 (135) hide show
  1. package/dist/lib/neutral/PreviewPlugin.mjs +9 -0
  2. package/dist/lib/neutral/PreviewPlugin.mjs.map +7 -0
  3. package/dist/lib/neutral/PreviewPlugin.node.mjs +17 -0
  4. package/dist/lib/neutral/PreviewPlugin.node.mjs.map +7 -0
  5. package/dist/lib/neutral/capabilities/index.mjs +9 -0
  6. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  7. package/dist/lib/neutral/chunk-3SWUVHXJ.mjs +28 -0
  8. package/dist/lib/neutral/chunk-3SWUVHXJ.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-52UEVZSF.mjs +17 -0
  10. package/dist/lib/neutral/chunk-52UEVZSF.mjs.map +7 -0
  11. package/dist/lib/neutral/index.mjs +7 -0
  12. package/dist/lib/neutral/index.mjs.map +7 -0
  13. package/dist/lib/neutral/meta.json +1 -0
  14. package/dist/lib/neutral/meta.mjs +7 -0
  15. package/dist/lib/neutral/meta.mjs.map +7 -0
  16. package/dist/lib/neutral/plugin.mjs +11 -0
  17. package/dist/lib/neutral/plugin.mjs.map +7 -0
  18. package/dist/lib/neutral/preview-popover-MPPEMUIA.mjs +78 -0
  19. package/dist/lib/neutral/preview-popover-MPPEMUIA.mjs.map +7 -0
  20. package/dist/lib/neutral/react-surface-YFFJXXPQ.mjs +348 -0
  21. package/dist/lib/neutral/react-surface-YFFJXXPQ.mjs.map +7 -0
  22. package/dist/lib/neutral/testing.mjs +7 -0
  23. package/dist/lib/neutral/testing.mjs.map +7 -0
  24. package/dist/lib/neutral/translations.mjs +21 -0
  25. package/dist/lib/neutral/translations.mjs.map +7 -0
  26. package/dist/types/src/PreviewPlugin.d.ts +3 -1
  27. package/dist/types/src/PreviewPlugin.d.ts.map +1 -1
  28. package/dist/types/src/PreviewPlugin.node.d.ts +4 -0
  29. package/dist/types/src/PreviewPlugin.node.d.ts.map +1 -0
  30. package/dist/types/src/PreviewPlugin.test.d.ts +2 -0
  31. package/dist/types/src/PreviewPlugin.test.d.ts.map +1 -0
  32. package/dist/types/src/capabilities/index.d.ts +3 -2
  33. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  34. package/dist/types/src/capabilities/preview-popover.d.ts +3 -2
  35. package/dist/types/src/capabilities/preview-popover.d.ts.map +1 -1
  36. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  37. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  38. package/dist/types/src/cards/ExpandoCard.d.ts +4 -0
  39. package/dist/types/src/cards/ExpandoCard.d.ts.map +1 -0
  40. package/dist/types/src/cards/FormCard.d.ts +7 -0
  41. package/dist/types/src/cards/FormCard.d.ts.map +1 -0
  42. package/dist/types/src/cards/JsonCard.d.ts +5 -0
  43. package/dist/types/src/cards/JsonCard.d.ts.map +1 -0
  44. package/dist/types/src/cards/OrganizationCard.d.ts +5 -0
  45. package/dist/types/src/cards/OrganizationCard.d.ts.map +1 -0
  46. package/dist/types/src/cards/PersonCard.d.ts +5 -0
  47. package/dist/types/src/cards/PersonCard.d.ts.map +1 -0
  48. package/dist/types/src/cards/ProjectCard.d.ts +5 -0
  49. package/dist/types/src/cards/ProjectCard.d.ts.map +1 -0
  50. package/dist/types/src/cards/TaskCard.d.ts +5 -0
  51. package/dist/types/src/cards/TaskCard.d.ts.map +1 -0
  52. package/dist/types/src/cards/index.d.ts +8 -0
  53. package/dist/types/src/cards/index.d.ts.map +1 -0
  54. package/dist/types/src/index.d.ts +0 -2
  55. package/dist/types/src/index.d.ts.map +1 -1
  56. package/dist/types/src/meta.d.ts +2 -3
  57. package/dist/types/src/meta.d.ts.map +1 -1
  58. package/dist/types/src/plugin.d.ts +3 -0
  59. package/dist/types/src/plugin.d.ts.map +1 -0
  60. package/dist/types/src/stories/Card.stories.d.ts +38 -0
  61. package/dist/types/src/stories/Card.stories.d.ts.map +1 -0
  62. package/dist/types/src/stories/testing.d.ts +21 -0
  63. package/dist/types/src/stories/testing.d.ts.map +1 -0
  64. package/dist/types/src/testing.d.ts +2 -0
  65. package/dist/types/src/testing.d.ts.map +1 -0
  66. package/dist/types/src/translations.d.ts +11 -6
  67. package/dist/types/src/translations.d.ts.map +1 -1
  68. package/dist/types/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +88 -34
  70. package/src/PreviewPlugin.node.ts +16 -0
  71. package/src/PreviewPlugin.test.ts +25 -0
  72. package/src/PreviewPlugin.tsx +19 -29
  73. package/src/capabilities/index.ts +3 -3
  74. package/src/capabilities/preview-popover.ts +71 -49
  75. package/src/capabilities/react-surface.tsx +108 -120
  76. package/src/cards/ExpandoCard.tsx +76 -0
  77. package/src/cards/FormCard.tsx +48 -0
  78. package/src/cards/JsonCard.tsx +19 -0
  79. package/src/cards/OrganizationCard.tsx +29 -0
  80. package/src/cards/PersonCard.tsx +65 -0
  81. package/src/cards/ProjectCard.tsx +22 -0
  82. package/src/cards/TaskCard.tsx +44 -0
  83. package/src/cards/index.ts +11 -0
  84. package/src/index.ts +0 -3
  85. package/src/meta.ts +8 -5
  86. package/src/plugin.ts +9 -0
  87. package/src/stories/Card.stories.tsx +121 -0
  88. package/src/stories/testing.tsx +101 -0
  89. package/src/testing.ts +7 -0
  90. package/src/translations.ts +13 -5
  91. package/dist/lib/browser/chunk-LFAK2TMG.mjs +0 -14
  92. package/dist/lib/browser/chunk-LFAK2TMG.mjs.map +0 -7
  93. package/dist/lib/browser/index.mjs +0 -60
  94. package/dist/lib/browser/index.mjs.map +0 -7
  95. package/dist/lib/browser/meta.json +0 -1
  96. package/dist/lib/browser/preview-popover-NRFVC4QQ.mjs +0 -69
  97. package/dist/lib/browser/preview-popover-NRFVC4QQ.mjs.map +0 -7
  98. package/dist/lib/browser/react-surface-J2R6Q33B.mjs +0 -272
  99. package/dist/lib/browser/react-surface-J2R6Q33B.mjs.map +0 -7
  100. package/dist/lib/node/chunk-XGHMBEIV.cjs +0 -37
  101. package/dist/lib/node/chunk-XGHMBEIV.cjs.map +0 -7
  102. package/dist/lib/node/index.cjs +0 -85
  103. package/dist/lib/node/index.cjs.map +0 -7
  104. package/dist/lib/node/meta.json +0 -1
  105. package/dist/lib/node/preview-popover-HIXRYF6L.cjs +0 -88
  106. package/dist/lib/node/preview-popover-HIXRYF6L.cjs.map +0 -7
  107. package/dist/lib/node/react-surface-ZSNNAKBG.cjs +0 -290
  108. package/dist/lib/node/react-surface-ZSNNAKBG.cjs.map +0 -7
  109. package/dist/lib/node-esm/chunk-7BPXNL44.mjs +0 -16
  110. package/dist/lib/node-esm/chunk-7BPXNL44.mjs.map +0 -7
  111. package/dist/lib/node-esm/index.mjs +0 -61
  112. package/dist/lib/node-esm/index.mjs.map +0 -7
  113. package/dist/lib/node-esm/meta.json +0 -1
  114. package/dist/lib/node-esm/preview-popover-HBGSL64N.mjs +0 -71
  115. package/dist/lib/node-esm/preview-popover-HBGSL64N.mjs.map +0 -7
  116. package/dist/lib/node-esm/react-surface-UKEVHG5K.mjs +0 -273
  117. package/dist/lib/node-esm/react-surface-UKEVHG5K.mjs.map +0 -7
  118. package/dist/types/src/Preview.stories.d.ts +0 -127
  119. package/dist/types/src/Preview.stories.d.ts.map +0 -1
  120. package/dist/types/src/components/ContactCard.d.ts +0 -7
  121. package/dist/types/src/components/ContactCard.d.ts.map +0 -1
  122. package/dist/types/src/components/OrganizationCard.d.ts +0 -5
  123. package/dist/types/src/components/OrganizationCard.d.ts.map +0 -1
  124. package/dist/types/src/components/ProjectCard.d.ts +0 -5
  125. package/dist/types/src/components/ProjectCard.d.ts.map +0 -1
  126. package/dist/types/src/components/index.d.ts +0 -4
  127. package/dist/types/src/components/index.d.ts.map +0 -1
  128. package/dist/types/src/types.d.ts +0 -6
  129. package/dist/types/src/types.d.ts.map +0 -1
  130. package/src/Preview.stories.tsx +0 -147
  131. package/src/components/ContactCard.tsx +0 -70
  132. package/src/components/OrganizationCard.tsx +0 -41
  133. package/src/components/ProjectCard.tsx +0 -20
  134. package/src/components/index.ts +0 -7
  135. package/src/types.ts +0 -11
@@ -1 +0,0 @@
1
- {"version":3,"file":"Preview.stories.d.ts","sourceRoot":"","sources":["../../../src/Preview.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,CAsB1B,CAAC;AAEF,eAAe,IAAI,CAAC;AA2CpB,eAAO,MAAM,gBAAgB;;;sBA7EpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoFT,CAAC;AAEF,eAAO,MAAM,cAAc;;;sBAtFlB,CAAC;;;;;;CA6FT,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;CAOjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAO5B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;CAO1B,CAAC"}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { type DataType } from '@dxos/schema';
3
- import { type PreviewProps } from '../types';
4
- export declare const ContactCard: ({ children, subject: { fullName, image, organization, emails }, onOrgClick, role, }: PreviewProps<DataType.Person> & {
5
- onOrgClick?: (org: DataType.Organization) => void;
6
- }) => React.JSX.Element;
7
- //# sourceMappingURL=ContactCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContactCard.d.ts","sourceRoot":"","sources":["../../../../src/components/ContactCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,qFAKzB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAA;CAAE,sBAmDvF,CAAC"}
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import { type DataType } from '@dxos/schema';
3
- import { type PreviewProps } from '../types';
4
- export declare const OrganizationCard: ({ children, subject: { name, image, description, website }, role, }: PreviewProps<DataType.Organization>) => React.JSX.Element;
5
- //# sourceMappingURL=OrganizationCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrganizationCard.d.ts","sourceRoot":"","sources":["../../../../src/components/OrganizationCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,gBAAgB,GAAI,qEAI9B,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,sBAwBrC,CAAC"}
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import { type DataType } from '@dxos/schema';
3
- import { type PreviewProps } from '../types';
4
- export declare const ProjectCard: ({ subject: { name, image, description }, role }: PreviewProps<DataType.Project>) => React.JSX.Element;
5
- //# sourceMappingURL=ProjectCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectCard.d.ts","sourceRoot":"","sources":["../../../../src/components/ProjectCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,GAAI,iDAAiD,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAQ1G,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './ContactCard';
2
- export * from './OrganizationCard';
3
- export * from './ProjectCard';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -1,6 +0,0 @@
1
- import { type PropsWithChildren } from 'react';
2
- export type PreviewProps<T extends object> = PropsWithChildren<{
3
- subject: T;
4
- role?: string;
5
- }>;
6
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,iBAAiB,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAAC"}
@@ -1,147 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react';
8
- import React, { type FC } from 'react';
9
-
10
- import { Obj, Ref } from '@dxos/echo';
11
- import { faker } from '@dxos/random';
12
- import { Icon, Popover } from '@dxos/react-ui';
13
- import { DataType } from '@dxos/schema';
14
- import { withTheme, withLayout } from '@dxos/storybook-utils';
15
-
16
- import { ContactCard, OrganizationCard, ProjectCard } from './components';
17
- import translations from './translations';
18
- import { type PreviewProps } from './types';
19
-
20
- faker.seed(1234);
21
-
22
- type StoryProps = {
23
- Component: FC<PreviewProps<any>>;
24
- icon: string;
25
- subject: any;
26
- };
27
-
28
- const meta: Meta<StoryProps> = {
29
- title: 'plugins/plugin-preview/Preview',
30
- render: ({ Component, icon, ...args }) => {
31
- return (
32
- <Popover.Root open>
33
- <Popover.Content>
34
- <Popover.Viewport>
35
- <Component {...args} role='popover' />
36
- </Popover.Viewport>
37
- <Popover.Arrow />
38
- </Popover.Content>
39
- <Popover.Trigger>
40
- <Icon icon={icon} size={5} />
41
- </Popover.Trigger>
42
- </Popover.Root>
43
- );
44
- },
45
- decorators: [withTheme, withLayout()],
46
- parameters: {
47
- layout: 'centered',
48
- translations,
49
- },
50
- };
51
-
52
- export default meta;
53
-
54
- const omitImage = ({ image, ...rest }: any) => rest;
55
-
56
- const data = (() => {
57
- const organization = Obj.make(DataType.Organization, {
58
- name: faker.company.name(),
59
- image:
60
- 'https://plus.unsplash.com/premium_photo-1672116452571-896980a801c8?q=80&w=2671&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
61
- website: faker.internet.url(),
62
- description: faker.lorem.paragraph(),
63
- });
64
-
65
- const contact = Obj.make(DataType.Person, {
66
- fullName: faker.person.fullName(),
67
- image:
68
- 'https://plus.unsplash.com/premium_photo-1664536392779-049ba8fde933?q=80&w=2574&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
69
- organization: Ref.make(organization),
70
- emails: [
71
- {
72
- label: 'Work',
73
- value: faker.internet.email(),
74
- },
75
- {
76
- label: 'Work',
77
- value: faker.internet.email(),
78
- },
79
- {
80
- label: 'Work',
81
- value: faker.internet.email(),
82
- },
83
- ],
84
- });
85
-
86
- const project = Obj.make(DataType.Project, {
87
- name: faker.person.fullName(),
88
- image: 'https://dxos.network/dxos-logotype-blue.png',
89
- description: faker.lorem.paragraph(),
90
- });
91
-
92
- return { organization, contact, project };
93
- })();
94
-
95
- export const ContactWithImage = {
96
- args: {
97
- Component: ContactCard,
98
- icon: 'ph--user--regular',
99
- subject: data.contact,
100
- role: 'popover',
101
- },
102
- };
103
-
104
- export const ContactNoImage = {
105
- args: {
106
- Component: ContactCard,
107
- icon: 'ph--user--regular',
108
- subject: omitImage(data.contact),
109
- role: 'popover',
110
- },
111
- };
112
-
113
- export const OrganizationWithImage = {
114
- args: {
115
- Component: OrganizationCard,
116
- icon: 'ph--building-office--regular',
117
- subject: data.organization,
118
- role: 'popover',
119
- },
120
- };
121
-
122
- export const OrganizationNoImage = {
123
- args: {
124
- Component: OrganizationCard,
125
- icon: 'ph--building-office--regular',
126
- subject: omitImage(data.organization),
127
- role: 'popover',
128
- },
129
- };
130
-
131
- export const ProjectWithImage = {
132
- args: {
133
- Component: ProjectCard,
134
- icon: 'ph--building--regular',
135
- subject: data.project,
136
- role: 'popover',
137
- },
138
- };
139
-
140
- export const ProjectNoImage = {
141
- args: {
142
- Component: ProjectCard,
143
- icon: 'ph--building--regular',
144
- subject: omitImage(data.project),
145
- role: 'popover',
146
- },
147
- };
@@ -1,70 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React, { Fragment } from 'react';
6
-
7
- import { Icon, Avatar, Button } from '@dxos/react-ui';
8
- import { Card, cardHeading, cardText } from '@dxos/react-ui-stack';
9
- import { mx } from '@dxos/react-ui-theme';
10
- import { type DataType } from '@dxos/schema';
11
-
12
- import { type PreviewProps } from '../types';
13
-
14
- export const ContactCard = ({
15
- children,
16
- subject: { fullName, image, organization, emails },
17
- onOrgClick,
18
- role,
19
- }: PreviewProps<DataType.Person> & { onOrgClick?: (org: DataType.Organization) => void }) => {
20
- const organizationName = organization && typeof organization === 'object' ? organization.target?.name : organization;
21
- return (
22
- <Card.Container role={role}>
23
- <Avatar.Root>
24
- <Card.Text role='group' classNames='grid gap-3 grid-cols-[min-content_1fr]'>
25
- <Avatar.Content imgSrc={image} icon='ph--user--regular' size={16} hue='neutral' />
26
- <div role='none' className='bs-min self-center'>
27
- <Avatar.Label asChild>
28
- <h2 className={cardHeading}>{fullName}</h2>
29
- </Avatar.Label>
30
- </div>
31
- </Card.Text>
32
- </Avatar.Root>
33
- {organizationName && (
34
- <Card.Chrome>
35
- {typeof organization === 'object' && onOrgClick ? (
36
- <Button variant='ghost' classNames='gap-2 text-start' onClick={() => onOrgClick(organization.target!)}>
37
- <Icon icon='ph--buildings--regular' size={5} classNames='text-subdued' />
38
- <span className='min-is-0 flex-1 truncate'>{organizationName}</span>
39
- <Icon icon='ph--arrow-right--regular' />
40
- </Button>
41
- ) : (
42
- <p className='dx-button gap-2' data-variant='ghost'>
43
- <Icon icon='ph--buildings--regular' size={5} classNames='text-subdued' />
44
- <span className='min-is-0 flex-1 truncate'>{organizationName}</span>
45
- </p>
46
- )}
47
- </Card.Chrome>
48
- )}
49
- <dl
50
- className={mx(
51
- cardText,
52
- 'grid gap-2 grid-cols-[min-content_1fr] [&_dt]:text-subdued [&_dt]:pbs-0.5 [&_dd]:min-is-0',
53
- )}
54
- >
55
- {emails?.length &&
56
- emails.map(({ label, value }) => (
57
- <Fragment key={value}>
58
- <dt>
59
- <Icon icon='ph--at--regular' size={5} />
60
- </dt>
61
- <dd key={value} className='break-words'>
62
- {value}
63
- </dd>
64
- </Fragment>
65
- ))}
66
- </dl>
67
- {children}
68
- </Card.Container>
69
- );
70
- };
@@ -1,41 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { Icon } from '@dxos/react-ui';
8
- import { Card } from '@dxos/react-ui-stack';
9
- import { type DataType } from '@dxos/schema';
10
-
11
- import { type PreviewProps } from '../types';
12
-
13
- export const OrganizationCard = ({
14
- children,
15
- subject: { name, image, description, website },
16
- role,
17
- }: PreviewProps<DataType.Organization>) => {
18
- return (
19
- <Card.Container role={role}>
20
- <Card.Poster alt={name!} {...(image ? { image } : { icon: 'ph--building-office--regular' })} />
21
- <Card.Heading>{name}</Card.Heading>
22
- {description && <Card.Text classNames='line-clamp-2'>{description}</Card.Text>}
23
- {website && (
24
- <Card.Chrome>
25
- <a
26
- className='dx-button dx-focus-ring gap-2'
27
- data-variant='ghost'
28
- href={website}
29
- target='_blank'
30
- rel='noreferrer'
31
- >
32
- <Icon icon='ph--link--regular' size={5} classNames='text-subdued' />
33
- <span className='grow'>{website}</span>
34
- <Icon icon='ph--arrow-square-out--regular' />
35
- </a>
36
- </Card.Chrome>
37
- )}
38
- {children}
39
- </Card.Container>
40
- );
41
- };
@@ -1,20 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { Card } from '@dxos/react-ui-stack';
8
- import { type DataType } from '@dxos/schema';
9
-
10
- import { type PreviewProps } from '../types';
11
-
12
- export const ProjectCard = ({ subject: { name, image, description }, role }: PreviewProps<DataType.Project>) => {
13
- return (
14
- <Card.Container role={role}>
15
- {image && <Card.Poster image={image} alt={name} aspect='auto' />}
16
- <Card.Heading>{name}</Card.Heading>
17
- {description && <Card.Text classNames='line-clamp-2'>{description}</Card.Text>}
18
- </Card.Container>
19
- );
20
- };
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './ContactCard';
6
- export * from './OrganizationCard';
7
- export * from './ProjectCard';
package/src/types.ts DELETED
@@ -1,11 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type PropsWithChildren } from 'react';
6
-
7
- // TODO(burdon): Better place for these defs?
8
- export type PreviewProps<T extends object> = PropsWithChildren<{
9
- subject: T;
10
- role?: string;
11
- }>;