bitboss-ui 3.0.0-beta.47 → 3.0.0-beta.49
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 +24 -7
- package/bin/bitboss-ui-mcp.mjs +15 -3
- package/bin/bitboss-ui.mjs +167 -14
- package/dist/ai/BbAccordion.md +1 -1
- package/dist/ai/BbAvatar.md +1 -1
- package/dist/ai/BbBreadcrumbs.md +65 -65
- package/dist/ai/BbButton.md +28 -8
- package/dist/ai/BbCheckbox.md +0 -2
- package/dist/ai/BbCheckboxGroup.md +13 -20
- package/dist/ai/BbCollapsible.md +1 -1
- package/dist/ai/BbColorPalette.md +1 -1
- package/dist/ai/BbConfirm.md +8 -0
- package/dist/ai/BbConfirmPortal.md +1 -1
- package/dist/ai/BbDatePickerInput.md +4 -2
- package/dist/ai/BbDialog.md +1 -8
- package/dist/ai/BbDropdown.md +231 -220
- package/dist/ai/BbDropdownButton.md +65 -65
- package/dist/ai/BbDropdownGroup.md +2 -2
- package/dist/ai/BbDropzone.md +10 -10
- package/dist/ai/BbForm.md +43 -52
- package/dist/ai/BbHoverCard.md +19 -7
- package/dist/ai/BbHoverCardPortal.md +1 -1
- package/dist/ai/BbNumberInput.md +88 -21
- package/dist/ai/BbPopover.md +47 -40
- package/dist/ai/BbPopoverPortal.md +1 -1
- package/dist/ai/BbProgress.md +48 -22
- package/dist/ai/BbRadioGroup.md +13 -19
- package/dist/ai/BbSelect.md +16 -36
- package/dist/ai/BbSelectPopover.md +14 -30
- package/dist/ai/BbSmoothHeight.md +0 -2
- package/dist/ai/BbSwitchGroup.md +13 -20
- package/dist/ai/BbTable.md +11 -10
- package/dist/ai/BbTabs.md +107 -106
- package/dist/ai/BbTabsList.md +2 -2
- package/dist/ai/BbTabsPanels.md +1 -1
- package/dist/ai/BbTabsRoot.md +3 -3
- package/dist/ai/BbTooltip.md +29 -13
- package/dist/ai/BbTree.md +14 -11
- package/dist/ai/CommonPopover.md +1 -1
- package/dist/ai/changelog.json +297 -6
- package/dist/ai/components.json +50 -45
- package/dist/ai/composables/useBbDropdownContext.md +16 -16
- package/dist/ai/composables/useBbFormField.md +5 -1
- package/dist/ai/composables/useBbTabsContext.md +14 -14
- package/dist/ai/guides/agent-contract.md +27 -27
- package/dist/ai/guides/ai-router.md +1 -1
- package/dist/ai/guides/component-picker.md +3 -3
- package/dist/ai/guides/fetch-items-playbook.md +1 -1
- package/dist/ai/guides/icons-policy.md +10 -10
- package/dist/ai/guides/inertia-helpers.md +120 -67
- package/dist/ai/guides/installation-and-plugin-setup.md +45 -15
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +3 -2
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -16
- package/dist/ai/guides/migration/components/bb-dropdown-button.md +9 -8
- package/dist/ai/guides/migration/components/bb-dropdown.md +15 -14
- package/dist/ai/guides/migration/components/bb-radio-group.md +2 -1
- package/dist/ai/guides/migration/components/bb-select-popover.md +6 -1
- package/dist/ai/guides/migration/components/bb-select.md +10 -2
- package/dist/ai/guides/migration/components/bb-switch-group.md +2 -1
- package/dist/ai/guides/migration/components/bb-tabs.md +9 -8
- package/dist/ai/guides/migration/components/bb-tooltip.md +1 -1
- package/dist/ai/guides/migration/v2-to-v3.md +143 -28
- package/dist/ai/guides/migration/v3-beta-css-classes.md +29 -27
- package/dist/ai/guides/migration/v3-beta-tooling.md +11 -0
- package/dist/ai/guides/options-items-playbook.md +30 -24
- package/dist/ai/guides/passthrough.md +4 -4
- package/dist/ai/guides/preset-components.md +18 -3
- package/dist/ai/guides/typescript-generic-components.md +1 -1
- package/dist/ai/guides/validated-forms.md +11 -22
- package/dist/ai/guides/validation-providers.md +4 -3
- package/dist/ai/helpers/inertia/manifest.json +636 -0
- package/dist/ai/helpers/inertia/types.ts +15 -0
- package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
- package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
- package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
- package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
- package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
- package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
- package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
- package/dist/ai/helpers/inertia/useLoading.ts +20 -0
- package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
- package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
- package/dist/ai/helpers/inertia/useProp.ts +63 -0
- package/dist/ai/helpers/inertia/useQuery.ts +19 -0
- package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
- package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
- package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
- package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
- package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
- package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
- package/dist/ai/helpers/inertia/useUntil.ts +33 -0
- package/dist/ai/helpers/inertia/utils.ts +24 -0
- package/dist/ai/index.md +6 -6
- package/dist/ai/manifest/components/BbAccordion.json +1 -1
- package/dist/ai/manifest/components/BbBreadcrumbs.json +10 -6
- package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
- package/dist/ai/manifest/components/BbButton.json +2 -1
- package/dist/ai/manifest/components/BbButton.tree.json +1 -1
- package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
- package/dist/ai/manifest/components/BbCollapsible.json +1 -1
- package/dist/ai/manifest/components/BbColorPalette.json +1 -1
- package/dist/ai/manifest/components/BbConfirmPortal.json +5 -2
- package/dist/ai/manifest/components/BbDropdown.json +23 -20
- package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
- package/dist/ai/manifest/components/BbDropdownButton.json +22 -19
- package/dist/ai/manifest/components/BbDropdownButton.tree.json +1 -1
- package/dist/ai/manifest/components/BbDropdownGroup.json +2 -2
- package/dist/ai/manifest/components/BbForm.json +1 -0
- package/dist/ai/manifest/components/BbHoverCard.json +1 -1
- package/dist/ai/manifest/components/BbHoverCardPortal.json +2 -2
- package/dist/ai/manifest/components/BbNumberInput.json +6 -1
- package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
- package/dist/ai/manifest/components/BbPopover.json +2 -1
- package/dist/ai/manifest/components/BbPopoverPortal.json +2 -2
- package/dist/ai/manifest/components/BbProgress.json +6 -6
- package/dist/ai/manifest/components/BbProgress.tree.json +1 -0
- package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
- package/dist/ai/manifest/components/BbSelect.json +2 -2
- package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
- package/dist/ai/manifest/components/BbSelectPopover.json +2 -2
- package/dist/ai/manifest/components/BbSelectPopover.tree.json +1 -1
- package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
- package/dist/ai/manifest/components/BbTabs.json +8 -7
- package/dist/ai/manifest/components/BbTabsList.json +3 -3
- package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
- package/dist/ai/manifest/components/BbTabsRoot.json +6 -5
- package/dist/ai/manifest/components/BbTag.tree.json +1 -1
- package/dist/ai/manifest/components/BbTooltip.json +2 -2
- package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
- package/dist/ai/manifest/components/CommonPopover.json +1 -1
- package/dist/ai/manifest/index.json +2 -2
- package/dist/ai/manifest/meta.json +5 -0
- package/dist/ai/manifest/types.advanced.json +10 -9
- package/dist/ai/manifest/types.api.json +8 -5
- package/dist/ai/manifest/types.wrapper.json +1 -0
- package/dist/ai/recipes/inertia/approvals-inbox.md +16 -18
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +23 -33
- package/dist/ai/recipes/inertia/layout-scaffold.md +16 -16
- package/dist/ai/recipes/inertia/onboarding.md +6 -10
- package/dist/ai/recipes/inertia/ownership-atlas.md +15 -18
- package/dist/ai/recipes/inertia/record-form.md +11 -11
- package/dist/ai/recipes/inertia/records-workspace.md +38 -41
- package/dist/ai/recipes/inertia/settings-workspace.md +26 -38
- package/dist/ai/recipes/inertia/upload-center.md +31 -39
- package/dist/ai/recipes/inertia/wizard-form.md +10 -19
- package/dist/ai/recipes/nuxt/approvals-inbox.md +7 -8
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +14 -24
- package/dist/ai/recipes/nuxt/layout-scaffold.md +16 -16
- package/dist/ai/recipes/nuxt/onboarding.md +2 -6
- package/dist/ai/recipes/nuxt/ownership-atlas.md +7 -9
- package/dist/ai/recipes/nuxt/record-form.md +5 -5
- package/dist/ai/recipes/nuxt/records-workspace.md +29 -31
- package/dist/ai/recipes/nuxt/settings-workspace.md +22 -34
- package/dist/ai/recipes/nuxt/upload-center.md +22 -29
- package/dist/ai/recipes/nuxt/wizard-form.md +3 -11
- package/dist/ai/recipes/vue/approvals-inbox.md +7 -8
- package/dist/ai/recipes/vue/inline-edit-workspace.md +14 -24
- package/dist/ai/recipes/vue/layout-scaffold.md +16 -16
- package/dist/ai/recipes/vue/onboarding.md +2 -6
- package/dist/ai/recipes/vue/ownership-atlas.md +7 -9
- package/dist/ai/recipes/vue/record-form.md +5 -5
- package/dist/ai/recipes/vue/records-workspace.md +29 -31
- package/dist/ai/recipes/vue/settings-workspace.md +22 -34
- package/dist/ai/recipes/vue/upload-center.md +22 -29
- package/dist/ai/recipes/vue/wizard-form.md +3 -11
- package/dist/ai/source/BbAccordion.md +1 -1
- package/dist/ai/source/BbAlert.md +3 -3
- package/dist/ai/source/BbBadge.md +14 -10
- package/dist/ai/source/BbBadgeButton.md +17 -12
- package/dist/ai/source/BbBaseButton.md +1 -1
- package/dist/ai/source/BbBaseRadioIcon.md +1 -0
- package/dist/ai/source/BbBaseSwitchIcon.md +1 -0
- package/dist/ai/source/BbBreadcrumbs.md +63 -42
- package/dist/ai/source/BbButton.md +84 -38
- package/dist/ai/source/BbCalendar.md +17 -16
- package/dist/ai/source/BbCheckbox.md +3 -2
- package/dist/ai/source/BbCheckboxGroup.md +11 -4
- package/dist/ai/source/BbCollapsible.md +2 -1
- package/dist/ai/source/BbColorInput.md +10 -9
- package/dist/ai/source/BbColorPalette.md +2 -1
- package/dist/ai/source/BbConfirm.md +18 -1
- package/dist/ai/source/BbConfirmPortal.md +20 -6
- package/dist/ai/source/BbDatePicker.md +2 -2
- package/dist/ai/source/BbDatePickerInput.md +47 -20
- package/dist/ai/source/BbDialog.md +5 -5
- package/dist/ai/source/BbDropdown.md +231 -158
- package/dist/ai/source/BbDropdownButton.md +19 -12
- package/dist/ai/source/BbDropdownGroup.md +127 -93
- package/dist/ai/source/BbForm.md +25 -1
- package/dist/ai/source/BbHoverCard.md +30 -3
- package/dist/ai/source/BbHoverCardPortal.md +18 -3
- package/dist/ai/source/BbIndicator.md +4 -0
- package/dist/ai/source/BbNumberInput.md +855 -19
- package/dist/ai/source/BbOffCanvas.md +27 -11
- package/dist/ai/source/BbPagination.md +3 -3
- package/dist/ai/source/BbPopover.md +185 -12
- package/dist/ai/source/BbPopoverPortal.md +30 -3
- package/dist/ai/source/BbProgress.md +82 -18
- package/dist/ai/source/BbRadioGroup.md +12 -5
- package/dist/ai/source/BbRating.md +11 -9
- package/dist/ai/source/BbSelect.md +16 -10
- package/dist/ai/source/BbSelectPopover.md +29 -23
- package/dist/ai/source/BbSlider.md +12 -6
- package/dist/ai/source/BbSwitch.md +3 -2
- package/dist/ai/source/BbSwitchGroup.md +5 -2
- package/dist/ai/source/BbTable.md +102 -18
- package/dist/ai/source/BbTabs.md +30 -24
- package/dist/ai/source/BbTabsList.md +29 -23
- package/dist/ai/source/BbTabsPanels.md +29 -23
- package/dist/ai/source/BbTabsRoot.md +28 -22
- package/dist/ai/source/BbTag.md +10 -9
- package/dist/ai/source/BbTextInput.md +5 -4
- package/dist/ai/source/BbTextarea.md +6 -5
- package/dist/ai/source/BbTimePicker.md +1 -1
- package/dist/ai/source/BbTimePickerInput.md +46 -9
- package/dist/ai/source/BbToast.md +10 -7
- package/dist/ai/source/BbToastPortal.md +10 -7
- package/dist/ai/source/BbTooltip.md +88 -11
- package/dist/ai/source/BbTree.md +21 -3
- package/dist/ai/source/CommonField.md +6 -4
- package/dist/ai/source/CommonFieldInput.md +15 -10
- package/dist/ai/source/CommonPopover.md +8 -1
- package/dist/ai/source/CommonTimeSelector.md +5 -4
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +10 -8
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +45 -45
- package/dist/components/BbBreadcrumbs/types.d.ts +25 -17
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +88 -70
- package/dist/components/BbButton/toggleRoving.d.ts +6 -0
- package/dist/components/BbButton/toggleRoving.js +45 -0
- package/dist/components/BbButton/types.d.ts +12 -4
- package/dist/components/BbButton/types.js +5 -1
- package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +178 -178
- package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +28 -28
- package/dist/components/BbCalendar/useCalendarGrid.js +141 -139
- package/dist/components/BbCalendar/useDayjsLocale.d.ts +38 -15
- package/dist/components/BbCalendar/useDayjsLocale.js +31 -30
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +48 -48
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +81 -80
- package/dist/components/BbCheckboxGroup/types.d.ts +6 -2
- package/dist/components/BbCollapsible/types.d.ts +2 -1
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
- package/dist/components/BbColorPalette/types.d.ts +2 -1
- package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +2 -5
- package/dist/components/BbConfirm/types.d.ts +15 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +363 -349
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +91 -86
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +298 -289
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +322 -356
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +17 -15
- package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
- package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
- package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
- package/dist/components/BbDropdown/normalizeGroups.js +60 -46
- package/dist/components/BbDropdown/types.d.ts +120 -88
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +11 -2
- package/dist/components/BbDropdownButton/types.d.ts +2 -2
- package/dist/components/BbForm/BbForm.vue.d.ts +9 -0
- package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +114 -105
- package/dist/components/BbForm/BbFormCustomField.js +1 -1
- package/dist/components/BbForm/bindFormField.js +2 -1
- package/dist/components/BbForm/formFields.d.ts +5 -0
- package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +145 -142
- package/dist/components/BbHoverCard/BbHoverCardPortal.vue.d.ts +2 -2
- package/dist/components/BbHoverCard/types.d.ts +14 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +0 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +452 -125
- package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
- package/dist/components/BbNumberInput/numberDisplay.js +499 -0
- package/dist/components/BbNumberInput/types.d.ts +54 -1
- package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
- package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
- package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
- package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
- package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -0
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +207 -162
- package/dist/components/BbPopover/BbPopoverPortal.vue.d.ts +2 -2
- package/dist/components/BbPopover/types.d.ts +26 -1
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +15 -7
- package/dist/components/BbProgress/types.d.ts +23 -7
- package/dist/components/BbProgress/types.js +1 -1
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +102 -101
- package/dist/components/BbRadioGroup/types.d.ts +6 -2
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +63 -63
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +156 -154
- package/dist/components/BbSelect/types.d.ts +6 -2
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/BbSelectPopover/types.d.ts +6 -2
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +153 -153
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +62 -62
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +131 -130
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +711 -676
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbTabs/types.d.ts +28 -22
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +76 -76
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +58 -58
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +82 -82
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +246 -236
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +99 -86
- package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
- package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
- package/dist/components/BbTooltip/types.d.ts +10 -3
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +29 -21
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +10 -7
- package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +37 -36
- package/dist/components/CommonPopover/types.d.ts +2 -1
- package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/composables/formSubmitLock.d.ts +6 -0
- package/dist/composables/formSubmitLock.js +4 -0
- package/dist/composables/useBaseOptions.d.ts +7 -1
- package/dist/composables/useBaseOptions.js +32 -32
- package/dist/composables/useBbDropdownContext.d.ts +8 -8
- package/dist/composables/useBbFormField.d.ts +9 -0
- package/dist/composables/useBbFormField.js +5 -3
- package/dist/composables/useBbTabsContext.d.ts +10 -10
- package/dist/composables/useBbTabsContext.js +18 -18
- package/dist/composables/useFormBinding.d.ts +11 -0
- package/dist/composables/useFormBinding.js +15 -13
- package/dist/composables/useItemText.d.ts +5 -1
- package/dist/composables/useItemText.js +8 -3
- package/dist/composables/useItemValue.d.ts +5 -1
- package/dist/composables/useItemValue.js +8 -3
- package/dist/composables/useLocale.js +10 -9
- package/dist/deprecation/ai-deprecations.json.d.ts +130 -0
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/deprecation/removedProps.js +1 -1
- package/dist/directives/bbDropdown.js +1 -1
- package/dist/directives/directivePortal.d.ts +13 -7
- package/dist/directives/directivePortal.js +1 -4
- package/dist/i18n/index.d.ts +7 -12
- package/dist/i18n/locales/cs.json +11 -14
- package/dist/i18n/locales/da.json +13 -16
- package/dist/i18n/locales/de-CH.json +137 -0
- package/dist/i18n/locales/de.json +14 -17
- package/dist/i18n/locales/el.json +10 -13
- package/dist/i18n/locales/en-GB.json +137 -0
- package/dist/i18n/locales/en.json +8 -11
- package/dist/i18n/locales/es-MX.json +137 -0
- package/dist/i18n/locales/es.json +16 -19
- package/dist/i18n/locales/fi.json +8 -11
- package/dist/i18n/locales/fr.json +23 -26
- package/dist/i18n/locales/hu.json +8 -11
- package/dist/i18n/locales/it.json +12 -15
- package/dist/i18n/locales/ja.json +13 -16
- package/dist/i18n/locales/ko.json +10 -13
- package/dist/i18n/locales/nb.json +13 -16
- package/dist/i18n/locales/nl.json +21 -24
- package/dist/i18n/locales/pl.json +10 -13
- package/dist/i18n/locales/{pt.json → pt-BR.json} +19 -22
- package/dist/i18n/locales/pt-PT.json +137 -0
- package/dist/i18n/locales/ro.json +22 -25
- package/dist/i18n/locales/ru.json +11 -14
- package/dist/i18n/locales/sv.json +16 -19
- package/dist/i18n/locales/tr.json +14 -17
- package/dist/i18n/locales/uk.json +11 -14
- package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +10 -13
- package/dist/i18n/locales/zh-HK.json +137 -0
- package/dist/i18n/locales/zh-TW.json +137 -0
- package/dist/i18n/regionHints.d.ts +16 -0
- package/dist/i18n/regionHints.js +49 -0
- package/dist/i18n/regions.d.ts +286 -0
- package/dist/i18n/regions.js +265 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/llms-full.txt +1914 -1714
- package/dist/llms-medium.txt +76 -46
- package/dist/llms.txt +7 -7
- package/dist/locale-blueprint.json +16 -13
- package/dist/styles.css +2 -2
- package/dist/types/passthrough.d.ts +1 -1
- package/dist/types/ptComponentMap.d.ts +2 -2
- package/dist/utilities/functions/slotKey.d.ts +2 -2
- package/dist/utils/versionCheck.js +1 -1
- package/dist/vite-plugin.d.ts +22 -19
- package/dist/vite.js +309 -297
- package/llms.txt +7 -7
- package/package.json +5 -3
- package/scripts/lib/agent-manifest.mjs +2 -1
- package/scripts/lib/eslint-disable.mjs +17 -4
- package/scripts/lib/eslint-plugin.d.ts +9 -1
- package/scripts/lib/eslint-plugin.mjs +256 -6
- package/scripts/lib/helper-canon.mjs +176 -0
- package/scripts/lib/helpers-add.mjs +1303 -0
- package/scripts/lib/local-components.mjs +33 -4
- package/scripts/lib/locale-check.mjs +165 -0
- package/scripts/lib/portal-names.mjs +458 -0
- package/scripts/lib/redundant-item-accessor.mjs +398 -0
- package/scripts/lib/renamed-item-field.mjs +343 -0
- package/scripts/lib/slot-key.mjs +2 -2
- package/scripts/lib/slot-renames.mjs +1 -1
- package/scripts/lib/unimported-components.mjs +5 -2
- package/scripts/lib/validate-bb-markup.mjs +123 -56
- package/dist/i18n/index.js +0 -27
package/dist/vite.js
CHANGED
|
@@ -1,136 +1,137 @@
|
|
|
1
1
|
import { validatePtGlobalMap as e, validatePtScopes as t } from "./utils/passthrough.js";
|
|
2
2
|
import { BB_LAYERS as n, TAILWIND_V4_LAYERS as r, validateCssLayers as i } from "./utils/cssLayers.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
3
|
+
import { BUILTIN_LOCALE_KEYS as a, DICTIONARY_HOME as o, LOCALE_TABLE as s, aliasesOf as c, localeKeyOf as l, nearestLocaleKey as u } from "./i18n/regions.js";
|
|
4
|
+
import { DEFAULT_MAX_FILE_SIZE as d, IconScanner as f, extractIconCandidates as p, globToRegExp as m, hasGlobMagic as h, iconLiteralRegExp as g, iconScanCacheFile as ee } from "./icon-scan.js";
|
|
5
|
+
import { regionHints as _ } from "./i18n/regionHints.js";
|
|
6
|
+
import { DEFAULT_VARIANT_REGISTRIES as v, emptyStringControls as te, isInTypeScriptProgram as ne, projectVariantRegistries as re, resolveProjectDtsPath as ie, writeProjectDts as ae } from "./project-dts.js";
|
|
7
|
+
import { existsSync as y, mkdirSync as b, readFileSync as x, readdirSync as S, writeFileSync as C } from "node:fs";
|
|
8
|
+
import { basename as oe, dirname as w, isAbsolute as T, join as E, relative as D, resolve as O } from "node:path";
|
|
9
|
+
import { fileURLToPath as k } from "node:url";
|
|
10
|
+
import { createRequire as A } from "node:module";
|
|
11
|
+
import { convertParsedSVG as se, getIconData as j, iconToHTML as M, iconToSVG as ce, parseSVGContent as le, stringToIcon as ue } from "@iconify/utils";
|
|
11
12
|
//#region src/vite-plugin.ts
|
|
12
|
-
function
|
|
13
|
-
let t =
|
|
13
|
+
function de(e) {
|
|
14
|
+
let t = ce(e, {
|
|
14
15
|
width: "unset",
|
|
15
16
|
height: "unset"
|
|
16
17
|
});
|
|
17
|
-
return
|
|
18
|
+
return M(t.body, t.attributes);
|
|
18
19
|
}
|
|
19
|
-
function
|
|
20
|
+
function N(e, t) {
|
|
20
21
|
try {
|
|
21
|
-
let n = E(
|
|
22
|
-
return JSON.parse(
|
|
22
|
+
let n = A(E(e, "package.json"));
|
|
23
|
+
return JSON.parse(x(n.resolve(`${t}/icons.json`), "utf-8"));
|
|
23
24
|
} catch {
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
+
function fe(e, t) {
|
|
28
29
|
return e !== "heroicons" || !/-(?:20|16)-/.test(t);
|
|
29
30
|
}
|
|
30
|
-
function
|
|
31
|
-
let t =
|
|
31
|
+
function P(e) {
|
|
32
|
+
let t = O(e);
|
|
32
33
|
for (;;) {
|
|
33
|
-
let e =
|
|
34
|
-
if (
|
|
35
|
-
let n =
|
|
34
|
+
let e = E(t, "node_modules", "@iconify-json");
|
|
35
|
+
if (y(e)) return e;
|
|
36
|
+
let n = w(t);
|
|
36
37
|
if (n === t) return null;
|
|
37
38
|
t = n;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
function
|
|
41
|
+
function pe(e) {
|
|
41
42
|
try {
|
|
42
|
-
let t =
|
|
43
|
+
let t = P(e);
|
|
43
44
|
if (!t) return [];
|
|
44
|
-
let n =
|
|
45
|
-
return
|
|
46
|
-
let r =
|
|
45
|
+
let n = w(w(t));
|
|
46
|
+
return S(t, { encoding: "utf-8" }).flatMap((t) => {
|
|
47
|
+
let r = N(n, `@iconify-json/${t}`) ?? N(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 me(e) {
|
|
54
55
|
try {
|
|
55
|
-
let t = E(
|
|
56
|
+
let t = A(E(e, "package.json")), n = JSON.parse(x(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
|
-
function
|
|
63
|
-
return [...Object.keys(e.icons), ...Object.keys(e.aliases ?? {})].filter((n) => (!t || t(n)) &&
|
|
62
|
+
var he = "(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}", F = Function(`return ${he};`)();
|
|
63
|
+
function ge(e, t) {
|
|
64
|
+
return [...Object.keys(e.icons), ...Object.keys(e.aliases ?? {})].filter((n) => (!t || t(n)) && j(e, n) !== null);
|
|
64
65
|
}
|
|
65
|
-
function
|
|
66
|
-
let i = /* @__PURE__ */ new Set(), a = [], o = new Set(t.keys()), s = /* @__PURE__ */ new Map(),
|
|
66
|
+
function _e(e, t, n, r) {
|
|
67
|
+
let i = /* @__PURE__ */ new Set(), a = [], o = new Set(t.keys()), s = /* @__PURE__ */ new Map(), c = (e) => {
|
|
67
68
|
let r = s.get(e);
|
|
68
69
|
if (!r) {
|
|
69
70
|
let i = t.get(e);
|
|
70
|
-
r = i ?
|
|
71
|
+
r = i ? ge(i, n.get(e)) : [], s.set(e, r);
|
|
71
72
|
}
|
|
72
73
|
return r;
|
|
73
74
|
};
|
|
74
75
|
for (let s of e) {
|
|
75
|
-
let e = s.trim(),
|
|
76
|
-
if (
|
|
76
|
+
let e = s.trim(), l = e.indexOf(":"), u = l === -1 ? "" : e.slice(0, l), d = e.slice(l + 1);
|
|
77
|
+
if (l === -1 || !u || !d) {
|
|
77
78
|
a.push(`[bitboss-ui] iconWhitelist entry "${s}" is not a \`prefix:name\` icon name`);
|
|
78
79
|
continue;
|
|
79
80
|
}
|
|
80
|
-
if (
|
|
81
|
+
if (u === "local") {
|
|
81
82
|
a.push(`[bitboss-ui] iconWhitelist entry "${s}" — every \`local:\` icon in iconDir is always bundled; the whitelist is for provider icons only`);
|
|
82
83
|
continue;
|
|
83
84
|
}
|
|
84
|
-
if (!o.has(
|
|
85
|
-
a.push(
|
|
85
|
+
if (!o.has(u)) {
|
|
86
|
+
a.push(F(e, o, c, (e) => o.has(e) ? c(e) : null, new Set(r)) ?? `[bitboss-ui] iconWhitelist entry "${s}" does not resolve`);
|
|
86
87
|
continue;
|
|
87
88
|
}
|
|
88
|
-
if (
|
|
89
|
-
let t =
|
|
89
|
+
if (h(d)) {
|
|
90
|
+
let t = m(d), n = c(u).filter((e) => t.test(e));
|
|
90
91
|
if (n.length === 0) {
|
|
91
|
-
a.push(`[bitboss-ui] iconWhitelist glob "${e}" matches no icon in the ${
|
|
92
|
+
a.push(`[bitboss-ui] iconWhitelist glob "${e}" matches no icon in the ${u} icon set`);
|
|
92
93
|
continue;
|
|
93
94
|
}
|
|
94
|
-
for (let e of n) i.add(`${
|
|
95
|
+
for (let e of n) i.add(`${u}:${e}`);
|
|
95
96
|
continue;
|
|
96
97
|
}
|
|
97
|
-
let
|
|
98
|
-
if (
|
|
98
|
+
let f = t.get(u), p = n.get(u);
|
|
99
|
+
if (j(f, d) && (!p || p(d))) {
|
|
99
100
|
i.add(e);
|
|
100
101
|
continue;
|
|
101
102
|
}
|
|
102
|
-
a.push(
|
|
103
|
+
a.push(F(e, o, c, c, new Set(r)) ?? `[bitboss-ui] iconWhitelist entry "${s}" does not resolve`);
|
|
103
104
|
}
|
|
104
105
|
return {
|
|
105
106
|
icons: [...i],
|
|
106
107
|
errors: a
|
|
107
108
|
};
|
|
108
109
|
}
|
|
109
|
-
function
|
|
110
|
-
let n =
|
|
110
|
+
function ve(e, t) {
|
|
111
|
+
let n = E(e, "node_modules", ".cache", "bitboss-ui", "version"), r = null;
|
|
111
112
|
try {
|
|
112
|
-
r =
|
|
113
|
+
r = x(n, "utf-8").trim() || null;
|
|
113
114
|
} catch {}
|
|
114
115
|
if (r === t) return null;
|
|
115
116
|
try {
|
|
116
|
-
|
|
117
|
+
b(w(n), { recursive: !0 }), C(n, t + "\n", "utf-8");
|
|
117
118
|
} catch {}
|
|
118
119
|
return !r || t === "0" ? null : `[bitboss-ui] upgraded ${r} → ${t}. What breaks between them: npx bitboss-ui changelog --since ${r}`;
|
|
119
120
|
}
|
|
120
|
-
function
|
|
121
|
-
let t =
|
|
122
|
-
return t && !t.startsWith("..") && !
|
|
121
|
+
function ye(e) {
|
|
122
|
+
let t = D(process.cwd(), e);
|
|
123
|
+
return t && !t.startsWith("..") && !T(t) ? t : e;
|
|
123
124
|
}
|
|
124
|
-
var
|
|
125
|
-
function
|
|
125
|
+
var I = /* @__PURE__ */ new Set();
|
|
126
|
+
function be(e) {
|
|
126
127
|
try {
|
|
127
|
-
return JSON.parse(
|
|
128
|
+
return JSON.parse(x(E(e, "..", "package.json"), "utf-8")).version ?? "0";
|
|
128
129
|
} catch {
|
|
129
130
|
return "0";
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
|
-
var
|
|
133
|
-
function
|
|
133
|
+
var L = w(k(import.meta.url));
|
|
134
|
+
function R(e, t) {
|
|
134
135
|
let n = Array.from({ length: t.length + 1 }, (e, t) => t);
|
|
135
136
|
for (let r = 1; r <= e.length; r++) {
|
|
136
137
|
let i = n[0];
|
|
@@ -142,22 +143,22 @@ function ye(e, t) {
|
|
|
142
143
|
}
|
|
143
144
|
return n[t.length];
|
|
144
145
|
}
|
|
145
|
-
var
|
|
146
|
+
var xe = (e, t) => {
|
|
146
147
|
let n = null, r = Infinity;
|
|
147
148
|
for (let i of t) {
|
|
148
|
-
let t =
|
|
149
|
+
let t = R(e.toLowerCase(), i.toLowerCase());
|
|
149
150
|
t < r && (r = t, n = i);
|
|
150
151
|
}
|
|
151
152
|
return n && r <= Math.max(2, Math.floor(e.length / 3)) ? n : null;
|
|
152
|
-
},
|
|
153
|
-
for (let e of [
|
|
153
|
+
}, Se = () => {
|
|
154
|
+
for (let e of [E(L, "ai", "components.json"), E(L, "..", "dist", "ai", "components.json")]) if (y(e)) return e;
|
|
154
155
|
return null;
|
|
155
156
|
};
|
|
156
|
-
function
|
|
157
|
+
function z(e, t = Se(), n = "pt") {
|
|
157
158
|
if (!e || !t) return null;
|
|
158
159
|
let r;
|
|
159
160
|
try {
|
|
160
|
-
r = JSON.parse(
|
|
161
|
+
r = JSON.parse(x(t, "utf-8")).components;
|
|
161
162
|
} catch {
|
|
162
163
|
return null;
|
|
163
164
|
}
|
|
@@ -166,7 +167,7 @@ function be(e, t = F(), n = "pt") {
|
|
|
166
167
|
for (let [t, r] of Object.entries(e)) {
|
|
167
168
|
let e = i.get(t);
|
|
168
169
|
if (!e) {
|
|
169
|
-
let e =
|
|
170
|
+
let e = xe(t, [...i.keys()]);
|
|
170
171
|
return `[bitboss-ui] ${n}.${t}: no component is called "${t}"${e ? ` — did you mean "${e}"?` : ""}. A pt map is keyed by component name (ai/guides/passthrough.md).`;
|
|
171
172
|
}
|
|
172
173
|
let a = e.props.map((e) => e.name).filter((e) => e.startsWith("pt:"));
|
|
@@ -180,35 +181,45 @@ function be(e, t = F(), n = "pt") {
|
|
|
180
181
|
}
|
|
181
182
|
return null;
|
|
182
183
|
}
|
|
183
|
-
var
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
var B = E(L, "i18n", "locales"), Ce = (e) => {
|
|
185
|
+
let t = u(e);
|
|
186
|
+
return t ? ` — did you mean '${t}'?` : "";
|
|
186
187
|
};
|
|
187
|
-
function
|
|
188
|
-
let t =
|
|
189
|
-
for (let
|
|
188
|
+
function we(e) {
|
|
189
|
+
let t = e.customLocaleKeys ?? [], n = l(e.locale) ?? "en", r = [], i = /* @__PURE__ */ new Set([n, "en"]);
|
|
190
|
+
for (let n of e.enabledLocales ?? []) {
|
|
191
|
+
let e = l(n);
|
|
192
|
+
e ? i.add(e) : t.includes(n) || r.push(`[bitboss-ui] \`enabledLocales\` entry '${n}' is not a built-in locale${Ce(n)} — ignored.`);
|
|
193
|
+
}
|
|
190
194
|
return {
|
|
191
|
-
enabled: [...
|
|
192
|
-
defaultLocale:
|
|
193
|
-
warnings:
|
|
195
|
+
enabled: [...i].sort(),
|
|
196
|
+
defaultLocale: n,
|
|
197
|
+
warnings: r
|
|
194
198
|
};
|
|
195
199
|
}
|
|
196
|
-
function
|
|
197
|
-
let t =
|
|
200
|
+
function Te(e) {
|
|
201
|
+
let t = /* @__PURE__ */ new Map();
|
|
202
|
+
for (let n of e) {
|
|
203
|
+
let e = s[n].dictionary;
|
|
204
|
+
t.has(e) || t.set(e, JSON.parse(x(E(B, `${e}.json`), "utf-8")));
|
|
205
|
+
}
|
|
206
|
+
let n = [...t].map(([e, t]) => `\t${JSON.stringify(e)}: ${JSON.stringify(t)},`), r = [];
|
|
198
207
|
for (let n of e) {
|
|
199
|
-
let
|
|
200
|
-
|
|
208
|
+
let { tag: e, dictionary: i } = s[n];
|
|
209
|
+
if (o[i] === e) continue;
|
|
210
|
+
let a = _(t.get(i).datePickerInput, e);
|
|
211
|
+
a && r.push(`\t${JSON.stringify(n)}: ${JSON.stringify({ datePickerInput: a })},`);
|
|
201
212
|
}
|
|
202
|
-
return `export const locales = {\n${
|
|
213
|
+
return `export const locales = {\n${n.join("\n")}\n};\nexport const regionFormats = {\n${r.join("\n")}\n};\n`;
|
|
203
214
|
}
|
|
204
|
-
function
|
|
205
|
-
let t =
|
|
215
|
+
function Ee(e) {
|
|
216
|
+
let t = A(import.meta.url), n = [], r = [];
|
|
206
217
|
for (let i of e) {
|
|
207
|
-
let e = i
|
|
208
|
-
if (
|
|
209
|
-
t.resolve(`dayjs/locale/${
|
|
210
|
-
key: i,
|
|
211
|
-
pack:
|
|
218
|
+
let e = l(i), a = e ? s[e].dayjs : i;
|
|
219
|
+
if (a !== null) try {
|
|
220
|
+
t.resolve(`dayjs/locale/${a}.js`), n.push({
|
|
221
|
+
key: e ?? i,
|
|
222
|
+
pack: a
|
|
212
223
|
});
|
|
213
224
|
} catch {
|
|
214
225
|
r.push(i);
|
|
@@ -219,67 +230,68 @@ function Ce(e) {
|
|
|
219
230
|
missing: r
|
|
220
231
|
};
|
|
221
232
|
}
|
|
222
|
-
function
|
|
223
|
-
|
|
233
|
+
function De(e) {
|
|
234
|
+
let t = [...new Set(e.map(({ pack: e }) => e))];
|
|
235
|
+
return `${t.map((e, t) => `import l${t} from ${JSON.stringify(`dayjs/locale/${e}`)};`).join("\n")}\nexport const dayjsLocales = {\n${e.map(({ key: e, pack: n }) => `\t${JSON.stringify(e)}: l${t.indexOf(n)},`).join("\n")}\n};\n`;
|
|
224
236
|
}
|
|
225
|
-
function
|
|
237
|
+
function Oe(e, t, n = L) {
|
|
226
238
|
if (e === !1) return "export default null;\n";
|
|
227
239
|
let r;
|
|
228
240
|
if (e === void 0) {
|
|
229
|
-
let e =
|
|
230
|
-
r =
|
|
231
|
-
} else r = e.startsWith(".") ||
|
|
241
|
+
let e = E(n, "passthrough-deduper.js");
|
|
242
|
+
r = y(e) ? e : E(n, "utils/passthroughDeduper.ts");
|
|
243
|
+
} else r = e.startsWith(".") || T(e) ? O(t, e) : e;
|
|
232
244
|
return `export { default } from ${JSON.stringify(r)};\n`;
|
|
233
245
|
}
|
|
234
|
-
function
|
|
246
|
+
function ke(e) {
|
|
235
247
|
return e === void 0 || e === !1 || typeof e == "string" && e.trim() ? null : "[bitboss-ui] passthroughDeduper must be false or a module path whose default export is (className: string) => string, e.g. passthroughDeduper: './src/utils/cn.ts'. Remove the key to use the bundled tailwind-merge.";
|
|
236
248
|
}
|
|
237
|
-
function
|
|
249
|
+
function Ae(e) {
|
|
238
250
|
return e === void 0 || typeof e == "number" && Number.isInteger(e) && e >= 0 ? null : `[bitboss-ui] autoDisableWritingThreshold must be a non-negative integer (received ${JSON.stringify(e)}); 0 turns the 'auto' rule off. Remove the key for the default, 6.`;
|
|
239
251
|
}
|
|
240
|
-
var
|
|
252
|
+
var V = "@inertiajs/vue3", H = [
|
|
241
253
|
"dependencies",
|
|
242
254
|
"devDependencies",
|
|
243
255
|
"peerDependencies",
|
|
244
256
|
"optionalDependencies"
|
|
245
257
|
];
|
|
246
|
-
function
|
|
247
|
-
let t =
|
|
258
|
+
function je(e) {
|
|
259
|
+
let t = O(e);
|
|
248
260
|
for (;;) {
|
|
249
|
-
let e =
|
|
250
|
-
if (
|
|
251
|
-
return JSON.parse(
|
|
261
|
+
let e = E(t, "package.json");
|
|
262
|
+
if (y(e)) try {
|
|
263
|
+
return JSON.parse(x(e, "utf-8"));
|
|
252
264
|
} catch {
|
|
253
265
|
return null;
|
|
254
266
|
}
|
|
255
|
-
let n =
|
|
267
|
+
let n = w(t);
|
|
256
268
|
if (n === t) return null;
|
|
257
269
|
t = n;
|
|
258
270
|
}
|
|
259
271
|
}
|
|
260
|
-
function
|
|
261
|
-
return
|
|
272
|
+
function Me(e, t) {
|
|
273
|
+
return H.some((n) => {
|
|
262
274
|
let r = e[n];
|
|
263
275
|
return typeof r == "object" && !!r && t in r;
|
|
264
276
|
});
|
|
265
277
|
}
|
|
266
|
-
function
|
|
267
|
-
let n = t.split("/"), r =
|
|
278
|
+
function Ne(e, t) {
|
|
279
|
+
let n = t.split("/"), r = O(e);
|
|
268
280
|
for (;;) {
|
|
269
|
-
if (
|
|
270
|
-
let e =
|
|
281
|
+
if (y(E(r, "node_modules", ...n))) return !0;
|
|
282
|
+
let e = w(r);
|
|
271
283
|
if (e === r) return !1;
|
|
272
284
|
r = e;
|
|
273
285
|
}
|
|
274
286
|
}
|
|
275
|
-
function
|
|
276
|
-
let t =
|
|
277
|
-
return !t || !
|
|
287
|
+
function Pe(e) {
|
|
288
|
+
let t = je(e);
|
|
289
|
+
return !t || !Me(t, V) ? !1 : Ne(e, V);
|
|
278
290
|
}
|
|
279
|
-
function
|
|
291
|
+
function Fe(e) {
|
|
280
292
|
return e ? "export { Link as InertiaLink } from '@inertiajs/vue3';\n" : "export const InertiaLink = null;\n";
|
|
281
293
|
}
|
|
282
|
-
var
|
|
294
|
+
var Ie = [
|
|
283
295
|
"@floating-ui/vue",
|
|
284
296
|
"@tanstack/vue-virtual",
|
|
285
297
|
"@vueuse/core",
|
|
@@ -295,50 +307,50 @@ var je = [
|
|
|
295
307
|
"mime",
|
|
296
308
|
"object-code",
|
|
297
309
|
"tailwind-merge"
|
|
298
|
-
],
|
|
299
|
-
function
|
|
300
|
-
return typeof e == "string" ? e ===
|
|
310
|
+
], Le = ["bitboss-ui"], Re = V, U = "bitboss-ui";
|
|
311
|
+
function ze(e) {
|
|
312
|
+
return typeof e == "string" ? e === U : (e.lastIndex = 0, e.test(U));
|
|
301
313
|
}
|
|
302
|
-
function
|
|
303
|
-
return e === !0 ? [] : e == null || e === !1 ? [
|
|
314
|
+
function Be(e) {
|
|
315
|
+
return e === !0 ? [] : e == null || e === !1 ? [U] : (Array.isArray(e) ? e : [e]).some(ze) ? [] : [U];
|
|
304
316
|
}
|
|
305
|
-
var
|
|
306
|
-
function
|
|
317
|
+
var Ve = "virtual:bitboss-ui/icons", He = "\0virtual:bitboss-ui/icons", Ue = "virtual:bitboss-ui/config", We = "\0virtual:bitboss-ui/config", Ge = "virtual:bitboss-ui/dayjs-locales", Ke = "\0virtual:bitboss-ui/dayjs-locales", qe = "virtual:bitboss-ui/locales", Je = "\0virtual:bitboss-ui/locales", Ye = "virtual:bitboss-ui/styles", Xe = "\0virtual:bitboss-ui/styles", Ze = "virtual:bitboss-ui/vee-validate-missing", Qe = "\0virtual:bitboss-ui/vee-validate-missing", $e = "bitboss-ui:vee-validate-missing", W = "[bitboss-ui] BbForm needs vee-validate, which is not installed: run `npm i vee-validate` (an optional peer, >=4.10.0 <5). An app without forms needs nothing.", et = ["useForm", "useField"];
|
|
318
|
+
function tt() {
|
|
307
319
|
return [
|
|
308
|
-
`const fail = () => { throw new Error(${JSON.stringify(
|
|
309
|
-
...
|
|
320
|
+
`const fail = () => { throw new Error(${JSON.stringify(W)} + ' (${$e})'); };`,
|
|
321
|
+
...et.map((e) => `export const ${e} = fail;`),
|
|
310
322
|
""
|
|
311
323
|
].join("\n");
|
|
312
324
|
}
|
|
313
|
-
function
|
|
325
|
+
function nt(e) {
|
|
314
326
|
return /import\s*\{[^}]*\bBbForm\b[^}]*\}\s*from\s*['"]bitboss-ui(?:\/validated)?['"]/.test(e) || /<(?:BbForm|bb-form)[\s>/]/.test(e) || /resolveComponent\(\s*['"](?:BbForm|bb-form)['"]/.test(e);
|
|
315
327
|
}
|
|
316
|
-
var
|
|
317
|
-
function
|
|
318
|
-
let e =
|
|
319
|
-
return
|
|
320
|
-
let t =
|
|
321
|
-
return
|
|
328
|
+
var rt = "virtual:bitboss-ui/link", it = "\0virtual:bitboss-ui/link", at = "virtual:bitboss-ui/passthrough-deduper", ot = "\0virtual:bitboss-ui/passthrough-deduper";
|
|
329
|
+
function st() {
|
|
330
|
+
let e = E(L, "styles.css");
|
|
331
|
+
return y(e) ? x(e, "utf-8") : ["main.css", "variables.css"].map((e) => {
|
|
332
|
+
let t = E(L, "assets/css", e);
|
|
333
|
+
return y(t) ? x(t, "utf-8") : "";
|
|
322
334
|
}).join("\n");
|
|
323
335
|
}
|
|
324
|
-
var
|
|
325
|
-
function
|
|
336
|
+
var ct = "local", lt = "./assets/icons";
|
|
337
|
+
function ut(e) {
|
|
326
338
|
let t = {};
|
|
327
339
|
try {
|
|
328
|
-
let n =
|
|
340
|
+
let n = S(e, {
|
|
329
341
|
recursive: !0,
|
|
330
342
|
encoding: "utf-8"
|
|
331
343
|
}).filter((e) => e.endsWith(".svg"));
|
|
332
344
|
for (let r of n) {
|
|
333
|
-
let n =
|
|
345
|
+
let n = oe(r, ".svg");
|
|
334
346
|
try {
|
|
335
|
-
let i =
|
|
347
|
+
let i = le(x(E(e, r), "utf-8")), a = i && se(i);
|
|
336
348
|
a && (t[n] = a);
|
|
337
349
|
} catch {}
|
|
338
350
|
}
|
|
339
351
|
} catch {}
|
|
340
352
|
return {
|
|
341
|
-
prefix:
|
|
353
|
+
prefix: ct,
|
|
342
354
|
info: {
|
|
343
355
|
name: "Local",
|
|
344
356
|
author: { name: "Icons automatically inferred from the icons installed locally" },
|
|
@@ -347,12 +359,12 @@ function at(e) {
|
|
|
347
359
|
icons: t
|
|
348
360
|
};
|
|
349
361
|
}
|
|
350
|
-
var
|
|
362
|
+
var G = "./.vscode/bitboss-ui.local-icons.json", K = "iconify.customCollectionJsonPaths", q = "tailwindCSS.classAttributes", J = "tailwindCSS.experimental.classRegex", Y = "editor.quickSuggestions", X = "pt(?::[\\w-]+)*", dt = [
|
|
351
363
|
"class",
|
|
352
364
|
"className",
|
|
353
365
|
"ngClass",
|
|
354
366
|
"class:list"
|
|
355
|
-
],
|
|
367
|
+
], ft = "(?:^|[\\s:(])(?:v-bind:)?pt(?::[\\w-]+)*\\s*=\\s*", pt = [
|
|
356
368
|
"\\?\\s*'([^\\s':][^']*)'",
|
|
357
369
|
"'([^\\s':][^']*)'(?!\\s*:)",
|
|
358
370
|
"\\?\\s*\"([^\\s\":][^\"]*)\"",
|
|
@@ -360,28 +372,28 @@ var W = "./.vscode/bitboss-ui.local-icons.json", G = "iconify.customCollectionJs
|
|
|
360
372
|
"\\?\\s*`([^\\s`:][^`]*)`",
|
|
361
373
|
"`([^\\s`:][^`]*)`(?!\\s*:)"
|
|
362
374
|
], Z = [
|
|
363
|
-
`${
|
|
364
|
-
`${
|
|
375
|
+
`${ft}"([\\s\\S]*?)"`,
|
|
376
|
+
`${ft}'([\\s\\S]*?)'`,
|
|
365
377
|
"\\bpt\\s*:\\s*\\{([\\s\\S]*?)\\}"
|
|
366
|
-
].flatMap((e) =>
|
|
367
|
-
[
|
|
368
|
-
[
|
|
369
|
-
[
|
|
370
|
-
[
|
|
378
|
+
].flatMap((e) => pt.map((t) => [e, t])), mt = { strings: "on" }, ht = () => ({
|
|
379
|
+
[K]: [G],
|
|
380
|
+
[q]: [...dt, X],
|
|
381
|
+
[J]: Z,
|
|
382
|
+
[Y]: mt
|
|
371
383
|
});
|
|
372
|
-
function
|
|
373
|
-
let n =
|
|
384
|
+
function gt(e, t) {
|
|
385
|
+
let n = E(t, G);
|
|
374
386
|
try {
|
|
375
|
-
return
|
|
387
|
+
return b(w(n), { recursive: !0 }), C(n, JSON.stringify(ut(e)), "utf-8"), null;
|
|
376
388
|
} catch (e) {
|
|
377
|
-
return `[bitboss-ui] could not write ${
|
|
389
|
+
return `[bitboss-ui] could not write ${G} (${e instanceof Error ? e.message : String(e)}) — the Iconify editor extension will not preview local icons. ${Q}`;
|
|
378
390
|
}
|
|
379
391
|
}
|
|
380
|
-
function
|
|
381
|
-
if (e ===
|
|
392
|
+
function _t(e, t) {
|
|
393
|
+
if (e === lt) return null;
|
|
382
394
|
let n = 0;
|
|
383
395
|
try {
|
|
384
|
-
n =
|
|
396
|
+
n = S(t, {
|
|
385
397
|
recursive: !0,
|
|
386
398
|
encoding: "utf-8"
|
|
387
399
|
}).filter((e) => e.endsWith(".svg")).length;
|
|
@@ -390,7 +402,7 @@ function dt(e, t) {
|
|
|
390
402
|
}
|
|
391
403
|
return n > 0 ? null : `[bitboss-ui] iconDir "${e}" resolves to ${t}, which contains no .svg files — no \`local:\` icon will render. A relative iconDir resolves from the Vite root (under Nuxt, \`app/\`).`;
|
|
392
404
|
}
|
|
393
|
-
function
|
|
405
|
+
function vt(e) {
|
|
394
406
|
let t = "", n = !1, r = !1, i = !1;
|
|
395
407
|
for (let a = 0; a < e.length; a++) {
|
|
396
408
|
let o = e[a], s = e[a + 1];
|
|
@@ -422,8 +434,8 @@ function ft(e) {
|
|
|
422
434
|
}
|
|
423
435
|
return t;
|
|
424
436
|
}
|
|
425
|
-
var
|
|
426
|
-
function
|
|
437
|
+
var yt = (e) => e === " " || e === " " || e === "\n" || e === "\r";
|
|
438
|
+
function bt(e, t) {
|
|
427
439
|
let n = !1, r = !1;
|
|
428
440
|
for (let i = t; i < e.length; i++) {
|
|
429
441
|
let t = e[i], a = e[i + 1];
|
|
@@ -443,11 +455,11 @@ function mt(e, t) {
|
|
|
443
455
|
r = !0, i++;
|
|
444
456
|
continue;
|
|
445
457
|
}
|
|
446
|
-
if (!
|
|
458
|
+
if (!yt(t)) return i;
|
|
447
459
|
}
|
|
448
460
|
return -1;
|
|
449
461
|
}
|
|
450
|
-
function
|
|
462
|
+
function xt(e, t) {
|
|
451
463
|
let n = !1, r = !1, i = !1, a = -1, o = 0, s = null;
|
|
452
464
|
for (let c = 0; c < e.length; c++) {
|
|
453
465
|
let l = e[c], u = e[c + 1];
|
|
@@ -479,19 +491,19 @@ function ht(e, t) {
|
|
|
479
491
|
i = !0, a = c;
|
|
480
492
|
continue;
|
|
481
493
|
}
|
|
482
|
-
if (!
|
|
494
|
+
if (!yt(l)) {
|
|
483
495
|
if (l === ":" && s !== null) {
|
|
484
496
|
let n = s === t;
|
|
485
497
|
if (s = null, !n) continue;
|
|
486
|
-
let r =
|
|
487
|
-
return r === -1 || e[r] !== "[" ? null :
|
|
498
|
+
let r = bt(e, c + 1);
|
|
499
|
+
return r === -1 || e[r] !== "[" ? null : St(e, r);
|
|
488
500
|
}
|
|
489
501
|
s = null, l === "{" || l === "[" ? o++ : (l === "}" || l === "]") && o--;
|
|
490
502
|
}
|
|
491
503
|
}
|
|
492
504
|
return null;
|
|
493
505
|
}
|
|
494
|
-
function
|
|
506
|
+
function St(e, t) {
|
|
495
507
|
let n = !1, r = !1, i = !1, a = 0, o = -1;
|
|
496
508
|
for (let s = t; s < e.length; s++) {
|
|
497
509
|
let c = e[s], l = e[s + 1];
|
|
@@ -523,7 +535,7 @@ function gt(e, t) {
|
|
|
523
535
|
i = !0, o = s + 1;
|
|
524
536
|
continue;
|
|
525
537
|
}
|
|
526
|
-
if (!
|
|
538
|
+
if (!yt(c)) {
|
|
527
539
|
if (c === "[" || c === "{") {
|
|
528
540
|
a++, s > t && (o = s + 1);
|
|
529
541
|
continue;
|
|
@@ -542,10 +554,10 @@ function gt(e, t) {
|
|
|
542
554
|
}
|
|
543
555
|
return null;
|
|
544
556
|
}
|
|
545
|
-
var Q = "Set `vscodeSettings: false` in the plugin options to disable this write.", $ = `add "${
|
|
546
|
-
function
|
|
557
|
+
var Q = "Set `vscodeSettings: false` in the plugin options to disable this write.", $ = `add "${K}": ["${G}"], "${q}" (include ${JSON.stringify(X)}), and "${J}" for passthrough IntelliSense`, Ct = (e) => Array.isArray(e) && e.some((e) => typeof e == "string" && (e === "pt(?::[\\w-]+)*" || e === "pt" || e.startsWith("pt:") || e.startsWith("pt("))), wt = (e) => Array.isArray(e) ? Z.filter((t) => !e.some((e) => JSON.stringify(e) === JSON.stringify(t))) : [...Z], Tt = (e) => JSON.stringify(e, null, " ").replace(/\n/g, "\n ");
|
|
558
|
+
function Et(e, t, n) {
|
|
547
559
|
if (n.length === 0) return e;
|
|
548
|
-
let r =
|
|
560
|
+
let r = xt(e, t);
|
|
549
561
|
if (!r) return null;
|
|
550
562
|
if (r.lastSignificantEnd === -1) return e.slice(0, r.close) + n.join(", ") + e.slice(r.close);
|
|
551
563
|
if (e.slice(r.open + 1, r.close).includes("\n")) {
|
|
@@ -554,79 +566,79 @@ function bt(e, t, n) {
|
|
|
554
566
|
}
|
|
555
567
|
return e.slice(0, r.lastSignificantEnd) + `, ${n.join(", ")}` + e.slice(r.lastSignificantEnd);
|
|
556
568
|
}
|
|
557
|
-
function
|
|
569
|
+
function Dt(e, t, n) {
|
|
558
570
|
if (t.length === 0) return e;
|
|
559
|
-
let r =
|
|
571
|
+
let r = bt(e, 0);
|
|
560
572
|
if (r === -1 || e[r] !== "{") return null;
|
|
561
573
|
let i = t.map((e, r) => {
|
|
562
574
|
let i = r === t.length - 1, a = n || !i ? "," : "", o = n || !i ? "" : "\n";
|
|
563
|
-
return `\n\t${JSON.stringify(e.key)}: ${
|
|
575
|
+
return `\n\t${JSON.stringify(e.key)}: ${Tt(e.value)}${a}${o}`;
|
|
564
576
|
}).join("");
|
|
565
577
|
return e.slice(0, r + 1) + i + e.slice(r + 1);
|
|
566
578
|
}
|
|
567
|
-
function
|
|
568
|
-
let n =
|
|
579
|
+
function Ot(e, t) {
|
|
580
|
+
let n = E(e, ".vscode"), r = E(n, "settings.json"), i = "";
|
|
569
581
|
try {
|
|
570
|
-
i =
|
|
582
|
+
i = x(r, "utf-8");
|
|
571
583
|
} catch {}
|
|
572
584
|
let a = [], o = (e) => {
|
|
573
585
|
a.push(e);
|
|
574
586
|
}, s = (e) => {
|
|
575
587
|
try {
|
|
576
|
-
return
|
|
588
|
+
return b(n, { recursive: !0 }), C(r, e, "utf-8"), !0;
|
|
577
589
|
} catch (e) {
|
|
578
590
|
return t.warn(`[bitboss-ui] could not write .vscode/settings.json (${e instanceof Error ? e.message : String(e)}) — ${$}. ${Q}`), !1;
|
|
579
591
|
}
|
|
580
592
|
};
|
|
581
593
|
if (!i.trim()) {
|
|
582
|
-
if (!s(JSON.stringify(
|
|
583
|
-
t.info(`[bitboss-ui] .vscode/settings.json: wrote "${
|
|
594
|
+
if (!s(JSON.stringify(ht(), null, " ") + "\n")) return;
|
|
595
|
+
t.info(`[bitboss-ui] .vscode/settings.json: wrote "${G}" on "${K}", Tailwind "${q}" / "${J}" for passthrough, and "${Y}". ${Q}`);
|
|
584
596
|
return;
|
|
585
597
|
}
|
|
586
598
|
let c;
|
|
587
599
|
try {
|
|
588
|
-
c = JSON.parse(
|
|
600
|
+
c = JSON.parse(vt(i));
|
|
589
601
|
} catch {
|
|
590
602
|
t.warn(`[bitboss-ui] Could not parse .vscode/settings.json — ${$}.`);
|
|
591
603
|
return;
|
|
592
604
|
}
|
|
593
605
|
let l = (e) => {
|
|
594
606
|
try {
|
|
595
|
-
return c = JSON.parse(
|
|
607
|
+
return c = JSON.parse(vt(e)), i = e, !0;
|
|
596
608
|
} catch {
|
|
597
609
|
return t.warn(`[bitboss-ui] Could not parse .vscode/settings.json after splice — ${$}.`), !1;
|
|
598
610
|
}
|
|
599
611
|
}, u = (e, n, r) => {
|
|
600
612
|
if (!Array.isArray(c[e])) return t.warn(`[bitboss-ui] .vscode/settings.json has a non-array "${e}" — ${$}.`), !1;
|
|
601
|
-
let a =
|
|
613
|
+
let a = Et(i, e, n);
|
|
602
614
|
return a ? l(a) ? (o(r), !0) : !1 : (t.warn(`[bitboss-ui] Could not locate "${e}" in .vscode/settings.json — ${$}.`), !1);
|
|
603
615
|
};
|
|
604
|
-
if (!i.includes("./.vscode/bitboss-ui.local-icons.json") &&
|
|
605
|
-
let e =
|
|
606
|
-
e.length > 0 && u(
|
|
616
|
+
if (!i.includes("./.vscode/bitboss-ui.local-icons.json") && K in c && u(K, [JSON.stringify(G)], `added "${G}" to "${K}"`), q in c && !Ct(c[q]) && u(q, [JSON.stringify(X)], `added ${JSON.stringify(X)} to "${q}"`), J in c) {
|
|
617
|
+
let e = wt(c[J]);
|
|
618
|
+
e.length > 0 && u(J, e.map((e) => JSON.stringify(e)), `added ${e.length} "${J}" ${e.length === 1 ? "entry" : "entries"} for passthrough`);
|
|
607
619
|
}
|
|
608
620
|
let d = [];
|
|
609
|
-
if (!(
|
|
610
|
-
key: G,
|
|
611
|
-
value: [W]
|
|
612
|
-
}), K in c || d.push({
|
|
621
|
+
if (!(K in c) && !i.includes("./.vscode/bitboss-ui.local-icons.json") && d.push({
|
|
613
622
|
key: K,
|
|
614
|
-
value: [
|
|
623
|
+
value: [G]
|
|
615
624
|
}), q in c || d.push({
|
|
616
625
|
key: q,
|
|
617
|
-
value:
|
|
626
|
+
value: [...dt, X]
|
|
618
627
|
}), J in c || d.push({
|
|
619
628
|
key: J,
|
|
620
|
-
value:
|
|
629
|
+
value: Z
|
|
630
|
+
}), Y in c || d.push({
|
|
631
|
+
key: Y,
|
|
632
|
+
value: mt
|
|
621
633
|
}), d.length > 0) {
|
|
622
|
-
let e = Object.keys(c).length > 0, n =
|
|
634
|
+
let e = Object.keys(c).length > 0, n = Dt(i, d, e);
|
|
623
635
|
if (!n) t.warn(`[bitboss-ui] .vscode/settings.json is not a JSON object — ${$}.`);
|
|
624
636
|
else if (l(n)) for (let e of d) o(`added "${e.key}"`);
|
|
625
637
|
}
|
|
626
638
|
a.length !== 0 && s(i) && t.info(`[bitboss-ui] .vscode/settings.json: ${a.join("; ")}. ${Q}`);
|
|
627
639
|
}
|
|
628
|
-
var
|
|
629
|
-
async function
|
|
640
|
+
var kt = "virtual:bb-icon/", At = "\0virtual:bb-icon/";
|
|
641
|
+
async function jt(e, t) {
|
|
630
642
|
try {
|
|
631
643
|
let { ensureMcpConfigs: n, missingMcpPeers: r } = await import(
|
|
632
644
|
/* @vite-ignore */
|
|
@@ -642,67 +654,67 @@ async function Tt(e, t) {
|
|
|
642
654
|
t.warn(`[bitboss-ui] MCP: could not register dev server (${n})`);
|
|
643
655
|
}
|
|
644
656
|
}
|
|
645
|
-
var
|
|
646
|
-
function
|
|
657
|
+
var Mt = (e) => e, Nt = Symbol.for("bitboss-ui:editorRoot");
|
|
658
|
+
function Pt(n = {}) {
|
|
647
659
|
let r = {
|
|
648
|
-
iconDir:
|
|
660
|
+
iconDir: lt,
|
|
649
661
|
...n
|
|
650
|
-
},
|
|
662
|
+
}, o = n[Nt];
|
|
651
663
|
if ("cssLayers" in r && r.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.");
|
|
652
664
|
let s = i(r.cssLayers, { resetCss: r.resetCss ?? !1 });
|
|
653
665
|
if (s) throw Error(s);
|
|
654
|
-
let
|
|
655
|
-
if (c) throw Error(c);
|
|
656
|
-
let l = be(r.pt);
|
|
657
|
-
if (l) throw Error(l);
|
|
658
|
-
let u = t(r.ptScopes);
|
|
666
|
+
let u = e(r.pt);
|
|
659
667
|
if (u) throw Error(u);
|
|
668
|
+
let d = z(r.pt);
|
|
669
|
+
if (d) throw Error(d);
|
|
670
|
+
let p = t(r.ptScopes);
|
|
671
|
+
if (p) throw Error(p);
|
|
660
672
|
for (let [e, t] of Object.entries(r.ptScopes ?? {})) {
|
|
661
|
-
let n =
|
|
673
|
+
let n = z(t, void 0, `ptScopes.${e}`);
|
|
662
674
|
if (n) throw Error(n);
|
|
663
675
|
}
|
|
664
|
-
let
|
|
665
|
-
if (
|
|
666
|
-
let
|
|
667
|
-
if (
|
|
668
|
-
let _, v
|
|
669
|
-
let r =
|
|
670
|
-
!r ||
|
|
671
|
-
},
|
|
676
|
+
let m = ke(r.passthroughDeduper);
|
|
677
|
+
if (m) throw Error(m);
|
|
678
|
+
let h = Ae(r.autoDisableWritingThreshold);
|
|
679
|
+
if (h) throw Error(h);
|
|
680
|
+
let g, _, v = !0, b = [], x = !1, S, C, w = !1, T = (e, t, n) => {
|
|
681
|
+
let r = gt(e, t);
|
|
682
|
+
!r || w || (w = !0, n(r));
|
|
683
|
+
}, E = {
|
|
672
684
|
info: (e) => console.warn(e),
|
|
673
685
|
warn: (e) => console.warn(e)
|
|
674
|
-
}, k = [],
|
|
686
|
+
}, k = [], A = [], se = [], { enabled: M, defaultLocale: ce, warnings: le } = we({
|
|
675
687
|
locale: r.locale,
|
|
676
688
|
enabledLocales: r.enabledLocales,
|
|
677
689
|
customLocaleKeys: k
|
|
678
|
-
}),
|
|
679
|
-
|
|
680
|
-
for (let e of
|
|
681
|
-
|
|
682
|
-
},
|
|
683
|
-
let n =
|
|
690
|
+
}), N = Ee([...M, ...k]), P = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Set(), xe = () => {
|
|
691
|
+
P.clear(), F.clear(), R = me(g);
|
|
692
|
+
for (let e of pe(g)) P.set(e.prefix, e), F.set(e.prefix, (t) => fe(e.prefix, t));
|
|
693
|
+
B = null, V = null;
|
|
694
|
+
}, Se = (e, t) => {
|
|
695
|
+
let n = P.get(e);
|
|
684
696
|
if (!n) return !1;
|
|
685
|
-
let r =
|
|
686
|
-
return
|
|
687
|
-
},
|
|
697
|
+
let r = F.get(e);
|
|
698
|
+
return j(n, t) !== null && (!r || r(t));
|
|
699
|
+
}, B = null, V = null, H = null, je = () => V || (V = (async () => {
|
|
688
700
|
let e = r.iconsScanner ?? {}, t = JSON.stringify({
|
|
689
|
-
version:
|
|
690
|
-
sets: Array.from(
|
|
701
|
+
version: be(L),
|
|
702
|
+
sets: Array.from(P.entries()).map(([e, t]) => [e, t.lastModified ?? 0]).sort(([e], [t]) => e < t ? -1 : +(e > t)),
|
|
691
703
|
include: e.include ?? [],
|
|
692
704
|
exclude: e.exclude ?? [],
|
|
693
705
|
maxFileSize: e.maxFileSize ?? null
|
|
694
|
-
}), n = new
|
|
695
|
-
root:
|
|
696
|
-
outDir: S ??
|
|
706
|
+
}), n = new f({
|
|
707
|
+
root: g,
|
|
708
|
+
outDir: S ?? O(g, "dist"),
|
|
697
709
|
scanner: e,
|
|
698
|
-
prefixes: Array.from(
|
|
699
|
-
resolves:
|
|
700
|
-
cacheFile:
|
|
710
|
+
prefixes: Array.from(P.keys()),
|
|
711
|
+
resolves: Se,
|
|
712
|
+
cacheFile: ee(g),
|
|
701
713
|
cacheKey: t
|
|
702
714
|
}), i = await n.scan();
|
|
703
|
-
if (i.cold &&
|
|
715
|
+
if (i.cold && E.info(`[bitboss-ui] icon scan: ${i.files} files in ${i.elapsed}ms${i.workers ? ` on ${i.workers} threads` : ""} (${n.icons.size} provider icons referenced)`), B = n, H) for (let e of n.includeDirs) H.add(e);
|
|
704
716
|
return n;
|
|
705
|
-
})(),
|
|
717
|
+
})(), V);
|
|
706
718
|
return {
|
|
707
719
|
name: "bitboss-ui:icon-registry",
|
|
708
720
|
configEnvironment(e, t) {
|
|
@@ -712,24 +724,24 @@ function Ot(n = {}) {
|
|
|
712
724
|
},
|
|
713
725
|
config(e) {
|
|
714
726
|
let t = e.optimizeDeps?.include ?? [], n = e.optimizeDeps?.exclude ?? [], r = e.root ?? process.cwd();
|
|
715
|
-
|
|
716
|
-
let i =
|
|
727
|
+
v = Ne(r, "vee-validate");
|
|
728
|
+
let i = Pe(r) ? [...Ie, Re] : Ie, a = N.found.map(({ pack: e }) => `dayjs/locale/${e}`);
|
|
717
729
|
b = [...i, ...a];
|
|
718
730
|
let o = (e.build?.assetsDir ?? "assets").replace(/\/+$/, ""), s = e.build?.rollupOptions?.output, c = (Array.isArray(s) ? s[0] : s)?.chunkFileNames, l = e.ssr;
|
|
719
731
|
l && l.noExternal === !1 && delete l.noExternal;
|
|
720
|
-
let u =
|
|
732
|
+
let u = Be(l?.noExternal);
|
|
721
733
|
return {
|
|
722
|
-
...
|
|
734
|
+
...v ? {} : { resolve: { alias: [{
|
|
723
735
|
find: /^vee-validate$/,
|
|
724
|
-
replacement:
|
|
736
|
+
replacement: Ze
|
|
725
737
|
}] } },
|
|
726
738
|
optimizeDeps: {
|
|
727
739
|
include: [...i, ...a].filter((e) => !t.includes(e)),
|
|
728
|
-
exclude:
|
|
740
|
+
exclude: Le.filter((e) => !n.includes(e))
|
|
729
741
|
},
|
|
730
742
|
...u.length ? { ssr: { noExternal: u } } : {},
|
|
731
743
|
build: { rollupOptions: { output: { chunkFileNames(e) {
|
|
732
|
-
if (e.facadeModuleId?.startsWith(
|
|
744
|
+
if (e.facadeModuleId?.startsWith(At)) {
|
|
733
745
|
let t = e.facadeModuleId.slice(17);
|
|
734
746
|
return `${o}/icons/${t.replace("/", "_")}-[hash].js`;
|
|
735
747
|
}
|
|
@@ -738,27 +750,27 @@ function Ot(n = {}) {
|
|
|
738
750
|
};
|
|
739
751
|
},
|
|
740
752
|
transform(e, t) {
|
|
741
|
-
return
|
|
753
|
+
return v || t.includes("/node_modules/") || t.startsWith("\0") || !/\.(vue|[cm]?[jt]sx?)(\?|$)/.test(t) || nt(e) && this.error(`${W}\n used in ${D(g || process.cwd(), t.split("?")[0])}`), null;
|
|
742
754
|
},
|
|
743
755
|
renderChunk(e) {
|
|
744
|
-
return !
|
|
756
|
+
return !v && e.includes($e) && this.error(W), null;
|
|
745
757
|
},
|
|
746
758
|
configResolved(e) {
|
|
747
|
-
|
|
759
|
+
g = e.root, _ = o ?? g, x = e.command === "build", S = O(g, e.build?.outDir ?? "dist"), C = e.build?.rollupOptions?.input, e.logger && (E = e.logger);
|
|
748
760
|
},
|
|
749
761
|
resolveId(e) {
|
|
750
|
-
if (e ===
|
|
751
|
-
if (e ===
|
|
752
|
-
if (e ===
|
|
753
|
-
if (e ===
|
|
754
|
-
if (e ===
|
|
755
|
-
if (e ===
|
|
756
|
-
if (e ===
|
|
757
|
-
if (e ===
|
|
758
|
-
if (e.startsWith(
|
|
762
|
+
if (e === Ve) return He;
|
|
763
|
+
if (e === Ue) return We;
|
|
764
|
+
if (e === Ge) return Ke;
|
|
765
|
+
if (e === qe) return Je;
|
|
766
|
+
if (e === Ye) return Xe;
|
|
767
|
+
if (e === rt) return it;
|
|
768
|
+
if (e === Ze) return Qe;
|
|
769
|
+
if (e === at) return ot;
|
|
770
|
+
if (e.startsWith(kt)) return "\0" + e;
|
|
759
771
|
},
|
|
760
772
|
async load(e) {
|
|
761
|
-
if (e ===
|
|
773
|
+
if (e === We) {
|
|
762
774
|
let { iconDir: e, enabledLocales: t, passthroughDeduper: n, ptScopes: i, ...a } = r, o = {
|
|
763
775
|
inertiaLinkName: "Link",
|
|
764
776
|
nuxtLinkName: "NuxtLink",
|
|
@@ -784,7 +796,7 @@ function Ot(n = {}) {
|
|
|
784
796
|
...a.formControls
|
|
785
797
|
},
|
|
786
798
|
pt: a.pt ?? {},
|
|
787
|
-
defaultLocale:
|
|
799
|
+
defaultLocale: ce,
|
|
788
800
|
iconDefaultSizes: {
|
|
789
801
|
xs: 12,
|
|
790
802
|
sm: 16,
|
|
@@ -815,61 +827,61 @@ function Ot(n = {}) {
|
|
|
815
827
|
};
|
|
816
828
|
return `import { reactive } from 'vue';\nexport const config = reactive(${JSON.stringify(o)});\nexport const ptScopes = ${JSON.stringify(i ?? {})};\n`;
|
|
817
829
|
}
|
|
818
|
-
if (e ===
|
|
819
|
-
if (e ===
|
|
820
|
-
if (e ===
|
|
821
|
-
if (e ===
|
|
822
|
-
if (e ===
|
|
823
|
-
if (e ===
|
|
824
|
-
if (e.startsWith(
|
|
825
|
-
let t = e.slice(17), n = t.indexOf("/"), r = t.slice(0, n), i = t.slice(n + 1), a =
|
|
830
|
+
if (e === Je) return Te(M);
|
|
831
|
+
if (e === Ke) return De(N.found);
|
|
832
|
+
if (e === Xe) return `export default ${JSON.stringify(st())};`;
|
|
833
|
+
if (e === Qe) return tt();
|
|
834
|
+
if (e === it) return Fe(Pe(g));
|
|
835
|
+
if (e === ot) return Oe(r.passthroughDeduper, g);
|
|
836
|
+
if (e.startsWith(At)) {
|
|
837
|
+
let t = e.slice(17), n = t.indexOf("/"), r = t.slice(0, n), i = t.slice(n + 1), a = P.get(r);
|
|
826
838
|
a || this.error(`[bitboss-ui] cannot load "${r}:${i}" — @iconify-json/${r} is not installed.\n Run: npm install -D @iconify-json/${r}`);
|
|
827
|
-
let o =
|
|
828
|
-
return o || this.error(`[bitboss-ui] icon "${i}" does not exist in the ${r} icon set`), `export default ${JSON.stringify(
|
|
839
|
+
let o = j(a, i);
|
|
840
|
+
return o || this.error(`[bitboss-ui] icon "${i}" does not exist in the ${r} icon set`), `export default ${JSON.stringify(de(o))};`;
|
|
829
841
|
}
|
|
830
|
-
if (e !==
|
|
831
|
-
let t =
|
|
842
|
+
if (e !== He) return;
|
|
843
|
+
let t = O(g, r.iconDir), n = "/" + D(g, t).replace(/\\/g, "/") + "/**/*.svg", i = await je(), a = _e(r.iconWhitelist ?? [], P, F, R);
|
|
832
844
|
a.errors.length > 0 && this.error(a.errors.length === 1 ? a.errors[0] : `[bitboss-ui] iconWhitelist has ${a.errors.length} entries that do not resolve:\n - ${a.errors.map((e) => e.replace(/^\[bitboss-ui\] /, "")).join("\n - ")}`);
|
|
833
845
|
let o = /* @__PURE__ */ new Set([...i.icons, ...a.icons]), s = Array.from(o).sort().flatMap((e) => {
|
|
834
|
-
let t =
|
|
835
|
-
return t ? [`\t${JSON.stringify(e)}: () => import(${JSON.stringify(
|
|
836
|
-
}).join("\n"), c = x ? null : Object.fromEntries(Array.from(
|
|
837
|
-
return `const _local = import.meta.glob(${JSON.stringify(n)}, { 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` + (s ? s + "\n" : "") + `\t..._localIcons,\n};\nconst _ip = new Set(${JSON.stringify(Array.from(
|
|
846
|
+
let t = ue(e);
|
|
847
|
+
return t ? [`\t${JSON.stringify(e)}: () => import(${JSON.stringify(kt + t.prefix + "/" + t.name)}).then(m => m.default),`] : [];
|
|
848
|
+
}).join("\n"), c = x ? null : Object.fromEntries(Array.from(P.entries()).map(([e, t]) => [e, ge(t, F.get(e))]));
|
|
849
|
+
return `const _local = import.meta.glob(${JSON.stringify(n)}, { 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` + (s ? s + "\n" : "") + `\t..._localIcons,\n};\nconst _ip = new Set(${JSON.stringify(Array.from(R))});\nconst _loaded = new Set(${JSON.stringify(Array.from(P.keys()))});\nconst _all = ${c ? JSON.stringify(c) : "null"};\nconst _diag = ${he};\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`;
|
|
838
850
|
},
|
|
839
851
|
buildStart() {
|
|
840
|
-
|
|
841
|
-
let e =
|
|
852
|
+
xe();
|
|
853
|
+
let e = O(g, r.iconDir), t = _t(r.iconDir, e);
|
|
842
854
|
if (t && this.warn(t), !x) {
|
|
843
|
-
let e =
|
|
855
|
+
let e = ve(_, be(L));
|
|
844
856
|
e && this.warn(e);
|
|
845
857
|
}
|
|
846
|
-
!x && r.vscodeSettings !== !1 && (
|
|
858
|
+
!x && r.vscodeSettings !== !1 && (T(e, _, (e) => this.warn(e)), Ot(_, {
|
|
847
859
|
info: (e) => this.info(e),
|
|
848
860
|
warn: (e) => this.warn(e)
|
|
849
861
|
}));
|
|
850
|
-
for (let e of
|
|
851
|
-
for (let e of ye) this.warn(e);
|
|
862
|
+
for (let e of A) this.warn(e);
|
|
852
863
|
for (let e of le) this.warn(e);
|
|
853
|
-
for (let e of
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
864
|
+
for (let e of se) this.warn(e);
|
|
865
|
+
for (let e of N.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`);
|
|
866
|
+
r.locale && !l(r.locale) && !k.includes(r.locale) && this.warn(`[bitboss-ui] \`locale: '${r.locale}'\` is not a built-in locale${Ce(r.locale)} — the library ships ${a.length} locales. Strings fall back to the default locale.`);
|
|
867
|
+
let n = ie({
|
|
868
|
+
root: g,
|
|
869
|
+
input: C,
|
|
858
870
|
dts: r.dts
|
|
859
871
|
});
|
|
860
872
|
if (n) {
|
|
861
|
-
let e =
|
|
862
|
-
...
|
|
863
|
-
LocaleRegistry: [...
|
|
873
|
+
let e = ae(n, {
|
|
874
|
+
...re(r),
|
|
875
|
+
LocaleRegistry: [...M.flatMap((e) => [e, ...c(e)]), ...k],
|
|
864
876
|
PtScopeRegistry: Object.keys(r.ptScopes ?? {}),
|
|
865
|
-
EmptyStringControlRegistry:
|
|
866
|
-
}), t =
|
|
867
|
-
e === "changed" ? this.info(`[bitboss-ui] Wrote ${t} — commit this file so CI and teammates get matching types.`) : typeof e == "object" && !
|
|
877
|
+
EmptyStringControlRegistry: te(r.formControls)
|
|
878
|
+
}), t = ye(n);
|
|
879
|
+
e === "changed" ? this.info(`[bitboss-ui] Wrote ${t} — commit this file so CI and teammates get matching types.`) : typeof e == "object" && !I.has("write") && (I.add("write"), this.warn(`[bitboss-ui] could not write ${t} (${e.error}). The committed copy still types the app; regenerate it where the project is writable.`)), !I.has("program") && y(n) && (I.add("program"), ne(g, n) === !1 && this.warn(`[bitboss-ui] ${t} is outside your TypeScript project — custom names will look like typos. Set \`dts\` to a path inside your app sources (for example resources/js/).`));
|
|
868
880
|
}
|
|
869
881
|
},
|
|
870
882
|
configureServer(e) {
|
|
871
|
-
r.mcp &&
|
|
872
|
-
let t =
|
|
883
|
+
r.mcp && jt(o ?? e.config.root, e.config.logger);
|
|
884
|
+
let t = O(e.config.root, r.iconDir), n = (e) => e.startsWith(t) && e.endsWith(".svg");
|
|
873
885
|
e.ws.on("bitboss-ui:icon-missing", (t) => {
|
|
874
886
|
if (process.env.VITEST || e.config.mode === "test") return;
|
|
875
887
|
let n = t.stack ? t.stack.replace(/^Error/, `Error: ${t.msg}`) : `Error: ${t.msg}`;
|
|
@@ -883,39 +895,39 @@ function Ot(n = {}) {
|
|
|
883
895
|
});
|
|
884
896
|
});
|
|
885
897
|
let i = async () => {
|
|
886
|
-
let t = e.moduleGraph.getModuleById(
|
|
898
|
+
let t = e.moduleGraph.getModuleById(He);
|
|
887
899
|
t && await e.reloadModule(t);
|
|
888
|
-
},
|
|
889
|
-
clearTimeout(
|
|
900
|
+
}, a, s = () => {
|
|
901
|
+
clearTimeout(a), a = setTimeout(() => void B?.persist(), 500);
|
|
890
902
|
}, c = Promise.resolve(), l = (e, t) => {
|
|
891
903
|
c = c.then(async () => {
|
|
892
|
-
if (!
|
|
904
|
+
if (!B) return;
|
|
893
905
|
let n;
|
|
894
|
-
if (
|
|
895
|
-
let e =
|
|
896
|
-
|
|
897
|
-
let t =
|
|
906
|
+
if (oe(t) === ".gitignore") {
|
|
907
|
+
let e = B.icons;
|
|
908
|
+
B.resetGitignores(), await B.scan();
|
|
909
|
+
let t = B.icons;
|
|
898
910
|
n = e.size !== t.size || [...e].some((e) => !t.has(e));
|
|
899
|
-
} else n = e === "unlink" ?
|
|
911
|
+
} else n = e === "unlink" ? B.removeFile(t) : await B.updateFile(t);
|
|
900
912
|
s(), n && await i();
|
|
901
913
|
}).catch((e) => {
|
|
902
|
-
|
|
914
|
+
E.warn(`[bitboss-ui] icon scan: could not update ${t} (${e instanceof Error ? e.message : String(e)})`);
|
|
903
915
|
});
|
|
904
916
|
};
|
|
905
|
-
if (H = e.watcher,
|
|
917
|
+
if (H = e.watcher, B) for (let e of B.includeDirs) H.add(e);
|
|
906
918
|
for (let i of [
|
|
907
919
|
"add",
|
|
908
920
|
"change",
|
|
909
921
|
"unlink"
|
|
910
|
-
]) e.watcher.on(i, (
|
|
911
|
-
if (n(
|
|
912
|
-
r.vscodeSettings !== !1 &&
|
|
922
|
+
]) e.watcher.on(i, (a) => {
|
|
923
|
+
if (n(a)) {
|
|
924
|
+
r.vscodeSettings !== !1 && T(t, o ?? e.config.root, (e) => E.warn(e));
|
|
913
925
|
return;
|
|
914
926
|
}
|
|
915
|
-
l(i,
|
|
927
|
+
l(i, a);
|
|
916
928
|
});
|
|
917
929
|
}
|
|
918
930
|
};
|
|
919
931
|
}
|
|
920
932
|
//#endregion
|
|
921
|
-
export { n as BB_LAYERS,
|
|
933
|
+
export { n as BB_LAYERS, a as BUILTIN_LOCALE_KEYS, d as DEFAULT_MAX_FILE_SIZE, v as DEFAULT_VARIANT_REGISTRIES, f as IconScanner, G as LOCAL_ICONS_JSON_PATH, Le as REQUIRED_OPTIMIZE_DEPS_EXCLUDE, Ie as REQUIRED_OPTIMIZE_DEPS_INCLUDE, U as SSR_NO_EXTERNAL, dt as TAILWIND_CLASS_ATTRIBUTES_DEFAULTS, X as TAILWIND_PT_CLASS_ATTRIBUTE, Z as TAILWIND_PT_CLASS_REGEX, r as TAILWIND_V4_LAYERS, W as VEE_MISSING_MESSAGE, Pt as bitbossUi, ht as defaultVscodeSettings, Mt as definePt, F as diagnoseMissingIcon, _e as expandIconWhitelist, p as extractIconCandidates, De as generateDayjsLocalesModule, Fe as generateLinkModule, Te as generateLocalesModule, Oe as generatePassthroughDeduperModule, tt as generateVeeMissingModule, Pe as hasInertia, g as iconLiteralRegExp, ee as iconScanCacheFile, _t as localIconDirWarning, Ee as resolveDayjsLocales, we as resolveEnabledLocales, Be as resolveSsrNoExternal, vt as stripJsonComments, Ot as updateVscodeSettings, ve as upgradeHint, nt as usesBbForm, Ae as validateAutoDisableWritingThreshold, ke as validatePassthroughDeduper, z as validatePtGlobalMapNames, gt as writeLocalIconifyCollection };
|