@customafk/lunas-ui 0.2.81 → 0.2.83

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 (327) hide show
  1. package/dist/{action-submit-kYjq-iPD.cjs → action-submit-B9vHpLoN.cjs} +2 -2
  2. package/dist/{action-submit-kYjq-iPD.cjs.map → action-submit-B9vHpLoN.cjs.map} +1 -1
  3. package/dist/{action-submit-DVNxnW4-.mjs → action-submit-BQdkz4mS.mjs} +2 -2
  4. package/dist/{action-submit-DVNxnW4-.mjs.map → action-submit-BQdkz4mS.mjs.map} +1 -1
  5. package/dist/{actions-form-DRrkiGzh.mjs → actions-form-D4n1W3-X.mjs} +2 -2
  6. package/dist/{actions-form-DRrkiGzh.mjs.map → actions-form-D4n1W3-X.mjs.map} +1 -1
  7. package/dist/{actions-form-CwicJU89.cjs → actions-form-DF2eYxGQ.cjs} +2 -2
  8. package/dist/{actions-form-CwicJU89.cjs.map → actions-form-DF2eYxGQ.cjs.map} +1 -1
  9. package/dist/{analysis-panel-DYF2CmAH.cjs → analysis-panel-B4ynYuwg.cjs} +2 -2
  10. package/dist/{analysis-panel-DYF2CmAH.cjs.map → analysis-panel-B4ynYuwg.cjs.map} +1 -1
  11. package/dist/{analysis-panel-_s1fgcZC.mjs → analysis-panel-CcM3tBcc.mjs} +2 -2
  12. package/dist/{analysis-panel-_s1fgcZC.mjs.map → analysis-panel-CcM3tBcc.mjs.map} +1 -1
  13. package/dist/{badge-C_KLKwiS.d.cts → badge-C_NPjGXe.d.cts} +10 -3
  14. package/dist/{badge-C_KLKwiS.d.mts → badge-C_NPjGXe.d.mts} +10 -3
  15. package/dist/{badge-display-DWzSl3rs.cjs → badge-display-C1_Fc3Sj.cjs} +2 -2
  16. package/dist/{badge-display-DWzSl3rs.cjs.map → badge-display-C1_Fc3Sj.cjs.map} +1 -1
  17. package/dist/{badge-display-D6d7wTEE.mjs → badge-display-DRmVhZ-C.mjs} +2 -2
  18. package/dist/{badge-display-D6d7wTEE.mjs.map → badge-display-DRmVhZ-C.mjs.map} +1 -1
  19. package/dist/{boolean-display-Wko_5Jd5.mjs → boolean-display-ByTs3aOa.mjs} +2 -2
  20. package/dist/{boolean-display-Wko_5Jd5.mjs.map → boolean-display-ByTs3aOa.mjs.map} +1 -1
  21. package/dist/{boolean-display-C5GIuWnc.cjs → boolean-display-DUA-6Q13.cjs} +2 -2
  22. package/dist/{boolean-display-C5GIuWnc.cjs.map → boolean-display-DUA-6Q13.cjs.map} +1 -1
  23. package/dist/{button-CnKmz4qM.d.cts → button-BnoPktln.d.cts} +3 -3
  24. package/dist/{button-CnKmz4qM.d.mts → button-BnoPktln.d.mts} +3 -3
  25. package/dist/{calendar-BT6-Fo3T.d.mts → calendar-BkV5hTX2.d.mts} +2 -2
  26. package/dist/{calendar-D_QmR9VE.d.cts → calendar-iDMPT1kI.d.cts} +2 -2
  27. package/dist/{carousel-BBI4xPdK.d.mts → carousel-D7VXWJ3S.d.mts} +2 -2
  28. package/dist/{carousel-B_IXlBdH.d.cts → carousel-bBvM31sh.d.cts} +2 -2
  29. package/dist/{checkbox-field-BN3Vd9qq.mjs → checkbox-field-BRGTLOjq.mjs} +2 -2
  30. package/dist/{checkbox-field-BN3Vd9qq.mjs.map → checkbox-field-BRGTLOjq.mjs.map} +1 -1
  31. package/dist/{checkbox-field-DBUjQC_4.cjs → checkbox-field-ldZRSCca.cjs} +2 -2
  32. package/dist/{checkbox-field-DBUjQC_4.cjs.map → checkbox-field-ldZRSCca.cjs.map} +1 -1
  33. package/dist/{cms-layout-DCJhB-GY.cjs → cms-layout-BGsf1E4E.cjs} +2 -2
  34. package/dist/{cms-layout-DCJhB-GY.cjs.map → cms-layout-BGsf1E4E.cjs.map} +1 -1
  35. package/dist/{cms-layout-Ba_5wSnr.mjs → cms-layout-BHLo0_L_.mjs} +2 -2
  36. package/dist/{cms-layout-Ba_5wSnr.mjs.map → cms-layout-BHLo0_L_.mjs.map} +1 -1
  37. package/dist/combobox-Bhgo112r.cjs +2 -0
  38. package/dist/{combobox-kp_kPY8o.cjs.map → combobox-Bhgo112r.cjs.map} +1 -1
  39. package/dist/combobox-C0nno01T.mjs +2 -0
  40. package/dist/{combobox-C64Rvd7n.mjs.map → combobox-C0nno01T.mjs.map} +1 -1
  41. package/dist/{combobox-field-Bug1qI5B.mjs → combobox-field-CvkdZkQE.mjs} +2 -2
  42. package/dist/{combobox-field-Bug1qI5B.mjs.map → combobox-field-CvkdZkQE.mjs.map} +1 -1
  43. package/dist/{combobox-field-BE9miJ3D.cjs → combobox-field-ZYr7636s.cjs} +2 -2
  44. package/dist/{combobox-field-BE9miJ3D.cjs.map → combobox-field-ZYr7636s.cjs.map} +1 -1
  45. package/dist/currency-display-DefLJLqL.cjs +2 -0
  46. package/dist/currency-display-DefLJLqL.cjs.map +1 -0
  47. package/dist/currency-display-DpbtUluj.mjs +2 -0
  48. package/dist/currency-display-DpbtUluj.mjs.map +1 -0
  49. package/dist/data-display/phone-number.cjs +1 -1
  50. package/dist/data-display/phone-number.cjs.map +1 -1
  51. package/dist/data-display/phone-number.d.cts +1 -1
  52. package/dist/data-display/phone-number.d.mts +1 -1
  53. package/dist/data-display/phone-number.mjs +1 -1
  54. package/dist/data-display/phone-number.mjs.map +1 -1
  55. package/dist/{date-display-DXyb-Ai2.mjs → date-display-ByvkuSk0.mjs} +2 -2
  56. package/dist/{date-display-DXyb-Ai2.mjs.map → date-display-ByvkuSk0.mjs.map} +1 -1
  57. package/dist/{date-display-D38qvsh2.cjs → date-display-CkPBLlWz.cjs} +2 -2
  58. package/dist/{date-display-D38qvsh2.cjs.map → date-display-CkPBLlWz.cjs.map} +1 -1
  59. package/dist/{date-field-CYoPe74G.cjs → date-field-1Hmcv8Zp.cjs} +2 -2
  60. package/dist/{date-field-CYoPe74G.cjs.map → date-field-1Hmcv8Zp.cjs.map} +1 -1
  61. package/dist/{date-field-D_qpBb-t.mjs → date-field-DGMTG_hu.mjs} +2 -2
  62. package/dist/{date-field-D_qpBb-t.mjs.map → date-field-DGMTG_hu.mjs.map} +1 -1
  63. package/dist/{description-display-BwBMrRAi.mjs → description-display-BFTBwDmB.mjs} +2 -2
  64. package/dist/{description-display-BwBMrRAi.mjs.map → description-display-BFTBwDmB.mjs.map} +1 -1
  65. package/dist/{description-display-DIeHy7ll.cjs → description-display-DeEwppdC.cjs} +2 -2
  66. package/dist/{description-display-DIeHy7ll.cjs.map → description-display-DeEwppdC.cjs.map} +1 -1
  67. package/dist/descriptions-Bw9GSCjo.mjs +3 -0
  68. package/dist/descriptions-Bw9GSCjo.mjs.map +1 -0
  69. package/dist/descriptions-DUsJjqd2.cjs +3 -0
  70. package/dist/descriptions-DUsJjqd2.cjs.map +1 -0
  71. package/dist/{dialog-form-CCIcht28.mjs → dialog-form-BRSZpRTC.mjs} +2 -2
  72. package/dist/{dialog-form-CCIcht28.mjs.map → dialog-form-BRSZpRTC.mjs.map} +1 -1
  73. package/dist/{dialog-form-BTZZwz3T.cjs → dialog-form-C1qpltYx.cjs} +2 -2
  74. package/dist/{dialog-form-BTZZwz3T.cjs.map → dialog-form-C1qpltYx.cjs.map} +1 -1
  75. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +1 -1
  76. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +1 -1
  77. package/dist/dialogs/side-panel.cjs +2 -0
  78. package/dist/dialogs/side-panel.cjs.map +1 -0
  79. package/dist/dialogs/side-panel.d.cts +2 -0
  80. package/dist/dialogs/side-panel.d.mts +2 -0
  81. package/dist/dialogs/side-panel.mjs +2 -0
  82. package/dist/dialogs/side-panel.mjs.map +1 -0
  83. package/dist/{email-display-_FRE2qcO.cjs → email-display-BXw4IbbW.cjs} +2 -2
  84. package/dist/{email-display-_FRE2qcO.cjs.map → email-display-BXw4IbbW.cjs.map} +1 -1
  85. package/dist/{email-display-Be3b-kDL.mjs → email-display-qxdrnYmK.mjs} +2 -2
  86. package/dist/{email-display-Be3b-kDL.mjs.map → email-display-qxdrnYmK.mjs.map} +1 -1
  87. package/dist/{email-field-DxSNJ6tf.mjs → email-field-C2Lvl_rQ.mjs} +2 -2
  88. package/dist/{email-field-DxSNJ6tf.mjs.map → email-field-C2Lvl_rQ.mjs.map} +1 -1
  89. package/dist/{email-field-DJa7iASY.cjs → email-field-D3nSkHj2.cjs} +2 -2
  90. package/dist/{email-field-DJa7iASY.cjs.map → email-field-D3nSkHj2.cjs.map} +1 -1
  91. package/dist/features/descriptions/index.cjs +1 -2
  92. package/dist/features/descriptions/index.d.cts +2 -2
  93. package/dist/features/descriptions/index.d.mts +2 -2
  94. package/dist/features/descriptions/index.mjs +1 -2
  95. package/dist/features/tables/index.cjs +1 -1
  96. package/dist/features/tables/index.d.cts +1 -1
  97. package/dist/features/tables/index.d.mts +1 -1
  98. package/dist/features/tables/index.mjs +1 -1
  99. package/dist/features/tanstack-form/index.cjs +1 -1
  100. package/dist/features/tanstack-form/index.mjs +1 -1
  101. package/dist/{filter-C2wE49q7.mjs → filter-DM4QLW77.mjs} +2 -2
  102. package/dist/{filter-C2wE49q7.mjs.map → filter-DM4QLW77.mjs.map} +1 -1
  103. package/dist/{filter-z7p4lRp8.cjs → filter-DQEjSnOP.cjs} +2 -2
  104. package/dist/{filter-z7p4lRp8.cjs.map → filter-DQEjSnOP.cjs.map} +1 -1
  105. package/dist/{flex-CIzZIICK.d.cts → flex-C63_IqSY.d.cts} +5 -3
  106. package/dist/{flex-CIzZIICK.d.mts → flex-C63_IqSY.d.mts} +5 -3
  107. package/dist/{index-DqAbPipJ.d.cts → index--wNkNzCB.d.cts} +15 -12
  108. package/dist/index-Cp4Db57w.d.cts +598 -0
  109. package/dist/index-CqE3mOHo.d.mts +598 -0
  110. package/dist/{index-CjiDR-94.d.mts → index-CrkOhm--.d.mts} +15 -12
  111. package/dist/index.cjs +1 -1
  112. package/dist/index.d.cts +14 -12
  113. package/dist/index.d.mts +14 -12
  114. package/dist/index.mjs +1 -1
  115. package/dist/layouts/cms-layout/index.cjs +1 -1
  116. package/dist/layouts/cms-layout/index.mjs +1 -1
  117. package/dist/layouts/flex.cjs +1 -1
  118. package/dist/layouts/flex.cjs.map +1 -1
  119. package/dist/layouts/flex.d.cts +1 -1
  120. package/dist/layouts/flex.d.mts +1 -1
  121. package/dist/layouts/flex.mjs +1 -1
  122. package/dist/layouts/flex.mjs.map +1 -1
  123. package/dist/layouts/payment-layout/index.cjs +1 -1
  124. package/dist/layouts/payment-layout/index.mjs +1 -1
  125. package/dist/layouts/ui-grid.cjs +2 -0
  126. package/dist/layouts/ui-grid.cjs.map +1 -0
  127. package/dist/layouts/ui-grid.d.cts +2 -0
  128. package/dist/layouts/ui-grid.d.mts +2 -0
  129. package/dist/layouts/ui-grid.mjs +2 -0
  130. package/dist/layouts/ui-grid.mjs.map +1 -0
  131. package/dist/{list-display-CWQvIMUj.mjs → list-display-4tTkV29U.mjs} +2 -2
  132. package/dist/{list-display-CWQvIMUj.mjs.map → list-display-4tTkV29U.mjs.map} +1 -1
  133. package/dist/{list-display-BvKGl7uq.cjs → list-display-CJvQ-wwT.cjs} +2 -2
  134. package/dist/{list-display-BvKGl7uq.cjs.map → list-display-CJvQ-wwT.cjs.map} +1 -1
  135. package/dist/{name-display-CnTRVqX4.mjs → name-display-BFoDcvt2.mjs} +2 -2
  136. package/dist/{name-display-CnTRVqX4.mjs.map → name-display-BFoDcvt2.mjs.map} +1 -1
  137. package/dist/{name-display-DfOtYp7d.cjs → name-display-Br7rcdqi.cjs} +2 -2
  138. package/dist/{name-display-DfOtYp7d.cjs.map → name-display-Br7rcdqi.cjs.map} +1 -1
  139. package/dist/{number-field-5INgdUUv.mjs → number-field-CR5PLX6H.mjs} +2 -2
  140. package/dist/{number-field-5INgdUUv.mjs.map → number-field-CR5PLX6H.mjs.map} +1 -1
  141. package/dist/{number-field-DKZz-27X.cjs → number-field-CWDYA3La.cjs} +2 -2
  142. package/dist/{number-field-DKZz-27X.cjs.map → number-field-CWDYA3La.cjs.map} +1 -1
  143. package/dist/{pagination-AxRzmAtZ.d.cts → pagination-BRw-yZBY.d.cts} +2 -2
  144. package/dist/{pagination-D12pR8_5.d.mts → pagination-BlLiOvY9.d.mts} +2 -2
  145. package/dist/{paragraph-C5HE9u0Q.d.mts → paragraph-CRo5eC7H.d.mts} +2 -2
  146. package/dist/{paragraph-DJlHIDmk.d.cts → paragraph-CkCNIsvz.d.cts} +2 -2
  147. package/dist/{password-field-DOIe6wTv.mjs → password-field-B2_kzss6.mjs} +2 -2
  148. package/dist/{password-field-DOIe6wTv.mjs.map → password-field-B2_kzss6.mjs.map} +1 -1
  149. package/dist/{password-field-BuWARi35.cjs → password-field-BHRhVyZ0.cjs} +2 -2
  150. package/dist/{password-field-BuWARi35.cjs.map → password-field-BHRhVyZ0.cjs.map} +1 -1
  151. package/dist/{payment-layout-BSl9DYQA.mjs → payment-layout--b7bhmR1.mjs} +2 -2
  152. package/dist/{payment-layout-BSl9DYQA.mjs.map → payment-layout--b7bhmR1.mjs.map} +1 -1
  153. package/dist/payment-layout-BZtIcu-3.cjs +2 -0
  154. package/dist/{payment-layout-DDcLanA0.cjs.map → payment-layout-BZtIcu-3.cjs.map} +1 -1
  155. package/dist/{permalink-DhqOATLQ.mjs → permalink-BPCF_npZ.mjs} +2 -2
  156. package/dist/{permalink-DhqOATLQ.mjs.map → permalink-BPCF_npZ.mjs.map} +1 -1
  157. package/dist/{permalink-29QzG9Xe.cjs → permalink-DCvWlrAT.cjs} +2 -2
  158. package/dist/{permalink-29QzG9Xe.cjs.map → permalink-DCvWlrAT.cjs.map} +1 -1
  159. package/dist/phone-CTTjc3mv.mjs +2 -0
  160. package/dist/phone-CTTjc3mv.mjs.map +1 -0
  161. package/dist/phone-CUxXVTg6.cjs +2 -0
  162. package/dist/phone-CUxXVTg6.cjs.map +1 -0
  163. package/dist/{phone-number-D9j5xYDW.d.cts → phone-number-B1bLIt8i.d.cts} +3 -3
  164. package/dist/{phone-number-D9j5xYDW.d.mts → phone-number-B1bLIt8i.d.mts} +3 -3
  165. package/dist/{phone-number-CQXrATQO.mjs → phone-number-DHFLnHWO.mjs} +2 -2
  166. package/dist/{phone-number-CQXrATQO.mjs.map → phone-number-DHFLnHWO.mjs.map} +1 -1
  167. package/dist/{phone-number-C2k8llhf.cjs → phone-number-YzmDmFBU.cjs} +2 -2
  168. package/dist/{phone-number-C2k8llhf.cjs.map → phone-number-YzmDmFBU.cjs.map} +1 -1
  169. package/dist/{popover-form-BsapHJck.mjs → popover-form-CeRVpy1B.mjs} +2 -2
  170. package/dist/{popover-form-BsapHJck.mjs.map → popover-form-CeRVpy1B.mjs.map} +1 -1
  171. package/dist/{popover-form-Bq2GcuZu.cjs → popover-form-Ch_iMMSm.cjs} +2 -2
  172. package/dist/{popover-form-Bq2GcuZu.cjs.map → popover-form-Ch_iMMSm.cjs.map} +1 -1
  173. package/dist/{progress-display-B4WVzdJw.cjs → progress-display-57LT7U37.cjs} +2 -2
  174. package/dist/{progress-display-B4WVzdJw.cjs.map → progress-display-57LT7U37.cjs.map} +1 -1
  175. package/dist/{progress-display-DZb1qjfY.mjs → progress-display-AfoHitiE.mjs} +2 -2
  176. package/dist/{progress-display-DZb1qjfY.mjs.map → progress-display-AfoHitiE.mjs.map} +1 -1
  177. package/dist/{radio-group-field-kTgtvp1p.cjs → radio-group-field-BFhBfzoT.cjs} +2 -2
  178. package/dist/{radio-group-field-kTgtvp1p.cjs.map → radio-group-field-BFhBfzoT.cjs.map} +1 -1
  179. package/dist/{radio-group-field-DOJ4jVSr.mjs → radio-group-field-Iwo2Q2Ig.mjs} +2 -2
  180. package/dist/{radio-group-field-DOJ4jVSr.mjs.map → radio-group-field-Iwo2Q2Ig.mjs.map} +1 -1
  181. package/dist/{resizable-D61lvcIL.d.cts → resizable-CNqPu4Ck.d.cts} +2 -2
  182. package/dist/{resizable-D61lvcIL.d.mts → resizable-CNqPu4Ck.d.mts} +2 -2
  183. package/dist/{select-field-CURv37h4.cjs → select-field-CvDBZQTl.cjs} +2 -2
  184. package/dist/{select-field-CURv37h4.cjs.map → select-field-CvDBZQTl.cjs.map} +1 -1
  185. package/dist/{select-field-BcsFBbNJ.mjs → select-field-NJgDDCO2.mjs} +2 -2
  186. package/dist/{select-field-BcsFBbNJ.mjs.map → select-field-NJgDDCO2.mjs.map} +1 -1
  187. package/dist/side-panel-DPrM5ygG.d.cts +86 -0
  188. package/dist/side-panel-DPrM5ygG.d.mts +86 -0
  189. package/dist/{simple-array-field-wFE_DUOV.mjs → simple-array-field-BwNCeUnn.mjs} +2 -2
  190. package/dist/{simple-array-field-wFE_DUOV.mjs.map → simple-array-field-BwNCeUnn.mjs.map} +1 -1
  191. package/dist/{simple-array-field-bCUuPMgT.cjs → simple-array-field-aGXkDZXD.cjs} +2 -2
  192. package/dist/{simple-array-field-bCUuPMgT.cjs.map → simple-array-field-aGXkDZXD.cjs.map} +1 -1
  193. package/dist/{simple-boolean-field-DRapzNrB.cjs → simple-boolean-field-BeVkn3c4.cjs} +2 -2
  194. package/dist/{simple-boolean-field-DRapzNrB.cjs.map → simple-boolean-field-BeVkn3c4.cjs.map} +1 -1
  195. package/dist/{simple-boolean-field-GQJyeyVS.mjs → simple-boolean-field-t_XDXqYs.mjs} +2 -2
  196. package/dist/{simple-boolean-field-GQJyeyVS.mjs.map → simple-boolean-field-t_XDXqYs.mjs.map} +1 -1
  197. package/dist/{simple-combobox-field-D6IaMJKl.mjs → simple-combobox-field-HCB4A33-.mjs} +2 -2
  198. package/dist/{simple-combobox-field-D6IaMJKl.mjs.map → simple-combobox-field-HCB4A33-.mjs.map} +1 -1
  199. package/dist/{simple-combobox-field-Cp5dfQv3.cjs → simple-combobox-field-U0ZAl7VQ.cjs} +2 -2
  200. package/dist/{simple-combobox-field-Cp5dfQv3.cjs.map → simple-combobox-field-U0ZAl7VQ.cjs.map} +1 -1
  201. package/dist/{simple-date-field-dszQs7Ik.mjs → simple-date-field-Dj4bJoji.mjs} +2 -2
  202. package/dist/{simple-date-field-dszQs7Ik.mjs.map → simple-date-field-Dj4bJoji.mjs.map} +1 -1
  203. package/dist/{simple-date-field-_PSkIXAt.cjs → simple-date-field-DtxEpEZj.cjs} +2 -2
  204. package/dist/{simple-date-field-_PSkIXAt.cjs.map → simple-date-field-DtxEpEZj.cjs.map} +1 -1
  205. package/dist/{simple-email-field-CwyoXqWo.mjs → simple-email-field-BDyhkmHV.mjs} +2 -2
  206. package/dist/{simple-email-field-CwyoXqWo.mjs.map → simple-email-field-BDyhkmHV.mjs.map} +1 -1
  207. package/dist/{simple-email-field-DIHwYrhk.cjs → simple-email-field-DK9I_Tc_.cjs} +2 -2
  208. package/dist/{simple-email-field-DIHwYrhk.cjs.map → simple-email-field-DK9I_Tc_.cjs.map} +1 -1
  209. package/dist/{simple-number-field-VdEeaIiC.cjs → simple-number-field-BspqWU-3.cjs} +2 -2
  210. package/dist/{simple-number-field-VdEeaIiC.cjs.map → simple-number-field-BspqWU-3.cjs.map} +1 -1
  211. package/dist/{simple-number-field-Id1kV5yR.mjs → simple-number-field-hneXMhfJ.mjs} +2 -2
  212. package/dist/{simple-number-field-Id1kV5yR.mjs.map → simple-number-field-hneXMhfJ.mjs.map} +1 -1
  213. package/dist/{simple-password-field-7xbVB1H3.cjs → simple-password-field-BEEcleom.cjs} +2 -2
  214. package/dist/{simple-password-field-7xbVB1H3.cjs.map → simple-password-field-BEEcleom.cjs.map} +1 -1
  215. package/dist/{simple-password-field-DIO9FwQy.mjs → simple-password-field-vsLRHDk4.mjs} +2 -2
  216. package/dist/{simple-password-field-DIO9FwQy.mjs.map → simple-password-field-vsLRHDk4.mjs.map} +1 -1
  217. package/dist/{simple-radio-group-field-BmHWRnns.mjs → simple-radio-group-field-BURm_BSA.mjs} +2 -2
  218. package/dist/{simple-radio-group-field-BmHWRnns.mjs.map → simple-radio-group-field-BURm_BSA.mjs.map} +1 -1
  219. package/dist/{simple-radio-group-field-CxVAr6yW.cjs → simple-radio-group-field-Wm8xB0fN.cjs} +2 -2
  220. package/dist/{simple-radio-group-field-CxVAr6yW.cjs.map → simple-radio-group-field-Wm8xB0fN.cjs.map} +1 -1
  221. package/dist/{simple-select-field-DfZk0zPa.mjs → simple-select-field-8cY51U4d.mjs} +2 -2
  222. package/dist/{simple-select-field-DfZk0zPa.mjs.map → simple-select-field-8cY51U4d.mjs.map} +1 -1
  223. package/dist/{simple-select-field-C9u7Pg9u.cjs → simple-select-field-QQ65caBf.cjs} +2 -2
  224. package/dist/{simple-select-field-C9u7Pg9u.cjs.map → simple-select-field-QQ65caBf.cjs.map} +1 -1
  225. package/dist/{simple-text-field-BxPjcB4c.cjs → simple-text-field-BHkCPiE5.cjs} +2 -2
  226. package/dist/{simple-text-field-BxPjcB4c.cjs.map → simple-text-field-BHkCPiE5.cjs.map} +1 -1
  227. package/dist/{simple-text-field-CT9KFUSK.mjs → simple-text-field-DK72_OA_.mjs} +2 -2
  228. package/dist/{simple-text-field-CT9KFUSK.mjs.map → simple-text-field-DK72_OA_.mjs.map} +1 -1
  229. package/dist/{simple-textarea-field-B22rT6zS.mjs → simple-textarea-field-B72nNQHv.mjs} +2 -2
  230. package/dist/{simple-textarea-field-B22rT6zS.mjs.map → simple-textarea-field-B72nNQHv.mjs.map} +1 -1
  231. package/dist/{simple-textarea-field-DG9oPtP-.cjs → simple-textarea-field-Bu5h7sfH.cjs} +2 -2
  232. package/dist/{simple-textarea-field-DG9oPtP-.cjs.map → simple-textarea-field-Bu5h7sfH.cjs.map} +1 -1
  233. package/dist/statistic-CXBTEgKI.cjs +2 -0
  234. package/dist/statistic-CXBTEgKI.cjs.map +1 -0
  235. package/dist/statistic-CvgurN5Z.mjs +2 -0
  236. package/dist/statistic-CvgurN5Z.mjs.map +1 -0
  237. package/dist/{status-display-CcihiYsH.mjs → status-display-Caae2aYf.mjs} +2 -2
  238. package/dist/{status-display-CcihiYsH.mjs.map → status-display-Caae2aYf.mjs.map} +1 -1
  239. package/dist/{status-display-DJ8fFqyX.cjs → status-display-EVwkPrm6.cjs} +2 -2
  240. package/dist/{status-display-DJ8fFqyX.cjs.map → status-display-EVwkPrm6.cjs.map} +1 -1
  241. package/dist/{summary-bar-C4loKj1L.mjs → summary-bar-B6B_wmZA.mjs} +2 -2
  242. package/dist/{summary-bar-C4loKj1L.mjs.map → summary-bar-B6B_wmZA.mjs.map} +1 -1
  243. package/dist/{summary-bar-DK8glsr4.cjs → summary-bar-D36n4fox.cjs} +2 -2
  244. package/dist/{summary-bar-DK8glsr4.cjs.map → summary-bar-D36n4fox.cjs.map} +1 -1
  245. package/dist/{switch-field-Cz4lDf1D.mjs → switch-field-DoPUWb9d.mjs} +2 -2
  246. package/dist/{switch-field-Cz4lDf1D.mjs.map → switch-field-DoPUWb9d.mjs.map} +1 -1
  247. package/dist/{switch-field-yE4A6EoF.cjs → switch-field-eLVlQZSI.cjs} +2 -2
  248. package/dist/{switch-field-yE4A6EoF.cjs.map → switch-field-eLVlQZSI.cjs.map} +1 -1
  249. package/dist/tables-CuoBQNqx.mjs +2 -0
  250. package/dist/tables-CuoBQNqx.mjs.map +1 -0
  251. package/dist/tables-DdLEj1dI.cjs +2 -0
  252. package/dist/tables-DdLEj1dI.cjs.map +1 -0
  253. package/dist/{tanstack-form-BxqS40rB.cjs → tanstack-form-C0ab8EEl.cjs} +2 -2
  254. package/dist/{tanstack-form-BxqS40rB.cjs.map → tanstack-form-C0ab8EEl.cjs.map} +1 -1
  255. package/dist/{tanstack-form-q9hDCc0Y.mjs → tanstack-form-fkaBh9RO.mjs} +2 -2
  256. package/dist/{tanstack-form-q9hDCc0Y.mjs.map → tanstack-form-fkaBh9RO.mjs.map} +1 -1
  257. package/dist/{text-editor-field-CQ8tnZFw.mjs → text-editor-field-B6HEsAHt.mjs} +2 -2
  258. package/dist/{text-editor-field-CQ8tnZFw.mjs.map → text-editor-field-B6HEsAHt.mjs.map} +1 -1
  259. package/dist/{text-editor-field-CxU-KMMn.cjs → text-editor-field-DcEUC0iH.cjs} +2 -2
  260. package/dist/{text-editor-field-CxU-KMMn.cjs.map → text-editor-field-DcEUC0iH.cjs.map} +1 -1
  261. package/dist/{text-field-B3xlvEUN.mjs → text-field-Bm-k6Jr7.mjs} +2 -2
  262. package/dist/{text-field-B3xlvEUN.mjs.map → text-field-Bm-k6Jr7.mjs.map} +1 -1
  263. package/dist/{text-field-BQovKYN-.cjs → text-field-DT50dOVI.cjs} +2 -2
  264. package/dist/{text-field-BQovKYN-.cjs.map → text-field-DT50dOVI.cjs.map} +1 -1
  265. package/dist/{textarea-field-B38SnNv4.cjs → textarea-field-BhqX29CS.cjs} +2 -2
  266. package/dist/{textarea-field-B38SnNv4.cjs.map → textarea-field-BhqX29CS.cjs.map} +1 -1
  267. package/dist/{textarea-field-u2UUwtr_.mjs → textarea-field-DNLyrRH7.mjs} +2 -2
  268. package/dist/{textarea-field-u2UUwtr_.mjs.map → textarea-field-DNLyrRH7.mjs.map} +1 -1
  269. package/dist/{tooltip-CLjCwnTD.cjs → tooltip-CUyGXE9e.cjs} +3 -3
  270. package/dist/{tooltip-CLjCwnTD.cjs.map → tooltip-CUyGXE9e.cjs.map} +1 -1
  271. package/dist/{tooltip-BKcU3bMc.mjs → tooltip-DSxSeIak.mjs} +3 -3
  272. package/dist/{tooltip-BKcU3bMc.mjs.map → tooltip-DSxSeIak.mjs.map} +1 -1
  273. package/dist/typography/paragraph.d.cts +1 -1
  274. package/dist/typography/paragraph.d.mts +1 -1
  275. package/dist/ui/alert-dialog.cjs +1 -1
  276. package/dist/ui/alert-dialog.cjs.map +1 -1
  277. package/dist/ui/alert-dialog.mjs +1 -1
  278. package/dist/ui/alert-dialog.mjs.map +1 -1
  279. package/dist/ui/badge.cjs +1 -1
  280. package/dist/ui/badge.cjs.map +1 -1
  281. package/dist/ui/badge.d.cts +2 -2
  282. package/dist/ui/badge.d.mts +2 -2
  283. package/dist/ui/badge.mjs +1 -1
  284. package/dist/ui/badge.mjs.map +1 -1
  285. package/dist/ui/button.d.cts +1 -1
  286. package/dist/ui/button.d.mts +1 -1
  287. package/dist/ui/calendar.d.cts +1 -1
  288. package/dist/ui/calendar.d.mts +1 -1
  289. package/dist/ui/carousel.d.cts +1 -1
  290. package/dist/ui/carousel.d.mts +1 -1
  291. package/dist/ui/combobox.cjs +1 -1
  292. package/dist/ui/combobox.mjs +1 -1
  293. package/dist/ui/dialog.cjs +1 -1
  294. package/dist/ui/dialog.cjs.map +1 -1
  295. package/dist/ui/dialog.mjs +1 -1
  296. package/dist/ui/dialog.mjs.map +1 -1
  297. package/dist/ui/pagination.d.cts +1 -1
  298. package/dist/ui/pagination.d.mts +1 -1
  299. package/dist/ui/resizable.d.cts +1 -1
  300. package/dist/ui/resizable.d.mts +1 -1
  301. package/dist/ui/sheet.cjs +1 -1
  302. package/dist/ui/sheet.cjs.map +1 -1
  303. package/dist/ui/sheet.mjs +1 -1
  304. package/dist/ui/sheet.mjs.map +1 -1
  305. package/dist/ui-grid-D1-Ponqs.d.cts +128 -0
  306. package/dist/ui-grid-D1-Ponqs.d.mts +128 -0
  307. package/package.json +10 -3
  308. package/ai-docs.md +0 -419
  309. package/dist/combobox-C64Rvd7n.mjs +0 -2
  310. package/dist/combobox-kp_kPY8o.cjs +0 -2
  311. package/dist/currency-display-BGkpGtN_.mjs +0 -2
  312. package/dist/currency-display-BGkpGtN_.mjs.map +0 -1
  313. package/dist/currency-display-Bbh5InhV.cjs +0 -2
  314. package/dist/currency-display-Bbh5InhV.cjs.map +0 -1
  315. package/dist/features/descriptions/index.cjs.map +0 -1
  316. package/dist/features/descriptions/index.mjs.map +0 -1
  317. package/dist/index-BSj8azta.d.cts +0 -236
  318. package/dist/index-CEmVk1zP.d.mts +0 -236
  319. package/dist/payment-layout-DDcLanA0.cjs +0 -2
  320. package/dist/statistic-DoNUSe3e.mjs +0 -2
  321. package/dist/statistic-DoNUSe3e.mjs.map +0 -1
  322. package/dist/statistic-wnnjHsKj.cjs +0 -2
  323. package/dist/statistic-wnnjHsKj.cjs.map +0 -1
  324. package/dist/tables-BTBtN1di.mjs +0 -2
  325. package/dist/tables-BTBtN1di.mjs.map +0 -1
  326. package/dist/tables-BzP8Cnvh.cjs +0 -2
  327. package/dist/tables-BzP8Cnvh.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.mjs","names":["DialogPrimitive"],"sources":["../../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\nimport { CloseButton } from './buttons/close';\n\n/**\n * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.\n *\n * @example\n * ```tsx\n * import {\n * Dialog, DialogTrigger, DialogContent,\n * DialogHeader, DialogTitle, DialogDescription, DialogFooter,\n * } from '@customafk/lunas-ui/ui/dialog';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Dialog>\n * <DialogTrigger asChild>\n * <Button>Open dialog</Button>\n * </DialogTrigger>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Confirm action</DialogTitle>\n * <DialogDescription>This cannot be undone.</DialogDescription>\n * </DialogHeader>\n * <DialogFooter>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Confirm</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\n/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\n/** Renders dialog overlay and content into a portal outside the normal React tree. */\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\n/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:fade-in-0 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:animate-out',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.\n *\n * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2',\n 'grid w-full max-w-[calc(100%-2rem)] bg-background',\n 'max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-400',\n 'sm:max-w-lg',\n 'data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out',\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\n/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />;\n}\n\n/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />;\n}\n\n/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"2SAqCA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACA,EAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAGA,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAjB,CAAyB,YAAU,iBAAiB,GAAI,CAAQ,CAAA,CACzE,CAGA,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAjB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAGA,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAGA,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,iCACA,2DACA,iEACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAOA,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAIF,CACD,OACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAgB,CAAA,EAChB,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,gEACA,oDACA,8EACA,cACA,wFACA,iGACA,CACF,EACA,gBAAiB,GAAS,CAExB,EAAM,eAAe,CACvB,EACA,GAAI,EAfN,SAAA,CAiBG,EACA,GACC,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,yBAC9E,SAAA,EAAC,EAAD,CAAc,CAAA,CACO,CAAA,CAEF,CACb,CAAA,CAAA,CAAA,CAAA,CAElB,CAGA,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC9H,CAGA,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,CAAS,EAAG,GAAI,CAAQ,CAAA,CACxI,CAGA,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,UAAW,EAAG,EAAgB,CAAE,MAAO,IAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CACjI,CAGA,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAgB,YAAjB,CAA6B,YAAU,qBAAqB,UAAW,EAAG,EAAkB,CAAE,QAAS,OAAQ,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CACpJ"}
1
+ {"version":3,"file":"dialog.mjs","names":["DialogPrimitive"],"sources":["../../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\nimport { CloseButton } from './buttons/close';\n\n/**\n * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.\n *\n * @example\n * ```tsx\n * import {\n * Dialog, DialogTrigger, DialogContent,\n * DialogHeader, DialogTitle, DialogDescription, DialogFooter,\n * } from '@customafk/lunas-ui/ui/dialog';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Dialog>\n * <DialogTrigger asChild>\n * <Button>Open dialog</Button>\n * </DialogTrigger>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Confirm action</DialogTitle>\n * <DialogDescription>This cannot be undone.</DialogDescription>\n * </DialogHeader>\n * <DialogFooter>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Confirm</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\n/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\n/** Renders dialog overlay and content into a portal outside the normal React tree. */\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\n/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:fade-in-0 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:animate-out',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.\n *\n * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2',\n 'grid w-full max-w-[calc(100%-2rem)] bg-background',\n 'max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-400',\n 'sm:max-w-lg',\n 'data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out',\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\n }}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\n/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-1 text-center sm:text-left', className)} {...props} />;\n}\n\n/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />;\n}\n\n/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(paragraphVariants({ variant: 'muted' }), 'not-first:mt-0 md:text-sm', className)}\n {...props}\n />\n );\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"2SAqCA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACA,EAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAGA,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAjB,CAAyB,YAAU,iBAAiB,GAAI,CAAQ,CAAA,CACzE,CAGA,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAjB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAGA,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAGA,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,iCACA,2DACA,iEACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAOA,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAIF,CACD,OACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAgB,CAAA,EAChB,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,gEACA,oDACA,8EACA,cACA,wFACA,iGACA,CACF,EACA,gBAAiB,GAAS,CAExB,EAAM,eAAe,CACvB,EACA,GAAI,EAfN,SAAA,CAiBG,EACA,GACC,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,yBAC9E,SAAA,EAAC,EAAD,CAAc,CAAA,CACO,CAAA,CAEF,CACb,CAAA,CAAA,CAAA,CAAA,CAElB,CAGA,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC9H,CAGA,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAD,CAAK,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,CAAS,EAAG,GAAI,CAAQ,CAAA,CACxI,CAGA,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,UAAW,EAAG,EAAgB,CAAE,MAAO,IAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CACjI,CAGA,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OACE,EAACA,EAAgB,YAAjB,CACE,YAAU,qBACV,UAAW,EAAG,EAAkB,CAAE,QAAS,OAAQ,CAAC,EAAG,4BAA6B,CAAS,EAC7F,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import { a as PaginationLink, i as PaginationItem, n as PaginationContent, o as PaginationNext, r as PaginationEllipsis, s as PaginationPrevious, t as Pagination } from "../pagination-AxRzmAtZ.cjs";
1
+ import { a as PaginationLink, i as PaginationItem, n as PaginationContent, o as PaginationNext, r as PaginationEllipsis, s as PaginationPrevious, t as Pagination } from "../pagination-BRw-yZBY.cjs";
2
2
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
@@ -1,2 +1,2 @@
1
- import { a as PaginationLink, i as PaginationItem, n as PaginationContent, o as PaginationNext, r as PaginationEllipsis, s as PaginationPrevious, t as Pagination } from "../pagination-D12pR8_5.mjs";
1
+ import { a as PaginationLink, i as PaginationItem, n as PaginationContent, o as PaginationNext, r as PaginationEllipsis, s as PaginationPrevious, t as Pagination } from "../pagination-BlLiOvY9.mjs";
2
2
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
@@ -1,2 +1,2 @@
1
- import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "../resizable-D61lvcIL.cjs";
1
+ import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "../resizable-CNqPu4Ck.cjs";
2
2
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -1,2 +1,2 @@
1
- import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "../resizable-D61lvcIL.mjs";
1
+ import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "../resizable-CNqPu4Ck.mjs";
2
2
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
package/dist/ui/sheet.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("lucide-react"),t=require("@customafk/react-toolkit/utils"),n=require("react/jsx-runtime"),r=require("radix-ui");function i({...e}){return(0,n.jsx)(r.Dialog.Root,{"data-slot":`sheet`,...e})}function a({...e}){return(0,n.jsx)(r.Dialog.Trigger,{"data-slot":`sheet-trigger`,...e})}function o({...e}){return(0,n.jsx)(r.Dialog.Close,{"data-slot":`sheet-close`,...e})}function s({...e}){return(0,n.jsx)(r.Dialog.Portal,{"data-slot":`sheet-portal`,...e})}function c({className:e,...i}){return(0,n.jsx)(r.Dialog.Overlay,{"data-slot":`sheet-overlay`,className:(0,t.cn)(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,e),...i})}function l({className:i,children:a,side:o=`right`,...l}){return(0,n.jsxs)(s,{children:[(0,n.jsx)(c,{}),(0,n.jsxs)(r.Dialog.Content,{"data-slot":`sheet-content`,className:(0,t.cn)(`bg-background`,`fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out`,`data-[state=open]:animate-in`,`data-[state=open]:duration-500`,`data-[state=closed]:animate-out`,`data-[state=closed]:duration-300`,o===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm`,o===`right`&&`data-[state=closed]:slide-out-to-right`,o===`right`&&`data-[state=open]:slide-in-from-right`,o===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm`,o===`left`&&`data-[state=closed]:slide-out-to-left`,o===`left`&&`data-[state=open]:slide-in-from-left`,o===`top`&&`inset-x-0 top-0 h-auto border-b`,o===`top`&&`data-[state=closed]:slide-out-to-top`,o===`top`&&`data-[state=open]:slide-in-from-top`,o===`bottom`&&`inset-x-0 bottom-0 h-auto border-t`,o===`bottom`&&`data-[state=closed]:slide-out-to-bottom`,o===`bottom`&&`data-[state=open]:slide-in-from-bottom`,i),...l,children:[a,(0,n.jsxs)(r.Dialog.Close,{className:(0,t.cn)(`cursor-pointer p-2 ring-offset-background`,`absolute top-2 right-2 rounded-full opacity-70 transition-opacity`,`data-[state=open]:bg-secondary`,`disabled:pointer-events-none`,`hover:opacity-100`,`hover:bg-border-muted`,`focus:ring-border-weak`,`focus:ring-4`,`focus:outline-hidden`),children:[(0,n.jsx)(e.XIcon,{className:`size-5`}),(0,n.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function u({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`sheet-header`,className:(0,t.cn)(`flex flex-0 flex-col gap-1.5 p-4`,e),...r})}function d({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`sheet-footer`,className:(0,t.cn)(`mt-auto flex flex-0 flex-col gap-2 p-4`,e),...r})}function f({className:e,...i}){return(0,n.jsx)(r.Dialog.Title,{"data-slot":`sheet-title`,className:(0,t.cn)(`font-semibold text-text-positive-strong`,e),...i})}function p({className:e,...i}){return(0,n.jsx)(r.Dialog.Description,{"data-slot":`sheet-description`,className:(0,t.cn)(`text-sm text-text-positive-weak`,e),...i})}exports.Sheet=i,exports.SheetClose=o,exports.SheetContent=l,exports.SheetDescription=p,exports.SheetFooter=d,exports.SheetHeader=u,exports.SheetTitle=f,exports.SheetTrigger=a;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("lucide-react"),t=require("@customafk/react-toolkit/utils"),n=require("react/jsx-runtime"),r=require("radix-ui");function i({...e}){return(0,n.jsx)(r.Dialog.Root,{"data-slot":`sheet`,...e})}function a({...e}){return(0,n.jsx)(r.Dialog.Trigger,{"data-slot":`sheet-trigger`,...e})}function o({...e}){return(0,n.jsx)(r.Dialog.Close,{"data-slot":`sheet-close`,...e})}function s({...e}){return(0,n.jsx)(r.Dialog.Portal,{"data-slot":`sheet-portal`,...e})}function c({className:e,...i}){return(0,n.jsx)(r.Dialog.Overlay,{"data-slot":`sheet-overlay`,className:(0,t.cn)(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,e),...i})}function l({className:i,children:a,side:o=`right`,...l}){return(0,n.jsxs)(s,{children:[(0,n.jsx)(c,{}),(0,n.jsxs)(r.Dialog.Content,{"data-slot":`sheet-content`,className:(0,t.cn)(`bg-background`,`fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out`,`data-[state=open]:animate-in`,`data-[state=open]:duration-500`,`data-[state=closed]:animate-out`,`data-[state=closed]:duration-300`,o===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm`,o===`right`&&`data-[state=closed]:slide-out-to-right`,o===`right`&&`data-[state=open]:slide-in-from-right`,o===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm`,o===`left`&&`data-[state=closed]:slide-out-to-left`,o===`left`&&`data-[state=open]:slide-in-from-left`,o===`top`&&`inset-x-0 top-0 h-auto border-b`,o===`top`&&`data-[state=closed]:slide-out-to-top`,o===`top`&&`data-[state=open]:slide-in-from-top`,o===`bottom`&&`inset-x-0 bottom-0 h-auto border-t`,o===`bottom`&&`data-[state=closed]:slide-out-to-bottom`,o===`bottom`&&`data-[state=open]:slide-in-from-bottom`,i),...l,children:[a,(0,n.jsxs)(r.Dialog.Close,{className:(0,t.cn)(`cursor-pointer p-2 ring-offset-background`,`absolute top-2 right-2 rounded-full opacity-70 transition-opacity`,`data-[state=open]:bg-secondary`,`disabled:pointer-events-none`,`hover:opacity-100`,`hover:bg-border-muted`,`focus:ring-border-weak`,`focus:ring-4`,`focus:outline-hidden`),children:[(0,n.jsx)(e.XIcon,{className:`size-5`}),(0,n.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function u({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`sheet-header`,className:(0,t.cn)(`flex flex-0 flex-col gap-1 p-4`,e),...r})}function d({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`sheet-footer`,className:(0,t.cn)(`mt-auto flex flex-0 flex-col gap-2 p-4`,e),...r})}function f({className:e,...i}){return(0,n.jsx)(r.Dialog.Title,{"data-slot":`sheet-title`,className:(0,t.cn)(`font-semibold text-text-positive-strong`,e),...i})}function p({className:e,...i}){return(0,n.jsx)(r.Dialog.Description,{"data-slot":`sheet-description`,className:(0,t.cn)(`text-sm text-text-positive-weak`,e),...i})}exports.Sheet=i,exports.SheetClose=o,exports.SheetContent=l,exports.SheetDescription=p,exports.SheetFooter=d,exports.SheetHeader=u,exports.SheetTitle=f,exports.SheetTrigger=a;
2
2
  //# sourceMappingURL=sheet.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.cjs","names":["SheetPrimitive","XIcon"],"sources":["../../packages/components/ui/sheet.tsx"],"sourcesContent":["'use client';\n\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as SheetPrimitive } from 'radix-ui';\n\n/**\n * Root provider for the Sheet panel — wraps all Sheet sub-components and manages open state.\n *\n * @example\n * ```tsx\n * import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '@customafk/lunas-ui/ui/sheet';\n *\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">\n * <SheetHeader>\n * <SheetTitle>Settings</SheetTitle>\n * <SheetDescription>Manage your preferences.</SheetDescription>\n * </SheetHeader>\n * </SheetContent>\n * </Sheet>\n * ```\n */\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\n/** Button or element that opens the Sheet when interacted with. */\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/** Button that programmatically closes the Sheet. */\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n/** Portals Sheet content outside the current DOM hierarchy. */\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the Sheet panel. */\nfunction SheetOverlay({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * The sliding panel itself; renders on the specified `side` of the viewport and includes a built-in close button.\n */\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n /** Edge of the viewport from which the sheet slides in. */\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background',\n 'fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out',\n\n 'data-[state=open]:animate-in',\n 'data-[state=open]:duration-500',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:duration-300',\n\n side === 'right' && 'inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'right' && 'data-[state=closed]:slide-out-to-right',\n side === 'right' && 'data-[state=open]:slide-in-from-right',\n\n side === 'left' && 'inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'left' && 'data-[state=closed]:slide-out-to-left',\n side === 'left' && 'data-[state=open]:slide-in-from-left',\n\n side === 'top' && 'inset-x-0 top-0 h-auto border-b',\n side === 'top' && 'data-[state=closed]:slide-out-to-top',\n side === 'top' && 'data-[state=open]:slide-in-from-top',\n\n side === 'bottom' && 'inset-x-0 bottom-0 h-auto border-t',\n side === 'bottom' && 'data-[state=closed]:slide-out-to-bottom',\n side === 'bottom' && 'data-[state=open]:slide-in-from-bottom',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={cn(\n 'cursor-pointer p-2 ring-offset-background',\n 'absolute top-2 right-2 rounded-full opacity-70 transition-opacity',\n 'data-[state=open]:bg-secondary',\n 'disabled:pointer-events-none',\n 'hover:opacity-100',\n 'hover:bg-border-muted',\n 'focus:ring-border-weak',\n 'focus:ring-4',\n 'focus:outline-hidden'\n )}\n >\n <XIcon className=\"size-5\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\n/** Padded container for the Sheet title and description at the top of the panel. */\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-header\" className={cn('flex flex-0 flex-col gap-1.5 p-4', className)} {...props} />;\n}\n\n/** Sticky footer area at the bottom of the Sheet panel, typically used for action buttons. */\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-footer\" className={cn('mt-auto flex flex-0 flex-col gap-2 p-4', className)} {...props} />;\n}\n\n/** Accessible title element for the Sheet, announced by screen readers on open. */\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return <SheetPrimitive.Title data-slot=\"sheet-title\" className={cn('font-semibold text-text-positive-strong', className)} {...props} />;\n}\n\n/** Accessible description element for the Sheet, providing supplemental context to the title. */\nfunction SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return <SheetPrimitive.Description data-slot=\"sheet-description\" className={cn('text-sm text-text-positive-weak', className)} {...props} />;\n}\n\nexport { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };\n"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.cjs","names":["SheetPrimitive","XIcon"],"sources":["../../packages/components/ui/sheet.tsx"],"sourcesContent":["'use client';\n\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as SheetPrimitive } from 'radix-ui';\n\n/**\n * Root provider for the Sheet panel — wraps all Sheet sub-components and manages open state.\n *\n * @example\n * ```tsx\n * import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '@customafk/lunas-ui/ui/sheet';\n *\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">\n * <SheetHeader>\n * <SheetTitle>Settings</SheetTitle>\n * <SheetDescription>Manage your preferences.</SheetDescription>\n * </SheetHeader>\n * </SheetContent>\n * </Sheet>\n * ```\n */\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\n/** Button or element that opens the Sheet when interacted with. */\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/** Button that programmatically closes the Sheet. */\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n/** Portals Sheet content outside the current DOM hierarchy. */\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the Sheet panel. */\nfunction SheetOverlay({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * The sliding panel itself; renders on the specified `side` of the viewport and includes a built-in close button.\n */\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n /** Edge of the viewport from which the sheet slides in. */\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background',\n 'fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out',\n\n 'data-[state=open]:animate-in',\n 'data-[state=open]:duration-500',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:duration-300',\n\n side === 'right' && 'inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'right' && 'data-[state=closed]:slide-out-to-right',\n side === 'right' && 'data-[state=open]:slide-in-from-right',\n\n side === 'left' && 'inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'left' && 'data-[state=closed]:slide-out-to-left',\n side === 'left' && 'data-[state=open]:slide-in-from-left',\n\n side === 'top' && 'inset-x-0 top-0 h-auto border-b',\n side === 'top' && 'data-[state=closed]:slide-out-to-top',\n side === 'top' && 'data-[state=open]:slide-in-from-top',\n\n side === 'bottom' && 'inset-x-0 bottom-0 h-auto border-t',\n side === 'bottom' && 'data-[state=closed]:slide-out-to-bottom',\n side === 'bottom' && 'data-[state=open]:slide-in-from-bottom',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={cn(\n 'cursor-pointer p-2 ring-offset-background',\n 'absolute top-2 right-2 rounded-full opacity-70 transition-opacity',\n 'data-[state=open]:bg-secondary',\n 'disabled:pointer-events-none',\n 'hover:opacity-100',\n 'hover:bg-border-muted',\n 'focus:ring-border-weak',\n 'focus:ring-4',\n 'focus:outline-hidden'\n )}\n >\n <XIcon className=\"size-5\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\n/** Padded container for the Sheet title and description at the top of the panel. */\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-header\" className={cn('flex flex-0 flex-col gap-1 p-4', className)} {...props} />;\n}\n\n/** Sticky footer area at the bottom of the Sheet panel, typically used for action buttons. */\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-footer\" className={cn('mt-auto flex flex-0 flex-col gap-2 p-4', className)} {...props} />;\n}\n\n/** Accessible title element for the Sheet, announced by screen readers on open. */\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return <SheetPrimitive.Title data-slot=\"sheet-title\" className={cn('font-semibold text-text-positive-strong', className)} {...props} />;\n}\n\n/** Accessible description element for the Sheet, providing supplemental context to the title. */\nfunction SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return <SheetPrimitive.Description data-slot=\"sheet-description\" className={cn('text-sm text-text-positive-weak', className)} {...props} />;\n}\n\nexport { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };\n"],"mappings":"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"}
package/dist/ui/sheet.mjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";import{XIcon as e}from"lucide-react";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{Dialog as i}from"radix-ui";function a({...e}){return n(i.Root,{"data-slot":`sheet`,...e})}function o({...e}){return n(i.Trigger,{"data-slot":`sheet-trigger`,...e})}function s({...e}){return n(i.Close,{"data-slot":`sheet-close`,...e})}function c({...e}){return n(i.Portal,{"data-slot":`sheet-portal`,...e})}function l({className:e,...r}){return n(i.Overlay,{"data-slot":`sheet-overlay`,className:t(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,e),...r})}function u({className:a,children:o,side:s=`right`,...u}){return r(c,{children:[n(l,{}),r(i.Content,{"data-slot":`sheet-content`,className:t(`bg-background`,`fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out`,`data-[state=open]:animate-in`,`data-[state=open]:duration-500`,`data-[state=closed]:animate-out`,`data-[state=closed]:duration-300`,s===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm`,s===`right`&&`data-[state=closed]:slide-out-to-right`,s===`right`&&`data-[state=open]:slide-in-from-right`,s===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm`,s===`left`&&`data-[state=closed]:slide-out-to-left`,s===`left`&&`data-[state=open]:slide-in-from-left`,s===`top`&&`inset-x-0 top-0 h-auto border-b`,s===`top`&&`data-[state=closed]:slide-out-to-top`,s===`top`&&`data-[state=open]:slide-in-from-top`,s===`bottom`&&`inset-x-0 bottom-0 h-auto border-t`,s===`bottom`&&`data-[state=closed]:slide-out-to-bottom`,s===`bottom`&&`data-[state=open]:slide-in-from-bottom`,a),...u,children:[o,r(i.Close,{className:t(`cursor-pointer p-2 ring-offset-background`,`absolute top-2 right-2 rounded-full opacity-70 transition-opacity`,`data-[state=open]:bg-secondary`,`disabled:pointer-events-none`,`hover:opacity-100`,`hover:bg-border-muted`,`focus:ring-border-weak`,`focus:ring-4`,`focus:outline-hidden`),children:[n(e,{className:`size-5`}),n(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function d({className:e,...r}){return n(`div`,{"data-slot":`sheet-header`,className:t(`flex flex-0 flex-col gap-1.5 p-4`,e),...r})}function f({className:e,...r}){return n(`div`,{"data-slot":`sheet-footer`,className:t(`mt-auto flex flex-0 flex-col gap-2 p-4`,e),...r})}function p({className:e,...r}){return n(i.Title,{"data-slot":`sheet-title`,className:t(`font-semibold text-text-positive-strong`,e),...r})}function m({className:e,...r}){return n(i.Description,{"data-slot":`sheet-description`,className:t(`text-sm text-text-positive-weak`,e),...r})}export{a as Sheet,s as SheetClose,u as SheetContent,m as SheetDescription,f as SheetFooter,d as SheetHeader,p as SheetTitle,o as SheetTrigger};
1
+ "use client";import{XIcon as e}from"lucide-react";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{Dialog as i}from"radix-ui";function a({...e}){return n(i.Root,{"data-slot":`sheet`,...e})}function o({...e}){return n(i.Trigger,{"data-slot":`sheet-trigger`,...e})}function s({...e}){return n(i.Close,{"data-slot":`sheet-close`,...e})}function c({...e}){return n(i.Portal,{"data-slot":`sheet-portal`,...e})}function l({className:e,...r}){return n(i.Overlay,{"data-slot":`sheet-overlay`,className:t(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,e),...r})}function u({className:a,children:o,side:s=`right`,...u}){return r(c,{children:[n(l,{}),r(i.Content,{"data-slot":`sheet-content`,className:t(`bg-background`,`fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out`,`data-[state=open]:animate-in`,`data-[state=open]:duration-500`,`data-[state=closed]:animate-out`,`data-[state=closed]:duration-300`,s===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm`,s===`right`&&`data-[state=closed]:slide-out-to-right`,s===`right`&&`data-[state=open]:slide-in-from-right`,s===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm`,s===`left`&&`data-[state=closed]:slide-out-to-left`,s===`left`&&`data-[state=open]:slide-in-from-left`,s===`top`&&`inset-x-0 top-0 h-auto border-b`,s===`top`&&`data-[state=closed]:slide-out-to-top`,s===`top`&&`data-[state=open]:slide-in-from-top`,s===`bottom`&&`inset-x-0 bottom-0 h-auto border-t`,s===`bottom`&&`data-[state=closed]:slide-out-to-bottom`,s===`bottom`&&`data-[state=open]:slide-in-from-bottom`,a),...u,children:[o,r(i.Close,{className:t(`cursor-pointer p-2 ring-offset-background`,`absolute top-2 right-2 rounded-full opacity-70 transition-opacity`,`data-[state=open]:bg-secondary`,`disabled:pointer-events-none`,`hover:opacity-100`,`hover:bg-border-muted`,`focus:ring-border-weak`,`focus:ring-4`,`focus:outline-hidden`),children:[n(e,{className:`size-5`}),n(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function d({className:e,...r}){return n(`div`,{"data-slot":`sheet-header`,className:t(`flex flex-0 flex-col gap-1 p-4`,e),...r})}function f({className:e,...r}){return n(`div`,{"data-slot":`sheet-footer`,className:t(`mt-auto flex flex-0 flex-col gap-2 p-4`,e),...r})}function p({className:e,...r}){return n(i.Title,{"data-slot":`sheet-title`,className:t(`font-semibold text-text-positive-strong`,e),...r})}function m({className:e,...r}){return n(i.Description,{"data-slot":`sheet-description`,className:t(`text-sm text-text-positive-weak`,e),...r})}export{a as Sheet,s as SheetClose,u as SheetContent,m as SheetDescription,f as SheetFooter,d as SheetHeader,p as SheetTitle,o as SheetTrigger};
2
2
  //# sourceMappingURL=sheet.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.mjs","names":["SheetPrimitive"],"sources":["../../packages/components/ui/sheet.tsx"],"sourcesContent":["'use client';\n\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as SheetPrimitive } from 'radix-ui';\n\n/**\n * Root provider for the Sheet panel — wraps all Sheet sub-components and manages open state.\n *\n * @example\n * ```tsx\n * import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '@customafk/lunas-ui/ui/sheet';\n *\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">\n * <SheetHeader>\n * <SheetTitle>Settings</SheetTitle>\n * <SheetDescription>Manage your preferences.</SheetDescription>\n * </SheetHeader>\n * </SheetContent>\n * </Sheet>\n * ```\n */\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\n/** Button or element that opens the Sheet when interacted with. */\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/** Button that programmatically closes the Sheet. */\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n/** Portals Sheet content outside the current DOM hierarchy. */\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the Sheet panel. */\nfunction SheetOverlay({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * The sliding panel itself; renders on the specified `side` of the viewport and includes a built-in close button.\n */\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n /** Edge of the viewport from which the sheet slides in. */\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background',\n 'fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out',\n\n 'data-[state=open]:animate-in',\n 'data-[state=open]:duration-500',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:duration-300',\n\n side === 'right' && 'inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'right' && 'data-[state=closed]:slide-out-to-right',\n side === 'right' && 'data-[state=open]:slide-in-from-right',\n\n side === 'left' && 'inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'left' && 'data-[state=closed]:slide-out-to-left',\n side === 'left' && 'data-[state=open]:slide-in-from-left',\n\n side === 'top' && 'inset-x-0 top-0 h-auto border-b',\n side === 'top' && 'data-[state=closed]:slide-out-to-top',\n side === 'top' && 'data-[state=open]:slide-in-from-top',\n\n side === 'bottom' && 'inset-x-0 bottom-0 h-auto border-t',\n side === 'bottom' && 'data-[state=closed]:slide-out-to-bottom',\n side === 'bottom' && 'data-[state=open]:slide-in-from-bottom',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={cn(\n 'cursor-pointer p-2 ring-offset-background',\n 'absolute top-2 right-2 rounded-full opacity-70 transition-opacity',\n 'data-[state=open]:bg-secondary',\n 'disabled:pointer-events-none',\n 'hover:opacity-100',\n 'hover:bg-border-muted',\n 'focus:ring-border-weak',\n 'focus:ring-4',\n 'focus:outline-hidden'\n )}\n >\n <XIcon className=\"size-5\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\n/** Padded container for the Sheet title and description at the top of the panel. */\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-header\" className={cn('flex flex-0 flex-col gap-1.5 p-4', className)} {...props} />;\n}\n\n/** Sticky footer area at the bottom of the Sheet panel, typically used for action buttons. */\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-footer\" className={cn('mt-auto flex flex-0 flex-col gap-2 p-4', className)} {...props} />;\n}\n\n/** Accessible title element for the Sheet, announced by screen readers on open. */\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return <SheetPrimitive.Title data-slot=\"sheet-title\" className={cn('font-semibold text-text-positive-strong', className)} {...props} />;\n}\n\n/** Accessible description element for the Sheet, providing supplemental context to the title. */\nfunction SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return <SheetPrimitive.Description data-slot=\"sheet-description\" className={cn('text-sm text-text-positive-weak', className)} {...props} />;\n}\n\nexport { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };\n"],"mappings":"0LA0BA,SAAS,EAAM,CAAE,GAAG,GAA2D,CAC7E,OAAO,EAACA,EAAe,KAAhB,CAAqB,YAAU,QAAQ,GAAI,CAAQ,CAAA,CAC5D,CAGA,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAe,QAAhB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAGA,SAAS,EAAW,CAAE,GAAG,GAA4D,CACnF,OAAO,EAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,GAAI,CAAQ,CAAA,CACnE,CAGA,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAe,OAAhB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAGA,SAAS,EAAa,CAAE,YAAW,GAAG,GAA8D,CAClG,OACE,EAACA,EAAe,QAAhB,CACE,YAAU,gBACV,UAAW,EACT,iCACA,+BACA,kCACA,iCACA,8BACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAKA,SAAS,EAAa,CACpB,YACA,WACA,OAAO,QACP,GAAG,GAIF,CACD,OACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAe,CAAA,EACf,EAACA,EAAe,QAAhB,CACE,YAAU,gBACV,UAAW,EACT,gBACA,2FAEA,+BACA,iCACA,kCACA,mCAEA,IAAS,SAAW,sDACpB,IAAS,SAAW,yCACpB,IAAS,SAAW,wCAEpB,IAAS,QAAU,qDACnB,IAAS,QAAU,wCACnB,IAAS,QAAU,uCAEnB,IAAS,OAAS,kCAClB,IAAS,OAAS,uCAClB,IAAS,OAAS,sCAElB,IAAS,UAAY,qCACrB,IAAS,UAAY,0CACrB,IAAS,UAAY,yCACrB,CACF,EACA,GAAI,EA5BN,SAAA,CA8BG,EACD,EAACA,EAAe,MAAhB,CACE,UAAW,EACT,4CACA,oEACA,iCACA,+BACA,oBACA,wBACA,yBACA,eACA,sBACF,EAXF,SAAA,CAaE,EAAC,EAAD,CAAO,UAAU,QAAU,CAAA,EAC3B,EAAC,OAAD,CAAM,UAAU,UAAU,SAAA,OAAW,CAAA,CACjB,CACA,CAAA,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAEjB,CAGA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,mCAAoC,CAAS,EAAG,GAAI,CAAQ,CAAA,CACjH,CAGA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,yCAA0C,CAAS,EAAG,GAAI,CAAQ,CAAA,CACvH,CAGA,SAAS,EAAW,CAAE,YAAW,GAAG,GAA4D,CAC9F,OAAO,EAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,UAAW,EAAG,0CAA2C,CAAS,EAAG,GAAI,CAAQ,CAAA,CACxI,CAGA,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAkE,CAC1G,OAAO,EAACA,EAAe,YAAhB,CAA4B,YAAU,oBAAoB,UAAW,EAAG,kCAAmC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC5I"}
1
+ {"version":3,"file":"sheet.mjs","names":["SheetPrimitive"],"sources":["../../packages/components/ui/sheet.tsx"],"sourcesContent":["'use client';\n\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as SheetPrimitive } from 'radix-ui';\n\n/**\n * Root provider for the Sheet panel — wraps all Sheet sub-components and manages open state.\n *\n * @example\n * ```tsx\n * import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '@customafk/lunas-ui/ui/sheet';\n *\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">\n * <SheetHeader>\n * <SheetTitle>Settings</SheetTitle>\n * <SheetDescription>Manage your preferences.</SheetDescription>\n * </SheetHeader>\n * </SheetContent>\n * </Sheet>\n * ```\n */\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\n/** Button or element that opens the Sheet when interacted with. */\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/** Button that programmatically closes the Sheet. */\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n/** Portals Sheet content outside the current DOM hierarchy. */\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the Sheet panel. */\nfunction SheetOverlay({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * The sliding panel itself; renders on the specified `side` of the viewport and includes a built-in close button.\n */\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n /** Edge of the viewport from which the sheet slides in. */\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background',\n 'fixed z-50 flex flex-col gap-4 border-border-weak shadow-dropdown transition ease-in-out',\n\n 'data-[state=open]:animate-in',\n 'data-[state=open]:duration-500',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:duration-300',\n\n side === 'right' && 'inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'right' && 'data-[state=closed]:slide-out-to-right',\n side === 'right' && 'data-[state=open]:slide-in-from-right',\n\n side === 'left' && 'inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'left' && 'data-[state=closed]:slide-out-to-left',\n side === 'left' && 'data-[state=open]:slide-in-from-left',\n\n side === 'top' && 'inset-x-0 top-0 h-auto border-b',\n side === 'top' && 'data-[state=closed]:slide-out-to-top',\n side === 'top' && 'data-[state=open]:slide-in-from-top',\n\n side === 'bottom' && 'inset-x-0 bottom-0 h-auto border-t',\n side === 'bottom' && 'data-[state=closed]:slide-out-to-bottom',\n side === 'bottom' && 'data-[state=open]:slide-in-from-bottom',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close\n className={cn(\n 'cursor-pointer p-2 ring-offset-background',\n 'absolute top-2 right-2 rounded-full opacity-70 transition-opacity',\n 'data-[state=open]:bg-secondary',\n 'disabled:pointer-events-none',\n 'hover:opacity-100',\n 'hover:bg-border-muted',\n 'focus:ring-border-weak',\n 'focus:ring-4',\n 'focus:outline-hidden'\n )}\n >\n <XIcon className=\"size-5\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\n/** Padded container for the Sheet title and description at the top of the panel. */\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-header\" className={cn('flex flex-0 flex-col gap-1 p-4', className)} {...props} />;\n}\n\n/** Sticky footer area at the bottom of the Sheet panel, typically used for action buttons. */\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sheet-footer\" className={cn('mt-auto flex flex-0 flex-col gap-2 p-4', className)} {...props} />;\n}\n\n/** Accessible title element for the Sheet, announced by screen readers on open. */\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return <SheetPrimitive.Title data-slot=\"sheet-title\" className={cn('font-semibold text-text-positive-strong', className)} {...props} />;\n}\n\n/** Accessible description element for the Sheet, providing supplemental context to the title. */\nfunction SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return <SheetPrimitive.Description data-slot=\"sheet-description\" className={cn('text-sm text-text-positive-weak', className)} {...props} />;\n}\n\nexport { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };\n"],"mappings":"0LA0BA,SAAS,EAAM,CAAE,GAAG,GAA2D,CAC7E,OAAO,EAACA,EAAe,KAAhB,CAAqB,YAAU,QAAQ,GAAI,CAAQ,CAAA,CAC5D,CAGA,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAe,QAAhB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAGA,SAAS,EAAW,CAAE,GAAG,GAA4D,CACnF,OAAO,EAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,GAAI,CAAQ,CAAA,CACnE,CAGA,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAe,OAAhB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAGA,SAAS,EAAa,CAAE,YAAW,GAAG,GAA8D,CAClG,OACE,EAACA,EAAe,QAAhB,CACE,YAAU,gBACV,UAAW,EACT,iCACA,+BACA,kCACA,iCACA,8BACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAKA,SAAS,EAAa,CACpB,YACA,WACA,OAAO,QACP,GAAG,GAIF,CACD,OACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAe,CAAA,EACf,EAACA,EAAe,QAAhB,CACE,YAAU,gBACV,UAAW,EACT,gBACA,2FAEA,+BACA,iCACA,kCACA,mCAEA,IAAS,SAAW,sDACpB,IAAS,SAAW,yCACpB,IAAS,SAAW,wCAEpB,IAAS,QAAU,qDACnB,IAAS,QAAU,wCACnB,IAAS,QAAU,uCAEnB,IAAS,OAAS,kCAClB,IAAS,OAAS,uCAClB,IAAS,OAAS,sCAElB,IAAS,UAAY,qCACrB,IAAS,UAAY,0CACrB,IAAS,UAAY,yCACrB,CACF,EACA,GAAI,EA5BN,SAAA,CA8BG,EACD,EAACA,EAAe,MAAhB,CACE,UAAW,EACT,4CACA,oEACA,iCACA,+BACA,oBACA,wBACA,yBACA,eACA,sBACF,EAXF,SAAA,CAaE,EAAC,EAAD,CAAO,UAAU,QAAU,CAAA,EAC3B,EAAC,OAAD,CAAM,UAAU,UAAU,SAAA,OAAW,CAAA,CACjB,CACA,CAAA,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAEjB,CAGA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,iCAAkC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC/G,CAGA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,yCAA0C,CAAS,EAAG,GAAI,CAAQ,CAAA,CACvH,CAGA,SAAS,EAAW,CAAE,YAAW,GAAG,GAA4D,CAC9F,OAAO,EAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,UAAW,EAAG,0CAA2C,CAAS,EAAG,GAAI,CAAQ,CAAA,CACxI,CAGA,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAkE,CAC1G,OAAO,EAACA,EAAe,YAAhB,CAA4B,YAAU,oBAAoB,UAAW,EAAG,kCAAmC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC5I"}
@@ -0,0 +1,128 @@
1
+ //#region packages/components/layouts/ui-grid.d.ts
2
+ /**
3
+ * Container-query breakpoint keys used by `UIGrid`'s `cols` and `UIGridItem`'s
4
+ * `span`, resolved against the nearest ancestor `@container/ui-grid` (i.e. the
5
+ * grid's own rendered width, not the viewport). These match Tailwind v4's default
6
+ * container-query scale exactly:
7
+ * - `'base'` — always applied, no minimum width (the fallback/mobile-first value).
8
+ * - `'sm'` — applies from **384px** (`24rem`) and up.
9
+ * - `'md'` — applies from **448px** (`28rem`) and up.
10
+ * - `'lg'` — applies from **512px** (`32rem`) and up.
11
+ * - `'xl'` — applies from **576px** (`36rem`) and up.
12
+ * - `'2xl'` — applies from **672px** (`42rem`) and up.
13
+ * - `'3xl'` — applies from **768px** (`48rem`) and up.
14
+ *
15
+ * Whichever breakpoint's minimum width is currently satisfied (in ascending
16
+ * order) wins, same cascade behavior as Tailwind's ordinary `sm:`/`md:`/`lg:`
17
+ * responsive classes.
18
+ */
19
+ type TUIGridBreakpoint = 'base' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
20
+ type TUIGridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
21
+ type TUIGridColsConfig = TUIGridCols | Partial<Record<TUIGridBreakpoint, TUIGridCols>>;
22
+ declare const GAP_CLASS: {
23
+ readonly xs: "gap-1";
24
+ readonly sm: "gap-2";
25
+ readonly md: "gap-4";
26
+ readonly lg: "gap-6";
27
+ readonly xl: "gap-8";
28
+ readonly none: "gap-0";
29
+ };
30
+ type UIGridProps = React.PropsWithChildren<{
31
+ /** Additional Tailwind classes merged on top of the generated classes. */
32
+ className?: string;
33
+ /**
34
+ * Number of base grid columns (`1`–`12`). Every `UIGridItem`'s `span` is
35
+ * expressed against this same column count at every container width.
36
+ * - A plain number fixes the column count at every width.
37
+ * - An object varies the column count as the grid's own rendered width crosses
38
+ * each container-query breakpoint (see {@link TUIGridBreakpoint} for the
39
+ * exact pixel value of each key) — e.g. "narrow container → 4 columns, wide
40
+ * container → 12 columns".
41
+ * @default 12
42
+ * @example
43
+ * ```tsx
44
+ * // 4 cols below 448px, 8 cols from 448px, 12 cols from 512px up
45
+ * <UIGrid cols={{ base: 4, md: 8, lg: 12 }} />
46
+ * ```
47
+ */
48
+ cols?: TUIGridColsConfig;
49
+ /**
50
+ * Gap between grid cells, reusing the same scale as `Flex`'s `gap` prop.
51
+ * - `'none'` — `gap-0`
52
+ * - `'xs'` — `gap-1`
53
+ * - `'sm'` — `gap-2`
54
+ * - `'md'` — `gap-4` (default)
55
+ * - `'lg'` — `gap-6`
56
+ * - `'xl'` — `gap-8`
57
+ * @default 'md'
58
+ */
59
+ gap?: keyof typeof GAP_CLASS;
60
+ }> & Omit<React.ComponentPropsWithoutRef<'div'>, 'className'>;
61
+ /**
62
+ * A 12-column CSS Grid container with a named `@container` context, so both its
63
+ * own column count and its `UIGridItem` children's `span` can vary based on the
64
+ * grid's own rendered width instead of the viewport.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * import { UIGrid, UIGridItem } from '@customafk/lunas-ui/layouts/ui-grid';
69
+ *
70
+ * <UIGrid gap="md" cols={{ base: 4, md: 12 }}>
71
+ * <UIGridItem span={6}>Left</UIGridItem>
72
+ * <UIGridItem span={6}>Right</UIGridItem>
73
+ * </UIGrid>
74
+ * ```
75
+ */
76
+ declare const UIGrid: import("react").MemoExoticComponent<({ cols, gap, className, children, ...rest }: UIGridProps) => import("react").JSX.Element>;
77
+ type TUIGridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
78
+ type TUIGridItemSpan = TUIGridSpan | Partial<Record<TUIGridBreakpoint, TUIGridSpan>>;
79
+ type UIGridItemProps = React.PropsWithChildren<{
80
+ /** Additional Tailwind classes merged on top of the span classes. */
81
+ className?: string;
82
+ /**
83
+ * Number of the grid's columns this item should occupy (`1`–`12`).
84
+ * - A plain number fixes the span at every container width.
85
+ * - An object varies the span as the *grid's own* rendered width crosses each
86
+ * container-query breakpoint (see {@link TUIGridBreakpoint} for the exact
87
+ * pixel value of each key), not the viewport.
88
+ * @default 12
89
+ * @example
90
+ * ```tsx
91
+ * <UIGridItem span={6} />
92
+ * // full-width below 384px, half from 384px, a third from 448px up
93
+ * <UIGridItem span={{ base: 12, sm: 6, md: 4 }} />
94
+ * ```
95
+ */
96
+ span?: TUIGridItemSpan;
97
+ /**
98
+ * Wraps `children` in a `Suspense` boundary so a lazy-loaded cell (e.g. a
99
+ * `React.lazy()` component) doesn't block sibling items from rendering.
100
+ * @default true
101
+ */
102
+ suspense?: boolean;
103
+ /**
104
+ * Fallback UI shown while suspended children are loading. Only relevant when
105
+ * `suspense` is `true`.
106
+ * @default null
107
+ */
108
+ fallback?: React.ReactNode;
109
+ }> & Omit<React.ComponentPropsWithoutRef<'div'>, 'className'>;
110
+ /**
111
+ * A single cell inside a `UIGrid`. Spans `12` of the grid's columns by default
112
+ * (a full-width row) and can vary its span per container-query breakpoint.
113
+ *
114
+ * @example
115
+ * ```tsx
116
+ * import { UIGrid, UIGridItem } from '@customafk/lunas-ui/layouts/ui-grid';
117
+ *
118
+ * <UIGrid>
119
+ * <UIGridItem span={{ base: 12, md: 6 }} suspense fallback={<Skeleton />}>
120
+ * <LazyWidget />
121
+ * </UIGridItem>
122
+ * </UIGrid>
123
+ * ```
124
+ */
125
+ declare const UIGridItem: import("react").MemoExoticComponent<({ span, className, children, suspense, fallback, ...rest }: UIGridItemProps) => import("react").JSX.Element>;
126
+ //#endregion
127
+ export { TUIGridSpan as a, TUIGridItemSpan as i, TUIGridCols as n, UIGrid as o, TUIGridColsConfig as r, UIGridItem as s, TUIGridBreakpoint as t };
128
+ //# sourceMappingURL=ui-grid-D1-Ponqs.d.cts.map
@@ -0,0 +1,128 @@
1
+ //#region packages/components/layouts/ui-grid.d.ts
2
+ /**
3
+ * Container-query breakpoint keys used by `UIGrid`'s `cols` and `UIGridItem`'s
4
+ * `span`, resolved against the nearest ancestor `@container/ui-grid` (i.e. the
5
+ * grid's own rendered width, not the viewport). These match Tailwind v4's default
6
+ * container-query scale exactly:
7
+ * - `'base'` — always applied, no minimum width (the fallback/mobile-first value).
8
+ * - `'sm'` — applies from **384px** (`24rem`) and up.
9
+ * - `'md'` — applies from **448px** (`28rem`) and up.
10
+ * - `'lg'` — applies from **512px** (`32rem`) and up.
11
+ * - `'xl'` — applies from **576px** (`36rem`) and up.
12
+ * - `'2xl'` — applies from **672px** (`42rem`) and up.
13
+ * - `'3xl'` — applies from **768px** (`48rem`) and up.
14
+ *
15
+ * Whichever breakpoint's minimum width is currently satisfied (in ascending
16
+ * order) wins, same cascade behavior as Tailwind's ordinary `sm:`/`md:`/`lg:`
17
+ * responsive classes.
18
+ */
19
+ type TUIGridBreakpoint = 'base' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
20
+ type TUIGridCols = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
21
+ type TUIGridColsConfig = TUIGridCols | Partial<Record<TUIGridBreakpoint, TUIGridCols>>;
22
+ declare const GAP_CLASS: {
23
+ readonly xs: "gap-1";
24
+ readonly sm: "gap-2";
25
+ readonly md: "gap-4";
26
+ readonly lg: "gap-6";
27
+ readonly xl: "gap-8";
28
+ readonly none: "gap-0";
29
+ };
30
+ type UIGridProps = React.PropsWithChildren<{
31
+ /** Additional Tailwind classes merged on top of the generated classes. */
32
+ className?: string;
33
+ /**
34
+ * Number of base grid columns (`1`–`12`). Every `UIGridItem`'s `span` is
35
+ * expressed against this same column count at every container width.
36
+ * - A plain number fixes the column count at every width.
37
+ * - An object varies the column count as the grid's own rendered width crosses
38
+ * each container-query breakpoint (see {@link TUIGridBreakpoint} for the
39
+ * exact pixel value of each key) — e.g. "narrow container → 4 columns, wide
40
+ * container → 12 columns".
41
+ * @default 12
42
+ * @example
43
+ * ```tsx
44
+ * // 4 cols below 448px, 8 cols from 448px, 12 cols from 512px up
45
+ * <UIGrid cols={{ base: 4, md: 8, lg: 12 }} />
46
+ * ```
47
+ */
48
+ cols?: TUIGridColsConfig;
49
+ /**
50
+ * Gap between grid cells, reusing the same scale as `Flex`'s `gap` prop.
51
+ * - `'none'` — `gap-0`
52
+ * - `'xs'` — `gap-1`
53
+ * - `'sm'` — `gap-2`
54
+ * - `'md'` — `gap-4` (default)
55
+ * - `'lg'` — `gap-6`
56
+ * - `'xl'` — `gap-8`
57
+ * @default 'md'
58
+ */
59
+ gap?: keyof typeof GAP_CLASS;
60
+ }> & Omit<React.ComponentPropsWithoutRef<'div'>, 'className'>;
61
+ /**
62
+ * A 12-column CSS Grid container with a named `@container` context, so both its
63
+ * own column count and its `UIGridItem` children's `span` can vary based on the
64
+ * grid's own rendered width instead of the viewport.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * import { UIGrid, UIGridItem } from '@customafk/lunas-ui/layouts/ui-grid';
69
+ *
70
+ * <UIGrid gap="md" cols={{ base: 4, md: 12 }}>
71
+ * <UIGridItem span={6}>Left</UIGridItem>
72
+ * <UIGridItem span={6}>Right</UIGridItem>
73
+ * </UIGrid>
74
+ * ```
75
+ */
76
+ declare const UIGrid: import("react").MemoExoticComponent<({ cols, gap, className, children, ...rest }: UIGridProps) => import("react").JSX.Element>;
77
+ type TUIGridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
78
+ type TUIGridItemSpan = TUIGridSpan | Partial<Record<TUIGridBreakpoint, TUIGridSpan>>;
79
+ type UIGridItemProps = React.PropsWithChildren<{
80
+ /** Additional Tailwind classes merged on top of the span classes. */
81
+ className?: string;
82
+ /**
83
+ * Number of the grid's columns this item should occupy (`1`–`12`).
84
+ * - A plain number fixes the span at every container width.
85
+ * - An object varies the span as the *grid's own* rendered width crosses each
86
+ * container-query breakpoint (see {@link TUIGridBreakpoint} for the exact
87
+ * pixel value of each key), not the viewport.
88
+ * @default 12
89
+ * @example
90
+ * ```tsx
91
+ * <UIGridItem span={6} />
92
+ * // full-width below 384px, half from 384px, a third from 448px up
93
+ * <UIGridItem span={{ base: 12, sm: 6, md: 4 }} />
94
+ * ```
95
+ */
96
+ span?: TUIGridItemSpan;
97
+ /**
98
+ * Wraps `children` in a `Suspense` boundary so a lazy-loaded cell (e.g. a
99
+ * `React.lazy()` component) doesn't block sibling items from rendering.
100
+ * @default true
101
+ */
102
+ suspense?: boolean;
103
+ /**
104
+ * Fallback UI shown while suspended children are loading. Only relevant when
105
+ * `suspense` is `true`.
106
+ * @default null
107
+ */
108
+ fallback?: React.ReactNode;
109
+ }> & Omit<React.ComponentPropsWithoutRef<'div'>, 'className'>;
110
+ /**
111
+ * A single cell inside a `UIGrid`. Spans `12` of the grid's columns by default
112
+ * (a full-width row) and can vary its span per container-query breakpoint.
113
+ *
114
+ * @example
115
+ * ```tsx
116
+ * import { UIGrid, UIGridItem } from '@customafk/lunas-ui/layouts/ui-grid';
117
+ *
118
+ * <UIGrid>
119
+ * <UIGridItem span={{ base: 12, md: 6 }} suspense fallback={<Skeleton />}>
120
+ * <LazyWidget />
121
+ * </UIGridItem>
122
+ * </UIGrid>
123
+ * ```
124
+ */
125
+ declare const UIGridItem: import("react").MemoExoticComponent<({ span, className, children, suspense, fallback, ...rest }: UIGridItemProps) => import("react").JSX.Element>;
126
+ //#endregion
127
+ export { TUIGridSpan as a, TUIGridItemSpan as i, TUIGridCols as n, UIGrid as o, TUIGridColsConfig as r, UIGridItem as s, TUIGridBreakpoint as t };
128
+ //# sourceMappingURL=ui-grid-D1-Ponqs.d.mts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@customafk/lunas-ui",
3
- "version": "0.2.81",
3
+ "version": "0.2.83",
4
4
  "description": "UI library for Lunas Enterprise",
5
5
  "type": "module",
6
6
  "author": {
@@ -16,8 +16,7 @@
16
16
  "files": [
17
17
  "dist",
18
18
  "styles",
19
- "README.md",
20
- "ai-docs.md"
19
+ "README.md"
21
20
  ],
22
21
  "engines": {
23
22
  "node": ">= 22.0.0"
@@ -104,6 +103,10 @@
104
103
  "require": "./dist/dialogs/loading-dialog.cjs",
105
104
  "import": "./dist/dialogs/loading-dialog.mjs"
106
105
  },
106
+ "./dialogs/side-panel": {
107
+ "require": "./dist/dialogs/side-panel.cjs",
108
+ "import": "./dist/dialogs/side-panel.mjs"
109
+ },
107
110
  "./features/charts": {
108
111
  "require": "./dist/features/charts/index.cjs",
109
112
  "import": "./dist/features/charts/index.mjs"
@@ -148,6 +151,10 @@
148
151
  "require": "./dist/layouts/grid.cjs",
149
152
  "import": "./dist/layouts/grid.mjs"
150
153
  },
154
+ "./layouts/ui-grid": {
155
+ "require": "./dist/layouts/ui-grid.cjs",
156
+ "import": "./dist/layouts/ui-grid.mjs"
157
+ },
151
158
  "./layouts/payment-layout": {
152
159
  "require": "./dist/layouts/payment-layout/index.cjs",
153
160
  "import": "./dist/layouts/payment-layout/index.mjs"