@tanstack/pacer-devtools 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/PacerContextProvider.cjs +156 -0
  3. package/dist/cjs/PacerContextProvider.cjs.map +1 -0
  4. package/dist/cjs/PacerContextProvider.d.cts +19 -0
  5. package/dist/cjs/PacerDevtools.cjs +13 -0
  6. package/dist/cjs/PacerDevtools.cjs.map +1 -0
  7. package/dist/cjs/PacerDevtools.d.cts +1 -0
  8. package/dist/cjs/components/ActionButtons.cjs +157 -0
  9. package/dist/cjs/components/ActionButtons.cjs.map +1 -0
  10. package/dist/cjs/components/ActionButtons.d.cts +6 -0
  11. package/dist/cjs/components/DetailsPanel.cjs +80 -0
  12. package/dist/cjs/components/DetailsPanel.cjs.map +1 -0
  13. package/dist/cjs/components/DetailsPanel.d.cts +11 -0
  14. package/dist/cjs/components/Shell.cjs +102 -0
  15. package/dist/cjs/components/Shell.cjs.map +1 -0
  16. package/dist/cjs/components/Shell.d.cts +1 -0
  17. package/dist/cjs/components/StateHeader.cjs +95 -0
  18. package/dist/cjs/components/StateHeader.cjs.map +1 -0
  19. package/dist/cjs/components/StateHeader.d.cts +11 -0
  20. package/dist/cjs/components/UtilList.cjs +70 -0
  21. package/dist/cjs/components/UtilList.cjs.map +1 -0
  22. package/dist/cjs/components/UtilList.d.cts +8 -0
  23. package/dist/cjs/components/util-groups.cjs +40 -0
  24. package/dist/cjs/components/util-groups.cjs.map +1 -0
  25. package/dist/cjs/components/util-groups.d.cts +8 -0
  26. package/dist/cjs/core.cjs +43 -0
  27. package/dist/cjs/core.cjs.map +1 -0
  28. package/dist/cjs/core.d.cts +8 -0
  29. package/dist/cjs/index.cjs +15 -0
  30. package/dist/cjs/index.cjs.map +1 -0
  31. package/dist/cjs/index.d.cts +3 -0
  32. package/dist/cjs/production.cjs +7 -0
  33. package/dist/cjs/production.cjs.map +1 -0
  34. package/dist/cjs/production.d.cts +3 -0
  35. package/dist/cjs/styles/tokens.cjs +90 -0
  36. package/dist/cjs/styles/tokens.cjs.map +1 -0
  37. package/dist/cjs/styles/tokens.d.cts +298 -0
  38. package/dist/cjs/styles/use-styles.cjs +397 -0
  39. package/dist/cjs/styles/use-styles.cjs.map +1 -0
  40. package/dist/cjs/styles/use-styles.d.cts +42 -0
  41. package/dist/esm/PacerContextProvider.d.ts +19 -0
  42. package/dist/esm/PacerContextProvider.js +156 -0
  43. package/dist/esm/PacerContextProvider.js.map +1 -0
  44. package/dist/esm/PacerDevtools.d.ts +1 -0
  45. package/dist/esm/PacerDevtools.js +14 -0
  46. package/dist/esm/PacerDevtools.js.map +1 -0
  47. package/dist/esm/components/ActionButtons.d.ts +6 -0
  48. package/dist/esm/components/ActionButtons.js +157 -0
  49. package/dist/esm/components/ActionButtons.js.map +1 -0
  50. package/dist/esm/components/DetailsPanel.d.ts +11 -0
  51. package/dist/esm/components/DetailsPanel.js +80 -0
  52. package/dist/esm/components/DetailsPanel.js.map +1 -0
  53. package/dist/esm/components/Shell.d.ts +1 -0
  54. package/dist/esm/components/Shell.js +102 -0
  55. package/dist/esm/components/Shell.js.map +1 -0
  56. package/dist/esm/components/StateHeader.d.ts +11 -0
  57. package/dist/esm/components/StateHeader.js +95 -0
  58. package/dist/esm/components/StateHeader.js.map +1 -0
  59. package/dist/esm/components/UtilList.d.ts +8 -0
  60. package/dist/esm/components/UtilList.js +70 -0
  61. package/dist/esm/components/UtilList.js.map +1 -0
  62. package/dist/esm/components/util-groups.d.ts +8 -0
  63. package/dist/esm/components/util-groups.js +40 -0
  64. package/dist/esm/components/util-groups.js.map +1 -0
  65. package/dist/esm/core.d.ts +8 -0
  66. package/dist/esm/core.js +42 -0
  67. package/dist/esm/core.js.map +1 -0
  68. package/dist/esm/index.d.ts +3 -0
  69. package/dist/esm/index.js +15 -0
  70. package/dist/esm/index.js.map +1 -0
  71. package/dist/esm/production.d.ts +3 -0
  72. package/dist/esm/production.js +7 -0
  73. package/dist/esm/production.js.map +1 -0
  74. package/dist/esm/styles/tokens.d.ts +298 -0
  75. package/dist/esm/styles/tokens.js +90 -0
  76. package/dist/esm/styles/tokens.js.map +1 -0
  77. package/dist/esm/styles/use-styles.d.ts +42 -0
  78. package/dist/esm/styles/use-styles.js +380 -0
  79. package/dist/esm/styles/use-styles.js.map +1 -0
  80. package/package.json +84 -0
  81. package/src/PacerContextProvider.tsx +203 -0
  82. package/src/PacerDevtools.tsx +10 -0
  83. package/src/components/ActionButtons.tsx +143 -0
  84. package/src/components/DetailsPanel.tsx +61 -0
  85. package/src/components/Shell.tsx +102 -0
  86. package/src/components/StateHeader.tsx +106 -0
  87. package/src/components/UtilList.tsx +62 -0
  88. package/src/components/util-groups.ts +54 -0
  89. package/src/core.tsx +41 -0
  90. package/src/index.ts +17 -0
  91. package/src/production.ts +7 -0
  92. package/src/styles/tokens.ts +305 -0
  93. package/src/styles/use-styles.ts +379 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shell.cjs","sources":["../../../src/components/Shell.tsx"],"sourcesContent":["import { createMemo, createSignal, onCleanup, onMount } from 'solid-js'\nimport { useStyles } from '../styles/use-styles'\nimport { usePacerDevtoolsState } from '../PacerContextProvider'\nimport { UTIL_GROUPS } from './util-groups'\nimport { UtilList } from './UtilList'\nimport { DetailsPanel } from './DetailsPanel'\nimport type { StateKey } from './util-groups'\n\nexport function Shell() {\n const styles = useStyles()\n const state = usePacerDevtoolsState()\n const utilState = () => state\n const [selectedKey, setSelectedKey] = createSignal<string | null>(null)\n const [leftPanelWidth, setLeftPanelWidth] = createSignal(300)\n const [isDragging, setIsDragging] = createSignal(false)\n\n const selectedInstance = createMemo(() => {\n const key = selectedKey()\n if (!key) return null\n for (const group of UTIL_GROUPS) {\n const instance = (utilState() as unknown as Record<StateKey, Array<any>>)[\n group.key\n ].find((inst) => inst.key === key)\n if (instance) return { instance, type: group.displayName }\n }\n return null\n })\n\n let dragStartX = 0\n let dragStartWidth = 0\n\n const handleMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragging(true)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n dragStartX = e.clientX\n dragStartWidth = leftPanelWidth()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging()) return\n\n e.preventDefault()\n const deltaX = e.clientX - dragStartX\n const newWidth = Math.max(150, Math.min(800, dragStartWidth + deltaX))\n setLeftPanelWidth(newWidth)\n }\n\n const handleMouseUp = () => {\n setIsDragging(false)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n\n onMount(() => {\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n })\n\n onCleanup(() => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n })\n\n return (\n <div class={styles().devtoolsPanel}>\n <div class={styles().stickyHeader}>TanStack Pacer</div>\n\n <div class={styles().mainContainer}>\n <div\n class={styles().leftPanel}\n style={{\n width: `${leftPanelWidth()}px`,\n 'min-width': '150px',\n 'max-width': '800px',\n }}\n >\n <UtilList\n selectedKey={selectedKey}\n setSelectedKey={setSelectedKey}\n utilState={utilState}\n />\n </div>\n\n <div\n class={`${styles().dragHandle} ${isDragging() ? 'dragging' : ''}`}\n onMouseDown={handleMouseDown}\n />\n\n <div class={styles().rightPanel} style={{ flex: 1 }}>\n <div class={styles().panelHeader}>Details</div>\n <DetailsPanel\n selectedInstance={selectedInstance}\n utilState={utilState}\n />\n </div>\n </div>\n </div>\n )\n}\n"],"names":["Shell","styles","useStyles","state","usePacerDevtoolsState","utilState","selectedKey","setSelectedKey","createSignal","leftPanelWidth","setLeftPanelWidth","isDragging","setIsDragging","selectedInstance","createMemo","key","group","UTIL_GROUPS","instance","find","inst","type","displayName","dragStartX","dragStartWidth","handleMouseDown","e","preventDefault","stopPropagation","document","body","style","cursor","userSelect","clientX","handleMouseMove","deltaX","newWidth","Math","max","min","handleMouseUp","onMount","addEventListener","onCleanup","removeEventListener","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","setProperty","_$insert","_$createComponent","UtilList","$$mousedown","DetailsPanel","_$effect","_p$","_v$","devtoolsPanel","_v$2","stickyHeader","_v$3","mainContainer","_v$4","leftPanel","_v$5","_v$6","dragHandle","_v$7","rightPanel","_v$8","panelHeader","_$className","t","a","o","i","removeProperty","n","s","h","undefined","_$delegateEvents"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function Shell(): import("solid-js").JSX.Element;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const web = require("solid-js/web");
4
+ const dayjs = require("dayjs");
5
+ const relativeTime = require("dayjs/plugin/relativeTime");
6
+ const solidJs = require("solid-js");
7
+ const useStyles = require("../styles/use-styles.cjs");
8
+ var _tmpl$ = /* @__PURE__ */ web.template(`<div><div></div><div><div><div>Key</div><div></div><div>Last Updated</div><div> (<!>)</div></div><div>% reduction`);
9
+ dayjs.extend(relativeTime);
10
+ function StateHeader(props) {
11
+ const styles = useStyles.useStyles();
12
+ const [now, setNow] = solidJs.createSignal(Date.now());
13
+ solidJs.onMount(() => {
14
+ const interval = setInterval(() => {
15
+ setNow(Date.now());
16
+ }, 1e3);
17
+ solidJs.onCleanup(() => {
18
+ clearInterval(interval);
19
+ });
20
+ });
21
+ const entry = props.selectedInstance();
22
+ if (!entry) return null;
23
+ const key = entry.instance.key;
24
+ const updatedAt = props.utilState().lastUpdatedByKey[key] ?? Date.now();
25
+ const getRelativeTime = () => {
26
+ const diffMs = now() - updatedAt;
27
+ const diffSeconds = Math.floor(diffMs / 1e3);
28
+ if (diffSeconds < 60) {
29
+ return `${diffSeconds} second${diffSeconds !== 1 ? "s" : ""} ago`;
30
+ }
31
+ return dayjs(updatedAt).fromNow();
32
+ };
33
+ const getReductionPercentage = () => {
34
+ const state = entry.instance.store?.state || entry.instance.state;
35
+ if (!state) return 0;
36
+ const isAsync = entry.type.toLowerCase().includes("async");
37
+ const completedExecutions = isAsync ? state.settleCount || 0 : state.executionCount || 0;
38
+ if (entry.type.toLowerCase().includes("batcher")) {
39
+ const totalItemsProcessed = state.totalItemsProcessed || 0;
40
+ if (totalItemsProcessed === 0) return 0;
41
+ return Math.round((totalItemsProcessed - completedExecutions) / totalItemsProcessed * 100);
42
+ }
43
+ let requestCount = 0;
44
+ if (state.maybeExecuteCount !== void 0) {
45
+ requestCount = state.maybeExecuteCount;
46
+ } else if (state.addItemCount !== void 0) {
47
+ requestCount = state.addItemCount;
48
+ } else {
49
+ return 0;
50
+ }
51
+ if (requestCount === 0) return 0;
52
+ const reduction = requestCount - completedExecutions;
53
+ return Math.round(reduction / requestCount * 100);
54
+ };
55
+ const reductionPercentage = getReductionPercentage();
56
+ return (() => {
57
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling;
58
+ _el$1.nextSibling;
59
+ var _el$10 = _el$4.nextSibling, _el$11 = _el$10.firstChild;
60
+ web.insert(_el$2, () => entry.type);
61
+ _el$3.style.setProperty("display", "flex");
62
+ _el$3.style.setProperty("align-items", "center");
63
+ _el$3.style.setProperty("gap", "16px");
64
+ web.insert(_el$6, key);
65
+ web.insert(_el$8, () => new Date(updatedAt).toLocaleTimeString(), _el$9);
66
+ web.insert(_el$8, getRelativeTime, _el$1);
67
+ _el$10.style.setProperty("margin-left", "auto");
68
+ _el$10.style.setProperty("font-weight", "bold");
69
+ web.insert(_el$10, reductionPercentage, _el$11);
70
+ web.effect((_p$) => {
71
+ var _v$ = styles().stateHeader, _v$2 = styles().stateTitle, _v$3 = styles().infoGrid, _v$4 = styles().infoLabel, _v$5 = styles().infoValueMono, _v$6 = styles().infoLabel, _v$7 = styles().infoValueMono, _v$8 = styles().infoValueMono;
72
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
73
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
74
+ _v$3 !== _p$.a && web.className(_el$4, _p$.a = _v$3);
75
+ _v$4 !== _p$.o && web.className(_el$5, _p$.o = _v$4);
76
+ _v$5 !== _p$.i && web.className(_el$6, _p$.i = _v$5);
77
+ _v$6 !== _p$.n && web.className(_el$7, _p$.n = _v$6);
78
+ _v$7 !== _p$.s && web.className(_el$8, _p$.s = _v$7);
79
+ _v$8 !== _p$.h && web.className(_el$10, _p$.h = _v$8);
80
+ return _p$;
81
+ }, {
82
+ e: void 0,
83
+ t: void 0,
84
+ a: void 0,
85
+ o: void 0,
86
+ i: void 0,
87
+ n: void 0,
88
+ s: void 0,
89
+ h: void 0
90
+ });
91
+ return _el$;
92
+ })();
93
+ }
94
+ exports.StateHeader = StateHeader;
95
+ //# sourceMappingURL=StateHeader.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateHeader.cjs","sources":["../../../src/components/StateHeader.tsx"],"sourcesContent":["import dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { createSignal, onCleanup, onMount } from 'solid-js'\nimport { useStyles } from '../styles/use-styles'\n\ndayjs.extend(relativeTime)\n\ntype StateHeaderProps = {\n selectedInstance: () => { instance: any; type: string } | null\n utilState: () => { lastUpdatedByKey: Record<string, number> }\n}\n\nexport function StateHeader(props: StateHeaderProps) {\n const styles = useStyles()\n const [now, setNow] = createSignal(Date.now())\n\n onMount(() => {\n const interval = setInterval(() => {\n setNow(Date.now())\n }, 1000)\n\n onCleanup(() => {\n clearInterval(interval)\n })\n })\n\n const entry = props.selectedInstance()\n if (!entry) return null\n\n const key = entry.instance.key as string\n const updatedAt = props.utilState().lastUpdatedByKey[key] ?? Date.now()\n\n const getRelativeTime = () => {\n const diffMs = now() - updatedAt\n const diffSeconds = Math.floor(diffMs / 1000)\n\n if (diffSeconds < 60) {\n return `${diffSeconds} second${diffSeconds !== 1 ? 's' : ''} ago`\n }\n\n return dayjs(updatedAt).fromNow()\n }\n\n const getReductionPercentage = () => {\n const state = entry.instance.store?.state || entry.instance.state\n\n if (!state) return 0\n\n // Use settleCount for async utilities, executionCount for sync utilities\n const isAsync = entry.type.toLowerCase().includes('async')\n const completedExecutions = isAsync\n ? state.settleCount || 0\n : state.executionCount || 0\n\n // For batchers, calculate reduction based on items processed vs executions\n if (entry.type.toLowerCase().includes('batcher')) {\n const totalItemsProcessed = state.totalItemsProcessed || 0\n if (totalItemsProcessed === 0) return 0\n return Math.round(\n ((totalItemsProcessed - completedExecutions) / totalItemsProcessed) *\n 100,\n )\n }\n\n // For other utilities, calculate reduction based on request tracking\n let requestCount = 0\n\n if (state.maybeExecuteCount !== undefined) {\n requestCount = state.maybeExecuteCount\n } else if (state.addItemCount !== undefined) {\n requestCount = state.addItemCount\n } else {\n // For utilities that don't track requests, show 0%\n return 0\n }\n\n if (requestCount === 0) return 0\n\n const reduction = requestCount - completedExecutions\n return Math.round((reduction / requestCount) * 100)\n }\n\n const reductionPercentage = getReductionPercentage()\n\n return (\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>{entry.type}</div>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '16px' }}>\n <div class={styles().infoGrid}>\n <div class={styles().infoLabel}>Key</div>\n <div class={styles().infoValueMono}>{key}</div>\n <div class={styles().infoLabel}>Last Updated</div>\n <div class={styles().infoValueMono}>\n {new Date(updatedAt).toLocaleTimeString()} ({getRelativeTime()})\n </div>\n </div>\n <div\n class={styles().infoValueMono}\n style={{ 'margin-left': 'auto', 'font-weight': 'bold' }}\n >\n {reductionPercentage}% reduction\n </div>\n </div>\n </div>\n )\n}\n"],"names":["dayjs","extend","relativeTime","StateHeader","props","styles","useStyles","now","setNow","createSignal","Date","onMount","interval","setInterval","onCleanup","clearInterval","entry","selectedInstance","key","instance","updatedAt","utilState","lastUpdatedByKey","getRelativeTime","diffMs","diffSeconds","Math","floor","fromNow","getReductionPercentage","state","store","isAsync","type","toLowerCase","includes","completedExecutions","settleCount","executionCount","totalItemsProcessed","round","requestCount","maybeExecuteCount","undefined","addItemCount","reduction","reductionPercentage","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","_el$8","_el$9","_el$1","_el$10","_el$11","_$insert","style","setProperty","toLocaleTimeString","_$effect","_p$","_v$","stateHeader","_v$2","stateTitle","_v$3","infoGrid","_v$4","infoLabel","_v$5","infoValueMono","_v$6","_v$7","_v$8","e","_$className","t","a","o","i","n","s","h"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ type StateHeaderProps = {
2
+ selectedInstance: () => {
3
+ instance: any;
4
+ type: string;
5
+ } | null;
6
+ utilState: () => {
7
+ lastUpdatedByKey: Record<string, number>;
8
+ };
9
+ };
10
+ export declare function StateHeader(props: StateHeaderProps): import("solid-js").JSX.Element;
11
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const web = require("solid-js/web");
4
+ const solidJs = require("solid-js");
5
+ const solidStore = require("@tanstack/solid-store");
6
+ const clsx = require("clsx");
7
+ const useStyles = require("../styles/use-styles.cjs");
8
+ const utilGroups = require("./util-groups.cjs");
9
+ var _tmpl$ = /* @__PURE__ */ web.template(`<div>`), _tmpl$2 = /* @__PURE__ */ web.template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ web.template(`<div><div></div><div>`);
10
+ function UtilList(props) {
11
+ const styles = useStyles.useStyles();
12
+ return (() => {
13
+ var _el$ = _tmpl$();
14
+ web.insert(_el$, web.createComponent(solidJs.For, {
15
+ each: utilGroups.UTIL_GROUPS,
16
+ children: (group) => web.memo(() => web.memo(() => props.utilState()[group.key].length > 0)() && (() => {
17
+ var _el$2 = _tmpl$2(), _el$3 = _el$2.firstChild;
18
+ web.insert(_el$3, () => group.label);
19
+ web.insert(_el$2, web.createComponent(solidJs.For, {
20
+ get each() {
21
+ return props.utilState()[group.key];
22
+ },
23
+ children: (instance) => {
24
+ const status = (() => {
25
+ try {
26
+ const statusAccessor = solidStore.useStore(instance.store, (s) => s.status);
27
+ return () => statusAccessor() ?? "unknown";
28
+ } catch {
29
+ return () => "unknown";
30
+ }
31
+ })();
32
+ return (() => {
33
+ var _el$4 = _tmpl$3(), _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling;
34
+ _el$4.$$click = () => props.setSelectedKey(instance.key ?? null);
35
+ web.insert(_el$5, () => instance.key);
36
+ web.insert(_el$6, status);
37
+ web.effect((_p$) => {
38
+ var _v$3 = clsx(styles().utilRow, props.selectedKey() === instance.key && styles().utilRowSelected), _v$4 = styles().utilKey, _v$5 = styles().utilStatus;
39
+ _v$3 !== _p$.e && web.className(_el$4, _p$.e = _v$3);
40
+ _v$4 !== _p$.t && web.className(_el$5, _p$.t = _v$4);
41
+ _v$5 !== _p$.a && web.className(_el$6, _p$.a = _v$5);
42
+ return _p$;
43
+ }, {
44
+ e: void 0,
45
+ t: void 0,
46
+ a: void 0
47
+ });
48
+ return _el$4;
49
+ })();
50
+ }
51
+ }), null);
52
+ web.effect((_p$) => {
53
+ var _v$ = styles().utilGroup, _v$2 = styles().utilGroupHeader;
54
+ _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
55
+ _v$2 !== _p$.t && web.className(_el$3, _p$.t = _v$2);
56
+ return _p$;
57
+ }, {
58
+ e: void 0,
59
+ t: void 0
60
+ });
61
+ return _el$2;
62
+ })())
63
+ }));
64
+ web.effect(() => web.className(_el$, styles().utilList));
65
+ return _el$;
66
+ })();
67
+ }
68
+ web.delegateEvents(["click"]);
69
+ exports.UtilList = UtilList;
70
+ //# sourceMappingURL=UtilList.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtilList.cjs","sources":["../../../src/components/UtilList.tsx"],"sourcesContent":["import { For } from 'solid-js'\nimport { useStore } from '@tanstack/solid-store'\nimport clsx from 'clsx'\nimport { useStyles } from '../styles/use-styles'\nimport { UTIL_GROUPS } from './util-groups'\nimport type { StateKey } from './util-groups'\n\ntype UtilListProps = {\n selectedKey: () => string | null\n setSelectedKey: (key: string | null) => void\n utilState: () => Record<StateKey, Array<any>>\n}\n\nexport function UtilList(props: UtilListProps) {\n const styles = useStyles()\n\n return (\n <div class={styles().utilList}>\n <For each={UTIL_GROUPS}>\n {(group) => (\n <>\n {props.utilState()[group.key].length > 0 && (\n <div class={styles().utilGroup}>\n <div class={styles().utilGroupHeader}>{group.label}</div>\n <For each={props.utilState()[group.key]}>\n {(instance) => {\n const status = (() => {\n try {\n const statusAccessor = useStore(\n instance.store,\n (s: any) => s.status,\n )\n return () => statusAccessor() ?? 'unknown'\n } catch {\n return () => 'unknown'\n }\n })()\n return (\n <div\n class={clsx(\n styles().utilRow,\n props.selectedKey() === instance.key &&\n styles().utilRowSelected,\n )}\n onClick={() =>\n props.setSelectedKey(instance.key ?? null)\n }\n >\n <div class={styles().utilKey}>{instance.key}</div>\n <div class={styles().utilStatus}>{status()}</div>\n </div>\n )\n }}\n </For>\n </div>\n )}\n </>\n )}\n </For>\n </div>\n )\n}\n"],"names":["UtilList","props","styles","useStyles","_el$","_tmpl$","_$insert","_$createComponent","For","each","UTIL_GROUPS","children","group","_$memo","utilState","key","length","_el$2","_tmpl$2","_el$3","firstChild","label","instance","status","statusAccessor","useStore","store","s","_el$4","_tmpl$3","_el$5","_el$6","nextSibling","$$click","setSelectedKey","_$effect","_p$","_v$3","clsx","utilRow","selectedKey","utilRowSelected","_v$4","utilKey","_v$5","utilStatus","e","_$className","t","a","undefined","_v$","utilGroup","_v$2","utilGroupHeader","utilList","_$delegateEvents"],"mappings":";;;;;;;;;AAaO,SAASA,SAASC,OAAsB;AAC7C,QAAMC,SAASC,UAAAA,UAAAA;AAEf,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAC,eAAAF,MAAAG,IAAAA,gBAEKC,aAAG;AAAA,MAACC,MAAMC,WAAAA;AAAAA,MAAWC,UAClBC,CAAAA,UAAKC,IAAAA,WAEFA,IAAAA,KAAA,MAAAZ,MAAMa,UAAAA,EAAYF,MAAMG,GAAG,EAAEC,SAAS,CAAC,EAAA,MAAA,MAAA;AAAA,YAAAC,QAAAC,QAAAA,GAAAC,QAAAF,MAAAG;AAAAd,YAAAA,OAAAa,OAAA,MAEGP,MAAMS,KAAK;AAAAf,mBAAAW,OAAAV,IAAAA,gBACjDC,aAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAER,MAAMa,YAAYF,MAAMG,GAAG;AAAA,UAAA;AAAA,UAACJ,UACnCW,CAAAA,aAAa;AACb,kBAAMC,UAAU,MAAM;AACpB,kBAAI;AACF,sBAAMC,iBAAiBC,WAAAA,SACrBH,SAASI,OACT,CAACC,MAAWA,EAAEJ,MAChB;AACA,uBAAO,MAAMC,oBAAoB;AAAA,cAAA,QAC3B;AACN,uBAAO,MAAM;AAAA,cAAA;AAAA,YACf,GACF;AACA,oBAAA,MAAA;AAAA,kBAAAI,QAAAC,QAAAA,GAAAC,QAAAF,MAAAR,YAAAW,QAAAD,MAAAE;AAAAJ,oBAAAK,UAOa,MACPhC,MAAMiC,eAAeZ,SAASP,OAAO,IAAI;AAACT,kBAAAA,OAAAwB,OAAA,MAGbR,SAASP,GAAG;AAAAT,kBAAAA,OAAAyB,OACTR,MAAM;AAAAY,kBAAAA,OAAAC,CAAAA,QAAA;AAAA,oBAAAC,OAVjCC,KACLpC,OAAAA,EAASqC,SACTtC,MAAMuC,YAAAA,MAAkBlB,SAASP,OAC/Bb,SAASuC,eACb,GAACC,OAKWxC,OAAAA,EAASyC,SAAOC,OAChB1C,SAAS2C;AAAUR,yBAAAD,IAAAU,KAAAC,IAAAA,UAAAnB,OAAAQ,IAAAU,IAAAT,IAAA;AAAAK,yBAAAN,IAAAY,KAAAD,IAAAA,UAAAjB,OAAAM,IAAAY,IAAAN,IAAA;AAAAE,yBAAAR,IAAAa,KAAAF,IAAAA,UAAAhB,OAAAK,IAAAa,IAAAL,IAAA;AAAA,uBAAAR;AAAAA,cAAAA,GAAA;AAAA,gBAAAU,GAAAI;AAAAA,gBAAAF,GAAAE;AAAAA,gBAAAD,GAAAC;AAAAA,cAAAA,CAAA;AAAA,qBAAAtB;AAAAA,YAAAA,GAAA;AAAA,UAAA;AAAA,QAGrC,CAAC,GAAA,IAAA;AAAAO,YAAAA,OAAAC,CAAAA,QAAA;AAAA,cAAAe,MA9BOjD,OAAAA,EAASkD,WAASC,OAChBnD,SAASoD;AAAeH,kBAAAf,IAAAU,KAAAC,IAAAA,UAAA9B,OAAAmB,IAAAU,IAAAK,GAAA;AAAAE,mBAAAjB,IAAAY,KAAAD,IAAAA,UAAA5B,OAAAiB,IAAAY,IAAAK,IAAA;AAAA,iBAAAjB;AAAAA,QAAAA,GAAA;AAAA,UAAAU,GAAAI;AAAAA,UAAAF,GAAAE;AAAAA,QAAAA,CAAA;AAAA,eAAAjC;AAAAA,MAAAA,IAgCvC;AAAA,IAAA,CAEJ,CAAA;AAAAkB,QAAAA,OAAA,MAAAY,IAAAA,UAAA3C,MAxCOF,OAAAA,EAASqD,QAAQ,CAAA;AAAA,WAAAnD;AAAAA,EAAAA,GAAA;AA4CjC;AAACoD,IAAAA,eAAA,CAAA,OAAA,CAAA;;"}
@@ -0,0 +1,8 @@
1
+ import { StateKey } from './util-groups.cjs';
2
+ type UtilListProps = {
3
+ selectedKey: () => string | null;
4
+ setSelectedKey: (key: string | null) => void;
5
+ utilState: () => Record<StateKey, Array<any>>;
6
+ };
7
+ export declare function UtilList(props: UtilListProps): import("solid-js").JSX.Element;
8
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const UTIL_GROUPS = [
4
+ { key: "debouncers", label: "Debouncers", displayName: "Debouncer" },
5
+ { key: "throttlers", label: "Throttlers", displayName: "Throttler" },
6
+ { key: "batchers", label: "Batchers", displayName: "Batcher" },
7
+ { key: "queuers", label: "Queuers", displayName: "Queuer" },
8
+ {
9
+ key: "rateLimiters",
10
+ label: "Rate Limiters",
11
+ displayName: "Rate Limiter"
12
+ },
13
+ {
14
+ key: "asyncDebouncers",
15
+ label: "Async Debouncers",
16
+ displayName: "Async Debouncer"
17
+ },
18
+ {
19
+ key: "asyncThrottlers",
20
+ label: "Async Throttlers",
21
+ displayName: "Async Throttler"
22
+ },
23
+ {
24
+ key: "asyncBatchers",
25
+ label: "Async Batchers",
26
+ displayName: "Async Batcher"
27
+ },
28
+ {
29
+ key: "asyncQueuers",
30
+ label: "Async Queuers",
31
+ displayName: "Async Queuer"
32
+ },
33
+ {
34
+ key: "asyncRateLimiters",
35
+ label: "Async Rate Limiters",
36
+ displayName: "Async Rate Limiter"
37
+ }
38
+ ];
39
+ exports.UTIL_GROUPS = UTIL_GROUPS;
40
+ //# sourceMappingURL=util-groups.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util-groups.cjs","sources":["../../../src/components/util-groups.ts"],"sourcesContent":["export type StateKey =\n | 'asyncBatchers'\n | 'asyncDebouncers'\n | 'asyncQueuers'\n | 'asyncRateLimiters'\n | 'asyncThrottlers'\n | 'batchers'\n | 'debouncers'\n | 'queuers'\n | 'rateLimiters'\n | 'throttlers'\n\ntype UtilGroup = {\n key: StateKey\n label: string\n displayName: string\n}\n\nexport const UTIL_GROUPS: Array<UtilGroup> = [\n { key: 'debouncers', label: 'Debouncers', displayName: 'Debouncer' },\n { key: 'throttlers', label: 'Throttlers', displayName: 'Throttler' },\n { key: 'batchers', label: 'Batchers', displayName: 'Batcher' },\n { key: 'queuers', label: 'Queuers', displayName: 'Queuer' },\n {\n key: 'rateLimiters',\n label: 'Rate Limiters',\n displayName: 'Rate Limiter',\n },\n {\n key: 'asyncDebouncers',\n label: 'Async Debouncers',\n displayName: 'Async Debouncer',\n },\n {\n key: 'asyncThrottlers',\n label: 'Async Throttlers',\n displayName: 'Async Throttler',\n },\n {\n key: 'asyncBatchers',\n label: 'Async Batchers',\n displayName: 'Async Batcher',\n },\n {\n key: 'asyncQueuers',\n label: 'Async Queuers',\n displayName: 'Async Queuer',\n },\n {\n key: 'asyncRateLimiters',\n label: 'Async Rate Limiters',\n displayName: 'Async Rate Limiter',\n },\n]\n"],"names":[],"mappings":";;AAkBO,MAAM,cAAgC;AAAA,EAC3C,EAAE,KAAK,cAAc,OAAO,cAAc,aAAa,YAAA;AAAA,EACvD,EAAE,KAAK,cAAc,OAAO,cAAc,aAAa,YAAA;AAAA,EACvD,EAAE,KAAK,YAAY,OAAO,YAAY,aAAa,UAAA;AAAA,EACnD,EAAE,KAAK,WAAW,OAAO,WAAW,aAAa,SAAA;AAAA,EACjD;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAEjB;;"}
@@ -0,0 +1,8 @@
1
+ export type StateKey = 'asyncBatchers' | 'asyncDebouncers' | 'asyncQueuers' | 'asyncRateLimiters' | 'asyncThrottlers' | 'batchers' | 'debouncers' | 'queuers' | 'rateLimiters' | 'throttlers';
2
+ type UtilGroup = {
3
+ key: StateKey;
4
+ label: string;
5
+ displayName: string;
6
+ };
7
+ export declare const UTIL_GROUPS: Array<UtilGroup>;
8
+ export {};
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const web = require("solid-js/web");
4
+ const solidJs = require("solid-js");
5
+ const _interopNamespaceDefaultOnly = (e) => Object.freeze(Object.defineProperty({ __proto__: null, default: e }, Symbol.toStringTag, { value: "Module" }));
6
+ var _tmpl$ = /* @__PURE__ */ web.template(`<div>`);
7
+ class PacerDevtoolsCore {
8
+ #isMounted = false;
9
+ #dispose;
10
+ #Component;
11
+ constructor(_init) {
12
+ }
13
+ mount(el) {
14
+ if (this.#isMounted) {
15
+ throw new Error("Devtools is already mounted");
16
+ }
17
+ const mountTo = el;
18
+ const dispose = web.render(() => {
19
+ this.#Component = solidJs.lazy(() => Promise.resolve().then(() => /* @__PURE__ */ _interopNamespaceDefaultOnly(require("./PacerDevtools.cjs"))));
20
+ const Devtools = this.#Component;
21
+ return web.createComponent(web.Portal, {
22
+ mount: mountTo,
23
+ get children() {
24
+ var _el$ = _tmpl$();
25
+ _el$.style.setProperty("height", "100%");
26
+ web.insert(_el$, web.createComponent(Devtools, {}));
27
+ return _el$;
28
+ }
29
+ });
30
+ }, mountTo);
31
+ this.#isMounted = true;
32
+ this.#dispose = dispose;
33
+ }
34
+ unmount() {
35
+ if (!this.#isMounted) {
36
+ throw new Error("Devtools is not mounted");
37
+ }
38
+ this.#dispose?.();
39
+ this.#isMounted = false;
40
+ }
41
+ }
42
+ exports.PacerDevtoolsCore = PacerDevtoolsCore;
43
+ //# sourceMappingURL=core.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.cjs","sources":["../../src/core.tsx"],"sourcesContent":["import { lazy } from 'solid-js'\nimport { Portal, render } from 'solid-js/web'\n\nexport interface PacerDevtoolsInit {}\n\nexport class PacerDevtoolsCore {\n #isMounted = false\n #dispose?: () => void\n #Component: any\n\n constructor(_init?: PacerDevtoolsInit | undefined) {}\n\n mount<T extends HTMLElement>(el: T) {\n if (this.#isMounted) {\n throw new Error('Devtools is already mounted')\n }\n const mountTo = el\n const dispose = render(() => {\n this.#Component = lazy(() => import('./PacerDevtools'))\n const Devtools = this.#Component\n\n return (\n <Portal mount={mountTo}>\n <div style={{ height: '100%' }}>\n <Devtools />\n </div>\n </Portal>\n )\n }, mountTo)\n this.#isMounted = true\n this.#dispose = dispose\n }\n\n unmount() {\n if (!this.#isMounted) {\n throw new Error('Devtools is not mounted')\n }\n this.#dispose?.()\n this.#isMounted = false\n }\n}\n"],"names":["PacerDevtoolsCore","constructor","_init","mount","el","Error","mountTo","dispose","render","lazy","Devtools","_$createComponent","Portal","children","_el$","_tmpl$","style","setProperty","_$insert","unmount"],"mappings":";;;;;;AAKO,MAAMA,kBAAkB;AAAA,EAC7B,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EAEAC,YAAYC,OAAuC;AAAA,EAAA;AAAA,EAEnDC,MAA6BC,IAAO;AAClC,QAAI,KAAK,YAAY;AACnB,YAAM,IAAIC,MAAM,6BAA6B;AAAA,IAAA;AAE/C,UAAMC,UAAUF;AAChB,UAAMG,UAAUC,IAAAA,OAAO,MAAM;AAC3B,WAAK,aAAaC,QAAAA,KAAK,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,6CAAA,QAAO,qBAAiB,CAAA,CAAA,CAAC;AACtD,YAAMC,WAAW,KAAK;AAEtB,aAAAC,IAAAA,gBACGC,IAAAA,QAAM;AAAA,QAACT,OAAOG;AAAAA,QAAO,IAAAO,WAAA;AAAA,cAAAC,OAAAC,OAAAA;AAAAD,eAAAE,MAAAC,YAAA,UAAA,MAAA;AAAAC,cAAAA,OAAAJ,MAAAH,IAAAA,gBAEjBD,UAAQ,CAAA,CAAA,CAAA;AAAA,iBAAAI;AAAAA,QAAAA;AAAAA,MAAA,CAAA;AAAA,IAAA,GAIdR,OAAO;AACV,SAAK,aAAa;AAClB,SAAK,WAAWC;AAAAA,EAAAA;AAAAA,EAGlBY,UAAU;AACR,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAId,MAAM,yBAAyB;AAAA,IAAA;AAE3C,SAAK,WAAA;AACL,SAAK,aAAa;AAAA,EAAA;AAEtB;;"}
@@ -0,0 +1,8 @@
1
+ export interface PacerDevtoolsInit {
2
+ }
3
+ export declare class PacerDevtoolsCore {
4
+ #private;
5
+ constructor(_init?: PacerDevtoolsInit | undefined);
6
+ mount<T extends HTMLElement>(el: T): void;
7
+ unmount(): void;
8
+ }
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const core = require("./core.cjs");
5
+ class DummyPacerDevtoolsCore {
6
+ constructor() {
7
+ }
8
+ mount() {
9
+ }
10
+ unmount() {
11
+ }
12
+ }
13
+ const PacerDevtoolsCore = process.env.NODE_ENV !== "development" ? DummyPacerDevtoolsCore : core.PacerDevtoolsCore;
14
+ exports.PacerDevtoolsCore = PacerDevtoolsCore;
15
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\n\n// Create a dummy class for production that does nothing\nclass DummyPacerDevtoolsCore {\n constructor() {}\n mount() {}\n unmount() {}\n}\n\nexport const PacerDevtoolsCore: (typeof Devtools)['PacerDevtoolsCore'] =\n process.env.NODE_ENV !== 'development'\n ? (DummyPacerDevtoolsCore as any)\n : Devtools.PacerDevtoolsCore\n\nexport type { PacerDevtoolsInit } from './core'\n"],"names":[],"mappings":";;;;AAKA;AAA6B;AACb;AAAA;AACN;AAAA;AACE;AACZ;AAEO;;"}
@@ -0,0 +1,3 @@
1
+ import * as Devtools from './core.cjs';
2
+ export declare const PacerDevtoolsCore: (typeof Devtools)['PacerDevtoolsCore'];
3
+ export type { PacerDevtoolsInit } from './core.cjs';
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const core = require("./core.cjs");
5
+ const PacerDevtoolsCore = core.PacerDevtoolsCore;
6
+ exports.PacerDevtoolsCore = PacerDevtoolsCore;
7
+ //# sourceMappingURL=production.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production.cjs","sources":["../../src/production.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\n\nexport const PacerDevtoolsCore = Devtools.PacerDevtoolsCore\n\nexport type { PacerDevtoolsInit } from './core'\n"],"names":[],"mappings":";;;;AAIO;;"}
@@ -0,0 +1,3 @@
1
+ import * as Devtools from './core.cjs';
2
+ export declare const PacerDevtoolsCore: typeof Devtools.PacerDevtoolsCore;
3
+ export type { PacerDevtoolsInit } from './core.cjs';
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const tokens = {
4
+ colors: {
5
+ black: "#000000",
6
+ darkGray: {
7
+ 400: "#313749",
8
+ 500: "#292e3d",
9
+ 600: "#212530",
10
+ 700: "#191c24",
11
+ 800: "#111318",
12
+ 900: "#0b0d10"
13
+ },
14
+ gray: {
15
+ 100: "#f2f4f7",
16
+ 200: "#eaecf0",
17
+ 400: "#98a2b3",
18
+ 500: "#667085"
19
+ },
20
+ blue: {
21
+ 300: "#84CAFF",
22
+ 400: "#53B1FD",
23
+ 500: "#2E90FA",
24
+ 600: "#1570EF",
25
+ 900: "#194185"
26
+ },
27
+ green: {
28
+ 400: "#32D583"
29
+ },
30
+ red: {
31
+ 400: "#f87171"
32
+ },
33
+ yellow: {
34
+ 400: "#FDB022"
35
+ },
36
+ purple: {
37
+ 400: "#9B8AFB"
38
+ },
39
+ pink: {
40
+ 400: "#ec4899"
41
+ }
42
+ },
43
+ alpha: {
44
+ 80: "cc",
45
+ 40: "66",
46
+ 30: "4d",
47
+ 20: "33"
48
+ },
49
+ font: {
50
+ size: {
51
+ xs: "calc(var(--tsrd-font-size) * 0.75)",
52
+ sm: "calc(var(--tsrd-font-size) * 0.875)",
53
+ md: "var(--tsrd-font-size)",
54
+ lg: "calc(var(--tsrd-font-size) * 1.125)"
55
+ },
56
+ weight: {
57
+ semibold: "600",
58
+ bold: "700"
59
+ },
60
+ fontFamily: {
61
+ sans: "ui-sans-serif, Inter, system-ui, sans-serif, sans-serif",
62
+ mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`
63
+ }
64
+ },
65
+ border: {
66
+ radius: {
67
+ sm: "calc(var(--tsrd-font-size) * 0.25)",
68
+ md: "calc(var(--tsrd-font-size) * 0.375)",
69
+ lg: "calc(var(--tsrd-font-size) * 0.5)"
70
+ }
71
+ },
72
+ size: {
73
+ 1: "calc(var(--tsrd-font-size) * 0.25)",
74
+ 2: "calc(var(--tsrd-font-size) * 0.5)",
75
+ 3: "calc(var(--tsrd-font-size) * 0.75)",
76
+ 4: "calc(var(--tsrd-font-size) * 1)"
77
+ },
78
+ shadow: {
79
+ xs: (_ = "rgb(0 0 0 / 0.1)") => `0 1px 2px 0 rgb(0 0 0 / 0.05)`,
80
+ sm: (color = "rgb(0 0 0 / 0.1)") => `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}`,
81
+ md: (color = "rgb(0 0 0 / 0.1)") => `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}`,
82
+ lg: (color = "rgb(0 0 0 / 0.1)") => `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}`,
83
+ xl: (color = "rgb(0 0 0 / 0.1)") => `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}`,
84
+ "2xl": (color = "rgb(0 0 0 / 0.25)") => `0 25px 50px -12px ${color}`,
85
+ inner: (color = "rgb(0 0 0 / 0.05)") => `inset 0 2px 4px 0 ${color}`,
86
+ none: () => `none`
87
+ }
88
+ };
89
+ exports.tokens = tokens;
90
+ //# sourceMappingURL=tokens.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.cjs","sources":["../../../src/styles/tokens.ts"],"sourcesContent":["export const tokens = {\n colors: {\n inherit: 'inherit',\n current: 'currentColor',\n transparent: 'transparent',\n black: '#000000',\n white: '#ffffff',\n neutral: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n darkGray: {\n 50: '#525c7a',\n 100: '#49536e',\n 200: '#414962',\n 300: '#394056',\n 400: '#313749',\n 500: '#292e3d',\n 600: '#212530',\n 700: '#191c24',\n 800: '#111318',\n 900: '#0b0d10',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n blue: {\n 25: '#F5FAFF',\n 50: '#EFF8FF',\n 100: '#D1E9FF',\n 200: '#B2DDFF',\n 300: '#84CAFF',\n 400: '#53B1FD',\n 500: '#2E90FA',\n 600: '#1570EF',\n 700: '#175CD3',\n 800: '#1849A9',\n 900: '#194185',\n },\n green: {\n 25: '#F6FEF9',\n 50: '#ECFDF3',\n 100: '#D1FADF',\n 200: '#A6F4C5',\n 300: '#6CE9A6',\n 400: '#32D583',\n 500: '#12B76A',\n 600: '#039855',\n 700: '#027A48',\n 800: '#05603A',\n 900: '#054F31',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n yellow: {\n 25: '#FFFCF5',\n 50: '#FFFAEB',\n 100: '#FEF0C7',\n 200: '#FEDF89',\n 300: '#FEC84B',\n 400: '#FDB022',\n 500: '#F79009',\n 600: '#DC6803',\n 700: '#B54708',\n 800: '#93370D',\n 900: '#7A2E0E',\n },\n purple: {\n 25: '#FAFAFF',\n 50: '#F4F3FF',\n 100: '#EBE9FE',\n 200: '#D9D6FE',\n 300: '#BDB4FE',\n 400: '#9B8AFB',\n 500: '#7A5AF8',\n 600: '#6938EF',\n 700: '#5925DC',\n 800: '#4A1FB8',\n 900: '#3E1C96',\n },\n teal: {\n 25: '#F6FEFC',\n 50: '#F0FDF9',\n 100: '#CCFBEF',\n 200: '#99F6E0',\n 300: '#5FE9D0',\n 400: '#2ED3B7',\n 500: '#15B79E',\n 600: '#0E9384',\n 700: '#107569',\n 800: '#125D56',\n 900: '#134E48',\n },\n pink: {\n 25: '#fdf2f8',\n 50: '#fce7f3',\n 100: '#fbcfe8',\n 200: '#f9a8d4',\n 300: '#f472b6',\n 400: '#ec4899',\n 500: '#db2777',\n 600: '#be185d',\n 700: '#9d174d',\n 800: '#831843',\n 900: '#500724',\n },\n cyan: {\n 25: '#ecfeff',\n 50: '#cffafe',\n 100: '#a5f3fc',\n 200: '#67e8f9',\n 300: '#22d3ee',\n 400: '#06b6d4',\n 500: '#0891b2',\n 600: '#0e7490',\n 700: '#155e75',\n 800: '#164e63',\n 900: '#083344',\n },\n },\n alpha: {\n 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': 'calc(var(--tsrd-font-size) * 0.625)',\n xs: 'calc(var(--tsrd-font-size) * 0.75)',\n sm: 'calc(var(--tsrd-font-size) * 0.875)',\n md: 'var(--tsrd-font-size)',\n lg: 'calc(var(--tsrd-font-size) * 1.125)',\n xl: 'calc(var(--tsrd-font-size) * 1.25)',\n '2xl': 'calc(var(--tsrd-font-size) * 1.5)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.875)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '7xl': 'calc(var(--tsrd-font-size) * 4.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 6)',\n '9xl': 'calc(var(--tsrd-font-size) * 8)',\n },\n lineHeight: {\n '3xs': 'calc(var(--tsrd-font-size) * 0.75)',\n '2xs': 'calc(var(--tsrd-font-size) * 0.875)',\n xs: 'calc(var(--tsrd-font-size) * 1)',\n sm: 'calc(var(--tsrd-font-size) * 1.25)',\n md: 'calc(var(--tsrd-font-size) * 1.5)',\n lg: 'calc(var(--tsrd-font-size) * 1.75)',\n xl: 'calc(var(--tsrd-font-size) * 2)',\n '2xl': 'calc(var(--tsrd-font-size) * 2.25)',\n '3xl': 'calc(var(--tsrd-font-size) * 2.5)',\n '4xl': 'calc(var(--tsrd-font-size) * 2.75)',\n '5xl': 'calc(var(--tsrd-font-size) * 3)',\n '6xl': 'calc(var(--tsrd-font-size) * 3.25)',\n '7xl': 'calc(var(--tsrd-font-size) * 3.5)',\n '8xl': 'calc(var(--tsrd-font-size) * 3.75)',\n '9xl': 'calc(var(--tsrd-font-size) * 4)',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n fontFamily: {\n sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: 'calc(var(--tsrd-font-size) * 0.125)',\n sm: 'calc(var(--tsrd-font-size) * 0.25)',\n md: 'calc(var(--tsrd-font-size) * 0.375)',\n lg: 'calc(var(--tsrd-font-size) * 0.5)',\n xl: 'calc(var(--tsrd-font-size) * 0.75)',\n '2xl': 'calc(var(--tsrd-font-size) * 1)',\n '3xl': 'calc(var(--tsrd-font-size) * 1.5)',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',\n 0.5: 'calc(var(--tsrd-font-size) * 0.125)',\n 1: 'calc(var(--tsrd-font-size) * 0.25)',\n 1.5: 'calc(var(--tsrd-font-size) * 0.375)',\n 2: 'calc(var(--tsrd-font-size) * 0.5)',\n 2.5: 'calc(var(--tsrd-font-size) * 0.625)',\n 3: 'calc(var(--tsrd-font-size) * 0.75)',\n 3.5: 'calc(var(--tsrd-font-size) * 0.875)',\n 4: 'calc(var(--tsrd-font-size) * 1)',\n 4.5: 'calc(var(--tsrd-font-size) * 1.125)',\n 5: 'calc(var(--tsrd-font-size) * 1.25)',\n 5.5: 'calc(var(--tsrd-font-size) * 1.375)',\n 6: 'calc(var(--tsrd-font-size) * 1.5)',\n 6.5: 'calc(var(--tsrd-font-size) * 1.625)',\n 7: 'calc(var(--tsrd-font-size) * 1.75)',\n 8: 'calc(var(--tsrd-font-size) * 2)',\n 9: 'calc(var(--tsrd-font-size) * 2.25)',\n 10: 'calc(var(--tsrd-font-size) * 2.5)',\n 11: 'calc(var(--tsrd-font-size) * 2.75)',\n 12: 'calc(var(--tsrd-font-size) * 3)',\n 14: 'calc(var(--tsrd-font-size) * 3.5)',\n 16: 'calc(var(--tsrd-font-size) * 4)',\n 20: 'calc(var(--tsrd-font-size) * 5)',\n 24: 'calc(var(--tsrd-font-size) * 6)',\n 28: 'calc(var(--tsrd-font-size) * 7)',\n 32: 'calc(var(--tsrd-font-size) * 8)',\n 36: 'calc(var(--tsrd-font-size) * 9)',\n 40: 'calc(var(--tsrd-font-size) * 10)',\n 44: 'calc(var(--tsrd-font-size) * 11)',\n 48: 'calc(var(--tsrd-font-size) * 12)',\n 52: 'calc(var(--tsrd-font-size) * 13)',\n 56: 'calc(var(--tsrd-font-size) * 14)',\n 60: 'calc(var(--tsrd-font-size) * 15)',\n 64: 'calc(var(--tsrd-font-size) * 16)',\n 72: 'calc(var(--tsrd-font-size) * 18)',\n 80: 'calc(var(--tsrd-font-size) * 20)',\n 96: 'calc(var(--tsrd-font-size) * 24)',\n },\n shadow: {\n xs: (_: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,\n sm: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,\n md: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,\n lg: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,\n xl: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>\n `0 25px 50px -12px ${color}` as const,\n inner: (color: string = 'rgb(0 0 0 / 0.05)') =>\n `inset 0 2px 4px 0 ${color}` as const,\n none: () => `none` as const,\n },\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n} as const\n"],"names":[],"mappings":";;AAAO,MAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,IAIN,OAAO;AAAA,IAcP,UAAU;AAAA,MAKR,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,IAEP,MAAM;AAAA,MAEJ,KAAK;AAAA,MACL,KAAK;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,IAKP;AAAA,IACA,MAAM;AAAA,MAKJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MAGL,KAAK;AAAA,IAAA;AAAA,IAEP,OAAO;AAAA,MAML,KAAK;AAAA,IAMP;AAAA,IACA,KAAK;AAAA,MAKH,KAAK;AAAA,IAOP;AAAA,IACA,QAAQ;AAAA,MAMN,KAAK;AAAA,IAMP;AAAA,IACA,QAAQ;AAAA,MAMN,KAAK;AAAA,IAMP;AAAA,IAcA,MAAM;AAAA,MAMJ,KAAK;AAAA,IAMP;AAAA,EAcF;AAAA,EACA,OAAO;AAAA,IAGL,IAAI;AAAA,IAIJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAGN;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MAEJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAUN;AAAA,IAkBA,QAAQ;AAAA,MAMN,UAAU;AAAA,MACV,MAAM;AAAA,IAGR;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAUF,QAAQ;AAAA,IACN,QAAQ;AAAA,MAGN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAKN;AAAA,EAAA;AAAA,EAEF,MAAM;AAAA,IAIJ,GAAG;AAAA,IAEH,GAAG;AAAA,IAEH,GAAG;AAAA,IAEH,GAAG;AAAA,EA6BL;AAAA,EACA,QAAQ;AAAA,IACN,IAAI,CAAC,IAAY,uBACf;AAAA,IACF,IAAI,CAAC,QAAgB,uBACnB,eAAe,KAAK,oBAAoB,KAAK;AAAA,IAC/C,IAAI,CAAC,QAAgB,uBACnB,kBAAkB,KAAK,oBAAoB,KAAK;AAAA,IAClD,IAAI,CAAC,QAAgB,uBACnB,oBAAoB,KAAK,oBAAoB,KAAK;AAAA,IACpD,IAAI,CAAC,QAAgB,uBACnB,oBAAoB,KAAK,qBAAqB,KAAK;AAAA,IACrD,OAAO,CAAC,QAAgB,wBACtB,qBAAqB,KAAK;AAAA,IAC5B,OAAO,CAAC,QAAgB,wBACtB,qBAAqB,KAAK;AAAA,IAC5B,MAAM,MAAM;AAAA,EAAA;AAiBhB;;"}