@mantine/spotlight 4.0.6 → 4.0.9

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.
@@ -21,6 +21,7 @@ function ActionsList({
21
21
  query,
22
22
  nothingFoundMessage,
23
23
  highlightQuery,
24
+ highlightColor,
24
25
  radius
25
26
  }) {
26
27
  const { classes } = ActionsList_styles['default'](null, { classNames, styles, name: "Spotlight" });
@@ -36,7 +37,8 @@ function ActionsList({
36
37
  styles,
37
38
  radius,
38
39
  onTrigger: () => onActionTrigger(item.item),
39
- highlightQuery
40
+ highlightQuery,
41
+ highlightColor
40
42
  });
41
43
  }
42
44
  return /* @__PURE__ */ React__default.createElement(core.Text, {
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsList.js","sources":["../../src/ActionsList/ActionsList.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, ClassNames, Text, MantineNumberSize } from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport type { DefaultActionProps, DefaultActionStylesNames } from '../DefaultAction/DefaultAction';\nimport useStyles from './ActionsList.styles';\n\nexport type ActionsListStylesNames = ClassNames<typeof useStyles> | DefaultActionStylesNames;\ntype GetGroupOptionsItem<T extends any[]> = { type: 'item'; item: T[number]; index: number };\ntype GetGroupOptionsLabel = { type: 'label'; label: string };\n\nexport interface ActionsListProps extends DefaultProps<ActionsListStylesNames> {\n actions: (GetGroupOptionsItem<SpotlightAction[]> | GetGroupOptionsLabel)[];\n actionComponent?: React.FC<DefaultActionProps>;\n hovered: number;\n query: string;\n nothingFoundMessage?: React.ReactNode;\n onActionHover(index: number): void;\n onActionTrigger(action: SpotlightAction): void;\n highlightQuery: boolean;\n radius: MantineNumberSize;\n}\n\nexport function ActionsList({\n actions,\n styles,\n classNames,\n actionComponent: Action,\n hovered,\n onActionHover,\n onActionTrigger,\n query,\n nothingFoundMessage,\n highlightQuery,\n radius,\n}: ActionsListProps) {\n const { classes } = useStyles(null, { classNames, styles, name: 'Spotlight' });\n\n const items = actions.map((item) => {\n if (item.type === 'item') {\n return (\n <Action\n query={query}\n key={item.item.id}\n action={item.item}\n hovered={item.index === hovered}\n onMouseEnter={() => onActionHover(item.index)}\n classNames={classNames}\n styles={styles}\n radius={radius}\n onTrigger={() => onActionTrigger(item.item)}\n highlightQuery={highlightQuery}\n />\n );\n }\n\n return (\n <Text className={classes.actionsGroup} color=\"dimmed\" key={item.label}>\n {item.label}\n </Text>\n );\n });\n\n const shouldRenderActions =\n items.length > 0 || (!!nothingFoundMessage && query.trim().length > 0);\n\n return (\n <>\n {shouldRenderActions && (\n <div className={classes.actions}>\n {items.length > 0 ? (\n items\n ) : (\n <Text color=\"dimmed\" className={classes.nothingFound} align=\"center\" size=\"lg\" py=\"md\">\n {nothingFoundMessage}\n </Text>\n )}\n </div>\n )}\n </>\n );\n}\n\nActionsList.displayName = '@mantine/spotlight/ActionsList';\n"],"names":["useStyles","React","Text"],"mappings":";;;;;;;;;;;;AAGO,SAAS,WAAW,CAAC;AAC5B,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,OAAO;AACT,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,KAAK;AACP,EAAE,mBAAmB;AACrB,EAAE,cAAc;AAChB,EAAE,MAAM;AACR,CAAC,EAAE;AACH,EAAE,MAAM,EAAE,OAAO,EAAE,GAAGA,6BAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9B,MAAM,uBAAuBC,cAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACzD,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,MAAM,EAAE,IAAI,CAAC,IAAI;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;AACvC,QAAQ,YAAY,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,QAAQ,cAAc;AACtB,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,uBAAuBA,cAAK,CAAC,aAAa,CAACC,SAAI,EAAE;AACrD,MAAM,SAAS,EAAE,OAAO,CAAC,YAAY;AACrC,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,GAAG,EAAE,IAAI,CAAC,KAAK;AACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,EAAE,uBAAuBD,cAAK,CAAC,aAAa,CAACA,cAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,oBAAoBA,cAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACrI,IAAI,SAAS,EAAE,OAAO,CAAC,OAAO;AAC9B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,mBAAmBA,cAAK,CAAC,aAAa,CAACC,SAAI,EAAE;AAC1E,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,gCAAgC;;;;"}
1
+ {"version":3,"file":"ActionsList.js","sources":["../../src/ActionsList/ActionsList.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, ClassNames, Text, MantineNumberSize, MantineColor } from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport type { DefaultActionProps, DefaultActionStylesNames } from '../DefaultAction/DefaultAction';\nimport useStyles from './ActionsList.styles';\n\nexport type ActionsListStylesNames = ClassNames<typeof useStyles> | DefaultActionStylesNames;\ntype GetGroupOptionsItem<T extends any[]> = { type: 'item'; item: T[number]; index: number };\ntype GetGroupOptionsLabel = { type: 'label'; label: string };\n\nexport interface ActionsListProps extends DefaultProps<ActionsListStylesNames> {\n actions: (GetGroupOptionsItem<SpotlightAction[]> | GetGroupOptionsLabel)[];\n actionComponent?: React.FC<DefaultActionProps>;\n hovered: number;\n query: string;\n nothingFoundMessage?: React.ReactNode;\n onActionHover(index: number): void;\n onActionTrigger(action: SpotlightAction): void;\n highlightQuery: boolean;\n highlightColor: MantineColor;\n radius: MantineNumberSize;\n}\n\nexport function ActionsList({\n actions,\n styles,\n classNames,\n actionComponent: Action,\n hovered,\n onActionHover,\n onActionTrigger,\n query,\n nothingFoundMessage,\n highlightQuery,\n highlightColor,\n radius,\n}: ActionsListProps) {\n const { classes } = useStyles(null, { classNames, styles, name: 'Spotlight' });\n\n const items = actions.map((item) => {\n if (item.type === 'item') {\n return (\n <Action\n query={query}\n key={item.item.id}\n action={item.item}\n hovered={item.index === hovered}\n onMouseEnter={() => onActionHover(item.index)}\n classNames={classNames}\n styles={styles}\n radius={radius}\n onTrigger={() => onActionTrigger(item.item)}\n highlightQuery={highlightQuery}\n highlightColor={highlightColor}\n />\n );\n }\n\n return (\n <Text className={classes.actionsGroup} color=\"dimmed\" key={item.label}>\n {item.label}\n </Text>\n );\n });\n\n const shouldRenderActions =\n items.length > 0 || (!!nothingFoundMessage && query.trim().length > 0);\n\n return (\n <>\n {shouldRenderActions && (\n <div className={classes.actions}>\n {items.length > 0 ? (\n items\n ) : (\n <Text color=\"dimmed\" className={classes.nothingFound} align=\"center\" size=\"lg\" py=\"md\">\n {nothingFoundMessage}\n </Text>\n )}\n </div>\n )}\n </>\n );\n}\n\nActionsList.displayName = '@mantine/spotlight/ActionsList';\n"],"names":["useStyles","React","Text"],"mappings":";;;;;;;;;;;;AAGO,SAAS,WAAW,CAAC;AAC5B,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,OAAO;AACT,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,KAAK;AACP,EAAE,mBAAmB;AACrB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,MAAM;AACR,CAAC,EAAE;AACH,EAAE,MAAM,EAAE,OAAO,EAAE,GAAGA,6BAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9B,MAAM,uBAAuBC,cAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACzD,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,MAAM,EAAE,IAAI,CAAC,IAAI;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;AACvC,QAAQ,YAAY,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,QAAQ,cAAc;AACtB,QAAQ,cAAc;AACtB,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,uBAAuBA,cAAK,CAAC,aAAa,CAACC,SAAI,EAAE;AACrD,MAAM,SAAS,EAAE,OAAO,CAAC,YAAY;AACrC,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,GAAG,EAAE,IAAI,CAAC,KAAK;AACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,EAAE,uBAAuBD,cAAK,CAAC,aAAa,CAACA,cAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,oBAAoBA,cAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACrI,IAAI,SAAS,EAAE,OAAO,CAAC,OAAO;AAC9B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,mBAAmBA,cAAK,CAAC,aAAa,CAACC,SAAI,EAAE;AAC1E,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,gCAAgC;;;;"}
@@ -46,6 +46,7 @@ function DefaultAction(_a) {
46
46
  hovered,
47
47
  onTrigger,
48
48
  highlightQuery,
49
+ highlightColor,
49
50
  query,
50
51
  radius
51
52
  } = _b, others = __objRest(_b, [
@@ -55,6 +56,7 @@ function DefaultAction(_a) {
55
56
  "hovered",
56
57
  "onTrigger",
57
58
  "highlightQuery",
59
+ "highlightColor",
58
60
  "query",
59
61
  "radius"
60
62
  ]);
@@ -71,6 +73,7 @@ function DefaultAction(_a) {
71
73
  }, action.icon), /* @__PURE__ */ React__default.createElement("div", {
72
74
  className: classes.actionBody
73
75
  }, /* @__PURE__ */ React__default.createElement(core.Highlight, {
76
+ highlightColor,
74
77
  highlight: highlightQuery ? query : null
75
78
  }, action.title), action.description && /* @__PURE__ */ React__default.createElement(core.Text, {
76
79
  color: "dimmed",
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAction.js","sources":["../../src/DefaultAction/DefaultAction.tsx"],"sourcesContent":["import React from 'react';\nimport {\n DefaultProps,\n ClassNames,\n Highlight,\n UnstyledButton,\n Group,\n Center,\n Text,\n MantineNumberSize,\n} from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport useStyles from './DefaultAction.styles';\n\nexport type DefaultActionStylesNames = ClassNames<typeof useStyles>;\n\nexport interface DefaultActionProps\n extends DefaultProps<DefaultActionStylesNames>,\n React.ComponentPropsWithoutRef<'button'> {\n action: SpotlightAction;\n hovered: boolean;\n onTrigger(): void;\n highlightQuery: boolean;\n query: string;\n radius: MantineNumberSize;\n}\n\nexport function DefaultAction({\n action,\n styles,\n classNames,\n hovered,\n onTrigger,\n highlightQuery,\n query,\n radius,\n ...others\n}: DefaultActionProps) {\n const { classes, cx } = useStyles({ radius }, { styles, classNames, name: 'Spotlight' });\n\n return (\n <UnstyledButton\n className={cx(classes.action, { [classes.actionHovered]: hovered })}\n tabIndex={-1}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onTrigger}\n {...others}\n >\n <Group noWrap>\n {action.icon && <Center className={classes.actionIcon}>{action.icon}</Center>}\n\n <div className={classes.actionBody}>\n <Highlight highlight={highlightQuery ? query : null}>{action.title}</Highlight>\n\n {action.description && (\n <Text color=\"dimmed\" size=\"xs\">\n {action.description}\n </Text>\n )}\n </div>\n </Group>\n </UnstyledButton>\n );\n}\n\nDefaultAction.displayName = '@mantine/spotlight/DefaultAction';\n"],"names":["useStyles","React","UnstyledButton","Group","Center","Highlight","Text"],"mappings":";;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAUK,SAAS,aAAa,CAAC,EAAE,EAAE;AAClC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,cAAc;AAClB,IAAI,KAAK;AACT,IAAI,MAAM;AACV,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,gBAAgB;AACpB,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAGA,+BAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3F,EAAE,uBAAuBC,cAAK,CAAC,aAAa,CAACC,mBAAc,EAAE,cAAc,CAAC;AAC5E,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC;AACvE,IAAI,QAAQ,EAAE,CAAC,CAAC;AAChB,IAAI,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE;AAClD,IAAI,OAAO,EAAE,SAAS;AACtB,GAAG,EAAE,MAAM,CAAC,kBAAkBD,cAAK,CAAC,aAAa,CAACE,UAAK,EAAE;AACzD,IAAI,MAAM,EAAE,IAAI;AAChB,GAAG,EAAE,MAAM,CAAC,IAAI,oBAAoBF,cAAK,CAAC,aAAa,CAACG,WAAM,EAAE;AAChE,IAAI,SAAS,EAAE,OAAO,CAAC,UAAU;AACjC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkBH,cAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC9D,IAAI,SAAS,EAAE,OAAO,CAAC,UAAU;AACjC,GAAG,kBAAkBA,cAAK,CAAC,aAAa,CAACI,cAAS,EAAE;AACpD,IAAI,SAAS,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI;AAC5C,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW,oBAAoBJ,cAAK,CAAC,aAAa,CAACK,SAAI,EAAE;AACpF,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE,IAAI;AACd,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD,aAAa,CAAC,WAAW,GAAG,kCAAkC;;;;"}
1
+ {"version":3,"file":"DefaultAction.js","sources":["../../src/DefaultAction/DefaultAction.tsx"],"sourcesContent":["import React from 'react';\nimport {\n DefaultProps,\n ClassNames,\n Highlight,\n UnstyledButton,\n Group,\n Center,\n Text,\n MantineNumberSize,\n MantineColor,\n} from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport useStyles from './DefaultAction.styles';\n\nexport type DefaultActionStylesNames = ClassNames<typeof useStyles>;\n\nexport interface DefaultActionProps\n extends DefaultProps<DefaultActionStylesNames>,\n React.ComponentPropsWithoutRef<'button'> {\n action: SpotlightAction;\n hovered: boolean;\n onTrigger(): void;\n highlightQuery: boolean;\n highlightColor: MantineColor;\n query: string;\n radius: MantineNumberSize;\n}\n\nexport function DefaultAction({\n action,\n styles,\n classNames,\n hovered,\n onTrigger,\n highlightQuery,\n highlightColor,\n query,\n radius,\n ...others\n}: DefaultActionProps) {\n const { classes, cx } = useStyles({ radius }, { styles, classNames, name: 'Spotlight' });\n\n return (\n <UnstyledButton\n className={cx(classes.action, { [classes.actionHovered]: hovered })}\n tabIndex={-1}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onTrigger}\n {...others}\n >\n <Group noWrap>\n {action.icon && <Center className={classes.actionIcon}>{action.icon}</Center>}\n\n <div className={classes.actionBody}>\n <Highlight highlightColor={highlightColor} highlight={highlightQuery ? query : null}>\n {action.title}\n </Highlight>\n\n {action.description && (\n <Text color=\"dimmed\" size=\"xs\">\n {action.description}\n </Text>\n )}\n </div>\n </Group>\n </UnstyledButton>\n );\n}\n\nDefaultAction.displayName = '@mantine/spotlight/DefaultAction';\n"],"names":["useStyles","React","UnstyledButton","Group","Center","Highlight","Text"],"mappings":"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"}
@@ -62,6 +62,7 @@ function Spotlight(_a) {
62
62
  centered = false,
63
63
  closeOnActionTrigger = true,
64
64
  highlightQuery = false,
65
+ highlightColor,
65
66
  maxWidth = 600,
66
67
  topOffset = 120,
67
68
  className,
@@ -92,6 +93,7 @@ function Spotlight(_a) {
92
93
  "centered",
93
94
  "closeOnActionTrigger",
94
95
  "highlightQuery",
96
+ "highlightColor",
95
97
  "maxWidth",
96
98
  "topOffset",
97
99
  "className",
@@ -197,6 +199,7 @@ function Spotlight(_a) {
197
199
  onMouseEnter: resetHovered
198
200
  }), /* @__PURE__ */ React__default.createElement(ActionsWrapper, null, /* @__PURE__ */ React__default.createElement(ActionsList.ActionsList, {
199
201
  highlightQuery,
202
+ highlightColor,
200
203
  actions: groupedWithLabels,
201
204
  actionComponent,
202
205
  hovered,
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.js","sources":["../../src/Spotlight/Spotlight.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n OptionalPortal,\n GroupedTransition,\n MantineTransition,\n Overlay,\n Paper,\n DefaultProps,\n ClassNames,\n MantineShadow,\n TextInput,\n getDefaultZIndex,\n getGroupedOptions,\n MantineNumberSize,\n} from '@mantine/core';\nimport { useScrollLock, useFocusTrap, useDidUpdate, useFocusReturn } from '@mantine/hooks';\nimport { DefaultAction, DefaultActionProps } from '../DefaultAction/DefaultAction';\nimport { ActionsList, ActionsListStylesNames } from '../ActionsList/ActionsList';\nimport type { SpotlightAction } from '../types';\nimport { filterActions } from './filter-actions/filter-actions';\nimport useStyles from './Spotlight.styles';\n\nexport type SpotlightStylesNames = ClassNames<typeof useStyles> | ActionsListStylesNames;\n\nexport interface InnerSpotlightProps\n extends DefaultProps<SpotlightStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Should spotlight be rendered within Portal */\n withinPortal?: boolean;\n\n /** Premade transition or transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms, set to 0 to disable all transitions */\n transitionDuration?: number;\n\n /** Backdrop overlay color, e.g. #000 */\n overlayColor?: string;\n\n /** Backdrop overlay opacity (0-1), e.g. 0.65 */\n overlayOpacity?: number;\n\n /** Backdrop overlay blur in px */\n overlayBlur?: number;\n\n /** Value from theme.shadows or any valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** Radius from theme.radius, or number to set border-radius in px, defaults to theme.defaultRadius */\n radius?: MantineNumberSize;\n\n /** Should spotlight be rendered in the center of the screen */\n centered?: boolean;\n\n /** Max spotlight width */\n maxWidth?: number;\n\n /** Top offset when spotlight is not centered */\n topOffset?: number;\n\n /** Search input placeholder */\n searchPlaceholder?: string;\n\n /** Search input icon */\n searchIcon?: React.ReactNode;\n\n /** Function used to determine how actions will be filtered based on user input */\n filter?(query: string, actions: SpotlightAction[]): SpotlightAction[];\n\n /** Message displayed when actions were not found */\n nothingFoundMessage?: React.ReactNode;\n\n /** Number of actions displayed at a time */\n limit?: number;\n\n /** Should spotlight be closed when action is triggered */\n closeOnActionTrigger?: boolean;\n\n /** Component that is used to render actions */\n actionComponent?: React.FC<DefaultActionProps>;\n\n /** Component that is used to wrap actions list */\n actionsWrapperComponent?: React.FC<{ children: React.ReactNode }> | string;\n\n /** Spotlight z-index */\n zIndex?: number;\n\n /** Should user query be highlighted in actions title */\n highlightQuery?: boolean;\n}\n\ninterface SpotlightProps extends InnerSpotlightProps {\n actions: SpotlightAction[];\n onClose(): void;\n opened: boolean;\n query: string;\n onQueryChange(query: string): void;\n}\n\nexport function Spotlight({\n query,\n onQueryChange,\n actions,\n onClose,\n opened,\n withinPortal,\n transition = 'pop',\n transitionDuration,\n classNames,\n styles,\n overlayColor = '#000',\n overlayOpacity = 0.25,\n overlayBlur = 3,\n shadow = 'md',\n radius = 'sm',\n centered = false,\n closeOnActionTrigger = true,\n highlightQuery = false,\n maxWidth = 600,\n topOffset = 120,\n className,\n searchPlaceholder,\n searchIcon,\n filter = filterActions,\n nothingFoundMessage,\n limit = 10,\n actionComponent = DefaultAction,\n actionsWrapperComponent: ActionsWrapper = 'div',\n zIndex = getDefaultZIndex('modal'),\n ...others\n}: SpotlightProps) {\n const [hovered, setHovered] = useState(-1);\n const { classes, cx } = useStyles(\n { centered, maxWidth, topOffset, radius },\n { classNames, styles, name: 'Spotlight' }\n );\n\n const [, lockScroll] = useScrollLock();\n const focusTrapRef = useFocusTrap(opened);\n\n const resetHovered = () => setHovered(-1);\n const handleClose = () => {\n resetHovered();\n onClose();\n };\n\n useFocusReturn({ transitionDuration: 0, opened });\n\n const filteredActions = filter(query, actions).slice(0, limit);\n const groupedWithLabels = getGroupedOptions(filteredActions).items;\n const groupedActions = groupedWithLabels\n .map((item) => (item.type === 'item' ? item.item : undefined))\n .filter((item) => item);\n\n useDidUpdate(() => {\n if (groupedActions.length - 1 < hovered) {\n setHovered(groupedActions.length - 1);\n }\n }, [groupedActions.length]);\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => (current < groupedActions.length - 1 ? current + 1 : 0));\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => (current > 0 ? current - 1 : groupedActions.length - 1));\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n const action = groupedActions[hovered];\n action?.onTrigger?.(action);\n if (closeOnActionTrigger && action?.onTrigger) {\n handleClose();\n }\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n handleClose();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onQueryChange(event.currentTarget.value);\n if (hovered === -1) {\n setHovered(0);\n }\n };\n\n return (\n <OptionalPortal withinPortal={withinPortal} zIndex={zIndex}>\n <GroupedTransition\n onExited={() => lockScroll(false)}\n onEntered={() => lockScroll(true)}\n mounted={opened}\n transitions={{\n spotlight: {\n duration: transitionDuration,\n transition,\n timingFunction: 'ease',\n },\n overlay: {\n duration: transitionDuration / 2,\n transition: 'fade',\n timingFunction: 'ease',\n },\n }}\n >\n {(transitionStyles) => (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.inner} ref={focusTrapRef}>\n <Paper\n style={transitionStyles.spotlight}\n className={classes.spotlight}\n shadow={shadow}\n radius={radius}\n onMouseLeave={resetHovered}\n >\n <TextInput\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n classNames={{ input: classes.searchInput }}\n size=\"lg\"\n placeholder={searchPlaceholder}\n icon={searchIcon}\n onMouseEnter={resetHovered}\n />\n <ActionsWrapper>\n <ActionsList\n highlightQuery={highlightQuery}\n actions={groupedWithLabels}\n actionComponent={actionComponent}\n hovered={hovered}\n query={query}\n nothingFoundMessage={nothingFoundMessage}\n onActionHover={setHovered}\n onActionTrigger={(action) => {\n action.onTrigger(action);\n closeOnActionTrigger && handleClose();\n }}\n styles={styles}\n classNames={classNames}\n radius={radius}\n />\n </ActionsWrapper>\n </Paper>\n\n <div style={transitionStyles.overlay}>\n <Overlay\n className={classes.overlay}\n zIndex={1}\n onMouseDown={handleClose}\n color={overlayColor}\n opacity={overlayOpacity}\n blur={overlayBlur}\n />\n </div>\n </div>\n </div>\n )}\n </GroupedTransition>\n </OptionalPortal>\n );\n}\n\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\n"],"names":["filterActions","DefaultAction","getDefaultZIndex","useState","useStyles","useScrollLock","useFocusTrap","useFocusReturn","getGroupedOptions","useDidUpdate","React","OptionalPortal","GroupedTransition","Paper","TextInput","ActionsList","Overlay"],"mappings":"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"}
1
+ {"version":3,"file":"Spotlight.js","sources":["../../src/Spotlight/Spotlight.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n OptionalPortal,\n GroupedTransition,\n MantineTransition,\n Overlay,\n Paper,\n DefaultProps,\n ClassNames,\n MantineShadow,\n TextInput,\n getDefaultZIndex,\n getGroupedOptions,\n MantineNumberSize,\n MantineColor,\n} from '@mantine/core';\nimport { useScrollLock, useFocusTrap, useDidUpdate, useFocusReturn } from '@mantine/hooks';\nimport { DefaultAction, DefaultActionProps } from '../DefaultAction/DefaultAction';\nimport { ActionsList, ActionsListStylesNames } from '../ActionsList/ActionsList';\nimport type { SpotlightAction } from '../types';\nimport { filterActions } from './filter-actions/filter-actions';\nimport useStyles from './Spotlight.styles';\n\nexport type SpotlightStylesNames = ClassNames<typeof useStyles> | ActionsListStylesNames;\n\nexport interface InnerSpotlightProps\n extends DefaultProps<SpotlightStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Should spotlight be rendered within Portal */\n withinPortal?: boolean;\n\n /** Premade transition or transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms, set to 0 to disable all transitions */\n transitionDuration?: number;\n\n /** Backdrop overlay color, e.g. #000 */\n overlayColor?: string;\n\n /** Backdrop overlay opacity (0-1), e.g. 0.65 */\n overlayOpacity?: number;\n\n /** Backdrop overlay blur in px */\n overlayBlur?: number;\n\n /** Value from theme.shadows or any valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** Radius from theme.radius, or number to set border-radius in px, defaults to theme.defaultRadius */\n radius?: MantineNumberSize;\n\n /** Should spotlight be rendered in the center of the screen */\n centered?: boolean;\n\n /** Max spotlight width */\n maxWidth?: number;\n\n /** Top offset when spotlight is not centered */\n topOffset?: number;\n\n /** Search input placeholder */\n searchPlaceholder?: string;\n\n /** Search input icon */\n searchIcon?: React.ReactNode;\n\n /** Function used to determine how actions will be filtered based on user input */\n filter?(query: string, actions: SpotlightAction[]): SpotlightAction[];\n\n /** Message displayed when actions were not found */\n nothingFoundMessage?: React.ReactNode;\n\n /** Number of actions displayed at a time */\n limit?: number;\n\n /** Should spotlight be closed when action is triggered */\n closeOnActionTrigger?: boolean;\n\n /** Component that is used to render actions */\n actionComponent?: React.FC<DefaultActionProps>;\n\n /** Component that is used to wrap actions list */\n actionsWrapperComponent?: React.FC<{ children: React.ReactNode }> | string;\n\n /** Spotlight z-index */\n zIndex?: number;\n\n /** Should user query be highlighted in actions title */\n highlightQuery?: boolean;\n\n /** The highlight color */\n highlightColor?: MantineColor;\n}\n\ninterface SpotlightProps extends InnerSpotlightProps {\n actions: SpotlightAction[];\n onClose(): void;\n opened: boolean;\n query: string;\n onQueryChange(query: string): void;\n}\n\nexport function Spotlight({\n query,\n onQueryChange,\n actions,\n onClose,\n opened,\n withinPortal,\n transition = 'pop',\n transitionDuration,\n classNames,\n styles,\n overlayColor = '#000',\n overlayOpacity = 0.25,\n overlayBlur = 3,\n shadow = 'md',\n radius = 'sm',\n centered = false,\n closeOnActionTrigger = true,\n highlightQuery = false,\n highlightColor,\n maxWidth = 600,\n topOffset = 120,\n className,\n searchPlaceholder,\n searchIcon,\n filter = filterActions,\n nothingFoundMessage,\n limit = 10,\n actionComponent = DefaultAction,\n actionsWrapperComponent: ActionsWrapper = 'div',\n zIndex = getDefaultZIndex('modal'),\n ...others\n}: SpotlightProps) {\n const [hovered, setHovered] = useState(-1);\n const { classes, cx } = useStyles(\n { centered, maxWidth, topOffset, radius },\n { classNames, styles, name: 'Spotlight' }\n );\n\n const [, lockScroll] = useScrollLock();\n const focusTrapRef = useFocusTrap(opened);\n\n const resetHovered = () => setHovered(-1);\n const handleClose = () => {\n resetHovered();\n onClose();\n };\n\n useFocusReturn({ transitionDuration: 0, opened });\n\n const filteredActions = filter(query, actions).slice(0, limit);\n const groupedWithLabels = getGroupedOptions(filteredActions).items;\n const groupedActions = groupedWithLabels\n .map((item) => (item.type === 'item' ? item.item : undefined))\n .filter((item) => item);\n\n useDidUpdate(() => {\n if (groupedActions.length - 1 < hovered) {\n setHovered(groupedActions.length - 1);\n }\n }, [groupedActions.length]);\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => (current < groupedActions.length - 1 ? current + 1 : 0));\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => (current > 0 ? current - 1 : groupedActions.length - 1));\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n const action = groupedActions[hovered];\n action?.onTrigger?.(action);\n if (closeOnActionTrigger && action?.onTrigger) {\n handleClose();\n }\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n handleClose();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onQueryChange(event.currentTarget.value);\n if (hovered === -1) {\n setHovered(0);\n }\n };\n\n return (\n <OptionalPortal withinPortal={withinPortal} zIndex={zIndex}>\n <GroupedTransition\n onExited={() => lockScroll(false)}\n onEntered={() => lockScroll(true)}\n mounted={opened}\n transitions={{\n spotlight: {\n duration: transitionDuration,\n transition,\n timingFunction: 'ease',\n },\n overlay: {\n duration: transitionDuration / 2,\n transition: 'fade',\n timingFunction: 'ease',\n },\n }}\n >\n {(transitionStyles) => (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.inner} ref={focusTrapRef}>\n <Paper\n style={transitionStyles.spotlight}\n className={classes.spotlight}\n shadow={shadow}\n radius={radius}\n onMouseLeave={resetHovered}\n >\n <TextInput\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n classNames={{ input: classes.searchInput }}\n size=\"lg\"\n placeholder={searchPlaceholder}\n icon={searchIcon}\n onMouseEnter={resetHovered}\n />\n <ActionsWrapper>\n <ActionsList\n highlightQuery={highlightQuery}\n highlightColor={highlightColor}\n actions={groupedWithLabels}\n actionComponent={actionComponent}\n hovered={hovered}\n query={query}\n nothingFoundMessage={nothingFoundMessage}\n onActionHover={setHovered}\n onActionTrigger={(action) => {\n action.onTrigger(action);\n closeOnActionTrigger && handleClose();\n }}\n styles={styles}\n classNames={classNames}\n radius={radius}\n />\n </ActionsWrapper>\n </Paper>\n\n <div style={transitionStyles.overlay}>\n <Overlay\n className={classes.overlay}\n zIndex={1}\n onMouseDown={handleClose}\n color={overlayColor}\n opacity={overlayOpacity}\n blur={overlayBlur}\n />\n </div>\n </div>\n </div>\n )}\n </GroupedTransition>\n </OptionalPortal>\n );\n}\n\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\n"],"names":["filterActions","DefaultAction","getDefaultZIndex","useState","useStyles","useScrollLock","useFocusTrap","useFocusReturn","getGroupedOptions","useDidUpdate","React","OptionalPortal","GroupedTransition","Paper","TextInput","ActionsList","Overlay"],"mappings":"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"}
@@ -63,7 +63,10 @@ function SpotlightProvider(_a) {
63
63
  ]);
64
64
  const timeoutRef = React.useRef(-1);
65
65
  const [query, setQuery] = React.useState("");
66
- const [actions, { registerActions, removeActions, triggerAction }] = useActionsState.useActionsState(initialActions, query);
66
+ const [actions, { registerActions, updateActions, removeActions, triggerAction }] = useActionsState.useActionsState(initialActions, query);
67
+ hooks.useDidUpdate(() => {
68
+ updateActions(initialActions);
69
+ }, [initialActions]);
67
70
  const handleQueryChange = (value) => {
68
71
  setQuery(value);
69
72
  onQueryChange == null ? void 0 : onQueryChange(value);
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightProvider.js","sources":["../src/SpotlightProvider.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useDisclosure } from '@mantine/hooks';\nimport { useActionsState } from './use-actions-state/use-actions-state';\nimport { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts';\nimport { Spotlight, InnerSpotlightProps } from './Spotlight/Spotlight';\nimport type { SpotlightAction } from './types';\nimport { SpotlightContext } from './Spotlight.context';\n\nexport interface SpotlightProviderProps extends InnerSpotlightProps {\n /** Actions list */\n actions: SpotlightAction[] | ((query: string) => SpotlightAction[]);\n\n /** Your application */\n children?: React.ReactNode;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Called when user enters text in search input */\n onQueryChange?(query: string): void;\n\n /** Keyboard shortcut or list of shortcuts to trigger spotlight */\n shortcut?: string | string[] | null;\n\n /** Should search be cleared when spotlight closes */\n cleanQueryOnClose?: boolean;\n}\n\nexport function SpotlightProvider({\n actions: initialActions,\n children,\n shortcut = 'mod + K',\n onSpotlightClose,\n onSpotlightOpen,\n onQueryChange,\n cleanQueryOnClose = true,\n transitionDuration = 150,\n ...others\n}: SpotlightProviderProps) {\n const timeoutRef = useRef<number>(-1);\n const [query, setQuery] = useState('');\n const [actions, { registerActions, removeActions, triggerAction }] = useActionsState(\n initialActions,\n query\n );\n\n const handleQueryChange = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n\n const [opened, { open, close, toggle }] = useDisclosure(false, {\n onClose: () => {\n onSpotlightClose?.();\n if (cleanQueryOnClose) {\n timeoutRef.current = window.setTimeout(() => {\n handleQueryChange('');\n }, transitionDuration);\n }\n },\n onOpen: () => {\n onSpotlightOpen?.();\n window.clearTimeout(timeoutRef.current);\n },\n });\n\n useSpotlightShortcuts(shortcut, open);\n\n return (\n <SpotlightContext.Provider\n value={{\n openSpotlight: open,\n closeSpotlight: close,\n toggleSpotlight: toggle,\n registerActions,\n removeActions,\n triggerAction,\n opened,\n actions,\n query,\n }}\n >\n <Spotlight\n actions={actions}\n onClose={close}\n opened={opened}\n query={query}\n onQueryChange={handleQueryChange}\n transitionDuration={transitionDuration}\n {...others}\n />\n {children}\n </SpotlightContext.Provider>\n );\n}\n\nSpotlightProvider.displayName = '@mantine/spotlight/SpotlightProvider';\n"],"names":["useRef","useState","useActionsState","useDisclosure","useSpotlightShortcuts","React","SpotlightContext","Spotlight"],"mappings":"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"}
1
+ {"version":3,"file":"SpotlightProvider.js","sources":["../src/SpotlightProvider.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useDidUpdate, useDisclosure } from '@mantine/hooks';\nimport { useActionsState } from './use-actions-state/use-actions-state';\nimport { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts';\nimport { Spotlight, InnerSpotlightProps } from './Spotlight/Spotlight';\nimport type { SpotlightAction } from './types';\nimport { SpotlightContext } from './Spotlight.context';\n\nexport interface SpotlightProviderProps extends InnerSpotlightProps {\n /** Actions list */\n actions: SpotlightAction[] | ((query: string) => SpotlightAction[]);\n\n /** Your application */\n children?: React.ReactNode;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Called when user enters text in search input */\n onQueryChange?(query: string): void;\n\n /** Keyboard shortcut or list of shortcuts to trigger spotlight */\n shortcut?: string | string[] | null;\n\n /** Should search be cleared when spotlight closes */\n cleanQueryOnClose?: boolean;\n}\n\nexport function SpotlightProvider({\n actions: initialActions,\n children,\n shortcut = 'mod + K',\n onSpotlightClose,\n onSpotlightOpen,\n onQueryChange,\n cleanQueryOnClose = true,\n transitionDuration = 150,\n ...others\n}: SpotlightProviderProps) {\n const timeoutRef = useRef<number>(-1);\n const [query, setQuery] = useState('');\n const [actions, { registerActions, updateActions, removeActions, triggerAction }] =\n useActionsState(initialActions, query);\n\n useDidUpdate(() => {\n updateActions(initialActions);\n }, [initialActions]);\n\n const handleQueryChange = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n\n const [opened, { open, close, toggle }] = useDisclosure(false, {\n onClose: () => {\n onSpotlightClose?.();\n if (cleanQueryOnClose) {\n timeoutRef.current = window.setTimeout(() => {\n handleQueryChange('');\n }, transitionDuration);\n }\n },\n onOpen: () => {\n onSpotlightOpen?.();\n window.clearTimeout(timeoutRef.current);\n },\n });\n\n useSpotlightShortcuts(shortcut, open);\n\n return (\n <SpotlightContext.Provider\n value={{\n openSpotlight: open,\n closeSpotlight: close,\n toggleSpotlight: toggle,\n registerActions,\n removeActions,\n triggerAction,\n opened,\n actions,\n query,\n }}\n >\n <Spotlight\n actions={actions}\n onClose={close}\n opened={opened}\n query={query}\n onQueryChange={handleQueryChange}\n transitionDuration={transitionDuration}\n {...others}\n />\n {children}\n </SpotlightContext.Provider>\n );\n}\n\nSpotlightProvider.displayName = '@mantine/spotlight/SpotlightProvider';\n"],"names":["useRef","useState","useActionsState","useDidUpdate","useDisclosure","useSpotlightShortcuts","React","SpotlightContext","Spotlight"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAOK,SAAS,iBAAiB,CAAC,EAAE,EAAE;AACtC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,QAAQ;AACZ,IAAI,QAAQ,GAAG,SAAS;AACxB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,iBAAiB,GAAG,IAAI;AAC5B,IAAI,kBAAkB,GAAG,GAAG;AAC5B,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AACxB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC,CAAC;AACzC,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,GAAGC,+BAAe,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC7H,EAAEC,kBAAY,CAAC,MAAM;AACrB,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;AAClC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AACvB,EAAE,MAAM,iBAAiB,GAAG,CAAC,KAAK,KAAK;AACvC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,IAAI,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAGC,mBAAa,CAAC,KAAK,EAAE;AACjE,IAAI,OAAO,EAAE,MAAM;AACnB,MAAM,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,EAAE,CAAC;AAC7D,MAAM,IAAI,iBAAiB,EAAE;AAC7B,QAAQ,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AACrD,UAAU,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAChC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAC/B,OAAO;AACP,KAAK;AACL,IAAI,MAAM,EAAE,MAAM;AAClB,MAAM,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,EAAE,CAAC;AAC3D,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAEC,2CAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACxC,EAAE,uBAAuBC,cAAK,CAAC,aAAa,CAACC,kCAAgB,CAAC,QAAQ,EAAE;AACxE,IAAI,KAAK,EAAE;AACX,MAAM,aAAa,EAAE,IAAI;AACzB,MAAM,cAAc,EAAE,KAAK;AAC3B,MAAM,eAAe,EAAE,MAAM;AAC7B,MAAM,eAAe;AACrB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,KAAK;AACX,KAAK;AACL,GAAG,kBAAkBD,cAAK,CAAC,aAAa,CAACE,mBAAS,EAAE,cAAc,CAAC;AACnE,IAAI,OAAO;AACX,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,aAAa,EAAE,iBAAiB;AACpC,IAAI,kBAAkB;AACtB,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzB,CAAC;AACD,iBAAiB,CAAC,WAAW,GAAG,sCAAsC;;;;"}
@@ -47,6 +47,7 @@ function useActionsState(initialActions, query) {
47
47
  setActions(prepareActions(initialActions(query)));
48
48
  }
49
49
  }, [query]);
50
+ const updateActions = (payload) => setActions(prepareActions(typeof payload === "function" ? payload(query) : payload));
50
51
  const registerActions = (payload) => setActions((current) => prepareActions([...current, ...payload]));
51
52
  const removeActions = (ids) => setActions((current) => current.filter((action) => !ids.includes(action.id)));
52
53
  const triggerAction = (id) => {
@@ -58,6 +59,7 @@ function useActionsState(initialActions, query) {
58
59
  actions,
59
60
  {
60
61
  registerActions,
62
+ updateActions,
61
63
  removeActions,
62
64
  triggerAction
63
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-actions-state.js","sources":["../../src/use-actions-state/use-actions-state.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { randomId } from '@mantine/hooks';\nimport type { SpotlightAction } from '../types';\n\nfunction prepareAction(action: SpotlightAction) {\n return { ...action, id: action.id || randomId() };\n}\n\nfunction filterDuplicateActions(actions: SpotlightAction[]) {\n const ids = [];\n\n return actions\n .reduceRight<SpotlightAction[]>((acc, action) => {\n if (!ids.includes(action.id)) {\n ids.push(action.id);\n acc.push(action);\n }\n\n return acc;\n }, [])\n .reverse();\n}\n\nfunction prepareActions(initialActions: SpotlightAction[]) {\n return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));\n}\n\nexport function useActionsState(\n initialActions: SpotlightAction[] | ((query: string) => SpotlightAction[]),\n query: string\n) {\n const [actions, setActions] = useState(\n prepareActions(typeof initialActions === 'function' ? initialActions(query) : initialActions)\n );\n\n useEffect(() => {\n if (typeof initialActions === 'function') {\n setActions(prepareActions(initialActions(query)));\n }\n }, [query]);\n\n const registerActions = (payload: SpotlightAction[]) =>\n setActions((current) => prepareActions([...current, ...payload]));\n\n const removeActions = (ids: string[]) =>\n setActions((current) => current.filter((action) => !ids.includes(action.id)));\n\n const triggerAction = (id: string) => {\n const action = actions.find((item) => item.id === id);\n action?.onTrigger?.(action);\n };\n\n return [\n actions,\n {\n registerActions,\n removeActions,\n triggerAction,\n },\n ] as const;\n}\n"],"names":["randomId","useState","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-actions-state.js","sources":["../../src/use-actions-state/use-actions-state.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { randomId } from '@mantine/hooks';\nimport type { SpotlightAction } from '../types';\n\nfunction prepareAction(action: SpotlightAction) {\n return { ...action, id: action.id || randomId() };\n}\n\nfunction filterDuplicateActions(actions: SpotlightAction[]) {\n const ids = [];\n\n return actions\n .reduceRight<SpotlightAction[]>((acc, action) => {\n if (!ids.includes(action.id)) {\n ids.push(action.id);\n acc.push(action);\n }\n\n return acc;\n }, [])\n .reverse();\n}\n\nfunction prepareActions(initialActions: SpotlightAction[]) {\n return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));\n}\n\nexport function useActionsState(\n initialActions: SpotlightAction[] | ((query: string) => SpotlightAction[]),\n query: string\n) {\n const [actions, setActions] = useState(\n prepareActions(typeof initialActions === 'function' ? initialActions(query) : initialActions)\n );\n\n useEffect(() => {\n if (typeof initialActions === 'function') {\n setActions(prepareActions(initialActions(query)));\n }\n }, [query]);\n\n const updateActions = (payload: SpotlightAction[] | ((query: string) => SpotlightAction[])) =>\n setActions(prepareActions(typeof payload === 'function' ? payload(query) : payload));\n\n const registerActions = (payload: SpotlightAction[]) =>\n setActions((current) => prepareActions([...current, ...payload]));\n\n const removeActions = (ids: string[]) =>\n setActions((current) => current.filter((action) => !ids.includes(action.id)));\n\n const triggerAction = (id: string) => {\n const action = actions.find((item) => item.id === id);\n action?.onTrigger?.(action);\n };\n\n return [\n actions,\n {\n registerActions,\n updateActions,\n removeActions,\n triggerAction,\n },\n ] as const;\n}\n"],"names":["randomId","useState","useEffect"],"mappings":"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"}
@@ -13,6 +13,7 @@ function ActionsList({
13
13
  query,
14
14
  nothingFoundMessage,
15
15
  highlightQuery,
16
+ highlightColor,
16
17
  radius
17
18
  }) {
18
19
  const { classes } = useStyles(null, { classNames, styles, name: "Spotlight" });
@@ -28,7 +29,8 @@ function ActionsList({
28
29
  styles,
29
30
  radius,
30
31
  onTrigger: () => onActionTrigger(item.item),
31
- highlightQuery
32
+ highlightQuery,
33
+ highlightColor
32
34
  });
33
35
  }
34
36
  return /* @__PURE__ */ React.createElement(Text, {
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsList.js","sources":["../../src/ActionsList/ActionsList.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, ClassNames, Text, MantineNumberSize } from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport type { DefaultActionProps, DefaultActionStylesNames } from '../DefaultAction/DefaultAction';\nimport useStyles from './ActionsList.styles';\n\nexport type ActionsListStylesNames = ClassNames<typeof useStyles> | DefaultActionStylesNames;\ntype GetGroupOptionsItem<T extends any[]> = { type: 'item'; item: T[number]; index: number };\ntype GetGroupOptionsLabel = { type: 'label'; label: string };\n\nexport interface ActionsListProps extends DefaultProps<ActionsListStylesNames> {\n actions: (GetGroupOptionsItem<SpotlightAction[]> | GetGroupOptionsLabel)[];\n actionComponent?: React.FC<DefaultActionProps>;\n hovered: number;\n query: string;\n nothingFoundMessage?: React.ReactNode;\n onActionHover(index: number): void;\n onActionTrigger(action: SpotlightAction): void;\n highlightQuery: boolean;\n radius: MantineNumberSize;\n}\n\nexport function ActionsList({\n actions,\n styles,\n classNames,\n actionComponent: Action,\n hovered,\n onActionHover,\n onActionTrigger,\n query,\n nothingFoundMessage,\n highlightQuery,\n radius,\n}: ActionsListProps) {\n const { classes } = useStyles(null, { classNames, styles, name: 'Spotlight' });\n\n const items = actions.map((item) => {\n if (item.type === 'item') {\n return (\n <Action\n query={query}\n key={item.item.id}\n action={item.item}\n hovered={item.index === hovered}\n onMouseEnter={() => onActionHover(item.index)}\n classNames={classNames}\n styles={styles}\n radius={radius}\n onTrigger={() => onActionTrigger(item.item)}\n highlightQuery={highlightQuery}\n />\n );\n }\n\n return (\n <Text className={classes.actionsGroup} color=\"dimmed\" key={item.label}>\n {item.label}\n </Text>\n );\n });\n\n const shouldRenderActions =\n items.length > 0 || (!!nothingFoundMessage && query.trim().length > 0);\n\n return (\n <>\n {shouldRenderActions && (\n <div className={classes.actions}>\n {items.length > 0 ? (\n items\n ) : (\n <Text color=\"dimmed\" className={classes.nothingFound} align=\"center\" size=\"lg\" py=\"md\">\n {nothingFoundMessage}\n </Text>\n )}\n </div>\n )}\n </>\n );\n}\n\nActionsList.displayName = '@mantine/spotlight/ActionsList';\n"],"names":[],"mappings":";;;;AAGO,SAAS,WAAW,CAAC;AAC5B,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,OAAO;AACT,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,KAAK;AACP,EAAE,mBAAmB;AACrB,EAAE,cAAc;AAChB,EAAE,MAAM;AACR,CAAC,EAAE;AACH,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9B,MAAM,uBAAuB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACzD,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,MAAM,EAAE,IAAI,CAAC,IAAI;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;AACvC,QAAQ,YAAY,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,QAAQ,cAAc;AACtB,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,uBAAuB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AACrD,MAAM,SAAS,EAAE,OAAO,CAAC,YAAY;AACrC,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,GAAG,EAAE,IAAI,CAAC,KAAK;AACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACrI,IAAI,SAAS,EAAE,OAAO,CAAC,OAAO;AAC9B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,mBAAmB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAC1E,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,gCAAgC;;;;"}
1
+ {"version":3,"file":"ActionsList.js","sources":["../../src/ActionsList/ActionsList.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, ClassNames, Text, MantineNumberSize, MantineColor } from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport type { DefaultActionProps, DefaultActionStylesNames } from '../DefaultAction/DefaultAction';\nimport useStyles from './ActionsList.styles';\n\nexport type ActionsListStylesNames = ClassNames<typeof useStyles> | DefaultActionStylesNames;\ntype GetGroupOptionsItem<T extends any[]> = { type: 'item'; item: T[number]; index: number };\ntype GetGroupOptionsLabel = { type: 'label'; label: string };\n\nexport interface ActionsListProps extends DefaultProps<ActionsListStylesNames> {\n actions: (GetGroupOptionsItem<SpotlightAction[]> | GetGroupOptionsLabel)[];\n actionComponent?: React.FC<DefaultActionProps>;\n hovered: number;\n query: string;\n nothingFoundMessage?: React.ReactNode;\n onActionHover(index: number): void;\n onActionTrigger(action: SpotlightAction): void;\n highlightQuery: boolean;\n highlightColor: MantineColor;\n radius: MantineNumberSize;\n}\n\nexport function ActionsList({\n actions,\n styles,\n classNames,\n actionComponent: Action,\n hovered,\n onActionHover,\n onActionTrigger,\n query,\n nothingFoundMessage,\n highlightQuery,\n highlightColor,\n radius,\n}: ActionsListProps) {\n const { classes } = useStyles(null, { classNames, styles, name: 'Spotlight' });\n\n const items = actions.map((item) => {\n if (item.type === 'item') {\n return (\n <Action\n query={query}\n key={item.item.id}\n action={item.item}\n hovered={item.index === hovered}\n onMouseEnter={() => onActionHover(item.index)}\n classNames={classNames}\n styles={styles}\n radius={radius}\n onTrigger={() => onActionTrigger(item.item)}\n highlightQuery={highlightQuery}\n highlightColor={highlightColor}\n />\n );\n }\n\n return (\n <Text className={classes.actionsGroup} color=\"dimmed\" key={item.label}>\n {item.label}\n </Text>\n );\n });\n\n const shouldRenderActions =\n items.length > 0 || (!!nothingFoundMessage && query.trim().length > 0);\n\n return (\n <>\n {shouldRenderActions && (\n <div className={classes.actions}>\n {items.length > 0 ? (\n items\n ) : (\n <Text color=\"dimmed\" className={classes.nothingFound} align=\"center\" size=\"lg\" py=\"md\">\n {nothingFoundMessage}\n </Text>\n )}\n </div>\n )}\n </>\n );\n}\n\nActionsList.displayName = '@mantine/spotlight/ActionsList';\n"],"names":[],"mappings":";;;;AAGO,SAAS,WAAW,CAAC;AAC5B,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,OAAO;AACT,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,KAAK;AACP,EAAE,mBAAmB;AACrB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,MAAM;AACR,CAAC,EAAE;AACH,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACjF,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9B,MAAM,uBAAuB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACzD,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,MAAM,EAAE,IAAI,CAAC,IAAI;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;AACvC,QAAQ,YAAY,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,SAAS,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,QAAQ,cAAc;AACtB,QAAQ,cAAc;AACtB,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,uBAAuB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AACrD,MAAM,SAAS,EAAE,OAAO,CAAC,YAAY;AACrC,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,GAAG,EAAE,IAAI,CAAC,KAAK;AACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACnG,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACrI,IAAI,SAAS,EAAE,OAAO,CAAC,OAAO;AAC9B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,mBAAmB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAC1E,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,gCAAgC;;;;"}
@@ -38,6 +38,7 @@ function DefaultAction(_a) {
38
38
  hovered,
39
39
  onTrigger,
40
40
  highlightQuery,
41
+ highlightColor,
41
42
  query,
42
43
  radius
43
44
  } = _b, others = __objRest(_b, [
@@ -47,6 +48,7 @@ function DefaultAction(_a) {
47
48
  "hovered",
48
49
  "onTrigger",
49
50
  "highlightQuery",
51
+ "highlightColor",
50
52
  "query",
51
53
  "radius"
52
54
  ]);
@@ -63,6 +65,7 @@ function DefaultAction(_a) {
63
65
  }, action.icon), /* @__PURE__ */ React.createElement("div", {
64
66
  className: classes.actionBody
65
67
  }, /* @__PURE__ */ React.createElement(Highlight, {
68
+ highlightColor,
66
69
  highlight: highlightQuery ? query : null
67
70
  }, action.title), action.description && /* @__PURE__ */ React.createElement(Text, {
68
71
  color: "dimmed",
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAction.js","sources":["../../src/DefaultAction/DefaultAction.tsx"],"sourcesContent":["import React from 'react';\nimport {\n DefaultProps,\n ClassNames,\n Highlight,\n UnstyledButton,\n Group,\n Center,\n Text,\n MantineNumberSize,\n} from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport useStyles from './DefaultAction.styles';\n\nexport type DefaultActionStylesNames = ClassNames<typeof useStyles>;\n\nexport interface DefaultActionProps\n extends DefaultProps<DefaultActionStylesNames>,\n React.ComponentPropsWithoutRef<'button'> {\n action: SpotlightAction;\n hovered: boolean;\n onTrigger(): void;\n highlightQuery: boolean;\n query: string;\n radius: MantineNumberSize;\n}\n\nexport function DefaultAction({\n action,\n styles,\n classNames,\n hovered,\n onTrigger,\n highlightQuery,\n query,\n radius,\n ...others\n}: DefaultActionProps) {\n const { classes, cx } = useStyles({ radius }, { styles, classNames, name: 'Spotlight' });\n\n return (\n <UnstyledButton\n className={cx(classes.action, { [classes.actionHovered]: hovered })}\n tabIndex={-1}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onTrigger}\n {...others}\n >\n <Group noWrap>\n {action.icon && <Center className={classes.actionIcon}>{action.icon}</Center>}\n\n <div className={classes.actionBody}>\n <Highlight highlight={highlightQuery ? query : null}>{action.title}</Highlight>\n\n {action.description && (\n <Text color=\"dimmed\" size=\"xs\">\n {action.description}\n </Text>\n )}\n </div>\n </Group>\n </UnstyledButton>\n );\n}\n\nDefaultAction.displayName = '@mantine/spotlight/DefaultAction';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DefaultAction.js","sources":["../../src/DefaultAction/DefaultAction.tsx"],"sourcesContent":["import React from 'react';\nimport {\n DefaultProps,\n ClassNames,\n Highlight,\n UnstyledButton,\n Group,\n Center,\n Text,\n MantineNumberSize,\n MantineColor,\n} from '@mantine/core';\nimport type { SpotlightAction } from '../types';\nimport useStyles from './DefaultAction.styles';\n\nexport type DefaultActionStylesNames = ClassNames<typeof useStyles>;\n\nexport interface DefaultActionProps\n extends DefaultProps<DefaultActionStylesNames>,\n React.ComponentPropsWithoutRef<'button'> {\n action: SpotlightAction;\n hovered: boolean;\n onTrigger(): void;\n highlightQuery: boolean;\n highlightColor: MantineColor;\n query: string;\n radius: MantineNumberSize;\n}\n\nexport function DefaultAction({\n action,\n styles,\n classNames,\n hovered,\n onTrigger,\n highlightQuery,\n highlightColor,\n query,\n radius,\n ...others\n}: DefaultActionProps) {\n const { classes, cx } = useStyles({ radius }, { styles, classNames, name: 'Spotlight' });\n\n return (\n <UnstyledButton\n className={cx(classes.action, { [classes.actionHovered]: hovered })}\n tabIndex={-1}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onTrigger}\n {...others}\n >\n <Group noWrap>\n {action.icon && <Center className={classes.actionIcon}>{action.icon}</Center>}\n\n <div className={classes.actionBody}>\n <Highlight highlightColor={highlightColor} highlight={highlightQuery ? query : null}>\n {action.title}\n </Highlight>\n\n {action.description && (\n <Text color=\"dimmed\" size=\"xs\">\n {action.description}\n </Text>\n )}\n </div>\n </Group>\n </UnstyledButton>\n );\n}\n\nDefaultAction.displayName = '@mantine/spotlight/DefaultAction';\n"],"names":[],"mappings":"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"}
@@ -54,6 +54,7 @@ function Spotlight(_a) {
54
54
  centered = false,
55
55
  closeOnActionTrigger = true,
56
56
  highlightQuery = false,
57
+ highlightColor,
57
58
  maxWidth = 600,
58
59
  topOffset = 120,
59
60
  className,
@@ -84,6 +85,7 @@ function Spotlight(_a) {
84
85
  "centered",
85
86
  "closeOnActionTrigger",
86
87
  "highlightQuery",
88
+ "highlightColor",
87
89
  "maxWidth",
88
90
  "topOffset",
89
91
  "className",
@@ -189,6 +191,7 @@ function Spotlight(_a) {
189
191
  onMouseEnter: resetHovered
190
192
  }), /* @__PURE__ */ React.createElement(ActionsWrapper, null, /* @__PURE__ */ React.createElement(ActionsList, {
191
193
  highlightQuery,
194
+ highlightColor,
192
195
  actions: groupedWithLabels,
193
196
  actionComponent,
194
197
  hovered,
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.js","sources":["../../src/Spotlight/Spotlight.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n OptionalPortal,\n GroupedTransition,\n MantineTransition,\n Overlay,\n Paper,\n DefaultProps,\n ClassNames,\n MantineShadow,\n TextInput,\n getDefaultZIndex,\n getGroupedOptions,\n MantineNumberSize,\n} from '@mantine/core';\nimport { useScrollLock, useFocusTrap, useDidUpdate, useFocusReturn } from '@mantine/hooks';\nimport { DefaultAction, DefaultActionProps } from '../DefaultAction/DefaultAction';\nimport { ActionsList, ActionsListStylesNames } from '../ActionsList/ActionsList';\nimport type { SpotlightAction } from '../types';\nimport { filterActions } from './filter-actions/filter-actions';\nimport useStyles from './Spotlight.styles';\n\nexport type SpotlightStylesNames = ClassNames<typeof useStyles> | ActionsListStylesNames;\n\nexport interface InnerSpotlightProps\n extends DefaultProps<SpotlightStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Should spotlight be rendered within Portal */\n withinPortal?: boolean;\n\n /** Premade transition or transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms, set to 0 to disable all transitions */\n transitionDuration?: number;\n\n /** Backdrop overlay color, e.g. #000 */\n overlayColor?: string;\n\n /** Backdrop overlay opacity (0-1), e.g. 0.65 */\n overlayOpacity?: number;\n\n /** Backdrop overlay blur in px */\n overlayBlur?: number;\n\n /** Value from theme.shadows or any valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** Radius from theme.radius, or number to set border-radius in px, defaults to theme.defaultRadius */\n radius?: MantineNumberSize;\n\n /** Should spotlight be rendered in the center of the screen */\n centered?: boolean;\n\n /** Max spotlight width */\n maxWidth?: number;\n\n /** Top offset when spotlight is not centered */\n topOffset?: number;\n\n /** Search input placeholder */\n searchPlaceholder?: string;\n\n /** Search input icon */\n searchIcon?: React.ReactNode;\n\n /** Function used to determine how actions will be filtered based on user input */\n filter?(query: string, actions: SpotlightAction[]): SpotlightAction[];\n\n /** Message displayed when actions were not found */\n nothingFoundMessage?: React.ReactNode;\n\n /** Number of actions displayed at a time */\n limit?: number;\n\n /** Should spotlight be closed when action is triggered */\n closeOnActionTrigger?: boolean;\n\n /** Component that is used to render actions */\n actionComponent?: React.FC<DefaultActionProps>;\n\n /** Component that is used to wrap actions list */\n actionsWrapperComponent?: React.FC<{ children: React.ReactNode }> | string;\n\n /** Spotlight z-index */\n zIndex?: number;\n\n /** Should user query be highlighted in actions title */\n highlightQuery?: boolean;\n}\n\ninterface SpotlightProps extends InnerSpotlightProps {\n actions: SpotlightAction[];\n onClose(): void;\n opened: boolean;\n query: string;\n onQueryChange(query: string): void;\n}\n\nexport function Spotlight({\n query,\n onQueryChange,\n actions,\n onClose,\n opened,\n withinPortal,\n transition = 'pop',\n transitionDuration,\n classNames,\n styles,\n overlayColor = '#000',\n overlayOpacity = 0.25,\n overlayBlur = 3,\n shadow = 'md',\n radius = 'sm',\n centered = false,\n closeOnActionTrigger = true,\n highlightQuery = false,\n maxWidth = 600,\n topOffset = 120,\n className,\n searchPlaceholder,\n searchIcon,\n filter = filterActions,\n nothingFoundMessage,\n limit = 10,\n actionComponent = DefaultAction,\n actionsWrapperComponent: ActionsWrapper = 'div',\n zIndex = getDefaultZIndex('modal'),\n ...others\n}: SpotlightProps) {\n const [hovered, setHovered] = useState(-1);\n const { classes, cx } = useStyles(\n { centered, maxWidth, topOffset, radius },\n { classNames, styles, name: 'Spotlight' }\n );\n\n const [, lockScroll] = useScrollLock();\n const focusTrapRef = useFocusTrap(opened);\n\n const resetHovered = () => setHovered(-1);\n const handleClose = () => {\n resetHovered();\n onClose();\n };\n\n useFocusReturn({ transitionDuration: 0, opened });\n\n const filteredActions = filter(query, actions).slice(0, limit);\n const groupedWithLabels = getGroupedOptions(filteredActions).items;\n const groupedActions = groupedWithLabels\n .map((item) => (item.type === 'item' ? item.item : undefined))\n .filter((item) => item);\n\n useDidUpdate(() => {\n if (groupedActions.length - 1 < hovered) {\n setHovered(groupedActions.length - 1);\n }\n }, [groupedActions.length]);\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => (current < groupedActions.length - 1 ? current + 1 : 0));\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => (current > 0 ? current - 1 : groupedActions.length - 1));\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n const action = groupedActions[hovered];\n action?.onTrigger?.(action);\n if (closeOnActionTrigger && action?.onTrigger) {\n handleClose();\n }\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n handleClose();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onQueryChange(event.currentTarget.value);\n if (hovered === -1) {\n setHovered(0);\n }\n };\n\n return (\n <OptionalPortal withinPortal={withinPortal} zIndex={zIndex}>\n <GroupedTransition\n onExited={() => lockScroll(false)}\n onEntered={() => lockScroll(true)}\n mounted={opened}\n transitions={{\n spotlight: {\n duration: transitionDuration,\n transition,\n timingFunction: 'ease',\n },\n overlay: {\n duration: transitionDuration / 2,\n transition: 'fade',\n timingFunction: 'ease',\n },\n }}\n >\n {(transitionStyles) => (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.inner} ref={focusTrapRef}>\n <Paper\n style={transitionStyles.spotlight}\n className={classes.spotlight}\n shadow={shadow}\n radius={radius}\n onMouseLeave={resetHovered}\n >\n <TextInput\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n classNames={{ input: classes.searchInput }}\n size=\"lg\"\n placeholder={searchPlaceholder}\n icon={searchIcon}\n onMouseEnter={resetHovered}\n />\n <ActionsWrapper>\n <ActionsList\n highlightQuery={highlightQuery}\n actions={groupedWithLabels}\n actionComponent={actionComponent}\n hovered={hovered}\n query={query}\n nothingFoundMessage={nothingFoundMessage}\n onActionHover={setHovered}\n onActionTrigger={(action) => {\n action.onTrigger(action);\n closeOnActionTrigger && handleClose();\n }}\n styles={styles}\n classNames={classNames}\n radius={radius}\n />\n </ActionsWrapper>\n </Paper>\n\n <div style={transitionStyles.overlay}>\n <Overlay\n className={classes.overlay}\n zIndex={1}\n onMouseDown={handleClose}\n color={overlayColor}\n opacity={overlayOpacity}\n blur={overlayBlur}\n />\n </div>\n </div>\n </div>\n )}\n </GroupedTransition>\n </OptionalPortal>\n );\n}\n\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\n"],"names":[],"mappings":";;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAgBK,SAAS,SAAS,CAAC,EAAE,EAAE;AAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,KAAK;AACT,IAAI,aAAa;AACjB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,YAAY;AAChB,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,kBAAkB;AACtB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,YAAY,GAAG,MAAM;AACzB,IAAI,cAAc,GAAG,IAAI;AACzB,IAAI,WAAW,GAAG,CAAC;AACnB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,oBAAoB,GAAG,IAAI;AAC/B,IAAI,cAAc,GAAG,KAAK;AAC1B,IAAI,QAAQ,GAAG,GAAG;AAClB,IAAI,SAAS,GAAG,GAAG;AACnB,IAAI,SAAS;AACb,IAAI,iBAAiB;AACrB,IAAI,UAAU;AACd,IAAI,MAAM,GAAG,aAAa;AAC1B,IAAI,mBAAmB;AACvB,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,eAAe,GAAG,aAAa;AACnC,IAAI,uBAAuB,EAAE,cAAc,GAAG,KAAK;AACnD,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;AACtC,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,OAAO;AACX,IAAI,eAAe;AACnB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,oBAAoB;AACxB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,sBAAsB;AAC1B,IAAI,gBAAgB;AACpB,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,mBAAmB;AACvB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,qBAAqB;AACzB,IAAI,OAAO;AACX,IAAI,iBAAiB;AACrB,IAAI,yBAAyB;AAC7B,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1H,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,aAAa,EAAE,CAAC;AACzC,EAAE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,EAAE,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,MAAM,WAAW,GAAG,MAAM;AAC5B,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG,CAAC;AACJ,EAAE,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,EAAE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjE,EAAE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;AACrE,EAAE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3H,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE;AAC7C,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,EAAE,MAAM,kBAAkB,GAAG,CAAC,KAAK,KAAK;AACxC,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,QAAQ,KAAK,CAAC,IAAI;AACtB,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,UAAU,CAAC,CAAC,OAAO,KAAK,OAAO,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvF,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,SAAS,EAAE;AACtB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,UAAU,CAAC,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvF,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,OAAO,EAAE;AACpB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/C,QAAQ,CAAC,GAAG,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvG,QAAQ,IAAI,oBAAoB,KAAK,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE;AAClF,UAAU,WAAW,EAAE,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,QAAQ,EAAE;AACrB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,WAAW,EAAE,CAAC;AACtB,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAG,CAAC,KAAK,KAAK;AACvC,IAAI,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7C,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE;AACxB,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;AAC7D,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;AAC5D,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC,KAAK,CAAC;AACrC,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC;AACrC,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,WAAW,EAAE;AACjB,MAAM,SAAS,EAAE;AACjB,QAAQ,QAAQ,EAAE,kBAAkB;AACpC,QAAQ,UAAU;AAClB,QAAQ,cAAc,EAAE,MAAM;AAC9B,OAAO;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,QAAQ,EAAE,kBAAkB,GAAG,CAAC;AACxC,QAAQ,UAAU,EAAE,MAAM;AAC1B,QAAQ,cAAc,EAAE,MAAM;AAC9B,OAAO;AACP,KAAK;AACL,GAAG,EAAE,CAAC,gBAAgB,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;AACrF,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;AAC1C,GAAG,EAAE,MAAM,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACzD,IAAI,SAAS,EAAE,OAAO,CAAC,KAAK;AAC5B,IAAI,GAAG,EAAE,YAAY;AACrB,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,KAAK,EAAE,gBAAgB,CAAC,SAAS;AACrC,IAAI,SAAS,EAAE,OAAO,CAAC,SAAS;AAChC,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,YAAY,EAAE,YAAY;AAC9B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;AACpD,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,QAAQ,EAAE,iBAAiB;AAC/B,IAAI,SAAS,EAAE,kBAAkB;AACjC,IAAI,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE;AAC9C,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,WAAW,EAAE,iBAAiB;AAClC,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,YAAY,EAAE,YAAY;AAC9B,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,kBAAkB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;AACjH,IAAI,cAAc;AAClB,IAAI,OAAO,EAAE,iBAAiB;AAC9B,IAAI,eAAe;AACnB,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,mBAAmB;AACvB,IAAI,aAAa,EAAE,UAAU;AAC7B,IAAI,eAAe,EAAE,CAAC,MAAM,KAAK;AACjC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,MAAM,oBAAoB,IAAI,WAAW,EAAE,CAAC;AAC5C,KAAK;AACL,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,MAAM;AACV,GAAG,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACnD,IAAI,KAAK,EAAE,gBAAgB,CAAC,OAAO;AACnC,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAClD,IAAI,SAAS,EAAE,OAAO,CAAC,OAAO;AAC9B,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,KAAK,EAAE,YAAY;AACvB,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,IAAI,EAAE,WAAW;AACrB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,8BAA8B;;;;"}
1
+ {"version":3,"file":"Spotlight.js","sources":["../../src/Spotlight/Spotlight.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n OptionalPortal,\n GroupedTransition,\n MantineTransition,\n Overlay,\n Paper,\n DefaultProps,\n ClassNames,\n MantineShadow,\n TextInput,\n getDefaultZIndex,\n getGroupedOptions,\n MantineNumberSize,\n MantineColor,\n} from '@mantine/core';\nimport { useScrollLock, useFocusTrap, useDidUpdate, useFocusReturn } from '@mantine/hooks';\nimport { DefaultAction, DefaultActionProps } from '../DefaultAction/DefaultAction';\nimport { ActionsList, ActionsListStylesNames } from '../ActionsList/ActionsList';\nimport type { SpotlightAction } from '../types';\nimport { filterActions } from './filter-actions/filter-actions';\nimport useStyles from './Spotlight.styles';\n\nexport type SpotlightStylesNames = ClassNames<typeof useStyles> | ActionsListStylesNames;\n\nexport interface InnerSpotlightProps\n extends DefaultProps<SpotlightStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Should spotlight be rendered within Portal */\n withinPortal?: boolean;\n\n /** Premade transition or transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms, set to 0 to disable all transitions */\n transitionDuration?: number;\n\n /** Backdrop overlay color, e.g. #000 */\n overlayColor?: string;\n\n /** Backdrop overlay opacity (0-1), e.g. 0.65 */\n overlayOpacity?: number;\n\n /** Backdrop overlay blur in px */\n overlayBlur?: number;\n\n /** Value from theme.shadows or any valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** Radius from theme.radius, or number to set border-radius in px, defaults to theme.defaultRadius */\n radius?: MantineNumberSize;\n\n /** Should spotlight be rendered in the center of the screen */\n centered?: boolean;\n\n /** Max spotlight width */\n maxWidth?: number;\n\n /** Top offset when spotlight is not centered */\n topOffset?: number;\n\n /** Search input placeholder */\n searchPlaceholder?: string;\n\n /** Search input icon */\n searchIcon?: React.ReactNode;\n\n /** Function used to determine how actions will be filtered based on user input */\n filter?(query: string, actions: SpotlightAction[]): SpotlightAction[];\n\n /** Message displayed when actions were not found */\n nothingFoundMessage?: React.ReactNode;\n\n /** Number of actions displayed at a time */\n limit?: number;\n\n /** Should spotlight be closed when action is triggered */\n closeOnActionTrigger?: boolean;\n\n /** Component that is used to render actions */\n actionComponent?: React.FC<DefaultActionProps>;\n\n /** Component that is used to wrap actions list */\n actionsWrapperComponent?: React.FC<{ children: React.ReactNode }> | string;\n\n /** Spotlight z-index */\n zIndex?: number;\n\n /** Should user query be highlighted in actions title */\n highlightQuery?: boolean;\n\n /** The highlight color */\n highlightColor?: MantineColor;\n}\n\ninterface SpotlightProps extends InnerSpotlightProps {\n actions: SpotlightAction[];\n onClose(): void;\n opened: boolean;\n query: string;\n onQueryChange(query: string): void;\n}\n\nexport function Spotlight({\n query,\n onQueryChange,\n actions,\n onClose,\n opened,\n withinPortal,\n transition = 'pop',\n transitionDuration,\n classNames,\n styles,\n overlayColor = '#000',\n overlayOpacity = 0.25,\n overlayBlur = 3,\n shadow = 'md',\n radius = 'sm',\n centered = false,\n closeOnActionTrigger = true,\n highlightQuery = false,\n highlightColor,\n maxWidth = 600,\n topOffset = 120,\n className,\n searchPlaceholder,\n searchIcon,\n filter = filterActions,\n nothingFoundMessage,\n limit = 10,\n actionComponent = DefaultAction,\n actionsWrapperComponent: ActionsWrapper = 'div',\n zIndex = getDefaultZIndex('modal'),\n ...others\n}: SpotlightProps) {\n const [hovered, setHovered] = useState(-1);\n const { classes, cx } = useStyles(\n { centered, maxWidth, topOffset, radius },\n { classNames, styles, name: 'Spotlight' }\n );\n\n const [, lockScroll] = useScrollLock();\n const focusTrapRef = useFocusTrap(opened);\n\n const resetHovered = () => setHovered(-1);\n const handleClose = () => {\n resetHovered();\n onClose();\n };\n\n useFocusReturn({ transitionDuration: 0, opened });\n\n const filteredActions = filter(query, actions).slice(0, limit);\n const groupedWithLabels = getGroupedOptions(filteredActions).items;\n const groupedActions = groupedWithLabels\n .map((item) => (item.type === 'item' ? item.item : undefined))\n .filter((item) => item);\n\n useDidUpdate(() => {\n if (groupedActions.length - 1 < hovered) {\n setHovered(groupedActions.length - 1);\n }\n }, [groupedActions.length]);\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => (current < groupedActions.length - 1 ? current + 1 : 0));\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => (current > 0 ? current - 1 : groupedActions.length - 1));\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n const action = groupedActions[hovered];\n action?.onTrigger?.(action);\n if (closeOnActionTrigger && action?.onTrigger) {\n handleClose();\n }\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n handleClose();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onQueryChange(event.currentTarget.value);\n if (hovered === -1) {\n setHovered(0);\n }\n };\n\n return (\n <OptionalPortal withinPortal={withinPortal} zIndex={zIndex}>\n <GroupedTransition\n onExited={() => lockScroll(false)}\n onEntered={() => lockScroll(true)}\n mounted={opened}\n transitions={{\n spotlight: {\n duration: transitionDuration,\n transition,\n timingFunction: 'ease',\n },\n overlay: {\n duration: transitionDuration / 2,\n transition: 'fade',\n timingFunction: 'ease',\n },\n }}\n >\n {(transitionStyles) => (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.inner} ref={focusTrapRef}>\n <Paper\n style={transitionStyles.spotlight}\n className={classes.spotlight}\n shadow={shadow}\n radius={radius}\n onMouseLeave={resetHovered}\n >\n <TextInput\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n classNames={{ input: classes.searchInput }}\n size=\"lg\"\n placeholder={searchPlaceholder}\n icon={searchIcon}\n onMouseEnter={resetHovered}\n />\n <ActionsWrapper>\n <ActionsList\n highlightQuery={highlightQuery}\n highlightColor={highlightColor}\n actions={groupedWithLabels}\n actionComponent={actionComponent}\n hovered={hovered}\n query={query}\n nothingFoundMessage={nothingFoundMessage}\n onActionHover={setHovered}\n onActionTrigger={(action) => {\n action.onTrigger(action);\n closeOnActionTrigger && handleClose();\n }}\n styles={styles}\n classNames={classNames}\n radius={radius}\n />\n </ActionsWrapper>\n </Paper>\n\n <div style={transitionStyles.overlay}>\n <Overlay\n className={classes.overlay}\n zIndex={1}\n onMouseDown={handleClose}\n color={overlayColor}\n opacity={overlayOpacity}\n blur={overlayBlur}\n />\n </div>\n </div>\n </div>\n )}\n </GroupedTransition>\n </OptionalPortal>\n );\n}\n\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React, { useRef, useState } from 'react';
2
- import { useDisclosure } from '@mantine/hooks';
2
+ import { useDidUpdate, useDisclosure } from '@mantine/hooks';
3
3
  import { useActionsState } from './use-actions-state/use-actions-state.js';
4
4
  import { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts.js';
5
5
  import { Spotlight } from './Spotlight/Spotlight.js';
@@ -55,7 +55,10 @@ function SpotlightProvider(_a) {
55
55
  ]);
56
56
  const timeoutRef = useRef(-1);
57
57
  const [query, setQuery] = useState("");
58
- const [actions, { registerActions, removeActions, triggerAction }] = useActionsState(initialActions, query);
58
+ const [actions, { registerActions, updateActions, removeActions, triggerAction }] = useActionsState(initialActions, query);
59
+ useDidUpdate(() => {
60
+ updateActions(initialActions);
61
+ }, [initialActions]);
59
62
  const handleQueryChange = (value) => {
60
63
  setQuery(value);
61
64
  onQueryChange == null ? void 0 : onQueryChange(value);
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightProvider.js","sources":["../src/SpotlightProvider.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useDisclosure } from '@mantine/hooks';\nimport { useActionsState } from './use-actions-state/use-actions-state';\nimport { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts';\nimport { Spotlight, InnerSpotlightProps } from './Spotlight/Spotlight';\nimport type { SpotlightAction } from './types';\nimport { SpotlightContext } from './Spotlight.context';\n\nexport interface SpotlightProviderProps extends InnerSpotlightProps {\n /** Actions list */\n actions: SpotlightAction[] | ((query: string) => SpotlightAction[]);\n\n /** Your application */\n children?: React.ReactNode;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Called when user enters text in search input */\n onQueryChange?(query: string): void;\n\n /** Keyboard shortcut or list of shortcuts to trigger spotlight */\n shortcut?: string | string[] | null;\n\n /** Should search be cleared when spotlight closes */\n cleanQueryOnClose?: boolean;\n}\n\nexport function SpotlightProvider({\n actions: initialActions,\n children,\n shortcut = 'mod + K',\n onSpotlightClose,\n onSpotlightOpen,\n onQueryChange,\n cleanQueryOnClose = true,\n transitionDuration = 150,\n ...others\n}: SpotlightProviderProps) {\n const timeoutRef = useRef<number>(-1);\n const [query, setQuery] = useState('');\n const [actions, { registerActions, removeActions, triggerAction }] = useActionsState(\n initialActions,\n query\n );\n\n const handleQueryChange = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n\n const [opened, { open, close, toggle }] = useDisclosure(false, {\n onClose: () => {\n onSpotlightClose?.();\n if (cleanQueryOnClose) {\n timeoutRef.current = window.setTimeout(() => {\n handleQueryChange('');\n }, transitionDuration);\n }\n },\n onOpen: () => {\n onSpotlightOpen?.();\n window.clearTimeout(timeoutRef.current);\n },\n });\n\n useSpotlightShortcuts(shortcut, open);\n\n return (\n <SpotlightContext.Provider\n value={{\n openSpotlight: open,\n closeSpotlight: close,\n toggleSpotlight: toggle,\n registerActions,\n removeActions,\n triggerAction,\n opened,\n actions,\n query,\n }}\n >\n <Spotlight\n actions={actions}\n onClose={close}\n opened={opened}\n query={query}\n onQueryChange={handleQueryChange}\n transitionDuration={transitionDuration}\n {...others}\n />\n {children}\n </SpotlightContext.Provider>\n );\n}\n\nSpotlightProvider.displayName = '@mantine/spotlight/SpotlightProvider';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpotlightProvider.js","sources":["../src/SpotlightProvider.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useDidUpdate, useDisclosure } from '@mantine/hooks';\nimport { useActionsState } from './use-actions-state/use-actions-state';\nimport { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts';\nimport { Spotlight, InnerSpotlightProps } from './Spotlight/Spotlight';\nimport type { SpotlightAction } from './types';\nimport { SpotlightContext } from './Spotlight.context';\n\nexport interface SpotlightProviderProps extends InnerSpotlightProps {\n /** Actions list */\n actions: SpotlightAction[] | ((query: string) => SpotlightAction[]);\n\n /** Your application */\n children?: React.ReactNode;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Called when user enters text in search input */\n onQueryChange?(query: string): void;\n\n /** Keyboard shortcut or list of shortcuts to trigger spotlight */\n shortcut?: string | string[] | null;\n\n /** Should search be cleared when spotlight closes */\n cleanQueryOnClose?: boolean;\n}\n\nexport function SpotlightProvider({\n actions: initialActions,\n children,\n shortcut = 'mod + K',\n onSpotlightClose,\n onSpotlightOpen,\n onQueryChange,\n cleanQueryOnClose = true,\n transitionDuration = 150,\n ...others\n}: SpotlightProviderProps) {\n const timeoutRef = useRef<number>(-1);\n const [query, setQuery] = useState('');\n const [actions, { registerActions, updateActions, removeActions, triggerAction }] =\n useActionsState(initialActions, query);\n\n useDidUpdate(() => {\n updateActions(initialActions);\n }, [initialActions]);\n\n const handleQueryChange = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n\n const [opened, { open, close, toggle }] = useDisclosure(false, {\n onClose: () => {\n onSpotlightClose?.();\n if (cleanQueryOnClose) {\n timeoutRef.current = window.setTimeout(() => {\n handleQueryChange('');\n }, transitionDuration);\n }\n },\n onOpen: () => {\n onSpotlightOpen?.();\n window.clearTimeout(timeoutRef.current);\n },\n });\n\n useSpotlightShortcuts(shortcut, open);\n\n return (\n <SpotlightContext.Provider\n value={{\n openSpotlight: open,\n closeSpotlight: close,\n toggleSpotlight: toggle,\n registerActions,\n removeActions,\n triggerAction,\n opened,\n actions,\n query,\n }}\n >\n <Spotlight\n actions={actions}\n onClose={close}\n opened={opened}\n query={query}\n onQueryChange={handleQueryChange}\n transitionDuration={transitionDuration}\n {...others}\n />\n {children}\n </SpotlightContext.Provider>\n );\n}\n\nSpotlightProvider.displayName = '@mantine/spotlight/SpotlightProvider';\n"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ function useActionsState(initialActions, query) {
43
43
  setActions(prepareActions(initialActions(query)));
44
44
  }
45
45
  }, [query]);
46
+ const updateActions = (payload) => setActions(prepareActions(typeof payload === "function" ? payload(query) : payload));
46
47
  const registerActions = (payload) => setActions((current) => prepareActions([...current, ...payload]));
47
48
  const removeActions = (ids) => setActions((current) => current.filter((action) => !ids.includes(action.id)));
48
49
  const triggerAction = (id) => {
@@ -54,6 +55,7 @@ function useActionsState(initialActions, query) {
54
55
  actions,
55
56
  {
56
57
  registerActions,
58
+ updateActions,
57
59
  removeActions,
58
60
  triggerAction
59
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-actions-state.js","sources":["../../src/use-actions-state/use-actions-state.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { randomId } from '@mantine/hooks';\nimport type { SpotlightAction } from '../types';\n\nfunction prepareAction(action: SpotlightAction) {\n return { ...action, id: action.id || randomId() };\n}\n\nfunction filterDuplicateActions(actions: SpotlightAction[]) {\n const ids = [];\n\n return actions\n .reduceRight<SpotlightAction[]>((acc, action) => {\n if (!ids.includes(action.id)) {\n ids.push(action.id);\n acc.push(action);\n }\n\n return acc;\n }, [])\n .reverse();\n}\n\nfunction prepareActions(initialActions: SpotlightAction[]) {\n return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));\n}\n\nexport function useActionsState(\n initialActions: SpotlightAction[] | ((query: string) => SpotlightAction[]),\n query: string\n) {\n const [actions, setActions] = useState(\n prepareActions(typeof initialActions === 'function' ? initialActions(query) : initialActions)\n );\n\n useEffect(() => {\n if (typeof initialActions === 'function') {\n setActions(prepareActions(initialActions(query)));\n }\n }, [query]);\n\n const registerActions = (payload: SpotlightAction[]) =>\n setActions((current) => prepareActions([...current, ...payload]));\n\n const removeActions = (ids: string[]) =>\n setActions((current) => current.filter((action) => !ids.includes(action.id)));\n\n const triggerAction = (id: string) => {\n const action = actions.find((item) => item.id === id);\n action?.onTrigger?.(action);\n };\n\n return [\n actions,\n {\n registerActions,\n removeActions,\n triggerAction,\n },\n ] as const;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-actions-state.js","sources":["../../src/use-actions-state/use-actions-state.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { randomId } from '@mantine/hooks';\nimport type { SpotlightAction } from '../types';\n\nfunction prepareAction(action: SpotlightAction) {\n return { ...action, id: action.id || randomId() };\n}\n\nfunction filterDuplicateActions(actions: SpotlightAction[]) {\n const ids = [];\n\n return actions\n .reduceRight<SpotlightAction[]>((acc, action) => {\n if (!ids.includes(action.id)) {\n ids.push(action.id);\n acc.push(action);\n }\n\n return acc;\n }, [])\n .reverse();\n}\n\nfunction prepareActions(initialActions: SpotlightAction[]) {\n return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));\n}\n\nexport function useActionsState(\n initialActions: SpotlightAction[] | ((query: string) => SpotlightAction[]),\n query: string\n) {\n const [actions, setActions] = useState(\n prepareActions(typeof initialActions === 'function' ? initialActions(query) : initialActions)\n );\n\n useEffect(() => {\n if (typeof initialActions === 'function') {\n setActions(prepareActions(initialActions(query)));\n }\n }, [query]);\n\n const updateActions = (payload: SpotlightAction[] | ((query: string) => SpotlightAction[])) =>\n setActions(prepareActions(typeof payload === 'function' ? payload(query) : payload));\n\n const registerActions = (payload: SpotlightAction[]) =>\n setActions((current) => prepareActions([...current, ...payload]));\n\n const removeActions = (ids: string[]) =>\n setActions((current) => current.filter((action) => !ids.includes(action.id)));\n\n const triggerAction = (id: string) => {\n const action = actions.find((item) => item.id === id);\n action?.onTrigger?.(action);\n };\n\n return [\n actions,\n {\n registerActions,\n updateActions,\n removeActions,\n triggerAction,\n },\n ] as const;\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { DefaultProps, ClassNames, MantineNumberSize } from '@mantine/core';
2
+ import { DefaultProps, ClassNames, MantineNumberSize, MantineColor } from '@mantine/core';
3
3
  import type { SpotlightAction } from '../types';
4
4
  import type { DefaultActionProps, DefaultActionStylesNames } from '../DefaultAction/DefaultAction';
5
5
  import useStyles from './ActionsList.styles';
@@ -22,9 +22,10 @@ export interface ActionsListProps extends DefaultProps<ActionsListStylesNames> {
22
22
  onActionHover(index: number): void;
23
23
  onActionTrigger(action: SpotlightAction): void;
24
24
  highlightQuery: boolean;
25
+ highlightColor: MantineColor;
25
26
  radius: MantineNumberSize;
26
27
  }
27
- export declare function ActionsList({ actions, styles, classNames, actionComponent: Action, hovered, onActionHover, onActionTrigger, query, nothingFoundMessage, highlightQuery, radius, }: ActionsListProps): JSX.Element;
28
+ export declare function ActionsList({ actions, styles, classNames, actionComponent: Action, hovered, onActionHover, onActionTrigger, query, nothingFoundMessage, highlightQuery, highlightColor, radius, }: ActionsListProps): JSX.Element;
28
29
  export declare namespace ActionsList {
29
30
  var displayName: string;
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsList.d.ts","sourceRoot":"","sources":["../../src/ActionsList/ActionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAQ,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,oBAAY,sBAAsB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,wBAAwB,CAAC;AAC7F,aAAK,mBAAmB,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7F,aAAK,oBAAoB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAC5E,OAAO,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAC3E,eAAe,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,EAAE,MAAM,EACvB,OAAO,EACP,aAAa,EACb,eAAe,EACf,KAAK,EACL,mBAAmB,EACnB,cAAc,EACd,MAAM,GACP,EAAE,gBAAgB,eA8ClB;yBA1De,WAAW"}
1
+ {"version":3,"file":"ActionsList.d.ts","sourceRoot":"","sources":["../../src/ActionsList/ActionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAQ,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,oBAAY,sBAAsB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,wBAAwB,CAAC;AAC7F,aAAK,mBAAmB,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7F,aAAK,oBAAoB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAC5E,OAAO,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAC3E,eAAe,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,YAAY,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,EAAE,MAAM,EACvB,OAAO,EACP,aAAa,EACb,eAAe,EACf,KAAK,EACL,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,MAAM,GACP,EAAE,gBAAgB,eA+ClB;yBA5De,WAAW"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { DefaultProps, ClassNames, MantineNumberSize } from '@mantine/core';
2
+ import { DefaultProps, ClassNames, MantineNumberSize, MantineColor } from '@mantine/core';
3
3
  import type { SpotlightAction } from '../types';
4
4
  import useStyles from './DefaultAction.styles';
5
5
  export declare type DefaultActionStylesNames = ClassNames<typeof useStyles>;
@@ -8,10 +8,11 @@ export interface DefaultActionProps extends DefaultProps<DefaultActionStylesName
8
8
  hovered: boolean;
9
9
  onTrigger(): void;
10
10
  highlightQuery: boolean;
11
+ highlightColor: MantineColor;
11
12
  query: string;
12
13
  radius: MantineNumberSize;
13
14
  }
14
- export declare function DefaultAction({ action, styles, classNames, hovered, onTrigger, highlightQuery, query, radius, ...others }: DefaultActionProps): JSX.Element;
15
+ export declare function DefaultAction({ action, styles, classNames, hovered, onTrigger, highlightQuery, highlightColor, query, radius, ...others }: DefaultActionProps): JSX.Element;
15
16
  export declare namespace DefaultAction {
16
17
  var displayName: string;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultAction.d.ts","sourceRoot":"","sources":["../../src/DefaultAction/DefaultAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,UAAU,EAMV,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,oBAAY,wBAAwB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAEpE,MAAM,WAAW,kBACf,SAAQ,YAAY,CAAC,wBAAwB,CAAC,EAC5C,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,KAAK,EACL,MAAM,EACN,GAAG,MAAM,EACV,EAAE,kBAAkB,eA0BpB;yBApCe,aAAa"}
1
+ {"version":3,"file":"DefaultAction.d.ts","sourceRoot":"","sources":["../../src/DefaultAction/DefaultAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,UAAU,EAMV,iBAAiB,EACjB,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,oBAAY,wBAAwB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAEpE,MAAM,WAAW,kBACf,SAAQ,YAAY,CAAC,wBAAwB,CAAC,EAC5C,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC;IAC1C,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,YAAY,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,KAAK,EACL,MAAM,EACN,GAAG,MAAM,EACV,EAAE,kBAAkB,eA4BpB;yBAvCe,aAAa"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { MantineTransition, DefaultProps, ClassNames, MantineShadow, MantineNumberSize } from '@mantine/core';
2
+ import { MantineTransition, DefaultProps, ClassNames, MantineShadow, MantineNumberSize, MantineColor } from '@mantine/core';
3
3
  import { DefaultActionProps } from '../DefaultAction/DefaultAction';
4
4
  import { ActionsListStylesNames } from '../ActionsList/ActionsList';
5
5
  import type { SpotlightAction } from '../types';
@@ -50,6 +50,8 @@ export interface InnerSpotlightProps extends DefaultProps<SpotlightStylesNames>,
50
50
  zIndex?: number;
51
51
  /** Should user query be highlighted in actions title */
52
52
  highlightQuery?: boolean;
53
+ /** The highlight color */
54
+ highlightColor?: MantineColor;
53
55
  }
54
56
  interface SpotlightProps extends InnerSpotlightProps {
55
57
  actions: SpotlightAction[];
@@ -58,7 +60,7 @@ interface SpotlightProps extends InnerSpotlightProps {
58
60
  query: string;
59
61
  onQueryChange(query: string): void;
60
62
  }
61
- export declare function Spotlight({ query, onQueryChange, actions, onClose, opened, withinPortal, transition, transitionDuration, classNames, styles, overlayColor, overlayOpacity, overlayBlur, shadow, radius, centered, closeOnActionTrigger, highlightQuery, maxWidth, topOffset, className, searchPlaceholder, searchIcon, filter, nothingFoundMessage, limit, actionComponent, actionsWrapperComponent: ActionsWrapper, zIndex, ...others }: SpotlightProps): JSX.Element;
63
+ export declare function Spotlight({ query, onQueryChange, actions, onClose, opened, withinPortal, transition, transitionDuration, classNames, styles, overlayColor, overlayOpacity, overlayBlur, shadow, radius, centered, closeOnActionTrigger, highlightQuery, highlightColor, maxWidth, topOffset, className, searchPlaceholder, searchIcon, filter, nothingFoundMessage, limit, actionComponent, actionsWrapperComponent: ActionsWrapper, zIndex, ...others }: SpotlightProps): JSX.Element;
62
64
  export declare namespace Spotlight {
63
65
  var displayName: string;
64
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.d.ts","sourceRoot":"","sources":["../../src/Spotlight/Spotlight.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Spotlight.d.ts","sourceRoot":"","sources":["../../src/Spotlight/Spotlight.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightProvider.d.ts","sourceRoot":"","sources":["../src/SpotlightProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAa,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,mBAAmB;IACnB,OAAO,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC,CAAC;IAEpE,uBAAuB;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,kCAAkC;IAClC,eAAe,CAAC,IAAI,IAAI,CAAC;IAEzB,mCAAmC;IACnC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAE1B,mDAAmD;IACnD,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EACR,QAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,iBAAwB,EACxB,kBAAwB,EACxB,GAAG,MAAM,EACV,EAAE,sBAAsB,eAwDxB;yBAlEe,iBAAiB"}
1
+ {"version":3,"file":"SpotlightProvider.d.ts","sourceRoot":"","sources":["../src/SpotlightProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAa,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,mBAAmB;IACnB,OAAO,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC,CAAC;IAEpE,uBAAuB;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,kCAAkC;IAClC,eAAe,CAAC,IAAI,IAAI,CAAC;IAEzB,mCAAmC;IACnC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAE1B,mDAAmD;IACnD,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EACR,QAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,iBAAwB,EACxB,kBAAwB,EACxB,GAAG,MAAM,EACV,EAAE,sBAAsB,eA0DxB;yBApEe,iBAAiB"}
@@ -1,6 +1,7 @@
1
1
  import type { SpotlightAction } from '../types';
2
2
  export declare function useActionsState(initialActions: SpotlightAction[] | ((query: string) => SpotlightAction[]), query: string): readonly [SpotlightAction[], {
3
3
  readonly registerActions: (payload: SpotlightAction[]) => void;
4
+ readonly updateActions: (payload: SpotlightAction[] | ((query: string) => SpotlightAction[])) => void;
4
5
  readonly removeActions: (ids: string[]) => void;
5
6
  readonly triggerAction: (id: string) => void;
6
7
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"use-actions-state.d.ts","sourceRoot":"","sources":["../../src/use-actions-state/use-actions-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAyBhD,wBAAgB,eAAe,CAC7B,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC,EAC1E,KAAK,EAAE,MAAM;wCAYqB,eAAe,EAAE;kCAGvB,MAAM,EAAE;iCAGT,MAAM;GAalC"}
1
+ {"version":3,"file":"use-actions-state.d.ts","sourceRoot":"","sources":["../../src/use-actions-state/use-actions-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAyBhD,wBAAgB,eAAe,CAC7B,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC,EAC1E,KAAK,EAAE,MAAM;wCAeqB,eAAe,EAAE;mEAHU,MAAM,KAAK,eAAe,EAAE;kCAM7D,MAAM,EAAE;iCAGT,MAAM;GAclC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mantine/spotlight",
3
3
  "description": "Command center for your application",
4
- "version": "4.0.6",
4
+ "version": "4.0.9",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -15,8 +15,8 @@
15
15
  "directory": "src/mantine-spotlight"
16
16
  },
17
17
  "peerDependencies": {
18
- "@mantine/core": "4.0.6",
19
- "@mantine/hooks": "4.0.6",
18
+ "@mantine/core": "4.0.9",
19
+ "@mantine/hooks": "4.0.9",
20
20
  "react": ">=16.8.0",
21
21
  "react-dom": ">=16.8.0"
22
22
  },