@btst/stack 1.1.1 → 1.1.3

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 (281) hide show
  1. package/README.md +1 -1
  2. package/dist/client/components/index.cjs +2 -2
  3. package/dist/client/components/index.mjs +2 -2
  4. package/dist/client/index.cjs +3 -3
  5. package/dist/client/index.mjs +3 -3
  6. package/dist/context/index.cjs +1 -1
  7. package/dist/context/index.mjs +1 -1
  8. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.cjs +825 -0
  9. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +814 -0
  10. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs +763 -0
  11. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +751 -0
  12. package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs +375 -0
  13. package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +350 -0
  14. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs +160 -0
  15. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs +182 -0
  16. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +161 -0
  17. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +137 -0
  18. package/dist/node_modules/.pnpm/@radix-ui_number@1.1.1/node_modules/@radix-ui/number/dist/index.cjs +8 -0
  19. package/dist/node_modules/.pnpm/@radix-ui_number@1.1.1/node_modules/@radix-ui/number/dist/index.mjs +6 -0
  20. package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.cjs +13 -0
  21. package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.mjs +11 -0
  22. package/dist/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@1_9e04309f365863673e44407648bb0cb6/node_modules/@radix-ui/react-arrow/dist/index.cjs +42 -0
  23. package/dist/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@1_9e04309f365863673e44407648bb0cb6/node_modules/@radix-ui/react-arrow/dist/index.mjs +25 -0
  24. package/dist/node_modules/.pnpm/@radix-ui_react-collection@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_re_6d7c277722b3619c9ee7e64e9a822c45/node_modules/@radix-ui/react-collection/dist/index.cjs +77 -0
  25. package/dist/node_modules/.pnpm/@radix-ui_react-collection@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_re_6d7c277722b3619c9ee7e64e9a822c45/node_modules/@radix-ui/react-collection/dist/index.mjs +71 -0
  26. package/dist/node_modules/.pnpm/@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +56 -0
  27. package/dist/node_modules/.pnpm/@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +39 -0
  28. package/dist/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.cjs +79 -0
  29. package/dist/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-context/dist/index.mjs +63 -0
  30. package/dist/node_modules/.pnpm/@radix-ui_react-direction@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-direction/dist/index.cjs +27 -0
  31. package/dist/node_modules/.pnpm/@radix-ui_react-direction@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-direction/dist/index.mjs +11 -0
  32. package/dist/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.2_@types_react@19.2.2__@_ca5522e5d45d4722cb9eb5ce53defa61/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +229 -0
  33. package/dist/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.2_@types_react@19.2.2__@_ca5522e5d45d4722cb9eb5ce53defa61/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +212 -0
  34. package/dist/node_modules/.pnpm/@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-focus-guards/dist/index.cjs +46 -0
  35. package/dist/node_modules/.pnpm/@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +30 -0
  36. package/dist/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_r_93de389b3f622f9f764acc8e59ec80c0/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +224 -0
  37. package/dist/node_modules/.pnpm/@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_r_93de389b3f622f9f764acc8e59ec80c0/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +208 -0
  38. package/dist/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-id/dist/index.cjs +31 -0
  39. package/dist/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-id/dist/index.mjs +15 -0
  40. package/dist/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_d6285b8269ea5d6b59b300f5be279a0c/node_modules/@radix-ui/react-popper/dist/index.cjs +308 -0
  41. package/dist/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_d6285b8269ea5d6b59b300f5be279a0c/node_modules/@radix-ui/react-popper/dist/index.mjs +284 -0
  42. package/dist/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_478b3d5dd4afab1a3dcce7ed1748cb95/node_modules/@radix-ui/react-portal/dist/index.cjs +37 -0
  43. package/dist/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_478b3d5dd4afab1a3dcce7ed1748cb95/node_modules/@radix-ui/react-portal/dist/index.mjs +18 -0
  44. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.2_@types_react@19.2.2__@types_rea_bdc15f10281778271ffcbe8dd3cd491e/node_modules/@radix-ui/react-primitive/dist/index.cjs +61 -0
  45. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.2_@types_react@19.2.2__@types_rea_bdc15f10281778271ffcbe8dd3cd491e/node_modules/@radix-ui/react-primitive/dist/index.mjs +43 -0
  46. package/dist/node_modules/.pnpm/@radix-ui_react-select@2.2.6_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_802c3d414c85063bee785fcc98a39c07/node_modules/@radix-ui/react-select/dist/index.cjs +1198 -0
  47. package/dist/node_modules/.pnpm/@radix-ui_react-select@2.2.6_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_802c3d414c85063bee785fcc98a39c07/node_modules/@radix-ui/react-select/dist/index.mjs +1154 -0
  48. package/dist/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +28 -0
  49. package/dist/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +12 -0
  50. package/dist/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +86 -0
  51. package/dist/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +70 -0
  52. package/dist/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs +34 -0
  53. package/dist/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +18 -0
  54. package/dist/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +23 -0
  55. package/dist/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +7 -0
  56. package/dist/node_modules/.pnpm/@radix-ui_react-use-previous@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-previous/dist/index.cjs +31 -0
  57. package/dist/node_modules/.pnpm/@radix-ui_react-use-previous@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-previous/dist/index.mjs +15 -0
  58. package/dist/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-size/dist/index.cjs +56 -0
  59. package/dist/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.2_react@19.2.0/node_modules/@radix-ui/react-use-size/dist/index.mjs +40 -0
  60. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.2_@types_react@19.2.2__@typ_a84e98a44624c31e835a98d4b8b0c30d/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +51 -0
  61. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.2_@types_react@19.2.2__@typ_a84e98a44624c31e835a98d4b8b0c30d/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +34 -0
  62. package/dist/node_modules/.pnpm/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.cjs +139 -0
  63. package/dist/node_modules/.pnpm/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.mjs +137 -0
  64. package/dist/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.0/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.cjs +39 -0
  65. package/dist/node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.0/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.mjs +37 -0
  66. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs +43 -0
  67. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.mjs +38 -0
  68. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs +1671 -0
  69. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.mjs +1669 -0
  70. package/dist/node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.cjs +10 -0
  71. package/dist/node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.mjs +8 -0
  72. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs +74 -0
  73. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/component.mjs +56 -0
  74. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs +15 -0
  75. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/constants.mjs +10 -0
  76. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs +34 -0
  77. package/dist/node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll-bar/dist/es2015/utils.mjs +31 -0
  78. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/Combination.cjs +25 -0
  79. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/Combination.mjs +9 -0
  80. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs +178 -0
  81. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/SideEffect.mjs +160 -0
  82. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/UI.cjs +54 -0
  83. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/UI.mjs +38 -0
  84. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs +23 -0
  85. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.mjs +21 -0
  86. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs +113 -0
  87. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/handleScroll.mjs +110 -0
  88. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/medium.cjs +7 -0
  89. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/medium.mjs +5 -0
  90. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs +9 -0
  91. package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/sidecar.mjs +7 -0
  92. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0/node_modules/react-style-singleton/dist/es2015/component.cjs +21 -0
  93. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0/node_modules/react-style-singleton/dist/es2015/component.mjs +19 -0
  94. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0/node_modules/react-style-singleton/dist/es2015/hook.cjs +41 -0
  95. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0/node_modules/react-style-singleton/dist/es2015/hook.mjs +25 -0
  96. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0/node_modules/react-style-singleton/dist/es2015/singleton.cjs +53 -0
  97. package/dist/node_modules/.pnpm/react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0/node_modules/react-style-singleton/dist/es2015/singleton.mjs +51 -0
  98. package/dist/node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.cjs +59 -0
  99. package/dist/node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs +56 -0
  100. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0/node_modules/use-callback-ref/dist/es2015/assignRef.cjs +26 -0
  101. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0/node_modules/use-callback-ref/dist/es2015/assignRef.mjs +24 -0
  102. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs +64 -0
  103. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0/node_modules/use-callback-ref/dist/es2015/useMergeRef.mjs +48 -0
  104. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0/node_modules/use-callback-ref/dist/es2015/useRef.cjs +44 -0
  105. package/dist/node_modules/.pnpm/use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0/node_modules/use-callback-ref/dist/es2015/useRef.mjs +42 -0
  106. package/dist/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0/node_modules/use-sidecar/dist/es2015/exports.cjs +37 -0
  107. package/dist/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0/node_modules/use-sidecar/dist/es2015/exports.mjs +21 -0
  108. package/dist/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0/node_modules/use-sidecar/dist/es2015/medium.cjs +79 -0
  109. package/dist/node_modules/.pnpm/use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0/node_modules/use-sidecar/dist/es2015/medium.mjs +77 -0
  110. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/image-field.cjs +3 -3
  111. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/image-field.mjs +3 -3
  112. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/post-forms.cjs +5 -5
  113. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/post-forms.mjs +5 -5
  114. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/tags-multiselect.cjs +2 -6
  115. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/tags-multiselect.mjs +1 -1
  116. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/form-page-skeleton.cjs +1 -1
  117. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/form-page-skeleton.mjs +1 -1
  118. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/list-page-skeleton.cjs +1 -1
  119. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/list-page-skeleton.mjs +1 -1
  120. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/page-header-skeleton.cjs +1 -1
  121. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/page-header-skeleton.mjs +1 -1
  122. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/post-card-skeleton.cjs +2 -2
  123. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/post-card-skeleton.mjs +2 -2
  124. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/post-page-skeleton.cjs +1 -1
  125. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/post-page-skeleton.mjs +1 -1
  126. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/post-page.internal.cjs +1 -1
  127. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/post-page.internal.mjs +1 -1
  128. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/empty-list.cjs +1 -1
  129. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/empty-list.mjs +1 -1
  130. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/on-this-page.cjs +1 -1
  131. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/on-this-page.mjs +1 -1
  132. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/post-card.cjs +2 -2
  133. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/post-card.mjs +2 -2
  134. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/post-navigation.cjs +1 -1
  135. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/post-navigation.mjs +1 -1
  136. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/posts-list.cjs +1 -1
  137. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/posts-list.mjs +1 -1
  138. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/recent-posts-carousel.cjs +1 -1
  139. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/recent-posts-carousel.mjs +1 -1
  140. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/search-modal.cjs +1 -1
  141. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/search-modal.mjs +1 -1
  142. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/tags-list.cjs +1 -1
  143. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/tags-list.mjs +1 -1
  144. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/hooks/blog-hooks.cjs +1 -1
  145. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/hooks/blog-hooks.mjs +1 -1
  146. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/plugin.cjs +1 -1
  147. package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/plugin.mjs +1 -1
  148. package/dist/packages/ui/src/components/badge.cjs +42 -0
  149. package/dist/packages/ui/src/components/badge.mjs +39 -0
  150. package/dist/packages/ui/src/components/button.cjs +54 -0
  151. package/dist/packages/ui/src/components/button.mjs +51 -0
  152. package/dist/packages/ui/src/components/card.cjs +67 -0
  153. package/dist/packages/ui/src/components/card.mjs +61 -0
  154. package/dist/packages/ui/src/components/carousel.cjs +215 -0
  155. package/dist/packages/ui/src/components/carousel.mjs +195 -0
  156. package/dist/packages/ui/src/components/command.cjs +142 -0
  157. package/dist/packages/ui/src/components/command.mjs +134 -0
  158. package/dist/packages/ui/src/components/dialog.cjs +127 -0
  159. package/dist/packages/ui/src/components/dialog.mjs +105 -0
  160. package/dist/packages/ui/src/components/empty.cjs +76 -0
  161. package/dist/packages/ui/src/components/empty.mjs +71 -0
  162. package/dist/packages/ui/src/components/form.cjs +133 -0
  163. package/dist/packages/ui/src/components/form.mjs +110 -0
  164. package/dist/packages/ui/src/components/input.cjs +23 -0
  165. package/dist/packages/ui/src/components/input.mjs +21 -0
  166. package/dist/packages/ui/src/components/label.cjs +39 -0
  167. package/dist/packages/ui/src/components/label.mjs +23 -0
  168. package/dist/packages/ui/src/components/multi-select.cjs +555 -0
  169. package/dist/packages/ui/src/components/multi-select.mjs +540 -0
  170. package/dist/packages/ui/src/components/select.cjs +140 -0
  171. package/dist/packages/ui/src/components/select.mjs +132 -0
  172. package/dist/packages/ui/src/components/skeleton.cjs +17 -0
  173. package/dist/packages/ui/src/components/skeleton.mjs +15 -0
  174. package/dist/packages/ui/src/components/switch.cjs +48 -0
  175. package/dist/packages/ui/src/components/switch.mjs +32 -0
  176. package/dist/packages/ui/src/components/textarea.cjs +20 -0
  177. package/dist/packages/ui/src/components/textarea.mjs +18 -0
  178. package/dist/packages/ui/src/hooks/use-debounce.cjs +18 -0
  179. package/dist/packages/ui/src/hooks/use-debounce.mjs +16 -0
  180. package/dist/packages/ui/src/lib/utils.cjs +10 -0
  181. package/dist/packages/ui/src/lib/utils.mjs +8 -0
  182. package/dist/plugins/blog/api/index.cjs +1 -1
  183. package/dist/plugins/blog/api/index.mjs +1 -1
  184. package/dist/plugins/blog/client/components/index.cjs +4 -4
  185. package/dist/plugins/blog/client/components/index.mjs +4 -4
  186. package/dist/plugins/blog/client/hooks/index.cjs +1 -1
  187. package/dist/plugins/blog/client/hooks/index.mjs +1 -1
  188. package/dist/plugins/blog/client/index.cjs +1 -1
  189. package/dist/plugins/blog/client/index.d.cts +164 -177
  190. package/dist/plugins/blog/client/index.d.mts +164 -177
  191. package/dist/plugins/blog/client/index.d.ts +164 -177
  192. package/dist/plugins/blog/client/index.mjs +1 -1
  193. package/dist/plugins/client/index.cjs +1 -1
  194. package/dist/plugins/client/index.d.cts +8 -5
  195. package/dist/plugins/client/index.d.mts +8 -5
  196. package/dist/plugins/client/index.d.ts +8 -5
  197. package/dist/plugins/client/index.mjs +1 -1
  198. package/package.json +5 -5
  199. package/src/plugins/client/index.ts +14 -6
  200. /package/dist/{client → packages/better-stack/src/client}/components/compose.cjs +0 -0
  201. /package/dist/{client → packages/better-stack/src/client}/components/compose.mjs +0 -0
  202. /package/dist/{client → packages/better-stack/src/client}/components/error-boundary.cjs +0 -0
  203. /package/dist/{client → packages/better-stack/src/client}/components/error-boundary.mjs +0 -0
  204. /package/dist/{client → packages/better-stack/src/client}/meta-utils.cjs +0 -0
  205. /package/dist/{client → packages/better-stack/src/client}/meta-utils.mjs +0 -0
  206. /package/dist/{client → packages/better-stack/src/client}/path-utils.cjs +0 -0
  207. /package/dist/{client → packages/better-stack/src/client}/path-utils.mjs +0 -0
  208. /package/dist/{client → packages/better-stack/src/client}/sitemap-utils.cjs +0 -0
  209. /package/dist/{client → packages/better-stack/src/client}/sitemap-utils.mjs +0 -0
  210. /package/dist/{context → packages/better-stack/src/context}/provider.cjs +0 -0
  211. /package/dist/{context → packages/better-stack/src/context}/provider.mjs +0 -0
  212. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/api/plugin.cjs +0 -0
  213. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/api/plugin.mjs +0 -0
  214. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/markdown-editor.cjs +0 -0
  215. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/forms/markdown-editor.mjs +0 -0
  216. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/index.cjs +0 -0
  217. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/loading/index.mjs +0 -0
  218. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/404-page.cjs +0 -0
  219. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/404-page.mjs +0 -0
  220. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/edit-post-page.cjs +0 -0
  221. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/edit-post-page.internal.cjs +0 -0
  222. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/edit-post-page.internal.mjs +0 -0
  223. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/edit-post-page.mjs +0 -0
  224. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/home-page.cjs +0 -0
  225. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/home-page.internal.cjs +0 -0
  226. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/home-page.internal.mjs +0 -0
  227. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/home-page.mjs +0 -0
  228. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/new-post-page.cjs +0 -0
  229. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/new-post-page.internal.cjs +0 -0
  230. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/new-post-page.internal.mjs +0 -0
  231. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/new-post-page.mjs +0 -0
  232. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/post-page.cjs +0 -0
  233. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/post-page.mjs +0 -0
  234. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/tag-page.cjs +0 -0
  235. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/tag-page.internal.cjs +0 -0
  236. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/tag-page.internal.mjs +0 -0
  237. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/pages/tag-page.mjs +0 -0
  238. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/better-blog-attribution.cjs +0 -0
  239. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/better-blog-attribution.mjs +0 -0
  240. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/default-error.cjs +0 -0
  241. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/default-error.mjs +0 -0
  242. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/defaults.cjs +0 -0
  243. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/defaults.mjs +0 -0
  244. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/error-placeholder.cjs +0 -0
  245. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/error-placeholder.mjs +0 -0
  246. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/highlight-text.cjs +0 -0
  247. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/highlight-text.mjs +0 -0
  248. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/markdown-content.cjs +0 -0
  249. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/markdown-content.mjs +0 -0
  250. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/page-header.cjs +0 -0
  251. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/page-header.mjs +0 -0
  252. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/page-layout.cjs +0 -0
  253. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/page-layout.mjs +0 -0
  254. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/page-wrapper.cjs +0 -0
  255. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/page-wrapper.mjs +0 -0
  256. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/search-input.cjs +0 -0
  257. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/search-input.mjs +0 -0
  258. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/use-route-lifecycle.cjs +0 -0
  259. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/components/shared/use-route-lifecycle.mjs +0 -0
  260. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/hooks/use-debounce.cjs +0 -0
  261. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/hooks/use-debounce.mjs +0 -0
  262. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-card.cjs +0 -0
  263. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-card.mjs +0 -0
  264. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-common.cjs +0 -0
  265. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-common.mjs +0 -0
  266. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-forms.cjs +0 -0
  267. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-forms.mjs +0 -0
  268. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-list.cjs +0 -0
  269. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-list.mjs +0 -0
  270. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-post.cjs +0 -0
  271. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/blog-post.mjs +0 -0
  272. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/index.cjs +0 -0
  273. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/client/localization/index.mjs +0 -0
  274. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/db.cjs +0 -0
  275. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/db.mjs +0 -0
  276. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/schemas.cjs +0 -0
  277. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/schemas.mjs +0 -0
  278. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/utils.cjs +0 -0
  279. /package/dist/{plugins → packages/better-stack/src/plugins}/blog/utils.mjs +0 -0
  280. /package/dist/{plugins → packages/better-stack/src/plugins}/utils.cjs +0 -0
  281. /package/dist/{plugins → packages/better-stack/src/plugins}/utils.mjs +0 -0
@@ -0,0 +1,555 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ const jsxRuntime = require('react/jsx-runtime');
5
+ const cmdk = require('cmdk');
6
+ const lucideReact = require('lucide-react');
7
+ const React = require('react');
8
+ const badge = require('./badge.cjs');
9
+ const command = require('./command.cjs');
10
+ const utils = require('../lib/utils.cjs');
11
+ const useDebounce = require('../hooks/use-debounce.cjs');
12
+
13
+ function _interopNamespaceCompat(e) {
14
+ if (e && typeof e === 'object' && 'default' in e) return e;
15
+ const n = Object.create(null);
16
+ if (e) {
17
+ for (const k in e) {
18
+ n[k] = e[k];
19
+ }
20
+ }
21
+ n.default = e;
22
+ return n;
23
+ }
24
+
25
+ const React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);
26
+
27
+ const EMPTY_ARRAY = [];
28
+ function transToGroupOption(options, groupBy) {
29
+ if (options.length === 0) {
30
+ return {};
31
+ }
32
+ if (!groupBy) {
33
+ return {
34
+ "": options
35
+ };
36
+ }
37
+ const groupOption = {};
38
+ options.forEach((option) => {
39
+ const key = option[groupBy] || "";
40
+ if (!groupOption[key]) {
41
+ groupOption[key] = [];
42
+ }
43
+ groupOption[key].push(option);
44
+ });
45
+ return groupOption;
46
+ }
47
+ function removePickedOption(groupOption, picked) {
48
+ const cloneOption = JSON.parse(JSON.stringify(groupOption));
49
+ for (const [key, value] of Object.entries(cloneOption)) {
50
+ cloneOption[key] = value.filter(
51
+ (val) => !picked.find((p) => p.value === val.value)
52
+ );
53
+ }
54
+ return cloneOption;
55
+ }
56
+ function isOptionsExist(groupOption, targetOption) {
57
+ for (const [, value] of Object.entries(groupOption)) {
58
+ if (value.some((option) => targetOption.find((p) => p.value === option.value))) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ const CommandEmpty = React.forwardRef(({ className, ...props }, forwardedRef) => {
65
+ const render = cmdk.useCommandState((state) => state.filtered.count === 0);
66
+ if (!render) return null;
67
+ return /* @__PURE__ */ jsxRuntime.jsx(
68
+ "div",
69
+ {
70
+ ref: forwardedRef,
71
+ className: utils.cn("py-6 text-center text-sm", className),
72
+ "cmdk-empty": "",
73
+ role: "presentation",
74
+ ...props
75
+ }
76
+ );
77
+ });
78
+ CommandEmpty.displayName = "CommandEmpty";
79
+ const MultipleSelector = React__namespace.forwardRef(
80
+ ({
81
+ value,
82
+ onChange,
83
+ placeholder,
84
+ defaultOptions: arrayDefaultOptions = EMPTY_ARRAY,
85
+ options: arrayOptions,
86
+ delay,
87
+ onSearch,
88
+ onSearchSync,
89
+ loadingIndicator,
90
+ emptyIndicator,
91
+ maxSelected = Number.MAX_SAFE_INTEGER,
92
+ onMaxSelected,
93
+ hidePlaceholderWhenSelected,
94
+ disabled,
95
+ groupBy,
96
+ className,
97
+ badgeClassName,
98
+ selectFirstItem = true,
99
+ creatable = false,
100
+ triggerSearchOnFocus = false,
101
+ commandProps,
102
+ inputProps,
103
+ hideClearAllButton = false
104
+ }, ref) => {
105
+ const inputRef = React__namespace.useRef(null);
106
+ const [open, setOpen] = React__namespace.useState(false);
107
+ const [onScrollbar, setOnScrollbar] = React__namespace.useState(false);
108
+ const [isLoading, setIsLoading] = React__namespace.useState(false);
109
+ const dropdownRef = React__namespace.useRef(null);
110
+ const [selected, setSelected] = React__namespace.useState(
111
+ value || EMPTY_ARRAY
112
+ );
113
+ const [options, setOptions] = React__namespace.useState(
114
+ transToGroupOption(arrayDefaultOptions, groupBy)
115
+ );
116
+ const [inputValue, setInputValue] = React__namespace.useState("");
117
+ const debouncedSearchTerm = useDebounce.useDebounce(inputValue, delay || 500);
118
+ const selectedValue = React.useMemo(() => {
119
+ return {
120
+ selectedValue: [...selected],
121
+ input: inputRef.current,
122
+ focus: () => inputRef?.current?.focus(),
123
+ reset: () => setSelected([])
124
+ };
125
+ }, [selected]);
126
+ React__namespace.useImperativeHandle(ref, () => selectedValue, [selectedValue]);
127
+ const handleClickOutside = (event) => {
128
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target) && inputRef.current && !inputRef.current.contains(event.target)) {
129
+ setOpen(false);
130
+ inputRef.current.blur();
131
+ }
132
+ };
133
+ const handleUnselect = React__namespace.useCallback(
134
+ (option) => {
135
+ const newOptions = selected.filter((s) => s.value !== option.value);
136
+ setSelected(newOptions);
137
+ onChange?.(newOptions);
138
+ },
139
+ [onChange, selected]
140
+ );
141
+ const handleKeyDown = React__namespace.useCallback(
142
+ (e) => {
143
+ const input = inputRef.current;
144
+ if (input) {
145
+ if (e.key === "Delete" || e.key === "Backspace") {
146
+ if (input.value === "" && selected.length > 0) {
147
+ const lastSelectOption = selected[selected.length - 1];
148
+ if (lastSelectOption && !lastSelectOption.fixed) {
149
+ handleUnselect(lastSelectOption);
150
+ }
151
+ }
152
+ }
153
+ if (e.key === "Escape") {
154
+ input.blur();
155
+ }
156
+ }
157
+ },
158
+ [handleUnselect, selected]
159
+ );
160
+ React.useEffect(() => {
161
+ if (open) {
162
+ document.addEventListener("mousedown", handleClickOutside);
163
+ document.addEventListener("touchend", handleClickOutside);
164
+ } else {
165
+ document.removeEventListener("mousedown", handleClickOutside);
166
+ document.removeEventListener("touchend", handleClickOutside);
167
+ }
168
+ return () => {
169
+ document.removeEventListener("mousedown", handleClickOutside);
170
+ document.removeEventListener("touchend", handleClickOutside);
171
+ };
172
+ }, [open]);
173
+ React.useEffect(() => {
174
+ if (value) {
175
+ setSelected(value);
176
+ }
177
+ }, [value]);
178
+ React.useEffect(() => {
179
+ if (!arrayOptions || onSearch) {
180
+ return;
181
+ }
182
+ const newOption = transToGroupOption(
183
+ arrayOptions || EMPTY_ARRAY,
184
+ groupBy
185
+ );
186
+ if (JSON.stringify(newOption) !== JSON.stringify(options)) {
187
+ setOptions(newOption);
188
+ }
189
+ }, [arrayDefaultOptions, arrayOptions, groupBy, onSearch, options]);
190
+ React.useEffect(() => {
191
+ const doSearchSync = () => {
192
+ const res = onSearchSync?.(debouncedSearchTerm);
193
+ setOptions(transToGroupOption(res || [], groupBy));
194
+ };
195
+ const exec = async () => {
196
+ if (!onSearchSync || !open) return;
197
+ if (triggerSearchOnFocus) {
198
+ doSearchSync();
199
+ }
200
+ if (debouncedSearchTerm) {
201
+ doSearchSync();
202
+ }
203
+ };
204
+ void exec();
205
+ }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);
206
+ React.useEffect(() => {
207
+ const doSearch = async () => {
208
+ setIsLoading(true);
209
+ const res = await onSearch?.(debouncedSearchTerm);
210
+ setOptions(transToGroupOption(res || [], groupBy));
211
+ setIsLoading(false);
212
+ };
213
+ const exec = async () => {
214
+ if (!onSearch || !open) return;
215
+ if (triggerSearchOnFocus) {
216
+ await doSearch();
217
+ }
218
+ if (debouncedSearchTerm) {
219
+ await doSearch();
220
+ }
221
+ };
222
+ void exec();
223
+ }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);
224
+ const handleCommandKeyDown = React.useCallback(
225
+ (e) => {
226
+ handleKeyDown(e);
227
+ commandProps?.onKeyDown?.(e);
228
+ },
229
+ [handleKeyDown, commandProps]
230
+ );
231
+ const handleBadgeGroupClick = React.useCallback(() => {
232
+ if (disabled) return;
233
+ inputRef?.current?.focus();
234
+ }, [disabled]);
235
+ const targetOption = React.useMemo(() => {
236
+ return [{ value: inputValue, label: inputValue }];
237
+ }, [inputValue]);
238
+ const handleCommandItemMouseDown = React.useCallback(
239
+ (e) => {
240
+ e.preventDefault();
241
+ e.stopPropagation();
242
+ },
243
+ []
244
+ );
245
+ const handleCommandItemSelect = React.useCallback(
246
+ (value2) => {
247
+ if (selected.length >= maxSelected) {
248
+ onMaxSelected?.(selected.length);
249
+ return;
250
+ }
251
+ setInputValue("");
252
+ const newOptions = [...selected, { value: value2, label: value2 }];
253
+ setSelected(newOptions);
254
+ onChange?.(newOptions);
255
+ },
256
+ [maxSelected, onMaxSelected, selected, onChange]
257
+ );
258
+ const CreatableItem = () => {
259
+ if (!creatable) return void 0;
260
+ if (isOptionsExist(options, targetOption) || selected.find((s) => s.value === inputValue)) {
261
+ return void 0;
262
+ }
263
+ const Item = /* @__PURE__ */ jsxRuntime.jsx(
264
+ command.CommandItem,
265
+ {
266
+ value: inputValue,
267
+ className: "cursor-pointer",
268
+ onMouseDown: handleCommandItemMouseDown,
269
+ onSelect: handleCommandItemSelect,
270
+ children: `Create "${inputValue}"`
271
+ }
272
+ );
273
+ if (!onSearch && inputValue.length > 0) {
274
+ return Item;
275
+ }
276
+ if (onSearch && debouncedSearchTerm.length > 0 && !isLoading) {
277
+ return Item;
278
+ }
279
+ return void 0;
280
+ };
281
+ const EmptyItem = React__namespace.useCallback(() => {
282
+ if (!emptyIndicator) return void 0;
283
+ if (onSearch && !creatable && Object.keys(options).length === 0) {
284
+ return /* @__PURE__ */ jsxRuntime.jsx(command.CommandItem, { value: "-", disabled: true, children: emptyIndicator });
285
+ }
286
+ return /* @__PURE__ */ jsxRuntime.jsx(CommandEmpty, { children: emptyIndicator });
287
+ }, [creatable, emptyIndicator, onSearch, options]);
288
+ const selectables = React__namespace.useMemo(
289
+ () => removePickedOption(options, selected),
290
+ [options, selected]
291
+ );
292
+ const commandFilter = React__namespace.useCallback(() => {
293
+ if (commandProps?.filter) {
294
+ return commandProps.filter;
295
+ }
296
+ if (creatable) {
297
+ return (value2, search) => {
298
+ return value2.toLowerCase().includes(search.toLowerCase()) ? 1 : -1;
299
+ };
300
+ }
301
+ return void 0;
302
+ }, [creatable, commandProps?.filter]);
303
+ const handlePrimitiveInputValueChange = React.useCallback(
304
+ (value2) => {
305
+ setInputValue(value2);
306
+ inputProps?.onValueChange?.(value2);
307
+ },
308
+ [inputProps]
309
+ );
310
+ const handlePrimitiveInputBlur = React.useCallback(
311
+ (event) => {
312
+ if (!onScrollbar) {
313
+ setOpen(false);
314
+ }
315
+ inputProps?.onBlur?.(event);
316
+ },
317
+ [onScrollbar, inputProps]
318
+ );
319
+ const handlePrimitiveInputFocus = React.useCallback(
320
+ (event) => {
321
+ setOpen(true);
322
+ if (triggerSearchOnFocus) {
323
+ onSearch?.(debouncedSearchTerm);
324
+ }
325
+ inputProps?.onFocus?.(event);
326
+ },
327
+ [triggerSearchOnFocus, debouncedSearchTerm, inputProps, onSearch]
328
+ );
329
+ const handleClearAllButtonClick = React.useCallback(() => {
330
+ setSelected(selected.filter((s) => s.fixed));
331
+ onChange?.(selected.filter((s) => s.fixed));
332
+ }, [selected, onChange]);
333
+ const handleCommandListMouseLeave = React.useCallback(() => {
334
+ setOnScrollbar(false);
335
+ }, []);
336
+ const handleCommandListMouseEnter = React.useCallback(() => {
337
+ setOnScrollbar(true);
338
+ }, []);
339
+ const handleCommandListMouseUp = React.useCallback(() => {
340
+ inputRef?.current?.focus();
341
+ }, []);
342
+ const handleCommandGroupItemMouseDown = React.useCallback(
343
+ (e) => {
344
+ e.preventDefault();
345
+ e.stopPropagation();
346
+ },
347
+ []
348
+ );
349
+ const handleCommandGroupItemSelect = React.useCallback(
350
+ (option) => {
351
+ if (selected.length >= maxSelected) {
352
+ onMaxSelected?.(selected.length);
353
+ return;
354
+ }
355
+ setInputValue("");
356
+ const newOptions = [...selected, option];
357
+ setSelected(newOptions);
358
+ onChange?.(newOptions);
359
+ },
360
+ [maxSelected, onMaxSelected, selected, onChange]
361
+ );
362
+ return /* @__PURE__ */ jsxRuntime.jsxs(
363
+ command.Command,
364
+ {
365
+ ref: dropdownRef,
366
+ ...commandProps,
367
+ onKeyDown: handleCommandKeyDown,
368
+ className: utils.cn(
369
+ "h-auto overflow-visible bg-transparent",
370
+ commandProps?.className
371
+ ),
372
+ shouldFilter: commandProps?.shouldFilter !== void 0 ? commandProps.shouldFilter : !onSearch,
373
+ filter: commandFilter(),
374
+ children: [
375
+ /* @__PURE__ */ jsxRuntime.jsx(
376
+ "div",
377
+ {
378
+ className: utils.cn(
379
+ "min-h-10 rounded-md border border-input text-sm ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
380
+ {
381
+ "px-3 py-2": selected.length !== 0,
382
+ "cursor-text": !disabled && selected.length !== 0
383
+ },
384
+ className
385
+ ),
386
+ onClick: handleBadgeGroupClick,
387
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-wrap gap-1", children: [
388
+ selected.map((option) => {
389
+ return /* @__PURE__ */ jsxRuntime.jsx(
390
+ OptionBadge,
391
+ {
392
+ option,
393
+ onUnselect: handleUnselect,
394
+ badgeClassName,
395
+ disabled
396
+ },
397
+ option.value
398
+ );
399
+ }),
400
+ /* @__PURE__ */ jsxRuntime.jsx(
401
+ cmdk.Command.Input,
402
+ {
403
+ ...inputProps,
404
+ ref: inputRef,
405
+ value: inputValue,
406
+ disabled,
407
+ onValueChange: handlePrimitiveInputValueChange,
408
+ onBlur: handlePrimitiveInputBlur,
409
+ onFocus: handlePrimitiveInputFocus,
410
+ placeholder: hidePlaceholderWhenSelected && selected.length !== 0 ? "" : placeholder,
411
+ className: utils.cn(
412
+ "flex-1 bg-transparent outline-none placeholder:text-muted-foreground",
413
+ {
414
+ "w-full": hidePlaceholderWhenSelected,
415
+ "px-3 py-2": selected.length === 0,
416
+ "ml-1": selected.length !== 0
417
+ },
418
+ inputProps?.className
419
+ )
420
+ }
421
+ ),
422
+ /* @__PURE__ */ jsxRuntime.jsx(
423
+ "button",
424
+ {
425
+ type: "button",
426
+ onClick: handleClearAllButtonClick,
427
+ className: utils.cn(
428
+ "absolute right-0 h-6 w-6 p-0",
429
+ (hideClearAllButton || disabled || selected.length < 1 || selected.filter((s) => s.fixed).length === selected.length) && "hidden"
430
+ ),
431
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {})
432
+ }
433
+ )
434
+ ] })
435
+ }
436
+ ),
437
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: open && /* @__PURE__ */ jsxRuntime.jsx(
438
+ command.CommandList,
439
+ {
440
+ className: "absolute top-1 z-10 w-full rounded-md border bg-popover text-popover-foreground shadow-md outline-none animate-in",
441
+ onMouseLeave: handleCommandListMouseLeave,
442
+ onMouseEnter: handleCommandListMouseEnter,
443
+ onMouseUp: handleCommandListMouseUp,
444
+ children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loadingIndicator }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
445
+ EmptyItem(),
446
+ CreatableItem(),
447
+ !selectFirstItem && /* @__PURE__ */ jsxRuntime.jsx(command.CommandItem, { value: "-", className: "hidden" }),
448
+ Object.entries(selectables).map(([key, dropdowns]) => /* @__PURE__ */ jsxRuntime.jsx(
449
+ command.CommandGroup,
450
+ {
451
+ heading: key,
452
+ className: "h-full overflow-auto",
453
+ children: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: dropdowns.map((option) => {
454
+ return /* @__PURE__ */ jsxRuntime.jsx(
455
+ CommandGroupItem,
456
+ {
457
+ option,
458
+ onSelect: handleCommandGroupItemSelect,
459
+ onMouseDown: handleCommandGroupItemMouseDown
460
+ },
461
+ option.value
462
+ );
463
+ }) })
464
+ },
465
+ key
466
+ ))
467
+ ] })
468
+ }
469
+ ) })
470
+ ]
471
+ }
472
+ );
473
+ }
474
+ );
475
+ MultipleSelector.displayName = "MultipleSelector";
476
+ const OptionBadge = ({
477
+ option,
478
+ onUnselect,
479
+ badgeClassName,
480
+ disabled
481
+ }) => {
482
+ const handleUnselect = React.useCallback(() => {
483
+ onUnselect(option);
484
+ }, [onUnselect, option]);
485
+ const handleKeyDown = React.useCallback(
486
+ (e) => {
487
+ if (e.key === "Enter") {
488
+ onUnselect(option);
489
+ }
490
+ },
491
+ [onUnselect, option]
492
+ );
493
+ const handleMouseDown = React.useCallback(
494
+ (e) => {
495
+ e.preventDefault();
496
+ e.stopPropagation();
497
+ },
498
+ []
499
+ );
500
+ return /* @__PURE__ */ jsxRuntime.jsxs(
501
+ badge.Badge,
502
+ {
503
+ className: utils.cn(
504
+ "data-disabled:bg-muted-foreground data-disabled:text-muted data-disabled:hover:bg-muted-foreground",
505
+ "data-fixed:bg-muted-foreground data-fixed:text-muted data-fixed:hover:bg-muted-foreground",
506
+ badgeClassName
507
+ ),
508
+ "data-fixed": option.fixed,
509
+ "data-disabled": disabled || void 0,
510
+ children: [
511
+ option.label,
512
+ /* @__PURE__ */ jsxRuntime.jsx(
513
+ "button",
514
+ {
515
+ className: utils.cn(
516
+ "ml-1 rounded-full outline-none ring-offset-background focus:ring-2 focus:ring-ring focus:ring-offset-2",
517
+ (disabled || option.fixed) && "hidden"
518
+ ),
519
+ onKeyDown: handleKeyDown,
520
+ onMouseDown: handleMouseDown,
521
+ onClick: handleUnselect,
522
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3 w-3 text-muted-foreground hover:text-foreground" })
523
+ }
524
+ )
525
+ ]
526
+ },
527
+ option.value
528
+ );
529
+ };
530
+ const CommandGroupItem = ({
531
+ option,
532
+ onSelect,
533
+ onMouseDown
534
+ }) => {
535
+ const handleSelect = React.useCallback(() => {
536
+ onSelect(option);
537
+ }, [onSelect, option]);
538
+ return /* @__PURE__ */ jsxRuntime.jsx(
539
+ command.CommandItem,
540
+ {
541
+ value: option.value,
542
+ disabled: option.disable,
543
+ onMouseDown,
544
+ onSelect: handleSelect,
545
+ className: utils.cn(
546
+ "cursor-pointer",
547
+ option.disable && "cursor-default text-muted-foreground"
548
+ ),
549
+ children: option.label
550
+ },
551
+ option.value
552
+ );
553
+ };
554
+
555
+ module.exports = MultipleSelector;