@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,186 @@
1
+ import {
2
+ mergeQueryKeys,
3
+ createQueryKeys,
4
+ } from "@lukemorales/query-key-factory";
5
+ import type { CMSApiRouter } from "./api";
6
+ import { createApiClient } from "@btst/stack/plugins/client";
7
+ import type {
8
+ SerializedContentType,
9
+ SerializedContentItemWithType,
10
+ PaginatedContentItems,
11
+ } from "./types";
12
+
13
+ interface ContentListParams {
14
+ limit?: number;
15
+ offset?: number;
16
+ }
17
+
18
+ // Type guard for better-call error responses
19
+ function isErrorResponse(
20
+ response: unknown,
21
+ ): response is { error: unknown; data?: never } {
22
+ if (typeof response !== "object" || response === null) {
23
+ return false;
24
+ }
25
+ const obj = response as Record<string, unknown>;
26
+ return "error" in obj && obj.error !== null && obj.error !== undefined;
27
+ }
28
+
29
+ // Helper to convert error to a proper Error object with meaningful message
30
+ function toError(error: unknown): Error {
31
+ if (error instanceof Error) {
32
+ return error;
33
+ }
34
+
35
+ if (typeof error === "object" && error !== null) {
36
+ const errorObj = error as Record<string, unknown>;
37
+ const message =
38
+ (typeof errorObj.message === "string" ? errorObj.message : null) ||
39
+ (typeof errorObj.error === "string" ? errorObj.error : null) ||
40
+ JSON.stringify(error);
41
+
42
+ const err = new Error(message);
43
+ Object.assign(err, error);
44
+ return err;
45
+ }
46
+
47
+ return new Error(String(error));
48
+ }
49
+
50
+ /**
51
+ * Create CMS query keys for React Query
52
+ * Used by consumers to fetch content types and content items
53
+ */
54
+ export function createCMSQueryKeys(
55
+ client: ReturnType<typeof createApiClient<CMSApiRouter>>,
56
+ headers?: HeadersInit,
57
+ ) {
58
+ const contentTypes = createContentTypesQueries(client, headers);
59
+ const content = createContentQueries(client, headers);
60
+
61
+ return mergeQueryKeys(contentTypes, content);
62
+ }
63
+
64
+ function createContentTypesQueries(
65
+ client: ReturnType<typeof createApiClient<CMSApiRouter>>,
66
+ headers?: HeadersInit,
67
+ ) {
68
+ return createQueryKeys("cmsTypes", {
69
+ list: () => ({
70
+ queryKey: ["list"],
71
+ queryFn: async () => {
72
+ try {
73
+ const response: unknown = await client("/content-types", {
74
+ method: "GET",
75
+ headers,
76
+ });
77
+ if (isErrorResponse(response)) {
78
+ throw toError(response.error);
79
+ }
80
+ return ((response as { data?: unknown }).data ??
81
+ []) as (SerializedContentType & { itemCount: number })[];
82
+ } catch (error) {
83
+ throw error;
84
+ }
85
+ },
86
+ }),
87
+
88
+ detail: (slug: string) => ({
89
+ queryKey: [slug],
90
+ queryFn: async () => {
91
+ if (!slug) return null;
92
+
93
+ try {
94
+ const response: unknown = await client("/content-types/:slug", {
95
+ method: "GET",
96
+ params: { slug },
97
+ headers,
98
+ });
99
+ if (isErrorResponse(response)) {
100
+ throw toError(response.error);
101
+ }
102
+ return (response as { data?: unknown })
103
+ .data as SerializedContentType | null;
104
+ } catch (error) {
105
+ throw error;
106
+ }
107
+ },
108
+ }),
109
+ });
110
+ }
111
+
112
+ function createContentQueries(
113
+ client: ReturnType<typeof createApiClient<CMSApiRouter>>,
114
+ headers?: HeadersInit,
115
+ ) {
116
+ return createQueryKeys("cmsContent", {
117
+ list: (params: { typeSlug: string } & ContentListParams) => ({
118
+ queryKey: [params],
119
+ queryFn: async () => {
120
+ try {
121
+ const response: unknown = await client("/content/:typeSlug", {
122
+ method: "GET",
123
+ params: { typeSlug: params.typeSlug },
124
+ query: {
125
+ limit: params.limit ?? 20,
126
+ offset: params.offset ?? 0,
127
+ },
128
+ headers,
129
+ });
130
+ if (isErrorResponse(response)) {
131
+ throw toError(response.error);
132
+ }
133
+ return (response as { data?: unknown }).data as PaginatedContentItems;
134
+ } catch (error) {
135
+ throw error;
136
+ }
137
+ },
138
+ }),
139
+
140
+ detail: (typeSlug: string, id: string) => ({
141
+ queryKey: [typeSlug, id],
142
+ queryFn: async () => {
143
+ if (!typeSlug || !id) return null;
144
+
145
+ try {
146
+ const response: unknown = await client("/content/:typeSlug/:id", {
147
+ method: "GET",
148
+ params: { typeSlug, id },
149
+ headers,
150
+ });
151
+ if (isErrorResponse(response)) {
152
+ throw toError(response.error);
153
+ }
154
+ return (response as { data?: unknown })
155
+ .data as SerializedContentItemWithType | null;
156
+ } catch (error) {
157
+ throw error;
158
+ }
159
+ },
160
+ }),
161
+
162
+ bySlug: (typeSlug: string, slug: string) => ({
163
+ queryKey: ["bySlug", typeSlug, slug],
164
+ queryFn: async () => {
165
+ if (!typeSlug || !slug) return null;
166
+
167
+ try {
168
+ const response: unknown = await client("/content/:typeSlug", {
169
+ method: "GET",
170
+ params: { typeSlug },
171
+ query: { slug, limit: 1 },
172
+ headers,
173
+ });
174
+ if (isErrorResponse(response)) {
175
+ throw toError(response.error);
176
+ }
177
+ const data = (response as { data?: unknown })
178
+ .data as PaginatedContentItems;
179
+ return data.items[0] ?? null;
180
+ } catch (error) {
181
+ throw error;
182
+ }
183
+ },
184
+ }),
185
+ });
186
+ }
@@ -0,0 +1,81 @@
1
+ import { z } from "zod";
2
+
3
+ /**
4
+ * Schema for listing content items with pagination
5
+ */
6
+ export const listContentQuerySchema = z.object({
7
+ slug: z.string().optional(),
8
+ limit: z.coerce.number().min(1).max(100).optional().default(20),
9
+ offset: z.coerce.number().min(0).optional().default(0),
10
+ });
11
+
12
+ /**
13
+ * Schema for creating a content item
14
+ * Note: The actual data validation is done dynamically based on the content type's schema
15
+ */
16
+ export const createContentSchema = z.object({
17
+ slug: z.string().min(1, "Slug is required"),
18
+ // Use passthrough object instead of z.record(z.unknown()) due to Zod v4 bug
19
+ data: z.object({}).passthrough(),
20
+ });
21
+
22
+ /**
23
+ * Schema for updating a content item
24
+ * Note: The actual data validation is done dynamically based on the content type's schema
25
+ */
26
+ export const updateContentSchema = z.object({
27
+ slug: z.string().min(1, "Slug is required").optional(),
28
+ // Use passthrough object instead of z.record(z.unknown()) due to Zod v4 bug
29
+ data: z.object({}).passthrough().optional(),
30
+ });
31
+
32
+ /**
33
+ * Schema for content type response
34
+ */
35
+ export const contentTypeResponseSchema = z.object({
36
+ id: z.string(),
37
+ name: z.string(),
38
+ slug: z.string(),
39
+ description: z.string().nullable().optional(),
40
+ jsonSchema: z.string(),
41
+ fieldConfig: z.string().nullable().optional(),
42
+ createdAt: z.string(),
43
+ updatedAt: z.string(),
44
+ });
45
+
46
+ /**
47
+ * Schema for content item response
48
+ */
49
+ export const contentItemResponseSchema = z.object({
50
+ id: z.string(),
51
+ contentTypeId: z.string(),
52
+ slug: z.string(),
53
+ data: z.string(),
54
+ authorId: z.string().nullable().optional(),
55
+ createdAt: z.string(),
56
+ updatedAt: z.string(),
57
+ });
58
+
59
+ /**
60
+ * Schema for content item with parsed data response
61
+ */
62
+ export const contentItemWithDataResponseSchema =
63
+ contentItemResponseSchema.extend({
64
+ // Use passthrough object instead of z.record(z.unknown()) due to Zod v4 bug
65
+ parsedData: z.object({}).passthrough(),
66
+ contentType: contentTypeResponseSchema.optional(),
67
+ });
68
+
69
+ /**
70
+ * Schema for paginated content items response
71
+ */
72
+ export const paginatedContentResponseSchema = z.object({
73
+ items: z.array(contentItemWithDataResponseSchema),
74
+ total: z.number(),
75
+ limit: z.number(),
76
+ offset: z.number(),
77
+ });
78
+
79
+ export type ListContentQuery = z.infer<typeof listContentQuerySchema>;
80
+ export type CreateContentInput = z.infer<typeof createContentSchema>;
81
+ export type UpdateContentInput = z.infer<typeof updateContentSchema>;
@@ -0,0 +1,19 @@
1
+ @import "./client.css";
2
+
3
+ /*
4
+ * CMS Plugin CSS - Includes Tailwind class scanning
5
+ *
6
+ * When consumed from npm, Tailwind v4 will automatically scan this package's
7
+ * source files for Tailwind classes. Consumers only need:
8
+ * @import "@btst/stack/plugins/cms/css";
9
+ */
10
+
11
+ /* Scan this package's source files for Tailwind classes */
12
+ @source "../../../src/**/*.{ts,tsx}";
13
+
14
+ /* Scan UI package components (when installed as npm package the UI package will be in this dir) */
15
+ @source "../../packages/ui/src";
16
+
17
+ /*
18
+ * alternatively consumer can use @source "../node_modules/@btst/stack/src/**\/*.{ts,tsx}";
19
+ */
@@ -0,0 +1,220 @@
1
+ import type { z } from "zod";
2
+ import type { AutoFormFieldType } from "@workspace/ui/components/ui/auto-form/types";
3
+
4
+ /**
5
+ * Configuration for a content type defined by the developer
6
+ */
7
+ export 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<
24
+ string,
25
+ {
26
+ fieldType?: AutoFormFieldType | (string & {});
27
+ }
28
+ >;
29
+ }
30
+
31
+ /**
32
+ * Content type stored in the database
33
+ */
34
+ export type ContentType = {
35
+ id: string;
36
+ /** Display name */
37
+ name: string;
38
+ /** URL-friendly slug - unique identifier */
39
+ slug: string;
40
+ /** Optional description */
41
+ description?: string;
42
+ /** JSON Schema representation of the Zod schema (stringified) */
43
+ jsonSchema: string;
44
+ /** Optional field configuration JSON (stringified) */
45
+ fieldConfig?: string;
46
+ createdAt: Date;
47
+ updatedAt: Date;
48
+ };
49
+
50
+ /**
51
+ * Content item stored in the database
52
+ */
53
+ export type ContentItem = {
54
+ id: string;
55
+ /** Reference to the content type */
56
+ contentTypeId: string;
57
+ /** URL-friendly slug - unique within content type */
58
+ slug: string;
59
+ /** JSON data matching the content type's schema (stringified) */
60
+ data: string;
61
+ /** Optional author ID for tracking who created/modified */
62
+ authorId?: string;
63
+ createdAt: Date;
64
+ updatedAt: Date;
65
+ };
66
+
67
+ /**
68
+ * Content item with its content type joined
69
+ */
70
+ export type ContentItemWithType = ContentItem & {
71
+ contentType?: ContentType;
72
+ };
73
+
74
+ /**
75
+ * Serialized content type for API responses (dates as strings)
76
+ */
77
+ export interface SerializedContentType
78
+ extends Omit<ContentType, "createdAt" | "updatedAt"> {
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ }
82
+
83
+ /**
84
+ * Serialized content item for API responses (dates as strings)
85
+ */
86
+ export interface SerializedContentItem
87
+ extends Omit<ContentItem, "createdAt" | "updatedAt"> {
88
+ createdAt: string;
89
+ updatedAt: string;
90
+ }
91
+
92
+ /**
93
+ * Serialized content item with parsed data and joined content type
94
+ * @template TData - The type of the parsed data (defaults to Record<string, unknown>)
95
+ */
96
+ export interface SerializedContentItemWithType<TData = Record<string, unknown>>
97
+ extends SerializedContentItem {
98
+ /** Parsed data object (JSON.parse of data field) */
99
+ parsedData: TData;
100
+ /** Joined content type */
101
+ contentType?: SerializedContentType;
102
+ }
103
+
104
+ /**
105
+ * Paginated list response for content items
106
+ * @template TData - The type of the parsed data (defaults to Record<string, unknown>)
107
+ */
108
+ export interface PaginatedContentItems<TData = Record<string, unknown>> {
109
+ items: SerializedContentItemWithType<TData>[];
110
+ total: number;
111
+ limit: number;
112
+ offset: number;
113
+ }
114
+
115
+ /**
116
+ * Type helper to define a map of content type slugs to their data types.
117
+ * Use with z.infer to get the type from your Zod schemas.
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * import { z } from "zod"
122
+ *
123
+ * // Define your schemas
124
+ * export const ProductSchema = z.object({
125
+ * name: z.string(),
126
+ * price: z.number(),
127
+ * })
128
+ *
129
+ * export const TestimonialSchema = z.object({
130
+ * author: z.string(),
131
+ * quote: z.string(),
132
+ * })
133
+ *
134
+ * // Create the type map
135
+ * export type MyCMSTypes = {
136
+ * product: z.infer<typeof ProductSchema>
137
+ * testimonial: z.infer<typeof TestimonialSchema>
138
+ * }
139
+ *
140
+ * // Use in hooks for type-safe parsedData
141
+ * const { items } = useContent<MyCMSTypes, "product">("product")
142
+ * // items[0].parsedData.name is typed as string
143
+ * // items[0].parsedData.price is typed as number
144
+ * ```
145
+ */
146
+ export type CMSContentTypeMap = Record<string, Record<string, unknown>>;
147
+
148
+ /**
149
+ * Context passed to CMS backend hooks
150
+ */
151
+ export interface CMSHookContext {
152
+ /** Content type slug */
153
+ typeSlug: string;
154
+ /** User ID if authenticated */
155
+ userId?: string;
156
+ /** Request headers */
157
+ headers?: Headers;
158
+ }
159
+
160
+ /**
161
+ * Hooks for customizing CMS backend behavior
162
+ */
163
+ export interface CMSBackendHooks {
164
+ /** Called before creating a content item */
165
+ onBeforeCreate?: (
166
+ data: Record<string, unknown>,
167
+ context: CMSHookContext,
168
+ ) =>
169
+ | Promise<Record<string, unknown> | false>
170
+ | Record<string, unknown>
171
+ | false;
172
+
173
+ /** Called after creating a content item */
174
+ onAfterCreate?: (
175
+ item: SerializedContentItem,
176
+ context: CMSHookContext,
177
+ ) => Promise<void> | void;
178
+
179
+ /** Called before updating a content item */
180
+ onBeforeUpdate?: (
181
+ id: string,
182
+ data: Record<string, unknown>,
183
+ context: CMSHookContext,
184
+ ) =>
185
+ | Promise<Record<string, unknown> | false>
186
+ | Record<string, unknown>
187
+ | false;
188
+
189
+ /** Called after updating a content item */
190
+ onAfterUpdate?: (
191
+ item: SerializedContentItem,
192
+ context: CMSHookContext,
193
+ ) => Promise<void> | void;
194
+
195
+ /** Called before deleting a content item */
196
+ onBeforeDelete?: (
197
+ id: string,
198
+ context: CMSHookContext,
199
+ ) => Promise<boolean> | boolean;
200
+
201
+ /** Called after deleting a content item */
202
+ onAfterDelete?: (id: string, context: CMSHookContext) => Promise<void> | void;
203
+
204
+ /** Called on any CMS error */
205
+ onError?: (
206
+ error: Error,
207
+ operation: "create" | "update" | "delete" | "list" | "get",
208
+ context: CMSHookContext,
209
+ ) => Promise<void> | void;
210
+ }
211
+
212
+ /**
213
+ * Configuration for the CMS backend plugin
214
+ */
215
+ export interface CMSBackendConfig {
216
+ /** Content types defined by the developer */
217
+ contentTypes: ContentTypeConfig[];
218
+ /** Optional hooks for customizing behavior */
219
+ hooks?: CMSBackendHooks;
220
+ }
@@ -0,0 +1,11 @@
1
+ import { clsx, type ClassValue } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ import slug from "slug";
4
+
5
+ export function slugify(text: string, locale: string = "en"): string {
6
+ return slug(text, { lower: true, locale });
7
+ }
8
+
9
+ export function cn(...inputs: ClassValue[]) {
10
+ return twMerge(clsx(inputs));
11
+ }
@@ -1,80 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { UIMessage } from 'ai';
3
- import { FormEvent } from 'react';
4
-
5
- interface ChatInterfaceProps {
6
- apiPath?: string;
7
- initialMessages?: UIMessage[];
8
- id?: string;
9
- /** Variant: 'full' for full-page layout, 'widget' for embedded widget */
10
- variant?: "full" | "widget";
11
- className?: string;
12
- }
13
- declare function ChatInterface({ apiPath, initialMessages, id, variant, className, }: ChatInterfaceProps): react_jsx_runtime.JSX.Element;
14
-
15
- interface ChatLayoutProps {
16
- /** API base URL */
17
- apiBaseURL: string;
18
- /** API base path */
19
- apiBasePath: string;
20
- /** Current conversation ID (if viewing existing conversation) */
21
- conversationId?: string;
22
- /** Layout mode: 'full' for full page with sidebar, 'widget' for embeddable widget */
23
- layout?: "full" | "widget";
24
- /** Additional class name for the container */
25
- className?: string;
26
- /** Whether to show the sidebar (default: true for full layout) */
27
- showSidebar?: boolean;
28
- /** Height of the widget (only applies to widget layout) */
29
- widgetHeight?: string | number;
30
- }
31
- /**
32
- * ChatLayout component that provides a full-page chat experience with sidebar
33
- * or a compact widget mode for embedding.
34
- */
35
- declare function ChatLayout({ apiBaseURL, apiBasePath, conversationId, layout, className, showSidebar, widgetHeight, }: ChatLayoutProps): react_jsx_runtime.JSX.Element;
36
-
37
- interface ChatSidebarProps {
38
- currentConversationId?: string;
39
- onNewChat?: () => void;
40
- className?: string;
41
- }
42
- declare function ChatSidebar({ currentConversationId, onNewChat, className, }: ChatSidebarProps): react_jsx_runtime.JSX.Element;
43
-
44
- interface ChatMessageProps {
45
- message: UIMessage;
46
- isStreaming?: boolean;
47
- variant?: "default" | "compact";
48
- /** Callback when user wants to retry/regenerate an AI response */
49
- onRetry?: () => void;
50
- /** Callback when user edits their message - receives the new text */
51
- onEdit?: (newText: string) => void;
52
- /** Whether retry is currently in progress */
53
- isRetrying?: boolean;
54
- }
55
- declare function ChatMessage({ message, isStreaming, variant, onRetry, onEdit, isRetrying, }: ChatMessageProps): react_jsx_runtime.JSX.Element;
56
-
57
- /** Represents an attached file with metadata */
58
- interface AttachedFile {
59
- /** Data URL or uploaded URL */
60
- url: string;
61
- /** MIME type of the file */
62
- mediaType: string;
63
- /** Original filename */
64
- filename: string;
65
- }
66
- interface ChatInputProps {
67
- input?: string;
68
- handleInputChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
69
- handleSubmit: (e: FormEvent<HTMLFormElement>, files?: AttachedFile[]) => void;
70
- isLoading: boolean;
71
- placeholder?: string;
72
- variant?: "default" | "compact";
73
- /** Callback when files are attached (for controlled mode) */
74
- onFilesAttached?: (files: AttachedFile[]) => void;
75
- /** Attached files (for controlled mode) */
76
- attachedFiles?: AttachedFile[];
77
- }
78
- declare function ChatInput({ input, handleInputChange, handleSubmit, isLoading, placeholder, variant, onFilesAttached, attachedFiles: controlledFiles, }: ChatInputProps): react_jsx_runtime.JSX.Element;
79
-
80
- export { ChatInterface as C, ChatLayout as a, ChatSidebar as b, ChatMessage as c, ChatInput as d };
@@ -1,80 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { UIMessage } from 'ai';
3
- import { FormEvent } from 'react';
4
-
5
- interface ChatInterfaceProps {
6
- apiPath?: string;
7
- initialMessages?: UIMessage[];
8
- id?: string;
9
- /** Variant: 'full' for full-page layout, 'widget' for embedded widget */
10
- variant?: "full" | "widget";
11
- className?: string;
12
- }
13
- declare function ChatInterface({ apiPath, initialMessages, id, variant, className, }: ChatInterfaceProps): react_jsx_runtime.JSX.Element;
14
-
15
- interface ChatLayoutProps {
16
- /** API base URL */
17
- apiBaseURL: string;
18
- /** API base path */
19
- apiBasePath: string;
20
- /** Current conversation ID (if viewing existing conversation) */
21
- conversationId?: string;
22
- /** Layout mode: 'full' for full page with sidebar, 'widget' for embeddable widget */
23
- layout?: "full" | "widget";
24
- /** Additional class name for the container */
25
- className?: string;
26
- /** Whether to show the sidebar (default: true for full layout) */
27
- showSidebar?: boolean;
28
- /** Height of the widget (only applies to widget layout) */
29
- widgetHeight?: string | number;
30
- }
31
- /**
32
- * ChatLayout component that provides a full-page chat experience with sidebar
33
- * or a compact widget mode for embedding.
34
- */
35
- declare function ChatLayout({ apiBaseURL, apiBasePath, conversationId, layout, className, showSidebar, widgetHeight, }: ChatLayoutProps): react_jsx_runtime.JSX.Element;
36
-
37
- interface ChatSidebarProps {
38
- currentConversationId?: string;
39
- onNewChat?: () => void;
40
- className?: string;
41
- }
42
- declare function ChatSidebar({ currentConversationId, onNewChat, className, }: ChatSidebarProps): react_jsx_runtime.JSX.Element;
43
-
44
- interface ChatMessageProps {
45
- message: UIMessage;
46
- isStreaming?: boolean;
47
- variant?: "default" | "compact";
48
- /** Callback when user wants to retry/regenerate an AI response */
49
- onRetry?: () => void;
50
- /** Callback when user edits their message - receives the new text */
51
- onEdit?: (newText: string) => void;
52
- /** Whether retry is currently in progress */
53
- isRetrying?: boolean;
54
- }
55
- declare function ChatMessage({ message, isStreaming, variant, onRetry, onEdit, isRetrying, }: ChatMessageProps): react_jsx_runtime.JSX.Element;
56
-
57
- /** Represents an attached file with metadata */
58
- interface AttachedFile {
59
- /** Data URL or uploaded URL */
60
- url: string;
61
- /** MIME type of the file */
62
- mediaType: string;
63
- /** Original filename */
64
- filename: string;
65
- }
66
- interface ChatInputProps {
67
- input?: string;
68
- handleInputChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
69
- handleSubmit: (e: FormEvent<HTMLFormElement>, files?: AttachedFile[]) => void;
70
- isLoading: boolean;
71
- placeholder?: string;
72
- variant?: "default" | "compact";
73
- /** Callback when files are attached (for controlled mode) */
74
- onFilesAttached?: (files: AttachedFile[]) => void;
75
- /** Attached files (for controlled mode) */
76
- attachedFiles?: AttachedFile[];
77
- }
78
- declare function ChatInput({ input, handleInputChange, handleSubmit, isLoading, placeholder, variant, onFilesAttached, attachedFiles: controlledFiles, }: ChatInputProps): react_jsx_runtime.JSX.Element;
79
-
80
- export { ChatInterface as C, ChatLayout as a, ChatSidebar as b, ChatMessage as c, ChatInput as d };