@flamingo-stack/openframe-frontend-core 0.0.380 → 0.0.381-snapshot.20260708122906

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 (112) hide show
  1. package/dist/{chunk-U5WZLNNP.js → chunk-23PZFAET.js} +4 -4
  2. package/dist/{chunk-AIWSELEM.cjs → chunk-32YONDMH.cjs} +30 -30
  3. package/dist/{chunk-AIWSELEM.cjs.map → chunk-32YONDMH.cjs.map} +1 -1
  4. package/dist/{chunk-QQJJJSYG.js → chunk-3GGIVFSI.js} +3 -3
  5. package/dist/{chunk-WE6PHQMR.js → chunk-4A4DA7OX.js} +2 -2
  6. package/dist/{chunk-ZM6IITQ6.cjs → chunk-7IQK3Y3G.cjs} +25 -25
  7. package/dist/{chunk-ZM6IITQ6.cjs.map → chunk-7IQK3Y3G.cjs.map} +1 -1
  8. package/dist/{chunk-NZ7UWZDX.cjs → chunk-AS6FET7G.cjs} +19 -19
  9. package/dist/{chunk-NZ7UWZDX.cjs.map → chunk-AS6FET7G.cjs.map} +1 -1
  10. package/dist/{chunk-T3RWEEML.js → chunk-DQJCWNRT.js} +3 -3
  11. package/dist/{chunk-RHBCKJVP.cjs → chunk-EE26RXMG.cjs} +12 -12
  12. package/dist/{chunk-RHBCKJVP.cjs.map → chunk-EE26RXMG.cjs.map} +1 -1
  13. package/dist/{chunk-PRA7467B.js → chunk-GZ5N76H2.js} +4 -4
  14. package/dist/{chunk-N4PA44BJ.js → chunk-GZIHB6TH.js} +90 -99
  15. package/dist/{chunk-N4PA44BJ.js.map → chunk-GZIHB6TH.js.map} +1 -1
  16. package/dist/{chunk-NC53B5ZJ.js → chunk-HDWY2SXF.js} +4 -4
  17. package/dist/{chunk-2D7HO6RK.cjs → chunk-IENK6OY5.cjs} +5 -5
  18. package/dist/{chunk-2D7HO6RK.cjs.map → chunk-IENK6OY5.cjs.map} +1 -1
  19. package/dist/{chunk-752ULO73.cjs → chunk-JQT7PD6Z.cjs} +57 -57
  20. package/dist/{chunk-752ULO73.cjs.map → chunk-JQT7PD6Z.cjs.map} +1 -1
  21. package/dist/{chunk-EQO6DKVS.js → chunk-K5P6XKIT.js} +2 -2
  22. package/dist/{chunk-EASN3OWV.cjs → chunk-L3DRZ2WE.cjs} +82 -82
  23. package/dist/{chunk-EASN3OWV.cjs.map → chunk-L3DRZ2WE.cjs.map} +1 -1
  24. package/dist/{chunk-QM4UDTZ3.js → chunk-LIK575RM.js} +2 -2
  25. package/dist/{chunk-FVKRKWAT.js → chunk-LRA7FGQC.js} +5 -5
  26. package/dist/{chunk-3Y4XNSHE.js → chunk-MGDDM2UI.js} +3 -3
  27. package/dist/{chunk-QJGRP2YE.cjs → chunk-NYIZVI4I.cjs} +7 -4
  28. package/dist/chunk-NYIZVI4I.cjs.map +1 -0
  29. package/dist/{chunk-CTEN4ADV.js → chunk-PI3XFKEW.js} +2 -2
  30. package/dist/{chunk-2MYFKIPD.cjs → chunk-QI3PW4F7.cjs} +12 -12
  31. package/dist/{chunk-2MYFKIPD.cjs.map → chunk-QI3PW4F7.cjs.map} +1 -1
  32. package/dist/{chunk-5YJJLD66.cjs → chunk-QQAHEWSR.cjs} +31 -31
  33. package/dist/{chunk-5YJJLD66.cjs.map → chunk-QQAHEWSR.cjs.map} +1 -1
  34. package/dist/{chunk-2RQKK2BY.cjs → chunk-SZSBHBXE.cjs} +838 -847
  35. package/dist/chunk-SZSBHBXE.cjs.map +1 -0
  36. package/dist/{chunk-AI5X5JTD.js → chunk-X2FPWS3P.js} +7 -4
  37. package/dist/chunk-X2FPWS3P.js.map +1 -0
  38. package/dist/{chunk-4U3AHQTQ.cjs → chunk-XHCRZDM6.cjs} +37 -37
  39. package/dist/{chunk-4U3AHQTQ.cjs.map → chunk-XHCRZDM6.cjs.map} +1 -1
  40. package/dist/{chunk-NP2BBKUM.cjs → chunk-Z56MCQ6X.cjs} +9 -9
  41. package/dist/{chunk-NP2BBKUM.cjs.map → chunk-Z56MCQ6X.cjs.map} +1 -1
  42. package/dist/components/badge.d.ts +1 -1
  43. package/dist/components/case-studies/index.cjs +9 -9
  44. package/dist/components/case-studies/index.js +3 -3
  45. package/dist/components/chat/index.cjs +3 -3
  46. package/dist/components/chat/index.js +2 -2
  47. package/dist/components/contact/index.cjs +4 -4
  48. package/dist/components/contact/index.js +3 -3
  49. package/dist/components/docs/index.cjs +6 -6
  50. package/dist/components/docs/index.js +5 -5
  51. package/dist/components/embeds/index.cjs +4 -4
  52. package/dist/components/embeds/index.js +3 -3
  53. package/dist/components/faq/index.cjs +4 -4
  54. package/dist/components/faq/index.js +3 -3
  55. package/dist/components/features/auth/accept-invitation-form.d.ts +3 -9
  56. package/dist/components/features/auth/accept-invitation-form.d.ts.map +1 -1
  57. package/dist/components/features/auth/create-organization-form.d.ts +6 -1
  58. package/dist/components/features/auth/create-organization-form.d.ts.map +1 -1
  59. package/dist/components/features/auth/invite-link-invalid-modal.d.ts +3 -2
  60. package/dist/components/features/auth/invite-link-invalid-modal.d.ts.map +1 -1
  61. package/dist/components/features/auth/password-reset-form.d.ts +3 -1
  62. package/dist/components/features/auth/password-reset-form.d.ts.map +1 -1
  63. package/dist/components/features/index.cjs +3 -3
  64. package/dist/components/features/index.js +2 -2
  65. package/dist/components/help-center-pages/index.cjs +21 -21
  66. package/dist/components/help-center-pages/index.js +12 -12
  67. package/dist/components/index.cjs +144 -144
  68. package/dist/components/index.js +10 -10
  69. package/dist/components/navigation/index.cjs +3 -3
  70. package/dist/components/navigation/index.js +2 -2
  71. package/dist/components/onboarding-guides/index.cjs +6 -6
  72. package/dist/components/onboarding-guides/index.js +5 -5
  73. package/dist/components/related-content/index.cjs +4 -4
  74. package/dist/components/related-content/index.js +3 -3
  75. package/dist/components/tickets/index.cjs +6 -6
  76. package/dist/components/tickets/index.js +5 -5
  77. package/dist/components/ui/badge.d.ts +1 -1
  78. package/dist/components/ui/field-wrapper.d.ts +3 -3
  79. package/dist/components/ui/field-wrapper.d.ts.map +1 -1
  80. package/dist/components/ui/file-manager/index.cjs +50 -50
  81. package/dist/components/ui/file-manager/index.js +1 -1
  82. package/dist/components/ui/index.cjs +3 -3
  83. package/dist/components/ui/index.js +2 -2
  84. package/dist/components/ui/input.d.ts +4 -3
  85. package/dist/components/ui/input.d.ts.map +1 -1
  86. package/dist/components/ui/status-badge.d.ts +1 -1
  87. package/dist/components/ui/tag.d.ts +1 -1
  88. package/dist/index.cjs +3 -3
  89. package/dist/index.js +2 -2
  90. package/package.json +1 -1
  91. package/src/components/features/auth/accept-invitation-form.tsx +4 -26
  92. package/src/components/features/auth/create-organization-form.tsx +5 -1
  93. package/src/components/features/auth/invite-link-invalid-modal.tsx +6 -4
  94. package/src/components/features/auth/password-reset-form.tsx +7 -0
  95. package/src/components/ui/field-wrapper.tsx +5 -3
  96. package/src/components/ui/input.tsx +8 -5
  97. package/src/stories/auth/AcceptInvitation.stories.tsx +4 -16
  98. package/src/stories/auth/PasswordReset.stories.tsx +1 -0
  99. package/dist/chunk-2RQKK2BY.cjs.map +0 -1
  100. package/dist/chunk-AI5X5JTD.js.map +0 -1
  101. package/dist/chunk-QJGRP2YE.cjs.map +0 -1
  102. /package/dist/{chunk-U5WZLNNP.js.map → chunk-23PZFAET.js.map} +0 -0
  103. /package/dist/{chunk-QQJJJSYG.js.map → chunk-3GGIVFSI.js.map} +0 -0
  104. /package/dist/{chunk-WE6PHQMR.js.map → chunk-4A4DA7OX.js.map} +0 -0
  105. /package/dist/{chunk-T3RWEEML.js.map → chunk-DQJCWNRT.js.map} +0 -0
  106. /package/dist/{chunk-PRA7467B.js.map → chunk-GZ5N76H2.js.map} +0 -0
  107. /package/dist/{chunk-NC53B5ZJ.js.map → chunk-HDWY2SXF.js.map} +0 -0
  108. /package/dist/{chunk-EQO6DKVS.js.map → chunk-K5P6XKIT.js.map} +0 -0
  109. /package/dist/{chunk-QM4UDTZ3.js.map → chunk-LIK575RM.js.map} +0 -0
  110. /package/dist/{chunk-FVKRKWAT.js.map → chunk-LRA7FGQC.js.map} +0 -0
  111. /package/dist/{chunk-3Y4XNSHE.js.map → chunk-MGDDM2UI.js.map} +0 -0
  112. /package/dist/{chunk-CTEN4ADV.js.map → chunk-PI3XFKEW.js.map} +0 -0
@@ -15,10 +15,11 @@ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>
15
15
  endAdornment?: React.ReactNode;
16
16
  /** Label text displayed above the input */
17
17
  label?: string;
18
- /** Error message displayed below the input */
18
+ /** Status message displayed below the input */
19
19
  error?: string;
20
- /** Color variant for error state: "error" (red) or "warning" (yellow) */
21
- errorVariant?: "error" | "warning";
20
+ /** Color variant for the message: "error" (red), "warning" (yellow), "success" (green) or "muted" (grey).
21
+ Only "error" and "warning" mark the field invalid (colored border). */
22
+ errorVariant?: "error" | "warning" | "success" | "muted";
22
23
  /** When true, shows a loading spinner as end adornment */
23
24
  loading?: boolean;
24
25
  }
@@ -30,7 +31,9 @@ const invalidBorderClasses = {
30
31
 
31
32
  const Input = React.forwardRef<HTMLInputElement, InputProps>(
32
33
  ({ className, type, invalid = false, startAdornment, endAdornment, label, error, errorVariant = "error", loading = false, ...props }, ref) => {
33
- const isInvalid = invalid || !!error
34
+ // success/muted are informational — they never paint the invalid border
35
+ const variantIsInvalid = errorVariant === "error" || errorVariant === "warning"
36
+ const isInvalid = invalid || (!!error && variantIsInvalid)
34
37
 
35
38
  // Range inputs get a clean slider rendering — no label wrapper, borders, or adornments
36
39
  if (type === 'range') {
@@ -83,7 +86,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
83
86
  // Disabled
84
87
  props.disabled && "!cursor-not-allowed bg-ods-bg",
85
88
  // Invalid
86
- isInvalid && invalidBorderClasses[errorVariant],
89
+ isInvalid && invalidBorderClasses[variantIsInvalid ? (errorVariant as "error" | "warning") : "error"],
87
90
  className
88
91
  )}
89
92
  >
@@ -1,5 +1,4 @@
1
1
  import type { Meta, StoryObj } from '@storybook/nextjs-vite'
2
- import { useState } from 'react'
3
2
  import {
4
3
  AcceptInvitationForm,
5
4
  type AuthSsoProvider,
@@ -15,7 +14,7 @@ const meta = {
15
14
  docs: {
16
15
  description: {
17
16
  component:
18
- 'Accept Invitation from the auth redesign. Presentational + controlled: read-only invited email, a Terms gate, and SSO providers to join the org. Shown inside AuthShell without tabs. SSO buttons stay disabled until the Terms checkbox is checked.',
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.',
19
18
  },
20
19
  },
21
20
  },
@@ -28,9 +27,7 @@ type Story = StoryObj<typeof meta>
28
27
  const SSO_PROVIDERS: AuthSsoProvider[] = ['openframe', 'google', 'microsoft']
29
28
 
30
29
  /** Full page: invitation form + marketing panel (no tabs). */
31
- function AcceptInvitationPage({ initialChecked = false }: { initialChecked?: boolean }) {
32
- const [agreedToTerms, setAgreedToTerms] = useState(initialChecked)
33
-
30
+ function AcceptInvitationPage() {
34
31
  return (
35
32
  <AuthShell
36
33
  mobileTagline={
@@ -43,24 +40,15 @@ function AcceptInvitationPage({ initialChecked = false }: { initialChecked?: boo
43
40
  >
44
41
  <AcceptInvitationForm
45
42
  email="roman@mail.com"
46
- agreedToTerms={agreedToTerms}
47
- onAgreedToTermsChange={setAgreedToTerms}
48
43
  ssoProviders={SSO_PROVIDERS}
49
44
  onSsoClick={() => {}}
50
45
  onBackToLogin={() => {}}
51
- termsUrl="#terms"
52
- privacyPolicyUrl="#privacy"
53
46
  />
54
47
  </AuthShell>
55
48
  )
56
49
  }
57
50
 
58
- /** Terms unchecked SSO buttons disabled. */
59
- export const NoCheck: Story = {
51
+ /** Prefilled invited email, SSO providers ready to pick. */
52
+ export const Default: Story = {
60
53
  render: () => <AcceptInvitationPage />,
61
54
  }
62
-
63
- /** Terms accepted — SSO buttons enabled. */
64
- export const WithCheck: Story = {
65
- render: () => <AcceptInvitationPage initialChecked />,
66
- }
@@ -44,6 +44,7 @@ function PasswordResetPage({ initialPassword = '', initialConfirm = '' }: { init
44
44
  onConfirmPasswordChange={setConfirmPassword}
45
45
  onSubmit={() => {}}
46
46
  onCancel={() => {}}
47
+ onBackToLogin={() => {}}
47
48
  submitDisabled={!isValid}
48
49
  errors={{
49
50
  confirmPassword: