bitboss-ui 3.0.0-beta.48 → 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.
Files changed (356) hide show
  1. package/README.md +24 -7
  2. package/bin/bitboss-ui-mcp.mjs +15 -3
  3. package/bin/bitboss-ui.mjs +115 -13
  4. package/dist/ai/BbAvatar.md +1 -1
  5. package/dist/ai/BbBreadcrumbs.md +65 -65
  6. package/dist/ai/BbButton.md +16 -5
  7. package/dist/ai/BbCheckbox.md +0 -2
  8. package/dist/ai/BbCheckboxGroup.md +13 -20
  9. package/dist/ai/BbDatePickerInput.md +4 -2
  10. package/dist/ai/BbDialog.md +1 -8
  11. package/dist/ai/BbDropdown.md +231 -220
  12. package/dist/ai/BbDropdownButton.md +65 -65
  13. package/dist/ai/BbDropdownGroup.md +2 -2
  14. package/dist/ai/BbDropzone.md +10 -10
  15. package/dist/ai/BbForm.md +43 -52
  16. package/dist/ai/BbHoverCard.md +4 -2
  17. package/dist/ai/BbNumberInput.md +88 -21
  18. package/dist/ai/BbPopover.md +29 -23
  19. package/dist/ai/BbProgress.md +48 -22
  20. package/dist/ai/BbRadioGroup.md +13 -19
  21. package/dist/ai/BbSelect.md +16 -36
  22. package/dist/ai/BbSelectPopover.md +14 -30
  23. package/dist/ai/BbSmoothHeight.md +0 -2
  24. package/dist/ai/BbSwitchGroup.md +13 -20
  25. package/dist/ai/BbTable.md +11 -10
  26. package/dist/ai/BbTabs.md +106 -105
  27. package/dist/ai/BbTabsList.md +2 -2
  28. package/dist/ai/BbTabsPanels.md +1 -1
  29. package/dist/ai/BbTabsRoot.md +2 -2
  30. package/dist/ai/BbTooltip.md +24 -10
  31. package/dist/ai/BbTree.md +14 -11
  32. package/dist/ai/changelog.json +256 -5
  33. package/dist/ai/components.json +36 -34
  34. package/dist/ai/composables/useBbDropdownContext.md +16 -16
  35. package/dist/ai/composables/useBbFormField.md +5 -1
  36. package/dist/ai/composables/useBbTabsContext.md +14 -14
  37. package/dist/ai/guides/agent-contract.md +27 -27
  38. package/dist/ai/guides/ai-router.md +1 -1
  39. package/dist/ai/guides/component-picker.md +3 -3
  40. package/dist/ai/guides/fetch-items-playbook.md +1 -1
  41. package/dist/ai/guides/icons-policy.md +10 -10
  42. package/dist/ai/guides/inertia-helpers.md +120 -67
  43. package/dist/ai/guides/installation-and-plugin-setup.md +43 -15
  44. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +3 -2
  45. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -16
  46. package/dist/ai/guides/migration/components/bb-dropdown-button.md +9 -8
  47. package/dist/ai/guides/migration/components/bb-dropdown.md +15 -14
  48. package/dist/ai/guides/migration/components/bb-radio-group.md +2 -1
  49. package/dist/ai/guides/migration/components/bb-select-popover.md +6 -1
  50. package/dist/ai/guides/migration/components/bb-select.md +10 -2
  51. package/dist/ai/guides/migration/components/bb-switch-group.md +2 -1
  52. package/dist/ai/guides/migration/components/bb-tabs.md +9 -8
  53. package/dist/ai/guides/migration/components/bb-tooltip.md +1 -1
  54. package/dist/ai/guides/migration/v2-to-v3.md +114 -17
  55. package/dist/ai/guides/migration/v3-beta-tooling.md +11 -0
  56. package/dist/ai/guides/options-items-playbook.md +30 -24
  57. package/dist/ai/guides/passthrough.md +2 -2
  58. package/dist/ai/guides/preset-components.md +18 -3
  59. package/dist/ai/guides/typescript-generic-components.md +1 -1
  60. package/dist/ai/guides/validated-forms.md +11 -22
  61. package/dist/ai/guides/validation-providers.md +4 -3
  62. package/dist/ai/helpers/inertia/manifest.json +636 -0
  63. package/dist/ai/helpers/inertia/types.ts +15 -0
  64. package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
  65. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
  66. package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
  67. package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
  68. package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
  69. package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
  70. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
  71. package/dist/ai/helpers/inertia/useLoading.ts +20 -0
  72. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
  73. package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
  74. package/dist/ai/helpers/inertia/useProp.ts +63 -0
  75. package/dist/ai/helpers/inertia/useQuery.ts +19 -0
  76. package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
  77. package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
  78. package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
  79. package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
  80. package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
  81. package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
  82. package/dist/ai/helpers/inertia/useUntil.ts +33 -0
  83. package/dist/ai/helpers/inertia/utils.ts +24 -0
  84. package/dist/ai/index.md +6 -6
  85. package/dist/ai/manifest/components/BbBreadcrumbs.json +10 -6
  86. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  87. package/dist/ai/manifest/components/BbButton.json +1 -1
  88. package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
  89. package/dist/ai/manifest/components/BbDropdown.json +23 -20
  90. package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
  91. package/dist/ai/manifest/components/BbDropdownButton.json +22 -19
  92. package/dist/ai/manifest/components/BbDropdownButton.tree.json +1 -1
  93. package/dist/ai/manifest/components/BbDropdownGroup.json +2 -2
  94. package/dist/ai/manifest/components/BbForm.json +1 -0
  95. package/dist/ai/manifest/components/BbNumberInput.json +6 -1
  96. package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
  97. package/dist/ai/manifest/components/BbPopover.json +1 -0
  98. package/dist/ai/manifest/components/BbProgress.json +6 -6
  99. package/dist/ai/manifest/components/BbProgress.tree.json +1 -0
  100. package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
  101. package/dist/ai/manifest/components/BbSelect.json +2 -2
  102. package/dist/ai/manifest/components/BbSelectPopover.json +2 -2
  103. package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
  104. package/dist/ai/manifest/components/BbTabs.json +7 -6
  105. package/dist/ai/manifest/components/BbTabsList.json +3 -3
  106. package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
  107. package/dist/ai/manifest/components/BbTabsRoot.json +5 -4
  108. package/dist/ai/manifest/components/BbTooltip.json +1 -1
  109. package/dist/ai/manifest/index.json +2 -2
  110. package/dist/ai/manifest/meta.json +2 -0
  111. package/dist/ai/manifest/types.advanced.json +10 -9
  112. package/dist/ai/manifest/types.api.json +5 -4
  113. package/dist/ai/recipes/inertia/approvals-inbox.md +16 -18
  114. package/dist/ai/recipes/inertia/inline-edit-workspace.md +23 -33
  115. package/dist/ai/recipes/inertia/layout-scaffold.md +16 -16
  116. package/dist/ai/recipes/inertia/onboarding.md +6 -10
  117. package/dist/ai/recipes/inertia/ownership-atlas.md +15 -18
  118. package/dist/ai/recipes/inertia/record-form.md +11 -11
  119. package/dist/ai/recipes/inertia/records-workspace.md +38 -41
  120. package/dist/ai/recipes/inertia/settings-workspace.md +26 -38
  121. package/dist/ai/recipes/inertia/upload-center.md +31 -39
  122. package/dist/ai/recipes/inertia/wizard-form.md +10 -19
  123. package/dist/ai/recipes/nuxt/approvals-inbox.md +7 -8
  124. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +14 -24
  125. package/dist/ai/recipes/nuxt/layout-scaffold.md +16 -16
  126. package/dist/ai/recipes/nuxt/onboarding.md +2 -6
  127. package/dist/ai/recipes/nuxt/ownership-atlas.md +7 -9
  128. package/dist/ai/recipes/nuxt/record-form.md +5 -5
  129. package/dist/ai/recipes/nuxt/records-workspace.md +29 -31
  130. package/dist/ai/recipes/nuxt/settings-workspace.md +22 -34
  131. package/dist/ai/recipes/nuxt/upload-center.md +22 -29
  132. package/dist/ai/recipes/nuxt/wizard-form.md +3 -11
  133. package/dist/ai/recipes/vue/approvals-inbox.md +7 -8
  134. package/dist/ai/recipes/vue/inline-edit-workspace.md +14 -24
  135. package/dist/ai/recipes/vue/layout-scaffold.md +16 -16
  136. package/dist/ai/recipes/vue/onboarding.md +2 -6
  137. package/dist/ai/recipes/vue/ownership-atlas.md +7 -9
  138. package/dist/ai/recipes/vue/record-form.md +5 -5
  139. package/dist/ai/recipes/vue/records-workspace.md +29 -31
  140. package/dist/ai/recipes/vue/settings-workspace.md +22 -34
  141. package/dist/ai/recipes/vue/upload-center.md +22 -29
  142. package/dist/ai/recipes/vue/wizard-form.md +3 -11
  143. package/dist/ai/source/BbAccordion.md +1 -1
  144. package/dist/ai/source/BbAlert.md +3 -3
  145. package/dist/ai/source/BbBadge.md +2 -2
  146. package/dist/ai/source/BbBadgeButton.md +5 -4
  147. package/dist/ai/source/BbBaseButton.md +1 -1
  148. package/dist/ai/source/BbBaseRadioIcon.md +1 -0
  149. package/dist/ai/source/BbBaseSwitchIcon.md +1 -0
  150. package/dist/ai/source/BbBreadcrumbs.md +63 -42
  151. package/dist/ai/source/BbButton.md +71 -33
  152. package/dist/ai/source/BbCalendar.md +17 -16
  153. package/dist/ai/source/BbCheckbox.md +3 -2
  154. package/dist/ai/source/BbCheckboxGroup.md +11 -4
  155. package/dist/ai/source/BbColorInput.md +10 -9
  156. package/dist/ai/source/BbConfirm.md +1 -1
  157. package/dist/ai/source/BbConfirmPortal.md +1 -1
  158. package/dist/ai/source/BbDatePicker.md +2 -2
  159. package/dist/ai/source/BbDatePickerInput.md +47 -20
  160. package/dist/ai/source/BbDialog.md +5 -5
  161. package/dist/ai/source/BbDropdown.md +230 -158
  162. package/dist/ai/source/BbDropdownButton.md +19 -12
  163. package/dist/ai/source/BbDropdownGroup.md +126 -93
  164. package/dist/ai/source/BbForm.md +25 -1
  165. package/dist/ai/source/BbIndicator.md +4 -0
  166. package/dist/ai/source/BbNumberInput.md +855 -19
  167. package/dist/ai/source/BbOffCanvas.md +27 -11
  168. package/dist/ai/source/BbPagination.md +3 -3
  169. package/dist/ai/source/BbPopover.md +152 -8
  170. package/dist/ai/source/BbPopoverPortal.md +11 -0
  171. package/dist/ai/source/BbProgress.md +82 -18
  172. package/dist/ai/source/BbRadioGroup.md +12 -5
  173. package/dist/ai/source/BbRating.md +11 -9
  174. package/dist/ai/source/BbSelect.md +16 -10
  175. package/dist/ai/source/BbSelectPopover.md +29 -23
  176. package/dist/ai/source/BbSlider.md +12 -6
  177. package/dist/ai/source/BbSwitch.md +3 -2
  178. package/dist/ai/source/BbSwitchGroup.md +5 -2
  179. package/dist/ai/source/BbTable.md +102 -18
  180. package/dist/ai/source/BbTabs.md +27 -23
  181. package/dist/ai/source/BbTabsList.md +26 -22
  182. package/dist/ai/source/BbTabsPanels.md +26 -22
  183. package/dist/ai/source/BbTabsRoot.md +25 -21
  184. package/dist/ai/source/BbTag.md +10 -9
  185. package/dist/ai/source/BbTextInput.md +5 -4
  186. package/dist/ai/source/BbTextarea.md +6 -5
  187. package/dist/ai/source/BbTimePicker.md +1 -1
  188. package/dist/ai/source/BbTimePickerInput.md +46 -9
  189. package/dist/ai/source/BbToast.md +10 -7
  190. package/dist/ai/source/BbToastPortal.md +10 -7
  191. package/dist/ai/source/BbTooltip.md +54 -8
  192. package/dist/ai/source/BbTree.md +21 -3
  193. package/dist/ai/source/CommonField.md +6 -4
  194. package/dist/ai/source/CommonFieldInput.md +15 -10
  195. package/dist/ai/source/CommonPopover.md +6 -0
  196. package/dist/ai/source/CommonTimeSelector.md +5 -4
  197. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +10 -8
  198. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +8 -8
  199. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +45 -45
  200. package/dist/components/BbBreadcrumbs/types.d.ts +25 -17
  201. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +84 -71
  202. package/dist/components/BbButton/toggleRoving.d.ts +6 -0
  203. package/dist/components/BbButton/toggleRoving.js +45 -0
  204. package/dist/components/BbButton/types.d.ts +4 -1
  205. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +178 -178
  206. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -15
  207. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +28 -28
  208. package/dist/components/BbCalendar/useCalendarGrid.js +141 -139
  209. package/dist/components/BbCalendar/useDayjsLocale.d.ts +38 -15
  210. package/dist/components/BbCalendar/useDayjsLocale.js +31 -30
  211. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +48 -48
  212. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +81 -80
  213. package/dist/components/BbCheckboxGroup/types.d.ts +6 -2
  214. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
  215. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +363 -349
  216. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +91 -86
  217. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +298 -289
  218. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +322 -356
  219. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +17 -15
  220. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
  221. package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
  222. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
  223. package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
  224. package/dist/components/BbDropdown/normalizeGroups.js +60 -46
  225. package/dist/components/BbDropdown/types.d.ts +119 -88
  226. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +11 -2
  227. package/dist/components/BbDropdownButton/types.d.ts +2 -2
  228. package/dist/components/BbForm/BbForm.vue.d.ts +9 -0
  229. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +114 -105
  230. package/dist/components/BbForm/BbFormCustomField.js +1 -1
  231. package/dist/components/BbForm/bindFormField.js +2 -1
  232. package/dist/components/BbForm/formFields.d.ts +5 -0
  233. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +0 -1
  234. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +452 -125
  235. package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
  236. package/dist/components/BbNumberInput/numberDisplay.js +499 -0
  237. package/dist/components/BbNumberInput/types.d.ts +54 -1
  238. package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
  239. package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
  240. package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
  241. package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
  242. package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
  243. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +7 -7
  244. package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -0
  245. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +207 -164
  246. package/dist/components/BbPopover/types.d.ts +11 -0
  247. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +15 -7
  248. package/dist/components/BbProgress/types.d.ts +23 -7
  249. package/dist/components/BbProgress/types.js +1 -1
  250. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +102 -101
  251. package/dist/components/BbRadioGroup/types.d.ts +6 -2
  252. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +63 -63
  253. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +156 -154
  254. package/dist/components/BbSelect/types.d.ts +6 -2
  255. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  256. package/dist/components/BbSelectPopover/types.d.ts +6 -2
  257. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +153 -153
  258. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +62 -62
  259. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +131 -130
  260. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +711 -676
  261. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +1 -1
  262. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +1 -1
  263. package/dist/components/BbTabs/types.d.ts +25 -21
  264. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +76 -76
  265. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +58 -58
  266. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +82 -82
  267. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +246 -236
  268. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +102 -97
  269. package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
  270. package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
  271. package/dist/components/BbTooltip/types.d.ts +7 -2
  272. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +29 -21
  273. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +10 -7
  274. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +37 -36
  275. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +9 -9
  276. package/dist/composables/formSubmitLock.d.ts +6 -0
  277. package/dist/composables/formSubmitLock.js +4 -0
  278. package/dist/composables/useBaseOptions.d.ts +7 -1
  279. package/dist/composables/useBaseOptions.js +32 -32
  280. package/dist/composables/useBbDropdownContext.d.ts +8 -8
  281. package/dist/composables/useBbFormField.d.ts +9 -0
  282. package/dist/composables/useBbFormField.js +5 -3
  283. package/dist/composables/useBbTabsContext.d.ts +10 -10
  284. package/dist/composables/useBbTabsContext.js +18 -18
  285. package/dist/composables/useFormBinding.d.ts +11 -0
  286. package/dist/composables/useFormBinding.js +15 -13
  287. package/dist/composables/useItemText.d.ts +5 -1
  288. package/dist/composables/useItemText.js +8 -3
  289. package/dist/composables/useItemValue.d.ts +5 -1
  290. package/dist/composables/useItemValue.js +8 -3
  291. package/dist/composables/useLocale.js +10 -9
  292. package/dist/deprecation/ai-deprecations.json.d.ts +130 -0
  293. package/dist/deprecation/ai-deprecations.json.js +1 -1
  294. package/dist/deprecation/removedProps.js +1 -1
  295. package/dist/directives/bbDropdown.js +1 -1
  296. package/dist/i18n/index.d.ts +7 -12
  297. package/dist/i18n/locales/cs.json +11 -14
  298. package/dist/i18n/locales/da.json +13 -16
  299. package/dist/i18n/locales/de-CH.json +137 -0
  300. package/dist/i18n/locales/de.json +14 -17
  301. package/dist/i18n/locales/el.json +10 -13
  302. package/dist/i18n/locales/en-GB.json +137 -0
  303. package/dist/i18n/locales/en.json +8 -11
  304. package/dist/i18n/locales/es-MX.json +137 -0
  305. package/dist/i18n/locales/es.json +16 -19
  306. package/dist/i18n/locales/fi.json +8 -11
  307. package/dist/i18n/locales/fr.json +23 -26
  308. package/dist/i18n/locales/hu.json +8 -11
  309. package/dist/i18n/locales/it.json +12 -15
  310. package/dist/i18n/locales/ja.json +13 -16
  311. package/dist/i18n/locales/ko.json +10 -13
  312. package/dist/i18n/locales/nb.json +13 -16
  313. package/dist/i18n/locales/nl.json +21 -24
  314. package/dist/i18n/locales/pl.json +10 -13
  315. package/dist/i18n/locales/{pt.json → pt-BR.json} +19 -22
  316. package/dist/i18n/locales/pt-PT.json +137 -0
  317. package/dist/i18n/locales/ro.json +22 -25
  318. package/dist/i18n/locales/ru.json +11 -14
  319. package/dist/i18n/locales/sv.json +16 -19
  320. package/dist/i18n/locales/tr.json +14 -17
  321. package/dist/i18n/locales/uk.json +11 -14
  322. package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +10 -13
  323. package/dist/i18n/locales/zh-HK.json +137 -0
  324. package/dist/i18n/locales/zh-TW.json +137 -0
  325. package/dist/i18n/regionHints.d.ts +16 -0
  326. package/dist/i18n/regionHints.js +49 -0
  327. package/dist/i18n/regions.d.ts +286 -0
  328. package/dist/i18n/regions.js +265 -0
  329. package/dist/index.d.ts +1 -1
  330. package/dist/index.js +4 -4
  331. package/dist/llms-full.txt +1785 -1637
  332. package/dist/llms-medium.txt +74 -46
  333. package/dist/llms.txt +7 -7
  334. package/dist/locale-blueprint.json +16 -13
  335. package/dist/styles.css +2 -2
  336. package/dist/types/ptComponentMap.d.ts +1 -1
  337. package/dist/utilities/functions/slotKey.d.ts +2 -2
  338. package/dist/utils/versionCheck.js +1 -1
  339. package/dist/vite-plugin.d.ts +22 -19
  340. package/dist/vite.js +309 -297
  341. package/llms.txt +7 -7
  342. package/package.json +5 -3
  343. package/scripts/lib/agent-manifest.mjs +2 -1
  344. package/scripts/lib/eslint-disable.mjs +12 -4
  345. package/scripts/lib/eslint-plugin.d.ts +5 -1
  346. package/scripts/lib/eslint-plugin.mjs +187 -6
  347. package/scripts/lib/helper-canon.mjs +176 -0
  348. package/scripts/lib/helpers-add.mjs +1303 -0
  349. package/scripts/lib/local-components.mjs +33 -4
  350. package/scripts/lib/locale-check.mjs +165 -0
  351. package/scripts/lib/redundant-item-accessor.mjs +398 -0
  352. package/scripts/lib/renamed-item-field.mjs +343 -0
  353. package/scripts/lib/slot-key.mjs +2 -2
  354. package/scripts/lib/slot-renames.mjs +1 -1
  355. package/scripts/lib/validate-bb-markup.mjs +123 -56
  356. 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 { DEFAULT_MAX_FILE_SIZE as a, IconScanner as o, extractIconCandidates as s, globToRegExp as c, hasGlobMagic as l, iconLiteralRegExp as u, iconScanCacheFile as d } from "./icon-scan.js";
4
- import { BUILTIN_LOCALE_KEYS as f } from "./i18n/index.js";
5
- import { DEFAULT_VARIANT_REGISTRIES as p, emptyStringControls as ee, isInTypeScriptProgram as m, projectVariantRegistries as te, resolveProjectDtsPath as ne, writeProjectDts as re } from "./project-dts.js";
6
- import { existsSync as h, mkdirSync as g, readFileSync as _, readdirSync as v, writeFileSync as y } from "node:fs";
7
- import { basename as ie, dirname as b, isAbsolute as x, join as S, relative as C, resolve as w } from "node:path";
8
- import { fileURLToPath as T } from "node:url";
9
- import { createRequire as E } from "node:module";
10
- import { convertParsedSVG as ae, getIconData as D, iconToHTML as O, iconToSVG as k, parseSVGContent as oe, stringToIcon as se } from "@iconify/utils";
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 ce(e) {
13
- let t = k(e, {
13
+ function de(e) {
14
+ let t = ce(e, {
14
15
  width: "unset",
15
16
  height: "unset"
16
17
  });
17
- return O(t.body, t.attributes);
18
+ return M(t.body, t.attributes);
18
19
  }
19
- function le(e, t) {
20
+ function N(e, t) {
20
21
  try {
21
- let n = E(S(e, "package.json"));
22
- return JSON.parse(_(n.resolve(`${t}/icons.json`), "utf-8"));
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 ue(e, t) {
28
+ function fe(e, t) {
28
29
  return e !== "heroicons" || !/-(?:20|16)-/.test(t);
29
30
  }
30
- function A(e) {
31
- let t = w(e);
31
+ function P(e) {
32
+ let t = O(e);
32
33
  for (;;) {
33
- let e = S(t, "node_modules", "@iconify-json");
34
- if (h(e)) return e;
35
- let n = b(t);
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 de(e) {
41
+ function pe(e) {
41
42
  try {
42
- let t = A(e);
43
+ let t = P(e);
43
44
  if (!t) return [];
44
- let n = b(b(t));
45
- return v(t, { encoding: "utf-8" }).flatMap((t) => {
46
- let r = le(n, `@iconify-json/${t}`) ?? le(e, `@iconify-json/${t}`);
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 fe(e) {
54
+ function me(e) {
54
55
  try {
55
- let t = E(S(e, "package.json")), n = JSON.parse(_(t.resolve("@iconify/collections/collections.json"), "utf-8"));
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 pe = "(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}", j = Function(`return ${pe};`)();
62
- function me(e, t) {
63
- return [...Object.keys(e.icons), ...Object.keys(e.aliases ?? {})].filter((n) => (!t || t(n)) && D(e, n) !== null);
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 he(e, t, n, r) {
66
- let i = /* @__PURE__ */ new Set(), a = [], o = new Set(t.keys()), s = /* @__PURE__ */ new Map(), u = (e) => {
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 ? me(i, n.get(e)) : [], s.set(e, r);
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(), d = e.indexOf(":"), f = d === -1 ? "" : e.slice(0, d), p = e.slice(d + 1);
76
- if (d === -1 || !f || !p) {
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 (f === "local") {
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(f)) {
85
- a.push(j(e, o, u, (e) => o.has(e) ? u(e) : null, new Set(r)) ?? `[bitboss-ui] iconWhitelist entry "${s}" does not resolve`);
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 (l(p)) {
89
- let t = c(p), n = u(f).filter((e) => t.test(e));
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 ${f} icon set`);
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(`${f}:${e}`);
95
+ for (let e of n) i.add(`${u}:${e}`);
95
96
  continue;
96
97
  }
97
- let ee = t.get(f), m = n.get(f);
98
- if (D(ee, p) && (!m || m(p))) {
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(j(e, o, u, u, new Set(r)) ?? `[bitboss-ui] iconWhitelist entry "${s}" does not resolve`);
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 ge(e, t) {
110
- let n = S(e, "node_modules", ".cache", "bitboss-ui", "version"), r = null;
110
+ function ve(e, t) {
111
+ let n = E(e, "node_modules", ".cache", "bitboss-ui", "version"), r = null;
111
112
  try {
112
- r = _(n, "utf-8").trim() || null;
113
+ r = x(n, "utf-8").trim() || null;
113
114
  } catch {}
114
115
  if (r === t) return null;
115
116
  try {
116
- g(b(n), { recursive: !0 }), y(n, t + "\n", "utf-8");
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 _e(e) {
121
- let t = C(process.cwd(), e);
122
- return t && !t.startsWith("..") && !x(t) ? t : e;
121
+ function ye(e) {
122
+ let t = D(process.cwd(), e);
123
+ return t && !t.startsWith("..") && !T(t) ? t : e;
123
124
  }
124
- var M = /* @__PURE__ */ new Set();
125
- function ve(e) {
125
+ var I = /* @__PURE__ */ new Set();
126
+ function be(e) {
126
127
  try {
127
- return JSON.parse(_(S(e, "..", "package.json"), "utf-8")).version ?? "0";
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 N = b(T(import.meta.url));
133
- function ye(e, t) {
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 P = (e, t) => {
146
+ var xe = (e, t) => {
146
147
  let n = null, r = Infinity;
147
148
  for (let i of t) {
148
- let t = ye(e.toLowerCase(), i.toLowerCase());
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
- }, F = () => {
153
- for (let e of [S(N, "ai", "components.json"), S(N, "..", "dist", "ai", "components.json")]) if (h(e)) return e;
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 be(e, t = F(), n = "pt") {
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(_(t, "utf-8")).components;
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 = P(t, [...i.keys()]);
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 I = S(N, "i18n", "locales"), L = {
184
- pt: "pt-br",
185
- en: null
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 xe(e) {
188
- let t = f, n = e.customLocaleKeys ?? [], r = e.locale && t.includes(e.locale) ? e.locale : "en", i = [], a = /* @__PURE__ */ new Set([r, "en"]);
189
- 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.`);
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: [...a].sort(),
192
- defaultLocale: r,
193
- warnings: i
195
+ enabled: [...i].sort(),
196
+ defaultLocale: n,
197
+ warnings: r
194
198
  };
195
199
  }
196
- function Se(e) {
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 e = _(S(I, `${n}.json`), "utf-8");
200
- t.push(`\t${JSON.stringify(n)}: ${e.trim()},`);
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${t.join("\n")}\n};\n`;
213
+ return `export const locales = {\n${n.join("\n")}\n};\nexport const regionFormats = {\n${r.join("\n")}\n};\n`;
203
214
  }
204
- function Ce(e) {
205
- let t = E(import.meta.url), n = [], r = [];
215
+ function Ee(e) {
216
+ let t = A(import.meta.url), n = [], r = [];
206
217
  for (let i of e) {
207
- let e = i in L ? L[i] : i;
208
- if (e !== null) try {
209
- t.resolve(`dayjs/locale/${e}.js`), n.push({
210
- key: i,
211
- pack: e
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 we(e) {
223
- 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`;
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 Te(e, t, n = N) {
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 = S(n, "passthrough-deduper.js");
230
- r = h(e) ? e : S(n, "utils/passthroughDeduper.ts");
231
- } else r = e.startsWith(".") || x(e) ? w(t, e) : e;
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 Ee(e) {
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 De(e) {
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 R = "@inertiajs/vue3", Oe = [
252
+ var V = "@inertiajs/vue3", H = [
241
253
  "dependencies",
242
254
  "devDependencies",
243
255
  "peerDependencies",
244
256
  "optionalDependencies"
245
257
  ];
246
- function z(e) {
247
- let t = w(e);
258
+ function je(e) {
259
+ let t = O(e);
248
260
  for (;;) {
249
- let e = S(t, "package.json");
250
- if (h(e)) try {
251
- return JSON.parse(_(e, "utf-8"));
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 = b(t);
267
+ let n = w(t);
256
268
  if (n === t) return null;
257
269
  t = n;
258
270
  }
259
271
  }
260
- function B(e, t) {
261
- return Oe.some((n) => {
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 ke(e, t) {
267
- let n = t.split("/"), r = w(e);
278
+ function Ne(e, t) {
279
+ let n = t.split("/"), r = O(e);
268
280
  for (;;) {
269
- if (h(S(r, "node_modules", ...n))) return !0;
270
- let e = b(r);
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 V(e) {
276
- let t = z(e);
277
- return !t || !B(t, R) ? !1 : ke(e, R);
287
+ function Pe(e) {
288
+ let t = je(e);
289
+ return !t || !Me(t, V) ? !1 : Ne(e, V);
278
290
  }
279
- function Ae(e) {
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 je = [
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
- ], Me = ["bitboss-ui"], Ne = R, H = "bitboss-ui";
299
- function Pe(e) {
300
- return typeof e == "string" ? e === H : (e.lastIndex = 0, e.test(H));
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 Fe(e) {
303
- return e === !0 ? [] : e == null || e === !1 ? [H] : (Array.isArray(e) ? e : [e]).some(Pe) ? [] : [H];
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 Ie = "virtual:bitboss-ui/icons", Le = "\0virtual:bitboss-ui/icons", Re = "virtual:bitboss-ui/config", ze = "\0virtual:bitboss-ui/config", Be = "virtual:bitboss-ui/dayjs-locales", Ve = "\0virtual:bitboss-ui/dayjs-locales", He = "virtual:bitboss-ui/locales", Ue = "\0virtual:bitboss-ui/locales", We = "virtual:bitboss-ui/styles", Ge = "\0virtual:bitboss-ui/styles", Ke = "virtual:bitboss-ui/vee-validate-missing", qe = "\0virtual:bitboss-ui/vee-validate-missing", Je = "bitboss-ui:vee-validate-missing", U = "[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.", Ye = ["useForm", "useField"];
306
- function Xe() {
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(U)} + ' (${Je})'); };`,
309
- ...Ye.map((e) => `export const ${e} = fail;`),
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 Ze(e) {
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 Qe = "virtual:bitboss-ui/link", $e = "\0virtual:bitboss-ui/link", et = "virtual:bitboss-ui/passthrough-deduper", tt = "\0virtual:bitboss-ui/passthrough-deduper";
317
- function nt() {
318
- let e = S(N, "styles.css");
319
- return h(e) ? _(e, "utf-8") : ["main.css", "variables.css"].map((e) => {
320
- let t = S(N, "assets/css", e);
321
- return h(t) ? _(t, "utf-8") : "";
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 rt = "local", it = "./assets/icons";
325
- function at(e) {
336
+ var ct = "local", lt = "./assets/icons";
337
+ function ut(e) {
326
338
  let t = {};
327
339
  try {
328
- let n = v(e, {
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 = ie(r, ".svg");
345
+ let n = oe(r, ".svg");
334
346
  try {
335
- let i = oe(_(S(e, r), "utf-8")), a = i && ae(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: rt,
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 W = "./.vscode/bitboss-ui.local-icons.json", G = "iconify.customCollectionJsonPaths", K = "tailwindCSS.classAttributes", q = "tailwindCSS.experimental.classRegex", J = "editor.quickSuggestions", Y = "pt(?::[\\w-]+)*", X = [
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
- ], ot = "(?:^|[\\s:(])(?:v-bind:)?pt(?::[\\w-]+)*\\s*=\\s*", st = [
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
- `${ot}"([\\s\\S]*?)"`,
364
- `${ot}'([\\s\\S]*?)'`,
375
+ `${ft}"([\\s\\S]*?)"`,
376
+ `${ft}'([\\s\\S]*?)'`,
365
377
  "\\bpt\\s*:\\s*\\{([\\s\\S]*?)\\}"
366
- ].flatMap((e) => st.map((t) => [e, t])), ct = { strings: "on" }, lt = () => ({
367
- [G]: [W],
368
- [K]: [...X, Y],
369
- [q]: Z,
370
- [J]: ct
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 ut(e, t) {
373
- let n = S(t, W);
384
+ function gt(e, t) {
385
+ let n = E(t, G);
374
386
  try {
375
- return g(b(n), { recursive: !0 }), y(n, JSON.stringify(at(e)), "utf-8"), null;
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 ${W} (${e instanceof Error ? e.message : String(e)}) — the Iconify editor extension will not preview local icons. ${Q}`;
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 dt(e, t) {
381
- if (e === it) return null;
392
+ function _t(e, t) {
393
+ if (e === lt) return null;
382
394
  let n = 0;
383
395
  try {
384
- n = v(t, {
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 ft(e) {
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 pt = (e) => e === " " || e === " " || e === "\n" || e === "\r";
426
- function mt(e, t) {
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 (!pt(t)) return i;
458
+ if (!yt(t)) return i;
447
459
  }
448
460
  return -1;
449
461
  }
450
- function ht(e, t) {
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 (!pt(l)) {
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 = mt(e, c + 1);
487
- return r === -1 || e[r] !== "[" ? null : gt(e, r);
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 gt(e, t) {
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 (!pt(c)) {
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 "${G}": ["${W}"], "${K}" (include ${JSON.stringify(Y)}), and "${q}" for passthrough IntelliSense`, _t = (e) => Array.isArray(e) && e.some((e) => typeof e == "string" && (e === "pt(?::[\\w-]+)*" || e === "pt" || e.startsWith("pt:") || e.startsWith("pt("))), vt = (e) => Array.isArray(e) ? Z.filter((t) => !e.some((e) => JSON.stringify(e) === JSON.stringify(t))) : [...Z], yt = (e) => JSON.stringify(e, null, " ").replace(/\n/g, "\n ");
546
- function bt(e, t, n) {
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 = ht(e, t);
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 xt(e, t, n) {
569
+ function Dt(e, t, n) {
558
570
  if (t.length === 0) return e;
559
- let r = mt(e, 0);
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)}: ${yt(e.value)}${a}${o}`;
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 St(e, t) {
568
- let n = S(e, ".vscode"), r = S(n, "settings.json"), i = "";
579
+ function Ot(e, t) {
580
+ let n = E(e, ".vscode"), r = E(n, "settings.json"), i = "";
569
581
  try {
570
- i = _(r, "utf-8");
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 g(n, { recursive: !0 }), y(r, e, "utf-8"), !0;
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(lt(), null, " ") + "\n")) return;
583
- t.info(`[bitboss-ui] .vscode/settings.json: wrote "${W}" on "${G}", Tailwind "${K}" / "${q}" for passthrough, and "${J}". ${Q}`);
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(ft(i));
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(ft(e)), i = e, !0;
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 = bt(i, e, n);
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") && G in c && u(G, [JSON.stringify(W)], `added "${W}" to "${G}"`), K in c && !_t(c[K]) && u(K, [JSON.stringify(Y)], `added ${JSON.stringify(Y)} to "${K}"`), q in c) {
605
- let e = vt(c[q]);
606
- e.length > 0 && u(q, e.map((e) => JSON.stringify(e)), `added ${e.length} "${q}" ${e.length === 1 ? "entry" : "entries"} for passthrough`);
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 (!(G in c) && !i.includes("./.vscode/bitboss-ui.local-icons.json") && d.push({
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: [...X, Y]
623
+ value: [G]
615
624
  }), q in c || d.push({
616
625
  key: q,
617
- value: Z
626
+ value: [...dt, X]
618
627
  }), J in c || d.push({
619
628
  key: J,
620
- value: ct
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 = xt(i, d, e);
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 Ct = "virtual:bb-icon/", wt = "\0virtual:bb-icon/";
629
- async function Tt(e, t) {
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 Et = (e) => e, Dt = Symbol.for("bitboss-ui:editorRoot");
646
- function Ot(n = {}) {
657
+ var Mt = (e) => e, Nt = Symbol.for("bitboss-ui:editorRoot");
658
+ function Pt(n = {}) {
647
659
  let r = {
648
- iconDir: it,
660
+ iconDir: lt,
649
661
  ...n
650
- }, a = n[Dt];
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 c = e(r.pt);
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 = be(t, void 0, `ptScopes.${e}`);
673
+ let n = z(t, void 0, `ptScopes.${e}`);
662
674
  if (n) throw Error(n);
663
675
  }
664
- let p = Ee(r.passthroughDeduper);
665
- if (p) throw Error(p);
666
- let g = De(r.autoDisableWritingThreshold);
667
- if (g) throw Error(g);
668
- let _, v, y = !0, b = [], x = !1, S, T, E = !1, ae = (e, t, n) => {
669
- let r = ut(e, t);
670
- !r || E || (E = !0, n(r));
671
- }, O = {
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 = [], oe = [], le = [], { enabled: A, defaultLocale: j, warnings: ye } = xe({
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
- }), P = Ce([...A, ...k]), F = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map(), L = /* @__PURE__ */ new Set(), R = () => {
679
- F.clear(), I.clear(), L = fe(_);
680
- for (let e of de(_)) F.set(e.prefix, e), I.set(e.prefix, (t) => ue(e.prefix, t));
681
- z = null, B = null;
682
- }, Oe = (e, t) => {
683
- let n = F.get(e);
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 = I.get(e);
686
- return D(n, t) !== null && (!r || r(t));
687
- }, z = null, B = null, H = null, Pe = () => B || (B = (async () => {
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: ve(N),
690
- sets: Array.from(F.entries()).map(([e, t]) => [e, t.lastModified ?? 0]).sort(([e], [t]) => e < t ? -1 : +(e > t)),
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 o({
695
- root: _,
696
- outDir: S ?? w(_, "dist"),
706
+ }), n = new f({
707
+ root: g,
708
+ outDir: S ?? O(g, "dist"),
697
709
  scanner: e,
698
- prefixes: Array.from(F.keys()),
699
- resolves: Oe,
700
- cacheFile: d(_),
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 && O.info(`[bitboss-ui] icon scan: ${i.files} files in ${i.elapsed}ms${i.workers ? ` on ${i.workers} threads` : ""} (${n.icons.size} provider icons referenced)`), z = n, H) for (let e of n.includeDirs) H.add(e);
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
- })(), B);
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
- y = ke(r, "vee-validate");
716
- let i = V(r) ? [...je, Ne] : je, a = P.found.map(({ pack: e }) => `dayjs/locale/${e}`);
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 = Fe(l?.noExternal);
732
+ let u = Be(l?.noExternal);
721
733
  return {
722
- ...y ? {} : { resolve: { alias: [{
734
+ ...v ? {} : { resolve: { alias: [{
723
735
  find: /^vee-validate$/,
724
- replacement: Ke
736
+ replacement: Ze
725
737
  }] } },
726
738
  optimizeDeps: {
727
739
  include: [...i, ...a].filter((e) => !t.includes(e)),
728
- exclude: Me.filter((e) => !n.includes(e))
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(wt)) {
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 y || t.includes("/node_modules/") || t.startsWith("\0") || !/\.(vue|[cm]?[jt]sx?)(\?|$)/.test(t) || Ze(e) && this.error(`${U}\n used in ${C(_ || process.cwd(), t.split("?")[0])}`), null;
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 !y && e.includes(Je) && this.error(U), null;
756
+ return !v && e.includes($e) && this.error(W), null;
745
757
  },
746
758
  configResolved(e) {
747
- _ = e.root, v = a ?? _, x = e.command === "build", S = w(_, e.build?.outDir ?? "dist"), T = e.build?.rollupOptions?.input, e.logger && (O = e.logger);
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 === Ie) return Le;
751
- if (e === Re) return ze;
752
- if (e === Be) return Ve;
753
- if (e === He) return Ue;
754
- if (e === We) return Ge;
755
- if (e === Qe) return $e;
756
- if (e === Ke) return qe;
757
- if (e === et) return tt;
758
- if (e.startsWith(Ct)) return "\0" + e;
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 === ze) {
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: j,
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 === Ue) return Se(A);
819
- if (e === Ve) return we(P.found);
820
- if (e === Ge) return `export default ${JSON.stringify(nt())};`;
821
- if (e === qe) return Xe();
822
- if (e === $e) return Ae(V(_));
823
- if (e === tt) return Te(r.passthroughDeduper, _);
824
- if (e.startsWith(wt)) {
825
- let t = e.slice(17), n = t.indexOf("/"), r = t.slice(0, n), i = t.slice(n + 1), a = F.get(r);
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 = D(a, i);
828
- return o || this.error(`[bitboss-ui] icon "${i}" does not exist in the ${r} icon set`), `export default ${JSON.stringify(ce(o))};`;
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 !== Le) return;
831
- let t = w(_, r.iconDir), n = "/" + C(_, t).replace(/\\/g, "/") + "/**/*.svg", i = await Pe(), a = he(r.iconWhitelist ?? [], F, I, L);
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 = se(e);
835
- return t ? [`\t${JSON.stringify(e)}: () => import(${JSON.stringify(Ct + t.prefix + "/" + t.name)}).then(m => m.default),`] : [];
836
- }).join("\n"), c = x ? null : Object.fromEntries(Array.from(F.entries()).map(([e, t]) => [e, me(t, I.get(e))]));
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(L))});\nconst _loaded = new Set(${JSON.stringify(Array.from(F.keys()))});\nconst _all = ${c ? JSON.stringify(c) : "null"};\nconst _diag = ${pe};\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`;
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
- R();
841
- let e = w(_, r.iconDir), t = dt(r.iconDir, 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 = ge(v, ve(N));
855
+ let e = ve(_, be(L));
844
856
  e && this.warn(e);
845
857
  }
846
- !x && r.vscodeSettings !== !1 && (ae(e, v, (e) => this.warn(e)), St(v, {
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 oe) this.warn(e);
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 P.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`);
854
- r.locale && !f.includes(r.locale) && !k.includes(r.locale) && this.warn(`[bitboss-ui] \`locale: '${r.locale}'\` is not a built-in locale — the library ships ${f.length} dictionaries. Strings fall back to the default locale.`);
855
- let n = ne({
856
- root: _,
857
- input: T,
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 = re(n, {
862
- ...te(r),
863
- LocaleRegistry: [...A, ...k],
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: ee(r.formControls)
866
- }), t = _e(n);
867
- e === "changed" ? this.info(`[bitboss-ui] Wrote ${t} — commit this file so CI and teammates get matching types.`) : typeof e == "object" && !M.has("write") && (M.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.`)), !M.has("program") && h(n) && (M.add("program"), m(_, 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/).`));
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 && Tt(a ?? e.config.root, e.config.logger);
872
- let t = w(e.config.root, r.iconDir), n = (e) => e.startsWith(t) && e.endsWith(".svg");
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(Le);
898
+ let t = e.moduleGraph.getModuleById(He);
887
899
  t && await e.reloadModule(t);
888
- }, o, s = () => {
889
- clearTimeout(o), o = setTimeout(() => void z?.persist(), 500);
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 (!z) return;
904
+ if (!B) return;
893
905
  let n;
894
- if (ie(t) === ".gitignore") {
895
- let e = z.icons;
896
- z.resetGitignores(), await z.scan();
897
- let t = z.icons;
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" ? z.removeFile(t) : await z.updateFile(t);
911
+ } else n = e === "unlink" ? B.removeFile(t) : await B.updateFile(t);
900
912
  s(), n && await i();
901
913
  }).catch((e) => {
902
- O.warn(`[bitboss-ui] icon scan: could not update ${t} (${e instanceof Error ? e.message : String(e)})`);
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, z) for (let e of z.includeDirs) H.add(e);
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, (o) => {
911
- if (n(o)) {
912
- r.vscodeSettings !== !1 && ae(t, a ?? e.config.root, (e) => O.warn(e));
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, o);
927
+ l(i, a);
916
928
  });
917
929
  }
918
930
  };
919
931
  }
920
932
  //#endregion
921
- export { n as BB_LAYERS, f as BUILTIN_LOCALE_KEYS, a as DEFAULT_MAX_FILE_SIZE, p as DEFAULT_VARIANT_REGISTRIES, o as IconScanner, W as LOCAL_ICONS_JSON_PATH, Me as REQUIRED_OPTIMIZE_DEPS_EXCLUDE, je as REQUIRED_OPTIMIZE_DEPS_INCLUDE, H as SSR_NO_EXTERNAL, X as TAILWIND_CLASS_ATTRIBUTES_DEFAULTS, Y as TAILWIND_PT_CLASS_ATTRIBUTE, Z as TAILWIND_PT_CLASS_REGEX, r as TAILWIND_V4_LAYERS, U as VEE_MISSING_MESSAGE, Ot as bitbossUi, lt as defaultVscodeSettings, Et as definePt, j as diagnoseMissingIcon, he as expandIconWhitelist, s as extractIconCandidates, we as generateDayjsLocalesModule, Ae as generateLinkModule, Se as generateLocalesModule, Te as generatePassthroughDeduperModule, Xe as generateVeeMissingModule, V as hasInertia, u as iconLiteralRegExp, d as iconScanCacheFile, dt as localIconDirWarning, Ce as resolveDayjsLocales, xe as resolveEnabledLocales, Fe as resolveSsrNoExternal, ft as stripJsonComments, St as updateVscodeSettings, ge as upgradeHint, Ze as usesBbForm, De as validateAutoDisableWritingThreshold, Ee as validatePassthroughDeduper, be as validatePtGlobalMapNames, ut as writeLocalIconifyCollection };
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 };