@raystack/apsara 0.22.0 → 0.23.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.
- package/dist/emptystate/emptystate.cjs +3 -0
- package/dist/emptystate/emptystate.cjs.map +1 -1
- package/dist/emptystate/emptystate.d.ts +3 -0
- package/dist/emptystate/emptystate.d.ts.map +1 -1
- package/dist/emptystate/emptystate.js +3 -0
- package/dist/emptystate/emptystate.js.map +1 -1
- package/dist/flex/flex.cjs +3 -0
- package/dist/flex/flex.cjs.map +1 -1
- package/dist/flex/flex.d.ts +3 -0
- package/dist/flex/flex.d.ts.map +1 -1
- package/dist/flex/flex.js +3 -0
- package/dist/flex/flex.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/text/text.cjs +3 -0
- package/dist/text/text.cjs.map +1 -1
- package/dist/text/text.d.ts +3 -0
- package/dist/text/text.d.ts.map +1 -1
- package/dist/text/text.js +3 -0
- package/dist/text/text.js.map +1 -1
- package/dist/themprovider/switcher.cjs +3 -0
- package/dist/themprovider/switcher.cjs.map +1 -1
- package/dist/themprovider/switcher.d.ts +3 -0
- package/dist/themprovider/switcher.d.ts.map +1 -1
- package/dist/themprovider/switcher.js +3 -0
- package/dist/themprovider/switcher.js.map +1 -1
- package/dist/themprovider/theme.cjs +34 -6
- package/dist/themprovider/theme.cjs.map +1 -1
- package/dist/themprovider/theme.d.ts +6 -0
- package/dist/themprovider/theme.d.ts.map +1 -1
- package/dist/themprovider/theme.js +34 -6
- package/dist/themprovider/theme.js.map +1 -1
- package/dist/v1/components/emptystate/emptystate.cjs +14 -0
- package/dist/v1/components/emptystate/emptystate.cjs.map +1 -0
- package/dist/v1/components/emptystate/emptystate.d.ts +13 -0
- package/dist/v1/components/emptystate/emptystate.d.ts.map +1 -0
- package/dist/v1/components/emptystate/emptystate.js +12 -0
- package/dist/v1/components/emptystate/emptystate.js.map +1 -0
- package/dist/v1/components/emptystate/emptystate.module.css.cjs +8 -0
- package/dist/v1/components/emptystate/emptystate.module.css.cjs.map +1 -0
- package/dist/v1/components/emptystate/emptystate.module.css.js +4 -0
- package/dist/v1/components/emptystate/emptystate.module.css.js.map +1 -0
- package/dist/v1/components/emptystate/index.d.ts +2 -0
- package/dist/v1/components/emptystate/index.d.ts.map +1 -0
- package/dist/v1/components/flex/flex.cjs +54 -0
- package/dist/v1/components/flex/flex.cjs.map +1 -0
- package/dist/v1/components/flex/flex.d.ts +12 -0
- package/dist/v1/components/flex/flex.d.ts.map +1 -0
- package/dist/v1/components/flex/flex.js +52 -0
- package/dist/v1/components/flex/flex.js.map +1 -0
- package/dist/v1/components/flex/flex.module.css.cjs +8 -0
- package/dist/v1/components/flex/flex.module.css.cjs.map +1 -0
- package/dist/v1/components/flex/flex.module.css.js +4 -0
- package/dist/v1/components/flex/flex.module.css.js.map +1 -0
- package/dist/v1/components/flex/index.d.ts +2 -0
- package/dist/v1/components/flex/index.d.ts.map +1 -0
- package/dist/v1/components/text/index.d.ts +2 -0
- package/dist/v1/components/text/index.d.ts.map +1 -0
- package/dist/v1/components/text/text.cjs +58 -0
- package/dist/v1/components/text/text.cjs.map +1 -0
- package/dist/v1/components/text/text.d.ts +11 -0
- package/dist/v1/components/text/text.d.ts.map +1 -0
- package/dist/v1/components/text/text.js +56 -0
- package/dist/v1/components/text/text.js.map +1 -0
- package/dist/v1/components/text/text.module.css.cjs +8 -0
- package/dist/v1/components/text/text.module.css.cjs.map +1 -0
- package/dist/v1/components/text/text.module.css.js +4 -0
- package/dist/v1/components/text/text.module.css.js.map +1 -0
- package/dist/v1/components/themprovider/index.d.ts +1 -0
- package/dist/v1/components/themprovider/index.d.ts.map +1 -1
- package/dist/v1/components/themprovider/switcher.cjs +13 -2
- package/dist/v1/components/themprovider/switcher.cjs.map +1 -1
- package/dist/v1/components/themprovider/switcher.js +13 -2
- package/dist/v1/components/themprovider/switcher.js.map +1 -1
- package/dist/v1/components/themprovider/theme.cjs +154 -1
- package/dist/v1/components/themprovider/theme.cjs.map +1 -1
- package/dist/v1/components/themprovider/theme.js +155 -3
- package/dist/v1/components/themprovider/theme.js.map +1 -1
- package/dist/v1/components/toast/toast.cjs +1 -1
- package/dist/v1/components/toast/toast.cjs.map +1 -1
- package/dist/v1/components/toast/toast.js +1 -1
- package/dist/v1/components/toast/toast.js.map +1 -1
- package/dist/v1/components/toast/toast.module.css.cjs +1 -1
- package/dist/v1/components/toast/toast.module.css.js +1 -1
- package/dist/v1/index.cjs +11 -0
- package/dist/v1/index.cjs.map +1 -1
- package/dist/v1/index.d.ts +11 -7
- package/dist/v1/index.d.ts.map +1 -1
- package/dist/v1/index.js +5 -0
- package/dist/v1/index.js.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +46 -0
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +45 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/dist/v1/style.css +1 -1
- package/package.json +1 -1
package/dist/text/text.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.cjs","sources":["../../text/text.tsx"],"sourcesContent":["import { cva, VariantProps } from \"class-variance-authority\";\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\nimport styles from \"./text.module.css\";\n\nconst text = cva(styles.text, {\n variants: {\n size: {\n 1: styles[\"text-1\"],\n 2: styles[\"text-2\"],\n 3: styles[\"text-3\"],\n 4: styles[\"text-4\"],\n 5: styles[\"text-5\"],\n 6: styles[\"text-6\"],\n 7: styles[\"text-7\"],\n 8: styles[\"text-8\"],\n 9: styles[\"text-9\"],\n 10: styles[\"text-10\"],\n },\n weight: {\n bold: styles[\"text-weight-bold\"],\n bolder: styles[\"text-weight-bolder\"],\n normal: styles[\"text-weight-normal\"],\n lighter: styles[\"text-weight-lighter\"],\n 100: styles[\"text-weight-100\"],\n 200: styles[\"text-weight-200\"],\n 300: styles[\"text-weight-300\"],\n 400: styles[\"text-weight-400\"],\n 500: styles[\"text-weight-500\"],\n 600: styles[\"text-weight-600\"],\n 700: styles[\"text-weight-700\"],\n 800: styles[\"text-weight-800\"],\n 900: styles[\"text-weight-900\"],\n },\n },\n defaultVariants: {\n size: 2,\n weight: 400,\n },\n});\n\nexport type TextProps = PropsWithChildren<VariantProps<typeof text>> &\n HTMLAttributes<HTMLSpanElement>;\n\nexport function Text({\n children,\n className,\n size,\n weight,\n ...props\n}: TextProps) {\n return (\n <span className={text({ size, className, weight })} {...props}>\n {children}\n </span>\n );\n}\n"],"names":["cva","styles","_jsx"],"mappings":";;;;;;AAIA,MAAM,IAAI,GAAGA,SAAG,CAACC,mBAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,EAAE,EAAEA,mBAAM,CAAC,SAAS,CAAC;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAEA,mBAAM,CAAC,kBAAkB,CAAC;AAChC,YAAA,MAAM,EAAEA,mBAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,MAAM,EAAEA,mBAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,OAAO,EAAEA,mBAAM,CAAC,qBAAqB,CAAC;AACtC,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE,GAAG;AACZ,KAAA;AACF,CAAA,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"text.cjs","sources":["../../text/text.tsx"],"sourcesContent":["import { cva, VariantProps } from \"class-variance-authority\";\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\nimport styles from \"./text.module.css\";\n\nconst text = cva(styles.text, {\n variants: {\n size: {\n 1: styles[\"text-1\"],\n 2: styles[\"text-2\"],\n 3: styles[\"text-3\"],\n 4: styles[\"text-4\"],\n 5: styles[\"text-5\"],\n 6: styles[\"text-6\"],\n 7: styles[\"text-7\"],\n 8: styles[\"text-8\"],\n 9: styles[\"text-9\"],\n 10: styles[\"text-10\"],\n },\n weight: {\n bold: styles[\"text-weight-bold\"],\n bolder: styles[\"text-weight-bolder\"],\n normal: styles[\"text-weight-normal\"],\n lighter: styles[\"text-weight-lighter\"],\n 100: styles[\"text-weight-100\"],\n 200: styles[\"text-weight-200\"],\n 300: styles[\"text-weight-300\"],\n 400: styles[\"text-weight-400\"],\n 500: styles[\"text-weight-500\"],\n 600: styles[\"text-weight-600\"],\n 700: styles[\"text-weight-700\"],\n 800: styles[\"text-weight-800\"],\n 900: styles[\"text-weight-900\"],\n },\n },\n defaultVariants: {\n size: 2,\n weight: 400,\n },\n});\n\nexport type TextProps = PropsWithChildren<VariantProps<typeof text>> &\n HTMLAttributes<HTMLSpanElement>;\n\n/**\n * @deprecated Use Text from '@raystack/apsara/v1' instead.\n */\nexport function Text({\n children,\n className,\n size,\n weight,\n ...props\n}: TextProps) {\n return (\n <span className={text({ size, className, weight })} {...props}>\n {children}\n </span>\n );\n}\n"],"names":["cva","styles","_jsx"],"mappings":";;;;;;AAIA,MAAM,IAAI,GAAGA,SAAG,CAACC,mBAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAEA,mBAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,EAAE,EAAEA,mBAAM,CAAC,SAAS,CAAC;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAEA,mBAAM,CAAC,kBAAkB,CAAC;AAChC,YAAA,MAAM,EAAEA,mBAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,MAAM,EAAEA,mBAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,OAAO,EAAEA,mBAAM,CAAC,qBAAqB,CAAC;AACtC,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE,GAAG;AACZ,KAAA;AACF,CAAA,CAAC,CAAC;AAKH;;AAEG;AACa,SAAA,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,MAAM,EACN,GAAG,KAAK,EACE,EAAA;IACV,QACEC,2CAAM,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAM,GAAA,KAAK,YAC1D,QAAQ,EAAA,CACJ,EACP;AACJ;;;;"}
|
package/dist/text/text.d.ts
CHANGED
|
@@ -5,6 +5,9 @@ declare const text: (props?: ({
|
|
|
5
5
|
weight?: "bold" | "normal" | "bolder" | "lighter" | 400 | 100 | 200 | 300 | 500 | 600 | 700 | 800 | 900 | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
7
7
|
export type TextProps = PropsWithChildren<VariantProps<typeof text>> & HTMLAttributes<HTMLSpanElement>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use Text from '@raystack/apsara/v1' instead.
|
|
10
|
+
*/
|
|
8
11
|
export declare function Text({ children, className, size, weight, ...props }: TextProps): import("react/jsx-runtime").JSX.Element;
|
|
9
12
|
export {};
|
|
10
13
|
//# sourceMappingURL=text.d.ts.map
|
package/dist/text/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../text/text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG1D,QAAA,MAAM,IAAI;;;mFAkCR,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,GAClE,cAAc,CAAC,eAAe,CAAC,CAAC;AAElC,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,MAAM,EACN,GAAG,KAAK,EACT,EAAE,SAAS,2CAMX"}
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../text/text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG1D,QAAA,MAAM,IAAI;;;mFAkCR,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,GAClE,cAAc,CAAC,eAAe,CAAC,CAAC;AAElC;;GAEG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,MAAM,EACN,GAAG,KAAK,EACT,EAAE,SAAS,2CAMX"}
|
package/dist/text/text.js
CHANGED
|
@@ -37,6 +37,9 @@ const text = cva(styles.text, {
|
|
|
37
37
|
weight: 400,
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* @deprecated Use Text from '@raystack/apsara/v1' instead.
|
|
42
|
+
*/
|
|
40
43
|
function Text({ children, className, size, weight, ...props }) {
|
|
41
44
|
return (jsxRuntimeExports.jsx("span", { className: text({ size, className, weight }), ...props, children: children }));
|
|
42
45
|
}
|
package/dist/text/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sources":["../../text/text.tsx"],"sourcesContent":["import { cva, VariantProps } from \"class-variance-authority\";\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\nimport styles from \"./text.module.css\";\n\nconst text = cva(styles.text, {\n variants: {\n size: {\n 1: styles[\"text-1\"],\n 2: styles[\"text-2\"],\n 3: styles[\"text-3\"],\n 4: styles[\"text-4\"],\n 5: styles[\"text-5\"],\n 6: styles[\"text-6\"],\n 7: styles[\"text-7\"],\n 8: styles[\"text-8\"],\n 9: styles[\"text-9\"],\n 10: styles[\"text-10\"],\n },\n weight: {\n bold: styles[\"text-weight-bold\"],\n bolder: styles[\"text-weight-bolder\"],\n normal: styles[\"text-weight-normal\"],\n lighter: styles[\"text-weight-lighter\"],\n 100: styles[\"text-weight-100\"],\n 200: styles[\"text-weight-200\"],\n 300: styles[\"text-weight-300\"],\n 400: styles[\"text-weight-400\"],\n 500: styles[\"text-weight-500\"],\n 600: styles[\"text-weight-600\"],\n 700: styles[\"text-weight-700\"],\n 800: styles[\"text-weight-800\"],\n 900: styles[\"text-weight-900\"],\n },\n },\n defaultVariants: {\n size: 2,\n weight: 400,\n },\n});\n\nexport type TextProps = PropsWithChildren<VariantProps<typeof text>> &\n HTMLAttributes<HTMLSpanElement>;\n\nexport function Text({\n children,\n className,\n size,\n weight,\n ...props\n}: TextProps) {\n return (\n <span className={text({ size, className, weight })} {...props}>\n {children}\n </span>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;AAIA,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC;AAChC,YAAA,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,OAAO,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACtC,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE,GAAG;AACZ,KAAA;AACF,CAAA,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"text.js","sources":["../../text/text.tsx"],"sourcesContent":["import { cva, VariantProps } from \"class-variance-authority\";\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\nimport styles from \"./text.module.css\";\n\nconst text = cva(styles.text, {\n variants: {\n size: {\n 1: styles[\"text-1\"],\n 2: styles[\"text-2\"],\n 3: styles[\"text-3\"],\n 4: styles[\"text-4\"],\n 5: styles[\"text-5\"],\n 6: styles[\"text-6\"],\n 7: styles[\"text-7\"],\n 8: styles[\"text-8\"],\n 9: styles[\"text-9\"],\n 10: styles[\"text-10\"],\n },\n weight: {\n bold: styles[\"text-weight-bold\"],\n bolder: styles[\"text-weight-bolder\"],\n normal: styles[\"text-weight-normal\"],\n lighter: styles[\"text-weight-lighter\"],\n 100: styles[\"text-weight-100\"],\n 200: styles[\"text-weight-200\"],\n 300: styles[\"text-weight-300\"],\n 400: styles[\"text-weight-400\"],\n 500: styles[\"text-weight-500\"],\n 600: styles[\"text-weight-600\"],\n 700: styles[\"text-weight-700\"],\n 800: styles[\"text-weight-800\"],\n 900: styles[\"text-weight-900\"],\n },\n },\n defaultVariants: {\n size: 2,\n weight: 400,\n },\n});\n\nexport type TextProps = PropsWithChildren<VariantProps<typeof text>> &\n HTMLAttributes<HTMLSpanElement>;\n\n/**\n * @deprecated Use Text from '@raystack/apsara/v1' instead.\n */\nexport function Text({\n children,\n className,\n size,\n weight,\n ...props\n}: TextProps) {\n return (\n <span className={text({ size, className, weight })} {...props}>\n {children}\n </span>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;AAIA,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnB,YAAA,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC;AAChC,YAAA,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACpC,YAAA,OAAO,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACtC,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC9B,YAAA,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,MAAM,EAAE,GAAG;AACZ,KAAA;AACF,CAAA,CAAC,CAAC;AAKH;;AAEG;AACa,SAAA,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,MAAM,EACN,GAAG,KAAK,EACE,EAAA;IACV,QACEA,gCAAM,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAM,GAAA,KAAK,YAC1D,QAAQ,EAAA,CACJ,EACP;AACJ;;;;"}
|
|
@@ -10,6 +10,9 @@ var Theme;
|
|
|
10
10
|
Theme["DARK"] = "dark";
|
|
11
11
|
Theme["LIGHT"] = "light";
|
|
12
12
|
})(Theme || (Theme = {}));
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use ThemeSwitcher from '@raystack/apsara/v1' instead.
|
|
15
|
+
*/
|
|
13
16
|
function ThemeSwitcher({ size = 30, ...props }) {
|
|
14
17
|
const { theme: theme$1, setTheme } = theme.useTheme();
|
|
15
18
|
const onClickHandler = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switcher.cjs","sources":["../../themprovider/switcher.tsx"],"sourcesContent":["import { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { Box } from \"~/box\";\nimport { useTheme } from \"./theme\";\n\nenum Theme {\n DARK = \"dark\",\n LIGHT = \"light\",\n}\n\ntype Props = { size?: number };\nexport function ThemeSwitcher({ size = 30, ...props }: Props) {\n const { theme, setTheme } = useTheme();\n const onClickHandler = () => {\n setTheme(theme === Theme.DARK ? Theme.LIGHT : Theme.DARK);\n };\n\n return (\n <Box {...props}>\n {theme === Theme.DARK ? (\n <SunIcon width={size} height={size} onClick={onClickHandler} />\n ) : (\n <MoonIcon width={size} height={size} onClick={onClickHandler} />\n )}\n </Box>\n );\n}\n"],"names":["theme","useTheme","_jsx","Box","SunIcon","MoonIcon"],"mappings":";;;;;;;AAIA,IAAK,KAGJ,CAAA;AAHD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHI,KAAK,KAAL,KAAK,GAGT,EAAA,CAAA,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"switcher.cjs","sources":["../../themprovider/switcher.tsx"],"sourcesContent":["import { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { Box } from \"~/box\";\nimport { useTheme } from \"./theme\";\n\nenum Theme {\n DARK = \"dark\",\n LIGHT = \"light\",\n}\n\ntype Props = { size?: number };\n\n/**\n * @deprecated Use ThemeSwitcher from '@raystack/apsara/v1' instead.\n */\nexport function ThemeSwitcher({ size = 30, ...props }: Props) {\n const { theme, setTheme } = useTheme();\n const onClickHandler = () => {\n setTheme(theme === Theme.DARK ? Theme.LIGHT : Theme.DARK);\n };\n\n return (\n <Box {...props}>\n {theme === Theme.DARK ? (\n <SunIcon width={size} height={size} onClick={onClickHandler} />\n ) : (\n <MoonIcon width={size} height={size} onClick={onClickHandler} />\n )}\n </Box>\n );\n}\n"],"names":["theme","useTheme","_jsx","Box","SunIcon","MoonIcon"],"mappings":";;;;;;;AAIA,IAAK,KAGJ,CAAA;AAHD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHI,KAAK,KAAL,KAAK,GAGT,EAAA,CAAA,CAAA,CAAA;AAID;;AAEG;AACG,SAAU,aAAa,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,EAAS,EAAA;IAC1D,MAAM,SAAEA,OAAK,EAAE,QAAQ,EAAE,GAAGC,cAAQ,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,QAAQ,CAACD,OAAK,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAC,CAAC;IAEF,QACEE,gCAAC,CAAAC,OAAG,EAAK,EAAA,GAAA,KAAK,YACXH,OAAK,KAAK,KAAK,CAAC,IAAI,IACnBE,gCAAC,CAAAE,sBAAO,EAAC,EAAA,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,KAE/DF,gCAAA,CAACG,uBAAQ,EAAA,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,CACjE,EACG,CAAA,EACN;AACJ;;;;"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
type Props = {
|
|
2
2
|
size?: number;
|
|
3
3
|
};
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use ThemeSwitcher from '@raystack/apsara/v1' instead.
|
|
6
|
+
*/
|
|
4
7
|
export declare function ThemeSwitcher({ size, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
5
8
|
export {};
|
|
6
9
|
//# sourceMappingURL=switcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switcher.d.ts","sourceRoot":"","sources":["../../themprovider/switcher.tsx"],"names":[],"mappings":"AASA,KAAK,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"switcher.d.ts","sourceRoot":"","sources":["../../themprovider/switcher.tsx"],"names":[],"mappings":"AASA,KAAK,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/B;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,2CAe3D"}
|
|
@@ -8,6 +8,9 @@ var Theme;
|
|
|
8
8
|
Theme["DARK"] = "dark";
|
|
9
9
|
Theme["LIGHT"] = "light";
|
|
10
10
|
})(Theme || (Theme = {}));
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use ThemeSwitcher from '@raystack/apsara/v1' instead.
|
|
13
|
+
*/
|
|
11
14
|
function ThemeSwitcher({ size = 30, ...props }) {
|
|
12
15
|
const { theme, setTheme } = useTheme();
|
|
13
16
|
const onClickHandler = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switcher.js","sources":["../../themprovider/switcher.tsx"],"sourcesContent":["import { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { Box } from \"~/box\";\nimport { useTheme } from \"./theme\";\n\nenum Theme {\n DARK = \"dark\",\n LIGHT = \"light\",\n}\n\ntype Props = { size?: number };\nexport function ThemeSwitcher({ size = 30, ...props }: Props) {\n const { theme, setTheme } = useTheme();\n const onClickHandler = () => {\n setTheme(theme === Theme.DARK ? Theme.LIGHT : Theme.DARK);\n };\n\n return (\n <Box {...props}>\n {theme === Theme.DARK ? (\n <SunIcon width={size} height={size} onClick={onClickHandler} />\n ) : (\n <MoonIcon width={size} height={size} onClick={onClickHandler} />\n )}\n </Box>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;;AAIA,IAAK,KAGJ,CAAA;AAHD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHI,KAAK,KAAL,KAAK,GAGT,EAAA,CAAA,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"switcher.js","sources":["../../themprovider/switcher.tsx"],"sourcesContent":["import { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { Box } from \"~/box\";\nimport { useTheme } from \"./theme\";\n\nenum Theme {\n DARK = \"dark\",\n LIGHT = \"light\",\n}\n\ntype Props = { size?: number };\n\n/**\n * @deprecated Use ThemeSwitcher from '@raystack/apsara/v1' instead.\n */\nexport function ThemeSwitcher({ size = 30, ...props }: Props) {\n const { theme, setTheme } = useTheme();\n const onClickHandler = () => {\n setTheme(theme === Theme.DARK ? Theme.LIGHT : Theme.DARK);\n };\n\n return (\n <Box {...props}>\n {theme === Theme.DARK ? (\n <SunIcon width={size} height={size} onClick={onClickHandler} />\n ) : (\n <MoonIcon width={size} height={size} onClick={onClickHandler} />\n )}\n </Box>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;;AAIA,IAAK,KAGJ,CAAA;AAHD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHI,KAAK,KAAL,KAAK,GAGT,EAAA,CAAA,CAAA,CAAA;AAID;;AAEG;AACG,SAAU,aAAa,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,EAAS,EAAA;IAC1D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAC,CAAC;IAEF,QACEA,qBAAC,CAAA,GAAG,EAAK,EAAA,GAAA,KAAK,YACX,KAAK,KAAK,KAAK,CAAC,IAAI,IACnBA,qBAAC,CAAA,OAAO,EAAC,EAAA,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,KAE/DA,qBAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,CACjE,EACG,CAAA,EACN;AACJ;;;;"}
|
|
@@ -8,7 +8,13 @@ const MEDIA = "(prefers-color-scheme: dark)";
|
|
|
8
8
|
const isServer = typeof window === "undefined";
|
|
9
9
|
const ThemeContext = React.createContext(undefined);
|
|
10
10
|
const defaultContext = { setTheme: (_) => { }, themes: [] };
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use useTheme from '@raystack/apsara/v1' instead.
|
|
13
|
+
*/
|
|
11
14
|
const useTheme = () => React.useContext(ThemeContext) ?? defaultContext;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use ThemeProvider from '@raystack/apsara/v1' instead.
|
|
17
|
+
*/
|
|
12
18
|
const ThemeProvider = (props) => {
|
|
13
19
|
const context = React.useContext(ThemeContext);
|
|
14
20
|
// Ignore nested context providers, just passthrough children
|
|
@@ -45,19 +51,31 @@ const Theme = ({ forcedTheme, disableTransitionOnChange = false, enableSystem =
|
|
|
45
51
|
d.removeAttribute(attribute);
|
|
46
52
|
}
|
|
47
53
|
}
|
|
48
|
-
d.setAttribute(
|
|
49
|
-
d.setAttribute(
|
|
50
|
-
d.setAttribute(
|
|
54
|
+
d.setAttribute("data-style", style);
|
|
55
|
+
d.setAttribute("data-accent-color", accentColor);
|
|
56
|
+
d.setAttribute("data-gray-color", grayColor);
|
|
51
57
|
if (enableColorScheme) {
|
|
52
58
|
const fallback = colorSchemes.includes(defaultTheme)
|
|
53
59
|
? defaultTheme
|
|
54
60
|
: null;
|
|
55
|
-
const colorScheme = colorSchemes.includes(resolved)
|
|
61
|
+
const colorScheme = colorSchemes.includes(resolved)
|
|
62
|
+
? resolved
|
|
63
|
+
: fallback;
|
|
56
64
|
// @ts-ignore
|
|
57
65
|
d.style.colorScheme = colorScheme;
|
|
58
66
|
}
|
|
59
67
|
enable?.();
|
|
60
|
-
}, [
|
|
68
|
+
}, [
|
|
69
|
+
style,
|
|
70
|
+
accentColor,
|
|
71
|
+
grayColor,
|
|
72
|
+
attribute,
|
|
73
|
+
attrs,
|
|
74
|
+
value,
|
|
75
|
+
enableSystem,
|
|
76
|
+
enableColorScheme,
|
|
77
|
+
defaultTheme,
|
|
78
|
+
]);
|
|
61
79
|
const setTheme = React.useCallback((theme) => {
|
|
62
80
|
setThemeState(theme);
|
|
63
81
|
// Save to storage
|
|
@@ -111,7 +129,17 @@ const Theme = ({ forcedTheme, disableTransitionOnChange = false, enableSystem =
|
|
|
111
129
|
style,
|
|
112
130
|
accentColor,
|
|
113
131
|
grayColor,
|
|
114
|
-
}), [
|
|
132
|
+
}), [
|
|
133
|
+
theme,
|
|
134
|
+
setTheme,
|
|
135
|
+
forcedTheme,
|
|
136
|
+
resolvedTheme,
|
|
137
|
+
enableSystem,
|
|
138
|
+
themes,
|
|
139
|
+
style,
|
|
140
|
+
accentColor,
|
|
141
|
+
grayColor,
|
|
142
|
+
]);
|
|
115
143
|
return (jsxRuntime.jsxRuntimeExports.jsxs(ThemeContext.Provider, { value: providerValue, children: [jsxRuntime.jsxRuntimeExports.jsx(ThemeScript, { forcedTheme,
|
|
116
144
|
disableTransitionOnChange,
|
|
117
145
|
enableSystem,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.cjs","sources":["../../themprovider/theme.tsx"],"sourcesContent":["import React, {\n Fragment,\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport type { ThemeProviderProps, UseThemeProps } from \"./types\";\n\nconst colorSchemes = [\"light\", \"dark\"];\nconst MEDIA = \"(prefers-color-scheme: dark)\";\nconst isServer = typeof window === \"undefined\";\nconst ThemeContext = createContext<UseThemeProps | undefined>(undefined);\nconst defaultContext: UseThemeProps = { setTheme: (_) => {}, themes: [] };\n\nexport const useTheme = () => useContext(ThemeContext) ?? defaultContext;\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = (props) => {\n const context = useContext(ThemeContext);\n\n // Ignore nested context providers, just passthrough children\n if (context) return <Fragment>{props.children}</Fragment>;\n return <Theme {...props} />;\n};\n\nconst defaultThemes = [\"light\", \"dark\"];\n\nconst Theme: React.FC<ThemeProviderProps> = ({\n forcedTheme,\n disableTransitionOnChange = false,\n enableSystem = true,\n enableColorScheme = true,\n storageKey = \"theme\",\n themes = defaultThemes,\n defaultTheme = enableSystem ? \"system\" : \"light\",\n attribute = \"data-theme\",\n value,\n children,\n nonce,\n style = \"modern\",\n accentColor = \"indigo\",\n grayColor = \"slate\",\n}) => {\n const [theme, setThemeState] = useState(() =>\n getTheme(storageKey, defaultTheme)\n );\n const [resolvedTheme, setResolvedTheme] = useState(() =>\n getTheme(storageKey)\n );\n const attrs = !value ? themes : Object.values(value);\n\n const applyTheme = useCallback((theme: string) => {\n let resolved = theme;\n if (!resolved) return;\n\n // If theme is system, resolve it before setting theme\n if (theme === \"system\" && enableSystem) {\n resolved = getSystemTheme();\n }\n\n const name = value ? value[resolved] : resolved;\n const enable = disableTransitionOnChange ? disableAnimation() : null;\n const d = document.documentElement;\n\n if (attribute === \"class\") {\n d.classList.remove(...attrs);\n\n if (name) d.classList.add(name);\n } else {\n if (name) {\n d.setAttribute(attribute, name);\n } else {\n d.removeAttribute(attribute);\n }\n }\n\n d.setAttribute('data-style', style);\n d.setAttribute('data-accent-color', accentColor);\n d.setAttribute('data-gray-color', grayColor);\n\n if (enableColorScheme) {\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n const colorScheme = colorSchemes.includes(resolved) ? resolved : fallback;\n // @ts-ignore\n d.style.colorScheme = colorScheme;\n }\n\n enable?.();\n }, [style, accentColor, grayColor, attribute, attrs, value, enableSystem, enableColorScheme, defaultTheme]);\n\n const setTheme = useCallback(\n (theme: string) => {\n setThemeState(theme);\n\n // Save to storage\n try {\n localStorage.setItem(storageKey, theme);\n } catch (e) {\n // Unsupported\n }\n },\n [forcedTheme]\n );\n\n const handleMediaQuery = useCallback(\n (e: MediaQueryListEvent | MediaQueryList) => {\n const resolved = getSystemTheme(e);\n setResolvedTheme(resolved);\n\n if (theme === \"system\" && enableSystem && !forcedTheme) {\n applyTheme(\"system\");\n }\n },\n [theme, forcedTheme]\n );\n\n // Always listen to System preference\n useEffect(() => {\n const media = window.matchMedia(MEDIA);\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n\n return () => media.removeListener(handleMediaQuery);\n }, [handleMediaQuery]);\n\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return;\n }\n\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme;\n setTheme(theme);\n };\n\n window.addEventListener(\"storage\", handleStorage);\n return () => window.removeEventListener(\"storage\", handleStorage);\n }, [setTheme]);\n\n // Whenever theme or forcedTheme changes, apply it\n useEffect(() => {\n // @ts-ignore\n applyTheme(forcedTheme ?? theme);\n }, [forcedTheme, theme]);\n\n const providerValue = useMemo(\n () => ({\n theme,\n setTheme,\n forcedTheme,\n resolvedTheme: theme === \"system\" ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, \"system\"] : themes,\n systemTheme: (enableSystem ? resolvedTheme : undefined) as\n | \"light\"\n | \"dark\"\n | undefined,\n style,\n accentColor,\n grayColor,\n }),\n [theme, setTheme, forcedTheme, resolvedTheme, enableSystem, themes, style, accentColor, grayColor]\n );\n\n return (\n <ThemeContext.Provider value={providerValue}>\n <ThemeScript\n {...{\n forcedTheme,\n disableTransitionOnChange,\n enableSystem,\n enableColorScheme,\n storageKey,\n themes,\n defaultTheme,\n attribute,\n value,\n children,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }}\n />\n {children}\n </ThemeContext.Provider>\n );\n};\n\nconst ThemeScript = memo(\n ({\n forcedTheme,\n storageKey,\n attribute,\n enableSystem,\n enableColorScheme,\n defaultTheme,\n value,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }: ThemeProviderProps & { attrs: string[]; defaultTheme: string }) => {\n const defaultSystem = defaultTheme === \"system\";\n\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === \"class\") {\n const removeClasses = `c.remove(${attrs\n .map((t: string) => `'${t}'`)\n .join(\",\")})`;\n\n return `var d=document.documentElement,c=d.classList;${removeClasses};`;\n } else {\n return `var d=document.documentElement,n='${attribute}',s='setAttribute';`;\n }\n })();\n\n const fallbackColorScheme = (() => {\n if (!enableColorScheme) {\n return \"\";\n }\n\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n\n if (fallback) {\n return `if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${defaultTheme}'`;\n } else {\n return `if(e==='light'||e==='dark')d.style.colorScheme=e`;\n }\n })();\n\n const updateDOM = (\n name: string,\n literal: boolean = false,\n setColorScheme = true\n ) => {\n const resolvedName = value ? value[name] : name;\n const val = literal ? name + `|| ''` : `'${resolvedName}'`;\n let text = \"\";\n\n // MUCH faster to set colorScheme alongside HTML attribute/class\n // as it only incurs 1 style recalculation rather than 2\n // This can save over 250ms of work for pages with big DOM\n if (\n enableColorScheme &&\n setColorScheme &&\n !literal &&\n colorSchemes.includes(name)\n ) {\n text += `d.style.colorScheme = '${name}';`;\n }\n\n if (attribute === \"class\") {\n if (literal || resolvedName) {\n text += `c.add(${val})`;\n } else {\n text += `null`;\n }\n } else {\n if (resolvedName) {\n text += `d[s](n,${val})`;\n }\n }\n\n return text;\n };\n\n const scriptSrc = (() => {\n if (forcedTheme) {\n return `!function(){${optimization}${updateDOM(forcedTheme)};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}()`;\n }\n\n if (enableSystem) {\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if('system'===e||(!e&&${defaultSystem})){var t='${MEDIA}',m=window.matchMedia(t);if(m.media!==t||m.matches){${updateDOM(\n \"dark\"\n )}}else{${updateDOM(\"light\")}}}else if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}${\n !defaultSystem\n ? `else{` + updateDOM(defaultTheme, false, false) + \"}\"\n : \"\"\n }${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(e){}}()`;\n }\n\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}else{${updateDOM(\n defaultTheme,\n false,\n false\n )};}${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(t){}}();`;\n })();\n\n return (\n <script nonce={nonce} dangerouslySetInnerHTML={{ __html: scriptSrc }} />\n );\n },\n // Never re-render this component\n () => true\n);\n\n// Helpers\nconst getTheme = (key: string, fallback?: string) => {\n if (isServer) return undefined;\n let theme;\n try {\n theme = localStorage.getItem(key) || undefined;\n } catch (e) {\n // Unsupported\n }\n return theme || fallback;\n};\n\nconst disableAnimation = () => {\n const css = document.createElement(\"style\");\n css.appendChild(\n document.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`\n )\n );\n document.head.appendChild(css);\n\n return () => {\n // Force restyle\n (() => window.getComputedStyle(document.body))();\n\n // Wait for next tick before removing\n setTimeout(() => {\n document.head.removeChild(css);\n }, 1);\n };\n};\n\nconst getSystemTheme = (e?: MediaQueryList | MediaQueryListEvent) => {\n if (!e) e = window.matchMedia(MEDIA);\n const isDark = e.matches;\n const systemTheme = isDark ? \"dark\" : \"light\";\n return systemTheme;\n};\n"],"names":["createContext","useContext","_jsx","Fragment","useState","useCallback","useEffect","useMemo","_jsxs","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.cjs","sources":["../../themprovider/theme.tsx"],"sourcesContent":["import React, {\n Fragment,\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport type { ThemeProviderProps, UseThemeProps } from \"./types\";\n\nconst colorSchemes = [\"light\", \"dark\"];\nconst MEDIA = \"(prefers-color-scheme: dark)\";\nconst isServer = typeof window === \"undefined\";\nconst ThemeContext = createContext<UseThemeProps | undefined>(undefined);\nconst defaultContext: UseThemeProps = { setTheme: (_) => {}, themes: [] };\n\n/**\n * @deprecated Use useTheme from '@raystack/apsara/v1' instead.\n */\nexport const useTheme = () => useContext(ThemeContext) ?? defaultContext;\n\n/**\n * @deprecated Use ThemeProvider from '@raystack/apsara/v1' instead.\n */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = (props) => {\n const context = useContext(ThemeContext);\n\n // Ignore nested context providers, just passthrough children\n if (context) return <Fragment>{props.children}</Fragment>;\n return <Theme {...props} />;\n};\n\nconst defaultThemes = [\"light\", \"dark\"];\n\nconst Theme: React.FC<ThemeProviderProps> = ({\n forcedTheme,\n disableTransitionOnChange = false,\n enableSystem = true,\n enableColorScheme = true,\n storageKey = \"theme\",\n themes = defaultThemes,\n defaultTheme = enableSystem ? \"system\" : \"light\",\n attribute = \"data-theme\",\n value,\n children,\n nonce,\n style = \"modern\",\n accentColor = \"indigo\",\n grayColor = \"slate\",\n}) => {\n const [theme, setThemeState] = useState(() =>\n getTheme(storageKey, defaultTheme)\n );\n const [resolvedTheme, setResolvedTheme] = useState(() =>\n getTheme(storageKey)\n );\n const attrs = !value ? themes : Object.values(value);\n\n const applyTheme = useCallback(\n (theme: string) => {\n let resolved = theme;\n if (!resolved) return;\n\n // If theme is system, resolve it before setting theme\n if (theme === \"system\" && enableSystem) {\n resolved = getSystemTheme();\n }\n\n const name = value ? value[resolved] : resolved;\n const enable = disableTransitionOnChange ? disableAnimation() : null;\n const d = document.documentElement;\n\n if (attribute === \"class\") {\n d.classList.remove(...attrs);\n\n if (name) d.classList.add(name);\n } else {\n if (name) {\n d.setAttribute(attribute, name);\n } else {\n d.removeAttribute(attribute);\n }\n }\n\n d.setAttribute(\"data-style\", style);\n d.setAttribute(\"data-accent-color\", accentColor);\n d.setAttribute(\"data-gray-color\", grayColor);\n\n if (enableColorScheme) {\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n const colorScheme = colorSchemes.includes(resolved)\n ? resolved\n : fallback;\n // @ts-ignore\n d.style.colorScheme = colorScheme;\n }\n\n enable?.();\n },\n [\n style,\n accentColor,\n grayColor,\n attribute,\n attrs,\n value,\n enableSystem,\n enableColorScheme,\n defaultTheme,\n ]\n );\n\n const setTheme = useCallback(\n (theme: string) => {\n setThemeState(theme);\n\n // Save to storage\n try {\n localStorage.setItem(storageKey, theme);\n } catch (e) {\n // Unsupported\n }\n },\n [forcedTheme]\n );\n\n const handleMediaQuery = useCallback(\n (e: MediaQueryListEvent | MediaQueryList) => {\n const resolved = getSystemTheme(e);\n setResolvedTheme(resolved);\n\n if (theme === \"system\" && enableSystem && !forcedTheme) {\n applyTheme(\"system\");\n }\n },\n [theme, forcedTheme]\n );\n\n // Always listen to System preference\n useEffect(() => {\n const media = window.matchMedia(MEDIA);\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n\n return () => media.removeListener(handleMediaQuery);\n }, [handleMediaQuery]);\n\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return;\n }\n\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme;\n setTheme(theme);\n };\n\n window.addEventListener(\"storage\", handleStorage);\n return () => window.removeEventListener(\"storage\", handleStorage);\n }, [setTheme]);\n\n // Whenever theme or forcedTheme changes, apply it\n useEffect(() => {\n // @ts-ignore\n applyTheme(forcedTheme ?? theme);\n }, [forcedTheme, theme]);\n\n const providerValue = useMemo(\n () => ({\n theme,\n setTheme,\n forcedTheme,\n resolvedTheme: theme === \"system\" ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, \"system\"] : themes,\n systemTheme: (enableSystem ? resolvedTheme : undefined) as\n | \"light\"\n | \"dark\"\n | undefined,\n style,\n accentColor,\n grayColor,\n }),\n [\n theme,\n setTheme,\n forcedTheme,\n resolvedTheme,\n enableSystem,\n themes,\n style,\n accentColor,\n grayColor,\n ]\n );\n\n return (\n <ThemeContext.Provider value={providerValue}>\n <ThemeScript\n {...{\n forcedTheme,\n disableTransitionOnChange,\n enableSystem,\n enableColorScheme,\n storageKey,\n themes,\n defaultTheme,\n attribute,\n value,\n children,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }}\n />\n {children}\n </ThemeContext.Provider>\n );\n};\n\nconst ThemeScript = memo(\n ({\n forcedTheme,\n storageKey,\n attribute,\n enableSystem,\n enableColorScheme,\n defaultTheme,\n value,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }: ThemeProviderProps & { attrs: string[]; defaultTheme: string }) => {\n const defaultSystem = defaultTheme === \"system\";\n\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === \"class\") {\n const removeClasses = `c.remove(${attrs\n .map((t: string) => `'${t}'`)\n .join(\",\")})`;\n\n return `var d=document.documentElement,c=d.classList;${removeClasses};`;\n } else {\n return `var d=document.documentElement,n='${attribute}',s='setAttribute';`;\n }\n })();\n\n const fallbackColorScheme = (() => {\n if (!enableColorScheme) {\n return \"\";\n }\n\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n\n if (fallback) {\n return `if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${defaultTheme}'`;\n } else {\n return `if(e==='light'||e==='dark')d.style.colorScheme=e`;\n }\n })();\n\n const updateDOM = (\n name: string,\n literal: boolean = false,\n setColorScheme = true\n ) => {\n const resolvedName = value ? value[name] : name;\n const val = literal ? name + `|| ''` : `'${resolvedName}'`;\n let text = \"\";\n\n // MUCH faster to set colorScheme alongside HTML attribute/class\n // as it only incurs 1 style recalculation rather than 2\n // This can save over 250ms of work for pages with big DOM\n if (\n enableColorScheme &&\n setColorScheme &&\n !literal &&\n colorSchemes.includes(name)\n ) {\n text += `d.style.colorScheme = '${name}';`;\n }\n\n if (attribute === \"class\") {\n if (literal || resolvedName) {\n text += `c.add(${val})`;\n } else {\n text += `null`;\n }\n } else {\n if (resolvedName) {\n text += `d[s](n,${val})`;\n }\n }\n\n return text;\n };\n\n const scriptSrc = (() => {\n if (forcedTheme) {\n return `!function(){${optimization}${updateDOM(\n forcedTheme\n )};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}()`;\n }\n\n if (enableSystem) {\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if('system'===e||(!e&&${defaultSystem})){var t='${MEDIA}',m=window.matchMedia(t);if(m.media!==t||m.matches){${updateDOM(\n \"dark\"\n )}}else{${updateDOM(\"light\")}}}else if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}${\n !defaultSystem\n ? `else{` + updateDOM(defaultTheme, false, false) + \"}\"\n : \"\"\n }${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(e){}}()`;\n }\n\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}else{${updateDOM(\n defaultTheme,\n false,\n false\n )};}${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(t){}}();`;\n })();\n\n return (\n <script nonce={nonce} dangerouslySetInnerHTML={{ __html: scriptSrc }} />\n );\n },\n // Never re-render this component\n () => true\n);\n\n// Helpers\nconst getTheme = (key: string, fallback?: string) => {\n if (isServer) return undefined;\n let theme;\n try {\n theme = localStorage.getItem(key) || undefined;\n } catch (e) {\n // Unsupported\n }\n return theme || fallback;\n};\n\nconst disableAnimation = () => {\n const css = document.createElement(\"style\");\n css.appendChild(\n document.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`\n )\n );\n document.head.appendChild(css);\n\n return () => {\n // Force restyle\n (() => window.getComputedStyle(document.body))();\n\n // Wait for next tick before removing\n setTimeout(() => {\n document.head.removeChild(css);\n }, 1);\n };\n};\n\nconst getSystemTheme = (e?: MediaQueryList | MediaQueryListEvent) => {\n if (!e) e = window.matchMedia(MEDIA);\n const isDark = e.matches;\n const systemTheme = isDark ? \"dark\" : \"light\";\n return systemTheme;\n};\n"],"names":["createContext","useContext","_jsx","Fragment","useState","useCallback","useEffect","useMemo","_jsxs","memo"],"mappings":"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"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { ThemeProviderProps, UseThemeProps } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use useTheme from '@raystack/apsara/v1' instead.
|
|
5
|
+
*/
|
|
3
6
|
export declare const useTheme: () => UseThemeProps;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use ThemeProvider from '@raystack/apsara/v1' instead.
|
|
9
|
+
*/
|
|
4
10
|
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
|
|
5
11
|
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../themprovider/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQjE,eAAO,MAAM,QAAQ,qBAAmD,CAAC;AAEzE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../themprovider/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQjE;;GAEG;AACH,eAAO,MAAM,QAAQ,qBAAmD,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAC"}
|
|
@@ -6,7 +6,13 @@ const MEDIA = "(prefers-color-scheme: dark)";
|
|
|
6
6
|
const isServer = typeof window === "undefined";
|
|
7
7
|
const ThemeContext = createContext(undefined);
|
|
8
8
|
const defaultContext = { setTheme: (_) => { }, themes: [] };
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Use useTheme from '@raystack/apsara/v1' instead.
|
|
11
|
+
*/
|
|
9
12
|
const useTheme = () => useContext(ThemeContext) ?? defaultContext;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use ThemeProvider from '@raystack/apsara/v1' instead.
|
|
15
|
+
*/
|
|
10
16
|
const ThemeProvider = (props) => {
|
|
11
17
|
const context = useContext(ThemeContext);
|
|
12
18
|
// Ignore nested context providers, just passthrough children
|
|
@@ -43,19 +49,31 @@ const Theme = ({ forcedTheme, disableTransitionOnChange = false, enableSystem =
|
|
|
43
49
|
d.removeAttribute(attribute);
|
|
44
50
|
}
|
|
45
51
|
}
|
|
46
|
-
d.setAttribute(
|
|
47
|
-
d.setAttribute(
|
|
48
|
-
d.setAttribute(
|
|
52
|
+
d.setAttribute("data-style", style);
|
|
53
|
+
d.setAttribute("data-accent-color", accentColor);
|
|
54
|
+
d.setAttribute("data-gray-color", grayColor);
|
|
49
55
|
if (enableColorScheme) {
|
|
50
56
|
const fallback = colorSchemes.includes(defaultTheme)
|
|
51
57
|
? defaultTheme
|
|
52
58
|
: null;
|
|
53
|
-
const colorScheme = colorSchemes.includes(resolved)
|
|
59
|
+
const colorScheme = colorSchemes.includes(resolved)
|
|
60
|
+
? resolved
|
|
61
|
+
: fallback;
|
|
54
62
|
// @ts-ignore
|
|
55
63
|
d.style.colorScheme = colorScheme;
|
|
56
64
|
}
|
|
57
65
|
enable?.();
|
|
58
|
-
}, [
|
|
66
|
+
}, [
|
|
67
|
+
style,
|
|
68
|
+
accentColor,
|
|
69
|
+
grayColor,
|
|
70
|
+
attribute,
|
|
71
|
+
attrs,
|
|
72
|
+
value,
|
|
73
|
+
enableSystem,
|
|
74
|
+
enableColorScheme,
|
|
75
|
+
defaultTheme,
|
|
76
|
+
]);
|
|
59
77
|
const setTheme = useCallback((theme) => {
|
|
60
78
|
setThemeState(theme);
|
|
61
79
|
// Save to storage
|
|
@@ -109,7 +127,17 @@ const Theme = ({ forcedTheme, disableTransitionOnChange = false, enableSystem =
|
|
|
109
127
|
style,
|
|
110
128
|
accentColor,
|
|
111
129
|
grayColor,
|
|
112
|
-
}), [
|
|
130
|
+
}), [
|
|
131
|
+
theme,
|
|
132
|
+
setTheme,
|
|
133
|
+
forcedTheme,
|
|
134
|
+
resolvedTheme,
|
|
135
|
+
enableSystem,
|
|
136
|
+
themes,
|
|
137
|
+
style,
|
|
138
|
+
accentColor,
|
|
139
|
+
grayColor,
|
|
140
|
+
]);
|
|
113
141
|
return (jsxRuntimeExports.jsxs(ThemeContext.Provider, { value: providerValue, children: [jsxRuntimeExports.jsx(ThemeScript, { forcedTheme,
|
|
114
142
|
disableTransitionOnChange,
|
|
115
143
|
enableSystem,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sources":["../../themprovider/theme.tsx"],"sourcesContent":["import React, {\n Fragment,\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport type { ThemeProviderProps, UseThemeProps } from \"./types\";\n\nconst colorSchemes = [\"light\", \"dark\"];\nconst MEDIA = \"(prefers-color-scheme: dark)\";\nconst isServer = typeof window === \"undefined\";\nconst ThemeContext = createContext<UseThemeProps | undefined>(undefined);\nconst defaultContext: UseThemeProps = { setTheme: (_) => {}, themes: [] };\n\nexport const useTheme = () => useContext(ThemeContext) ?? defaultContext;\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = (props) => {\n const context = useContext(ThemeContext);\n\n // Ignore nested context providers, just passthrough children\n if (context) return <Fragment>{props.children}</Fragment>;\n return <Theme {...props} />;\n};\n\nconst defaultThemes = [\"light\", \"dark\"];\n\nconst Theme: React.FC<ThemeProviderProps> = ({\n forcedTheme,\n disableTransitionOnChange = false,\n enableSystem = true,\n enableColorScheme = true,\n storageKey = \"theme\",\n themes = defaultThemes,\n defaultTheme = enableSystem ? \"system\" : \"light\",\n attribute = \"data-theme\",\n value,\n children,\n nonce,\n style = \"modern\",\n accentColor = \"indigo\",\n grayColor = \"slate\",\n}) => {\n const [theme, setThemeState] = useState(() =>\n getTheme(storageKey, defaultTheme)\n );\n const [resolvedTheme, setResolvedTheme] = useState(() =>\n getTheme(storageKey)\n );\n const attrs = !value ? themes : Object.values(value);\n\n const applyTheme = useCallback((theme: string) => {\n let resolved = theme;\n if (!resolved) return;\n\n // If theme is system, resolve it before setting theme\n if (theme === \"system\" && enableSystem) {\n resolved = getSystemTheme();\n }\n\n const name = value ? value[resolved] : resolved;\n const enable = disableTransitionOnChange ? disableAnimation() : null;\n const d = document.documentElement;\n\n if (attribute === \"class\") {\n d.classList.remove(...attrs);\n\n if (name) d.classList.add(name);\n } else {\n if (name) {\n d.setAttribute(attribute, name);\n } else {\n d.removeAttribute(attribute);\n }\n }\n\n d.setAttribute('data-style', style);\n d.setAttribute('data-accent-color', accentColor);\n d.setAttribute('data-gray-color', grayColor);\n\n if (enableColorScheme) {\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n const colorScheme = colorSchemes.includes(resolved) ? resolved : fallback;\n // @ts-ignore\n d.style.colorScheme = colorScheme;\n }\n\n enable?.();\n }, [style, accentColor, grayColor, attribute, attrs, value, enableSystem, enableColorScheme, defaultTheme]);\n\n const setTheme = useCallback(\n (theme: string) => {\n setThemeState(theme);\n\n // Save to storage\n try {\n localStorage.setItem(storageKey, theme);\n } catch (e) {\n // Unsupported\n }\n },\n [forcedTheme]\n );\n\n const handleMediaQuery = useCallback(\n (e: MediaQueryListEvent | MediaQueryList) => {\n const resolved = getSystemTheme(e);\n setResolvedTheme(resolved);\n\n if (theme === \"system\" && enableSystem && !forcedTheme) {\n applyTheme(\"system\");\n }\n },\n [theme, forcedTheme]\n );\n\n // Always listen to System preference\n useEffect(() => {\n const media = window.matchMedia(MEDIA);\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n\n return () => media.removeListener(handleMediaQuery);\n }, [handleMediaQuery]);\n\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return;\n }\n\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme;\n setTheme(theme);\n };\n\n window.addEventListener(\"storage\", handleStorage);\n return () => window.removeEventListener(\"storage\", handleStorage);\n }, [setTheme]);\n\n // Whenever theme or forcedTheme changes, apply it\n useEffect(() => {\n // @ts-ignore\n applyTheme(forcedTheme ?? theme);\n }, [forcedTheme, theme]);\n\n const providerValue = useMemo(\n () => ({\n theme,\n setTheme,\n forcedTheme,\n resolvedTheme: theme === \"system\" ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, \"system\"] : themes,\n systemTheme: (enableSystem ? resolvedTheme : undefined) as\n | \"light\"\n | \"dark\"\n | undefined,\n style,\n accentColor,\n grayColor,\n }),\n [theme, setTheme, forcedTheme, resolvedTheme, enableSystem, themes, style, accentColor, grayColor]\n );\n\n return (\n <ThemeContext.Provider value={providerValue}>\n <ThemeScript\n {...{\n forcedTheme,\n disableTransitionOnChange,\n enableSystem,\n enableColorScheme,\n storageKey,\n themes,\n defaultTheme,\n attribute,\n value,\n children,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }}\n />\n {children}\n </ThemeContext.Provider>\n );\n};\n\nconst ThemeScript = memo(\n ({\n forcedTheme,\n storageKey,\n attribute,\n enableSystem,\n enableColorScheme,\n defaultTheme,\n value,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }: ThemeProviderProps & { attrs: string[]; defaultTheme: string }) => {\n const defaultSystem = defaultTheme === \"system\";\n\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === \"class\") {\n const removeClasses = `c.remove(${attrs\n .map((t: string) => `'${t}'`)\n .join(\",\")})`;\n\n return `var d=document.documentElement,c=d.classList;${removeClasses};`;\n } else {\n return `var d=document.documentElement,n='${attribute}',s='setAttribute';`;\n }\n })();\n\n const fallbackColorScheme = (() => {\n if (!enableColorScheme) {\n return \"\";\n }\n\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n\n if (fallback) {\n return `if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${defaultTheme}'`;\n } else {\n return `if(e==='light'||e==='dark')d.style.colorScheme=e`;\n }\n })();\n\n const updateDOM = (\n name: string,\n literal: boolean = false,\n setColorScheme = true\n ) => {\n const resolvedName = value ? value[name] : name;\n const val = literal ? name + `|| ''` : `'${resolvedName}'`;\n let text = \"\";\n\n // MUCH faster to set colorScheme alongside HTML attribute/class\n // as it only incurs 1 style recalculation rather than 2\n // This can save over 250ms of work for pages with big DOM\n if (\n enableColorScheme &&\n setColorScheme &&\n !literal &&\n colorSchemes.includes(name)\n ) {\n text += `d.style.colorScheme = '${name}';`;\n }\n\n if (attribute === \"class\") {\n if (literal || resolvedName) {\n text += `c.add(${val})`;\n } else {\n text += `null`;\n }\n } else {\n if (resolvedName) {\n text += `d[s](n,${val})`;\n }\n }\n\n return text;\n };\n\n const scriptSrc = (() => {\n if (forcedTheme) {\n return `!function(){${optimization}${updateDOM(forcedTheme)};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}()`;\n }\n\n if (enableSystem) {\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if('system'===e||(!e&&${defaultSystem})){var t='${MEDIA}',m=window.matchMedia(t);if(m.media!==t||m.matches){${updateDOM(\n \"dark\"\n )}}else{${updateDOM(\"light\")}}}else if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}${\n !defaultSystem\n ? `else{` + updateDOM(defaultTheme, false, false) + \"}\"\n : \"\"\n }${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(e){}}()`;\n }\n\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}else{${updateDOM(\n defaultTheme,\n false,\n false\n )};}${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(t){}}();`;\n })();\n\n return (\n <script nonce={nonce} dangerouslySetInnerHTML={{ __html: scriptSrc }} />\n );\n },\n // Never re-render this component\n () => true\n);\n\n// Helpers\nconst getTheme = (key: string, fallback?: string) => {\n if (isServer) return undefined;\n let theme;\n try {\n theme = localStorage.getItem(key) || undefined;\n } catch (e) {\n // Unsupported\n }\n return theme || fallback;\n};\n\nconst disableAnimation = () => {\n const css = document.createElement(\"style\");\n css.appendChild(\n document.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`\n )\n );\n document.head.appendChild(css);\n\n return () => {\n // Force restyle\n (() => window.getComputedStyle(document.body))();\n\n // Wait for next tick before removing\n setTimeout(() => {\n document.head.removeChild(css);\n }, 1);\n };\n};\n\nconst getSystemTheme = (e?: MediaQueryList | MediaQueryListEvent) => {\n if (!e) e = window.matchMedia(MEDIA);\n const isDark = e.matches;\n const systemTheme = isDark ? \"dark\" : \"light\";\n return systemTheme;\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.js","sources":["../../themprovider/theme.tsx"],"sourcesContent":["import React, {\n Fragment,\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport type { ThemeProviderProps, UseThemeProps } from \"./types\";\n\nconst colorSchemes = [\"light\", \"dark\"];\nconst MEDIA = \"(prefers-color-scheme: dark)\";\nconst isServer = typeof window === \"undefined\";\nconst ThemeContext = createContext<UseThemeProps | undefined>(undefined);\nconst defaultContext: UseThemeProps = { setTheme: (_) => {}, themes: [] };\n\n/**\n * @deprecated Use useTheme from '@raystack/apsara/v1' instead.\n */\nexport const useTheme = () => useContext(ThemeContext) ?? defaultContext;\n\n/**\n * @deprecated Use ThemeProvider from '@raystack/apsara/v1' instead.\n */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = (props) => {\n const context = useContext(ThemeContext);\n\n // Ignore nested context providers, just passthrough children\n if (context) return <Fragment>{props.children}</Fragment>;\n return <Theme {...props} />;\n};\n\nconst defaultThemes = [\"light\", \"dark\"];\n\nconst Theme: React.FC<ThemeProviderProps> = ({\n forcedTheme,\n disableTransitionOnChange = false,\n enableSystem = true,\n enableColorScheme = true,\n storageKey = \"theme\",\n themes = defaultThemes,\n defaultTheme = enableSystem ? \"system\" : \"light\",\n attribute = \"data-theme\",\n value,\n children,\n nonce,\n style = \"modern\",\n accentColor = \"indigo\",\n grayColor = \"slate\",\n}) => {\n const [theme, setThemeState] = useState(() =>\n getTheme(storageKey, defaultTheme)\n );\n const [resolvedTheme, setResolvedTheme] = useState(() =>\n getTheme(storageKey)\n );\n const attrs = !value ? themes : Object.values(value);\n\n const applyTheme = useCallback(\n (theme: string) => {\n let resolved = theme;\n if (!resolved) return;\n\n // If theme is system, resolve it before setting theme\n if (theme === \"system\" && enableSystem) {\n resolved = getSystemTheme();\n }\n\n const name = value ? value[resolved] : resolved;\n const enable = disableTransitionOnChange ? disableAnimation() : null;\n const d = document.documentElement;\n\n if (attribute === \"class\") {\n d.classList.remove(...attrs);\n\n if (name) d.classList.add(name);\n } else {\n if (name) {\n d.setAttribute(attribute, name);\n } else {\n d.removeAttribute(attribute);\n }\n }\n\n d.setAttribute(\"data-style\", style);\n d.setAttribute(\"data-accent-color\", accentColor);\n d.setAttribute(\"data-gray-color\", grayColor);\n\n if (enableColorScheme) {\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n const colorScheme = colorSchemes.includes(resolved)\n ? resolved\n : fallback;\n // @ts-ignore\n d.style.colorScheme = colorScheme;\n }\n\n enable?.();\n },\n [\n style,\n accentColor,\n grayColor,\n attribute,\n attrs,\n value,\n enableSystem,\n enableColorScheme,\n defaultTheme,\n ]\n );\n\n const setTheme = useCallback(\n (theme: string) => {\n setThemeState(theme);\n\n // Save to storage\n try {\n localStorage.setItem(storageKey, theme);\n } catch (e) {\n // Unsupported\n }\n },\n [forcedTheme]\n );\n\n const handleMediaQuery = useCallback(\n (e: MediaQueryListEvent | MediaQueryList) => {\n const resolved = getSystemTheme(e);\n setResolvedTheme(resolved);\n\n if (theme === \"system\" && enableSystem && !forcedTheme) {\n applyTheme(\"system\");\n }\n },\n [theme, forcedTheme]\n );\n\n // Always listen to System preference\n useEffect(() => {\n const media = window.matchMedia(MEDIA);\n\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery);\n handleMediaQuery(media);\n\n return () => media.removeListener(handleMediaQuery);\n }, [handleMediaQuery]);\n\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return;\n }\n\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme;\n setTheme(theme);\n };\n\n window.addEventListener(\"storage\", handleStorage);\n return () => window.removeEventListener(\"storage\", handleStorage);\n }, [setTheme]);\n\n // Whenever theme or forcedTheme changes, apply it\n useEffect(() => {\n // @ts-ignore\n applyTheme(forcedTheme ?? theme);\n }, [forcedTheme, theme]);\n\n const providerValue = useMemo(\n () => ({\n theme,\n setTheme,\n forcedTheme,\n resolvedTheme: theme === \"system\" ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, \"system\"] : themes,\n systemTheme: (enableSystem ? resolvedTheme : undefined) as\n | \"light\"\n | \"dark\"\n | undefined,\n style,\n accentColor,\n grayColor,\n }),\n [\n theme,\n setTheme,\n forcedTheme,\n resolvedTheme,\n enableSystem,\n themes,\n style,\n accentColor,\n grayColor,\n ]\n );\n\n return (\n <ThemeContext.Provider value={providerValue}>\n <ThemeScript\n {...{\n forcedTheme,\n disableTransitionOnChange,\n enableSystem,\n enableColorScheme,\n storageKey,\n themes,\n defaultTheme,\n attribute,\n value,\n children,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }}\n />\n {children}\n </ThemeContext.Provider>\n );\n};\n\nconst ThemeScript = memo(\n ({\n forcedTheme,\n storageKey,\n attribute,\n enableSystem,\n enableColorScheme,\n defaultTheme,\n value,\n attrs,\n nonce,\n style,\n accentColor,\n grayColor,\n }: ThemeProviderProps & { attrs: string[]; defaultTheme: string }) => {\n const defaultSystem = defaultTheme === \"system\";\n\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === \"class\") {\n const removeClasses = `c.remove(${attrs\n .map((t: string) => `'${t}'`)\n .join(\",\")})`;\n\n return `var d=document.documentElement,c=d.classList;${removeClasses};`;\n } else {\n return `var d=document.documentElement,n='${attribute}',s='setAttribute';`;\n }\n })();\n\n const fallbackColorScheme = (() => {\n if (!enableColorScheme) {\n return \"\";\n }\n\n const fallback = colorSchemes.includes(defaultTheme)\n ? defaultTheme\n : null;\n\n if (fallback) {\n return `if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${defaultTheme}'`;\n } else {\n return `if(e==='light'||e==='dark')d.style.colorScheme=e`;\n }\n })();\n\n const updateDOM = (\n name: string,\n literal: boolean = false,\n setColorScheme = true\n ) => {\n const resolvedName = value ? value[name] : name;\n const val = literal ? name + `|| ''` : `'${resolvedName}'`;\n let text = \"\";\n\n // MUCH faster to set colorScheme alongside HTML attribute/class\n // as it only incurs 1 style recalculation rather than 2\n // This can save over 250ms of work for pages with big DOM\n if (\n enableColorScheme &&\n setColorScheme &&\n !literal &&\n colorSchemes.includes(name)\n ) {\n text += `d.style.colorScheme = '${name}';`;\n }\n\n if (attribute === \"class\") {\n if (literal || resolvedName) {\n text += `c.add(${val})`;\n } else {\n text += `null`;\n }\n } else {\n if (resolvedName) {\n text += `d[s](n,${val})`;\n }\n }\n\n return text;\n };\n\n const scriptSrc = (() => {\n if (forcedTheme) {\n return `!function(){${optimization}${updateDOM(\n forcedTheme\n )};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}()`;\n }\n\n if (enableSystem) {\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if('system'===e||(!e&&${defaultSystem})){var t='${MEDIA}',m=window.matchMedia(t);if(m.media!==t||m.matches){${updateDOM(\n \"dark\"\n )}}else{${updateDOM(\"light\")}}}else if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}${\n !defaultSystem\n ? `else{` + updateDOM(defaultTheme, false, false) + \"}\"\n : \"\"\n }${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(e){}}()`;\n }\n\n return `!function(){try{${optimization}var e=localStorage.getItem('${storageKey}');if(e){${\n value ? `var x=${JSON.stringify(value)};` : \"\"\n }${updateDOM(value ? `x[e]` : \"e\", true)}}else{${updateDOM(\n defaultTheme,\n false,\n false\n )};}${fallbackColorScheme};d.setAttribute('data-style','${style}');d.setAttribute('data-accent-color','${accentColor}');d.setAttribute('data-gray-color','${grayColor}');}catch(t){}}();`;\n })();\n\n return (\n <script nonce={nonce} dangerouslySetInnerHTML={{ __html: scriptSrc }} />\n );\n },\n // Never re-render this component\n () => true\n);\n\n// Helpers\nconst getTheme = (key: string, fallback?: string) => {\n if (isServer) return undefined;\n let theme;\n try {\n theme = localStorage.getItem(key) || undefined;\n } catch (e) {\n // Unsupported\n }\n return theme || fallback;\n};\n\nconst disableAnimation = () => {\n const css = document.createElement(\"style\");\n css.appendChild(\n document.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`\n )\n );\n document.head.appendChild(css);\n\n return () => {\n // Force restyle\n (() => window.getComputedStyle(document.body))();\n\n // Wait for next tick before removing\n setTimeout(() => {\n document.head.removeChild(css);\n }, 1);\n };\n};\n\nconst getSystemTheme = (e?: MediaQueryList | MediaQueryListEvent) => {\n if (!e) e = window.matchMedia(MEDIA);\n const isDark = e.matches;\n const systemTheme = isDark ? \"dark\" : \"light\";\n return systemTheme;\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
|
|
4
|
+
var emptystate_module = require('./emptystate.module.css.cjs');
|
|
5
|
+
var flex = require('../flex/flex.cjs');
|
|
6
|
+
var text = require('../text/text.cjs');
|
|
7
|
+
var clsx = require('../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.cjs');
|
|
8
|
+
|
|
9
|
+
const EmptyState = ({ icon, heading, subHeading, primaryAction, secondaryAction, classNames, }) => {
|
|
10
|
+
return (jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", align: "center", gap: "medium", className: clsx.clsx(emptystate_module.default.emptyState, classNames?.container), children: [jsxRuntime.jsxRuntimeExports.jsx("div", { className: clsx.clsx(emptystate_module.default.iconContainer, classNames?.iconContainer), children: jsxRuntime.jsxRuntimeExports.jsx("div", { className: clsx.clsx(emptystate_module.default.icon, classNames?.icon), children: icon }) }), jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", gap: "small", align: "center", children: [heading && (jsxRuntime.jsxRuntimeExports.jsx(text.Text, { size: 5, weight: 500, className: clsx.clsx(emptystate_module.default.headerText, classNames?.heading), children: heading })), subHeading && (jsxRuntime.jsxRuntimeExports.jsx(text.Text, { size: 4, weight: 400, className: clsx.clsx(emptystate_module.default.subHeaderText, classNames?.subHeading), children: subHeading }))] }), primaryAction, secondaryAction] }));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
exports.EmptyState = EmptyState;
|
|
14
|
+
//# sourceMappingURL=emptystate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emptystate.cjs","sources":["../../../../v1/components/emptystate/emptystate.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport styles from \"./emptystate.module.css\";\nconst emptystate = cva(styles.emptystate);\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport clsx from \"clsx\";\n\ntype classNameKeys =\n | \"container\"\n | \"iconContainer\"\n | \"icon\"\n | \"heading\"\n | \"subHeading\";\n\ninterface EmptystateProps {\n icon: React.ReactNode;\n heading?: React.ReactNode;\n subHeading?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n classNames?: Partial<Record<classNameKeys, string>>;\n}\n\nexport const EmptyState = ({\n icon,\n heading,\n subHeading,\n primaryAction,\n secondaryAction,\n classNames,\n}: EmptystateProps) => {\n return (\n <Flex\n direction=\"column\"\n align=\"center\"\n gap=\"medium\"\n className={clsx(styles.emptyState, classNames?.container)}\n >\n <div className={clsx(styles.iconContainer, classNames?.iconContainer)}>\n <div className={clsx(styles.icon, classNames?.icon)}>{icon}</div>\n </div>\n\n <Flex direction=\"column\" gap=\"small\" align=\"center\">\n {heading && (\n <Text\n size={5}\n weight={500}\n className={clsx(styles.headerText, classNames?.heading)}\n >\n {heading}\n </Text>\n )}\n\n {subHeading && (\n <Text\n size={4}\n weight={400}\n className={clsx(styles.subHeaderText, classNames?.subHeading)}\n >\n {subHeading}\n </Text>\n )}\n </Flex>\n\n {primaryAction}\n\n {secondaryAction}\n </Flex>\n );\n};\n"],"names":["_jsxs","Flex","clsx","styles","_jsx","Text"],"mappings":";;;;;;;;AAuBa,MAAA,UAAU,GAAG,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,GACM,KAAI;AACpB,IAAA,QACEA,iCAAA,CAACC,SAAI,EAAA,EACH,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,QAAQ,EACZ,SAAS,EAAEC,SAAI,CAACC,yBAAM,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAEzD,QAAA,EAAA,CAAAC,gCAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEF,SAAI,CAACC,yBAAM,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,EACnE,QAAA,EAAAC,gCAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEF,SAAI,CAACC,yBAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAA,QAAA,EAAG,IAAI,EAAA,CAAO,GAC7D,EAENH,iCAAA,CAACC,SAAI,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAAA,CAChD,OAAO,KACNG,gCAAC,CAAAC,SAAI,EACH,EAAA,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,GAAG,EACX,SAAS,EAAEH,SAAI,CAACC,yBAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAEtD,QAAA,EAAA,OAAO,EACH,CAAA,CACR,EAEA,UAAU,KACTC,gCAAA,CAACC,SAAI,EAAA,EACH,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,GAAG,EACX,SAAS,EAAEH,SAAI,CAACC,yBAAM,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,YAE5D,UAAU,EAAA,CACN,CACR,CAAA,EAAA,CACI,EAEN,aAAa,EAEb,eAAe,CAAA,EAAA,CACX,EACP;AACJ;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
type classNameKeys = "container" | "iconContainer" | "icon" | "heading" | "subHeading";
|
|
3
|
+
interface EmptystateProps {
|
|
4
|
+
icon: React.ReactNode;
|
|
5
|
+
heading?: React.ReactNode;
|
|
6
|
+
subHeading?: React.ReactNode;
|
|
7
|
+
primaryAction?: React.ReactNode;
|
|
8
|
+
secondaryAction?: React.ReactNode;
|
|
9
|
+
classNames?: Partial<Record<classNameKeys, string>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const EmptyState: ({ icon, heading, subHeading, primaryAction, secondaryAction, classNames, }: EmptystateProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=emptystate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emptystate.d.ts","sourceRoot":"","sources":["../../../../v1/components/emptystate/emptystate.tsx"],"names":[],"mappings":";AAOA,KAAK,aAAa,GACd,WAAW,GACX,eAAe,GACf,MAAM,GACN,SAAS,GACT,YAAY,CAAC;AAEjB,UAAU,eAAe;IACvB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,UAAU,+EAOpB,eAAe,4CAuCjB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
|
|
2
|
+
import styles from './emptystate.module.css.js';
|
|
3
|
+
import { Flex } from '../flex/flex.js';
|
|
4
|
+
import { Text } from '../text/text.js';
|
|
5
|
+
import { clsx } from '../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js';
|
|
6
|
+
|
|
7
|
+
const EmptyState = ({ icon, heading, subHeading, primaryAction, secondaryAction, classNames, }) => {
|
|
8
|
+
return (jsxRuntimeExports.jsxs(Flex, { direction: "column", align: "center", gap: "medium", className: clsx(styles.emptyState, classNames?.container), children: [jsxRuntimeExports.jsx("div", { className: clsx(styles.iconContainer, classNames?.iconContainer), children: jsxRuntimeExports.jsx("div", { className: clsx(styles.icon, classNames?.icon), children: icon }) }), jsxRuntimeExports.jsxs(Flex, { direction: "column", gap: "small", align: "center", children: [heading && (jsxRuntimeExports.jsx(Text, { size: 5, weight: 500, className: clsx(styles.headerText, classNames?.heading), children: heading })), subHeading && (jsxRuntimeExports.jsx(Text, { size: 4, weight: 400, className: clsx(styles.subHeaderText, classNames?.subHeading), children: subHeading }))] }), primaryAction, secondaryAction] }));
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { EmptyState };
|
|
12
|
+
//# sourceMappingURL=emptystate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emptystate.js","sources":["../../../../v1/components/emptystate/emptystate.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport styles from \"./emptystate.module.css\";\nconst emptystate = cva(styles.emptystate);\nimport { Flex } from \"../flex\";\nimport { Text } from \"../text\";\nimport clsx from \"clsx\";\n\ntype classNameKeys =\n | \"container\"\n | \"iconContainer\"\n | \"icon\"\n | \"heading\"\n | \"subHeading\";\n\ninterface EmptystateProps {\n icon: React.ReactNode;\n heading?: React.ReactNode;\n subHeading?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n classNames?: Partial<Record<classNameKeys, string>>;\n}\n\nexport const EmptyState = ({\n icon,\n heading,\n subHeading,\n primaryAction,\n secondaryAction,\n classNames,\n}: EmptystateProps) => {\n return (\n <Flex\n direction=\"column\"\n align=\"center\"\n gap=\"medium\"\n className={clsx(styles.emptyState, classNames?.container)}\n >\n <div className={clsx(styles.iconContainer, classNames?.iconContainer)}>\n <div className={clsx(styles.icon, classNames?.icon)}>{icon}</div>\n </div>\n\n <Flex direction=\"column\" gap=\"small\" align=\"center\">\n {heading && (\n <Text\n size={5}\n weight={500}\n className={clsx(styles.headerText, classNames?.heading)}\n >\n {heading}\n </Text>\n )}\n\n {subHeading && (\n <Text\n size={4}\n weight={400}\n className={clsx(styles.subHeaderText, classNames?.subHeading)}\n >\n {subHeading}\n </Text>\n )}\n </Flex>\n\n {primaryAction}\n\n {secondaryAction}\n </Flex>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAuBa,MAAA,UAAU,GAAG,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,GACM,KAAI;AACpB,IAAA,QACEA,sBAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,QAAQ,EACZ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAEzD,QAAA,EAAA,CAAAC,qBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,EACnE,QAAA,EAAAA,qBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAA,QAAA,EAAG,IAAI,EAAA,CAAO,GAC7D,EAEND,sBAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAAA,CAChD,OAAO,KACNC,qBAAC,CAAA,IAAI,EACH,EAAA,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAEtD,QAAA,EAAA,OAAO,EACH,CAAA,CACR,EAEA,UAAU,KACTA,qBAAA,CAAC,IAAI,EAAA,EACH,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,YAE5D,UAAU,EAAA,CACN,CACR,CAAA,EAAA,CACI,EAEN,aAAa,EAEb,eAAe,CAAA,EAAA,CACX,EACP;AACJ;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var styles = {"emptyState":"emptystate-module_emptyState__QyhYm","iconContainer":"emptystate-module_iconContainer__-dRHk","icon":"emptystate-module_icon__et-tb","headerText":"emptystate-module_headerText__mFasw","subHeaderText":"emptystate-module_subHeaderText__WEVex"};
|
|
6
|
+
|
|
7
|
+
exports.default = styles;
|
|
8
|
+
//# sourceMappingURL=emptystate.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emptystate.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var styles = {"emptyState":"emptystate-module_emptyState__QyhYm","iconContainer":"emptystate-module_iconContainer__-dRHk","icon":"emptystate-module_icon__et-tb","headerText":"emptystate-module_headerText__mFasw","subHeaderText":"emptystate-module_subHeaderText__WEVex"};
|
|
2
|
+
|
|
3
|
+
export { styles as default };
|
|
4
|
+
//# sourceMappingURL=emptystate.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emptystate.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../v1/components/emptystate/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|