brix-runtime-sdk-api-web 1.0.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.
Files changed (135) hide show
  1. package/dist/index.js +190 -0
  2. package/dist/types/api-exports.test.d.ts +33 -0
  3. package/dist/types/api-exports.test.d.ts.map +1 -0
  4. package/dist/types/context/RuntimeContext.d.ts +69 -0
  5. package/dist/types/context/RuntimeContext.d.ts.map +1 -0
  6. package/dist/types/context/index.d.ts +23 -0
  7. package/dist/types/context/index.d.ts.map +1 -0
  8. package/dist/types/index.d.ts +52 -0
  9. package/dist/types/index.d.ts.map +1 -0
  10. package/dist/types/types/auth.d.ts +405 -0
  11. package/dist/types/types/auth.d.ts.map +1 -0
  12. package/dist/types/types/capability.d.ts +218 -0
  13. package/dist/types/types/capability.d.ts.map +1 -0
  14. package/dist/types/types/common.d.ts +99 -0
  15. package/dist/types/types/common.d.ts.map +1 -0
  16. package/dist/types/types/config.d.ts +85 -0
  17. package/dist/types/types/config.d.ts.map +1 -0
  18. package/dist/types/types/event.d.ts +658 -0
  19. package/dist/types/types/event.d.ts.map +1 -0
  20. package/dist/types/types/http.d.ts +132 -0
  21. package/dist/types/types/http.d.ts.map +1 -0
  22. package/dist/types/types/i18n.d.ts +327 -0
  23. package/dist/types/types/i18n.d.ts.map +1 -0
  24. package/dist/types/types/index.d.ts +61 -0
  25. package/dist/types/types/index.d.ts.map +1 -0
  26. package/dist/types/types/layout.d.ts +301 -0
  27. package/dist/types/types/layout.d.ts.map +1 -0
  28. package/dist/types/types/module.d.ts +78 -0
  29. package/dist/types/types/module.d.ts.map +1 -0
  30. package/dist/types/types/navigation.d.ts +295 -0
  31. package/dist/types/types/navigation.d.ts.map +1 -0
  32. package/dist/types/types/plugin-loader-capability.d.ts +142 -0
  33. package/dist/types/types/plugin-loader-capability.d.ts.map +1 -0
  34. package/dist/types/types/plugin.d.ts +250 -0
  35. package/dist/types/types/plugin.d.ts.map +1 -0
  36. package/dist/types/types/state.d.ts +306 -0
  37. package/dist/types/types/state.d.ts.map +1 -0
  38. package/dist/types/types/theme.d.ts +279 -0
  39. package/dist/types/types/theme.d.ts.map +1 -0
  40. package/dist/types/types/ui/adapter.d.ts +181 -0
  41. package/dist/types/types/ui/adapter.d.ts.map +1 -0
  42. package/dist/types/types/ui/avatar.d.ts +102 -0
  43. package/dist/types/types/ui/avatar.d.ts.map +1 -0
  44. package/dist/types/types/ui/badge.d.ts +101 -0
  45. package/dist/types/types/ui/badge.d.ts.map +1 -0
  46. package/dist/types/types/ui/button.d.ts +135 -0
  47. package/dist/types/types/ui/button.d.ts.map +1 -0
  48. package/dist/types/types/ui/card.d.ts +105 -0
  49. package/dist/types/types/ui/card.d.ts.map +1 -0
  50. package/dist/types/types/ui/common.d.ts +29 -0
  51. package/dist/types/types/ui/common.d.ts.map +1 -0
  52. package/dist/types/types/ui/icon.d.ts +78 -0
  53. package/dist/types/types/ui/icon.d.ts.map +1 -0
  54. package/dist/types/types/ui/index.d.ts +59 -0
  55. package/dist/types/types/ui/index.d.ts.map +1 -0
  56. package/dist/types/types/ui/input.d.ts +200 -0
  57. package/dist/types/types/ui/input.d.ts.map +1 -0
  58. package/dist/types/types/ui/menu.d.ts +211 -0
  59. package/dist/types/types/ui/menu.d.ts.map +1 -0
  60. package/dist/types/types/ui/message.d.ts +121 -0
  61. package/dist/types/types/ui/message.d.ts.map +1 -0
  62. package/dist/types/types/ui/modal.d.ts +167 -0
  63. package/dist/types/types/ui/modal.d.ts.map +1 -0
  64. package/dist/types/types/ui/select.d.ts +213 -0
  65. package/dist/types/types/ui/select.d.ts.map +1 -0
  66. package/dist/types/types/ui/theme-tokens.d.ts +226 -0
  67. package/dist/types/types/ui/theme-tokens.d.ts.map +1 -0
  68. package/dist/types/types/ui/tooltip.d.ts +98 -0
  69. package/dist/types/types/ui/tooltip.d.ts.map +1 -0
  70. package/dist/types/types/ui.d.ts +49 -0
  71. package/dist/types/types/ui.d.ts.map +1 -0
  72. package/package.json +34 -0
  73. package/src/api-exports.test.ts +199 -0
  74. package/src/context/RuntimeContext.d.ts +69 -0
  75. package/src/context/RuntimeContext.d.ts.map +1 -0
  76. package/src/context/RuntimeContext.ts +75 -0
  77. package/src/context/index.d.ts +23 -0
  78. package/src/context/index.d.ts.map +1 -0
  79. package/src/context/index.ts +23 -0
  80. package/src/index.d.ts +52 -0
  81. package/src/index.d.ts.map +1 -0
  82. package/src/index.ts +59 -0
  83. package/src/types/auth.d.ts +146 -0
  84. package/src/types/auth.d.ts.map +1 -0
  85. package/src/types/auth.ts +479 -0
  86. package/src/types/capability.d.ts +218 -0
  87. package/src/types/capability.d.ts.map +1 -0
  88. package/src/types/capability.ts +302 -0
  89. package/src/types/common.d.ts +99 -0
  90. package/src/types/common.d.ts.map +1 -0
  91. package/src/types/common.ts +115 -0
  92. package/src/types/config.d.ts +64 -0
  93. package/src/types/config.d.ts.map +1 -0
  94. package/src/types/config.ts +96 -0
  95. package/src/types/event.d.ts +206 -0
  96. package/src/types/event.d.ts.map +1 -0
  97. package/src/types/event.ts +776 -0
  98. package/src/types/http.d.ts +132 -0
  99. package/src/types/http.d.ts.map +1 -0
  100. package/src/types/http.ts +156 -0
  101. package/src/types/i18n.ts +420 -0
  102. package/src/types/index.d.ts +50 -0
  103. package/src/types/index.d.ts.map +1 -0
  104. package/src/types/index.ts +120 -0
  105. package/src/types/layout.ts +394 -0
  106. package/src/types/module.d.ts +78 -0
  107. package/src/types/module.d.ts.map +1 -0
  108. package/src/types/module.ts +92 -0
  109. package/src/types/navigation.d.ts +101 -0
  110. package/src/types/navigation.d.ts.map +1 -0
  111. package/src/types/navigation.ts +361 -0
  112. package/src/types/plugin-loader-capability.ts +159 -0
  113. package/src/types/plugin.d.ts +250 -0
  114. package/src/types/plugin.d.ts.map +1 -0
  115. package/src/types/plugin.ts +344 -0
  116. package/src/types/state.d.ts +119 -0
  117. package/src/types/state.d.ts.map +1 -0
  118. package/src/types/state.ts +366 -0
  119. package/src/types/theme.ts +378 -0
  120. package/src/types/ui/adapter.ts +222 -0
  121. package/src/types/ui/avatar.ts +113 -0
  122. package/src/types/ui/badge.ts +112 -0
  123. package/src/types/ui/button.ts +148 -0
  124. package/src/types/ui/card.ts +116 -0
  125. package/src/types/ui/common.ts +29 -0
  126. package/src/types/ui/icon.ts +85 -0
  127. package/src/types/ui/index.ts +78 -0
  128. package/src/types/ui/input.ts +225 -0
  129. package/src/types/ui/menu.ts +237 -0
  130. package/src/types/ui/message.ts +135 -0
  131. package/src/types/ui/modal.ts +188 -0
  132. package/src/types/ui/select.ts +239 -0
  133. package/src/types/ui/theme-tokens.ts +357 -0
  134. package/src/types/ui/tooltip.ts +120 -0
  135. package/src/types/ui.ts +49 -0
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Copyright 2026 Brix Platform Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @file UI Adapter Interface Definition
18
+ * @description Defines the core UIAdapter interface that all UI library implementations must follow
19
+ * @module @brix/runtime-sdk-api-web/types/ui/adapter
20
+ * @version 3.2.0
21
+ *
22
+ * [Architectural Constraints - v3.0.4 Blueprint]
23
+ * ❌ Layout components (Sidebar, Header, Layout) are FORBIDDEN in UIAdapter
24
+ * ❌ Direct dependency on specific UI libraries (MUI, Ant Design) in contract layer is FORBIDDEN
25
+ * ✅ UIAdapter only defines atomic component contracts
26
+ * ✅ Shell layer assembles layout using atomic components from UIAdapter
27
+ * ✅ Host layer selects UI adapter implementation via configuration
28
+ */
29
+ import type { FC } from 'react';
30
+ import type { ButtonProps } from './button';
31
+ import type { InputProps } from './input';
32
+ import type { SelectProps } from './select';
33
+ import type { CardProps } from './card';
34
+ import type { AvatarProps } from './avatar';
35
+ import type { BadgeProps } from './badge';
36
+ import type { TooltipProps } from './tooltip';
37
+ import type { MenuProps, MenuItemProps } from './menu';
38
+ import type { ModalProps } from './modal';
39
+ import type { MessageAPI } from './message';
40
+ import type { ThemeTokens, ThemeProviderProps } from './theme-tokens';
41
+ import type { IconProps } from './icon';
42
+ /**
43
+ * UI Adapter Interface
44
+ *
45
+ * Defines the contract for UI library implementations. All UI adapters
46
+ * (MUI, Ant Design, Native CSS) must implement this interface.
47
+ *
48
+ * **Architectural Constraints (v3.0.4 Blueprint):**
49
+ * - This interface only contains ATOMIC components
50
+ * - Layout components (Sidebar, Header, Layout) are FORBIDDEN here
51
+ * - Shell layer assembles layouts using these atomic components
52
+ * - Host layer selects adapter via configuration
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // MUI Adapter Implementation
57
+ * export const muiAdapter: UIAdapter = {
58
+ * Button: MuiButton,
59
+ * Input: MuiInput,
60
+ * Select: MuiSelect,
61
+ * Card: MuiCard,
62
+ * Avatar: MuiAvatar,
63
+ * Badge: MuiBadge,
64
+ * Tooltip: MuiTooltip,
65
+ * Menu: MuiMenu,
66
+ * MenuItem: MuiMenuItem,
67
+ * Modal: MuiModal,
68
+ * message: createMuiMessageAPI(),
69
+ * ThemeProvider: MuiThemeProvider,
70
+ * getThemeTokens: () => MUI_THEME_TOKENS,
71
+ * Icon: MuiIcon,
72
+ * };
73
+ * ```
74
+ */
75
+ export interface UIAdapter {
76
+ /**
77
+ * Button Component
78
+ *
79
+ * Primary action trigger component.
80
+ */
81
+ Button: FC<ButtonProps>;
82
+ /**
83
+ * Input Component
84
+ *
85
+ * Text input field component.
86
+ */
87
+ Input: FC<InputProps>;
88
+ /**
89
+ * Select Component
90
+ *
91
+ * Dropdown selection component.
92
+ */
93
+ Select: FC<SelectProps>;
94
+ /**
95
+ * Card Component
96
+ *
97
+ * Content container component.
98
+ */
99
+ Card: FC<CardProps>;
100
+ /**
101
+ * Avatar Component
102
+ *
103
+ * User avatar display component.
104
+ */
105
+ Avatar: FC<AvatarProps>;
106
+ /**
107
+ * Badge Component
108
+ *
109
+ * Status indicator component.
110
+ */
111
+ Badge: FC<BadgeProps>;
112
+ /**
113
+ * Tooltip Component
114
+ *
115
+ * Hover information component.
116
+ */
117
+ Tooltip: FC<TooltipProps>;
118
+ /**
119
+ * Menu Component
120
+ *
121
+ * Navigation menu list component. Used by Shell layer to assemble Sidebar.
122
+ */
123
+ Menu: FC<MenuProps>;
124
+ /**
125
+ * Menu Item Component
126
+ *
127
+ * Single menu item for custom rendering scenarios.
128
+ */
129
+ MenuItem: FC<MenuItemProps>;
130
+ /**
131
+ * Modal Component
132
+ *
133
+ * Dialog/overlay component.
134
+ */
135
+ Modal: FC<ModalProps>;
136
+ /**
137
+ * Message API
138
+ *
139
+ * Imperative toast/snackbar API.
140
+ */
141
+ message: MessageAPI;
142
+ /**
143
+ * Theme Provider Component
144
+ *
145
+ * Wraps the application to provide theme context.
146
+ */
147
+ ThemeProvider: FC<ThemeProviderProps>;
148
+ /**
149
+ * Get Theme Tokens
150
+ *
151
+ * Returns the current theme tokens for use in styled components.
152
+ */
153
+ getThemeTokens: () => ThemeTokens;
154
+ /**
155
+ * Icon Component
156
+ *
157
+ * Name-based icon lookup component.
158
+ */
159
+ Icon: FC<IconProps>;
160
+ }
161
+ /**
162
+ * UI Capability Type Symbol
163
+ *
164
+ * Symbol used to retrieve UIAdapter from RuntimeContext.
165
+ * Use with context.getCapability() to obtain the UI adapter instance.
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * // Get UI adapter from context
170
+ * const ui = context.getCapability<UIAdapter>(UICapabilityType);
171
+ * if (ui) {
172
+ * const { Button, Menu, Icon } = ui;
173
+ * // Use components...
174
+ * }
175
+ * ```
176
+ *
177
+ * @see UIAdapter
178
+ * @see RuntimeContext
179
+ */
180
+ export declare const UICapabilityType: unique symbol;
181
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/types/ui/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,SAAS;IAKxB;;;;OAIG;IACH,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;IAExB;;;;OAIG;IACH,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAEtB;;;;OAIG;IACH,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;IAMxB;;;;OAIG;IACH,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAEpB;;;;OAIG;IACH,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;IAExB;;;;OAIG;IACH,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAEtB;;;;OAIG;IACH,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAQ1B;;;;OAIG;IACH,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;IAM5B;;;;OAIG;IACH,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAEtB;;;;OAIG;IACH,OAAO,EAAE,UAAU,CAAC;IAMpB;;;;OAIG;IACH,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAEtC;;;;OAIG;IACH,cAAc,EAAE,MAAM,WAAW,CAAC;IAMlC;;;;OAIG;IACH,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB,eAA6B,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Copyright 2026 Brix Platform Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @file Avatar Component Type Definitions
18
+ * @description Defines types for the Avatar component in the UI adapter system
19
+ * @module @brix/runtime-sdk-api-web/types/ui/avatar
20
+ * @version 3.2.0
21
+ */
22
+ import type { ReactNode, CSSProperties } from 'react';
23
+ import type { ComponentSize } from './common';
24
+ /**
25
+ * Avatar Shape Variants
26
+ */
27
+ export type AvatarShape = 'circle' | 'square' | 'rounded';
28
+ /**
29
+ * Avatar Component Props
30
+ *
31
+ * User avatar or icon display component with various presentation options.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * <Avatar
36
+ * src={user.avatarUrl}
37
+ * alt={user.name}
38
+ * size="large"
39
+ * fallback={user.initials}
40
+ * />
41
+ * ```
42
+ */
43
+ export interface AvatarProps {
44
+ /**
45
+ * Image Source URL
46
+ *
47
+ * URL of the avatar image.
48
+ */
49
+ src?: string;
50
+ /**
51
+ * Alt Text
52
+ *
53
+ * Alternative text for accessibility.
54
+ */
55
+ alt?: string;
56
+ /**
57
+ * Fallback Content
58
+ *
59
+ * Content to display when image fails to load (e.g., initials).
60
+ */
61
+ fallback?: ReactNode;
62
+ /**
63
+ * Avatar Size
64
+ *
65
+ * Predefined size or custom pixel value.
66
+ * @default 'medium'
67
+ */
68
+ size?: ComponentSize | number;
69
+ /**
70
+ * Avatar Shape
71
+ *
72
+ * @default 'circle'
73
+ */
74
+ shape?: AvatarShape;
75
+ /**
76
+ * Background Color
77
+ *
78
+ * Custom background color (CSS value).
79
+ */
80
+ backgroundColor?: string;
81
+ /**
82
+ * Icon Name
83
+ *
84
+ * Icon to display when no image or fallback is provided.
85
+ */
86
+ icon?: string;
87
+ /**
88
+ * Custom Inline Styles
89
+ */
90
+ style?: CSSProperties;
91
+ /**
92
+ * Custom CSS Class Name
93
+ */
94
+ className?: string;
95
+ /**
96
+ * Avatar Content
97
+ *
98
+ * Direct content to display (e.g., text initials).
99
+ */
100
+ children?: ReactNode;
101
+ }
102
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../../src/types/ui/avatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAE9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright 2026 Brix Platform Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @file Badge Component Type Definitions
18
+ * @description Defines types for the Badge component in the UI adapter system
19
+ * @module @brix/runtime-sdk-api-web/types/ui/badge
20
+ * @version 3.2.0
21
+ */
22
+ import type { ReactNode, CSSProperties } from 'react';
23
+ /**
24
+ * Badge Color Variants
25
+ */
26
+ export type BadgeColor = 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';
27
+ /**
28
+ * Badge Component Props
29
+ *
30
+ * Small status indicator that can be attached to other elements.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * <Badge count={5} color="error" showZero={false}>
35
+ * <Icon name="notification" />
36
+ * </Badge>
37
+ * ```
38
+ */
39
+ export interface BadgeProps {
40
+ /**
41
+ * Badge Count
42
+ *
43
+ * Numeric value to display. If 0 and showZero is false, badge is hidden.
44
+ */
45
+ count?: number;
46
+ /**
47
+ * Maximum Count
48
+ *
49
+ * Maximum count to display. Exceeding values show as "max+".
50
+ * @default 99
51
+ */
52
+ max?: number;
53
+ /**
54
+ * Show Zero
55
+ *
56
+ * When true, displays the badge even when count is 0.
57
+ * @default false
58
+ */
59
+ showZero?: boolean;
60
+ /**
61
+ * Dot Mode
62
+ *
63
+ * When true, displays a simple dot instead of count.
64
+ * @default false
65
+ */
66
+ dot?: boolean;
67
+ /**
68
+ * Badge Color
69
+ *
70
+ * @default 'primary'
71
+ */
72
+ color?: BadgeColor;
73
+ /**
74
+ * Badge Position Offset
75
+ *
76
+ * Offset from the default position [horizontal, vertical].
77
+ */
78
+ offset?: [number, number];
79
+ /**
80
+ * Invisible Mode
81
+ *
82
+ * When true, the badge is not rendered.
83
+ * @default false
84
+ */
85
+ invisible?: boolean;
86
+ /**
87
+ * Custom Inline Styles
88
+ */
89
+ style?: CSSProperties;
90
+ /**
91
+ * Custom CSS Class Name
92
+ */
93
+ className?: string;
94
+ /**
95
+ * Badge Target Element
96
+ *
97
+ * The element that the badge is attached to.
98
+ */
99
+ children?: ReactNode;
100
+ }
101
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../../src/types/ui/badge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Copyright 2026 Brix Platform Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @file Button Component Type Definitions
18
+ * @description Defines types for the Button component in the UI adapter system
19
+ * @module @brix/runtime-sdk-api-web/types/ui/button
20
+ * @version 3.2.0
21
+ */
22
+ import type { ReactNode, MouseEvent, CSSProperties } from 'react';
23
+ import type { ComponentSize } from './common';
24
+ /**
25
+ * Button Style Variants
26
+ *
27
+ * Defines the visual style of the button:
28
+ * - primary: Solid background, high emphasis
29
+ * - secondary: Outlined style, medium emphasis
30
+ * - text: Text only, low emphasis
31
+ * - danger: Destructive action indicator
32
+ */
33
+ export type ButtonVariant = 'primary' | 'secondary' | 'text' | 'danger';
34
+ /**
35
+ * Button Component Props
36
+ *
37
+ * UI library agnostic button properties. All UI adapter implementations
38
+ * must support these properties to ensure consistent behavior across
39
+ * different UI framework implementations.
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * <Button
44
+ * variant="primary"
45
+ * size="medium"
46
+ * startIcon="save"
47
+ * onClick={handleSave}
48
+ * >
49
+ * Save Changes
50
+ * </Button>
51
+ * ```
52
+ */
53
+ export interface ButtonProps {
54
+ /**
55
+ * Button Visual Variant
56
+ *
57
+ * Determines the visual style of the button.
58
+ * @default 'primary'
59
+ */
60
+ variant?: ButtonVariant;
61
+ /**
62
+ * Button Size
63
+ *
64
+ * Controls the button dimensions and font size.
65
+ * @default 'medium'
66
+ */
67
+ size?: ComponentSize;
68
+ /**
69
+ * Loading State
70
+ *
71
+ * When true, displays a loading spinner and disables interaction.
72
+ * @default false
73
+ */
74
+ loading?: boolean;
75
+ /**
76
+ * Disabled State
77
+ *
78
+ * When true, the button is non-interactive and visually dimmed.
79
+ * @default false
80
+ */
81
+ disabled?: boolean;
82
+ /**
83
+ * Full Width Mode
84
+ *
85
+ * When true, the button expands to fill its container width.
86
+ * @default false
87
+ */
88
+ fullWidth?: boolean;
89
+ /**
90
+ * Start Icon Name
91
+ *
92
+ * Icon name to display before the button text.
93
+ * The actual icon is resolved by the Icon component from UIAdapter.
94
+ */
95
+ startIcon?: string;
96
+ /**
97
+ * End Icon Name
98
+ *
99
+ * Icon name to display after the button text.
100
+ * The actual icon is resolved by the Icon component from UIAdapter.
101
+ */
102
+ endIcon?: string;
103
+ /**
104
+ * Click Event Handler
105
+ *
106
+ * Callback fired when the button is clicked.
107
+ */
108
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
109
+ /**
110
+ * HTML Button Type
111
+ *
112
+ * Native HTML button type attribute for form integration.
113
+ * @default 'button'
114
+ */
115
+ type?: 'button' | 'submit' | 'reset';
116
+ /**
117
+ * Custom Inline Styles
118
+ *
119
+ * CSS properties applied directly to the button element.
120
+ */
121
+ style?: CSSProperties;
122
+ /**
123
+ * Custom CSS Class Name
124
+ *
125
+ * Additional CSS class names for styling customization.
126
+ */
127
+ className?: string;
128
+ /**
129
+ * Button Content
130
+ *
131
+ * The text or elements displayed inside the button.
132
+ */
133
+ children: ReactNode;
134
+ }
135
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/types/ui/button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAEzD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Copyright 2026 Brix Platform Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @file Card Component Type Definitions
18
+ * @description Defines types for the Card component in the UI adapter system
19
+ * @module @brix/runtime-sdk-api-web/types/ui/card
20
+ * @version 3.2.0
21
+ */
22
+ import type { ReactNode, MouseEvent, CSSProperties } from 'react';
23
+ /**
24
+ * Card Component Props
25
+ *
26
+ * Container component for grouping related content with optional
27
+ * elevation and interactive states.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * <Card
32
+ * title="User Profile"
33
+ * hoverable
34
+ * onClick={handleCardClick}
35
+ * >
36
+ * <p>Card content here</p>
37
+ * </Card>
38
+ * ```
39
+ */
40
+ export interface CardProps {
41
+ /**
42
+ * Card Title
43
+ *
44
+ * Optional title displayed at the top of the card.
45
+ */
46
+ title?: ReactNode;
47
+ /**
48
+ * Card Subtitle
49
+ *
50
+ * Optional subtitle displayed below the title.
51
+ */
52
+ subtitle?: ReactNode;
53
+ /**
54
+ * Elevation Level
55
+ *
56
+ * Shadow depth level. 0 means no shadow.
57
+ * @default 1
58
+ */
59
+ elevation?: number;
60
+ /**
61
+ * Hoverable State
62
+ *
63
+ * When true, the card shows hover effects on mouse over.
64
+ * @default false
65
+ */
66
+ hoverable?: boolean;
67
+ /**
68
+ * Bordered Style
69
+ *
70
+ * When true, displays a border instead of/in addition to shadow.
71
+ * @default false
72
+ */
73
+ bordered?: boolean;
74
+ /**
75
+ * Click Event Handler
76
+ *
77
+ * Callback fired when the card is clicked.
78
+ */
79
+ onClick?: (event: MouseEvent<HTMLDivElement>) => void;
80
+ /**
81
+ * Header Actions
82
+ *
83
+ * Action elements displayed in the card header area.
84
+ */
85
+ headerActions?: ReactNode;
86
+ /**
87
+ * Footer Content
88
+ *
89
+ * Content displayed in the card footer area.
90
+ */
91
+ footer?: ReactNode;
92
+ /**
93
+ * Custom Inline Styles
94
+ */
95
+ style?: CSSProperties;
96
+ /**
97
+ * Custom CSS Class Name
98
+ */
99
+ className?: string;
100
+ /**
101
+ * Card Content
102
+ */
103
+ children?: ReactNode;
104
+ }
105
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/types/ui/card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAEtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAE1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright 2026 Brix Platform Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * @file Common UI Type Definitions
18
+ * @description Shared type definitions used across UI components
19
+ * @module @brix/runtime-sdk-api-web/types/ui/common
20
+ * @version 3.2.0
21
+ */
22
+ /**
23
+ * Component Size Variants
24
+ *
25
+ * Standard size variants used across all UI components for visual consistency.
26
+ * These sizes map to specific pixel values defined by each UI adapter implementation.
27
+ */
28
+ export type ComponentSize = 'small' | 'medium' | 'large';
29
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/types/ui/common.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC"}