@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.
- package/assets/avatares/caja-ruedas.svg +1 -0
- package/assets/avatares/cohete-azul.svg +1 -0
- package/assets/avatares/criatura-tres-ojos.svg +1 -0
- package/assets/avatares/cubo-brazos.svg +1 -0
- package/assets/avatares/cubo-morado.svg +1 -0
- package/assets/avatares/dino-placas-amarillas.svg +1 -0
- package/assets/avatares/dino-placas-azules.svg +1 -0
- package/assets/avatares/edificio-cupulas.svg +1 -0
- package/assets/avatares/globo-anillo.svg +1 -0
- package/assets/avatares/pulpo-morado.svg +1 -0
- package/assets/avatares/robot-lente.svg +1 -0
- package/assets/avatares/ventana-codigo.svg +1 -0
- package/assets/css/expresivo.css +37 -0
- package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts +11 -3
- package/dist/components/01-atoms/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx +13 -5
- package/dist/components/01-atoms/CodeBlock/CodeBlock.jsx.map +1 -1
- package/dist/components/01-atoms/OtpInput/OtpInput.d.ts +1 -1
- package/dist/components/01-atoms/OtpInput/OtpInput.jsx +3 -2
- package/dist/components/01-atoms/OtpInput/OtpInput.jsx.map +1 -1
- package/dist/components/02-molecules/ActionMenu/ActionMenu.d.ts +39 -0
- package/dist/components/02-molecules/ActionMenu/ActionMenu.d.ts.map +1 -0
- package/dist/components/02-molecules/ActionMenu/ActionMenu.jsx +36 -0
- package/dist/components/02-molecules/ActionMenu/ActionMenu.jsx.map +1 -0
- package/dist/components/02-molecules/ActionMenu/index.d.ts +2 -0
- package/dist/components/02-molecules/ActionMenu/index.d.ts.map +1 -0
- package/dist/components/02-molecules/ActionMenu/index.js +2 -0
- package/dist/components/02-molecules/ActionMenu/index.js.map +1 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts +35 -3
- package/dist/components/02-molecules/ImageViewer/ImageViewer.d.ts.map +1 -1
- package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx +193 -31
- package/dist/components/02-molecules/ImageViewer/ImageViewer.jsx.map +1 -1
- package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.d.ts +52 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.d.ts.map +1 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.jsx +78 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerDocument.jsx.map +1 -0
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts +8 -2
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.d.ts.map +1 -1
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx +10 -4
- package/dist/components/02-molecules/ImageViewer/ImageViewerImage.jsx.map +1 -1
- package/dist/components/02-molecules/ImageViewer/usePdfPages.d.ts +20 -0
- package/dist/components/02-molecules/ImageViewer/usePdfPages.d.ts.map +1 -0
- package/dist/components/02-molecules/ImageViewer/usePdfPages.js +113 -0
- package/dist/components/02-molecules/ImageViewer/usePdfPages.js.map +1 -0
- package/dist/components/02-molecules/Tab/TabList.d.ts.map +1 -1
- package/dist/components/02-molecules/Tab/TabList.jsx +10 -6
- package/dist/components/02-molecules/Tab/TabList.jsx.map +1 -1
- package/dist/components/02-molecules/index.d.ts +1 -0
- package/dist/components/02-molecules/index.d.ts.map +1 -1
- package/dist/components/02-molecules/index.js +1 -0
- package/dist/components/02-molecules/index.js.map +1 -1
- package/dist/components/03-organisms/BarChart/BarChart.d.ts +52 -0
- package/dist/components/03-organisms/BarChart/BarChart.d.ts.map +1 -0
- package/dist/components/03-organisms/BarChart/BarChart.jsx +116 -0
- package/dist/components/03-organisms/BarChart/BarChart.jsx.map +1 -0
- package/dist/components/03-organisms/BarChart/index.d.ts +2 -0
- package/dist/components/03-organisms/BarChart/index.d.ts.map +1 -0
- package/dist/components/03-organisms/BarChart/index.js +2 -0
- package/dist/components/03-organisms/BarChart/index.js.map +1 -0
- package/dist/components/03-organisms/DataTable/DataTable.d.ts +5 -2
- package/dist/components/03-organisms/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/03-organisms/DataTable/DataTable.jsx +10 -7
- package/dist/components/03-organisms/DataTable/DataTable.jsx.map +1 -1
- package/dist/components/03-organisms/index.d.ts +1 -0
- package/dist/components/03-organisms/index.d.ts.map +1 -1
- package/dist/components/03-organisms/index.js +1 -0
- package/dist/components/03-organisms/index.js.map +1 -1
- package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts +6 -1
- package/dist/components/04-templates/LoginTemplate/LoginForm.d.ts.map +1 -1
- package/dist/components/04-templates/LoginTemplate/LoginForm.jsx +29 -7
- package/dist/components/04-templates/LoginTemplate/LoginForm.jsx.map +1 -1
- package/dist/components/04-templates/LoginTemplate/SetupMfa/StepThree.d.ts.map +1 -1
- package/dist/components/04-templates/LoginTemplate/SetupMfa/StepThree.jsx +8 -4
- package/dist/components/04-templates/LoginTemplate/SetupMfa/StepThree.jsx.map +1 -1
- package/dist/components/04-templates/LoginTemplate/SetupMfa/StepTwo.d.ts.map +1 -1
- package/dist/components/04-templates/LoginTemplate/SetupMfa/StepTwo.jsx +10 -3
- package/dist/components/04-templates/LoginTemplate/SetupMfa/StepTwo.jsx.map +1 -1
- package/dist/components/04-templates/LoginTemplate/index.d.ts +1 -1
- package/dist/components/04-templates/LoginTemplate/index.d.ts.map +1 -1
- package/dist/components/04-templates/LoginTemplate/submitOnEnter.d.ts +9 -0
- package/dist/components/04-templates/LoginTemplate/submitOnEnter.d.ts.map +1 -0
- package/dist/components/04-templates/LoginTemplate/submitOnEnter.js +15 -0
- package/dist/components/04-templates/LoginTemplate/submitOnEnter.js.map +1 -0
- package/expresivo/ExpAccentNote/ExpAccentNote.d.ts +25 -0
- package/expresivo/ExpAccentNote/ExpAccentNote.d.ts.map +1 -0
- package/expresivo/ExpAccentNote/ExpAccentNote.jsx +47 -0
- package/expresivo/ExpAccentNote/ExpAccentNote.jsx.map +1 -0
- package/expresivo/ExpAccentNote/index.d.ts +2 -0
- package/expresivo/ExpAccentNote/index.d.ts.map +1 -0
- package/expresivo/ExpAccentNote/index.js +2 -0
- package/expresivo/ExpAccentNote/index.js.map +1 -0
- package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.d.ts +29 -0
- package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.d.ts.map +1 -0
- package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.jsx +44 -0
- package/expresivo/ExpCodeHostIcon/ExpCodeHostIcon.jsx.map +1 -0
- package/expresivo/ExpCodeHostIcon/index.d.ts +2 -0
- package/expresivo/ExpCodeHostIcon/index.d.ts.map +1 -0
- package/expresivo/ExpCodeHostIcon/index.js +2 -0
- package/expresivo/ExpCodeHostIcon/index.js.map +1 -0
- package/expresivo/ExpFigureBand/ExpFigureBand.d.ts +61 -0
- package/expresivo/ExpFigureBand/ExpFigureBand.d.ts.map +1 -0
- package/expresivo/ExpFigureBand/ExpFigureBand.jsx +102 -0
- package/expresivo/ExpFigureBand/ExpFigureBand.jsx.map +1 -0
- package/expresivo/ExpFigureBand/index.d.ts +2 -0
- package/expresivo/ExpFigureBand/index.d.ts.map +1 -0
- package/expresivo/ExpFigureBand/index.js +2 -0
- package/expresivo/ExpFigureBand/index.js.map +1 -0
- package/expresivo/ExpGrowBar/ExpGrowBar.d.ts +13 -2
- package/expresivo/ExpGrowBar/ExpGrowBar.d.ts.map +1 -1
- package/expresivo/ExpGrowBar/ExpGrowBar.jsx +16 -4
- package/expresivo/ExpGrowBar/ExpGrowBar.jsx.map +1 -1
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts +3 -0
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.d.ts.map +1 -1
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx +3 -0
- package/expresivo/ExpRepoAvatar/ExpRepoAvatar.jsx.map +1 -1
- package/expresivo/ExpRepoAvatar/catalog.d.ts +6 -2
- package/expresivo/ExpRepoAvatar/catalog.d.ts.map +1 -1
- package/expresivo/ExpRepoAvatar/catalog.js +29 -1
- package/expresivo/ExpRepoAvatar/catalog.js.map +1 -1
- package/expresivo/ExpSplitCard/ExpSplitCard.d.ts +38 -0
- package/expresivo/ExpSplitCard/ExpSplitCard.d.ts.map +1 -0
- package/expresivo/ExpSplitCard/ExpSplitCard.jsx +48 -0
- package/expresivo/ExpSplitCard/ExpSplitCard.jsx.map +1 -0
- package/expresivo/ExpSplitCard/index.d.ts +2 -0
- package/expresivo/ExpSplitCard/index.d.ts.map +1 -0
- package/expresivo/ExpSplitCard/index.js +2 -0
- package/expresivo/ExpSplitCard/index.js.map +1 -0
- package/expresivo/ExpStatusTag/ExpStatusTag.d.ts +26 -0
- package/expresivo/ExpStatusTag/ExpStatusTag.d.ts.map +1 -0
- package/expresivo/ExpStatusTag/ExpStatusTag.jsx +44 -0
- package/expresivo/ExpStatusTag/ExpStatusTag.jsx.map +1 -0
- package/expresivo/ExpStatusTag/index.d.ts +2 -0
- package/expresivo/ExpStatusTag/index.d.ts.map +1 -0
- package/expresivo/ExpStatusTag/index.js +2 -0
- package/expresivo/ExpStatusTag/index.js.map +1 -0
- package/expresivo/index.d.ts +5 -0
- package/expresivo/index.d.ts.map +1 -1
- package/expresivo/index.js +5 -0
- package/expresivo/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Each, Skeleton, Stat } from '@clicoh/orion-library';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useExpScope } from '../ExpScope/ExpScope';
|
|
5
|
+
// The small eyebrow takes the strong shades: the base error, success and amber
|
|
6
|
+
// sit below 4.5:1 on white at 10px.
|
|
7
|
+
const toneMap = {
|
|
8
|
+
accent: 'text-lavender dark:text-lavender-dark',
|
|
9
|
+
success: 'text-success-strong dark:text-success-dark',
|
|
10
|
+
warning: 'text-amber-strong dark:text-amber-dark',
|
|
11
|
+
error: 'text-error-strong dark:text-error-dark',
|
|
12
|
+
};
|
|
13
|
+
const statTone = {
|
|
14
|
+
accent: 'default',
|
|
15
|
+
success: 'success',
|
|
16
|
+
warning: 'warning',
|
|
17
|
+
error: 'error',
|
|
18
|
+
};
|
|
19
|
+
function Highlight({ figure, tone, side, isLoading, }) {
|
|
20
|
+
return (<div className={clsx('col-span-2 flex min-w-0 items-center', side === 'start'
|
|
21
|
+
? 'flex-row-reverse justify-end gap-5 lg:flex-[1.5] lg:gap-7'
|
|
22
|
+
: 'justify-between gap-5 lg:flex-[1.4]')}>
|
|
23
|
+
<dt className="flex min-w-0 flex-col gap-0.5">
|
|
24
|
+
{!!figure.eyebrow && (<span className={clsx('text-[10px] leading-[14px] font-semibold tracking-[0.04em] uppercase', toneMap[tone])}>
|
|
25
|
+
{figure.eyebrow}
|
|
26
|
+
</span>)}
|
|
27
|
+
<span className="text-[13px] leading-[18px] font-semibold text-black dark:text-white">
|
|
28
|
+
{figure.label}
|
|
29
|
+
</span>
|
|
30
|
+
{!!figure.hint && (<span className="text-gray-1 dark:text-gray-2 text-[11px] leading-4">
|
|
31
|
+
{figure.hint}
|
|
32
|
+
</span>)}
|
|
33
|
+
</dt>
|
|
34
|
+
<dd className="shrink-0 text-5xl leading-none font-bold whitespace-nowrap text-black tabular-nums lg:text-[56px] dark:text-white">
|
|
35
|
+
{isLoading ? (<Skeleton shape="rect" className="h-12 w-16"/>) : (figure.value)}
|
|
36
|
+
</dd>
|
|
37
|
+
</div>);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* One band with the figures that sum up a list: a large figure at the start,
|
|
41
|
+
* smaller ones in the middle and, at the end, a large one to act on, such as a
|
|
42
|
+
* gap. It goes above the list, in place of a row of `Stat` cards.
|
|
43
|
+
*
|
|
44
|
+
* The band is a description list: each figure is read as its label, then its
|
|
45
|
+
* value. The eyebrows are color plus words, never color alone.
|
|
46
|
+
*
|
|
47
|
+
* Below `lg` it stacks: the lead and the callout take a row each and the
|
|
48
|
+
* smaller figures go two by two between them.
|
|
49
|
+
*
|
|
50
|
+
* Outside an `ExpScope` it falls back to a row of core `Stat` cards, with the
|
|
51
|
+
* eyebrow tone as the stat's dot.
|
|
52
|
+
*
|
|
53
|
+
* @component
|
|
54
|
+
* @example
|
|
55
|
+
* <ExpFigureBand
|
|
56
|
+
* lead={{ value: 38, eyebrow: 'Active coverage', label: 'Repos in the whitelist', hint: '27 enabled' }}
|
|
57
|
+
* figures={[
|
|
58
|
+
* { value: 10, label: 'Indexed', hint: 'Ready for a diagnosis' },
|
|
59
|
+
* { value: 28, label: 'Without a clone', hint: 'They wait for a sync' },
|
|
60
|
+
* ]}
|
|
61
|
+
* callout={{ value: 11, eyebrow: 'Gap to close', label: 'Cases without an indexed repo', tone: 'error' }}
|
|
62
|
+
* />
|
|
63
|
+
*
|
|
64
|
+
* @param {ExpFigureBandProps} props - The properties of the ExpFigureBand component.
|
|
65
|
+
* @param {ExpFigureHighlight} props.lead - The main figure, large, at the start.
|
|
66
|
+
* @param {ExpFigure[]} [props.figures] - Smaller figures, in the middle.
|
|
67
|
+
* @param {ExpFigureHighlight} [props.callout] - A figure to act on, large, at the end.
|
|
68
|
+
* @param {boolean} [props.isLoading=false] - Shows placeholders instead of the values.
|
|
69
|
+
*
|
|
70
|
+
* @returns {ReactNode} The band, or a row of core `Stat` cards outside an `ExpScope`.
|
|
71
|
+
*/
|
|
72
|
+
export function ExpFigureBand({ lead, figures = [], callout, isLoading = false, ...restProps }) {
|
|
73
|
+
const inScope = useExpScope();
|
|
74
|
+
if (!inScope) {
|
|
75
|
+
const stats = [
|
|
76
|
+
{ ...lead, tone: statTone[lead.tone ?? 'accent'] },
|
|
77
|
+
...figures.map((figure) => ({ ...figure, tone: 'default' })),
|
|
78
|
+
...(callout
|
|
79
|
+
? [{ ...callout, tone: statTone[callout.tone ?? 'error'] }]
|
|
80
|
+
: []),
|
|
81
|
+
];
|
|
82
|
+
return (<div {...restProps} aria-busy={isLoading || undefined} className={clsx('grid gap-3 sm:grid-cols-2 lg:auto-cols-fr lg:grid-flow-col lg:grid-cols-none', restProps.className)}>
|
|
83
|
+
<Each of={stats} render={(stat) => (<Stat key={stat.label} label={stat.label} value={stat.value} hint={stat.hint} tone={stat.tone} isLoading={isLoading}/>)}/>
|
|
84
|
+
</div>);
|
|
85
|
+
}
|
|
86
|
+
return (<dl {...restProps} data-orion-part="exp-figure-band" aria-busy={isLoading || undefined} className={clsx('border-gray-5 grid grid-cols-2 gap-x-4 gap-y-6 rounded-2xl border bg-white p-5', 'lg:flex lg:items-center lg:gap-6 lg:px-8 lg:py-7', 'dark:border-gray-1 dark:bg-black', restProps.className)}>
|
|
87
|
+
<Highlight figure={lead} tone={lead.tone ?? 'accent'} side="start" isLoading={isLoading}/>
|
|
88
|
+
<Each of={figures} render={(figure) => (<div key={figure.label} className="grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-baseline gap-x-3 gap-y-1.5 lg:flex-1">
|
|
89
|
+
<dt className="col-start-2 row-start-1 text-[13px] leading-[18px] font-semibold text-black dark:text-white">
|
|
90
|
+
{figure.label}
|
|
91
|
+
</dt>
|
|
92
|
+
<dd className="col-start-1 row-start-1 text-[32px] leading-none font-bold whitespace-nowrap text-black tabular-nums dark:text-white">
|
|
93
|
+
{isLoading ? (<Skeleton shape="rect" className="h-8 w-10"/>) : (figure.value)}
|
|
94
|
+
</dd>
|
|
95
|
+
{!!figure.hint && (<dd className="text-gray-1 dark:text-gray-2 col-span-2 text-[11px] leading-4">
|
|
96
|
+
{figure.hint}
|
|
97
|
+
</dd>)}
|
|
98
|
+
</div>)}/>
|
|
99
|
+
{!!callout && (<Highlight figure={callout} tone={callout.tone ?? 'error'} side="end" isLoading={isLoading}/>)}
|
|
100
|
+
</dl>);
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ExpFigureBand.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpFigureBand.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpFigureBand/ExpFigureBand.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpFigureBand/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expresivo/ExpFigureBand/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -4,23 +4,34 @@ export type ExpGrowBarProps = {
|
|
|
4
4
|
value: number;
|
|
5
5
|
/** Accessible name of what the bar measures. */
|
|
6
6
|
ariaLabel: string;
|
|
7
|
+
/** Position between 0 and 100 of a tick across the bar, such as an alert threshold. */
|
|
8
|
+
marker?: number;
|
|
7
9
|
} & Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'role'>;
|
|
8
10
|
/**
|
|
9
11
|
* Progress bar whose fill grows in the clicOH gradient when it mounts. For
|
|
10
12
|
* scores and shares shown at rest; for an operation that is still running,
|
|
11
13
|
* use the core `ProgressBar`.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
15
|
+
* A `marker` draws an amber tick across the bar, such as an alert threshold.
|
|
16
|
+
* The tick is decoration: say what it marks in the text next to the bar.
|
|
17
|
+
*
|
|
18
|
+
* Outside an `ExpScope` it falls back to the core `ProgressBar`, without the
|
|
19
|
+
* tick.
|
|
14
20
|
*
|
|
15
21
|
* @component
|
|
16
22
|
* @example
|
|
17
23
|
* <ExpGrowBar value={57} ariaLabel="Share of cases solved" />
|
|
18
24
|
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Budget used, with the alert threshold at 80 %
|
|
27
|
+
* <ExpGrowBar value={35} marker={80} ariaLabel="Budget used" className="h-2.5" />
|
|
28
|
+
*
|
|
19
29
|
* @param {Object} props - The properties of the ExpGrowBar component.
|
|
20
30
|
* @param {number} props.value - Progress between 0 and 100.
|
|
21
31
|
* @param {string} props.ariaLabel - Accessible name of what the bar measures.
|
|
32
|
+
* @param {number} [props.marker] - Position between 0 and 100 of an amber tick across the bar.
|
|
22
33
|
*
|
|
23
34
|
* @returns {ReactNode} The bar, or a core `ProgressBar` outside an `ExpScope`.
|
|
24
35
|
*/
|
|
25
|
-
export declare function ExpGrowBar({ value, ariaLabel, ...restProps }: ExpGrowBarProps): ReactNode;
|
|
36
|
+
export declare function ExpGrowBar({ value, ariaLabel, marker, ...restProps }: ExpGrowBarProps): ReactNode;
|
|
26
37
|
//# sourceMappingURL=ExpGrowBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpGrowBar.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpGrowBar/ExpGrowBar.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,eAAe,GAAG;IAC5B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpGrowBar.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpGrowBar/ExpGrowBar.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,eAAe,GAAG;IAC5B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AAI9D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,MAAM,EACN,GAAG,SAAS,EACb,EAAE,eAAe,GAAG,SAAS,CAuC7B"}
|
|
@@ -9,19 +9,28 @@ const clamp = (value) => Math.min(100, Math.max(0, value));
|
|
|
9
9
|
* scores and shares shown at rest; for an operation that is still running,
|
|
10
10
|
* use the core `ProgressBar`.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* A `marker` draws an amber tick across the bar, such as an alert threshold.
|
|
13
|
+
* The tick is decoration: say what it marks in the text next to the bar.
|
|
14
|
+
*
|
|
15
|
+
* Outside an `ExpScope` it falls back to the core `ProgressBar`, without the
|
|
16
|
+
* tick.
|
|
13
17
|
*
|
|
14
18
|
* @component
|
|
15
19
|
* @example
|
|
16
20
|
* <ExpGrowBar value={57} ariaLabel="Share of cases solved" />
|
|
17
21
|
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Budget used, with the alert threshold at 80 %
|
|
24
|
+
* <ExpGrowBar value={35} marker={80} ariaLabel="Budget used" className="h-2.5" />
|
|
25
|
+
*
|
|
18
26
|
* @param {Object} props - The properties of the ExpGrowBar component.
|
|
19
27
|
* @param {number} props.value - Progress between 0 and 100.
|
|
20
28
|
* @param {string} props.ariaLabel - Accessible name of what the bar measures.
|
|
29
|
+
* @param {number} [props.marker] - Position between 0 and 100 of an amber tick across the bar.
|
|
21
30
|
*
|
|
22
31
|
* @returns {ReactNode} The bar, or a core `ProgressBar` outside an `ExpScope`.
|
|
23
32
|
*/
|
|
24
|
-
export function ExpGrowBar({ value, ariaLabel, ...restProps }) {
|
|
33
|
+
export function ExpGrowBar({ value, ariaLabel, marker, ...restProps }) {
|
|
25
34
|
const inScope = useExpScope();
|
|
26
35
|
const [shown, setShown] = useState(0);
|
|
27
36
|
const percent = clamp(value);
|
|
@@ -32,8 +41,11 @@ export function ExpGrowBar({ value, ariaLabel, ...restProps }) {
|
|
|
32
41
|
if (!inScope) {
|
|
33
42
|
return <ProgressBar {...restProps} value={percent} ariaLabel={ariaLabel}/>;
|
|
34
43
|
}
|
|
35
|
-
return (<div {...restProps} role="progressbar" aria-label={ariaLabel} aria-valuemin={0} aria-valuemax={100} aria-valuenow={percent} className={clsx('
|
|
36
|
-
<span className="
|
|
44
|
+
return (<div {...restProps} role="progressbar" aria-label={ariaLabel} aria-valuemin={0} aria-valuemax={100} aria-valuenow={percent} className={clsx('relative h-2 rounded-full', restProps.className)}>
|
|
45
|
+
<span className="bg-gray-5 dark:bg-gray-dark-1 absolute inset-0 overflow-hidden rounded-full">
|
|
46
|
+
<span className="from-lavender to-violet absolute inset-y-0 left-0 rounded-full bg-linear-90 transition-[width] duration-900 ease-[cubic-bezier(.22,1,.36,1)] motion-reduce:transition-none" style={{ width: `${shown}%` }}/>
|
|
47
|
+
</span>
|
|
48
|
+
{marker !== undefined && (<span aria-hidden="true" className="bg-amber dark:bg-amber-dark absolute -inset-y-1 w-0.5 -translate-x-1/2 rounded-full" style={{ left: `${clamp(marker)}%` }}/>)}
|
|
37
49
|
</div>);
|
|
38
50
|
}
|
|
39
51
|
//# sourceMappingURL=ExpGrowBar.jsx.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpGrowBar.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpGrowBar/ExpGrowBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAGL,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpGrowBar.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpGrowBar/ExpGrowBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAGL,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWnD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,MAAM,EACN,GAAG,SAAS,EACI;IAChB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAG,CAAC;IAC9E,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CACF,IAAI,SAAS,CAAC,CACd,IAAI,CAAC,aAAa,CAClB,UAAU,CAAC,CAAC,SAAS,CAAC,CACtB,aAAa,CAAC,CAAC,CAAC,CAAC,CACjB,aAAa,CAAC,CAAC,GAAG,CAAC,CACnB,aAAa,CAAC,CAAC,OAAO,CAAC,CACvB,SAAS,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAElE;MAAA,CAAC,IAAI,CAAC,SAAS,CAAC,6EAA6E,CAC3F;QAAA,CAAC,IAAI,CACH,SAAS,CAAC,4KAA4K,CACtL,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC,EAElC;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,MAAM,KAAK,SAAS,IAAI,CACvB,CAAC,IAAI,CACH,WAAW,CAAC,MAAM,CAClB,SAAS,CAAC,qFAAqF,CAC/F,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EACrC,CACH,CACH;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,9 @@ export type ExpRepoAvatarProps = {
|
|
|
9
9
|
* Little creature that stands for a repository next to its name. Decorative:
|
|
10
10
|
* always `aria-hidden`, so the repo name next to it carries the meaning.
|
|
11
11
|
*
|
|
12
|
+
* The drawings carry their own margin: no padding, circle or background around
|
|
13
|
+
* them. Under 20px they no longer read; there, show only the name.
|
|
14
|
+
*
|
|
12
15
|
* Outside an `ExpScope`, or with `mascots="hidden"`, it renders nothing.
|
|
13
16
|
*
|
|
14
17
|
* @component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpRepoAvatar.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/ExpRepoAvatar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,KAAK,iBAAiB,EAAqB,MAAM,WAAW,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"ExpRepoAvatar.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/ExpRepoAvatar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,KAAK,iBAAiB,EAAqB,MAAM,WAAW,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,IAAS,EACT,GAAG,SAAS,EACb,EAAE,kBAAkB,GAAG,SAAS,CAqBhC"}
|
|
@@ -6,6 +6,9 @@ import { repoAvatarCatalog } from './catalog';
|
|
|
6
6
|
* Little creature that stands for a repository next to its name. Decorative:
|
|
7
7
|
* always `aria-hidden`, so the repo name next to it carries the meaning.
|
|
8
8
|
*
|
|
9
|
+
* The drawings carry their own margin: no padding, circle or background around
|
|
10
|
+
* them. Under 20px they no longer read; there, show only the name.
|
|
11
|
+
*
|
|
9
12
|
* Outside an `ExpScope`, or with `mascots="hidden"`, it renders nothing.
|
|
10
13
|
*
|
|
11
14
|
* @component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpRepoAvatar.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/ExpRepoAvatar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAA0B,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQtE
|
|
1
|
+
{"version":3,"file":"ExpRepoAvatar.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/ExpRepoAvatar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAA0B,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,IAAI,GAAG,EAAE,EACT,GAAG,SAAS,EACO;IACnB,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IAErC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1D,OAAO,CACL,CAAC,IAAI,CACH,IAAI,SAAS,CAAC,CACd,WAAW,CAAC,MAAM,CAClB,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAE7D;MAAA,CAAC,GAAG,CACF,GAAG,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACjC,GAAG,CAAC,EAAE,CACN,KAAK,CAAC,CAAC,IAAI,CAAC,CACZ,MAAM,CAAC,CAAC,IAAI,CAAC,CACb,SAAS,CAAC,CAAC,KAAK,CAAC,CACjB,SAAS,CAAC,sBAAsB,EAEpC;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { StaticImageData } from 'next/image';
|
|
2
2
|
/** Repo avatars, named after the drawing like their files. Which repo gets which one is the consumer's call. */
|
|
3
|
-
export type ExpRepoAvatarName = 'pulpo' | 'pulpo-lentes' | 'pulpo-verde' | 'cohete' | 'dino' | 'caja' | 'caja-chispa';
|
|
4
|
-
/**
|
|
3
|
+
export type ExpRepoAvatarName = 'pulpo' | 'pulpo-lentes' | 'pulpo-verde' | 'cohete' | 'dino' | 'caja' | 'caja-chispa' | 'pulpo-morado' | 'robot-lente' | 'edificio-cupulas' | 'globo-anillo' | 'caja-ruedas' | 'cubo-morado' | 'dino-placas-azules' | 'criatura-tres-ojos' | 'cohete-azul' | 'dino-placas-amarillas' | 'cubo-brazos' | 'ventana-codigo';
|
|
4
|
+
/**
|
|
5
|
+
* The first seven are PNGs about 60px wide, sharp up to 30px on high-density
|
|
6
|
+
* screens. The rest are SVGs drawn to read at 24px and sharp at any size;
|
|
7
|
+
* `ventana-codigo` is the neutral one for a repo without a drawing of its own.
|
|
8
|
+
*/
|
|
5
9
|
export declare const repoAvatarCatalog: Record<ExpRepoAvatarName, StaticImageData>;
|
|
6
10
|
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqBlD,gHAAgH;AAChH,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,cAAc,GACd,aAAa,GACb,QAAQ,GACR,MAAM,GACN,MAAM,GACN,aAAa,GACb,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,aAAa,GACb,uBAAuB,GACvB,aAAa,GACb,gBAAgB,CAAC;AAErB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAoBxE,CAAC"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
import cajaChispa from '@clicoh/orion-library/assets/avatares/caja-chispa.png';
|
|
2
|
+
import cajaRuedas from '@clicoh/orion-library/assets/avatares/caja-ruedas.svg';
|
|
2
3
|
import caja from '@clicoh/orion-library/assets/avatares/caja.png';
|
|
4
|
+
import coheteAzul from '@clicoh/orion-library/assets/avatares/cohete-azul.svg';
|
|
3
5
|
import cohete from '@clicoh/orion-library/assets/avatares/cohete.png';
|
|
6
|
+
import criaturaTresOjos from '@clicoh/orion-library/assets/avatares/criatura-tres-ojos.svg';
|
|
7
|
+
import cuboBrazos from '@clicoh/orion-library/assets/avatares/cubo-brazos.svg';
|
|
8
|
+
import cuboMorado from '@clicoh/orion-library/assets/avatares/cubo-morado.svg';
|
|
9
|
+
import dinoPlacasAmarillas from '@clicoh/orion-library/assets/avatares/dino-placas-amarillas.svg';
|
|
10
|
+
import dinoPlacasAzules from '@clicoh/orion-library/assets/avatares/dino-placas-azules.svg';
|
|
4
11
|
import dino from '@clicoh/orion-library/assets/avatares/dino.png';
|
|
12
|
+
import edificioCupulas from '@clicoh/orion-library/assets/avatares/edificio-cupulas.svg';
|
|
13
|
+
import globoAnillo from '@clicoh/orion-library/assets/avatares/globo-anillo.svg';
|
|
5
14
|
import pulpoLentes from '@clicoh/orion-library/assets/avatares/pulpo-lentes.png';
|
|
15
|
+
import pulpoMorado from '@clicoh/orion-library/assets/avatares/pulpo-morado.svg';
|
|
6
16
|
import pulpoVerde from '@clicoh/orion-library/assets/avatares/pulpo-verde.png';
|
|
7
17
|
import pulpo from '@clicoh/orion-library/assets/avatares/pulpo.png';
|
|
8
|
-
|
|
18
|
+
import robotLente from '@clicoh/orion-library/assets/avatares/robot-lente.svg';
|
|
19
|
+
import ventanaCodigo from '@clicoh/orion-library/assets/avatares/ventana-codigo.svg';
|
|
20
|
+
/**
|
|
21
|
+
* The first seven are PNGs about 60px wide, sharp up to 30px on high-density
|
|
22
|
+
* screens. The rest are SVGs drawn to read at 24px and sharp at any size;
|
|
23
|
+
* `ventana-codigo` is the neutral one for a repo without a drawing of its own.
|
|
24
|
+
*/
|
|
9
25
|
export const repoAvatarCatalog = {
|
|
10
26
|
pulpo,
|
|
11
27
|
'pulpo-lentes': pulpoLentes,
|
|
@@ -14,5 +30,17 @@ export const repoAvatarCatalog = {
|
|
|
14
30
|
dino,
|
|
15
31
|
caja,
|
|
16
32
|
'caja-chispa': cajaChispa,
|
|
33
|
+
'pulpo-morado': pulpoMorado,
|
|
34
|
+
'robot-lente': robotLente,
|
|
35
|
+
'edificio-cupulas': edificioCupulas,
|
|
36
|
+
'globo-anillo': globoAnillo,
|
|
37
|
+
'caja-ruedas': cajaRuedas,
|
|
38
|
+
'cubo-morado': cuboMorado,
|
|
39
|
+
'dino-placas-azules': dinoPlacasAzules,
|
|
40
|
+
'criatura-tres-ojos': criaturaTresOjos,
|
|
41
|
+
'cohete-azul': coheteAzul,
|
|
42
|
+
'dino-placas-amarillas': dinoPlacasAmarillas,
|
|
43
|
+
'cubo-brazos': cuboBrazos,
|
|
44
|
+
'ventana-codigo': ventanaCodigo,
|
|
17
45
|
};
|
|
18
46
|
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/catalog.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,IAAI,MAAM,gDAAgD,CAAC;AAClE,OAAO,MAAM,MAAM,kDAAkD,CAAC;AACtE,OAAO,IAAI,MAAM,gDAAgD,CAAC;AAClE,OAAO,WAAW,MAAM,wDAAwD,CAAC;AACjF,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,KAAK,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/expresivo/ExpRepoAvatar/catalog.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,IAAI,MAAM,gDAAgD,CAAC;AAClE,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,MAAM,MAAM,kDAAkD,CAAC;AACtE,OAAO,gBAAgB,MAAM,8DAA8D,CAAC;AAC5F,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,mBAAmB,MAAM,iEAAiE,CAAC;AAClG,OAAO,gBAAgB,MAAM,8DAA8D,CAAC;AAC5F,OAAO,IAAI,MAAM,gDAAgD,CAAC;AAClE,OAAO,eAAe,MAAM,4DAA4D,CAAC;AACzF,OAAO,WAAW,MAAM,wDAAwD,CAAC;AACjF,OAAO,WAAW,MAAM,wDAAwD,CAAC;AACjF,OAAO,WAAW,MAAM,wDAAwD,CAAC;AACjF,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,KAAK,MAAM,iDAAiD,CAAC;AACpE,OAAO,UAAU,MAAM,uDAAuD,CAAC;AAC/E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAwBrF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+C;IAC3E,KAAK;IACL,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,UAAU;IACzB,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,aAAa,EAAE,UAAU;IACzB,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,UAAU;IACzB,kBAAkB,EAAE,eAAe;IACnC,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,oBAAoB,EAAE,gBAAgB;IACtC,oBAAoB,EAAE,gBAAgB;IACtC,aAAa,EAAE,UAAU;IACzB,uBAAuB,EAAE,mBAAmB;IAC5C,aAAa,EAAE,UAAU;IACzB,gBAAgB,EAAE,aAAa;CAChC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/** One column of the card: its accessible name and what goes in it. */
|
|
3
|
+
export type ExpSplitCardColumn = {
|
|
4
|
+
label: string;
|
|
5
|
+
content: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
export type ExpSplitCardProps = {
|
|
8
|
+
/** The columns, in order. The first one is a little wider. */
|
|
9
|
+
columns: ExpSplitCardColumn[];
|
|
10
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, 'children'>;
|
|
11
|
+
/**
|
|
12
|
+
* One card split into columns by thin dividers, with the brand band along the
|
|
13
|
+
* top. For a few summaries that read together, such as a score, a budget and
|
|
14
|
+
* the goals, in place of a row of separate cards.
|
|
15
|
+
*
|
|
16
|
+
* Each column is a `section` named by its `label`. From `lg` the columns sit
|
|
17
|
+
* side by side and the first one is a little wider; below, they stack with a
|
|
18
|
+
* divider between them.
|
|
19
|
+
*
|
|
20
|
+
* Outside an `ExpScope` it falls back to a row of core `Card`s, one per column.
|
|
21
|
+
*
|
|
22
|
+
* @component
|
|
23
|
+
* @example
|
|
24
|
+
* <ExpSplitCard
|
|
25
|
+
* columns={[
|
|
26
|
+
* { label: 'Score', content: <ScoreSummary /> },
|
|
27
|
+
* { label: 'Budget', content: <BudgetSummary /> },
|
|
28
|
+
* { label: 'Goals', content: <GoalList /> },
|
|
29
|
+
* ]}
|
|
30
|
+
* />
|
|
31
|
+
*
|
|
32
|
+
* @param {Object} props - The properties of the ExpSplitCard component.
|
|
33
|
+
* @param {ExpSplitCardColumn[]} props.columns - The columns, each with its `label` and `content`.
|
|
34
|
+
*
|
|
35
|
+
* @returns {ReactNode} The card, or a row of core `Card`s outside an `ExpScope`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ExpSplitCard({ columns, ...restProps }: ExpSplitCardProps): ReactNode;
|
|
38
|
+
//# sourceMappingURL=ExpSplitCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpSplitCard.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpSplitCard/ExpSplitCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,GAAG,SAAS,EACb,EAAE,iBAAiB,GAAG,SAAS,CAyD/B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Card, Each } from '@clicoh/orion-library';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useExpScope } from '../ExpScope/ExpScope';
|
|
5
|
+
/**
|
|
6
|
+
* One card split into columns by thin dividers, with the brand band along the
|
|
7
|
+
* top. For a few summaries that read together, such as a score, a budget and
|
|
8
|
+
* the goals, in place of a row of separate cards.
|
|
9
|
+
*
|
|
10
|
+
* Each column is a `section` named by its `label`. From `lg` the columns sit
|
|
11
|
+
* side by side and the first one is a little wider; below, they stack with a
|
|
12
|
+
* divider between them.
|
|
13
|
+
*
|
|
14
|
+
* Outside an `ExpScope` it falls back to a row of core `Card`s, one per column.
|
|
15
|
+
*
|
|
16
|
+
* @component
|
|
17
|
+
* @example
|
|
18
|
+
* <ExpSplitCard
|
|
19
|
+
* columns={[
|
|
20
|
+
* { label: 'Score', content: <ScoreSummary /> },
|
|
21
|
+
* { label: 'Budget', content: <BudgetSummary /> },
|
|
22
|
+
* { label: 'Goals', content: <GoalList /> },
|
|
23
|
+
* ]}
|
|
24
|
+
* />
|
|
25
|
+
*
|
|
26
|
+
* @param {Object} props - The properties of the ExpSplitCard component.
|
|
27
|
+
* @param {ExpSplitCardColumn[]} props.columns - The columns, each with its `label` and `content`.
|
|
28
|
+
*
|
|
29
|
+
* @returns {ReactNode} The card, or a row of core `Card`s outside an `ExpScope`.
|
|
30
|
+
*/
|
|
31
|
+
export function ExpSplitCard({ columns, ...restProps }) {
|
|
32
|
+
const inScope = useExpScope();
|
|
33
|
+
if (!inScope) {
|
|
34
|
+
return (<div {...restProps} className={clsx('grid grid-cols-1 gap-4 lg:auto-cols-fr lg:grid-flow-col', restProps.className)}>
|
|
35
|
+
<Each of={columns} render={(column) => (<Card key={column.label} as="section" aria-label={column.label} className="min-w-0">
|
|
36
|
+
{column.content}
|
|
37
|
+
</Card>)}/>
|
|
38
|
+
</div>);
|
|
39
|
+
}
|
|
40
|
+
return (<div {...restProps} data-orion-part="exp-split-card" className={clsx('flex flex-col overflow-hidden rounded-2xl border pt-1 text-black lg:flex-row dark:text-white', restProps.className)}>
|
|
41
|
+
<Each of={columns} render={(column, index) => (<section key={column.label} aria-label={column.label} className={clsx('border-gray-5 dark:border-gray-1 flex min-w-0 flex-col justify-center gap-3 px-6 py-6 lg:px-8 lg:py-7', index === 0
|
|
42
|
+
? 'lg:flex-[1.15]'
|
|
43
|
+
: 'border-t lg:flex-1 lg:border-t-0 lg:border-l')}>
|
|
44
|
+
{column.content}
|
|
45
|
+
</section>)}/>
|
|
46
|
+
</div>);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ExpSplitCard.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpSplitCard.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpSplitCard/ExpSplitCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAanD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,GAAG,SAAS,EACM;IAClB,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,CACb,yDAAyD,EACzD,SAAS,CAAC,SAAS,CACpB,CAAC,CAEF;QAAA,CAAC,IAAI,CACH,EAAE,CAAC,CAAC,OAAO,CAAC,CACZ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAClB,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,EAAE,CAAC,SAAS,CACZ,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,SAAS,CAAC,SAAS,CAEnB;cAAA,CAAC,MAAM,CAAC,OAAO,CACjB;YAAA,EAAE,IAAI,CAAC,CACR,CAAC,EAEN;MAAA,EAAE,GAAG,CAAC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CACF,IAAI,SAAS,CAAC,CACd,eAAe,CAAC,gBAAgB,CAChC,SAAS,CAAC,CAAC,IAAI,CACb,8FAA8F,EAC9F,SAAS,CAAC,SAAS,CACpB,CAAC,CAEF;MAAA,CAAC,IAAI,CACH,EAAE,CAAC,CAAC,OAAO,CAAC,CACZ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACzB,CAAC,OAAO,CACN,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACzB,SAAS,CAAC,CAAC,IAAI,CACb,uGAAuG,EACvG,KAAK,KAAK,CAAC;gBACT,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,8CAA8C,CACnD,CAAC,CAEF;YAAA,CAAC,MAAM,CAAC,OAAO,CACjB;UAAA,EAAE,OAAO,CAAC,CACX,CAAC,EAEN;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpSplitCard/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expresivo/ExpSplitCard/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type ExpStatusTagModifier = 'success' | 'warning' | 'error' | 'info' | 'progress' | 'disabled';
|
|
3
|
+
export type ExpStatusTagProps = {
|
|
4
|
+
modifier: ExpStatusTagModifier;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
} & Omit<HTMLAttributes<HTMLSpanElement>, 'children'>;
|
|
7
|
+
/**
|
|
8
|
+
* Status as a flat tinted tag with a thick bar on its left edge, for a status
|
|
9
|
+
* column in a table where a row of outlined badges reads too busy. Same status
|
|
10
|
+
* modifiers as the core `Badge`; the label carries the message.
|
|
11
|
+
*
|
|
12
|
+
* Outside an `ExpScope` it falls back to the core `Badge` with the same
|
|
13
|
+
* `modifier`.
|
|
14
|
+
*
|
|
15
|
+
* @component
|
|
16
|
+
* @example
|
|
17
|
+
* <ExpStatusTag modifier="success">Synced</ExpStatusTag>
|
|
18
|
+
*
|
|
19
|
+
* @param {ExpStatusTagProps} props - The properties of the ExpStatusTag component.
|
|
20
|
+
* @param {'success' | 'warning' | 'error' | 'info' | 'progress' | 'disabled'} props.modifier - Status color.
|
|
21
|
+
* @param {ReactNode} props.children - Label of the status.
|
|
22
|
+
*
|
|
23
|
+
* @returns {ReactNode} The tag, or a core `Badge` outside an `ExpScope`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function ExpStatusTag({ modifier, children, ...restProps }: ExpStatusTagProps): ReactNode;
|
|
26
|
+
//# sourceMappingURL=ExpStatusTag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpStatusTag.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpStatusTag/ExpStatusTag.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;AAkBtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,iBAAiB,GAAG,SAAS,CAuB/B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Badge } from '@clicoh/orion-library';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useExpScope } from '../ExpScope/ExpScope';
|
|
5
|
+
// The label takes the strong shade: the base `warning` and `success` hues sit
|
|
6
|
+
// below 4.5:1 on their tint.
|
|
7
|
+
const colorMap = {
|
|
8
|
+
success: 'border-success bg-success-1 text-success-strong dark:bg-success/16 dark:text-success',
|
|
9
|
+
warning: 'border-amber bg-warning-1 text-amber-strong dark:bg-warning/16 dark:text-amber',
|
|
10
|
+
error: 'border-error bg-error-1 text-error-strong dark:bg-error/16 dark:text-error',
|
|
11
|
+
info: 'border-info bg-info-1 text-info-dark-3 dark:bg-info/16 dark:text-info',
|
|
12
|
+
progress: 'border-lavender bg-lavender-2 text-lavender dark:bg-lavender/18 dark:text-lavender',
|
|
13
|
+
disabled: 'border-gray-1 bg-gray-6 text-gray-1 dark:border-gray-2 dark:bg-gray-2/16 dark:text-gray-2',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Status as a flat tinted tag with a thick bar on its left edge, for a status
|
|
17
|
+
* column in a table where a row of outlined badges reads too busy. Same status
|
|
18
|
+
* modifiers as the core `Badge`; the label carries the message.
|
|
19
|
+
*
|
|
20
|
+
* Outside an `ExpScope` it falls back to the core `Badge` with the same
|
|
21
|
+
* `modifier`.
|
|
22
|
+
*
|
|
23
|
+
* @component
|
|
24
|
+
* @example
|
|
25
|
+
* <ExpStatusTag modifier="success">Synced</ExpStatusTag>
|
|
26
|
+
*
|
|
27
|
+
* @param {ExpStatusTagProps} props - The properties of the ExpStatusTag component.
|
|
28
|
+
* @param {'success' | 'warning' | 'error' | 'info' | 'progress' | 'disabled'} props.modifier - Status color.
|
|
29
|
+
* @param {ReactNode} props.children - Label of the status.
|
|
30
|
+
*
|
|
31
|
+
* @returns {ReactNode} The tag, or a core `Badge` outside an `ExpScope`.
|
|
32
|
+
*/
|
|
33
|
+
export function ExpStatusTag({ modifier, children, ...restProps }) {
|
|
34
|
+
const inScope = useExpScope();
|
|
35
|
+
if (!inScope) {
|
|
36
|
+
return (<Badge {...restProps} modifier={modifier}>
|
|
37
|
+
{children}
|
|
38
|
+
</Badge>);
|
|
39
|
+
}
|
|
40
|
+
return (<span {...restProps} className={clsx('inline-flex items-center rounded-[3px_8px_8px_3px] border-l-3 px-2.5 py-1 text-xs leading-4 font-semibold whitespace-nowrap', colorMap[modifier], restProps.className)}>
|
|
41
|
+
{children}
|
|
42
|
+
</span>);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=ExpStatusTag.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpStatusTag.jsx","sourceRoot":"","sources":["../../src/expresivo/ExpStatusTag/ExpStatusTag.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAenD,8EAA8E;AAC9E,6BAA6B;AAC7B,MAAM,QAAQ,GAAyC;IACrD,OAAO,EACL,sFAAsF;IACxF,OAAO,EACL,gFAAgF;IAClF,KAAK,EACH,4EAA4E;IAC9E,IAAI,EAAE,uEAAuE;IAC7E,QAAQ,EACN,oFAAoF;IACtF,QAAQ,EACN,2FAA2F;CAC9F,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,GAAG,SAAS,EACM;IAClB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACvC;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,KAAK,CAAC,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,IAAI,CACH,IAAI,SAAS,CAAC,CACd,SAAS,CAAC,CAAC,IAAI,CACb,6HAA6H,EAC7H,QAAQ,CAAC,QAAQ,CAAC,EAClB,SAAS,CAAC,SAAS,CACpB,CAAC,CAEF;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/expresivo/ExpStatusTag/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expresivo/ExpStatusTag/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/expresivo/index.d.ts
CHANGED
|
@@ -19,4 +19,9 @@ export * from './ExpSearchField';
|
|
|
19
19
|
export * from './ExpLadder';
|
|
20
20
|
export * from './ExpRepoAvatar';
|
|
21
21
|
export * from './ExpStatIcon';
|
|
22
|
+
export * from './ExpFigureBand';
|
|
23
|
+
export * from './ExpSplitCard';
|
|
24
|
+
export * from './ExpStatusTag';
|
|
25
|
+
export * from './ExpCodeHostIcon';
|
|
26
|
+
export * from './ExpAccentNote';
|
|
22
27
|
//# sourceMappingURL=index.d.ts.map
|
package/expresivo/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/expresivo/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/expresivo/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
package/expresivo/index.js
CHANGED
|
@@ -19,4 +19,9 @@ export * from './ExpSearchField';
|
|
|
19
19
|
export * from './ExpLadder';
|
|
20
20
|
export * from './ExpRepoAvatar';
|
|
21
21
|
export * from './ExpStatIcon';
|
|
22
|
+
export * from './ExpFigureBand';
|
|
23
|
+
export * from './ExpSplitCard';
|
|
24
|
+
export * from './ExpStatusTag';
|
|
25
|
+
export * from './ExpCodeHostIcon';
|
|
26
|
+
export * from './ExpAccentNote';
|
|
22
27
|
//# sourceMappingURL=index.js.map
|
package/expresivo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/expresivo/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/expresivo/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clicoh/orion-library",
|
|
3
|
-
"version": "1.2.0-beta.
|
|
3
|
+
"version": "1.2.0-beta.23",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@floating-ui/react": "0.26.19",
|
|
7
7
|
"clsx": "2.1.1",
|
|
8
8
|
"leaflet": "^1.9.4",
|
|
9
9
|
"next": "16.3.8",
|
|
10
|
+
"pdfjs-dist": "6.4.299",
|
|
10
11
|
"react": "19.2.6",
|
|
11
12
|
"react-dom": "19.2.6",
|
|
12
13
|
"react-icons": "5.2.1",
|