meticulous-ui 1.0.3 → 1.0.5

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/README.md CHANGED
@@ -7,56 +7,60 @@ A lightweight, modern React component library designed for elegance and precisio
7
7
  ## 🚀 Installation
8
8
 
9
9
  ```
10
-
11
10
  npm install meticulous-ui
11
+ ```
12
+
12
13
  # or
13
- yarn add meticulous-ui
14
14
 
15
+ ```
16
+ yarn add meticulous-ui
15
17
  ```
16
18
 
17
19
  ## 🧩 Usage
18
20
 
19
21
  ```jsx
20
-
21
- import React from "react";
22
- import { Pagination } from "meticulous-ui";
22
+ import { useState } from 'react';
23
+ import Pagination from 'meticulous-ui/components/Pagination';
23
24
 
24
25
  function App() {
26
+ const [pageNumber, setPageNumber] = useState(1);
27
+
25
28
  return (
26
29
  <div>
27
30
  <h2>Example with Pagination</h2>
28
- <Pagination totalPages={10} currentPage={1} />
31
+ <Pagination totalPages={10} pageNumber={pageNumber} setPageNumber={setPageNumber} />
29
32
  </div>
30
33
  );
31
34
  }
32
35
 
33
36
  export default App;
34
-
35
37
  ```
36
38
 
37
39
  ## đŸ“Ļ Components
38
40
 
39
- ```
40
-
41
41
  | Component | Description |
42
42
  | -------------- | ------------------------------------- |
43
43
  | `Pagination` | Fully responsive pagination component |
44
44
  | `ChevronLeft` | Left navigation icon |
45
45
  | `ChevronRight` | Right navigation icon |
46
46
 
47
+ ## Demo
48
+
49
+ ```
50
+ https://xe3110.github.io/meticulous-ui/
47
51
  ```
48
52
 
49
53
  ## 🌱 Features
50
54
 
51
- ```
52
-
53
55
  âš›ī¸ Built with React + Styled Components
56
+
54
57
  💨 Zero external CSS dependencies
58
+
55
59
  🧱 Easy to extend and customize
60
+
56
61
  đŸĒļ Small bundle size
57
- đŸ“Ļ ESM + CJS support out of the box
58
62
 
59
- ```
63
+ đŸ“Ļ ESM + CJS support out of the box
60
64
 
61
65
  ## đŸ› ī¸ Build Setup (for contributors)
62
66
 
@@ -1,33 +1,33 @@
1
1
  import { j as c } from "../../_virtual/jsx-runtime.js";
2
2
  import f from "../../node_modules/lodash-es/range.js";
3
3
  import { renderPageNum as o, renderThreeDots as C } from "./helpers.js";
4
- import { AllPages as s, ClickableChevronLeft as k, ClickableChevronRight as h } from "./styles.js";
4
+ import { AllPages as k, ClickableChevronLeft as h, ClickableChevronRight as d } from "./styles.js";
5
5
  const R = ({ pageNumber: i, setPageNumber: x, totalPages: n }) => {
6
6
  const j = () => {
7
7
  i > 1 && x(i - 1);
8
- }, d = () => {
8
+ }, s = () => {
9
9
  i < n && x(i + 1);
10
10
  };
11
- return n <= 7 ? /* @__PURE__ */ c.jsxs(s, { children: [
12
- /* @__PURE__ */ c.jsx(k, { onClick: j }),
11
+ return n <= 7 ? /* @__PURE__ */ c.jsxs(k, { children: [
12
+ /* @__PURE__ */ c.jsx(h, { size: 20, onClick: j }),
13
13
  f(1, n + 1).map(o(i, x)),
14
- /* @__PURE__ */ c.jsx(h, { onClick: j })
15
- ] }) : n < 10 || i < 4 || i > n - 3 && i <= n ? /* @__PURE__ */ c.jsxs(s, { children: [
16
- /* @__PURE__ */ c.jsx(k, { size: 20, onClick: j }),
14
+ /* @__PURE__ */ c.jsx(d, { size: 20, onClick: s })
15
+ ] }) : n < 10 || i < 4 || i > n - 3 && i <= n ? /* @__PURE__ */ c.jsxs(k, { children: [
16
+ /* @__PURE__ */ c.jsx(h, { size: 20, onClick: j }),
17
17
  f(1, 5).map(o(i, x)),
18
18
  C(),
19
19
  [n - 3, n - 2, n - 1, n].map(
20
20
  o(i, x)
21
21
  ),
22
- /* @__PURE__ */ c.jsx(h, { size: 20, onClick: d })
23
- ] }) : /* @__PURE__ */ c.jsxs(s, { children: [
24
- /* @__PURE__ */ c.jsx(k, { size: 20, onClick: j }),
22
+ /* @__PURE__ */ c.jsx(d, { size: 20, onClick: s })
23
+ ] }) : /* @__PURE__ */ c.jsxs(k, { children: [
24
+ /* @__PURE__ */ c.jsx(h, { size: 20, onClick: j }),
25
25
  f(1, 3).map(o(i, x)),
26
26
  C(),
27
27
  [i - 1, i, i + 1].map(o(i, x)),
28
28
  C(),
29
29
  [n - 1, n].map(o(i, x)),
30
- /* @__PURE__ */ c.jsx(h, { size: 20, onClick: d })
30
+ /* @__PURE__ */ c.jsx(d, { size: 20, onClick: s })
31
31
  ] });
32
32
  };
33
33
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/components/Pagination/Pagination.jsx"],"sourcesContent":["// Libraries\nimport _range from 'lodash-es/range';\n\n// helpers\nimport { renderThreeDots, renderPageNum } from './helpers.jsx';\n\n// styles\nimport { AllPages, ClickableChevronLeft, ClickableChevronRight } from './styles';\n\nconst Pagination = ({ pageNumber, setPageNumber, totalPages }) => {\n const setPrevPage = () => {\n if (pageNumber > 1) {\n setPageNumber(pageNumber - 1);\n }\n };\n\n const setNextPage = () => {\n if (pageNumber < totalPages) {\n setPageNumber(pageNumber + 1);\n }\n };\n\n if (totalPages <= 7) {\n return (\n <AllPages>\n <ClickableChevronLeft onClick={setPrevPage} />\n {_range(1, totalPages + 1).map(renderPageNum(pageNumber, setPageNumber))}\n <ClickableChevronRight onClick={setPrevPage} />\n </AllPages>\n );\n }\n\n if (\n totalPages < 10 ||\n pageNumber < 4 ||\n (pageNumber > totalPages - 3 && pageNumber <= totalPages)\n ) {\n return (\n <AllPages>\n <ClickableChevronLeft size={20} onClick={setPrevPage} />\n {_range(1, 5).map(renderPageNum(pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[totalPages - 3, totalPages - 2, totalPages - 1, totalPages].map(\n renderPageNum(pageNumber, setPageNumber)\n )}\n <ClickableChevronRight size={20} onClick={setNextPage} />\n </AllPages>\n );\n }\n\n return (\n <AllPages>\n <ClickableChevronLeft size={20} onClick={setPrevPage} />\n {_range(1, 3).map(renderPageNum(pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[pageNumber - 1, pageNumber, pageNumber + 1].map(renderPageNum(pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[totalPages - 1, totalPages].map(renderPageNum(pageNumber, setPageNumber))}\n <ClickableChevronRight size={20} onClick={setNextPage} />\n </AllPages>\n );\n};\n\nexport default Pagination;\n"],"names":["Pagination","pageNumber","setPageNumber","totalPages","setPrevPage","setNextPage","AllPages","jsx","ClickableChevronLeft","_range","renderPageNum","ClickableChevronRight","renderThreeDots"],"mappings":";;;;AASA,MAAMA,IAAa,CAAC,EAAE,YAAAC,GAAY,eAAAC,GAAe,YAAAC,QAAiB;AAChE,QAAMC,IAAc,MAAM;AACxB,IAAIH,IAAa,KACfC,EAAcD,IAAa,CAAC;AAAA,EAEhC,GAEMI,IAAc,MAAM;AACxB,IAAIJ,IAAaE,KACfD,EAAcD,IAAa,CAAC;AAAA,EAEhC;AAEA,SAAIE,KAAc,2BAEbG,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,SAASJ,EAAA,CAAa;AAAA,IAC3CK,EAAO,GAAGN,IAAa,CAAC,EAAE,IAAIO,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACvEK,gBAAAA,EAAAA,IAACI,GAAA,EAAsB,SAASP,EAAA,CAAa;AAAA,EAAA,GAC/C,IAKFD,IAAa,MACbF,IAAa,KACZA,IAAaE,IAAa,KAAKF,KAAcE,2BAG3CG,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAM,IAAI,SAASJ,GAAa;AAAA,IACrDK,EAAO,GAAG,CAAC,EAAE,IAAIC,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACzDU,EAAA;AAAA,IACA,CAACT,IAAa,GAAGA,IAAa,GAAGA,IAAa,GAAGA,CAAU,EAAE;AAAA,MAC5DO,EAAcT,GAAYC,CAAa;AAAA,IAAA;AAAA,IAEzCK,gBAAAA,EAAAA,IAACI,GAAA,EAAsB,MAAM,IAAI,SAASN,EAAA,CAAa;AAAA,EAAA,GACzD,2BAKDC,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAM,IAAI,SAASJ,GAAa;AAAA,IACrDK,EAAO,GAAG,CAAC,EAAE,IAAIC,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACzDU,EAAA;AAAA,IACA,CAACX,IAAa,GAAGA,GAAYA,IAAa,CAAC,EAAE,IAAIS,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACzFU,EAAA;AAAA,IACA,CAACT,IAAa,GAAGA,CAAU,EAAE,IAAIO,EAAcT,GAAYC,CAAa,CAAC;AAAA,IAC1EK,gBAAAA,EAAAA,IAACI,GAAA,EAAsB,MAAM,IAAI,SAASN,EAAA,CAAa;AAAA,EAAA,GACzD;AAEJ;"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/components/Pagination/Pagination.jsx"],"sourcesContent":["// Libraries\nimport _range from 'lodash-es/range';\n\n// helpers\nimport { renderThreeDots, renderPageNum } from './helpers.jsx';\n\n// styles\nimport { AllPages, ClickableChevronLeft, ClickableChevronRight } from './styles';\n\nconst Pagination = ({ pageNumber, setPageNumber, totalPages }) => {\n const setPrevPage = () => {\n if (pageNumber > 1) {\n setPageNumber(pageNumber - 1);\n }\n };\n\n const setNextPage = () => {\n if (pageNumber < totalPages) {\n setPageNumber(pageNumber + 1);\n }\n };\n\n if (totalPages <= 7) {\n return (\n <AllPages>\n <ClickableChevronLeft size={20} onClick={setPrevPage} />\n {_range(1, totalPages + 1).map(renderPageNum(pageNumber, setPageNumber))}\n <ClickableChevronRight size={20} onClick={setNextPage} />\n </AllPages>\n );\n }\n\n if (\n totalPages < 10 ||\n pageNumber < 4 ||\n (pageNumber > totalPages - 3 && pageNumber <= totalPages)\n ) {\n return (\n <AllPages>\n <ClickableChevronLeft size={20} onClick={setPrevPage} />\n {_range(1, 5).map(renderPageNum(pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[totalPages - 3, totalPages - 2, totalPages - 1, totalPages].map(\n renderPageNum(pageNumber, setPageNumber)\n )}\n <ClickableChevronRight size={20} onClick={setNextPage} />\n </AllPages>\n );\n }\n\n return (\n <AllPages>\n <ClickableChevronLeft size={20} onClick={setPrevPage} />\n {_range(1, 3).map(renderPageNum(pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[pageNumber - 1, pageNumber, pageNumber + 1].map(renderPageNum(pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[totalPages - 1, totalPages].map(renderPageNum(pageNumber, setPageNumber))}\n <ClickableChevronRight size={20} onClick={setNextPage} />\n </AllPages>\n );\n};\n\nexport default Pagination;\n"],"names":["Pagination","pageNumber","setPageNumber","totalPages","setPrevPage","setNextPage","AllPages","jsx","ClickableChevronLeft","_range","renderPageNum","ClickableChevronRight","renderThreeDots"],"mappings":";;;;AASA,MAAMA,IAAa,CAAC,EAAE,YAAAC,GAAY,eAAAC,GAAe,YAAAC,QAAiB;AAChE,QAAMC,IAAc,MAAM;AACxB,IAAIH,IAAa,KACfC,EAAcD,IAAa,CAAC;AAAA,EAEhC,GAEMI,IAAc,MAAM;AACxB,IAAIJ,IAAaE,KACfD,EAAcD,IAAa,CAAC;AAAA,EAEhC;AAEA,SAAIE,KAAc,2BAEbG,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAM,IAAI,SAASJ,GAAa;AAAA,IACrDK,EAAO,GAAGN,IAAa,CAAC,EAAE,IAAIO,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACvEK,gBAAAA,EAAAA,IAACI,GAAA,EAAsB,MAAM,IAAI,SAASN,EAAA,CAAa;AAAA,EAAA,GACzD,IAKFF,IAAa,MACbF,IAAa,KACZA,IAAaE,IAAa,KAAKF,KAAcE,2BAG3CG,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAM,IAAI,SAASJ,GAAa;AAAA,IACrDK,EAAO,GAAG,CAAC,EAAE,IAAIC,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACzDU,EAAA;AAAA,IACA,CAACT,IAAa,GAAGA,IAAa,GAAGA,IAAa,GAAGA,CAAU,EAAE;AAAA,MAC5DO,EAAcT,GAAYC,CAAa;AAAA,IAAA;AAAA,IAEzCK,gBAAAA,EAAAA,IAACI,GAAA,EAAsB,MAAM,IAAI,SAASN,EAAA,CAAa;AAAA,EAAA,GACzD,2BAKDC,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAM,IAAI,SAASJ,GAAa;AAAA,IACrDK,EAAO,GAAG,CAAC,EAAE,IAAIC,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACzDU,EAAA;AAAA,IACA,CAACX,IAAa,GAAGA,GAAYA,IAAa,CAAC,EAAE,IAAIS,EAAcT,GAAYC,CAAa,CAAC;AAAA,IACzFU,EAAA;AAAA,IACA,CAACT,IAAa,GAAGA,CAAU,EAAE,IAAIO,EAAcT,GAAYC,CAAa,CAAC;AAAA,IAC1EK,gBAAAA,EAAAA,IAACI,GAAA,EAAsB,MAAM,IAAI,SAASN,EAAA,CAAa;AAAA,EAAA,GACzD;AAEJ;"}
@@ -7,8 +7,8 @@ const d = r.div`
7
7
  justify-content: center;
8
8
  align-items: center;
9
9
  gap: 0.6rem;
10
- min-width: 175rem;
11
- width: 175rem;
10
+ min-width: 100%;
11
+ width: 100%;
12
12
  `, h = r.div`
13
13
  height: 3rem;
14
14
  width: 3rem;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../src/components/Pagination/styles.js"],"sourcesContent":["// Libraries\nimport styled, { css } from 'styled-components';\n\n// Icons\nimport ChevronLeft from '../Icons/ChevronLeft';\nimport ChevronRight from '../Icons/ChevronRight';\n\n// constants\nimport { GREY, TEAL, WHITE } from '../../colors';\n\nexport const AllPages = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 0.6rem;\n min-width: 175rem;\n width: 175rem;\n`;\n\nexport const Page = styled.div`\n height: 3rem;\n width: 3rem;\n border-radius: 50%;\n padding-top: 0.6rem;\n text-align: center;\n font-size: 1.4rem;\n ${({ isSelected }) =>\n isSelected\n ? css`\n cursor: auto;\n color: ${WHITE};\n background-color: ${TEAL};\n `\n : css`\n cursor: pointer;\n color: ${GREY};\n `}\n`;\n\nexport const P = styled.p`\n color: ${GREY};\n`;\n\nexport const ClickableChevronLeft = styled(ChevronLeft)`\n cursor: pointer;\n`;\n\nexport const ClickableChevronRight = styled(ChevronRight)`\n cursor: pointer;\n`;\n"],"names":["AllPages","styled","Page","isSelected","css","WHITE","TEAL","GREY","P","ClickableChevronLeft","ChevronLeft","ClickableChevronRight","ChevronRight"],"mappings":";;;;AAUY,MAACA,IAAWC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASlBC,IAAOD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOvB,CAAC,EAAE,YAAAE,EAAU,MACbA,IACIC;AAAAA;AAAAA,mBAEWC,CAAK;AAAA,8BACMC,CAAI;AAAA,YAE1BF;AAAAA;AAAAA,mBAEWG,CAAI;AAAA,SACd;AAAA,GAGIC,IAAIP,EAAO;AAAA,WACbM,CAAI;AAAA,GAGFE,IAAuBR,EAAOS,CAAW;AAAA;AAAA,GAIzCC,IAAwBV,EAAOW,CAAY;AAAA;AAAA;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../src/components/Pagination/styles.js"],"sourcesContent":["// Libraries\nimport styled, { css } from 'styled-components';\n\n// Icons\nimport ChevronLeft from '../Icons/ChevronLeft';\nimport ChevronRight from '../Icons/ChevronRight';\n\n// constants\nimport { GREY, TEAL, WHITE } from '../../colors';\n\nexport const AllPages = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 0.6rem;\n min-width: 100%;\n width: 100%;\n`;\n\nexport const Page = styled.div`\n height: 3rem;\n width: 3rem;\n border-radius: 50%;\n padding-top: 0.6rem;\n text-align: center;\n font-size: 1.4rem;\n ${({ isSelected }) =>\n isSelected\n ? css`\n cursor: auto;\n color: ${WHITE};\n background-color: ${TEAL};\n `\n : css`\n cursor: pointer;\n color: ${GREY};\n `}\n`;\n\nexport const P = styled.p`\n color: ${GREY};\n`;\n\nexport const ClickableChevronLeft = styled(ChevronLeft)`\n cursor: pointer;\n`;\n\nexport const ClickableChevronRight = styled(ChevronRight)`\n cursor: pointer;\n`;\n"],"names":["AllPages","styled","Page","isSelected","css","WHITE","TEAL","GREY","P","ClickableChevronLeft","ChevronLeft","ClickableChevronRight","ChevronRight"],"mappings":";;;;AAUY,MAACA,IAAWC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASlBC,IAAOD,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOvB,CAAC,EAAE,YAAAE,EAAU,MACbA,IACIC;AAAAA;AAAAA,mBAEWC,CAAK;AAAA,8BACMC,CAAI;AAAA,YAE1BF;AAAAA;AAAAA,mBAEWG,CAAI;AAAA,SACd;AAAA,GAGIC,IAAIP,EAAO;AAAA,WACbM,CAAI;AAAA,GAGFE,IAAuBR,EAAOS,CAAW;AAAA;AAAA,GAIzCC,IAAwBV,EAAOW,CAAY;AAAA;AAAA;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meticulous-ui",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "files": [
@@ -15,16 +15,31 @@
15
15
  },
16
16
  "keywords": [
17
17
  "react",
18
- "components",
19
18
  "ui",
19
+ "icons",
20
+ "components",
21
+ "pagination",
20
22
  "meticulous-ui"
21
23
  ],
22
24
  "scripts": {
25
+ "dev": "vite",
23
26
  "build": "vite build",
24
- "format": "npx prettier --write ."
27
+ "format": "npx prettier --write .",
28
+ "publish:latest": "npm run build && npm publish --access public",
29
+ "storybook": "storybook dev -p 6006",
30
+ "build-storybook": "storybook build",
31
+ "deploy-storybook": "gh-pages -d storybook-static"
25
32
  },
26
33
  "dependencies": {
27
34
  "@vitejs/plugin-react": "^5.0.4",
28
35
  "lodash-es": "^4.17.21"
36
+ },
37
+ "devDependencies": {
38
+ "@storybook/addon-docs": "^9.1.10",
39
+ "@storybook/react-vite": "^9.1.10",
40
+ "eslint-plugin-storybook": "^9.1.10",
41
+ "gh-pages": "^6.3.0",
42
+ "prop-types": "^15.8.1",
43
+ "storybook": "^9.1.10"
29
44
  }
30
45
  }
@@ -1,5 +0,0 @@
1
- import o from "./Pagination.js";
2
- export {
3
- o as default
4
- };
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}