diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md index b307e9a8..ab1d96a8 100644 --- a/COMPONENT_INDEX.md +++ b/COMPONENT_INDEX.md @@ -1,6 +1,6 @@ # Component Index -> 161 components exported from carbon-components-svelte@0.30.0. +> 166 components exported from carbon-components-svelte@0.30.0. ## Components @@ -24,6 +24,11 @@ - [`ComposedModal`](#composedmodal) - [`Content`](#content) - [`ContentSwitcher`](#contentswitcher) +- [`ContextMenu`](#contextmenu) +- [`ContextMenuDivider`](#contextmenudivider) +- [`ContextMenuGroup`](#contextmenugroup) +- [`ContextMenuOption`](#contextmenuoption) +- [`ContextMenuRadioGroup`](#contextmenuradiogroup) - [`Copy`](#copy) - [`CopyButton`](#copybutton) - [`DataTable`](#datatable) @@ -723,6 +728,116 @@ None. | mouseenter | forwarded | -- | | mouseleave | forwarded | -- | +## `ContextMenu` + +### Props + +| Prop name | Kind | Reactive | Type | Default value | Description | +| :-------- | :--------------- | :------- | :---------------------------------------- | ------------------ | -------------------------------------------------------------------------------- | +| ref | let | Yes | null | HTMLUListElement | null | Obtain a reference to the unordered list HTML element | +| y | let | Yes | number | 0 | Specify the vertical offset of the menu position | +| x | let | Yes | number | 0 | Specify the horizontal offset of the menu position | +| open | let | Yes | boolean | false | Set to `true` to open the menu
Either `x` and `y` must be greater than zero | + +### Slots + +| Slot name | Default | Props | Fallback | +| :-------- | :------ | :---- | :------- | +| -- | Yes | -- | -- | + +### Events + +| Event name | Type | Detail | +| :--------- | :--------- | :----- | +| click | forwarded | -- | +| keydown | forwarded | -- | +| close | dispatched | -- | + +## `ContextMenuDivider` + +### Props + +None. + +### Slots + +None. + +### Events + +None. + +## `ContextMenuGroup` + +### Props + +| Prop name | Kind | Reactive | Type | Default value | Description | +| :---------- | :--------------- | :------- | :-------------------- | --------------- | ---------------------- | +| selectedIds | let | Yes | string[] | [] | -- | +| labelText | let | No | string | "" | Specify the label text | + +### Slots + +| Slot name | Default | Props | Fallback | +| :-------- | :------ | :---- | :------- | +| -- | Yes | -- | -- | + +### Events + +None. + +## `ContextMenuOption` + +### Props + +| Prop name | Kind | Reactive | Type | Default value | Description | +| :----------- | :--------------- | :------- | :----------------------------------------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | +| ref | let | Yes | null | HTMLLIElement | null | Obtain a reference to the list item HTML element | +| selectable | let | Yes | boolean | false | Set to `true` to enable the selectable variant
Automatically set to `true` if `selected` is `true` | +| selected | let | Yes | boolean | false | Set to `true` to use the selected variant | +| icon | let | Yes | typeof import("carbon-icons-svelte").CarbonIcon | -- | Specify the icon from `carbon-icons-svelte` to render
Icon is rendered to the left of the label text | +| indented | let | Yes | boolean | false | Set to `true` to indent the label | +| disabled | let | No | boolean | false | Set to `true` to enable the disabled state | +| labelText | let | No | string | "" | Specify the label text
Alternatively, use the "labelText" slot (e.g., <span slot="labelText">...</span>) | +| shortcutText | let | No | string | "" | Specify the shortcut text
Alternatively, use the "shortcutText" slot (e.g., <span slot="shortcutText">...</span>) | +| id | let | No | string | "ccs-" + Math.random().toString(36) | Specify the id
It's highly recommended to provide an id when using in a selectable/radio menu group | + +### Slots + +| Slot name | Default | Props | Fallback | +| :----------- | :------ | :---- | :-------------------------- | +| -- | Yes | -- | -- | +| labelText | No | -- | {labelText} | +| shortcutText | No | -- | {shortcutText} | + +### Events + +| Event name | Type | Detail | +| :--------- | :--------- | :----- | +| keydown | forwarded | -- | +| mouseenter | forwarded | -- | +| mouseleave | forwarded | -- | +| click | dispatched | -- | + +## `ContextMenuRadioGroup` + +### Props + +| Prop name | Kind | Reactive | Type | Default value | Description | +| :--------- | :--------------- | :------- | :------------------ | --------------- | ------------------------------- | +| selectedId | let | Yes | string | "" | Set the selected radio group id | +| labelText | let | No | string | "" | Specify the label text | + +### Slots + +| Slot name | Default | Props | Fallback | +| :-------- | :------ | :---- | :------- | +| -- | Yes | -- | -- | + +### Events + +None. + ## `Copy` ### Props diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json index 9da9b198..2f714f04 100644 --- a/docs/src/COMPONENT_API.json +++ b/docs/src/COMPONENT_API.json @@ -1,5 +1,5 @@ { - "total": 161, + "total": 166, "components": [ { "moduleName": "Accordion", @@ -1556,6 +1556,243 @@ "typedefs": [], "rest_props": { "type": "Element", "name": "div" } }, + { + "moduleName": "ContextMenu", + "filePath": "src/ContextMenu/ContextMenu.svelte", + "props": [ + { + "name": "open", + "kind": "let", + "description": "Set to `true` to open the menu\nEither `x` and `y` must be greater than zero", + "type": "boolean", + "value": "false", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "x", + "kind": "let", + "description": "Specify the horizontal offset of the menu position", + "type": "number", + "value": "0", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "y", + "kind": "let", + "description": "Specify the vertical offset of the menu position", + "type": "number", + "value": "0", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "ref", + "kind": "let", + "description": "Obtain a reference to the unordered list HTML element", + "type": "null | HTMLUListElement", + "value": "null", + "isFunction": false, + "constant": false, + "reactive": true + } + ], + "slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }], + "events": [ + { "type": "forwarded", "name": "click", "element": "ul" }, + { "type": "forwarded", "name": "keydown", "element": "ul" }, + { "type": "dispatched", "name": "close" } + ], + "typedefs": [], + "rest_props": { "type": "Element", "name": "ul" } + }, + { + "moduleName": "ContextMenuDivider", + "filePath": "src/ContextMenu/ContextMenuDivider.svelte", + "props": [], + "slots": [], + "events": [], + "typedefs": [] + }, + { + "moduleName": "ContextMenuGroup", + "filePath": "src/ContextMenu/ContextMenuGroup.svelte", + "props": [ + { + "name": "selectedIds", + "kind": "let", + "type": "string[]", + "value": "[]", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "labelText", + "kind": "let", + "description": "Specify the label text", + "type": "string", + "value": "\"\"", + "isFunction": false, + "constant": false, + "reactive": false + } + ], + "slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }], + "events": [], + "typedefs": [] + }, + { + "moduleName": "ContextMenuOption", + "filePath": "src/ContextMenu/ContextMenuOption.svelte", + "props": [ + { + "name": "disabled", + "kind": "let", + "description": "Set to `true` to enable the disabled state", + "type": "boolean", + "value": "false", + "isFunction": false, + "constant": false, + "reactive": false + }, + { + "name": "indented", + "kind": "let", + "description": "Set to `true` to indent the label", + "type": "boolean", + "value": "false", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "icon", + "kind": "let", + "description": "Specify the icon from `carbon-icons-svelte` to render\nIcon is rendered to the left of the label text", + "type": "typeof import(\"carbon-icons-svelte\").CarbonIcon", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "labelText", + "kind": "let", + "description": "Specify the label text\nAlternatively, use the \"labelText\" slot (e.g., ...)", + "type": "string", + "value": "\"\"", + "isFunction": false, + "constant": false, + "reactive": false + }, + { + "name": "selected", + "kind": "let", + "description": "Set to `true` to use the selected variant", + "type": "boolean", + "value": "false", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "selectable", + "kind": "let", + "description": "Set to `true` to enable the selectable variant\nAutomatically set to `true` if `selected` is `true`", + "type": "boolean", + "value": "false", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "shortcutText", + "kind": "let", + "description": "Specify the shortcut text\nAlternatively, use the \"shortcutText\" slot (e.g., ...)", + "type": "string", + "value": "\"\"", + "isFunction": false, + "constant": false, + "reactive": false + }, + { + "name": "id", + "kind": "let", + "description": "Specify the id\nIt's highly recommended to provide an id when using in a selectable/radio menu group", + "type": "string", + "value": "\"ccs-\" + Math.random().toString(36)", + "isFunction": false, + "constant": false, + "reactive": false + }, + { + "name": "ref", + "kind": "let", + "description": "Obtain a reference to the list item HTML element", + "type": "null | HTMLLIElement", + "value": "null", + "isFunction": false, + "constant": false, + "reactive": true + } + ], + "slots": [ + { "name": "__default__", "default": true, "slot_props": "{}" }, + { + "name": "labelText", + "default": false, + "fallback": "{labelText}", + "slot_props": "{}" + }, + { + "name": "shortcutText", + "default": false, + "fallback": "{shortcutText}", + "slot_props": "{}" + } + ], + "events": [ + { "type": "forwarded", "name": "keydown", "element": "li" }, + { "type": "forwarded", "name": "mouseenter", "element": "li" }, + { "type": "forwarded", "name": "mouseleave", "element": "li" }, + { "type": "dispatched", "name": "click" } + ], + "typedefs": [], + "rest_props": { "type": "Element", "name": "li" } + }, + { + "moduleName": "ContextMenuRadioGroup", + "filePath": "src/ContextMenu/ContextMenuRadioGroup.svelte", + "props": [ + { + "name": "selectedId", + "kind": "let", + "description": "Set the selected radio group id", + "type": "string", + "value": "\"\"", + "isFunction": false, + "constant": false, + "reactive": true + }, + { + "name": "labelText", + "kind": "let", + "description": "Specify the label text", + "type": "string", + "value": "\"\"", + "isFunction": false, + "constant": false, + "reactive": false + } + ], + "slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }], + "events": [], + "typedefs": [] + }, { "moduleName": "Copy", "filePath": "src/Copy/Copy.svelte", diff --git a/src/ContextMenu/ContextMenuGroup.svelte b/src/ContextMenu/ContextMenuGroup.svelte index 68781d1f..2ae256c7 100644 --- a/src/ContextMenu/ContextMenuGroup.svelte +++ b/src/ContextMenu/ContextMenuGroup.svelte @@ -2,7 +2,8 @@ /** @type {string[]} */ export let selectedIds = []; - export let label = ""; + /** Specify the label text */ + export let labelText = ""; import { setContext } from "svelte"; import { writable } from "svelte/store"; @@ -29,7 +30,7 @@
  • -