@clicoh/orion-library 1.2.0-beta.21 → 1.2.0-beta.23

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 (140) hide show
  1. package/assets/avatares/caja-ruedas.svg +1 -0
  2. package/assets/avatares/cohete-azul.svg +1 -0
  3. package/assets/avatares/criatura-tres-ojos.svg +1 -0
  4. package/assets/avatares/cubo-brazos.svg +1 -0
  5. package/assets/avatares/cubo-morado.svg +1 -0
  6. package/assets/avatares/dino-placas-amarillas.svg +1 -0
  7. package/assets/avatares/dino-placas-azules.svg +1 -0
  8. package/assets/avatares/edificio-cupulas.svg +1 -0
  9. package/assets/avatares/globo-anillo.svg +1 -0
  10. package/assets/avatares/pulpo-morado.svg +1 -0
  11. package/assets/avatares/robot-lente.svg +1 -0
  12. package/assets/avatares/ventana-codigo.svg +1 -0
  13. package/assets/css/expresivo.css +37 -0
  14. package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts +11 -3
  15. package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts.map +1 -1
  16. package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx +13 -5
  17. package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx.map +1 -1
  18. package/dist/components/01-atoms/OtpInput/OtpInput.d.ts +1 -1
  19. package/dist/components/01-atoms/OtpInput/OtpInput.jsx +3 -2
  20. package/dist/components/01-atoms/OtpInput/OtpInput.jsx.map +1 -1
  21. package/dist/components/02-molecules/ActionMenu/ActionMenu.d.ts +39 -0
  22. package/dist/components/02-molecules/ActionMenu/ActionMenu.d.ts.map +1 -0
  23. package/dist/components/02-molecules/ActionMenu/ActionMenu.jsx +36 -0
  24. package/dist/components/02-molecules/ActionMenu/ActionMenu.jsx.map +1 -0
  25. package/dist/components/02-molecules/ActionMenu/index.d.ts +2 -0
  26. package/dist/components/02-molecules/ActionMenu/index.d.ts.map +1 -0
  27. package/dist/components/02-molecules/ActionMenu/index.js +2 -0
  28. package/dist/components/02-molecules/ActionMenu/index.js.map +1 -0
  29. package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts +35 -3
  30. package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts.map +1 -1
  31. package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx +193 -31
  32. package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx.map +1 -1
  33. package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.d.ts +52 -0
  34. package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.d.ts.map +1 -0
  35. package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.jsx +78 -0
  36. package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.jsx.map +1 -0
  37. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts +8 -2
  38. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts.map +1 -1
  39. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx +10 -4
  40. package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx.map +1 -1
  41. package/dist/components/02-molecules/ImageViewer/usePdfPages.d.ts +20 -0
  42. package/dist/components/02-molecules/ImageViewer/usePdfPages.d.ts.map +1 -0
  43. package/dist/components/02-molecules/ImageViewer/usePdfPages.js +113 -0
  44. package/dist/components/02-molecules/ImageViewer/usePdfPages.js.map +1 -0
  45. package/dist/components/02-molecules/Tab/TabList.d.ts.map +1 -1
  46. package/dist/components/02-molecules/Tab/TabList.jsx +10 -6
  47. package/dist/components/02-molecules/Tab/TabList.jsx.map +1 -1
  48. package/dist/components/02-molecules/index.d.ts +1 -0
  49. package/dist/components/02-molecules/index.d.ts.map +1 -1
  50. package/dist/components/02-molecules/index.js +1 -0
  51. package/dist/components/02-molecules/index.js.map +1 -1
  52. package/dist/components/03-organisms/BarChart/BarChart.d.ts +52 -0
  53. package/dist/components/03-organisms/BarChart/BarChart.d.ts.map +1 -0
  54. package/dist/components/03-organisms/BarChart/BarChart.jsx +116 -0
  55. package/dist/components/03-organisms/BarChart/BarChart.jsx.map +1 -0
  56. package/dist/components/03-organisms/BarChart/index.d.ts +2 -0
  57. package/dist/components/03-organisms/BarChart/index.d.ts.map +1 -0
  58. package/dist/components/03-organisms/BarChart/index.js +2 -0
  59. package/dist/components/03-organisms/BarChart/index.js.map +1 -0
  60. package/dist/components/03-organisms/DataTable/DataTable.d.ts +5 -2
  61. package/dist/components/03-organisms/DataTable/DataTable.d.ts.map +1 -1
  62. package/dist/components/03-organisms/DataTable/DataTable.jsx +10 -7
  63. package/dist/components/03-organisms/DataTable/DataTable.jsx.map +1 -1
  64. package/dist/components/03-organisms/index.d.ts +1 -0
  65. package/dist/components/03-organisms/index.d.ts.map +1 -1
  66. package/dist/components/03-organisms/index.js +1 -0
  67. package/dist/components/03-organisms/index.js.map +1 -1
  68. package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts +6 -1
  69. package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts.map +1 -1
  70. package/dist/components/04-templates/LoginTemplate/LoginForm.jsx +29 -7
  71. package/dist/components/04-templates/LoginTemplate/LoginForm.jsx.map +1 -1
  72. package/dist/components/04-templates/LoginTemplate/SetupMfa/StepThree.d.ts.map +1 -1
  73. package/dist/components/04-templates/LoginTemplate/SetupMfa/StepThree.jsx +8 -4
  74. package/dist/components/04-templates/LoginTemplate/SetupMfa/StepThree.jsx.map +1 -1
  75. package/dist/components/04-templates/LoginTemplate/SetupMfa/StepTwo.d.ts.map +1 -1
  76. package/dist/components/04-templates/LoginTemplate/SetupMfa/StepTwo.jsx +10 -3
  77. package/dist/components/04-templates/LoginTemplate/SetupMfa/StepTwo.jsx.map +1 -1
  78. package/dist/components/04-templates/LoginTemplate/index.d.ts +1 -1
  79. package/dist/components/04-templates/LoginTemplate/index.d.ts.map +1 -1
  80. package/dist/components/04-templates/LoginTemplate/submitOnEnter.d.ts +9 -0
  81. package/dist/components/04-templates/LoginTemplate/submitOnEnter.d.ts.map +1 -0
  82. package/dist/components/04-templates/LoginTemplate/submitOnEnter.js +15 -0
  83. package/dist/components/04-templates/LoginTemplate/submitOnEnter.js.map +1 -0
  84. package/expresivo/ExpAccentNote/ExpAccentNote.d.ts +25 -0
  85. package/expresivo/ExpAccentNote/ExpAccentNote.d.ts.map +1 -0
  86. package/expresivo/ExpAccentNote/ExpAccentNote.jsx +47 -0
  87. package/expresivo/ExpAccentNote/ExpAccentNote.jsx.map +1 -0
  88. package/expresivo/ExpAccentNote/index.d.ts +2 -0
  89. package/expresivo/ExpAccentNote/index.d.ts.map +1 -0
  90. package/expresivo/ExpAccentNote/index.js +2 -0
  91. package/expresivo/ExpAccentNote/index.js.map +1 -0
  92. package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.d.ts +29 -0
  93. package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.d.ts.map +1 -0
  94. package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.jsx +44 -0
  95. package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.jsx.map +1 -0
  96. package/expresivo/ExpCodeHostIcon/index.d.ts +2 -0
  97. package/expresivo/ExpCodeHostIcon/index.d.ts.map +1 -0
  98. package/expresivo/ExpCodeHostIcon/index.js +2 -0
  99. package/expresivo/ExpCodeHostIcon/index.js.map +1 -0
  100. package/expresivo/ExpFigureBand/ExpFigureBand.d.ts +61 -0
  101. package/expresivo/ExpFigureBand/ExpFigureBand.d.ts.map +1 -0
  102. package/expresivo/ExpFigureBand/ExpFigureBand.jsx +102 -0
  103. package/expresivo/ExpFigureBand/ExpFigureBand.jsx.map +1 -0
  104. package/expresivo/ExpFigureBand/index.d.ts +2 -0
  105. package/expresivo/ExpFigureBand/index.d.ts.map +1 -0
  106. package/expresivo/ExpFigureBand/index.js +2 -0
  107. package/expresivo/ExpFigureBand/index.js.map +1 -0
  108. package/expresivo/ExpGrowBar/ExpGrowBar.d.ts +13 -2
  109. package/expresivo/ExpGrowBar/ExpGrowBar.d.ts.map +1 -1
  110. package/expresivo/ExpGrowBar/ExpGrowBar.jsx +16 -4
  111. package/expresivo/ExpGrowBar/ExpGrowBar.jsx.map +1 -1
  112. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts +3 -0
  113. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts.map +1 -1
  114. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx +3 -0
  115. package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx.map +1 -1
  116. package/expresivo/ExpRepoAvatar/catalog.d.ts +6 -2
  117. package/expresivo/ExpRepoAvatar/catalog.d.ts.map +1 -1
  118. package/expresivo/ExpRepoAvatar/catalog.js +29 -1
  119. package/expresivo/ExpRepoAvatar/catalog.js.map +1 -1
  120. package/expresivo/ExpSplitCard/ExpSplitCard.d.ts +38 -0
  121. package/expresivo/ExpSplitCard/ExpSplitCard.d.ts.map +1 -0
  122. package/expresivo/ExpSplitCard/ExpSplitCard.jsx +48 -0
  123. package/expresivo/ExpSplitCard/ExpSplitCard.jsx.map +1 -0
  124. package/expresivo/ExpSplitCard/index.d.ts +2 -0
  125. package/expresivo/ExpSplitCard/index.d.ts.map +1 -0
  126. package/expresivo/ExpSplitCard/index.js +2 -0
  127. package/expresivo/ExpSplitCard/index.js.map +1 -0
  128. package/expresivo/ExpStatusTag/ExpStatusTag.d.ts +26 -0
  129. package/expresivo/ExpStatusTag/ExpStatusTag.d.ts.map +1 -0
  130. package/expresivo/ExpStatusTag/ExpStatusTag.jsx +44 -0
  131. package/expresivo/ExpStatusTag/ExpStatusTag.jsx.map +1 -0
  132. package/expresivo/ExpStatusTag/index.d.ts +2 -0
  133. package/expresivo/ExpStatusTag/index.d.ts.map +1 -0
  134. package/expresivo/ExpStatusTag/index.js +2 -0
  135. package/expresivo/ExpStatusTag/index.js.map +1 -0
  136. package/expresivo/index.d.ts +5 -0
  137. package/expresivo/index.d.ts.map +1 -1
  138. package/expresivo/index.js +5 -0
  139. package/expresivo/index.js.map +1 -1
  140. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LoginForm.d.ts","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/LoginForm.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAoB,SAAS,EAAuB,MAAM,OAAO,CAAC;AAYzE,OAAO,EAAY,KAAK,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAExE,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAAG;IACjC,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;IAC1D,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAUF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,UAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,EAC3B,KAAqB,EACrB,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,EACN,YAAY,EACZ,UAAmB,EACnB,WAAkB,EAClB,WAAkB,GACnB,EAAE,cAAc,GAAG,SAAS,CAkK5B"}
1
+ {"version":3,"file":"LoginForm.d.ts","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/LoginForm.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,SAAS,EAIV,MAAM,OAAO,CAAC;AAYf,OAAO,EAAY,KAAK,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGxE,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAAG;IACjC,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAAC;IAC1D,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAaF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,UAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,EAC3B,KAAqB,EACrB,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,EACN,YAAY,EACZ,UAAmB,EACnB,WAAkB,EAClB,WAAkB,EAClB,UAAsB,EACtB,MAAM,GACP,EAAE,cAAc,GAAG,SAAS,CAoL5B"}
@@ -1,10 +1,12 @@
1
1
  'use client';
2
2
  import clsx from 'clsx';
3
- import { useEffect, useState } from 'react';
3
+ import { useEffect, useRef, useState, } from 'react';
4
4
  import { FiArrowRight } from 'react-icons/fi';
5
5
  import { Button, Heading, Input, OtpInput, Paragraph, showToast, Spinner, } from '../../01-atoms';
6
6
  import { InlineMessage } from '../../02-molecules';
7
7
  import { SetupMfa } from './SetupMfa';
8
+ import { submitOnEnter } from './submitOnEnter';
9
+ const READ_ONLY_TEXT = 'read-only:text-gray-1 dark:read-only:text-gray-2 read-only:focus:text-gray-1 dark:read-only:focus:text-gray-2';
8
10
  const DEFAULT_LABELS = {
9
11
  username: 'Usuario',
10
12
  password: 'Contraseña',
@@ -61,21 +63,38 @@ const DEFAULT_LABELS = {
61
63
  * @param {'text' | 'message'} [props.errorStyle='text'] - `text` shows the error as red text under the buttons; `message` as an error `InlineMessage` above the submit button.
62
64
  * @param {boolean} [props.toastErrors=true] - Also shows each error in a toast.
63
65
  * @param {boolean} [props.showSpinner=true] - Shows a spinner under the form while `login` runs. Turn it off when `renderSubmit` already shows the wait.
66
+ * @param {'replace' | 'below'} [props.codeLayout='replace'] - `replace` swaps the email and password for the code step; `below` keeps them on screen, read-only, with the code under them, and leaves them read-only instead of disabled while `login` runs. With `below` the browser only takes the sign-in as done when the code is accepted, not when the code step shows up.
67
+ * @param {Function} [props.onBack] - Called when the user leaves the code step or the MFA setup to edit the email and password.
64
68
  *
65
69
  * @returns {ReactNode} The rendered LoginForm component.
66
70
  */
67
- export function LoginForm({ login, callback, needCode = false, lengthCode = 6, setupMfa, showPasswordAriaLabel, hidePasswordAriaLabel, getOtpDigitAriaLabel, loadingLabel, setupMfaAccessibilityLabels, title = 'Bienvenido!', description, labels, forgotPassword, footer, renderSubmit, errorStyle = 'text', toastErrors = true, showSpinner = true, }) {
71
+ export function LoginForm({ login, callback, needCode = false, lengthCode = 6, setupMfa, showPasswordAriaLabel, hidePasswordAriaLabel, getOtpDigitAriaLabel, loadingLabel, setupMfaAccessibilityLabels, title = 'Bienvenido!', description, labels, forgotPassword, footer, renderSubmit, errorStyle = 'text', toastErrors = true, showSpinner = true, codeLayout = 'replace', onBack, }) {
68
72
  const [errorMessage, setErrorMessage] = useState();
69
73
  const [otpCode, setOtpCode] = useState('');
70
74
  const [isPending, setIsPending] = useState(false);
71
75
  const [qr, setQr] = useState();
72
76
  const [showLogin, setShowLogin] = useState(!needCode);
77
+ const codeRef = useRef(null);
73
78
  const copy = { ...DEFAULT_LABELS, ...labels };
79
+ const showCredentials = showLogin || codeLayout === 'below';
80
+ // Chrome takes the sign-in as done when no field of the form can take focus once the request ends.
81
+ const lockedCredentials = !showLogin || (isPending && codeLayout === 'below');
82
+ const credentialState = {
83
+ disabled: isPending && codeLayout !== 'below',
84
+ readOnly: lockedCredentials,
85
+ className: lockedCredentials ? READ_ONLY_TEXT : undefined,
86
+ };
74
87
  useEffect(() => {
75
88
  setShowLogin(!needCode);
76
89
  }, [needCode]);
90
+ useEffect(() => {
91
+ if (!showLogin && !qr)
92
+ codeRef.current?.querySelector('input')?.focus();
93
+ }, [showLogin, qr]);
77
94
  const handlerSubmit = (event) => {
78
95
  event.preventDefault();
96
+ if (isPending)
97
+ return;
79
98
  setIsPending(true);
80
99
  setErrorMessage(undefined);
81
100
  const formData = new FormData(event.currentTarget);
@@ -100,6 +119,7 @@ export function LoginForm({ login, callback, needCode = false, lengthCode = 6, s
100
119
  setQr(undefined);
101
120
  setOtpCode('');
102
121
  setShowLogin(true);
122
+ onBack?.();
103
123
  };
104
124
  const handleSetupMfa = (firstCode, secondCode) => {
105
125
  return setupMfa?.(firstCode, secondCode);
@@ -118,25 +138,27 @@ export function LoginForm({ login, callback, needCode = false, lengthCode = 6, s
118
138
  {description}
119
139
  </Paragraph>)}
120
140
  </div>
121
- <form onSubmit={handlerSubmit} aria-busy={isPending} className="flex w-72 flex-col items-center gap-4">
122
- {!!showLogin && (<>
141
+ <form onSubmit={handlerSubmit} onKeyDown={submitOnEnter} aria-busy={isPending} className="flex w-72 flex-col items-center gap-4">
142
+ {!!showCredentials && (<>
123
143
  <Input label={copy.username} input={{
124
144
  type: 'email',
125
145
  name: 'username',
126
146
  required: true,
127
147
  autoComplete: 'email',
128
- disabled: isPending,
148
+ ...credentialState,
129
149
  }}/>
130
150
  <Input label={copy.password} showPasswordAriaLabel={showPasswordAriaLabel} hidePasswordAriaLabel={hidePasswordAriaLabel} input={{
131
151
  type: 'password',
132
152
  name: 'password',
133
153
  required: true,
134
154
  autoComplete: 'current-password',
135
- disabled: isPending,
155
+ ...credentialState,
136
156
  }}/>
137
157
  </>)}
138
158
 
139
- {!showLogin && (<OtpInput label={copy.code} length={lengthCode} handleSubmit={(otp) => setOtpCode(otp)} getDigitAriaLabel={getOtpDigitAriaLabel}/>)}
159
+ {!showLogin && (<div ref={codeRef} className="w-full">
160
+ <OtpInput label={copy.code} length={lengthCode} handleSubmit={(otp) => setOtpCode(otp)} getDigitAriaLabel={getOtpDigitAriaLabel}/>
161
+ </div>)}
140
162
 
141
163
  {errorStyle === 'message' && !!errorMessage && (<InlineMessage modifier="error" className="w-full">
142
164
  {errorMessage}
@@ -1 +1 @@
1
- {"version":3,"file":"LoginForm.jsx","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/LoginForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoginForm.jsx","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/LoginForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StepThree.d.ts","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepThree.tsx"],"names":[],"mappings":"AAUA,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CACN,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,UAAc,EACd,iBAAiB,EACjB,YAAY,GACb,EAAE,cAAc,+BAyFhB"}
1
+ {"version":3,"file":"StepThree.d.ts","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepThree.tsx"],"names":[],"mappings":"AAWA,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CACN,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,UAAc,EACd,iBAAiB,EACjB,YAAY,GACb,EAAE,cAAc,+BAgGhB"}
@@ -1,11 +1,15 @@
1
1
  import { Button, Heading, OtpInput, Paragraph, Spinner, } from '../../../01-atoms';
2
2
  import { useState } from 'react';
3
3
  import clsx from 'clsx';
4
+ import { submitOnEnter } from '../submitOnEnter';
4
5
  export function StepThree({ previousCode, previousStep, nextStep, onCancel, submit, lengthCode = 4, getDigitAriaLabel, loadingLabel, }) {
5
6
  const [secondCode, setSecondCode] = useState('');
6
7
  const [errorMessage, setErrorMessage] = useState('');
7
8
  const [isPending, setIsPending] = useState(false);
8
- const handleSubmit = async () => {
9
+ const handleSubmit = (event) => {
10
+ event.preventDefault();
11
+ if (secondCode.length < lengthCode || isPending)
12
+ return;
9
13
  setIsPending(true);
10
14
  submit?.(previousCode, secondCode)
11
15
  ?.then(() => {
@@ -18,7 +22,7 @@ export function StepThree({ previousCode, previousStep, nextStep, onCancel, subm
18
22
  setIsPending(false);
19
23
  });
20
24
  };
21
- return (<div className="col-1 flex w-72 flex-col items-center text-black dark:text-white">
25
+ return (<form noValidate onSubmit={handleSubmit} onKeyDown={submitOnEnter} aria-busy={isPending} className="col-1 flex w-72 flex-col items-center text-black dark:text-white">
22
26
  <Heading className="mb-4" level="h7">
23
27
  Configurar autenticación
24
28
  </Heading>
@@ -36,7 +40,7 @@ export function StepThree({ previousCode, previousStep, nextStep, onCancel, subm
36
40
 
37
41
  <OtpInput label="Codigo de Verificación 2" length={lengthCode} handleSubmit={setSecondCode} error={errorMessage} className="dark:[&_.text-error]:text-error-1" getDigitAriaLabel={getDigitAriaLabel}/>
38
42
 
39
- <Button disabled={secondCode?.length < lengthCode || isPending} modifier="principal" className="my-2 w-full" type="button" onClick={handleSubmit} aria-disabled={isPending}>
43
+ <Button disabled={secondCode?.length < lengthCode || isPending} modifier="principal" className="my-2 w-full" type="submit" aria-disabled={isPending}>
40
44
  Verificar y Completar
41
45
  </Button>
42
46
 
@@ -53,6 +57,6 @@ export function StepThree({ previousCode, previousStep, nextStep, onCancel, subm
53
57
  <div className={clsx('mt-4 self-center', !isPending && 'invisible opacity-0')}>
54
58
  <Spinner label={loadingLabel}/>
55
59
  </div>
56
- </div>);
60
+ </form>);
57
61
  }
58
62
  //# sourceMappingURL=StepThree.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepThree.jsx","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepThree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepThree.jsx","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepThree.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StepTwo.d.ts","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepTwo.tsx"],"names":[],"mappings":"AAGA,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,iBAAiB,GAClB,EAAE,YAAY,+BAkDd"}
1
+ {"version":3,"file":"StepTwo.d.ts","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepTwo.tsx"],"names":[],"mappings":"AAIA,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,iBAAiB,GAClB,EAAE,YAAY,+BA6Dd"}
@@ -1,8 +1,15 @@
1
1
  import { useState } from 'react';
2
2
  import { Button, Heading, OtpInput, Paragraph } from '../../../01-atoms';
3
+ import { submitOnEnter } from '../submitOnEnter';
3
4
  export function StepTwo({ nextStep, previousStep, onCancel, getDigitAriaLabel, }) {
4
5
  const [code, setCode] = useState('');
5
- return (<div className="flex w-72 flex-col items-center text-black dark:text-white">
6
+ const handleSubmit = (event) => {
7
+ event.preventDefault();
8
+ if (code.length < 6)
9
+ return;
10
+ nextStep(code);
11
+ };
12
+ return (<form noValidate onSubmit={handleSubmit} onKeyDown={submitOnEnter} className="flex w-72 flex-col items-center text-black dark:text-white">
6
13
  <Heading className="mb-4" level="h7">
7
14
  Configurar autenticación
8
15
  </Heading>
@@ -13,7 +20,7 @@ export function StepTwo({ nextStep, previousStep, onCancel, getDigitAriaLabel, }
13
20
 
14
21
  <OtpInput label="Codigo de Verificación 1" length={6} handleSubmit={(otp) => setCode(otp)} getDigitAriaLabel={getDigitAriaLabel}/>
15
22
 
16
- <Button modifier="principal" className="my-2 w-full" type="button" onClick={() => nextStep(code)} disabled={code.length < 6}>
23
+ <Button modifier="principal" className="my-2 w-full" type="submit" disabled={code.length < 6}>
17
24
  Continuar
18
25
  </Button>
19
26
 
@@ -26,6 +33,6 @@ export function StepTwo({ nextStep, previousStep, onCancel, getDigitAriaLabel, }
26
33
  Atrás
27
34
  </Button>
28
35
  </div>
29
- </div>);
36
+ </form>);
30
37
  }
31
38
  //# sourceMappingURL=StepTwo.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepTwo.jsx","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepTwo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AASzE,MAAM,UAAU,OAAO,CAAC,EACtB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,iBAAiB,GACJ;IACb,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC7C,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,4DAA4D,CACzE;MAAA,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAClC;;MACF,EAAE,OAAO,CAET;;MAAA,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CACvC;;MACF,EAAE,SAAS,CAEX;;MAAA,CAAC,QAAQ,CACP,KAAK,CAAC,0BAA0B,CAChC,MAAM,CAAC,CAAC,CAAC,CAAC,CACV,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CACpC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAGvC;;MAAA,CAAC,MAAM,CACL,QAAQ,CAAC,WAAW,CACpB,SAAS,CAAC,aAAa,CACvB,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC9B,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAE1B;;MACF,EAAE,MAAM,CAER;;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CACtC;QAAA,CAAC,MAAM,CACL,QAAQ,CAAC,QAAQ,CACjB,SAAS,CAAC,UAAU,CACpB,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,CAAC,QAAQ,CAAC,CAElB;;QACF,EAAE,MAAM,CAER;;QAAA,CAAC,MAAM,CACL,QAAQ,CAAC,QAAQ,CACjB,SAAS,CAAC,UAAU,CACpB,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,CAAC,YAAY,CAAC,CAEtB;;QACF,EAAE,MAAM,CACV;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"StepTwo.jsx","sourceRoot":"","sources":["../../../../../src/components/04-templates/LoginTemplate/SetupMfa/StepTwo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,MAAM,UAAU,OAAO,CAAC,EACtB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,iBAAiB,GACJ;IACb,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,CAAC,KAAiC,EAAE,EAAE;QACzD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC5B,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CACH,UAAU,CACV,QAAQ,CAAC,CAAC,YAAY,CAAC,CACvB,SAAS,CAAC,CAAC,aAAa,CAAC,CACzB,SAAS,CAAC,4DAA4D,CAEtE;MAAA,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAClC;;MACF,EAAE,OAAO,CAET;;MAAA,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CACvC;;MACF,EAAE,SAAS,CAEX;;MAAA,CAAC,QAAQ,CACP,KAAK,CAAC,0BAA0B,CAChC,MAAM,CAAC,CAAC,CAAC,CAAC,CACV,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CACpC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAGvC;;MAAA,CAAC,MAAM,CACL,QAAQ,CAAC,WAAW,CACpB,SAAS,CAAC,aAAa,CACvB,IAAI,CAAC,QAAQ,CACb,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAE1B;;MACF,EAAE,MAAM,CAER;;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CACtC;QAAA,CAAC,MAAM,CACL,QAAQ,CAAC,QAAQ,CACjB,SAAS,CAAC,UAAU,CACpB,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,CAAC,QAAQ,CAAC,CAElB;;QACF,EAAE,MAAM,CAER;;QAAA,CAAC,MAAM,CACL,QAAQ,CAAC,QAAQ,CACjB,SAAS,CAAC,UAAU,CACpB,IAAI,CAAC,QAAQ,CACb,OAAO,CAAC,CAAC,YAAY,CAAC,CAEtB;;QACF,EAAE,MAAM,CACV;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { LoginTemplate } from './LoginTemplate';
2
2
  export { LoginForm } from './LoginForm';
3
- export type { LoginFormErrorStyle, LoginFormLabels, LoginFormSubmitState, } from './LoginForm';
3
+ export type { LoginFormCodeLayout, LoginFormErrorStyle, LoginFormLabels, LoginFormSubmitState, } from './LoginForm';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { KeyboardEvent } from 'react';
2
+ /**
3
+ * Submits the form on Enter in one of its fields. The browser does not submit when something
4
+ * else, such as an extension, cancels the key first.
5
+ *
6
+ * @param {KeyboardEvent<HTMLFormElement>} event - The `keydown` of the form.
7
+ */
8
+ export declare function submitOnEnter(event: KeyboardEvent<HTMLFormElement>): void;
9
+ //# sourceMappingURL=submitOnEnter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitOnEnter.d.ts","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/submitOnEnter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAKzE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Submits the form on Enter in one of its fields. The browser does not submit when something
3
+ * else, such as an extension, cancels the key first.
4
+ *
5
+ * @param {KeyboardEvent<HTMLFormElement>} event - The `keydown` of the form.
6
+ */
7
+ export function submitOnEnter(event) {
8
+ if (event.key !== 'Enter' || event.nativeEvent.isComposing)
9
+ return;
10
+ if (!(event.target instanceof HTMLInputElement))
11
+ return;
12
+ event.preventDefault();
13
+ event.currentTarget.requestSubmit();
14
+ }
15
+ //# sourceMappingURL=submitOnEnter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitOnEnter.js","sourceRoot":"","sources":["../../../../src/components/04-templates/LoginTemplate/submitOnEnter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAqC;IACjE,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,WAAW;QAAE,OAAO;IACnE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC;QAAE,OAAO;IACxD,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export type ExpAccentNoteProps = {
3
+ label: ReactNode;
4
+ children: ReactNode;
5
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'children'>;
6
+ /**
7
+ * Short note with a thin clicOH gradient bar on its left: an uppercase `label`
8
+ * in the accent color and a line or two of gray text under it. For one fact
9
+ * under a page title, such as the scope a page covers. The bar is decorative.
10
+ *
11
+ * Outside an `ExpScope` it falls back to two core `Paragraph`s: the label in
12
+ * semibold and the text in gray.
13
+ *
14
+ * @component
15
+ * @example
16
+ * <ExpAccentNote label="Authorized scope · v1">38 repos, 18 high priority.</ExpAccentNote>
17
+ *
18
+ * @param {ExpAccentNoteProps} props - The properties of the ExpAccentNote component.
19
+ * @param {ReactNode} props.label - Short line above the text, shown in uppercase.
20
+ * @param {ReactNode} props.children - Text of the note.
21
+ *
22
+ * @returns {ReactNode} The note, or two core `Paragraph`s outside an `ExpScope`.
23
+ */
24
+ export declare function ExpAccentNote({ label, children, ...restProps }: ExpAccentNoteProps): ReactNode;
25
+ //# sourceMappingURL=ExpAccentNote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpAccentNote.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpAccentNote/ExpAccentNote.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,kBAAkB,GAAG,SAAS,CAmChC"}
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ import { Paragraph } from '@clicoh/orion-library';
3
+ import clsx from 'clsx';
4
+ import { useExpScope } from '../ExpScope/ExpScope';
5
+ /**
6
+ * Short note with a thin clicOH gradient bar on its left: an uppercase `label`
7
+ * in the accent color and a line or two of gray text under it. For one fact
8
+ * under a page title, such as the scope a page covers. The bar is decorative.
9
+ *
10
+ * Outside an `ExpScope` it falls back to two core `Paragraph`s: the label in
11
+ * semibold and the text in gray.
12
+ *
13
+ * @component
14
+ * @example
15
+ * <ExpAccentNote label="Authorized scope · v1">38 repos, 18 high priority.</ExpAccentNote>
16
+ *
17
+ * @param {ExpAccentNoteProps} props - The properties of the ExpAccentNote component.
18
+ * @param {ReactNode} props.label - Short line above the text, shown in uppercase.
19
+ * @param {ReactNode} props.children - Text of the note.
20
+ *
21
+ * @returns {ReactNode} The note, or two core `Paragraph`s outside an `ExpScope`.
22
+ */
23
+ export function ExpAccentNote({ label, children, ...restProps }) {
24
+ const inScope = useExpScope();
25
+ if (!inScope) {
26
+ return (<div {...restProps} className={clsx('flex flex-col gap-0.5', restProps.className)}>
27
+ <Paragraph size="body-2" weight="semibold">
28
+ {label}
29
+ </Paragraph>
30
+ <Paragraph size="body-2" className="text-gray-1 dark:text-gray-2">
31
+ {children}
32
+ </Paragraph>
33
+ </div>);
34
+ }
35
+ return (<div {...restProps} className={clsx('flex gap-3', restProps.className)}>
36
+ <span aria-hidden="true" className="from-lavender via-violet to-warning w-[3px] shrink-0 rounded-[3px] bg-linear-to-b via-60%"/>
37
+ <div className="flex min-w-0 flex-col gap-0.5">
38
+ <p className="text-lavender dark:text-lavender-dark text-xs leading-4 font-semibold tracking-[0.04em] uppercase">
39
+ {label}
40
+ </p>
41
+ <p className="text-gray-1 dark:text-gray-2 text-sm leading-[22px] text-pretty">
42
+ {children}
43
+ </p>
44
+ </div>
45
+ </div>);
46
+ }
47
+ //# sourceMappingURL=ExpAccentNote.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpAccentNote.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpAccentNote/ExpAccentNote.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOnD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,GAAG,SAAS,EACO;IACnB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,CAAC,GAAG,CACF,IAAI,SAAS,CAAC,CACd,SAAS,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAE9D;QAAA,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CACxC;UAAA,CAAC,KAAK,CACR;QAAA,EAAE,SAAS,CACX;QAAA,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,8BAA8B,CAC/D;UAAA,CAAC,QAAQ,CACX;QAAA,EAAE,SAAS,CACb;MAAA,EAAE,GAAG,CAAC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CACrE;MAAA,CAAC,IAAI,CACH,WAAW,CAAC,MAAM,CAClB,SAAS,CAAC,2FAA2F,EAEvG;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,+BAA+B,CAC5C;QAAA,CAAC,CAAC,CAAC,SAAS,CAAC,mGAAmG,CAC9G;UAAA,CAAC,KAAK,CACR;QAAA,EAAE,CAAC,CACH;QAAA,CAAC,CAAC,CAAC,SAAS,CAAC,iEAAiE,CAC5E;UAAA,CAAC,QAAQ,CACX;QAAA,EAAE,CAAC,CACL;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './ExpAccentNote';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpAccentNote/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './ExpAccentNote';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expresivo/ExpAccentNote/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export type ExpCodeHostName = 'github' | 'bitbucket';
3
+ export type ExpCodeHostIconProps = {
4
+ name: ExpCodeHostName;
5
+ /** Width and height on screen, in pixels. */
6
+ size?: number;
7
+ } & Omit<HTMLAttributes<HTMLSpanElement>, 'children'>;
8
+ /**
9
+ * Mark of the service that hosts a repository, to put before its name, such as
10
+ * in an origin column. Decorative: always `aria-hidden`, so the name next to it
11
+ * carries the meaning.
12
+ *
13
+ * Outside an `ExpScope` it renders nothing.
14
+ *
15
+ * @component
16
+ * @example
17
+ * <span className="flex items-center gap-2">
18
+ * <ExpCodeHostIcon name="github" />
19
+ * GitHub
20
+ * </span>
21
+ *
22
+ * @param {ExpCodeHostIconProps} props - The properties of the ExpCodeHostIcon component.
23
+ * @param {'github' | 'bitbucket'} props.name - The hosting service.
24
+ * @param {number} [props.size=20] - Width and height on screen, in pixels.
25
+ *
26
+ * @returns {ReactNode} The mark, or nothing outside an `ExpScope`.
27
+ */
28
+ export declare function ExpCodeHostIcon({ name, size, ...restProps }: ExpCodeHostIconProps): ReactNode;
29
+ //# sourceMappingURL=ExpCodeHostIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpCodeHostIcon.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;AActD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,IAAS,EACT,GAAG,SAAS,EACb,EAAE,oBAAoB,GAAG,SAAS,CAoBlC"}
@@ -0,0 +1,44 @@
1
+ 'use client';
2
+ import clsx from 'clsx';
3
+ import { FaBitbucket, FaGithub } from 'react-icons/fa';
4
+ import { useExpScope } from '../ExpScope/ExpScope';
5
+ const iconMap = {
6
+ github: FaGithub,
7
+ bitbucket: FaBitbucket,
8
+ };
9
+ // GitHub's mark is monochrome, so it follows the text; Bitbucket keeps its blue,
10
+ // which the `info` token matches.
11
+ const colorMap = {
12
+ github: 'text-black dark:text-white',
13
+ bitbucket: 'text-info dark:text-info-dark',
14
+ };
15
+ /**
16
+ * Mark of the service that hosts a repository, to put before its name, such as
17
+ * in an origin column. Decorative: always `aria-hidden`, so the name next to it
18
+ * carries the meaning.
19
+ *
20
+ * Outside an `ExpScope` it renders nothing.
21
+ *
22
+ * @component
23
+ * @example
24
+ * <span className="flex items-center gap-2">
25
+ * <ExpCodeHostIcon name="github" />
26
+ * GitHub
27
+ * </span>
28
+ *
29
+ * @param {ExpCodeHostIconProps} props - The properties of the ExpCodeHostIcon component.
30
+ * @param {'github' | 'bitbucket'} props.name - The hosting service.
31
+ * @param {number} [props.size=20] - Width and height on screen, in pixels.
32
+ *
33
+ * @returns {ReactNode} The mark, or nothing outside an `ExpScope`.
34
+ */
35
+ export function ExpCodeHostIcon({ name, size = 20, ...restProps }) {
36
+ const inScope = useExpScope();
37
+ if (!inScope)
38
+ return null;
39
+ const Icon = iconMap[name];
40
+ return (<span {...restProps} aria-hidden="true" className={clsx('inline-flex shrink-0', colorMap[name], restProps.className)}>
41
+ <Icon size={size}/>
42
+ </span>);
43
+ }
44
+ //# sourceMappingURL=ExpCodeHostIcon.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpCodeHostIcon.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUnD,MAAM,OAAO,GAAsC;IACjD,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF,iFAAiF;AACjF,kCAAkC;AAClC,MAAM,QAAQ,GAAoC;IAChD,MAAM,EAAE,4BAA4B;IACpC,SAAS,EAAE,+BAA+B;CAC3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EACJ,IAAI,GAAG,EAAE,EACT,GAAG,SAAS,EACS;IACrB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,OAAO,CACL,CAAC,IAAI,CACH,IAAI,SAAS,CAAC,CACd,WAAW,CAAC,MAAM,CAClB,SAAS,CAAC,CAAC,IAAI,CACb,sBAAsB,EACtB,QAAQ,CAAC,IAAI,CAAC,EACd,SAAS,CAAC,SAAS,CACpB,CAAC,CAEF;MAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EACnB;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './ExpCodeHostIcon';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpCodeHostIcon/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './ExpCodeHostIcon';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expresivo/ExpCodeHostIcon/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export type ExpFigureBandTone = 'accent' | 'success' | 'warning' | 'error';
3
+ export type ExpFigure = {
4
+ /** The figure, already formatted. */
5
+ value: ReactNode;
6
+ /** What the figure measures. */
7
+ label: string;
8
+ /** Short context under the label. */
9
+ hint?: string;
10
+ };
11
+ export type ExpFigureHighlight = ExpFigure & {
12
+ /** Short uppercase line above the label, in the tone color. */
13
+ eyebrow?: string;
14
+ /** Color of the eyebrow. Never the only signal: the eyebrow says it in words. */
15
+ tone?: ExpFigureBandTone;
16
+ };
17
+ export type ExpFigureBandProps = {
18
+ /** The main figure, large, at the start of the band. */
19
+ lead: ExpFigureHighlight;
20
+ /** Smaller figures, in the middle. */
21
+ figures?: ExpFigure[];
22
+ /** A figure to act on, large, at the end of the band: a gap, a backlog. */
23
+ callout?: ExpFigureHighlight;
24
+ /** Holds the space with placeholders while the values load. */
25
+ isLoading?: boolean;
26
+ } & Omit<HTMLAttributes<HTMLElement>, 'children'>;
27
+ /**
28
+ * One band with the figures that sum up a list: a large figure at the start,
29
+ * smaller ones in the middle and, at the end, a large one to act on, such as a
30
+ * gap. It goes above the list, in place of a row of `Stat` cards.
31
+ *
32
+ * The band is a description list: each figure is read as its label, then its
33
+ * value. The eyebrows are color plus words, never color alone.
34
+ *
35
+ * Below `lg` it stacks: the lead and the callout take a row each and the
36
+ * smaller figures go two by two between them.
37
+ *
38
+ * Outside an `ExpScope` it falls back to a row of core `Stat` cards, with the
39
+ * eyebrow tone as the stat's dot.
40
+ *
41
+ * @component
42
+ * @example
43
+ * <ExpFigureBand
44
+ * lead={{ value: 38, eyebrow: 'Active coverage', label: 'Repos in the whitelist', hint: '27 enabled' }}
45
+ * figures={[
46
+ * { value: 10, label: 'Indexed', hint: 'Ready for a diagnosis' },
47
+ * { value: 28, label: 'Without a clone', hint: 'They wait for a sync' },
48
+ * ]}
49
+ * callout={{ value: 11, eyebrow: 'Gap to close', label: 'Cases without an indexed repo', tone: 'error' }}
50
+ * />
51
+ *
52
+ * @param {ExpFigureBandProps} props - The properties of the ExpFigureBand component.
53
+ * @param {ExpFigureHighlight} props.lead - The main figure, large, at the start.
54
+ * @param {ExpFigure[]} [props.figures] - Smaller figures, in the middle.
55
+ * @param {ExpFigureHighlight} [props.callout] - A figure to act on, large, at the end.
56
+ * @param {boolean} [props.isLoading=false] - Shows placeholders instead of the values.
57
+ *
58
+ * @returns {ReactNode} The band, or a row of core `Stat` cards outside an `ExpScope`.
59
+ */
60
+ export declare function ExpFigureBand({ lead, figures, callout, isLoading, ...restProps }: ExpFigureBandProps): ReactNode;
61
+ //# sourceMappingURL=ExpFigureBand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpFigureBand.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpFigureBand/ExpFigureBand.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,SAAS,GAAG;IACtB,qCAAqC;IACrC,KAAK,EAAE,SAAS,CAAC;IACjB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG;IAC3C,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,IAAI,EAAE,kBAAkB,CAAC;IACzB,sCAAsC;IACtC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;AAqElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAY,EACZ,OAAO,EACP,SAAiB,EACjB,GAAG,SAAS,EACb,EAAE,kBAAkB,GAAG,SAAS,CA0FhC"}