@vritti/quantum-ui 0.1.21 → 0.1.23

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 (69) hide show
  1. package/dist/Checkbox.js +2 -253
  2. package/dist/Checkbox.js.map +1 -1
  3. package/dist/Combination.js +3869 -0
  4. package/dist/Combination.js.map +1 -0
  5. package/dist/DataTable.d.ts +31 -0
  6. package/dist/DataTable.js +4989 -0
  7. package/dist/DataTable.js.map +1 -0
  8. package/dist/DatePicker.d.ts +68 -0
  9. package/dist/DatePicker.js +8229 -0
  10. package/dist/DatePicker.js.map +1 -0
  11. package/dist/Input.js +22 -0
  12. package/dist/Input.js.map +1 -0
  13. package/dist/Label.js +40 -0
  14. package/dist/Label.js.map +1 -0
  15. package/dist/PhoneField.js +2 -2
  16. package/dist/PhoneField.js.map +1 -1
  17. package/dist/Skeleton.d.ts +6 -0
  18. package/dist/Skeleton.js +18 -0
  19. package/dist/Skeleton.js.map +1 -0
  20. package/dist/TextField.js +2 -18
  21. package/dist/TextField.js.map +1 -1
  22. package/dist/ThemeToggle.js +15 -3
  23. package/dist/ThemeToggle.js.map +1 -1
  24. package/dist/assets/quantum-ui.css +186 -108
  25. package/dist/axios.d.ts +11 -6
  26. package/dist/axios.js +191 -147
  27. package/dist/axios.js.map +1 -1
  28. package/dist/check.js +15 -0
  29. package/dist/check.js.map +1 -0
  30. package/dist/components/Button.d.ts +7 -0
  31. package/dist/components/Card.d.ts +7 -0
  32. package/dist/components/Checkbox.d.ts +7 -0
  33. package/dist/components/DataTable.d.ts +9 -0
  34. package/dist/components/DataTable.js +2 -0
  35. package/dist/components/DataTable.js.map +1 -0
  36. package/dist/components/DatePicker.d.ts +9 -0
  37. package/dist/components/DatePicker.js +2 -0
  38. package/dist/components/DatePicker.js.map +1 -0
  39. package/dist/components/Form.d.ts +7 -0
  40. package/dist/components/OTPField.d.ts +7 -0
  41. package/dist/components/PasswordField.d.ts +7 -0
  42. package/dist/components/PhoneField.d.ts +7 -0
  43. package/dist/components/Progress.d.ts +7 -0
  44. package/dist/components/Skeleton.d.ts +9 -0
  45. package/dist/components/Skeleton.js +2 -0
  46. package/dist/components/Skeleton.js.map +1 -0
  47. package/dist/components/TextArea.d.ts +7 -0
  48. package/dist/components/TextField.d.ts +7 -0
  49. package/dist/components/ThemeToggle.d.ts +7 -0
  50. package/dist/components/Typography.d.ts +7 -0
  51. package/dist/field.js +1 -34
  52. package/dist/field.js.map +1 -1
  53. package/dist/index.d.ts +69 -38
  54. package/dist/index.js +8 -6
  55. package/dist/index.js.map +1 -1
  56. package/dist/index5.js +5 -2
  57. package/dist/index5.js.map +1 -1
  58. package/dist/index6.js +246 -0
  59. package/dist/index6.js.map +1 -0
  60. package/dist/shadcn/shadcnField.d.ts +7 -0
  61. package/dist/utils/axios.d.ts +21 -6
  62. package/dist/utils/axios.js +1 -1
  63. package/package.json +27 -13
  64. package/dist/AuthProvider.d.ts +0 -34
  65. package/dist/OnboardingProvider.js +0 -113
  66. package/dist/OnboardingProvider.js.map +0 -1
  67. package/dist/context/AuthProvider.d.ts +0 -2
  68. package/dist/context/AuthProvider.js +0 -2
  69. package/dist/context/AuthProvider.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ import { JSX } from 'react/jsx-runtime';
2
+ import * as React_2 from 'react';
3
+
4
+ export declare function Skeleton({ className, ...props }: React_2.HTMLAttributes<HTMLDivElement>): JSX.Element;
5
+
6
+ export { }
@@ -0,0 +1,18 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { c as cn } from './utils.js';
3
+
4
+ function Skeleton({
5
+ className,
6
+ ...props
7
+ }) {
8
+ return /* @__PURE__ */ jsx(
9
+ "div",
10
+ {
11
+ className: cn("animate-pulse rounded-md bg-muted", className),
12
+ ...props
13
+ }
14
+ );
15
+ }
16
+
17
+ export { Skeleton as S };
18
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","sources":["../lib/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '../../../shadcn/utils';\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('animate-pulse rounded-md bg-muted', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"names":[],"mappings":";;;AAGA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyC;AACvC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
package/dist/TextField.js CHANGED
@@ -1,24 +1,8 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
3
  import { c as cn } from './utils.js';
4
4
  import { F as Field, e as FieldLabel, b as FieldDescription, c as FieldError } from './field.js';
5
-
6
- function Input({ className, type, ...props }) {
7
- return /* @__PURE__ */ jsx(
8
- "input",
9
- {
10
- type,
11
- "data-slot": "input",
12
- className: cn(
13
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
14
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
15
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
16
- className
17
- ),
18
- ...props
19
- }
20
- );
21
- }
5
+ import { I as Input } from './Input.js';
22
6
 
23
7
  const TextField = React__default.forwardRef(
24
8
  ({ label, description, error, className, id, startAdornment, endAdornment, ...props }, ref) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sources":["../shadcn/shadcnInput/Input.tsx","../lib/components/TextField/TextField.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot='input'\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import React from 'react';\nimport { Input } from '../../../shadcn/shadcnInput';\nimport { cn } from '../../../shadcn/utils';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '../Field';\n\nexport interface TextFieldProps extends React.ComponentProps<'input'> {\n /**\n * Label for the field\n */\n label?: string;\n\n /**\n * Helper text to display below the field\n */\n description?: React.ReactNode;\n\n /**\n * Error message to display\n */\n error?: string;\n\n /**\n * Element to display at the start of the input (e.g., icon)\n */\n startAdornment?: React.ReactNode;\n\n /**\n * Element to display at the end of the input (e.g., icon button)\n */\n endAdornment?: React.ReactNode;\n}\n\n// TextField molecule - Input + Label composition using Field system\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n ({ label, description, error, className, id, startAdornment, endAdornment, ...props }, ref) => {\n return (\n <Field >\n {label && <FieldLabel>{label}</FieldLabel>}\n\n <div className='relative'>\n {startAdornment && (\n <div className='absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none'>\n {startAdornment}\n </div>\n )}\n <Input\n aria-invalid={!!error}\n ref={ref}\n className={cn(className, startAdornment && 'pl-10', endAdornment && 'pr-10')}\n id={id}\n {...props}\n />\n {endAdornment && (\n <div className='absolute inset-y-0 right-0 flex items-center pr-3'>{endAdornment}</div>\n )}\n </div>\n\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n {error && <FieldError>{error}</FieldError>}\n </Field>\n );\n }\n);\n\nTextField.displayName = 'TextField';\n"],"names":["React"],"mappings":";;;;;AAIA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAA,EAAM,GAAG,OAAM,EAAkC;AAC3E,EAAA,uBACE,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,icAAA;AAAA,QACA,+EAAA;AAAA,QACA,wGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;;ACeO,MAAM,YAAYA,cAAA,CAAM,UAAA;AAAA,EAC7B,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,cAAA,EAAgB,YAAA,EAAc,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC7F,IAAA,4BACG,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,KAAA,oBAAS,GAAA,CAAC,cAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAE7B,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACZ,QAAA,EAAA;AAAA,QAAA,cAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sEAAA,EACZ,QAAA,EAAA,cAAA,EACH,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,cAAA,EAAc,CAAC,CAAC,KAAA;AAAA,YAChB,GAAA;AAAA,YACA,WAAW,EAAA,CAAG,SAAA,EAAW,cAAA,IAAkB,OAAA,EAAS,gBAAgB,OAAO,CAAA;AAAA,YAC3E,EAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,QACC,YAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAqD,QAAA,EAAA,YAAA,EAAa;AAAA,OAAA,EAErF,CAAA;AAAA,MAEC,WAAA,IAAe,CAAC,KAAA,oBAAS,GAAA,CAAC,oBAAkB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,MACxD,KAAA,oBAAS,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EAC/B,CAAA;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;;;;"}
1
+ {"version":3,"file":"TextField.js","sources":["../lib/components/TextField/TextField.tsx"],"sourcesContent":["import React from 'react';\nimport { Input } from '../../../shadcn/shadcnInput';\nimport { cn } from '../../../shadcn/utils';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '../Field';\n\nexport interface TextFieldProps extends React.ComponentProps<'input'> {\n /**\n * Label for the field\n */\n label?: string;\n\n /**\n * Helper text to display below the field\n */\n description?: React.ReactNode;\n\n /**\n * Error message to display\n */\n error?: string;\n\n /**\n * Element to display at the start of the input (e.g., icon)\n */\n startAdornment?: React.ReactNode;\n\n /**\n * Element to display at the end of the input (e.g., icon button)\n */\n endAdornment?: React.ReactNode;\n}\n\n// TextField molecule - Input + Label composition using Field system\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n ({ label, description, error, className, id, startAdornment, endAdornment, ...props }, ref) => {\n return (\n <Field >\n {label && <FieldLabel>{label}</FieldLabel>}\n\n <div className='relative'>\n {startAdornment && (\n <div className='absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none'>\n {startAdornment}\n </div>\n )}\n <Input\n aria-invalid={!!error}\n ref={ref}\n className={cn(className, startAdornment && 'pl-10', endAdornment && 'pr-10')}\n id={id}\n {...props}\n />\n {endAdornment && (\n <div className='absolute inset-y-0 right-0 flex items-center pr-3'>{endAdornment}</div>\n )}\n </div>\n\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n {error && <FieldError>{error}</FieldError>}\n </Field>\n );\n }\n);\n\nTextField.displayName = 'TextField';\n"],"names":["React"],"mappings":";;;;;;AAiCO,MAAM,YAAYA,cAAA,CAAM,UAAA;AAAA,EAC7B,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,cAAA,EAAgB,YAAA,EAAc,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC7F,IAAA,4BACG,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,KAAA,oBAAS,GAAA,CAAC,cAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAE7B,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACZ,QAAA,EAAA;AAAA,QAAA,cAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sEAAA,EACZ,QAAA,EAAA,cAAA,EACH,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,cAAA,EAAc,CAAC,CAAC,KAAA;AAAA,YAChB,GAAA;AAAA,YACA,WAAW,EAAA,CAAG,SAAA,EAAW,cAAA,IAAkB,OAAA,EAAS,gBAAgB,OAAO,CAAA;AAAA,YAC3E,EAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,QACC,YAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAqD,QAAA,EAAA,YAAA,EAAa;AAAA,OAAA,EAErF,CAAA;AAAA,MAEC,WAAA,IAAe,CAAC,KAAA,oBAAS,GAAA,CAAC,oBAAkB,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,MACxD,KAAA,oBAAS,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,KAAA,EAAM;AAAA,KAAA,EAC/B,CAAA;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;;;;"}
@@ -64,11 +64,23 @@ const ThemeToggle = ({ className, size = "md" }) => {
64
64
  variant: "ghost",
65
65
  size: size === "md" ? "default" : size,
66
66
  onClick: toggleTheme,
67
- className,
67
+ className: `text-foreground ${className}`,
68
68
  "aria-label": `Switch to ${isDarkMode ? "light" : "dark"} theme`,
69
69
  children: [
70
- /* @__PURE__ */ jsx(Sun, { className: "h-4 w-4 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
71
- /* @__PURE__ */ jsx(Moon, { className: "absolute h-4 w-4 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" })
70
+ /* @__PURE__ */ jsx(
71
+ Sun,
72
+ {
73
+ className: `h-4 w-4 transition-all ${isDarkMode ? "scale-0 -rotate-90" : "scale-100 rotate-0"}`,
74
+ "aria-hidden": true
75
+ }
76
+ ),
77
+ /* @__PURE__ */ jsx(
78
+ Moon,
79
+ {
80
+ className: `absolute h-4 w-4 transition-all ${isDarkMode ? "scale-100 rotate-0" : "scale-0 rotate-90"}`,
81
+ "aria-hidden": true
82
+ }
83
+ )
72
84
  ]
73
85
  }
74
86
  );
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeToggle.js","sources":["../node_modules/lucide-react/dist/esm/icons/moon.js","../node_modules/lucide-react/dist/esm/icons/sun.js","../lib/components/ThemeToggle/ThemeToggle.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\",\n key: \"kfwtm\"\n }\n ]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode);\n\nexport { __iconNode, Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode);\n\nexport { __iconNode, Sun as default };\n//# sourceMappingURL=sun.js.map\n","import React, { useLayoutEffect, useState } from 'react';\nimport { Moon, Sun } from 'lucide-react';\nimport { Button } from '../Button/Button';\n\nexport interface ThemeToggleProps {\n /**\n * Custom className for the toggle button\n */\n className?: string;\n\n /**\n * Size of the toggle button\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const ThemeToggle: React.FC<ThemeToggleProps> = ({ className, size = 'md' }) => {\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n useLayoutEffect(() => {\n // Check for saved theme preference or system preference\n const savedTheme = localStorage.getItem('theme');\n const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n const shouldUseDark = savedTheme === 'dark' || (!savedTheme && systemPrefersDark);\n\n setIsDarkMode(shouldUseDark);\n document.documentElement.classList.toggle('dark', shouldUseDark);\n }, []);\n\n const toggleTheme = () => {\n const newDarkMode = !isDarkMode;\n setIsDarkMode(newDarkMode);\n\n // Update DOM and localStorage\n document.documentElement.classList.toggle('dark', newDarkMode);\n localStorage.setItem('theme', newDarkMode ? 'dark' : 'light');\n };\n\n return (\n <Button\n variant='ghost'\n size={size === 'md' ? 'default' : size}\n onClick={toggleTheme}\n className={className}\n aria-label={`Switch to ${isDarkMode ? 'light' : 'dark'} theme`}\n >\n <Sun className='h-4 w-4 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90' />\n <Moon className='absolute h-4 w-4 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0' />\n </Button>\n );\n};"],"names":["__iconNode"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"ThemeToggle.js","sources":["../node_modules/lucide-react/dist/esm/icons/moon.js","../node_modules/lucide-react/dist/esm/icons/sun.js","../lib/components/ThemeToggle/ThemeToggle.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\",\n key: \"kfwtm\"\n }\n ]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode);\n\nexport { __iconNode, Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode);\n\nexport { __iconNode, Sun as default };\n//# sourceMappingURL=sun.js.map\n","import React, { useLayoutEffect, useState } from 'react';\nimport { Moon, Sun } from 'lucide-react';\nimport { Button } from '../Button/Button';\n\nexport interface ThemeToggleProps {\n /**\n * Custom className for the toggle button\n */\n className?: string;\n\n /**\n * Size of the toggle button\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const ThemeToggle: React.FC<ThemeToggleProps> = ({ className, size = 'md' }) => {\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n useLayoutEffect(() => {\n // Check for saved theme preference or system preference\n const savedTheme = localStorage.getItem('theme');\n const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n const shouldUseDark = savedTheme === 'dark' || (!savedTheme && systemPrefersDark);\n\n setIsDarkMode(shouldUseDark);\n document.documentElement.classList.toggle('dark', shouldUseDark);\n }, []);\n\n const toggleTheme = () => {\n const newDarkMode = !isDarkMode;\n setIsDarkMode(newDarkMode);\n\n // Update DOM and localStorage\n document.documentElement.classList.toggle('dark', newDarkMode);\n localStorage.setItem('theme', newDarkMode ? 'dark' : 'light');\n };\n\n return (\n <Button\n variant='ghost'\n size={size === 'md' ? 'default' : size}\n onClick={toggleTheme}\n className={`text-foreground ${className}`}\n aria-label={`Switch to ${isDarkMode ? 'light' : 'dark'} theme`}\n >\n <Sun\n className={`h-4 w-4 transition-all ${isDarkMode ? 'scale-0 -rotate-90' : 'scale-100 rotate-0'}`}\n aria-hidden\n />\n <Moon\n className={`absolute h-4 w-4 transition-all ${isDarkMode ? 'scale-100 rotate-0' : 'scale-0 rotate-90'}`}\n aria-hidden\n />\n </Button>\n );\n};"],"names":["__iconNode"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -131,128 +131,206 @@
131
131
  opacity: 1;
132
132
  color: var(--PhoneInputCountrySelectArrow-color--focus);
133
133
  }/**
134
- * Quantum UI Shared Styles
134
+ * quantum-ui CSS - Theme Variables and Component Styles
135
135
  *
136
- * This file contains ONLY:
137
- * 1. Color theme variables (:root and .dark) - shared across all apps
138
- * 2. PhoneInput component overrides - for h-9 container sizing
136
+ * This file contains only CSS custom properties and component-specific styles.
137
+ * The consuming application should import Tailwind CSS separately.
139
138
  *
140
- * Apps should import this file to get consistent colors and PhoneInput styling,
141
- * then define their own complete Tailwind configuration.
139
+ * Usage in consuming app:
140
+ * @import 'tailwindcss';
141
+ * @import '@vritti/quantum-ui/index.css';
142
142
  */
143
-
144
143
  :root {
145
- --background: oklch(1 0 0);
146
- --foreground: oklch(0.3211 0 0);
147
- --card: oklch(1 0 0);
148
- --card-foreground: oklch(0.3211 0 0);
149
- --popover: oklch(1 0 0);
150
- --popover-foreground: oklch(0.3211 0 0);
151
- --primary: oklch(0.522 0.1771 255.8297);
152
- --primary-foreground: oklch(1 0 0);
153
- --secondary: oklch(0.967 0.0029 264.5419);
154
- --secondary-foreground: oklch(0.4461 0.0263 256.8018);
155
- --muted: oklch(0.9846 0.0017 247.8389);
156
- --muted-foreground: oklch(0.551 0.0234 264.3637);
157
- --accent: oklch(0.9514 0.025 236.8242);
158
- --accent-foreground: oklch(0.3791 0.1378 265.5222);
159
- --destructive: oklch(0.6368 0.2078 25.3313);
160
- --destructive-foreground: oklch(1 0 0);
161
- --success: oklch(0.6268 0.1768 154.8923);
162
- --success-foreground: oklch(1 0 0);
163
- --warning: oklch(0.7 0.15 85);
164
- --warning-foreground: oklch(0.2 0 0);
165
- --border: oklch(0.9276 0.0058 264.5313);
166
- --input: oklch(0.9276 0.0058 264.5313);
167
- --ring: oklch(0.6231 0.188 259.8145);
168
- --chart-1: oklch(0.6231 0.188 259.8145);
169
- --chart-2: oklch(0.5461 0.2152 262.8809);
170
- --chart-3: oklch(0.4882 0.2172 264.3763);
171
- --chart-4: oklch(0.4244 0.1809 265.6377);
172
- --chart-5: oklch(0.3791 0.1378 265.5222);
173
- --sidebar: oklch(0.9846 0.0017 247.8389);
174
- --sidebar-foreground: oklch(0.3211 0 0);
175
- --sidebar-primary: oklch(0.6231 0.188 259.8145);
176
- --sidebar-primary-foreground: oklch(1 0 0);
177
- --sidebar-accent: oklch(0.9514 0.025 236.8242);
178
- --sidebar-accent-foreground: oklch(0.3791 0.1378 265.5222);
179
- --sidebar-border: oklch(0.9276 0.0058 264.5313);
180
- --sidebar-ring: oklch(0.6231 0.188 259.8145);
181
- --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
182
- 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
183
- --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
184
- --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
185
- --radius: 0.625rem;
186
- --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
187
- --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
188
- --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
189
- --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
190
- --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
191
- --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
192
- --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
193
- --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
194
- --tracking-normal: 0em;
144
+ --background: oklch(1.0000 0 0);
145
+ --foreground: oklch(0.2302 0.0547 256.1829);
146
+ --card: oklch(1.0000 0 0);
147
+ --card-foreground: oklch(0.2302 0.0547 256.1829);
148
+ --popover: oklch(1.0000 0 0);
149
+ --popover-foreground: oklch(0.2302 0.0547 256.1829);
150
+ --primary: oklch(0.5789 0.1833 256.2496);
151
+ --primary-foreground: oklch(1.0000 0 0);
152
+ --secondary: oklch(0.9732 0.0131 251.5574);
153
+ --secondary-foreground: oklch(0.5789 0.1833 256.2496);
154
+ --muted: oklch(0.9802 0.0068 247.8944);
155
+ --muted-foreground: oklch(0.5435 0.0511 251.7257);
156
+ --accent: oklch(0.9512 0.0194 252.8790);
157
+ --accent-foreground: oklch(0.5789 0.1833 256.2496);
158
+ --destructive: oklch(0.5771 0.2152 27.3250);
159
+ --destructive-foreground: oklch(1.0000 0 0);
160
+ --warning: oklch(0.7500 0.1500 85);
161
+ --warning-foreground: oklch(0.2302 0.0547 256.1829);
162
+ --success: oklch(0.6500 0.1500 145);
163
+ --success-foreground: oklch(1.0000 0 0);
164
+ --border: oklch(0.9467 0.0207 248.0465);
165
+ --input: oklch(0.9467 0.0207 248.0465);
166
+ --ring: oklch(0.5789 0.1833 256.2496);
167
+ --chart-1: oklch(0.5789 0.1833 256.2496);
168
+ --chart-2: oklch(0.6856 0.1417 256.6754);
169
+ --chart-3: oklch(0.7729 0.1535 163.2231);
170
+ --chart-4: oklch(0.8369 0.1644 84.4286);
171
+ --chart-5: oklch(0.6368 0.2078 25.3313);
172
+ --sidebar: oklch(0.985 0 0);
173
+ --sidebar-foreground: oklch(0.145 0 0);
174
+ --sidebar-primary: oklch(0.205 0 0);
175
+ --sidebar-primary-foreground: oklch(0.985 0 0);
176
+ --sidebar-accent: oklch(0.97 0 0);
177
+ --sidebar-accent-foreground: oklch(0.205 0 0);
178
+ --sidebar-border: oklch(0.922 0 0);
179
+ --sidebar-ring: oklch(0.708 0 0);
180
+ --font-sans: 'IBM Plex Sans', sans-serif;
181
+ --font-serif: 'Playfair Display', serif;
182
+ --font-mono: 'JetBrains Mono', monospace;
183
+ --radius: 0.75rem;
184
+ --shadow-x: 0rem;
185
+ --shadow-y: 0.75rem;
186
+ --shadow-blur: 1.5rem;
187
+ --shadow-spread: 0.25rem;
188
+ --shadow-opacity: 0.08;
189
+ --shadow-color: #0A1D36;
190
+ --shadow-2xs: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.04);
191
+ --shadow-xs: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.04);
192
+ --shadow-sm: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.08), 0rem 1px 2px -0.75px hsl(214.0909 68.7500% 12.5490% / 0.08);
193
+ --shadow: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.08), 0rem 1px 2px -0.75px hsl(214.0909 68.7500% 12.5490% / 0.08);
194
+ --shadow-md: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.08), 0rem 2px 4px -0.75px hsl(214.0909 68.7500% 12.5490% / 0.08);
195
+ --shadow-lg: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.08), 0rem 4px 6px -0.75px hsl(214.0909 68.7500% 12.5490% / 0.08);
196
+ --shadow-xl: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.08), 0rem 8px 10px -0.75px hsl(214.0909 68.7500% 12.5490% / 0.08);
197
+ --shadow-2xl: 0rem 0.75rem 1.5rem 0.25rem hsl(214.0909 68.7500% 12.5490% / 0.20);
198
+ --tracking-normal: 0.01em;
195
199
  --spacing: 0.25rem;
196
200
  }
197
-
198
201
  .dark {
199
- --background: oklch(0.2046 0 0);
200
- --foreground: oklch(0.9219 0 0);
201
- --card: oklch(0.2686 0 0);
202
- --card-foreground: oklch(0.9219 0 0);
203
- --popover: oklch(0.2686 0 0);
204
- --popover-foreground: oklch(0.9219 0 0);
205
- --primary: oklch(0.522 0.1771 255.8297);
206
- --primary-foreground: oklch(1 0 0);
207
- --secondary: oklch(0.2686 0 0);
208
- --secondary-foreground: oklch(0.9219 0 0);
209
- --muted: oklch(0.2686 0 0);
210
- --muted-foreground: oklch(0.7155 0 0);
211
- --accent: oklch(0.3791 0.1378 265.5222);
212
- --accent-foreground: oklch(0.8823 0.0571 254.1284);
213
- --destructive: oklch(0.6368 0.2078 25.3313);
214
- --destructive-foreground: oklch(1 0 0);
215
- --success: oklch(0.6268 0.1768 154.8923);
216
- --success-foreground: oklch(1 0 0);
217
- --warning: oklch(0.7 0.15 85);
218
- --warning-foreground: oklch(1 0 0);
219
- --border: oklch(0.3715 0 0);
220
- --input: oklch(0.3715 0 0);
221
- --ring: oklch(0.6231 0.188 259.8145);
222
- --chart-1: oklch(0.7137 0.1434 254.624);
223
- --chart-2: oklch(0.6231 0.188 259.8145);
224
- --chart-3: oklch(0.5461 0.2152 262.8809);
225
- --chart-4: oklch(0.4882 0.2172 264.3763);
226
- --chart-5: oklch(0.4244 0.1809 265.6377);
227
- --sidebar: oklch(0.2046 0 0);
228
- --sidebar-foreground: oklch(0.9219 0 0);
229
- --sidebar-primary: oklch(0.6231 0.188 259.8145);
230
- --sidebar-primary-foreground: oklch(1 0 0);
231
- --sidebar-accent: oklch(0.3791 0.1378 265.5222);
232
- --sidebar-accent-foreground: oklch(0.8823 0.0571 254.1284);
233
- --sidebar-border: oklch(0.3715 0 0);
234
- --sidebar-ring: oklch(0.6231 0.188 259.8145);
235
- --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
236
- 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
237
- --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
238
- --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
239
- --radius: 0.625rem;
240
- --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
241
- --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
242
- --shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
243
- --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
244
- --shadow-md: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
245
- --shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
246
- --shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
247
- --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
202
+ --background: oklch(0.1591 0 0);
203
+ --foreground: oklch(0.9653 0.0069 247.8959);
204
+ --card: oklch(0.2178 0 0);
205
+ --card-foreground: oklch(0.9653 0.0069 247.8959);
206
+ --popover: oklch(0.1591 0 0);
207
+ --popover-foreground: oklch(0.9653 0.0069 247.8959);
208
+ --primary: oklch(0.5789 0.1833 256.2496);
209
+ --primary-foreground: oklch(0.9653 0.0069 247.8959);
210
+ --secondary: oklch(0.2931 0 0);
211
+ --secondary-foreground: oklch(0.8765 0.0112 225.9985);
212
+ --muted: oklch(0.2178 0 0);
213
+ --muted-foreground: oklch(0.7064 0.0268 229.3065);
214
+ --accent: oklch(0.2645 0 0);
215
+ --accent-foreground: oklch(0.5789 0.1833 256.2496);
216
+ --destructive: oklch(0.6539 0.1926 25.1437);
217
+ --destructive-foreground: oklch(1.0000 0 0);
218
+ --warning: oklch(0.8000 0.1600 90);
219
+ --warning-foreground: oklch(0.1591 0 0);
220
+ --success: oklch(0.7000 0.1600 150);
221
+ --success-foreground: oklch(0.1591 0 0);
222
+ --border: oklch(0.2931 0 0);
223
+ --input: oklch(0.2931 0 0);
224
+ --ring: oklch(0.5789 0.1833 256.2496);
225
+ --chart-1: oklch(0.5789 0.1833 256.2496);
226
+ --chart-2: oklch(0.6856 0.1417 256.6754);
227
+ --chart-3: oklch(0.6731 0.1624 144.2083);
228
+ --chart-4: oklch(0.8442 0.1722 84.9338);
229
+ --chart-5: oklch(0.6083 0.2090 27.0276);
230
+ --sidebar: oklch(0.205 0 0);
231
+ --sidebar-foreground: oklch(0.985 0 0);
232
+ --sidebar-primary: oklch(0.488 0.243 264.376);
233
+ --sidebar-primary-foreground: oklch(0.985 0 0);
234
+ --sidebar-accent: oklch(0.269 0 0);
235
+ --sidebar-accent-foreground: oklch(0.985 0 0);
236
+ --sidebar-border: oklch(1 0 0 / 10%);
237
+ --sidebar-ring: oklch(0.439 0 0);
238
+ --font-sans: 'IBM Plex Sans', sans-serif;
239
+ --font-serif: 'Playfair Display', serif;
240
+ --font-mono: 'JetBrains Mono', monospace;
241
+ --radius: 0.75rem;
242
+ --shadow-x: 0rem;
243
+ --shadow-y: 0.5rem;
244
+ --shadow-blur: 1.25rem;
245
+ --shadow-spread: 0.25rem;
246
+ --shadow-opacity: 0.35;
247
+ --shadow-color: #000000;
248
+ --shadow-2xs: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.17);
249
+ --shadow-xs: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.17);
250
+ --shadow-sm: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.35), 0rem 1px 2px -0.75px hsl(0 0% 0% / 0.35);
251
+ --shadow: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.35), 0rem 1px 2px -0.75px hsl(0 0% 0% / 0.35);
252
+ --shadow-md: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.35), 0rem 2px 4px -0.75px hsl(0 0% 0% / 0.35);
253
+ --shadow-lg: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.35), 0rem 4px 6px -0.75px hsl(0 0% 0% / 0.35);
254
+ --shadow-xl: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.35), 0rem 8px 10px -0.75px hsl(0 0% 0% / 0.35);
255
+ --shadow-2xl: 0rem 0.5rem 1.25rem 0.25rem hsl(0 0% 0% / 0.88);
248
256
  }
257
+ @theme inline {
258
+ --color-background: var(--background);
259
+ --color-foreground: var(--foreground);
260
+ --color-card: var(--card);
261
+ --color-card-foreground: var(--card-foreground);
262
+ --color-popover: var(--popover);
263
+ --color-popover-foreground: var(--popover-foreground);
264
+ --color-primary: var(--primary);
265
+ --color-primary-foreground: var(--primary-foreground);
266
+ --color-secondary: var(--secondary);
267
+ --color-secondary-foreground: var(--secondary-foreground);
268
+ --color-muted: var(--muted);
269
+ --color-muted-foreground: var(--muted-foreground);
270
+ --color-accent: var(--accent);
271
+ --color-accent-foreground: var(--accent-foreground);
272
+ --color-destructive: var(--destructive);
273
+ --color-destructive-foreground: var(--destructive-foreground);
274
+ --color-warning: var(--warning);
275
+ --color-warning-foreground: var(--warning-foreground);
276
+ --color-success: var(--success);
277
+ --color-success-foreground: var(--success-foreground);
278
+ --color-border: var(--border);
279
+ --color-input: var(--input);
280
+ --color-ring: var(--ring);
281
+ --color-chart-1: var(--chart-1);
282
+ --color-chart-2: var(--chart-2);
283
+ --color-chart-3: var(--chart-3);
284
+ --color-chart-4: var(--chart-4);
285
+ --color-chart-5: var(--chart-5);
286
+ --color-sidebar: var(--sidebar);
287
+ --color-sidebar-foreground: var(--sidebar-foreground);
288
+ --color-sidebar-primary: var(--sidebar-primary);
289
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
290
+ --color-sidebar-accent: var(--sidebar-accent);
291
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
292
+ --color-sidebar-border: var(--sidebar-border);
293
+ --color-sidebar-ring: var(--sidebar-ring);
294
+
295
+ --font-sans: var(--font-sans);
296
+ --font-mono: var(--font-mono);
297
+ --font-serif: var(--font-serif);
298
+
299
+ --radius-sm: calc(var(--radius) - 4px);
300
+ --radius-md: calc(var(--radius) - 2px);
301
+ --radius-lg: var(--radius);
302
+ --radius-xl: calc(var(--radius) + 4px);
249
303
 
304
+ --shadow-2xs: var(--shadow-2xs);
305
+ --shadow-xs: var(--shadow-xs);
306
+ --shadow-sm: var(--shadow-sm);
307
+ --shadow: var(--shadow);
308
+ --shadow-md: var(--shadow-md);
309
+ --shadow-lg: var(--shadow-lg);
310
+ --shadow-xl: var(--shadow-xl);
311
+ --shadow-2xl: var(--shadow-2xl);
312
+
313
+ --tracking-tighter: calc(var(--tracking-normal) - 0.05em);
314
+ --tracking-tight: calc(var(--tracking-normal) - 0.025em);
315
+ --tracking-normal: var(--tracking-normal);
316
+ --tracking-wide: calc(var(--tracking-normal) + 0.025em);
317
+ --tracking-wider: calc(var(--tracking-normal) + 0.05em);
318
+ --tracking-widest: calc(var(--tracking-normal) + 0.1em);
319
+ }
320
+ body {
321
+ letter-spacing: var(--tracking-normal);
322
+ }
250
323
  /* PhoneInput flag sizing overrides for h-9 (36px) container */
251
324
  .PhoneInput {
252
325
  --PhoneInputCountryFlag-height: 1rem;
253
326
  }
254
-
255
327
  .PhoneInputCountryIcon {
256
328
  max-width: 1rem;
257
329
  max-height: 1rem;
258
330
  }
331
+ /* Loading animation for skeleton progress bars */
332
+ @keyframes loading {
333
+ 0% { width: 0%; }
334
+ 50% { width: 70%; }
335
+ 100% { width: 100%; }
336
+ }
package/dist/axios.d.ts CHANGED
@@ -4,20 +4,25 @@ declare const axios: AxiosInstance;
4
4
  export { axios }
5
5
  export default axios;
6
6
 
7
- export declare const clearAllTokens: () => void;
7
+ export declare function cancelTokenRefresh(): void;
8
8
 
9
9
  export declare const clearCsrfToken: () => void;
10
10
 
11
- export declare const clearToken: (type: TokenType) => void;
11
+ export declare const clearToken: () => void;
12
12
 
13
13
  export declare const getCsrfToken: () => string | null;
14
14
 
15
- export declare const getToken: (type: TokenType) => string | null;
15
+ export declare const getToken: () => string | null;
16
16
 
17
- export declare const setCsrfToken: (token: string) => void;
17
+ export declare function recoverSession(): Promise<{
18
+ success: boolean;
19
+ expiresIn: number;
20
+ }>;
21
+
22
+ export declare function scheduleTokenRefresh(expiresIn: number): void;
18
23
 
19
- export declare const setToken: (type: TokenType, token: string) => void;
24
+ export declare const setCsrfToken: (token: string) => void;
20
25
 
21
- export declare type TokenType = 'onboarding' | 'access' | 'refresh';
26
+ export declare const setToken: (token: string) => void;
22
27
 
23
28
  export { }