@pantograph/vue 0.34.4 → 0.34.6

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.
@@ -7,6 +7,7 @@ const o = [
7
7
  "Avatar",
8
8
  "AvatarGroup",
9
9
  "Badge",
10
+ "Banner",
10
11
  "Blanket",
11
12
  "Breadcrumb",
12
13
  "Button",
@@ -0,0 +1 @@
1
+ "use strict";const o=["Accordion","AccordionItem","ActionButton","Alert","AlertDialog","Avatar","AvatarGroup","Badge","Banner","Blanket","Breadcrumb","Button","ButtonGroup","Card","Checkbox","CheckboxGroup","Chip","ChipGroup","CoachMark","ColorPicker","ColorSwatch","ColorSwatchGroup","ColorTrigger","Combobox","ComboboxInput","ComboboxOption","Comment","CommentAction","CommentReaction","CommentReactionListItem","CommentReactionHoverCard","CommentMention","CommentEditor","CommentTrigger","ConfigProvider","DataTable","Dialog","DialogTitle","Divider","Drawer","DrawerTitle","DropZone","Empty","FloatButton","Form","FormItem","FormValidation","GOPicker","GraphicalObject","GraphicalObjectGroup","HoverCard","Icon","IconButton","Image","IndentLevel","Indicator","Input","InputGroup","InputNumber","Kbd","Label","Link","Menu","MenuItem","Modal","ModalTitle","PageIndicator","Pagination","PinInput","Popover","Progress","RadioGroup","RadioGroupItem","Rate","ScrollContainer","Segmented","Select","SelectOption","SelectLabel","Shortcut","Skeleton","Spinner","Stepper","Steps","Step","SubMenu","Switch","Table","Th","Td","Tr","TBody","THead","TFoot","Tabs","TabList","TabTrigger","TabContent","Textarea","Toast","Tooltip","TooltipProvider","Tree","TreeNode","Upload","UploadList","UploadTrigger"];exports.components=o;
@@ -1,3 +1,3 @@
1
- export declare const components: readonly ["Accordion", "AccordionItem", "ActionButton", "Alert", "AlertDialog", "Avatar", "AvatarGroup", "Badge", "Blanket", "Breadcrumb", "Button", "ButtonGroup", "Card", "Checkbox", "CheckboxGroup", "Chip", "ChipGroup", "CoachMark", "ColorPicker", "ColorSwatch", "ColorSwatchGroup", "ColorTrigger", "Combobox", "ComboboxInput", "ComboboxOption", "Comment", "CommentAction", "CommentReaction", "CommentReactionListItem", "CommentReactionHoverCard", "CommentMention", "CommentEditor", "CommentTrigger", "ConfigProvider", "DataTable", "Dialog", "DialogTitle", "Divider", "Drawer", "DrawerTitle", "DropZone", "Empty", "FloatButton", "Form", "FormItem", "FormValidation", "GOPicker", "GraphicalObject", "GraphicalObjectGroup", "HoverCard", "Icon", "IconButton", "Image", "IndentLevel", "Indicator", "Input", "InputGroup", "InputNumber", "Kbd", "Label", "Link", "Menu", "MenuItem", "Modal", "ModalTitle", "PageIndicator", "Pagination", "PinInput", "Popover", "Progress", "RadioGroup", "RadioGroupItem", "Rate", "ScrollContainer", "Segmented", "Select", "SelectOption", "SelectLabel", "Shortcut", "Skeleton", "Spinner", "Stepper", "Steps", "Step", "SubMenu", "Switch", "Table", "Th", "Td", "Tr", "TBody", "THead", "TFoot", "Tabs", "TabList", "TabTrigger", "TabContent", "Textarea", "Toast", "Tooltip", "TooltipProvider", "Tree", "TreeNode", "Upload", "UploadList", "UploadTrigger"];
1
+ export declare const components: readonly ["Accordion", "AccordionItem", "ActionButton", "Alert", "AlertDialog", "Avatar", "AvatarGroup", "Badge", "Banner", "Blanket", "Breadcrumb", "Button", "ButtonGroup", "Card", "Checkbox", "CheckboxGroup", "Chip", "ChipGroup", "CoachMark", "ColorPicker", "ColorSwatch", "ColorSwatchGroup", "ColorTrigger", "Combobox", "ComboboxInput", "ComboboxOption", "Comment", "CommentAction", "CommentReaction", "CommentReactionListItem", "CommentReactionHoverCard", "CommentMention", "CommentEditor", "CommentTrigger", "ConfigProvider", "DataTable", "Dialog", "DialogTitle", "Divider", "Drawer", "DrawerTitle", "DropZone", "Empty", "FloatButton", "Form", "FormItem", "FormValidation", "GOPicker", "GraphicalObject", "GraphicalObjectGroup", "HoverCard", "Icon", "IconButton", "Image", "IndentLevel", "Indicator", "Input", "InputGroup", "InputNumber", "Kbd", "Label", "Link", "Menu", "MenuItem", "Modal", "ModalTitle", "PageIndicator", "Pagination", "PinInput", "Popover", "Progress", "RadioGroup", "RadioGroupItem", "Rate", "ScrollContainer", "Segmented", "Select", "SelectOption", "SelectLabel", "Shortcut", "Skeleton", "Spinner", "Stepper", "Steps", "Step", "SubMenu", "Switch", "Table", "Th", "Td", "Tr", "TBody", "THead", "TFoot", "Tabs", "TabList", "TabTrigger", "TabContent", "Textarea", "Toast", "Tooltip", "TooltipProvider", "Tree", "TreeNode", "Upload", "UploadList", "UploadTrigger"];
2
2
  export default components;
3
3
  export type Components = (typeof components)[number];
@@ -0,0 +1,235 @@
1
+ import { ClassValue } from 'clsx';
2
+ import { ButtonProps } from '../Button';
3
+ import { IconProps } from '../Icon';
4
+ import { IconButtonProps } from '../IconButton';
5
+ import { LinkProps } from '../Link';
6
+ import { PopoverBaseProps } from '../Popover';
7
+ import { BannerColor, BannerPlacement, BannerPosition } from './Banner.model';
8
+ /**
9
+ * Props for the Banner component
10
+ */
11
+ export interface BannerProps {
12
+ /**
13
+ * The color variant of the banner
14
+ * @default 'primary'
15
+ */
16
+ color?: BannerColor;
17
+ /**
18
+ * The placement of the banner (top or bottom)
19
+ * @default 'top'
20
+ */
21
+ placement?: BannerPlacement;
22
+ /**
23
+ * The position type of the banner (absolute or fixed)
24
+ * @default 'fixed'
25
+ */
26
+ position?: BannerPosition;
27
+ /**
28
+ * Target element where the banner should be rendered via Teleport
29
+ * Can be a string selector, HTMLElement, component instance, or function
30
+ * @default 'body'
31
+ */
32
+ to?: PopoverBaseProps['to'];
33
+ /**
34
+ * Offset from the placement edge (top or bottom)
35
+ * Can be a number (in pixels) or a string (e.g., '10px', '1rem')
36
+ * @default 0
37
+ */
38
+ offset?: number | string;
39
+ /**
40
+ * Z-index value for the banner
41
+ */
42
+ zIndex?: number | string;
43
+ /**
44
+ * Whether to defer the Teleport mounting
45
+ */
46
+ defer?: boolean;
47
+ /**
48
+ * Whether to force mount the Teleport content
49
+ */
50
+ forceMount?: boolean;
51
+ /**
52
+ * Text direction for the banner
53
+ */
54
+ dir?: 'ltr' | 'rtl' | 'auto';
55
+ /**
56
+ * Whether the banner can be closed by the user
57
+ * @default false
58
+ */
59
+ closeable?: boolean;
60
+ /**
61
+ * Props to pass to the close button (IconButton)
62
+ */
63
+ closeProps?: IconButtonProps;
64
+ /**
65
+ * Whether the banner content should wrap to multiple lines
66
+ * When true, the layout changes to accommodate longer content
67
+ * @default false
68
+ */
69
+ wrapped?: boolean;
70
+ /**
71
+ * Whether to hide the default icon
72
+ * @default false
73
+ */
74
+ noIcon?: boolean;
75
+ /**
76
+ * Title text for the banner (supports HTML)
77
+ */
78
+ title?: string;
79
+ /**
80
+ * Whether to show a link in the banner
81
+ * @default false
82
+ */
83
+ link?: boolean;
84
+ /**
85
+ * Props to pass to the link component
86
+ */
87
+ linkProps?: LinkProps;
88
+ /**
89
+ * Props to pass to the icon component
90
+ */
91
+ iconProps?: IconProps;
92
+ /**
93
+ * Whether to show an action button
94
+ * @default false
95
+ */
96
+ action?: boolean;
97
+ /**
98
+ * Props to pass to the action button
99
+ */
100
+ actionProps?: ButtonProps;
101
+ /**
102
+ * CSS classes to apply to the content container
103
+ */
104
+ contentCls?: ClassValue;
105
+ /**
106
+ * CSS classes to apply to the root banner element
107
+ */
108
+ class?: ClassValue;
109
+ /**
110
+ * CSS classes to apply to the divider element (used in wrapped mode)
111
+ */
112
+ dividerCls?: ClassValue;
113
+ /**
114
+ * CSS classes to apply to the actions container
115
+ */
116
+ actionsCls?: ClassValue;
117
+ /**
118
+ * CSS classes to apply to the body element
119
+ */
120
+ bodyCls?: ClassValue;
121
+ /**
122
+ * CSS classes to apply to the title element
123
+ */
124
+ titleCls?: ClassValue;
125
+ }
126
+ /**
127
+ * Events emitted by the Banner component
128
+ */
129
+ export interface BannerEmits {
130
+ /**
131
+ * Emitted when the banner is closed by the user
132
+ * @param data - The pointer event that triggered the close action
133
+ */
134
+ close: [data: PointerEvent];
135
+ /**
136
+ * Emitted when the action button is clicked
137
+ * @param data - The pointer event that triggered the action
138
+ */
139
+ action: [data: PointerEvent];
140
+ }
141
+ /**
142
+ * Slots available in the Banner component
143
+ */
144
+ export interface BannerSlots {
145
+ /**
146
+ * Default slot for custom content
147
+ */
148
+ default: (params?: object) => never;
149
+ /**
150
+ * Custom icon content
151
+ * Overrides the default icon based on color variant
152
+ */
153
+ icon: (params?: object) => never;
154
+ /**
155
+ * Custom title content
156
+ * Overrides the title prop and supports HTML content
157
+ */
158
+ title: (params?: object) => never;
159
+ /**
160
+ * Custom close button content
161
+ * Overrides the default close button
162
+ */
163
+ close: (params?: object) => never;
164
+ /**
165
+ * Custom action button content
166
+ * Overrides the default action button
167
+ */
168
+ action: (params?: object) => never;
169
+ /**
170
+ * Custom icon for the close button
171
+ */
172
+ closeIcon: (params?: object) => never;
173
+ /**
174
+ * Custom actions container content
175
+ * Used in wrapped mode to customize the entire actions area
176
+ */
177
+ actions: (params?: object) => never;
178
+ /**
179
+ * Custom pre-icon for the action button
180
+ */
181
+ actionPreIcon: (params?: object) => never;
182
+ /**
183
+ * Custom post-icon for the action button
184
+ */
185
+ actionPostIcon: (params?: object) => never;
186
+ /**
187
+ * Custom link content
188
+ * Overrides the default link component
189
+ */
190
+ link: (params?: object) => never;
191
+ /**
192
+ * Custom leading icon for the link
193
+ */
194
+ linkLeadingIcon: (params?: object) => never;
195
+ /**
196
+ * Custom trailing icon for the link
197
+ */
198
+ linkTrailingIcon: (params?: object) => never;
199
+ }
200
+ /**
201
+ * Default props for the Banner component
202
+ */
203
+ export declare const BANNER_DEFAULT_PROPS: {
204
+ readonly color: "primary";
205
+ readonly linkProps: () => {
206
+ txs: "label";
207
+ underline: boolean;
208
+ text: string;
209
+ trailingIcon: string;
210
+ };
211
+ readonly actionProps: () => {
212
+ text: string;
213
+ };
214
+ readonly placement: "top";
215
+ readonly position: "fixed";
216
+ };
217
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<BannerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
218
+ close: (data: PointerEvent) => any;
219
+ action: (data: PointerEvent) => any;
220
+ }, string, import('vue').PublicProps, Readonly<BannerProps> & Readonly<{
221
+ onClose?: ((data: PointerEvent) => any) | undefined;
222
+ onAction?: ((data: PointerEvent) => any) | undefined;
223
+ }>, {
224
+ color: "primary" | "primary-subtle" | "neutral" | "danger" | "success" | "warning" | "info" | "success-subtle" | "danger-subtle" | "warning-subtle" | "info-subtle" | "neutral-subtle";
225
+ placement: "top" | "bottom";
226
+ position: "fixed" | "absolute";
227
+ linkProps: LinkProps;
228
+ actionProps: Partial<Omit<import('../..').BaseButtonProps, "flipOnDir" | "icon" | "variant" | "action" | "active" | "badgeText" | "badgeIcon" | "badgeIconFlipOnDir">>;
229
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, Readonly<BannerSlots> & BannerSlots>;
230
+ export default _default;
231
+ type __VLS_WithTemplateSlots<T, S> = T & {
232
+ new (): {
233
+ $slots: S;
234
+ };
235
+ };
@@ -0,0 +1,9 @@
1
+ import { default as Banner, BannerProps, BannerEmits, BannerSlots, BANNER_DEFAULT_PROPS } from './Banner';
2
+ import { DefineComponent } from '@pantograph/utils-vue';
3
+ export { Banner, type BannerProps, type BannerEmits, type BannerSlots, BANNER_DEFAULT_PROPS, };
4
+ declare module 'vue' {
5
+ interface GlobalComponents {
6
+ Banner: DefineComponent<BannerProps, BannerSlots, BannerEmits>;
7
+ }
8
+ }
9
+ export * from './Banner.model';
@@ -153,8 +153,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<Ch
153
153
  color: "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "teal" | "cyan" | "sky" | "blue" | "ocean" | "violet" | "amethyst" | "fuchsia" | "pink" | "mallard" | "primary" | "gray" | "default";
154
154
  closeable: boolean;
155
155
  unExtendParent: boolean;
156
- selected: boolean;
157
156
  closeIcon: string;
157
+ selected: boolean;
158
158
  overlayActions: boolean;
159
159
  closeTrigger: "click" | "pointer";
160
160
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, Readonly<ChipSlots> & ChipSlots>;
@@ -1,10 +1,10 @@
1
- import { InputProps, InputSlots } from '../Input';
1
+ import { InputProps } from '../Input';
2
2
  export interface ComboboxInputProps extends InputProps {
3
3
  }
4
4
  declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<ComboboxInputProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ComboboxInputProps> & Readonly<{}>, {
5
5
  disabled: boolean;
6
6
  bordered: boolean;
7
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, Readonly<InputSlots> & InputSlots>;
7
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, Readonly<import('../Input').InputExtendsSlots> & import('../Input').InputExtendsSlots>;
8
8
  export default _default;
9
9
  type __VLS_WithTemplateSlots<T, S> = T & {
10
10
  new (): {
@@ -1,10 +1,19 @@
1
1
  import { HasRootInputEmits } from '@pantograph/utils-vue';
2
2
  import { BaseInputEmits, BaseInputProps, BaseInputSlots } from '../Base/BaseInput/BaseInput';
3
3
  /**
4
- * Props for the Input component
5
- * Extends BaseInputProps but omits hasValue since it's computed internally
4
+ * Props inherited from `BaseInput` (the "extended" part).
5
+ *
6
+ * Important:
7
+ * - When a component wants to *reuse and extend* another component's types in Vue
8
+ * macros (`defineProps<T>()`, `defineEmits<T>()`, `defineSlots<T>()`), exporting
9
+ * a split "extended" + "not-extended" pair (as `type`) is required so consumer
10
+ * components can safely compose them.
11
+ */
12
+ export type InputExtendsProps = Omit<BaseInputProps, 'hasValue'>;
13
+ /**
14
+ * Props defined by `Input` itself (the "not-extended" part).
6
15
  */
7
- export interface InputProps extends Omit<BaseInputProps, 'hasValue'> {
16
+ export type InputNotExtendsProps = {
8
17
  /**
9
18
  * The ID for the input element
10
19
  */
@@ -41,18 +50,35 @@ export interface InputProps extends Omit<BaseInputProps, 'hasValue'> {
41
50
  * The default value for the input
42
51
  */
43
52
  defaultValue?: string | null;
44
- }
53
+ };
54
+ /**
55
+ * Props for the Input component
56
+ * Extends BaseInputProps but omits hasValue since it's computed internally.
57
+ */
58
+ export type InputProps = InputExtendsProps & InputNotExtendsProps;
59
+ /**
60
+ * Slots inherited from `BaseInput` (the "extended" part).
61
+ */
62
+ export type InputExtendsSlots = Omit<BaseInputSlots, 'default' | 'extra' | 'value'>;
63
+ /**
64
+ * Slots defined by `Input` itself (the "not-extended" part).
65
+ *
66
+ * Kept as `{}` for consistency with the split-type pattern.
67
+ */
68
+ export type InputNotExtendsSlots = {};
45
69
  /**
46
70
  * Slots for the Input component
47
71
  * Extends BaseInputSlots but omits default, extra, and value slots
48
72
  */
49
- export interface InputSlots extends Omit<BaseInputSlots, 'default' | 'extra' | 'value'> {
50
- }
73
+ export type InputSlots = InputExtendsSlots & InputNotExtendsSlots;
51
74
  /**
52
- * Emits for the Input component
53
- * Extends HasRootInputEmits and BaseInputEmits
75
+ * Emits inherited from `HasRootInputEmits` and `BaseInputEmits` (the "extended" part).
54
76
  */
55
- export interface InputEmits extends HasRootInputEmits, BaseInputEmits {
77
+ export type InputExtendsEmits = HasRootInputEmits & BaseInputEmits;
78
+ /**
79
+ * Emits defined by `Input` itself (the "not-extended" part).
80
+ */
81
+ export type InputNotExtendsEmits = {
56
82
  /**
57
83
  * Emitted when the model value is updated
58
84
  */
@@ -61,7 +87,12 @@ export interface InputEmits extends HasRootInputEmits, BaseInputEmits {
61
87
  * Emitted when the input value changes
62
88
  */
63
89
  change: [value?: string | null];
64
- }
90
+ };
91
+ /**
92
+ * Emits for the Input component
93
+ * Extends HasRootInputEmits and BaseInputEmits.
94
+ */
95
+ export type InputEmits = InputExtendsEmits & InputNotExtendsEmits;
65
96
  /**
66
97
  * Default props for the Input component
67
98
  */
@@ -76,7 +107,9 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<In
76
107
  focus: (option?: FocusOptions | undefined) => void;
77
108
  blur: () => void | undefined;
78
109
  select: () => void | undefined;
79
- setSelectionRange: (start: number, end: number, direction?: "none" | "forward" | "backward" | undefined) => void | undefined;
110
+ setSelectionRange: (start: number, end: number, direction?: "none" | "forward" | "backward" | undefined) => void | undefined; /**
111
+ * InputGroup context
112
+ */
80
113
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
81
114
  blur: (event: InputEvent) => any;
82
115
  change: (value?: string | null | undefined) => any;
@@ -98,7 +131,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<In
98
131
  bordered: boolean;
99
132
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
100
133
  inputRef: HTMLInputElement;
101
- }, HTMLDivElement>, Readonly<InputSlots> & InputSlots>;
134
+ }, HTMLDivElement>, Readonly<InputExtendsSlots> & InputExtendsSlots>;
102
135
  export default _default;
103
136
  type __VLS_WithTemplateSlots<T, S> = T & {
104
137
  new (): {
@@ -1,6 +1,7 @@
1
- import { default as Input, InputProps, InputEmits, InputSlots, INPUT_DEFAULT_PROPS } from './Input';
1
+ import { default as Input, InputProps, InputEmits, InputSlots } from './Input';
2
2
  import { DefineComponent } from '@pantograph/utils-vue';
3
- export { Input, type InputProps, type InputEmits, type InputSlots, INPUT_DEFAULT_PROPS };
3
+ export { Input };
4
+ export * from './Input';
4
5
  declare module 'vue' {
5
6
  interface GlobalComponents {
6
7
  Input: DefineComponent<InputProps, InputSlots, InputEmits>;
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from './components/AlertDialog';
6
6
  export * from './components/Avatar';
7
7
  export * from './components/AvatarGroup';
8
8
  export * from './components/Badge';
9
+ export * from './components/Banner';
9
10
  export * from './components/Blanket';
10
11
  export * from './components/Breadcrumb';
11
12
  export * from './components/Button';