@xyhp915/slack-base-ui 0.0.12 → 0.0.14

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 (65) hide show
  1. package/libs/components/AlertDialog.d.ts +26 -0
  2. package/libs/components/AlertDialog.d.ts.map +1 -0
  3. package/libs/components/AutoComplete.d.ts +32 -0
  4. package/libs/components/AutoComplete.d.ts.map +1 -0
  5. package/libs/components/Avatar.d.ts +13 -0
  6. package/libs/components/Avatar.d.ts.map +1 -0
  7. package/libs/components/Badge.d.ts +8 -0
  8. package/libs/components/Badge.d.ts.map +1 -0
  9. package/libs/components/Button.d.ts +12 -0
  10. package/libs/components/Button.d.ts.map +1 -0
  11. package/libs/components/Checkbox.d.ts +21 -0
  12. package/libs/components/Checkbox.d.ts.map +1 -0
  13. package/libs/components/Combobox.d.ts +77 -0
  14. package/libs/components/Combobox.d.ts.map +1 -0
  15. package/libs/components/ContextMenu.d.ts +85 -0
  16. package/libs/components/ContextMenu.d.ts.map +1 -0
  17. package/libs/components/Dialog.d.ts +107 -0
  18. package/libs/components/Dialog.d.ts.map +1 -0
  19. package/libs/components/Dropdown.d.ts +177 -0
  20. package/libs/components/Dropdown.d.ts.map +1 -0
  21. package/libs/components/Form.d.ts +77 -0
  22. package/libs/components/Form.d.ts.map +1 -0
  23. package/libs/components/IconButton.d.ts +9 -0
  24. package/libs/components/IconButton.d.ts.map +1 -0
  25. package/libs/components/Input.d.ts +8 -0
  26. package/libs/components/Input.d.ts.map +1 -0
  27. package/libs/components/Loading.d.ts +16 -0
  28. package/libs/components/Loading.d.ts.map +1 -0
  29. package/libs/components/Menu.d.ts +89 -0
  30. package/libs/components/Menu.d.ts.map +1 -0
  31. package/libs/components/Popover.d.ts +112 -0
  32. package/libs/components/Popover.d.ts.map +1 -0
  33. package/libs/components/Progress.d.ts +18 -0
  34. package/libs/components/Progress.d.ts.map +1 -0
  35. package/libs/components/Radio.d.ts +29 -0
  36. package/libs/components/Radio.d.ts.map +1 -0
  37. package/libs/components/Select.d.ts +31 -0
  38. package/libs/components/Select.d.ts.map +1 -0
  39. package/libs/components/Switch.d.ts +20 -0
  40. package/libs/components/Switch.d.ts.map +1 -0
  41. package/libs/components/Tabs.d.ts +30 -0
  42. package/libs/components/Tabs.d.ts.map +1 -0
  43. package/libs/components/Toast.d.ts +49 -0
  44. package/libs/components/Toast.d.ts.map +1 -0
  45. package/libs/components/Tooltip.d.ts +9 -0
  46. package/libs/components/Tooltip.d.ts.map +1 -0
  47. package/libs/components/index.d.ts +47 -0
  48. package/libs/components/index.d.ts.map +1 -0
  49. package/libs/context/ThemeContext.d.ts +15 -0
  50. package/libs/context/ThemeContext.d.ts.map +1 -0
  51. package/libs/context/useTheme.d.ts +2 -0
  52. package/libs/context/useTheme.d.ts.map +1 -0
  53. package/libs/index.d.ts +3 -46
  54. package/libs/index.d.ts.map +1 -1
  55. package/libs/index.js +818 -14683
  56. package/libs/theme.d.ts +3 -0
  57. package/libs/theme.d.ts.map +1 -0
  58. package/libs/theme.js +2 -0
  59. package/libs/useTheme-P7tC1A4a.js +26 -0
  60. package/package.json +24 -1
  61. package/src/context/ThemeContext.tsx +3 -3
  62. package/src/index.ts +3 -0
  63. package/src/theme.ts +8 -0
  64. package/tsconfig.libs.json +7 -2
  65. package/vite.libs.config.ts +14 -12
@@ -0,0 +1,3 @@
1
+ export { ThemeContext, ThemeProvider, type Theme, type ThemeColor, type ThemeContextType, } from './context/ThemeContext';
2
+ export { useTheme } from './context/useTheme';
3
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA"}
package/libs/theme.js ADDED
@@ -0,0 +1,2 @@
1
+ import { n as e, r as t, t as n } from "./useTheme-P7tC1A4a.js";
2
+ export { e as ThemeContext, t as ThemeProvider, n as useTheme };
@@ -0,0 +1,26 @@
1
+ import { createContext as e, useContext as t, useEffect as n, useState as r } from "react";
2
+ import { jsx as i } from "react/jsx-runtime";
3
+ //#region src/context/ThemeContext.tsx
4
+ var a = e(void 0), o = ({ children: e }) => {
5
+ let [t, o] = r(() => localStorage.getItem("theme") || (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light")), [s, c] = r(() => localStorage.getItem("themeColor") || "slack");
6
+ return n(() => {
7
+ let e = window.document.documentElement;
8
+ e.classList.remove("light", "dark"), e.classList.add(t), e.setAttribute("data-theme-color", s), localStorage.setItem("theme", t), localStorage.setItem("themeColor", s);
9
+ }, [t, s]), /* @__PURE__ */ i(a.Provider, {
10
+ value: {
11
+ theme: t,
12
+ themeColor: s,
13
+ toggleTheme: () => {
14
+ o((e) => e === "light" ? "dark" : "light");
15
+ },
16
+ setThemeColor: c
17
+ },
18
+ children: e
19
+ });
20
+ }, s = () => {
21
+ let e = t(a);
22
+ if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
23
+ return e;
24
+ };
25
+ //#endregion
26
+ export { a as n, o as r, s as t };
package/package.json CHANGED
@@ -1,9 +1,32 @@
1
1
  {
2
2
  "name": "@xyhp915/slack-base-ui",
3
3
  "main": "libs/index.js",
4
+ "module": "libs/index.js",
4
5
  "types": "libs/index.d.ts",
5
- "version": "0.0.12",
6
+ "version": "0.0.14",
6
7
  "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./libs/index.d.ts",
11
+ "import": "./libs/index.js",
12
+ "default": "./libs/index.js"
13
+ },
14
+ "./theme": {
15
+ "types": "./libs/theme.d.ts",
16
+ "import": "./libs/theme.js",
17
+ "default": "./libs/theme.js"
18
+ },
19
+ "./src/context/ThemeContext.tsx": {
20
+ "types": "./libs/theme.d.ts",
21
+ "import": "./libs/theme.js",
22
+ "default": "./libs/theme.js"
23
+ },
24
+ "./src/context/useTheme.ts": {
25
+ "types": "./libs/theme.d.ts",
26
+ "import": "./libs/theme.js",
27
+ "default": "./libs/theme.js"
28
+ }
29
+ },
7
30
  "scripts": {
8
31
  "dev": "vite",
9
32
  "build": "tsc -b && vite build",
@@ -1,9 +1,9 @@
1
1
  import React, { createContext, useEffect, useState } from 'react';
2
2
 
3
- type Theme = 'light' | 'dark';
4
- type ThemeColor = 'slack' | 'blue' | 'green' | 'aubergine';
3
+ export type Theme = 'light' | 'dark';
4
+ export type ThemeColor = 'slack' | 'blue' | 'green' | 'aubergine';
5
5
 
6
- interface ThemeContextType {
6
+ export interface ThemeContextType {
7
7
  theme: Theme;
8
8
  themeColor: ThemeColor;
9
9
  toggleTheme: () => void;
package/src/index.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './components'
2
+ export { ThemeContext, ThemeProvider } from './context/ThemeContext'
3
+ export { useTheme } from './context/useTheme'
package/src/theme.ts ADDED
@@ -0,0 +1,8 @@
1
+ export {
2
+ ThemeContext,
3
+ ThemeProvider,
4
+ type Theme,
5
+ type ThemeColor,
6
+ type ThemeContextType,
7
+ } from './context/ThemeContext'
8
+ export { useTheme } from './context/useTheme'
@@ -14,12 +14,17 @@
14
14
  "emitDeclarationOnly": true,
15
15
 
16
16
  "outDir": "libs",
17
- "rootDir": "src/components",
17
+ "rootDir": "src",
18
18
 
19
19
  "stripInternal": true,
20
20
  "esModuleInterop": true,
21
21
  "allowSyntheticDefaultImports": true
22
22
  },
23
- "include": ["src/components/index.ts", "src/components/**/*"]
23
+ "include": [
24
+ "src/index.ts",
25
+ "src/theme.ts",
26
+ "src/components/**/*",
27
+ "src/context/**/*"
28
+ ]
24
29
  }
25
30
 
@@ -1,8 +1,6 @@
1
1
  // @ts-ignore
2
2
  import { defineConfig } from 'vite'
3
3
  // @ts-ignore
4
- import { esmExternalRequirePlugin } from 'rolldown/plugins'
5
- // @ts-ignore
6
4
  import react from '@vitejs/plugin-react'
7
5
  // @ts-ignore
8
6
  import tailwindcss from '@tailwindcss/vite'
@@ -14,25 +12,29 @@ import { resolve } from 'node:path'
14
12
  * Entrypoint: src/index.ts
15
13
  */
16
14
  export default defineConfig({
17
- plugins: [
18
- react(),
19
- tailwindcss(),
20
- esmExternalRequirePlugin(),
21
- ],
15
+ plugins: [react(), tailwindcss()],
22
16
  build: {
23
17
  outDir: 'libs',
24
18
  emptyOutDir: false,
25
19
  lib: {
26
- entry: resolve(__dirname, 'src/components/index.ts'),
20
+ entry: {
21
+ index: resolve(__dirname, 'src/index.ts'),
22
+ theme: resolve(__dirname, 'src/theme.ts'),
23
+ },
27
24
  name: 'ViteSlackBaseUI',
28
25
  formats: ['es'],
29
- fileName: () => 'index.js',
26
+ fileName: (_, entryName) => `${entryName}.js`,
30
27
  },
31
28
  rollupOptions: {
32
- // Don't bundle peer deps; consumers provide these.
33
- external: ['react', 'react-dom', 'react-dom/client', 'react/jsx-runtime'],
29
+ // Keep React/Base UI/icon libraries external so the published ESM bundle
30
+ // doesn't inline CommonJS shims that call `require(...)` in the browser.
31
+ external: (id) =>
32
+ /^react(?:\/.*)?$/.test(id) ||
33
+ /^react-dom(?:\/.*)?$/.test(id) ||
34
+ /^@base-ui\/react(?:\/.*)?$/.test(id) ||
35
+ /^lucide-react(?:\/.*)?$/.test(id),
34
36
  output: {
35
- // Keep React as external. (Format is ESM, so globals aren't required.)
37
+ // Format is ESM, so globals aren't required.
36
38
  exports: 'named',
37
39
  },
38
40
  },