@xyhp915/slack-base-ui 0.0.14 → 0.1.2

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/index.d.ts +46 -3
  2. package/libs/index.d.ts.map +1 -1
  3. package/libs/index.js +18197 -1981
  4. package/package.json +2 -25
  5. package/src/context/ThemeContext.tsx +3 -3
  6. package/tsconfig.libs.json +2 -7
  7. package/vite.libs.config.ts +5 -13
  8. package/libs/components/AlertDialog.d.ts +0 -26
  9. package/libs/components/AlertDialog.d.ts.map +0 -1
  10. package/libs/components/AutoComplete.d.ts +0 -32
  11. package/libs/components/AutoComplete.d.ts.map +0 -1
  12. package/libs/components/Avatar.d.ts +0 -13
  13. package/libs/components/Avatar.d.ts.map +0 -1
  14. package/libs/components/Badge.d.ts +0 -8
  15. package/libs/components/Badge.d.ts.map +0 -1
  16. package/libs/components/Button.d.ts +0 -12
  17. package/libs/components/Button.d.ts.map +0 -1
  18. package/libs/components/Checkbox.d.ts +0 -21
  19. package/libs/components/Checkbox.d.ts.map +0 -1
  20. package/libs/components/Combobox.d.ts +0 -77
  21. package/libs/components/Combobox.d.ts.map +0 -1
  22. package/libs/components/ContextMenu.d.ts +0 -85
  23. package/libs/components/ContextMenu.d.ts.map +0 -1
  24. package/libs/components/Dialog.d.ts +0 -107
  25. package/libs/components/Dialog.d.ts.map +0 -1
  26. package/libs/components/Dropdown.d.ts +0 -177
  27. package/libs/components/Dropdown.d.ts.map +0 -1
  28. package/libs/components/Form.d.ts +0 -77
  29. package/libs/components/Form.d.ts.map +0 -1
  30. package/libs/components/IconButton.d.ts +0 -9
  31. package/libs/components/IconButton.d.ts.map +0 -1
  32. package/libs/components/Input.d.ts +0 -8
  33. package/libs/components/Input.d.ts.map +0 -1
  34. package/libs/components/Loading.d.ts +0 -16
  35. package/libs/components/Loading.d.ts.map +0 -1
  36. package/libs/components/Menu.d.ts +0 -89
  37. package/libs/components/Menu.d.ts.map +0 -1
  38. package/libs/components/Popover.d.ts +0 -112
  39. package/libs/components/Popover.d.ts.map +0 -1
  40. package/libs/components/Progress.d.ts +0 -18
  41. package/libs/components/Progress.d.ts.map +0 -1
  42. package/libs/components/Radio.d.ts +0 -29
  43. package/libs/components/Radio.d.ts.map +0 -1
  44. package/libs/components/Select.d.ts +0 -31
  45. package/libs/components/Select.d.ts.map +0 -1
  46. package/libs/components/Switch.d.ts +0 -20
  47. package/libs/components/Switch.d.ts.map +0 -1
  48. package/libs/components/Tabs.d.ts +0 -30
  49. package/libs/components/Tabs.d.ts.map +0 -1
  50. package/libs/components/Toast.d.ts +0 -49
  51. package/libs/components/Toast.d.ts.map +0 -1
  52. package/libs/components/Tooltip.d.ts +0 -9
  53. package/libs/components/Tooltip.d.ts.map +0 -1
  54. package/libs/components/index.d.ts +0 -47
  55. package/libs/components/index.d.ts.map +0 -1
  56. package/libs/context/ThemeContext.d.ts +0 -15
  57. package/libs/context/ThemeContext.d.ts.map +0 -1
  58. package/libs/context/useTheme.d.ts +0 -2
  59. package/libs/context/useTheme.d.ts.map +0 -1
  60. package/libs/theme.d.ts +0 -3
  61. package/libs/theme.d.ts.map +0 -1
  62. package/libs/theme.js +0 -2
  63. package/libs/useTheme-P7tC1A4a.js +0 -26
  64. package/src/index.ts +0 -3
  65. package/src/theme.ts +0 -8
package/package.json CHANGED
@@ -1,32 +1,9 @@
1
1
  {
2
2
  "name": "@xyhp915/slack-base-ui",
3
3
  "main": "libs/index.js",
4
- "module": "libs/index.js",
5
4
  "types": "libs/index.d.ts",
6
- "version": "0.0.14",
5
+ "version": "0.1.2",
7
6
  "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
- },
30
7
  "scripts": {
31
8
  "dev": "vite",
32
9
  "build": "tsc -b && vite build",
@@ -57,6 +34,6 @@
57
34
  "tailwindcss": "^4.1.18",
58
35
  "typescript": "~5.9.3",
59
36
  "typescript-eslint": "^8.46.4",
60
- "vite": "8.0.5"
37
+ "vite": "7.2.7"
61
38
  }
62
39
  }
@@ -1,9 +1,9 @@
1
1
  import React, { createContext, useEffect, useState } from 'react';
2
2
 
3
- export type Theme = 'light' | 'dark';
4
- export type ThemeColor = 'slack' | 'blue' | 'green' | 'aubergine';
3
+ type Theme = 'light' | 'dark';
4
+ type ThemeColor = 'slack' | 'blue' | 'green' | 'aubergine';
5
5
 
6
- export interface ThemeContextType {
6
+ interface ThemeContextType {
7
7
  theme: Theme;
8
8
  themeColor: ThemeColor;
9
9
  toggleTheme: () => void;
@@ -14,17 +14,12 @@
14
14
  "emitDeclarationOnly": true,
15
15
 
16
16
  "outDir": "libs",
17
- "rootDir": "src",
17
+ "rootDir": "src/components",
18
18
 
19
19
  "stripInternal": true,
20
20
  "esModuleInterop": true,
21
21
  "allowSyntheticDefaultImports": true
22
22
  },
23
- "include": [
24
- "src/index.ts",
25
- "src/theme.ts",
26
- "src/components/**/*",
27
- "src/context/**/*"
28
- ]
23
+ "include": ["src/components/index.ts", "src/components/**/*"]
29
24
  }
30
25
 
@@ -17,24 +17,16 @@ export default defineConfig({
17
17
  outDir: 'libs',
18
18
  emptyOutDir: false,
19
19
  lib: {
20
- entry: {
21
- index: resolve(__dirname, 'src/index.ts'),
22
- theme: resolve(__dirname, 'src/theme.ts'),
23
- },
20
+ entry: resolve(__dirname, 'src/components/index.ts'),
24
21
  name: 'ViteSlackBaseUI',
25
22
  formats: ['es'],
26
- fileName: (_, entryName) => `${entryName}.js`,
23
+ fileName: () => 'index.js',
27
24
  },
28
25
  rollupOptions: {
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),
26
+ // Don't bundle peer deps; consumers provide these.
27
+ external: ['react', 'react-dom', 'react-dom/client', 'react/jsx-runtime'],
36
28
  output: {
37
- // Format is ESM, so globals aren't required.
29
+ // Keep React as external. (Format is ESM, so globals aren't required.)
38
30
  exports: 'named',
39
31
  },
40
32
  },
@@ -1,26 +0,0 @@
1
- import React from 'react';
2
- export type AlertDialogVariant = 'info' | 'success' | 'warning' | 'danger';
3
- export interface AlertDialogProps {
4
- open?: boolean;
5
- onOpenChange?: (open: boolean) => void;
6
- title: string;
7
- description?: string;
8
- children?: React.ReactNode;
9
- variant?: AlertDialogVariant;
10
- confirmText?: string;
11
- cancelText?: string;
12
- onConfirm?: () => void | Promise<void>;
13
- onCancel?: () => void;
14
- showCancel?: boolean;
15
- confirmButtonVariant?: 'primary' | 'secondary' | 'danger' | 'ghost';
16
- className?: string;
17
- }
18
- export declare const AlertDialog: {
19
- ({ open, onOpenChange, title, description, children, variant, confirmText, cancelText, onConfirm, onCancel, showCancel, confirmButtonVariant, className, }: AlertDialogProps): import("react/jsx-runtime").JSX.Element;
20
- displayName: string;
21
- };
22
- export interface AlertDialogTriggerProps extends React.ComponentPropsWithoutRef<'button'> {
23
- asChild?: boolean;
24
- }
25
- export declare const AlertDialogTrigger: React.ForwardRefExoticComponent<AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
26
- //# sourceMappingURL=AlertDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../src/components/AlertDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD,eAAO,MAAM,WAAW;gKAcrB,gBAAgB;;CAkGlB,CAAA;AAKD,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,mGAY9B,CAAA"}
@@ -1,32 +0,0 @@
1
- import React from 'react';
2
- export interface AutoCompleteOption {
3
- value: string;
4
- label: string;
5
- disabled?: boolean;
6
- }
7
- export interface AutoCompleteProps {
8
- options: AutoCompleteOption[];
9
- value?: string;
10
- defaultValue?: string;
11
- onValueChange?: (value: string) => void;
12
- /** Called when the raw input text changes */
13
- onInputChange?: (input: string) => void;
14
- placeholder?: string;
15
- disabled?: boolean;
16
- required?: boolean;
17
- /** Label shown above the input */
18
- label?: string;
19
- /** Error message shown below the input */
20
- error?: string;
21
- fullWidth?: boolean;
22
- /** Show a clear button when a value is selected */
23
- clearable?: boolean;
24
- /** Maximum dropdown height (Tailwind class) */
25
- maxHeight?: string;
26
- /** No-results message */
27
- emptyMessage?: string;
28
- className?: string;
29
- id?: string;
30
- }
31
- export declare const AutoComplete: React.ForwardRefExoticComponent<AutoCompleteProps & React.RefAttributes<HTMLInputElement>>;
32
- //# sourceMappingURL=AutoComplete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../src/components/AutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,6CAA6C;IAC7C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,YAAY,4FAgRxB,CAAA"}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- export type AvatarStatus = 'online' | 'away' | 'dnd' | 'offline';
3
- export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
- export interface AvatarProps extends React.ComponentPropsWithoutRef<'div'> {
5
- src?: string;
6
- alt?: string;
7
- fallback?: string;
8
- size?: AvatarSize;
9
- status?: AvatarStatus;
10
- rounded?: boolean;
11
- }
12
- export declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
13
- //# sourceMappingURL=Avatar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/components/Avatar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1D,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IACxE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,MAAM,oFAoDlB,CAAA"}
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
3
- count?: number;
4
- dot?: boolean;
5
- variant?: 'danger' | 'neutral';
6
- }
7
- export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
8
- //# sourceMappingURL=Badge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAED,eAAO,MAAM,KAAK,oFAoCjB,CAAA"}
@@ -1,12 +0,0 @@
1
- import type { ButtonProps as BaseButtonProps } from '@base-ui/react';
2
- import React from 'react';
3
- type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'ghost';
4
- type ButtonSize = 'sm' | 'md' | 'lg';
5
- export interface ButtonProps extends BaseButtonProps {
6
- variant?: ButtonVariant;
7
- size?: ButtonSize;
8
- fullWidth?: boolean;
9
- }
10
- export declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
11
- export {};
12
- //# sourceMappingURL=Button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,KAAK,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAClE,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,oGAmClB,CAAA"}
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- export interface CheckboxProps {
3
- checked?: boolean;
4
- defaultChecked?: boolean;
5
- onCheckedChange?: (checked: boolean) => void;
6
- indeterminate?: boolean;
7
- disabled?: boolean;
8
- required?: boolean;
9
- /** Label text shown next to the checkbox */
10
- label?: string;
11
- /** Helper text shown below the label */
12
- description?: string;
13
- /** Error message */
14
- error?: string;
15
- name?: string;
16
- value?: string;
17
- id?: string;
18
- className?: string;
19
- }
20
- export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
21
- //# sourceMappingURL=Checkbox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/components/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,QAAQ,yFAkFpB,CAAA"}
@@ -1,77 +0,0 @@
1
- import React from 'react';
2
- export interface ComboboxOption {
3
- value: string;
4
- label: string;
5
- disabled?: boolean;
6
- }
7
- export interface ComboboxGroup {
8
- label: string;
9
- options: ComboboxOption[];
10
- }
11
- export interface ComboboxProps {
12
- /** Flat option list */
13
- options?: ComboboxOption[];
14
- /** Grouped option list (mutually exclusive with `options`) */
15
- groups?: ComboboxGroup[];
16
- /** Controlled selected value */
17
- value?: ComboboxOption | null;
18
- /** Initial selected value (uncontrolled) */
19
- defaultValue?: ComboboxOption | null;
20
- /** Callback when the selected value changes */
21
- onValueChange?: (value: ComboboxOption | null) => void;
22
- /** Placeholder text shown in the input */
23
- placeholder?: string;
24
- /** Whether the combobox is disabled */
25
- disabled?: boolean;
26
- /** Whether a value is required */
27
- required?: boolean;
28
- /** Label shown above the input */
29
- label?: string;
30
- /** Error message shown below the input */
31
- error?: string;
32
- /** Whether the combobox takes full width */
33
- fullWidth?: boolean;
34
- /** Whether the user can clear the selected value */
35
- clearable?: boolean;
36
- /** No-results message */
37
- emptyMessage?: string;
38
- /** Additional CSS class on the outermost container */
39
- className?: string;
40
- /** HTML id forwarded to the input */
41
- id?: string;
42
- }
43
- export interface ComboboxMultipleProps {
44
- /** Flat option list */
45
- options?: ComboboxOption[];
46
- /** Grouped option list */
47
- groups?: ComboboxGroup[];
48
- /** Controlled selected values */
49
- value?: ComboboxOption[];
50
- /** Initial selected values (uncontrolled) */
51
- defaultValue?: ComboboxOption[];
52
- /** Callback when selected values change */
53
- onValueChange?: (value: ComboboxOption[]) => void;
54
- /** Placeholder text shown in the input */
55
- placeholder?: string;
56
- /** Whether the combobox is disabled */
57
- disabled?: boolean;
58
- /** Whether a value is required */
59
- required?: boolean;
60
- /** Label shown above the input */
61
- label?: string;
62
- /** Error message shown below the input */
63
- error?: string;
64
- /** Whether the combobox takes full width */
65
- fullWidth?: boolean;
66
- /** Whether the user can clear all selected values */
67
- clearable?: boolean;
68
- /** No-results message */
69
- emptyMessage?: string;
70
- /** Additional CSS class on the outermost container */
71
- className?: string;
72
- /** HTML id forwarded to the input */
73
- id?: string;
74
- }
75
- export declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
76
- export declare const ComboboxMultiple: React.ForwardRefExoticComponent<ComboboxMultipleProps & React.RefAttributes<HTMLInputElement>>;
77
- //# sourceMappingURL=Combobox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Combobox.d.ts","sourceRoot":"","sources":["../../src/components/Combobox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,gCAAgC;IAChC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC7B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACpC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;IACtD,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,iCAAiC;IACjC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;IACjD,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAmCD,eAAO,MAAM,QAAQ,wFAoIpB,CAAA;AAMD,eAAO,MAAM,gBAAgB,gGAuK5B,CAAA"}
@@ -1,85 +0,0 @@
1
- import React from 'react';
2
- export interface ContextMenuProps {
3
- children: React.ReactNode;
4
- open?: boolean;
5
- defaultOpen?: boolean;
6
- onOpenChange?: (open: boolean) => void;
7
- }
8
- export interface ContextMenuTriggerProps {
9
- children: React.ReactNode;
10
- className?: string;
11
- disabled?: boolean;
12
- }
13
- export interface ContextMenuContentProps {
14
- children: React.ReactNode;
15
- className?: string;
16
- }
17
- export interface ContextMenuItemProps {
18
- children: React.ReactNode;
19
- className?: string;
20
- disabled?: boolean;
21
- onSelect?: () => void;
22
- destructive?: boolean;
23
- }
24
- export interface ContextMenuCheckboxItemProps {
25
- children: React.ReactNode;
26
- className?: string;
27
- checked?: boolean;
28
- onCheckedChange?: (checked: boolean) => void;
29
- disabled?: boolean;
30
- }
31
- export interface ContextMenuRadioGroupProps {
32
- children: React.ReactNode;
33
- value?: string;
34
- onValueChange?: (value: string) => void;
35
- }
36
- export interface ContextMenuRadioItemProps {
37
- children: React.ReactNode;
38
- value: string;
39
- className?: string;
40
- disabled?: boolean;
41
- }
42
- export interface ContextMenuLabelProps {
43
- children: React.ReactNode;
44
- className?: string;
45
- }
46
- export interface ContextMenuSeparatorProps {
47
- className?: string;
48
- }
49
- export interface ContextMenuSubProps {
50
- children: React.ReactNode;
51
- open?: boolean;
52
- defaultOpen?: boolean;
53
- onOpenChange?: (open: boolean) => void;
54
- }
55
- export interface ContextMenuSubTriggerProps {
56
- children: React.ReactNode;
57
- className?: string;
58
- disabled?: boolean;
59
- }
60
- export interface ContextMenuSubContentProps {
61
- children: React.ReactNode;
62
- className?: string;
63
- }
64
- export declare const ContextMenu: React.FC<ContextMenuProps>;
65
- export declare const ContextMenuTrigger: React.ForwardRefExoticComponent<ContextMenuTriggerProps & React.RefAttributes<HTMLDivElement>>;
66
- export declare const ContextMenuContent: React.ForwardRefExoticComponent<ContextMenuContentProps & React.RefAttributes<HTMLDivElement>>;
67
- export declare const ContextMenuItem: React.ForwardRefExoticComponent<ContextMenuItemProps & React.RefAttributes<HTMLDivElement>>;
68
- export declare const ContextMenuCheckboxItem: React.ForwardRefExoticComponent<ContextMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>;
69
- export declare const ContextMenuRadioGroup: React.FC<ContextMenuRadioGroupProps>;
70
- export declare const ContextMenuRadioItem: React.ForwardRefExoticComponent<ContextMenuRadioItemProps & React.RefAttributes<HTMLDivElement>>;
71
- export declare const ContextMenuLabel: React.FC<ContextMenuLabelProps>;
72
- export declare const ContextMenuSeparator: React.FC<ContextMenuSeparatorProps>;
73
- export declare const ContextMenuSub: React.FC<ContextMenuSubProps>;
74
- export declare const ContextMenuSubTrigger: React.ForwardRefExoticComponent<ContextMenuSubTriggerProps & React.RefAttributes<HTMLButtonElement>>;
75
- export declare const ContextMenuSubContent: React.ForwardRefExoticComponent<ContextMenuSubContentProps & React.RefAttributes<HTMLDivElement>>;
76
- export declare const ContextMenuItemWithIcon: React.FC<{
77
- icon?: React.ReactNode;
78
- children: React.ReactNode;
79
- shortcut?: string;
80
- className?: string;
81
- disabled?: boolean;
82
- onSelect?: () => void;
83
- destructive?: boolean;
84
- }>;
85
- //# sourceMappingURL=ContextMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/components/ContextMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- import React from 'react';
2
- export type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';
3
- export interface DialogProps {
4
- open?: boolean;
5
- onOpenChange?: (open: boolean) => void;
6
- title?: string;
7
- description?: string;
8
- children?: React.ReactNode;
9
- size?: DialogSize;
10
- showCloseButton?: boolean;
11
- className?: string;
12
- }
13
- export declare const Dialog: {
14
- ({ open, onOpenChange, title, description, children, size, showCloseButton, className, }: DialogProps): import("react/jsx-runtime").JSX.Element;
15
- displayName: string;
16
- };
17
- export declare const DialogHeader: ({ children, className }: {
18
- children: React.ReactNode;
19
- className?: string;
20
- }) => import("react/jsx-runtime").JSX.Element;
21
- export declare const DialogBody: ({ children, className }: {
22
- children: React.ReactNode;
23
- className?: string;
24
- }) => import("react/jsx-runtime").JSX.Element;
25
- export declare const DialogFooter: ({ children, className }: {
26
- children: React.ReactNode;
27
- className?: string;
28
- }) => import("react/jsx-runtime").JSX.Element;
29
- export interface DialogTriggerProps extends React.ComponentPropsWithoutRef<'button'> {
30
- asChild?: boolean;
31
- }
32
- export declare const DialogTrigger: React.ForwardRefExoticComponent<DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
33
- export declare const DialogClose: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
34
- export interface ShowDialogOptions {
35
- title?: string;
36
- description?: string;
37
- /** Custom content rendered inside the dialog body */
38
- content?: React.ReactNode;
39
- size?: DialogSize;
40
- showCloseButton?: boolean;
41
- className?: string;
42
- }
43
- export interface ConfirmDialogOptions {
44
- title?: string;
45
- description?: string;
46
- content?: React.ReactNode;
47
- size?: DialogSize;
48
- confirmLabel?: string;
49
- cancelLabel?: string;
50
- confirmVariant?: 'primary' | 'danger' | 'secondary';
51
- }
52
- export interface AlertDialogOptions {
53
- title?: string;
54
- description?: string;
55
- content?: React.ReactNode;
56
- size?: DialogSize;
57
- confirmLabel?: string;
58
- }
59
- export interface UseDialogReturn {
60
- /** Show a generic dialog. Resolves when the dialog is closed. */
61
- show: (options: ShowDialogOptions) => Promise<void>;
62
- /** Show a confirm dialog. Resolves `true` when confirmed, `false` when cancelled. */
63
- confirm: (options: ConfirmDialogOptions) => Promise<boolean>;
64
- /** Show an alert dialog with a single OK button. Resolves when dismissed. */
65
- alert: (options: AlertDialogOptions) => Promise<void>;
66
- }
67
- /**
68
- * Provides the imperative dialog API to all descendant components.
69
- * Must wrap any component that calls `useDialog()`.
70
- *
71
- * @example
72
- * ```tsx
73
- * // main.tsx
74
- * <DialogProvider>
75
- * <App />
76
- * </DialogProvider>
77
- *
78
- * // Any component
79
- * const { show, confirm, alert } = useDialog()
80
- * await confirm({ title: 'Delete?', confirmLabel: 'Delete', confirmVariant: 'danger' })
81
- * ```
82
- */
83
- export declare const DialogProvider: React.FC<{
84
- children: React.ReactNode;
85
- }>;
86
- /**
87
- * Returns imperative methods for showing dialogs from anywhere in the component tree.
88
- *
89
- * Must be used inside `<DialogProvider>`.
90
- *
91
- * @example
92
- * ```tsx
93
- * const { show, confirm, alert } = useDialog()
94
- *
95
- * // Generic dialog
96
- * await show({ title: 'Welcome', content: <p>Hello world</p> })
97
- *
98
- * // Confirm
99
- * const ok = await confirm({ title: 'Delete item?', confirmLabel: 'Delete', confirmVariant: 'danger' })
100
- * if (ok) deleteItem()
101
- *
102
- * // Alert
103
- * await alert({ title: 'Error', description: 'Something went wrong.' })
104
- * ```
105
- */
106
- export declare function useDialog(): UseDialogReturn;
107
- //# sourceMappingURL=Dialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/components/Dialog.tsx"],"names":[],"mappings":"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"}