mythik-react 0.1.0
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/LICENSE +201 -0
- package/NOTICE +4 -0
- package/README.md +83 -0
- package/dist/MythikApp.d.ts +61 -0
- package/dist/MythikApp.d.ts.map +1 -0
- package/dist/MythikApp.js +381 -0
- package/dist/MythikApp.js.map +1 -0
- package/dist/MythikRenderer.d.ts +31 -0
- package/dist/MythikRenderer.d.ts.map +1 -0
- package/dist/MythikRenderer.js +900 -0
- package/dist/MythikRenderer.js.map +1 -0
- package/dist/animation/index.d.ts +7 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/animation/index.js +5 -0
- package/dist/animation/index.js.map +1 -0
- package/dist/animation/stylesheet-singleton.d.ts +12 -0
- package/dist/animation/stylesheet-singleton.d.ts.map +1 -0
- package/dist/animation/stylesheet-singleton.js +107 -0
- package/dist/animation/stylesheet-singleton.js.map +1 -0
- package/dist/animation/useElementAnimations.d.ts +30 -0
- package/dist/animation/useElementAnimations.d.ts.map +1 -0
- package/dist/animation/useElementAnimations.js +254 -0
- package/dist/animation/useElementAnimations.js.map +1 -0
- package/dist/animation/usePrefersReducedMotion.d.ts +2 -0
- package/dist/animation/usePrefersReducedMotion.d.ts.map +1 -0
- package/dist/animation/usePrefersReducedMotion.js +29 -0
- package/dist/animation/usePrefersReducedMotion.js.map +1 -0
- package/dist/animation/useShapeAnimations.d.ts +21 -0
- package/dist/animation/useShapeAnimations.d.ts.map +1 -0
- package/dist/animation/useShapeAnimations.js +119 -0
- package/dist/animation/useShapeAnimations.js.map +1 -0
- package/dist/app-context.d.ts +15 -0
- package/dist/app-context.d.ts.map +1 -0
- package/dist/app-context.js +9 -0
- package/dist/app-context.js.map +1 -0
- package/dist/background/BackgroundLayer.d.ts +7 -0
- package/dist/background/BackgroundLayer.d.ts.map +1 -0
- package/dist/background/BackgroundLayer.js +50 -0
- package/dist/background/BackgroundLayer.js.map +1 -0
- package/dist/background/BackgroundStack.d.ts +19 -0
- package/dist/background/BackgroundStack.d.ts.map +1 -0
- package/dist/background/BackgroundStack.js +59 -0
- package/dist/background/BackgroundStack.js.map +1 -0
- package/dist/background/BlobLayer.d.ts +12 -0
- package/dist/background/BlobLayer.d.ts.map +1 -0
- package/dist/background/BlobLayer.js +60 -0
- package/dist/background/BlobLayer.js.map +1 -0
- package/dist/background/index.d.ts +3 -0
- package/dist/background/index.d.ts.map +1 -0
- package/dist/background/index.js +3 -0
- package/dist/background/index.js.map +1 -0
- package/dist/css-hover.d.ts +15 -0
- package/dist/css-hover.d.ts.map +1 -0
- package/dist/css-hover.js +51 -0
- package/dist/css-hover.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives/accordion.d.ts +12 -0
- package/dist/primitives/accordion.d.ts.map +1 -0
- package/dist/primitives/accordion.js +25 -0
- package/dist/primitives/accordion.js.map +1 -0
- package/dist/primitives/area-chart.d.ts +14 -0
- package/dist/primitives/area-chart.d.ts.map +1 -0
- package/dist/primitives/area-chart.js +18 -0
- package/dist/primitives/area-chart.js.map +1 -0
- package/dist/primitives/audio-player.d.ts +9 -0
- package/dist/primitives/audio-player.d.ts.map +1 -0
- package/dist/primitives/audio-player.js +5 -0
- package/dist/primitives/audio-player.js.map +1 -0
- package/dist/primitives/bar-chart.d.ts +14 -0
- package/dist/primitives/bar-chart.d.ts.map +1 -0
- package/dist/primitives/bar-chart.js +22 -0
- package/dist/primitives/bar-chart.js.map +1 -0
- package/dist/primitives/box.d.ts +21 -0
- package/dist/primitives/box.d.ts.map +1 -0
- package/dist/primitives/box.js +54 -0
- package/dist/primitives/box.js.map +1 -0
- package/dist/primitives/button.d.ts +14 -0
- package/dist/primitives/button.d.ts.map +1 -0
- package/dist/primitives/button.js +28 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/camera.d.ts +15 -0
- package/dist/primitives/camera.d.ts.map +1 -0
- package/dist/primitives/camera.js +25 -0
- package/dist/primitives/camera.js.map +1 -0
- package/dist/primitives/checkbox.d.ts +12 -0
- package/dist/primitives/checkbox.d.ts.map +1 -0
- package/dist/primitives/checkbox.js +24 -0
- package/dist/primitives/checkbox.js.map +1 -0
- package/dist/primitives/divider.d.ts +9 -0
- package/dist/primitives/divider.d.ts.map +1 -0
- package/dist/primitives/divider.js +10 -0
- package/dist/primitives/divider.js.map +1 -0
- package/dist/primitives/drawer.d.ts +21 -0
- package/dist/primitives/drawer.d.ts.map +1 -0
- package/dist/primitives/drawer.js +38 -0
- package/dist/primitives/drawer.js.map +1 -0
- package/dist/primitives/file-upload.d.ts +27 -0
- package/dist/primitives/file-upload.d.ts.map +1 -0
- package/dist/primitives/file-upload.js +225 -0
- package/dist/primitives/file-upload.js.map +1 -0
- package/dist/primitives/grid.d.ts +13 -0
- package/dist/primitives/grid.d.ts.map +1 -0
- package/dist/primitives/grid.js +13 -0
- package/dist/primitives/grid.js.map +1 -0
- package/dist/primitives/icon.d.ts +22 -0
- package/dist/primitives/icon.d.ts.map +1 -0
- package/dist/primitives/icon.js +52 -0
- package/dist/primitives/icon.js.map +1 -0
- package/dist/primitives/image.d.ts +13 -0
- package/dist/primitives/image.d.ts.map +1 -0
- package/dist/primitives/image.js +38 -0
- package/dist/primitives/image.js.map +1 -0
- package/dist/primitives/index.d.ts +57 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +106 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/input.d.ts +32 -0
- package/dist/primitives/input.d.ts.map +1 -0
- package/dist/primitives/input.js +192 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/kanban-board.d.ts +13 -0
- package/dist/primitives/kanban-board.d.ts.map +1 -0
- package/dist/primitives/kanban-board.js +5 -0
- package/dist/primitives/kanban-board.js.map +1 -0
- package/dist/primitives/line-chart.d.ts +14 -0
- package/dist/primitives/line-chart.d.ts.map +1 -0
- package/dist/primitives/line-chart.js +17 -0
- package/dist/primitives/line-chart.js.map +1 -0
- package/dist/primitives/list.d.ts +13 -0
- package/dist/primitives/list.d.ts.map +1 -0
- package/dist/primitives/list.js +10 -0
- package/dist/primitives/list.js.map +1 -0
- package/dist/primitives/modal.d.ts +20 -0
- package/dist/primitives/modal.d.ts.map +1 -0
- package/dist/primitives/modal.js +60 -0
- package/dist/primitives/modal.js.map +1 -0
- package/dist/primitives/pie-chart.d.ts +15 -0
- package/dist/primitives/pie-chart.d.ts.map +1 -0
- package/dist/primitives/pie-chart.js +36 -0
- package/dist/primitives/pie-chart.js.map +1 -0
- package/dist/primitives/screen-outlet.d.ts +9 -0
- package/dist/primitives/screen-outlet.d.ts.map +1 -0
- package/dist/primitives/screen-outlet.js +92 -0
- package/dist/primitives/screen-outlet.js.map +1 -0
- package/dist/primitives/screen.d.ts +9 -0
- package/dist/primitives/screen.d.ts.map +1 -0
- package/dist/primitives/screen.js +10 -0
- package/dist/primitives/screen.js.map +1 -0
- package/dist/primitives/scroll.d.ts +11 -0
- package/dist/primitives/scroll.d.ts.map +1 -0
- package/dist/primitives/scroll.js +10 -0
- package/dist/primitives/scroll.js.map +1 -0
- package/dist/primitives/select.d.ts +19 -0
- package/dist/primitives/select.d.ts.map +1 -0
- package/dist/primitives/select.js +109 -0
- package/dist/primitives/select.js.map +1 -0
- package/dist/primitives/signature.d.ts +13 -0
- package/dist/primitives/signature.d.ts.map +1 -0
- package/dist/primitives/signature.js +45 -0
- package/dist/primitives/signature.js.map +1 -0
- package/dist/primitives/skeleton.d.ts +14 -0
- package/dist/primitives/skeleton.d.ts.map +1 -0
- package/dist/primitives/skeleton.js +41 -0
- package/dist/primitives/skeleton.js.map +1 -0
- package/dist/primitives/slider.d.ts +15 -0
- package/dist/primitives/slider.d.ts.map +1 -0
- package/dist/primitives/slider.js +7 -0
- package/dist/primitives/slider.js.map +1 -0
- package/dist/primitives/spacer.d.ts +9 -0
- package/dist/primitives/spacer.d.ts.map +1 -0
- package/dist/primitives/spacer.js +9 -0
- package/dist/primitives/spacer.js.map +1 -0
- package/dist/primitives/spatial-map-editing.d.ts +472 -0
- package/dist/primitives/spatial-map-editing.d.ts.map +1 -0
- package/dist/primitives/spatial-map-editing.js +886 -0
- package/dist/primitives/spatial-map-editing.js.map +1 -0
- package/dist/primitives/spatial-map.d.ts +1073 -0
- package/dist/primitives/spatial-map.d.ts.map +1 -0
- package/dist/primitives/spatial-map.js +1705 -0
- package/dist/primitives/spatial-map.js.map +1 -0
- package/dist/primitives/stack.d.ts +13 -0
- package/dist/primitives/stack.d.ts.map +1 -0
- package/dist/primitives/stack.js +12 -0
- package/dist/primitives/stack.js.map +1 -0
- package/dist/primitives/table.d.ts +115 -0
- package/dist/primitives/table.d.ts.map +1 -0
- package/dist/primitives/table.js +498 -0
- package/dist/primitives/table.js.map +1 -0
- package/dist/primitives/tabs.d.ts +17 -0
- package/dist/primitives/tabs.d.ts.map +1 -0
- package/dist/primitives/tabs.js +13 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/text.d.ts +11 -0
- package/dist/primitives/text.d.ts.map +1 -0
- package/dist/primitives/text.js +69 -0
- package/dist/primitives/text.js.map +1 -0
- package/dist/primitives/textarea.d.ts +15 -0
- package/dist/primitives/textarea.d.ts.map +1 -0
- package/dist/primitives/textarea.js +23 -0
- package/dist/primitives/textarea.js.map +1 -0
- package/dist/primitives/toast-container.d.ts +15 -0
- package/dist/primitives/toast-container.d.ts.map +1 -0
- package/dist/primitives/toast-container.js +160 -0
- package/dist/primitives/toast-container.js.map +1 -0
- package/dist/primitives/toggle.d.ts +12 -0
- package/dist/primitives/toggle.d.ts.map +1 -0
- package/dist/primitives/toggle.js +18 -0
- package/dist/primitives/toggle.js.map +1 -0
- package/dist/primitives/touchable.d.ts +10 -0
- package/dist/primitives/touchable.d.ts.map +1 -0
- package/dist/primitives/touchable.js +6 -0
- package/dist/primitives/touchable.js.map +1 -0
- package/dist/primitives/use-design-tokens.d.ts +127 -0
- package/dist/primitives/use-design-tokens.d.ts.map +1 -0
- package/dist/primitives/use-design-tokens.js +251 -0
- package/dist/primitives/use-design-tokens.js.map +1 -0
- package/dist/primitives/use-theme.d.ts +11 -0
- package/dist/primitives/use-theme.d.ts.map +1 -0
- package/dist/primitives/use-theme.js +17 -0
- package/dist/primitives/use-theme.js.map +1 -0
- package/dist/primitives/wizard.d.ts +11 -0
- package/dist/primitives/wizard.d.ts.map +1 -0
- package/dist/primitives/wizard.js +15 -0
- package/dist/primitives/wizard.js.map +1 -0
- package/dist/runtime/context-dispatcher.d.ts +3 -0
- package/dist/runtime/context-dispatcher.d.ts.map +1 -0
- package/dist/runtime/context-dispatcher.js +11 -0
- package/dist/runtime/context-dispatcher.js.map +1 -0
- package/dist/runtime/row-dispatcher.d.ts +19 -0
- package/dist/runtime/row-dispatcher.d.ts.map +1 -0
- package/dist/runtime/row-dispatcher.js +25 -0
- package/dist/runtime/row-dispatcher.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/use-device-context.d.ts +8 -0
- package/dist/use-device-context.d.ts.map +1 -0
- package/dist/use-device-context.js +54 -0
- package/dist/use-device-context.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function AreaChart({ data = [], height = 200, color = '#3b82f6', style }) {
|
|
3
|
+
if (data.length === 0)
|
|
4
|
+
return _jsx("div", { style: { height, ...style } });
|
|
5
|
+
const maxValue = Math.max(...data.map((d) => d.value), 1);
|
|
6
|
+
const minValue = Math.min(...data.map((d) => d.value), 0);
|
|
7
|
+
const range = maxValue - minValue || 1;
|
|
8
|
+
const width = 100;
|
|
9
|
+
const stepX = data.length > 1 ? width / (data.length - 1) : width;
|
|
10
|
+
const linePoints = data.map((d, i) => {
|
|
11
|
+
const x = i * stepX;
|
|
12
|
+
const y = height - ((d.value - minValue) / range) * height;
|
|
13
|
+
return `${x},${y}`;
|
|
14
|
+
}).join(' ');
|
|
15
|
+
const areaPoints = `0,${height} ${linePoints} ${width},${height}`;
|
|
16
|
+
return (_jsx("div", { role: "img", "aria-label": "Area chart", style: { height, ...style }, children: _jsxs("svg", { viewBox: `0 0 ${width} ${height}`, preserveAspectRatio: "none", style: { width: '100%', height: '100%' }, children: [_jsx("polygon", { points: areaPoints, fill: color, fillOpacity: "0.2" }), _jsx("polyline", { points: linePoints, fill: "none", stroke: color, strokeWidth: "2", vectorEffect: "non-scaling-stroke" })] }) }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=area-chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"area-chart.js","sourceRoot":"","sources":["../../src/primitives/area-chart.tsx"],"names":[],"mappings":";AAcA,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAkB;IAC7F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAI,CAAC;IAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;QAC3D,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,KAAK,MAAM,IAAI,UAAU,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;IAElE,OAAO,CACL,cAAK,IAAI,EAAC,KAAK,gBAAY,YAAY,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,YACjE,eAAK,OAAO,EAAE,OAAO,KAAK,IAAI,MAAM,EAAE,EAAE,mBAAmB,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aACzG,kBAAS,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAC,KAAK,GAAG,EAC9D,mBAAU,MAAM,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,GAAG,EAAC,YAAY,EAAC,oBAAoB,GAAG,IACzG,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
interface AudioPlayerProps {
|
|
3
|
+
src?: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
style?: CSSProperties;
|
|
6
|
+
}
|
|
7
|
+
export declare function AudioPlayer({ src, label, style }: AudioPlayerProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=audio-player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-player.d.ts","sourceRoot":"","sources":["../../src/primitives/audio-player.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,2CASlE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function AudioPlayer({ src, label, style }) {
|
|
3
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 4, ...style }, children: [label && _jsx("label", { style: { fontSize: 14 }, children: label }), _jsx("audio", { controls: true, src: src, style: { width: '100%' }, children: "Your browser does not support the audio element." })] }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=audio-player.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-player.js","sourceRoot":"","sources":["../../src/primitives/audio-player.tsx"],"names":[],"mappings":";AAQA,MAAM,UAAU,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAoB;IACjE,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,aACvE,KAAK,IAAI,gBAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,KAAK,GAAS,EACzD,gBAAO,QAAQ,QAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iEAE1C,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
interface BarChartDataPoint {
|
|
3
|
+
label: string;
|
|
4
|
+
value: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
}
|
|
7
|
+
interface BarChartProps {
|
|
8
|
+
data?: BarChartDataPoint[];
|
|
9
|
+
height?: number;
|
|
10
|
+
style?: CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
export declare function BarChart({ data, height, style }: BarChartProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=bar-chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-chart.d.ts","sourceRoot":"","sources":["../../src/primitives/bar-chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAS,EAAE,MAAY,EAAE,KAAK,EAAE,EAAE,aAAa,2CAyCzE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function BarChart({ data = [], height = 200, style }) {
|
|
3
|
+
if (data.length === 0)
|
|
4
|
+
return _jsx("div", { style: { height, ...style } });
|
|
5
|
+
const values = data.map((d) => d.value);
|
|
6
|
+
const maxValue = Math.max(...values);
|
|
7
|
+
const minValue = Math.min(...values);
|
|
8
|
+
// Use relative scaling: shortest bar = 20%, tallest = 100%
|
|
9
|
+
const range = maxValue - minValue || 1;
|
|
10
|
+
return (_jsxs("div", { role: "img", "aria-label": "Bar chart", style: { height, display: 'flex', flexDirection: 'column', ...style }, children: [_jsx("div", { style: { flex: 1, display: 'flex', alignItems: 'flex-end', gap: 6, paddingBottom: 8 }, children: data.map((point, i) => {
|
|
11
|
+
const normalizedHeight = 20 + ((point.value - minValue) / range) * 80;
|
|
12
|
+
return (_jsxs("div", { style: { flex: 1, display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'flex-end', height: '100%' }, children: [_jsx("span", { style: { fontSize: 11, fontWeight: 600, color: '#374151', marginBottom: 4 }, children: point.value }), _jsx("div", { style: {
|
|
13
|
+
width: '70%',
|
|
14
|
+
height: `${normalizedHeight}%`,
|
|
15
|
+
backgroundColor: point.color ?? '#6366f1',
|
|
16
|
+
borderRadius: '6px 6px 0 0',
|
|
17
|
+
minHeight: 8,
|
|
18
|
+
transition: 'height 300ms',
|
|
19
|
+
}, title: `${point.label}: ${point.value}` })] }, i));
|
|
20
|
+
}) }), _jsx("div", { style: { display: 'flex', gap: 6, borderTop: '1px solid #e5e7eb', paddingTop: 8 }, children: data.map((point, i) => (_jsx("span", { style: { flex: 1, fontSize: 11, color: '#6b7280', textAlign: 'center' }, children: point.label }, i))) })] }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=bar-chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-chart.js","sourceRoot":"","sources":["../../src/primitives/bar-chart.tsx"],"names":[],"mappings":";AAcA,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,EAAiB;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAI,CAAC;IAEnE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,2DAA2D;IAC3D,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;IAEvC,OAAO,CACL,eAAK,IAAI,EAAC,KAAK,gBAAY,WAAW,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,aAC1G,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YACvF,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACrB,MAAM,gBAAgB,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;oBACtE,OAAO,CACL,eAAa,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aACzI,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,YAAG,KAAK,CAAC,KAAK,GAAQ,EACvG,cACE,KAAK,EAAE;oCACL,KAAK,EAAE,KAAK;oCACZ,MAAM,EAAE,GAAG,gBAAgB,GAAG;oCAC9B,eAAe,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS;oCACzC,YAAY,EAAE,aAAa;oCAC3B,SAAS,EAAE,CAAC;oCACZ,UAAU,EAAE,cAAc;iCAC3B,EACD,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,GACvC,KAZM,CAAC,CAaL,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,YACnF,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,eAAc,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAClF,KAAK,CAAC,KAAK,IADH,CAAC,CAEL,CACR,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CSSProperties, FocusEvent, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import type { ElementAnimations } from 'mythik';
|
|
3
|
+
interface BoxProps {
|
|
4
|
+
surface?: 'card' | 'modal';
|
|
5
|
+
style?: CSSProperties;
|
|
6
|
+
className?: string;
|
|
7
|
+
_tokens?: Record<string, unknown>;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
animations?: ElementAnimations | null;
|
|
10
|
+
animationStaggerIndex?: number;
|
|
11
|
+
tabIndex?: number;
|
|
12
|
+
onMouseEnter?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
13
|
+
onMouseLeave?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
14
|
+
onMouseDown?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
15
|
+
onMouseUp?: (e: MouseEvent<HTMLDivElement>) => void;
|
|
16
|
+
onFocus?: (e: FocusEvent<HTMLDivElement>) => void;
|
|
17
|
+
onBlur?: (e: FocusEvent<HTMLDivElement>) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function Box({ surface, style, className, _tokens, children, animations, animationStaggerIndex, tabIndex, onMouseEnter, onMouseLeave, onMouseDown, onMouseUp, onFocus, onBlur, }: BoxProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=box.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../src/primitives/box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,QAAQ,CAAC;AAGhB,UAAU,QAAQ;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CAClD;AAeD,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,GACP,EAAE,QAAQ,2CAoEV"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { useDesignTokens } from './use-design-tokens.js';
|
|
4
|
+
import { ANIMATION_RECIPES } from 'mythik';
|
|
5
|
+
import { useElementAnimations } from '../animation/useElementAnimations.js';
|
|
6
|
+
// State-setter runs FIRST so our internal isHovered/isFocused/isActive flags
|
|
7
|
+
// stay consistent even if the user-supplied handler throws. The user handler
|
|
8
|
+
// runs after — their exception will still propagate normally.
|
|
9
|
+
function compose(a, b) {
|
|
10
|
+
return (e) => {
|
|
11
|
+
b(e);
|
|
12
|
+
a?.(e);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function Box({ surface, style, className, _tokens, children, animations, animationStaggerIndex, tabIndex, onMouseEnter, onMouseLeave, onMouseDown, onMouseUp, onFocus, onBlur, }) {
|
|
16
|
+
const ref = useRef(null);
|
|
17
|
+
const [isHovered, setHovered] = useState(false);
|
|
18
|
+
const [isFocused, setFocused] = useState(false);
|
|
19
|
+
const [isActive, setActive] = useState(false);
|
|
20
|
+
useElementAnimations(ref, animations ?? undefined, {
|
|
21
|
+
recipes: ANIMATION_RECIPES,
|
|
22
|
+
staggerIndex: animationStaggerIndex,
|
|
23
|
+
isHovered,
|
|
24
|
+
isFocused,
|
|
25
|
+
isActive,
|
|
26
|
+
});
|
|
27
|
+
// Auto-focusable when a focus animation is declared and the consumer didn't
|
|
28
|
+
// override tabIndex — otherwise a plain <div> is unfocusable and the trigger
|
|
29
|
+
// silently never fires. Explicit consumer tabIndex always wins (incl. -1).
|
|
30
|
+
const effectiveTabIndex = tabIndex !== undefined ? tabIndex : animations?.focus != null ? 0 : undefined;
|
|
31
|
+
const handlers = useMemo(() => ({
|
|
32
|
+
onMouseEnter: compose(onMouseEnter, () => setHovered(true)),
|
|
33
|
+
onMouseLeave: compose(onMouseLeave, () => setHovered(false)),
|
|
34
|
+
onMouseDown: compose(onMouseDown, () => setActive(true)),
|
|
35
|
+
onMouseUp: compose(onMouseUp, () => setActive(false)),
|
|
36
|
+
onFocus: compose(onFocus, () => setFocused(true)),
|
|
37
|
+
onBlur: compose(onBlur, () => setFocused(false)),
|
|
38
|
+
}), [onMouseEnter, onMouseLeave, onMouseDown, onMouseUp, onFocus, onBlur]);
|
|
39
|
+
if (!surface) {
|
|
40
|
+
return (_jsx("div", { ref: ref, style: style, className: className, tabIndex: effectiveTabIndex, ...handlers, children: children }));
|
|
41
|
+
}
|
|
42
|
+
// Plan 3 Task 21 — `backgroundBlobs` prop + legacy per-element blob
|
|
43
|
+
// rendering removed (along with resolveBlobStyles + its dangerouslySetInnerHTML
|
|
44
|
+
// keyframe injection). App-level background now mounts at
|
|
45
|
+
// MythikRenderer via <BackgroundStack>. Box only owns surface styling.
|
|
46
|
+
const t = useDesignTokens(_tokens);
|
|
47
|
+
const surfaceStyles = t.surface[surface];
|
|
48
|
+
return (_jsx("div", { ref: ref, style: {
|
|
49
|
+
borderRadius: t.radius(t.shape.radius.md),
|
|
50
|
+
...surfaceStyles,
|
|
51
|
+
...style,
|
|
52
|
+
}, className: className, tabIndex: tabIndex, ...handlers, children: children }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/primitives/box.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAI3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAmB5E,6EAA6E;AAC7E,6EAA6E;AAC7E,8DAA8D;AAC9D,SAAS,OAAO,CACd,CAA+B,EAC/B,CAAiB;IAEjB,OAAO,CAAC,CAAI,EAAE,EAAE;QACd,CAAC,CAAC,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,GACG;IACT,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,oBAAoB,CAAC,GAAG,EAAE,UAAU,IAAI,SAAS,EAAE;QACjD,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,qBAAqB;QACnC,SAAS;QACT,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAEH,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,iBAAiB,GACrB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3D,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACjD,CAAC,EACF,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CACtE,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,KACvB,QAAQ,YAEX,QAAQ,GACL,CACP,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,gFAAgF;IAChF,0DAA0D;IAC1D,uEAAuE;IACvE,MAAM,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzC,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;YACL,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,GAAG,aAAa;YAChB,GAAG,KAAK;SACT,EACD,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,KACd,QAAQ,YAEX,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
interface ButtonProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
variant?: 'primary' | 'secondary' | 'destructive' | 'ghost';
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
className?: string;
|
|
8
|
+
_tokens?: Record<string, unknown>;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function Button({ label, variant, disabled, style, className, _tokens, children, onClick }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/primitives/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,2CAiCzH"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useDesignTokens } from './use-design-tokens.js';
|
|
3
|
+
export function Button({ label, variant = 'primary', disabled, style, className, _tokens, children, onClick }) {
|
|
4
|
+
const t = useDesignTokens(_tokens);
|
|
5
|
+
const surfaceKey = variant === 'primary' || variant === 'destructive' ? 'buttonPrimary' : 'buttonSecondary';
|
|
6
|
+
const surfaceBase = t.surface[surfaceKey];
|
|
7
|
+
const variantOverrides = {
|
|
8
|
+
primary: {},
|
|
9
|
+
secondary: {},
|
|
10
|
+
destructive: { backgroundColor: t.colors.error, color: '#fff' },
|
|
11
|
+
ghost: { backgroundColor: 'transparent', border: 'none', boxShadow: 'none' },
|
|
12
|
+
};
|
|
13
|
+
return (_jsx("button", { type: "button", disabled: disabled, onClick: onClick, className: className, style: {
|
|
14
|
+
padding: `${t.spacing.scale.sm}px ${t.spacing.scale.md}px`, borderRadius: t.radius(t.shape.radius.md), fontSize: t.typography.scale.sm.fontSize, fontWeight: t.typography.weight.medium, fontFamily: t.typography.fontFamily.base,
|
|
15
|
+
cursor: disabled ? 'default' : 'pointer', opacity: disabled ? t.opacity.disabled : 1,
|
|
16
|
+
transition: `all ${t.motion.duration.fast}ms ${t.motion.easing.default}`, outline: 'none',
|
|
17
|
+
...surfaceBase, ...variantOverrides[variant],
|
|
18
|
+
...(variant === 'primary' && t.identity.gradients.buttons && !style?.background && !style?.backgroundColor && !style?.backgroundImage
|
|
19
|
+
? { backgroundImage: t.identity.gradients.buttons === 'soft'
|
|
20
|
+
? `linear-gradient(135deg in oklch, ${t.colors.primaryLight}, ${t.colors.accentLight})`
|
|
21
|
+
: t.identity.gradients.buttons === 'muted'
|
|
22
|
+
? `linear-gradient(135deg, ${t.colors.primary}, ${t.colors.accent})`
|
|
23
|
+
: `linear-gradient(135deg in oklch, ${t.colors.primary}, ${t.colors.accent})` }
|
|
24
|
+
: {}),
|
|
25
|
+
...style,
|
|
26
|
+
}, children: label ?? children }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/primitives/button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAe;IACxH,MAAM,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC5G,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAkC;QACtD,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;QAC/D,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;KAC7E,CAAC;IAEF,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EACxE,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;YACjO,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpF,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM;YACzF,GAAG,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAC5C,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,eAAe,IAAI,CAAC,KAAK,EAAE,eAAe;gBACnI,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM;wBACxD,CAAC,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG;wBACvF,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO;4BAC1C,CAAC,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG;4BACpE,CAAC,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE;gBACnF,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,KAAK;SACT,YAEA,KAAK,IAAI,QAAQ,GACX,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
interface CameraProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
accept?: 'photo' | 'video' | 'both';
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
onCapture?: (file: File) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Camera primitive — uses the native file input with capture attribute.
|
|
11
|
+
* On mobile devices this opens the camera directly.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Camera({ label, accept, disabled, style, onCapture }: CameraProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=camera.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../src/primitives/camera.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,EAAE,KAAoB,EAAE,MAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,WAAW,2CAgCzG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Camera primitive — uses the native file input with capture attribute.
|
|
4
|
+
* On mobile devices this opens the camera directly.
|
|
5
|
+
*/
|
|
6
|
+
export function Camera({ label = 'Take photo', accept = 'photo', disabled, style, onCapture }) {
|
|
7
|
+
const acceptMap = { photo: 'image/*', video: 'video/*', both: 'image/*,video/*' };
|
|
8
|
+
return (_jsxs("label", { style: {
|
|
9
|
+
display: 'inline-flex',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
gap: 8,
|
|
12
|
+
padding: '8px 16px',
|
|
13
|
+
border: '1px solid #d1d5db',
|
|
14
|
+
borderRadius: 8,
|
|
15
|
+
cursor: disabled ? 'default' : 'pointer',
|
|
16
|
+
fontSize: 14,
|
|
17
|
+
opacity: disabled ? 0.4 : 1,
|
|
18
|
+
...style,
|
|
19
|
+
}, children: [_jsx("input", { type: "file", accept: acceptMap[accept], capture: "environment", disabled: disabled, onChange: (e) => {
|
|
20
|
+
const file = e.target.files?.[0];
|
|
21
|
+
if (file)
|
|
22
|
+
onCapture?.(file);
|
|
23
|
+
}, style: { display: 'none' } }), label] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=camera.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera.js","sourceRoot":"","sources":["../../src/primitives/camera.tsx"],"names":[],"mappings":";AAUA;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,MAAM,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAe;IACxG,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAElF,OAAO,CACL,iBACE,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,mBAAmB;YAC3B,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACxC,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,GAAG,KAAK;SACT,aAED,gBACE,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EACzB,OAAO,EAAC,aAAa,EACrB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI;wBAAE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAC1B,EACD,KAAK,IACA,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
interface CheckboxProps {
|
|
3
|
+
checked?: boolean;
|
|
4
|
+
label?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
_tokens?: Record<string, unknown>;
|
|
8
|
+
onChange?: (checked: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function Checkbox({ checked, label, disabled, style, _tokens, onChange }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/primitives/checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAsCrG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { resolveLabelStyle } from 'mythik';
|
|
4
|
+
import { useDesignTokens } from './use-design-tokens.js';
|
|
5
|
+
export function Checkbox({ checked = false, label, disabled, style, _tokens, onChange }) {
|
|
6
|
+
const t = useDesignTokens(_tokens);
|
|
7
|
+
const [focused, setFocused] = React.useState(false);
|
|
8
|
+
// Unchecked: surface.input styles. Checked: preserve surface structure, fill with primary.
|
|
9
|
+
// Border keeps its original color (not primary) so it remains visible against primary bg.
|
|
10
|
+
const surfaceInput = t.surface.input;
|
|
11
|
+
const boxBase = checked
|
|
12
|
+
? { ...surfaceInput, backgroundColor: t.colors.primary }
|
|
13
|
+
: surfaceInput;
|
|
14
|
+
return (_jsxs("label", { style: { display: 'flex', alignItems: 'center', gap: t.spacing.scale.sm, cursor: disabled ? 'default' : 'pointer', color: 'inherit', ...style }, children: [_jsxs("div", { style: {
|
|
15
|
+
position: 'relative', width: 20, height: 20, flexShrink: 0,
|
|
16
|
+
borderRadius: t.radius(4),
|
|
17
|
+
display: 'flex', alignItems: 'center', justifyContent: 'center',
|
|
18
|
+
transition: `all ${t.motion.duration.fast}ms ${t.motion.easing.default}`,
|
|
19
|
+
opacity: disabled ? t.opacity.disabled : 1,
|
|
20
|
+
...boxBase,
|
|
21
|
+
...(focused ? t.surface.inputFocus : {}),
|
|
22
|
+
}, children: [checked && (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: _jsx("path", { d: "M2.5 7l3 3 6-6", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) })), _jsx("input", { type: "checkbox", checked: checked, disabled: disabled, onChange: (e) => onChange?.(e.target.checked), onFocus: () => setFocused(true), onBlur: () => setFocused(false), style: { position: 'absolute', inset: 0, opacity: 0, cursor: disabled ? 'default' : 'pointer', margin: 0 } })] }), label && _jsx("span", { style: { fontSize: t.typography.scale.md.fontSize, fontFamily: t.typography.fontFamily.base, ...resolveLabelStyle(t.identity.labelStyle, t.colors.accent) }, children: label })] }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/primitives/checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAWzD,MAAM,UAAU,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAiB;IACpG,MAAM,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,2FAA2F;IAC3F,0FAA0F;IAC1F,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;QACxD,CAAC,CAAC,YAAY,CAAC;IAEjB,OAAO,CACL,iBAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,aACpJ,eAAK,KAAK,EAAE;oBACV,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;oBAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACzB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ;oBAC/D,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;oBACxE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC1C,GAAG,OAAO;oBACV,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzC,aACE,OAAO,IAAI,CACV,cAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,YACzD,eAAM,CAAC,EAAC,gBAAgB,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAG,GAClG,CACP,EACD,gBACE,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EACpD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,GAC1G,IACE,EACL,KAAK,IAAI,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAG,KAAK,GAAQ,IACrL,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
interface DividerProps {
|
|
3
|
+
direction?: 'horizontal' | 'vertical';
|
|
4
|
+
style?: CSSProperties;
|
|
5
|
+
_tokens?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export declare function Divider({ direction, style, _tokens }: DividerProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=divider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../src/primitives/divider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wBAAgB,OAAO,CAAC,EAAE,SAAwB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,YAAY,2CAQjF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useDesignTokens } from './use-design-tokens.js';
|
|
3
|
+
export function Divider({ direction = 'horizontal', style, _tokens }) {
|
|
4
|
+
const t = useDesignTokens(_tokens);
|
|
5
|
+
const baseStyle = direction === 'horizontal'
|
|
6
|
+
? { width: '100%', height: 1, backgroundColor: t.colors.border }
|
|
7
|
+
: { width: 1, height: '100%', backgroundColor: t.colors.border };
|
|
8
|
+
return _jsx("div", { role: "separator", style: { ...baseStyle, ...style } });
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divider.js","sourceRoot":"","sources":["../../src/primitives/divider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,MAAM,UAAU,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,EAAgB;IAChF,MAAM,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAkB,SAAS,KAAK,YAAY;QACzD,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QAChE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAEnE,OAAO,cAAK,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,GAAI,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import type { TargetAndTransition, Transition } from 'motion/react';
|
|
3
|
+
interface MotionConfig {
|
|
4
|
+
initial?: TargetAndTransition;
|
|
5
|
+
animate?: TargetAndTransition;
|
|
6
|
+
exit?: TargetAndTransition;
|
|
7
|
+
transition?: Transition;
|
|
8
|
+
}
|
|
9
|
+
interface DrawerProps {
|
|
10
|
+
visible?: boolean;
|
|
11
|
+
side?: 'left' | 'right';
|
|
12
|
+
width?: number | string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
_tokens?: Record<string, unknown>;
|
|
15
|
+
_motion?: MotionConfig;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
onClose?: () => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function Drawer({ visible, side, width, style, _tokens, _motion, children, onClose }: DrawerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/primitives/drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGpE,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,MAAM,CAAC,EAAE,OAAc,EAAE,IAAa,EAAE,KAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,kDAwE7H"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { motion } from 'motion/react';
|
|
3
|
+
import { useDesignTokens } from './use-design-tokens.js';
|
|
4
|
+
export function Drawer({ visible = true, side = 'left', width = 300, style, _tokens, _motion, children, onClose }) {
|
|
5
|
+
if (!visible)
|
|
6
|
+
return null;
|
|
7
|
+
const t = useDesignTokens(_tokens);
|
|
8
|
+
const sideStyle = side === 'left'
|
|
9
|
+
? { left: 0, top: 0, bottom: 0 }
|
|
10
|
+
: { right: 0, top: 0, bottom: 0 };
|
|
11
|
+
const hasMotion = !!_motion;
|
|
12
|
+
// Derive slide direction from side if no explicit initial.x in _motion
|
|
13
|
+
const slideFrom = side === 'right' ? 60 : -60;
|
|
14
|
+
const panelInitial = _motion?.initial ?? { x: slideFrom, opacity: 0 };
|
|
15
|
+
const panelAnimate = _motion?.animate ?? { x: 0, opacity: 1 };
|
|
16
|
+
const panelTransition = _motion?.transition ?? { duration: 0.3, ease: 'easeOut' };
|
|
17
|
+
const backdropTransition = { duration: panelTransition.duration ?? 0.3 };
|
|
18
|
+
return (_jsxs("div", { style: { position: 'fixed', inset: 0, zIndex: 900 }, children: [hasMotion ? (_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: backdropTransition, style: { position: 'absolute', inset: 0, backgroundColor: `rgba(0,0,0,${t.opacity.backdrop})` }, onClick: onClose, "aria-hidden": "true" })) : (_jsx("div", { style: { position: 'absolute', inset: 0, backgroundColor: `rgba(0,0,0,${t.opacity.backdrop})` }, onClick: onClose, "aria-hidden": "true" })), hasMotion ? (_jsx(motion.nav, { role: "navigation", initial: panelInitial, animate: panelAnimate, transition: panelTransition, style: {
|
|
19
|
+
position: 'absolute',
|
|
20
|
+
...sideStyle,
|
|
21
|
+
width,
|
|
22
|
+
color: t.colors.text,
|
|
23
|
+
overflow: 'auto',
|
|
24
|
+
padding: t.spacing.scale.md,
|
|
25
|
+
...t.surface.modal,
|
|
26
|
+
...style,
|
|
27
|
+
}, children: children })) : (_jsx("nav", { role: "navigation", style: {
|
|
28
|
+
position: 'absolute',
|
|
29
|
+
...sideStyle,
|
|
30
|
+
width,
|
|
31
|
+
color: t.colors.text,
|
|
32
|
+
overflow: 'auto',
|
|
33
|
+
padding: t.spacing.scale.md,
|
|
34
|
+
...t.surface.modal,
|
|
35
|
+
...style,
|
|
36
|
+
}, children: children }))] }));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=drawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/primitives/drawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CSSProperties } from 'react';
|
|
3
|
+
import type { UploadFileState } from 'mythik';
|
|
4
|
+
interface FileUploadProps {
|
|
5
|
+
accept?: string;
|
|
6
|
+
multiple?: boolean;
|
|
7
|
+
maxSize?: number;
|
|
8
|
+
maxFiles?: number;
|
|
9
|
+
preview?: boolean;
|
|
10
|
+
dropZone?: boolean;
|
|
11
|
+
autoUpload?: boolean;
|
|
12
|
+
label?: string;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
style?: CSSProperties;
|
|
15
|
+
_tokens?: Record<string, unknown>;
|
|
16
|
+
/** Internal state from /ui/uploads/{elementId}/files */
|
|
17
|
+
uploadState?: UploadFileState[];
|
|
18
|
+
/** Called when files are selected/dropped */
|
|
19
|
+
onFiles?: (files: File[]) => void;
|
|
20
|
+
/** Called when remove button is clicked */
|
|
21
|
+
onRemove?: (index: number) => void;
|
|
22
|
+
/** Called when retry button is clicked */
|
|
23
|
+
onRetry?: (index: number) => void;
|
|
24
|
+
}
|
|
25
|
+
export declare function FileUpload({ accept, multiple, maxSize, maxFiles, preview, dropZone, autoUpload, label, disabled, style, _tokens, uploadState, onFiles, onRemove, onRetry, }: FileUploadProps): React.ReactElement;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=file-upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/primitives/file-upload.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAG9C,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,wDAAwD;IACxD,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAmED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EAAE,QAAgB,EAAE,OAAoB,EAAE,QAAa,EAC7D,OAAc,EAAE,QAAgB,EAAE,UAAiB,EACnD,KAAqB,EAAE,QAAgB,EAAE,KAAK,EAAE,OAAO,EACvD,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GACxC,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAmNtC"}
|