@btst/stack 1.4.0 → 1.5.0

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 (468) hide show
  1. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/date/index.cjs +85 -0
  2. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/date/index.mjs +83 -0
  3. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/date/mini.cjs +237 -0
  4. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/date/mini.mjs +235 -0
  5. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/tzName/index.cjs +41 -0
  6. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/tzName/index.mjs +39 -0
  7. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/tzOffset/index.cjs +46 -0
  8. package/dist/node_modules/.pnpm/@date-fns_tz@1.4.1/node_modules/@date-fns/tz/tzOffset/index.mjs +44 -0
  9. package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_947719a27ff11ec6f09710dd9e85efc5/node_modules/@radix-ui/react-accordion/dist/index.cjs +321 -0
  10. package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_947719a27ff11ec6f09710dd9e85efc5/node_modules/@radix-ui/react-accordion/dist/index.mjs +306 -0
  11. package/dist/node_modules/.pnpm/@radix-ui_react-checkbox@1.3.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_reac_c1e3fbdebd5ee34a254141dc5a2dcd28/node_modules/@radix-ui/react-checkbox/dist/index.cjs +296 -0
  12. package/dist/node_modules/.pnpm/@radix-ui_react-checkbox@1.3.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_reac_c1e3fbdebd5ee34a254141dc5a2dcd28/node_modules/@radix-ui/react-checkbox/dist/index.mjs +271 -0
  13. package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types__d025a77f62ee83ca6bd8b0ea1f9de738/node_modules/@radix-ui/react-collapsible/dist/index.cjs +168 -0
  14. package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types__d025a77f62ee83ca6bd8b0ea1f9de738/node_modules/@radix-ui/react-collapsible/dist/index.mjs +146 -0
  15. package/dist/node_modules/.pnpm/@radix-ui_react-popover@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.6__@types_reac_5c5a3ca63b34dfe7d9d23f1e8cee675c/node_modules/@radix-ui/react-popover/dist/index.cjs +325 -0
  16. package/dist/node_modules/.pnpm/@radix-ui_react-popover@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.6__@types_reac_5c5a3ca63b34dfe7d9d23f1e8cee675c/node_modules/@radix-ui/react-popover/dist/index.mjs +299 -0
  17. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.4_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_43b950ce9f6b8d55739cce33fe173a1c/node_modules/@radix-ui/react-primitive/dist/index.cjs +56 -0
  18. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.4_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_43b950ce9f6b8d55739cce33fe173a1c/node_modules/@radix-ui/react-primitive/dist/index.mjs +40 -0
  19. package/dist/node_modules/.pnpm/@radix-ui_react-radio-group@1.3.8_@types_react-dom@19.2.3_@types_react@19.2.6__@types_r_e0d4db654009398ea41c8e459eeae4ee/node_modules/@radix-ui/react-radio-group/dist/index.cjs +304 -0
  20. package/dist/node_modules/.pnpm/@radix-ui_react-radio-group@1.3.8_@types_react-dom@19.2.3_@types_react@19.2.6__@types_r_e0d4db654009398ea41c8e459eeae4ee/node_modules/@radix-ui/react-radio-group/dist/index.mjs +283 -0
  21. package/dist/node_modules/.pnpm/@radix-ui_react-separator@1.1.8_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_8aae318b88145540882c32de0262377a/node_modules/@radix-ui/react-separator/dist/index.cjs +47 -0
  22. package/dist/node_modules/.pnpm/@radix-ui_react-separator@1.1.8_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_8aae318b88145540882c32de0262377a/node_modules/@radix-ui/react-separator/dist/index.mjs +30 -0
  23. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/DayPicker.cjs +326 -0
  24. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/DayPicker.mjs +320 -0
  25. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/UI.cjs +122 -0
  26. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/UI.mjs +122 -0
  27. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/CalendarDay.cjs +35 -0
  28. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/CalendarDay.mjs +33 -0
  29. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.cjs +16 -0
  30. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.mjs +14 -0
  31. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.cjs +15 -0
  32. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.mjs +13 -0
  33. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/DateLib.cjs +577 -0
  34. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/classes/DateLib.mjs +573 -0
  35. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Button.cjs +19 -0
  36. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Button.mjs +13 -0
  37. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/CaptionLabel.cjs +19 -0
  38. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/CaptionLabel.mjs +13 -0
  39. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Chevron.cjs +26 -0
  40. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Chevron.mjs +20 -0
  41. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Day.cjs +24 -0
  42. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Day.mjs +18 -0
  43. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/DayButton.cjs +25 -0
  44. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/DayButton.mjs +19 -0
  45. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Dropdown.cjs +27 -0
  46. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Dropdown.mjs +21 -0
  47. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/DropdownNav.cjs +19 -0
  48. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/DropdownNav.mjs +13 -0
  49. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Footer.cjs +19 -0
  50. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Footer.mjs +13 -0
  51. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Month.cjs +21 -0
  52. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Month.mjs +15 -0
  53. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/MonthCaption.cjs +20 -0
  54. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/MonthCaption.mjs +14 -0
  55. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/MonthGrid.cjs +19 -0
  56. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/MonthGrid.mjs +13 -0
  57. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Months.cjs +19 -0
  58. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Months.mjs +13 -0
  59. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.cjs +21 -0
  60. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.mjs +15 -0
  61. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Nav.cjs +37 -0
  62. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Nav.mjs +31 -0
  63. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/NextMonthButton.cjs +21 -0
  64. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/NextMonthButton.mjs +15 -0
  65. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Option.cjs +19 -0
  66. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Option.mjs +13 -0
  67. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.cjs +21 -0
  68. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.mjs +15 -0
  69. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Root.cjs +20 -0
  70. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Root.mjs +14 -0
  71. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Select.cjs +19 -0
  72. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Select.mjs +13 -0
  73. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Week.cjs +20 -0
  74. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Week.mjs +14 -0
  75. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/WeekNumber.cjs +20 -0
  76. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/WeekNumber.mjs +14 -0
  77. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.cjs +19 -0
  78. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.mjs +13 -0
  79. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Weekday.cjs +19 -0
  80. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Weekday.mjs +13 -0
  81. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Weekdays.cjs +20 -0
  82. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Weekdays.mjs +14 -0
  83. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Weeks.cjs +19 -0
  84. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/Weeks.mjs +13 -0
  85. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/YearsDropdown.cjs +21 -0
  86. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/YearsDropdown.mjs +15 -0
  87. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/custom-components.cjs +57 -0
  88. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/components/custom-components.mjs +26 -0
  89. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatCaption.cjs +29 -0
  90. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatCaption.mjs +26 -0
  91. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatDay.cjs +21 -0
  92. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatDay.mjs +19 -0
  93. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.cjs +20 -0
  94. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.mjs +18 -0
  95. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.cjs +23 -0
  96. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.mjs +21 -0
  97. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.cjs +15 -0
  98. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.mjs +13 -0
  99. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.cjs +21 -0
  100. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.mjs +19 -0
  101. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.cjs +26 -0
  102. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.mjs +23 -0
  103. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/index.cjs +21 -0
  104. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/formatters/index.mjs +7 -0
  105. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.cjs +75 -0
  106. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.mjs +73 -0
  107. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.cjs +97 -0
  108. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.mjs +95 -0
  109. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.cjs +24 -0
  110. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.mjs +22 -0
  111. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.cjs +30 -0
  112. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.mjs +28 -0
  113. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.cjs +35 -0
  114. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.mjs +33 -0
  115. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getComponents.cjs +22 -0
  116. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getComponents.mjs +20 -0
  117. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.cjs +29 -0
  118. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.mjs +27 -0
  119. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDates.cjs +61 -0
  120. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDates.mjs +59 -0
  121. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDays.cjs +21 -0
  122. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDays.mjs +19 -0
  123. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.cjs +35 -0
  124. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.mjs +33 -0
  125. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.cjs +26 -0
  126. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.mjs +24 -0
  127. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.cjs +48 -0
  128. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.mjs +46 -0
  129. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getFormatters.cjs +26 -0
  130. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getFormatters.mjs +24 -0
  131. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.cjs +29 -0
  132. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.mjs +27 -0
  133. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getLabels.cjs +55 -0
  134. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getLabels.mjs +53 -0
  135. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.cjs +35 -0
  136. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.mjs +33 -0
  137. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getMonths.cjs +71 -0
  138. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getMonths.mjs +69 -0
  139. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.cjs +53 -0
  140. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.mjs +51 -0
  141. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.cjs +42 -0
  142. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.mjs +40 -0
  143. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.cjs +38 -0
  144. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.mjs +36 -0
  145. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.cjs +39 -0
  146. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.mjs +37 -0
  147. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.cjs +29 -0
  148. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.mjs +27 -0
  149. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.cjs +28 -0
  150. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.mjs +26 -0
  151. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getWeeks.cjs +16 -0
  152. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getWeeks.mjs +14 -0
  153. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.cjs +38 -0
  154. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.mjs +36 -0
  155. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.cjs +29 -0
  156. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.mjs +27 -0
  157. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.cjs +33 -0
  158. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.mjs +31 -0
  159. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/index.cjs +29 -0
  160. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/index.mjs +11 -0
  161. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelDayButton.cjs +35 -0
  162. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelDayButton.mjs +32 -0
  163. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelGrid.cjs +28 -0
  164. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelGrid.mjs +25 -0
  165. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelGridcell.cjs +24 -0
  166. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelGridcell.mjs +22 -0
  167. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.cjs +16 -0
  168. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.mjs +14 -0
  169. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelNav.cjs +15 -0
  170. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelNav.mjs +13 -0
  171. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelNext.cjs +18 -0
  172. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelNext.mjs +16 -0
  173. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelPrevious.cjs +17 -0
  174. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelPrevious.mjs +15 -0
  175. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.cjs +17 -0
  176. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.mjs +15 -0
  177. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.cjs +16 -0
  178. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.mjs +14 -0
  179. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelWeekday.cjs +20 -0
  180. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelWeekday.mjs +18 -0
  181. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.cjs +16 -0
  182. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.mjs +14 -0
  183. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/locale/en-US.cjs +69 -0
  184. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/locale/en-US.mjs +67 -0
  185. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/selection/useMulti.cjs +59 -0
  186. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/selection/useMulti.mjs +57 -0
  187. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/selection/useRange.cjs +47 -0
  188. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/selection/useRange.mjs +45 -0
  189. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/selection/useSingle.cjs +46 -0
  190. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/selection/useSingle.mjs +44 -0
  191. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useAnimation.cjs +176 -0
  192. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useAnimation.mjs +174 -0
  193. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useCalendar.cjs +115 -0
  194. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useCalendar.mjs +113 -0
  195. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useDayPicker.cjs +28 -0
  196. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useDayPicker.mjs +25 -0
  197. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useFocus.cjs +58 -0
  198. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useFocus.mjs +56 -0
  199. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useSelection.cjs +33 -0
  200. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/useSelection.mjs +31 -0
  201. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/addToRange.cjs +97 -0
  202. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/addToRange.mjs +95 -0
  203. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.cjs +59 -0
  204. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.mjs +57 -0
  205. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.cjs +64 -0
  206. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.mjs +62 -0
  207. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.cjs +32 -0
  208. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.mjs +30 -0
  209. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.cjs +76 -0
  210. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.mjs +74 -0
  211. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.cjs +37 -0
  212. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.mjs +35 -0
  213. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.cjs +23 -0
  214. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.mjs +21 -0
  215. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/toTimeZone.cjs +18 -0
  216. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/toTimeZone.mjs +16 -0
  217. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/typeguards.cjs +73 -0
  218. package/dist/node_modules/.pnpm/react-day-picker@9.12.0_react@19.2.0/node_modules/react-day-picker/dist/esm/utils/typeguards.mjs +66 -0
  219. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-interface.cjs +36 -3
  220. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-interface.mjs +36 -3
  221. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-layout.cjs +16 -3
  222. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-layout.mjs +16 -3
  223. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-message.cjs +35 -3
  224. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-message.mjs +35 -3
  225. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-sidebar.cjs +131 -124
  226. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-sidebar.mjs +131 -124
  227. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/tool-call-display.cjs +123 -0
  228. package/dist/packages/better-stack/src/plugins/ai-chat/client/components/tool-call-display.mjs +121 -0
  229. package/dist/packages/better-stack/src/plugins/ai-chat/schemas.cjs +23 -23
  230. package/dist/packages/better-stack/src/plugins/blog/api/plugin.cjs +28 -12
  231. package/dist/packages/better-stack/src/plugins/blog/api/plugin.mjs +18 -2
  232. package/dist/packages/better-stack/src/plugins/blog/client/components/loading/form-page-skeleton.cjs +1 -1
  233. package/dist/packages/better-stack/src/plugins/blog/client/components/loading/form-page-skeleton.mjs +1 -1
  234. package/dist/packages/better-stack/src/plugins/blog/client/components/loading/list-page-skeleton.cjs +1 -1
  235. package/dist/packages/better-stack/src/plugins/blog/client/components/loading/list-page-skeleton.mjs +1 -1
  236. package/dist/packages/better-stack/src/plugins/blog/client/components/loading/post-page-skeleton.cjs +1 -1
  237. package/dist/packages/better-stack/src/plugins/blog/client/components/loading/post-page-skeleton.mjs +1 -1
  238. package/dist/packages/better-stack/src/plugins/blog/client/components/shared/page-wrapper.cjs +10 -6
  239. package/dist/packages/better-stack/src/plugins/blog/client/components/shared/page-wrapper.mjs +11 -7
  240. package/dist/packages/better-stack/src/plugins/blog/schemas.cjs +17 -17
  241. package/dist/packages/better-stack/src/plugins/cms/api/plugin.cjs +457 -0
  242. package/dist/packages/better-stack/src/plugins/cms/api/plugin.mjs +455 -0
  243. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.cjs +299 -0
  244. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.mjs +297 -0
  245. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/file-upload.cjs +118 -0
  246. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/file-upload.mjs +116 -0
  247. package/dist/packages/better-stack/src/plugins/cms/client/components/loading/dashboard-skeleton.cjs +18 -0
  248. package/dist/packages/better-stack/src/plugins/cms/client/components/loading/dashboard-skeleton.mjs +16 -0
  249. package/dist/packages/better-stack/src/plugins/cms/client/components/loading/editor-skeleton.cjs +32 -0
  250. package/dist/packages/better-stack/src/plugins/cms/client/components/loading/editor-skeleton.mjs +30 -0
  251. package/dist/packages/better-stack/src/plugins/cms/client/components/loading/list-skeleton.cjs +32 -0
  252. package/dist/packages/better-stack/src/plugins/cms/client/components/loading/list-skeleton.mjs +30 -0
  253. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/404-page.cjs +20 -0
  254. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/404-page.mjs +18 -0
  255. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-editor-page.cjs +46 -0
  256. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-editor-page.internal.cjs +83 -0
  257. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-editor-page.internal.mjs +81 -0
  258. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-editor-page.mjs +44 -0
  259. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-list-page.cjs +43 -0
  260. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-list-page.internal.cjs +152 -0
  261. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-list-page.internal.mjs +150 -0
  262. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/content-list-page.mjs +41 -0
  263. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/dashboard-page.cjs +39 -0
  264. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/dashboard-page.internal.cjs +68 -0
  265. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/dashboard-page.internal.mjs +66 -0
  266. package/dist/packages/better-stack/src/plugins/cms/client/components/pages/dashboard-page.mjs +37 -0
  267. package/dist/packages/better-stack/src/plugins/cms/client/components/shared/default-error.cjs +17 -0
  268. package/dist/packages/better-stack/src/plugins/cms/client/components/shared/default-error.mjs +15 -0
  269. package/dist/packages/better-stack/src/plugins/cms/client/components/shared/empty-state.cjs +16 -0
  270. package/dist/packages/better-stack/src/plugins/cms/client/components/shared/empty-state.mjs +14 -0
  271. package/dist/packages/better-stack/src/plugins/cms/client/components/shared/page-wrapper.cjs +27 -0
  272. package/dist/packages/better-stack/src/plugins/cms/client/components/shared/page-wrapper.mjs +25 -0
  273. package/dist/packages/better-stack/src/plugins/cms/client/hooks/cms-hooks.cjs +402 -0
  274. package/dist/packages/better-stack/src/plugins/cms/client/hooks/cms-hooks.mjs +390 -0
  275. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-common.cjs +29 -0
  276. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-common.mjs +27 -0
  277. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-dashboard.cjs +13 -0
  278. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-dashboard.mjs +11 -0
  279. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-editor.cjs +12 -0
  280. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-editor.mjs +10 -0
  281. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-list.cjs +18 -0
  282. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-list.mjs +16 -0
  283. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-toasts.cjs +12 -0
  284. package/dist/packages/better-stack/src/plugins/cms/client/localization/cms-toasts.mjs +10 -0
  285. package/dist/packages/better-stack/src/plugins/cms/client/localization/index.cjs +17 -0
  286. package/dist/packages/better-stack/src/plugins/cms/client/localization/index.mjs +15 -0
  287. package/dist/packages/better-stack/src/plugins/cms/client/plugin.cjs +185 -0
  288. package/dist/packages/better-stack/src/plugins/cms/client/plugin.mjs +183 -0
  289. package/dist/packages/better-stack/src/plugins/cms/db.cjs +76 -0
  290. package/dist/packages/better-stack/src/plugins/cms/db.mjs +74 -0
  291. package/dist/packages/better-stack/src/plugins/cms/schemas.cjs +54 -0
  292. package/dist/packages/better-stack/src/plugins/cms/schemas.mjs +49 -0
  293. package/dist/packages/better-stack/src/plugins/cms/utils.cjs +15 -0
  294. package/dist/packages/better-stack/src/plugins/cms/utils.mjs +9 -0
  295. package/dist/packages/ui/src/components/accordion.cjs +67 -0
  296. package/dist/packages/ui/src/components/accordion.mjs +62 -0
  297. package/dist/packages/ui/src/components/calendar.cjs +205 -0
  298. package/dist/packages/ui/src/components/calendar.mjs +188 -0
  299. package/dist/packages/ui/src/components/checkbox.cjs +34 -0
  300. package/dist/packages/ui/src/components/checkbox.mjs +32 -0
  301. package/dist/packages/ui/src/components/date-picker.cjs +41 -0
  302. package/dist/packages/ui/src/components/date-picker.mjs +39 -0
  303. package/dist/packages/ui/src/components/form.mjs +1 -1
  304. package/dist/packages/{better-stack/src/plugins/blog/client/components/shared → ui/src/components}/page-layout.cjs +2 -1
  305. package/dist/packages/{better-stack/src/plugins/blog/client/components/shared → ui/src/components}/page-layout.mjs +2 -1
  306. package/dist/packages/ui/src/components/page-wrapper.cjs +20 -0
  307. package/dist/packages/ui/src/components/page-wrapper.mjs +18 -0
  308. package/dist/packages/ui/src/components/popover.cjs +41 -0
  309. package/dist/packages/ui/src/components/popover.mjs +37 -0
  310. package/dist/packages/ui/src/components/radio-group.cjs +48 -0
  311. package/dist/packages/ui/src/components/radio-group.mjs +45 -0
  312. package/dist/packages/ui/src/components/separator.cjs +29 -0
  313. package/dist/packages/ui/src/components/separator.mjs +27 -0
  314. package/dist/packages/ui/src/components/table.cjs +89 -0
  315. package/dist/packages/ui/src/components/table.mjs +82 -0
  316. package/dist/packages/ui/src/components/ui/auto-form/common/label.cjs +18 -0
  317. package/dist/packages/ui/src/components/ui/auto-form/common/label.mjs +16 -0
  318. package/dist/packages/ui/src/components/ui/auto-form/common/tooltip.cjs +9 -0
  319. package/dist/packages/ui/src/components/ui/auto-form/common/tooltip.mjs +7 -0
  320. package/dist/packages/ui/src/components/ui/auto-form/config.cjs +42 -0
  321. package/dist/packages/ui/src/components/ui/auto-form/config.mjs +39 -0
  322. package/dist/packages/ui/src/components/ui/auto-form/dependencies.cjs +48 -0
  323. package/dist/packages/ui/src/components/ui/auto-form/dependencies.mjs +46 -0
  324. package/dist/packages/ui/src/components/ui/auto-form/fields/array.cjs +103 -0
  325. package/dist/packages/ui/src/components/ui/auto-form/fields/array.mjs +87 -0
  326. package/dist/packages/ui/src/components/ui/auto-form/fields/checkbox.cjs +38 -0
  327. package/dist/packages/ui/src/components/ui/auto-form/fields/checkbox.mjs +36 -0
  328. package/dist/packages/ui/src/components/ui/auto-form/fields/date.cjs +37 -0
  329. package/dist/packages/ui/src/components/ui/auto-form/fields/date.mjs +35 -0
  330. package/dist/packages/ui/src/components/ui/auto-form/fields/enum.cjs +73 -0
  331. package/dist/packages/ui/src/components/ui/auto-form/fields/enum.mjs +71 -0
  332. package/dist/packages/ui/src/components/ui/auto-form/fields/file.cjs +63 -0
  333. package/dist/packages/ui/src/components/ui/auto-form/fields/file.mjs +61 -0
  334. package/dist/packages/ui/src/components/ui/auto-form/fields/input.cjs +32 -0
  335. package/dist/packages/ui/src/components/ui/auto-form/fields/input.mjs +30 -0
  336. package/dist/packages/ui/src/components/ui/auto-form/fields/number.cjs +31 -0
  337. package/dist/packages/ui/src/components/ui/auto-form/fields/number.mjs +29 -0
  338. package/dist/packages/ui/src/components/ui/auto-form/fields/object.cjs +149 -0
  339. package/dist/packages/ui/src/components/ui/auto-form/fields/object.mjs +133 -0
  340. package/dist/packages/ui/src/components/ui/auto-form/fields/radio-group.cjs +67 -0
  341. package/dist/packages/ui/src/components/ui/auto-form/fields/radio-group.mjs +65 -0
  342. package/dist/packages/ui/src/components/ui/auto-form/fields/switch.cjs +38 -0
  343. package/dist/packages/ui/src/components/ui/auto-form/fields/switch.mjs +36 -0
  344. package/dist/packages/ui/src/components/ui/auto-form/fields/textarea.cjs +31 -0
  345. package/dist/packages/ui/src/components/ui/auto-form/fields/textarea.mjs +29 -0
  346. package/dist/packages/ui/src/components/ui/auto-form/index.cjs +87 -0
  347. package/dist/packages/ui/src/components/ui/auto-form/index.mjs +78 -0
  348. package/dist/packages/ui/src/components/ui/auto-form/types.cjs +11 -0
  349. package/dist/packages/ui/src/components/ui/auto-form/types.mjs +9 -0
  350. package/dist/packages/ui/src/components/ui/auto-form/utils.cjs +179 -0
  351. package/dist/packages/ui/src/components/ui/auto-form/utils.mjs +169 -0
  352. package/dist/plugins/ai-chat/api/index.d.cts +1 -1
  353. package/dist/plugins/ai-chat/api/index.d.mts +1 -1
  354. package/dist/plugins/ai-chat/api/index.d.ts +1 -1
  355. package/dist/plugins/ai-chat/client/components/index.cjs +2 -0
  356. package/dist/plugins/ai-chat/client/components/index.d.cts +1 -1
  357. package/dist/plugins/ai-chat/client/components/index.d.mts +1 -1
  358. package/dist/plugins/ai-chat/client/components/index.d.ts +1 -1
  359. package/dist/plugins/ai-chat/client/components/index.mjs +1 -0
  360. package/dist/plugins/ai-chat/client/hooks/index.d.cts +1 -1
  361. package/dist/plugins/ai-chat/client/hooks/index.d.mts +1 -1
  362. package/dist/plugins/ai-chat/client/hooks/index.d.ts +1 -1
  363. package/dist/plugins/ai-chat/client/index.cjs +2 -0
  364. package/dist/plugins/ai-chat/client/index.d.cts +5 -176
  365. package/dist/plugins/ai-chat/client/index.d.mts +5 -176
  366. package/dist/plugins/ai-chat/client/index.d.ts +5 -176
  367. package/dist/plugins/ai-chat/client/index.mjs +1 -0
  368. package/dist/plugins/ai-chat/query-keys.d.cts +56 -250
  369. package/dist/plugins/ai-chat/query-keys.d.mts +56 -250
  370. package/dist/plugins/ai-chat/query-keys.d.ts +56 -250
  371. package/dist/plugins/blog/client/components/shared/markdown-content-styles.css +6 -0
  372. package/dist/plugins/blog/query-keys.d.cts +102 -362
  373. package/dist/plugins/blog/query-keys.d.mts +102 -362
  374. package/dist/plugins/blog/query-keys.d.ts +102 -362
  375. package/dist/plugins/cms/api/index.cjs +7 -0
  376. package/dist/plugins/cms/api/index.d.cts +101 -0
  377. package/dist/plugins/cms/api/index.d.mts +101 -0
  378. package/dist/plugins/cms/api/index.d.ts +101 -0
  379. package/dist/plugins/cms/api/index.mjs +1 -0
  380. package/dist/plugins/cms/client/components/index.cjs +14 -0
  381. package/dist/plugins/cms/client/components/index.d.cts +20 -0
  382. package/dist/plugins/cms/client/components/index.d.mts +20 -0
  383. package/dist/plugins/cms/client/components/index.d.ts +20 -0
  384. package/dist/plugins/cms/client/components/index.mjs +10 -0
  385. package/dist/plugins/cms/client/hooks/index.cjs +17 -0
  386. package/dist/plugins/cms/client/hooks/index.d.cts +203 -0
  387. package/dist/plugins/cms/client/hooks/index.d.mts +203 -0
  388. package/dist/plugins/cms/client/hooks/index.d.ts +203 -0
  389. package/dist/plugins/cms/client/hooks/index.mjs +1 -0
  390. package/dist/plugins/cms/client/index.cjs +9 -0
  391. package/dist/plugins/cms/client/index.d.cts +344 -0
  392. package/dist/plugins/cms/client/index.d.mts +344 -0
  393. package/dist/plugins/cms/client/index.d.ts +344 -0
  394. package/dist/plugins/cms/client/index.mjs +2 -0
  395. package/dist/plugins/cms/client.css +2 -0
  396. package/dist/plugins/cms/query-keys.cjs +137 -0
  397. package/dist/plugins/cms/query-keys.d.cts +79 -0
  398. package/dist/plugins/cms/query-keys.d.mts +79 -0
  399. package/dist/plugins/cms/query-keys.d.ts +79 -0
  400. package/dist/plugins/cms/query-keys.mjs +135 -0
  401. package/dist/plugins/cms/style.css +19 -0
  402. package/dist/shared/stack.BwkyFwF8.d.cts +135 -0
  403. package/dist/shared/stack.DBqxCs0V.d.mts +135 -0
  404. package/dist/shared/stack.DaOcgmrM.d.cts +323 -0
  405. package/dist/shared/stack.DaOcgmrM.d.mts +323 -0
  406. package/dist/shared/stack.DaOcgmrM.d.ts +323 -0
  407. package/dist/shared/stack.DwnJA87a.d.ts +135 -0
  408. package/dist/shared/stack.NZJogTUn.d.cts +66 -0
  409. package/dist/shared/stack.NZJogTUn.d.mts +66 -0
  410. package/dist/shared/stack.NZJogTUn.d.ts +66 -0
  411. package/package.json +58 -5
  412. package/src/plugins/ai-chat/client/components/chat-interface.tsx +56 -2
  413. package/src/plugins/ai-chat/client/components/chat-layout.tsx +16 -1
  414. package/src/plugins/ai-chat/client/components/chat-message.tsx +59 -3
  415. package/src/plugins/ai-chat/client/components/chat-sidebar.tsx +4 -1
  416. package/src/plugins/ai-chat/client/components/index.ts +2 -0
  417. package/src/plugins/ai-chat/client/components/tool-call-display.tsx +197 -0
  418. package/src/plugins/ai-chat/client/index.ts +12 -1
  419. package/src/plugins/ai-chat/client/overrides.ts +71 -0
  420. package/src/plugins/blog/api/plugin.ts +29 -2
  421. package/src/plugins/blog/client/components/loading/form-page-skeleton.tsx +1 -1
  422. package/src/plugins/blog/client/components/loading/list-page-skeleton.tsx +1 -1
  423. package/src/plugins/blog/client/components/loading/post-page-skeleton.tsx +1 -1
  424. package/src/plugins/blog/client/components/shared/markdown-content-styles.css +6 -0
  425. package/src/plugins/blog/client/components/shared/page-wrapper.tsx +9 -9
  426. package/src/plugins/cms/__tests__/schema-roundtrip.test.ts +611 -0
  427. package/src/plugins/cms/api/index.ts +1 -0
  428. package/src/plugins/cms/api/plugin.ts +611 -0
  429. package/src/plugins/cms/client/components/forms/content-form.tsx +477 -0
  430. package/src/plugins/cms/client/components/forms/file-upload.tsx +164 -0
  431. package/src/plugins/cms/client/components/index.tsx +10 -0
  432. package/src/plugins/cms/client/components/loading/dashboard-skeleton.tsx +22 -0
  433. package/src/plugins/cms/client/components/loading/editor-skeleton.tsx +35 -0
  434. package/src/plugins/cms/client/components/loading/index.tsx +3 -0
  435. package/src/plugins/cms/client/components/loading/list-skeleton.tsx +38 -0
  436. package/src/plugins/cms/client/components/pages/404-page.tsx +27 -0
  437. package/src/plugins/cms/client/components/pages/content-editor-page.internal.tsx +121 -0
  438. package/src/plugins/cms/client/components/pages/content-editor-page.tsx +50 -0
  439. package/src/plugins/cms/client/components/pages/content-list-page.internal.tsx +198 -0
  440. package/src/plugins/cms/client/components/pages/content-list-page.tsx +45 -0
  441. package/src/plugins/cms/client/components/pages/dashboard-page.internal.tsx +94 -0
  442. package/src/plugins/cms/client/components/pages/dashboard-page.tsx +37 -0
  443. package/src/plugins/cms/client/components/shared/default-error.tsx +30 -0
  444. package/src/plugins/cms/client/components/shared/empty-state.tsx +26 -0
  445. package/src/plugins/cms/client/components/shared/page-wrapper.tsx +32 -0
  446. package/src/plugins/cms/client/components/shared/pagination.tsx +72 -0
  447. package/src/plugins/cms/client/hooks/cms-hooks.tsx +724 -0
  448. package/src/plugins/cms/client/hooks/index.tsx +1 -0
  449. package/src/plugins/cms/client/index.ts +13 -0
  450. package/src/plugins/cms/client/localization/cms-common.ts +29 -0
  451. package/src/plugins/cms/client/localization/cms-dashboard.ts +10 -0
  452. package/src/plugins/cms/client/localization/cms-editor.ts +8 -0
  453. package/src/plugins/cms/client/localization/cms-list.ts +14 -0
  454. package/src/plugins/cms/client/localization/cms-toasts.ts +8 -0
  455. package/src/plugins/cms/client/localization/index.ts +15 -0
  456. package/src/plugins/cms/client/overrides.ts +166 -0
  457. package/src/plugins/cms/client/plugin.tsx +283 -0
  458. package/src/plugins/cms/client.css +2 -0
  459. package/src/plugins/cms/db.ts +76 -0
  460. package/src/plugins/cms/query-keys.ts +186 -0
  461. package/src/plugins/cms/schemas.ts +81 -0
  462. package/src/plugins/cms/style.css +19 -0
  463. package/src/plugins/cms/types.ts +220 -0
  464. package/src/plugins/cms/utils.ts +11 -0
  465. package/dist/shared/stack.DorMi9CZ.d.cts +0 -80
  466. package/dist/shared/stack.DorMi9CZ.d.mts +0 -80
  467. package/dist/shared/stack.DorMi9CZ.d.ts +0 -80
  468. package/src/plugins/blog/client/components/shared/page-layout.tsx +0 -23
@@ -0,0 +1,135 @@
1
+ import { z } from 'zod';
2
+ import { A as AutoFormFieldType } from './stack.NZJogTUn.js';
3
+
4
+ /**
5
+ * Configuration for a content type defined by the developer
6
+ */
7
+ interface ContentTypeConfig {
8
+ /** Display name for the content type (e.g., "Product", "Testimonial") */
9
+ name: string;
10
+ /** URL-friendly slug (e.g., "product", "testimonial") */
11
+ slug: string;
12
+ /** Optional description shown in the admin UI */
13
+ description?: string;
14
+ /** Zod schema defining the content type's fields */
15
+ schema: z.ZodObject<z.ZodRawShape>;
16
+ /**
17
+ * Optional field configuration for AutoForm customization.
18
+ *
19
+ * fieldType can be:
20
+ * - A built-in AutoForm type: "checkbox", "date", "select", "radio", "switch", "textarea", "number", "file", "fallback"
21
+ * - A custom type name that maps to a component provided via `fieldComponents` in overrides
22
+ */
23
+ fieldConfig?: Record<string, {
24
+ fieldType?: AutoFormFieldType | (string & {});
25
+ }>;
26
+ }
27
+ /**
28
+ * Content type stored in the database
29
+ */
30
+ type ContentType = {
31
+ id: string;
32
+ /** Display name */
33
+ name: string;
34
+ /** URL-friendly slug - unique identifier */
35
+ slug: string;
36
+ /** Optional description */
37
+ description?: string;
38
+ /** JSON Schema representation of the Zod schema (stringified) */
39
+ jsonSchema: string;
40
+ /** Optional field configuration JSON (stringified) */
41
+ fieldConfig?: string;
42
+ createdAt: Date;
43
+ updatedAt: Date;
44
+ };
45
+ /**
46
+ * Content item stored in the database
47
+ */
48
+ type ContentItem = {
49
+ id: string;
50
+ /** Reference to the content type */
51
+ contentTypeId: string;
52
+ /** URL-friendly slug - unique within content type */
53
+ slug: string;
54
+ /** JSON data matching the content type's schema (stringified) */
55
+ data: string;
56
+ /** Optional author ID for tracking who created/modified */
57
+ authorId?: string;
58
+ createdAt: Date;
59
+ updatedAt: Date;
60
+ };
61
+ /**
62
+ * Serialized content type for API responses (dates as strings)
63
+ */
64
+ interface SerializedContentType extends Omit<ContentType, "createdAt" | "updatedAt"> {
65
+ createdAt: string;
66
+ updatedAt: string;
67
+ }
68
+ /**
69
+ * Serialized content item for API responses (dates as strings)
70
+ */
71
+ interface SerializedContentItem extends Omit<ContentItem, "createdAt" | "updatedAt"> {
72
+ createdAt: string;
73
+ updatedAt: string;
74
+ }
75
+ /**
76
+ * Serialized content item with parsed data and joined content type
77
+ * @template TData - The type of the parsed data (defaults to Record<string, unknown>)
78
+ */
79
+ interface SerializedContentItemWithType<TData = Record<string, unknown>> extends SerializedContentItem {
80
+ /** Parsed data object (JSON.parse of data field) */
81
+ parsedData: TData;
82
+ /** Joined content type */
83
+ contentType?: SerializedContentType;
84
+ }
85
+ /**
86
+ * Paginated list response for content items
87
+ * @template TData - The type of the parsed data (defaults to Record<string, unknown>)
88
+ */
89
+ interface PaginatedContentItems<TData = Record<string, unknown>> {
90
+ items: SerializedContentItemWithType<TData>[];
91
+ total: number;
92
+ limit: number;
93
+ offset: number;
94
+ }
95
+ /**
96
+ * Context passed to CMS backend hooks
97
+ */
98
+ interface CMSHookContext {
99
+ /** Content type slug */
100
+ typeSlug: string;
101
+ /** User ID if authenticated */
102
+ userId?: string;
103
+ /** Request headers */
104
+ headers?: Headers;
105
+ }
106
+ /**
107
+ * Hooks for customizing CMS backend behavior
108
+ */
109
+ interface CMSBackendHooks {
110
+ /** Called before creating a content item */
111
+ onBeforeCreate?: (data: Record<string, unknown>, context: CMSHookContext) => Promise<Record<string, unknown> | false> | Record<string, unknown> | false;
112
+ /** Called after creating a content item */
113
+ onAfterCreate?: (item: SerializedContentItem, context: CMSHookContext) => Promise<void> | void;
114
+ /** Called before updating a content item */
115
+ onBeforeUpdate?: (id: string, data: Record<string, unknown>, context: CMSHookContext) => Promise<Record<string, unknown> | false> | Record<string, unknown> | false;
116
+ /** Called after updating a content item */
117
+ onAfterUpdate?: (item: SerializedContentItem, context: CMSHookContext) => Promise<void> | void;
118
+ /** Called before deleting a content item */
119
+ onBeforeDelete?: (id: string, context: CMSHookContext) => Promise<boolean> | boolean;
120
+ /** Called after deleting a content item */
121
+ onAfterDelete?: (id: string, context: CMSHookContext) => Promise<void> | void;
122
+ /** Called on any CMS error */
123
+ onError?: (error: Error, operation: "create" | "update" | "delete" | "list" | "get", context: CMSHookContext) => Promise<void> | void;
124
+ }
125
+ /**
126
+ * Configuration for the CMS backend plugin
127
+ */
128
+ interface CMSBackendConfig {
129
+ /** Content types defined by the developer */
130
+ contentTypes: ContentTypeConfig[];
131
+ /** Optional hooks for customizing behavior */
132
+ hooks?: CMSBackendHooks;
133
+ }
134
+
135
+ export type { CMSBackendConfig as C, PaginatedContentItems as P, SerializedContentType as S, SerializedContentItemWithType as a };
@@ -0,0 +1,66 @@
1
+ import { ControllerRenderProps, FieldValues } from 'react-hook-form';
2
+ import * as zod from 'zod';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ declare function AutoFormCheckbox({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
6
+
7
+ declare function AutoFormDate({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
8
+
9
+ declare function AutoFormEnum({ label, isRequired, field, fieldConfigItem, zodItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
10
+
11
+ declare function AutoFormFile({ label, isRequired, fieldConfigItem, fieldProps, field, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
12
+
13
+ declare function AutoFormInput({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
14
+
15
+ declare function AutoFormNumber({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
16
+
17
+ declare function AutoFormRadioGroup({ label, isRequired, field, zodItem, fieldProps, fieldConfigItem, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
18
+
19
+ declare function AutoFormSwitch({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
20
+
21
+ declare function AutoFormTextarea({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
22
+
23
+ declare const INPUT_COMPONENTS: {
24
+ checkbox: typeof AutoFormCheckbox;
25
+ date: typeof AutoFormDate;
26
+ select: typeof AutoFormEnum;
27
+ radio: typeof AutoFormRadioGroup;
28
+ switch: typeof AutoFormSwitch;
29
+ textarea: typeof AutoFormTextarea;
30
+ number: typeof AutoFormNumber;
31
+ file: typeof AutoFormFile;
32
+ fallback: typeof AutoFormInput;
33
+ };
34
+
35
+ /**
36
+ * Available field types for AutoForm fieldConfig.
37
+ * These map to the input components in ./config.ts
38
+ */
39
+ type AutoFormFieldType = keyof typeof INPUT_COMPONENTS;
40
+ type FieldConfigItem = {
41
+ description?: React.ReactNode;
42
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> & React.TextareaHTMLAttributes<HTMLTextAreaElement> & {
43
+ showLabel?: boolean;
44
+ };
45
+ label?: string;
46
+ fieldType?: keyof typeof INPUT_COMPONENTS | React.FC<AutoFormInputComponentProps>;
47
+ renderParent?: (props: {
48
+ children: React.ReactNode;
49
+ }) => React.ReactElement | null;
50
+ order?: number;
51
+ };
52
+ /**
53
+ * A FormInput component can handle a specific Zod type (e.g. "ZodBoolean")
54
+ */
55
+ type AutoFormInputComponentProps = {
56
+ zodInputProps: React.InputHTMLAttributes<HTMLInputElement>;
57
+ field: ControllerRenderProps<FieldValues, any>;
58
+ fieldConfigItem: FieldConfigItem;
59
+ label: string;
60
+ isRequired: boolean;
61
+ fieldProps: any;
62
+ zodItem: zod.ZodType;
63
+ className?: string;
64
+ };
65
+
66
+ export type { AutoFormFieldType as A, AutoFormInputComponentProps as a };
@@ -0,0 +1,66 @@
1
+ import { ControllerRenderProps, FieldValues } from 'react-hook-form';
2
+ import * as zod from 'zod';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ declare function AutoFormCheckbox({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
6
+
7
+ declare function AutoFormDate({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
8
+
9
+ declare function AutoFormEnum({ label, isRequired, field, fieldConfigItem, zodItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
10
+
11
+ declare function AutoFormFile({ label, isRequired, fieldConfigItem, fieldProps, field, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
12
+
13
+ declare function AutoFormInput({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
14
+
15
+ declare function AutoFormNumber({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
16
+
17
+ declare function AutoFormRadioGroup({ label, isRequired, field, zodItem, fieldProps, fieldConfigItem, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
18
+
19
+ declare function AutoFormSwitch({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
20
+
21
+ declare function AutoFormTextarea({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
22
+
23
+ declare const INPUT_COMPONENTS: {
24
+ checkbox: typeof AutoFormCheckbox;
25
+ date: typeof AutoFormDate;
26
+ select: typeof AutoFormEnum;
27
+ radio: typeof AutoFormRadioGroup;
28
+ switch: typeof AutoFormSwitch;
29
+ textarea: typeof AutoFormTextarea;
30
+ number: typeof AutoFormNumber;
31
+ file: typeof AutoFormFile;
32
+ fallback: typeof AutoFormInput;
33
+ };
34
+
35
+ /**
36
+ * Available field types for AutoForm fieldConfig.
37
+ * These map to the input components in ./config.ts
38
+ */
39
+ type AutoFormFieldType = keyof typeof INPUT_COMPONENTS;
40
+ type FieldConfigItem = {
41
+ description?: React.ReactNode;
42
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> & React.TextareaHTMLAttributes<HTMLTextAreaElement> & {
43
+ showLabel?: boolean;
44
+ };
45
+ label?: string;
46
+ fieldType?: keyof typeof INPUT_COMPONENTS | React.FC<AutoFormInputComponentProps>;
47
+ renderParent?: (props: {
48
+ children: React.ReactNode;
49
+ }) => React.ReactElement | null;
50
+ order?: number;
51
+ };
52
+ /**
53
+ * A FormInput component can handle a specific Zod type (e.g. "ZodBoolean")
54
+ */
55
+ type AutoFormInputComponentProps = {
56
+ zodInputProps: React.InputHTMLAttributes<HTMLInputElement>;
57
+ field: ControllerRenderProps<FieldValues, any>;
58
+ fieldConfigItem: FieldConfigItem;
59
+ label: string;
60
+ isRequired: boolean;
61
+ fieldProps: any;
62
+ zodItem: zod.ZodType;
63
+ className?: string;
64
+ };
65
+
66
+ export type { AutoFormFieldType as A, AutoFormInputComponentProps as a };
@@ -0,0 +1,66 @@
1
+ import { ControllerRenderProps, FieldValues } from 'react-hook-form';
2
+ import * as zod from 'zod';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ declare function AutoFormCheckbox({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
6
+
7
+ declare function AutoFormDate({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
8
+
9
+ declare function AutoFormEnum({ label, isRequired, field, fieldConfigItem, zodItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
10
+
11
+ declare function AutoFormFile({ label, isRequired, fieldConfigItem, fieldProps, field, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
12
+
13
+ declare function AutoFormInput({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
14
+
15
+ declare function AutoFormNumber({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
16
+
17
+ declare function AutoFormRadioGroup({ label, isRequired, field, zodItem, fieldProps, fieldConfigItem, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
18
+
19
+ declare function AutoFormSwitch({ label, isRequired, field, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
20
+
21
+ declare function AutoFormTextarea({ label, isRequired, fieldConfigItem, fieldProps, }: AutoFormInputComponentProps): react_jsx_runtime.JSX.Element;
22
+
23
+ declare const INPUT_COMPONENTS: {
24
+ checkbox: typeof AutoFormCheckbox;
25
+ date: typeof AutoFormDate;
26
+ select: typeof AutoFormEnum;
27
+ radio: typeof AutoFormRadioGroup;
28
+ switch: typeof AutoFormSwitch;
29
+ textarea: typeof AutoFormTextarea;
30
+ number: typeof AutoFormNumber;
31
+ file: typeof AutoFormFile;
32
+ fallback: typeof AutoFormInput;
33
+ };
34
+
35
+ /**
36
+ * Available field types for AutoForm fieldConfig.
37
+ * These map to the input components in ./config.ts
38
+ */
39
+ type AutoFormFieldType = keyof typeof INPUT_COMPONENTS;
40
+ type FieldConfigItem = {
41
+ description?: React.ReactNode;
42
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> & React.TextareaHTMLAttributes<HTMLTextAreaElement> & {
43
+ showLabel?: boolean;
44
+ };
45
+ label?: string;
46
+ fieldType?: keyof typeof INPUT_COMPONENTS | React.FC<AutoFormInputComponentProps>;
47
+ renderParent?: (props: {
48
+ children: React.ReactNode;
49
+ }) => React.ReactElement | null;
50
+ order?: number;
51
+ };
52
+ /**
53
+ * A FormInput component can handle a specific Zod type (e.g. "ZodBoolean")
54
+ */
55
+ type AutoFormInputComponentProps = {
56
+ zodInputProps: React.InputHTMLAttributes<HTMLInputElement>;
57
+ field: ControllerRenderProps<FieldValues, any>;
58
+ fieldConfigItem: FieldConfigItem;
59
+ label: string;
60
+ isRequired: boolean;
61
+ fieldProps: any;
62
+ zodItem: zod.ZodType;
63
+ className?: string;
64
+ };
65
+
66
+ export type { AutoFormFieldType as A, AutoFormInputComponentProps as a };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@btst/stack",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "A composable, plugin-based library for building full-stack applications.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -165,6 +165,47 @@
165
165
  },
166
166
  "./plugins/ai-chat/css": "./dist/plugins/ai-chat/style.css",
167
167
  "./plugins/blog/css": "./dist/plugins/blog/style.css",
168
+ "./plugins/cms/api": {
169
+ "import": {
170
+ "types": "./dist/plugins/cms/api/index.d.ts",
171
+ "default": "./dist/plugins/cms/api/index.mjs"
172
+ },
173
+ "require": {
174
+ "types": "./dist/plugins/cms/api/index.d.cts",
175
+ "default": "./dist/plugins/cms/api/index.cjs"
176
+ }
177
+ },
178
+ "./plugins/cms/client": {
179
+ "import": {
180
+ "types": "./dist/plugins/cms/client/index.d.ts",
181
+ "default": "./dist/plugins/cms/client/index.mjs"
182
+ },
183
+ "require": {
184
+ "types": "./dist/plugins/cms/client/index.d.cts",
185
+ "default": "./dist/plugins/cms/client/index.cjs"
186
+ }
187
+ },
188
+ "./plugins/cms/client/components": {
189
+ "import": {
190
+ "types": "./dist/plugins/cms/client/components/index.d.ts",
191
+ "default": "./dist/plugins/cms/client/components/index.mjs"
192
+ },
193
+ "require": {
194
+ "types": "./dist/plugins/cms/client/components/index.d.cts",
195
+ "default": "./dist/plugins/cms/client/components/index.cjs"
196
+ }
197
+ },
198
+ "./plugins/cms/client/hooks": {
199
+ "import": {
200
+ "types": "./dist/plugins/cms/client/hooks/index.d.ts",
201
+ "default": "./dist/plugins/cms/client/hooks/index.mjs"
202
+ },
203
+ "require": {
204
+ "types": "./dist/plugins/cms/client/hooks/index.d.cts",
205
+ "default": "./dist/plugins/cms/client/hooks/index.cjs"
206
+ }
207
+ },
208
+ "./plugins/cms/css": "./dist/plugins/cms/style.css",
168
209
  "./dist/*": "./dist/*",
169
210
  "./ui/css": "./dist/ui/components.css",
170
211
  "./package.json": "./package.json"
@@ -206,6 +247,18 @@
206
247
  ],
207
248
  "plugins/ai-chat/client/hooks": [
208
249
  "./dist/plugins/ai-chat/client/hooks/index.d.ts"
250
+ ],
251
+ "plugins/cms/api": [
252
+ "./dist/plugins/cms/api/index.d.ts"
253
+ ],
254
+ "plugins/cms/client": [
255
+ "./dist/plugins/cms/client/index.d.ts"
256
+ ],
257
+ "plugins/cms/client/components": [
258
+ "./dist/plugins/cms/client/components/index.d.ts"
259
+ ],
260
+ "plugins/cms/client/hooks": [
261
+ "./dist/plugins/cms/client/hooks/index.d.ts"
209
262
  ]
210
263
  }
211
264
  },
@@ -227,7 +280,7 @@
227
280
  "@radix-ui/react-switch": ">=1.1.0",
228
281
  "@tanstack/react-query": "^5.0.0",
229
282
  "ai": ">=5.0.0",
230
- "better-call": ">=1.0.0",
283
+ "better-call": ">=1.1.5",
231
284
  "class-variance-authority": ">=0.7.0",
232
285
  "clsx": ">=2.1.0",
233
286
  "cmdk": ">=1.1.0",
@@ -249,7 +302,7 @@
249
302
  "sonner": ">=2.0.0",
250
303
  "tailwind-merge": ">=2.6.0",
251
304
  "tailwindcss": ">=3.0.0",
252
- "zod": ">=3.24.0"
305
+ "zod": ">=4.2.0"
253
306
  },
254
307
  "devDependencies": {
255
308
  "@ai-sdk/react": "^2.0.94",
@@ -259,7 +312,7 @@
259
312
  "@types/slug": "^5.0.9",
260
313
  "@workspace/ui": "workspace:*",
261
314
  "ai": "^5.0.94",
262
- "better-call": "1.0.19",
315
+ "better-call": "catalog:",
263
316
  "react": "^19.1.1",
264
317
  "react-dom": "^19.1.1",
265
318
  "react-error-boundary": "^4.1.2",
@@ -268,7 +321,7 @@
268
321
  "typescript": "catalog:",
269
322
  "unbuild": "catalog:",
270
323
  "vitest": "catalog:",
271
- "vue": "^3.5.18"
324
+ "zod": "^4.2.0"
272
325
  },
273
326
  "files": [
274
327
  "dist",
@@ -28,6 +28,8 @@ interface ChatInterfaceProps {
28
28
  /** Variant: 'full' for full-page layout, 'widget' for embedded widget */
29
29
  variant?: "full" | "widget";
30
30
  className?: string;
31
+ /** Called whenever messages change (for persistence). Only fires in public mode. */
32
+ onMessagesChange?: (messages: UIMessage[]) => void;
31
33
  }
32
34
 
33
35
  export function ChatInterface({
@@ -36,6 +38,7 @@ export function ChatInterface({
36
38
  id,
37
39
  variant = "full",
38
40
  className,
41
+ onMessagesChange,
39
42
  }: ChatInterfaceProps) {
40
43
  const {
41
44
  navigate,
@@ -45,6 +48,7 @@ export function ChatInterface({
45
48
  headers,
46
49
  mode,
47
50
  showAttribution,
51
+ chatSuggestions,
48
52
  } = usePluginOverrides<AiChatPluginOverrides, Partial<AiChatPluginOverrides>>(
49
53
  "ai-chat",
50
54
  { showAttribution: true },
@@ -81,6 +85,8 @@ export function ChatInterface({
81
85
  setCurrentConversationId(id);
82
86
  isFirstMessageSentRef.current = false;
83
87
  hasNavigatedRef.current = false;
88
+ // Reset edit flag on navigation
89
+ isEditInProgressRef.current = false;
84
90
  }
85
91
  }, [id, isPublicMode]);
86
92
 
@@ -108,6 +114,18 @@ export function ChatInterface({
108
114
  // Ref to track edit operation with messages to use
109
115
  const editMessagesRef = useRef<UIMessage[] | null>(null);
110
116
 
117
+ // Flag to prevent load conversation effect from overwriting messages during edit
118
+ const isEditInProgressRef = useRef(false);
119
+
120
+ // Track if we've finished initializing messages
121
+ // This prevents onMessagesChange from firing with an empty array before initialMessages are loaded
122
+ // Without this guard, the effect would fire on mount with [], overwriting any saved messages
123
+ const [isMessagesInitialized, setIsMessagesInitialized] = useState(
124
+ () =>
125
+ // Start as initialized if there are no initialMessages to load
126
+ !initialMessages || initialMessages.length === 0,
127
+ );
128
+
111
129
  // Memoize the transport to prevent recreation on every render
112
130
  const transport = useMemo(
113
131
  () =>
@@ -199,6 +217,10 @@ export function ChatInterface({
199
217
 
200
218
  // Load existing conversation messages when navigating to a conversation
201
219
  useEffect(() => {
220
+ // Don't overwrite messages if an edit is in progress
221
+ if (isEditInProgressRef.current) {
222
+ return;
223
+ }
202
224
  if (
203
225
  conversation?.messages &&
204
226
  conversation.messages.length > 0 &&
@@ -240,6 +262,8 @@ export function ChatInterface({
240
262
  messages.length === 0
241
263
  ) {
242
264
  setMessages(initialMessages);
265
+ // Mark as initialized - this is batched with setMessages so both take effect in the same render
266
+ setIsMessagesInitialized(true);
243
267
  }
244
268
  }, [initialMessages, setMessages, messages.length]);
245
269
 
@@ -259,6 +283,14 @@ export function ChatInterface({
259
283
  }
260
284
  }, [messages]);
261
285
 
286
+ // Notify parent when messages change (for persistence in public mode)
287
+ // Only fire after initialization to prevent overwriting saved messages with an empty array
288
+ useEffect(() => {
289
+ if (isPublicMode && onMessagesChange && isMessagesInitialized) {
290
+ onMessagesChange(messages);
291
+ }
292
+ }, [messages, isPublicMode, onMessagesChange, isMessagesInitialized]);
293
+
262
294
  const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
263
295
  setInput(e.target.value);
264
296
  };
@@ -331,6 +363,9 @@ export function ChatInterface({
331
363
  if (pendingEdit && messages.length === pendingEdit.expectedLength) {
332
364
  const textToSend = pendingEdit.text;
333
365
  setPendingEdit(null);
366
+ // Clear edit in progress flag - the new message will now be sent
367
+ // and we want subsequent effects to work normally
368
+ isEditInProgressRef.current = false;
334
369
  sendMessage({ text: textToSend });
335
370
  }
336
371
  }, [messages.length, pendingEdit, sendMessage]);
@@ -348,6 +383,9 @@ export function ChatInterface({
348
383
  // Truncate to BEFORE the edited message (remove it and all subsequent)
349
384
  const truncatedMessages = messages.slice(0, messageIndex);
350
385
 
386
+ // Mark edit in progress to prevent load conversation effect from overwriting
387
+ isEditInProgressRef.current = true;
388
+
351
389
  // Store the truncated messages in the ref for the transport to use
352
390
  editMessagesRef.current = truncatedMessages;
353
391
 
@@ -382,8 +420,24 @@ export function ChatInterface({
382
420
  )}
383
421
  >
384
422
  {messages.length === 0 ? (
385
- <div className="flex flex-col items-center justify-center h-full min-h-[300px] text-muted-foreground">
386
- <p>{localization.CHAT_EMPTY_STATE}</p>
423
+ <div className="flex flex-col h-full min-h-[300px]">
424
+ <div className="flex-1 flex items-center justify-center text-muted-foreground">
425
+ <p>{localization.CHAT_EMPTY_STATE}</p>
426
+ </div>
427
+ {chatSuggestions && chatSuggestions.length > 0 && (
428
+ <div className="flex flex-wrap justify-center gap-2 pb-4 max-w-md mx-auto">
429
+ {chatSuggestions.map((suggestion, index) => (
430
+ <button
431
+ key={index}
432
+ type="button"
433
+ onClick={() => setInput(suggestion)}
434
+ className="px-3 py-2 text-sm rounded-lg border border-border bg-background hover:bg-accent hover:text-accent-foreground transition-colors text-foreground"
435
+ >
436
+ {suggestion}
437
+ </button>
438
+ ))}
439
+ </div>
440
+ )}
387
441
  </div>
388
442
  ) : (
389
443
  messages.map((m, index) => (
@@ -11,6 +11,7 @@ import { Menu, PanelLeftClose, PanelLeft } from "lucide-react";
11
11
  import { cn } from "@workspace/ui/lib/utils";
12
12
  import { ChatSidebar } from "./chat-sidebar";
13
13
  import { ChatInterface } from "./chat-interface";
14
+ import type { UIMessage } from "ai";
14
15
 
15
16
  export interface ChatLayoutProps {
16
17
  /** API base URL */
@@ -27,6 +28,10 @@ export interface ChatLayoutProps {
27
28
  showSidebar?: boolean;
28
29
  /** Height of the widget (only applies to widget layout) */
29
30
  widgetHeight?: string | number;
31
+ /** Initial messages to populate the chat (useful for localStorage persistence in public mode) */
32
+ initialMessages?: UIMessage[];
33
+ /** Called whenever messages change (for persistence). Only fires in public mode. */
34
+ onMessagesChange?: (messages: UIMessage[]) => void;
30
35
  }
31
36
 
32
37
  /**
@@ -41,6 +46,8 @@ export function ChatLayout({
41
46
  className,
42
47
  showSidebar = true,
43
48
  widgetHeight = "600px",
49
+ initialMessages,
50
+ onMessagesChange,
44
51
  }: ChatLayoutProps) {
45
52
  const [sidebarOpen, setSidebarOpen] = useState(true);
46
53
  const [mobileSidebarOpen, setMobileSidebarOpen] = useState(false);
@@ -67,7 +74,13 @@ export function ChatLayout({
67
74
  )}
68
75
  style={{ height: widgetHeight }}
69
76
  >
70
- <ChatInterface apiPath={apiPath} id={conversationId} variant="widget" />
77
+ <ChatInterface
78
+ apiPath={apiPath}
79
+ id={conversationId}
80
+ variant="widget"
81
+ initialMessages={initialMessages}
82
+ onMessagesChange={onMessagesChange}
83
+ />
71
84
  </div>
72
85
  );
73
86
  }
@@ -153,6 +166,8 @@ export function ChatLayout({
153
166
  apiPath={apiPath}
154
167
  id={conversationId}
155
168
  variant="full"
169
+ initialMessages={initialMessages}
170
+ onMessagesChange={onMessagesChange}
156
171
  />
157
172
  </div>
158
173
  </div>