@flamingo-stack/openframe-frontend-core 0.0.390 → 0.0.391-snapshot.20260709132828

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 (141) hide show
  1. package/dist/{chunk-RAN67OX4.js → chunk-2KW2GOFW.js} +2394 -2203
  2. package/dist/chunk-2KW2GOFW.js.map +1 -0
  3. package/dist/{chunk-3DTVUZUS.cjs → chunk-2Q2PIMSX.cjs} +5 -5
  4. package/dist/{chunk-3DTVUZUS.cjs.map → chunk-2Q2PIMSX.cjs.map} +1 -1
  5. package/dist/{chunk-W4T6Z27I.cjs → chunk-2RCCOZHC.cjs} +15 -15
  6. package/dist/{chunk-W4T6Z27I.cjs.map → chunk-2RCCOZHC.cjs.map} +1 -1
  7. package/dist/{chunk-XR4SQ32H.cjs → chunk-3YBDFKBZ.cjs} +1953 -1762
  8. package/dist/chunk-3YBDFKBZ.cjs.map +1 -0
  9. package/dist/{chunk-PQY63H3D.js → chunk-45IP2W4W.js} +2 -2
  10. package/dist/{chunk-ZT56IO5B.js → chunk-4L4JG5GB.js} +2 -2
  11. package/dist/{chunk-DI55URRP.js → chunk-4ZCXV6GB.js} +4 -4
  12. package/dist/{chunk-PY376F37.cjs → chunk-5PF4BSCV.cjs} +12 -12
  13. package/dist/{chunk-PY376F37.cjs.map → chunk-5PF4BSCV.cjs.map} +1 -1
  14. package/dist/{chunk-ZPMRWBWF.js → chunk-AGZMMTRL.js} +4 -4
  15. package/dist/{chunk-NIBFE2DV.cjs → chunk-ANLFC67D.cjs} +37 -37
  16. package/dist/{chunk-NIBFE2DV.cjs.map → chunk-ANLFC67D.cjs.map} +1 -1
  17. package/dist/{chunk-IDDSEQBZ.js → chunk-AQUU74K4.js} +4 -4
  18. package/dist/{chunk-3BNQCRMN.js → chunk-CSHLDG7J.js} +2 -2
  19. package/dist/{chunk-L5HOLKHH.cjs → chunk-DHJVMIKE.cjs} +26 -26
  20. package/dist/{chunk-L5HOLKHH.cjs.map → chunk-DHJVMIKE.cjs.map} +1 -1
  21. package/dist/{chunk-HWH2ZTP3.cjs → chunk-FGZ23YLT.cjs} +62 -62
  22. package/dist/{chunk-HWH2ZTP3.cjs.map → chunk-FGZ23YLT.cjs.map} +1 -1
  23. package/dist/{chunk-EFY7ALPU.cjs → chunk-GCUAXBR6.cjs} +9 -9
  24. package/dist/{chunk-EFY7ALPU.cjs.map → chunk-GCUAXBR6.cjs.map} +1 -1
  25. package/dist/{chunk-LTGZ46D4.js → chunk-HXFHEKGD.js} +4 -4
  26. package/dist/{chunk-IBEJAPAU.js → chunk-J6QEZIRO.js} +2 -2
  27. package/dist/{chunk-XG4FQFMH.cjs → chunk-NYAZENBC.cjs} +7 -7
  28. package/dist/{chunk-XG4FQFMH.cjs.map → chunk-NYAZENBC.cjs.map} +1 -1
  29. package/dist/{chunk-DAMGTJ7E.js → chunk-QEN2T5AV.js} +2 -2
  30. package/dist/{chunk-MSKUU2C6.js → chunk-R2VRTPLY.js} +2 -2
  31. package/dist/{chunk-33IT4ZAY.js → chunk-SGKMMZBD.js} +2 -2
  32. package/dist/{chunk-TOBDMXND.cjs → chunk-TTL3ILIM.cjs} +31 -31
  33. package/dist/{chunk-TOBDMXND.cjs.map → chunk-TTL3ILIM.cjs.map} +1 -1
  34. package/dist/{chunk-RABSUY3W.cjs → chunk-UCXBVKSM.cjs} +26 -26
  35. package/dist/{chunk-RABSUY3W.cjs.map → chunk-UCXBVKSM.cjs.map} +1 -1
  36. package/dist/{chunk-EIH6WUAP.cjs → chunk-YV4UMWDP.cjs} +59 -59
  37. package/dist/{chunk-EIH6WUAP.cjs.map → chunk-YV4UMWDP.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/approval-batch-message.d.ts +13 -4
  41. package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
  42. package/dist/components/chat/approval-request-message.d.ts.map +1 -1
  43. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  44. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  45. package/dist/components/chat/index.cjs +4 -2
  46. package/dist/components/chat/index.cjs.map +1 -1
  47. package/dist/components/chat/index.js +3 -1
  48. package/dist/components/chat/types/chat.types.d.ts +13 -0
  49. package/dist/components/chat/types/chat.types.d.ts.map +1 -1
  50. package/dist/components/chat/types/component.types.d.ts +21 -3
  51. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  52. package/dist/components/chat/types/message.types.d.ts +3 -0
  53. package/dist/components/chat/types/message.types.d.ts.map +1 -1
  54. package/dist/components/contact/index.cjs +3 -3
  55. package/dist/components/contact/index.js +2 -2
  56. package/dist/components/docs/index.cjs +5 -5
  57. package/dist/components/docs/index.js +4 -4
  58. package/dist/components/embeds/index.cjs +3 -3
  59. package/dist/components/embeds/index.js +2 -2
  60. package/dist/components/faq/index.cjs +3 -3
  61. package/dist/components/faq/index.js +2 -2
  62. package/dist/components/features/auth/auth-shell.d.ts +1 -3
  63. package/dist/components/features/auth/auth-shell.d.ts.map +1 -1
  64. package/dist/components/features/auth/complete-account-form.d.ts +43 -0
  65. package/dist/components/features/auth/complete-account-form.d.ts.map +1 -0
  66. package/dist/components/features/auth/index.d.ts +1 -1
  67. package/dist/components/features/auth/index.d.ts.map +1 -1
  68. package/dist/components/features/index.cjs +2 -2
  69. package/dist/components/features/index.cjs.map +1 -1
  70. package/dist/components/features/index.js +3 -3
  71. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  72. package/dist/components/features/time-tracker/time-tracker-header-button.d.ts +5 -2
  73. package/dist/components/features/time-tracker/time-tracker-header-button.d.ts.map +1 -1
  74. package/dist/components/help-center-pages/index.cjs +20 -20
  75. package/dist/components/help-center-pages/index.js +11 -11
  76. package/dist/components/index.cjs +122 -120
  77. package/dist/components/index.cjs.map +1 -1
  78. package/dist/components/index.js +13 -11
  79. package/dist/components/index.js.map +1 -1
  80. package/dist/components/navigation/app-header.d.ts.map +1 -1
  81. package/dist/components/navigation/app-layout-context.d.ts +34 -0
  82. package/dist/components/navigation/app-layout-context.d.ts.map +1 -0
  83. package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
  84. package/dist/components/navigation/app-layout.d.ts +2 -21
  85. package/dist/components/navigation/app-layout.d.ts.map +1 -1
  86. package/dist/components/navigation/index.cjs +2 -2
  87. package/dist/components/navigation/index.js +1 -1
  88. package/dist/components/onboarding-guides/index.cjs +5 -5
  89. package/dist/components/onboarding-guides/index.js +4 -4
  90. package/dist/components/related-content/index.cjs +3 -3
  91. package/dist/components/related-content/index.js +2 -2
  92. package/dist/components/tickets/index.cjs +5 -5
  93. package/dist/components/tickets/index.js +4 -4
  94. package/dist/components/ui/index.cjs +4 -2
  95. package/dist/components/ui/index.cjs.map +1 -1
  96. package/dist/components/ui/index.js +3 -1
  97. package/dist/index.cjs +4 -2
  98. package/dist/index.cjs.map +1 -1
  99. package/dist/index.js +5 -3
  100. package/dist/utils/index.cjs.map +1 -1
  101. package/dist/utils/index.js.map +1 -1
  102. package/package.json +1 -1
  103. package/src/components/chat/approval-batch-message.tsx +104 -88
  104. package/src/components/chat/approval-request-message.tsx +57 -3
  105. package/src/components/chat/chat-message-enhanced.tsx +16 -2
  106. package/src/components/chat/chat-message-list.tsx +3 -0
  107. package/src/components/chat/types/chat.types.ts +17 -0
  108. package/src/components/chat/types/component.types.ts +21 -3
  109. package/src/components/chat/types/message.types.ts +3 -0
  110. package/src/components/features/auth/auth-shell.tsx +2 -11
  111. package/src/components/features/auth/complete-account-form.tsx +197 -0
  112. package/src/components/features/auth/index.ts +1 -1
  113. package/src/components/features/notifications/notification-drawer.tsx +72 -43
  114. package/src/components/features/time-tracker/time-tracker-header-button.tsx +46 -6
  115. package/src/components/navigation/app-header.tsx +13 -9
  116. package/src/components/navigation/app-layout-context.ts +46 -0
  117. package/src/components/navigation/app-layout-drawer.tsx +21 -11
  118. package/src/components/navigation/app-layout.tsx +17 -39
  119. package/src/stories/ApprovalBatchMessageClient.stories.tsx +20 -62
  120. package/src/stories/auth/CompleteAccount.stories.tsx +103 -0
  121. package/src/stories/auth/CreateOrganization.stories.tsx +0 -6
  122. package/src/stories/auth/Login.stories.tsx +0 -6
  123. package/src/stories/auth/PasswordReset.stories.tsx +0 -6
  124. package/src/styles/app-globals.css +30 -17
  125. package/dist/chunk-RAN67OX4.js.map +0 -1
  126. package/dist/chunk-XR4SQ32H.cjs.map +0 -1
  127. package/dist/components/features/auth/accept-invitation-form.d.ts +0 -23
  128. package/dist/components/features/auth/accept-invitation-form.d.ts.map +0 -1
  129. package/src/components/features/auth/accept-invitation-form.tsx +0 -71
  130. package/src/stories/auth/AcceptInvitation.stories.tsx +0 -54
  131. /package/dist/{chunk-PQY63H3D.js.map → chunk-45IP2W4W.js.map} +0 -0
  132. /package/dist/{chunk-ZT56IO5B.js.map → chunk-4L4JG5GB.js.map} +0 -0
  133. /package/dist/{chunk-DI55URRP.js.map → chunk-4ZCXV6GB.js.map} +0 -0
  134. /package/dist/{chunk-ZPMRWBWF.js.map → chunk-AGZMMTRL.js.map} +0 -0
  135. /package/dist/{chunk-IDDSEQBZ.js.map → chunk-AQUU74K4.js.map} +0 -0
  136. /package/dist/{chunk-3BNQCRMN.js.map → chunk-CSHLDG7J.js.map} +0 -0
  137. /package/dist/{chunk-LTGZ46D4.js.map → chunk-HXFHEKGD.js.map} +0 -0
  138. /package/dist/{chunk-IBEJAPAU.js.map → chunk-J6QEZIRO.js.map} +0 -0
  139. /package/dist/{chunk-DAMGTJ7E.js.map → chunk-QEN2T5AV.js.map} +0 -0
  140. /package/dist/{chunk-MSKUU2C6.js.map → chunk-R2VRTPLY.js.map} +0 -0
  141. /package/dist/{chunk-33IT4ZAY.js.map → chunk-SGKMMZBD.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
- }