@gearbox-protocol/permissionless-ui 1.7.4 → 1.8.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 (87) hide show
  1. package/README.md +0 -4
  2. package/dist/cjs/_virtual/_commonjsHelpers.cjs +9 -0
  3. package/dist/cjs/_virtual/index.cjs +9 -0
  4. package/dist/cjs/components/alert-dialog/alert-dialog.cjs +1 -1
  5. package/dist/cjs/components/error-message/error-message.cjs +5 -5
  6. package/dist/cjs/components/graph/graph-current-value.cjs +2 -2
  7. package/dist/cjs/components/graph/graph-tooltip.cjs +4 -4
  8. package/dist/cjs/components/graph/graph-view.cjs +9 -9
  9. package/dist/cjs/components/graph/graph.cjs +2 -2
  10. package/dist/cjs/components/layout/app-logo/app-logo.cjs +8 -4
  11. package/dist/cjs/components/layout/footer/footer.cjs +1 -1
  12. package/dist/cjs/components/layout/grid/grid.cjs +7 -1
  13. package/dist/cjs/components/layout/header/header.cjs +16 -7
  14. package/dist/cjs/components/layout/page-layout/page-layout.cjs +2 -2
  15. package/dist/cjs/components/liquidation/liquidation-assets-table/liquidation-assets-table.cjs +23 -13
  16. package/dist/cjs/components/loader-guard/loader-guard.cjs +10 -6
  17. package/dist/cjs/components/navbar/navbar.cjs +5 -2
  18. package/dist/cjs/components/navitem/navitem.cjs +6 -6
  19. package/dist/cjs/components/page-title/page-title.cjs +2 -2
  20. package/dist/cjs/components/tab-control/tab-control.cjs +4 -3
  21. package/dist/cjs/components/tabs/tabs.cjs +2 -2
  22. package/dist/cjs/components/theme-toggle/theme-toggle.cjs +1 -1
  23. package/dist/cjs/components/token-icon/token-icon.cjs +2 -1
  24. package/dist/cjs/components/token-symbol/token-symbol.cjs +4 -4
  25. package/dist/cjs/components/trading-view/graph-dropdown.cjs +27 -3
  26. package/dist/cjs/components/trading-view/trading-view.cjs +15 -2
  27. package/dist/cjs/components/with-filter-button/with-filter-button.cjs +2 -2
  28. package/dist/cjs/configs/tailwind-preset.cjs +2 -1
  29. package/dist/cjs/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/helpers.cjs +31 -0
  30. package/dist/cjs/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/index.cjs +49 -0
  31. package/dist/cjs/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/utilities.cjs +218 -0
  32. package/dist/cjs/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/variants.cjs +44 -0
  33. package/dist/cjs/node_modules/.pnpm/tailwindcss@4.1.17/node_modules/tailwindcss/dist/flatten-color-palette.cjs +17 -0
  34. package/dist/cjs/node_modules/.pnpm/tailwindcss@4.1.17/node_modules/tailwindcss/dist/plugin.cjs +15 -0
  35. package/dist/esm/_virtual/_commonjsHelpers.js +5 -0
  36. package/dist/esm/_virtual/index.js +7 -0
  37. package/dist/esm/components/alert-dialog/alert-dialog.js +1 -1
  38. package/dist/esm/components/error-message/error-message.js +5 -5
  39. package/dist/esm/components/graph/graph-current-value.js +2 -2
  40. package/dist/esm/components/graph/graph-tooltip.js +4 -4
  41. package/dist/esm/components/graph/graph-view.js +9 -9
  42. package/dist/esm/components/graph/graph.js +2 -2
  43. package/dist/esm/components/layout/app-logo/app-logo.js +8 -4
  44. package/dist/esm/components/layout/footer/footer.js +1 -1
  45. package/dist/esm/components/layout/grid/grid.js +7 -1
  46. package/dist/esm/components/layout/header/header.js +16 -7
  47. package/dist/esm/components/layout/page-layout/page-layout.js +2 -2
  48. package/dist/esm/components/liquidation/liquidation-assets-table/liquidation-assets-table.js +23 -13
  49. package/dist/esm/components/loader-guard/loader-guard.js +10 -6
  50. package/dist/esm/components/navbar/navbar.js +5 -2
  51. package/dist/esm/components/navitem/navitem.js +6 -6
  52. package/dist/esm/components/page-title/page-title.js +2 -2
  53. package/dist/esm/components/tab-control/tab-control.js +4 -3
  54. package/dist/esm/components/tabs/tabs.js +2 -2
  55. package/dist/esm/components/theme-toggle/theme-toggle.js +1 -1
  56. package/dist/esm/components/token-icon/token-icon.js +2 -1
  57. package/dist/esm/components/token-symbol/token-symbol.js +4 -4
  58. package/dist/esm/components/trading-view/graph-dropdown.js +28 -4
  59. package/dist/esm/components/trading-view/trading-view.js +16 -3
  60. package/dist/esm/components/with-filter-button/with-filter-button.js +2 -2
  61. package/dist/esm/configs/tailwind-preset.js +2 -1
  62. package/dist/esm/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/helpers.js +27 -0
  63. package/dist/esm/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/index.js +45 -0
  64. package/dist/esm/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/utilities.js +214 -0
  65. package/dist/esm/node_modules/.pnpm/tailwind-scrollbar@4.0.2_react@19.2.0_tailwindcss@4.1.17/node_modules/tailwind-scrollbar/src/variants.js +40 -0
  66. package/dist/esm/node_modules/.pnpm/tailwindcss@4.1.17/node_modules/tailwindcss/dist/flatten-color-palette.js +13 -0
  67. package/dist/esm/node_modules/.pnpm/tailwindcss@4.1.17/node_modules/tailwindcss/dist/plugin.js +11 -0
  68. package/dist/globals.css +50 -23
  69. package/dist/types/components/auth/signin-required.d.ts +2 -2
  70. package/dist/types/components/buttons/navigation-button/navigation-button.d.ts +1 -1
  71. package/dist/types/components/dialog/dialog.d.ts +3 -3
  72. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +6 -6
  73. package/dist/types/components/layout/col/col.d.ts +12 -2
  74. package/dist/types/components/layout/container/container.d.ts +1 -1
  75. package/dist/types/components/layout/footer/footer.d.ts +1 -1
  76. package/dist/types/components/layout/grid/grid.d.ts +3 -2
  77. package/dist/types/components/layout/header/header.d.ts +1 -1
  78. package/dist/types/components/layout/layout/layout.d.ts +1 -1
  79. package/dist/types/components/navbar/navbar-indicator-context.d.ts +1 -1
  80. package/dist/types/components/pool-points-indicator/pool-points-indicator.d.ts +1 -1
  81. package/dist/types/components/theme-provider.d.ts +1 -1
  82. package/dist/types/components/trading-view/graph-dropdown.d.ts +7 -1
  83. package/dist/types/components/trading-view/trading-view.d.ts +7 -1
  84. package/dist/types/configs/tailwind-preset.d.ts +1 -3
  85. package/dist/types/hooks/use-filter.d.ts +2 -2
  86. package/dist/types/types/component-props.d.ts +1 -1
  87. package/package.json +2 -1
@@ -0,0 +1,45 @@
1
+ import { __require as requirePlugin } from '../../../../tailwindcss@4.1.17/node_modules/tailwindcss/dist/plugin.js';
2
+ import { __require as requireUtilities } from './utilities.js';
3
+ import { __require as requireVariants } from './variants.js';
4
+
5
+ var src;
6
+ var hasRequiredSrc;
7
+
8
+ function requireSrc () {
9
+ if (hasRequiredSrc) return src;
10
+ hasRequiredSrc = 1;
11
+ // TODO: Figure out why the linter is unhappy with this import
12
+ // eslint-disable-next-line import/no-unresolved
13
+ const plugin = requirePlugin();
14
+ const {
15
+ addBaseStyles,
16
+ addBaseSizeUtilities,
17
+ addColorUtilities,
18
+ addRoundedUtilities,
19
+ addSizeUtilities
20
+ } = requireUtilities();
21
+ const { addVariants } = requireVariants();
22
+
23
+ src = plugin.withOptions((options = {}) => tailwind => {
24
+ let preferredStrategy = options.preferredStrategy ?? options.preferredstrategy ?? 'standard';
25
+
26
+ if (preferredStrategy !== 'standard' && preferredStrategy !== 'pseudoelements') {
27
+ // eslint-disable-next-line no-console
28
+ console.warn('WARNING: tailwind-scrollbar preferredStrategy should be \'standard\' or \'pseudoelements\'');
29
+ preferredStrategy = 'standard';
30
+ }
31
+
32
+ addBaseStyles(tailwind, preferredStrategy);
33
+ addBaseSizeUtilities(tailwind, preferredStrategy);
34
+ addColorUtilities(tailwind);
35
+ addVariants(tailwind);
36
+
37
+ if (options.nocompatible) {
38
+ addRoundedUtilities(tailwind);
39
+ addSizeUtilities(tailwind);
40
+ }
41
+ });
42
+ return src;
43
+ }
44
+
45
+ export { requireSrc as __require };
@@ -0,0 +1,214 @@
1
+ import { __require as requireFlattenColorPalette } from '../../../../tailwindcss@4.1.17/node_modules/tailwindcss/dist/flatten-color-palette.js';
2
+ import { __require as requireHelpers } from './helpers.js';
3
+
4
+ var utilities;
5
+ var hasRequiredUtilities;
6
+
7
+ function requireUtilities () {
8
+ if (hasRequiredUtilities) return utilities;
9
+ hasRequiredUtilities = 1;
10
+ // TODO: Figure out why the linter is unhappy with this import
11
+ // eslint-disable-next-line import/no-unresolved
12
+ const flattenColorPaletteImport = requireFlattenColorPalette();
13
+ const { importDefault } = requireHelpers();
14
+
15
+ // Tailwind Play will import these internal imports as ES6 imports, while most
16
+ // other workflows will import them as CommonJS imports.
17
+ const flattenColorPalette = importDefault(flattenColorPaletteImport);
18
+
19
+ const COMPONENTS = ['track', 'thumb', 'corner'];
20
+
21
+ /**
22
+ * @param {Record<never, unknown>} properties - The properties to assign
23
+ * @param {boolean} preferPseudoElements - If true, only browsers that cannot
24
+ * use pseudoelements will specify scrollbar properties
25
+ * @returns {Record<string, unknown>} - The generated CSS rules
26
+ */
27
+ const scrollbarProperties = (properties, preferPseudoElements) => {
28
+ if (preferPseudoElements) {
29
+ return {
30
+ '@supports (-moz-appearance:none)': properties
31
+ };
32
+ }
33
+
34
+ return properties;
35
+ };
36
+
37
+ /**
38
+ * Base resets to make the plugin's utilities work
39
+ *
40
+ * @param {typedefs.TailwindPlugin} tailwind - Tailwind's plugin object
41
+ * @param {'standard' | 'peseudoelements'} preferredStrategy - The preferred
42
+ * scrollbar styling strategy: standards track or pseudoelements
43
+ */
44
+ const addBaseStyles = ({ addBase }, preferredStrategy) => {
45
+ addBase({
46
+ '*': scrollbarProperties({
47
+ 'scrollbar-color': 'initial',
48
+ 'scrollbar-width': 'initial'
49
+ }, preferredStrategy === 'pseudoelements')
50
+ });
51
+ };
52
+
53
+ /**
54
+ * Generates utilties that tell an element what to do with
55
+ * --scrollbar-track and --scrollbar-thumb custom properties
56
+ *
57
+ * @returns {Record<string, unknown>} - The generated CSS
58
+ */
59
+ const generateBaseUtilities = () => ({
60
+ ...Object.fromEntries(COMPONENTS.map(component => {
61
+ const base = `&::-webkit-scrollbar-${component}`;
62
+
63
+ return [
64
+ [base, {
65
+ 'background-color': `var(--scrollbar-${component})`,
66
+ 'border-radius': `var(--scrollbar-${component}-radius)`
67
+ }]
68
+ ];
69
+ }).flat())
70
+ });
71
+
72
+ /**
73
+ * Utilities for initializing a custom styled scrollbar, which implicitly set
74
+ * the scrollbar's size
75
+ *
76
+ * @param {object} options - Options
77
+ * @param {boolean} options.preferPseudoElements - If true, only browsers that
78
+ * cannot use pseudoelements will specify scrollbar-width
79
+ * @returns {Record<string, unknown>} - Base size utilities for scrollbars
80
+ */
81
+ const generateScrollbarSizeUtilities = ({ preferPseudoElements }) => ({
82
+ '.scrollbar': {
83
+ ...generateBaseUtilities(),
84
+ ...scrollbarProperties({
85
+ 'scrollbar-width': 'auto',
86
+ 'scrollbar-color': 'var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)'
87
+ }, preferPseudoElements),
88
+
89
+ '&::-webkit-scrollbar': {
90
+ display: 'block',
91
+ width: 'var(--scrollbar-width, 16px)',
92
+ height: 'var(--scrollbar-height, 16px)'
93
+ }
94
+ },
95
+
96
+ '.scrollbar-thin': {
97
+ ...generateBaseUtilities(),
98
+ ...scrollbarProperties({
99
+ 'scrollbar-width': 'thin',
100
+ 'scrollbar-color': 'var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)'
101
+ }, preferPseudoElements),
102
+
103
+ '&::-webkit-scrollbar': {
104
+ display: 'block',
105
+ width: '8px',
106
+ height: '8px'
107
+ }
108
+ },
109
+
110
+ '.scrollbar-none': {
111
+ ...scrollbarProperties({
112
+ 'scrollbar-width': 'none'
113
+ }, preferPseudoElements),
114
+
115
+ '&::-webkit-scrollbar': {
116
+ display: 'none'
117
+ }
118
+ }
119
+ });
120
+
121
+ /**
122
+ * Converts a color value or function to a color value
123
+ *
124
+ * @param {string | Function} maybeFunction - The color value or function
125
+ * @returns {string} - The color value
126
+ */
127
+ const toColorValue = maybeFunction => (typeof maybeFunction === 'function' ? maybeFunction({}) : maybeFunction);
128
+
129
+ /**
130
+ * Adds scrollbar-COMPONENT-COLOR utilities for every scrollbar component.
131
+ *
132
+ * @param {typedefs.TailwindPlugin} tailwind - Tailwind's plugin object
133
+ */
134
+ const addColorUtilities = ({ matchUtilities, theme }) => {
135
+ const themeColors = flattenColorPalette(theme('colors'));
136
+ const colors = Object.fromEntries(
137
+ Object.entries(themeColors).map(([k, v]) => [k, toColorValue(v)])
138
+ );
139
+
140
+ COMPONENTS.forEach(component => {
141
+ matchUtilities(
142
+ {
143
+ [`scrollbar-${component}`]: value => ({
144
+ [`--scrollbar-${component}`]: toColorValue(value)
145
+ })
146
+ },
147
+ {
148
+ values: colors,
149
+ type: 'color'
150
+ }
151
+ );
152
+ });
153
+ };
154
+
155
+ /**
156
+ * Adds scrollbar-COMPONENT-rounded-VALUE utilities for every scrollbar
157
+ * component.
158
+ *
159
+ * @param {typedefs.TailwindPlugin} tailwind - Tailwind's plugin object
160
+ */
161
+ const addRoundedUtilities = ({ theme, matchUtilities }) => {
162
+ COMPONENTS.forEach(component => {
163
+ matchUtilities(
164
+ {
165
+ [`scrollbar-${component}-rounded`]: value => ({
166
+ [`--scrollbar-${component}-radius`]: value
167
+ })
168
+ },
169
+ {
170
+ values: theme('borderRadius')
171
+ }
172
+ );
173
+ });
174
+ };
175
+
176
+ /**
177
+ * @param {typedefs.TailwindPlugin} tailwind - Tailwind's plugin object
178
+ * @param {'standard' | 'peseudoelements'} preferredStrategy - The preferred
179
+ * scrollbar styling strategy: standards track or pseudoelements
180
+ */
181
+ const addBaseSizeUtilities = ({ addUtilities }, preferredStrategy) => {
182
+ addUtilities(generateScrollbarSizeUtilities({
183
+ preferPseudoElements: preferredStrategy === 'pseudoelements'
184
+ }));
185
+ };
186
+
187
+ /**
188
+ * Adds scrollbar-w-* and scrollbar-h-* utilities
189
+ *
190
+ * @param {typedefs.TailwindPlugin} tailwind - Tailwind's plugin object
191
+ */
192
+ const addSizeUtilities = ({ matchUtilities, theme }) => {
193
+ ['width', 'height'].forEach(dimension => {
194
+ matchUtilities({
195
+ [`scrollbar-${dimension[0]}`]: value => ({
196
+ [`--scrollbar-${dimension}`]: value
197
+ })
198
+ }, {
199
+ values: theme(dimension)
200
+ });
201
+ });
202
+ };
203
+
204
+ utilities = {
205
+ addBaseStyles,
206
+ addBaseSizeUtilities,
207
+ addColorUtilities,
208
+ addRoundedUtilities,
209
+ addSizeUtilities
210
+ };
211
+ return utilities;
212
+ }
213
+
214
+ export { requireUtilities as __require };
@@ -0,0 +1,40 @@
1
+ /** @typedef {import('./typedefs').TailwindPlugin} TailwindPlugin */
2
+
3
+ var variants;
4
+ var hasRequiredVariants;
5
+
6
+ function requireVariants () {
7
+ if (hasRequiredVariants) return variants;
8
+ hasRequiredVariants = 1;
9
+ /**
10
+ * Adds scrollbar variants for styling webkit scrollbars' hover and active
11
+ * states.
12
+ *
13
+ * Earlier iterations of this plugin hijacked the hover: and active: variants
14
+ * directly to create a cleaner syntax, but there are several issues with that
15
+ * approach:
16
+ * - It made the plugin prone to breaking other unrelated styles
17
+ * - It made logic like "make an element's scrollbar green when the
18
+ * _element_ is hovered impossible. (This is unusual, but should still
19
+ * be possible.)
20
+ * - It straight up does not work in Tailwind v4.
21
+ *
22
+ * @param {TailwindPlugin} tailwind - Tailwind's plugin object
23
+ */
24
+ const addVariants = ({ addVariant }) => {
25
+ addVariant('scrollbar-hover', '&::-webkit-scrollbar-thumb:hover');
26
+ addVariant('scrollbar-track-hover', '&::-webkit-scrollbar-track:hover');
27
+ addVariant('scrollbar-corner-hover', '&::-webkit-scrollbar-corner:hover');
28
+
29
+ addVariant('scrollbar-active', '&::-webkit-scrollbar-thumb:active');
30
+ addVariant('scrollbar-track-active', '&::-webkit-scrollbar-track:active');
31
+ // Corners can't be active, so they don't get their own active variant.
32
+ };
33
+
34
+ variants = {
35
+ addVariants
36
+ };
37
+ return variants;
38
+ }
39
+
40
+ export { requireVariants as __require };
@@ -0,0 +1,13 @@
1
+ var flattenColorPalette;
2
+ var hasRequiredFlattenColorPalette;
3
+
4
+ function requireFlattenColorPalette () {
5
+ if (hasRequiredFlattenColorPalette) return flattenColorPalette;
6
+ hasRequiredFlattenColorPalette = 1;
7
+ function V(e){return {kind:"word",value:e}}function we(e,t){return {kind:"function",value:e,nodes:t}}function ye(e){return {kind:"separator",value:e}}function v(e){let t="";for(let i of e)switch(i.kind){case "word":case "separator":{t+=i.value;break}case "function":t+=i.value+"("+v(i.nodes)+")";}return t}var H=92,be=41,Z=58,Q=44,xe=34,J=61,X=62,ee=60,te=10,Ae=40,Ce=39,Se=47,re=32,ie=9;function g(e){e=e.replaceAll(`\r
8
+ `,`
9
+ `);let t=[],i=[],r=null,n="",a;for(let o=0;o<e.length;o++){let l=e.charCodeAt(o);switch(l){case H:{n+=e[o]+e[o+1],o++;break}case Se:{if(n.length>0){let u=V(n);r?r.nodes.push(u):t.push(u),n="";}let s=V(e[o]);r?r.nodes.push(s):t.push(s);break}case Z:case Q:case J:case X:case ee:case te:case re:case ie:{if(n.length>0){let U=V(n);r?r.nodes.push(U):t.push(U),n="";}let s=o,u=o+1;for(;u<e.length&&(a=e.charCodeAt(u),!(a!==Z&&a!==Q&&a!==J&&a!==X&&a!==ee&&a!==te&&a!==re&&a!==ie));u++);o=u-1;let w=ye(e.slice(s,u));r?r.nodes.push(w):t.push(w);break}case Ce:case xe:{let s=o;for(let u=o+1;u<e.length;u++)if(a=e.charCodeAt(u),a===H)u+=1;else if(a===l){o=u;break}n+=e.slice(s,o+1);break}case Ae:{let s=we(n,[]);n="",r?r.nodes.push(s):t.push(s),i.push(s),r=s;break}case be:{let s=i.pop();if(n.length>0){let u=V(n);s?.nodes.push(u),n="";}i.length>0?r=i[i.length-1]:r=null;break}default:n+=String.fromCharCode(l);}}return n.length>0&&t.push(V(n)),t}var p=class extends Map{constructor(i){super();this.factory=i;}get(i){let r=super.get(i);return r===void 0&&(r=this.factory(i,this),this.set(i,r)),r}};var L=new Uint8Array(256);function d(e,t){let i=0,r=[],n=0,a=e.length,o=t.charCodeAt(0);for(let l=0;l<a;l++){let s=e.charCodeAt(l);if(i===0&&s===o){r.push(e.slice(n,l)),n=l+1;continue}switch(s){case 92:l+=1;break;case 39:case 34:for(;++l<a;){let u=e.charCodeAt(l);if(u===92){l+=1;continue}if(u===s)break}break;case 40:L[i]=41,i++;break;case 91:L[i]=93,i++;break;case 123:L[i]=125,i++;break;case 93:case 125:case 41:i>0&&s===L[i-1]&&i--;break}}return r.push(e.slice(n)),r}var j=(o=>(o[o.Continue=0]="Continue",o[o.Skip=1]="Skip",o[o.Stop=2]="Stop",o[o.Replace=3]="Replace",o[o.ReplaceSkip=4]="ReplaceSkip",o[o.ReplaceStop=5]="ReplaceStop",o))(j||{}),f={Continue:{kind:0},Skip:{kind:1},Stop:{kind:2},Replace:e=>({kind:3,nodes:Array.isArray(e)?e:[e]}),ReplaceSkip:e=>({kind:4,nodes:Array.isArray(e)?e:[e]}),ReplaceStop:e=>({kind:5,nodes:Array.isArray(e)?e:[e]})};function c(e,t){typeof t=="function"?ne(e,t):ne(e,t.enter,t.exit);}function ne(e,t=()=>f.Continue,i=()=>f.Continue){let r=[[e,0,null]],n={parent:null,depth:0,path(){let a=[];for(let o=1;o<r.length;o++){let l=r[o][2];l&&a.push(l);}return a}};for(;r.length>0;){let a=r.length-1,o=r[a],l=o[0],s=o[1],u=o[2];if(s>=l.length){r.pop();continue}if(n.parent=u,n.depth=a,s>=0){let O=l[s],C=t(O,n)??f.Continue;switch(C.kind){case 0:{O.nodes&&O.nodes.length>0&&r.push([O.nodes,0,O]),o[1]=~s;continue}case 2:return;case 1:{o[1]=~s;continue}case 3:{l.splice(s,1,...C.nodes);continue}case 5:{l.splice(s,1,...C.nodes);return}case 4:{l.splice(s,1,...C.nodes),o[1]+=C.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${j[C.kind]??`Unknown(${C.kind})`}\` in enter.`)}}let w=~s,U=l[w],b=i(U,n)??f.Continue;switch(b.kind){case 0:o[1]=w+1;continue;case 2:return;case 3:{l.splice(w,1,...b.nodes),o[1]=w+b.nodes.length;continue}case 5:{l.splice(w,1,...b.nodes);return}case 4:{l.splice(w,1,...b.nodes),o[1]=w+b.nodes.length;continue}default:throw new Error(`Invalid \`WalkAction.${j[b.kind]??`Unknown(${b.kind})`}\` in exit.`)}}}new p(e=>{let t=g(e),i=new Set;return c(t,(r,n)=>{let a=n.parent===null?t:n.parent.nodes??[];if(r.kind==="word"&&(r.value==="+"||r.value==="-"||r.value==="*"||r.value==="/")){let o=a.indexOf(r)??-1;if(o===-1)return;let l=a[o-1];if(l?.kind!=="separator"||l.value!==" ")return;let s=a[o+1];if(s?.kind!=="separator"||s.value!==" ")return;i.add(l),i.add(s);}else r.kind==="separator"&&r.value.length>0&&r.value.trim()===""?(a[0]===r||a[a.length-1]===r)&&i.add(r):r.kind==="separator"&&r.value.trim()===","&&(r.value=",");}),i.size>0&&c(t,r=>{if(i.has(r))return i.delete(r),f.ReplaceSkip([])}),W(t),v(t)});new p(e=>{let t=g(e);return t.length===3&&t[0].kind==="word"&&t[0].value==="&"&&t[1].kind==="separator"&&t[1].value===":"&&t[2].kind==="function"&&t[2].value==="is"?v(t[2].nodes):e});function W(e){for(let t of e)switch(t.kind){case "function":{if(t.value==="url"||t.value.endsWith("_url")){t.value=P(t.value);break}if(t.value==="var"||t.value.endsWith("_var")||t.value==="theme"||t.value.endsWith("_theme")){t.value=P(t.value);for(let i=0;i<t.nodes.length;i++)W([t.nodes[i]]);break}t.value=P(t.value),W(t.nodes);break}case "separator":t.value=P(t.value);break;case "word":{(t.value[0]!=="-"||t.value[1]!=="-")&&(t.value=P(t.value));break}default:$e(t);}}new p(e=>{let t=g(e);return t.length===1&&t[0].kind==="function"&&t[0].value==="var"});function $e(e){throw new Error(`Unexpected value: ${e}`)}function P(e){return e.replaceAll("_",String.raw`\_`).replaceAll(" ","_")}function _(e,t){if(t===null)return e;let i=Number(t);return Number.isNaN(i)||(t=`${i*100}%`),t==="100%"?e:`color-mix(in oklab, ${e} ${t}, transparent)`}var Re={"--alpha":Oe,"--spacing":Pe,"--theme":_e,theme:Ie};function Oe(e,t,i,...r){let[n,a]=d(i,"/").map(o=>o.trim());if(!n||!a)throw new Error(`The --alpha(\u2026) function requires a color and an alpha value, e.g.: \`--alpha(${n||"var(--my-color)"} / ${a||"50%"})\``);if(r.length>0)throw new Error(`The --alpha(\u2026) function only accepts one argument, e.g.: \`--alpha(${n||"var(--my-color)"} / ${a||"50%"})\``);return _(n,a)}function Pe(e,t,i,...r){if(!i)throw new Error("The --spacing(\u2026) function requires an argument, but received none.");if(r.length>0)throw new Error(`The --spacing(\u2026) function only accepts a single argument, but received ${r.length+1}.`);let n=e.theme.resolve(null,["--spacing"]);if(!n)throw new Error("The --spacing(\u2026) function requires that the `--spacing` theme variable exists, but it was not found.");return `calc(${n} * ${i})`}function _e(e,t,i,...r){if(!i.startsWith("--"))throw new Error("The --theme(\u2026) function can only be used with CSS variables from your theme.");let n=false;i.endsWith(" inline")&&(n=true,i=i.slice(0,-7)),t.kind==="at-rule"&&(n=true);let a=e.resolveThemeValue(i,n);if(!a){if(r.length>0)return r.join(", ");throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the variable name is correct or provide a fallback value to silence this error.`)}if(r.length===0)return a;let o=r.join(", ");if(o==="initial")return a;if(a==="initial")return o;if(a.startsWith("var(")||a.startsWith("theme(")||a.startsWith("--theme(")){let l=g(a);return Ue(l,o),v(l)}return a}function Ie(e,t,i,...r){i=De(i);let n=e.resolveThemeValue(i);if(!n&&r.length>0)return r.join(", ");if(!n)throw new Error(`Could not resolve value for theme function: \`theme(${i})\`. Consider checking if the path is correct or provide a fallback value to silence this error.`);return n}new RegExp(Object.keys(Re).map(e=>`${e}\\(`).join("|"));function De(e){if(e[0]!=="'"&&e[0]!=='"')return e;let t="",i=e[0];for(let r=1;r<e.length-1;r++){let n=e[r],a=e[r+1];n==="\\"&&(a===i||a==="\\")?(t+=a,r++):t+=n;}return t}function Ue(e,t){c(e,i=>{if(i.kind==="function"&&!(i.value!=="var"&&i.value!=="theme"&&i.value!=="--theme"))if(i.nodes.length===1)i.nodes.push({kind:"word",value:`, ${t}`});else {let r=i.nodes[i.nodes.length-1];r.kind==="word"&&r.value==="initial"&&(r.value=t);}});}var Ke=/^(?<value>[-+]?(?:\d*\.)?\d+)(?<unit>[a-z]+|%)?$/i;new p(e=>{let t=Ke.exec(e);if(!t)return null;let i=t.groups?.value;if(i===void 0)return null;let r=Number(i);if(Number.isNaN(r))return null;let n=t.groups?.unit;return n===void 0?[r,null]:[r,n]});function F(e){let t={};for(let[i,r]of Object.entries(e??{}))if(i!=="__CSS_VALUES__")if(typeof r=="object"&&r!==null)for(let[n,a]of Object.entries(F(r)))t[`${i}${n==="DEFAULT"?"":`-${n}`}`]=a;else t[i]=r;if("__CSS_VALUES__"in e)for(let[i,r]of Object.entries(e.__CSS_VALUES__))(Number(r)&4)===0&&(t[i]=e[i]);return t}flattenColorPalette=F;
10
+ return flattenColorPalette;
11
+ }
12
+
13
+ export { requireFlattenColorPalette as __require };
@@ -0,0 +1,11 @@
1
+ var plugin;
2
+ var hasRequiredPlugin;
3
+
4
+ function requirePlugin () {
5
+ if (hasRequiredPlugin) return plugin;
6
+ hasRequiredPlugin = 1;
7
+ function g(i,n){return {handler:i,config:n}}g.withOptions=function(i,n=()=>({})){function t(o){return {handler:i(o),config:n(o)}}return t.__isOptionsFunction=true,t};var u=g;plugin=u;
8
+ return plugin;
9
+ }
10
+
11
+ export { requirePlugin as __require };
package/dist/globals.css CHANGED
@@ -162,23 +162,58 @@
162
162
  color-scheme: dark;
163
163
  }
164
164
 
165
- /* Custom scrollbar styles */
166
- *::-webkit-scrollbar {
165
+ *:not(.navbar-scrollbar)::-webkit-scrollbar {
167
166
  width: 6px;
168
167
  height: 6px;
169
168
  border-radius: 8px;
170
169
  }
171
170
 
172
- *::-webkit-scrollbar-thumb {
171
+ *:not(.navbar-scrollbar)::-webkit-scrollbar-thumb {
173
172
  background: hsl(var(--gray-90));
174
173
  border-radius: 8px;
175
174
  }
176
175
 
177
- *::-webkit-scrollbar-track {
176
+ *:not(.navbar-scrollbar)::-webkit-scrollbar-track {
178
177
  background: hsl(var(--gray-20));
179
178
  }
180
179
  }
181
180
 
181
+ .navbar-scrollbar {
182
+ scrollbar-width: none;
183
+ -ms-overflow-style: none;
184
+ }
185
+
186
+ .navbar-scrollbar::-webkit-scrollbar {
187
+ display: none;
188
+ }
189
+
190
+ @media (min-width: 768px) {
191
+ .navbar-scrollbar {
192
+ scrollbar-width: thin;
193
+ scrollbar-color: hsl(var(--muted-foreground) / 0.2) transparent;
194
+ }
195
+
196
+ .navbar-scrollbar::-webkit-scrollbar {
197
+ display: block;
198
+ width: 2px;
199
+ height: 2px;
200
+ }
201
+
202
+ .navbar-scrollbar::-webkit-scrollbar-thumb {
203
+ background: hsl(var(--muted-foreground) / 0.2);
204
+ border-radius: 1px;
205
+ }
206
+
207
+ .navbar-scrollbar::-webkit-scrollbar-thumb:hover {
208
+ background: hsl(var(--muted-foreground) / 0.35);
209
+ }
210
+
211
+ .navbar-scrollbar::-webkit-scrollbar-track {
212
+ background: transparent;
213
+ margin: 2px;
214
+ }
215
+ }
216
+
182
217
  /* Table responsive grid with CSS variables */
183
218
  .table-sm-grid {
184
219
  grid-template-columns: repeat(var(--grid-cols-xs, 1), minmax(0, 1fr));
@@ -186,31 +221,23 @@
186
221
 
187
222
  @media (min-width: 640px) {
188
223
  .table-sm-grid {
189
- grid-template-columns: repeat(
190
- var(--grid-cols-sm, var(--grid-cols-xs, 1)),
191
- minmax(0, 1fr)
192
- );
224
+ grid-template-columns: repeat(var(--grid-cols-sm, var(--grid-cols-xs, 1)),
225
+ minmax(0, 1fr));
193
226
  }
194
227
  }
195
228
 
196
229
  @media (min-width: 768px) {
197
230
  .table-sm-grid {
198
- grid-template-columns: repeat(
199
- var(--grid-cols-md, var(--grid-cols-sm, var(--grid-cols-xs, 1))),
200
- minmax(0, 1fr)
201
- );
231
+ grid-template-columns: repeat(var(--grid-cols-md, var(--grid-cols-sm, var(--grid-cols-xs, 1))),
232
+ minmax(0, 1fr));
202
233
  }
203
234
  }
204
235
 
205
236
  @media (min-width: 1024px) {
206
237
  .table-sm-grid {
207
- grid-template-columns: repeat(
208
- var(
209
- --grid-cols-lg,
210
- var(--grid-cols-md, var(--grid-cols-sm, var(--grid-cols-xs, 1)))
211
- ),
212
- minmax(0, 1fr)
213
- );
238
+ grid-template-columns: repeat(var(--grid-cols-lg,
239
+ var(--grid-cols-md, var(--grid-cols-sm, var(--grid-cols-xs, 1)))),
240
+ minmax(0, 1fr));
214
241
  }
215
242
  }
216
243
 
@@ -233,7 +260,7 @@
233
260
  }
234
261
 
235
262
  /* Axis text styling */
236
- & > g:not([class]) > text {
263
+ &>g:not([class])>text {
237
264
  font-family: inherit;
238
265
  font-size: 12px;
239
266
  line-height: 14px;
@@ -259,8 +286,8 @@
259
286
  user-select: none;
260
287
  }
261
288
 
262
- .rct-chart-axis.rct-chart-axis-y > g:not([class]) > text,
263
- .rct-chart-axis.rct-chart-axis-x > g:not([class]) > text {
289
+ .rct-chart-axis.rct-chart-axis-y>g:not([class])>text,
290
+ .rct-chart-axis.rct-chart-axis-x>g:not([class])>text {
264
291
  font-family: inherit;
265
292
  font-size: 12px;
266
293
  line-height: 14px;
@@ -317,4 +344,4 @@
317
344
  opacity: 0.6;
318
345
  }
319
346
  }
320
- }
347
+ }
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  import { Address } from 'viem';
3
3
  import { TabButtonProps } from '../buttons';
4
4
  /**
@@ -31,4 +31,4 @@ export interface SignInRequiredProps extends TabButtonProps {
31
31
  children: ReactNode;
32
32
  skipSignIn?: boolean;
33
33
  }
34
- export declare function SignInRequired({ children, owner, skipSignIn, ...customProps }: SignInRequiredProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
34
+ export declare function SignInRequired({ children, owner, skipSignIn, ...customProps }: SignInRequiredProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ReactPortal | import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ReactElement<unknown, string | import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  export interface NavigationButtonProps {
3
3
  href: string;
4
4
  text: string;
@@ -1,5 +1,5 @@
1
1
  import * as DialogPrimitive from "@radix-ui/react-dialog";
2
- declare const Dialog: import('react').FC<DialogPrimitive.DialogProps>;
3
- declare const DialogTrigger: import('react').ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
4
- declare const DialogPortal: import('react').FC<DialogPrimitive.DialogPortalProps>;
2
+ declare const Dialog: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').FC<DialogPrimitive.DialogProps>;
3
+ declare const DialogTrigger: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').RefAttributes<HTMLButtonElement>>;
4
+ declare const DialogPortal: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').FC<DialogPrimitive.DialogPortalProps>;
5
5
  export { Dialog, DialogPortal, DialogTrigger };
@@ -1,8 +1,8 @@
1
1
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2
- declare const DropdownMenu: import('react').FC<DropdownMenuPrimitive.DropdownMenuProps>;
3
- declare const DropdownMenuTrigger: import('react').ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
4
- declare const DropdownMenuGroup: import('react').ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & import('react').RefAttributes<HTMLDivElement>>;
5
- declare const DropdownMenuPortal: import('react').FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
6
- declare const DropdownMenuSub: import('react').FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
7
- declare const DropdownMenuRadioGroup: import('react').ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & import('react').RefAttributes<HTMLDivElement>>;
2
+ declare const DropdownMenu: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').FC<DropdownMenuPrimitive.DropdownMenuProps>;
3
+ declare const DropdownMenuTrigger: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').RefAttributes<HTMLButtonElement>>;
4
+ declare const DropdownMenuGroup: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').RefAttributes<HTMLDivElement>>;
5
+ declare const DropdownMenuPortal: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
6
+ declare const DropdownMenuSub: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
7
+ declare const DropdownMenuRadioGroup: import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').RefAttributes<HTMLDivElement>>;
8
8
  export { DropdownMenu, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSub, DropdownMenuTrigger, };
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  /**
3
3
  * ColProps — props for Col component.
4
4
  */
@@ -29,7 +29,11 @@ export interface ColProps extends React.HTMLAttributes<HTMLDivElement> {
29
29
  *
30
30
  * Note: Works with Tailwind grid system (grid-cols-12).
31
31
  * Use within a Grid container with appropriate column configuration.
32
- * "full" spans all columns, "auto" uses automatic sizing.
32
+ * "full" spans all columns, "auto" uses automatic sizing based on content.
33
+ *
34
+ * Important: When using `span="auto"`, you must use `cols="auto"` in the Grid component
35
+ * for it to work properly. With fixed column counts (e.g., `cols={12}`), `span="auto"`
36
+ * will not work as expected.
33
37
  *
34
38
  * @example
35
39
  * ```tsx
@@ -38,6 +42,12 @@ export interface ColProps extends React.HTMLAttributes<HTMLDivElement> {
38
42
  * <Col span={6}>Half width</Col>
39
43
  * <Col span={12} md={6}>Full on mobile, half on desktop</Col>
40
44
  * </Grid>
45
+ *
46
+ * // For auto-sizing columns:
47
+ * <Grid cols="auto">
48
+ * <Col span="auto">Content-based width</Col>
49
+ * <Col span="auto">Content-based width</Col>
50
+ * </Grid>
41
51
  * ```
42
52
  */
43
53
  export declare const Col: React.ForwardRefExoticComponent<ColProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  /**
3
3
  * ContainerProps — props for Container component.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  import { LegalReferences } from '../legal-disclaimer';
3
3
  export interface FooterProps extends React.HTMLAttributes<HTMLElement> {
4
4
  logo?: React.ReactNode;
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  /**
3
3
  * GridProps — props for Grid component.
4
4
  */
@@ -20,7 +20,7 @@ export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
20
20
  * page layouts, card grids, responsive columns, flexible grid structures.
21
21
  *
22
22
  * Props:
23
- * - `cols` — number of columns (1-12) or custom CSS grid template string (defaults to 12).
23
+ * - `cols` — number of columns (1-12), custom CSS grid template string, or "auto" for auto-sized columns (defaults to 12).
24
24
  * - `sm` — number of columns for small screens (≥640px).
25
25
  * - `md` — number of columns for medium screens (≥768px).
26
26
  * - `lg` — number of columns for large screens (≥1024px).
@@ -32,6 +32,7 @@ export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
32
32
  * Note: Works with Col component for flexible column-based layouts.
33
33
  * Supports both numeric columns (uses Tailwind grid classes) and custom CSS grid templates.
34
34
  * When cols is a string, uses inline style for grid-template-columns.
35
+ * Use `cols="auto"` when using Col with `span="auto"` to enable content-based column sizing.
35
36
  *
36
37
  * @example
37
38
  * ```tsx
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  interface MobileMenuContextValue {
3
3
  closeMobileMenu: () => void;
4
4
  }
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  export interface LayoutProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  header?: React.ReactNode;
4
4
  footer?: React.ReactNode;
@@ -1,4 +1,4 @@
1
- import { default as React } from 'react';
1
+ import { default as React } from '../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  interface NavbarIndicatorContextType {
3
3
  registerItem: (id: string, element: HTMLElement) => void;
4
4
  unregisterItem: (id: string) => void;
@@ -1,4 +1,4 @@
1
- import { PropsWithChildren } from 'react';
1
+ import { PropsWithChildren } from '../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  export type PoolPointsColor = "primary" | "secondary" | "green" | "blue" | "yellow";
3
3
  export interface PoolPointsIndicatorProps {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode } from '../../node_modules/.pnpm/react@19.2.0/node_modules/react';
2
2
  /**
3
3
  * Theme types
4
4
  */
@@ -20,6 +20,12 @@ export interface GraphDropdownProps<T> {
20
20
  onSelected: (graph: T | Array<T>) => void;
21
21
  /** Enable multiple selection mode */
22
22
  multiple?: boolean;
23
+ /** Set of graph values that have no data available */
24
+ graphsWithNoData?: Set<T>;
25
+ /** Set of graph values that are currently loading */
26
+ loadingGraphs?: Set<T>;
27
+ /** Callback when user tries to select a graph with no data */
28
+ onNoDataSelected?: (graphValue: T, graphLabel: React.ReactNode) => void;
23
29
  }
24
30
  /**
25
31
  * GraphDropdown — dropdown select component for choosing graph types.
@@ -68,4 +74,4 @@ export interface GraphDropdownProps<T> {
68
74
  * />
69
75
  * ```
70
76
  */
71
- export declare function GraphDropdown<T extends string = string>({ items, defaultItem, onSelected, multiple, }: GraphDropdownProps<T>): React.ReactElement;
77
+ export declare function GraphDropdown<T extends string = string>({ items, defaultItem, onSelected, multiple, graphsWithNoData, loadingGraphs, onNoDataSelected, }: GraphDropdownProps<T>): React.ReactElement;