meticulous-ui 1.0.4 → 1.0.6

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
@@ -19,9 +19,8 @@ yarn add meticulous-ui
19
19
  ## 🧩 Usage
20
20
 
21
21
  ```jsx
22
-
23
- import { useState } from "react";
24
- import Pagination from "meticulous-ui/components/Pagination";
22
+ import { useState } from 'react';
23
+ import Pagination from 'meticulous-ui/components/Pagination';
25
24
 
26
25
  function App() {
27
26
  const [pageNumber, setPageNumber] = useState(1);
@@ -35,7 +34,6 @@ function App() {
35
34
  }
36
35
 
37
36
  export default App;
38
-
39
37
  ```
40
38
 
41
39
  ## 📦 Components
@@ -46,6 +44,10 @@ export default App;
46
44
  | `ChevronLeft` | Left navigation icon |
47
45
  | `ChevronRight` | Right navigation icon |
48
46
 
47
+ ## Demo
48
+
49
+ <a href="https://xe3110.github.io/meticulous-ui/" target="_blank">https://xe3110.github.io/meticulous-ui/</a>
50
+
49
51
  ## 🌱 Features
50
52
 
51
53
  ⚛️ Built with React + Styled Components
@@ -1,36 +1,41 @@
1
1
  import { j as c } from "../../_virtual/jsx-runtime.js";
2
- import f from "../../node_modules/lodash-es/range.js";
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";
5
- const R = ({ pageNumber: i, setPageNumber: x, totalPages: n }) => {
6
- const j = () => {
7
- i > 1 && x(i - 1);
8
- }, d = () => {
9
- i < n && x(i + 1);
10
- };
11
- return n <= 7 ? /* @__PURE__ */ c.jsxs(s, { children: [
12
- /* @__PURE__ */ c.jsx(k, { onClick: j }),
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 }),
17
- f(1, 5).map(o(i, x)),
18
- C(),
19
- [n - 3, n - 2, n - 1, n].map(
20
- o(i, x)
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 }),
25
- f(1, 3).map(o(i, x)),
26
- C(),
27
- [i - 1, i, i + 1].map(o(i, x)),
28
- C(),
29
- [n - 1, n].map(o(i, x)),
30
- /* @__PURE__ */ c.jsx(h, { size: 20, onClick: d })
2
+ import C from "../../node_modules/lodash-es/range.js";
3
+ import { renderPageNum as j, renderThreeDots as h } from "./helpers.js";
4
+ import { ICON_SIZE_MAPPING as R, LARGE as v, SIZE_REM_MAPPING as z } from "./constants.js";
5
+ import { AllPages as l, ClickableChevronLeft as k, MiddleLayer as E, ClickableChevronRight as I } from "./styles.js";
6
+ const L = ({ pageNumber: i, setPageNumber: o, totalPages: n, size: x = v }) => {
7
+ const d = () => {
8
+ i > 1 && o(i - 1);
9
+ }, s = () => {
10
+ i < n && o(i + 1);
11
+ }, f = z[x], r = R[x];
12
+ return n <= 7 ? /* @__PURE__ */ c.jsxs(l, { children: [
13
+ /* @__PURE__ */ c.jsx(k, { size: r, onClick: d }),
14
+ /* @__PURE__ */ c.jsx(E, { size: `${n * f}rem`, children: C(1, n + 1).map(j(x, i, o)) }),
15
+ /* @__PURE__ */ c.jsx(I, { size: r, onClick: s })
16
+ ] }) : n < 10 || i < 4 || i > n - 3 && i <= n ? /* @__PURE__ */ c.jsxs(l, { children: [
17
+ /* @__PURE__ */ c.jsx(k, { size: r, onClick: d }),
18
+ /* @__PURE__ */ c.jsxs(E, { size: `${9 * f}rem`, children: [
19
+ C(1, 5).map(j(x, i, o)),
20
+ h(),
21
+ [n - 3, n - 2, n - 1, n].map(
22
+ j(x, i, o)
23
+ )
24
+ ] }),
25
+ /* @__PURE__ */ c.jsx(I, { size: r, onClick: s })
26
+ ] }) : /* @__PURE__ */ c.jsxs(l, { children: [
27
+ /* @__PURE__ */ c.jsx(k, { size: r, onClick: d }),
28
+ /* @__PURE__ */ c.jsxs(E, { size: `${9 * f}rem`, children: [
29
+ C(1, 3).map(j(x, i, o)),
30
+ h(),
31
+ [i - 1, i, i + 1].map(j(x, i, o)),
32
+ h(),
33
+ [n - 1, n].map(j(x, i, o))
34
+ ] }),
35
+ /* @__PURE__ */ c.jsx(I, { size: r, onClick: s })
31
36
  ] });
32
37
  };
33
38
  export {
34
- R as default
39
+ L as default
35
40
  };
36
41
  //# sourceMappingURL=Pagination.js.map
@@ -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// constants\nimport { ICON_SIZE_MAPPING, LARGE, MEDIUM, SIZE_REM_MAPPING, SMALL } from './constants.js';\n\n// styles\nimport { AllPages, ClickableChevronLeft, ClickableChevronRight, MiddleLayer } from './styles';\n\nconst Pagination = ({ pageNumber, setPageNumber, totalPages, size = LARGE }) => {\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 const individualRemSize = SIZE_REM_MAPPING[size];\n const iconSize = ICON_SIZE_MAPPING[size];\n\n if (totalPages <= 7) {\n return (\n <AllPages>\n <ClickableChevronLeft size={iconSize} onClick={setPrevPage} />\n <MiddleLayer size={`${totalPages * individualRemSize}rem`}>\n {_range(1, totalPages + 1).map(renderPageNum(size, pageNumber, setPageNumber))}\n </MiddleLayer>\n <ClickableChevronRight size={iconSize} 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={iconSize} onClick={setPrevPage} />\n <MiddleLayer size={`${9 * individualRemSize}rem`}>\n {_range(1, 5).map(renderPageNum(size, pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[totalPages - 3, totalPages - 2, totalPages - 1, totalPages].map(\n renderPageNum(size, pageNumber, setPageNumber)\n )}\n </MiddleLayer>\n <ClickableChevronRight size={iconSize} onClick={setNextPage} />\n </AllPages>\n );\n }\n\n return (\n <AllPages>\n <ClickableChevronLeft size={iconSize} onClick={setPrevPage} />\n <MiddleLayer size={`${9 * individualRemSize}rem`}>\n {_range(1, 3).map(renderPageNum(size, pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[pageNumber - 1, pageNumber, pageNumber + 1].map(renderPageNum(size, pageNumber, setPageNumber))}\n {renderThreeDots()}\n {[totalPages - 1, totalPages].map(renderPageNum(size, pageNumber, setPageNumber))}\n </MiddleLayer>\n <ClickableChevronRight size={iconSize} onClick={setNextPage} />\n </AllPages>\n );\n};\n\nexport default Pagination;\n"],"names":["Pagination","pageNumber","setPageNumber","totalPages","size","LARGE","setPrevPage","setNextPage","individualRemSize","SIZE_REM_MAPPING","iconSize","ICON_SIZE_MAPPING","AllPages","jsx","ClickableChevronLeft","MiddleLayer","_range","renderPageNum","ClickableChevronRight","renderThreeDots"],"mappings":";;;;;AAYA,MAAMA,IAAa,CAAC,EAAE,YAAAC,GAAY,eAAAC,GAAe,YAAAC,GAAY,MAAAC,IAAOC,QAAY;AAC9E,QAAMC,IAAc,MAAM;AACxB,IAAIL,IAAa,KACfC,EAAcD,IAAa,CAAC;AAAA,EAEhC,GAEMM,IAAc,MAAM;AACxB,IAAIN,IAAaE,KACfD,EAAcD,IAAa,CAAC;AAAA,EAEhC,GAEMO,IAAoBC,EAAiBL,CAAI,GACzCM,IAAWC,EAAkBP,CAAI;AAEvC,SAAID,KAAc,2BAEbS,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAMJ,GAAU,SAASJ,GAAa;AAAA,0BAC3DS,GAAA,EAAY,MAAM,GAAGZ,IAAaK,CAAiB,OACjD,UAAAQ,EAAO,GAAGb,IAAa,CAAC,EAAE,IAAIc,EAAcb,GAAMH,GAAYC,CAAa,CAAC,GAC/E;AAAA,IACAW,gBAAAA,EAAAA,IAACK,GAAA,EAAsB,MAAMR,GAAU,SAASH,EAAA,CAAa;AAAA,EAAA,GAC/D,IAKFJ,IAAa,MACbF,IAAa,KACZA,IAAaE,IAAa,KAAKF,KAAcE,2BAG3CS,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAMJ,GAAU,SAASJ,GAAa;AAAA,2BAC3DS,GAAA,EAAY,MAAM,GAAG,IAAIP,CAAiB,OACxC,UAAA;AAAA,MAAAQ,EAAO,GAAG,CAAC,EAAE,IAAIC,EAAcb,GAAMH,GAAYC,CAAa,CAAC;AAAA,MAC/DiB,EAAA;AAAA,MACA,CAAChB,IAAa,GAAGA,IAAa,GAAGA,IAAa,GAAGA,CAAU,EAAE;AAAA,QAC5Dc,EAAcb,GAAMH,GAAYC,CAAa;AAAA,MAAA;AAAA,IAC/C,GACF;AAAA,IACAW,gBAAAA,EAAAA,IAACK,GAAA,EAAsB,MAAMR,GAAU,SAASH,EAAA,CAAa;AAAA,EAAA,GAC/D,2BAKDK,GAAA,EACC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,GAAA,EAAqB,MAAMJ,GAAU,SAASJ,GAAa;AAAA,2BAC3DS,GAAA,EAAY,MAAM,GAAG,IAAIP,CAAiB,OACxC,UAAA;AAAA,MAAAQ,EAAO,GAAG,CAAC,EAAE,IAAIC,EAAcb,GAAMH,GAAYC,CAAa,CAAC;AAAA,MAC/DiB,EAAA;AAAA,MACA,CAAClB,IAAa,GAAGA,GAAYA,IAAa,CAAC,EAAE,IAAIgB,EAAcb,GAAMH,GAAYC,CAAa,CAAC;AAAA,MAC/FiB,EAAA;AAAA,MACA,CAAChB,IAAa,GAAGA,CAAU,EAAE,IAAIc,EAAcb,GAAMH,GAAYC,CAAa,CAAC;AAAA,IAAA,GAClF;AAAA,IACAW,gBAAAA,EAAAA,IAACK,GAAA,EAAsB,MAAMR,GAAU,SAASH,EAAA,CAAa;AAAA,EAAA,GAC/D;AAEJ;"}
@@ -0,0 +1,22 @@
1
+ const I = "small", _ = "medium", E = "large", M = {
2
+ [I]: 1.9,
3
+ [_]: 2.6,
4
+ [E]: 3.1
5
+ }, S = {
6
+ [I]: 1,
7
+ [_]: 1.2,
8
+ [E]: 1.4
9
+ }, L = {
10
+ [I]: 18,
11
+ [_]: 19,
12
+ [E]: 20
13
+ };
14
+ export {
15
+ S as FONT_SIZE_MAPPING,
16
+ L as ICON_SIZE_MAPPING,
17
+ E as LARGE,
18
+ _ as MEDIUM,
19
+ M as SIZE_REM_MAPPING,
20
+ I as SMALL
21
+ };
22
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../src/components/Pagination/constants.js"],"sourcesContent":["const INDIVIDUAL_SMALL_REM_SIZE = 1.9;\nconst INDIVIDUAL_MEDIUM_REM_SIZE = 2.6;\nconst INDIVIDUAL_LARGE_REM_SIZE = 3.1;\n\nconst SMALL_FONT_SIZE = 1;\nconst MEDIUM_REM_FONT_SIZE = 1.2;\nconst LARGE_REM_FONT_SIZE = 1.4;\n\nconst SMALL_ICON_SIZE = 18;\nconst MEDIUM_ICON_SIZE = 19;\nconst LARGE_ICON_SIZE = 20;\n\nexport const SMALL = 'small';\nexport const MEDIUM = 'medium';\nexport const LARGE = 'large';\n\nexport const SIZE_REM_MAPPING = {\n [SMALL]: INDIVIDUAL_SMALL_REM_SIZE,\n [MEDIUM]: INDIVIDUAL_MEDIUM_REM_SIZE,\n [LARGE]: INDIVIDUAL_LARGE_REM_SIZE,\n};\n\nexport const FONT_SIZE_MAPPING = {\n [SMALL]: SMALL_FONT_SIZE,\n [MEDIUM]: MEDIUM_REM_FONT_SIZE,\n [LARGE]: LARGE_REM_FONT_SIZE,\n};\n\nexport const ICON_SIZE_MAPPING = {\n [SMALL]: SMALL_ICON_SIZE,\n [MEDIUM]: MEDIUM_ICON_SIZE,\n [LARGE]: LARGE_ICON_SIZE,\n};\n"],"names":["SMALL","MEDIUM","LARGE","SIZE_REM_MAPPING","FONT_SIZE_MAPPING","ICON_SIZE_MAPPING"],"mappings":"AAYY,MAACA,IAAQ,SACRC,IAAS,UACTC,IAAQ,SAERC,IAAmB;AAAA,EAC9B,CAACH,CAAK,GAAG;AAAA,EACT,CAACC,CAAM,GAAG;AAAA,EACV,CAACC,CAAK,GAAG;AACX,GAEaE,IAAoB;AAAA,EAC/B,CAACJ,CAAK,GAAG;AAAA,EACT,CAACC,CAAM,GAAG;AAAA,EACV,CAACC,CAAK,GAAG;AACX,GAEaG,IAAoB;AAAA,EAC/B,CAACL,CAAK,GAAG;AAAA,EACT,CAACC,CAAM,GAAG;AAAA,EACV,CAACC,CAAK,GAAG;AACX;"}
@@ -1,25 +1,28 @@
1
1
  import { j as r } from "../../_virtual/jsx-runtime.js";
2
- import { Page as i, P as t } from "./styles.js";
3
- const l = (n, s) => (e) => {
4
- const c = () => {
5
- s(e);
2
+ import { FONT_SIZE_MAPPING as m, SIZE_REM_MAPPING as l } from "./constants.js";
3
+ import { Page as x, P as t } from "./styles.js";
4
+ const a = (n, i, o) => (e) => {
5
+ const s = l[n], c = m[n], d = () => {
6
+ o(e);
6
7
  };
7
8
  return /* @__PURE__ */ r.jsx(
8
- i,
9
+ x,
9
10
  {
10
- "data-testid": n === e ? "current-page" : `test-${e}`,
11
- isSelected: n === e,
12
- onClick: c,
11
+ "data-testid": i === e ? "current-page" : `test-${e}`,
12
+ isSelected: i === e,
13
+ onClick: d,
14
+ individualRemSize: s,
15
+ fontRemSize: c,
13
16
  children: e
14
17
  }
15
18
  );
16
- }, x = () => /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
19
+ }, u = () => /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
17
20
  /* @__PURE__ */ r.jsx(t, { children: "." }),
18
21
  /* @__PURE__ */ r.jsx(t, { children: "." }),
19
22
  /* @__PURE__ */ r.jsx(t, { children: "." })
20
23
  ] });
21
24
  export {
22
- l as renderPageNum,
23
- x as renderThreeDots
25
+ a as renderPageNum,
26
+ u as renderThreeDots
24
27
  };
25
28
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/components/Pagination/helpers.jsx"],"sourcesContent":["import { Page, P } from './styles';\n\nexport const renderPageNum = (selected, setPageNumber) => (page) => {\n const clickHandler = () => {\n setPageNumber(page);\n };\n\n return (\n <Page\n data-testid={selected === page ? 'current-page' : `test-${page}`}\n isSelected={selected === page}\n onClick={clickHandler}\n >\n {page}\n </Page>\n );\n};\n\nexport const renderThreeDots = () => (\n <>\n <P>.</P>\n <P>.</P>\n <P>.</P>\n </>\n);\n"],"names":["renderPageNum","selected","setPageNumber","page","clickHandler","jsx","Page","renderThreeDots","jsxs","Fragment","P"],"mappings":";;AAEO,MAAMA,IAAgB,CAACC,GAAUC,MAAkB,CAACC,MAAS;AAClE,QAAMC,IAAe,MAAM;AACzB,IAAAF,EAAcC,CAAI;AAAA,EACpB;AAEA,SACEE,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAaL,MAAaE,IAAO,iBAAiB,QAAQA,CAAI;AAAA,MAC9D,YAAYF,MAAaE;AAAA,MACzB,SAASC;AAAA,MAER,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaI,IAAkB,MAC7BC,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACE,UAAA;AAAA,EAAAJ,gBAAAA,EAAAA,IAACK,KAAE,UAAA,IAAA,CAAC;AAAA,EACJL,gBAAAA,EAAAA,IAACK,KAAE,UAAA,IAAA,CAAC;AAAA,EACJL,gBAAAA,EAAAA,IAACK,KAAE,UAAA,IAAA,CAAC;AAAA,EAAA,CACN;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/components/Pagination/helpers.jsx"],"sourcesContent":["import { FONT_SIZE_MAPPING, SIZE_REM_MAPPING } from './constants';\nimport { Page, P } from './styles';\n\nexport const renderPageNum = (size, selected, setPageNumber) => (page) => {\n const individualRemSize = SIZE_REM_MAPPING[size];\n const fontRemSize = FONT_SIZE_MAPPING[size];\n\n const clickHandler = () => {\n setPageNumber(page);\n };\n\n return (\n <Page\n data-testid={selected === page ? 'current-page' : `test-${page}`}\n isSelected={selected === page}\n onClick={clickHandler}\n {...{\n individualRemSize,\n fontRemSize,\n }}\n >\n {page}\n </Page>\n );\n};\n\nexport const renderThreeDots = () => (\n <>\n <P>.</P>\n <P>.</P>\n <P>.</P>\n </>\n);\n"],"names":["renderPageNum","size","selected","setPageNumber","page","individualRemSize","SIZE_REM_MAPPING","fontRemSize","FONT_SIZE_MAPPING","clickHandler","jsx","Page","renderThreeDots","jsxs","Fragment","P"],"mappings":";;;AAGO,MAAMA,IAAgB,CAACC,GAAMC,GAAUC,MAAkB,CAACC,MAAS;AACxE,QAAMC,IAAoBC,EAAiBL,CAAI,GACzCM,IAAcC,EAAkBP,CAAI,GAEpCQ,IAAe,MAAM;AACzB,IAAAN,EAAcC,CAAI;AAAA,EACpB;AAEA,SACEM,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAaT,MAAaE,IAAO,iBAAiB,QAAQA,CAAI;AAAA,MAC9D,YAAYF,MAAaE;AAAA,MACzB,SAASK;AAAA,MAEP,mBAAAJ;AAAA,MACA,aAAAE;AAAA,MAGD,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaQ,IAAkB,MAC7BC,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACE,UAAA;AAAA,EAAAJ,gBAAAA,EAAAA,IAACK,KAAE,UAAA,IAAA,CAAC;AAAA,EACJL,gBAAAA,EAAAA,IAACK,KAAE,UAAA,IAAA,CAAC;AAAA,EACJL,gBAAAA,EAAAA,IAACK,KAAE,UAAA,IAAA,CAAC;AAAA,EAAA,CACN;"}
@@ -1,41 +1,51 @@
1
- import r, { css as o } from "../../node_modules/styled-components/dist/styled-components.browser.esm.js";
1
+ import t, { css as r } from "../../node_modules/styled-components/dist/styled-components.browser.esm.js";
2
2
  import i from "../Icons/ChevronLeft/ChevronLeft.js";
3
3
  import n from "../Icons/ChevronRight/ChevronRight.js";
4
- import { WHITE as c, TEAL as s, GREY as t } from "../../colors/index.js";
5
- const d = r.div`
4
+ import { WHITE as c, TEAL as s, GREY as o } from "../../colors/index.js";
5
+ const f = t.div`
6
6
  display: flex;
7
7
  justify-content: center;
8
8
  align-items: center;
9
9
  gap: 0.6rem;
10
- min-width: 175rem;
11
- width: 175rem;
12
- `, h = r.div`
13
- height: 3rem;
14
- width: 3rem;
10
+ min-width: 100%;
11
+ width: 100%;
12
+ `, p = t.div`
13
+ height: ${({ individualRemSize: e }) => `${e}rem`};
14
+ width: ${({ individualRemSize: e }) => `${e}rem`};
15
15
  border-radius: 50%;
16
- padding-top: 0.6rem;
16
+ display: flex;
17
+ align-items: center;
18
+ flex-direction: column;
19
+ justify-content: center;
17
20
  text-align: center;
18
- font-size: 1.4rem;
19
- ${({ isSelected: e }) => e ? o`
21
+ font-size: ${({ fontRemSize: e }) => e}rem;
22
+ ${({ isSelected: e }) => e ? r`
20
23
  cursor: auto;
21
24
  color: ${c};
22
25
  background-color: ${s};
23
- ` : o`
26
+ ` : r`
24
27
  cursor: pointer;
25
- color: ${t};
28
+ color: ${o};
26
29
  `}
27
- `, g = r.p`
28
- color: ${t};
29
- `, f = r(i)`
30
+
31
+ `, h = t.p`
32
+ color: ${o};
33
+ `, g = t(i)`
30
34
  cursor: pointer;
31
- `, u = r(n)`
35
+ `, u = t(n)`
32
36
  cursor: pointer;
37
+ `, $ = t.div`
38
+ min-width: ${({ size: e }) => e};
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: space-between;
33
42
  `;
34
43
  export {
35
- d as AllPages,
36
- f as ClickableChevronLeft,
44
+ f as AllPages,
45
+ g as ClickableChevronLeft,
37
46
  u as ClickableChevronRight,
38
- g as P,
39
- h as Page
47
+ $ as MiddleLayer,
48
+ h as P,
49
+ p as Page
40
50
  };
41
51
  //# sourceMappingURL=styles.js.map
@@ -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: ${({individualRemSize}) => `${individualRemSize}rem`};\n width: ${({individualRemSize}) => `${individualRemSize}rem`};\n border-radius: 50%;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n text-align: center;\n font-size: ${({fontRemSize}) => fontRemSize}rem;\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`;\n // :hover {\n // color: red;\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\nexport const MiddleLayer = styled.div`\n min-width: ${({size}) => size};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n"],"names":["AllPages","styled","Page","individualRemSize","fontRemSize","isSelected","css","WHITE","TEAL","GREY","P","ClickableChevronLeft","ChevronLeft","ClickableChevronRight","ChevronRight","MiddleLayer","size"],"mappings":";;;;AAUY,MAACA,IAAWC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASlBC,IAAOD,EAAO;AAAA,YACf,CAAC,EAAC,mBAAAE,EAAiB,MAAM,GAAGA,CAAiB,KAAK;AAAA,WACnD,CAAC,EAAC,mBAAAA,EAAiB,MAAM,GAAGA,CAAiB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAO9C,CAAC,EAAC,aAAAC,EAAW,MAAMA,CAAW;AAAA,IACzC,CAAC,EAAE,YAAAC,EAAU,MACbA,IACIC;AAAAA;AAAAA,mBAEWC,CAAK;AAAA,8BACMC,CAAI;AAAA,YAE1BF;AAAAA;AAAAA,mBAEWG,CAAI;AAAA,SACd;AAAA;AAAA,GAOIC,IAAIT,EAAO;AAAA,WACbQ,CAAI;AAAA,GAGFE,IAAuBV,EAAOW,CAAW;AAAA;AAAA,GAIzCC,IAAwBZ,EAAOa,CAAY;AAAA;AAAA,GAI3CC,IAAcd,EAAO;AAAA,eACnB,CAAC,EAAC,MAAAe,EAAI,MAAMA,CAAI;AAAA;AAAA;AAAA;AAAA;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meticulous-ui",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "files": [
@@ -15,18 +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": {
23
25
  "dev": "vite",
24
26
  "build": "vite build",
25
27
  "format": "npx prettier --write .",
26
- "publish:latest": "npm run build && npm publish --access public"
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"
27
32
  },
28
33
  "dependencies": {
29
34
  "@vitejs/plugin-react": "^5.0.4",
30
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"
31
44
  }
32
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":";"}