@iress-oss/ids-mcp-server 0.0.1 → 5.14.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 (122) hide show
  1. package/LICENSE.txt +201 -0
  2. package/README.md +29 -159
  3. package/dist/componentHandlers.js +241 -0
  4. package/dist/componentHandlers.test.js +380 -0
  5. package/{build → dist}/config.js +5 -5
  6. package/dist/index.js +53 -0
  7. package/{build → dist}/iressHandlers.js +52 -46
  8. package/dist/iressHandlers.test.js +316 -0
  9. package/{build → dist}/resourceHandlers.js +23 -22
  10. package/dist/resourceHandlers.test.js +352 -0
  11. package/{build → dist}/searchHandlers.js +107 -92
  12. package/dist/searchHandlers.test.js +524 -0
  13. package/{build → dist}/toolHandler.js +13 -13
  14. package/dist/toolHandler.test.js +369 -0
  15. package/dist/tools.js +165 -0
  16. package/{build → dist}/utils.js +11 -15
  17. package/dist/utils.test.js +286 -0
  18. package/{docs/ids → generated/docs}/components-autocomplete-docs.md +3 -3
  19. package/{docs/ids → generated/docs}/components-autocomplete-recipes-docs.md +17 -51
  20. package/{docs/ids → generated/docs}/components-card-recipes-docs.md +1 -1
  21. package/{docs/ids → generated/docs}/components-checkbox-docs.md +6 -19
  22. package/{docs/ids → generated/docs}/components-checkboxgroup-docs.md +18 -18
  23. package/{docs/ids → generated/docs}/components-checkboxgroup-recipes-docs.md +9 -9
  24. package/{docs/ids → generated/docs}/components-col-docs.md +1 -1
  25. package/{docs/ids → generated/docs}/components-combobox-docs.md +4 -4
  26. package/{docs/ids → generated/docs}/components-container-docs.md +8 -42
  27. package/{docs/ids → generated/docs}/components-filter-docs.md +14 -67
  28. package/{docs/ids → generated/docs}/components-form-docs.md +341 -335
  29. package/{docs/ids → generated/docs}/components-form-recipes-docs.md +198 -1
  30. package/{docs/ids → generated/docs}/components-hide-docs.md +16 -70
  31. package/{docs/ids → generated/docs}/components-icon-docs.md +4 -4
  32. package/{docs/ids → generated/docs}/components-input-recipes-docs.md +2 -2
  33. package/{docs/ids → generated/docs}/components-inputcurrency-recipes-docs.md +6 -40
  34. package/{docs/ids → generated/docs}/components-modal-docs.md +3 -113
  35. package/generated/docs/components-popover-docs.md +464 -0
  36. package/{docs/ids → generated/docs}/components-radiogroup-docs.md +21 -21
  37. package/{docs/ids → generated/docs}/components-richselect-docs.md +149 -111
  38. package/{docs/ids → generated/docs}/components-row-docs.md +4 -4
  39. package/{docs/ids → generated/docs}/components-skeleton-docs.md +3 -3
  40. package/{docs/ids → generated/docs}/components-skeleton-recipes-docs.md +1 -1
  41. package/{docs/ids → generated/docs}/components-skiplink-docs.md +1 -1
  42. package/{docs/ids → generated/docs}/components-slideout-docs.md +3 -113
  43. package/{docs/ids → generated/docs}/components-table-ag-grid-docs.md +109 -137
  44. package/{docs/ids → generated/docs}/components-table-docs.md +92 -597
  45. package/{docs/ids → generated/docs}/components-tabset-docs.md +2 -2
  46. package/{docs/ids → generated/docs}/components-tag-docs.md +1 -1
  47. package/{docs/ids → generated/docs}/components-toaster-docs.md +5 -5
  48. package/{docs/ids → generated/docs}/extensions-editor-docs.md +4 -4
  49. package/generated/docs/foundations-accessibility-docs.md +62 -0
  50. package/{docs/ids → generated/docs}/foundations-colours-docs.md +1 -1
  51. package/generated/docs/foundations-consistency-docs.md +52 -0
  52. package/generated/docs/foundations-content-docs.md +23 -0
  53. package/generated/docs/foundations-introduction-docs.md +17 -0
  54. package/generated/docs/foundations-principles-docs.md +70 -0
  55. package/{docs/ids → generated/docs}/foundations-typography-docs.md +7 -2
  56. package/generated/docs/foundations-user-experience-docs.md +63 -0
  57. package/generated/docs/foundations-visual-design-docs.md +46 -0
  58. package/{docs/ids → generated/docs}/get-started-develop-docs.md +3 -3
  59. package/generated/docs/guidelines.md +812 -0
  60. package/{docs/ids → generated/docs}/introduction-docs.md +4 -4
  61. package/{docs/ids → generated/docs}/patterns-loading-docs.md +332 -2
  62. package/generated/docs/resources-migration-guides-from-v4-to-v5-docs.md +437 -0
  63. package/generated/docs/themes-available-themes-docs.md +66 -0
  64. package/generated/docs/themes-tokens-docs.md +1200 -0
  65. package/generated/docs/versions-docs.md +17 -0
  66. package/package.json +42 -14
  67. package/LICENSE +0 -193
  68. package/build/componentHandlers.js +0 -205
  69. package/build/index.js +0 -51
  70. package/build/tools.js +0 -165
  71. package/docs/api-reference.md +0 -0
  72. package/docs/best-practices.md +0 -0
  73. package/docs/configuration.md +0 -0
  74. package/docs/examples.md +0 -0
  75. package/docs/guidelines.md +0 -269
  76. package/docs/ids/components-popover-docs.md +0 -4
  77. package/docs/ids/resources-migration-guides-from-v4-to-v5-docs.md +0 -639
  78. package/docs/ids/themes-available-themes-docs.md +0 -74
  79. package/docs/ids/themes-tokens-docs.md +0 -4580
  80. package/docs/ids/versions-docs.md +0 -27
  81. package/docs/tutorials/basic-integration.md +0 -0
  82. /package/{build → dist}/types.js +0 -0
  83. /package/{docs/ids → generated/docs}/components-alert-docs.md +0 -0
  84. /package/{docs/ids → generated/docs}/components-badge-docs.md +0 -0
  85. /package/{docs/ids → generated/docs}/components-button-docs.md +0 -0
  86. /package/{docs/ids → generated/docs}/components-button-recipes-docs.md +0 -0
  87. /package/{docs/ids → generated/docs}/components-buttongroup-docs.md +0 -0
  88. /package/{docs/ids → generated/docs}/components-card-docs.md +0 -0
  89. /package/{docs/ids → generated/docs}/components-divider-docs.md +0 -0
  90. /package/{docs/ids → generated/docs}/components-expander-docs.md +0 -0
  91. /package/{docs/ids → generated/docs}/components-field-docs.md +0 -0
  92. /package/{docs/ids → generated/docs}/components-inline-docs.md +0 -0
  93. /package/{docs/ids → generated/docs}/components-input-docs.md +0 -0
  94. /package/{docs/ids → generated/docs}/components-inputcurrency-docs.md +0 -0
  95. /package/{docs/ids → generated/docs}/components-label-docs.md +0 -0
  96. /package/{docs/ids → generated/docs}/components-menu-docs.md +0 -0
  97. /package/{docs/ids → generated/docs}/components-menu-menuitem-docs.md +0 -0
  98. /package/{docs/ids → generated/docs}/components-navbar-docs.md +0 -0
  99. /package/{docs/ids → generated/docs}/components-navbar-recipes-docs.md +0 -0
  100. /package/{docs/ids → generated/docs}/components-panel-docs.md +0 -0
  101. /package/{docs/ids → generated/docs}/components-placeholder-docs.md +0 -0
  102. /package/{docs/ids → generated/docs}/components-popover-recipes-docs.md +0 -0
  103. /package/{docs/ids → generated/docs}/components-progress-docs.md +0 -0
  104. /package/{docs/ids → generated/docs}/components-radio-docs.md +0 -0
  105. /package/{docs/ids → generated/docs}/components-readonly-docs.md +0 -0
  106. /package/{docs/ids → generated/docs}/components-select-docs.md +0 -0
  107. /package/{docs/ids → generated/docs}/components-slider-docs.md +0 -0
  108. /package/{docs/ids → generated/docs}/components-spinner-docs.md +0 -0
  109. /package/{docs/ids → generated/docs}/components-stack-docs.md +0 -0
  110. /package/{docs/ids → generated/docs}/components-tabset-tab-docs.md +0 -0
  111. /package/{docs/ids → generated/docs}/components-text-docs.md +0 -0
  112. /package/{docs/ids → generated/docs}/components-toaster-toast-docs.md +0 -0
  113. /package/{docs/ids → generated/docs}/components-toggle-docs.md +0 -0
  114. /package/{docs/ids → generated/docs}/components-tooltip-docs.md +0 -0
  115. /package/{docs/ids → generated/docs}/components-validationmessage-docs.md +0 -0
  116. /package/{docs/ids → generated/docs}/contact-us-docs.md +0 -0
  117. /package/{docs/ids → generated/docs}/extensions-editor-recipes-docs.md +0 -0
  118. /package/{docs/ids → generated/docs}/frequently-asked-questions-docs.md +0 -0
  119. /package/{docs/ids → generated/docs}/get-started-using-storybook-docs.md +0 -0
  120. /package/{docs/ids → generated/docs}/resources-changelog-docs.md +0 -0
  121. /package/{docs/ids → generated/docs}/resources-code-katas-docs.md +0 -0
  122. /package/{docs/ids → generated/docs}/themes-introduction-docs.md +0 -0
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Tests for utility functions
3
+ */
4
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
5
+ import * as fs from 'fs';
6
+ import { getMarkdownFiles, mapIressComponentToFile, extractIressComponents, readFileContent, fileExists, } from './utils.js';
7
+ // Mock fs module
8
+ vi.mock('fs');
9
+ vi.mock('./config.js', () => ({
10
+ DOCS_DIR: '/mock/docs/dir',
11
+ }));
12
+ const mockedFs = vi.mocked(fs);
13
+ // Test helper functions and types
14
+ const createComponentMapping = (componentName, filePath) => ({
15
+ componentName,
16
+ filePath,
17
+ });
18
+ const mockFileList = [
19
+ 'components-button-docs.md',
20
+ 'components-input-docs.md',
21
+ 'components-card-docs.md',
22
+ ];
23
+ // Type for fs.readdirSync return value to avoid repetitive eslint-disable comments
24
+ const createMockFileArray = (...files) => files.filter((file) => file != null);
25
+ describe('utils', () => {
26
+ beforeEach(() => {
27
+ vi.clearAllMocks();
28
+ });
29
+ afterEach(() => {
30
+ vi.restoreAllMocks();
31
+ });
32
+ describe('getMarkdownFiles', () => {
33
+ it('should return empty array when docs directory does not exist', () => {
34
+ mockedFs.existsSync.mockReturnValue(false);
35
+ const result = getMarkdownFiles();
36
+ expect(result).toEqual([]);
37
+ expect(fs.existsSync).toHaveBeenCalledWith('/mock/docs/dir');
38
+ });
39
+ it('should return markdown files when directory exists', () => {
40
+ mockedFs.existsSync.mockReturnValue(true);
41
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-button-docs.md', 'components-input-docs.md', 'other-file.txt', 'nested/components-card-docs.md', Buffer.from('buffer-file')));
42
+ const result = getMarkdownFiles();
43
+ expect(result).toEqual([
44
+ 'components-button-docs.md',
45
+ 'components-input-docs.md',
46
+ 'nested/components-card-docs.md',
47
+ ]);
48
+ expect(fs.readdirSync).toHaveBeenCalledWith('/mock/docs/dir', {
49
+ recursive: true,
50
+ });
51
+ });
52
+ it('should handle errors gracefully', () => {
53
+ mockedFs.existsSync.mockReturnValue(true);
54
+ mockedFs.readdirSync.mockImplementation(() => {
55
+ throw new Error('Read error');
56
+ });
57
+ const consoleSpy = vi
58
+ .spyOn(console, 'error')
59
+ .mockImplementation(() => { });
60
+ const result = getMarkdownFiles();
61
+ expect(result).toEqual([]);
62
+ expect(consoleSpy).toHaveBeenCalledWith('Error reading docs directory:', expect.any(Error));
63
+ });
64
+ it('should filter out non-string entries from directory listing', () => {
65
+ mockedFs.existsSync.mockReturnValue(true);
66
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('file1.md', Buffer.from('buffer'), 'file2.md', null, undefined, 'file3.txt'));
67
+ const result = getMarkdownFiles();
68
+ expect(result).toEqual(['file1.md', 'file2.md']);
69
+ });
70
+ });
71
+ describe('mapIressComponentToFile', () => {
72
+ beforeEach(() => {
73
+ mockedFs.existsSync.mockReturnValue(true);
74
+ });
75
+ it('should find exact match for component', () => {
76
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray(...mockFileList));
77
+ const mapping = createComponentMapping('IressButton', 'components-button-docs.md');
78
+ const result = mapIressComponentToFile(mapping.componentName);
79
+ expect(result).toBe(mapping.filePath);
80
+ });
81
+ it('should find partial match when exact match is not available', () => {
82
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-button-advanced-docs.md', 'components-input-docs.md'));
83
+ const mapping = createComponentMapping('IressButton', 'components-button-advanced-docs.md');
84
+ const result = mapIressComponentToFile(mapping.componentName);
85
+ expect(result).toBe(mapping.filePath);
86
+ });
87
+ it('should find fuzzy match when exact and partial matches are not available', () => {
88
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-custom-button-docs.md', 'components-input-docs.md'));
89
+ const mapping = createComponentMapping('IressButton', 'components-custom-button-docs.md');
90
+ const result = mapIressComponentToFile(mapping.componentName);
91
+ expect(result).toBe(mapping.filePath);
92
+ });
93
+ it('should return null when no match is found', () => {
94
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-input-docs.md', 'components-card-docs.md'));
95
+ const mapping = createComponentMapping('IressButton', null);
96
+ const result = mapIressComponentToFile(mapping.componentName);
97
+ expect(result).toBe(mapping.filePath);
98
+ });
99
+ it('should handle component names without Iress prefix', () => {
100
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-button-docs.md'));
101
+ const mapping = createComponentMapping('Button', 'components-button-docs.md');
102
+ const result = mapIressComponentToFile(mapping.componentName);
103
+ expect(result).toBe(mapping.filePath);
104
+ });
105
+ it('should handle camelCase to lowercase conversion correctly', () => {
106
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-datepicker-docs.md'));
107
+ const mapping = createComponentMapping('IressDatePicker', 'components-datepicker-docs.md');
108
+ const result = mapIressComponentToFile(mapping.componentName);
109
+ expect(result).toBe(mapping.filePath);
110
+ });
111
+ it('should prioritize exact match over partial match', () => {
112
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-button-docs.md', 'components-button-advanced-docs.md'));
113
+ const mapping = createComponentMapping('IressButton', 'components-button-docs.md');
114
+ const result = mapIressComponentToFile(mapping.componentName);
115
+ expect(result).toBe(mapping.filePath);
116
+ });
117
+ it('should prioritize partial match over fuzzy match', () => {
118
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray('components-custom-button-docs.md', 'components-button-advanced-docs.md'));
119
+ const mapping = createComponentMapping('IressButton', 'components-button-advanced-docs.md');
120
+ const result = mapIressComponentToFile(mapping.componentName);
121
+ expect(result).toBe(mapping.filePath);
122
+ });
123
+ });
124
+ describe('extractIressComponents', () => {
125
+ it('should extract Iress component names from text', () => {
126
+ const text = `
127
+ Use IressButton for actions and IressInput for text entry.
128
+ You can also use IressCard to display content.
129
+ `;
130
+ const result = extractIressComponents(text);
131
+ expect(result).toEqual(['IressButton', 'IressInput', 'IressCard']);
132
+ });
133
+ it('should handle empty text', () => {
134
+ const result = extractIressComponents('');
135
+ expect(result).toEqual([]);
136
+ });
137
+ it('should handle text without Iress components', () => {
138
+ const text = 'This is just regular text with no components.';
139
+ const result = extractIressComponents(text);
140
+ expect(result).toEqual([]);
141
+ });
142
+ it('should remove duplicate component names', () => {
143
+ const text = `
144
+ Use IressButton here and IressButton there.
145
+ Also use IressInput and IressButton again.
146
+ `;
147
+ const result = extractIressComponents(text);
148
+ expect(result).toEqual(['IressButton', 'IressInput']);
149
+ });
150
+ it('should match component names with various cases', () => {
151
+ const text = `
152
+ IressA, IressB, IressC, IressABC, IressXYZ,
153
+ IressCamelCase, IressPascalCase
154
+ `;
155
+ const result = extractIressComponents(text);
156
+ expect(result).toEqual([
157
+ 'IressA',
158
+ 'IressB',
159
+ 'IressC',
160
+ 'IressABC',
161
+ 'IressXYZ',
162
+ 'IressCamelCase',
163
+ 'IressPascalCase',
164
+ ]);
165
+ });
166
+ it('should match component names according to current implementation', () => {
167
+ const text = 'ThisIressButtonIsNotValid and IressButton is valid';
168
+ const result = extractIressComponents(text);
169
+ // Current implementation matches any "Iress" followed by capital letter and additional letters
170
+ // This includes compound words like "IressButtonIsNotValid"
171
+ expect(result).toEqual(['IressButtonIsNotValid', 'IressButton']);
172
+ });
173
+ it('should handle special characters and boundaries', () => {
174
+ const text = `
175
+ <IressButton>Click me</IressButton>
176
+ {IressInput}
177
+ IressCard.
178
+ IressModal,
179
+ IressDialog;
180
+ IressTooltip!
181
+ IressForm?
182
+ `;
183
+ const result = extractIressComponents(text);
184
+ expect(result).toEqual([
185
+ 'IressButton',
186
+ 'IressInput',
187
+ 'IressCard',
188
+ 'IressModal',
189
+ 'IressDialog',
190
+ 'IressTooltip',
191
+ 'IressForm',
192
+ ]);
193
+ });
194
+ });
195
+ describe('readFileContent', () => {
196
+ it('should read file content successfully', () => {
197
+ const mockContent = 'Mock file content';
198
+ mockedFs.readFileSync.mockReturnValue(mockContent);
199
+ const result = readFileContent('/path/to/file.txt');
200
+ expect(result).toBe(mockContent);
201
+ expect(fs.readFileSync).toHaveBeenCalledWith('/path/to/file.txt', 'utf-8');
202
+ });
203
+ it('should propagate file system errors', () => {
204
+ const error = new Error('File not found');
205
+ mockedFs.readFileSync.mockImplementation(() => {
206
+ throw error;
207
+ });
208
+ expect(() => readFileContent('/nonexistent/file.txt')).toThrow('File not found');
209
+ });
210
+ it('should handle different file paths', () => {
211
+ mockedFs.readFileSync.mockReturnValue('content');
212
+ readFileContent('/absolute/path/file.txt');
213
+ expect(fs.readFileSync).toHaveBeenCalledWith('/absolute/path/file.txt', 'utf-8');
214
+ readFileContent('relative/path/file.txt');
215
+ expect(fs.readFileSync).toHaveBeenCalledWith('relative/path/file.txt', 'utf-8');
216
+ });
217
+ });
218
+ describe('fileExists', () => {
219
+ it('should return true when file exists', () => {
220
+ mockedFs.existsSync.mockReturnValue(true);
221
+ const result = fileExists('/path/to/file.txt');
222
+ expect(result).toBe(true);
223
+ expect(fs.existsSync).toHaveBeenCalledWith('/path/to/file.txt');
224
+ });
225
+ it('should return false when file does not exist', () => {
226
+ mockedFs.existsSync.mockReturnValue(false);
227
+ const result = fileExists('/nonexistent/file.txt');
228
+ expect(result).toBe(false);
229
+ expect(fs.existsSync).toHaveBeenCalledWith('/nonexistent/file.txt');
230
+ });
231
+ it('should handle different file paths', () => {
232
+ mockedFs.existsSync.mockReturnValue(true);
233
+ fileExists('/absolute/path/file.txt');
234
+ expect(fs.existsSync).toHaveBeenCalledWith('/absolute/path/file.txt');
235
+ fileExists('relative/path/file.txt');
236
+ expect(fs.existsSync).toHaveBeenCalledWith('relative/path/file.txt');
237
+ });
238
+ it('should handle edge cases', () => {
239
+ mockedFs.existsSync.mockReturnValue(false);
240
+ expect(fileExists('')).toBe(false);
241
+ expect(fileExists(' ')).toBe(false);
242
+ expect(fileExists('.')).toBe(false);
243
+ expect(fileExists('..')).toBe(false);
244
+ });
245
+ });
246
+ describe('type safety and helper functions', () => {
247
+ it('should create valid ComponentMapping objects', () => {
248
+ const validMapping = createComponentMapping('IressButton', 'components-button-docs.md');
249
+ const nullMapping = createComponentMapping('IressNonExistent', null);
250
+ expect(validMapping).toEqual({
251
+ componentName: 'IressButton',
252
+ filePath: 'components-button-docs.md',
253
+ });
254
+ expect(nullMapping).toEqual({
255
+ componentName: 'IressNonExistent',
256
+ filePath: null,
257
+ });
258
+ });
259
+ it('should work with mock file list type', () => {
260
+ const mockFile = 'components-button-docs.md';
261
+ expect(mockFileList).toContain(mockFile);
262
+ // Type checking ensures we can only use valid file names
263
+ expect(typeof mockFile).toBe('string');
264
+ expect(mockFile.endsWith('.md')).toBe(true);
265
+ });
266
+ it('should demonstrate type-safe component mapping workflow', () => {
267
+ mockedFs.existsSync.mockReturnValue(true);
268
+ mockedFs.readdirSync.mockReturnValue(createMockFileArray(...mockFileList));
269
+ const componentMappings = [
270
+ createComponentMapping('IressButton', null),
271
+ createComponentMapping('IressInput', null),
272
+ createComponentMapping('IressCard', null),
273
+ ];
274
+ // Test that all components get properly mapped
275
+ const results = componentMappings.map((mapping) => ({
276
+ ...mapping,
277
+ filePath: mapIressComponentToFile(mapping.componentName),
278
+ }));
279
+ expect(results).toEqual([
280
+ { componentName: 'IressButton', filePath: 'components-button-docs.md' },
281
+ { componentName: 'IressInput', filePath: 'components-input-docs.md' },
282
+ { componentName: 'IressCard', filePath: 'components-card-docs.md' },
283
+ ]);
284
+ });
285
+ });
286
+ });
@@ -88,7 +88,7 @@ Hide code
88
88
 
89
89
  \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
90
90
 
91
- import { IressAutocomplete, IressAutocompleteProps } from '@iress/ids-components';
91
+ import { IressAutocomplete, IressAutocompleteProps } from '@iress-oss/ids-components';
92
92
  import { useState } from 'react';
93
93
  export const AutocompleteUsingState \= () \=> {
94
94
  const \[value, setValue\] \= useState('Option 1');
@@ -170,7 +170,7 @@ Hide code
170
170
 
171
171
  \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
172
172
 
173
- import { IressAutocomplete, IressAutocompleteProps } from '@iress/ids-components';
173
+ import { IressAutocomplete, IressAutocompleteProps } from '@iress-oss/ids-components';
174
174
  interface StarWarsCharacter {
175
175
  name: string;
176
176
  gender: string;
@@ -553,7 +553,7 @@ Hide code
553
553
  }
554
554
  \]}
555
555
  popoverProps\={{
556
- container: {}
556
+ container: document.body
557
557
  }}
558
558
  />
559
559
  </IressStack\>
@@ -17,29 +17,13 @@ It has been exposed in case you need it in your application to provide custom se
17
17
 
18
18
  1. You want to provide filtering in a certain area of the application (eg. a table).
19
19
 
20
- Name
21
-
22
- Gender
23
-
24
- Person 1
25
-
26
- Male
27
-
28
- Person 2
29
-
30
- Female
31
-
32
- Person 3
33
-
34
- Male
35
-
36
- Person 4
37
-
38
- Female
39
-
40
- Person 5
41
-
42
- Male
20
+ | Name | Gender |
21
+ | --- | --- |
22
+ | Person 1 | Male |
23
+ | Person 2 | Female |
24
+ | Person 3 | Male |
25
+ | Person 4 | Female |
26
+ | Person 5 | Male |
43
27
 
44
28
  Hide code
45
29
 
@@ -91,45 +75,27 @@ Copy
91
75
 
92
76
  ### [](#parameters)Parameters
93
77
 
94
- Name
95
-
96
- Description
97
-
98
- Default
99
-
100
- Control
101
-
102
- debounceThreshold
103
-
78
+ | Name | Description | Default | Control |
79
+ | --- | --- | --- | --- |
80
+ | debounceThreshold |
104
81
  \-
105
82
 
106
- \-
107
-
108
- \-
109
-
110
- initialOptions
83
+ | \- | \- |
84
+ | initialOptions |
111
85
 
112
86
  \-
113
87
 
114
- \-
88
+ | \- | \- |
89
+ | options |
115
90
 
116
91
  \-
117
92
 
118
- options
119
-
120
- \-
93
+ | \- | \- |
94
+ | query |
121
95
 
122
96
  \-
123
97
 
124
- \-
125
-
126
- query
127
-
128
- \-
129
-
130
- \-
131
-
132
- \-
98
+ | \- | \- |
133
99
 
134
100
  On this page
135
101
 
@@ -46,7 +46,7 @@ import {
46
46
  IressCardProps,
47
47
  IressStack,
48
48
  IressText,
49
- } from '@iress/ids-components';
49
+ } from '@iress-oss/ids-components';
50
50
  import styles from '@iress-storybook/styles.module.scss';
51
51
  export const CardUsingHook \= () \=> {
52
52
  const cardProps \= composeIDSCard({
@@ -80,30 +80,17 @@ When using a checkbox without a visible label, you must supply a label and apply
80
80
  It is also important to not hide the table headers.
81
81
 
82
82
  List of investments
83
-
84
- Select
85
-
86
- Name
87
-
88
- Date
89
-
90
- Cost
91
-
83
+ | Select | Name | Date | Cost |
84
+ | --- | --- | --- | --- |
85
+ |
92
86
  Toggle row
93
87
 
94
- Artemis Fund Managers Limited
95
-
96
- 2019-09-23
97
-
98
- 23898.12
88
+ | Artemis Fund Managers Limited | 2019-09-23 | 23898.12 |
89
+ |
99
90
 
100
91
  Toggle row
101
92
 
102
- CASH.CASH
103
-
104
- 2020-06-28
105
-
106
- 49751.43
93
+ | CASH.CASH | 2020-06-28 | 49751.43 |
107
94
 
108
95
  Hide code
109
96
 
@@ -115,7 +115,7 @@ import {
115
115
  IressCheckboxGroup,
116
116
  IressCheckboxGroupProps,
117
117
  IressStack,
118
- } from '@iress/ids-components';
118
+ } from '@iress-oss/ids-components';
119
119
  import { useState } from 'react';
120
120
  export const CheckboxGroupUsingState \= () \=> {
121
121
  const \[value, setValue\] \= useState<FormControlValue\[\]\>(\[\]);
@@ -197,22 +197,22 @@ Hide code
197
197
  stack </h3\>
198
198
  <IressCheckboxGroup layout\="stack"\>
199
199
  <IressCheckbox
200
- className\="ids-styles--add-border-to-label-v5130"
200
+ className\="ids-styles--add-border-to-label-v5142"
201
201
  value\="google"
202
202
  \>
203
203
  Google </IressCheckbox\>
204
204
  <IressCheckbox
205
- className\="ids-styles--add-border-to-label-v5130"
205
+ className\="ids-styles--add-border-to-label-v5142"
206
206
  value\="newspaper"
207
207
  \>
208
208
  Newspaper </IressCheckbox\>
209
209
  <IressCheckbox
210
- className\="ids-styles--add-border-to-label-v5130"
210
+ className\="ids-styles--add-border-to-label-v5142"
211
211
  value\="friend"
212
212
  \>
213
213
  Friend </IressCheckbox\>
214
214
  <IressCheckbox
215
- className\="ids-styles--add-border-to-label-v5130"
215
+ className\="ids-styles--add-border-to-label-v5142"
216
216
  value\="other"
217
217
  \>
218
218
  Other </IressCheckbox\>
@@ -223,22 +223,22 @@ Hide code
223
223
  block </h3\>
224
224
  <IressCheckboxGroup layout\="block"\>
225
225
  <IressCheckbox
226
- className\="ids-styles--add-border-to-label-v5130"
226
+ className\="ids-styles--add-border-to-label-v5142"
227
227
  value\="google"
228
228
  \>
229
229
  Google </IressCheckbox\>
230
230
  <IressCheckbox
231
- className\="ids-styles--add-border-to-label-v5130"
231
+ className\="ids-styles--add-border-to-label-v5142"
232
232
  value\="newspaper"
233
233
  \>
234
234
  Newspaper </IressCheckbox\>
235
235
  <IressCheckbox
236
- className\="ids-styles--add-border-to-label-v5130"
236
+ className\="ids-styles--add-border-to-label-v5142"
237
237
  value\="friend"
238
238
  \>
239
239
  Friend </IressCheckbox\>
240
240
  <IressCheckbox
241
- className\="ids-styles--add-border-to-label-v5130"
241
+ className\="ids-styles--add-border-to-label-v5142"
242
242
  value\="other"
243
243
  \>
244
244
  Other </IressCheckbox\>
@@ -249,22 +249,22 @@ Hide code
249
249
  inline </h3\>
250
250
  <IressCheckboxGroup layout\="inline"\>
251
251
  <IressCheckbox
252
- className\="ids-styles--add-border-to-label-v5130"
252
+ className\="ids-styles--add-border-to-label-v5142"
253
253
  value\="google"
254
254
  \>
255
255
  Google </IressCheckbox\>
256
256
  <IressCheckbox
257
- className\="ids-styles--add-border-to-label-v5130"
257
+ className\="ids-styles--add-border-to-label-v5142"
258
258
  value\="newspaper"
259
259
  \>
260
260
  Newspaper </IressCheckbox\>
261
261
  <IressCheckbox
262
- className\="ids-styles--add-border-to-label-v5130"
262
+ className\="ids-styles--add-border-to-label-v5142"
263
263
  value\="friend"
264
264
  \>
265
265
  Friend </IressCheckbox\>
266
266
  <IressCheckbox
267
- className\="ids-styles--add-border-to-label-v5130"
267
+ className\="ids-styles--add-border-to-label-v5142"
268
268
  value\="other"
269
269
  \>
270
270
  Other </IressCheckbox\>
@@ -275,22 +275,22 @@ Hide code
275
275
  full </h3\>
276
276
  <IressCheckboxGroup layout\="full"\>
277
277
  <IressCheckbox
278
- className\="ids-styles--add-border-to-label-v5130"
278
+ className\="ids-styles--add-border-to-label-v5142"
279
279
  value\="google"
280
280
  \>
281
281
  Google </IressCheckbox\>
282
282
  <IressCheckbox
283
- className\="ids-styles--add-border-to-label-v5130"
283
+ className\="ids-styles--add-border-to-label-v5142"
284
284
  value\="newspaper"
285
285
  \>
286
286
  Newspaper </IressCheckbox\>
287
287
  <IressCheckbox
288
- className\="ids-styles--add-border-to-label-v5130"
288
+ className\="ids-styles--add-border-to-label-v5142"
289
289
  value\="friend"
290
290
  \>
291
291
  Friend </IressCheckbox\>
292
292
  <IressCheckbox
293
- className\="ids-styles--add-border-to-label-v5130"
293
+ className\="ids-styles--add-border-to-label-v5142"
294
294
  value\="other"
295
295
  \>
296
296
  Other </IressCheckbox\>
@@ -445,7 +445,7 @@ Hide code
445
445
  }}
446
446
  \>
447
447
  <div
448
- className\="ids-styles--resizable-v5130"
448
+ className\="ids-styles--resizable-v5142"
449
449
  style\={{
450
450
  display: 'grid',
451
451
  gridAutoRows: '1fr',
@@ -11,22 +11,22 @@ Selected values: lemon-drizzle, victoria-sponge
11
11
  Required Let them eat cake
12
12
 
13
13
  Available options
14
-
15
- Select
16
-
17
- Name
18
-
14
+ | Select | Name |
15
+ | --- | --- |
16
+ |
19
17
  Select lemon drizzle
20
18
 
21
- Lemon drizzle
19
+ | Lemon drizzle |
20
+ |
22
21
 
23
22
  Select Victoria Sponge
24
23
 
25
- Victoria Sponge
24
+ | Victoria Sponge |
25
+ |
26
26
 
27
27
  Select Carrot Cake
28
28
 
29
- Carrot Cake
29
+ | Carrot Cake |
30
30
 
31
31
  Submit
32
32
 
@@ -43,7 +43,7 @@ import {
43
43
  IressPanel,
44
44
  IressStack,
45
45
  IressTable,
46
- } from '@iress/ids-components';
46
+ } from '@iress-oss/ids-components';
47
47
  import { IressCheckboxGroup } from '../CheckboxGroup';
48
48
  import { toArray } from '../../../helpers/formatting/toArray';
49
49
  interface FieldValues {
@@ -429,7 +429,7 @@ Hide code
429
429
 
430
430
  <IressContainer\>
431
431
  <IressRow
432
- className\="ids-styles--set-height-v5130"
432
+ className\="ids-styles--set-height-v5142"
433
433
  gutter\="md"
434
434
  \>
435
435
  <IressCol alignSelf\="start"\>
@@ -117,7 +117,7 @@ Hide code
117
117
 
118
118
  \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
119
119
 
120
- import { IressCombobox, IressComboboxProps, LabelValueMeta } from '@iress/ids-components';
120
+ import { IressCombobox, IressComboboxProps, LabelValueMeta } from '@iress-oss/ids-components';
121
121
  import { useState } from 'react';
122
122
  export const ComboboxUsingState \= () \=> {
123
123
  const \[value, setValue\] \= useState<LabelValueMeta | undefined\>();
@@ -211,7 +211,7 @@ Hide code
211
211
 
212
212
  \[data-radix-scroll-area-viewport\] { scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } \[data-radix-scroll-area-viewport\]::-webkit-scrollbar { display: none; } :where(\[data-radix-scroll-area-viewport\]) { display: flex; flex-direction: column; align-items: stretch; } :where(\[data-radix-scroll-area-content\]) { flex-grow: 1; }
213
213
 
214
- import { IressCombobox, IressComboboxProps } from '@iress/ids-components';
214
+ import { IressCombobox, IressComboboxProps } from '@iress-oss/ids-components';
215
215
  interface StarWarsCharacter {
216
216
  name: string;
217
217
  gender: string;
@@ -400,7 +400,7 @@ Hide code
400
400
  }
401
401
  \]}
402
402
  popoverProps\={{
403
- container: document.body
403
+ container: {}
404
404
  }}
405
405
  prepend\={<IressIcon name\="search" />}
406
406
  width\="12"
@@ -533,7 +533,7 @@ Hide code
533
533
  \]}
534
534
  placeholder\="Instant search!"
535
535
  popoverProps\={{
536
- container: {}
536
+ container: document.body
537
537
  }}
538
538
  />
539
539