ar-design 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/assest/css/alert/alert.css +63 -0
  2. package/dist/assest/css/alert/core/border.css +24 -0
  3. package/dist/assest/css/alert/core/color.css +28 -0
  4. package/dist/assest/css/ar-core.css +6 -0
  5. package/dist/assest/css/button/button.css +24 -1
  6. package/dist/assest/css/button/core/icon.css +2 -0
  7. package/dist/assest/css/button/core/shape.css +4 -2
  8. package/dist/assest/css/button/core/size.css +12 -0
  9. package/dist/assest/css/button/variant/text/animation.css +95 -0
  10. package/dist/assest/css/button/variant/text/core.css +97 -0
  11. package/dist/assest/css/css/alert/alert.css +63 -0
  12. package/dist/assest/css/css/alert/core/border.css +24 -0
  13. package/dist/assest/css/css/alert/core/color.css +28 -0
  14. package/dist/assest/css/css/ar-core.css +6 -0
  15. package/dist/assest/css/css/button/button.css +24 -1
  16. package/dist/assest/css/css/button/core/icon.css +2 -0
  17. package/dist/assest/css/css/button/core/shape.css +4 -2
  18. package/dist/assest/css/css/button/core/size.css +12 -0
  19. package/dist/assest/css/css/button/variant/text/animation.css +95 -0
  20. package/dist/assest/css/css/button/variant/text/core.css +97 -0
  21. package/dist/assest/css/css/divider/divider.css +5 -1
  22. package/dist/assest/css/css/layout/header.css +18 -0
  23. package/dist/assest/css/css/layout/layout.css +27 -0
  24. package/dist/assest/css/css/menu/core/open-or-close.css +5 -0
  25. package/dist/assest/css/css/menu/core/selected.css +3 -4
  26. package/dist/assest/css/css/menu/menu.css +57 -1
  27. package/dist/assest/css/css/syntax-highlighter/syntax-highlighter.css +57 -1
  28. package/dist/assest/css/css/typography/paragraph/core.css +1 -0
  29. package/dist/assest/css/css/typography/title/core.css +1 -0
  30. package/dist/assest/css/divider/divider.css +5 -1
  31. package/dist/assest/css/layout/header.css +18 -0
  32. package/dist/assest/css/layout/layout.css +27 -0
  33. package/dist/assest/css/menu/core/open-or-close.css +5 -0
  34. package/dist/assest/css/menu/core/selected.css +3 -4
  35. package/dist/assest/css/menu/menu.css +57 -1
  36. package/dist/assest/css/syntax-highlighter/syntax-highlighter.css +57 -1
  37. package/dist/assest/css/typography/paragraph/core.css +1 -0
  38. package/dist/assest/css/typography/title/core.css +1 -0
  39. package/dist/components/alert/Types.d.ts +9 -0
  40. package/dist/components/alert/Types.js +1 -0
  41. package/dist/components/alert/index.d.ts +5 -0
  42. package/dist/components/alert/index.js +60 -0
  43. package/dist/components/button/Types.d.ts +2 -1
  44. package/dist/components/button/index.js +5 -3
  45. package/dist/components/grid-system/column/Column.js +2 -0
  46. package/dist/components/layout/Aside.d.ts +4 -0
  47. package/dist/components/layout/Aside.js +12 -0
  48. package/dist/components/layout/Footer.d.ts +3 -0
  49. package/dist/components/layout/Footer.js +8 -0
  50. package/dist/components/layout/Header.d.ts +4 -0
  51. package/dist/components/layout/Header.js +11 -0
  52. package/dist/components/layout/Section.d.ts +4 -0
  53. package/dist/components/layout/Section.js +3 -0
  54. package/dist/components/layout/Types.d.ts +14 -0
  55. package/dist/components/layout/Types.js +1 -0
  56. package/dist/components/layout/index.d.ts +10 -0
  57. package/dist/components/layout/index.js +49 -0
  58. package/dist/components/menu/index.js +4 -1
  59. package/dist/components/syntax-highlighter/index.js +4 -1
  60. package/dist/components/typography/paragraph/Paragraph.js +1 -0
  61. package/dist/components/typography/title/Title.js +1 -0
  62. package/dist/index.d.ts +4 -6
  63. package/dist/index.js +4 -6
  64. package/dist/libs/core/application/contexts/Layout.d.ts +16 -0
  65. package/dist/libs/core/application/contexts/Layout.js +8 -0
  66. package/dist/libs/core/application/hooks/useLayout.d.ts +13 -0
  67. package/dist/libs/core/application/hooks/useLayout.js +4 -0
  68. package/package.json +1 -1
  69. package/dist/assest/css/button/core/core.css +0 -17
  70. package/dist/assest/css/css/button/core/core.css +0 -17
  71. package/dist/assest/css/css/divider/core/core.css +0 -4
  72. package/dist/assest/css/css/menu/core/core.css +0 -47
  73. package/dist/assest/css/css/syntax-highlighter/core/core.css +0 -55
  74. package/dist/assest/css/divider/core/core.css +0 -4
  75. package/dist/assest/css/menu/core/core.css +0 -47
  76. package/dist/assest/css/syntax-highlighter/core/core.css +0 -55
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import React from "react";
3
+ import Menu from "../menu";
4
+ import useLayout from "../../libs/core/application/hooks/useLayout";
5
+ const Aside = ({ menu }) => {
6
+ // hooks
7
+ const { options } = useLayout();
8
+ return (options?.aside.active && (React.createElement("aside", null,
9
+ React.createElement(Menu, { menu: menu, variant: "vertical" }))));
10
+ };
11
+ Aside.displayName = "Layout.Aside";
12
+ export default Aside;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const Footer: React.FC;
3
+ export default Footer;
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import React from "react";
3
+ const Footer = () => {
4
+ // return <footer>Copyright {new Date().getFullYear()} | Powered By AR Design</footer>;
5
+ return React.createElement("footer", null);
6
+ };
7
+ Footer.displayName = "Layout.Footer";
8
+ export default Footer;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { HeaderProps } from "./Types";
3
+ declare const Header: React.FC<HeaderProps>;
4
+ export default Header;
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import React from "react";
3
+ import Menu from "../menu";
4
+ const Header = ({ logo, menu }) => {
5
+ return (React.createElement("header", { className: "ar-header" },
6
+ React.createElement("div", { className: "ar-header-with-wrap" },
7
+ typeof logo === "string" ? React.createElement("h1", null, logo) : logo,
8
+ React.createElement(Menu, { menu: menu, variant: "horizontal" }))));
9
+ };
10
+ Header.displayName = "Layout.Header";
11
+ export default Header;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { SectionProps } from "./Types";
3
+ declare const Section: React.FC<SectionProps>;
4
+ export default Section;
@@ -0,0 +1,3 @@
1
+ const Section = ({ children }) => children;
2
+ Section.displayName = "Layout.Section";
3
+ export default Section;
@@ -0,0 +1,14 @@
1
+ import { MenuProps } from "../menu/Types";
2
+ export type LayoutProps = {
3
+ children: React.ReactNode;
4
+ };
5
+ export type HeaderProps = {
6
+ logo: string | React.JSX.Element;
7
+ menu: MenuProps[];
8
+ };
9
+ export type AsideProps = {
10
+ menu: MenuProps[];
11
+ };
12
+ export type SectionProps = {
13
+ children: React.ReactNode;
14
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { AsideProps, HeaderProps, LayoutProps, SectionProps } from "./Types";
3
+ import "../../assest/css/layout/layout.css";
4
+ declare const Layout: React.FC<LayoutProps> & {
5
+ Header: React.FC<HeaderProps>;
6
+ Aside: React.FC<AsideProps>;
7
+ Section: React.FC<SectionProps>;
8
+ Footer: React.FC;
9
+ };
10
+ export default Layout;
@@ -0,0 +1,49 @@
1
+ "use client";
2
+ import React, { useEffect, useState } from "react";
3
+ import Footer from "./Footer";
4
+ import "../../assest/css/layout/layout.css";
5
+ import Header from "./Header";
6
+ import Aside from "./Aside";
7
+ import Section from "./Section";
8
+ import { LayoutProvider } from "../../libs/core/application/contexts/Layout";
9
+ const Layout = ({ children }) => {
10
+ // states
11
+ const [layout, setLayout] = useState();
12
+ // effects
13
+ useEffect(() => {
14
+ React.Children.forEach(children, (child) => {
15
+ if (!React.isValidElement(child))
16
+ return;
17
+ const _type = child.type;
18
+ switch (_type.displayName) {
19
+ case "Layout.Header":
20
+ setLayout((layout) => ({ ...layout, header: child }));
21
+ break;
22
+ case "Layout.Aside":
23
+ setLayout((layout) => ({ ...layout, main: { ...layout?.main, aside: child } }));
24
+ break;
25
+ case "Layout.Section":
26
+ setLayout((layout) => ({ ...layout, main: { ...layout?.main, section: child } }));
27
+ break;
28
+ case "Layout.Footer":
29
+ setLayout((layout) => ({ ...layout, footer: child }));
30
+ break;
31
+ default:
32
+ break;
33
+ }
34
+ });
35
+ }, [children]);
36
+ return (React.createElement("div", { className: "ar-layout" },
37
+ React.createElement(LayoutProvider, null,
38
+ React.createElement("header", null, layout?.header),
39
+ React.createElement("main", null,
40
+ layout?.main?.aside,
41
+ React.createElement("section", null, layout?.main?.section)),
42
+ React.createElement("footer", null, layout?.footer))));
43
+ };
44
+ Layout.Header = Header;
45
+ Layout.Aside = Aside;
46
+ Layout.Section = Section;
47
+ Layout.Footer = Footer;
48
+ Layout.displayName = "Layout";
49
+ export default Layout;
@@ -85,7 +85,10 @@ const Menu = ({ menu, variant = "vertical", ...attributes }) => {
85
85
  _className_groupTitle += " ar-angle-down";
86
86
  }
87
87
  // Eğer seçili olan menüyse "selected" sınıfını ekler.
88
- if (selectedMenu.length > 0 && selectedMenu.includes(item) && item.type !== "group")
88
+ if (selectedMenu.length > 0 &&
89
+ selectedMenu.includes(item) &&
90
+ item.type !== "group" &&
91
+ variant !== "horizontal")
89
92
  _className_li += " selected";
90
93
  return (React.createElement("li", { key: index, className: _className_li, onClick: (event) => handleOnClick(event, item, variant, null, setSelectedMenu) },
91
94
  item.type === "divider" ? (React.createElement(Divider, null)) : (React.createElement("div", { className: _className_groupTitle }, item.render)),
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import React, { useEffect, useRef, useState } from "react";
2
3
  import Parser from "./classes/Parser";
3
4
  import Compiler from "./classes/Compiler";
@@ -35,7 +36,9 @@ const SyntaxHighlighter = ({ children, position = "left" }) => {
35
36
  React.createElement("div", { className: "ar-syntax" },
36
37
  React.createElement("div", { ref: _div, className: `preview ${position}` }, children),
37
38
  React.createElement("div", { className: "ar-syntax-button-group" },
38
- React.createElement(Button, { variant: "outlined", color: "secondary", shape: "square", onClick: () => setCodePanelIsOpen((x) => !x) }, codePanelIsOpen ? "<>" : "</>")),
39
+ React.createElement(Button, { variant: "outlined", _type: "dark", border: {
40
+ style: "solid",
41
+ }, size: "small", onClick: () => setCodePanelIsOpen((x) => !x) }, codePanelIsOpen ? "Close Code" : "Open Code")),
39
42
  React.createElement("pre", { className: `pre ${!codePanelIsOpen ? "hidden" : "visible"}` },
40
43
  React.createElement("code", { ref: _code })))));
41
44
  };
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import React, { useRef } from "react";
2
3
  const Paragraph = ({ children, color, align = "left", upperCase = false }) => {
3
4
  // refs
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import React, { useRef } from "react";
2
3
  const Title = ({ children, Level, align = "left", size, upperCase = false }) => {
3
4
  // refs
package/dist/index.d.ts CHANGED
@@ -1,15 +1,13 @@
1
1
  import "./assest/css/ar-core.css";
2
+ import Alert from "./components/alert";
2
3
  import Button from "./components/button";
3
- export { Button };
4
4
  import Menu from "./components/menu";
5
- export { Menu };
6
5
  import Grid from "./components/grid-system";
7
- export { Grid };
8
6
  import Typography from "./components/typography";
9
- export { Typography };
10
7
  import SyntaxHighlighter from "./components/syntax-highlighter";
11
- export { SyntaxHighlighter };
12
8
  import Divider from "./components/divider";
13
- export { Divider };
9
+ import Layout from "./components/layout";
10
+ import useLayout from "./libs/core/application/hooks/useLayout";
14
11
  import type { MenuProps } from "./components/menu/Types";
12
+ export { Alert, Button, Menu, Grid, Typography, SyntaxHighlighter, Divider, Layout, useLayout };
15
13
  export type { MenuProps };
package/dist/index.js CHANGED
@@ -1,13 +1,11 @@
1
1
  import "./assest/css/ar-core.css";
2
+ import Alert from "./components/alert";
2
3
  import Button from "./components/button";
3
- export { Button };
4
4
  import Menu from "./components/menu";
5
- export { Menu };
6
5
  import Grid from "./components/grid-system";
7
- export { Grid };
8
6
  import Typography from "./components/typography";
9
- export { Typography };
10
7
  import SyntaxHighlighter from "./components/syntax-highlighter";
11
- export { SyntaxHighlighter };
12
8
  import Divider from "./components/divider";
13
- export { Divider };
9
+ import Layout from "./components/layout";
10
+ import useLayout from "./libs/core/application/hooks/useLayout";
11
+ export { Alert, Button, Menu, Grid, Typography, SyntaxHighlighter, Divider, Layout, useLayout };
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ type LayoutOptions = {
3
+ aside: {
4
+ active: boolean;
5
+ };
6
+ };
7
+ type LayoutContextProps = {
8
+ options: LayoutOptions;
9
+ setOptions: React.Dispatch<React.SetStateAction<LayoutOptions>>;
10
+ };
11
+ type LayoutProviderProps = {
12
+ children: React.ReactNode;
13
+ };
14
+ declare const LayoutContext: React.Context<Partial<LayoutContextProps>>;
15
+ declare const LayoutProvider: ({ children }: LayoutProviderProps) => React.JSX.Element;
16
+ export { LayoutContext, LayoutProvider };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import React, { createContext, useState } from "react";
3
+ const LayoutContext = createContext({});
4
+ const LayoutProvider = ({ children }) => {
5
+ const [options, setOptions] = useState({ aside: { active: false } });
6
+ return (React.createElement(LayoutContext.Provider, { value: { options, setOptions } }, children));
7
+ };
8
+ export { LayoutContext, LayoutProvider };
@@ -0,0 +1,13 @@
1
+ declare const useLayout: () => Partial<{
2
+ options: {
3
+ aside: {
4
+ active: boolean;
5
+ };
6
+ };
7
+ setOptions: import("react").Dispatch<import("react").SetStateAction<{
8
+ aside: {
9
+ active: boolean;
10
+ };
11
+ }>>;
12
+ }>;
13
+ export default useLayout;
@@ -0,0 +1,4 @@
1
+ import { useContext } from "react";
2
+ import { LayoutContext } from "../contexts/Layout";
3
+ const useLayout = () => useContext(LayoutContext);
4
+ export default useLayout;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ar-design",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,17 +0,0 @@
1
- .ar-button {
2
- position: relative;
3
- height: 2.5rem;
4
- padding: 0 1rem;
5
- border: none;
6
- border-radius: var(--border-radius-sm);
7
- cursor: pointer;
8
- transition: background-color 150ms, border 150ms, color 150ms ease-in-out;
9
- overflow: hidden;
10
- }
11
- .ar-button.disabled {
12
- cursor: no-drop;
13
- }
14
-
15
- .ar-button.max-width {
16
- width: 100%;
17
- }
@@ -1,17 +0,0 @@
1
- .ar-button {
2
- position: relative;
3
- height: 2.5rem;
4
- padding: 0 1rem;
5
- border: none;
6
- border-radius: var(--border-radius-sm);
7
- cursor: pointer;
8
- transition: background-color 150ms, border 150ms, color 150ms ease-in-out;
9
- overflow: hidden;
10
- }
11
- .ar-button.disabled {
12
- cursor: no-drop;
13
- }
14
-
15
- .ar-button.max-width {
16
- width: 100%;
17
- }
@@ -1,4 +0,0 @@
1
- .ar-divider {
2
- border: none;
3
- border-bottom: solid 1px var(--gray-200);
4
- }
@@ -1,47 +0,0 @@
1
- @import url("./selected.css");
2
- @import url("./open-or-close.css");
3
-
4
- .ar-menu {
5
- background-color: var(--white);
6
- }
7
- .ar-menu ul {
8
- margin: 0;
9
- padding: 0;
10
- list-style: none;
11
- }
12
- .ar-menu ul li:last-child {
13
- padding-bottom: 0;
14
- }
15
- .ar-menu ul li ul {
16
- margin-left: 0.5rem;
17
- padding-left: 0.5rem;
18
- }
19
- .ar-menu > .ar-menu-list {
20
- display: flex;
21
- }
22
- .ar-menu .ar-menu-list-item-group-item-title {
23
- display: flex;
24
- align-items: center;
25
- height: 2.5rem;
26
- padding-left: 1rem;
27
- user-select: none;
28
- }
29
- .ar-menu .ar-menu-list-item-group-item-title:not(.group) > * {
30
- display: flex;
31
- align-items: center;
32
- width: 100%;
33
- height: 100%;
34
- }
35
- .ar-menu .ar-menu-list-item-group-item-title:not(.group):hover {
36
- background-color: var(--gray-100);
37
- }
38
- .ar-menu .ar-menu-list-item-group-item-title.selection-item {
39
- background-color: red;
40
- }
41
- .ar-menu .ar-menu-list-item-group-item-title.group {
42
- margin-left: 1rem;
43
- padding-left: 0;
44
- border-radius: 0;
45
- border-bottom: solid 1px var(--gray-100);
46
- color: var(--gray-500);
47
- }
@@ -1,55 +0,0 @@
1
- .ar-syntax {
2
- display: flex;
3
- flex-direction: column;
4
- border: solid 1px var(--gray-200);
5
- border-radius: var(--border-radius-lg);
6
- overflow: hidden;
7
- }
8
- .ar-syntax > .preview {
9
- position: relative;
10
- display: flex;
11
- align-items: center;
12
- gap: 1rem;
13
- background-color: var(--white);
14
- padding: 1rem;
15
- }
16
-
17
- .ar-syntax > .preview.left {
18
- justify-content: left;
19
- }
20
- .ar-syntax > .preview.center {
21
- justify-content: center;
22
- }
23
- .ar-syntax > .preview.right {
24
- justify-content: right;
25
- }
26
-
27
- .ar-syntax > .ar-syntax-button-group {
28
- position: relative;
29
- display: flex;
30
- justify-content: center;
31
- align-items: center;
32
- padding: 0.5rem 0;
33
- border: dashed 1px transparent;
34
- border-top-color: var(--gray-200);
35
- }
36
-
37
- .ar-syntax > .pre {
38
- margin: 0;
39
- padding: 1rem;
40
- border: dashed 1px transparent;
41
- border-top-color: var(--gray-200);
42
- overflow-x: auto;
43
- }
44
- .ar-syntax > .pre.hidden {
45
- display: none;
46
- }
47
- .ar-syntax > .pre.visible {
48
- display: block;
49
- }
50
- .ar-syntax > .pre > code {
51
- display: flex;
52
- flex-direction: column;
53
- gap: 0.5rem 0;
54
- font-family: var(--jetBrainsMonoRegular) !important;
55
- }
@@ -1,4 +0,0 @@
1
- .ar-divider {
2
- border: none;
3
- border-bottom: solid 1px var(--gray-200);
4
- }
@@ -1,47 +0,0 @@
1
- @import url("./selected.css");
2
- @import url("./open-or-close.css");
3
-
4
- .ar-menu {
5
- background-color: var(--white);
6
- }
7
- .ar-menu ul {
8
- margin: 0;
9
- padding: 0;
10
- list-style: none;
11
- }
12
- .ar-menu ul li:last-child {
13
- padding-bottom: 0;
14
- }
15
- .ar-menu ul li ul {
16
- margin-left: 0.5rem;
17
- padding-left: 0.5rem;
18
- }
19
- .ar-menu > .ar-menu-list {
20
- display: flex;
21
- }
22
- .ar-menu .ar-menu-list-item-group-item-title {
23
- display: flex;
24
- align-items: center;
25
- height: 2.5rem;
26
- padding-left: 1rem;
27
- user-select: none;
28
- }
29
- .ar-menu .ar-menu-list-item-group-item-title:not(.group) > * {
30
- display: flex;
31
- align-items: center;
32
- width: 100%;
33
- height: 100%;
34
- }
35
- .ar-menu .ar-menu-list-item-group-item-title:not(.group):hover {
36
- background-color: var(--gray-100);
37
- }
38
- .ar-menu .ar-menu-list-item-group-item-title.selection-item {
39
- background-color: red;
40
- }
41
- .ar-menu .ar-menu-list-item-group-item-title.group {
42
- margin-left: 1rem;
43
- padding-left: 0;
44
- border-radius: 0;
45
- border-bottom: solid 1px var(--gray-100);
46
- color: var(--gray-500);
47
- }
@@ -1,55 +0,0 @@
1
- .ar-syntax {
2
- display: flex;
3
- flex-direction: column;
4
- border: solid 1px var(--gray-200);
5
- border-radius: var(--border-radius-lg);
6
- overflow: hidden;
7
- }
8
- .ar-syntax > .preview {
9
- position: relative;
10
- display: flex;
11
- align-items: center;
12
- gap: 1rem;
13
- background-color: var(--white);
14
- padding: 1rem;
15
- }
16
-
17
- .ar-syntax > .preview.left {
18
- justify-content: left;
19
- }
20
- .ar-syntax > .preview.center {
21
- justify-content: center;
22
- }
23
- .ar-syntax > .preview.right {
24
- justify-content: right;
25
- }
26
-
27
- .ar-syntax > .ar-syntax-button-group {
28
- position: relative;
29
- display: flex;
30
- justify-content: center;
31
- align-items: center;
32
- padding: 0.5rem 0;
33
- border: dashed 1px transparent;
34
- border-top-color: var(--gray-200);
35
- }
36
-
37
- .ar-syntax > .pre {
38
- margin: 0;
39
- padding: 1rem;
40
- border: dashed 1px transparent;
41
- border-top-color: var(--gray-200);
42
- overflow-x: auto;
43
- }
44
- .ar-syntax > .pre.hidden {
45
- display: none;
46
- }
47
- .ar-syntax > .pre.visible {
48
- display: block;
49
- }
50
- .ar-syntax > .pre > code {
51
- display: flex;
52
- flex-direction: column;
53
- gap: 0.5rem 0;
54
- font-family: var(--jetBrainsMonoRegular) !important;
55
- }