@uxf/ui 1.0.0-beta.69 → 1.0.0-beta.70
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/css/button.css +1 -1
- package/css/chip.css +3 -3
- package/css/dropdown.css +4 -0
- package/css/list-item.css +2 -1
- package/dropdown/dropdown.d.ts +2 -1
- package/dropdown/dropdown.stories.d.ts +10 -0
- package/dropdown/dropdown.stories.js +30 -0
- package/package.json +1 -1
- package/tabs/tabs.d.ts +7 -1
- package/tabs/tabs.js +5 -3
- package/tabs/tabs.stories.js +16 -16
package/css/button.css
CHANGED
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
:root .dark & {
|
|
103
|
-
@apply before:border-gray-
|
|
103
|
+
@apply before:border-gray-300 hover:bg-white/10 focus-visible:ring-primary-500
|
|
104
104
|
focus-visible:ring-offset-gray-900;
|
|
105
105
|
|
|
106
106
|
&.is-disabled {
|
package/css/chip.css
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
:root .dark & {
|
|
14
|
-
@apply text-white bg-success-
|
|
14
|
+
@apply text-white bg-success-600;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
:root .dark & {
|
|
24
|
-
@apply text-white bg-warning-
|
|
24
|
+
@apply text-white bg-warning-600;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
:root .dark & {
|
|
34
|
-
@apply text-white bg-error-
|
|
34
|
+
@apply text-white bg-error-600;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
}
|
package/css/dropdown.css
CHANGED
package/css/list-item.css
CHANGED
package/dropdown/dropdown.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { UseAnchorProps } from "@uxf/core/hooks/useAnchorProps";
|
|
2
2
|
import React, { AnchorHTMLAttributes, HTMLAttributes } from "react";
|
|
3
|
-
interface ItemProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type">, UseAnchorProps {
|
|
3
|
+
export interface ItemProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type">, UseAnchorProps {
|
|
4
4
|
}
|
|
5
5
|
declare type ItemsProps = HTMLAttributes<HTMLDivElement>;
|
|
6
|
+
export declare type ItemsTypeProps = HTMLDivElement;
|
|
6
7
|
export declare const Dropdown: {
|
|
7
8
|
Item: React.ForwardRefExoticComponent<ItemProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
8
9
|
Items: React.ForwardRefExoticComponent<ItemsProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: {
|
|
5
|
+
Item: React.ForwardRefExoticComponent<import("./dropdown").ItemProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
6
|
+
Items: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
10
|
+
export declare function Default(): JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Default = void 0;
|
|
7
|
+
const react_1 = require("@headlessui/react");
|
|
8
|
+
const react_2 = __importDefault(require("react"));
|
|
9
|
+
const index_1 = require("./index");
|
|
10
|
+
const button_1 = require("../button");
|
|
11
|
+
const classes_1 = require("@uxf/core/constants/classes");
|
|
12
|
+
exports.default = {
|
|
13
|
+
title: "UI/Dropdown",
|
|
14
|
+
component: index_1.Dropdown,
|
|
15
|
+
};
|
|
16
|
+
const testDropdownItems = [
|
|
17
|
+
{ id: 1, title: "Test 1" },
|
|
18
|
+
{ id: 2, title: "Test 2" },
|
|
19
|
+
{ id: 3, title: "Test 3" },
|
|
20
|
+
];
|
|
21
|
+
function Default() {
|
|
22
|
+
const storyDropdown = (react_2.default.createElement(react_2.default.Fragment, null,
|
|
23
|
+
react_2.default.createElement(react_1.Menu, { as: "div", className: "relative" },
|
|
24
|
+
react_2.default.createElement(react_1.Menu.Button, { as: button_1.Button, title: "Test" }, "Click me"),
|
|
25
|
+
react_2.default.createElement(react_1.Menu.Items, { as: index_1.Dropdown.Items }, testDropdownItems.map((item) => (react_2.default.createElement(react_1.Menu.Item, { key: item.id }, ({ active }) => (react_2.default.createElement(index_1.Dropdown.Item, { className: `first-letter:uppercase ${active ? classes_1.CLASSES.IS_ACTIVE : ""}` }, item.title)))))))));
|
|
26
|
+
return (react_2.default.createElement("div", { className: "flex" },
|
|
27
|
+
react_2.default.createElement("div", { className: "light grow gap-4 p-4" }, storyDropdown),
|
|
28
|
+
react_2.default.createElement("div", { className: "dark grow gap-4 bg-gray-900 p-4 text-gray-200" }, storyDropdown)));
|
|
29
|
+
}
|
|
30
|
+
exports.Default = Default;
|
package/package.json
CHANGED
package/tabs/tabs.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import React, { HTMLAttributes } from "react";
|
|
1
|
+
import React, { FC, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export interface TabProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
className: string;
|
|
5
|
+
tabTitle: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const TabPanel: FC<TabProps>;
|
|
2
8
|
export interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
3
9
|
defaultIndex?: number;
|
|
4
10
|
onChange?: (index: number) => void;
|
package/tabs/tabs.js
CHANGED
|
@@ -23,13 +23,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Tabs = void 0;
|
|
26
|
+
exports.Tabs = exports.TabPanel = void 0;
|
|
27
27
|
const react_1 = require("@headlessui/react");
|
|
28
28
|
const forwardRef_1 = require("@uxf/core/utils/forwardRef");
|
|
29
29
|
const cx_1 = require("@uxf/core/utils/cx");
|
|
30
30
|
const react_2 = __importStar(require("react"));
|
|
31
31
|
const classes_1 = require("@uxf/core/constants/classes");
|
|
32
32
|
const useMouseDragToScroll_1 = require("@uxf/core/hooks/useMouseDragToScroll");
|
|
33
|
+
const TabPanel = (props) => react_2.default.createElement("div", { className: props.className }, props.children);
|
|
34
|
+
exports.TabPanel = TabPanel;
|
|
33
35
|
exports.Tabs = (0, forwardRef_1.forwardRef)("Tabs", (props, ref) => {
|
|
34
36
|
var _a, _b;
|
|
35
37
|
const tabsClassName = (0, cx_1.cx)("uxf-tabs", props.grow && "uxf-tabs--grow", props.className);
|
|
@@ -51,8 +53,8 @@ exports.Tabs = (0, forwardRef_1.forwardRef)("Tabs", (props, ref) => {
|
|
|
51
53
|
if (react_2.Children.count(props.children) === 0) {
|
|
52
54
|
return null;
|
|
53
55
|
}
|
|
54
|
-
const tabPanels = react_2.Children.toArray(props.children).filter((child) => (0, react_2.isValidElement)(child) && child.props.
|
|
55
|
-
const tabs = tabPanels.map((c) => c.props.
|
|
56
|
+
const tabPanels = react_2.Children.toArray(props.children).filter((child) => (0, react_2.isValidElement)(child) && child.props.tabTitle);
|
|
57
|
+
const tabs = tabPanels.map((c) => c.props.tabTitle);
|
|
56
58
|
return (react_2.default.createElement(react_1.Tab.Group, { as: "div", className: tabsClassName, defaultIndex: props.defaultIndex, onChange: props.onChange, ref: ref },
|
|
57
59
|
react_2.default.createElement(react_1.Tab.List, null,
|
|
58
60
|
react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-tabs__tab-list__wrapper", `uxf-tabs__tab-list__wrapper--${(_a = props.variant) !== null && _a !== void 0 ? _a : "default"}`) },
|
package/tabs/tabs.stories.js
CHANGED
|
@@ -16,31 +16,31 @@ function Default() {
|
|
|
16
16
|
react_1.default.createElement("div", null,
|
|
17
17
|
react_1.default.createElement("p", { className: "mb-4 text-gray-500" }, "Default"),
|
|
18
18
|
react_1.default.createElement(tabs_1.Tabs, null,
|
|
19
|
-
react_1.default.createElement(
|
|
20
|
-
react_1.default.createElement(
|
|
21
|
-
react_1.default.createElement(
|
|
22
|
-
react_1.default.createElement(
|
|
19
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 1 title", className: "grid h-12 w-56 place-items-center bg-red-300" }, "content of the Tab 1"),
|
|
20
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 2 title", className: "grid h-12 w-56 place-items-center bg-green-300" }, "content of the Tab 2"),
|
|
21
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 3 title", className: "grid h-12 w-56 place-items-center bg-amber-300" }, "content of the Tab 3"),
|
|
22
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 4 title", className: "grid h-12 w-56 place-items-center bg-gray-300" }, "content of the Tab 4"))),
|
|
23
23
|
react_1.default.createElement("div", null,
|
|
24
24
|
react_1.default.createElement("p", { className: "mb-4 text-gray-500" }, "Segmented"),
|
|
25
25
|
react_1.default.createElement(tabs_1.Tabs, { variant: "segmented" },
|
|
26
|
-
react_1.default.createElement(
|
|
27
|
-
react_1.default.createElement(
|
|
28
|
-
react_1.default.createElement(
|
|
29
|
-
react_1.default.createElement(
|
|
26
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 1 title", className: "grid h-12 w-56 place-items-center bg-red-300" }, "content of the Tab 1"),
|
|
27
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 2 title", className: "grid h-12 w-56 place-items-center bg-green-300" }, "content of the Tab 2"),
|
|
28
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 3 title", className: "grid h-12 w-56 place-items-center bg-amber-300" }, "content of the Tab 3"),
|
|
29
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 4 title", className: "grid h-12 w-56 place-items-center bg-gray-300" }, "content of the Tab 4")))),
|
|
30
30
|
react_1.default.createElement("div", { className: "w-[600px]" },
|
|
31
31
|
react_1.default.createElement("p", { className: "mb-4 text-gray-500" }, "Default grow"),
|
|
32
32
|
react_1.default.createElement(tabs_1.Tabs, { grow: true },
|
|
33
|
-
react_1.default.createElement(
|
|
34
|
-
react_1.default.createElement(
|
|
35
|
-
react_1.default.createElement(
|
|
36
|
-
react_1.default.createElement(
|
|
33
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 1 title", className: "grid h-12 w-56 place-items-center bg-red-300" }, "content of the Tab 1"),
|
|
34
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 2 title", className: "grid h-12 w-56 place-items-center bg-green-300" }, "content of the Tab 2"),
|
|
35
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 3 title", className: "grid h-12 w-56 place-items-center bg-amber-300" }, "content of the Tab 3"),
|
|
36
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 4 title", className: "grid h-12 w-56 place-items-center bg-gray-300" }, "content of the Tab 4"))),
|
|
37
37
|
react_1.default.createElement("div", { className: "w-[600px]" },
|
|
38
38
|
react_1.default.createElement("p", { className: "mb-4 text-gray-500" }, "Segmented grow"),
|
|
39
39
|
react_1.default.createElement(tabs_1.Tabs, { variant: "segmented", grow: true },
|
|
40
|
-
react_1.default.createElement(
|
|
41
|
-
react_1.default.createElement(
|
|
42
|
-
react_1.default.createElement(
|
|
43
|
-
react_1.default.createElement(
|
|
40
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 1 title", className: "grid h-12 w-56 place-items-center bg-red-300" }, "content of the Tab 1"),
|
|
41
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 2 title", className: "grid h-12 w-56 place-items-center bg-green-300" }, "content of the Tab 2"),
|
|
42
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 3 title", className: "grid h-12 w-56 place-items-center bg-amber-300" }, "content of the Tab 3"),
|
|
43
|
+
react_1.default.createElement(tabs_1.TabPanel, { tabTitle: "Tab 4 title", className: "grid h-12 w-56 place-items-center bg-gray-300" }, "content of the Tab 4")))));
|
|
44
44
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
45
45
|
react_1.default.createElement("div", { className: "light rounded bg-white p-8" }, testTabs),
|
|
46
46
|
react_1.default.createElement("div", { className: "dark rounded bg-gray-900 p-8 text-white" }, testTabs)));
|