namirasoft-site-react 1.2.48 → 1.2.50

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/App.js CHANGED
@@ -2,9 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import './App.css';
3
3
  import 'bootstrap/dist/css/bootstrap.min.css';
4
4
  import { NSButtonRed } from './components/NSButtonRed';
5
- import { NSLayout, NSPagination } from './main';
6
- import { NSBoxSection } from './components/NSBoxSection';
5
+ import { NSBoxSection, NSLayout, NSPagination } from './main';
7
6
  export function App() {
8
- return (_jsx("div", Object.assign({ className: "App" }, { children: _jsxs(NSLayout, Object.assign({ scope: 'Namirasoft SOP console', logo: '' }, { children: [_jsxs("div", Object.assign({ className: 'my-4 container' }, { children: [_jsx(NSBoxSection, { image: 'src/assets/images/position-down-vector.png', description: "", detail: '#' }), _jsx(NSButtonRed, { title: 'Delete', onClick: () => { } }), _jsx(NSPagination, { page: 1, size: 25 })] })), "asdasd"] })) })));
7
+ return (_jsx("div", Object.assign({ className: "App" }, { children: _jsxs(NSLayout, Object.assign({ scope: 'Namirasoft SOP console', logo: '' }, { children: [_jsxs("div", Object.assign({ className: 'my-4 container' }, { children: [_jsx(NSButtonRed, { title: 'Delete', onClick: () => { } }), _jsx(NSPagination, { page: 1, size: 25 })] })), _jsx(NSBoxSection, { detail: 'detail', image: '', description: 'desc' })] })) })));
9
8
  }
10
9
  //# sourceMappingURL=App.js.map
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,sCAAsC,CAAC;AAc9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,UAAU,GAAG;IAyBf,OAAO,CACH,4BAAK,SAAS,EAAC,KAAK,gBAChB,MAAC,QAAQ,kBAAC,KAAK,EAAC,wBAAwB,EAAC,IAAI,EAAC,EAAE,iBAC5C,6BAAK,SAAS,EAAC,gBAAgB,iBAC3B,KAAC,YAAY,IAAC,KAAK,EAAC,4CAA4C,EAAC,WAAW,EAAC,EAAE,EAAC,MAAM,EAAC,GAAG,GAAG,EAe7F,KAAC,WAAW,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,EAClD,KAAC,YAAY,IAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,KACjC,eAEC,IACT,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,sCAAsC,CAAC;AAc9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI9D,MAAM,UAAU,GAAG;IAyBf,OAAO,CACH,4BAAK,SAAS,EAAC,KAAK,gBAChB,MAAC,QAAQ,kBAAC,KAAK,EAAC,wBAAwB,EAAC,IAAI,EAAC,EAAE,iBAC5C,6BAAK,SAAS,EAAC,gBAAgB,iBAgB3B,KAAC,WAAW,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,EAClD,KAAC,YAAY,IAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,KACjC,EAEN,KAAC,YAAY,IAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,EAAC,EAAE,EAAC,WAAW,EAAC,MAAM,GAAG,KACrD,IACT,CACT,CAAC;AACN,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ interface IProps {
3
+ image: string;
4
+ title: string;
5
+ list: string;
6
+ percent: string | number;
7
+ information: string | number;
8
+ }
9
+ interface IState {
10
+ image: string;
11
+ title: string;
12
+ list: string;
13
+ percent: string | number;
14
+ information: string | number;
15
+ }
16
+ export declare class NSBoxPosition extends React.Component<IProps, IState> {
17
+ constructor(props: IProps);
18
+ render(): import("react/jsx-runtime").JSX.Element;
19
+ }
20
+ export {};
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Style from "./NSBoxPosition.module.css";
4
+ import React from "react";
5
+ export class NSBoxPosition extends React.Component {
6
+ constructor(props) {
7
+ super(props);
8
+ this.state = { title: props.title, image: props.image, list: props.list, percent: props.percent, information: props.information };
9
+ }
10
+ render() {
11
+ return (_jsx("div", Object.assign({ className: Style.position_box_contain }, { children: _jsxs("div", Object.assign({ className: Style.position_box_layout }, { children: [_jsx("img", { className: "rounded", src: this.state.image, alt: "wordpress", width: 326, height: 220 }), _jsxs("div", Object.assign({ className: Style.position_box_information }, { children: [_jsx("h3", { children: this.state.title }), _jsx("h4", { children: "Skills :" }), _jsx("ul", { children: _jsxs("li", { children: [this.state.list, _jsx("span", { children: this.props.percent })] }) }), _jsx("h4", { children: "Or" }), _jsx("ul", { children: _jsxs("li", { children: [this.state.list, _jsx("span", { children: this.props.percent })] }) }), _jsx("h3", { children: "Responsibility :" }), _jsx("p", { children: this.state.information })] }))] })) })));
12
+ }
13
+ }
14
+ //# sourceMappingURL=NSBoxPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NSBoxPosition.js","sourceRoot":"","sources":["../../src/components/NSBoxPosition.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,KAAK,MAAM,4BAA4B,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAyB;IAG9D,YAAY,KAAa;QAErB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IACtI,CAAC;IAEQ,MAAM;QAEX,OAAO,CACH,4BAAK,SAAS,EAAE,KAAK,CAAC,oBAAoB,gBACtC,6BAAK,SAAS,EAAE,KAAK,CAAC,mBAAmB,iBACrC,cAAK,SAAS,EAAC,SAAS,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAQ,EAC/F,6BAAK,SAAS,EAAE,KAAK,CAAC,wBAAwB,iBAC1C,uBAAK,IAAI,CAAC,KAAK,CAAC,KAAK,GAAM,EAC3B,oCAAiB,EACjB,uBACI,yBAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,yBAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAQ,IAAK,GAC1D,EACL,8BAAW,EACX,uBACI,yBAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,yBAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAQ,IAAK,GAC1D,EACL,4CAAyB,EACzB,sBAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAK,KAC7B,KACJ,IACJ,CACT,CAAA;IACL,CAAC;CACJ"}
@@ -0,0 +1,81 @@
1
+ .position_box_contain {
2
+ width: 100%;
3
+ padding: 0 16px;
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ }
8
+
9
+ .position_box_layout {
10
+ display: flex;
11
+ flex-direction: column;
12
+ justify-content: center;
13
+ align-items: center;
14
+ background-color: rgba(20, 27, 92, 0.3);
15
+ width: 358px;
16
+ height: auto;
17
+ border-radius: 8px;
18
+ text-align: center;
19
+ gap: 16px;
20
+ margin: 12px 0;
21
+ padding: 16px 0;
22
+ }
23
+
24
+ .position_box_information {
25
+ display: flex;
26
+ flex-direction: column;
27
+ justify-content: left;
28
+ align-items: start;
29
+ text-align: left;
30
+ padding: 0 16px;
31
+ color: rgba(20, 27, 92, 1);
32
+ }
33
+
34
+ .position_box_information h3 {
35
+ font-size: 24px;
36
+ font-weight: 700;
37
+ }
38
+
39
+ .position_box_information h4 {
40
+ font-size: 16px;
41
+ font-weight: bold;
42
+ font-weight: 600;
43
+ }
44
+
45
+ .position_box_information ul {
46
+ width: 100%;
47
+ }
48
+
49
+ .position_box_information li {
50
+ text-decoration: underline;
51
+ }
52
+
53
+ .position_box_information span {
54
+ float: right;
55
+ }
56
+
57
+ @media only screen and (min-width:768px) {
58
+ .position_box_layout {
59
+ display: flex;
60
+ flex-direction: row;
61
+ justify-content: left;
62
+ width: 100%;
63
+ height: auto;
64
+ }
65
+
66
+ .position_box_contain {
67
+ padding: 0 48px;
68
+ display: flex;
69
+ justify-content: left;
70
+ }
71
+
72
+ .position_box_layout img {
73
+ width: 408px;
74
+ height: 276px;
75
+ padding: 0 16px;
76
+ }
77
+
78
+ .position_box_information {
79
+ line-height: 16px;
80
+ }
81
+ }
@@ -8,11 +8,13 @@ interface IState {
8
8
  detail: string;
9
9
  image: string;
10
10
  description: string;
11
+ toggle: boolean;
11
12
  }
12
13
  export declare class NSBoxSection extends React.Component<IProps, IState> {
13
14
  constructor(props: IProps);
14
15
  setTitle(description: string): void;
15
16
  setHRef(detail: string): void;
17
+ setToggle(toggle: boolean): void;
16
18
  render(): import("react/jsx-runtime").JSX.Element;
17
19
  }
18
20
  export {};
@@ -1,11 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import Style from "./NSBoxSection.module.css";
4
3
  import React from "react";
5
4
  export class NSBoxSection extends React.Component {
6
5
  constructor(props) {
7
6
  super(props);
8
- this.state = { detail: props.detail, image: props.image, description: props.description };
7
+ this.state = { detail: props.detail, image: props.image, description: props.description, toggle: true };
9
8
  }
10
9
  setTitle(description) {
11
10
  this.setState({ description });
@@ -13,8 +12,17 @@ export class NSBoxSection extends React.Component {
13
12
  setHRef(detail) {
14
13
  this.setState({ detail });
15
14
  }
15
+ setToggle(toggle) {
16
+ this.setState({ toggle });
17
+ }
16
18
  render() {
17
- return (_jsxs("div", Object.assign({ className: Style.position__layout }, { children: [_jsx("img", { className: "rounded", src: this.state.image, alt: "wordpress", width: 326, height: 220 }), _jsx("h3", { children: this.state.description }), _jsxs("h4", { children: [this.state.detail, _jsx("img", { className: "mx-2", src: '/assets/images/position-down-vector.png', width: 16, height: 16 })] })] })));
19
+ return (_jsx("div", Object.assign({ className: 'position-contain' }, { children: _jsxs("div", Object.assign({ className: "position-layout" }, { children: [_jsx("img", { className: "rounded", src: this.state.image, alt: "wordpress", width: 326, height: 220 }), _jsxs("div", Object.assign({ className: 'position-information' }, { children: [_jsx("h3", Object.assign({ className: 'position-title', style: { display: this.state.toggle ? 'block' : 'none' } }, { children: "WordPress" })), _jsx("a", Object.assign({ href: "", onClick: (e) => {
20
+ this.setState({ toggle: !this.state.toggle });
21
+ e.preventDefault();
22
+ } }, { children: _jsxs("h4", Object.assign({ className: 'position-readmore', style: { display: this.state.toggle ? 'block' : 'none' } }, { children: ["Read More", _jsx("img", { className: "mx-2", src: '/assets/images/position-down-vector.png', alt: "show-more", width: 16, height: 16 })] })) })), _jsxs("ul", Object.assign({ className: 'position-list', style: { display: this.state.toggle ? 'none' : 'block' } }, { children: [_jsx("li", { children: "Frontend Programming" }), _jsx("li", { children: "Backend Programming" })] })), _jsx("a", Object.assign({ href: "", onClick: (e) => {
23
+ this.setState({ toggle: !this.state.toggle });
24
+ e.preventDefault();
25
+ } }, { children: _jsxs("h4", Object.assign({ style: { display: this.state.toggle ? 'none' : 'block' } }, { children: ["Read Less", _jsx("img", { className: "mx-2", src: '/assets/images/position-down-vector.png', alt: "show-more", style: { transform: "rotate(180deg" }, width: 16, height: 16 })] })) }))] }))] })) })));
18
26
  }
19
27
  }
20
28
  //# sourceMappingURL=NSBoxSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSBoxSection.js","sourceRoot":"","sources":["../../src/components/NSBoxSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,KAAK,MAAM,2BAA2B,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,OAAO,YAAa,SAAQ,KAAK,CAAC,SAAyB;IAE7D,YAAY,KAAa;QAErB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9F,CAAC;IACD,QAAQ,CAAC,WAAmB;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,MAAc;QAElB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;IACQ,MAAM;QAEX,OAAO,CACH,6BAAK,SAAS,EAAE,KAAK,CAAC,gBAAgB,iBAClC,cAAK,SAAS,EAAC,SAAS,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAQ,EAC/F,uBAAK,IAAI,CAAC,KAAK,CAAC,WAAW,GAAM,EACjC,yBAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,cAAK,SAAS,EAAC,MAAM,EAAC,GAAG,EAAC,yCAAyC,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAQ,IAAK,KAC1H,CACV,CAAA;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"NSBoxSection.js","sourceRoot":"","sources":["../../src/components/NSBoxSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,MAAM,OAAO,CAAC;AAiB1B,MAAM,OAAO,YAAa,SAAQ,KAAK,CAAC,SAAyB;IAG7D,YAAY,KAAa;QAErB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5G,CAAC;IACD,QAAQ,CAAC,WAAmB;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,MAAc;QAElB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,CAAC,MAAe;QAErB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEQ,MAAM;QAEX,OAAO,CACH,4BAAK,SAAS,EAAC,kBAAkB,gBAC7B,6BAAK,SAAS,EAAC,iBAAiB,iBAC5B,cAAK,SAAS,EAAC,SAAS,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAQ,EAC/F,6BAAK,SAAS,EAAC,sBAAsB,iBACjC,2BAAI,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,+BAAgB,EACvG,0BAAG,IAAI,EAAC,EAAE,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oCAEtB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;oCAC7C,CAAC,CAAC,cAAc,EAAE,CAAA;gCACtB,CAAC,gBACG,4BAAI,SAAS,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,8BAAY,cAAK,SAAS,EAAC,MAAM,EAAC,GAAG,EAAC,yCAAyC,EAAC,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAQ,KAAK,IAC5N,EACJ,4BAAI,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,iBAClF,gDAA6B,EAC7B,+CAA4B,KAC3B,EACL,0BAAG,IAAI,EAAC,EAAE,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oCAEtB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;oCAC7C,CAAC,CAAC,cAAc,EAAE,CAAA;gCACtB,CAAC,gBACG,4BAAI,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,8BAAY,cAAK,SAAS,EAAC,MAAM,EAAC,GAAG,EAAC,yCAAyC,EAAC,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAQ,KAAK,IACrO,KACF,KACH,IACL,CACT,CAAA;IACL,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "namirasoft-site-react",
3
- "version": "1.2.48",
3
+ "version": "1.2.50",
4
4
  "main": "./dist/main.js",
5
5
  "types": "./dist/main.d.ts",
6
6
  "dependencies": {
7
7
  "@types/node": "^20.11.24",
8
- "@types/react": "^18.2.61",
8
+ "@types/react": "^18.2.62",
9
9
  "@types/react-dom": "^18.2.19",
10
10
  "antd": "^5.15.0",
11
11
  "bootstrap": "^5.3.3",
12
12
  "link-react": "^3.0.0",
13
13
  "namirasoft-api-link": "^1.2.3",
14
- "namirasoft-core": "^1.2.5",
14
+ "namirasoft-core": "^1.2.13",
15
15
  "path-browserify": "^1.0.1",
16
16
  "react": "^18.2.0",
17
17
  "react-app-rewired": "^2.2.1",
package/src/App.tsx CHANGED
@@ -16,8 +16,9 @@ import 'bootstrap/dist/css/bootstrap.min.css';
16
16
  import { NSButtonRed } from './components/NSButtonRed';
17
17
  // import { NSSelectBox } from './components/NSSelectBox';
18
18
  // import { type SelectProps } from 'antd';
19
- import { NSLayout, NSPagination } from './main';
20
- import { NSBoxSection } from './components/NSBoxSection';
19
+ import { NSBoxSection, NSLayout, NSPagination } from './main';
20
+ // import { NSBoxPosition } from './components/NSBoxPosition';
21
+ // import { NSBoxSection } from './components/NSBoxSection';
21
22
 
22
23
  export function App()
23
24
  {
@@ -48,7 +49,7 @@ export function App()
48
49
  <div className="App">
49
50
  <NSLayout scope='Namirasoft SOP console' logo=''>
50
51
  <div className='my-4 container'>
51
- <NSBoxSection image='src/assets/images/position-down-vector.png' description="" detail='#' />
52
+ {/* <NSBoxSection image='src/assets/images/position-down-vector.png' description="" detail='#' /> */}
52
53
  {/* <NSInputText title='Text' />
53
54
  <NSInputInteger title='Integer' />
54
55
  <NSInputFloat title='Floating Point' />
@@ -66,7 +67,8 @@ export function App()
66
67
  <NSButtonRed title='Delete' onClick={() => { }} />
67
68
  <NSPagination page={1} size={25} />
68
69
  </div>
69
- asdasd
70
+ {/* <NSBoxPosition image='' title='' list='' percent='' information='' /> */}
71
+ <NSBoxSection detail='detail' image='' description='desc' />
70
72
  </NSLayout>
71
73
  </div>
72
74
  );
@@ -0,0 +1,81 @@
1
+ .position_box_contain {
2
+ width: 100%;
3
+ padding: 0 16px;
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ }
8
+
9
+ .position_box_layout {
10
+ display: flex;
11
+ flex-direction: column;
12
+ justify-content: center;
13
+ align-items: center;
14
+ background-color: rgba(20, 27, 92, 0.3);
15
+ width: 358px;
16
+ height: auto;
17
+ border-radius: 8px;
18
+ text-align: center;
19
+ gap: 16px;
20
+ margin: 12px 0;
21
+ padding: 16px 0;
22
+ }
23
+
24
+ .position_box_information {
25
+ display: flex;
26
+ flex-direction: column;
27
+ justify-content: left;
28
+ align-items: start;
29
+ text-align: left;
30
+ padding: 0 16px;
31
+ color: rgba(20, 27, 92, 1);
32
+ }
33
+
34
+ .position_box_information h3 {
35
+ font-size: 24px;
36
+ font-weight: 700;
37
+ }
38
+
39
+ .position_box_information h4 {
40
+ font-size: 16px;
41
+ font-weight: bold;
42
+ font-weight: 600;
43
+ }
44
+
45
+ .position_box_information ul {
46
+ width: 100%;
47
+ }
48
+
49
+ .position_box_information li {
50
+ text-decoration: underline;
51
+ }
52
+
53
+ .position_box_information span {
54
+ float: right;
55
+ }
56
+
57
+ @media only screen and (min-width:768px) {
58
+ .position_box_layout {
59
+ display: flex;
60
+ flex-direction: row;
61
+ justify-content: left;
62
+ width: 100%;
63
+ height: auto;
64
+ }
65
+
66
+ .position_box_contain {
67
+ padding: 0 48px;
68
+ display: flex;
69
+ justify-content: left;
70
+ }
71
+
72
+ .position_box_layout img {
73
+ width: 408px;
74
+ height: 276px;
75
+ padding: 0 16px;
76
+ }
77
+
78
+ .position_box_information {
79
+ line-height: 16px;
80
+ }
81
+ }
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import Style from "./NSBoxPosition.module.css";
3
+ import React from "react";
4
+
5
+ interface IProps
6
+ {
7
+ image: string;
8
+ title: string;
9
+ list: string;
10
+ percent: string | number;
11
+ information: string | number;
12
+ }
13
+
14
+ interface IState
15
+ {
16
+ image: string;
17
+ title: string;
18
+ list: string;
19
+ percent: string | number;
20
+ information: string | number;
21
+
22
+ }
23
+
24
+ export class NSBoxPosition extends React.Component<IProps, IState>
25
+ {
26
+
27
+ constructor(props: IProps)
28
+ {
29
+ super(props);
30
+ this.state = { title: props.title, image: props.image, list: props.list, percent: props.percent, information: props.information };
31
+ }
32
+
33
+ override render()
34
+ {
35
+ return (
36
+ <div className={Style.position_box_contain}>
37
+ <div className={Style.position_box_layout}>
38
+ <img className="rounded" src={this.state.image} alt="wordpress" width={326} height={220}></img>
39
+ <div className={Style.position_box_information}>
40
+ <h3>{this.state.title}</h3>
41
+ <h4>Skills :</h4>
42
+ <ul>
43
+ <li>{this.state.list}<span>{this.props.percent}</span></li>
44
+ </ul>
45
+ <h4>Or</h4>
46
+ <ul>
47
+ <li>{this.state.list}<span>{this.props.percent}</span></li>
48
+ </ul>
49
+ <h3>Responsibility :</h3>
50
+ <p>{this.state.information}</p>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ )
55
+ }
56
+ }
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import Style from "./NSBoxSection.module.css";
2
+ // import { a href="" } from "react-router-dom";
3
+ // import Style from "./NSBoxSection.module.css";
3
4
  import React from "react";
4
5
 
5
6
  interface IProps
@@ -14,14 +15,16 @@ interface IState
14
15
  detail: string;
15
16
  image: string;
16
17
  description: string;
18
+ toggle: boolean;
17
19
  }
18
20
 
19
21
  export class NSBoxSection extends React.Component<IProps, IState>
20
22
  {
23
+
21
24
  constructor(props: IProps)
22
25
  {
23
26
  super(props);
24
- this.state = { detail: props.detail, image: props.image, description: props.description };
27
+ this.state = { detail: props.detail, image: props.image, description: props.description, toggle: true };
25
28
  }
26
29
  setTitle(description: string)
27
30
  {
@@ -31,14 +34,40 @@ export class NSBoxSection extends React.Component<IProps, IState>
31
34
  {
32
35
  this.setState({ detail });
33
36
  }
37
+ setToggle(toggle: boolean)
38
+ {
39
+ this.setState({ toggle });
40
+ }
41
+
34
42
  override render()
35
43
  {
36
44
  return (
37
- <div className={Style.position__layout}>
38
- <img className="rounded" src={this.state.image} alt="wordpress" width={326} height={220}></img>
39
- <h3>{this.state.description}</h3>
40
- <h4>{this.state.detail}<img className="mx-2" src='/assets/images/position-down-vector.png' width={16} height={16}></img></h4>
41
- </div >
45
+ <div className='position-contain'>
46
+ <div className="position-layout">
47
+ <img className="rounded" src={this.state.image} alt="wordpress" width={326} height={220}></img>
48
+ <div className='position-information'>
49
+ <h3 className='position-title' style={{ display: this.state.toggle ? 'block' : 'none' }}>WordPress</h3>
50
+ <a href="" onClick={(e) =>
51
+ {
52
+ this.setState({ toggle: !this.state.toggle })
53
+ e.preventDefault()
54
+ }}>
55
+ <h4 className='position-readmore' style={{ display: this.state.toggle ? 'block' : 'none' }} >Read More<img className="mx-2" src='/assets/images/position-down-vector.png' alt="show-more" width={16} height={16}></img></h4>
56
+ </a>
57
+ <ul className='position-list' style={{ display: this.state.toggle ? 'none' : 'block' }}>
58
+ <li>Frontend Programming</li>
59
+ <li>Backend Programming</li>
60
+ </ul>
61
+ <a href="" onClick={(e) =>
62
+ {
63
+ this.setState({ toggle: !this.state.toggle })
64
+ e.preventDefault()
65
+ }}>
66
+ <h4 style={{ display: this.state.toggle ? 'none' : 'block' }} >Read Less<img className="mx-2" src='/assets/images/position-down-vector.png' alt="show-more" style={{ transform: "rotate(180deg" }} width={16} height={16}></img></h4>
67
+ </a>
68
+ </div>
69
+ </div >
70
+ </div>
42
71
  )
43
72
  }
44
73
  }