@makolabs/ripple 1.2.3 → 1.2.8

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 (114) hide show
  1. package/README.md +77 -0
  2. package/dist/adapters/ai/OpenAIAdapter.js +16 -11
  3. package/dist/adapters/ai/types.d.ts +3 -3
  4. package/dist/adapters/storage/BaseAdapter.d.ts +1 -1
  5. package/dist/adapters/storage/BaseAdapter.js +1 -1
  6. package/dist/adapters/storage/S3Adapter.js +2 -2
  7. package/dist/ai/AIChatInterface.svelte +32 -34
  8. package/dist/ai/AIChatInterface.svelte.d.ts +0 -1
  9. package/dist/ai/AIChatInterfaceTestWrapper.svelte +26 -0
  10. package/dist/ai/AIChatInterfaceTestWrapper.svelte.d.ts +17 -0
  11. package/dist/ai/ChatInput.svelte +7 -15
  12. package/dist/ai/ChatInput.svelte.d.ts +0 -2
  13. package/dist/ai/CodeRenderer.svelte +25 -12
  14. package/dist/ai/ComposeDropdown.svelte +17 -14
  15. package/dist/ai/MermaidRenderer.svelte +21 -17
  16. package/dist/ai/MermaidRenderer.svelte.d.ts +0 -1
  17. package/dist/ai/MessageBox.svelte +10 -7
  18. package/dist/ai/ThinkingDisplay.svelte +67 -43
  19. package/dist/ai/ai-chat-interface.d.ts +22 -21
  20. package/dist/ai/ai-chat-interface.js +8 -7
  21. package/dist/ai/content-detector.js +2 -2
  22. package/dist/button/ButtonTestWrapper.svelte +10 -0
  23. package/dist/button/ButtonTestWrapper.svelte.d.ts +7 -0
  24. package/dist/charts/Chart.svelte +6 -1
  25. package/dist/config/ai.js +1 -0
  26. package/dist/drawer/DrawerTestWrapper.svelte +19 -0
  27. package/dist/drawer/DrawerTestWrapper.svelte.d.ts +9 -0
  28. package/dist/drawer/drawer.d.ts +19 -18
  29. package/dist/drawer/drawer.js +7 -6
  30. package/dist/elements/accordion/Accordion.svelte +1 -1
  31. package/dist/elements/accordion/Accordion.svelte.d.ts +1 -1
  32. package/dist/elements/accordion/AccordionTestWrapper.svelte +21 -0
  33. package/dist/elements/accordion/AccordionTestWrapper.svelte.d.ts +10 -0
  34. package/dist/elements/badge/Badge.svelte +5 -4
  35. package/dist/elements/badge/BadgeTestWrapper.svelte +14 -0
  36. package/dist/elements/badge/BadgeTestWrapper.svelte.d.ts +9 -0
  37. package/dist/elements/badge/badge.d.ts +40 -39
  38. package/dist/elements/badge/badge.js +14 -13
  39. package/dist/elements/dropdown/Dropdown.svelte +0 -1
  40. package/dist/elements/pagination/Pagination.svelte +20 -26
  41. package/dist/elements/progress/Progress.svelte +3 -3
  42. package/dist/elements/timeline/Timeline.svelte +1 -1
  43. package/dist/file-browser/FileBrowser.svelte +7 -10
  44. package/dist/filters/CompactFilters.svelte +3 -3
  45. package/dist/forms/Checkbox.svelte +0 -1
  46. package/dist/forms/CheckboxTestWrapper.svelte +8 -0
  47. package/dist/forms/CheckboxTestWrapper.svelte.d.ts +4 -0
  48. package/dist/forms/DateRange.svelte +186 -198
  49. package/dist/forms/Form.svelte +1 -0
  50. package/dist/forms/Input.svelte +14 -5
  51. package/dist/forms/InputTestWrapper.svelte +8 -0
  52. package/dist/forms/InputTestWrapper.svelte.d.ts +4 -0
  53. package/dist/forms/NumberInput.svelte +2 -2
  54. package/dist/forms/RadioInputs.svelte +1 -1
  55. package/dist/forms/RadioPill.svelte +1 -1
  56. package/dist/forms/Slider.svelte +2 -2
  57. package/dist/forms/Tags.svelte +3 -3
  58. package/dist/forms/ToggleTestWrapper.svelte +8 -0
  59. package/dist/forms/ToggleTestWrapper.svelte.d.ts +7 -0
  60. package/dist/forms/slider.js +1 -1
  61. package/dist/header/PageHeader.svelte +2 -1
  62. package/dist/header/breadcrumbs.d.ts +47 -33
  63. package/dist/header/breadcrumbs.js +12 -11
  64. package/dist/index.d.ts +3 -2
  65. package/dist/index.js +2 -0
  66. package/dist/layout/activity-list/ActivityList.svelte +9 -11
  67. package/dist/layout/card/CardTestWrapper.svelte +15 -0
  68. package/dist/layout/card/CardTestWrapper.svelte.d.ts +7 -0
  69. package/dist/layout/card/RankedCard.svelte +2 -3
  70. package/dist/layout/navbar/navbar.d.ts +19 -18
  71. package/dist/layout/navbar/navbar.js +7 -6
  72. package/dist/layout/sidebar/NavGroup.svelte +1 -0
  73. package/dist/layout/table/Cells.svelte +5 -5
  74. package/dist/layout/table/Table.svelte +8 -8
  75. package/dist/layout/table/table.d.ts +28 -24
  76. package/dist/layout/table/table.js +14 -13
  77. package/dist/modal/Modal.svelte +1 -1
  78. package/dist/modal/ModalTestWrapper.svelte +20 -0
  79. package/dist/modal/ModalTestWrapper.svelte.d.ts +8 -0
  80. package/dist/modal/modal.d.ts +1 -20
  81. package/dist/pipeline/Pipeline.svelte +29 -17
  82. package/dist/user-management/README.md +417 -0
  83. package/dist/user-management/UserManagement.svelte +245 -0
  84. package/dist/user-management/UserManagement.svelte.d.ts +4 -0
  85. package/dist/user-management/UserManagementTestWrapper.svelte +33 -0
  86. package/dist/user-management/UserManagementTestWrapper.svelte.d.ts +13 -0
  87. package/dist/user-management/UserModal.svelte +285 -0
  88. package/dist/user-management/UserModal.svelte.d.ts +4 -0
  89. package/dist/user-management/UserModalTestWrapper.svelte +22 -0
  90. package/dist/user-management/UserModalTestWrapper.svelte.d.ts +7 -0
  91. package/dist/user-management/UserTable.svelte +219 -0
  92. package/dist/user-management/UserTable.svelte.d.ts +4 -0
  93. package/dist/user-management/UserTableTestWrapper.svelte +41 -0
  94. package/dist/user-management/UserTableTestWrapper.svelte.d.ts +7 -0
  95. package/dist/user-management/UserViewModal.svelte +276 -0
  96. package/dist/user-management/UserViewModal.svelte.d.ts +4 -0
  97. package/dist/user-management/UserViewModalTestWrapper.svelte +22 -0
  98. package/dist/user-management/UserViewModalTestWrapper.svelte.d.ts +7 -0
  99. package/dist/user-management/adapters/UserManagement.remote.d.ts +68 -0
  100. package/dist/user-management/adapters/UserManagement.remote.js +487 -0
  101. package/dist/user-management/adapters/index.d.ts +10 -0
  102. package/dist/user-management/adapters/index.js +12 -0
  103. package/dist/user-management/adapters/mockUserManagement.d.ts +70 -0
  104. package/dist/user-management/adapters/mockUserManagement.js +187 -0
  105. package/dist/user-management/adapters/types.d.ts +24 -0
  106. package/dist/user-management/adapters/types.js +7 -0
  107. package/dist/user-management/index.d.ts +12 -0
  108. package/dist/user-management/index.js +11 -0
  109. package/dist/user-management/user-management.d.ts +126 -0
  110. package/dist/user-management/user-management.js +42 -0
  111. package/package.json +4 -1
  112. package/dist/types/markdown.d.ts +0 -14
  113. package/dist/types/variants.d.ts +0 -1
  114. package/dist/types/variants.js +0 -1
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Mock User Management Functions
3
+ *
4
+ * Mock implementation of user management functions for testing and development.
5
+ * These are regular async functions that match the UserManagementAdapter interface.
6
+ * They store data in memory.
7
+ *
8
+ * Note: This file uses .remote.ts extension for naming consistency, but these are
9
+ * NOT actual SvelteKit remote functions. They are regular async functions that
10
+ * work in both test and library contexts.
11
+ *
12
+ * For actual remote functions in your app, see UserManagement.remote.ts template.
13
+ *
14
+ * To set initial data, use the resetState function:
15
+ * ```ts
16
+ * import { resetState } from './mockUserManagement.js';
17
+ * await resetState({ initialUsers: [...], simulateDelay: false });
18
+ * ```
19
+ */
20
+ // Internal module-level state
21
+ let mockUsers = [];
22
+ let simulateDelay = false;
23
+ let delayMs = 300;
24
+ async function delay() {
25
+ if (simulateDelay) {
26
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
27
+ }
28
+ }
29
+ /**
30
+ * Reset mock adapter state
31
+ */
32
+ export async function resetState(options = {}) {
33
+ mockUsers = options.initialUsers || [];
34
+ simulateDelay = options.simulateDelay ?? false;
35
+ delayMs = options.delayMs ?? 300;
36
+ }
37
+ /**
38
+ * Get users with pagination and sorting
39
+ * Matches UserManagementAdapter.getUsers signature
40
+ */
41
+ export async function getUsers(options) {
42
+ await delay();
43
+ let filteredUsers = [...mockUsers];
44
+ // Apply search query if provided
45
+ if (options.query) {
46
+ const query = options.query.toLowerCase();
47
+ filteredUsers = filteredUsers.filter((user) => user.first_name?.toLowerCase().includes(query) ||
48
+ user.last_name?.toLowerCase().includes(query) ||
49
+ user.username?.toLowerCase().includes(query) ||
50
+ user.email_addresses?.[0]?.email_address?.toLowerCase().includes(query));
51
+ }
52
+ // Apply sorting
53
+ if (options.sortBy) {
54
+ filteredUsers.sort((a, b) => {
55
+ let aValue = '';
56
+ let bValue = '';
57
+ switch (options.sortBy) {
58
+ case 'first_name':
59
+ aValue = a.first_name || '';
60
+ bValue = b.first_name || '';
61
+ break;
62
+ case 'last_name':
63
+ aValue = a.last_name || '';
64
+ bValue = b.last_name || '';
65
+ break;
66
+ case 'email_address':
67
+ aValue = a.email_addresses?.[0]?.email_address || '';
68
+ bValue = b.email_addresses?.[0]?.email_address || '';
69
+ break;
70
+ case 'created_at':
71
+ aValue = a.created_at || 0;
72
+ bValue = b.created_at || 0;
73
+ break;
74
+ case 'last_sign_in_at':
75
+ aValue = a.last_sign_in_at || 0;
76
+ bValue = b.last_sign_in_at || 0;
77
+ break;
78
+ default:
79
+ return 0;
80
+ }
81
+ if (typeof aValue === 'string' && typeof bValue === 'string') {
82
+ return options.sortOrder === 'desc'
83
+ ? bValue.localeCompare(aValue)
84
+ : aValue.localeCompare(bValue);
85
+ }
86
+ else if (typeof aValue === 'number' && typeof bValue === 'number') {
87
+ return options.sortOrder === 'desc' ? bValue - aValue : aValue - bValue;
88
+ }
89
+ return 0;
90
+ });
91
+ }
92
+ // Apply pagination
93
+ const start = (options.page - 1) * options.pageSize;
94
+ const end = start + options.pageSize;
95
+ const paginatedUsers = filteredUsers.slice(start, end);
96
+ return {
97
+ users: paginatedUsers,
98
+ totalUsers: filteredUsers.length
99
+ };
100
+ }
101
+ /**
102
+ * Create a new user
103
+ * Matches UserManagementAdapter.createUser signature
104
+ */
105
+ export async function createUser(userData) {
106
+ await delay();
107
+ const newUser = {
108
+ id: `user_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
109
+ first_name: userData.first_name || '',
110
+ last_name: userData.last_name || '',
111
+ username: userData.username,
112
+ email_addresses: userData.email_addresses || [{ email_address: '' }],
113
+ phone_numbers: userData.phone_numbers || [],
114
+ role: userData.role,
115
+ permissions: userData.permissions || [],
116
+ created_at: Date.now(),
117
+ ...userData
118
+ };
119
+ mockUsers.push(newUser);
120
+ return newUser;
121
+ }
122
+ /**
123
+ * Update an existing user
124
+ * Matches UserManagementAdapter.updateUser signature
125
+ */
126
+ export async function updateUser(options) {
127
+ await delay();
128
+ const { userId, userData } = options;
129
+ const userIndex = mockUsers.findIndex((u) => u.id === userId);
130
+ if (userIndex === -1) {
131
+ throw new Error(`User with ID ${userId} not found`);
132
+ }
133
+ const updatedUser = {
134
+ ...mockUsers[userIndex],
135
+ ...userData,
136
+ id: userId // Ensure ID doesn't change
137
+ };
138
+ mockUsers[userIndex] = updatedUser;
139
+ return updatedUser;
140
+ }
141
+ /**
142
+ * Delete a single user
143
+ * Matches UserManagementAdapter.deleteUser signature
144
+ */
145
+ export async function deleteUser(userId) {
146
+ await delay();
147
+ const userIndex = mockUsers.findIndex((u) => u.id === userId);
148
+ if (userIndex === -1) {
149
+ throw new Error(`User with ID ${userId} not found`);
150
+ }
151
+ mockUsers.splice(userIndex, 1);
152
+ }
153
+ /**
154
+ * Delete multiple users
155
+ * Matches UserManagementAdapter.deleteUsers signature
156
+ */
157
+ export async function deleteUsers(userIds) {
158
+ await delay();
159
+ userIds.forEach((userId) => {
160
+ const userIndex = mockUsers.findIndex((u) => u.id === userId);
161
+ if (userIndex !== -1) {
162
+ mockUsers.splice(userIndex, 1);
163
+ }
164
+ });
165
+ }
166
+ /**
167
+ * Get permissions for a specific user
168
+ * Matches UserManagementAdapter.getUserPermissions signature
169
+ */
170
+ export async function getUserPermissions(userId) {
171
+ await delay();
172
+ const user = mockUsers.find((u) => u.id === userId);
173
+ return user?.permissions || [];
174
+ }
175
+ /**
176
+ * Update permissions for a specific user
177
+ * Matches UserManagementAdapter.updateUserPermissions signature
178
+ */
179
+ export async function updateUserPermissions(options) {
180
+ await delay();
181
+ const { userId, permissions } = options;
182
+ const user = mockUsers.find((u) => u.id === userId);
183
+ if (!user) {
184
+ throw new Error(`User with ID ${userId} not found`);
185
+ }
186
+ user.permissions = permissions;
187
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * User Management Adapter Types
3
+ *
4
+ * Shared types for user management adapters.
5
+ * These types are used by both remote function modules and the component.
6
+ */
7
+ import type { User } from '../user-management.js';
8
+ /**
9
+ * Options for fetching users
10
+ */
11
+ export interface GetUsersOptions {
12
+ page: number;
13
+ pageSize: number;
14
+ sortBy?: string;
15
+ sortOrder?: 'asc' | 'desc';
16
+ query?: string;
17
+ }
18
+ /**
19
+ * Result of fetching users
20
+ */
21
+ export interface GetUsersResult {
22
+ users: User[];
23
+ totalUsers: number;
24
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * User Management Adapter Types
3
+ *
4
+ * Shared types for user management adapters.
5
+ * These types are used by both remote function modules and the component.
6
+ */
7
+ export {};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * User Management Module
3
+ * Components and utilities for managing users
4
+ */
5
+ export { default as UserManagement } from './UserManagement.svelte';
6
+ export { default as UserTable } from './UserTable.svelte';
7
+ export { default as UserModal } from './UserModal.svelte';
8
+ export { default as UserViewModal } from './UserViewModal.svelte';
9
+ export type { User, UserEmail, UserPhone, Permission, Role, UserTableProps, UserModalProps, UserViewModalProps, UserManagementProps, FormErrors } from './user-management.js';
10
+ export type { GetUsersOptions, GetUsersResult } from './adapters/index.js';
11
+ export type { UserManagementAdapter } from './user-management.js';
12
+ export { createUser, getUserDisplayName, getUserInitials } from './user-management.js';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * User Management Module
3
+ * Components and utilities for managing users
4
+ */
5
+ // Components
6
+ export { default as UserManagement } from './UserManagement.svelte';
7
+ export { default as UserTable } from './UserTable.svelte';
8
+ export { default as UserModal } from './UserModal.svelte';
9
+ export { default as UserViewModal } from './UserViewModal.svelte';
10
+ // Utilities
11
+ export { createUser, getUserDisplayName, getUserInitials } from './user-management.js';
@@ -0,0 +1,126 @@
1
+ /**
2
+ * User Management Types
3
+ * Type definitions for user management components
4
+ */
5
+ import type { ClassValue } from 'tailwind-variants';
6
+ export interface UserEmail {
7
+ email_address: string;
8
+ verified?: boolean;
9
+ }
10
+ export interface UserPhone {
11
+ phone_number: string;
12
+ verified?: boolean;
13
+ }
14
+ export interface User {
15
+ id: string;
16
+ first_name?: string;
17
+ last_name?: string;
18
+ username?: string;
19
+ email_addresses?: UserEmail[];
20
+ phone_numbers?: UserPhone[];
21
+ image_url?: string;
22
+ created_at?: number;
23
+ last_sign_in_at?: number;
24
+ private_metadata?: Record<string, unknown>;
25
+ public_metadata?: Record<string, unknown>;
26
+ permissions?: string[];
27
+ role?: string;
28
+ }
29
+ export interface Permission {
30
+ id: string;
31
+ name: string;
32
+ description?: string;
33
+ category?: string;
34
+ }
35
+ export interface Role {
36
+ value: string;
37
+ label: string;
38
+ description?: string;
39
+ permissions: string[];
40
+ }
41
+ export interface UserTableProps {
42
+ users: User[];
43
+ loading?: boolean;
44
+ currentPage?: number;
45
+ pageSize?: number;
46
+ totalUsers?: number;
47
+ onPageChange: (page: number) => void;
48
+ onPageSizeChange: (size: number) => void;
49
+ onSort?: (state: {
50
+ column: string | null;
51
+ direction: 'asc' | 'desc' | null;
52
+ }) => void;
53
+ onView: (user: User) => void;
54
+ onEdit: (user: User) => void;
55
+ onDelete: (userId: string) => void;
56
+ class?: ClassValue;
57
+ }
58
+ export interface UserModalProps {
59
+ open: boolean;
60
+ user: User | null;
61
+ roles?: Role[];
62
+ onSave: (user: User, mode: 'create' | 'edit') => Promise<void>;
63
+ onClose: () => void;
64
+ class?: ClassValue;
65
+ }
66
+ export interface UserViewModalProps {
67
+ open: boolean;
68
+ user: User | null;
69
+ permissions?: Permission[];
70
+ onEdit?: (user: User) => void;
71
+ onClose: () => void;
72
+ class?: ClassValue;
73
+ }
74
+ import type { GetUsersOptions, GetUsersResult } from './adapters/types.js';
75
+ /**
76
+ * User Management Adapter Interface
77
+ *
78
+ * Defines the contract for user management adapters.
79
+ * Adapters can be remote function modules (returning RemoteQuery/RemoteCommand)
80
+ * or regular async function modules (returning Promise).
81
+ *
82
+ * Uses PromiseLike to accept both Promise and RemoteQuery/RemoteCommand types.
83
+ */
84
+ export interface UserManagementAdapter {
85
+ getUsers: (options: GetUsersOptions) => PromiseLike<GetUsersResult>;
86
+ createUser: (userData: Partial<User>) => PromiseLike<User>;
87
+ updateUser: (options: {
88
+ userId: string;
89
+ userData: Partial<User>;
90
+ }) => PromiseLike<User>;
91
+ deleteUser: (userId: string) => PromiseLike<void>;
92
+ deleteUsers: (userIds: string[]) => PromiseLike<void>;
93
+ getUserPermissions: (userId: string) => PromiseLike<string[]>;
94
+ updateUserPermissions: (options: {
95
+ userId: string;
96
+ permissions: string[];
97
+ }) => PromiseLike<void>;
98
+ }
99
+ export interface UserManagementProps {
100
+ /**
101
+ * Adapter module containing remote functions or async functions
102
+ * Should be imported from a .remote.ts file
103
+ *
104
+ * Example:
105
+ * ```ts
106
+ * import * as adapter from './adapter.remote';
107
+ * <UserManagement adapter={adapter} roles={roles} />
108
+ * ```
109
+ */
110
+ adapter: UserManagementAdapter;
111
+ /**
112
+ * Available roles for user assignment
113
+ */
114
+ roles?: Role[];
115
+ /**
116
+ * Available permissions for display (optional)
117
+ */
118
+ permissions?: Permission[];
119
+ class?: ClassValue;
120
+ }
121
+ export interface FormErrors {
122
+ [key: string]: string;
123
+ }
124
+ export declare function createUser(partial?: Partial<User>): User;
125
+ export declare function getUserDisplayName(user: User | null): string;
126
+ export declare function getUserInitials(user: User | null): string;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * User Management Types
3
+ * Type definitions for user management components
4
+ */
5
+ // Export convenience function to create a user object
6
+ export function createUser(partial = {}) {
7
+ return {
8
+ id: '',
9
+ first_name: '',
10
+ last_name: '',
11
+ username: '',
12
+ email_addresses: [],
13
+ phone_numbers: [],
14
+ permissions: [],
15
+ ...partial
16
+ };
17
+ }
18
+ // Export convenience function to format user display name
19
+ export function getUserDisplayName(user) {
20
+ if (!user)
21
+ return 'Unknown User';
22
+ if (user.first_name || user.last_name) {
23
+ return `${user.first_name || ''} ${user.last_name || ''}`.trim();
24
+ }
25
+ if (user.username)
26
+ return user.username;
27
+ if (user.email_addresses?.[0]?.email_address) {
28
+ return user.email_addresses[0].email_address;
29
+ }
30
+ return user.id || 'Unknown User';
31
+ }
32
+ // Export convenience function to get user initials
33
+ export function getUserInitials(user) {
34
+ if (!user)
35
+ return '?';
36
+ if (user.first_name)
37
+ return user.first_name[0].toUpperCase();
38
+ if (user.email_addresses?.[0]?.email_address) {
39
+ return user.email_addresses[0].email_address[0].toUpperCase();
40
+ }
41
+ return '?';
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makolabs/ripple",
3
- "version": "1.2.3",
3
+ "version": "1.2.8",
4
4
  "description": "Simple Svelte 5 powered component library ✨",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -71,7 +71,9 @@
71
71
  "eslint-plugin-storybook": "^9.0.18",
72
72
  "eslint-plugin-svelte": "^3.0.0",
73
73
  "globals": "^16.0.0",
74
+ "husky": "^9.1.7",
74
75
  "jsdom": "^26.0.0",
76
+ "lint-staged": "^16.2.6",
75
77
  "prettier": "^3.4.2",
76
78
  "prettier-plugin-svelte": "^3.3.3",
77
79
  "prettier-plugin-tailwindcss": "^0.6.11",
@@ -115,6 +117,7 @@
115
117
  "dependencies": {
116
118
  "@friendofsvelte/mermaid": "^0.0.4",
117
119
  "@friendofsvelte/state": "^0.0.6-ts",
120
+ "@makolabs/ripple": "^1.2.4",
118
121
  "@sveltejs/adapter-static": "^3.0.9",
119
122
  "compromise": "^14.14.4",
120
123
  "dayjs": "^1.11.13",
@@ -1,14 +0,0 @@
1
- declare module 'markdown' {
2
- export interface MarkdownOptions {
3
- dialect?: string;
4
- }
5
-
6
- export interface MarkdownAPI {
7
- toHTML(markdown: string, options?: MarkdownOptions): string;
8
- parse(markdown: string): any;
9
- renderJsonML(jsonml: any): string;
10
- toHTMLTree(tree: any): any;
11
- }
12
-
13
- export const markdown: MarkdownAPI;
14
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- "use strict";