bitboss-ui 3.0.0-beta.21 → 3.0.0-beta.23
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/README.md +55 -3
- package/bin/bitboss-ui-mcp.mjs +419 -9
- package/bin/bitboss-ui.mjs +293 -22
- package/dist/ai/BbAccordion.md +21 -23
- package/dist/ai/BbAlert.md +6 -12
- package/dist/ai/BbAvatar.md +60 -24
- package/dist/ai/BbBadge.md +12 -20
- package/dist/ai/BbBaseButton.md +14 -16
- package/dist/ai/BbBaseCheckboxIcon.md +6 -10
- package/dist/ai/BbBaseColorInput.md +1 -0
- package/dist/ai/BbBaseDatePickerInput.md +1 -0
- package/dist/ai/BbBaseNumberInput.md +1 -0
- package/dist/ai/BbBaseRadioIcon.md +6 -10
- package/dist/ai/BbBaseSelect.md +1 -0
- package/dist/ai/BbBaseSwitchIcon.md +5 -9
- package/dist/ai/BbBaseTag.md +1 -0
- package/dist/ai/BbBaseTextInput.md +2 -1
- package/dist/ai/BbBaseTextarea.md +1 -0
- package/dist/ai/BbBaseTimePickerInput.md +1 -0
- package/dist/ai/BbBreadcrumbs.md +23 -34
- package/dist/ai/BbButton.md +35 -47
- package/dist/ai/BbCheckbox.md +21 -37
- package/dist/ai/BbCheckboxGroup.md +13 -13
- package/dist/ai/BbCollapsible.md +14 -26
- package/dist/ai/BbColorInput.md +27 -23
- package/dist/ai/BbColorPalette.md +23 -35
- package/dist/ai/BbConfirm.md +17 -32
- package/dist/ai/BbDatePickerInput.md +29 -21
- package/dist/ai/BbDialog.md +159 -62
- package/dist/ai/BbDropdown.md +21 -25
- package/dist/ai/BbDropdownButton.md +13 -30
- package/dist/ai/BbDropzone.md +9 -11
- package/dist/ai/BbIcon.md +44 -33
- package/dist/ai/BbIndicator.md +2 -2
- package/dist/ai/BbNumberInput.md +32 -20
- package/dist/ai/BbOffCanvas.md +42 -42
- package/dist/ai/BbPagination.md +21 -23
- package/dist/ai/BbPopover.md +15 -17
- package/dist/ai/BbProgress.md +40 -51
- package/dist/ai/BbRadio.md +9 -9
- package/dist/ai/BbRadioGroup.md +7 -11
- package/dist/ai/BbRating.md +8 -12
- package/dist/ai/BbSelect.md +46 -36
- package/dist/ai/BbSelectPopover.md +19 -31
- package/dist/ai/BbSlider.md +15 -19
- package/dist/ai/BbSmoothHeight.md +16 -31
- package/dist/ai/BbSpinner.md +118 -74
- package/dist/ai/BbSwitch.md +25 -18
- package/dist/ai/BbSwitchGroup.md +9 -14
- package/dist/ai/BbTable.md +102 -55
- package/dist/ai/BbTabs.md +59 -82
- package/dist/ai/BbTag.md +26 -23
- package/dist/ai/BbTextInput.md +63 -27
- package/dist/ai/BbTextarea.md +42 -34
- package/dist/ai/BbTimePickerInput.md +14 -0
- package/dist/ai/BbToast.md +14 -34
- package/dist/ai/BbTooltip.md +22 -20
- package/dist/ai/BbTree.md +46 -72
- package/dist/ai/CommonInputWrapper.md +1 -0
- package/dist/ai/changelog.json +170 -62
- package/dist/ai/components.json +1678 -11
- package/dist/ai/composables/useConfirm.md +5 -2
- package/dist/ai/composables/useToast.md +4 -2
- package/dist/ai/guides/agent-contract.md +7 -4
- package/dist/ai/guides/ai-router.md +37 -22
- package/dist/ai/guides/component-picker.md +23 -18
- package/dist/ai/guides/design-language.md +151 -21
- package/dist/ai/guides/design-tokens.md +29 -4
- package/dist/ai/guides/icons-policy.md +46 -21
- package/dist/ai/guides/installation-and-plugin-setup.md +286 -17
- package/dist/ai/guides/migration/components/bb-rating.md +26 -1
- package/dist/ai/guides/migration/components/bb-tooltip.md +18 -0
- package/dist/ai/guides/migration/v2-to-v3.md +50 -23
- package/dist/ai/index.md +1 -1
- package/dist/ai/recipes/inertia/approvals-inbox.md +3 -3
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +2 -2
- package/dist/ai/recipes/inertia/onboarding.md +2 -2
- package/dist/ai/recipes/inertia/ownership-atlas.md +6 -6
- package/dist/ai/recipes/inertia/record-form.md +5 -5
- package/dist/ai/recipes/inertia/records-workspace.md +4 -4
- package/dist/ai/recipes/inertia/upload-center.md +6 -6
- package/dist/ai/recipes/inertia/wizard-form.md +5 -5
- package/dist/ai/recipes/nuxt/approvals-inbox.md +3 -3
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +2 -2
- package/dist/ai/recipes/nuxt/onboarding.md +2 -2
- package/dist/ai/recipes/nuxt/record-form.md +5 -5
- package/dist/ai/recipes/nuxt/records-workspace.md +4 -4
- package/dist/ai/recipes/nuxt/upload-center.md +6 -6
- package/dist/ai/recipes/nuxt/wizard-form.md +5 -5
- package/dist/ai/recipes/vue/approvals-inbox.md +3 -3
- package/dist/ai/recipes/vue/inline-edit-workspace.md +2 -2
- package/dist/ai/recipes/vue/onboarding.md +2 -2
- package/dist/ai/recipes/vue/record-form.md +10 -10
- package/dist/ai/recipes/vue/records-workspace.md +4 -4
- package/dist/ai/recipes/vue/upload-center.md +6 -6
- package/dist/ai/recipes/vue/wizard-form.md +5 -5
- package/dist/ai/source/BbBadge.md +1 -1
- package/dist/ai/source/BbBaseCheckbox.md +1 -1
- package/dist/ai/source/BbBaseColorInput.md +7 -0
- package/dist/ai/source/BbBaseDatePicker.md +5 -5
- package/dist/ai/source/BbBaseDatePickerInput.md +9 -2
- package/dist/ai/source/BbBaseNumberInput.md +7 -0
- package/dist/ai/source/BbBaseRadio.md +1 -1
- package/dist/ai/source/BbBaseRating.md +5 -5
- package/dist/ai/source/BbBaseSelect.md +8 -1
- package/dist/ai/source/BbBaseSlider.md +5 -5
- package/dist/ai/source/BbBaseSwitch.md +1 -1
- package/dist/ai/source/BbBaseTag.md +7 -0
- package/dist/ai/source/BbBaseTextInput.md +7 -0
- package/dist/ai/source/BbBaseTextarea.md +7 -0
- package/dist/ai/source/BbBaseTimePickerInput.md +8 -1
- package/dist/ai/source/BbBreadcrumbs.md +20 -1
- package/dist/ai/source/BbButton.md +2 -2
- package/dist/ai/source/BbColorInput.md +14 -0
- package/dist/ai/source/BbDatePickerInput.md +14 -0
- package/dist/ai/source/BbDialog.md +39 -8
- package/dist/ai/source/BbDropdown.md +1 -1
- package/dist/ai/source/BbDropzone.md +5 -5
- package/dist/ai/source/BbIcon.md +23 -10
- package/dist/ai/source/BbNumberInput.md +14 -0
- package/dist/ai/source/BbOffCanvas.md +50 -28
- package/dist/ai/source/BbPagination.md +2 -2
- package/dist/ai/source/BbPopover.md +12 -1
- package/dist/ai/source/BbSelect.md +14 -0
- package/dist/ai/source/BbSelectPopover.md +45 -7
- package/dist/ai/source/BbSpinner.md +2 -2
- package/dist/ai/source/BbTable.md +11 -11
- package/dist/ai/source/BbTag.md +14 -0
- package/dist/ai/source/BbTextInput.md +14 -0
- package/dist/ai/source/BbTextarea.md +14 -0
- package/dist/ai/source/BbTimePickerInput.md +14 -0
- package/dist/ai/source/BbTooltip.md +57 -10
- package/dist/ai/source/ChipsBox.md +1 -1
- package/dist/ai/source/CommaBox.md +1 -1
- package/dist/ai/source/CommonInputWrapper.md +128 -33
- package/dist/ai/source/GuidesComponent.md +14 -7
- package/dist/ai/source/OptionsContainer.md +1 -1
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/BbBaseColorInput/types.d.ts +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbBaseDatePickerInput/types.d.ts +5 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.d.ts +1 -1
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/BbBaseNumberInput/types.d.ts +5 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/BbBaseSelect/types.d.ts +5 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/BbBaseTag/types.d.ts +5 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/BbBaseTextInput/types.d.ts +5 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/BbBaseTextarea/types.d.ts +5 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbBaseTimePickerInput/types.d.ts +5 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +71 -71
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbColorInput/types.d.ts +12 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +4 -2
- package/dist/components/BbDatePickerInput/types.d.ts +12 -0
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +102 -97
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +58 -58
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +33 -35
- package/dist/components/BbIcon/iconCache.d.ts +30 -0
- package/dist/components/BbIcon/iconCache.js +21 -3
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbNumberInput/types.d.ts +12 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +57 -56
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +138 -138
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +4 -2
- package/dist/components/BbSelect/types.d.ts +12 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +43 -43
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbSpinner/types.d.ts +1 -1
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/BbTable/BbTableDataRow.js +2 -2
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbTag/types.d.ts +12 -0
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbTextInput/types.d.ts +12 -0
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbTextarea/types.d.ts +12 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +4 -2
- package/dist/components/BbTimePickerInput/types.d.ts +12 -0
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +62 -62
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +81 -78
- package/dist/components/BbTooltip/types.d.ts +8 -1
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.d.ts +1 -0
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +4 -2
- package/dist/components/CommonInputWrapper/types.d.ts +10 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/composables/useConfirm.d.ts +22 -0
- package/dist/composables/useConfirm.js +43 -40
- package/dist/composables/useSafeAreaInternal.js +1 -1
- package/dist/composables/useToast.d.ts +16 -0
- package/dist/composables/useToast.js +20 -16
- package/dist/composables/useViewportWidth.d.ts +20 -6
- package/dist/composables/useViewportWidth.js +8 -7
- package/dist/icon-scan.d.ts +276 -0
- package/dist/icon-scan.js +485 -0
- package/dist/icons-whitelist.d.ts +5 -4
- package/dist/index.d.ts +2 -0
- package/dist/input-variants.d.ts +18 -0
- package/dist/llms-full.txt +2173 -1537
- package/dist/llms-medium.txt +504 -82
- package/dist/llms.txt +1 -1
- package/dist/nuxt-module.d.ts +1 -0
- package/dist/nuxt.js +10 -7
- package/dist/plugin.js +1 -0
- package/dist/runtime/nuxt-plugin.js +2 -1
- package/dist/styles.css +1 -1
- package/dist/types/Config.d.ts +18 -0
- package/dist/types/InputVariant.d.ts +22 -0
- package/dist/utils/cssLayers.d.ts +91 -0
- package/dist/utils/cssLayers.js +43 -0
- package/dist/utils/injectLibraryStyles.d.ts +3 -1
- package/dist/utils/injectLibraryStyles.js +24 -23
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/index.d.ts +1 -0
- package/dist/vite-plugin.d.ts +89 -12
- package/dist/vite.js +331 -281
- package/llms.txt +1 -1
- package/package.json +7 -5
- package/scripts/lib/ensure-manifest.mjs +28 -5
- package/scripts/lib/eslint-plugin.d.ts +35 -0
- package/scripts/lib/eslint-plugin.mjs +299 -3
- package/scripts/lib/hand-roll-hints.mjs +50 -6
- package/scripts/lib/html-attributes.mjs +42 -0
- package/scripts/lib/mcp-config.mjs +38 -34
- package/scripts/lib/public-type-exports.mjs +246 -0
- package/scripts/lib/validate-bb-markup.mjs +205 -12
package/dist/vite.js
CHANGED
|
@@ -1,167 +1,148 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { BB_LAYERS as e, TAILWIND_V4_LAYERS as t, validateCssLayers as n } from "./utils/cssLayers.js";
|
|
2
|
+
import { DEFAULT_MAX_FILE_SIZE as r, IconScanner as i, extractIconCandidates as a, globToRegExp as o, hasGlobMagic as s, iconLiteralRegExp as c, iconScanCacheFile as l } from "./icon-scan.js";
|
|
3
|
+
import { BUILTIN_LOCALE_KEYS as u } from "./i18n/index.js";
|
|
4
|
+
import { existsSync as d, mkdirSync as f, readFileSync as p, readdirSync as m, writeFileSync as h } from "node:fs";
|
|
5
|
+
import { basename as g, dirname as _, join as v, relative as ee, resolve as y } from "node:path";
|
|
6
|
+
import { fileURLToPath as b } from "node:url";
|
|
7
|
+
import { createRequire as x } from "node:module";
|
|
8
|
+
import { convertParsedSVG as S, getIconData as C, iconToHTML as te, iconToSVG as w, parseSVGContent as T, stringToIcon as ne } from "@iconify/utils";
|
|
8
9
|
//#region src/vite-plugin.ts
|
|
9
|
-
function
|
|
10
|
-
|
|
10
|
+
function E(e, t) {
|
|
11
|
+
d(e) && p(e, "utf-8") === t || (f(_(e), { recursive: !0 }), h(e, t, "utf-8"));
|
|
11
12
|
}
|
|
12
|
-
function
|
|
13
|
-
let t =
|
|
13
|
+
function re(e) {
|
|
14
|
+
let t = w(e, {
|
|
14
15
|
width: "unset",
|
|
15
16
|
height: "unset"
|
|
16
17
|
});
|
|
17
|
-
return
|
|
18
|
+
return te(t.body, t.attributes);
|
|
18
19
|
}
|
|
19
|
-
function
|
|
20
|
+
function D(e, t) {
|
|
20
21
|
try {
|
|
21
|
-
let n =
|
|
22
|
-
return JSON.parse(
|
|
22
|
+
let n = x(v(e, "package.json"));
|
|
23
|
+
return JSON.parse(p(n.resolve(`${t}/icons.json`), "utf-8"));
|
|
23
24
|
} catch {
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
+
function ie(e, t) {
|
|
28
29
|
return e !== "heroicons" || !/-(?:20|16)-/.test(t);
|
|
29
30
|
}
|
|
30
|
-
function
|
|
31
|
-
let
|
|
31
|
+
function O(e) {
|
|
32
|
+
let t = y(e);
|
|
32
33
|
for (;;) {
|
|
33
|
-
let e =
|
|
34
|
-
if (
|
|
35
|
-
let
|
|
36
|
-
if (
|
|
37
|
-
|
|
34
|
+
let e = v(t, "node_modules", "@iconify-json");
|
|
35
|
+
if (d(e)) return e;
|
|
36
|
+
let n = _(t);
|
|
37
|
+
if (n === t) return null;
|
|
38
|
+
t = n;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
function
|
|
41
|
+
function ae(e) {
|
|
41
42
|
try {
|
|
42
|
-
let t =
|
|
43
|
+
let t = O(e);
|
|
43
44
|
if (!t) return [];
|
|
44
|
-
let n =
|
|
45
|
-
return
|
|
46
|
-
let r =
|
|
45
|
+
let n = _(_(t));
|
|
46
|
+
return m(t, { encoding: "utf-8" }).flatMap((t) => {
|
|
47
|
+
let r = D(n, `@iconify-json/${t}`) ?? D(e, `@iconify-json/${t}`);
|
|
47
48
|
return r ? [r] : [];
|
|
48
49
|
});
|
|
49
50
|
} catch {
|
|
50
51
|
return [];
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
function
|
|
54
|
+
function oe(e) {
|
|
54
55
|
try {
|
|
55
|
-
let t =
|
|
56
|
+
let t = x(v(e, "package.json")), n = JSON.parse(p(t.resolve("@iconify/collections/collections.json"), "utf-8"));
|
|
56
57
|
return new Set(Object.keys(n));
|
|
57
58
|
} catch {
|
|
58
59
|
return /* @__PURE__ */ new Set();
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
62
|
+
var se = "(key, loaded, known, all, ip) => {\n const c = key.indexOf(':'); const p = key.slice(0, c); const n = key.slice(c + 1);\n if (p === 'local' || !/^[a-z][a-z0-9-]*$/.test(p) || !/^[a-z0-9][a-z0-9-]*$/.test(n)) return null;\n const installed = loaded.size ? `installed sets: ${[...loaded].join(', ')}` : 'no @iconify-json/* set is installed';\n const fix = `If the name is composed at runtime or comes from a database, add it to the plugin's \\`iconWhitelist\\``;\n if (loaded.has(p)) {\n const set = all(p);\n if (set && set.includes(n)) return `[bitboss-ui] icon \"${key}\" exists in the ${p} icon set but is not bundled: no scanned source file contains the literal \"${key}\" and it is not in \\`iconWhitelist\\`. Write it as a literal, or — if the name is composed at runtime or comes from a database — add it to the plugin's \\`iconWhitelist\\`.`;\n const names = set ?? known(p);\n const sq = n.replace(/-/g, '');\n const sug = names.find((x) => x.replace(/-/g, '') === sq) ?? (n.length >= 3 ? names.find((x) => x.includes(n) || (x.length >= 3 && n.includes(x))) : undefined);\n const hint = sug ? ` — did you mean \"${p}:${sug}\"?` : '';\n if (set) return `[bitboss-ui] icon \"${key}\" does not exist in the ${p} icon set${hint}`;\n return `[bitboss-ui] icon \"${key}\" is not bundled: it is not among the ${p} names found as literals in scanned source, nor in \\`iconWhitelist\\`${hint}. ${fix}; if it is a typo, fix the name.`;\n }\n const pkg = `@iconify-json/${p}`; const cmd = `run: npm install -D ${pkg}`;\n if (ip.has(p)) return `[bitboss-ui] \"${key}\" requires \"${pkg}\" — ${cmd} (${installed})`;\n if (ip.size) return `[bitboss-ui] \"${key}\" — \"${p}\" is neither an installed icon set nor a known Iconify prefix (${installed})`;\n return `[bitboss-ui] \"${key}\" — no installed icon set has the prefix \"${p}\" (${installed}). If \"${p}\" is an Iconify set, ${cmd}`;\n}", k = Function(`return ${se};`)();
|
|
63
|
+
function A(e, t) {
|
|
64
|
+
return [...Object.keys(e.icons), ...Object.keys(e.aliases ?? {})].filter((n) => (!t || t(n)) && C(e, n) !== null);
|
|
65
|
+
}
|
|
66
|
+
function j(e, t, n, r) {
|
|
67
|
+
let i = /* @__PURE__ */ new Set(), a = [], c = new Set(t.keys()), l = /* @__PURE__ */ new Map(), u = (e) => {
|
|
68
|
+
let r = l.get(e);
|
|
69
|
+
if (!r) {
|
|
70
|
+
let i = t.get(e);
|
|
71
|
+
r = i ? A(i, n.get(e)) : [], l.set(e, r);
|
|
72
|
+
}
|
|
73
|
+
return r;
|
|
74
|
+
};
|
|
75
|
+
for (let l of e) {
|
|
76
|
+
let e = l.trim(), d = e.indexOf(":"), f = d === -1 ? "" : e.slice(0, d), p = e.slice(d + 1);
|
|
77
|
+
if (d === -1 || !f || !p) {
|
|
78
|
+
a.push(`[bitboss-ui] iconWhitelist entry "${l}" is not a \`prefix:name\` icon name`);
|
|
79
|
+
continue;
|
|
76
80
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
if (f === "local") {
|
|
82
|
+
a.push(`[bitboss-ui] iconWhitelist entry "${l}" — every \`local:\` icon in iconDir is always bundled; the whitelist is for provider icons only`);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (!c.has(f)) {
|
|
86
|
+
a.push(k(e, c, u, (e) => c.has(e) ? u(e) : null, new Set(r)) ?? `[bitboss-ui] iconWhitelist entry "${l}" does not resolve`);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (s(p)) {
|
|
90
|
+
let t = o(p), n = u(f).filter((e) => t.test(e));
|
|
91
|
+
if (n.length === 0) {
|
|
92
|
+
a.push(`[bitboss-ui] iconWhitelist glob "${e}" matches no icon in the ${f} icon set`);
|
|
93
|
+
continue;
|
|
86
94
|
}
|
|
95
|
+
for (let e of n) i.add(`${f}:${e}`);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
let m = t.get(f), h = n.get(f);
|
|
99
|
+
if (C(m, p) && (!h || h(p))) {
|
|
100
|
+
i.add(e);
|
|
101
|
+
continue;
|
|
87
102
|
}
|
|
103
|
+
a.push(k(e, c, u, u, new Set(r)) ?? `[bitboss-ui] iconWhitelist entry "${l}" does not resolve`);
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
icons: [...i],
|
|
107
|
+
errors: a
|
|
88
108
|
};
|
|
89
|
-
return n(e, ""), t;
|
|
90
109
|
}
|
|
91
|
-
|
|
92
|
-
let d = Array.from(i.keys());
|
|
93
|
-
if (d.length === 0) return /* @__PURE__ */ new Set();
|
|
94
|
-
let f = d.map((e) => `${e}:[a-z0-9][a-z0-9-]*`).join("|"), p = RegExp(`['"\`](${f})['"\`]`, "g"), m;
|
|
110
|
+
function ce(e) {
|
|
95
111
|
try {
|
|
96
|
-
|
|
112
|
+
return JSON.parse(p(v(e, "..", "package.json"), "utf-8")).version ?? "0";
|
|
97
113
|
} catch {
|
|
98
|
-
return
|
|
114
|
+
return "0";
|
|
99
115
|
}
|
|
100
|
-
let h = u(e, "node_modules/.cache/bitboss-ui/icon-scan.json"), _ = {
|
|
101
|
-
version: C,
|
|
102
|
-
configKey: t,
|
|
103
|
-
entries: {}
|
|
104
|
-
};
|
|
105
|
-
try {
|
|
106
|
-
let e = JSON.parse(r(h, "utf-8"));
|
|
107
|
-
e.version === C && e.configKey === t && (_ = e);
|
|
108
|
-
} catch {}
|
|
109
|
-
let v = await Promise.all(m.map(async (t) => {
|
|
110
|
-
try {
|
|
111
|
-
let { mtimeMs: n } = await s(u(e, t)), r = _.entries[t];
|
|
112
|
-
if (r?.mtime === n) return r.icons;
|
|
113
|
-
let a = await o(u(e, t), "utf-8"), l = [];
|
|
114
|
-
for (let e of a.matchAll(p)) {
|
|
115
|
-
let t = e[1], n = b(t);
|
|
116
|
-
if (!n) continue;
|
|
117
|
-
let { prefix: r, name: a } = n, o = c.get(r), s = i.get(r);
|
|
118
|
-
s && g(s, a) && (!o || o(a)) && l.push(t);
|
|
119
|
-
}
|
|
120
|
-
return _.entries[t] = {
|
|
121
|
-
mtime: n,
|
|
122
|
-
icons: l
|
|
123
|
-
}, l;
|
|
124
|
-
} catch {
|
|
125
|
-
return [];
|
|
126
|
-
}
|
|
127
|
-
})), y = new Set(m);
|
|
128
|
-
for (let e of Object.keys(_.entries)) y.has(e) || delete _.entries[e];
|
|
129
|
-
try {
|
|
130
|
-
n(l(h), { recursive: !0 }), a(h, JSON.stringify(_), "utf-8");
|
|
131
|
-
} catch {}
|
|
132
|
-
let x = /* @__PURE__ */ new Set();
|
|
133
|
-
for (let e of v) for (let t of e) x.add(t);
|
|
134
|
-
return x;
|
|
135
116
|
}
|
|
136
|
-
var
|
|
117
|
+
var M = _(b(import.meta.url)), N = M.includes("node_modules"), le = v(M, "button-variants.d.ts"), ue = v(M, "alert-variants.d.ts"), de = v(M, "badge-variants.d.ts"), fe = v(M, "confirm-variants.d.ts"), pe = v(M, "dropdown-item-variants.d.ts"), me = v(M, "tooltip-variants.d.ts"), he = v(M, "toast-variants.d.ts"), ge = v(M, "indicator-variants.d.ts"), _e = v(M, "input-variants.d.ts"), ve = v(M, "locale-registry.d.ts"), ye = N ? "bitboss-ui" : "./types/ButtonVariant", be = N ? "bitboss-ui" : "./types/AlertVariant", xe = N ? "bitboss-ui" : "./types/BadgeVariant", Se = N ? "bitboss-ui" : "./types/ConfirmVariant", Ce = N ? "bitboss-ui" : "./types/DropdownItemVariant", we = N ? "bitboss-ui" : "./types/TooltipVariant", Te = N ? "bitboss-ui" : "./types/ToastVariant", Ee = N ? "bitboss-ui" : "./types/IndicatorVariant", De = N ? "bitboss-ui" : "./types/InputVariant", Oe = N ? "bitboss-ui" : "./i18n", ke = v(M, "i18n", "locales"), P = {
|
|
137
118
|
pt: "pt-br",
|
|
138
119
|
en: null
|
|
139
120
|
};
|
|
140
|
-
function
|
|
141
|
-
let
|
|
142
|
-
for (let
|
|
121
|
+
function F(e) {
|
|
122
|
+
let t = u, n = e.customLocaleKeys ?? [], r = e.locale && t.includes(e.locale) ? e.locale : e.locale && n.includes(e.locale) ? "en" : "it", i = [], a = /* @__PURE__ */ new Set([r, "en"]);
|
|
123
|
+
for (let r of e.enabledLocales ?? []) t.includes(r) ? a.add(r) : n.includes(r) || i.push(`[bitboss-ui] \`enabledLocales\` entry '${r}' is not a built-in locale — ignored.`);
|
|
143
124
|
return {
|
|
144
|
-
enabled: [...
|
|
145
|
-
defaultLocale:
|
|
146
|
-
warnings:
|
|
125
|
+
enabled: [...a].sort(),
|
|
126
|
+
defaultLocale: r,
|
|
127
|
+
warnings: i
|
|
147
128
|
};
|
|
148
129
|
}
|
|
149
|
-
function
|
|
130
|
+
function I(e) {
|
|
150
131
|
let t = [];
|
|
151
132
|
for (let n of e) {
|
|
152
|
-
let e =
|
|
133
|
+
let e = p(v(ke, `${n}.json`), "utf-8");
|
|
153
134
|
t.push(`\t${JSON.stringify(n)}: ${e.trim()},`);
|
|
154
135
|
}
|
|
155
136
|
return `export const locales = {\n${t.join("\n")}\n};\n`;
|
|
156
137
|
}
|
|
157
|
-
function
|
|
138
|
+
function L(e, t) {
|
|
158
139
|
let n = e.map((e) => `\t\t${JSON.stringify(e)}: true;`).join("\n");
|
|
159
|
-
return
|
|
140
|
+
return We + `\nimport ${JSON.stringify(t)};\n\ndeclare module ${JSON.stringify(t)} {\n\tinterface LocaleRegistry {\n` + (n ? `${n}\n` : "") + " }\n}\n";
|
|
160
141
|
}
|
|
161
|
-
function
|
|
162
|
-
let t =
|
|
142
|
+
function R(e) {
|
|
143
|
+
let t = x(import.meta.url), n = [], r = [];
|
|
163
144
|
for (let i of e) {
|
|
164
|
-
let e = i in
|
|
145
|
+
let e = i in P ? P[i] : i;
|
|
165
146
|
if (e !== null) try {
|
|
166
147
|
t.resolve(`dayjs/locale/${e}.js`), n.push({
|
|
167
148
|
key: i,
|
|
@@ -176,87 +157,91 @@ function j(e) {
|
|
|
176
157
|
missing: r
|
|
177
158
|
};
|
|
178
159
|
}
|
|
179
|
-
function
|
|
160
|
+
function z(e) {
|
|
180
161
|
return `${e.map(({ pack: e }, t) => `import l${t} from ${JSON.stringify(`dayjs/locale/${e}`)};`).join("\n")}\nexport const dayjsLocales = {\n${e.map(({ key: e }, t) => `\t${JSON.stringify(e)}: l${t},`).join("\n")}\n};\n`;
|
|
181
162
|
}
|
|
182
|
-
var
|
|
163
|
+
var B = "@inertiajs/vue3", Ae = [
|
|
183
164
|
"dependencies",
|
|
184
165
|
"devDependencies",
|
|
185
166
|
"peerDependencies",
|
|
186
167
|
"optionalDependencies"
|
|
187
168
|
];
|
|
188
|
-
function
|
|
189
|
-
let
|
|
169
|
+
function je(e) {
|
|
170
|
+
let t = y(e);
|
|
190
171
|
for (;;) {
|
|
191
|
-
let e =
|
|
192
|
-
if (
|
|
193
|
-
return JSON.parse(
|
|
172
|
+
let e = v(t, "package.json");
|
|
173
|
+
if (d(e)) try {
|
|
174
|
+
return JSON.parse(p(e, "utf-8"));
|
|
194
175
|
} catch {
|
|
195
176
|
return null;
|
|
196
177
|
}
|
|
197
|
-
let
|
|
198
|
-
if (
|
|
199
|
-
|
|
178
|
+
let n = _(t);
|
|
179
|
+
if (n === t) return null;
|
|
180
|
+
t = n;
|
|
200
181
|
}
|
|
201
182
|
}
|
|
202
|
-
function
|
|
203
|
-
return
|
|
183
|
+
function Me(e, t) {
|
|
184
|
+
return Ae.some((n) => {
|
|
204
185
|
let r = e[n];
|
|
205
186
|
return typeof r == "object" && !!r && t in r;
|
|
206
187
|
});
|
|
207
188
|
}
|
|
208
|
-
function
|
|
209
|
-
let
|
|
189
|
+
function Ne(e, t) {
|
|
190
|
+
let n = t.split("/"), r = y(e);
|
|
210
191
|
for (;;) {
|
|
211
|
-
if (
|
|
212
|
-
let e =
|
|
213
|
-
if (e ===
|
|
214
|
-
|
|
192
|
+
if (d(v(r, "node_modules", ...n))) return !0;
|
|
193
|
+
let e = _(r);
|
|
194
|
+
if (e === r) return !1;
|
|
195
|
+
r = e;
|
|
215
196
|
}
|
|
216
197
|
}
|
|
217
|
-
function
|
|
218
|
-
let t =
|
|
219
|
-
return !t || !
|
|
198
|
+
function V(e) {
|
|
199
|
+
let t = je(e);
|
|
200
|
+
return !t || !Me(t, B) ? !1 : Ne(e, B);
|
|
220
201
|
}
|
|
221
|
-
function
|
|
202
|
+
function H(e) {
|
|
222
203
|
return e ? "export { Link as InertiaLink } from '@inertiajs/vue3';\n" : "export const InertiaLink = null;\n";
|
|
223
204
|
}
|
|
224
|
-
var
|
|
205
|
+
var Pe = [
|
|
225
206
|
"primary",
|
|
226
207
|
"outline",
|
|
227
208
|
"secondary",
|
|
228
209
|
"ghost",
|
|
229
210
|
"destructive",
|
|
230
211
|
"link"
|
|
231
|
-
],
|
|
212
|
+
], Fe = [
|
|
232
213
|
"outline",
|
|
233
214
|
"primary",
|
|
234
215
|
"destructive",
|
|
235
216
|
"warning"
|
|
236
|
-
],
|
|
217
|
+
], Ie = [
|
|
237
218
|
"primary",
|
|
238
219
|
"secondary",
|
|
239
220
|
"destructive",
|
|
240
221
|
"outline"
|
|
241
|
-
],
|
|
222
|
+
], Le = ["default", "destructive"], Re = ["default", "destructive"], ze = ["default", "destructive"], Be = [
|
|
242
223
|
"default",
|
|
243
224
|
"success",
|
|
244
225
|
"info",
|
|
245
226
|
"warning",
|
|
246
227
|
"destructive"
|
|
247
|
-
],
|
|
228
|
+
], Ve = [
|
|
248
229
|
"default",
|
|
249
230
|
"success",
|
|
250
231
|
"info",
|
|
251
232
|
"warning",
|
|
252
233
|
"destructive"
|
|
234
|
+
], He = [
|
|
235
|
+
"outline",
|
|
236
|
+
"secondary",
|
|
237
|
+
"ghost"
|
|
253
238
|
];
|
|
254
|
-
function
|
|
239
|
+
function Ue(e, t) {
|
|
255
240
|
let n = (t ?? []).map((e) => e.trim()).filter((e) => e.length > 0);
|
|
256
241
|
return [.../* @__PURE__ */ new Set([...e, ...n])];
|
|
257
242
|
}
|
|
258
|
-
var
|
|
259
|
-
function
|
|
243
|
+
var We = "// Auto-generated by bitboss-ui — do not edit manually.\n//\n// SCOPE: this file mirrors the plugin config of the project that LAST ran\n// the bitboss-ui plugin in this folder — it is regenerated by every build,\n// dev server, or test process that loads the plugin. It is authoritative\n// for THAT project only. Another project's registry is whatever its own\n// plugin config declares (e.g. bitbossUi({ badgeVariants: [...] })) — do\n// not read names out of a different checkout's copy of this file.\n";
|
|
244
|
+
function U(e, t, n) {
|
|
260
245
|
let r = e.map((e) => `\t\t${JSON.stringify(e)}: never;`).join("\n");
|
|
261
246
|
return `// Auto-generated by bitboss-ui — do not edit manually.
|
|
262
247
|
//
|
|
@@ -269,7 +254,7 @@ function I(e, t, n) {
|
|
|
269
254
|
|
|
270
255
|
import ${JSON.stringify(t)};\n\ndeclare module ${JSON.stringify(t)} {\n\tinterface ${n} {\n` + (r ? `${r}\n` : "") + " }\n}\n";
|
|
271
256
|
}
|
|
272
|
-
var
|
|
257
|
+
var W = [
|
|
273
258
|
"@floating-ui/vue",
|
|
274
259
|
"@tanstack/vue-virtual",
|
|
275
260
|
"@vueuse/core",
|
|
@@ -284,32 +269,32 @@ var L = [
|
|
|
284
269
|
"maska/vue",
|
|
285
270
|
"mime",
|
|
286
271
|
"object-code"
|
|
287
|
-
],
|
|
288
|
-
function
|
|
289
|
-
let e =
|
|
290
|
-
return
|
|
291
|
-
let
|
|
292
|
-
return t
|
|
272
|
+
], G = ["bitboss-ui"], Ge = B, Ke = "virtual:bitboss-ui/icons", K = "\0virtual:bitboss-ui/icons", qe = "virtual:bitboss-ui/config", q = "\0virtual:bitboss-ui/config", Je = "virtual:bitboss-ui/dayjs-locales", J = "\0virtual:bitboss-ui/dayjs-locales", Ye = "virtual:bitboss-ui/locales", Y = "\0virtual:bitboss-ui/locales", Xe = "virtual:bitboss-ui/styles", Ze = "\0virtual:bitboss-ui/styles", Qe = "virtual:bitboss-ui/link", $e = "\0virtual:bitboss-ui/link";
|
|
273
|
+
function et() {
|
|
274
|
+
let e = v(M, "styles.css");
|
|
275
|
+
return d(e) ? p(e, "utf-8") : ["main.css", "variables.css"].map((e) => {
|
|
276
|
+
let t = v(M, "assets/css", e);
|
|
277
|
+
return d(t) ? p(t, "utf-8") : "";
|
|
293
278
|
}).join("\n");
|
|
294
279
|
}
|
|
295
|
-
var
|
|
296
|
-
function
|
|
280
|
+
var tt = "local";
|
|
281
|
+
function nt(e) {
|
|
297
282
|
let t = {};
|
|
298
283
|
try {
|
|
299
|
-
let n =
|
|
284
|
+
let n = m(e, {
|
|
300
285
|
recursive: !0,
|
|
301
286
|
encoding: "utf-8"
|
|
302
287
|
}).filter((e) => e.endsWith(".svg"));
|
|
303
|
-
for (let
|
|
304
|
-
let n =
|
|
288
|
+
for (let r of n) {
|
|
289
|
+
let n = g(r, ".svg");
|
|
305
290
|
try {
|
|
306
|
-
let
|
|
307
|
-
|
|
291
|
+
let i = T(p(v(e, r), "utf-8")), a = i && S(i);
|
|
292
|
+
a && (t[n] = a);
|
|
308
293
|
} catch {}
|
|
309
294
|
}
|
|
310
295
|
} catch {}
|
|
311
296
|
return {
|
|
312
|
-
prefix:
|
|
297
|
+
prefix: tt,
|
|
313
298
|
info: {
|
|
314
299
|
name: "Local",
|
|
315
300
|
author: { name: "Icons automatically inferred from the icons installed locally" },
|
|
@@ -318,12 +303,12 @@ function Ze(e) {
|
|
|
318
303
|
icons: t
|
|
319
304
|
};
|
|
320
305
|
}
|
|
321
|
-
var
|
|
322
|
-
function
|
|
323
|
-
let
|
|
324
|
-
n
|
|
306
|
+
var X = "./node_modules/.bitboss-ui/local-icons.json", Z = "iconify.customCollectionJsonPaths";
|
|
307
|
+
function Q(e, t) {
|
|
308
|
+
let n = v(t, "node_modules", ".bitboss-ui");
|
|
309
|
+
f(n, { recursive: !0 }), h(v(n, "local-icons.json"), JSON.stringify(nt(e)), "utf-8");
|
|
325
310
|
}
|
|
326
|
-
function
|
|
311
|
+
function rt(e) {
|
|
327
312
|
let t = "", n = !1, r = !1, i = !1;
|
|
328
313
|
for (let a = 0; a < e.length; a++) {
|
|
329
314
|
let o = e[a], s = e[a + 1];
|
|
@@ -355,8 +340,8 @@ function J(e) {
|
|
|
355
340
|
}
|
|
356
341
|
return t;
|
|
357
342
|
}
|
|
358
|
-
var
|
|
359
|
-
function
|
|
343
|
+
var $ = (e) => e === " " || e === " " || e === "\n" || e === "\r";
|
|
344
|
+
function it(e, t) {
|
|
360
345
|
let n = !1, r = !1;
|
|
361
346
|
for (let i = t; i < e.length; i++) {
|
|
362
347
|
let t = e[i], a = e[i + 1];
|
|
@@ -376,11 +361,11 @@ function X(e, t) {
|
|
|
376
361
|
r = !0, i++;
|
|
377
362
|
continue;
|
|
378
363
|
}
|
|
379
|
-
if (
|
|
364
|
+
if (!$(t)) return i;
|
|
380
365
|
}
|
|
381
366
|
return -1;
|
|
382
367
|
}
|
|
383
|
-
function
|
|
368
|
+
function at(e, t) {
|
|
384
369
|
let n = !1, r = !1, i = !1, a = -1, o = 0, s = null;
|
|
385
370
|
for (let c = 0; c < e.length; c++) {
|
|
386
371
|
let l = e[c], u = e[c + 1];
|
|
@@ -412,19 +397,19 @@ function Qe(e, t) {
|
|
|
412
397
|
i = !0, a = c;
|
|
413
398
|
continue;
|
|
414
399
|
}
|
|
415
|
-
if (
|
|
400
|
+
if (!$(l)) {
|
|
416
401
|
if (l === ":" && s !== null) {
|
|
417
402
|
let n = s === t;
|
|
418
403
|
if (s = null, !n) continue;
|
|
419
|
-
let r =
|
|
420
|
-
return r === -1 || e[r] !== "[" ? null :
|
|
404
|
+
let r = it(e, c + 1);
|
|
405
|
+
return r === -1 || e[r] !== "[" ? null : ot(e, r);
|
|
421
406
|
}
|
|
422
407
|
s = null, l === "{" || l === "[" ? o++ : (l === "}" || l === "]") && o--;
|
|
423
408
|
}
|
|
424
409
|
}
|
|
425
410
|
return null;
|
|
426
411
|
}
|
|
427
|
-
function
|
|
412
|
+
function ot(e, t) {
|
|
428
413
|
let n = !1, r = !1, i = !1, a = 0, o = -1;
|
|
429
414
|
for (let s = t; s < e.length; s++) {
|
|
430
415
|
let c = e[s], l = e[s + 1];
|
|
@@ -456,7 +441,7 @@ function $e(e, t) {
|
|
|
456
441
|
i = !0, o = s + 1;
|
|
457
442
|
continue;
|
|
458
443
|
}
|
|
459
|
-
if (
|
|
444
|
+
if (!$(c)) {
|
|
460
445
|
if (c === "[" || c === "{") {
|
|
461
446
|
a++, s > t && (o = s + 1);
|
|
462
447
|
continue;
|
|
@@ -475,57 +460,57 @@ function $e(e, t) {
|
|
|
475
460
|
}
|
|
476
461
|
return null;
|
|
477
462
|
}
|
|
478
|
-
function
|
|
479
|
-
let
|
|
463
|
+
function st(e, t) {
|
|
464
|
+
let n = v(e, ".vscode"), r = v(n, "settings.json"), i = "";
|
|
480
465
|
try {
|
|
481
|
-
|
|
466
|
+
i = p(r, "utf-8");
|
|
482
467
|
} catch {}
|
|
483
|
-
if (
|
|
484
|
-
let
|
|
485
|
-
if (!
|
|
486
|
-
n
|
|
468
|
+
if (i.includes(X)) return;
|
|
469
|
+
let a = `add "${Z}": ["${X}"] manually to enable Iconify previews for local icons`, o = `[bitboss-ui] .vscode/settings.json: added "${X}" to "${Z}" (Iconify previews for local icons). Set \`vscodeSettings: false\` in the plugin options to disable this write.`;
|
|
470
|
+
if (!i.trim()) {
|
|
471
|
+
f(n, { recursive: !0 }), h(r, JSON.stringify({ [Z]: [X] }, null, " "), "utf-8"), t.info(o);
|
|
487
472
|
return;
|
|
488
473
|
}
|
|
489
|
-
let
|
|
474
|
+
let s;
|
|
490
475
|
try {
|
|
491
|
-
|
|
476
|
+
s = JSON.parse(rt(i));
|
|
492
477
|
} catch {
|
|
493
|
-
t.warn(`[bitboss-ui] Could not parse .vscode/settings.json — ${
|
|
478
|
+
t.warn(`[bitboss-ui] Could not parse .vscode/settings.json — ${a}.`);
|
|
494
479
|
return;
|
|
495
480
|
}
|
|
496
|
-
let
|
|
497
|
-
if (
|
|
498
|
-
if (!Array.isArray(
|
|
499
|
-
t.warn(`[bitboss-ui] .vscode/settings.json has a non-array "${
|
|
481
|
+
let c = JSON.stringify(X), l;
|
|
482
|
+
if (Z in s) {
|
|
483
|
+
if (!Array.isArray(s[Z])) {
|
|
484
|
+
t.warn(`[bitboss-ui] .vscode/settings.json has a non-array "${Z}" — ${a}.`);
|
|
500
485
|
return;
|
|
501
486
|
}
|
|
502
|
-
let e =
|
|
487
|
+
let e = at(i, Z);
|
|
503
488
|
if (!e) {
|
|
504
|
-
t.warn(`[bitboss-ui] Could not locate "${
|
|
489
|
+
t.warn(`[bitboss-ui] Could not locate "${Z}" in .vscode/settings.json — ${a}.`);
|
|
505
490
|
return;
|
|
506
491
|
}
|
|
507
|
-
if (e.lastSignificantEnd === -1)
|
|
508
|
-
else if (
|
|
509
|
-
let t =
|
|
510
|
-
|
|
511
|
-
} else
|
|
492
|
+
if (e.lastSignificantEnd === -1) l = i.slice(0, e.close) + c + i.slice(e.close);
|
|
493
|
+
else if (i.slice(e.open + 1, e.close).includes("\n")) {
|
|
494
|
+
let t = i.lastIndexOf("\n", e.lastSignificantEnd - 1) + 1, n = /^[\t ]*/.exec(i.slice(t))?.[0] ?? " ";
|
|
495
|
+
l = i.slice(0, e.lastSignificantEnd) + `,\n${n}${c}` + i.slice(e.lastSignificantEnd);
|
|
496
|
+
} else l = i.slice(0, e.lastSignificantEnd) + `, ${c}` + i.slice(e.lastSignificantEnd);
|
|
512
497
|
} else {
|
|
513
|
-
let e =
|
|
514
|
-
if (e === -1 ||
|
|
515
|
-
t.warn(`[bitboss-ui] .vscode/settings.json is not a JSON object — ${
|
|
498
|
+
let e = it(i, 0);
|
|
499
|
+
if (e === -1 || i[e] !== "{") {
|
|
500
|
+
t.warn(`[bitboss-ui] .vscode/settings.json is not a JSON object — ${a}.`);
|
|
516
501
|
return;
|
|
517
502
|
}
|
|
518
|
-
let n = Object.keys(
|
|
519
|
-
|
|
503
|
+
let n = Object.keys(s).length > 0;
|
|
504
|
+
l = i.slice(0, e + 1) + `\n\t${JSON.stringify(Z)}: [${c}]${n ? "," : "\n"}` + i.slice(e + 1);
|
|
520
505
|
}
|
|
521
|
-
|
|
506
|
+
h(r, l, "utf-8"), t.info(o);
|
|
522
507
|
}
|
|
523
|
-
var
|
|
524
|
-
async function
|
|
508
|
+
var ct = "virtual:bb-icon/", lt = "\0virtual:bb-icon/";
|
|
509
|
+
async function ut(e, t) {
|
|
525
510
|
try {
|
|
526
511
|
let { ensureMcpConfigs: n, missingMcpPeers: r } = await import(
|
|
527
512
|
/* @vite-ignore */
|
|
528
|
-
new URL("data:text/javascript;base64,
|
|
513
|
+
new URL("data:text/javascript;base64,LyoqCiAqIFNoYXJlZCB3cml0ZXJzIHRoYXQgcmVnaXN0ZXIgdGhlIGJpdGJvc3MtdWkgTUNQIHNlcnZlciBpbiBlYWNoIGFnZW50CiAqIGhhcm5lc3MncyBjb25maWcgZmlsZS4gVXNlZCBieSBgYml0Ym9zcy11aSBhaS1pbml0IC0tbWNwYCAoYmluKSBhbmQsIG9wdC1pbiwKICogYnkgdGhlIGRldiBzZXJ2ZXIgKHZpdGUvbnV4dCBwbHVnaW4gYG1jcDogdHJ1ZWApLgogKgogKiBFdmVyeSB3cml0ZXIgaXMgbWVyZ2Utc2FmZSAobmV2ZXIgZGlzdHVyYnMgb3RoZXIgc2VydmVycyksIGlkZW1wb3RlbnQKICogKHJldHVybnMgYHVuY2hhbmdlZGAgd2hlbiB0aGUgZW50cnkgYWxyZWFkeSBtYXRjaGVzKSwgYW5kIHJlcG9ydHMgd2hhdCBpdAogKiBkaWQgc28gY2FsbGVycyBjYW4gbG9nIGl0LiBIYXJuZXNzIGNvbmZpZyBzaGFwZXMgZGlmZmVyOgogKiAgIC0gQ2xhdWRlIENvZGUgLyBDdXJzb3IgLyBXaW5kc3VyZiDihpIgYHsgbWNwU2VydmVyczogeyBuYW1lOiB7IGNvbW1hbmQsIGFyZ3MgfSB9IH1gCiAqICAgLSBWUyBDb2RlIC8gQ29waWxvdCAgICAgICAgICAgICAgIOKGkiBgeyBzZXJ2ZXJzOiB7IG5hbWU6IHsgdHlwZTogJ3N0ZGlvJywg4oCmIH0gfSB9YAogKiAoVlMgQ29kZSBrZXlzIHRoZSBjb250YWluZXIgYHNlcnZlcnNgIGFuZCByZXF1aXJlcyBhbiBleHBsaWNpdCBgdHlwZWAuKQogKi8KCmltcG9ydCB7IGV4aXN0c1N5bmMsIG1rZGlyU3luYywgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7CmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdub2RlOm9zJzsKaW1wb3J0IHsgZGlybmFtZSwgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7CgpleHBvcnQgY29uc3QgTUNQX1NFUlZFUl9OQU1FID0gJ2JpdGJvc3MtdWknOwpjb25zdCBDT01NQU5EID0gJ25vZGUnOwoKLyoqCiAqIFBhdGggdG8gdGhlIGluc3RhbGxlZCBDTEksIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QuCiAqCiAqIFJlbGF0aXZlIG9uIHB1cnBvc2U6IGhhcm5lc3NlcyBzcGF3biBhIHN0ZGlvIHNlcnZlciB3aXRoIHRoZSBwcm9qZWN0IHJvb3QgYXMKICogaXRzIHdvcmtpbmcgZGlyZWN0b3J5LCBhbmQgYSByZWxhdGl2ZSBwYXRoIGlzIHdoYXQgbGV0cyBhIGNvbW1pdHRlZAogKiBgLm1jcC5qc29uYCB3b3JrIG9uIGEgdGVhbW1hdGUncyBtYWNoaW5lLiBBbiBhYnNvbHV0ZSBwYXRoIHdvdWxkIHBpbiB0aGUKICogY29uZmlnIHRvIHdob2V2ZXIgcmFuIGBhaS1pbml0YC4KICoKICogRm9yd2FyZCBzbGFzaGVzIGV2ZW4gb24gV2luZG93cyDigJQgTm9kZSBhY2NlcHRzIHRoZW0sIGFuZCBKU09OIGNvbmZpZ3MgYXJlCiAqIHNoYXJlZCBhY3Jvc3MgcGxhdGZvcm1zLgogKi8KZXhwb3J0IGNvbnN0IE1DUF9CSU5fUEFUSCA9ICdub2RlX21vZHVsZXMvYml0Ym9zcy11aS9iaW4vYml0Ym9zcy11aS5tanMnOwoKLyoqCiAqIFRoZSBNQ1Agc2VydmVyJ3Mgb3duIHJ1bnRpbWUgbmVlZHMsIGRlY2xhcmVkIGFzIE9QVElPTkFMIHBlZXJzIHJhdGhlciB0aGFuCiAqIGRlcGVuZGVuY2llczogdG9nZXRoZXIgdGhleSBhcmUgfjEyIE1CIOKAlCBtb3JlIHRoYW4gZXZlcnkgcnVudGltZSBkZXBlbmRlbmN5CiAqIG9mIHRoZSBjb21wb25lbnQgbGlicmFyeSBjb21iaW5lZCDigJQgYW5kIG5vdGhpbmcgYnV0IGBiaXRib3NzLXVpIG1jcGAgbG9hZHMKICogdGhlbS4KICovCmV4cG9ydCBjb25zdCBNQ1BfUEVFUlMgPSBbJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsnLCAnem9kJ107CgovKioKICogRGlyZWN0b3J5IHByb2JlLCB3YWxraW5nIHVwIGZyb20gYGRpcmAuIERlbGliZXJhdGVseSBOT1QgYHJlcXVpcmUucmVzb2x2ZWA6CiAqIGFuIEVTTS1vbmx5IHBhY2thZ2Ugd2hvc2UgYGV4cG9ydHNgIG1hcCBkZWNsYXJlcyBubyBgcmVxdWlyZWAgY29uZGl0aW9uCiAqIHRocm93cyBFUlJfUEFDS0FHRV9QQVRIX05PVF9FWFBPUlRFRCBvbiBhIHBlcmZlY3RseSBnb29kIGluc3RhbGwg4oCUIHRoZSBzYW1lCiAqIHRyYXAgZG9jdW1lbnRlZCBvbiBgaGFzSW5lcnRpYWAgaW4gdGhlIFZpdGUgcGx1Z2luLiBBIGRpcmVjdG9yeSBjaGVjayBpcwogKiBleHBvcnRzLW1hcC1hZ25vc3RpYy4KICovCmZ1bmN0aW9uIGlzSW5zdGFsbGVkRnJvbShkaXIsIG5hbWUpIHsKCWNvbnN0IHNlZ21lbnRzID0gbmFtZS5zcGxpdCgnLycpOwoJbGV0IGN1cnJlbnQgPSByZXNvbHZlKGRpcik7Cglmb3IgKDs7KSB7CgkJaWYgKGV4aXN0c1N5bmMoam9pbihjdXJyZW50LCAnbm9kZV9tb2R1bGVzJywgLi4uc2VnbWVudHMpKSkgcmV0dXJuIHRydWU7CgkJY29uc3QgcGFyZW50ID0gZGlybmFtZShjdXJyZW50KTsKCQlpZiAocGFyZW50ID09PSBjdXJyZW50KSByZXR1cm4gZmFsc2U7CgkJY3VycmVudCA9IHBhcmVudDsKCX0KfQoKLyoqCiAqIFdoaWNoIE1DUCBwZWVycyB0aGUgcHJvamVjdCBpcyBtaXNzaW5nLCBzbyBhIGNhbGxlciByZWdpc3RlcmluZyB0aGUgc2VydmVyCiAqIGNhbiBzYXkgc28gTk9XIHJhdGhlciB0aGFuIGxldCB0aGUgaGFybmVzcyBkaXNjb3ZlciBpdCBvbiBmaXJzdCBsYXVuY2gg4oCUIHRoZQogKiBjb25maWcgaXMgd3JpdHRlbiBieSBgYWktaW5pdCAtLW1jcGAgLyB0aGUgZGV2IHNlcnZlciwgYnV0IHRoZSBmYWlsdXJlIHdvdWxkCiAqIHN1cmZhY2UgbXVjaCBsYXRlciwgaW5zaWRlIGFuIGFnZW50LCBhcyBhIHNlcnZlciB0aGF0IHdvdWxkIG5vdCBzdGFydC4KICoKICogUmV0dXJucyBgW11gIHdoZW4gZXZlcnl0aGluZyBuZWVkZWQgaXMgcHJlc2VudC4KICovCmV4cG9ydCBmdW5jdGlvbiBtaXNzaW5nTWNwUGVlcnMocm9vdCkgewoJcmV0dXJuIE1DUF9QRUVSUy5maWx0ZXIoKG5hbWUpID0+ICFpc0luc3RhbGxlZEZyb20ocm9vdCwgbmFtZSkpOwp9CgovKioKICogSW52b2tlIHRoZSBJTlNUQUxMRUQgYmluYXJ5IGRpcmVjdGx5LCBuZXZlciBgbnB4YCAoMjAyNi0wOS0wOSwgc3VwZXJzZWRpbmcKICogdGhlIDIwMjYtMDgtMDYgcGlubmVkLW5weCBydWxpbmcg4oCUIHNlZSBiZWxvdykuCiAqCiAqIFRoZSAyMDI2LTA4LTA2IHJldmlldyBwaW5uZWQgdGhlIHNwZWMgdG8gdGhpcyBwYWNrYWdlJ3Mgb3duIHZlcnNpb24gYmVjYXVzZQogKiBNQ1AgaG9zdHMgc3Bhd24gdGhlIGVudHJ5IHdpdGggbm9uLVRUWSBzdGRpbywgd2hlcmUgYG5weGAgaW5zdGFsbHMgd2l0aG91dAogKiBwcm9tcHRpbmc6IGFuIHVucGlubmVkIGBucHggYml0Ym9zcy11aSBtY3BgIHdvdWxkIHNpbGVudGx5IGRvd25sb2FkIGFuZAogKiBleGVjdXRlIHdoYXRldmVyIGBiaXRib3NzLXVpQGxhdGVzdGAgcmVzb2x2ZWQgdG8sIGFuZCBhbnN3ZXIgZnJvbSBhCiAqIGRpZmZlcmVudCB2ZXJzaW9uJ3Mga25vd2xlZGdlIGJhc2UgdGhhbiB0aGUgcHJvamVjdCB1c2VzLgogKgogKiBUaGUgcGluIGZpeGVkIHRoYXQgYW5kIGJyb2tlIHRoZSBzZXJ2ZXIgb3V0cmlnaHQuIGBucHggYml0Ym9zcy11aUB4LnkueiBtY3BgCiAqIHJ1bnMgdGhlIHBhY2thZ2UgT1VUIE9GIFRIRSBOUFggQ0FDSEUsIGFuZCB0aGUgTUNQIGVudHJ5IHJlc29sdmVzIGl0cwogKiBvcHRpb25hbCBwZWVycyAoYEBtb2RlbGNvbnRleHRwcm90b2NvbC9zZGtgLCBgem9kYCkgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2UKICogaXQgaXMgcnVubmluZyBmcm9tLiBUaGUgY2FjaGUgZGlyZWN0b3J5IG5ldmVyIGhhcyB0aGVtLCBzbyB0aGUgc2VydmVyIGNhbm5vdAogKiBzdGFydCBubyBtYXR0ZXIgd2hhdCB0aGUgcHJvamVjdCBoYXMgaW5zdGFsbGVkIOKAlCByZXBvcnRlZCBmcm9tIGEgY29uc3VtZXIKICogcHJvamVjdCB3aXRoIGJvdGggcGVlcnMgcHJlc2VudC4KICoKICogQSBwYXRoIHRvIHRoZSBsb2NhbCBiaW5hcnkgc2F0aXNmaWVzIHRoZSBvcmlnaW5hbCBydWxpbmcgTU9SRSBjb21wbGV0ZWx5CiAqIHRoYW4gdGhlIHBpbiBkaWQ6IGl0IGNhbm5vdCByZWFjaCB0aGUgcmVnaXN0cnkgYXQgYWxsLCBzbyB0aGVyZSBpcyBub3RoaW5nCiAqIHRvIGRvd25sb2FkIGFuZCBubyBgbGF0ZXN0YCB0byBkcmlmdCB0by4gSXQgYWxzbyByZXRpcmVzIHRoZSBwaW4ncyBvd24KICogbWFpbnRlbmFuY2UgcHJvYmxlbSwgd2hlcmUgYSBjb25maWcgd3JpdHRlbiBhdCBvbmUgdmVyc2lvbiBrZXB0IG5hbWluZyB0aGF0CiAqIHZlcnNpb24gYWZ0ZXIgYW4gdXBncmFkZSwgbGV0dGluZyBhbiBhZ2VudCBxdWVyeSBhIG1hbmlmZXN0IHRoYXQgZGlzYWdyZWVkCiAqIHdpdGggdGhlIGNvZGUgaXQgd2FzIHdyaXRpbmcgYWdhaW5zdC4gVGhlIGJpbmFyeSBvbiBkaXNrIElTIHRoZSBpbnN0YWxsZWQKICogdmVyc2lvbiwgYnkgY29uc3RydWN0aW9uLgogKi8KY29uc3QgQVJHUyA9IFtNQ1BfQklOX1BBVEgsICdtY3AnXTsKCmNvbnN0IHN0ZGlvRW50cnkgPSAoKSA9PiAoeyBjb21tYW5kOiBDT01NQU5ELCBhcmdzOiBbLi4uQVJHU10gfSk7CmNvbnN0IHZzY29kZUVudHJ5ID0gKCkgPT4gKHsKCXR5cGU6ICdzdGRpbycsCgljb21tYW5kOiBDT01NQU5ELAoJYXJnczogWy4uLkFSR1NdLAp9KTsKCmZ1bmN0aW9uIHdyaXRlSnNvbihwYXRoLCBkYXRhKSB7Cglta2RpclN5bmMoZGlybmFtZShwYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7Cgl3cml0ZUZpbGVTeW5jKHBhdGgsIGAke0pTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsICdcdCcpfVxuYCwgJ3V0Zi04Jyk7Cn0KCi8qKgogKiBNZXJnZSB0aGUgc2VydmVyIGVudHJ5IGludG8gYHBhdGhgJ3MgYDxjb250YWluZXJLZXk+YCBtYXAuIFJldHVybnMKICogYHsgcGF0aCwgbGFiZWwsIGFjdGlvbiB9YCB3aXRoIGFjdGlvbiDiiIggY3JlYXRlZHx1cGRhdGVkfHVuY2hhbmdlZHxza2lwcGVkLgogKi8KZnVuY3Rpb24gZW5zdXJlRW50cnkocGF0aCwgY29udGFpbmVyS2V5LCBlbnRyeSwgbGFiZWwpIHsKCWxldCBjb25maWcgPSB7fTsKCWNvbnN0IGV4aXN0ZWQgPSBleGlzdHNTeW5jKHBhdGgpOwoJaWYgKGV4aXN0ZWQpIHsKCQl0cnkgewoJCQljb25maWcgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhwYXRoLCAndXRmLTgnKSk7CgkJfSBjYXRjaCAoZXJyb3IpIHsKCQkJY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTsKCQkJcmV0dXJuIHsKCQkJCXBhdGgsCgkJCQlsYWJlbCwKCQkJCWFjdGlvbjogJ3NraXBwZWQnLAoJCQkJcmVhc29uOiBgaW52YWxpZCBKU09OICgke21lc3NhZ2V9KWAsCgkJCX07CgkJfQoJfQoJaWYgKCFjb25maWdbY29udGFpbmVyS2V5XSB8fCB0eXBlb2YgY29uZmlnW2NvbnRhaW5lcktleV0gIT09ICdvYmplY3QnKSB7CgkJY29uZmlnW2NvbnRhaW5lcktleV0gPSB7fTsKCX0KCgljb25zdCBwcmV2aW91cyA9IGNvbmZpZ1tjb250YWluZXJLZXldW01DUF9TRVJWRVJfTkFNRV07CglpZiAocHJldmlvdXMgJiYgSlNPTi5zdHJpbmdpZnkocHJldmlvdXMpID09PSBKU09OLnN0cmluZ2lmeShlbnRyeSkpIHsKCQlyZXR1cm4geyBwYXRoLCBsYWJlbCwgYWN0aW9uOiAndW5jaGFuZ2VkJyB9OwoJfQoKCWNvbmZpZ1tjb250YWluZXJLZXldW01DUF9TRVJWRVJfTkFNRV0gPSBlbnRyeTsKCXRyeSB7CgkJd3JpdGVKc29uKHBhdGgsIGNvbmZpZyk7Cgl9IGNhdGNoIChlcnJvcikgewoJCWNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7CgkJcmV0dXJuIHsgcGF0aCwgbGFiZWwsIGFjdGlvbjogJ3NraXBwZWQnLCByZWFzb246IG1lc3NhZ2UgfTsKCX0KCXJldHVybiB7IHBhdGgsIGxhYmVsLCBhY3Rpb246IGV4aXN0ZWQgPyAndXBkYXRlZCcgOiAnY3JlYXRlZCcgfTsKfQoKLyoqIENsYXVkZSBDb2RlIOKAlCBwcm9qZWN0LXJvb3QgYC5tY3AuanNvbmAuICovCmV4cG9ydCBjb25zdCB3cml0ZUNsYXVkZUNvZGVDb25maWcgPSAocm9vdCkgPT4KCWVuc3VyZUVudHJ5KAoJCWpvaW4ocm9vdCwgJy5tY3AuanNvbicpLAoJCSdtY3BTZXJ2ZXJzJywKCQlzdGRpb0VudHJ5KCksCgkJJ0NsYXVkZSBDb2RlJwoJKTsKCi8qKiBDdXJzb3Ig4oCUIHByb2plY3QgYC5jdXJzb3IvbWNwLmpzb25gLiAqLwpleHBvcnQgY29uc3Qgd3JpdGVDdXJzb3JDb25maWcgPSAocm9vdCkgPT4KCWVuc3VyZUVudHJ5KAoJCWpvaW4ocm9vdCwgJy5jdXJzb3InLCAnbWNwLmpzb24nKSwKCQknbWNwU2VydmVycycsCgkJc3RkaW9FbnRyeSgpLAoJCSdDdXJzb3InCgkpOwoKLyoqIFZTIENvZGUgLyBHaXRIdWIgQ29waWxvdCDigJQgcHJvamVjdCBgLnZzY29kZS9tY3AuanNvbmAgKGBzZXJ2ZXJzYCArIGB0eXBlYCkuICovCmV4cG9ydCBjb25zdCB3cml0ZVZzY29kZUNvbmZpZyA9IChyb290KSA9PgoJZW5zdXJlRW50cnkoCgkJam9pbihyb290LCAnLnZzY29kZScsICdtY3AuanNvbicpLAoJCSdzZXJ2ZXJzJywKCQl2c2NvZGVFbnRyeSgpLAoJCSdWUyBDb2RlIC8gQ29waWxvdCcKCSk7CgovKioKICogV2luZHN1cmYg4oCUIENhc2NhZGUgb25seSByZWFkcyBhIEdMT0JBTCBjb25maWc7IHRoZXJlIGlzIG5vIHByb2plY3Qgc2NvcGUsIHNvCiAqIHRoaXMgd3JpdGVzIHRvIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkgYW5kIGFmZmVjdHMgYWxsIHRoZWlyIHByb2plY3RzLgogKi8KZXhwb3J0IGNvbnN0IHdyaXRlV2luZHN1cmZDb25maWcgPSAoKSA9PgoJZW5zdXJlRW50cnkoCgkJam9pbihob21lZGlyKCksICcuY29kZWl1bScsICd3aW5kc3VyZicsICdtY3BfY29uZmlnLmpzb24nKSwKCQknbWNwU2VydmVycycsCgkJc3RkaW9FbnRyeSgpLAoJCSdXaW5kc3VyZiAoZ2xvYmFsKScKCSk7CgovKioKICogUmVnaXN0ZXIgdGhlIHNlcnZlciBhY3Jvc3MgaGFybmVzc2VzLiBQcm9qZWN0LXNjb3BlZCBoYXJuZXNzZXMgYWx3YXlzIHJ1bjsKICogV2luZHN1cmYgKGdsb2JhbCwgaG9tZS1kaXIpIGlzIG9wdC1pbiB2aWEgYGluY2x1ZGVXaW5kc3VyZmAgYmVjYXVzZSB3cml0aW5nCiAqIGl0IGFmZmVjdHMgZXZlcnkgcHJvamVjdCBvbiB0aGUgbWFjaGluZSDigJQgYXBwcm9wcmlhdGUgZm9yIHRoZSBleHBsaWNpdAogKiBgYWktaW5pdCAtLW1jcGAgY29tbWFuZCwgYnV0IG5vdCBmb3IgYSBzaWxlbnQgZGV2LXNlcnZlciBib290LgogKi8KZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU1jcENvbmZpZ3Mocm9vdCwgeyBpbmNsdWRlV2luZHN1cmYgPSBmYWxzZSB9ID0ge30pIHsKCWNvbnN0IHJlc3VsdHMgPSBbCgkJd3JpdGVDbGF1ZGVDb2RlQ29uZmlnKHJvb3QpLAoJCXdyaXRlQ3Vyc29yQ29uZmlnKHJvb3QpLAoJCXdyaXRlVnNjb2RlQ29uZmlnKHJvb3QpLAoJXTsKCWlmIChpbmNsdWRlV2luZHN1cmYpIHJlc3VsdHMucHVzaCh3cml0ZVdpbmRzdXJmQ29uZmlnKCkpOwoJcmV0dXJuIHJlc3VsdHM7Cn0K", "" + import.meta.url).href
|
|
529
514
|
), i = n(e, { includeWindsurf: !1 }), a = i.filter((e) => e.action === "created" || e.action === "updated");
|
|
530
515
|
for (let e of a) t.info(`[bitboss-ui] MCP: ${e.action} config for ${e.label}`);
|
|
531
516
|
for (let e of i.filter((e) => e.action === "skipped")) t.warn(`[bitboss-ui] MCP: skipped ${e.label}${e.reason ? ` (${e.reason})` : ""}`);
|
|
@@ -537,29 +522,60 @@ async function et(e, t) {
|
|
|
537
522
|
t.warn(`[bitboss-ui] MCP: could not register dev server (${n})`);
|
|
538
523
|
}
|
|
539
524
|
}
|
|
540
|
-
function
|
|
541
|
-
let
|
|
525
|
+
function dt(e) {
|
|
526
|
+
let t = {
|
|
542
527
|
iconDir: "./assets/icons",
|
|
543
|
-
...
|
|
544
|
-
}, r, i = !1, a = [], o = [], s = [], { enabled: c, defaultLocale: l, warnings: u } = O({
|
|
545
|
-
locale: n.locale,
|
|
546
|
-
enabledLocales: n.enabledLocales,
|
|
547
|
-
customLocaleKeys: a
|
|
548
|
-
}), p = j([...c, ...a]), m = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Set(), v = () => {
|
|
549
|
-
m.clear(), h.clear(), _ = ie(r);
|
|
550
|
-
for (let e of re(r)) m.set(e.prefix, e), h.set(e.prefix, (t) => te(e.prefix, t));
|
|
528
|
+
...e
|
|
551
529
|
};
|
|
530
|
+
if ("cssLayers" in t && t.cssLayers === void 0) throw Error("[bitboss-ui] cssLayers is present but undefined. If you passed an imported constant such as TAILWIND_V4_LAYERS, the installed bitboss-ui does not export it (older dist?) — upgrade, or pass the array literal. Remove the key entirely for an unlayered sheet.");
|
|
531
|
+
let r = n(t.cssLayers, { resetCss: t.resetCss ?? !1 });
|
|
532
|
+
if (r) throw Error(r);
|
|
533
|
+
let a, o = !1, s, c = {
|
|
534
|
+
info: (e) => console.warn(e),
|
|
535
|
+
warn: (e) => console.warn(e)
|
|
536
|
+
}, d = [], f = [], p = [], { enabled: m, defaultLocale: h, warnings: _ } = F({
|
|
537
|
+
locale: t.locale,
|
|
538
|
+
enabledLocales: t.enabledLocales,
|
|
539
|
+
customLocaleKeys: d
|
|
540
|
+
}), v = R([...m, ...d]), b = /* @__PURE__ */ new Map(), x = /* @__PURE__ */ new Map(), S = /* @__PURE__ */ new Set(), te = () => {
|
|
541
|
+
b.clear(), x.clear(), S = oe(a);
|
|
542
|
+
for (let e of ae(a)) b.set(e.prefix, e), x.set(e.prefix, (t) => ie(e.prefix, t));
|
|
543
|
+
T = null, D = null;
|
|
544
|
+
}, w = (e, t) => {
|
|
545
|
+
let n = b.get(e);
|
|
546
|
+
if (!n) return !1;
|
|
547
|
+
let r = x.get(e);
|
|
548
|
+
return C(n, t) !== null && (!r || r(t));
|
|
549
|
+
}, T = null, D = null, O = null, k = () => D || (D = (async () => {
|
|
550
|
+
let e = t.iconsScanner ?? {}, n = JSON.stringify({
|
|
551
|
+
version: ce(M),
|
|
552
|
+
sets: Array.from(b.entries()).map(([e, t]) => [e, t.lastModified ?? 0]).sort(([e], [t]) => e < t ? -1 : +(e > t)),
|
|
553
|
+
include: e.include ?? [],
|
|
554
|
+
exclude: e.exclude ?? [],
|
|
555
|
+
maxFileSize: e.maxFileSize ?? null
|
|
556
|
+
}), r = new i({
|
|
557
|
+
root: a,
|
|
558
|
+
outDir: s ?? y(a, "dist"),
|
|
559
|
+
scanner: e,
|
|
560
|
+
prefixes: Array.from(b.keys()),
|
|
561
|
+
resolves: w,
|
|
562
|
+
cacheFile: l(a),
|
|
563
|
+
cacheKey: n
|
|
564
|
+
}), o = await r.scan();
|
|
565
|
+
if (o.cold && c.info(`[bitboss-ui] icon scan: ${o.files} files in ${o.elapsed}ms${o.workers ? ` on ${o.workers} threads` : ""} (${r.icons.size} provider icons referenced)`), T = r, O) for (let e of r.includeDirs) O.add(e);
|
|
566
|
+
return r;
|
|
567
|
+
})(), D);
|
|
552
568
|
return {
|
|
553
569
|
name: "bitboss-ui:icon-registry",
|
|
554
570
|
config(e) {
|
|
555
|
-
let t = e.optimizeDeps?.include ?? [], n = e.optimizeDeps?.exclude ?? [], r =
|
|
571
|
+
let t = e.optimizeDeps?.include ?? [], n = e.optimizeDeps?.exclude ?? [], r = V(e.root ?? process.cwd()) ? [...W, Ge] : W, i = v.found.map(({ pack: e }) => `dayjs/locale/${e}`), a = (e.build?.assetsDir ?? "assets").replace(/\/+$/, ""), o = e.build?.rollupOptions?.output, s = (Array.isArray(o) ? o[0] : o)?.chunkFileNames;
|
|
556
572
|
return {
|
|
557
573
|
optimizeDeps: {
|
|
558
574
|
include: [...r, ...i].filter((e) => !t.includes(e)),
|
|
559
|
-
exclude:
|
|
575
|
+
exclude: G.filter((e) => !n.includes(e))
|
|
560
576
|
},
|
|
561
577
|
build: { rollupOptions: { output: { chunkFileNames(e) {
|
|
562
|
-
if (e.facadeModuleId?.startsWith(
|
|
578
|
+
if (e.facadeModuleId?.startsWith(lt)) {
|
|
563
579
|
let t = e.facadeModuleId.slice(17);
|
|
564
580
|
return `${a}/icons/${t.replace("/", "_")}-[hash].js`;
|
|
565
581
|
}
|
|
@@ -568,20 +584,20 @@ function tt(t) {
|
|
|
568
584
|
};
|
|
569
585
|
},
|
|
570
586
|
configResolved(e) {
|
|
571
|
-
|
|
587
|
+
a = e.root, o = e.command === "build", s = y(a, e.build?.outDir ?? "dist"), e.logger && (c = e.logger);
|
|
572
588
|
},
|
|
573
589
|
resolveId(e) {
|
|
574
|
-
if (e ===
|
|
575
|
-
if (e ===
|
|
576
|
-
if (e ===
|
|
577
|
-
if (e ===
|
|
578
|
-
if (e ===
|
|
579
|
-
if (e ===
|
|
580
|
-
if (e.startsWith(
|
|
590
|
+
if (e === Ke) return K;
|
|
591
|
+
if (e === qe) return q;
|
|
592
|
+
if (e === Je) return J;
|
|
593
|
+
if (e === Ye) return Y;
|
|
594
|
+
if (e === Xe) return Ze;
|
|
595
|
+
if (e === Qe) return $e;
|
|
596
|
+
if (e.startsWith(ct)) return "\0" + e;
|
|
581
597
|
},
|
|
582
598
|
async load(e) {
|
|
583
|
-
if (e ===
|
|
584
|
-
let { iconDir: e, enabledLocales:
|
|
599
|
+
if (e === q) {
|
|
600
|
+
let { iconDir: e, enabledLocales: n, ...r } = t, i = {
|
|
585
601
|
inertiaLinkName: "Link",
|
|
586
602
|
nuxtLinkName: "NuxtLink",
|
|
587
603
|
linkActiveClass: "router-link-active",
|
|
@@ -593,11 +609,12 @@ function tt(t) {
|
|
|
593
609
|
locale: "it",
|
|
594
610
|
injectStyles: !0,
|
|
595
611
|
resetCss: !1,
|
|
612
|
+
cssLayers: void 0,
|
|
596
613
|
injectDirectives: !0,
|
|
597
614
|
requiredAsterisk: !1,
|
|
598
615
|
toastPosition: "bottom-right",
|
|
599
616
|
...r,
|
|
600
|
-
defaultLocale:
|
|
617
|
+
defaultLocale: h,
|
|
601
618
|
iconDefaultSizes: {
|
|
602
619
|
xs: 12,
|
|
603
620
|
sm: 16,
|
|
@@ -628,100 +645,107 @@ function tt(t) {
|
|
|
628
645
|
};
|
|
629
646
|
return `import { reactive } from 'vue';\nexport const config = reactive(${JSON.stringify(i)});\n`;
|
|
630
647
|
}
|
|
631
|
-
if (e ===
|
|
632
|
-
if (e ===
|
|
633
|
-
if (e ===
|
|
634
|
-
if (e ===
|
|
635
|
-
if (e.startsWith(
|
|
636
|
-
let t = e.slice(17), n = t.indexOf("/"), r = t.slice(0, n), i = t.slice(n + 1), a =
|
|
648
|
+
if (e === Y) return I(m);
|
|
649
|
+
if (e === J) return z(v.found);
|
|
650
|
+
if (e === Ze) return `export default ${JSON.stringify(et())};`;
|
|
651
|
+
if (e === $e) return H(V(a));
|
|
652
|
+
if (e.startsWith(lt)) {
|
|
653
|
+
let t = e.slice(17), n = t.indexOf("/"), r = t.slice(0, n), i = t.slice(n + 1), a = b.get(r);
|
|
637
654
|
a || this.error(`[bitboss-ui] cannot load "${r}:${i}" — @iconify-json/${r} is not installed.\n Run: npm install -D @iconify-json/${r}`);
|
|
638
|
-
let o =
|
|
639
|
-
return o || this.error(`[bitboss-ui] icon "${i}" does not exist in the ${r} icon set`), `export default ${JSON.stringify(
|
|
655
|
+
let o = C(a, i);
|
|
656
|
+
return o || this.error(`[bitboss-ui] icon "${i}" does not exist in the ${r} icon set`), `export default ${JSON.stringify(re(o))};`;
|
|
640
657
|
}
|
|
641
|
-
if (e !==
|
|
642
|
-
let
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
}).
|
|
649
|
-
return `const _local = import.meta.glob(${JSON.stringify(a)}, { query: '?raw', import: 'default' });\nconst _localIcons = Object.fromEntries(Object.entries(_local).map(([k, l]) => { const f = k.split(/[/\\\\]+/).pop(); return [\`local:\${f.replace(/\\.svg$/i, '')}\`, l]; }));\nconst _icons = {\n` + (u ? u + "\n" : "") + `\t..._localIcons,\n};\nconst _ip = new Set(${JSON.stringify(Array.from(_))});\nconst _loaded = new Set(${JSON.stringify(Array.from(m.keys()))});\nconst _installed = _loaded.size ? \`installed sets: \${[..._loaded].join(', ')}\` : 'no @iconify-json/* set is installed';\nconst _fail = (msg) => () => { const _e = new Error(); import.meta.hot?.send('bitboss-ui:icon-missing', { msg, stack: _e.stack }); return Promise.reject(new Error(msg)); };\nexport const icons = import.meta.env.DEV\n\t? new Proxy(_icons, {\n\t\tget(t, k) {\n\t\t\tif (k in t || typeof k !== 'string' || !k.includes(':')) return t[k];\n\t\t\tconst _c = k.indexOf(':'); const _p = k.slice(0, _c); const _n = k.slice(_c + 1);\n\t\t\tif (_p === 'local' || !/^[a-z][a-z0-9-]*$/.test(_p) || !/^[a-z][a-z0-9-]*$/.test(_n)) return undefined;\n\t\t\tif (_loaded.has(_p)) { const _names = Object.keys(t).filter(x => x.startsWith(_p + ':')).map(x => x.slice(_c + 1)); const _sq = _n.replace(/-/g, ''); const _sug = _names.find(x => x.replace(/-/g, '') === _sq) ?? (_n.length >= 3 ? _names.find(x => x.includes(_n) || (x.length >= 3 && _n.includes(x))) : undefined); return _fail(\`[bitboss-ui] icon "\${k}" does not exist in the \${_p} icon set\` + (_sug ? \` — did you mean "\${_p}:\${_sug}"?\` : '')); }\n\t\t\tconst _pkg = \`@iconify-json/\${_p}\`; const _cmd = \`run: npm install -D \${_pkg}\`;\n\t\t\tif (_ip.has(_p)) return _fail(\`[bitboss-ui] "\${k}" requires "\${_pkg}" — \${_cmd} (\${_installed})\`);\n\t\t\tif (_ip.size) return _fail(\`[bitboss-ui] "\${k}" — "\${_p}" is neither an installed icon set nor a known Iconify prefix (\${_installed})\`);\n\t\t\treturn _fail(\`[bitboss-ui] "\${k}" — no installed icon set has the prefix "\${_p}" (\${_installed}). If "\${_p}" is an Iconify set, \${_cmd}\`);\n\t\t},\n\t})\n\t: _icons;\n`;
|
|
658
|
+
if (e !== K) return;
|
|
659
|
+
let n = y(a, t.iconDir), r = "/" + ee(a, n).replace(/\\/g, "/") + "/**/*.svg", i = await k(), s = j(t.iconWhitelist ?? [], b, x, S);
|
|
660
|
+
s.errors.length > 0 && this.error(s.errors.length === 1 ? s.errors[0] : `[bitboss-ui] iconWhitelist has ${s.errors.length} entries that do not resolve:\n - ${s.errors.map((e) => e.replace(/^\[bitboss-ui\] /, "")).join("\n - ")}`);
|
|
661
|
+
let c = /* @__PURE__ */ new Set([...i.icons, ...s.icons]), l = Array.from(c).sort().flatMap((e) => {
|
|
662
|
+
let t = ne(e);
|
|
663
|
+
return t ? [`\t${JSON.stringify(e)}: () => import(${JSON.stringify(ct + t.prefix + "/" + t.name)}).then(m => m.default),`] : [];
|
|
664
|
+
}).join("\n"), u = o ? null : Object.fromEntries(Array.from(b.entries()).map(([e, t]) => [e, A(t, x.get(e))]));
|
|
665
|
+
return `const _local = import.meta.glob(${JSON.stringify(r)}, { query: '?raw', import: 'default' });\nconst _localIcons = Object.fromEntries(Object.entries(_local).map(([k, l]) => { const f = k.split(/[/\\\\]+/).pop(); return [\`local:\${f.replace(/\\.svg$/i, '')}\`, l]; }));\nconst _icons = {\n` + (l ? l + "\n" : "") + `\t..._localIcons,\n};\nconst _ip = new Set(${JSON.stringify(Array.from(S))});\nconst _loaded = new Set(${JSON.stringify(Array.from(b.keys()))});\nconst _all = ${u ? JSON.stringify(u) : "null"};\nconst _diag = ${se};\nconst _fail = (msg) => () => { const _e = new Error(); import.meta.hot?.send('bitboss-ui:icon-missing', { msg, stack: _e.stack }); return Promise.reject(new Error(msg)); };\nexport const icons = new Proxy(_icons, {\n\tget(t, k) {\n\t\tif (k in t || typeof k !== 'string' || !k.includes(':')) return t[k];\n\t\tconst _msg = _diag(k, _loaded, (p) => Object.keys(t).filter((x) => x.startsWith(p + ':')).map((x) => x.slice(p.length + 1)), (p) => (_all && _all[p]) || null, _ip);\n\t\treturn _msg ? _fail(_msg) : undefined;\n\t},\n});\n`;
|
|
650
666
|
},
|
|
651
667
|
buildStart() {
|
|
652
|
-
|
|
668
|
+
te(), Q(y(a, t.iconDir), a), !o && t.vscodeSettings !== !1 && st(a, {
|
|
653
669
|
info: (e) => this.info(e),
|
|
654
670
|
warn: (e) => this.warn(e)
|
|
655
671
|
});
|
|
656
|
-
for (let e of
|
|
657
|
-
for (let e of
|
|
658
|
-
for (let e of
|
|
659
|
-
for (let e of
|
|
660
|
-
|
|
661
|
-
let
|
|
672
|
+
for (let e of f) this.warn(e);
|
|
673
|
+
for (let e of _) this.warn(e);
|
|
674
|
+
for (let e of p) this.warn(e);
|
|
675
|
+
for (let e of v.missing) this.warn(`[bitboss-ui] locale '${e}' has no dayjs counterpart (dayjs/locale/${e}) — its calendars fall back to English. Dayjs locale names: https://github.com/iamkun/dayjs/tree/dev/src/locale`);
|
|
676
|
+
t.locale && !u.includes(t.locale) && !d.includes(t.locale) && this.warn(`[bitboss-ui] \`locale: '${t.locale}'\` is not a built-in locale — the library ships ${u.length} dictionaries. Strings fall back to the default locale.`), E(ve, L([...m, ...d], Oe));
|
|
677
|
+
let e = [
|
|
662
678
|
{
|
|
663
|
-
defaults:
|
|
664
|
-
custom:
|
|
679
|
+
defaults: Pe,
|
|
680
|
+
custom: t.buttonVariants,
|
|
665
681
|
outputPath: le,
|
|
666
|
-
module:
|
|
682
|
+
module: ye,
|
|
667
683
|
registryName: "ButtonVariantRegistry"
|
|
668
684
|
},
|
|
669
685
|
{
|
|
670
|
-
defaults:
|
|
671
|
-
custom:
|
|
686
|
+
defaults: Fe,
|
|
687
|
+
custom: t.alertVariants,
|
|
672
688
|
outputPath: ue,
|
|
673
|
-
module:
|
|
689
|
+
module: be,
|
|
674
690
|
registryName: "AlertVariantRegistry"
|
|
675
691
|
},
|
|
676
692
|
{
|
|
677
|
-
defaults:
|
|
678
|
-
custom:
|
|
693
|
+
defaults: Ie,
|
|
694
|
+
custom: t.badgeVariants,
|
|
679
695
|
outputPath: de,
|
|
680
|
-
module:
|
|
696
|
+
module: xe,
|
|
681
697
|
registryName: "BadgeVariantRegistry"
|
|
682
698
|
},
|
|
683
699
|
{
|
|
684
|
-
defaults:
|
|
685
|
-
custom:
|
|
700
|
+
defaults: Le,
|
|
701
|
+
custom: t.confirmVariants,
|
|
686
702
|
outputPath: fe,
|
|
687
|
-
module:
|
|
703
|
+
module: Se,
|
|
688
704
|
registryName: "ConfirmVariantRegistry"
|
|
689
705
|
},
|
|
690
706
|
{
|
|
691
|
-
defaults:
|
|
692
|
-
custom:
|
|
707
|
+
defaults: Re,
|
|
708
|
+
custom: t.dropdownItemVariants,
|
|
693
709
|
outputPath: pe,
|
|
694
|
-
module:
|
|
710
|
+
module: Ce,
|
|
695
711
|
registryName: "DropdownItemVariantRegistry"
|
|
696
712
|
},
|
|
697
713
|
{
|
|
698
|
-
defaults:
|
|
699
|
-
custom:
|
|
714
|
+
defaults: ze,
|
|
715
|
+
custom: t.tooltipVariants,
|
|
700
716
|
outputPath: me,
|
|
701
|
-
module:
|
|
717
|
+
module: we,
|
|
702
718
|
registryName: "TooltipVariantRegistry"
|
|
703
719
|
},
|
|
704
720
|
{
|
|
705
|
-
defaults:
|
|
706
|
-
custom:
|
|
721
|
+
defaults: Be,
|
|
722
|
+
custom: t.toastVariants,
|
|
707
723
|
outputPath: he,
|
|
708
|
-
module:
|
|
724
|
+
module: Te,
|
|
709
725
|
registryName: "ToastVariantRegistry"
|
|
710
726
|
},
|
|
711
727
|
{
|
|
712
|
-
defaults:
|
|
713
|
-
custom:
|
|
728
|
+
defaults: Ve,
|
|
729
|
+
custom: t.indicatorVariants,
|
|
714
730
|
outputPath: ge,
|
|
715
|
-
module:
|
|
731
|
+
module: Ee,
|
|
716
732
|
registryName: "IndicatorVariantRegistry"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
defaults: He,
|
|
736
|
+
custom: t.inputVariants,
|
|
737
|
+
outputPath: _e,
|
|
738
|
+
module: De,
|
|
739
|
+
registryName: "InputVariantRegistry"
|
|
717
740
|
}
|
|
718
741
|
];
|
|
719
|
-
for (let
|
|
742
|
+
for (let t of e) E(t.outputPath, U(Ue(t.defaults, t.custom), t.module, t.registryName));
|
|
720
743
|
},
|
|
721
744
|
configureServer(e) {
|
|
722
|
-
|
|
723
|
-
let
|
|
745
|
+
t.mcp && ut(e.config.root, e.config.logger);
|
|
746
|
+
let n = y(e.config.root, t.iconDir), r = (e) => e.startsWith(n) && e.endsWith(".svg");
|
|
724
747
|
e.ws.on("bitboss-ui:icon-missing", (t) => {
|
|
748
|
+
if (process.env.VITEST || e.config.mode === "test") return;
|
|
725
749
|
let n = t.stack ? t.stack.replace(/^Error/, `Error: ${t.msg}`) : `Error: ${t.msg}`;
|
|
726
750
|
e.ws.send({
|
|
727
751
|
type: "error",
|
|
@@ -731,15 +755,41 @@ function tt(t) {
|
|
|
731
755
|
plugin: "bitboss-ui"
|
|
732
756
|
}
|
|
733
757
|
});
|
|
734
|
-
})
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
}
|
|
739
|
-
|
|
758
|
+
});
|
|
759
|
+
let i = async () => {
|
|
760
|
+
let t = e.moduleGraph.getModuleById(K);
|
|
761
|
+
t && await e.reloadModule(t);
|
|
762
|
+
}, a, o = () => {
|
|
763
|
+
clearTimeout(a), a = setTimeout(() => void T?.persist(), 500);
|
|
764
|
+
}, s = Promise.resolve(), l = (e, t) => {
|
|
765
|
+
s = s.then(async () => {
|
|
766
|
+
if (!T) return;
|
|
767
|
+
let n;
|
|
768
|
+
if (g(t) === ".gitignore") {
|
|
769
|
+
let e = T.icons;
|
|
770
|
+
T.resetGitignores(), await T.scan();
|
|
771
|
+
let t = T.icons;
|
|
772
|
+
n = e.size !== t.size || [...e].some((e) => !t.has(e));
|
|
773
|
+
} else n = e === "unlink" ? T.removeFile(t) : await T.updateFile(t);
|
|
774
|
+
o(), n && await i();
|
|
775
|
+
}).catch((e) => {
|
|
776
|
+
c.warn(`[bitboss-ui] icon scan: could not update ${t} (${e instanceof Error ? e.message : String(e)})`);
|
|
777
|
+
});
|
|
778
|
+
};
|
|
779
|
+
if (O = e.watcher, T) for (let e of T.includeDirs) O.add(e);
|
|
780
|
+
for (let t of [
|
|
781
|
+
"add",
|
|
782
|
+
"change",
|
|
783
|
+
"unlink"
|
|
784
|
+
]) e.watcher.on(t, (i) => {
|
|
785
|
+
if (r(i)) {
|
|
786
|
+
Q(n, e.config.root);
|
|
787
|
+
return;
|
|
788
|
+
}
|
|
789
|
+
l(t, i);
|
|
740
790
|
});
|
|
741
791
|
}
|
|
742
792
|
};
|
|
743
793
|
}
|
|
744
794
|
//#endregion
|
|
745
|
-
export { e as BUILTIN_LOCALE_KEYS,
|
|
795
|
+
export { e as BB_LAYERS, u as BUILTIN_LOCALE_KEYS, r as DEFAULT_MAX_FILE_SIZE, i as IconScanner, G as REQUIRED_OPTIMIZE_DEPS_EXCLUDE, W as REQUIRED_OPTIMIZE_DEPS_INCLUDE, t as TAILWIND_V4_LAYERS, dt as bitbossUi, k as diagnoseMissingIcon, j as expandIconWhitelist, a as extractIconCandidates, z as generateDayjsLocalesModule, H as generateLinkModule, L as generateLocaleRegistryDts, I as generateLocalesModule, U as generateVariantsDts, V as hasInertia, c as iconLiteralRegExp, l as iconScanCacheFile, R as resolveDayjsLocales, F as resolveEnabledLocales, rt as stripJsonComments, st as updateVscodeSettings };
|