@flamingo-stack/openframe-frontend-core 0.0.390 → 0.0.391-snapshot.20260709131023
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.
- package/dist/{chunk-PQY63H3D.js → chunk-2TFCOMFQ.js} +2 -2
- package/dist/{chunk-W4T6Z27I.cjs → chunk-3YV3FI5E.cjs} +15 -15
- package/dist/{chunk-W4T6Z27I.cjs.map → chunk-3YV3FI5E.cjs.map} +1 -1
- package/dist/{chunk-EFY7ALPU.cjs → chunk-5HCC7RSF.cjs} +9 -9
- package/dist/{chunk-EFY7ALPU.cjs.map → chunk-5HCC7RSF.cjs.map} +1 -1
- package/dist/{chunk-NIBFE2DV.cjs → chunk-7GG5RDQB.cjs} +37 -37
- package/dist/{chunk-NIBFE2DV.cjs.map → chunk-7GG5RDQB.cjs.map} +1 -1
- package/dist/{chunk-RABSUY3W.cjs → chunk-AC4E7PQD.cjs} +26 -26
- package/dist/{chunk-RABSUY3W.cjs.map → chunk-AC4E7PQD.cjs.map} +1 -1
- package/dist/{chunk-TOBDMXND.cjs → chunk-AFYFMJPJ.cjs} +31 -31
- package/dist/{chunk-TOBDMXND.cjs.map → chunk-AFYFMJPJ.cjs.map} +1 -1
- package/dist/{chunk-MSKUU2C6.js → chunk-EXJXZAAJ.js} +2 -2
- package/dist/{chunk-IBEJAPAU.js → chunk-GJ6TQJSO.js} +2 -2
- package/dist/{chunk-ZPMRWBWF.js → chunk-GX67RMZM.js} +4 -4
- package/dist/{chunk-3BNQCRMN.js → chunk-IEIDLOYZ.js} +2 -2
- package/dist/{chunk-L5HOLKHH.cjs → chunk-IWWYZDOO.cjs} +26 -26
- package/dist/{chunk-L5HOLKHH.cjs.map → chunk-IWWYZDOO.cjs.map} +1 -1
- package/dist/{chunk-IDDSEQBZ.js → chunk-MQTSJILV.js} +4 -4
- package/dist/{chunk-DI55URRP.js → chunk-OTCBUP5O.js} +4 -4
- package/dist/{chunk-RAN67OX4.js → chunk-QDLI65SB.js} +2249 -2064
- package/dist/chunk-QDLI65SB.js.map +1 -0
- package/dist/{chunk-PY376F37.cjs → chunk-QEYIABOI.cjs} +12 -12
- package/dist/{chunk-PY376F37.cjs.map → chunk-QEYIABOI.cjs.map} +1 -1
- package/dist/{chunk-EIH6WUAP.cjs → chunk-RYEF2GHD.cjs} +59 -59
- package/dist/{chunk-EIH6WUAP.cjs.map → chunk-RYEF2GHD.cjs.map} +1 -1
- package/dist/{chunk-XG4FQFMH.cjs → chunk-SZ2A35GQ.cjs} +7 -7
- package/dist/{chunk-XG4FQFMH.cjs.map → chunk-SZ2A35GQ.cjs.map} +1 -1
- package/dist/{chunk-DAMGTJ7E.js → chunk-UHCO2INP.js} +2 -2
- package/dist/{chunk-XR4SQ32H.cjs → chunk-V4KVHAAF.cjs} +1817 -1632
- package/dist/chunk-V4KVHAAF.cjs.map +1 -0
- package/dist/{chunk-33IT4ZAY.js → chunk-V5ABSONJ.js} +2 -2
- package/dist/{chunk-3DTVUZUS.cjs → chunk-V7WGZ7OA.cjs} +5 -5
- package/dist/{chunk-3DTVUZUS.cjs.map → chunk-V7WGZ7OA.cjs.map} +1 -1
- package/dist/{chunk-ZT56IO5B.js → chunk-XDKKZB6T.js} +2 -2
- package/dist/{chunk-LTGZ46D4.js → chunk-XUPZ3KY5.js} +4 -4
- package/dist/{chunk-HWH2ZTP3.cjs → chunk-ZONZ2HLZ.cjs} +62 -62
- package/dist/{chunk-HWH2ZTP3.cjs.map → chunk-ZONZ2HLZ.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/approval-batch-message.d.ts +13 -4
- package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +4 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +3 -1
- package/dist/components/chat/types/chat.types.d.ts +13 -0
- package/dist/components/chat/types/chat.types.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +21 -3
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/message.types.d.ts +3 -0
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/auth/auth-shell.d.ts +1 -3
- package/dist/components/features/auth/auth-shell.d.ts.map +1 -1
- package/dist/components/features/auth/complete-account-form.d.ts +43 -0
- package/dist/components/features/auth/complete-account-form.d.ts.map +1 -0
- package/dist/components/features/auth/index.d.ts +1 -1
- package/dist/components/features/auth/index.d.ts.map +1 -1
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +3 -3
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/features/time-tracker/time-tracker-header-button.d.ts +5 -2
- package/dist/components/features/time-tracker/time-tracker-header-button.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +122 -120
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +13 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/app-layout-context.d.ts +34 -0
- package/dist/components/navigation/app-layout-context.d.ts.map +1 -0
- package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
- package/dist/components/navigation/app-layout.d.ts +2 -21
- package/dist/components/navigation/app-layout.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +4 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +3 -1
- package/dist/index.cjs +4 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -3
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/approval-batch-message.tsx +104 -88
- package/src/components/chat/approval-request-message.tsx +57 -3
- package/src/components/chat/chat-message-enhanced.tsx +5 -1
- package/src/components/chat/chat-message-list.tsx +3 -0
- package/src/components/chat/types/chat.types.ts +17 -0
- package/src/components/chat/types/component.types.ts +21 -3
- package/src/components/chat/types/message.types.ts +3 -0
- package/src/components/features/auth/auth-shell.tsx +2 -11
- package/src/components/features/auth/complete-account-form.tsx +197 -0
- package/src/components/features/auth/index.ts +1 -1
- package/src/components/features/notifications/notification-drawer.tsx +72 -43
- package/src/components/features/time-tracker/time-tracker-header-button.tsx +46 -6
- package/src/components/navigation/app-header.tsx +13 -9
- package/src/components/navigation/app-layout-context.ts +46 -0
- package/src/components/navigation/app-layout-drawer.tsx +21 -11
- package/src/components/navigation/app-layout.tsx +17 -39
- package/src/stories/ApprovalBatchMessageClient.stories.tsx +20 -62
- package/src/stories/auth/CompleteAccount.stories.tsx +103 -0
- package/src/stories/auth/CreateOrganization.stories.tsx +0 -6
- package/src/stories/auth/Login.stories.tsx +0 -6
- package/src/stories/auth/PasswordReset.stories.tsx +0 -6
- package/src/styles/app-globals.css +30 -17
- package/dist/chunk-RAN67OX4.js.map +0 -1
- package/dist/chunk-XR4SQ32H.cjs.map +0 -1
- package/dist/components/features/auth/accept-invitation-form.d.ts +0 -23
- package/dist/components/features/auth/accept-invitation-form.d.ts.map +0 -1
- package/src/components/features/auth/accept-invitation-form.tsx +0 -71
- package/src/stories/auth/AcceptInvitation.stories.tsx +0 -54
- /package/dist/{chunk-PQY63H3D.js.map → chunk-2TFCOMFQ.js.map} +0 -0
- /package/dist/{chunk-MSKUU2C6.js.map → chunk-EXJXZAAJ.js.map} +0 -0
- /package/dist/{chunk-IBEJAPAU.js.map → chunk-GJ6TQJSO.js.map} +0 -0
- /package/dist/{chunk-ZPMRWBWF.js.map → chunk-GX67RMZM.js.map} +0 -0
- /package/dist/{chunk-3BNQCRMN.js.map → chunk-IEIDLOYZ.js.map} +0 -0
- /package/dist/{chunk-IDDSEQBZ.js.map → chunk-MQTSJILV.js.map} +0 -0
- /package/dist/{chunk-DI55URRP.js.map → chunk-OTCBUP5O.js.map} +0 -0
- /package/dist/{chunk-DAMGTJ7E.js.map → chunk-UHCO2INP.js.map} +0 -0
- /package/dist/{chunk-33IT4ZAY.js.map → chunk-V5ABSONJ.js.map} +0 -0
- /package/dist/{chunk-ZT56IO5B.js.map → chunk-XDKKZB6T.js.map} +0 -0
- /package/dist/{chunk-LTGZ46D4.js.map → chunk-XUPZ3KY5.js.map} +0 -0
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { AuthSsoProvider } from './sso-providers';
|
|
2
|
-
export interface AcceptInvitationFormProps {
|
|
3
|
-
/** Invited email — shown read-only. The field is hidden when empty/absent. */
|
|
4
|
-
email?: string;
|
|
5
|
-
/** SSO providers offered to accept the invitation. */
|
|
6
|
-
ssoProviders: AuthSsoProvider[];
|
|
7
|
-
onSsoClick: (provider: AuthSsoProvider) => void;
|
|
8
|
-
onBackToLogin: () => void;
|
|
9
|
-
/** Verb prefix for provider buttons, e.g. "Sign Up with". Ignored for "openframe". */
|
|
10
|
-
ssoActionLabel?: string;
|
|
11
|
-
emailLabel?: string;
|
|
12
|
-
title?: string;
|
|
13
|
-
subtitle?: string;
|
|
14
|
-
loading?: boolean;
|
|
15
|
-
disabled?: boolean;
|
|
16
|
-
className?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Accept Invitation form. Presentational + controlled — the invited email is
|
|
20
|
-
* read-only; the user picks an SSO provider to join the organization.
|
|
21
|
-
*/
|
|
22
|
-
export declare function AcceptInvitationForm({ email, ssoProviders, onSsoClick, onBackToLogin, ssoActionLabel, emailLabel, title, subtitle, loading, disabled, className, }: AcceptInvitationFormProps): import("react").JSX.Element;
|
|
23
|
-
//# sourceMappingURL=accept-invitation-form.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accept-invitation-form.d.ts","sourceRoot":"","sources":["../../../../src/components/features/auth/accept-invitation-form.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGtD,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,YAAY,EAAE,eAAe,EAAE,CAAA;IAC/B,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAA;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAA+B,EAC/B,UAAoB,EACpB,KAA2B,EAC3B,QAAgE,EAChE,OAAe,EACf,QAAgB,EAChB,SAAS,GACV,EAAE,yBAAyB,+BA6B3B"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import { cn } from '../../../utils/cn'
|
|
4
|
-
import { Input } from '../../ui/input'
|
|
5
|
-
import { BackToLoginLink } from './back-to-login-link'
|
|
6
|
-
import type { AuthSsoProvider } from './sso-providers'
|
|
7
|
-
import { SsoProviderButtons } from './sso-providers'
|
|
8
|
-
|
|
9
|
-
export interface AcceptInvitationFormProps {
|
|
10
|
-
/** Invited email — shown read-only. The field is hidden when empty/absent. */
|
|
11
|
-
email?: string
|
|
12
|
-
/** SSO providers offered to accept the invitation. */
|
|
13
|
-
ssoProviders: AuthSsoProvider[]
|
|
14
|
-
onSsoClick: (provider: AuthSsoProvider) => void
|
|
15
|
-
onBackToLogin: () => void
|
|
16
|
-
/** Verb prefix for provider buttons, e.g. "Sign Up with". Ignored for "openframe". */
|
|
17
|
-
ssoActionLabel?: string
|
|
18
|
-
emailLabel?: string
|
|
19
|
-
title?: string
|
|
20
|
-
subtitle?: string
|
|
21
|
-
loading?: boolean
|
|
22
|
-
disabled?: boolean
|
|
23
|
-
className?: string
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Accept Invitation form. Presentational + controlled — the invited email is
|
|
28
|
-
* read-only; the user picks an SSO provider to join the organization.
|
|
29
|
-
*/
|
|
30
|
-
export function AcceptInvitationForm({
|
|
31
|
-
email,
|
|
32
|
-
ssoProviders,
|
|
33
|
-
onSsoClick,
|
|
34
|
-
onBackToLogin,
|
|
35
|
-
ssoActionLabel = 'Sign Up with',
|
|
36
|
-
emailLabel = 'Email',
|
|
37
|
-
title = 'Accept Invitation',
|
|
38
|
-
subtitle = 'Complete your registration to join the organization',
|
|
39
|
-
loading = false,
|
|
40
|
-
disabled = false,
|
|
41
|
-
className,
|
|
42
|
-
}: AcceptInvitationFormProps) {
|
|
43
|
-
return (
|
|
44
|
-
<div
|
|
45
|
-
className={cn(
|
|
46
|
-
'flex w-full flex-col gap-[var(--spacing-system-l)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-xl)]',
|
|
47
|
-
className,
|
|
48
|
-
)}
|
|
49
|
-
>
|
|
50
|
-
{/* Header */}
|
|
51
|
-
<div className="flex flex-col">
|
|
52
|
-
<h1 className="text-h2 text-ods-text-primary tracking-[-0.64px]">{title}</h1>
|
|
53
|
-
<p className="text-h4 text-ods-text-secondary">{subtitle}</p>
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
|
-
{/* Invited email — read-only; hidden when the backend didn't provide it */}
|
|
57
|
-
{email && <Input type="email" label={emailLabel} value={email} disabled />}
|
|
58
|
-
|
|
59
|
-
{/* SSO providers */}
|
|
60
|
-
<SsoProviderButtons
|
|
61
|
-
providers={ssoProviders}
|
|
62
|
-
onSsoClick={onSsoClick}
|
|
63
|
-
actionLabel={ssoActionLabel}
|
|
64
|
-
disabled={disabled || loading}
|
|
65
|
-
/>
|
|
66
|
-
|
|
67
|
-
{/* Back to Login — in-card on tablet/mobile; desktop shows it in the shell footer */}
|
|
68
|
-
<BackToLoginLink onClick={onBackToLogin} className="self-start lg:hidden" />
|
|
69
|
-
</div>
|
|
70
|
-
)
|
|
71
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/nextjs-vite'
|
|
2
|
-
import {
|
|
3
|
-
AcceptInvitationForm,
|
|
4
|
-
type AuthSsoProvider,
|
|
5
|
-
AuthShell,
|
|
6
|
-
BackToLoginLink,
|
|
7
|
-
} from '../../components/features/auth'
|
|
8
|
-
|
|
9
|
-
const meta = {
|
|
10
|
-
title: 'Auth/Accept Invitation',
|
|
11
|
-
component: AcceptInvitationForm,
|
|
12
|
-
parameters: {
|
|
13
|
-
layout: 'fullscreen',
|
|
14
|
-
docs: {
|
|
15
|
-
description: {
|
|
16
|
-
component:
|
|
17
|
-
'Accept Invitation from the auth redesign. Presentational + controlled: read-only invited email (prefilled from the invitation link) and SSO providers to join the org. Shown inside AuthShell without tabs.',
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
tags: ['autodocs'],
|
|
22
|
-
} satisfies Meta<typeof AcceptInvitationForm>
|
|
23
|
-
|
|
24
|
-
export default meta
|
|
25
|
-
type Story = StoryObj<typeof meta>
|
|
26
|
-
|
|
27
|
-
const SSO_PROVIDERS: AuthSsoProvider[] = ['openframe', 'google', 'microsoft']
|
|
28
|
-
|
|
29
|
-
/** Full page: invitation form + marketing panel (no tabs). */
|
|
30
|
-
function AcceptInvitationPage() {
|
|
31
|
-
return (
|
|
32
|
-
<AuthShell
|
|
33
|
-
mobileTagline={
|
|
34
|
-
<>
|
|
35
|
-
<p>All your MSP ops in one place.</p>
|
|
36
|
-
<p>Open-source, AI-ready, no vendor tax.</p>
|
|
37
|
-
</>
|
|
38
|
-
}
|
|
39
|
-
footer={<BackToLoginLink onClick={() => {}} />}
|
|
40
|
-
>
|
|
41
|
-
<AcceptInvitationForm
|
|
42
|
-
email="roman@mail.com"
|
|
43
|
-
ssoProviders={SSO_PROVIDERS}
|
|
44
|
-
onSsoClick={() => {}}
|
|
45
|
-
onBackToLogin={() => {}}
|
|
46
|
-
/>
|
|
47
|
-
</AuthShell>
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/** Prefilled invited email, SSO providers ready to pick. */
|
|
52
|
-
export const Default: Story = {
|
|
53
|
-
render: () => <AcceptInvitationPage />,
|
|
54
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|