@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
@@ -0,0 +1,20 @@
1
+ export type TPdfStatus = 'loading' | 'ready' | 'error';
2
+ export type TPdfPages = {
3
+ status: TPdfStatus;
4
+ pageCount: number;
5
+ pageIndex: number;
6
+ pageSrc: string | undefined;
7
+ goToPage: (index: number) => void;
8
+ };
9
+ /**
10
+ * Loads a PDF and renders its pages to images on demand, one at a time: the
11
+ * current page is drawn when it is first shown and kept for the life of the
12
+ * document. Object URLs are revoked and the document is destroyed when `src`
13
+ * changes or the component unmounts.
14
+ *
15
+ * @param {string} src - PDF URL. The browser fetches it, so its origin must allow CORS.
16
+ *
17
+ * @returns {TPdfPages} Load status, page count, current page and its image URL, plus `goToPage`.
18
+ */
19
+ export declare const usePdfPages: (src: string) => TPdfPages;
20
+ //# sourceMappingURL=usePdfPages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePdfPages.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/usePdfPages.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAyDF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,SAkEzC,CAAC"}
@@ -0,0 +1,113 @@
1
+ 'use client';
2
+ import { useEffect, useRef, useState } from 'react';
3
+ /**
4
+ * Longest side of a rendered page, in device pixels. Enough for the viewer's
5
+ * maximum zoom on a high-density screen, capped so the canvas and the encoded
6
+ * image stay reasonable for a scanned document.
7
+ */
8
+ const RENDER_SIDE_BASE = 1500;
9
+ const RENDER_SIDE_MAX = 3000;
10
+ /**
11
+ * The library and its worker are loaded on first use, so a consumer that
12
+ * never shows a PDF never pays for them. The worker URL goes through
13
+ * `new URL(..., import.meta.url)`, which webpack, Turbopack and Vite turn into
14
+ * an emitted asset; `pdfjs-dist` resolves from this package's own dependency.
15
+ */
16
+ const loadPdfjs = async () => {
17
+ const pdfjs = await import('pdfjs-dist');
18
+ if (!pdfjs.GlobalWorkerOptions.workerSrc) {
19
+ pdfjs.GlobalWorkerOptions.workerSrc = new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url).toString();
20
+ }
21
+ return pdfjs;
22
+ };
23
+ /**
24
+ * Draws one page on a detached canvas and hands it back as an object URL, so
25
+ * the page can go through the same `<img>` path as any other view: zoom,
26
+ * rotation and pan come for free and the PDF never needs its own controls.
27
+ */
28
+ const renderPage = async (pdf, pageNumber) => {
29
+ const page = await pdf.getPage(pageNumber);
30
+ const { width, height } = page.getViewport({ scale: 1 });
31
+ const side = Math.min(RENDER_SIDE_MAX, RENDER_SIDE_BASE * (window.devicePixelRatio || 1));
32
+ const viewport = page.getViewport({ scale: side / Math.max(width, height) });
33
+ const canvas = document.createElement('canvas');
34
+ canvas.width = Math.ceil(viewport.width);
35
+ canvas.height = Math.ceil(viewport.height);
36
+ await page.render({ canvas, viewport }).promise;
37
+ page.cleanup();
38
+ const blob = await new Promise((resolve) => canvas.toBlob(resolve, 'image/png'));
39
+ if (!blob)
40
+ throw new Error('The page could not be encoded as an image.');
41
+ return URL.createObjectURL(blob);
42
+ };
43
+ /**
44
+ * Loads a PDF and renders its pages to images on demand, one at a time: the
45
+ * current page is drawn when it is first shown and kept for the life of the
46
+ * document. Object URLs are revoked and the document is destroyed when `src`
47
+ * changes or the component unmounts.
48
+ *
49
+ * @param {string} src - PDF URL. The browser fetches it, so its origin must allow CORS.
50
+ *
51
+ * @returns {TPdfPages} Load status, page count, current page and its image URL, plus `goToPage`.
52
+ */
53
+ export const usePdfPages = (src) => {
54
+ const [status, setStatus] = useState('loading');
55
+ const [pdf, setPdf] = useState(null);
56
+ const [pageIndex, setPageIndex] = useState(0);
57
+ const [pages, setPages] = useState({});
58
+ const activePdfRef = useRef(null);
59
+ const pagesRef = useRef({});
60
+ useEffect(() => {
61
+ let isCurrent = true;
62
+ let task;
63
+ // eslint-disable-next-line react-hooks/set-state-in-effect -- clears the previous document while this effect loads the new one
64
+ setStatus('loading');
65
+ setPdf(null);
66
+ setPageIndex(0);
67
+ setPages({});
68
+ const load = async () => {
69
+ const pdfjs = await loadPdfjs();
70
+ if (!isCurrent)
71
+ return;
72
+ task = pdfjs.getDocument({ url: src });
73
+ const loaded = await task.promise;
74
+ if (!isCurrent)
75
+ return;
76
+ activePdfRef.current = loaded;
77
+ setPdf(loaded);
78
+ setStatus('ready');
79
+ };
80
+ load().catch(() => {
81
+ if (isCurrent)
82
+ setStatus('error');
83
+ });
84
+ return () => {
85
+ isCurrent = false;
86
+ activePdfRef.current = null;
87
+ task?.destroy();
88
+ Object.values(pagesRef.current).forEach((url) => URL.revokeObjectURL(url));
89
+ pagesRef.current = {};
90
+ };
91
+ }, [src]);
92
+ useEffect(() => {
93
+ if (!pdf || pagesRef.current[pageIndex])
94
+ return;
95
+ renderPage(pdf, pageIndex + 1)
96
+ .then((url) => {
97
+ if (activePdfRef.current !== pdf || pagesRef.current[pageIndex]) {
98
+ URL.revokeObjectURL(url);
99
+ return;
100
+ }
101
+ pagesRef.current = { ...pagesRef.current, [pageIndex]: url };
102
+ setPages(pagesRef.current);
103
+ })
104
+ .catch(() => {
105
+ if (activePdfRef.current === pdf)
106
+ setStatus('error');
107
+ });
108
+ }, [pdf, pageIndex]);
109
+ const pageCount = pdf?.numPages ?? 0;
110
+ const goToPage = (index) => setPageIndex(Math.min(Math.max(index, 0), Math.max(pageCount - 1, 0)));
111
+ return { status, pageCount, pageIndex, pageSrc: pages[pageIndex], goToPage };
112
+ };
113
+ //# sourceMappingURL=usePdfPages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePdfPages.js","sourceRoot":"","sources":["../../../../src/components/02-molecules/ImageViewer/usePdfPages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/Tab/TabList.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EAEnB,SAAS,EAGV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAW,YAAY,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IAC9D,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAenC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,EACP,QAAoB,EACpB,cAAkB,EAClB,SAAiB,EACjB,GAAG,SAAS,EACb,EAAE,YAAY,GAAG,SAAS,CAqH1B"}
1
+ {"version":3,"file":"TabList.d.ts","sourceRoot":"","sources":["../../../../src/components/02-molecules/Tab/TabList.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EAEnB,SAAS,EAGV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAW,YAAY,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAOhD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IAC9D,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAenC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,EACP,QAAoB,EACpB,cAAkB,EAClB,SAAiB,EACjB,GAAG,SAAS,EACb,EAAE,YAAY,GAAG,SAAS,CAkI1B"}
@@ -98,6 +98,10 @@ export function TabList({ list, callback, listProps, contentProps, actions, modi
98
98
  activeTab,
99
99
  generatedId,
100
100
  };
101
+ const barProps = {
102
+ 'data-orion-part': 'tab-bar',
103
+ 'data-modifier': modifier,
104
+ };
101
105
  /**
102
106
  * `rowClassName` es donde vive la linea inferior. Con `actions` la lleva la
103
107
  * fila y no la lista, para que cruce el ancho completo y las acciones queden
@@ -111,28 +115,28 @@ export function TabList({ list, callback, listProps, contentProps, actions, modi
111
115
  * de accion apoya su borde inferior justo sobre ella y queda pegado a lo que
112
116
  * sigue. Va en la fila y no en cada parte para no desarmar la linea de base.
113
117
  */
114
- const renderTabs = (rowClassName, listClassName) => actions ? (<div className={clsx('flex items-end justify-between gap-8 pb-1.5', rowClassName)}>
118
+ const renderTabs = (rowClassName, listClassName, rowProps) => actions ? (<div {...rowProps} className={clsx('flex items-end justify-between gap-8 pb-1.5', rowClassName)}>
115
119
  <RenderList className={listClassName} itemClassName="pb-3" {...listArgs}/>
116
120
  <div className="flex shrink-0 items-center gap-5">{actions}</div>
117
- </div>) : (<RenderList className={clsx(rowClassName, listClassName)} {...listArgs}/>);
121
+ </div>) : (<RenderList className={clsx(rowClassName, listClassName)} barProps={rowProps} {...listArgs}/>);
118
122
  const Element = Object.keys(restProps).length ? 'div' : Fragment;
119
123
  return (<Element {...restProps}>
120
124
  <Show>
121
125
  <Show.When isTrue={container}>
122
- <div className={clsx('border-b', styleMap[modifier], listProps?.className)}>
126
+ <div {...barProps} className={clsx('border-b', styleMap[modifier], listProps?.className)}>
123
127
  <Container>{renderTabs('', 'gap-4')}</Container>
124
128
  </div>
125
129
  <Container>{panel}</Container>
126
130
  </Show.When>
127
131
  <Show.Else>
128
- {renderTabs(clsx('border-b', styleMap[modifier]), clsx('gap-4', listProps?.className))}
132
+ {renderTabs(clsx('border-b', styleMap[modifier]), clsx('gap-4', listProps?.className), barProps)}
129
133
  {panel}
130
134
  </Show.Else>
131
135
  </Show>
132
136
  </Element>);
133
137
  }
134
- const RenderList = ({ className, itemClassName, list, handleItem, handleKeyDown, activeTab, generatedId, }) => {
135
- return (<List role="tablist" aria-orientation="horizontal" orientation="horizontal" className={className}>
138
+ const RenderList = ({ className, itemClassName, barProps, list, handleItem, handleKeyDown, activeTab, generatedId, }) => {
139
+ return (<List {...barProps} role="tablist" aria-orientation="horizontal" orientation="horizontal" className={className}>
136
140
  <Each of={list} render={({ title, icon, count }, index) => {
137
141
  return (<li key={title} role="presentation">
138
142
  <TabItem id={`${generatedId}-tab-${index}`} aria-controls={`${generatedId}-panel-${index}`} aria-selected={index === activeTab} tabIndex={index === activeTab ? 0 : -1} className={itemClassName} icon={icon} count={count} onClick={() => handleItem(index)} onKeyDown={(event) => handleKeyDown(event, index)} isActive={index === activeTab}>
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/Tab/TabList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TabList.jsx","sourceRoot":"","sources":["../../../../src/components/02-molecules/Tab/TabList.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export * from './Autocomplete';
4
4
  export * from './MultiAutocomplete';
5
5
  export * from './FilterChips';
6
6
  export * from './Dropdown';
7
+ export * from './ActionMenu';
7
8
  export * from './Container';
8
9
  export * from './SlideOver';
9
10
  export * from './Breadcrumb';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/02-molecules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/02-molecules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
@@ -4,6 +4,7 @@ export * from './Autocomplete';
4
4
  export * from './MultiAutocomplete';
5
5
  export * from './FilterChips';
6
6
  export * from './Dropdown';
7
+ export * from './ActionMenu';
7
8
  export * from './Container';
8
9
  export * from './SlideOver';
9
10
  export * from './Breadcrumb';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/02-molecules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/02-molecules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ /** One series of bars: one value per label, in the same order. */
3
+ export type BarChartSeries = {
4
+ name: string;
5
+ data: number[];
6
+ };
7
+ /** Horizontal dashed line across the plot, such as a goal or a limit. */
8
+ export type BarChartReference = {
9
+ value: number;
10
+ label: string;
11
+ };
12
+ type BarChartProps = {
13
+ labels: string[];
14
+ series: BarChartSeries[];
15
+ ariaLabel: string;
16
+ formatValue?: (value: number) => string;
17
+ reference?: BarChartReference;
18
+ height?: number;
19
+ } & Omit<HTMLAttributes<HTMLElement>, 'children'>;
20
+ /**
21
+ * BarChart component for comparing a few values side by side, as vertical bars.
22
+ *
23
+ * Each label gets one bar per series, with its value on top. A `reference`
24
+ * draws a dashed line, such as a goal, over the bars; its label goes in the
25
+ * legend under the plot, so no bar covers it. The bars are hidden from screen
26
+ * readers, which read a table with the same values instead.
27
+ *
28
+ * @component
29
+ * @example
30
+ * // Mean cost per route, with the goal as a reference line
31
+ * <BarChart
32
+ * labels={['lookup', 'similar', 'model']}
33
+ * series={[{ name: 'USD per case', data: [0.03, 0.09, 0.24] }]}
34
+ * formatValue={(value) => value.toFixed(2)}
35
+ * reference={{ value: 0.25, label: 'goal 0.25' }}
36
+ * ariaLabel="Mean cost per route"
37
+ * />
38
+ *
39
+ * @param {Object} props - The properties of the BarChart component.
40
+ * @param {string[]} props.labels - One label per group of bars, under the plot.
41
+ * @param {BarChartSeries[]} props.series - The values. With more than one series the bars are grouped and a legend shows up.
42
+ * @param {string} props.ariaLabel - What the chart shows: the caption of the table that screen readers read.
43
+ * @param {Function} [props.formatValue] - Turns each value into the text over its bar and in the table. Defaults to `String`.
44
+ * @param {BarChartReference} [props.reference] - A dashed line at that value; its label goes in the legend.
45
+ * @param {number} [props.height=200] - Height of the plot in pixels, without the labels.
46
+ * @param {Object} [props.restProps] - Additional properties to be passed to the `figure`.
47
+ *
48
+ * @returns {ReactNode} The rendered BarChart component.
49
+ */
50
+ export declare function BarChart({ labels, series, ariaLabel, formatValue, reference, height, ...restProps }: BarChartProps): ReactNode;
51
+ export {};
52
+ //# sourceMappingURL=BarChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/03-organisms/BarChart/BarChart.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;AAelD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAoB,EACpB,SAAS,EACT,MAAY,EACZ,GAAG,SAAS,EACb,EAAE,aAAa,GAAG,SAAS,CA4J3B"}
@@ -0,0 +1,116 @@
1
+ import clsx from 'clsx';
2
+ import { Each, Show } from '../../00-base';
3
+ const seriesStyleMap = [
4
+ 'bg-lavender dark:bg-lavender-dark',
5
+ 'bg-cyan dark:bg-cyan-dark',
6
+ 'bg-olive dark:bg-olive-dark',
7
+ 'bg-amber dark:bg-amber-dark',
8
+ ];
9
+ const seriesStyle = (index) => seriesStyleMap[index % seriesStyleMap.length];
10
+ const MUTED = 'text-gray-1 dark:text-gray-2';
11
+ const REFERENCE_LINE = 'border-amber dark:border-amber-dark';
12
+ /**
13
+ * BarChart component for comparing a few values side by side, as vertical bars.
14
+ *
15
+ * Each label gets one bar per series, with its value on top. A `reference`
16
+ * draws a dashed line, such as a goal, over the bars; its label goes in the
17
+ * legend under the plot, so no bar covers it. The bars are hidden from screen
18
+ * readers, which read a table with the same values instead.
19
+ *
20
+ * @component
21
+ * @example
22
+ * // Mean cost per route, with the goal as a reference line
23
+ * <BarChart
24
+ * labels={['lookup', 'similar', 'model']}
25
+ * series={[{ name: 'USD per case', data: [0.03, 0.09, 0.24] }]}
26
+ * formatValue={(value) => value.toFixed(2)}
27
+ * reference={{ value: 0.25, label: 'goal 0.25' }}
28
+ * ariaLabel="Mean cost per route"
29
+ * />
30
+ *
31
+ * @param {Object} props - The properties of the BarChart component.
32
+ * @param {string[]} props.labels - One label per group of bars, under the plot.
33
+ * @param {BarChartSeries[]} props.series - The values. With more than one series the bars are grouped and a legend shows up.
34
+ * @param {string} props.ariaLabel - What the chart shows: the caption of the table that screen readers read.
35
+ * @param {Function} [props.formatValue] - Turns each value into the text over its bar and in the table. Defaults to `String`.
36
+ * @param {BarChartReference} [props.reference] - A dashed line at that value; its label goes in the legend.
37
+ * @param {number} [props.height=200] - Height of the plot in pixels, without the labels.
38
+ * @param {Object} [props.restProps] - Additional properties to be passed to the `figure`.
39
+ *
40
+ * @returns {ReactNode} The rendered BarChart component.
41
+ */
42
+ export function BarChart({ labels, series, ariaLabel, formatValue = String, reference, height = 200, ...restProps }) {
43
+ const values = series.flatMap((item) => item.data);
44
+ const max = Math.max(...values, reference?.value ?? 0, 0) || 1;
45
+ const share = (value) => `${(Math.max(value, 0) / max) * 100}%`;
46
+ return (<figure {...restProps} className={clsx('m-0 text-black dark:text-white', restProps.className)}>
47
+ <div aria-hidden="true" className="pt-5">
48
+ <div className="border-gray-5 dark:border-gray-1 relative flex items-end gap-4 border-b px-2" style={{ height }}>
49
+ <Show>
50
+ <Show.When isTrue={!!reference}>
51
+ <div className={clsx('absolute inset-x-0 z-10 border-t border-dashed', REFERENCE_LINE)} style={{ bottom: share(reference?.value ?? 0) }}/>
52
+ </Show.When>
53
+ </Show>
54
+ <Each of={labels} render={(label, labelIndex) => (<div key={label} className="flex h-full flex-1 items-end justify-center gap-1">
55
+ <Each of={series} render={(item, seriesIndex) => (<div key={item.name} className={clsx('relative min-h-0.5 max-w-14 flex-1 rounded-t', seriesStyle(seriesIndex))} style={{ height: share(item.data[labelIndex] ?? 0) }}>
56
+ <span className="absolute bottom-full left-1/2 mb-0.5 -translate-x-1/2 text-xs leading-4 font-semibold whitespace-nowrap">
57
+ {formatValue(item.data[labelIndex] ?? 0)}
58
+ </span>
59
+ </div>)}/>
60
+ </div>)}/>
61
+ </div>
62
+ <div className="flex gap-4 px-2 pt-2">
63
+ <Each of={labels} render={(label) => (<span key={label} className={clsx('min-w-0 flex-1 text-center text-xs leading-4 break-words', MUTED)}>
64
+ {label}
65
+ </span>)}/>
66
+ </div>
67
+ <Show>
68
+ <Show.When isTrue={series.length > 1 || !!reference}>
69
+ <div className="flex flex-wrap gap-4 px-2 pt-3">
70
+ <Show>
71
+ <Show.When isTrue={series.length > 1}>
72
+ <Each of={series} render={(item, seriesIndex) => (<span key={item.name} className={clsx('inline-flex items-center gap-1.5 text-xs', MUTED)}>
73
+ <span className={clsx('size-2 rounded-sm', seriesStyle(seriesIndex))}/>
74
+ {item.name}
75
+ </span>)}/>
76
+ </Show.When>
77
+ </Show>
78
+ <Show>
79
+ <Show.When isTrue={!!reference}>
80
+ <span className="text-amber-strong dark:text-amber-dark inline-flex items-center gap-1.5 text-xs">
81
+ <span className={clsx('w-4 border-t-2 border-dashed', REFERENCE_LINE)}/>
82
+ {reference?.label}
83
+ </span>
84
+ </Show.When>
85
+ </Show>
86
+ </div>
87
+ </Show.When>
88
+ </Show>
89
+ </div>
90
+ <table className="sr-only">
91
+ <caption>{ariaLabel}</caption>
92
+ <thead>
93
+ <tr>
94
+ <td />
95
+ <Each of={series} render={(item) => (<th key={item.name} scope="col">
96
+ {item.name}
97
+ </th>)}/>
98
+ </tr>
99
+ </thead>
100
+ <tbody>
101
+ <Each of={labels} render={(label, labelIndex) => (<tr key={label}>
102
+ <th scope="row">{label}</th>
103
+ <Each of={series} render={(item) => (<td key={item.name}>
104
+ {formatValue(item.data[labelIndex] ?? 0)}
105
+ </td>)}/>
106
+ </tr>)}/>
107
+ </tbody>
108
+ </table>
109
+ <Show>
110
+ <Show.When isTrue={!!reference}>
111
+ <p className="sr-only">{reference?.label}</p>
112
+ </Show.When>
113
+ </Show>
114
+ </figure>);
115
+ }
116
+ //# sourceMappingURL=BarChart.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChart.jsx","sourceRoot":"","sources":["../../../../src/components/03-organisms/BarChart/BarChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './BarChart';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/03-organisms/BarChart/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './BarChart';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/03-organisms/BarChart/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -2,7 +2,7 @@ import { ComponentProps, HTMLAttributes, ReactNode } from 'react';
2
2
  import { Pagination, Table } from '../../02-molecules';
3
3
  type DataTableProps = {
4
4
  table: Pick<ComponentProps<typeof Table>, 'id' | 'headers' | 'data' | 'action' | 'actions' | 'loading' | 'selectable' | 'multiple' | 'currentSelection' | 'setCurrentSelection' | 'tableName' | 'selectAllLabel' | 'getRowSelectionLabel' | 'getRowActionLabel' | 'footer' | 'empty' | 'tableProps'>;
5
- pagination: Pick<ComponentProps<typeof Pagination>, 'currentPage' | 'pageChange' | 'itemsPerPage' | 'totalItems' | 'navigationLabel' | 'previousPageLabel' | 'nextPageLabel' | 'itemsPerPageLabel'>;
5
+ pagination?: Pick<ComponentProps<typeof Pagination>, 'currentPage' | 'pageChange' | 'itemsPerPage' | 'totalItems' | 'navigationLabel' | 'previousPageLabel' | 'nextPageLabel' | 'itemsPerPageLabel'>;
6
6
  summary?: ReactNode;
7
7
  modifier?: DataTableVariants;
8
8
  } & HTMLAttributes<HTMLDivElement>;
@@ -14,6 +14,9 @@ export type DataTableVariants = 'card' | 'plain';
14
14
  * so only the row separators are left, for tables that read as part of the page
15
15
  * instead of as a card.
16
16
  *
17
+ * Without `pagination` the table shows every row it gets and the pagination
18
+ * row goes away; a `summary` still gets a row of its own.
19
+ *
17
20
  * @component
18
21
  * @example
19
22
  * // Example usage of DataTable component
@@ -42,7 +45,7 @@ export type DataTableVariants = 'card' | 'plain';
42
45
  * @param {Function} props.table.action - The action to be performed on table data.
43
46
  * @param {Array<Object>} props.table.actions - The actions available for table rows.
44
47
  * @param {boolean} props.table.loading - The loading state of the table.
45
- * @param {Object} props.pagination - The pagination configuration.
48
+ * @param {Object} [props.pagination] - The pagination configuration. Without it, no pagination row.
46
49
  * @param {number} props.pagination.currentPage - The current page number.
47
50
  * @param {Function} props.pagination.pageChange - The function to handle page changes.
48
51
  * @param {number} props.pagination.itemsPerPage - The number of items per page.
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/03-organisms/DataTable/DataTable.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5E,OAAO,EACL,UAAU,EACV,KAAK,EAGN,MAAM,oBAAoB,CAAC;AAE5B,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,IAAI,CACT,cAAc,CAAC,OAAO,KAAK,CAAC,EAC1B,IAAI,GACJ,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,YAAY,GACZ,UAAU,GACV,kBAAkB,GAClB,qBAAqB,GACrB,WAAW,GACX,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,QAAQ,GACR,OAAO,GACP,YAAY,CACf,CAAC;IACF,UAAU,EAAE,IAAI,CACd,cAAc,CAAC,OAAO,UAAU,CAAC,EAC/B,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,mBAAmB,CACtB,CAAC;IACF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;AAOjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,UAAU,EACV,OAAO,EACP,QAAkB,EAClB,GAAG,SAAS,EACb,EAAE,cAAc,GAAG,SAAS,CA+E5B"}
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/03-organisms/DataTable/DataTable.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5E,OAAO,EACL,UAAU,EACV,KAAK,EAGN,MAAM,oBAAoB,CAAC;AAE5B,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,IAAI,CACT,cAAc,CAAC,OAAO,KAAK,CAAC,EAC1B,IAAI,GACJ,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,YAAY,GACZ,UAAU,GACV,kBAAkB,GAClB,qBAAqB,GACrB,WAAW,GACX,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,QAAQ,GACR,OAAO,GACP,YAAY,CACf,CAAC;IACF,UAAU,CAAC,EAAE,IAAI,CACf,cAAc,CAAC,OAAO,UAAU,CAAC,EAC/B,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,mBAAmB,CACtB,CAAC;IACF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;AAOjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,UAAU,EACV,OAAO,EACP,QAAkB,EAClB,GAAG,SAAS,EACb,EAAE,cAAc,GAAG,SAAS,CAmF5B"}
@@ -14,6 +14,9 @@ const styleMap = {
14
14
  * so only the row separators are left, for tables that read as part of the page
15
15
  * instead of as a card.
16
16
  *
17
+ * Without `pagination` the table shows every row it gets and the pagination
18
+ * row goes away; a `summary` still gets a row of its own.
19
+ *
17
20
  * @component
18
21
  * @example
19
22
  * // Example usage of DataTable component
@@ -42,7 +45,7 @@ const styleMap = {
42
45
  * @param {Function} props.table.action - The action to be performed on table data.
43
46
  * @param {Array<Object>} props.table.actions - The actions available for table rows.
44
47
  * @param {boolean} props.table.loading - The loading state of the table.
45
- * @param {Object} props.pagination - The pagination configuration.
48
+ * @param {Object} [props.pagination] - The pagination configuration. Without it, no pagination row.
46
49
  * @param {number} props.pagination.currentPage - The current page number.
47
50
  * @param {Function} props.pagination.pageChange - The function to handle page changes.
48
51
  * @param {number} props.pagination.itemsPerPage - The number of items per page.
@@ -54,10 +57,10 @@ const styleMap = {
54
57
  * @returns {ReactNode} The rendered DataTable component.
55
58
  */
56
59
  export function DataTable({ table, pagination, summary, modifier = 'plain', ...restProps }) {
57
- const [numberOfRows, setNumberOfRows] = useState(pagination.itemsPerPage?.at(0) || 10);
60
+ const [numberOfRows, setNumberOfRows] = useState(pagination?.itemsPerPage?.at(0) || 10);
58
61
  const handlePageChange = (page, itemsPerPage) => {
59
62
  setNumberOfRows(itemsPerPage || 10);
60
- pagination.pageChange(page, itemsPerPage);
63
+ pagination?.pageChange(page, itemsPerPage);
61
64
  };
62
65
  return (<div {...restProps} data-orion-part="data-table" data-modifier={modifier} className={clsx('dark:text-white', styleMap[modifier], restProps.className)}>
63
66
  <Show>
@@ -72,10 +75,10 @@ export function DataTable({ table, pagination, summary, modifier = 'plain', ...r
72
75
  <Table {...table} numberOfRows={numberOfRows} selectable={true} multiple={false} currentSelection={table.currentSelection} setCurrentSelection={table.setCurrentSelection}/>
73
76
  </Show.When>
74
77
  </Show>
75
- <div className={clsx('flex flex-wrap items-center gap-4 px-4 py-2', summary ? 'justify-between' : 'justify-end')}>
76
- {summary}
77
- <Pagination {...pagination} pageChange={handlePageChange} className={'justify-end'} disableNavigation={table.loading} disabledNext={table.data.length < numberOfRows}/>
78
- </div>
78
+ {(!!pagination || !!summary) && (<div className={clsx('flex flex-wrap items-center gap-4 px-4 py-2', summary ? 'justify-between' : 'justify-end')}>
79
+ {summary}
80
+ {!!pagination && (<Pagination {...pagination} pageChange={handlePageChange} className={'justify-end'} disableNavigation={table.loading} disabledNext={table.data.length < numberOfRows}/>)}
81
+ </div>)}
79
82
  </div>);
80
83
  }
81
84
  //# sourceMappingURL=DataTable.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.jsx","sourceRoot":"","sources":["../../../../src/components/03-organisms/DataTable/DataTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.jsx","sourceRoot":"","sources":["../../../../src/components/03-organisms/DataTable/DataTable.tsx"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export * from './AsideFilters';
4
4
  export * from './Header';
5
5
  export * from './ModalMultiple';
6
6
  export * from './MapView';
7
+ export * from './BarChart';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/03-organisms/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/03-organisms/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -4,4 +4,5 @@ export * from './AsideFilters';
4
4
  export * from './Header';
5
5
  export * from './ModalMultiple';
6
6
  export * from './MapView';
7
+ export * from './BarChart';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/03-organisms/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/03-organisms/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -16,6 +16,7 @@ export type LoginFormSubmitState = {
16
16
  label: string;
17
17
  };
18
18
  export type LoginFormErrorStyle = 'text' | 'message';
19
+ export type LoginFormCodeLayout = 'replace' | 'below';
19
20
  type LoginFormProps = {
20
21
  login: (formData: FormData) => Promise<string | undefined>;
21
22
  callback?: () => void;
@@ -37,6 +38,8 @@ type LoginFormProps = {
37
38
  errorStyle?: LoginFormErrorStyle;
38
39
  toastErrors?: boolean;
39
40
  showSpinner?: boolean;
41
+ codeLayout?: LoginFormCodeLayout;
42
+ onBack?: () => void;
40
43
  };
41
44
  /**
42
45
  * LoginForm component for rendering a login form with email and password
@@ -87,9 +90,11 @@ type LoginFormProps = {
87
90
  * @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.
88
91
  * @param {boolean} [props.toastErrors=true] - Also shows each error in a toast.
89
92
  * @param {boolean} [props.showSpinner=true] - Shows a spinner under the form while `login` runs. Turn it off when `renderSubmit` already shows the wait.
93
+ * @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.
94
+ * @param {Function} [props.onBack] - Called when the user leaves the code step or the MFA setup to edit the email and password.
90
95
  *
91
96
  * @returns {ReactNode} The rendered LoginForm component.
92
97
  */
93
- export declare function LoginForm({ login, callback, needCode, lengthCode, setupMfa, showPasswordAriaLabel, hidePasswordAriaLabel, getOtpDigitAriaLabel, loadingLabel, setupMfaAccessibilityLabels, title, description, labels, forgotPassword, footer, renderSubmit, errorStyle, toastErrors, showSpinner, }: LoginFormProps): ReactNode;
98
+ export declare function LoginForm({ login, callback, needCode, lengthCode, setupMfa, showPasswordAriaLabel, hidePasswordAriaLabel, getOtpDigitAriaLabel, loadingLabel, setupMfaAccessibilityLabels, title, description, labels, forgotPassword, footer, renderSubmit, errorStyle, toastErrors, showSpinner, codeLayout, onBack, }: LoginFormProps): ReactNode;
94
99
  export {};
95
100
  //# sourceMappingURL=LoginForm.d.ts.map