glass-ui-solid 0.2.1 → 0.2.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 (73) hide show
  1. package/README.md +10 -2
  2. package/dist/components/Accordion/types.d.ts +11 -6
  3. package/dist/components/Accordion/types.d.ts.map +1 -1
  4. package/dist/components/Alert/types.d.ts +4 -7
  5. package/dist/components/Alert/types.d.ts.map +1 -1
  6. package/dist/components/Avatar/types.d.ts +3 -4
  7. package/dist/components/Avatar/types.d.ts.map +1 -1
  8. package/dist/components/Badge/types.d.ts +9 -8
  9. package/dist/components/Badge/types.d.ts.map +1 -1
  10. package/dist/components/Breadcrumb/types.d.ts +3 -6
  11. package/dist/components/Breadcrumb/types.d.ts.map +1 -1
  12. package/dist/components/Button/types.d.ts +6 -18
  13. package/dist/components/Button/types.d.ts.map +1 -1
  14. package/dist/components/Card/types.d.ts +3 -4
  15. package/dist/components/Card/types.d.ts.map +1 -1
  16. package/dist/components/Chip/types.d.ts +8 -9
  17. package/dist/components/Chip/types.d.ts.map +1 -1
  18. package/dist/components/CodeBlock/CodeBlock.js +12 -12
  19. package/dist/components/CodeBlock/CodeBlock.js.map +1 -1
  20. package/dist/components/CodeBlock/types.d.ts +2 -3
  21. package/dist/components/CodeBlock/types.d.ts.map +1 -1
  22. package/dist/components/Dialog/types.d.ts +3 -2
  23. package/dist/components/Dialog/types.d.ts.map +1 -1
  24. package/dist/components/Drawer/types.d.ts +10 -11
  25. package/dist/components/Drawer/types.d.ts.map +1 -1
  26. package/dist/components/Dropdown/types.d.ts +6 -4
  27. package/dist/components/Dropdown/types.d.ts.map +1 -1
  28. package/dist/components/ErrorDisplay/types.d.ts +2 -3
  29. package/dist/components/ErrorDisplay/types.d.ts.map +1 -1
  30. package/dist/components/GlassBackground/GlassBackground.d.ts +2 -45
  31. package/dist/components/GlassBackground/GlassBackground.d.ts.map +1 -1
  32. package/dist/components/GlassBackground/GlassBackground.js +1 -1
  33. package/dist/components/GlassBackground/GlassBackground.js.map +1 -1
  34. package/dist/components/GlassBackground/index.d.ts +1 -1
  35. package/dist/components/GlassBackground/index.d.ts.map +1 -1
  36. package/dist/components/GlassBackground/types.d.ts +42 -0
  37. package/dist/components/GlassBackground/types.d.ts.map +1 -0
  38. package/dist/components/Input/types.d.ts +5 -55
  39. package/dist/components/Input/types.d.ts.map +1 -1
  40. package/dist/components/JsonViewer/types.d.ts +2 -3
  41. package/dist/components/JsonViewer/types.d.ts.map +1 -1
  42. package/dist/components/Markdown/types.d.ts +2 -3
  43. package/dist/components/Markdown/types.d.ts.map +1 -1
  44. package/dist/components/Menu/types.d.ts +8 -10
  45. package/dist/components/Menu/types.d.ts.map +1 -1
  46. package/dist/components/Modal/types.d.ts +7 -12
  47. package/dist/components/Modal/types.d.ts.map +1 -1
  48. package/dist/components/Pagination/types.d.ts +2 -3
  49. package/dist/components/Pagination/types.d.ts.map +1 -1
  50. package/dist/components/Progress/types.d.ts +7 -6
  51. package/dist/components/Progress/types.d.ts.map +1 -1
  52. package/dist/components/Section/types.d.ts +2 -3
  53. package/dist/components/Section/types.d.ts.map +1 -1
  54. package/dist/components/SegmentedControl/types.d.ts +13 -6
  55. package/dist/components/SegmentedControl/types.d.ts.map +1 -1
  56. package/dist/components/Skeleton/types.d.ts +3 -4
  57. package/dist/components/Skeleton/types.d.ts.map +1 -1
  58. package/dist/components/Snackbar/types.d.ts +2 -1
  59. package/dist/components/Snackbar/types.d.ts.map +1 -1
  60. package/dist/components/Table/types.d.ts +3 -4
  61. package/dist/components/Table/types.d.ts.map +1 -1
  62. package/dist/components/Tabs/types.d.ts +8 -5
  63. package/dist/components/Tabs/types.d.ts.map +1 -1
  64. package/dist/components/Toast/types.d.ts +3 -2
  65. package/dist/components/Toast/types.d.ts.map +1 -1
  66. package/dist/components/Tooltip/types.d.ts +8 -4
  67. package/dist/components/Tooltip/types.d.ts.map +1 -1
  68. package/dist/index.d.ts +1 -0
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/styles2.css +1 -1
  71. package/dist/types/index.d.ts +191 -0
  72. package/dist/types/index.d.ts.map +1 -0
  73. package/package.json +1 -1
package/README.md CHANGED
@@ -80,6 +80,7 @@ function App() {
80
80
  - **Alert** - Inline alert messages (info, success, warning, error)
81
81
  - **Progress** - Progress bar with variants
82
82
  - **Skeleton** - Loading placeholder
83
+ - **ErrorDisplay** - Error message display with optional details
83
84
 
84
85
  ### Navigation
85
86
  - **Tabs** - Tab navigation
@@ -102,6 +103,9 @@ function App() {
102
103
  ### Disclosure
103
104
  - **Accordion** - Collapsible accordion panels
104
105
 
106
+ ### Backgrounds
107
+ - **GlassBackground** - Animated glassmorphism background with customizable blobs
108
+
105
109
  ## Hooks
106
110
 
107
111
  ```typescript
@@ -109,7 +113,8 @@ import {
109
113
  useDialogState,
110
114
  useDisclosure,
111
115
  useCopyToClipboard,
112
- useIsDark
116
+ useIsDark,
117
+ useAnimationState
113
118
  } from 'glass-ui-solid';
114
119
  ```
115
120
 
@@ -117,6 +122,7 @@ import {
117
122
  - **useDisclosure** - Simple open/close state management
118
123
  - **useCopyToClipboard** - Copy text with success feedback
119
124
  - **useIsDark** - Detect dark mode (useful for Portals)
125
+ - **useAnimationState** - Manage enter/exit animations with mounting state
120
126
 
121
127
  ## Theming
122
128
 
@@ -201,7 +207,9 @@ import type {
201
207
  ButtonProps,
202
208
  ModalProps,
203
209
  Schema,
204
- TableColumn
210
+ TableColumn,
211
+ ErrorDisplayProps,
212
+ GlassBackgroundProps
205
213
  } from 'glass-ui-solid';
206
214
  ```
207
215
 
@@ -1,22 +1,27 @@
1
1
  import { JSX } from 'solid-js';
2
+ import { BaseComponentProps } from '../../types';
2
3
  export interface AccordionItem {
4
+ /** Unique identifier */
3
5
  id: string;
6
+ /** Panel title */
4
7
  title: string | JSX.Element;
8
+ /** Panel content */
5
9
  content: JSX.Element;
10
+ /** Whether the panel is open by default */
6
11
  defaultOpen?: boolean;
7
12
  }
8
- export interface AccordionProps {
13
+ export interface AccordionProps extends BaseComponentProps {
14
+ /** Accordion items */
9
15
  items: AccordionItem[];
10
16
  /** Allow multiple items to be open at once */
11
17
  multiple?: boolean;
12
- /** Additional CSS classes */
13
- class?: string;
14
18
  }
15
- export interface AccordionPanelProps {
19
+ export interface AccordionPanelProps extends BaseComponentProps {
20
+ /** Panel title */
16
21
  title: string | JSX.Element;
22
+ /** Panel content */
17
23
  children: JSX.Element;
24
+ /** Whether the panel is open by default */
18
25
  defaultOpen?: boolean;
19
- /** Additional CSS classes */
20
- class?: string;
21
26
  }
22
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,oBAAoB;IACpB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,sBAAsB;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,kBAAkB;IAClB,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -1,17 +1,14 @@
1
1
  import { JSX } from 'solid-js';
2
- export type AlertType = 'info' | 'success' | 'warning' | 'error';
3
- export interface AlertProps {
2
+ import { StatusColor, BaseComponentProps, IconProps } from '../../types';
3
+ export interface AlertProps extends BaseComponentProps, IconProps {
4
4
  /** Type of alert, determines color styling */
5
- type: AlertType;
5
+ type: StatusColor;
6
6
  /** Optional title displayed prominently */
7
7
  title?: string;
8
8
  /** Alert content */
9
9
  children: JSX.Element;
10
- /** Custom icon to display (defaults to type-specific icon) */
11
- icon?: JSX.Element;
12
10
  /** Callback when close button is clicked (shows close button when provided) */
13
11
  onClose?: () => void;
14
- /** Additional CSS classes */
15
- class?: string;
16
12
  }
13
+ export type { StatusColor as AlertType } from '../../types';
17
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,IAAI,EAAE,SAAS,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACnB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,WAAW,UAAW,SAAQ,kBAAkB,EAAE,SAAS;IAC/D,8CAA8C;IAC9C,IAAI,EAAE,WAAW,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAGD,YAAY,EAAE,WAAW,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
- export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
- export interface AvatarProps {
1
+ import { AvatarSize, BaseComponentProps } from '../../types';
2
+ export interface AvatarProps extends BaseComponentProps {
3
3
  /** Image source URL */
4
4
  src?: string;
5
5
  /** Name for generating initials fallback */
@@ -8,9 +8,8 @@ export interface AvatarProps {
8
8
  size?: AvatarSize;
9
9
  /** Custom fallback background color */
10
10
  fallbackColor?: string;
11
- /** Additional CSS classes */
12
- class?: string;
13
11
  /** Alt text for the image */
14
12
  alt?: string;
15
13
  }
14
+ export type { AvatarSize as AvatarSize } from '../../types';
16
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,YAAY,EAAE,UAAU,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,17 +1,18 @@
1
1
  import { JSX } from 'solid-js';
2
- export type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info' | 'method';
3
- export type BadgeSize = 'sm' | 'md' | 'lg';
4
- export type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head' | 'options';
5
- export interface BadgeProps {
2
+ import { ComponentSize, StatusColor, HttpMethodColor, BaseComponentProps } from '../../types';
3
+ /**
4
+ * Badge variant - status colors plus 'default' and 'method'
5
+ */
6
+ export type BadgeVariant = 'default' | StatusColor | 'method';
7
+ export interface BadgeProps extends BaseComponentProps {
6
8
  /** Badge content */
7
9
  children: JSX.Element;
8
10
  /** Visual variant */
9
11
  variant?: BadgeVariant;
10
12
  /** Badge size */
11
- size?: BadgeSize;
12
- /** Additional CSS classes */
13
- class?: string;
13
+ size?: ComponentSize;
14
14
  /** HTTP method for method variant - determines color scheme */
15
- method?: HttpMethod;
15
+ method?: HttpMethodColor;
16
16
  }
17
+ export type { ComponentSize as BadgeSize, HttpMethodColor as HttpMethod } from '../../types';
17
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC3F,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1F,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,qBAAqB;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,iBAAiB;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,qBAAqB;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,iBAAiB;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAGD,YAAY,EAAE,aAAa,IAAI,SAAS,EAAE,eAAe,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,20 +1,17 @@
1
1
  import { JSX } from 'solid-js';
2
- export interface BreadcrumbItem {
2
+ import { BaseComponentProps, IconProps } from '../../types';
3
+ export interface BreadcrumbItem extends IconProps {
3
4
  /** Display label for the breadcrumb item */
4
5
  label: string;
5
6
  /** Optional href for link-based navigation */
6
7
  href?: string;
7
8
  /** Optional click handler for programmatic navigation */
8
9
  onClick?: () => void;
9
- /** Optional icon element */
10
- icon?: JSX.Element;
11
10
  }
12
- export interface BreadcrumbProps {
11
+ export interface BreadcrumbProps extends BaseComponentProps {
13
12
  /** Breadcrumb items to display */
14
13
  items: BreadcrumbItem[];
15
14
  /** Custom separator element (default: /) */
16
15
  separator?: JSX.Element;
17
- /** Additional CSS classes */
18
- class?: string;
19
16
  }
20
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACxB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,kCAAkC;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACzB"}
@@ -1,7 +1,6 @@
1
1
  import { JSX } from 'solid-js';
2
- export type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'danger';
3
- export type ButtonSize = 'sm' | 'md' | 'lg';
4
- export interface ButtonProps {
2
+ import { ComponentSize, ButtonVariant, BaseComponentProps, DisableableProps, LoadableProps, DualIconProps } from '../../types';
3
+ export interface ButtonProps extends BaseComponentProps, DisableableProps, LoadableProps, DualIconProps {
5
4
  /** Button content */
6
5
  children: JSX.Element;
7
6
  /** Click handler */
@@ -9,26 +8,15 @@ export interface ButtonProps {
9
8
  /** Visual variant */
10
9
  variant?: ButtonVariant;
11
10
  /** Button size */
12
- size?: ButtonSize;
13
- /** Whether the button is disabled */
14
- disabled?: boolean;
15
- /** Whether the button is in a loading state */
16
- loading?: boolean;
17
- /** Additional CSS classes */
18
- class?: string;
11
+ size?: ComponentSize;
19
12
  /** Button type attribute */
20
13
  type?: 'button' | 'submit' | 'reset';
21
- /** Icon to display on the left side */
22
- leftIcon?: JSX.Element;
23
- /** Icon to display on the right side */
24
- rightIcon?: JSX.Element;
25
14
  /** Whether the button should take full width of its container */
26
15
  fullWidth?: boolean;
27
16
  }
28
- export interface SpinnerProps {
17
+ export interface SpinnerProps extends BaseComponentProps {
29
18
  /** Spinner size */
30
- size?: ButtonSize;
31
- /** Additional CSS classes */
32
- class?: string;
19
+ size?: ComponentSize;
33
20
  }
21
+ export type { ButtonVariant, ComponentSize as ButtonSize } from '../../types';
34
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AACtF,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACxB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa;IACrG,qBAAqB;IACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,kBAAkB;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,mBAAmB;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAGD,YAAY,EAAE,aAAa,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { JSX } from 'solid-js';
2
- export type CardVariant = 'default' | 'elevated' | 'outlined';
3
- export interface CardProps {
2
+ import { CardVariant, BaseComponentProps } from '../../types';
3
+ export interface CardProps extends BaseComponentProps {
4
4
  /** Card header content */
5
5
  header?: JSX.Element;
6
6
  /** Card body content */
@@ -9,7 +9,6 @@ export interface CardProps {
9
9
  footer?: JSX.Element;
10
10
  /** Visual variant */
11
11
  variant?: CardVariant;
12
- /** Additional CSS classes */
13
- class?: string;
14
12
  }
13
+ export type { CardVariant } from '../../types';
15
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Card/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,wBAAwB;IACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Card/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD,0BAA0B;IAC1B,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,wBAAwB;IACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,qBAAqB;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAGD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { JSX } from 'solid-js';
2
- export type ChipVariant = 'filled' | 'outlined';
3
- export type ChipSize = 'sm' | 'md' | 'lg';
4
- export type ChipColor = 'default' | 'primary' | 'success' | 'warning' | 'error';
5
- export interface ChipProps {
2
+ import { ComponentSize, SemanticColor, ChipVariant, BaseComponentProps, DisableableProps } from '../../types';
3
+ /**
4
+ * Chip color - semantic colors without 'info'
5
+ */
6
+ export type ChipColor = Exclude<SemanticColor, 'info'>;
7
+ export interface ChipProps extends BaseComponentProps, DisableableProps {
6
8
  /** Chip content */
7
9
  children: JSX.Element;
8
10
  /** Callback when remove button is clicked */
@@ -12,10 +14,7 @@ export interface ChipProps {
12
14
  /** Color theme */
13
15
  color?: ChipColor;
14
16
  /** Chip size */
15
- size?: ChipSize;
16
- /** Additional CSS classes */
17
- class?: string;
18
- /** Whether the chip is disabled */
19
- disabled?: boolean;
17
+ size?: ComponentSize;
20
18
  }
19
+ export type { ChipVariant, ComponentSize as ChipSize } from '../../types';
21
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Chip/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhF,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kBAAkB;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Chip/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEvD,MAAM,WAAW,SAAU,SAAQ,kBAAkB,EAAE,gBAAgB;IACrE,mBAAmB;IACnB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qBAAqB;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kBAAkB;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAGD,YAAY,EAAE,WAAW,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { template as n, insert as i, createComponent as $, effect as C, setAttribute as H, className as h, setStyleProperty as T, use as z, delegateEvents as B } from "solid-js/web";
1
+ import { template as n, insert as l, createComponent as $, effect as C, setAttribute as H, className as h, setStyleProperty as T, use as z, delegateEvents as B } from "solid-js/web";
2
2
  import M from "../../node_modules/dompurify/dist/purify.es.js";
3
3
  import y from "../../_virtual/prism.js";
4
4
  import "../../node_modules/prismjs/components/prism-bash.js";
@@ -7,18 +7,18 @@ import { createMemo as S, Show as _ } from "solid-js";
7
7
  import { useCopyToClipboard as j } from "../../hooks/useCopyToClipboard.js";
8
8
  var E = /* @__PURE__ */ n('<svg class="w-4 h-4 sm:w-3.5 sm:h-3.5 text-emerald-500"fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2 aria-hidden=true><path stroke-linecap=round stroke-linejoin=round d="M5 13l4 4L19 7">'), D = /* @__PURE__ */ n('<span class="hidden sm:inline text-emerald-500 dark:text-emerald-400">'), O = /* @__PURE__ */ n('<button type=button class="absolute top-2 right-2 sm:top-3 sm:right-3 z-10 flex items-center gap-1.5 p-2 sm:px-3 sm:py-1.5 text-xs font-medium text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300 glass-button rounded-lg transition-all">'), P = /* @__PURE__ */ n('<div><div class="absolute top-3 left-3 z-10"><span class="text-[0.625rem] font-semibold text-surface-400 dark:text-surface-500 uppercase tracking-wider"></span></div><pre><code>'), R = /* @__PURE__ */ n('<svg class="w-4 h-4 sm:w-3.5 sm:h-3.5"fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2 aria-hidden=true><path stroke-linecap=round stroke-linejoin=round d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z">'), W = /* @__PURE__ */ n('<span class="hidden sm:inline">');
9
9
  function q(t) {
10
- const l = {
10
+ const i = {
11
11
  "&": "&amp;",
12
12
  "<": "&lt;",
13
13
  ">": "&gt;",
14
14
  '"': "&quot;",
15
15
  "'": "&#039;"
16
16
  };
17
- return t.replace(/[&<>"']/g, (d) => l[d]);
17
+ return t.replace(/[&<>"']/g, (d) => i[d]);
18
18
  }
19
19
  const Q = (t) => {
20
20
  const {
21
- copied: l,
21
+ copied: i,
22
22
  copy: d
23
23
  } = j();
24
24
  let g;
@@ -31,34 +31,34 @@ const Q = (t) => {
31
31
  });
32
32
  return (() => {
33
33
  var a = P(), o = a.firstChild, s = o.firstChild, u = o.nextSibling, c = u.firstChild;
34
- i(a, $(_, {
34
+ l(a, $(_, {
35
35
  get when() {
36
36
  return !t.hideCopyButton;
37
37
  },
38
38
  get children() {
39
39
  var e = O();
40
- return e.$$click = () => d(t.code), i(e, $(_, {
40
+ return e.$$click = () => d(t.code), l(e, $(_, {
41
41
  get when() {
42
- return l();
42
+ return i();
43
43
  },
44
44
  get fallback() {
45
45
  return [R(), (() => {
46
46
  var r = W();
47
- return i(r, p), r;
47
+ return l(r, p), r;
48
48
  })()];
49
49
  },
50
50
  get children() {
51
51
  return [E(), (() => {
52
52
  var r = D();
53
- return i(r, f), r;
53
+ return l(r, f), r;
54
54
  })()];
55
55
  }
56
- })), C(() => H(e, "aria-label", l() ? f() : p())), e;
56
+ })), C(() => H(e, "aria-label", i() ? f() : p())), e;
57
57
  }
58
- }), o), i(s, m);
58
+ }), o), l(s, m);
59
59
  var v = g;
60
60
  return typeof v == "function" ? z(v, c) : g = c, C((e) => {
61
- var r = `relative group rounded-xl overflow-hidden ${t.class ?? ""}`, x = `p-6 pt-10 text-sm font-mono overflow-auto scrollbar-thin glass-thin ${t.wrap ? "whitespace-pre-wrap break-all" : ""}`, k = L(), b = `language-${m()}`, w = A();
61
+ var r = `relative group rounded-xl overflow-hidden ${t.class ?? ""}`, x = `p-6 pt-10 text-sm font-mono overflow-auto scrollbar-thin glass-thin rounded-xl ${t.wrap ? "whitespace-pre-wrap break-all" : ""}`, k = L(), b = `language-${m()}`, w = A();
62
62
  return r !== e.e && h(a, e.e = r), x !== e.t && h(u, e.t = x), k !== e.a && T(u, "max-height", e.a = k), b !== e.o && h(c, e.o = b), w !== e.i && (c.innerHTML = e.i = w), e;
63
63
  }, {
64
64
  e: void 0,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.js","sources":["../../../src/components/CodeBlock/CodeBlock.tsx"],"sourcesContent":["import DOMPurify from 'dompurify';\nimport Prism from 'prismjs';\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-json';\nimport { type Component, Show, createMemo } from 'solid-js';\nimport { useCopyToClipboard } from '../../hooks';\nimport type { CodeBlockProps } from './types';\n\n// Escape HTML to prevent XSS when grammar is not found\nfunction escapeHtml(text: string): string {\n const map: Record<string, string> = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#039;',\n };\n return text.replace(/[&<>\"']/g, (m) => map[m]);\n}\n\nexport const CodeBlock: Component<CodeBlockProps> = (props) => {\n const { copied, copy } = useCopyToClipboard();\n let codeRef: HTMLElement | undefined;\n\n const language = () => props.language || 'json';\n const maxHeight = () => props.maxHeight || '31.25rem';\n const copyLabel = () => props.copyLabel ?? 'Copy';\n const copiedLabel = () => props.copiedLabel ?? 'Copied';\n\n // Highlight code whenever it changes\n const highlightedCode = createMemo(() => {\n const code = props.code;\n const lang = language();\n\n // Get the grammar for the language, fallback to plain text\n const grammar = Prism.languages[lang];\n if (!grammar) {\n return escapeHtml(code);\n }\n\n // Sanitize Prism output for defense-in-depth (allow span tags for highlighting)\n return DOMPurify.sanitize(Prism.highlight(code, grammar, lang), {\n ALLOWED_TAGS: ['span'],\n ALLOWED_ATTR: ['class'],\n });\n });\n\n return (\n <div class={`relative group rounded-xl overflow-hidden ${props.class ?? ''}`}>\n {/* Copy button */}\n <Show when={!props.hideCopyButton}>\n <button\n type=\"button\"\n onClick={() => copy(props.code)}\n class=\"absolute top-2 right-2 sm:top-3 sm:right-3 z-10 flex items-center gap-1.5 p-2 sm:px-3 sm:py-1.5 text-xs font-medium text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300 glass-button rounded-lg transition-all\"\n aria-label={copied() ? copiedLabel() : copyLabel()}\n >\n <Show\n when={copied()}\n fallback={\n <>\n <svg\n class=\"w-4 h-4 sm:w-3.5 sm:h-3.5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"\n />\n </svg>\n <span class=\"hidden sm:inline\">{copyLabel()}</span>\n </>\n }\n >\n <svg\n class=\"w-4 h-4 sm:w-3.5 sm:h-3.5 text-emerald-500\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n <span class=\"hidden sm:inline text-emerald-500 dark:text-emerald-400\">\n {copiedLabel()}\n </span>\n </Show>\n </button>\n </Show>\n\n {/* Language badge */}\n <div class=\"absolute top-3 left-3 z-10\">\n <span class=\"text-[0.625rem] font-semibold text-surface-400 dark:text-surface-500 uppercase tracking-wider\">\n {language()}\n </span>\n </div>\n\n {/* Code container with syntax highlighting */}\n {/* innerHTML is the correct SolidJS pattern - content is sanitized via DOMPurify in highlightedCode() */}\n <pre\n class={`p-6 pt-10 text-sm font-mono overflow-auto scrollbar-thin glass-thin ${props.wrap ? 'whitespace-pre-wrap break-all' : ''}`}\n style={{ 'max-height': maxHeight() }}\n >\n <code ref={codeRef} class={`language-${language()}`} innerHTML={highlightedCode()} />\n </pre>\n </div>\n );\n};\n"],"names":["escapeHtml","text","map","replace","m","CodeBlock","props","copied","copy","useCopyToClipboard","codeRef","language","maxHeight","copyLabel","copiedLabel","highlightedCode","createMemo","code","lang","grammar","Prism","languages","DOMPurify","sanitize","highlight","ALLOWED_TAGS","ALLOWED_ATTR","_el$","_tmpl$4","_el$5","firstChild","_el$6","_el$7","nextSibling","_el$8","_$insert","_$createComponent","Show","when","hideCopyButton","children","_el$2","_tmpl$3","$$click","fallback","_tmpl$5","_el$0","_tmpl$6","_tmpl$","_el$4","_tmpl$2","_$effect","_$setAttribute","_ref$","_$use","_p$","_v$","class","_v$2","wrap","_v$3","_v$4","_v$5","e","_$className","t","a","_$setStyleProperty","o","i","innerHTML","undefined","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"CodeBlock.js","sources":["../../../src/components/CodeBlock/CodeBlock.tsx"],"sourcesContent":["import DOMPurify from 'dompurify';\nimport Prism from 'prismjs';\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-json';\nimport { type Component, Show, createMemo } from 'solid-js';\nimport { useCopyToClipboard } from '../../hooks';\nimport type { CodeBlockProps } from './types';\n\n// Escape HTML to prevent XSS when grammar is not found\nfunction escapeHtml(text: string): string {\n const map: Record<string, string> = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#039;',\n };\n return text.replace(/[&<>\"']/g, (m) => map[m]);\n}\n\nexport const CodeBlock: Component<CodeBlockProps> = (props) => {\n const { copied, copy } = useCopyToClipboard();\n let codeRef: HTMLElement | undefined;\n\n const language = () => props.language || 'json';\n const maxHeight = () => props.maxHeight || '31.25rem';\n const copyLabel = () => props.copyLabel ?? 'Copy';\n const copiedLabel = () => props.copiedLabel ?? 'Copied';\n\n // Highlight code whenever it changes\n const highlightedCode = createMemo(() => {\n const code = props.code;\n const lang = language();\n\n // Get the grammar for the language, fallback to plain text\n const grammar = Prism.languages[lang];\n if (!grammar) {\n return escapeHtml(code);\n }\n\n // Sanitize Prism output for defense-in-depth (allow span tags for highlighting)\n return DOMPurify.sanitize(Prism.highlight(code, grammar, lang), {\n ALLOWED_TAGS: ['span'],\n ALLOWED_ATTR: ['class'],\n });\n });\n\n return (\n <div class={`relative group rounded-xl overflow-hidden ${props.class ?? ''}`}>\n {/* Copy button */}\n <Show when={!props.hideCopyButton}>\n <button\n type=\"button\"\n onClick={() => copy(props.code)}\n class=\"absolute top-2 right-2 sm:top-3 sm:right-3 z-10 flex items-center gap-1.5 p-2 sm:px-3 sm:py-1.5 text-xs font-medium text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300 glass-button rounded-lg transition-all\"\n aria-label={copied() ? copiedLabel() : copyLabel()}\n >\n <Show\n when={copied()}\n fallback={\n <>\n <svg\n class=\"w-4 h-4 sm:w-3.5 sm:h-3.5\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"\n />\n </svg>\n <span class=\"hidden sm:inline\">{copyLabel()}</span>\n </>\n }\n >\n <svg\n class=\"w-4 h-4 sm:w-3.5 sm:h-3.5 text-emerald-500\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n <span class=\"hidden sm:inline text-emerald-500 dark:text-emerald-400\">\n {copiedLabel()}\n </span>\n </Show>\n </button>\n </Show>\n\n {/* Language badge */}\n <div class=\"absolute top-3 left-3 z-10\">\n <span class=\"text-[0.625rem] font-semibold text-surface-400 dark:text-surface-500 uppercase tracking-wider\">\n {language()}\n </span>\n </div>\n\n {/* Code container with syntax highlighting */}\n {/* innerHTML is the correct SolidJS pattern - content is sanitized via DOMPurify in highlightedCode() */}\n <pre\n class={`p-6 pt-10 text-sm font-mono overflow-auto scrollbar-thin glass-thin rounded-xl ${props.wrap ? 'whitespace-pre-wrap break-all' : ''}`}\n style={{ 'max-height': maxHeight() }}\n >\n <code ref={codeRef} class={`language-${language()}`} innerHTML={highlightedCode()} />\n </pre>\n </div>\n );\n};\n"],"names":["escapeHtml","text","map","replace","m","CodeBlock","props","copied","copy","useCopyToClipboard","codeRef","language","maxHeight","copyLabel","copiedLabel","highlightedCode","createMemo","code","lang","grammar","Prism","languages","DOMPurify","sanitize","highlight","ALLOWED_TAGS","ALLOWED_ATTR","_el$","_tmpl$4","_el$5","firstChild","_el$6","_el$7","nextSibling","_el$8","_$insert","_$createComponent","Show","when","hideCopyButton","children","_el$2","_tmpl$3","$$click","fallback","_tmpl$5","_el$0","_tmpl$6","_tmpl$","_el$4","_tmpl$2","_$effect","_$setAttribute","_ref$","_$use","_p$","_v$","class","_v$2","wrap","_v$3","_v$4","_v$5","e","_$className","t","a","_$setStyleProperty","o","i","innerHTML","undefined","_$delegateEvents"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export interface CodeBlockProps {
1
+ import { BaseComponentProps } from '../../types';
2
+ export interface CodeBlockProps extends BaseComponentProps {
2
3
  /** The code to display */
3
4
  code: string;
4
5
  /** The programming language for syntax highlighting (default: 'json') */
@@ -13,7 +14,5 @@ export interface CodeBlockProps {
13
14
  copyLabel?: string;
14
15
  /** Label shown after copying (default: 'Copied') */
15
16
  copiedLabel?: string;
16
- /** Additional CSS classes */
17
- class?: string;
18
17
  }
19
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/CodeBlock/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/CodeBlock/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,5 +1,5 @@
1
- export type DialogVariant = 'default' | 'danger';
2
- export interface DialogProps {
1
+ import { DialogVariant, BaseComponentProps } from '../../types';
2
+ export interface DialogProps extends BaseComponentProps {
3
3
  /** Whether the dialog is open */
4
4
  open: boolean;
5
5
  /** Callback when open state changes */
@@ -19,4 +19,5 @@ export interface DialogProps {
19
19
  /** Visual variant - danger shows red confirm button */
20
20
  variant?: DialogVariant;
21
21
  }
22
+ export type { DialogVariant } from '../../types';
22
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAGD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -1,21 +1,20 @@
1
1
  import { JSX } from 'solid-js';
2
- export type DrawerPosition = 'left' | 'right';
2
+ import { DrawerPosition, OverlayProps } from '../../types';
3
+ /**
4
+ * Drawer size - excludes 'full' since drawers slide from edges
5
+ */
3
6
  export type DrawerSize = 'sm' | 'md' | 'lg' | 'xl';
4
- export interface DrawerProps {
5
- open: boolean;
6
- onClose: () => void;
7
- title?: string;
7
+ export interface DrawerProps extends OverlayProps {
8
+ /** Drawer content */
8
9
  children: JSX.Element;
10
+ /** Position of the drawer */
9
11
  position?: DrawerPosition;
12
+ /** Size variant */
10
13
  size?: DrawerSize;
11
- /** Show close button in header */
12
- showClose?: boolean;
13
- /** Close on backdrop click */
14
- closeOnBackdrop?: boolean;
15
- /** Close on Escape key */
16
- closeOnEscape?: boolean;
14
+ /** Footer content */
17
15
  footer?: JSX.Element;
18
16
  /** Remove padding from content area */
19
17
  noPadding?: boolean;
20
18
  }
19
+ export type { DrawerPosition } from '../../types';
21
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,qBAAqB;IACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import { JSX } from 'solid-js';
2
- export type DropdownPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'bottom' | 'top';
3
- export interface DropdownProps {
2
+ import { Placement, BaseComponentProps } from '../../types';
3
+ /**
4
+ * Dropdown placement - vertical placements only
5
+ */
6
+ export type DropdownPlacement = Extract<Placement, 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'bottom' | 'top'>;
7
+ export interface DropdownProps extends BaseComponentProps {
4
8
  /** Trigger element that opens the dropdown */
5
9
  trigger: JSX.Element;
6
10
  /** Content to display in the dropdown */
@@ -11,8 +15,6 @@ export interface DropdownProps {
11
15
  onOpenChange?: (open: boolean) => void;
12
16
  /** Dropdown placement relative to trigger */
13
17
  placement?: DropdownPlacement;
14
- /** Additional CSS classes for the dropdown container */
15
- class?: string;
16
18
  /** Additional CSS classes for the content container */
17
19
  contentClass?: string;
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,YAAY,GACZ,WAAW,GACX,SAAS,GACT,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC;AAE/H,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,8CAA8C;IAC9C,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,9 +1,8 @@
1
- export interface ErrorDisplayProps {
1
+ import { BaseComponentProps } from '../../types';
2
+ export interface ErrorDisplayProps extends BaseComponentProps {
2
3
  /** The error message to display */
3
4
  message: string;
4
5
  /** The error title (default: 'Request Failed') */
5
6
  title?: string;
6
- /** Additional CSS classes */
7
- class?: string;
8
7
  }
9
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ErrorDisplay/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ErrorDisplay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}