@tcn/ui 0.8.1 → 0.10.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/dist/bar.css +1 -0
- package/dist/body.css +1 -1
- package/dist/body.module-BbFZ7KNP.js +5 -0
- package/dist/body.module-BbFZ7KNP.js.map +1 -0
- package/dist/divider.css +1 -1
- package/dist/feedback/progress/progress_bar.js +13 -13
- package/dist/footer.css +1 -1
- package/dist/form/field/common/field_description.js +7 -8
- package/dist/form/field/common/field_description.js.map +1 -1
- package/dist/form/field/common/field_error.js +6 -6
- package/dist/form/field/common/field_label.js +7 -8
- package/dist/form/field/common/field_label.js.map +1 -1
- package/dist/form/field_set/field_set.js +7 -7
- package/dist/inputs/date_picker/date_picker_date.js +6 -6
- package/dist/inputs/date_picker/date_picker_day.js +6 -6
- package/dist/inputs/date_picker/date_picker_time_selector.js +5 -5
- package/dist/inputs/date_picker/date_picker_year_selector.js +5 -5
- package/dist/inputs/suggestions/suggestion_list.js +6 -6
- package/dist/layouts/bar/bar.d.ts +5 -0
- package/dist/layouts/bar/bar.d.ts.map +1 -0
- package/dist/layouts/bar/bar.js +20 -0
- package/dist/layouts/bar/bar.js.map +1 -0
- package/dist/layouts/body/body.d.ts +2 -2
- package/dist/layouts/body/body.d.ts.map +1 -1
- package/dist/layouts/body/body.js +12 -12
- package/dist/layouts/body/body.js.map +1 -1
- package/dist/layouts/body/h_body.d.ts.map +1 -1
- package/dist/layouts/body/h_body.js +18 -12
- package/dist/layouts/body/h_body.js.map +1 -1
- package/dist/layouts/body/v_body.d.ts.map +1 -1
- package/dist/layouts/body/v_body.js +16 -10
- package/dist/layouts/body/v_body.js.map +1 -1
- package/dist/layouts/footer/footer.d.ts +2 -3
- package/dist/layouts/footer/footer.d.ts.map +1 -1
- package/dist/layouts/footer/footer.js +7 -7
- package/dist/layouts/footer/footer.js.map +1 -1
- package/dist/layouts/header/header.d.ts +2 -2
- package/dist/layouts/header/header.d.ts.map +1 -1
- package/dist/layouts/header/header.js +13 -21
- package/dist/layouts/header/header.js.map +1 -1
- package/dist/layouts/index.d.ts +2 -1
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +40 -38
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/rail/rail.js +41 -41
- package/dist/layouts/rail/rail.js.map +1 -1
- package/dist/layouts/rail/side/side.d.ts.map +1 -1
- package/dist/layouts/rail/side/side.js +1 -1
- package/dist/layouts/rail/side/side.js.map +1 -1
- package/dist/layouts/rail/utility_strip/utility_strip.d.ts.map +1 -1
- package/dist/layouts/rail/utility_strip/utility_strip.js +21 -17
- package/dist/layouts/rail/utility_strip/utility_strip.js.map +1 -1
- package/dist/layouts/responsive/breakpoint.d.ts +11 -0
- package/dist/layouts/responsive/breakpoint.d.ts.map +1 -0
- package/dist/layouts/responsive/breakpoint.js +15 -0
- package/dist/layouts/responsive/breakpoint.js.map +1 -0
- package/dist/layouts/responsive/responsive.d.ts +7 -0
- package/dist/layouts/responsive/responsive.d.ts.map +1 -0
- package/dist/layouts/responsive/responsive.js +11 -0
- package/dist/layouts/responsive/responsive.js.map +1 -0
- package/dist/layouts/responsive/responsive_container.d.ts +7 -0
- package/dist/layouts/responsive/responsive_container.d.ts.map +1 -0
- package/dist/layouts/responsive/responsive_container.js +30 -0
- package/dist/layouts/responsive/responsive_container.js.map +1 -0
- package/dist/layouts/responsive/responsive_viewport.d.ts +7 -0
- package/dist/layouts/responsive/responsive_viewport.d.ts.map +1 -0
- package/dist/layouts/responsive/responsive_viewport.js +12 -0
- package/dist/layouts/responsive/responsive_viewport.js.map +1 -0
- package/dist/layouts/scaffold/scaffold.js +32 -32
- package/dist/layouts/scaffold/scaffold.js.map +1 -1
- package/dist/layouts/utility_bar/utility_bar.d.ts +2 -2
- package/dist/layouts/utility_bar/utility_bar.d.ts.map +1 -1
- package/dist/layouts/utility_bar/utility_bar.js +17 -19
- package/dist/layouts/utility_bar/utility_bar.js.map +1 -1
- package/dist/overlay/frame/frame.js +3 -3
- package/dist/overlay/frame/frame.js.map +1 -1
- package/dist/panel.css +1 -0
- package/dist/rail.css +1 -1
- package/dist/scaffold.css +1 -1
- package/dist/side.css +1 -1
- package/dist/stacks/box/bottom_resize_handle.d.ts +2 -2
- package/dist/stacks/box/bottom_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/bottom_resize_handle.js +12 -10
- package/dist/stacks/box/bottom_resize_handle.js.map +1 -1
- package/dist/stacks/box/box.d.ts +4 -4
- package/dist/stacks/box/box.d.ts.map +1 -1
- package/dist/stacks/box/box.js +26 -26
- package/dist/stacks/box/box.js.map +1 -1
- package/dist/stacks/box/end_resize_handle.d.ts +2 -2
- package/dist/stacks/box/end_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/end_resize_handle.js +6 -5
- package/dist/stacks/box/end_resize_handle.js.map +1 -1
- package/dist/stacks/box/left_resize_handle.d.ts +2 -2
- package/dist/stacks/box/left_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/left_resize_handle.js +10 -9
- package/dist/stacks/box/left_resize_handle.js.map +1 -1
- package/dist/stacks/box/resize_handlers.d.ts +2 -2
- package/dist/stacks/box/resize_handlers.d.ts.map +1 -1
- package/dist/stacks/box/resize_handlers.js +24 -24
- package/dist/stacks/box/resize_handlers.js.map +1 -1
- package/dist/stacks/box/right_resize_handle.d.ts +2 -2
- package/dist/stacks/box/right_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/right_resize_handle.js +6 -5
- package/dist/stacks/box/right_resize_handle.js.map +1 -1
- package/dist/stacks/box/start_resize_handle.d.ts +2 -2
- package/dist/stacks/box/start_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/start_resize_handle.js +4 -4
- package/dist/stacks/box/start_resize_handle.js.map +1 -1
- package/dist/stacks/box/top_resize_handle.d.ts +2 -2
- package/dist/stacks/box/top_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/top_resize_handle.js +2 -1
- package/dist/stacks/box/top_resize_handle.js.map +1 -1
- package/dist/stacks/h_collapsible_box.d.ts.map +1 -1
- package/dist/stacks/h_collapsible_box.js +24 -24
- package/dist/stacks/h_collapsible_box.js.map +1 -1
- package/dist/stacks/v_collapsible_box.js +25 -25
- package/dist/stacks/v_collapsible_box.js.map +1 -1
- package/dist/surfaces/confirm/confirm.js +5 -5
- package/dist/surfaces/index.d.ts +1 -2
- package/dist/surfaces/index.d.ts.map +1 -1
- package/dist/surfaces/index.js +18 -20
- package/dist/surfaces/index.js.map +1 -1
- package/dist/surfaces/panel/panel.d.ts +5 -0
- package/dist/surfaces/panel/panel.d.ts.map +1 -0
- package/dist/surfaces/panel/panel.js +19 -0
- package/dist/surfaces/panel/panel.js.map +1 -0
- package/dist/surfaces/pop_confirm/pop_confirm.js +1 -1
- package/dist/themes/theme.d.ts +2 -1
- package/dist/themes/theme.d.ts.map +1 -1
- package/dist/themes/theme.js +16 -9
- package/dist/themes/theme.js.map +1 -1
- package/dist/themes/themes/ergo/ergo_theme.css +1 -1
- package/dist/themes/themes/ergo/ergo_theme.js +27 -0
- package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
- package/dist/typography/body_text/body_text.d.ts +2 -1
- package/dist/typography/body_text/body_text.d.ts.map +1 -1
- package/dist/typography/body_text/body_text.js +24 -23
- package/dist/typography/body_text/body_text.js.map +1 -1
- package/dist/typography/callout/callout.d.ts +2 -1
- package/dist/typography/callout/callout.d.ts.map +1 -1
- package/dist/typography/callout/callout.js +28 -27
- package/dist/typography/callout/callout.js.map +1 -1
- package/dist/typography/caption/caption.d.ts +2 -1
- package/dist/typography/caption/caption.d.ts.map +1 -1
- package/dist/typography/caption/caption.js +18 -17
- package/dist/typography/caption/caption.js.map +1 -1
- package/dist/typography/footnote/footnote.d.ts +2 -1
- package/dist/typography/footnote/footnote.d.ts.map +1 -1
- package/dist/typography/footnote/footnote.js +25 -24
- package/dist/typography/footnote/footnote.js.map +1 -1
- package/dist/typography/headline/headline.d.ts +2 -1
- package/dist/typography/headline/headline.d.ts.map +1 -1
- package/dist/typography/headline/headline.js +36 -33
- package/dist/typography/headline/headline.js.map +1 -1
- package/dist/typography/subheadline/subheadline.d.ts +2 -1
- package/dist/typography/subheadline/subheadline.d.ts.map +1 -1
- package/dist/typography/subheadline/subheadline.js +35 -32
- package/dist/typography/subheadline/subheadline.js.map +1 -1
- package/dist/utils/dnd/context.d.ts.map +1 -1
- package/dist/utils/dnd/context.js +9 -7
- package/dist/utils/dnd/context.js.map +1 -1
- package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +1 -1
- package/dist/utils/dnd/hooks/use_drag_container.js +29 -15
- package/dist/utils/dnd/hooks/use_drag_container.js.map +1 -1
- package/dist/utils/dnd/types.d.ts +3 -4
- package/dist/utils/dnd/types.d.ts.map +1 -1
- package/dist/utils/hooks/use_media_query.d.ts +5 -8
- package/dist/utils/hooks/use_media_query.d.ts.map +1 -1
- package/dist/utils/hooks/use_media_query.js +10 -11
- package/dist/utils/hooks/use_media_query.js.map +1 -1
- package/dist/utils/index.d.ts +1 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +19 -21
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/layouts/__stories__/composed.stories.tsx +0 -55
- package/src/layouts/__stories__/rail.stories.tsx +78 -0
- package/src/layouts/__stories__/scaffold.stories.tsx +90 -0
- package/src/layouts/__stories__/utils/content.tsx +27 -0
- package/src/layouts/__stories__/utils/layout_theme.css +88 -0
- package/src/layouts/__stories__/utils/layout_theme_provider.tsx +11 -0
- package/src/layouts/__stories__/utils.tsx +6 -6
- package/src/layouts/{utility_bar/utility_bar.module.css → bar/bar.module.css} +2 -1
- package/src/layouts/bar/bar.tsx +23 -0
- package/src/layouts/body/body.module.css +9 -4
- package/src/layouts/body/body.tsx +7 -6
- package/src/layouts/body/h_body.module.css +1 -2
- package/src/layouts/body/h_body.tsx +9 -4
- package/src/layouts/body/v_body.tsx +9 -4
- package/src/layouts/divider/divider.module.css +1 -1
- package/src/layouts/footer/footer.module.css +0 -3
- package/src/layouts/footer/footer.tsx +5 -6
- package/src/layouts/header/header.tsx +6 -15
- package/src/layouts/index.ts +2 -1
- package/src/layouts/rail/rail.module.css +9 -5
- package/src/layouts/rail/rail.tsx +1 -1
- package/src/layouts/rail/side/side.module.css +0 -1
- package/src/layouts/rail/side/side.tsx +1 -2
- package/src/layouts/rail/utility_strip/utility_strip.module.css +5 -0
- package/src/layouts/rail/utility_strip/utility_strip.tsx +4 -1
- package/src/layouts/responsive/breakpoint.tsx +29 -0
- package/src/layouts/responsive/responsive.stories.tsx +37 -0
- package/src/layouts/responsive/responsive.tsx +18 -0
- package/src/layouts/responsive/responsive_container.tsx +51 -0
- package/src/layouts/responsive/responsive_viewport.tsx +17 -0
- package/src/layouts/scaffold/scaffold.module.css +10 -7
- package/src/layouts/scaffold/scaffold.tsx +1 -1
- package/src/layouts/utility_bar/utility_bar.tsx +6 -9
- package/src/overlay/frame/frame.tsx +2 -2
- package/src/stacks/box/bottom_resize_handle.tsx +7 -5
- package/src/stacks/box/box.tsx +12 -18
- package/src/stacks/box/end_resize_handle.tsx +6 -6
- package/src/stacks/box/left_resize_handle.tsx +4 -3
- package/src/stacks/box/resize_handlers.ts +11 -9
- package/src/stacks/box/right_resize_handle.tsx +4 -3
- package/src/stacks/box/start_resize_handle.tsx +3 -3
- package/src/stacks/box/top_resize_handle.tsx +4 -3
- package/src/stacks/collapsible_box.stories.tsx +11 -11
- package/src/stacks/h_collapsible_box.tsx +5 -5
- package/src/stacks/v_collapsible_box.tsx +4 -4
- package/src/surfaces/index.ts +1 -2
- package/src/surfaces/panel/__stories__/panel.stories.tsx +12 -12
- package/src/surfaces/panel/__stories__/panel_stories.module.css +3 -3
- package/src/surfaces/panel/panel.module.css +1 -6
- package/src/surfaces/panel/panel.tsx +22 -0
- package/src/themes/theme.tsx +6 -2
- package/src/themes/themes/ergo/__stories__/material.stories.tsx +15 -16
- package/src/themes/themes/ergo/ergo_theme.css +27 -0
- package/src/typography/body_text/body_text.tsx +21 -17
- package/src/typography/callout/callout.tsx +20 -16
- package/src/typography/caption/caption.tsx +20 -16
- package/src/typography/footnote/footnote.tsx +20 -16
- package/src/typography/headline/headline.tsx +60 -54
- package/src/typography/subheadline/subheadline.tsx +60 -54
- package/src/utils/dnd/__stories__/draggable.stories.tsx +34 -0
- package/src/utils/dnd/context.ts +1 -0
- package/src/utils/dnd/hooks/use_drag_container.ts +18 -1
- package/src/utils/dnd/types.ts +4 -1
- package/src/utils/hooks/use_media_query.ts +16 -27
- package/src/utils/index.ts +1 -3
- package/dist/body_text.module-h4XQE2pC.js +0 -5
- package/dist/body_text.module-h4XQE2pC.js.map +0 -1
- package/dist/callout.module-D8ECmxpO.js +0 -5
- package/dist/callout.module-D8ECmxpO.js.map +0 -1
- package/dist/caption.module-DDq0H4xZ.js +0 -5
- package/dist/caption.module-DDq0H4xZ.js.map +0 -1
- package/dist/footnote.module-DEyFuqOr.js +0 -5
- package/dist/footnote.module-DEyFuqOr.js.map +0 -1
- package/dist/h_body.css +0 -1
- package/dist/h_panel.css +0 -1
- package/dist/header.css +0 -1
- package/dist/headline.module-BiwHBtGf.js +0 -5
- package/dist/headline.module-BiwHBtGf.js.map +0 -1
- package/dist/layouts/rail/main/main.d.ts +0 -6
- package/dist/layouts/rail/main/main.d.ts.map +0 -1
- package/dist/layouts/rail/main/main.js +0 -21
- package/dist/layouts/rail/main/main.js.map +0 -1
- package/dist/main.css +0 -1
- package/dist/subheadline.module-C-v7zMkQ.js +0 -5
- package/dist/subheadline.module-C-v7zMkQ.js.map +0 -1
- package/dist/surfaces/panel/h_panel.d.ts +0 -9
- package/dist/surfaces/panel/h_panel.d.ts.map +0 -1
- package/dist/surfaces/panel/h_panel.js +0 -60
- package/dist/surfaces/panel/h_panel.js.map +0 -1
- package/dist/surfaces/panel/v_panel.d.ts +0 -5
- package/dist/surfaces/panel/v_panel.d.ts.map +0 -1
- package/dist/surfaces/panel/v_panel.js +0 -19
- package/dist/surfaces/panel/v_panel.js.map +0 -1
- package/dist/utility_bar.css +0 -1
- package/dist/utils/responsive/responsive_renderer.d.ts +0 -21
- package/dist/utils/responsive/responsive_renderer.d.ts.map +0 -1
- package/dist/utils/responsive/responsive_renderer.js +0 -12
- package/dist/utils/responsive/responsive_renderer.js.map +0 -1
- package/dist/v_body.css +0 -1
- package/src/layouts/header/header.module.css +0 -8
- package/src/layouts/rail/__stories__/rail.stories.tsx +0 -64
- package/src/layouts/rail/__stories__/rail_stories.module.css +0 -25
- package/src/layouts/rail/main/main.module.css +0 -7
- package/src/layouts/rail/main/main.tsx +0 -26
- package/src/layouts/scaffold/__stories__/scaffold.stories.tsx +0 -53
- package/src/layouts/scaffold/__stories__/scaffold_stories.module.css +0 -31
- package/src/surfaces/panel/h_panel.tsx +0 -65
- package/src/surfaces/panel/v_panel.tsx +0 -20
- package/src/utils/responsive/responsive_renderer.stories.tsx +0 -77
- package/src/utils/responsive/responsive_renderer.tsx +0 -31
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import i from "react";
|
|
3
|
-
import { clsx as c } from "clsx";
|
|
4
|
-
import { HStack as s } from "../../../stacks/h_stack.js";
|
|
5
|
-
import '../../../main.css';const e = "_main_bc17de6", f = { main: e }, x = i.forwardRef(function({ children: t, className: o, overflowX: a = "auto", ...m }, n) {
|
|
6
|
-
return /* @__PURE__ */ r(
|
|
7
|
-
s,
|
|
8
|
-
{
|
|
9
|
-
ref: n,
|
|
10
|
-
as: "div",
|
|
11
|
-
overflowX: a,
|
|
12
|
-
className: c(f.main, o, "tcn-main"),
|
|
13
|
-
...m,
|
|
14
|
-
children: t
|
|
15
|
-
}
|
|
16
|
-
);
|
|
17
|
-
});
|
|
18
|
-
export {
|
|
19
|
-
x as Main
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../../../../src/layouts/rail/main/main.tsx"],"sourcesContent":["import React from 'react';\nimport { clsx } from 'clsx';\nimport { HStack, type HStackProps } from '../../../stacks/h_stack.js';\n\n// Styles\nimport styles from './main.module.css';\n\nexport interface MainProps extends Omit<HStackProps, 'as'> {}\n\n// WIP: This component is not fully implemented.\nexport const Main = React.forwardRef<HTMLElement, MainProps>(function Main(\n { children, className, overflowX = 'auto', ...props }: MainProps,\n ref\n) {\n return (\n <HStack\n ref={ref}\n as=\"div\"\n overflowX={overflowX}\n className={clsx(styles['main'], className, 'tcn-main')}\n {...props}\n >\n {children}\n </HStack>\n );\n});\n"],"names":["Main","React","children","className","overflowX","props","ref","jsx","HStack","clsx","styles"],"mappings":";;;;4CAUaA,IAAOC,EAAM,WAAmC,SAC3D,EAAE,UAAAC,GAAU,WAAAC,GAAW,WAAAC,IAAY,QAAQ,GAAGC,EAAA,GAC9CC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,IAAG;AAAA,MACH,WAAAF;AAAA,MACA,WAAWK,EAAKC,EAAO,MAASP,GAAW,UAAU;AAAA,MACpD,GAAGE;AAAA,MAEH,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
package/dist/main.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer tcn-system{:where(._main_bc17de6){min-width:0;flex-grow:1;height:100%}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subheadline.module-C-v7zMkQ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { BoxProps } from '../../stacks/box/box.js';
|
|
3
|
-
import { Alignment } from '../../stacks/types/alignment.js';
|
|
4
|
-
export interface HPanelProps extends Omit<BoxProps, 'as'> {
|
|
5
|
-
vAlign?: Alignment;
|
|
6
|
-
hAlign?: Alignment;
|
|
7
|
-
}
|
|
8
|
-
export declare const HPanel: React.ForwardRefExoticComponent<HPanelProps & React.RefAttributes<HTMLElement>>;
|
|
9
|
-
//# sourceMappingURL=h_panel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"h_panel.d.ts","sourceRoot":"","sources":["../../../src/surfaces/panel/h_panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAIjE,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;IACvD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,MAAM,iFAmDjB,CAAC"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { jsx as p } from "react/jsx-runtime";
|
|
2
|
-
import u from "react";
|
|
3
|
-
import { clsx as r } from "clsx";
|
|
4
|
-
import { Box as x } from "../../stacks/box/box.js";
|
|
5
|
-
import { HStack as i } from "../../stacks/h_stack.js";
|
|
6
|
-
import '../../h_panel.css';const P = "_panel-stack_f1896f3", f = { "panel-stack": P }, B = u.forwardRef(function({
|
|
7
|
-
children: m,
|
|
8
|
-
width: k,
|
|
9
|
-
height: d,
|
|
10
|
-
minWidth: a,
|
|
11
|
-
maxWidth: t,
|
|
12
|
-
minHeight: n,
|
|
13
|
-
maxHeight: e,
|
|
14
|
-
hAlign: c,
|
|
15
|
-
vAlign: o = "start",
|
|
16
|
-
className: l,
|
|
17
|
-
..._
|
|
18
|
-
}, s) {
|
|
19
|
-
return /* @__PURE__ */ p(
|
|
20
|
-
x,
|
|
21
|
-
{
|
|
22
|
-
ref: s,
|
|
23
|
-
width: k,
|
|
24
|
-
height: d,
|
|
25
|
-
minWidth: a,
|
|
26
|
-
maxWidth: t,
|
|
27
|
-
minHeight: n,
|
|
28
|
-
maxHeight: e,
|
|
29
|
-
"data-h-alignment": c,
|
|
30
|
-
"data-v-alignment": o,
|
|
31
|
-
className: r(f.panel, l, "panel", "tcn-panel", "tcn-h-panel"),
|
|
32
|
-
..._,
|
|
33
|
-
children: /* @__PURE__ */ p(
|
|
34
|
-
i,
|
|
35
|
-
{
|
|
36
|
-
as: "section",
|
|
37
|
-
minWidth: a,
|
|
38
|
-
maxWidth: t,
|
|
39
|
-
minHeight: n,
|
|
40
|
-
maxHeight: e,
|
|
41
|
-
hAlign: c,
|
|
42
|
-
vAlign: o,
|
|
43
|
-
ref: s,
|
|
44
|
-
className: r(
|
|
45
|
-
f["panel-stack"],
|
|
46
|
-
l,
|
|
47
|
-
"panel-stack",
|
|
48
|
-
"tcn-panel-stack"
|
|
49
|
-
),
|
|
50
|
-
zIndex: 0,
|
|
51
|
-
children: m
|
|
52
|
-
}
|
|
53
|
-
)
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
});
|
|
57
|
-
export {
|
|
58
|
-
B as HPanel
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=h_panel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"h_panel.js","sources":["../../../src/surfaces/panel/h_panel.tsx"],"sourcesContent":["import React from 'react';\nimport { clsx } from 'clsx';\nimport { Box, type BoxProps } from '../../stacks/box/box.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport type { Alignment } from '../../stacks/types/alignment.js';\n// Styles\nimport styles from './panel.module.css';\n\nexport interface HPanelProps extends Omit<BoxProps, 'as'> {\n vAlign?: Alignment;\n hAlign?: Alignment;\n}\n\nexport const HPanel = React.forwardRef<HTMLElement, HPanelProps>(function HPanel(\n {\n children,\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n hAlign,\n vAlign = 'start',\n className,\n ...props\n }: HPanelProps,\n ref\n) {\n return (\n <Box\n ref={ref}\n width={width}\n height={height}\n minWidth={minWidth}\n maxWidth={maxWidth}\n minHeight={minHeight}\n maxHeight={maxHeight}\n data-h-alignment={hAlign}\n data-v-alignment={vAlign}\n className={clsx(styles['panel'], className, 'panel', 'tcn-panel', 'tcn-h-panel')}\n {...props}\n >\n <HStack\n as=\"section\"\n minWidth={minWidth}\n maxWidth={maxWidth}\n minHeight={minHeight}\n maxHeight={maxHeight}\n hAlign={hAlign}\n vAlign={vAlign}\n ref={ref}\n className={clsx(\n styles['panel-stack'],\n className,\n 'panel-stack',\n 'tcn-panel-stack'\n )}\n zIndex={0}\n >\n {children}\n </HStack>\n </Box>\n );\n});\n"],"names":["HPanel","React","children","width","height","minWidth","maxWidth","minHeight","maxHeight","hAlign","vAlign","className","props","ref","jsx","Box","clsx","styles","HStack"],"mappings":";;;;;4DAaaA,IAASC,EAAM,WAAqC,SAC/D;AAAA,EACE,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,WAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,OAAAV;AAAA,MACA,QAAAC;AAAA,MACA,UAAAC;AAAA,MACA,UAAAC;AAAA,MACA,WAAAC;AAAA,MACA,WAAAC;AAAA,MACA,oBAAkBC;AAAA,MAClB,oBAAkBC;AAAA,MAClB,WAAWM,EAAKC,EAAO,OAAUN,GAAW,SAAS,aAAa,aAAa;AAAA,MAC9E,GAAGC;AAAA,MAEJ,UAAA,gBAAAE;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,UAAAb;AAAA,UACA,UAAAC;AAAA,UACA,WAAAC;AAAA,UACA,WAAAC;AAAA,UACA,QAAAC;AAAA,UACA,QAAAC;AAAA,UACA,KAAAG;AAAA,UACA,WAAWG;AAAA,YACTC,EAAO,aAAa;AAAA,YACpBN;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAEF,QAAQ;AAAA,UAEP,UAAAT;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { ScaffoldProps } from '../../layouts/scaffold/scaffold.js';
|
|
3
|
-
export type VPanelProps = ScaffoldProps;
|
|
4
|
-
export declare const VPanel: React.ForwardRefExoticComponent<ScaffoldProps & React.RefAttributes<HTMLElement>>;
|
|
5
|
-
//# sourceMappingURL=v_panel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v_panel.d.ts","sourceRoot":"","sources":["../../../src/surfaces/panel/v_panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGlF,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,eAAO,MAAM,MAAM,mFAajB,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import f from "react";
|
|
3
|
-
import { Scaffold as n } from "../../layouts/scaffold/scaffold.js";
|
|
4
|
-
import c from "clsx";
|
|
5
|
-
const u = f.forwardRef(function({ children: r, className: o, ...t }, a) {
|
|
6
|
-
return /* @__PURE__ */ e(
|
|
7
|
-
n,
|
|
8
|
-
{
|
|
9
|
-
ref: a,
|
|
10
|
-
className: c("tcn-surface", "tcn-panel", "tcn-v-panel", o),
|
|
11
|
-
...t,
|
|
12
|
-
children: r
|
|
13
|
-
}
|
|
14
|
-
);
|
|
15
|
-
});
|
|
16
|
-
export {
|
|
17
|
-
u as VPanel
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=v_panel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"v_panel.js","sources":["../../../src/surfaces/panel/v_panel.tsx"],"sourcesContent":["import React from 'react';\nimport { Scaffold, type ScaffoldProps } from '../../layouts/scaffold/scaffold.js';\nimport clsx from 'clsx';\n\nexport type VPanelProps = ScaffoldProps;\n\nexport const VPanel = React.forwardRef<HTMLElement, VPanelProps>(function VPanel(\n { children, className, ...props }: VPanelProps,\n ref\n) {\n return (\n <Scaffold\n ref={ref}\n className={clsx('tcn-surface', 'tcn-panel', 'tcn-v-panel', className)}\n {...props}\n >\n {children}\n </Scaffold>\n );\n});\n"],"names":["VPanel","React","children","className","props","ref","jsx","Scaffold","clsx"],"mappings":";;;;AAMO,MAAMA,IAASC,EAAM,WAAqC,SAC/D,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAC1BC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,WAAWG,EAAK,eAAe,aAAa,eAAeL,CAAS;AAAA,MACnE,GAAGC;AAAA,MAEH,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
package/dist/utility_bar.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer tcn-system{:where(._utility-bar_3a92315){width:100%;min-height:0}}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
export interface ResponsiveRendererProps {
|
|
3
|
-
/**
|
|
4
|
-
* Component to render on mobile devices (width < 768px)
|
|
5
|
-
*/
|
|
6
|
-
mobile: React.ReactNode;
|
|
7
|
-
/**
|
|
8
|
-
* Component to render on desktop devices (width >= 768px)
|
|
9
|
-
*/
|
|
10
|
-
desktop: React.ReactNode;
|
|
11
|
-
/**
|
|
12
|
-
* Optional breakpoint in pixels. Defaults to 768px
|
|
13
|
-
*/
|
|
14
|
-
breakpoint?: number;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* A component that renders different content based on screen size.
|
|
18
|
-
* Uses the useMediaQuery hook to detect screen size changes.
|
|
19
|
-
*/
|
|
20
|
-
export declare function ResponsiveRenderer({ mobile, desktop, breakpoint, }: ResponsiveRendererProps): React.ReactNode;
|
|
21
|
-
//# sourceMappingURL=responsive_renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responsive_renderer.d.ts","sourceRoot":"","sources":["../../../src/utils/responsive/responsive_renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,OAAO,EACP,UAAgB,GACjB,EAAE,uBAAuB,mBAIzB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { useMediaQuery as r } from "../hooks/use_media_query.js";
|
|
2
|
-
function n({
|
|
3
|
-
mobile: e,
|
|
4
|
-
desktop: i,
|
|
5
|
-
breakpoint: o = 450
|
|
6
|
-
}) {
|
|
7
|
-
return r(`(min-width: ${o}px)`) ? i : e;
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
n as ResponsiveRenderer
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=responsive_renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responsive_renderer.js","sources":["../../../src/utils/responsive/responsive_renderer.tsx"],"sourcesContent":["import React from 'react';\nimport { useMediaQuery } from '../hooks/use_media_query.js';\n\nexport interface ResponsiveRendererProps {\n /**\n * Component to render on mobile devices (width < 768px)\n */\n mobile: React.ReactNode;\n /**\n * Component to render on desktop devices (width >= 768px)\n */\n desktop: React.ReactNode;\n /**\n * Optional breakpoint in pixels. Defaults to 768px\n */\n breakpoint?: number;\n}\n\n/**\n * A component that renders different content based on screen size.\n * Uses the useMediaQuery hook to detect screen size changes.\n */\nexport function ResponsiveRenderer({\n mobile,\n desktop,\n breakpoint = 450,\n}: ResponsiveRendererProps) {\n const isDesktop = useMediaQuery(`(min-width: ${breakpoint}px)`);\n\n return isDesktop ? desktop : mobile;\n}\n"],"names":["ResponsiveRenderer","mobile","desktop","breakpoint","useMediaQuery"],"mappings":";AAsBO,SAASA,EAAmB;AAAA,EACjC,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC,IAAa;AACf,GAA4B;AAG1B,SAFkBC,EAAc,eAAeD,CAAU,KAAK,IAE3CD,IAAUD;AAC/B;"}
|
package/dist/v_body.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer tcn-system{._v-body_d8f1917{min-height:0;flex-grow:1;width:100%}}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Main } from '../main/main.js';
|
|
2
|
-
import { Rail } from '../rail.js';
|
|
3
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
4
|
-
import { Side } from '../side/side.js';
|
|
5
|
-
import { VStack } from '../../../stacks/v_stack.js';
|
|
6
|
-
|
|
7
|
-
import styles from './rail_stories.module.css';
|
|
8
|
-
|
|
9
|
-
const meta: Meta<typeof Rail> = {
|
|
10
|
-
title: 'Layouts/Rail',
|
|
11
|
-
component: Rail,
|
|
12
|
-
tags: ['autodocs'],
|
|
13
|
-
parameters: {
|
|
14
|
-
docs: {
|
|
15
|
-
description: {
|
|
16
|
-
component: 'A rail component that lays out content in a horizontal hierarchy.',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default meta;
|
|
23
|
-
|
|
24
|
-
type Story = StoryObj<typeof Rail>;
|
|
25
|
-
|
|
26
|
-
const Content = ({ children }: { children?: React.ReactNode }) => {
|
|
27
|
-
return (
|
|
28
|
-
<VStack hAlign="start" className={styles.content}>
|
|
29
|
-
{children}
|
|
30
|
-
</VStack>
|
|
31
|
-
);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const Baseline: Story = {
|
|
35
|
-
args: {
|
|
36
|
-
height: '100vh',
|
|
37
|
-
},
|
|
38
|
-
render: () => (
|
|
39
|
-
<Rail height="100vh" className={styles.rail}>
|
|
40
|
-
<Side className={styles.side}>
|
|
41
|
-
<p>Side (Start)</p>
|
|
42
|
-
<p>Fills available space</p>
|
|
43
|
-
<p>Scrolls horizontally</p>
|
|
44
|
-
</Side>
|
|
45
|
-
|
|
46
|
-
<Main className={styles.main}>
|
|
47
|
-
<Content>
|
|
48
|
-
<p>Main</p>
|
|
49
|
-
<p>Fills available space</p>
|
|
50
|
-
<p>Scrolls horizontally</p>
|
|
51
|
-
</Content>
|
|
52
|
-
<Content />
|
|
53
|
-
<Content />
|
|
54
|
-
<Content />
|
|
55
|
-
<Content />
|
|
56
|
-
</Main>
|
|
57
|
-
<Side className={styles.side}>
|
|
58
|
-
<p>Side (End)</p>
|
|
59
|
-
<p>Fills available space</p>
|
|
60
|
-
<p>Scrolls horizontally</p>
|
|
61
|
-
</Side>
|
|
62
|
-
</Rail>
|
|
63
|
-
),
|
|
64
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
.rail {
|
|
2
|
-
:global(.tcn-rail-stack) {
|
|
3
|
-
gap: 8px;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.main {
|
|
8
|
-
background-color: #f1f5f9;
|
|
9
|
-
gap: 16px;
|
|
10
|
-
padding: 16px 0;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.side {
|
|
14
|
-
width: 200px;
|
|
15
|
-
background-color: #3b82f6;
|
|
16
|
-
color: white;
|
|
17
|
-
padding: 16px 0;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.content {
|
|
21
|
-
background-color: #e5e7eb;
|
|
22
|
-
min-width: 200px;
|
|
23
|
-
height: 100%;
|
|
24
|
-
padding: 16px;
|
|
25
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { clsx } from 'clsx';
|
|
3
|
-
import { HStack, type HStackProps } from '../../../stacks/h_stack.js';
|
|
4
|
-
|
|
5
|
-
// Styles
|
|
6
|
-
import styles from './main.module.css';
|
|
7
|
-
|
|
8
|
-
export interface MainProps extends Omit<HStackProps, 'as'> {}
|
|
9
|
-
|
|
10
|
-
// WIP: This component is not fully implemented.
|
|
11
|
-
export const Main = React.forwardRef<HTMLElement, MainProps>(function Main(
|
|
12
|
-
{ children, className, overflowX = 'auto', ...props }: MainProps,
|
|
13
|
-
ref
|
|
14
|
-
) {
|
|
15
|
-
return (
|
|
16
|
-
<HStack
|
|
17
|
-
ref={ref}
|
|
18
|
-
as="div"
|
|
19
|
-
overflowX={overflowX}
|
|
20
|
-
className={clsx(styles['main'], className, 'tcn-main')}
|
|
21
|
-
{...props}
|
|
22
|
-
>
|
|
23
|
-
{children}
|
|
24
|
-
</HStack>
|
|
25
|
-
);
|
|
26
|
-
});
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Scaffold } from '../scaffold.js';
|
|
2
|
-
import { Header } from '../../header/header.js';
|
|
3
|
-
import { UtilityBar } from '../../utility_bar/utility_bar.js';
|
|
4
|
-
import { VBody } from '../../body/v_body.js';
|
|
5
|
-
import { Footer } from '../../footer/footer.js';
|
|
6
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
7
|
-
import { HStack } from '../../../stacks/h_stack.js';
|
|
8
|
-
|
|
9
|
-
import styles from './scaffold_stories.module.css';
|
|
10
|
-
|
|
11
|
-
const meta: Meta<typeof Scaffold> = {
|
|
12
|
-
title: 'Layouts/Scaffold',
|
|
13
|
-
component: Scaffold,
|
|
14
|
-
tags: ['autodocs'],
|
|
15
|
-
parameters: {
|
|
16
|
-
docs: {
|
|
17
|
-
description: {
|
|
18
|
-
component: 'A scaffold component that lays out content in a vertical hierarchy.',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default meta;
|
|
25
|
-
|
|
26
|
-
type Story = StoryObj<typeof Scaffold>;
|
|
27
|
-
|
|
28
|
-
const Content = () => {
|
|
29
|
-
return <HStack className={styles.content} />;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const Baseline: Story = {
|
|
33
|
-
args: {
|
|
34
|
-
height: '100vh',
|
|
35
|
-
},
|
|
36
|
-
render: () => (
|
|
37
|
-
<Scaffold height="100vh">
|
|
38
|
-
<Header className={styles.header}>Header</Header>
|
|
39
|
-
<UtilityBar className={styles.utilityBar}>Utility Bar</UtilityBar>
|
|
40
|
-
<VBody className={styles.body}>
|
|
41
|
-
<p>(V)Body</p>
|
|
42
|
-
<p>Fills available space</p>
|
|
43
|
-
<p>Scrolls vertically</p>
|
|
44
|
-
<Content />
|
|
45
|
-
<Content />
|
|
46
|
-
<Content />
|
|
47
|
-
<Content />
|
|
48
|
-
<Content />
|
|
49
|
-
</VBody>
|
|
50
|
-
<Footer className={styles.footer}>Footer</Footer>
|
|
51
|
-
</Scaffold>
|
|
52
|
-
),
|
|
53
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
.header {
|
|
2
|
-
height: 56px;
|
|
3
|
-
background-color: #3b82f6;
|
|
4
|
-
color: white;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.utilityBar {
|
|
8
|
-
height: 40px;
|
|
9
|
-
background-color: #8b5cf6;
|
|
10
|
-
color: white;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.body {
|
|
14
|
-
background-color: #f1f5f9;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.footer {
|
|
18
|
-
height: 48px;
|
|
19
|
-
background-color: #10b981;
|
|
20
|
-
color: white;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.level {
|
|
24
|
-
background-color: #0ab4d2;
|
|
25
|
-
color: white;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.content {
|
|
29
|
-
background-color: #e5e7eb;
|
|
30
|
-
height: 100px;
|
|
31
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { clsx } from 'clsx';
|
|
3
|
-
import { Box, type BoxProps } from '../../stacks/box/box.js';
|
|
4
|
-
import { HStack } from '../../stacks/h_stack.js';
|
|
5
|
-
import type { Alignment } from '../../stacks/types/alignment.js';
|
|
6
|
-
// Styles
|
|
7
|
-
import styles from './panel.module.css';
|
|
8
|
-
|
|
9
|
-
export interface HPanelProps extends Omit<BoxProps, 'as'> {
|
|
10
|
-
vAlign?: Alignment;
|
|
11
|
-
hAlign?: Alignment;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const HPanel = React.forwardRef<HTMLElement, HPanelProps>(function HPanel(
|
|
15
|
-
{
|
|
16
|
-
children,
|
|
17
|
-
width,
|
|
18
|
-
height,
|
|
19
|
-
minWidth,
|
|
20
|
-
maxWidth,
|
|
21
|
-
minHeight,
|
|
22
|
-
maxHeight,
|
|
23
|
-
hAlign,
|
|
24
|
-
vAlign = 'start',
|
|
25
|
-
className,
|
|
26
|
-
...props
|
|
27
|
-
}: HPanelProps,
|
|
28
|
-
ref
|
|
29
|
-
) {
|
|
30
|
-
return (
|
|
31
|
-
<Box
|
|
32
|
-
ref={ref}
|
|
33
|
-
width={width}
|
|
34
|
-
height={height}
|
|
35
|
-
minWidth={minWidth}
|
|
36
|
-
maxWidth={maxWidth}
|
|
37
|
-
minHeight={minHeight}
|
|
38
|
-
maxHeight={maxHeight}
|
|
39
|
-
data-h-alignment={hAlign}
|
|
40
|
-
data-v-alignment={vAlign}
|
|
41
|
-
className={clsx(styles['panel'], className, 'panel', 'tcn-panel', 'tcn-h-panel')}
|
|
42
|
-
{...props}
|
|
43
|
-
>
|
|
44
|
-
<HStack
|
|
45
|
-
as="section"
|
|
46
|
-
minWidth={minWidth}
|
|
47
|
-
maxWidth={maxWidth}
|
|
48
|
-
minHeight={minHeight}
|
|
49
|
-
maxHeight={maxHeight}
|
|
50
|
-
hAlign={hAlign}
|
|
51
|
-
vAlign={vAlign}
|
|
52
|
-
ref={ref}
|
|
53
|
-
className={clsx(
|
|
54
|
-
styles['panel-stack'],
|
|
55
|
-
className,
|
|
56
|
-
'panel-stack',
|
|
57
|
-
'tcn-panel-stack'
|
|
58
|
-
)}
|
|
59
|
-
zIndex={0}
|
|
60
|
-
>
|
|
61
|
-
{children}
|
|
62
|
-
</HStack>
|
|
63
|
-
</Box>
|
|
64
|
-
);
|
|
65
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Scaffold, type ScaffoldProps } from '../../layouts/scaffold/scaffold.js';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
|
-
|
|
5
|
-
export type VPanelProps = ScaffoldProps;
|
|
6
|
-
|
|
7
|
-
export const VPanel = React.forwardRef<HTMLElement, VPanelProps>(function VPanel(
|
|
8
|
-
{ children, className, ...props }: VPanelProps,
|
|
9
|
-
ref
|
|
10
|
-
) {
|
|
11
|
-
return (
|
|
12
|
-
<Scaffold
|
|
13
|
-
ref={ref}
|
|
14
|
-
className={clsx('tcn-surface', 'tcn-panel', 'tcn-v-panel', className)}
|
|
15
|
-
{...props}
|
|
16
|
-
>
|
|
17
|
-
{children}
|
|
18
|
-
</Scaffold>
|
|
19
|
-
);
|
|
20
|
-
});
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Meta } from '@storybook/react-vite';
|
|
3
|
-
import { BodyText } from '../../typography/index.js';
|
|
4
|
-
import { StyleBox } from '../../stacks/story_components/style_box.js';
|
|
5
|
-
import { ResponsiveRenderer as ResponsiveRendererComponent } from './responsive_renderer.js';
|
|
6
|
-
|
|
7
|
-
const meta: Meta<typeof ResponsiveRendererComponent> = {
|
|
8
|
-
title: 'Utils/Responsive Renderer',
|
|
9
|
-
component: ResponsiveRendererComponent,
|
|
10
|
-
tags: ['autodocs'],
|
|
11
|
-
parameters: {
|
|
12
|
-
layout: 'centered',
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default meta;
|
|
17
|
-
|
|
18
|
-
export function ResponsiveRenderer() {
|
|
19
|
-
return (
|
|
20
|
-
<ResponsiveRendererComponent
|
|
21
|
-
mobile={
|
|
22
|
-
<StyleBox
|
|
23
|
-
className="surface-primary"
|
|
24
|
-
padding="16px"
|
|
25
|
-
borderRadius="8px"
|
|
26
|
-
boxShadow="0 2px 4px rgba(0,0,0,0.1)"
|
|
27
|
-
>
|
|
28
|
-
<BodyText>Mobile Layout</BodyText>
|
|
29
|
-
<BodyText>This content is optimized for smaller screens</BodyText>
|
|
30
|
-
</StyleBox>
|
|
31
|
-
}
|
|
32
|
-
desktop={
|
|
33
|
-
<StyleBox
|
|
34
|
-
className="surface-primary"
|
|
35
|
-
padding="24px"
|
|
36
|
-
borderRadius="8px"
|
|
37
|
-
boxShadow="0 4px 8px rgba(0,0,0,0.1)"
|
|
38
|
-
width="400px"
|
|
39
|
-
>
|
|
40
|
-
<BodyText>Desktop Layout</BodyText>
|
|
41
|
-
<BodyText>This content is optimized for larger screens</BodyText>
|
|
42
|
-
</StyleBox>
|
|
43
|
-
}
|
|
44
|
-
/>
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export function CustomBreakpoint() {
|
|
49
|
-
return (
|
|
50
|
-
<ResponsiveRendererComponent
|
|
51
|
-
breakpoint={1024}
|
|
52
|
-
mobile={
|
|
53
|
-
<StyleBox
|
|
54
|
-
className="surface-primary"
|
|
55
|
-
padding="16px"
|
|
56
|
-
borderRadius="8px"
|
|
57
|
-
boxShadow="0 2px 4px rgba(0,0,0,0.1)"
|
|
58
|
-
>
|
|
59
|
-
<BodyText>Tablet/Mobile Layout</BodyText>
|
|
60
|
-
<BodyText>Shows on screens smaller than 1024px</BodyText>
|
|
61
|
-
</StyleBox>
|
|
62
|
-
}
|
|
63
|
-
desktop={
|
|
64
|
-
<StyleBox
|
|
65
|
-
className="surface-primary"
|
|
66
|
-
padding="24px"
|
|
67
|
-
borderRadius="8px"
|
|
68
|
-
boxShadow="0 4px 8px rgba(0,0,0,0.1)"
|
|
69
|
-
width="400px"
|
|
70
|
-
>
|
|
71
|
-
<BodyText>Large Desktop Layout</BodyText>
|
|
72
|
-
<BodyText>Shows on screens 1024px and larger</BodyText>
|
|
73
|
-
</StyleBox>
|
|
74
|
-
}
|
|
75
|
-
/>
|
|
76
|
-
);
|
|
77
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useMediaQuery } from '../hooks/use_media_query.js';
|
|
3
|
-
|
|
4
|
-
export interface ResponsiveRendererProps {
|
|
5
|
-
/**
|
|
6
|
-
* Component to render on mobile devices (width < 768px)
|
|
7
|
-
*/
|
|
8
|
-
mobile: React.ReactNode;
|
|
9
|
-
/**
|
|
10
|
-
* Component to render on desktop devices (width >= 768px)
|
|
11
|
-
*/
|
|
12
|
-
desktop: React.ReactNode;
|
|
13
|
-
/**
|
|
14
|
-
* Optional breakpoint in pixels. Defaults to 768px
|
|
15
|
-
*/
|
|
16
|
-
breakpoint?: number;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* A component that renders different content based on screen size.
|
|
21
|
-
* Uses the useMediaQuery hook to detect screen size changes.
|
|
22
|
-
*/
|
|
23
|
-
export function ResponsiveRenderer({
|
|
24
|
-
mobile,
|
|
25
|
-
desktop,
|
|
26
|
-
breakpoint = 450,
|
|
27
|
-
}: ResponsiveRendererProps) {
|
|
28
|
-
const isDesktop = useMediaQuery(`(min-width: ${breakpoint}px)`);
|
|
29
|
-
|
|
30
|
-
return isDesktop ? desktop : mobile;
|
|
31
|
-
}
|