@smwb/ui-mcp-solid 0.1.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 (122) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/component-meta/base/animateHeight/animateHeight.json +74 -0
  4. package/component-meta/base/icon/icon.json +61 -0
  5. package/component-meta/base/ripple/ripple.json +51 -0
  6. package/component-meta/clickAwayListener/clickAwayListener.json +40 -0
  7. package/component-meta/dataDisplay/accordion/accordion.json +79 -0
  8. package/component-meta/dataDisplay/avatar/avatar.avatarGroup.json +41 -0
  9. package/component-meta/dataDisplay/avatar/avatar.json +56 -0
  10. package/component-meta/dataDisplay/badge/badge.json +66 -0
  11. package/component-meta/dataDisplay/card/card.json +46 -0
  12. package/component-meta/dataDisplay/carousel/carousel.json +89 -0
  13. package/component-meta/dataDisplay/chat/chat.json +225 -0
  14. package/component-meta/dataDisplay/chat/chatAttachmentImage.json +27 -0
  15. package/component-meta/dataDisplay/chat/chatAttachments.json +32 -0
  16. package/component-meta/dataDisplay/chat/chatComposer.json +76 -0
  17. package/component-meta/dataDisplay/chat/chatHeader.json +60 -0
  18. package/component-meta/dataDisplay/chat/chatIconButton.json +38 -0
  19. package/component-meta/dataDisplay/chat/chatLayout.chatLayoutChat.json +20 -0
  20. package/component-meta/dataDisplay/chat/chatLayout.json +85 -0
  21. package/component-meta/dataDisplay/chat/chatMessageAvatar.json +34 -0
  22. package/component-meta/dataDisplay/chat/chatMessageBubble.json +91 -0
  23. package/component-meta/dataDisplay/chat/chatMessageIncoming.json +60 -0
  24. package/component-meta/dataDisplay/chat/chatMessageItem.json +65 -0
  25. package/component-meta/dataDisplay/chat/chatMessageOutgoing.json +60 -0
  26. package/component-meta/dataDisplay/chat/chatMessageSkeleton.json +39 -0
  27. package/component-meta/dataDisplay/chat/chatMessageStatus.json +44 -0
  28. package/component-meta/dataDisplay/chat/chatMessageSystem.json +29 -0
  29. package/component-meta/dataDisplay/chat/chatMessages.json +91 -0
  30. package/component-meta/dataDisplay/chat/chatOverlayLayout.chatOverlayLayoutChat.json +20 -0
  31. package/component-meta/dataDisplay/chat/chatOverlayLayout.json +70 -0
  32. package/component-meta/dataDisplay/chat/chatShell.json +71 -0
  33. package/component-meta/dataDisplay/chip/chip.json +104 -0
  34. package/component-meta/dataDisplay/expansionPanel/expansionPanel.json +85 -0
  35. package/component-meta/dataDisplay/imagesList/imagesList.json +57 -0
  36. package/component-meta/dataDisplay/imagesList/imagesListItem/imagesListItem.json +64 -0
  37. package/component-meta/dataDisplay/imagesList/imagesListItem/imagesListItemModal.json +32 -0
  38. package/component-meta/dataDisplay/list/list.json +36 -0
  39. package/component-meta/dataDisplay/list/listItem.json +62 -0
  40. package/component-meta/dataDisplay/table/table.json +59 -0
  41. package/component-meta/dataDisplay/table/tableBody.json +26 -0
  42. package/component-meta/dataDisplay/table/tableCell.json +31 -0
  43. package/component-meta/dataDisplay/table/tableHead.json +26 -0
  44. package/component-meta/dataDisplay/table/tableHeadCell.json +58 -0
  45. package/component-meta/dataDisplay/table/tablePagination/tablePagination.baseTablePagination.json +47 -0
  46. package/component-meta/dataDisplay/table/tablePagination/tablePagination.json +21 -0
  47. package/component-meta/dataDisplay/table/tableRow.json +36 -0
  48. package/component-meta/dataDisplay/treeView/treeView.json +93 -0
  49. package/component-meta/dataDisplay/typography/typography.json +56 -0
  50. package/component-meta/feedBack/message/message.json +53 -0
  51. package/component-meta/feedBack/modal/modal.json +92 -0
  52. package/component-meta/feedBack/modal/modal.modalSlot.json +22 -0
  53. package/component-meta/feedBack/progressIndicator/progressIndicator.circularProgress.json +22 -0
  54. package/component-meta/feedBack/progressIndicator/progressIndicator.json +57 -0
  55. package/component-meta/feedBack/skeleton/skeleton.json +61 -0
  56. package/component-meta/feedBack/snackbar/snackbar.json +71 -0
  57. package/component-meta/feedBack/snackbar/snackbar.snackbarsProvider.json +51 -0
  58. package/component-meta/feedBack/tooltip/tooltip.json +62 -0
  59. package/component-meta/inputs/button/button.json +94 -0
  60. package/component-meta/inputs/buttonGroups/buttonGroup.json +59 -0
  61. package/component-meta/inputs/checkbox/checkbox.json +89 -0
  62. package/component-meta/inputs/datePicker/dataPickerDays.json +87 -0
  63. package/component-meta/inputs/datePicker/dataPickerHeader.json +48 -0
  64. package/component-meta/inputs/datePicker/dataPickerInput.json +34 -0
  65. package/component-meta/inputs/datePicker/datePicker.json +129 -0
  66. package/component-meta/inputs/datePicker/datePickerActionLabel.json +55 -0
  67. package/component-meta/inputs/datePicker/datePickerDay.json +61 -0
  68. package/component-meta/inputs/datePicker/datePickerIconButton.json +18 -0
  69. package/component-meta/inputs/datePicker/datePickerList.json +33 -0
  70. package/component-meta/inputs/dateTimePicker/dateTimePicker.json +120 -0
  71. package/component-meta/inputs/dateTimePicker/dateTimePickerInput.json +35 -0
  72. package/component-meta/inputs/fileDrop/countPreview.json +40 -0
  73. package/component-meta/inputs/fileDrop/fileDrop.json +71 -0
  74. package/component-meta/inputs/fileDrop/preview.json +46 -0
  75. package/component-meta/inputs/fileDrop/previewWrapper.json +51 -0
  76. package/component-meta/inputs/fileInput/fileInput.json +61 -0
  77. package/component-meta/inputs/floatingButton/floatingButton.json +43 -0
  78. package/component-meta/inputs/radioButton/radioButton.json +90 -0
  79. package/component-meta/inputs/rating/rating.json +104 -0
  80. package/component-meta/inputs/selectField/dropdownMenu.json +107 -0
  81. package/component-meta/inputs/selectField/selectField.json +203 -0
  82. package/component-meta/inputs/slider/slider.json +133 -0
  83. package/component-meta/inputs/textField/textField.json +126 -0
  84. package/component-meta/inputs/textField/textFieldAdornment.json +47 -0
  85. package/component-meta/inputs/textField/textFieldWrapper.json +96 -0
  86. package/component-meta/inputs/timePicker/timePicker.json +75 -0
  87. package/component-meta/inputs/timePicker/timePickerColumns.json +37 -0
  88. package/component-meta/inputs/timePicker/timePickerInput.json +35 -0
  89. package/component-meta/inputs/timePicker/timePickerList.json +32 -0
  90. package/component-meta/inputs/toggle/toggle.json +90 -0
  91. package/component-meta/layout/appLayout/appLayout.json +88 -0
  92. package/component-meta/layout/divider/divider.json +56 -0
  93. package/component-meta/layout/grid/grid.column.json +81 -0
  94. package/component-meta/layout/grid/grid.container.json +36 -0
  95. package/component-meta/layout/grid/grid.row.json +51 -0
  96. package/component-meta/layout/page/page.json +41 -0
  97. package/component-meta/layout/pageHeader/pageHeader.json +53 -0
  98. package/component-meta/layout/screenDivider/screenDivider.json +57 -0
  99. package/component-meta/layout/sheet/sheet.json +114 -0
  100. package/component-meta/layout/stack/stack.json +56 -0
  101. package/component-meta/navigation/appBar/appBar.json +71 -0
  102. package/component-meta/navigation/bottomBar/bottomBar.bottomBarMenuItem.json +55 -0
  103. package/component-meta/navigation/bottomBar/bottomBar.json +61 -0
  104. package/component-meta/navigation/breadcrumbs/breadcrumbs.json +61 -0
  105. package/component-meta/navigation/menu/menu.json +20 -0
  106. package/component-meta/navigation/menu/menuDivider.json +26 -0
  107. package/component-meta/navigation/menu/menuFloating.json +51 -0
  108. package/component-meta/navigation/menu/menuItem.json +68 -0
  109. package/component-meta/navigation/menu/menuItemIcon.json +31 -0
  110. package/component-meta/navigation/menu/menuItemText.json +31 -0
  111. package/component-meta/navigation/menu/menuList.json +26 -0
  112. package/component-meta/navigation/menu/menuSubmenu.json +47 -0
  113. package/component-meta/navigation/pagination/pagination.json +98 -0
  114. package/component-meta/navigation/sidebar/sidebar.json +79 -0
  115. package/component-meta/navigation/sidebar/sidebar.sidebarMenuItem.json +56 -0
  116. package/component-meta/navigation/stepper/stepper.json +53 -0
  117. package/component-meta/navigation/tabs/tab/tab.json +64 -0
  118. package/component-meta/navigation/tabs/tabs.json +60 -0
  119. package/componentMeta.mjs +493 -0
  120. package/customizationMeta.mjs +451 -0
  121. package/package.json +37 -0
  122. package/server.mjs +169 -0
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "PreviewWrapper",
3
+ "description": "Layout wrapper for file preview tiles in FileDrop.",
4
+ "styles": {
5
+ "base": [
6
+ "@smwb/ui-styles/less/foundation.less",
7
+ "@smwb/ui-styles/less/theme.less"
8
+ ],
9
+ "entries": [
10
+ "@smwb/ui-styles/less/components/fileDrop/fileDrop.entry.less"
11
+ ],
12
+ "dependencies": [
13
+ "@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less",
14
+ "@smwb/ui-styles/less/components/icon/icon.entry.less",
15
+ "@smwb/ui-styles/less/components/imagesList/imagesList.entry.less"
16
+ ],
17
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/fileDrop/fileDrop.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/icon/icon.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/imagesList/imagesList.entry.less\";"
18
+ },
19
+ "props": {
20
+ "preview": {
21
+ "type": "boolean | undefined",
22
+ "required": false,
23
+ "description": "Preview. Optional. Type: boolean | undefined."
24
+ },
25
+ "files": {
26
+ "type": "File[]",
27
+ "required": true,
28
+ "description": "Files. Required. Type: File[]."
29
+ },
30
+ "handleRemoveAll": {
31
+ "type": "() => void",
32
+ "required": true,
33
+ "description": "Handle Remove All. Required. Type: () => void."
34
+ },
35
+ "previewCols": {
36
+ "type": "number | undefined",
37
+ "required": false,
38
+ "description": "Preview Cols. Optional. Type: number | undefined."
39
+ },
40
+ "galleryItemSize": {
41
+ "type": "number | undefined",
42
+ "required": false,
43
+ "description": "Gallery Item Size. Optional. Type: number | undefined."
44
+ },
45
+ "previewClassName": {
46
+ "type": "string | undefined",
47
+ "required": false,
48
+ "description": "Preview Class Name. Optional. Type: string | undefined."
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "FileInput",
3
+ "description": "Hidden file input integrated with react-dropzone.",
4
+ "extends": [
5
+ "DropzoneOptions"
6
+ ],
7
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
8
+ "styles": {
9
+ "base": [
10
+ "@smwb/ui-styles/less/foundation.less",
11
+ "@smwb/ui-styles/less/theme.less"
12
+ ],
13
+ "entries": [
14
+ "@smwb/ui-styles/less/components/fileInput/fileInput.entry.less"
15
+ ],
16
+ "dependencies": [],
17
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/fileInput/fileInput.entry.less\";"
18
+ },
19
+ "props": {
20
+ "label": {
21
+ "type": "string",
22
+ "required": false,
23
+ "description": "Visible label text."
24
+ },
25
+ "class": {
26
+ "type": "string",
27
+ "required": false,
28
+ "description": "Class. Optional. Type: string."
29
+ },
30
+ "buttonClassName": {
31
+ "type": "string",
32
+ "required": false,
33
+ "description": "Button Class Name. Optional. Type: string."
34
+ },
35
+ "disabled": {
36
+ "type": "boolean",
37
+ "required": false,
38
+ "description": "Whether the control is disabled and non-interactive."
39
+ },
40
+ "error": {
41
+ "type": "string",
42
+ "required": false,
43
+ "description": "Validation message shown below the control."
44
+ },
45
+ "onFilesSelected": {
46
+ "type": "(files: File[]) => void",
47
+ "required": false,
48
+ "description": "Fired with the accepted files when the user picks them."
49
+ },
50
+ "onClick": {
51
+ "type": "(e: MouseEvent & { currentTarget: HTMLButtonElement; target: Element }) => void",
52
+ "required": false,
53
+ "description": "Callback fired when the element is clicked."
54
+ },
55
+ "ref": {
56
+ "type": "Ref<HTMLDivElement>",
57
+ "required": false,
58
+ "description": "Ref. Optional. Type: Ref<HTMLDivElement>."
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "FloatingButton",
3
+ "description": "Prominent circular action button, often fixed on screen.",
4
+ "extends": [
5
+ "JSX.ButtonHTMLAttributes<HTMLButtonElement>"
6
+ ],
7
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
8
+ "styles": {
9
+ "base": [
10
+ "@smwb/ui-styles/less/foundation.less",
11
+ "@smwb/ui-styles/less/theme.less"
12
+ ],
13
+ "entries": [
14
+ "@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less"
15
+ ],
16
+ "dependencies": [
17
+ "@smwb/ui-styles/less/components/ripple/ripple.entry.less"
18
+ ],
19
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/floatingButton/floatingButton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/ripple/ripple.entry.less\";"
20
+ },
21
+ "props": {
22
+ "variant": {
23
+ "type": "\"extended\" | \"default\"",
24
+ "required": false,
25
+ "description": "Visual style variant."
26
+ },
27
+ "size": {
28
+ "type": "\"small\" | \"medium\" | \"large\"",
29
+ "required": false,
30
+ "description": "Visual size preset."
31
+ },
32
+ "color": {
33
+ "type": "FloatingButtonColor",
34
+ "required": false,
35
+ "description": "Semantic color. Resolves through the shared `--smui-*Color*` tokens."
36
+ },
37
+ "ref": {
38
+ "type": "Ref<HTMLButtonElement>",
39
+ "required": false,
40
+ "description": "Ref. Optional. Type: Ref<HTMLButtonElement>."
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "RadioButton",
3
+ "description": "Single-choice selection control within a group.",
4
+ "extends": [
5
+ "Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"onChange\" | \"size\">"
6
+ ],
7
+ "inheritedAttributes": "Also accepts standard HTML attributes for the underlying element (see extends clause in TypeScript).",
8
+ "styles": {
9
+ "base": [
10
+ "@smwb/ui-styles/less/foundation.less",
11
+ "@smwb/ui-styles/less/theme.less"
12
+ ],
13
+ "entries": [
14
+ "@smwb/ui-styles/less/components/radioButton/radioButton.entry.less"
15
+ ],
16
+ "dependencies": [
17
+ "@smwb/ui-styles/less/components/checkbox/checkbox.entry.less",
18
+ "@smwb/ui-styles/less/components/icon/icon.entry.less",
19
+ "@smwb/ui-styles/less/components/textField/textField.entry.less"
20
+ ],
21
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/radioButton/radioButton.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/checkbox/checkbox.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/icon/icon.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";"
22
+ },
23
+ "props": {
24
+ "label": {
25
+ "type": "string",
26
+ "required": false,
27
+ "description": "Visible label text."
28
+ },
29
+ "disabled": {
30
+ "type": "boolean",
31
+ "required": false,
32
+ "description": "Whether the control is disabled and non-interactive."
33
+ },
34
+ "readOnly": {
35
+ "type": "boolean",
36
+ "required": false,
37
+ "description": "Whether the value is read-only."
38
+ },
39
+ "required": {
40
+ "type": "boolean",
41
+ "required": false,
42
+ "description": "Whether the field value is required."
43
+ },
44
+ "name": {
45
+ "type": "string",
46
+ "required": false,
47
+ "description": "Form field name submitted with the value."
48
+ },
49
+ "id": {
50
+ "type": "string",
51
+ "required": false,
52
+ "description": "Unique identifier for the root element."
53
+ },
54
+ "checked": {
55
+ "type": "boolean",
56
+ "required": false,
57
+ "description": "Controlled checked state."
58
+ },
59
+ "size": {
60
+ "type": "SelectionControlSize",
61
+ "required": false,
62
+ "description": "Visual size preset."
63
+ },
64
+ "color": {
65
+ "type": "SelectionControlColor",
66
+ "required": false,
67
+ "description": "Semantic color token."
68
+ },
69
+ "helperText": {
70
+ "type": "JSX.Element",
71
+ "required": false,
72
+ "description": "Supplementary hint text displayed below the control."
73
+ },
74
+ "error": {
75
+ "type": "boolean",
76
+ "required": false,
77
+ "description": "Whether the control is in an error state."
78
+ },
79
+ "onChange": {
80
+ "type": "( event: SelectionChangeEvent, value: string | number | string[] | boolean | undefined, data: RadioButtonProps ) => void",
81
+ "required": false,
82
+ "description": "Unified handler: `(event, value, data)` where `value` is the radio's value (or checked state)."
83
+ },
84
+ "ref": {
85
+ "type": "Ref<HTMLInputElement>",
86
+ "required": false,
87
+ "description": "Ref. Optional. Type: Ref<HTMLInputElement>."
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "Rating",
3
+ "description": "Star rating input with customizable precision.",
4
+ "styles": {
5
+ "base": [
6
+ "@smwb/ui-styles/less/foundation.less",
7
+ "@smwb/ui-styles/less/theme.less"
8
+ ],
9
+ "entries": [
10
+ "@smwb/ui-styles/less/components/rating/rating.entry.less"
11
+ ],
12
+ "dependencies": [
13
+ "@smwb/ui-styles/less/components/icon/icon.entry.less"
14
+ ],
15
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/rating/rating.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/icon/icon.entry.less\";"
16
+ },
17
+ "props": {
18
+ "class": {
19
+ "type": "string",
20
+ "required": false,
21
+ "description": "Class. Optional. Type: string."
22
+ },
23
+ "value": {
24
+ "type": "number",
25
+ "required": false,
26
+ "description": "Controlled value."
27
+ },
28
+ "defaultValue": {
29
+ "type": "number",
30
+ "required": false,
31
+ "description": "Uncontrolled initial value."
32
+ },
33
+ "max": {
34
+ "type": "number",
35
+ "required": false,
36
+ "description": "Number of icons."
37
+ },
38
+ "precision": {
39
+ "type": "1 | 0.5",
40
+ "required": false,
41
+ "description": "Smallest selectable increment: 1 (whole) or 0.5 (half)."
42
+ },
43
+ "readOnly": {
44
+ "type": "boolean",
45
+ "required": false,
46
+ "description": "Whether the value is read-only."
47
+ },
48
+ "disabled": {
49
+ "type": "boolean",
50
+ "required": false,
51
+ "description": "Whether the control is disabled and non-interactive."
52
+ },
53
+ "size": {
54
+ "type": "number",
55
+ "required": false,
56
+ "description": "Visual size preset."
57
+ },
58
+ "icon": {
59
+ "type": "JSX.Element",
60
+ "required": false,
61
+ "description": "Filled icon."
62
+ },
63
+ "emptyIcon": {
64
+ "type": "JSX.Element",
65
+ "required": false,
66
+ "description": "Empty icon."
67
+ },
68
+ "name": {
69
+ "type": "string",
70
+ "required": false,
71
+ "description": "Form field name submitted with the value."
72
+ },
73
+ "color": {
74
+ "type": "RatingColor",
75
+ "required": false,
76
+ "description": "Color of the filled icons."
77
+ },
78
+ "error": {
79
+ "type": "boolean",
80
+ "required": false,
81
+ "description": "Renders the control in an error state."
82
+ },
83
+ "helperText": {
84
+ "type": "JSX.Element",
85
+ "required": false,
86
+ "description": "Supporting text shown below the control."
87
+ },
88
+ "id": {
89
+ "type": "string",
90
+ "required": false,
91
+ "description": "Unique identifier for the root element."
92
+ },
93
+ "onChange": {
94
+ "type": "(value: number) => void",
95
+ "required": false,
96
+ "description": "Callback fired when the value changes."
97
+ },
98
+ "ref": {
99
+ "type": "Ref<HTMLSpanElement>",
100
+ "required": false,
101
+ "description": "Ref. Optional. Type: Ref<HTMLSpanElement>."
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "DropdownItem",
3
+ "description": "Dropdown Item component from the inputs module.",
4
+ "styles": {
5
+ "base": [
6
+ "@smwb/ui-styles/less/foundation.less",
7
+ "@smwb/ui-styles/less/theme.less"
8
+ ],
9
+ "entries": [
10
+ "@smwb/ui-styles/less/components/selectField/selectField.entry.less"
11
+ ],
12
+ "dependencies": [],
13
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/selectField/selectField.entry.less\";"
14
+ },
15
+ "props": {
16
+ "menuMaxHeight": {
17
+ "type": "number | undefined",
18
+ "required": false,
19
+ "description": "Menu Max Height. Optional. Type: number | undefined."
20
+ },
21
+ "menuMiddleware": {
22
+ "type": "Middleware[] | undefined",
23
+ "required": false,
24
+ "description": "Menu Middleware. Optional. Type: Middleware[] | undefined."
25
+ },
26
+ "menuNoItemsMessage": {
27
+ "type": "JSX.Element",
28
+ "required": false,
29
+ "description": "Menu No Items Message. Optional. Type: JSX.Element."
30
+ },
31
+ "search": {
32
+ "type": "boolean | undefined",
33
+ "required": false,
34
+ "description": "Search. Optional. Type: boolean | undefined."
35
+ },
36
+ "onSearchInputChange": {
37
+ "type": "((event: SearchEvent) => void) | undefined",
38
+ "required": false,
39
+ "description": "On Search Input Change. Optional. Type: ((event: SearchEvent) => void) | undefined."
40
+ },
41
+ "items": {
42
+ "type": "DropdownItem[]",
43
+ "required": true,
44
+ "description": "Breadcrumb or navigation items."
45
+ },
46
+ "searchValue": {
47
+ "type": "string | number | undefined",
48
+ "required": false,
49
+ "description": "Search Value. Optional. Type: string | number | undefined."
50
+ },
51
+ "isOpen": {
52
+ "type": "boolean",
53
+ "required": true,
54
+ "description": "Controlled open state of the floating surface."
55
+ },
56
+ "onClose": {
57
+ "type": "() => void",
58
+ "required": true,
59
+ "description": "Callback fired when the user dismisses the component."
60
+ },
61
+ "anchorElement": {
62
+ "type": "Accessor<HTMLElement | null>",
63
+ "required": true,
64
+ "description": "DOM element used as the positioning anchor."
65
+ },
66
+ "value": {
67
+ "type": "undefined | null | string | number | (undefined | null | string | number)[]",
68
+ "required": false,
69
+ "description": "Controlled value."
70
+ },
71
+ "onItemClick": {
72
+ "type": "(event: ItemEvent, item: DropdownItem) => void",
73
+ "required": true,
74
+ "description": "On Item Click. Required. Type: (event: ItemEvent, item: DropdownItem) => void."
75
+ },
76
+ "isLoading": {
77
+ "type": "boolean | undefined",
78
+ "required": false,
79
+ "description": "Is Loading. Optional. Type: boolean | undefined."
80
+ },
81
+ "optionRenderer": {
82
+ "type": "((args: import(\"../../navigation/menu\").MenuItemProps) => JSX.Element) | undefined",
83
+ "required": false,
84
+ "description": "Option Renderer. Optional. Type: ((args: import(\"../../navigation/menu\").MenuItemProps) => JSX.Element) | undefined."
85
+ },
86
+ "container": {
87
+ "type": "HTMLElement | undefined",
88
+ "required": false,
89
+ "description": "Container. Optional. Type: HTMLElement | undefined."
90
+ },
91
+ "createOption": {
92
+ "type": "{ text: JSX.Element; onCreate: (event: ItemEvent) => void } | undefined",
93
+ "required": false,
94
+ "description": "Create Option. Optional. Type: { text: JSX.Element; onCreate: (event: ItemEvent) => void } | undefined."
95
+ },
96
+ "virtualized": {
97
+ "type": "boolean | undefined",
98
+ "required": false,
99
+ "description": "Virtualized. Optional. Type: boolean | undefined."
100
+ },
101
+ "itemHeight": {
102
+ "type": "number | undefined",
103
+ "required": false,
104
+ "description": "Item Height. Optional. Type: number | undefined."
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,203 @@
1
+ {
2
+ "name": "SelectField",
3
+ "description": "Dropdown select input with searchable options.",
4
+ "styles": {
5
+ "base": [
6
+ "@smwb/ui-styles/less/foundation.less",
7
+ "@smwb/ui-styles/less/theme.less"
8
+ ],
9
+ "entries": [
10
+ "@smwb/ui-styles/less/components/selectField/selectField.entry.less"
11
+ ],
12
+ "dependencies": [
13
+ "@smwb/ui-styles/less/components/chip/chip.entry.less",
14
+ "@smwb/ui-styles/less/components/icon/icon.entry.less",
15
+ "@smwb/ui-styles/less/components/menu/menu.entry.less",
16
+ "@smwb/ui-styles/less/components/progressIndicator/progressIndicator.entry.less",
17
+ "@smwb/ui-styles/less/components/textField/textField.entry.less"
18
+ ],
19
+ "importExample": "@import (less) \"node_modules/@smwb/ui-styles/less/foundation.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/theme.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/selectField/selectField.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/chip/chip.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/icon/icon.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/menu/menu.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/progressIndicator/progressIndicator.entry.less\";\n@import (less) \"node_modules/@smwb/ui-styles/less/components/textField/textField.entry.less\";"
20
+ },
21
+ "props": {
22
+ "class": {
23
+ "type": "string",
24
+ "required": false,
25
+ "description": "Class. Optional. Type: string."
26
+ },
27
+ "value": {
28
+ "type": "SelectValue | undefined",
29
+ "required": false,
30
+ "description": "Controlled value."
31
+ },
32
+ "defaultValue": {
33
+ "type": "null | string | number | (string | number)[]",
34
+ "required": false,
35
+ "description": "Initial uncontrolled value."
36
+ },
37
+ "onChange": {
38
+ "type": "OnSelectChange",
39
+ "required": false,
40
+ "description": "Callback fired when the value changes."
41
+ },
42
+ "disabled": {
43
+ "type": "boolean",
44
+ "required": false,
45
+ "description": "Whether the control is disabled and non-interactive."
46
+ },
47
+ "readOnly": {
48
+ "type": "boolean",
49
+ "required": false,
50
+ "description": "Whether the value is read-only."
51
+ },
52
+ "name": {
53
+ "type": "string | undefined",
54
+ "required": false,
55
+ "description": "Form field name submitted with the value."
56
+ },
57
+ "multiple": {
58
+ "type": "boolean",
59
+ "required": false,
60
+ "description": "Whether multiple values or selections are allowed."
61
+ },
62
+ "menuMaxHeight": {
63
+ "type": "number",
64
+ "required": false,
65
+ "description": "Menu Max Height. Optional. Type: number."
66
+ },
67
+ "menuMiddleware": {
68
+ "type": "DropdownItemProps[\"menuMiddleware\"]",
69
+ "required": false,
70
+ "description": "Menu Middleware. Optional. Type: DropdownItemProps[\"menuMiddleware\"]."
71
+ },
72
+ "menuNoItemsMessage": {
73
+ "type": "JSX.Element",
74
+ "required": false,
75
+ "description": "Menu No Items Message. Optional. Type: JSX.Element."
76
+ },
77
+ "menuContainer": {
78
+ "type": "HTMLElement",
79
+ "required": false,
80
+ "description": "Menu Container. Optional. Type: HTMLElement."
81
+ },
82
+ "search": {
83
+ "type": "true | false | \"menu\"",
84
+ "required": false,
85
+ "description": "Search. Optional. Type: true | false | \"menu\"."
86
+ },
87
+ "chips": {
88
+ "type": "boolean",
89
+ "required": false,
90
+ "description": "Chips. Optional. Type: boolean."
91
+ },
92
+ "isFocused": {
93
+ "type": "boolean",
94
+ "required": false,
95
+ "description": "Is Focused. Optional. Type: boolean."
96
+ },
97
+ "error": {
98
+ "type": "boolean",
99
+ "required": false,
100
+ "description": "Whether the control is in an error state."
101
+ },
102
+ "items": {
103
+ "type": "DropdownItem[]",
104
+ "required": true,
105
+ "description": "Breadcrumb or navigation items."
106
+ },
107
+ "label": {
108
+ "type": "string",
109
+ "required": false,
110
+ "description": "Visible label text."
111
+ },
112
+ "variant": {
113
+ "type": "\"outlined\" | \"filled\"",
114
+ "required": false,
115
+ "description": "Visual style variant."
116
+ },
117
+ "fullWidth": {
118
+ "type": "boolean",
119
+ "required": false,
120
+ "description": "Whether the component spans the full width of its container."
121
+ },
122
+ "helperText": {
123
+ "type": "JSX.Element",
124
+ "required": false,
125
+ "description": "Supplementary hint text displayed below the control."
126
+ },
127
+ "onSearch": {
128
+ "type": "(e: SearchEvent) => void",
129
+ "required": false,
130
+ "description": "On Search. Optional. Type: (e: SearchEvent) => void."
131
+ },
132
+ "isLoading": {
133
+ "type": "boolean",
134
+ "required": false,
135
+ "description": "Is Loading. Optional. Type: boolean."
136
+ },
137
+ "resetSearch": {
138
+ "type": "() => void",
139
+ "required": false,
140
+ "description": "Reset Search. Optional. Type: () => void."
141
+ },
142
+ "inline": {
143
+ "type": "boolean",
144
+ "required": false,
145
+ "description": "Inline. Optional. Type: boolean."
146
+ },
147
+ "endAdornment": {
148
+ "type": "JSX.Element",
149
+ "required": false,
150
+ "description": "End Adornment. Optional. Type: JSX.Element."
151
+ },
152
+ "hideSelectArrowIcon": {
153
+ "type": "boolean",
154
+ "required": false,
155
+ "description": "Hide Select Arrow Icon. Optional. Type: boolean."
156
+ },
157
+ "optionRenderer": {
158
+ "type": "(args: MenuItemProps) => JSX.Element",
159
+ "required": false,
160
+ "description": "Option Renderer. Optional. Type: (args: MenuItemProps) => JSX.Element."
161
+ },
162
+ "clearable": {
163
+ "type": "boolean",
164
+ "required": false,
165
+ "description": "Clearable. Optional. Type: boolean."
166
+ },
167
+ "creatable": {
168
+ "type": "boolean",
169
+ "required": false,
170
+ "description": "Creatable. Optional. Type: boolean."
171
+ },
172
+ "onCreate": {
173
+ "type": "(inputValue: string, event: SelectEvent) => void",
174
+ "required": false,
175
+ "description": "On Create. Optional. Type: (inputValue: string, event: SelectEvent) => void."
176
+ },
177
+ "virtualized": {
178
+ "type": "boolean",
179
+ "required": false,
180
+ "description": "Virtualized. Optional. Type: boolean."
181
+ },
182
+ "itemHeight": {
183
+ "type": "number",
184
+ "required": false,
185
+ "description": "Item Height. Optional. Type: number."
186
+ },
187
+ "aria-label": {
188
+ "type": "string",
189
+ "required": false,
190
+ "description": "Accessible label when no visible title is present."
191
+ },
192
+ "id": {
193
+ "type": "string",
194
+ "required": false,
195
+ "description": "Unique identifier for the root element."
196
+ },
197
+ "ref": {
198
+ "type": "Ref<HTMLSpanElement>",
199
+ "required": false,
200
+ "description": "Ref. Optional. Type: Ref<HTMLSpanElement>."
201
+ }
202
+ }
203
+ }