@btst/stack 1.5.1 → 1.5.2

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 (277) hide show
  1. package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/DayPicker.cjs +14 -2
  2. package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/DayPicker.mjs +14 -2
  3. package/dist/node_modules/.pnpm/react-day-picker@9.13.0_react@19.2.0/node_modules/react-day-picker/dist/esm/noonDateLib.cjs +162 -0
  4. package/dist/node_modules/.pnpm/react-day-picker@9.13.0_react@19.2.0/node_modules/react-day-picker/dist/esm/noonDateLib.mjs +160 -0
  5. package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.cjs +12 -8
  6. package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.mjs +12 -8
  7. package/dist/packages/better-stack/src/plugins/cms/api/plugin.cjs +33 -4
  8. package/dist/packages/better-stack/src/plugins/cms/api/plugin.mjs +33 -4
  9. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.cjs +26 -141
  10. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.mjs +24 -139
  11. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/file-upload.cjs +2 -2
  12. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/file-upload.mjs +2 -2
  13. package/dist/packages/better-stack/src/plugins/cms/db.cjs +4 -0
  14. package/dist/packages/better-stack/src/plugins/cms/db.mjs +4 -0
  15. package/dist/packages/better-stack/src/plugins/cms/schemas.cjs +0 -1
  16. package/dist/packages/better-stack/src/plugins/cms/schemas.mjs +0 -1
  17. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/common/label.cjs +2 -2
  18. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/common/label.mjs +2 -2
  19. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/config.cjs +0 -2
  20. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/config.mjs +0 -2
  21. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/array.cjs +15 -29
  22. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/array.mjs +16 -16
  23. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/checkbox.cjs +2 -2
  24. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/checkbox.mjs +2 -2
  25. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/date.cjs +29 -5
  26. package/dist/packages/ui/src/components/auto-form/fields/date.mjs +59 -0
  27. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/enum.cjs +2 -2
  28. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/enum.mjs +2 -2
  29. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/input.cjs +2 -2
  30. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/input.mjs +2 -2
  31. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/number.cjs +2 -2
  32. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/number.mjs +2 -2
  33. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/object.cjs +7 -4
  34. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/object.mjs +8 -5
  35. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/radio-group.cjs +2 -2
  36. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/radio-group.mjs +2 -2
  37. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/switch.cjs +2 -2
  38. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/switch.mjs +2 -2
  39. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/textarea.cjs +2 -2
  40. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/fields/textarea.mjs +2 -2
  41. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/index.cjs +3 -3
  42. package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/index.mjs +3 -3
  43. package/dist/packages/ui/src/components/auto-form/utils.cjs +306 -0
  44. package/dist/packages/ui/src/components/auto-form/utils.mjs +294 -0
  45. package/dist/packages/ui/src/components/calendar.cjs +2 -2
  46. package/dist/packages/ui/src/components/calendar.mjs +2 -2
  47. package/dist/plugins/cms/api/index.d.cts +2 -4
  48. package/dist/plugins/cms/api/index.d.mts +2 -4
  49. package/dist/plugins/cms/api/index.d.ts +2 -4
  50. package/dist/plugins/cms/client/hooks/index.d.cts +1 -4
  51. package/dist/plugins/cms/client/hooks/index.d.mts +1 -4
  52. package/dist/plugins/cms/client/hooks/index.d.ts +1 -4
  53. package/dist/plugins/cms/client/index.d.cts +113 -5
  54. package/dist/plugins/cms/client/index.d.mts +113 -5
  55. package/dist/plugins/cms/client/index.d.ts +113 -5
  56. package/dist/plugins/cms/query-keys.d.cts +1 -4
  57. package/dist/plugins/cms/query-keys.d.mts +1 -4
  58. package/dist/plugins/cms/query-keys.d.ts +1 -4
  59. package/dist/shared/{stack.DwnJA87a.d.ts → stack.L-UFwz2G.d.cts} +14 -14
  60. package/dist/shared/{stack.BwkyFwF8.d.cts → stack.L-UFwz2G.d.mts} +14 -14
  61. package/dist/shared/{stack.DBqxCs0V.d.mts → stack.L-UFwz2G.d.ts} +14 -14
  62. package/package.json +1 -1
  63. package/src/plugins/cms/__tests__/schema-roundtrip.test.ts +195 -0
  64. package/src/plugins/cms/api/plugin.ts +65 -4
  65. package/src/plugins/cms/client/components/forms/content-form.tsx +50 -234
  66. package/src/plugins/cms/client/components/forms/file-upload.tsx +3 -3
  67. package/src/plugins/cms/client/index.ts +1 -1
  68. package/src/plugins/cms/client/overrides.ts +1 -1
  69. package/src/plugins/cms/db.ts +4 -0
  70. package/src/plugins/cms/schemas.ts +1 -1
  71. package/src/plugins/cms/types.ts +14 -17
  72. package/dist/packages/ui/src/components/ui/auto-form/fields/date.mjs +0 -35
  73. package/dist/packages/ui/src/components/ui/auto-form/fields/file.cjs +0 -63
  74. package/dist/packages/ui/src/components/ui/auto-form/fields/file.mjs +0 -61
  75. package/dist/packages/ui/src/components/ui/auto-form/utils.cjs +0 -179
  76. package/dist/packages/ui/src/components/ui/auto-form/utils.mjs +0 -169
  77. package/dist/shared/stack.NZJogTUn.d.cts +0 -66
  78. package/dist/shared/stack.NZJogTUn.d.mts +0 -66
  79. package/dist/shared/stack.NZJogTUn.d.ts +0 -66
  80. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/UI.cjs +0 -0
  81. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/UI.mjs +0 -0
  82. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarDay.cjs +0 -0
  83. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarDay.mjs +0 -0
  84. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.cjs +0 -0
  85. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.mjs +0 -0
  86. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.cjs +0 -0
  87. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.mjs +0 -0
  88. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/DateLib.cjs +0 -0
  89. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/classes/DateLib.mjs +0 -0
  90. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Button.cjs +0 -0
  91. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Button.mjs +0 -0
  92. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/CaptionLabel.cjs +0 -0
  93. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/CaptionLabel.mjs +0 -0
  94. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Chevron.cjs +0 -0
  95. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Chevron.mjs +0 -0
  96. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Day.cjs +0 -0
  97. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Day.mjs +0 -0
  98. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DayButton.cjs +0 -0
  99. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DayButton.mjs +0 -0
  100. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Dropdown.cjs +0 -0
  101. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Dropdown.mjs +0 -0
  102. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DropdownNav.cjs +0 -0
  103. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/DropdownNav.mjs +0 -0
  104. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Footer.cjs +0 -0
  105. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Footer.mjs +0 -0
  106. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Month.cjs +0 -0
  107. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Month.mjs +0 -0
  108. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthCaption.cjs +0 -0
  109. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthCaption.mjs +0 -0
  110. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthGrid.cjs +0 -0
  111. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthGrid.mjs +0 -0
  112. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Months.cjs +0 -0
  113. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Months.mjs +0 -0
  114. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.cjs +0 -0
  115. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.mjs +0 -0
  116. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Nav.cjs +0 -0
  117. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Nav.mjs +0 -0
  118. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/NextMonthButton.cjs +0 -0
  119. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/NextMonthButton.mjs +0 -0
  120. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Option.cjs +0 -0
  121. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Option.mjs +0 -0
  122. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.cjs +0 -0
  123. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.mjs +0 -0
  124. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Root.cjs +0 -0
  125. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Root.mjs +0 -0
  126. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Select.cjs +0 -0
  127. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Select.mjs +0 -0
  128. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Week.cjs +0 -0
  129. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Week.mjs +0 -0
  130. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumber.cjs +0 -0
  131. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumber.mjs +0 -0
  132. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.cjs +0 -0
  133. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.mjs +0 -0
  134. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekday.cjs +0 -0
  135. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekday.mjs +0 -0
  136. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekdays.cjs +0 -0
  137. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weekdays.mjs +0 -0
  138. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weeks.cjs +0 -0
  139. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/Weeks.mjs +0 -0
  140. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/YearsDropdown.cjs +0 -0
  141. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/YearsDropdown.mjs +0 -0
  142. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/custom-components.cjs +0 -0
  143. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/components/custom-components.mjs +0 -0
  144. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatCaption.cjs +0 -0
  145. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatCaption.mjs +0 -0
  146. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatDay.cjs +0 -0
  147. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatDay.mjs +0 -0
  148. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.cjs +0 -0
  149. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.mjs +0 -0
  150. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.cjs +0 -0
  151. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.mjs +0 -0
  152. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.cjs +0 -0
  153. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.mjs +0 -0
  154. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.cjs +0 -0
  155. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.mjs +0 -0
  156. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.cjs +0 -0
  157. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.mjs +0 -0
  158. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/index.cjs +0 -0
  159. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/formatters/index.mjs +0 -0
  160. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.cjs +0 -0
  161. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.mjs +0 -0
  162. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.cjs +0 -0
  163. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.mjs +0 -0
  164. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.cjs +0 -0
  165. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.mjs +0 -0
  166. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.cjs +0 -0
  167. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.mjs +0 -0
  168. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.cjs +0 -0
  169. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.mjs +0 -0
  170. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getComponents.cjs +0 -0
  171. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getComponents.mjs +0 -0
  172. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.cjs +0 -0
  173. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.mjs +0 -0
  174. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDates.cjs +0 -0
  175. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDates.mjs +0 -0
  176. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDays.cjs +0 -0
  177. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDays.mjs +0 -0
  178. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.cjs +0 -0
  179. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.mjs +0 -0
  180. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.cjs +0 -0
  181. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.mjs +0 -0
  182. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.cjs +0 -0
  183. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.mjs +0 -0
  184. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFormatters.cjs +0 -0
  185. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getFormatters.mjs +0 -0
  186. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.cjs +0 -0
  187. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.mjs +0 -0
  188. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getLabels.cjs +0 -0
  189. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getLabels.mjs +0 -0
  190. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.cjs +0 -0
  191. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.mjs +0 -0
  192. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonths.cjs +0 -0
  193. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getMonths.mjs +0 -0
  194. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.cjs +0 -0
  195. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.mjs +0 -0
  196. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.cjs +0 -0
  197. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.mjs +0 -0
  198. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.cjs +0 -0
  199. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.mjs +0 -0
  200. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.cjs +0 -0
  201. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.mjs +0 -0
  202. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.cjs +0 -0
  203. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.mjs +0 -0
  204. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.cjs +0 -0
  205. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.mjs +0 -0
  206. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeeks.cjs +0 -0
  207. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getWeeks.mjs +0 -0
  208. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.cjs +0 -0
  209. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.mjs +0 -0
  210. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.cjs +0 -0
  211. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.mjs +0 -0
  212. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.cjs +0 -0
  213. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.mjs +0 -0
  214. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/index.cjs +0 -0
  215. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/index.mjs +0 -0
  216. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelDayButton.cjs +0 -0
  217. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelDayButton.mjs +0 -0
  218. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGrid.cjs +0 -0
  219. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGrid.mjs +0 -0
  220. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGridcell.cjs +0 -0
  221. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelGridcell.mjs +0 -0
  222. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.cjs +0 -0
  223. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.mjs +0 -0
  224. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNav.cjs +0 -0
  225. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNav.mjs +0 -0
  226. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNext.cjs +0 -0
  227. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelNext.mjs +0 -0
  228. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelPrevious.cjs +0 -0
  229. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelPrevious.mjs +0 -0
  230. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.cjs +0 -0
  231. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.mjs +0 -0
  232. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.cjs +0 -0
  233. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.mjs +0 -0
  234. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekday.cjs +0 -0
  235. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelWeekday.mjs +0 -0
  236. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.cjs +0 -0
  237. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.mjs +0 -0
  238. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/locale/en-US.cjs +0 -0
  239. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/locale/en-US.mjs +0 -0
  240. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useMulti.cjs +0 -0
  241. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useMulti.mjs +0 -0
  242. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useRange.cjs +0 -0
  243. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useRange.mjs +0 -0
  244. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useSingle.cjs +0 -0
  245. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/selection/useSingle.mjs +0 -0
  246. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useAnimation.cjs +0 -0
  247. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useAnimation.mjs +0 -0
  248. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useCalendar.cjs +0 -0
  249. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useCalendar.mjs +0 -0
  250. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useDayPicker.cjs +0 -0
  251. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useDayPicker.mjs +0 -0
  252. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useFocus.cjs +0 -0
  253. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useFocus.mjs +0 -0
  254. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useSelection.cjs +0 -0
  255. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/useSelection.mjs +0 -0
  256. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/addToRange.cjs +0 -0
  257. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/addToRange.mjs +0 -0
  258. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.cjs +0 -0
  259. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.mjs +0 -0
  260. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.cjs +0 -0
  261. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.mjs +0 -0
  262. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.cjs +0 -0
  263. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.mjs +0 -0
  264. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.cjs +0 -0
  265. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.mjs +0 -0
  266. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.cjs +0 -0
  267. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.mjs +0 -0
  268. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/toTimeZone.cjs +0 -0
  269. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/toTimeZone.mjs +0 -0
  270. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/typeguards.cjs +0 -0
  271. /package/dist/node_modules/.pnpm/{react-day-picker@9.12.0_react@19.2.0 → react-day-picker@9.13.0_react@19.2.0}/node_modules/react-day-picker/dist/esm/utils/typeguards.mjs +0 -0
  272. /package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/common/tooltip.cjs +0 -0
  273. /package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/common/tooltip.mjs +0 -0
  274. /package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/dependencies.cjs +0 -0
  275. /package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/dependencies.mjs +0 -0
  276. /package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/types.cjs +0 -0
  277. /package/dist/packages/ui/src/components/{ui/auto-form → auto-form}/types.mjs +0 -0
@@ -16,12 +16,66 @@ import type {
16
16
  import { listContentQuerySchema } from "../schemas";
17
17
  import { slugify } from "../utils";
18
18
 
19
+ /**
20
+ * Migrate a legacy JSON Schema (version 1) to unified format (version 2)
21
+ * by merging fieldConfig values into the JSON Schema properties
22
+ */
23
+ function migrateToUnifiedSchema(
24
+ jsonSchemaStr: string,
25
+ fieldConfigStr: string | null | undefined,
26
+ ): string {
27
+ if (!fieldConfigStr) {
28
+ return jsonSchemaStr;
29
+ }
30
+
31
+ try {
32
+ const jsonSchema = JSON.parse(jsonSchemaStr);
33
+ const fieldConfig = JSON.parse(fieldConfigStr);
34
+
35
+ if (!jsonSchema.properties || typeof fieldConfig !== "object") {
36
+ return jsonSchemaStr;
37
+ }
38
+
39
+ // Merge fieldType from fieldConfig into each property
40
+ for (const [key, config] of Object.entries(fieldConfig)) {
41
+ if (
42
+ jsonSchema.properties[key] &&
43
+ typeof config === "object" &&
44
+ config !== null &&
45
+ "fieldType" in config
46
+ ) {
47
+ jsonSchema.properties[key].fieldType = (
48
+ config as { fieldType: string }
49
+ ).fieldType;
50
+ }
51
+ }
52
+
53
+ return JSON.stringify(jsonSchema);
54
+ } catch {
55
+ // If parsing fails, return original
56
+ return jsonSchemaStr;
57
+ }
58
+ }
59
+
19
60
  /**
20
61
  * Serialize a ContentType for API response (convert dates to strings)
62
+ * Also applies lazy migration for legacy schemas (version 1 → 2)
21
63
  */
22
64
  function serializeContentType(ct: ContentType): SerializedContentType {
65
+ // Check if this is a legacy schema that needs migration
66
+ const needsMigration = !ct.autoFormVersion || ct.autoFormVersion < 2;
67
+
68
+ // Apply lazy migration: merge fieldConfig into jsonSchema on read
69
+ const migratedJsonSchema = needsMigration
70
+ ? migrateToUnifiedSchema(ct.jsonSchema, ct.fieldConfig)
71
+ : ct.jsonSchema;
72
+
23
73
  return {
24
- ...ct,
74
+ id: ct.id,
75
+ name: ct.name,
76
+ slug: ct.slug,
77
+ description: ct.description,
78
+ jsonSchema: migratedJsonSchema,
25
79
  createdAt: ct.createdAt.toISOString(),
26
80
  updatedAt: ct.updatedAt.toISOString(),
27
81
  };
@@ -57,6 +111,11 @@ function serializeContentItemWithType(
57
111
  * Sync content types from config to database
58
112
  * Creates or updates content types based on the developer's Zod schemas
59
113
  *
114
+ * Always writes version 2 format:
115
+ * - fieldType is embedded in jsonSchema via .meta()
116
+ * - fieldConfig is set to null (no longer used)
117
+ * - autoFormVersion is set to 2
118
+ *
60
119
  * Handles race conditions from multiple instances by catching unique constraint
61
120
  * errors and verifying the record exists (another instance created it first).
62
121
  */
@@ -65,8 +124,8 @@ async function syncContentTypes(
65
124
  config: CMSBackendConfig,
66
125
  ): Promise<void> {
67
126
  for (const ct of config.contentTypes) {
127
+ // Convert Zod schema to JSON Schema - fieldType is now embedded via .meta()
68
128
  const jsonSchema = JSON.stringify(z.toJSONSchema(ct.schema));
69
- const fieldConfig = ct.fieldConfig ? JSON.stringify(ct.fieldConfig) : null;
70
129
 
71
130
  const existing = await adapter.findOne<ContentType>({
72
131
  model: "contentType",
@@ -81,7 +140,8 @@ async function syncContentTypes(
81
140
  name: ct.name,
82
141
  description: ct.description ?? null,
83
142
  jsonSchema,
84
- fieldConfig,
143
+ fieldConfig: null, // No longer used in version 2
144
+ autoFormVersion: 2,
85
145
  updatedAt: new Date(),
86
146
  },
87
147
  });
@@ -94,7 +154,8 @@ async function syncContentTypes(
94
154
  slug: ct.slug,
95
155
  description: ct.description ?? null,
96
156
  jsonSchema,
97
- fieldConfig,
157
+ fieldConfig: null, // No longer used in version 2
158
+ autoFormVersion: 2,
98
159
  createdAt: new Date(),
99
160
  updatedAt: new Date(),
100
161
  },
@@ -3,13 +3,15 @@
3
3
  import { useState, useMemo, useEffect } from "react";
4
4
  import { z } from "zod";
5
5
  import { toast } from "sonner";
6
- import AutoForm, {
7
- AutoFormSubmit,
8
- } from "@workspace/ui/components/ui/auto-form";
6
+ import AutoForm, { AutoFormSubmit } from "@workspace/ui/components/auto-form";
9
7
  import type {
10
8
  FieldConfig,
11
9
  AutoFormInputComponentProps,
12
- } from "@workspace/ui/components/ui/auto-form/types";
10
+ } from "@workspace/ui/components/auto-form/types";
11
+ import {
12
+ buildFieldConfigFromJsonSchema as buildFieldConfigBase,
13
+ fromJSONSchemaWithDates,
14
+ } from "@workspace/ui/components/auto-form/utils";
13
15
  import { Input } from "@workspace/ui/components/input";
14
16
  import { Label } from "@workspace/ui/components/label";
15
17
  import { Badge } from "@workspace/ui/components/badge";
@@ -20,126 +22,6 @@ import { slugify } from "../../../utils";
20
22
  import { CMS_LOCALIZATION } from "../../localization";
21
23
  import { CMSFileUpload } from "./file-upload";
22
24
 
23
- /**
24
- * JSON Schema property type definition
25
- */
26
- interface JsonSchemaProperty {
27
- type?: string | string[];
28
- format?: string;
29
- enum?: (string | number | boolean)[];
30
- minimum?: number;
31
- maximum?: number;
32
- minLength?: number;
33
- maxLength?: number;
34
- default?: unknown;
35
- description?: string;
36
- }
37
-
38
- interface JsonSchema {
39
- type?: string;
40
- properties?: Record<string, JsonSchemaProperty>;
41
- required?: string[];
42
- }
43
-
44
- /**
45
- * Convert JSON Schema to Zod schema with proper coercion for AutoForm
46
- *
47
- * Uses Zod v4's native z.fromJSONSchema() as a base and applies coercion
48
- * where needed. AutoForm requires z.coerce.number() and z.coerce.date()
49
- * for proper form handling because HTML inputs return strings.
50
- *
51
- * Note: We build the schema manually to ensure proper coercion support,
52
- * as z.fromJSONSchema() doesn't add coercion automatically.
53
- */
54
- function jsonSchemaToZodWithCoercion(
55
- jsonSchema: JsonSchema,
56
- ): z.ZodObject<Record<string, z.ZodTypeAny>> {
57
- const shape: Record<string, z.ZodTypeAny> = {};
58
- const properties = jsonSchema.properties || {};
59
- const required = jsonSchema.required || [];
60
-
61
- for (const [key, prop] of Object.entries(properties)) {
62
- let fieldSchema: z.ZodTypeAny;
63
-
64
- // Determine the type (handle arrays like ["string", "null"] for nullable)
65
- const typeValue = Array.isArray(prop.type) ? prop.type[0] : prop.type;
66
-
67
- // Handle enum first - works for string enums
68
- if (prop.enum && Array.isArray(prop.enum) && prop.enum.length > 0) {
69
- // Filter to only string values for z.enum
70
- const stringValues = prop.enum.filter(
71
- (v): v is string => typeof v === "string",
72
- );
73
- if (stringValues.length > 0) {
74
- fieldSchema = z.enum(stringValues as [string, ...string[]]);
75
- } else {
76
- // Fallback for non-string enums
77
- fieldSchema = z.string();
78
- }
79
- } else {
80
- switch (typeValue) {
81
- case "number":
82
- case "integer": {
83
- // Use z.coerce.number() for proper form handling (HTML inputs return strings)
84
- let numSchema = z.coerce.number();
85
- if (prop.minimum !== undefined) {
86
- numSchema = numSchema.min(prop.minimum);
87
- }
88
- if (prop.maximum !== undefined) {
89
- numSchema = numSchema.max(prop.maximum);
90
- }
91
- fieldSchema = numSchema;
92
- break;
93
- }
94
- case "boolean": {
95
- fieldSchema = z.boolean();
96
- if (prop.default !== undefined) {
97
- fieldSchema = (fieldSchema as z.ZodBoolean).default(
98
- prop.default as boolean,
99
- );
100
- }
101
- break;
102
- }
103
- case "string": {
104
- // Check for date format
105
- if (prop.format === "date" || prop.format === "date-time") {
106
- fieldSchema = z.coerce.date();
107
- } else {
108
- let strSchema = z.string();
109
- if (prop.minLength !== undefined) {
110
- strSchema = strSchema.min(prop.minLength);
111
- }
112
- if (prop.maxLength !== undefined) {
113
- strSchema = strSchema.max(prop.maxLength);
114
- }
115
- fieldSchema = strSchema;
116
- }
117
- break;
118
- }
119
- default: {
120
- // Fallback to string for unknown types
121
- fieldSchema = z.string();
122
- }
123
- }
124
- }
125
-
126
- // Apply default if present and not already applied (skip for booleans which handle it above)
127
- // Use typeValue to correctly handle nullable types where prop.type is an array like ["boolean", "null"]
128
- if (prop.default !== undefined && typeValue !== "boolean") {
129
- fieldSchema = fieldSchema.default(prop.default);
130
- }
131
-
132
- // Make optional if not in required array
133
- if (!required.includes(key)) {
134
- fieldSchema = fieldSchema.optional();
135
- }
136
-
137
- shape[key] = fieldSchema;
138
- }
139
-
140
- return z.object(shape);
141
- }
142
-
143
25
  interface ContentFormProps {
144
26
  contentType: SerializedContentType;
145
27
  initialData?: Record<string, unknown>;
@@ -153,112 +35,63 @@ interface ContentFormProps {
153
35
  }
154
36
 
155
37
  /**
156
- * Built-in AutoForm field types
157
- */
158
- const BUILTIN_FIELD_TYPES = [
159
- "checkbox",
160
- "date",
161
- "select",
162
- "radio",
163
- "switch",
164
- "textarea",
165
- "number",
166
- "file",
167
- "fallback",
168
- ] as const;
169
-
170
- /**
171
- * Extract field configuration from JSON Schema properties
172
- * Maps description and placeholder to AutoForm's fieldConfig format
38
+ * Build field configuration for AutoForm with CMS-specific file upload handling.
173
39
  *
174
- * @param jsonSchema - The JSON Schema from the content type
175
- * @param storedFieldConfig - The stored field config from the content type
176
- * @param uploadImage - The uploadImage function from overrides (for default file component)
40
+ * Uses the shared buildFieldConfigFromJsonSchema from auto-form/utils as a base,
41
+ * then adds special handling for "file" fieldType to inject CMSFileUpload component
42
+ * ONLY if no custom component is provided via fieldComponents.
43
+ *
44
+ * @param jsonSchema - The JSON Schema from the content type (with fieldType embedded in properties)
45
+ * @param uploadImage - The uploadImage function from overrides (for file fields)
177
46
  * @param fieldComponents - Custom field components from overrides
178
47
  */
179
48
  function buildFieldConfigFromJsonSchema(
180
49
  jsonSchema: Record<string, unknown>,
181
- storedFieldConfig?: Record<string, { fieldType?: string }>,
182
50
  uploadImage?: (file: File) => Promise<string>,
183
51
  fieldComponents?: Record<
184
52
  string,
185
53
  React.ComponentType<AutoFormInputComponentProps>
186
54
  >,
187
55
  ): FieldConfig<Record<string, unknown>> {
188
- const fieldConfig: FieldConfig<Record<string, unknown>> = {};
56
+ // Get base config from shared utility (handles fieldType from JSON Schema)
57
+ const baseConfig = buildFieldConfigBase(jsonSchema, fieldComponents);
58
+
59
+ // Apply CMS-specific handling for "file" fieldType ONLY if no custom component exists
60
+ // Custom fieldComponents take priority - don't override if user provided one
189
61
  const properties = jsonSchema.properties as Record<
190
62
  string,
191
- { description?: string; placeholder?: string }
63
+ { fieldType?: string }
192
64
  >;
193
65
 
194
- if (!properties) return fieldConfig;
66
+ if (!properties) return baseConfig;
195
67
 
196
- for (const [key, value] of Object.entries(properties)) {
197
- const config: Record<string, unknown> = {};
198
-
199
- if (value.description) {
200
- config.description = value.description;
201
- }
202
-
203
- if (value.placeholder) {
204
- config.inputProps = {
205
- placeholder: value.placeholder,
206
- };
207
- }
208
-
209
- // Apply stored fieldConfig overrides (e.g., fieldType: "textarea", "file", or custom types)
210
- if (storedFieldConfig?.[key]) {
211
- const storedConfig = storedFieldConfig[key];
212
- const fieldType = storedConfig.fieldType;
213
-
214
- if (fieldType) {
215
- // 1. Check if there's a custom component in fieldComponents
216
- if (fieldComponents?.[fieldType]) {
217
- const CustomComponent = fieldComponents[fieldType];
218
- config.fieldType = (props: AutoFormInputComponentProps) => (
219
- <CustomComponent {...props} />
220
- );
221
- }
222
- // 2. Special handling for built-in "file" type - use CMSFileUpload with uploadImage
223
- else if (fieldType === "file") {
224
- if (!uploadImage) {
225
- // Show a clear error message if uploadImage is not provided
226
- config.fieldType = () => (
227
- <div className="rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive">
228
- File upload requires an <code>uploadImage</code> function in CMS
229
- overrides.
230
- </div>
231
- );
232
- } else {
233
- config.fieldType = (props: AutoFormInputComponentProps) => (
234
- <CMSFileUpload {...props} uploadImage={uploadImage} />
235
- );
236
- }
237
- }
238
- // 3. For other built-in types, pass through to auto-form
239
- else if (
240
- BUILTIN_FIELD_TYPES.includes(
241
- fieldType as (typeof BUILTIN_FIELD_TYPES)[number],
242
- )
243
- ) {
244
- config.fieldType = fieldType;
245
- }
246
- // 4. Unknown custom type without a component - log warning and skip
247
- else {
248
- console.warn(
249
- `CMS: Unknown fieldType "${fieldType}" for field "${key}". ` +
250
- `Provide a component via fieldComponents override or use a built-in type.`,
251
- );
252
- }
68
+ for (const [key, prop] of Object.entries(properties)) {
69
+ // Only handle "file" fieldType when there's NO custom component for "file"
70
+ if (prop.fieldType === "file" && !fieldComponents?.["file"]) {
71
+ // Use CMSFileUpload as the default file component
72
+ if (!uploadImage) {
73
+ // Show a clear error message if uploadImage is not provided
74
+ baseConfig[key] = {
75
+ ...baseConfig[key],
76
+ fieldType: () => (
77
+ <div className="rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive">
78
+ File upload requires an <code>uploadImage</code> function in CMS
79
+ overrides.
80
+ </div>
81
+ ),
82
+ };
83
+ } else {
84
+ baseConfig[key] = {
85
+ ...baseConfig[key],
86
+ fieldType: (props: AutoFormInputComponentProps) => (
87
+ <CMSFileUpload {...props} uploadImage={uploadImage} />
88
+ ),
89
+ };
253
90
  }
254
91
  }
255
-
256
- if (Object.keys(config).length > 0) {
257
- fieldConfig[key] = config;
258
- }
259
92
  }
260
93
 
261
- return fieldConfig;
94
+ return baseConfig;
262
95
  }
263
96
 
264
97
  /**
@@ -326,7 +159,7 @@ export function ContentForm({
326
159
  }
327
160
  }, [initialSlug, isEditing]);
328
161
 
329
- // Parse JSON Schema
162
+ // Parse JSON Schema (now includes fieldType embedded in properties)
330
163
  const jsonSchema = useMemo(() => {
331
164
  try {
332
165
  return JSON.parse(contentType.jsonSchema) as Record<string, unknown>;
@@ -335,38 +168,21 @@ export function ContentForm({
335
168
  }
336
169
  }, [contentType.jsonSchema]);
337
170
 
338
- // Parse stored field config
339
- const storedFieldConfig = useMemo(() => {
340
- if (!contentType.fieldConfig) return undefined;
341
- try {
342
- return JSON.parse(contentType.fieldConfig) as Record<
343
- string,
344
- { fieldType?: string }
345
- >;
346
- } catch {
347
- return undefined;
348
- }
349
- }, [contentType.fieldConfig]);
350
-
351
- // Convert to Zod schema with coercion for proper AutoForm handling
171
+ // Convert JSON Schema to Zod schema using fromJSONSchemaWithDates utility
172
+ // This properly handles date fields (format: "date-time") and min/max date constraints
352
173
  const zodSchema = useMemo(() => {
353
174
  try {
354
- return jsonSchemaToZodWithCoercion(jsonSchema as JsonSchema);
175
+ return fromJSONSchemaWithDates(jsonSchema);
355
176
  } catch {
356
177
  return z.object({});
357
178
  }
358
179
  }, [jsonSchema]);
359
180
 
360
- // Build field config for AutoForm
181
+ // Build field config for AutoForm (fieldType is now embedded in jsonSchema)
361
182
  const fieldConfig = useMemo(
362
183
  () =>
363
- buildFieldConfigFromJsonSchema(
364
- jsonSchema,
365
- storedFieldConfig,
366
- uploadImage,
367
- fieldComponents,
368
- ),
369
- [jsonSchema, storedFieldConfig, uploadImage, fieldComponents],
184
+ buildFieldConfigFromJsonSchema(jsonSchema, uploadImage, fieldComponents),
185
+ [jsonSchema, uploadImage, fieldComponents],
370
186
  );
371
187
 
372
188
  // Find the field to use for slug auto-generation
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useState, useCallback, useEffect, type ChangeEvent } from "react";
4
4
  import { toast } from "sonner";
5
- import type { AutoFormInputComponentProps } from "@workspace/ui/components/ui/auto-form/types";
5
+ import type { AutoFormInputComponentProps } from "@workspace/ui/components/auto-form/types";
6
6
  import { Input } from "@workspace/ui/components/input";
7
7
  import { Button } from "@workspace/ui/components/button";
8
8
  import {
@@ -11,8 +11,8 @@ import {
11
11
  FormMessage,
12
12
  } from "@workspace/ui/components/form";
13
13
  import { Trash2, Loader2 } from "lucide-react";
14
- import AutoFormLabel from "@workspace/ui/components/ui/auto-form/common/label";
15
- import AutoFormTooltip from "@workspace/ui/components/ui/auto-form/common/tooltip";
14
+ import AutoFormLabel from "@workspace/ui/components/auto-form/common/label";
15
+ import AutoFormTooltip from "@workspace/ui/components/auto-form/common/tooltip";
16
16
 
17
17
  /**
18
18
  * Props for the CMSFileUpload component
@@ -4,7 +4,7 @@ export type { CMSPluginOverrides, RouteContext } from "./overrides";
4
4
  export type { CMSLocalization } from "./localization";
5
5
 
6
6
  // Re-export AutoFormInputComponentProps for custom field components
7
- export type { AutoFormInputComponentProps } from "@workspace/ui/components/ui/auto-form/types";
7
+ export type { AutoFormInputComponentProps } from "@workspace/ui/components/auto-form/types";
8
8
 
9
9
  // Export CMSFileUpload for consumers to use or extend
10
10
  export {
@@ -1,6 +1,6 @@
1
1
  import type { ComponentType } from "react";
2
2
  import type { CMSLocalization } from "./localization";
3
- import type { AutoFormInputComponentProps } from "@workspace/ui/components/ui/auto-form/types";
3
+ import type { AutoFormInputComponentProps } from "@workspace/ui/components/auto-form/types";
4
4
 
5
5
  /**
6
6
  * Context passed to lifecycle hooks
@@ -29,6 +29,10 @@ export const cmsSchema = createDbPlugin("cms", {
29
29
  type: "string",
30
30
  required: false,
31
31
  },
32
+ autoFormVersion: {
33
+ type: "number",
34
+ required: false,
35
+ },
32
36
  createdAt: {
33
37
  type: "date",
34
38
  defaultValue: () => new Date(),
@@ -31,6 +31,7 @@ export const updateContentSchema = z.object({
31
31
 
32
32
  /**
33
33
  * Schema for content type response
34
+ * Note: fieldConfig is no longer included - it's merged into jsonSchema during read
34
35
  */
35
36
  export const contentTypeResponseSchema = z.object({
36
37
  id: z.string(),
@@ -38,7 +39,6 @@ export const contentTypeResponseSchema = z.object({
38
39
  slug: z.string(),
39
40
  description: z.string().nullable().optional(),
40
41
  jsonSchema: z.string(),
41
- fieldConfig: z.string().nullable().optional(),
42
42
  createdAt: z.string(),
43
43
  updatedAt: z.string(),
44
44
  });
@@ -1,8 +1,16 @@
1
1
  import type { z } from "zod";
2
- import type { AutoFormFieldType } from "@workspace/ui/components/ui/auto-form/types";
3
2
 
4
3
  /**
5
- * Configuration for a content type defined by the developer
4
+ * Configuration for a content type defined by the developer.
5
+ *
6
+ * Field types are now specified directly in the Zod schema via .meta():
7
+ * @example
8
+ * ```typescript
9
+ * const ProductSchema = z.object({
10
+ * description: z.string().meta({ fieldType: "textarea" }),
11
+ * image: z.string().optional().meta({ fieldType: "file" }),
12
+ * });
13
+ * ```
6
14
  */
7
15
  export interface ContentTypeConfig {
8
16
  /** Display name for the content type (e.g., "Product", "Testimonial") */
@@ -11,21 +19,8 @@ export interface ContentTypeConfig {
11
19
  slug: string;
12
20
  /** Optional description shown in the admin UI */
13
21
  description?: string;
14
- /** Zod schema defining the content type's fields */
22
+ /** Zod schema defining the content type's fields. Use .meta({ fieldType: "..." }) for field type overrides. */
15
23
  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
24
  }
30
25
 
31
26
  /**
@@ -41,8 +36,10 @@ export type ContentType = {
41
36
  description?: string;
42
37
  /** JSON Schema representation of the Zod schema (stringified) */
43
38
  jsonSchema: string;
44
- /** Optional field configuration JSON (stringified) */
39
+ /** @deprecated Legacy field config - now embedded in jsonSchema. Kept for backwards compat. */
45
40
  fieldConfig?: string;
41
+ /** AutoForm schema version. 1 = legacy (separate fieldConfig), 2 = unified (fieldType in jsonSchema) */
42
+ autoFormVersion?: number;
46
43
  createdAt: Date;
47
44
  updatedAt: Date;
48
45
  };
@@ -1,35 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { DatePicker } from '../../../date-picker.mjs';
3
- import { FormItem, FormControl, FormMessage } from '../../../form.mjs';
4
- import AutoFormLabel from '../common/label.mjs';
5
- import AutoFormTooltip from '../common/tooltip.mjs';
6
-
7
- function AutoFormDate({
8
- label,
9
- isRequired,
10
- field,
11
- fieldConfigItem,
12
- fieldProps
13
- }) {
14
- return /* @__PURE__ */ jsxs(FormItem, { children: [
15
- /* @__PURE__ */ jsx(
16
- AutoFormLabel,
17
- {
18
- label: fieldConfigItem?.label || label,
19
- isRequired
20
- }
21
- ),
22
- /* @__PURE__ */ jsx(FormControl, { children: /* @__PURE__ */ jsx(
23
- DatePicker,
24
- {
25
- date: field.value,
26
- setDate: field.onChange,
27
- ...fieldProps
28
- }
29
- ) }),
30
- /* @__PURE__ */ jsx(AutoFormTooltip, { fieldConfigItem }),
31
- /* @__PURE__ */ jsx(FormMessage, {})
32
- ] });
33
- }
34
-
35
- export { AutoFormDate as default };
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- const jsxRuntime = require('react/jsx-runtime');
4
- const form = require('../../../form.cjs');
5
- const input = require('../../../input.cjs');
6
- const lucideReact = require('lucide-react');
7
- const React = require('react');
8
- const label = require('../common/label.cjs');
9
- const tooltip = require('../common/tooltip.cjs');
10
-
11
- function AutoFormFile({
12
- label: label$1,
13
- isRequired,
14
- fieldConfigItem,
15
- fieldProps,
16
- field
17
- }) {
18
- const { showLabel: _showLabel, ...fieldPropsWithoutShowLabel } = fieldProps;
19
- const showLabel = _showLabel === void 0 ? true : _showLabel;
20
- const [file, setFile] = React.useState(null);
21
- const [fileName, setFileName] = React.useState(null);
22
- const handleFileChange = (e) => {
23
- const file2 = e.target.files?.[0];
24
- if (file2) {
25
- const reader = new FileReader();
26
- reader.onloadend = () => {
27
- setFile(reader.result);
28
- setFileName(file2.name);
29
- field.onChange(reader.result);
30
- };
31
- reader.readAsDataURL(file2);
32
- }
33
- };
34
- const handleRemoveClick = () => {
35
- setFile(null);
36
- };
37
- return /* @__PURE__ */ jsxRuntime.jsxs(form.FormItem, { children: [
38
- showLabel && /* @__PURE__ */ jsxRuntime.jsx(
39
- label,
40
- {
41
- label: fieldConfigItem?.label || label$1,
42
- isRequired
43
- }
44
- ),
45
- !file && /* @__PURE__ */ jsxRuntime.jsx(form.FormControl, { children: /* @__PURE__ */ jsxRuntime.jsx(
46
- input.Input,
47
- {
48
- type: "file",
49
- ...fieldPropsWithoutShowLabel,
50
- onChange: handleFileChange,
51
- value: ""
52
- }
53
- ) }),
54
- file && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[40px] w-full flex-row items-center justify-between space-x-2 rounded-sm border p-2 text-black focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-white dark:text-black dark:focus-visible:ring-0 dark:focus-visible:ring-offset-0", children: [
55
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: fileName }),
56
- /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: handleRemoveClick, "aria-label": "Remove image", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { size: 16 }) })
57
- ] }),
58
- /* @__PURE__ */ jsxRuntime.jsx(tooltip, { fieldConfigItem }),
59
- /* @__PURE__ */ jsxRuntime.jsx(form.FormMessage, {})
60
- ] });
61
- }
62
-
63
- module.exports = AutoFormFile;