Merge "Update Codex from v1.13.1 to v1.14.0"

This commit is contained in:
jenkins-bot 2024-10-16 17:26:41 +00:00 committed by Gerrit Code Review
commit 4acdea458f
31 changed files with 574 additions and 144 deletions

View file

@ -172,7 +172,7 @@ For notes on 1.42.x and older releases, see HISTORY.
==== Changed external libraries ====
* Updated codex, codex-design-tokens and codex-icons
from v1.3.6 to v1.13.1.
from v1.3.6 to v1.14.0.
* Updated composer/semver from 3.4.0 to 3.4.2.
* Updated guzzlehttp/guzzle from 7.7.1 to 7.8.1.
* Updated jquery.i18n from 1.0.7 to 1.0.10.

32
package-lock.json generated
View file

@ -16,8 +16,8 @@
"@wdio/local-runner": "7.33.0",
"@wdio/mocha-framework": "7.33.0",
"@wdio/spec-reporter": "7.33.0",
"@wikimedia/codex": "1.13.1",
"@wikimedia/codex-icons": "1.13.1",
"@wikimedia/codex": "1.14.0",
"@wikimedia/codex-icons": "1.14.0",
"@wikimedia/karma-firefox-launcher": "2.1.3",
"api-testing": "1.6.0",
"domino": "2.1.0",
@ -4764,13 +4764,13 @@
}
},
"node_modules/@wikimedia/codex": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-1.13.1.tgz",
"integrity": "sha512-ZfG8EYVGaELU31b5NEaDkzAGQsuc7PFDw9juOst/tNW14w1uqN0ok7WwzyvtwzA7WFWVdu1WiYXtLlKpCsYiyw==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-1.14.0.tgz",
"integrity": "sha512-BDoqpzcRN0tCWSIYtvb4ukFeSYStz09UZ2VkNPJ/YgtpmcSnFdpEcbL29k1W/BVntuL9XAkv88s0OHKoNX1ikA==",
"dev": true,
"dependencies": {
"@floating-ui/vue": "1.0.6",
"@wikimedia/codex-icons": "1.13.1"
"@wikimedia/codex-icons": "1.14.0"
},
"engines": {
"node": ">=18",
@ -4791,9 +4791,9 @@
}
},
"node_modules/@wikimedia/codex-icons": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-1.13.1.tgz",
"integrity": "sha512-eJEnelrDGkrmsf9nCylUOK4JQtCxQqdLvyVs8fHqUhzn1deYDE9HERbzhhTiGmBsBvncvuOCSXtl86jaHbqaAA==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-1.14.0.tgz",
"integrity": "sha512-KbevrFz4Z5Jw/zadfN3UxDs2owZ9inYP0MqARE4LA3NOWkJpD76e+58KABmAnSUtZ2swMi94CFWex9tODDFg0w==",
"dev": true,
"engines": {
"node": ">=18",
@ -21185,13 +21185,13 @@
}
},
"@wikimedia/codex": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-1.13.1.tgz",
"integrity": "sha512-ZfG8EYVGaELU31b5NEaDkzAGQsuc7PFDw9juOst/tNW14w1uqN0ok7WwzyvtwzA7WFWVdu1WiYXtLlKpCsYiyw==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/@wikimedia/codex/-/codex-1.14.0.tgz",
"integrity": "sha512-BDoqpzcRN0tCWSIYtvb4ukFeSYStz09UZ2VkNPJ/YgtpmcSnFdpEcbL29k1W/BVntuL9XAkv88s0OHKoNX1ikA==",
"dev": true,
"requires": {
"@floating-ui/vue": "1.0.6",
"@wikimedia/codex-icons": "1.13.1"
"@wikimedia/codex-icons": "1.14.0"
}
},
"@wikimedia/codex-design-tokens": {
@ -21201,9 +21201,9 @@
"dev": true
},
"@wikimedia/codex-icons": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-1.13.1.tgz",
"integrity": "sha512-eJEnelrDGkrmsf9nCylUOK4JQtCxQqdLvyVs8fHqUhzn1deYDE9HERbzhhTiGmBsBvncvuOCSXtl86jaHbqaAA==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-1.14.0.tgz",
"integrity": "sha512-KbevrFz4Z5Jw/zadfN3UxDs2owZ9inYP0MqARE4LA3NOWkJpD76e+58KABmAnSUtZ2swMi94CFWex9tODDFg0w==",
"dev": true
},
"@wikimedia/karma-firefox-launcher": {

View file

@ -24,8 +24,8 @@
"@wdio/local-runner": "7.33.0",
"@wdio/mocha-framework": "7.33.0",
"@wdio/spec-reporter": "7.33.0",
"@wikimedia/codex": "1.13.1",
"@wikimedia/codex-icons": "1.13.1",
"@wikimedia/codex": "1.14.0",
"@wikimedia/codex-icons": "1.14.0",
"@wikimedia/karma-firefox-launcher": "2.1.3",
"api-testing": "1.6.0",
"domino": "2.1.0",

View file

@ -1,5 +1,5 @@
// Codex Design Tokens v1.13.1
// Codex Design Tokens v1.14.0
// Design System for Wikimedia
// See https://doc.wikimedia.org/codex/latest/design-tokens/overview.html

View file

@ -1,5 +1,5 @@
/**
* Codex Design Tokens v1.13.1
* Codex Design Tokens v1.14.0
* Design System for Wikimedia
* See https://doc.wikimedia.org/codex/latest/design-tokens/overview.html
*/
@ -26,6 +26,8 @@
--color-content-removed: #fd7865;
--color-base--subtle: #a2a9b1;
--box-shadow-color-base: #fff;
--box-shadow-color-progressive--focus: #6b8edf;
--box-shadow-color-destructive--focus: #6b8edf;
--box-shadow-color-inverted: #000;
--background-color-base: #101418; /* Background Colors for static elements (for page layout, sections, etc.) from here on. */
--background-color-neutral: #27292d;
@ -35,7 +37,9 @@
--background-color-disabled: #54595d; /* Components like Buttons, Checkboxes, Radios, ProgressBars…. */
--background-color-disabled-subtle: #404244; /* Components like TextInputs, Selects…. */
--background-color-inverted: #f8f9fa;
--background-color-progressive--focus: #6b8edf;
--background-color-progressive-subtle: #233566;
--background-color-destructive--focus: #6b8edf;
--background-color-destructive-subtle: #612419;
--background-color-error: #fc493b;
--background-color-error--hover: #fd7865;
@ -54,6 +58,8 @@
--border-color-interactive: #a2a9b1;
--border-color-disabled: #54595d;
--border-color-inverted: #101418;
--border-color-progressive--focus: #6b8edf;
--border-color-destructive--focus: #6b8edf;
--border-color-error: #fc493b;
--border-color-error--hover: #fd7865;
--border-color-warning: #fecc44;

View file

@ -1,5 +1,5 @@
/**
* Codex Design Tokens v1.13.1
* Codex Design Tokens v1.14.0
* Design System for Wikimedia
* See https://doc.wikimedia.org/codex/latest/design-tokens/overview.html
*/
@ -26,6 +26,8 @@
--color-content-removed: #fd7865;
--color-base--subtle: #a2a9b1;
--box-shadow-color-base: #fff;
--box-shadow-color-progressive--focus: #6b8edf;
--box-shadow-color-destructive--focus: #6b8edf;
--box-shadow-color-inverted: #000;
--background-color-base: #101418; /* Background Colors for static elements (for page layout, sections, etc.) from here on. */
--background-color-neutral: #27292d;
@ -35,7 +37,9 @@
--background-color-disabled: #54595d; /* Components like Buttons, Checkboxes, Radios, ProgressBars…. */
--background-color-disabled-subtle: #404244; /* Components like TextInputs, Selects…. */
--background-color-inverted: #f8f9fa;
--background-color-progressive--focus: #6b8edf;
--background-color-progressive-subtle: #233566;
--background-color-destructive--focus: #6b8edf;
--background-color-destructive-subtle: #612419;
--background-color-error: #fc493b;
--background-color-error--hover: #fd7865;
@ -54,6 +58,8 @@
--border-color-interactive: #a2a9b1;
--border-color-disabled: #54595d;
--border-color-inverted: #101418;
--border-color-progressive--focus: #6b8edf;
--border-color-destructive--focus: #6b8edf;
--border-color-error: #fc493b;
--border-color-error--hover: #fd7865;
--border-color-warning: #fecc44;

View file

@ -1,5 +1,5 @@
/**
* Codex Design Tokens v1.13.1
* Codex Design Tokens v1.14.0
* Design System for Wikimedia
* See https://doc.wikimedia.org/codex/latest/design-tokens/overview.html
*/

View file

@ -1,5 +1,5 @@
/**
* Codex Design Tokens v1.13.1
* Codex Design Tokens v1.14.0
* Design System for Wikimedia
* See https://doc.wikimedia.org/codex/latest/design-tokens/overview.html
*/

View file

@ -1,5 +1,5 @@
// Codex Design Tokens v1.13.1
// Codex Design Tokens v1.14.0
// Design System for Wikimedia
// See https://doc.wikimedia.org/codex/latest/design-tokens/overview.html

View file

@ -1,3 +1,34 @@
# 1.14.0 / 2024-10-16
## Features
- Menu: disable Tab keynav selection from multi-select menus (lwatson)
- Lookup: Add ARIA `role` to no result Lookup item (Arthur Taylor)
- LookupMultiselect, ChipInput: Improve floating menu UX (Anne Tomasevich)
- LookupMultiselect: Clear the input on selection (Anne Tomasevich)
- ChipInput: On chip click, show chip label or value (Anne Tomasevich)
- MultiselectLookup: Rename component (Anne Tomasevich)
- MultiselectLookup: Export component for use (Anne Tomasevich)
- Button: trigger actual click on key interaction (Anne Tomasevich)
## Styles
- styles, ChipInput: fix separate input's disabled state (lwatson)
- tokens: Amend focus colors for dark mode (Volker E.)
- ChipInput: Make input background transparent (Anne Tomasevich)
## Code
- Menu: minor update test file (lwatson)
- MultiselectLookup: Handle race condition when editing chip (Anne Tomasevich)
## Docs
- Lookup, LookupMultiselect: Refactor demo pages (Anne Tomasevich)
- docs: include MultiselectLookup guidelines (bmartinezcalvo)
- docs: update Lookup guidelines (bmartinezcalvo)
- docs: Fix typo in Menu keyboard nav docs (Anne Tomasevich)
- docs: Add error and warning messages to LookupField (Anne Tomasevich)
- docs: Fix style class name in Developing Components guide (Volker E.)
- docs: Add error and warning messages to MultiselectLookupField (Anne Tomasevich)
- docs: Fix typo in MultiselectLookup field demo (Anne Tomasevich)
# 1.13.1 / 2024-10-01
## Features

File diff suppressed because one or more lines are too long

View file

@ -191,7 +191,7 @@ const TablePaginationPositions = [
"both"
];
const iconSizeValidator = makeStringTypeValidator(IconSizes);
const _sfc_main$x = defineComponent({
const _sfc_main$y = defineComponent({
name: "CdxIcon",
props: {
/** The SVG path or an object containing that path plus other data. */
@ -283,7 +283,7 @@ const _hoisted_1$v = ["aria-hidden"];
const _hoisted_2$m = { key: 0 };
const _hoisted_3$e = ["innerHTML"];
const _hoisted_4$9 = ["d"];
function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock(
"span",
{
@ -319,7 +319,7 @@ function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS */
);
}
const CdxIcon = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$x]]);
const CdxIcon = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$y]]);
function flattenSlotContents(slotContents) {
const flattened = [];
for (const node of slotContents) {
@ -393,7 +393,7 @@ function useIconOnlyButton(slot, attrs, componentName) {
const buttonActionValidator = makeStringTypeValidator(ButtonActions);
const buttonWeightValidator = makeStringTypeValidator(ButtonWeights);
const buttonSizeValidator = makeStringTypeValidator(ButtonSizes);
const _sfc_main$w = defineComponent({
const _sfc_main$x = defineComponent({
name: "CdxButton",
props: {
/**
@ -432,6 +432,7 @@ const _sfc_main$w = defineComponent({
},
emits: ["click"],
setup(props, { emit, slots, attrs }) {
const button = ref();
const isIconOnly = useIconOnlyButton(slots.default, attrs, "CdxButton");
const isActive = ref(false);
const rootClasses = computed(() => ({
@ -451,11 +452,13 @@ const _sfc_main$w = defineComponent({
function onKeyDown() {
setActive(true);
}
function onKeyUp(event) {
function onKeyUp() {
var _a;
setActive(false);
emit("click", event);
(_a = button.value) == null ? void 0 : _a.click();
}
return {
button,
rootClasses,
onClick,
onKeyDown,
@ -463,10 +466,11 @@ const _sfc_main$w = defineComponent({
};
}
});
function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock(
"button",
{
ref: "button",
class: normalizeClass(["cdx-button", _ctx.rootClasses]),
onKeydown: _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => _ctx.onKeyDown && _ctx.onKeyDown(...args), ["prevent"]), ["space", "enter"])),
onKeyup: _cache[1] || (_cache[1] = withKeys((...args) => _ctx.onKeyUp && _ctx.onKeyUp(...args), ["space", "enter"])),
@ -479,8 +483,8 @@ function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, NEED_HYDRATION */
);
}
const CdxButton = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$w]]);
const _sfc_main$v = defineComponent({
const CdxButton = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$x]]);
const _sfc_main$w = defineComponent({
name: "CdxAccordion",
components: { CdxButton, CdxIcon },
props: {
@ -550,7 +554,7 @@ const _sfc_main$v = defineComponent({
});
const _hoisted_1$u = { class: "cdx-accordion__header__title" };
const _hoisted_2$l = { class: "cdx-accordion__header__description" };
function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_button = resolveComponent("cdx-button");
return openBlock(), createElementBlock(
@ -604,7 +608,7 @@ function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, NEED_HYDRATION */
);
}
const Accordion = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$v]]);
const Accordion = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$w]]);
function getButtonLabel(button) {
if (button.label === void 0) {
return button.value;
@ -694,7 +698,7 @@ function useButtonGroupKeyboardNav(buttonsProp) {
onKeydown
};
}
const _sfc_main$u = defineComponent({
const _sfc_main$v = defineComponent({
name: "CdxButtonGroup",
components: {
CdxButton,
@ -750,7 +754,7 @@ const _hoisted_1$t = {
ref: "rootElement",
class: "cdx-button-group"
};
function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_button = resolveComponent("cdx-button");
return openBlock(), createElementBlock(
@ -797,8 +801,8 @@ function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
/* NEED_PATCH */
);
}
const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$u]]);
const _sfc_main$t = defineComponent({
const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$v]]);
const _sfc_main$u = defineComponent({
name: "CdxThumbnail",
components: { CdxIcon },
props: {
@ -850,7 +854,7 @@ const _hoisted_2$k = {
key: 0,
class: "cdx-thumbnail__placeholder"
};
function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
return openBlock(), createElementBlock("span", _hoisted_1$s, [
!_ctx.thumbnailLoaded ? (openBlock(), createElementBlock("span", _hoisted_2$k, [
@ -878,8 +882,8 @@ function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
})
]);
}
const CdxThumbnail = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$t]]);
const _sfc_main$s = defineComponent({
const CdxThumbnail = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$u]]);
const _sfc_main$t = defineComponent({
name: "CdxCard",
components: { CdxIcon, CdxThumbnail },
props: {
@ -953,7 +957,7 @@ const _hoisted_4$8 = {
key: 1,
class: "cdx-card__text__supporting-text"
};
function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_thumbnail = resolveComponent("cdx-thumbnail");
const _component_cdx_icon = resolveComponent("cdx-icon");
return openBlock(), createBlock(resolveDynamicComponent(_ctx.contentTag), {
@ -991,7 +995,7 @@ function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
/* FORWARDED */
}, 8, ["href", "class"]);
}
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$s]]);
const Card = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$t]]);
function useComputedDisabled(disabledProp) {
const providedDisabled = inject(DisabledKey, ref(false));
return computed(() => providedDisabled.value || disabledProp.value);
@ -1058,7 +1062,7 @@ function useI18nWithOverride(override, messageKey, defaultValue, params = []) {
const translatedMessage = useI18n(messageKey, defaultValue, params);
return computed(() => override.value || translatedMessage.value);
}
const _sfc_main$r = defineComponent({
const _sfc_main$s = defineComponent({
name: "CdxLabel",
components: { CdxIcon },
/**
@ -1180,7 +1184,7 @@ const _hoisted_8$1 = {
key: 0,
class: "cdx-label__description"
};
function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
return !_ctx.isLegend ? (openBlock(), createElementBlock(
"div",
@ -1253,7 +1257,7 @@ function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
/* FULL_PROPS */
));
}
const CdxLabel = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$r]]);
const CdxLabel = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$s]]);
function useLabelChecker(slot, attrs, componentName) {
useWarnOnce(
() => useSlotContents(slot).length === 0 && !(attrs == null ? void 0 : attrs["aria-label"]) && !(attrs == null ? void 0 : attrs["aria-labelledby"]),
@ -1283,8 +1287,8 @@ function useGeneratedId(identifier) {
return "".concat(LibraryPrefix, "-").concat(counter++);
}
}
const statusValidator$9 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$q = defineComponent({
const statusValidator$a = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$r = defineComponent({
name: "CdxCheckbox",
components: { CdxLabel },
props: {
@ -1355,7 +1359,7 @@ const _sfc_main$q = defineComponent({
status: {
type: String,
default: "default",
validator: statusValidator$9
validator: statusValidator$a
}
},
emits: [
@ -1411,7 +1415,7 @@ const _hoisted_3$b = /* @__PURE__ */ createElementVNode(
-1
/* HOISTED */
);
function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_label = resolveComponent("cdx-label");
return openBlock(), createElementBlock(
"div",
@ -1475,8 +1479,8 @@ function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS */
);
}
const CdxCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$q]]);
const _sfc_main$p = defineComponent({
const CdxCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$r]]);
const _sfc_main$q = defineComponent({
name: "CdxInputChip",
components: {
CdxButton,
@ -1584,7 +1588,7 @@ const _sfc_main$p = defineComponent({
});
const _hoisted_1$o = ["aria-description"];
const _hoisted_2$g = { class: "cdx-input-chip__text" };
function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_button = resolveComponent("cdx-button");
return openBlock(), createElementBlock("div", {
@ -1623,7 +1627,7 @@ function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
}, 8, ["disabled"])
], 42, _hoisted_1$o);
}
const CdxInputChip = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p]]);
const CdxInputChip = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$q]]);
function useOptionalModelWrapper(internalValueRef, modelValueRef, emit, eventName) {
return computed({
get: () => {
@ -1639,8 +1643,8 @@ function useOptionalModelWrapper(internalValueRef, modelValueRef, emit, eventNam
}
});
}
const statusValidator$8 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$o = defineComponent({
const statusValidator$9 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$p = defineComponent({
name: "CdxChipInput",
components: {
CdxInputChip
@ -1684,7 +1688,7 @@ const _sfc_main$o = defineComponent({
status: {
type: String,
default: "default",
validator: statusValidator$8
validator: statusValidator$9
},
/**
* Validation function for chip text. If it returns false, the chip will not be added and
@ -1812,10 +1816,11 @@ const _sfc_main$o = defineComponent({
}
function handleChipClick(clickedChip) {
return __async(this, null, function* () {
var _a;
addChip();
yield nextTick();
removeChip(clickedChip);
computedInputValue.value = clickedChip.value;
computedInputValue.value = (_a = clickedChip.label) != null ? _a : clickedChip.value;
focusInput();
});
}
@ -1931,7 +1936,7 @@ const _hoisted_5$6 = {
role: "status",
"aria-live": "polite"
};
function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_input_chip = resolveComponent("cdx-input-chip");
return openBlock(), createElementBlock(
"div",
@ -2029,7 +2034,7 @@ function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, STYLE, NEED_HYDRATION */
);
}
const ChipInput = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o]]);
const CdxChipInput = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$p]]);
function regExpEscape(value) {
return value.replace(/([\\{}()|.?*+\-^$[\]])/g, "\\$1");
}
@ -2061,7 +2066,7 @@ const stringHelpers = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
regExpEscape,
splitStringAtMatch
}, Symbol.toStringTag, { value: "Module" }));
const _sfc_main$n = defineComponent({
const _sfc_main$o = defineComponent({
name: "CdxSearchResultTitle",
props: {
/**
@ -2088,7 +2093,7 @@ const _sfc_main$n = defineComponent({
});
const _hoisted_1$m = { class: "cdx-search-result-title" };
const _hoisted_2$e = { class: "cdx-search-result-title__match" };
function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("span", _hoisted_1$m, [
createElementVNode("bdi", null, [
createTextVNode(
@ -2111,8 +2116,8 @@ function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
])
]);
}
const CdxSearchResultTitle = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n]]);
const _sfc_main$m = defineComponent({
const CdxSearchResultTitle = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$o]]);
const _sfc_main$n = defineComponent({
name: "CdxMenuItem",
components: { CdxIcon, CdxThumbnail, CdxSearchResultTitle },
props: {
@ -2335,7 +2340,7 @@ const _hoisted_3$9 = ["lang"];
const _hoisted_4$5 = ["lang"];
const _hoisted_5$5 = ["lang"];
const _hoisted_6$5 = ["lang"];
function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_thumbnail = resolveComponent("cdx-thumbnail");
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_search_result_title = resolveComponent("cdx-search-result-title");
@ -2463,8 +2468,8 @@ function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
])
], 42, _hoisted_1$l);
}
const CdxMenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
const _sfc_main$l = defineComponent({
const CdxMenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$n]]);
const _sfc_main$m = defineComponent({
name: "CdxProgressBar",
props: {
/**
@ -2515,7 +2520,7 @@ const _hoisted_2$c = /* @__PURE__ */ createElementVNode(
const _hoisted_3$8 = [
_hoisted_2$c
];
function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", {
class: normalizeClass(["cdx-progress-bar", _ctx.rootClasses]),
role: "progressbar",
@ -2523,7 +2528,7 @@ function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
"aria-disabled": _ctx.disabled
}, _hoisted_3$8, 10, _hoisted_1$k);
}
const CdxProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l]]);
const CdxProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$m]]);
function useIntersectionObserver(templateRef, observerOptions) {
const intersectionRef = ref(false);
let mounted = false;
@ -2567,7 +2572,7 @@ function useIntersectionObserver(templateRef, observerOptions) {
function selectedIsArray(selected) {
return selected !== null && Array.isArray(selected);
}
const _sfc_main$k = defineComponent({
const _sfc_main$l = defineComponent({
name: "CdxMenu",
components: {
CdxMenuItem,
@ -2926,10 +2931,8 @@ const _sfc_main$k = defineComponent({
return true;
case "Tab":
if (props.expanded) {
if (highlightedMenuItem.value && highlightedViaKeyboard.value) {
if (highlightedMenuItem.value && highlightedViaKeyboard.value && !isMultiselect.value) {
updateSelected(highlightedMenuItem.value.value);
}
if (!isMultiselect.value) {
emit("update:expanded", false);
}
}
@ -3191,9 +3194,10 @@ const _hoisted_2$b = {
};
const _hoisted_3$7 = {
key: 1,
class: "cdx-menu__no-results cdx-menu-item"
class: "cdx-menu__no-results cdx-menu-item",
role: "option"
};
function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_menu_item = resolveComponent("cdx-menu-item");
const _component_cdx_progress_bar = resolveComponent("cdx-progress-bar");
return withDirectives((openBlock(), createElementBlock(
@ -3268,10 +3272,10 @@ function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
[vShow, _ctx.expanded]
]);
}
const CdxMenu = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$k]]);
const CdxMenu = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$l]]);
const textInputTypeValidator = makeStringTypeValidator(TextInputTypes);
const statusValidator$7 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$j = defineComponent({
const statusValidator$8 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$k = defineComponent({
name: "CdxTextInput",
components: { CdxIcon },
/**
@ -3309,7 +3313,7 @@ const _sfc_main$j = defineComponent({
status: {
type: String,
default: "default",
validator: statusValidator$7
validator: statusValidator$8
},
/**
* Whether the input is disabled.
@ -3494,7 +3498,7 @@ const _sfc_main$j = defineComponent({
}
});
const _hoisted_1$i = ["id", "type", "aria-describedby", "disabled"];
function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
return openBlock(), createElementBlock(
"div",
@ -3544,7 +3548,7 @@ function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, STYLE */
);
}
const CdxTextInput = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$j]]);
const CdxTextInput = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$k]]);
const sides = ["top", "right", "bottom", "left"];
const min = Math.min;
const max = Math.max;
@ -5161,8 +5165,8 @@ function useFloatingMenu(referenceElement, menu, opt) {
}
});
}
const statusValidator$6 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$i = defineComponent({
const statusValidator$7 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$j = defineComponent({
name: "CdxCombobox",
components: {
CdxButton,
@ -5217,7 +5221,7 @@ const _sfc_main$i = defineComponent({
status: {
type: String,
default: "default",
validator: statusValidator$6
validator: statusValidator$7
}
},
emits: [
@ -5351,7 +5355,7 @@ const _hoisted_1$h = {
ref: "inputWrapper",
class: "cdx-combobox__input-wrapper"
};
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_text_input = resolveComponent("cdx-text-input");
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_button = resolveComponent("cdx-button");
@ -5433,7 +5437,7 @@ function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, STYLE */
);
}
const Combobox = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i]]);
const Combobox = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$j]]);
function useResizeObserver(templateRef) {
const currentDimensions = ref(
{ width: void 0, height: void 0 }
@ -5478,7 +5482,7 @@ function useResizeObserver(templateRef) {
});
return currentDimensions;
}
const _sfc_main$h = defineComponent({
const _sfc_main$i = defineComponent({
name: "CdxDialog",
components: {
CdxButton,
@ -5778,7 +5782,7 @@ const _hoisted_7$1 = {
key: 1,
class: "cdx-dialog__footer__actions"
};
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_button = resolveComponent("cdx-button");
return openBlock(), createBlock(Teleport, {
@ -5958,14 +5962,14 @@ function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
})
], 8, ["to", "disabled"]);
}
const Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h]]);
const Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i]]);
const iconMap$2 = {
notice: Y4,
error: i4,
warning: M3,
success: O7
};
const _sfc_main$g = defineComponent({
const _sfc_main$h = defineComponent({
name: "CdxMessage",
components: { CdxButton, CdxIcon },
props: {
@ -6107,7 +6111,7 @@ const _sfc_main$g = defineComponent({
});
const _hoisted_1$f = ["aria-live", "role"];
const _hoisted_2$9 = { class: "cdx-message__content" };
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
const _component_cdx_button = resolveComponent("cdx-button");
return openBlock(), createBlock(Transition, {
@ -6149,9 +6153,9 @@ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
/* FORWARDED */
}, 8, ["appear", "leave-active-class"]);
}
const CdxMessage = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$g]]);
const statusValidator$5 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$f = defineComponent({
const CdxMessage = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h]]);
const statusValidator$6 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$g = defineComponent({
name: "CdxField",
components: { CdxLabel, CdxMessage },
props: {
@ -6215,7 +6219,7 @@ const _sfc_main$f = defineComponent({
status: {
type: String,
default: "default",
validator: statusValidator$5
validator: statusValidator$6
},
/**
* Message text keyed on validation status type.
@ -6269,7 +6273,7 @@ const _hoisted_3$5 = {
key: 0,
class: "cdx-field__validation-message"
};
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_label = resolveComponent("cdx-label");
const _component_cdx_message = resolveComponent("cdx-message");
return openBlock(), createBlock(resolveDynamicComponent(_ctx.isFieldset ? "fieldset" : "div"), {
@ -6330,13 +6334,13 @@ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
/* FORWARDED */
}, 8, ["class", "aria-disabled", "disabled"]);
}
const Field = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$f]]);
const Field = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$g]]);
const iconMap$1 = {
error: i4,
warning: M3,
success: O7
};
const _sfc_main$e = defineComponent({
const _sfc_main$f = defineComponent({
name: "CdxInfoChip",
components: { CdxIcon },
props: {
@ -6376,7 +6380,7 @@ const _sfc_main$e = defineComponent({
});
const _hoisted_1$d = { class: "cdx-info-chip" };
const _hoisted_2$7 = { class: "cdx-info-chip--text" };
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_icon = resolveComponent("cdx-icon");
return openBlock(), createElementBlock("div", _hoisted_1$d, [
_ctx.computedIcon ? (openBlock(), createBlock(_component_cdx_icon, {
@ -6389,9 +6393,9 @@ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
])
]);
}
const InfoChip = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e]]);
const statusValidator$4 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$d = defineComponent({
const InfoChip = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$f]]);
const statusValidator$5 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$e = defineComponent({
name: "CdxLookup",
components: {
CdxMenu,
@ -6473,7 +6477,7 @@ const _sfc_main$d = defineComponent({
status: {
type: String,
default: "default",
validator: statusValidator$4
validator: statusValidator$5
}
},
emits: [
@ -6646,7 +6650,7 @@ const _sfc_main$d = defineComponent({
};
}
});
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_text_input = resolveComponent("cdx-text-input");
const _component_cdx_menu = resolveComponent("cdx-menu");
return openBlock(), createElementBlock(
@ -6702,8 +6706,8 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, STYLE */
);
}
const Lookup = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d]]);
const _sfc_main$c = defineComponent({
const Lookup = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e]]);
const _sfc_main$d = defineComponent({
name: "CdxToggleButton",
props: {
/**
@ -6774,7 +6778,7 @@ const _sfc_main$c = defineComponent({
}
});
const _hoisted_1$c = ["aria-pressed", "disabled"];
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("button", {
class: normalizeClass(["cdx-toggle-button", _ctx.rootClasses]),
"aria-pressed": _ctx.modelValue,
@ -6786,8 +6790,8 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
renderSlot(_ctx.$slots, "default")
], 42, _hoisted_1$c);
}
const CdxToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c]]);
const _sfc_main$b = defineComponent({
const CdxToggleButton = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d]]);
const _sfc_main$c = defineComponent({
name: "CdxMenuButton",
components: {
CdxToggleButton,
@ -6876,7 +6880,7 @@ const _sfc_main$b = defineComponent({
}
});
const _hoisted_1$b = { class: "cdx-menu-button__menu-wrapper" };
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_toggle_button = resolveComponent("cdx-toggle-button");
const _component_cdx_menu = resolveComponent("cdx-menu");
return openBlock(), createElementBlock(
@ -6925,7 +6929,322 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
/* CLASS, STYLE */
);
}
const MenuButton = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b]]);
const MenuButton = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c]]);
const statusValidator$4 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$b = defineComponent({
name: "CdxMultiselectLookup",
components: {
CdxChipInput,
CdxMenu
},
props: {
/**
* Current chips present in the input.
*
* Must be bound with `v-model:input-chips`. Initialize to an empty array if there are no
* initial selections. If there are, initialize to an array of input chips matching those
* selections.
*/
inputChips: {
type: Array,
required: true
},
/**
* Value(s) of the current selection(s).
*
* Must be bound with `v-model:selected`. Initialize to an empty array if there are no
* initial selections.
*/
selected: {
type: [Array],
required: true
},
/**
* Menu items.
*
* Initialize to an empty array if there are no initial menu items.
*/
menuItems: {
type: Array,
required: true
},
/**
* Current value of the text input. This prop is optional and should only be used if you
* need to keep track of the text input value for some reason (e.g. for validation).
*
* Optionally provided by `v-model:input-value` binding in the parent component.
*/
inputValue: {
type: [String, Number],
default: null
},
/**
* Whether the text input should appear below the set of input chips.
*
* By default, the input chips are inline with the input.
*/
separateInput: {
type: Boolean,
default: false
},
/**
* Whether the entire component is disabled.
*/
disabled: {
type: Boolean,
default: false
},
/**
* `status` attribute of the input.
*/
status: {
type: String,
default: "default",
validator: statusValidator$4
},
/**
* Configuration for various menu features. All properties default to false.
*
* See the MenuConfig type.
* @default {}
*/
menuConfig: {
type: Object,
default: () => {
return {};
}
}
},
emits: [
/**
* When the input chips change.
*
* @property {ChipInputItem[]} inputChips The new set of inputChips
*/
"update:input-chips",
/**
* When the selected value changes.
*
* @property {MenuItemValue[]} selected The new set of selected values
*/
"update:selected",
/**
* When the input value changes. Only emitted if the inputValue prop is provided.
*
* This event is emitted both when the user changes the input and when the input is changed
* or cleared automatically (e.g. on selection).
*
* @property {string | number} inputValue The new input value
*/
"update:input-value",
/**
* When the user scrolls towards the bottom of the menu.
*
* If it is possible to add or load more menu items, then now would be a good moment
* so that the user can experience infinite scrolling.
*/
"load-more",
/**
* When the user changes the value of the input. Not emitted when the input is changed
* automatically (e.g. on selection).
*
* @property {string | number} value The new value
*/
"input",
/**
* When an input value change is committed by the user (e.g. on blur)
*
* @property {Event} event
*/
"change",
/**
* When the input comes into focus
*
* @property {FocusEvent} event
*/
"focus",
/**
* When the input loses focus
*
* @property {FocusEvent} event
*/
"blur"
],
setup: (props, { emit, attrs, slots }) => {
const chipInput = ref();
const menu = ref();
const menuId = useGeneratedId("multiselect-lookup-menu");
const highlightedId = computed(() => {
var _a, _b;
return (_b = (_a = menu.value) == null ? void 0 : _a.getHighlightedMenuItem()) == null ? void 0 : _b.id;
});
const pending = ref(false);
const expanded = ref(false);
const isActive = ref(false);
provide(AllowArbitraryKey, ref(false));
const {
computedDisabled,
computedStatus
} = useFieldData(
toRef(props, "disabled"),
toRef(props, "status")
);
const internalClasses = computed(() => {
return {
"cdx-multiselect-lookup--disabled": computedDisabled.value,
"cdx-multiselect-lookup--pending": pending.value
};
});
const {
rootClasses,
rootStyle,
otherAttrs
} = useSplitAttributes(attrs, internalClasses);
useFloatingMenu(chipInput, menu);
const selectedWrapper = useModelWrapper(toRef(props, "selected"), emit, "update:selected");
const inputChipsWrapper = useModelWrapper(toRef(props, "inputChips"), emit, "update:input-chips");
const internalInputValue = ref("");
const computedInputValue = useOptionalModelWrapper(
internalInputValue,
toRef(props, "inputValue"),
emit,
"update:input-value"
);
const showNoResults = computed(() => computedInputValue.value.toString().length > 0 && slots["no-results"]);
function onUpdateInputValue(newVal) {
return __async(this, null, function* () {
yield nextTick();
pending.value = newVal !== null && newVal !== "";
emit("input", newVal);
});
}
function onInputFocus(event) {
isActive.value = true;
if (props.menuItems.length > 0 || showNoResults.value) {
expanded.value = true;
}
emit("focus", event);
}
function onInputBlur(event) {
isActive.value = false;
expanded.value = false;
emit("blur", event);
}
function onKeydown(e) {
if (!menu.value || computedDisabled.value || props.menuItems.length === 0 && !showNoResults.value || e.key === " ") {
return;
}
menu.value.delegateKeyNavigation(e);
}
watch(toRef(props, "selected"), (newVal) => {
const newSelections = newVal.filter((selection) => inputChipsWrapper.value.find((chip) => selection === chip.value) === void 0);
if (newSelections.length > 0) {
newSelections.forEach((newSelection) => {
const newMenuItem = props.menuItems.find((menuItem) => menuItem.value === newSelection);
if (newMenuItem) {
inputChipsWrapper.value.push(newMenuItem);
}
});
computedInputValue.value = "";
emit("input", "");
}
inputChipsWrapper.value = inputChipsWrapper.value.filter((chip) => {
return newVal.find((selection) => chip.value === selection) !== void 0;
});
});
watch(toRef(props, "inputChips"), (newVal) => {
if (newVal.length < selectedWrapper.value.length) {
selectedWrapper.value = newVal.map((chip) => chip.value);
}
});
watch(toRef(props, "menuItems"), (newVal) => {
if (newVal.length === 0 && !showNoResults.value) {
expanded.value = false;
} else if (isActive.value && pending.value) {
expanded.value = true;
}
pending.value = false;
});
return {
chipInput,
menu,
menuId,
highlightedId,
expanded,
computedDisabled,
computedStatus,
rootClasses,
rootStyle,
otherAttrs,
selectedWrapper,
inputChipsWrapper,
computedInputValue,
onUpdateInputValue,
onInputBlur,
onInputFocus,
onKeydown
};
}
});
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
const _component_cdx_chip_input = resolveComponent("cdx-chip-input");
const _component_cdx_menu = resolveComponent("cdx-menu");
return openBlock(), createElementBlock(
"div",
{
class: normalizeClass(["cdx-multiselect-lookup", _ctx.rootClasses]),
style: normalizeStyle(_ctx.rootStyle)
},
[
createVNode(_component_cdx_chip_input, mergeProps({
ref: "chipInput",
"input-chips": _ctx.inputChipsWrapper,
"onUpdate:inputChips": _cache[0] || (_cache[0] = ($event) => _ctx.inputChipsWrapper = $event),
"input-value": _ctx.computedInputValue,
"onUpdate:inputValue": _cache[1] || (_cache[1] = ($event) => _ctx.computedInputValue = $event)
}, _ctx.otherAttrs, {
class: "cdx-multiselect-lookup__chip-input",
role: "combobox",
autocomplete: "off",
"aria-autocomplete": "list",
"aria-controls": _ctx.menuId,
"aria-expanded": _ctx.expanded,
"aria-activedescendant": _ctx.highlightedId,
"separate-input": _ctx.separateInput,
disabled: _ctx.computedDisabled,
status: _ctx.computedStatus,
"disallow-arbitrary": true,
"onUpdate:inputValue": _ctx.onUpdateInputValue,
onFocus: _ctx.onInputFocus,
onBlur: _ctx.onInputBlur,
onKeydown: _ctx.onKeydown
}), null, 16, ["input-chips", "input-value", "aria-controls", "aria-expanded", "aria-activedescendant", "separate-input", "disabled", "status", "onUpdate:inputValue", "onFocus", "onBlur", "onKeydown"]),
createVNode(_component_cdx_menu, mergeProps({
id: _ctx.menuId,
ref: "menu",
selected: _ctx.selectedWrapper,
"onUpdate:selected": _cache[2] || (_cache[2] = ($event) => _ctx.selectedWrapper = $event),
expanded: _ctx.expanded,
"onUpdate:expanded": _cache[3] || (_cache[3] = ($event) => _ctx.expanded = $event),
"menu-items": _ctx.menuItems
}, _ctx.menuConfig, {
onLoadMore: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("load-more"))
}), {
default: withCtx(({ menuItem }) => [
renderSlot(_ctx.$slots, "menu-item", { menuItem })
]),
"no-results": withCtx(() => [
renderSlot(_ctx.$slots, "no-results")
]),
_: 3
/* FORWARDED */
}, 16, ["id", "selected", "expanded", "menu-items"])
],
6
/* CLASS, STYLE */
);
}
const MultiselectLookup = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b]]);
const statusValidator$3 = makeStringTypeValidator(ValidationStatusTypes);
const _sfc_main$a = defineComponent({
name: "CdxRadio",
@ -10207,7 +10526,7 @@ export {
ButtonGroup as CdxButtonGroup,
Card as CdxCard,
CdxCheckbox,
ChipInput as CdxChipInput,
CdxChipInput,
Combobox as CdxCombobox,
Dialog as CdxDialog,
Field as CdxField,
@ -10219,6 +10538,7 @@ export {
MenuButton as CdxMenuButton,
CdxMenuItem,
CdxMessage,
MultiselectLookup as CdxMultiselectLookup,
CdxProgressBar,
Radio as CdxRadio,
CdxSearchInput,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
"use strict";const e=require("vue"),i=require("./constants.js"),f=require("./useIconOnlyButton.js"),g=require("./_plugin-vue_export-helper.js"),m=i.makeStringTypeValidator(i.ButtonActions),k=i.makeStringTypeValidator(i.ButtonWeights),b=i.makeStringTypeValidator(i.ButtonSizes),v=e.defineComponent({name:"CdxButton",props:{action:{type:String,default:"default",validator:m},weight:{type:String,default:"normal",validator:k},size:{type:String,default:"medium",validator:b}},emits:["click"],setup(t,{emit:n,slots:r,attrs:a}){const l=f.useIconOnlyButton(r.default,a,"CdxButton"),u=e.ref(!1),o=e.computed(()=>({["cdx-button--action-".concat(t.action)]:!0,["cdx-button--weight-".concat(t.weight)]:!0,["cdx-button--size-".concat(t.size)]:!0,"cdx-button--framed":t.weight!=="quiet","cdx-button--icon-only":l.value,"cdx-button--is-active":u.value})),d=s=>{n("click",s)},c=s=>{u.value=s};function p(){c(!0)}function y(s){c(!1),n("click",s)}return{rootClasses:o,onClick:d,onKeyDown:p,onKeyUp:y}}});function w(t,n,r,a,l,u){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["cdx-button",t.rootClasses]),onKeydown:n[0]||(n[0]=e.withKeys(e.withModifiers((...o)=>t.onKeyDown&&t.onKeyDown(...o),["prevent"]),["space","enter"])),onKeyup:n[1]||(n[1]=e.withKeys((...o)=>t.onKeyUp&&t.onKeyUp(...o),["space","enter"])),onClick:n[2]||(n[2]=(...o)=>t.onClick&&t.onClick(...o))},[e.renderSlot(t.$slots,"default")],34)}const C=g._export_sfc(v,[["render",w]]);module.exports=C;
"use strict";const e=require("vue"),s=require("./constants.js"),m=require("./useIconOnlyButton.js"),b=require("./_plugin-vue_export-helper.js"),g=s.makeStringTypeValidator(s.ButtonActions),k=s.makeStringTypeValidator(s.ButtonWeights),v=s.makeStringTypeValidator(s.ButtonSizes),w=e.defineComponent({name:"CdxButton",props:{action:{type:String,default:"default",validator:g},weight:{type:String,default:"normal",validator:k},size:{type:String,default:"medium",validator:v}},emits:["click"],setup(t,{emit:n,slots:r,attrs:a}){const u=e.ref(),l=m.useIconOnlyButton(r.default,a,"CdxButton"),o=e.ref(!1),d=e.computed(()=>({["cdx-button--action-".concat(t.action)]:!0,["cdx-button--weight-".concat(t.weight)]:!0,["cdx-button--size-".concat(t.size)]:!0,"cdx-button--framed":t.weight!=="quiet","cdx-button--icon-only":l.value,"cdx-button--is-active":o.value})),p=i=>{n("click",i)},c=i=>{o.value=i};function f(){c(!0)}function y(){var i;c(!1),(i=u.value)==null||i.click()}return{button:u,rootClasses:d,onClick:p,onKeyDown:f,onKeyUp:y}}});function C(t,n,r,a,u,l){return e.openBlock(),e.createElementBlock("button",{ref:"button",class:e.normalizeClass(["cdx-button",t.rootClasses]),onKeydown:n[0]||(n[0]=e.withKeys(e.withModifiers((...o)=>t.onKeyDown&&t.onKeyDown(...o),["prevent"]),["space","enter"])),onKeyup:n[1]||(n[1]=e.withKeys((...o)=>t.onKeyUp&&t.onKeyUp(...o),["space","enter"])),onClick:n[2]||(n[2]=(...o)=>t.onClick&&t.onClick(...o))},[e.renderSlot(t.$slots,"default")],34)}const B=b._export_sfc(w,[["render",C]]);module.exports=B;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
.cdx-multiselect-lookup{position:relative;box-sizing:border-box;vertical-align:middle}[dir] .cdx-multiselect-lookup--pending .cdx-chip-input:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,[dir] .cdx-multiselect-lookup--pending .cdx-chip-input .cdx-chip-input__separate-input{background-color:var(--background-color-interactive, #eaecf0);background-size:1.25rem 1.25rem;animation-duration:.65s;animation-timing-function:linear;animation-iteration-count:infinite}[dir=ltr] .cdx-multiselect-lookup--pending .cdx-chip-input:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,[dir=ltr] .cdx-multiselect-lookup--pending .cdx-chip-input .cdx-chip-input__separate-input{background-image:linear-gradient(135deg,var(--background-color-base, #fff) 25%,var(--background-color-transparent, transparent) 25%,var(--background-color-transparent, transparent) 50%,var(--background-color-base, #fff) 50%,var(--background-color-base, #fff) 75%,var(--background-color-transparent, transparent) 75%,var(--background-color-transparent, transparent));animation-name:cdx-animation-pending-stripes-ltr}[dir=rtl] .cdx-multiselect-lookup--pending .cdx-chip-input:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,[dir=rtl] .cdx-multiselect-lookup--pending .cdx-chip-input .cdx-chip-input__separate-input{background-image:linear-gradient(-135deg,var(--background-color-base, #fff) 25%,var(--background-color-transparent, transparent) 25%,var(--background-color-transparent, transparent) 50%,var(--background-color-base, #fff) 50%,var(--background-color-base, #fff) 75%,var(--background-color-transparent, transparent) 75%,var(--background-color-transparent, transparent));animation-name:cdx-animation-pending-stripes-rtl}@keyframes cdx-animation-pending-stripes-ltr{0%{background-position:-1.25rem 0}to{background-position:0 0}}@keyframes cdx-animation-pending-stripes-rtl{0%{background-position:right -1.25rem top 0}to{background-position:100% 0}}.cdx-dialog .cdx-multiselect-lookup{position:static}

View file

@ -0,0 +1 @@
.cdx-multiselect-lookup{position:relative;box-sizing:border-box;vertical-align:middle}.cdx-multiselect-lookup--pending .cdx-chip-input:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-multiselect-lookup--pending .cdx-chip-input .cdx-chip-input__separate-input{background-color:var(--background-color-interactive, #eaecf0);background-image:linear-gradient(-135deg,var(--background-color-base, #fff) 25%,var(--background-color-transparent, transparent) 25%,var(--background-color-transparent, transparent) 50%,var(--background-color-base, #fff) 50%,var(--background-color-base, #fff) 75%,var(--background-color-transparent, transparent) 75%,var(--background-color-transparent, transparent));background-size:1.25rem 1.25rem;animation-name:cdx-animation-pending-stripes;animation-duration:.65s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes cdx-animation-pending-stripes{0%{background-position:right -1.25rem top 0}to{background-position:100% 0}}.cdx-dialog .cdx-multiselect-lookup{position:static}

View file

@ -0,0 +1 @@
"use strict";var q=(e,o,s)=>new Promise((v,p)=>{var l=u=>{try{i(s.next(u))}catch(a){p(a)}},c=u=>{try{i(s.throw(u))}catch(a){p(a)}},i=u=>u.done?v(u.value):Promise.resolve(u.value).then(l,c);i((s=s.apply(e,o)).next())});const t=require("vue"),K=require("./CdxChipInput.cjs"),N=require("./CdxMenu.cjs"),D=require("./useFieldData.cjs"),L=require("./useFloatingMenu.cjs"),O=require("./useGeneratedId.cjs"),S=require("./useModelWrapper.cjs"),T=require("./useOptionalModelWrapper.js"),z=require("./useSplitAttributes.cjs"),b=require("./constants.js"),E=require("./_plugin-vue_export-helper.js"),H=b.makeStringTypeValidator(b.ValidationStatusTypes),P=t.defineComponent({name:"CdxMultiselectLookup",components:{CdxChipInput:K,CdxMenu:N},props:{inputChips:{type:Array,required:!0},selected:{type:[Array],required:!0},menuItems:{type:Array,required:!0},inputValue:{type:[String,Number],default:null},separateInput:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},status:{type:String,default:"default",validator:H},menuConfig:{type:Object,default:()=>({})}},emits:["update:input-chips","update:selected","update:input-value","load-more","input","change","focus","blur"],setup:(e,{emit:o,attrs:s,slots:v})=>{const p=t.ref(),l=t.ref(),c=O("multiselect-lookup-menu"),i=t.computed(()=>{var n,r;return(r=(n=l.value)==null?void 0:n.getHighlightedMenuItem())==null?void 0:r.id}),u=t.ref(!1),a=t.ref(!1),h=t.ref(!1);t.provide(b.AllowArbitraryKey,t.ref(!1));const{computedDisabled:g,computedStatus:V}=D(t.toRef(e,"disabled"),t.toRef(e,"status")),k=t.computed(()=>({"cdx-multiselect-lookup--disabled":g.value,"cdx-multiselect-lookup--pending":u.value})),{rootClasses:w,rootStyle:M,otherAttrs:A}=z(s,k);L(p,l);const I=S(t.toRef(e,"selected"),o,"update:selected"),f=S(t.toRef(e,"inputChips"),o,"update:input-chips"),R=t.ref(""),y=T.useOptionalModelWrapper(R,t.toRef(e,"inputValue"),o,"update:input-value"),C=t.computed(()=>y.value.toString().length>0&&v["no-results"]);function W(n){return q(this,null,function*(){yield t.nextTick(),u.value=n!==null&&n!=="",o("input",n)})}function B(n){h.value=!0,(e.menuItems.length>0||C.value)&&(a.value=!0),o("focus",n)}function U(n){h.value=!1,a.value=!1,o("blur",n)}function $(n){!l.value||g.value||e.menuItems.length===0&&!C.value||n.key===" "||l.value.delegateKeyNavigation(n)}return t.watch(t.toRef(e,"selected"),n=>{const r=n.filter(m=>f.value.find(d=>m===d.value)===void 0);r.length>0&&(r.forEach(m=>{const d=e.menuItems.find(F=>F.value===m);d&&f.value.push(d)}),y.value="",o("input","")),f.value=f.value.filter(m=>n.find(d=>m.value===d)!==void 0)}),t.watch(t.toRef(e,"inputChips"),n=>{n.length<I.value.length&&(I.value=n.map(r=>r.value))}),t.watch(t.toRef(e,"menuItems"),n=>{n.length===0&&!C.value?a.value=!1:h.value&&u.value&&(a.value=!0),u.value=!1}),{chipInput:p,menu:l,menuId:c,highlightedId:i,expanded:a,computedDisabled:g,computedStatus:V,rootClasses:w,rootStyle:M,otherAttrs:A,selectedWrapper:I,inputChipsWrapper:f,computedInputValue:y,onUpdateInputValue:W,onInputBlur:U,onInputFocus:B,onKeydown:$}}});function j(e,o,s,v,p,l){const c=t.resolveComponent("cdx-chip-input"),i=t.resolveComponent("cdx-menu");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-multiselect-lookup",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createVNode(c,t.mergeProps({ref:"chipInput","input-chips":e.inputChipsWrapper,"onUpdate:inputChips":o[0]||(o[0]=u=>e.inputChipsWrapper=u),"input-value":e.computedInputValue,"onUpdate:inputValue":o[1]||(o[1]=u=>e.computedInputValue=u)},e.otherAttrs,{class:"cdx-multiselect-lookup__chip-input",role:"combobox",autocomplete:"off","aria-autocomplete":"list","aria-controls":e.menuId,"aria-expanded":e.expanded,"aria-activedescendant":e.highlightedId,"separate-input":e.separateInput,disabled:e.computedDisabled,status:e.computedStatus,"disallow-arbitrary":!0,"onUpdate:inputValue":e.onUpdateInputValue,onFocus:e.onInputFocus,onBlur:e.onInputBlur,onKeydown:e.onKeydown}),null,16,["input-chips","input-value","aria-controls","aria-expanded","aria-activedescendant","separate-input","disabled","status","onUpdate:inputValue","onFocus","onBlur","onKeydown"]),t.createVNode(i,t.mergeProps({id:e.menuId,ref:"menu",selected:e.selectedWrapper,"onUpdate:selected":o[2]||(o[2]=u=>e.selectedWrapper=u),expanded:e.expanded,"onUpdate:expanded":o[3]||(o[3]=u=>e.expanded=u),"menu-items":e.menuItems},e.menuConfig,{onLoadMore:o[4]||(o[4]=u=>e.$emit("load-more"))}),{default:t.withCtx(({menuItem:u})=>[t.renderSlot(e.$slots,"menu-item",{menuItem:u})]),"no-results":t.withCtx(()=>[t.renderSlot(e.$slots,"no-results")]),_:3},16,["id","selected","expanded","menu-items"])],6)}const x=E._export_sfc(P,[["render",j]]);module.exports=x;

View file

@ -0,0 +1 @@
.cdx-multiselect-lookup{position:relative;box-sizing:border-box;vertical-align:middle}.cdx-multiselect-lookup--pending .cdx-chip-input:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-multiselect-lookup--pending .cdx-chip-input .cdx-chip-input__separate-input{background-color:var(--background-color-interactive, #eaecf0);background-image:linear-gradient(135deg,var(--background-color-base, #fff) 25%,var(--background-color-transparent, transparent) 25%,var(--background-color-transparent, transparent) 50%,var(--background-color-base, #fff) 50%,var(--background-color-base, #fff) 75%,var(--background-color-transparent, transparent) 75%,var(--background-color-transparent, transparent));background-size:1.25rem 1.25rem;animation-name:cdx-animation-pending-stripes;animation-duration:.65s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes cdx-animation-pending-stripes{0%{background-position:-1.25rem 0}to{background-position:0 0}}.cdx-dialog .cdx-multiselect-lookup{position:static}

View file

@ -341,6 +341,27 @@
"CdxMessage-bidi.css"
]
},
"src/components/multiselect-lookup/MultiselectLookup.vue": {
"file": "CdxMultiselectLookup.cjs",
"name": "CdxMultiselectLookup",
"src": "src/components/multiselect-lookup/MultiselectLookup.vue",
"isEntry": true,
"imports": [
"src/components/chip-input/ChipInput.vue",
"src/components/menu/Menu.vue",
"src/composables/useFieldData.ts",
"src/composables/useFloatingMenu.ts",
"src/composables/useGeneratedId.ts",
"src/composables/useModelWrapper.ts",
"_useOptionalModelWrapper.js",
"src/composables/useSplitAttributes.ts",
"_constants.js",
"__plugin-vue_export-helper.js"
],
"css": [
"CdxMultiselectLookup-bidi.css"
]
},
"src/components/progress-bar/ProgressBar.vue": {
"file": "CdxProgressBar.cjs",
"name": "CdxProgressBar",

View file

@ -341,6 +341,27 @@
"CdxMessage-rtl.css"
]
},
"src/components/multiselect-lookup/MultiselectLookup.vue": {
"file": "CdxMultiselectLookup.cjs",
"name": "CdxMultiselectLookup",
"src": "src/components/multiselect-lookup/MultiselectLookup.vue",
"isEntry": true,
"imports": [
"src/components/chip-input/ChipInput.vue",
"src/components/menu/Menu.vue",
"src/composables/useFieldData.ts",
"src/composables/useFloatingMenu.ts",
"src/composables/useGeneratedId.ts",
"src/composables/useModelWrapper.ts",
"_useOptionalModelWrapper.js",
"src/composables/useSplitAttributes.ts",
"_constants.js",
"__plugin-vue_export-helper.js"
],
"css": [
"CdxMultiselectLookup-rtl.css"
]
},
"src/components/progress-bar/ProgressBar.vue": {
"file": "CdxProgressBar.cjs",
"name": "CdxProgressBar",

View file

@ -341,6 +341,27 @@
"CdxMessage.css"
]
},
"src/components/multiselect-lookup/MultiselectLookup.vue": {
"file": "CdxMultiselectLookup.cjs",
"name": "CdxMultiselectLookup",
"src": "src/components/multiselect-lookup/MultiselectLookup.vue",
"isEntry": true,
"imports": [
"src/components/chip-input/ChipInput.vue",
"src/components/menu/Menu.vue",
"src/composables/useFieldData.ts",
"src/composables/useFloatingMenu.ts",
"src/composables/useGeneratedId.ts",
"src/composables/useModelWrapper.ts",
"_useOptionalModelWrapper.js",
"src/composables/useSplitAttributes.ts",
"_constants.js",
"__plugin-vue_export-helper.js"
],
"css": [
"CdxMultiselectLookup.css"
]
},
"src/components/progress-bar/ProgressBar.vue": {
"file": "CdxProgressBar.cjs",
"name": "CdxProgressBar",

View file

@ -2,7 +2,7 @@
"$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"serialNumber": "urn:uuid:d9ae2cc0-ee52-459c-b16b-63448b239072",
"serialNumber": "urn:uuid:ef77018a-be42-4f3f-b1e7-95f12e296eb3",
"version": 1,
"components": [
{
@ -32,7 +32,7 @@
{
"type": "library",
"name": "codex",
"version": "1.13.1",
"version": "1.14.0",
"licenses": [
{
"license": {
@ -40,7 +40,7 @@
}
}
],
"purl": "pkg:npm/@wikimedia/codex@1.13.1",
"purl": "pkg:npm/@wikimedia/codex@1.14.0",
"authors": [
{
"name": "Design System team"
@ -59,7 +59,7 @@
{
"type": "library",
"name": "codex-design-tokens",
"version": "1.13.1",
"version": "1.14.0",
"licenses": [
{
"license": {
@ -67,7 +67,7 @@
}
}
],
"purl": "pkg:npm/@wikimedia/codex-design-tokens@1.13.1",
"purl": "pkg:npm/@wikimedia/codex-design-tokens@1.14.0",
"authors": [
{
"name": "Design System team"
@ -86,7 +86,7 @@
{
"type": "library",
"name": "codex-icons",
"version": "1.13.1",
"version": "1.14.0",
"licenses": [
{
"license": {
@ -94,7 +94,7 @@
}
}
],
"purl": "pkg:npm/@wikimedia/codex-icons@1.13.1",
"purl": "pkg:npm/@wikimedia/codex-icons@1.14.0",
"authors": [
{
"name": "Design System team"

View file

@ -125,11 +125,11 @@ codex:
license: GPL-2.0+
homepage: https://doc.wikimedia.org/codex/
authors: Design System team, Wikimedia Foundation
version: 1.13.1
purl: pkg:npm/@wikimedia/codex@1.13.1
version: 1.14.0
purl: pkg:npm/@wikimedia/codex@1.14.0
type: tar
src: https://registry.npmjs.org/@wikimedia/codex/-/codex-1.13.1.tgz
integrity: sha384-QbFhrDCr/oNzXS7/jMKqLE8HUBPCTkzZXDh3n/ml6R4AhY0Cs0mE3Ap4AVSA4fpZ
src: https://registry.npmjs.org/@wikimedia/codex/-/codex-1.14.0.tgz
integrity: sha384-o8NvdWUn15pb7fzwPohTiifUab8UGVslAI8VGcAjPizeJeYwZ/Gmiajvck3D+Rz4
dest:
package/dist/codex.cjs:
package/dist/codex.js:
@ -146,11 +146,11 @@ codex-design-tokens:
license: GPL-2.0+
homepage: https://doc.wikimedia.org/codex/
authors: Design System team, Wikimedia Foundation
version: 1.13.1
purl: pkg:npm/@wikimedia/codex-design-tokens@1.13.1
version: 1.14.0
purl: pkg:npm/@wikimedia/codex-design-tokens@1.14.0
type: tar
src: https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-1.13.1.tgz
integrity: sha384-5y0LyV3vq4h2x6wgBsJvH4rTfAAUX2cIGMBPD0YpV3ImJXRLoI3LgR+BPVZNTEac
src: https://registry.npmjs.org/@wikimedia/codex-design-tokens/-/codex-design-tokens-1.14.0.tgz
integrity: sha384-9+A0bemVWjCetPN9hBgrg+A9+oFH743oIV6I4ODYp3GHZ5P2ede17y4TR2tZlJON
dest:
package/dist/theme-*.less:
package/dist/theme-wikimedia-ui-root.css:
@ -162,11 +162,11 @@ codex-icons:
license: MIT
homepage: https://doc.wikimedia.org/codex/
authors: Design System team, Wikimedia Foundation
version: 1.13.1
purl: pkg:npm/@wikimedia/codex-icons@1.13.1
version: 1.14.0
purl: pkg:npm/@wikimedia/codex-icons@1.14.0
type: tar
src: https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-1.13.1.tgz
integrity: sha384-Pkooxbqf0p4DyeNCfY/woad7pyG9+h+gcWdlSNhKdF8oCVo52L0OSIX4UGFegjJw
src: https://registry.npmjs.org/@wikimedia/codex-icons/-/codex-icons-1.14.0.tgz
integrity: sha384-heGnyT3UdMvqIJ/BzDxVVyuLWcBajYUATVAqIG/48249BJJvfmGgDXdYHK0aYbJ1
dest:
package/dist/codex-icons.json:
package/dist/codex-icon-paths.less: