mogh_ui 1.2.6 → 1.2.8

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.
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var list_pagination_exports = {};
20
+ __export(list_pagination_exports, {
21
+ ListPagination: () => ListPagination
22
+ });
23
+ module.exports = __toCommonJS(list_pagination_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_core = require("@mantine/core");
26
+ function ListPagination({
27
+ page,
28
+ setPage,
29
+ count,
30
+ pageSize,
31
+ ...props
32
+ }) {
33
+ if (count < pageSize && page === 0) return null;
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
35
+ import_core.Pagination.Root,
36
+ {
37
+ total: count >= pageSize ? page + 2 : page + 1,
38
+ value: page + 1,
39
+ onChange: (page2) => setPage(page2 - 1),
40
+ ...props,
41
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Group, { gap: "0.2rem", justify: "center", children: [
42
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Pagination.First, {}),
43
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Pagination.Previous, {}),
44
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Pagination.Items, {}),
45
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Pagination.Next, {})
46
+ ] })
47
+ }
48
+ );
49
+ }
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ ListPagination
53
+ });
54
+ //# sourceMappingURL=list-pagination.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/list-pagination.tsx"],"sourcesContent":["import { Group, Pagination, PaginationRootProps } from \"@mantine/core\";\n\nexport interface ListPaginationProps extends Omit<\n Omit<Omit<PaginationRootProps, \"total\">, \"value\">,\n \"onChange\"\n> {\n page: number;\n setPage: (page: number) => void;\n count: number;\n /** The number of entries in a full page */\n pageSize: number;\n}\n\n/**\n * Pagination controls for list calls.\n */\nexport function ListPagination({\n page,\n setPage,\n count,\n pageSize,\n ...props\n}: ListPaginationProps) {\n if (count < pageSize && page === 0) return null;\n return (\n <Pagination.Root\n total={count >= pageSize ? page + 2 : page + 1}\n value={page + 1}\n onChange={(page) => setPage(page - 1)}\n {...props}\n >\n <Group gap=\"0.2rem\" justify=\"center\">\n <Pagination.First />\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n </Group>\n </Pagination.Root>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BM;AA/BN,kBAAuD;AAgBhD,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwB;AACtB,MAAI,QAAQ,YAAY,SAAS,EAAG,QAAO;AAC3C,SACE;AAAA,IAAC,uBAAW;AAAA,IAAX;AAAA,MACC,OAAO,SAAS,WAAW,OAAO,IAAI,OAAO;AAAA,MAC7C,OAAO,OAAO;AAAA,MACd,UAAU,CAACA,UAAS,QAAQA,QAAO,CAAC;AAAA,MACnC,GAAG;AAAA,MAEJ,uDAAC,qBAAM,KAAI,UAAS,SAAQ,UAC1B;AAAA,oDAAC,uBAAW,OAAX,EAAiB;AAAA,QAClB,4CAAC,uBAAW,UAAX,EAAoB;AAAA,QACrB,4CAAC,uBAAW,OAAX,EAAiB;AAAA,QAClB,4CAAC,uBAAW,MAAX,EAAgB;AAAA,SACnB;AAAA;AAAA,EACF;AAEJ;","names":["page"]}
@@ -0,0 +1,13 @@
1
+ import { PaginationRootProps } from "@mantine/core";
2
+ export interface ListPaginationProps extends Omit<Omit<Omit<PaginationRootProps, "total">, "value">, "onChange"> {
3
+ page: number;
4
+ setPage: (page: number) => void;
5
+ count: number;
6
+ /** The number of entries in a full page */
7
+ pageSize: number;
8
+ }
9
+ /**
10
+ * Pagination controls for list calls.
11
+ */
12
+ export declare function ListPagination({ page, setPage, count, pageSize, ...props }: ListPaginationProps): import("react").JSX.Element | null;
13
+ //# sourceMappingURL=list-pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-pagination.d.ts","sourceRoot":"","sources":["../../src/components/list-pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EACjD,UAAU,CACX;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,mBAAmB,sCAiBrB"}
@@ -0,0 +1,30 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Group, Pagination } from "@mantine/core";
3
+ function ListPagination({
4
+ page,
5
+ setPage,
6
+ count,
7
+ pageSize,
8
+ ...props
9
+ }) {
10
+ if (count < pageSize && page === 0) return null;
11
+ return /* @__PURE__ */ jsx(
12
+ Pagination.Root,
13
+ {
14
+ total: count >= pageSize ? page + 2 : page + 1,
15
+ value: page + 1,
16
+ onChange: (page2) => setPage(page2 - 1),
17
+ ...props,
18
+ children: /* @__PURE__ */ jsxs(Group, { gap: "0.2rem", justify: "center", children: [
19
+ /* @__PURE__ */ jsx(Pagination.First, {}),
20
+ /* @__PURE__ */ jsx(Pagination.Previous, {}),
21
+ /* @__PURE__ */ jsx(Pagination.Items, {}),
22
+ /* @__PURE__ */ jsx(Pagination.Next, {})
23
+ ] })
24
+ }
25
+ );
26
+ }
27
+ export {
28
+ ListPagination
29
+ };
30
+ //# sourceMappingURL=list-pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/list-pagination.tsx"],"sourcesContent":["import { Group, Pagination, PaginationRootProps } from \"@mantine/core\";\n\nexport interface ListPaginationProps extends Omit<\n Omit<Omit<PaginationRootProps, \"total\">, \"value\">,\n \"onChange\"\n> {\n page: number;\n setPage: (page: number) => void;\n count: number;\n /** The number of entries in a full page */\n pageSize: number;\n}\n\n/**\n * Pagination controls for list calls.\n */\nexport function ListPagination({\n page,\n setPage,\n count,\n pageSize,\n ...props\n}: ListPaginationProps) {\n if (count < pageSize && page === 0) return null;\n return (\n <Pagination.Root\n total={count >= pageSize ? page + 2 : page + 1}\n value={page + 1}\n onChange={(page) => setPage(page - 1)}\n {...props}\n >\n <Group gap=\"0.2rem\" justify=\"center\">\n <Pagination.First />\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n </Group>\n </Pagination.Root>\n );\n}\n"],"mappings":"AA+BM,SACE,KADF;AA/BN,SAAS,OAAO,kBAAuC;AAgBhD,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwB;AACtB,MAAI,QAAQ,YAAY,SAAS,EAAG,QAAO;AAC3C,SACE;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC,OAAO,SAAS,WAAW,OAAO,IAAI,OAAO;AAAA,MAC7C,OAAO,OAAO;AAAA,MACd,UAAU,CAACA,UAAS,QAAQA,QAAO,CAAC;AAAA,MACnC,GAAG;AAAA,MAEJ,+BAAC,SAAM,KAAI,UAAS,SAAQ,UAC1B;AAAA,4BAAC,WAAW,OAAX,EAAiB;AAAA,QAClB,oBAAC,WAAW,UAAX,EAAoB;AAAA,QACrB,oBAAC,WAAW,OAAX,EAAiB;AAAA,QAClB,oBAAC,WAAW,MAAX,EAAgB;AAAA,SACnB;AAAA;AAAA,EACF;AAEJ;","names":["page"]}
@@ -18,24 +18,50 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var tabbed_page_exports = {};
20
20
  __export(tabbed_page_exports, {
21
- TabbedPage: () => TabbedPage
21
+ TabbedPage: () => TabbedPage,
22
+ tabSlug: () => tabSlug
22
23
  });
23
24
  module.exports = __toCommonJS(tabbed_page_exports);
24
25
  var import_jsx_runtime = require("react/jsx-runtime");
25
26
  var import_core = require("@mantine/core");
26
27
  var import_hooks = require("@mantine/hooks");
28
+ var import_react = require("react");
29
+ var import_react_router_dom = require("react-router-dom");
27
30
  var import_page = require("./page");
28
31
  var import_lucide_react = require("lucide-react");
32
+ function tabSlug(tab) {
33
+ return tab.toLowerCase().replace(/\s+/g, "-");
34
+ }
29
35
  function TabbedPage({
30
36
  storageKey,
37
+ queryKey = "tab",
31
38
  tabs,
32
39
  ...tabsProps
33
40
  }) {
34
41
  const defaultTab = tabs[0]?.tab;
35
- const [selectedTab, setSelectedTab] = (0, import_hooks.useLocalStorage)({
42
+ const [storedTab, setStoredTab] = (0, import_hooks.useLocalStorage)({
36
43
  key: storageKey,
37
44
  defaultValue: defaultTab
38
45
  });
46
+ const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
47
+ const querySlug = queryKey ? searchParams.get(queryKey) : null;
48
+ const queryTab = querySlug ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab : void 0;
49
+ const selectedTab = queryTab ?? storedTab;
50
+ const setSelectedTab = (0, import_react.useCallback)(
51
+ (tab) => {
52
+ setStoredTab(tab);
53
+ if (queryKey) {
54
+ setSearchParams(
55
+ (params) => {
56
+ params.set(queryKey, tabSlug(tab));
57
+ return params;
58
+ },
59
+ { replace: true }
60
+ );
61
+ }
62
+ },
63
+ [queryKey, setStoredTab, setSearchParams]
64
+ );
39
65
  const Content = tabs.find((tab) => tab.tab === selectedTab)?.content ?? (() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Center, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.CircleQuestionMark, { size: 22 }) }));
40
66
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
67
  import_core.Tabs,
@@ -61,6 +87,7 @@ function TabbedPage({
61
87
  }
62
88
  // Annotate the CommonJS export names for ESM import in node:
63
89
  0 && (module.exports = {
64
- TabbedPage
90
+ TabbedPage,
91
+ tabSlug
65
92
  });
66
93
  //# sourceMappingURL=tabbed-page.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC } from \"react\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n tabs: TabbedPageItem<Tab>[];\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [selectedTab, setSelectedTab] = useLocalStorage<Tab>({\n key: storageKey,\n defaultValue: defaultTab,\n });\n const Content =\n tabs.find((tab) => tab.tab === selectedTab)?.content ??\n (() => (\n <Center>\n <CircleQuestionMark size={22} />\n </Center>\n ));\n return (\n <Tabs\n value={selectedTab}\n onChange={(tab) => setSelectedTab((tab as Tab) ?? defaultTab)}\n {...tabsProps}\n >\n <Page\n customTitle={\n <Tabs.List>\n {tabs.map(({ tab, icon }) => {\n const Icon = icon ?? CircleQuestionMark;\n return (\n <Tabs.Tab key={tab} value={tab}>\n <Group opacity={tab === selectedTab ? 1 : 0.6}>\n <Icon size={20} />\n <Text fz=\"h3\">{tab}</Text>\n </Group>\n </Tabs.Tab>\n );\n })}\n </Tabs.List>\n }\n >\n <Content />\n </Page>\n </Tabs>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuCQ;AAvCR,kBAOO;AACP,mBAAgC;AAEhC,kBAAqB;AACrB,0BAAmC;AAc5B,SAAS,WAA+B;AAAA,EAC7C;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,aAAa,KAAK,CAAC,GAAG;AAC5B,QAAM,CAAC,aAAa,cAAc,QAAI,8BAAqB;AAAA,IACzD,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AACD,QAAM,UACJ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,WAAW,GAAG,YAC5C,MACC,4CAAC,sBACC,sDAAC,0CAAmB,MAAM,IAAI,GAChC;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU,CAAC,QAAQ,eAAgB,OAAe,UAAU;AAAA,MAC3D,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,aACE,4CAAC,iBAAK,MAAL,EACE,eAAK,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;AAC3B,kBAAM,OAAO,QAAQ;AACrB,mBACE,4CAAC,iBAAK,KAAL,EAAmB,OAAO,KACzB,uDAAC,qBAAM,SAAS,QAAQ,cAAc,IAAI,KACxC;AAAA,0DAAC,QAAK,MAAM,IAAI;AAAA,cAChB,4CAAC,oBAAK,IAAG,MAAM,eAAI;AAAA,eACrB,KAJa,GAKf;AAAA,UAEJ,CAAC,GACH;AAAA,UAGF,sDAAC,WAAQ;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC, useCallback } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n /**\n * Sync the selected tab with this url query param, so links\n * can target a specific tab, eg. `/settings?tab=secret-providers`.\n * Tabs are matched by slug (lowercased, spaces to '-').\n * The query takes priority over localStorage.\n * Default: \"tab\". Pass false to disable.\n */\n queryKey?: string | false;\n tabs: TabbedPageItem<Tab>[];\n}\n\n/** \"Secret Providers\" => \"secret-providers\" */\nexport function tabSlug(tab: string) {\n return tab.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n queryKey = \"tab\",\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [storedTab, setStoredTab] = useLocalStorage<Tab>({\n key: storageKey,\n defaultValue: defaultTab,\n });\n\n const [searchParams, setSearchParams] = useSearchParams();\n const querySlug = queryKey ? searchParams.get(queryKey) : null;\n const queryTab = querySlug\n ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab\n : undefined;\n\n const selectedTab = queryTab ?? storedTab;\n const setSelectedTab = useCallback(\n (tab: Tab) => {\n setStoredTab(tab);\n if (queryKey) {\n setSearchParams(\n (params) => {\n params.set(queryKey, tabSlug(tab));\n return params;\n },\n { replace: true },\n );\n }\n },\n [queryKey, setStoredTab, setSearchParams],\n );\n\n const Content =\n tabs.find((tab) => tab.tab === selectedTab)?.content ??\n (() => (\n <Center>\n <CircleQuestionMark size={22} />\n </Center>\n ));\n return (\n <Tabs\n value={selectedTab}\n onChange={(tab) => setSelectedTab((tab as Tab) ?? defaultTab)}\n {...tabsProps}\n >\n <Page\n customTitle={\n <Tabs.List>\n {tabs.map(({ tab, icon }) => {\n const Icon = icon ?? CircleQuestionMark;\n return (\n <Tabs.Tab key={tab} value={tab}>\n <Group opacity={tab === selectedTab ? 1 : 0.6}>\n <Icon size={20} />\n <Text fz=\"h3\">{tab}</Text>\n </Group>\n </Tabs.Tab>\n );\n })}\n </Tabs.List>\n }\n >\n <Content />\n </Page>\n </Tabs>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8EQ;AA9ER,kBAOO;AACP,mBAAgC;AAChC,mBAAgC;AAChC,8BAAgC;AAChC,kBAAqB;AACrB,0BAAmC;AAuB5B,SAAS,QAAQ,KAAa;AACnC,SAAO,IAAI,YAAY,EAAE,QAAQ,QAAQ,GAAG;AAC9C;AAEO,SAAS,WAA+B;AAAA,EAC7C;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,aAAa,KAAK,CAAC,GAAG;AAC5B,QAAM,CAAC,WAAW,YAAY,QAAI,8BAAqB;AAAA,IACrD,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,CAAC,cAAc,eAAe,QAAI,yCAAgB;AACxD,QAAM,YAAY,WAAW,aAAa,IAAI,QAAQ,IAAI;AAC1D,QAAM,WAAW,YACb,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,QAAQ,GAAG,MAAM,SAAS,GAAG,MACpD;AAEJ,QAAM,cAAc,YAAY;AAChC,QAAM,qBAAiB;AAAA,IACrB,CAAC,QAAa;AACZ,mBAAa,GAAG;AAChB,UAAI,UAAU;AACZ;AAAA,UACE,CAAC,WAAW;AACV,mBAAO,IAAI,UAAU,QAAQ,GAAG,CAAC;AACjC,mBAAO;AAAA,UACT;AAAA,UACA,EAAE,SAAS,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,UAAU,cAAc,eAAe;AAAA,EAC1C;AAEA,QAAM,UACJ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,WAAW,GAAG,YAC5C,MACC,4CAAC,sBACC,sDAAC,0CAAmB,MAAM,IAAI,GAChC;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU,CAAC,QAAQ,eAAgB,OAAe,UAAU;AAAA,MAC3D,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,aACE,4CAAC,iBAAK,MAAL,EACE,eAAK,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;AAC3B,kBAAM,OAAO,QAAQ;AACrB,mBACE,4CAAC,iBAAK,KAAL,EAAmB,OAAO,KACzB,uDAAC,qBAAM,SAAS,QAAQ,cAAc,IAAI,KACxC;AAAA,0DAAC,QAAK,MAAM,IAAI;AAAA,cAChB,4CAAC,oBAAK,IAAG,MAAM,eAAI;AAAA,eACrB,KAJa,GAKf;AAAA,UAEJ,CAAC,GACH;AAAA,UAGF,sDAAC,WAAQ;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -10,7 +10,17 @@ export type TabbedPageItem<Tab extends string> = {
10
10
  export interface TabbedPageProps<Tab extends string> extends TabsProps {
11
11
  /** Store current tab on localStorage */
12
12
  storageKey: string;
13
+ /**
14
+ * Sync the selected tab with this url query param, so links
15
+ * can target a specific tab, eg. `/settings?tab=secret-providers`.
16
+ * Tabs are matched by slug (lowercased, spaces to '-').
17
+ * The query takes priority over localStorage.
18
+ * Default: "tab". Pass false to disable.
19
+ */
20
+ queryKey?: string | false;
13
21
  tabs: TabbedPageItem<Tab>[];
14
22
  }
15
- export declare function TabbedPage<Tab extends string>({ storageKey, tabs, ...tabsProps }: TabbedPageProps<Tab>): import("react").JSX.Element;
23
+ /** "Secret Providers" => "secret-providers" */
24
+ export declare function tabSlug(tab: string): string;
25
+ export declare function TabbedPage<Tab extends string>({ storageKey, queryKey, tabs, ...tabsProps }: TabbedPageProps<Tab>): import("react").JSX.Element;
16
26
  //# sourceMappingURL=tabbed-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabbed-page.d.ts","sourceRoot":"","sources":["../../src/components/tabbed-page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAI3B,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,MAAM,IAAI;IAC/C,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,eAAe,CAAC,GAAG,SAAS,MAAM,CAAE,SAAQ,SAAS;IACpE,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAS,MAAM,EAAE,EAC7C,UAAU,EACV,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,eAAe,CAAC,GAAG,CAAC,+BAwCtB"}
1
+ {"version":3,"file":"tabbed-page.d.ts","sourceRoot":"","sources":["../../src/components/tabbed-page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,MAAM,IAAI;IAC/C,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,eAAe,CAAC,GAAG,SAAS,MAAM,CAAE,SAAQ,SAAS;IACpE,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;CAC7B;AAED,+CAA+C;AAC/C,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAElC;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAS,MAAM,EAAE,EAC7C,UAAU,EACV,QAAgB,EAChB,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,eAAe,CAAC,GAAG,CAAC,+BAgEtB"}
@@ -6,18 +6,43 @@ import {
6
6
  Text
7
7
  } from "@mantine/core";
8
8
  import { useLocalStorage } from "@mantine/hooks";
9
+ import { useCallback } from "react";
10
+ import { useSearchParams } from "react-router-dom";
9
11
  import { Page } from "./page";
10
12
  import { CircleQuestionMark } from "lucide-react";
13
+ function tabSlug(tab) {
14
+ return tab.toLowerCase().replace(/\s+/g, "-");
15
+ }
11
16
  function TabbedPage({
12
17
  storageKey,
18
+ queryKey = "tab",
13
19
  tabs,
14
20
  ...tabsProps
15
21
  }) {
16
22
  const defaultTab = tabs[0]?.tab;
17
- const [selectedTab, setSelectedTab] = useLocalStorage({
23
+ const [storedTab, setStoredTab] = useLocalStorage({
18
24
  key: storageKey,
19
25
  defaultValue: defaultTab
20
26
  });
27
+ const [searchParams, setSearchParams] = useSearchParams();
28
+ const querySlug = queryKey ? searchParams.get(queryKey) : null;
29
+ const queryTab = querySlug ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab : void 0;
30
+ const selectedTab = queryTab ?? storedTab;
31
+ const setSelectedTab = useCallback(
32
+ (tab) => {
33
+ setStoredTab(tab);
34
+ if (queryKey) {
35
+ setSearchParams(
36
+ (params) => {
37
+ params.set(queryKey, tabSlug(tab));
38
+ return params;
39
+ },
40
+ { replace: true }
41
+ );
42
+ }
43
+ },
44
+ [queryKey, setStoredTab, setSearchParams]
45
+ );
21
46
  const Content = tabs.find((tab) => tab.tab === selectedTab)?.content ?? (() => /* @__PURE__ */ jsx(Center, { children: /* @__PURE__ */ jsx(CircleQuestionMark, { size: 22 }) }));
22
47
  return /* @__PURE__ */ jsx(
23
48
  Tabs,
@@ -42,6 +67,7 @@ function TabbedPage({
42
67
  );
43
68
  }
44
69
  export {
45
- TabbedPage
70
+ TabbedPage,
71
+ tabSlug
46
72
  };
47
73
  //# sourceMappingURL=tabbed-page.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC } from \"react\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n tabs: TabbedPageItem<Tab>[];\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [selectedTab, setSelectedTab] = useLocalStorage<Tab>({\n key: storageKey,\n defaultValue: defaultTab,\n });\n const Content =\n tabs.find((tab) => tab.tab === selectedTab)?.content ??\n (() => (\n <Center>\n <CircleQuestionMark size={22} />\n </Center>\n ));\n return (\n <Tabs\n value={selectedTab}\n onChange={(tab) => setSelectedTab((tab as Tab) ?? defaultTab)}\n {...tabsProps}\n >\n <Page\n customTitle={\n <Tabs.List>\n {tabs.map(({ tab, icon }) => {\n const Icon = icon ?? CircleQuestionMark;\n return (\n <Tabs.Tab key={tab} value={tab}>\n <Group opacity={tab === selectedTab ? 1 : 0.6}>\n <Icon size={20} />\n <Text fz=\"h3\">{tab}</Text>\n </Group>\n </Tabs.Tab>\n );\n })}\n </Tabs.List>\n }\n >\n <Content />\n </Page>\n </Tabs>\n );\n}\n"],"mappings":"AAuCQ,cAgBU,YAhBV;AAvCR;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,uBAAuB;AAEhC,SAAS,YAAY;AACrB,SAAS,0BAA0B;AAc5B,SAAS,WAA+B;AAAA,EAC7C;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,aAAa,KAAK,CAAC,GAAG;AAC5B,QAAM,CAAC,aAAa,cAAc,IAAI,gBAAqB;AAAA,IACzD,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AACD,QAAM,UACJ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,WAAW,GAAG,YAC5C,MACC,oBAAC,UACC,8BAAC,sBAAmB,MAAM,IAAI,GAChC;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU,CAAC,QAAQ,eAAgB,OAAe,UAAU;AAAA,MAC3D,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,aACE,oBAAC,KAAK,MAAL,EACE,eAAK,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;AAC3B,kBAAM,OAAO,QAAQ;AACrB,mBACE,oBAAC,KAAK,KAAL,EAAmB,OAAO,KACzB,+BAAC,SAAM,SAAS,QAAQ,cAAc,IAAI,KACxC;AAAA,kCAAC,QAAK,MAAM,IAAI;AAAA,cAChB,oBAAC,QAAK,IAAG,MAAM,eAAI;AAAA,eACrB,KAJa,GAKf;AAAA,UAEJ,CAAC,GACH;AAAA,UAGF,8BAAC,WAAQ;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/tabbed-page.tsx"],"sourcesContent":["import {\n Center,\n DefaultMantineColor,\n Group,\n Tabs,\n TabsProps,\n Text,\n} from \"@mantine/core\";\nimport { useLocalStorage } from \"@mantine/hooks\";\nimport { FC, useCallback } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { Page } from \"./page\";\nimport { CircleQuestionMark } from \"lucide-react\";\n\nexport type TabbedPageItem<Tab extends string> = {\n tab: Tab;\n icon?: FC<{ size?: string | number }>;\n content?: FC;\n};\n\nexport interface TabbedPageProps<Tab extends string> extends TabsProps {\n /** Store current tab on localStorage */\n storageKey: string;\n /**\n * Sync the selected tab with this url query param, so links\n * can target a specific tab, eg. `/settings?tab=secret-providers`.\n * Tabs are matched by slug (lowercased, spaces to '-').\n * The query takes priority over localStorage.\n * Default: \"tab\". Pass false to disable.\n */\n queryKey?: string | false;\n tabs: TabbedPageItem<Tab>[];\n}\n\n/** \"Secret Providers\" => \"secret-providers\" */\nexport function tabSlug(tab: string) {\n return tab.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\nexport function TabbedPage<Tab extends string>({\n storageKey,\n queryKey = \"tab\",\n tabs,\n ...tabsProps\n}: TabbedPageProps<Tab>) {\n const defaultTab = tabs[0]?.tab;\n const [storedTab, setStoredTab] = useLocalStorage<Tab>({\n key: storageKey,\n defaultValue: defaultTab,\n });\n\n const [searchParams, setSearchParams] = useSearchParams();\n const querySlug = queryKey ? searchParams.get(queryKey) : null;\n const queryTab = querySlug\n ? tabs.find(({ tab }) => tabSlug(tab) === querySlug)?.tab\n : undefined;\n\n const selectedTab = queryTab ?? storedTab;\n const setSelectedTab = useCallback(\n (tab: Tab) => {\n setStoredTab(tab);\n if (queryKey) {\n setSearchParams(\n (params) => {\n params.set(queryKey, tabSlug(tab));\n return params;\n },\n { replace: true },\n );\n }\n },\n [queryKey, setStoredTab, setSearchParams],\n );\n\n const Content =\n tabs.find((tab) => tab.tab === selectedTab)?.content ??\n (() => (\n <Center>\n <CircleQuestionMark size={22} />\n </Center>\n ));\n return (\n <Tabs\n value={selectedTab}\n onChange={(tab) => setSelectedTab((tab as Tab) ?? defaultTab)}\n {...tabsProps}\n >\n <Page\n customTitle={\n <Tabs.List>\n {tabs.map(({ tab, icon }) => {\n const Icon = icon ?? CircleQuestionMark;\n return (\n <Tabs.Tab key={tab} value={tab}>\n <Group opacity={tab === selectedTab ? 1 : 0.6}>\n <Icon size={20} />\n <Text fz=\"h3\">{tab}</Text>\n </Group>\n </Tabs.Tab>\n );\n })}\n </Tabs.List>\n }\n >\n <Content />\n </Page>\n </Tabs>\n );\n}\n"],"mappings":"AA8EQ,cAgBU,YAhBV;AA9ER;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,uBAAuB;AAChC,SAAa,mBAAmB;AAChC,SAAS,uBAAuB;AAChC,SAAS,YAAY;AACrB,SAAS,0BAA0B;AAuB5B,SAAS,QAAQ,KAAa;AACnC,SAAO,IAAI,YAAY,EAAE,QAAQ,QAAQ,GAAG;AAC9C;AAEO,SAAS,WAA+B;AAAA,EAC7C;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,aAAa,KAAK,CAAC,GAAG;AAC5B,QAAM,CAAC,WAAW,YAAY,IAAI,gBAAqB;AAAA,IACrD,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AAED,QAAM,CAAC,cAAc,eAAe,IAAI,gBAAgB;AACxD,QAAM,YAAY,WAAW,aAAa,IAAI,QAAQ,IAAI;AAC1D,QAAM,WAAW,YACb,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,QAAQ,GAAG,MAAM,SAAS,GAAG,MACpD;AAEJ,QAAM,cAAc,YAAY;AAChC,QAAM,iBAAiB;AAAA,IACrB,CAAC,QAAa;AACZ,mBAAa,GAAG;AAChB,UAAI,UAAU;AACZ;AAAA,UACE,CAAC,WAAW;AACV,mBAAO,IAAI,UAAU,QAAQ,GAAG,CAAC;AACjC,mBAAO;AAAA,UACT;AAAA,UACA,EAAE,SAAS,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,UAAU,cAAc,eAAe;AAAA,EAC1C;AAEA,QAAM,UACJ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,WAAW,GAAG,YAC5C,MACC,oBAAC,UACC,8BAAC,sBAAmB,MAAM,IAAI,GAChC;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU,CAAC,QAAQ,eAAgB,OAAe,UAAU;AAAA,MAC3D,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,aACE,oBAAC,KAAK,MAAL,EACE,eAAK,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;AAC3B,kBAAM,OAAO,QAAQ;AACrB,mBACE,oBAAC,KAAK,KAAL,EAAmB,OAAO,KACzB,+BAAC,SAAM,SAAS,QAAQ,cAAc,IAAI,KACxC;AAAA,kCAAC,QAAK,MAAM,IAAI;AAAA,cAChB,oBAAC,QAAK,IAAG,MAAM,eAAI;AAAA,eACrB,KAJa,GAKf;AAAA,UAEJ,CAAC,GACH;AAAA,UAGF,8BAAC,WAAQ;AAAA;AAAA,MACX;AAAA;AAAA,EACF;AAEJ;","names":[]}
package/dist/index.cjs CHANGED
@@ -42,6 +42,7 @@ __reExport(index_exports, require("./components/info-card"), module.exports);
42
42
  __reExport(index_exports, require("./components/input-list"), module.exports);
43
43
  __reExport(index_exports, require("./components/labelled-switch"), module.exports);
44
44
  __reExport(index_exports, require("./components/labels-group"), module.exports);
45
+ __reExport(index_exports, require("./components/list-pagination"), module.exports);
45
46
  __reExport(index_exports, require("./components/loading-screen"), module.exports);
46
47
  __reExport(index_exports, require("./components/mobile-friendly-tabs"), module.exports);
47
48
  __reExport(index_exports, require("./components/page-breadcrumbs"), module.exports);
@@ -87,6 +88,7 @@ __reExport(index_exports, require("./components/theme-toggle"), module.exports);
87
88
  ...require("./components/input-list"),
88
89
  ...require("./components/labelled-switch"),
89
90
  ...require("./components/labels-group"),
91
+ ...require("./components/list-pagination"),
90
92
  ...require("./components/loading-screen"),
91
93
  ...require("./components/mobile-friendly-tabs"),
92
94
  ...require("./components/page-breadcrumbs"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./auth\";\nexport * from \"./color\";\nexport * from \"./formatting\";\nexport * from \"./hooks\";\nexport * from \"./theme\";\nexport * from \"./utils\";\nexport * from \"./components/config\";\nexport * from \"./components/divided-children\";\nexport * from \"./components/fancy-card\";\nexport * from \"./components/monaco\";\nexport * from \"./components/back-button\";\nexport * from \"./components/button-link\";\nexport * from \"./components/confirm-button\";\nexport * from \"./components/confirm-icon\";\nexport * from \"./components/confirm-modal\";\nexport * from \"./components/copy-button\";\nexport * from \"./components/copy-text\";\nexport * from \"./components/create-modal\";\nexport * from \"./components/data-table\";\nexport * from \"./components/enable-switch\";\nexport * from \"./components/entity-header\";\nexport * from \"./components/entity-page\";\nexport * from \"./components/hover-error\";\nexport * from \"./components/info-card\";\nexport * from \"./components/input-list\";\nexport * from \"./components/labelled-switch\";\nexport * from \"./components/labels-group\";\nexport * from \"./components/loading-screen\";\nexport * from \"./components/mobile-friendly-tabs\";\nexport * from \"./components/page-breadcrumbs\";\nexport * from \"./components/page-guard\";\nexport * from \"./components/page\";\nexport * from \"./components/search-input\";\nexport * from \"./components/section\";\nexport * from \"./components/shared-text-update\";\nexport * from \"./components/show-hide-button\";\nexport * from \"./components/stat-bar\";\nexport * from \"./components/stat-cell\";\nexport * from \"./components/status-badge\";\nexport * from \"./components/tabbed-page\";\nexport * from \"./components/table-skeleton\";\nexport * from \"./components/text-update-modal\";\nexport * from \"./components/theme-toggle\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,mBAAd;AACA,0BAAc,oBADd;AAEA,0BAAc,yBAFd;AAGA,0BAAc,oBAHd;AAIA,0BAAc,oBAJd;AAKA,0BAAc,oBALd;AAMA,0BAAc,gCANd;AAOA,0BAAc,0CAPd;AAQA,0BAAc,oCARd;AASA,0BAAc,gCATd;AAUA,0BAAc,qCAVd;AAWA,0BAAc,qCAXd;AAYA,0BAAc,wCAZd;AAaA,0BAAc,sCAbd;AAcA,0BAAc,uCAdd;AAeA,0BAAc,qCAfd;AAgBA,0BAAc,mCAhBd;AAiBA,0BAAc,sCAjBd;AAkBA,0BAAc,oCAlBd;AAmBA,0BAAc,uCAnBd;AAoBA,0BAAc,uCApBd;AAqBA,0BAAc,qCArBd;AAsBA,0BAAc,qCAtBd;AAuBA,0BAAc,mCAvBd;AAwBA,0BAAc,oCAxBd;AAyBA,0BAAc,yCAzBd;AA0BA,0BAAc,sCA1Bd;AA2BA,0BAAc,wCA3Bd;AA4BA,0BAAc,8CA5Bd;AA6BA,0BAAc,0CA7Bd;AA8BA,0BAAc,oCA9Bd;AA+BA,0BAAc,8BA/Bd;AAgCA,0BAAc,sCAhCd;AAiCA,0BAAc,iCAjCd;AAkCA,0BAAc,4CAlCd;AAmCA,0BAAc,0CAnCd;AAoCA,0BAAc,kCApCd;AAqCA,0BAAc,mCArCd;AAsCA,0BAAc,sCAtCd;AAuCA,0BAAc,qCAvCd;AAwCA,0BAAc,wCAxCd;AAyCA,0BAAc,2CAzCd;AA0CA,0BAAc,sCA1Cd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./auth\";\nexport * from \"./color\";\nexport * from \"./formatting\";\nexport * from \"./hooks\";\nexport * from \"./theme\";\nexport * from \"./utils\";\nexport * from \"./components/config\";\nexport * from \"./components/divided-children\";\nexport * from \"./components/fancy-card\";\nexport * from \"./components/monaco\";\nexport * from \"./components/back-button\";\nexport * from \"./components/button-link\";\nexport * from \"./components/confirm-button\";\nexport * from \"./components/confirm-icon\";\nexport * from \"./components/confirm-modal\";\nexport * from \"./components/copy-button\";\nexport * from \"./components/copy-text\";\nexport * from \"./components/create-modal\";\nexport * from \"./components/data-table\";\nexport * from \"./components/enable-switch\";\nexport * from \"./components/entity-header\";\nexport * from \"./components/entity-page\";\nexport * from \"./components/hover-error\";\nexport * from \"./components/info-card\";\nexport * from \"./components/input-list\";\nexport * from \"./components/labelled-switch\";\nexport * from \"./components/labels-group\";\nexport * from \"./components/list-pagination\";\nexport * from \"./components/loading-screen\";\nexport * from \"./components/mobile-friendly-tabs\";\nexport * from \"./components/page-breadcrumbs\";\nexport * from \"./components/page-guard\";\nexport * from \"./components/page\";\nexport * from \"./components/search-input\";\nexport * from \"./components/section\";\nexport * from \"./components/shared-text-update\";\nexport * from \"./components/show-hide-button\";\nexport * from \"./components/stat-bar\";\nexport * from \"./components/stat-cell\";\nexport * from \"./components/status-badge\";\nexport * from \"./components/tabbed-page\";\nexport * from \"./components/table-skeleton\";\nexport * from \"./components/text-update-modal\";\nexport * from \"./components/theme-toggle\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,mBAAd;AACA,0BAAc,oBADd;AAEA,0BAAc,yBAFd;AAGA,0BAAc,oBAHd;AAIA,0BAAc,oBAJd;AAKA,0BAAc,oBALd;AAMA,0BAAc,gCANd;AAOA,0BAAc,0CAPd;AAQA,0BAAc,oCARd;AASA,0BAAc,gCATd;AAUA,0BAAc,qCAVd;AAWA,0BAAc,qCAXd;AAYA,0BAAc,wCAZd;AAaA,0BAAc,sCAbd;AAcA,0BAAc,uCAdd;AAeA,0BAAc,qCAfd;AAgBA,0BAAc,mCAhBd;AAiBA,0BAAc,sCAjBd;AAkBA,0BAAc,oCAlBd;AAmBA,0BAAc,uCAnBd;AAoBA,0BAAc,uCApBd;AAqBA,0BAAc,qCArBd;AAsBA,0BAAc,qCAtBd;AAuBA,0BAAc,mCAvBd;AAwBA,0BAAc,oCAxBd;AAyBA,0BAAc,yCAzBd;AA0BA,0BAAc,sCA1Bd;AA2BA,0BAAc,yCA3Bd;AA4BA,0BAAc,wCA5Bd;AA6BA,0BAAc,8CA7Bd;AA8BA,0BAAc,0CA9Bd;AA+BA,0BAAc,oCA/Bd;AAgCA,0BAAc,8BAhCd;AAiCA,0BAAc,sCAjCd;AAkCA,0BAAc,iCAlCd;AAmCA,0BAAc,4CAnCd;AAoCA,0BAAc,0CApCd;AAqCA,0BAAc,kCArCd;AAsCA,0BAAc,mCAtCd;AAuCA,0BAAc,sCAvCd;AAwCA,0BAAc,qCAxCd;AAyCA,0BAAc,wCAzCd;AA0CA,0BAAc,2CA1Cd;AA2CA,0BAAc,sCA3Cd;","names":[]}
package/dist/index.d.ts CHANGED
@@ -25,6 +25,7 @@ export * from "./components/info-card";
25
25
  export * from "./components/input-list";
26
26
  export * from "./components/labelled-switch";
27
27
  export * from "./components/labels-group";
28
+ export * from "./components/list-pagination";
28
29
  export * from "./components/loading-screen";
29
30
  export * from "./components/mobile-friendly-tabs";
30
31
  export * from "./components/page-breadcrumbs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -25,6 +25,7 @@ export * from "./components/info-card";
25
25
  export * from "./components/input-list";
26
26
  export * from "./components/labelled-switch";
27
27
  export * from "./components/labels-group";
28
+ export * from "./components/list-pagination";
28
29
  export * from "./components/loading-screen";
29
30
  export * from "./components/mobile-friendly-tabs";
30
31
  export * from "./components/page-breadcrumbs";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./auth\";\nexport * from \"./color\";\nexport * from \"./formatting\";\nexport * from \"./hooks\";\nexport * from \"./theme\";\nexport * from \"./utils\";\nexport * from \"./components/config\";\nexport * from \"./components/divided-children\";\nexport * from \"./components/fancy-card\";\nexport * from \"./components/monaco\";\nexport * from \"./components/back-button\";\nexport * from \"./components/button-link\";\nexport * from \"./components/confirm-button\";\nexport * from \"./components/confirm-icon\";\nexport * from \"./components/confirm-modal\";\nexport * from \"./components/copy-button\";\nexport * from \"./components/copy-text\";\nexport * from \"./components/create-modal\";\nexport * from \"./components/data-table\";\nexport * from \"./components/enable-switch\";\nexport * from \"./components/entity-header\";\nexport * from \"./components/entity-page\";\nexport * from \"./components/hover-error\";\nexport * from \"./components/info-card\";\nexport * from \"./components/input-list\";\nexport * from \"./components/labelled-switch\";\nexport * from \"./components/labels-group\";\nexport * from \"./components/loading-screen\";\nexport * from \"./components/mobile-friendly-tabs\";\nexport * from \"./components/page-breadcrumbs\";\nexport * from \"./components/page-guard\";\nexport * from \"./components/page\";\nexport * from \"./components/search-input\";\nexport * from \"./components/section\";\nexport * from \"./components/shared-text-update\";\nexport * from \"./components/show-hide-button\";\nexport * from \"./components/stat-bar\";\nexport * from \"./components/stat-cell\";\nexport * from \"./components/status-badge\";\nexport * from \"./components/tabbed-page\";\nexport * from \"./components/table-skeleton\";\nexport * from \"./components/text-update-modal\";\nexport * from \"./components/theme-toggle\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./auth\";\nexport * from \"./color\";\nexport * from \"./formatting\";\nexport * from \"./hooks\";\nexport * from \"./theme\";\nexport * from \"./utils\";\nexport * from \"./components/config\";\nexport * from \"./components/divided-children\";\nexport * from \"./components/fancy-card\";\nexport * from \"./components/monaco\";\nexport * from \"./components/back-button\";\nexport * from \"./components/button-link\";\nexport * from \"./components/confirm-button\";\nexport * from \"./components/confirm-icon\";\nexport * from \"./components/confirm-modal\";\nexport * from \"./components/copy-button\";\nexport * from \"./components/copy-text\";\nexport * from \"./components/create-modal\";\nexport * from \"./components/data-table\";\nexport * from \"./components/enable-switch\";\nexport * from \"./components/entity-header\";\nexport * from \"./components/entity-page\";\nexport * from \"./components/hover-error\";\nexport * from \"./components/info-card\";\nexport * from \"./components/input-list\";\nexport * from \"./components/labelled-switch\";\nexport * from \"./components/labels-group\";\nexport * from \"./components/list-pagination\";\nexport * from \"./components/loading-screen\";\nexport * from \"./components/mobile-friendly-tabs\";\nexport * from \"./components/page-breadcrumbs\";\nexport * from \"./components/page-guard\";\nexport * from \"./components/page\";\nexport * from \"./components/search-input\";\nexport * from \"./components/section\";\nexport * from \"./components/shared-text-update\";\nexport * from \"./components/show-hide-button\";\nexport * from \"./components/stat-bar\";\nexport * from \"./components/stat-cell\";\nexport * from \"./components/status-badge\";\nexport * from \"./components/tabbed-page\";\nexport * from \"./components/table-skeleton\";\nexport * from \"./components/text-update-modal\";\nexport * from \"./components/theme-toggle\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mogh_ui",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "description": "Common UI components and styling used across Mogh apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",