fds-vue-core 2.1.4 → 2.1.6
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.
- package/components.d.ts +8 -0
- package/configs/tsconfig.base.json +2 -1
- package/dist/fds-vue-core.cjs.js +35 -15
- package/dist/fds-vue-core.cjs.js.map +1 -1
- package/dist/fds-vue-core.es.js +35 -15
- package/dist/fds-vue-core.es.js.map +1 -1
- package/dist/global-components.d.ts +35 -33
- package/package.json +23 -21
- package/src/.DS_Store +0 -0
- package/src/App.vue +133 -0
- package/src/apply.css +60 -0
- package/src/assets/icons.ts +517 -0
- package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.stories.ts +94 -0
- package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue +112 -0
- package/src/components/Blocks/FdsBlockAlert/types.ts +12 -0
- package/src/components/Blocks/FdsBlockContent/FdsBlockContent.stories.ts +110 -0
- package/src/components/Blocks/FdsBlockContent/FdsBlockContent.vue +66 -0
- package/src/components/Blocks/FdsBlockContent/types.ts +6 -0
- package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.ts +123 -0
- package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue +87 -0
- package/src/components/Blocks/FdsBlockExpander/types.ts +8 -0
- package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.ts +110 -0
- package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue +75 -0
- package/src/components/Blocks/FdsBlockInfo/types.ts +9 -0
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.css +9 -0
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.stories.ts +179 -0
- package/src/components/Blocks/FdsBlockLink/FdsBlockLink.vue +149 -0
- package/src/components/Blocks/FdsBlockLink/types.ts +14 -0
- package/src/components/Buttons/ButtonBaseProps.ts +18 -0
- package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.stories.ts +53 -0
- package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue +87 -0
- package/src/components/Buttons/FdsButtonCopy/types.ts +8 -0
- package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.stories.ts +111 -0
- package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue +187 -0
- package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.ts +55 -0
- package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue +57 -0
- package/src/components/Buttons/FdsButtonIcon/types.ts +12 -0
- package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.ts +68 -0
- package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue +126 -0
- package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.ts +86 -0
- package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue +107 -0
- package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.ts +68 -0
- package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue +107 -0
- package/src/components/FdsIcon/FdsIcon.stories.ts +69 -0
- package/src/components/FdsIcon/FdsIcon.vue +34 -0
- package/src/components/FdsIcon/types.ts +9 -0
- package/src/components/FdsModal/FdsModal.stories.ts +241 -0
- package/src/components/FdsModal/FdsModal.vue +269 -0
- package/src/components/FdsModal/types.ts +12 -0
- package/src/components/FdsPagination/FdsPagination.stories.ts +109 -0
- package/src/components/FdsPagination/FdsPagination.vue +193 -0
- package/src/components/FdsPagination/types.ts +6 -0
- package/src/components/FdsSearchSelect/FdsSearchSelect.stories.ts +428 -0
- package/src/components/FdsSearchSelect/FdsSearchSelect.vue +621 -0
- package/src/components/FdsSearchSelect/types.ts +25 -0
- package/src/components/FdsSpinner/FdsSpinner.stories.ts +31 -0
- package/src/components/FdsSpinner/FdsSpinner.vue +90 -0
- package/src/components/FdsSpinner/types.ts +6 -0
- package/src/components/FdsSticker/FdsSticker.stories.ts +148 -0
- package/src/components/FdsSticker/FdsSticker.vue +44 -0
- package/src/components/FdsSticker/types.ts +4 -0
- package/src/components/FdsTreeView/FdsTreeView.stories.ts +136 -0
- package/src/components/FdsTreeView/FdsTreeView.vue +162 -0
- package/src/components/FdsTreeView/TreeNode.vue +383 -0
- package/src/components/FdsTreeView/types.ts +141 -0
- package/src/components/FdsTreeView/useTreeState.ts +607 -0
- package/src/components/FdsTreeView/utils.ts +69 -0
- package/src/components/FdsTruncatedText/FdsTruncatedText.stories.ts +78 -0
- package/src/components/FdsTruncatedText/FdsTruncatedText.vue +85 -0
- package/src/components/FdsTruncatedText/types.ts +6 -0
- package/src/components/Form/FdsCheckbox/FdsCheckbox.stories.ts +275 -0
- package/src/components/Form/FdsCheckbox/FdsCheckbox.vue +155 -0
- package/src/components/Form/FdsCheckbox/types.ts +10 -0
- package/src/components/Form/FdsInput/FdsInput.stories.ts +319 -0
- package/src/components/Form/FdsInput/FdsInput.vue +233 -0
- package/src/components/Form/FdsInput/types.ts +25 -0
- package/src/components/Form/FdsRadio/FdsRadio.stories.ts +63 -0
- package/src/components/Form/FdsRadio/FdsRadio.vue +88 -0
- package/src/components/Form/FdsRadio/types.ts +12 -0
- package/src/components/Form/FdsSelect/FdsSelect.stories.ts +78 -0
- package/src/components/Form/FdsSelect/FdsSelect.vue +136 -0
- package/src/components/Form/FdsSelect/types.ts +13 -0
- package/src/components/Form/FdsTextarea/FdsTextarea.stories.ts +52 -0
- package/src/components/Form/FdsTextarea/FdsTextarea.vue +110 -0
- package/src/components/Form/FdsTextarea/types.ts +12 -0
- package/src/components/Table/FdsTable/FdsTable.stories.ts +221 -0
- package/src/components/Table/FdsTable/FdsTable.vue +25 -0
- package/src/components/Table/FdsTable/types.ts +4 -0
- package/src/components/Table/FdsTableHead/FdsTableHead.stories.ts +151 -0
- package/src/components/Table/FdsTableHead/FdsTableHead.vue +54 -0
- package/src/components/Table/FdsTableHead/types.ts +5 -0
- package/src/components/Tabs/FdsTabs/FdsTabs.stories.ts +247 -0
- package/src/components/Tabs/FdsTabs/FdsTabs.vue +27 -0
- package/src/components/Tabs/FdsTabs/types.ts +4 -0
- package/src/components/Tabs/FdsTabsItem/FdsTabsItem.vue +125 -0
- package/src/components/Tabs/FdsTabsItem/types.ts +16 -0
- package/src/components/Typography/FdsHeading/FdsHeading.stories.ts +93 -0
- package/src/components/Typography/FdsHeading/FdsHeading.vue +51 -0
- package/src/components/Typography/FdsHeading/types.ts +5 -0
- package/src/components/Typography/FdsListHeading/FdsListHeading.stories.ts +58 -0
- package/src/components/Typography/FdsListHeading/FdsListHeading.vue +62 -0
- package/src/components/Typography/FdsListHeading/types.ts +8 -0
- package/src/components/Typography/FdsSeparator/FdsSeparator.stories.ts +31 -0
- package/src/components/Typography/FdsSeparator/FdsSeparator.vue +5 -0
- package/src/components/Typography/FdsText/FdsText.stories.ts +66 -0
- package/src/components/Typography/FdsText/FdsText.vue +28 -0
- package/src/components/Typography/FdsText/types.ts +3 -0
- package/src/composables/useBoldQuery.ts +29 -0
- package/src/composables/useElementFinalSize.ts +24 -0
- package/src/composables/useHasSlots.ts +17 -0
- package/src/composables/useIsPid.ts +48 -0
- package/src/docs/Start/Start.mdx +12 -0
- package/src/docs/Usage.md +117 -0
- package/src/fonts.css +28 -0
- package/src/global-components.ts +75 -0
- package/src/index.ts +180 -0
- package/src/main.ts +7 -0
- package/src/slot-styles.css +93 -0
- package/src/style.css +89 -0
- package/src/tokens.css +252 -0
- package/dist/index.d.ts +0 -2
package/components.d.ts
ADDED
package/dist/fds-vue-core.cjs.js
CHANGED
|
@@ -1201,8 +1201,9 @@ const getTitleFromProperties = (node, titleTemplate) => {
|
|
|
1201
1201
|
if (!titleTemplate) {
|
|
1202
1202
|
return node.title;
|
|
1203
1203
|
}
|
|
1204
|
-
const
|
|
1205
|
-
|
|
1204
|
+
const template = titleTemplate ?? "";
|
|
1205
|
+
const templateVariables = extractTemplateVariables(template);
|
|
1206
|
+
let result = template;
|
|
1206
1207
|
templateVariables.forEach((variable) => {
|
|
1207
1208
|
const value = getNodePropertyValue(node, variable);
|
|
1208
1209
|
const regex = new RegExp(`\\[\\[${variable.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\]\\]`, "g");
|
|
@@ -1215,7 +1216,9 @@ const extractTemplateVariables = (template) => {
|
|
|
1215
1216
|
const matches = [];
|
|
1216
1217
|
let match;
|
|
1217
1218
|
while ((match = regex.exec(template)) !== null) {
|
|
1218
|
-
|
|
1219
|
+
if (match[1]) {
|
|
1220
|
+
matches.push(match[1]);
|
|
1221
|
+
}
|
|
1219
1222
|
}
|
|
1220
1223
|
return matches;
|
|
1221
1224
|
};
|
|
@@ -6575,6 +6578,13 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6575
6578
|
"sticky bg-white bottom-0 shadow-[0px_-8px_16px_0px_rgba(255,255,255,0.59)] z-[2] -mx-6 px-6 pb-6": props.stickyFooter
|
|
6576
6579
|
}
|
|
6577
6580
|
]);
|
|
6581
|
+
const setHtmlOverflow = (value) => {
|
|
6582
|
+
if (typeof document === "undefined") return;
|
|
6583
|
+
const htmlEl = document.documentElement;
|
|
6584
|
+
if (htmlEl) {
|
|
6585
|
+
htmlEl.style.overflow = value;
|
|
6586
|
+
}
|
|
6587
|
+
};
|
|
6578
6588
|
const handleBackdropClick = () => {
|
|
6579
6589
|
handleClose("backdrop");
|
|
6580
6590
|
};
|
|
@@ -6583,7 +6593,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6583
6593
|
return;
|
|
6584
6594
|
}
|
|
6585
6595
|
isOpen.value = false;
|
|
6586
|
-
|
|
6596
|
+
setHtmlOverflow("auto");
|
|
6587
6597
|
vue.nextTick(() => {
|
|
6588
6598
|
if (previouslyFocusedElement.value) {
|
|
6589
6599
|
previouslyFocusedElement.value.focus();
|
|
@@ -6638,11 +6648,11 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6638
6648
|
if (newValue) {
|
|
6639
6649
|
previouslyFocusedElement.value = document.activeElement;
|
|
6640
6650
|
if (props.lockScroll) {
|
|
6641
|
-
|
|
6651
|
+
setHtmlOverflow("hidden");
|
|
6642
6652
|
}
|
|
6643
6653
|
trapFocus();
|
|
6644
6654
|
} else {
|
|
6645
|
-
|
|
6655
|
+
setHtmlOverflow("auto");
|
|
6646
6656
|
if (cleanupFocusTrap) {
|
|
6647
6657
|
cleanupFocusTrap();
|
|
6648
6658
|
cleanupFocusTrap = null;
|
|
@@ -6661,14 +6671,14 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6661
6671
|
if (props.open) {
|
|
6662
6672
|
previouslyFocusedElement.value = document.activeElement;
|
|
6663
6673
|
if (props.lockScroll) {
|
|
6664
|
-
|
|
6674
|
+
setHtmlOverflow("hidden");
|
|
6665
6675
|
}
|
|
6666
6676
|
trapFocus();
|
|
6667
6677
|
}
|
|
6668
6678
|
});
|
|
6669
6679
|
vue.onBeforeUnmount(() => {
|
|
6670
6680
|
document.removeEventListener("keydown", handleKeyDown, true);
|
|
6671
|
-
|
|
6681
|
+
setHtmlOverflow("auto");
|
|
6672
6682
|
if (cleanupFocusTrap) {
|
|
6673
6683
|
cleanupFocusTrap();
|
|
6674
6684
|
}
|
|
@@ -6988,6 +6998,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
6988
6998
|
emits: ["searchSelected", "paginate", "total", "change"],
|
|
6989
6999
|
setup(__props, { emit: __emit }) {
|
|
6990
7000
|
const props = __props;
|
|
7001
|
+
const searchFields = vue.computed(() => props.searchFields ?? []);
|
|
6991
7002
|
const emit = __emit;
|
|
6992
7003
|
const dropdownVisible = vue.ref(false);
|
|
6993
7004
|
const singleItemName = vue.ref("");
|
|
@@ -7030,7 +7041,9 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7030
7041
|
return { maxHeight: `${maxHeight}px` };
|
|
7031
7042
|
});
|
|
7032
7043
|
const sortResponse = (response) => {
|
|
7033
|
-
|
|
7044
|
+
if (!response.length) return [];
|
|
7045
|
+
const firstItem = response[0] ?? {};
|
|
7046
|
+
const allKeys = [...searchFields.value, ...Object.keys(firstItem).filter((k) => !searchFields.value.includes(k))];
|
|
7034
7047
|
return response.map((item) => {
|
|
7035
7048
|
const sorted = {};
|
|
7036
7049
|
allKeys.forEach((key) => {
|
|
@@ -7045,7 +7058,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7045
7058
|
const searchLower = searchValue.toLowerCase();
|
|
7046
7059
|
const pidRegex = /^\d{8}[a-zA-Z0-9]{4}$/;
|
|
7047
7060
|
if (pidRegex.test(searchValue)) return true;
|
|
7048
|
-
return
|
|
7061
|
+
return searchFields.value.some((key) => {
|
|
7049
7062
|
const value = item[key];
|
|
7050
7063
|
if (!value) return false;
|
|
7051
7064
|
const stringValue = String(value);
|
|
@@ -7061,7 +7074,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7061
7074
|
emit("total", 0);
|
|
7062
7075
|
return;
|
|
7063
7076
|
}
|
|
7064
|
-
let sourceData = props.items;
|
|
7077
|
+
let sourceData = props.items ?? [];
|
|
7065
7078
|
if (props.preserveOrder && sourceData.length) {
|
|
7066
7079
|
sourceData = sortResponse(sourceData);
|
|
7067
7080
|
}
|
|
@@ -7166,7 +7179,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7166
7179
|
return void 0;
|
|
7167
7180
|
});
|
|
7168
7181
|
const handleMatchingString = (item) => {
|
|
7169
|
-
const values =
|
|
7182
|
+
const values = searchFields.value.map((key) => String(item[key] || ""));
|
|
7170
7183
|
let result = "";
|
|
7171
7184
|
if (values.length === 1) {
|
|
7172
7185
|
result = values[0] || "";
|
|
@@ -7208,7 +7221,8 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7208
7221
|
if (keyEvent.key === "Enter" || keyEvent.code === "Space" || e.type === "mouseup") {
|
|
7209
7222
|
e.preventDefault();
|
|
7210
7223
|
e.stopPropagation();
|
|
7211
|
-
|
|
7224
|
+
const firstField = searchFields.value[0];
|
|
7225
|
+
searchTerm.value = (firstField ? item[firstField] : "") || "";
|
|
7212
7226
|
selectItem(item);
|
|
7213
7227
|
focusedIndex.value = -1;
|
|
7214
7228
|
dropdownVisible.value = false;
|
|
@@ -7272,9 +7286,15 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
7272
7286
|
case "Enter":
|
|
7273
7287
|
e.preventDefault();
|
|
7274
7288
|
if (focusedIndex.value >= 0 && focusedIndex.value < displayedItems.value.length) {
|
|
7275
|
-
|
|
7289
|
+
const focusedItem = displayedItems.value[focusedIndex.value];
|
|
7290
|
+
if (focusedItem) {
|
|
7291
|
+
handleClick(e, focusedItem);
|
|
7292
|
+
}
|
|
7276
7293
|
} else if (displayedItems.value.length === 1) {
|
|
7277
|
-
|
|
7294
|
+
const onlyItem = displayedItems.value[0];
|
|
7295
|
+
if (onlyItem) {
|
|
7296
|
+
handleClick(e, onlyItem);
|
|
7297
|
+
}
|
|
7278
7298
|
}
|
|
7279
7299
|
break;
|
|
7280
7300
|
case "Escape":
|