@tempots/beatui 0.95.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dist/{ar-BVXPzVJB.cjs → ar-CuI1Jgt6.cjs} +1 -1
  2. package/dist/{ar-B4jDJwHQ.js → ar-DaKbK_t8.js} +87 -11
  3. package/dist/auth/index.cjs.js +1 -1
  4. package/dist/auth/index.es.js +1 -1
  5. package/dist/{auth-divider-BPwKk8MW.js → auth-divider-BQIhr3-R.js} +99 -98
  6. package/dist/auth-divider-DvnUModP.cjs +1 -0
  7. package/dist/beatui.css +1628 -541
  8. package/dist/beatui.tailwind.css +1629 -542
  9. package/dist/better-auth/index.cjs.js +1 -1
  10. package/dist/better-auth/index.es.js +9 -9
  11. package/dist/codehighlight/index.cjs.js +22 -0
  12. package/dist/codehighlight/index.es.js +76 -0
  13. package/dist/colors-B-p6IzX9.cjs +1 -0
  14. package/dist/{colors-BY0Ja_bf.js → colors-DwufPN8S.js} +18 -18
  15. package/dist/{de-Dd33yWzb.js → de-3MTPDS1i.js} +82 -6
  16. package/dist/{de-BdfPZskW.cjs → de-DthHehbh.cjs} +1 -1
  17. package/dist/{deep-merge-C8dSqIXI.js → deep-merge-BzIheQtH.js} +511 -517
  18. package/dist/deep-merge-EkjEgK0N.cjs +1 -0
  19. package/dist/{duration-input-IuFWywO5.cjs → duration-input-ClgYjeBa.cjs} +1 -1
  20. package/dist/{duration-input-DFZwkg6M.js → duration-input-DGzmIImj.js} +5 -5
  21. package/dist/{editor-toolbar-group-DiJFgGcI.js → editor-toolbar-group-Crlu1QJw.js} +3 -3
  22. package/dist/{editor-toolbar-group-BCBfu8pG.cjs → editor-toolbar-group-mkL4QozO.cjs} +1 -1
  23. package/dist/es-B6GJLk9h.cjs +1 -0
  24. package/dist/{es-jHMT3_7O.js → es-DwMUvBeU.js} +94 -18
  25. package/dist/{fa-eX3_BAZR.js → fa-0rvQiKrJ.js} +87 -11
  26. package/dist/{fa-BXnP4pbN.cjs → fa-BwgP93iV.cjs} +1 -1
  27. package/dist/{fr-Bj-GjMJm.js → fr-B4i6NzLl.js} +86 -10
  28. package/dist/{fr-HJDhGjI2.cjs → fr-CQzk5zqY.cjs} +1 -1
  29. package/dist/{he-DYgmPPkG.js → he-C71n-hsn.js} +87 -11
  30. package/dist/{he-C6nEVZhN.cjs → he-DcxxvRfs.cjs} +1 -1
  31. package/dist/{hi-DMVSXAJt.cjs → hi-D-KHVWg4.cjs} +1 -1
  32. package/dist/{hi-CgYLonE9.js → hi-xmrXpeVU.js} +87 -11
  33. package/dist/index-B5MAsOC-.cjs +1 -0
  34. package/dist/{index-B8cqD9ny.js → index-C3o9GSH6.js} +106 -105
  35. package/dist/index.cjs.js +4 -4
  36. package/dist/index.es.js +8055 -5285
  37. package/dist/input-container-BvEcp7FU.js +275 -0
  38. package/dist/input-container-Di1YvVB_.cjs +1 -0
  39. package/dist/{it-CO2BPqah.js → it-CDZTtOBC.js} +83 -7
  40. package/dist/{it-DhfVcjKb.cjs → it-D344Dutu.cjs} +1 -1
  41. package/dist/{ja-Bt6fGS_Q.cjs → ja-BNgnDZ27.cjs} +1 -1
  42. package/dist/{ja-BrzwjH8T.js → ja-Zz1LzidW.js} +91 -15
  43. package/dist/json-schema/index.cjs.js +1 -1
  44. package/dist/json-schema/index.es.js +261 -257
  45. package/dist/json-schema-display/index.cjs.js +1 -1
  46. package/dist/json-schema-display/index.es.js +2 -2
  47. package/dist/json-structure/index.cjs.js +1 -1
  48. package/dist/json-structure/index.es.js +132 -133
  49. package/dist/{ko-D-lJ4wYQ.js → ko-9laUsZDL.js} +90 -14
  50. package/dist/{ko-DfAaBGrz.cjs → ko-D-WJ9NK7.cjs} +1 -1
  51. package/dist/lexical/index.cjs.js +2 -39
  52. package/dist/lexical/index.es.js +2056 -20626
  53. package/dist/markdown/index.cjs.js +1 -1
  54. package/dist/markdown/index.es.js +41 -4
  55. package/dist/{menu-CV85y3Xf.js → menu-B8yoDMRS.js} +23 -23
  56. package/dist/menu-B92oSDct.cjs +1 -0
  57. package/dist/modal-BT0jjDqX.cjs +1 -0
  58. package/dist/{modal-CwZuWiSK.js → modal-DBguyX-b.js} +9 -9
  59. package/dist/monaco/index.cjs.js +2 -2
  60. package/dist/monaco/index.es.js +7 -7
  61. package/dist/{nl-CNWBQjK5.cjs → nl-CrqUlFie.cjs} +1 -1
  62. package/dist/{nl-ClsworIe.js → nl-Dcll9fVA.js} +86 -10
  63. package/dist/{notice-D7hYFM5A.js → notice-E19wu9lA.js} +51 -51
  64. package/dist/notice-_9XhdrFw.cjs +1 -0
  65. package/dist/oneof-branch-detection-J_DYEEcD.js +1077 -0
  66. package/dist/oneof-branch-detection-ZUBZ6hqy.cjs +1 -0
  67. package/dist/{pl-CqHTeu3-.cjs → pl-9UksIrvX.cjs} +1 -1
  68. package/dist/{pl-WTwLAxnV.js → pl-Dm9N9Gbr.js} +83 -7
  69. package/dist/prosemirror/index.cjs.js +3 -1
  70. package/dist/prosemirror/index.es.js +636 -4
  71. package/dist/{pt-CgkjJnsG.js → pt-CFi5cn0k.js} +88 -12
  72. package/dist/{pt-BQmsiqbo.cjs → pt-_kfdzwqi.cjs} +1 -1
  73. package/dist/{ru-CtgH7OY9.js → ru-CEhZUw8R.js} +91 -15
  74. package/dist/{ru-CG56A2To.cjs → ru-CW1WNNlr.cjs} +1 -1
  75. package/dist/stack-BLMteGTn.js +15 -0
  76. package/dist/stack-dwLevGa2.cjs +1 -0
  77. package/dist/tailwind/preset.cjs.js +1 -1
  78. package/dist/tailwind/preset.es.js +2 -2
  79. package/dist/tailwind/vite-plugin.cjs.js +1 -1
  80. package/dist/tailwind/vite-plugin.es.js +1 -1
  81. package/dist/text-input-DfqXolVe.js +55 -0
  82. package/dist/text-input-X_q01NsY.cjs +1 -0
  83. package/dist/toolbar-DY0ax2Qd.js +130 -0
  84. package/dist/toolbar-DoKdYXIL.cjs +1 -0
  85. package/dist/{tr-DE7_VtKu.cjs → tr-B6GIRegf.cjs} +1 -1
  86. package/dist/{tr-D1O1vEmr.js → tr-ZmnVDhLP.js} +81 -5
  87. package/dist/{translations-yu4gNqlP.js → translations-A4kR7CW8.js} +1 -1
  88. package/dist/{translations-DyCmyLE_.js → translations-B1_yyDUK.js} +207 -129
  89. package/dist/{translations-DBxIjvWR.cjs → translations-C81buKAw.cjs} +1 -1
  90. package/dist/translations-Dbx7L7Q1.cjs +1 -0
  91. package/dist/types/beatui-i18n/default.d.ts +71 -0
  92. package/dist/types/beatui-i18n/locales/en.d.ts +71 -0
  93. package/dist/types/beatui-i18n/translations.d.ts +71 -0
  94. package/dist/types/codehighlight/code-highlight.d.ts +21 -0
  95. package/dist/types/codehighlight/index.d.ts +14 -0
  96. package/dist/types/components/button/toggle-button.d.ts +4 -4
  97. package/dist/types/components/data/avatar.d.ts +3 -1
  98. package/dist/types/components/data/badge.d.ts +10 -18
  99. package/dist/types/components/data/column-filter-panel.d.ts +31 -0
  100. package/dist/types/components/data/column-filter.d.ts +110 -0
  101. package/dist/types/components/data/column-header-menu.d.ts +42 -0
  102. package/dist/types/components/data/data-source.d.ts +190 -0
  103. package/dist/types/components/data/data-table-body.d.ts +12 -0
  104. package/dist/types/components/data/data-table-column-toggle.d.ts +4 -0
  105. package/dist/types/components/data/data-table-context.d.ts +53 -0
  106. package/dist/types/components/data/data-table-header.d.ts +6 -0
  107. package/dist/types/components/data/data-table-resolve.d.ts +26 -0
  108. package/dist/types/components/data/data-table-types.d.ts +201 -0
  109. package/dist/types/components/data/data-table.d.ts +38 -0
  110. package/dist/types/components/data/data-toolbar.d.ts +44 -0
  111. package/dist/types/components/data/date-picker-shared.d.ts +55 -0
  112. package/dist/types/components/data/date-picker.d.ts +58 -0
  113. package/dist/types/components/data/date-range-picker.d.ts +56 -0
  114. package/dist/types/components/data/filter.d.ts +268 -0
  115. package/dist/types/components/data/index.d.ts +13 -4
  116. package/dist/types/components/data/indicator.d.ts +41 -0
  117. package/dist/types/components/data/progress-bar.d.ts +2 -2
  118. package/dist/types/components/data/selection-checkbox.d.ts +63 -0
  119. package/dist/types/components/data/skeleton.d.ts +1 -1
  120. package/dist/types/components/data/sortable-header.d.ts +55 -0
  121. package/dist/types/components/data/unstyled-drop-zone.d.ts +2 -2
  122. package/dist/types/components/form/control/control.d.ts +9 -9
  123. package/dist/types/components/form/input/advanced-slider.d.ts +6 -6
  124. package/dist/types/components/form/input/appearance-selector.d.ts +9 -2
  125. package/dist/types/components/form/input/checkbox-input.d.ts +6 -7
  126. package/dist/types/components/form/input/color-input.d.ts +1 -1
  127. package/dist/types/components/form/input/color-swatch-input.d.ts +3 -3
  128. package/dist/types/components/form/input/combobox-input.d.ts +5 -5
  129. package/dist/types/components/form/input/combobox-tags-input.d.ts +5 -5
  130. package/dist/types/components/form/input/create-nullable-string-input.d.ts +2 -2
  131. package/dist/types/components/form/input/date-input.d.ts +4 -4
  132. package/dist/types/components/form/input/dropdown-input.d.ts +5 -5
  133. package/dist/types/components/form/input/editable-text.d.ts +2 -2
  134. package/dist/types/components/form/input/email-input.d.ts +4 -4
  135. package/dist/types/components/form/input/index.d.ts +1 -0
  136. package/dist/types/components/form/input/input-container.d.ts +1 -1
  137. package/dist/types/components/form/input/input-options.d.ts +28 -1
  138. package/dist/types/components/form/input/mask-input.d.ts +8 -2
  139. package/dist/types/components/form/input/native-select.d.ts +3 -3
  140. package/dist/types/components/form/input/nullable-date-input.d.ts +2 -2
  141. package/dist/types/components/form/input/nullable-email-input.d.ts +3 -3
  142. package/dist/types/components/form/input/nullable-rating-input.d.ts +8 -8
  143. package/dist/types/components/form/input/nullable-uuid-input.d.ts +4 -4
  144. package/dist/types/components/form/input/number-input.d.ts +3 -3
  145. package/dist/types/components/form/input/otp-input.d.ts +12 -12
  146. package/dist/types/components/form/input/rating-input.d.ts +7 -8
  147. package/dist/types/components/form/input/select-tags-input.d.ts +5 -5
  148. package/dist/types/components/form/input/switch.d.ts +2 -2
  149. package/dist/types/components/form/input/tri-state-checkbox-input.d.ts +82 -0
  150. package/dist/types/components/form/input/uuid-input.d.ts +2 -2
  151. package/dist/types/components/json-structure/controls/uuid-control.d.ts +1 -1
  152. package/dist/types/components/layout/card.d.ts +66 -0
  153. package/dist/types/components/layout/collapse.d.ts +2 -2
  154. package/dist/types/components/layout/flex.d.ts +26 -0
  155. package/dist/types/components/layout/index.d.ts +1 -0
  156. package/dist/types/components/lexical/floating/slash-command-palette.d.ts +2 -2
  157. package/dist/types/components/media/pdf-page-viewer.d.ts +8 -5
  158. package/dist/types/components/misc/index.d.ts +1 -0
  159. package/dist/types/components/misc/loading-overlay.d.ts +29 -0
  160. package/dist/types/components/misc/notice.d.ts +4 -4
  161. package/dist/types/components/misc/notification-provider.d.ts +9 -3
  162. package/dist/types/components/misc/notification.d.ts +9 -9
  163. package/dist/types/components/navigation/breadcrumbs.d.ts +1 -1
  164. package/dist/types/components/navigation/menu.d.ts +6 -6
  165. package/dist/types/components/navigation/pagination.d.ts +17 -4
  166. package/dist/types/components/navigation/sidebar/sidebar-link.d.ts +2 -2
  167. package/dist/types/components/navigation/tabs/tabs.d.ts +17 -8
  168. package/dist/types/components/navigation/toolbar/toolbar.d.ts +12 -6
  169. package/dist/types/components/overlay/announcement-bar.d.ts +12 -4
  170. package/dist/types/components/overlay/dialogs.d.ts +2 -2
  171. package/dist/types/components/overlay/modal.d.ts +9 -2
  172. package/dist/types/components/overlay/tooltip.d.ts +6 -6
  173. package/dist/types/components/theme/types.d.ts +15 -4
  174. package/dist/types/lexical/plugins/slash-commands.d.ts +1 -1
  175. package/dist/types/tokens/z-index.d.ts +18 -18
  176. package/dist/types/utils/use-animated-toggle.d.ts +12 -4
  177. package/dist/{ur-ZJgsSpG2.cjs → ur-CtFl_tz6.cjs} +1 -1
  178. package/dist/{ur-BcuB7IqE.js → ur-yYgj3NmT.js} +87 -11
  179. package/dist/use-animated-toggle-C3asw_Sg.js +207 -0
  180. package/dist/use-animated-toggle-cKcuItmz.cjs +1 -0
  181. package/dist/use-form-CaW192gw.cjs +2 -0
  182. package/dist/{use-form-CfxvyTfd.js → use-form-Dn6v2tEh.js} +153 -152
  183. package/dist/utils-DmEuG3Np.cjs +1 -0
  184. package/dist/utils-vUtP6iPG.js +165 -0
  185. package/dist/{vi-D0rQ3dIx.js → vi-D5u4CLQO.js} +88 -12
  186. package/dist/{vi-BOgLRkuK.cjs → vi-DyCZSpsk.cjs} +1 -1
  187. package/dist/widget-customization-DgW1SXN6.cjs +1 -0
  188. package/dist/{widget-customization-CLZNGavL.js → widget-customization-Dkx7kNSe.js} +413 -398
  189. package/dist/{zh-DoYqiZO1.js → zh-B0kwMMer.js} +90 -14
  190. package/dist/{zh-BTZ8OZ4H.cjs → zh-C3ZxMQKb.cjs} +1 -1
  191. package/package.json +208 -37
  192. package/dist/_commonjsHelpers-DKOUU3wS.cjs +0 -1
  193. package/dist/_commonjsHelpers-DaMA6jEr.js +0 -8
  194. package/dist/auth-divider-BgaQ8ifw.cjs +0 -1
  195. package/dist/colors-BI0YhONJ.cjs +0 -1
  196. package/dist/deep-merge-ChJQbUKq.cjs +0 -1
  197. package/dist/es-C8TpneCm.cjs +0 -1
  198. package/dist/hls.light.min-C6xKDzRR.cjs +0 -27
  199. package/dist/hls.light.min-hEMf_E8u.js +0 -8311
  200. package/dist/index-1JaBwDB-.js +0 -921
  201. package/dist/index-CN10Cyqr.cjs +0 -1
  202. package/dist/index-CTcbhnPw.cjs +0 -4
  203. package/dist/index-DF7RFzD9.cjs +0 -1
  204. package/dist/index-D_zOXmU5.cjs +0 -36
  205. package/dist/index-DfPkCwdC.js +0 -2709
  206. package/dist/index-vowHNIPH.js +0 -14308
  207. package/dist/index-yOU4Ceaq.js +0 -68
  208. package/dist/index-zQ3IYJFH.cjs +0 -1
  209. package/dist/input-container-BWYHj0Iq.cjs +0 -1
  210. package/dist/input-container-DMoVdH6E.js +0 -263
  211. package/dist/menu-De_-sGeb.cjs +0 -1
  212. package/dist/modal-CiGmgsOI.cjs +0 -1
  213. package/dist/notice-CPZQuxcA.cjs +0 -1
  214. package/dist/oneof-branch-detection-BFxukD63.cjs +0 -8
  215. package/dist/oneof-branch-detection-izpPjBCR.js +0 -6290
  216. package/dist/stack-4VUGISn6.cjs +0 -1
  217. package/dist/stack-Bm-UZosx.js +0 -879
  218. package/dist/string-B9vVyfq3.cjs +0 -1
  219. package/dist/string-DYyMxBl-.js +0 -19
  220. package/dist/text-input-BLupB3cU.js +0 -45
  221. package/dist/text-input-M6WBhhVj.cjs +0 -1
  222. package/dist/timer-BJHOsuS6.cjs +0 -1
  223. package/dist/timer-Rd2sKnvH.js +0 -65
  224. package/dist/toolbar-Be1eU0qU.js +0 -118
  225. package/dist/toolbar-WWv5kcYG.cjs +0 -1
  226. package/dist/translations-OOsMRpX9.cjs +0 -1
  227. package/dist/types/components/data/calendar-shared.d.ts +0 -59
  228. package/dist/types/components/data/calendar.d.ts +0 -107
  229. package/dist/types/components/data/icon-badge.d.ts +0 -14
  230. package/dist/types/components/data/range-calendar.d.ts +0 -104
  231. package/dist/types/components/data/tag.d.ts +0 -51
  232. package/dist/use-animated-toggle-C7PTmnZi.js +0 -195
  233. package/dist/use-animated-toggle-DrqK7nUS.cjs +0 -1
  234. package/dist/use-form-ClA0ZRco.cjs +0 -2
  235. package/dist/utils-DEbsp9Q9.js +0 -129
  236. package/dist/utils-DIUEhA-Z.cjs +0 -1
  237. package/dist/widget-customization-DtEEo35Y.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";const a=require("@tempots/dom"),k=require("@tempots/ui"),y=require("./colors-B-p6IzX9.cjs");function w(e,{units:t=["B","KB","MB","GB","TB"],decimalPlaces:o=0,locale:l}={}){if(e===0||e===0n)return new Intl.NumberFormat(l,{style:"unit",unit:"byte",unitDisplay:"short",maximumFractionDigits:0}).format(0).replace("byte",t[0]);let n,r;if(typeof e=="bigint"){let s=e<0n?-e:e;for(n=0;s>=1024n&&n<t.length-1;)s=s/1024n,n++;r=Number(e)/Math.pow(1024,n)}else n=Math.floor(Math.log(Math.abs(e))/Math.log(1024)),n=Math.min(n,t.length-1),r=e/Math.pow(1024,n);return new Intl.NumberFormat(l,{style:"unit",unit:"byte",unitDisplay:"short",minimumFractionDigits:n===0?0:o,maximumFractionDigits:n===0?0:o}).format(r).replace("byte",t[n])}const N={loadingExtended:"Loading, please wait",loadingShort:"Loading...",locale:"Locale",iconDescription:"Icon",loadingIcon:"Loading icon",failedToLoadIcon:"Failed to load icon",editLabel:"Edit",selectOne:"Select one",selectNone:"None",selectMany:"Select many",noResults:"No results",passwordPlaceholderText:"Secret Password",togglePasswordVisibility:"Toggle password visibility",toggleMenu:"Toggle menu",toggleAside:"Toggle aside",mainNavigation:"Main navigation",sidebar:"Sidebar",closeDrawer:"Close drawer",closeModal:"Close modal",confirm:"Confirm",cancel:"Cancel",addLabel:"Add",removeItem:"Remove item",currentLocale:"English",ar:"Arabic",de:"German",en:"English",es:"Spanish",fr:"French",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nl:"Dutch",pl:"Polish",pt:"Portuguese",ru:"Russian",tr:"Turkish",vi:"Vietnamese",zh:"Chinese",he:"Hebrew",fa:"Persian",ur:"Urdu",emailPlaceholderText:"Enter your email",incrementValue:"Increment value",decrementValue:"Decrement value",dropZoneInstructions:e=>e?"Click to choose or drag files here, or press Enter or Space to open file selector":"Drag files here",fileSizeUnits:["Bytes","KB","MB","GB","TB"],removeFile:"Remove file",clearAllFiles:"Clear all files",clearValue:"Reset",unknownType:"Unknown type",filesInputInstructions:(e,t,o)=>{let l=e==null||e>1?"Click to choose or drag files here":"Click to choose or drag a file here";if(e||t){const n=[];if(e!=null&&e>1&&n.push(`up to ${e} files`),t&&o){const r=w(t,{units:o});n.push(`max ${r} each`)}n.length>0&&(l+=` (${n.join(", ")})`)}return l},paginationLabel:"Pagination",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",breadcrumbs:"Breadcrumbs",commandPalette:"Command palette",typeACommand:"Type a command...",noResultsFound:"No results found",noMatchingCommands:"No matching commands",appearanceSystem:"System",appearanceLight:"Light",appearanceDark:"Dark",ok:"OK",changeTypeConfirmation:"Changing type will clear the current value. Continue?",notifications:"Notifications",markAllAsRead:"Mark all as read",noNotifications:"No notifications",schemaConflictsDetected:"Schema Conflicts Detected",schemaViolationsDetected:"Schema Violations Detected",properties:"Properties",uploading:"Uploading...",dropFilesOrBrowse:"Drop files here or click to browse",acceptedTypes:e=>`Accepted types: ${e}`,enterUrlPrompt:"Enter URL:",exceeded:"(exceeded)",pdfPreview:"PDF Preview",lexical:{fontFamily:"Font Family",fontSize:"Font Size",lineHeight:"Line Height",fontColor:"Font Color",highlightColor:"Highlight Color",backgroundColor:"Background Color",bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",code:"Code",clearFormatting:"Clear Formatting",normal:"Normal",heading:e=>`Heading ${e}`,bulletList:"Bullet List",orderedList:"Ordered List",checkList:"Check List",indent:"Indent",outdent:"Outdent",blockquote:"Blockquote",codeBlock:"Code Block",horizontalRule:"Horizontal Rule",insertTable:"Insert Table",link:"Link",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",defaultOption:"Default",slashCommands:"Slash commands",noCommandsFound:"No commands found",changeBlockType:"Change block type",blockTypes:"Block types",enterUrl:"Enter URL:",tableActions:"Table actions",insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",insertColumnLeft:"Insert column left",insertColumnRight:"Insert column right",deleteRow:"Delete row",deleteColumn:"Delete column",deleteTable:"Delete table"},dataTable:{sortAscending:"Sort ascending",sortDescending:"Sort descending",clearSort:"Clear sort",filterPlaceholder:"Filter...",clearFilter:"Clear filter",selectAll:"Select all",deselectAll:"Deselect all",selectedCount:e=>`${e} selected`,resetAll:"Reset all",noResults:"No results found",loading:"Loading...",filterPanelAddCondition:"Add condition",filterPanelApply:"Apply",filterPanelClear:"Clear filters",filterPanelAnd:"AND",filterPanelOr:"OR",filterPanelContains:"Contains",filterPanelNotContains:"Does not contain",filterPanelEquals:"Equals",filterPanelNotEquals:"Does not equal",filterPanelStartsWith:"Starts with",filterPanelEndsWith:"Ends with",filterPanelIsNull:"Is empty",filterPanelIsNotNull:"Is not empty",filterPanelGt:"Greater than",filterPanelGte:"Greater or equal",filterPanelLt:"Less than",filterPanelLte:"Less or equal",filterPanelBetween:"Between",filterPanelValuePlaceholder:"Value...",sortMultiHint:"Hold Shift to sort multiple columns",columnVisibility:"Columns",showAllColumns:"Show all",menuSortAsc:"Sort Ascending",menuSortDesc:"Sort Descending",menuClearSort:"Clear Sort",menuHideColumn:"Hide Column",menuChooseColumns:"Choose Columns",menuResetColumns:"Reset Columns",menuFilter:"Filter",rowCount:(e,t)=>`Rows: ${e} Total Rows: ${t}`,filterTagsPlaceholder:"Select values...",groupCount:e=>`${e} items`,collapseGroup:"Collapse group",expandGroup:"Expand group",describeFilter:{textContains:(e,t)=>`${e} contains "${t}"`,textNotContains:(e,t)=>`${e} does not contain "${t}"`,textEquals:(e,t)=>`${e} equals "${t}"`,textNotEquals:(e,t)=>`${e} does not equal "${t}"`,textStartsWith:(e,t)=>`${e} starts with "${t}"`,textEndsWith:(e,t)=>`${e} ends with "${t}"`,compareEq:(e,t)=>`${e} = ${t}`,compareNeq:(e,t)=>`${e} ≠ ${t}`,compareGt:(e,t)=>`${e} > ${t}`,compareGte:(e,t)=>`${e} ≥ ${t}`,compareLt:(e,t)=>`${e} < ${t}`,compareLte:(e,t)=>`${e} ≤ ${t}`,rangeBetween:(e,t,o)=>`${e} between ${t} and ${o}`,rangeGte:(e,t)=>`${e} ≥ ${t}`,rangeLte:(e,t)=>`${e} ≤ ${t}`,setIn:(e,t)=>`${e} in [${t}]`,setNotIn:(e,t)=>`${e} not in [${t}]`,booleanIs:(e,t)=>`${e} is ${t}`,isNull:e=>`${e} is empty`,isNotNull:e=>`${e} is not empty`,compositeAnd:e=>e.join(" AND "),compositeOr:e=>e.join(" OR ")}},prosemirror:{bold:"Bold",italic:"Italic",code:"Inline code",link:"Insert link",removeLink:"Remove link",heading:e=>`Heading ${e}`,bulletList:"Bullet list",orderedList:"Ordered list",blockquote:"Blockquote",codeBlock:"Code block",horizontalRule:"Horizontal rule",linkUrlPlaceholder:"https://example.com"},pdfPageViewer:{loading:"Loading PDF...",loadFailed:"Failed to load PDF",invalidPdf:"Invalid PDF file",pageOutOfRange:(e,t)=>`Page ${e} is out of range (1-${t})`,renderFailed:"Failed to render PDF page"}},f=N,p="en",R=new Set(["ar","he","fa","ur","ps","sd","ku","dv","yi","ji","iw","in"]);function C(e){if(!e)return"ltr";const t=e.split(/[-_]/)[0].toLowerCase();return R.has(t)?"rtl":"ltr"}function I(e,t){return e==="auto"?C(t):e}function A(e){return`b-${e}`}function T(e){return C(e)==="rtl"}function O(e){return e==="ltr"?"rtl":"ltr"}const $={ltr:{"inline-start":"left","inline-end":"right","block-start":"top","block-end":"bottom"},rtl:{"inline-start":"right","inline-end":"left","block-start":"top","block-end":"bottom"}};function M(e,t){return $[t][e]}const L={mark:a.makeProviderMark("Locale"),create:e=>{const t=a.localStorageProp({defaultValue:navigator.language??"en-US",key:"beatui-locale"}),o=a.localStorageProp({defaultValue:"auto",key:"beatui-direction-preference"}),l=a.computedOf(t,o)((r,i)=>I(i,r));return{value:{locale:t,setLocale:r=>t.set(r),direction:l,directionPreference:o,setDirectionPreference:r=>o.set(r)},dispose:()=>{t.dispose(),o.dispose(),l.dispose()}}}},{variants:V,special:E,overrides:v}=y.backgroundConfig;function d(e,t){switch(e){case"white":return"var(--color-white)";case"black":return"var(--color-black)";case"transparent":return"transparent";default:return y.getColorVar(e,t)}}function x(e,t){const o=E[e];if(!o)return;if(t==="light")return o;const l=v[e];return l?l[t]:o}function U(e,t,o){const l=v[e];if(l){const r=l[o];if(r)return{backgroundColor:r.backgroundColor,textColor:r.color}}if(t==="solid"){const r=x(e,o);if(r)return{backgroundColor:r.backgroundColor,textColor:r.color}}const n=V[t][o];return{backgroundColor:d(e,n.bgShade),textColor:n.textColor}}const G={light:{shade:700,textColor:"var(--color-white)"},dark:{shade:500,textColor:"var(--text-inverted-dark)"}},j={light:{shade:200,textColor:"var(--text-normal-light)"},dark:{shade:700,textColor:"var(--text-normal-dark)"}},H={light:{shade:400,textColor:"var(--text-normal-light)"},dark:{shade:600,textColor:"var(--text-normal-dark)"}};function _(e,t,o){const l=v[e];if(l){const r=l[o];if(r)return{backgroundColor:r.backgroundColor,textColor:r.color}}if(t==="solid"){const r=x(e,o);if(r)return{backgroundColor:r.backgroundColor,textColor:r.color};const i=G[o];return{backgroundColor:d(e,i.shade),textColor:i.textColor}}const n=t==="light"?j[o]:H[o];return{backgroundColor:d(e,n.shade),textColor:n.textColor}}function z(e,t){const o=t==="light"?500:600;switch(e){case"white":return t==="light"?"var(--text-inverse-light)":"var(--text-inverted-dark)";case"black":return"var(--color-black)";case"transparent":return"transparent";default:return d(e,o)}}function W(e,t){return e==="white"?"var(--color-white)":e==="black"?"var(--color-black)":e==="transparent"?"inherit":d(e,t==="light"?800:200)}function P(e,t,o){return t==="soft"?d(e,o==="light"?300:700):d(e,o==="light"?500:600)}const K="bui-icons",g=new Map,b=(()=>{try{return typeof indexedDB<"u"&&indexedDB!==null}catch{return!1}})();function Y(){return b?new Promise((e,t)=>{const o=indexedDB.open(K,1);o.onupgradeneeded=function(l){const n=l.target.result;n.objectStoreNames.contains("icons")||n.createObjectStore("icons")},o.onsuccess=function(){e(o.result)},o.onerror=function(){t(o.error)}}):Promise.reject(new Error("IndexedDB not available"))}const m=b?Y():null;async function D(e,t){try{if(m){const o=await m;return new Promise((l,n)=>{const r=o.transaction("icons","readwrite");r.objectStore("icons").put(t,e),r.oncomplete=()=>l(),r.onerror=n})}else g.set(e,t)}catch{g.set(e,t)}}async function S(e){try{if(m){const t=await m;return new Promise((o,l)=>{const i=t.transaction("icons","readonly").objectStore("icons").get(e);i.onsuccess=function(){o(i.result)},i.onerror=l})}else return g.get(e)||null}catch{return g.get(e)||null}}async function J(e){const t=`https://api.iconify.design/${e}.svg`;return fetch(t).then(o=>{if(o.status===200)return o.text();throw new Error(`Failed to load icon: ${e}`)})}async function Q(e){const t=e.replace(":","/"),o=await S(t);if(o)return o;const l=await J(t);return await D(t,l),l}function Z(e){return["bc-icon",`bc-icon--${e}`].join(" ")}function X(e,t="solid"){if(!e)return"";const o=P(e,t,"light"),l=P(e,t,"dark");return`--icon-color: ${o}; --icon-color-dark: ${l}`}function ee({icon:e,size:t="md",color:o,title:l,accessibility:n="auto",tone:r="solid"},...i){const u=a.computedOf(n,l)((s,c)=>s==="decorative"?!1:s==="informative"?!0:c!=null&&c!=="");return a.Use(F,s=>a.html.span(a.attr.class(a.computedOf(t,o)(c=>Z(c??"md"))),a.attr.style(a.computedOf(o,r)((c,h)=>X(c??void 0,h??"solid"))),a.When(u,()=>a.Fragment(a.attr.role("img"),a.aria.label(a.coalesce(l,s.$.iconDescription))),()=>a.aria.hidden(!0)),k.WhenInViewport({once:!0},()=>k.Query({request:e,load:({request:c})=>Q(c),convertError:String,success:({value:c})=>a.html.span(a.style.width("100%"),a.style.height("100%"),a.attr.innerHTML(c)),pending:()=>a.html.span(a.attr.class("animate-spin"),a.When(u,()=>a.Fragment(a.attr.role("img"),a.aria.label(s.$.loadingIcon)),()=>a.aria.hidden(!0)),"↻"),failure:({error:c})=>a.html.span(a.attr.title(c),a.attr.class("text-red-500"),a.When(u,()=>a.Fragment(a.attr.role("img"),a.aria.label(s.$.failedToLoadIcon)),()=>a.aria.hidden(!0)),"🚫")})),...i))}function te(e){const t=e.split("-"),o=[e];return t.length>1&&o.push(t[0]),o}function B({locale:e,defaultLocale:t="en-US",defaultMessages:o,localeLoader:l}){const n=a.prop(t),r=a.prop(o),i=e.on(async u=>{if(u===n.value)return;n.set(u);const s=te(u);for(const c of s)try{const h=await l(c);if(typeof h.default=="object"&&Object.keys(h).length===1){console.error("It appears that you are trying to load a translation module without referencing the default export. Please use `(await import(...)).default` in your loader function.");return}if(u===n.value){r.set(h);return}}catch{continue}console.warn(`No locale found for "${e.value}", using fallback`),u===n.value&&r.set(o)});return{dispose:()=>{i(),n.dispose(),r.dispose()},t:r}}function q({defaultLocale:e,defaultMessages:t,localeLoader:o,providerName:l="I18nProvider"}){return{mark:a.makeProviderMark(l),create:(n,r)=>{const{value:{locale:i}}=r.getProvider(L.mark),{t:u,dispose:s}=B({locale:i,defaultMessages:t,defaultLocale:e,localeLoader:o});return{value:u,dispose:s}}}}const oe=Object.assign({"./locales/ar.ts":()=>Promise.resolve().then(()=>require("./ar-CuI1Jgt6.cjs")).then(e=>e.default),"./locales/de.ts":()=>Promise.resolve().then(()=>require("./de-DthHehbh.cjs")).then(e=>e.default),"./locales/es.ts":()=>Promise.resolve().then(()=>require("./es-B6GJLk9h.cjs")).then(e=>e.default),"./locales/fa.ts":()=>Promise.resolve().then(()=>require("./fa-BwgP93iV.cjs")).then(e=>e.default),"./locales/fr.ts":()=>Promise.resolve().then(()=>require("./fr-CQzk5zqY.cjs")).then(e=>e.default),"./locales/he.ts":()=>Promise.resolve().then(()=>require("./he-DcxxvRfs.cjs")).then(e=>e.default),"./locales/hi.ts":()=>Promise.resolve().then(()=>require("./hi-D-KHVWg4.cjs")).then(e=>e.default),"./locales/it.ts":()=>Promise.resolve().then(()=>require("./it-D344Dutu.cjs")).then(e=>e.default),"./locales/ja.ts":()=>Promise.resolve().then(()=>require("./ja-BNgnDZ27.cjs")).then(e=>e.default),"./locales/ko.ts":()=>Promise.resolve().then(()=>require("./ko-D-WJ9NK7.cjs")).then(e=>e.default),"./locales/nl.ts":()=>Promise.resolve().then(()=>require("./nl-CrqUlFie.cjs")).then(e=>e.default),"./locales/pl.ts":()=>Promise.resolve().then(()=>require("./pl-9UksIrvX.cjs")).then(e=>e.default),"./locales/pt.ts":()=>Promise.resolve().then(()=>require("./pt-_kfdzwqi.cjs")).then(e=>e.default),"./locales/ru.ts":()=>Promise.resolve().then(()=>require("./ru-CW1WNNlr.cjs")).then(e=>e.default),"./locales/tr.ts":()=>Promise.resolve().then(()=>require("./tr-B6GIRegf.cjs")).then(e=>e.default),"./locales/ur.ts":()=>Promise.resolve().then(()=>require("./ur-CtFl_tz6.cjs")).then(e=>e.default),"./locales/vi.ts":()=>Promise.resolve().then(()=>require("./vi-DyCZSpsk.cjs")).then(e=>e.default),"./locales/zh.ts":()=>Promise.resolve().then(()=>require("./zh-C3ZxMQKb.cjs")).then(e=>e.default)}),F=q({defaultLocale:p,defaultMessages:f,localeLoader:async e=>{if(e===p)return f;const t=oe[`./locales/${e}.ts`];return t?await t():f},providerName:"BeatUII18n"});exports.BeatUII18n=F;exports.Icon=ee;exports.LOGICAL_PROPERTY_MAP=$;exports.Locale=L;exports.backgroundValue=U;exports.borderColorValue=z;exports.defaultLocale=p;exports.defaultMessages=f;exports.formatFileSize=w;exports.getDirectionClassName=A;exports.getDirectionFromLocale=C;exports.getIconLocally=S;exports.getOppositeDirection=O;exports.getPhysicalProperty=M;exports.hoverBackgroundValue=_;exports.isIndexedDBAvailable=b;exports.isRTLLocale=T;exports.makeI18nProvider=q;exports.makeMessages=B;exports.resolveDirection=I;exports.storeIconLocally=D;exports.textColorValue=W;
@@ -138,6 +138,77 @@ export declare const defaultMessages: {
138
138
  deleteColumn: string;
139
139
  deleteTable: string;
140
140
  };
141
+ dataTable: {
142
+ sortAscending: string;
143
+ sortDescending: string;
144
+ clearSort: string;
145
+ filterPlaceholder: string;
146
+ clearFilter: string;
147
+ selectAll: string;
148
+ deselectAll: string;
149
+ selectedCount: (count: number) => string;
150
+ resetAll: string;
151
+ noResults: string;
152
+ loading: string;
153
+ filterPanelAddCondition: string;
154
+ filterPanelApply: string;
155
+ filterPanelClear: string;
156
+ filterPanelAnd: string;
157
+ filterPanelOr: string;
158
+ filterPanelContains: string;
159
+ filterPanelNotContains: string;
160
+ filterPanelEquals: string;
161
+ filterPanelNotEquals: string;
162
+ filterPanelStartsWith: string;
163
+ filterPanelEndsWith: string;
164
+ filterPanelIsNull: string;
165
+ filterPanelIsNotNull: string;
166
+ filterPanelGt: string;
167
+ filterPanelGte: string;
168
+ filterPanelLt: string;
169
+ filterPanelLte: string;
170
+ filterPanelBetween: string;
171
+ filterPanelValuePlaceholder: string;
172
+ sortMultiHint: string;
173
+ columnVisibility: string;
174
+ showAllColumns: string;
175
+ menuSortAsc: string;
176
+ menuSortDesc: string;
177
+ menuClearSort: string;
178
+ menuHideColumn: string;
179
+ menuChooseColumns: string;
180
+ menuResetColumns: string;
181
+ menuFilter: string;
182
+ rowCount: (filtered: number, total: number) => string;
183
+ filterTagsPlaceholder: string;
184
+ groupCount: (count: number) => string;
185
+ collapseGroup: string;
186
+ expandGroup: string;
187
+ describeFilter: {
188
+ textContains: (col: string, val: string) => string;
189
+ textNotContains: (col: string, val: string) => string;
190
+ textEquals: (col: string, val: string) => string;
191
+ textNotEquals: (col: string, val: string) => string;
192
+ textStartsWith: (col: string, val: string) => string;
193
+ textEndsWith: (col: string, val: string) => string;
194
+ compareEq: (col: string, val: string) => string;
195
+ compareNeq: (col: string, val: string) => string;
196
+ compareGt: (col: string, val: string) => string;
197
+ compareGte: (col: string, val: string) => string;
198
+ compareLt: (col: string, val: string) => string;
199
+ compareLte: (col: string, val: string) => string;
200
+ rangeBetween: (col: string, min: string, max: string) => string;
201
+ rangeGte: (col: string, val: string) => string;
202
+ rangeLte: (col: string, val: string) => string;
203
+ setIn: (col: string, vals: string) => string;
204
+ setNotIn: (col: string, vals: string) => string;
205
+ booleanIs: (col: string, val: string) => string;
206
+ isNull: (col: string) => string;
207
+ isNotNull: (col: string) => string;
208
+ compositeAnd: (descriptions: string[]) => string;
209
+ compositeOr: (descriptions: string[]) => string;
210
+ };
211
+ };
141
212
  prosemirror: {
142
213
  bold: string;
143
214
  italic: string;
@@ -124,6 +124,77 @@ declare const en: {
124
124
  deleteColumn: string;
125
125
  deleteTable: string;
126
126
  };
127
+ dataTable: {
128
+ sortAscending: string;
129
+ sortDescending: string;
130
+ clearSort: string;
131
+ filterPlaceholder: string;
132
+ clearFilter: string;
133
+ selectAll: string;
134
+ deselectAll: string;
135
+ selectedCount: (count: number) => string;
136
+ resetAll: string;
137
+ noResults: string;
138
+ loading: string;
139
+ filterPanelAddCondition: string;
140
+ filterPanelApply: string;
141
+ filterPanelClear: string;
142
+ filterPanelAnd: string;
143
+ filterPanelOr: string;
144
+ filterPanelContains: string;
145
+ filterPanelNotContains: string;
146
+ filterPanelEquals: string;
147
+ filterPanelNotEquals: string;
148
+ filterPanelStartsWith: string;
149
+ filterPanelEndsWith: string;
150
+ filterPanelIsNull: string;
151
+ filterPanelIsNotNull: string;
152
+ filterPanelGt: string;
153
+ filterPanelGte: string;
154
+ filterPanelLt: string;
155
+ filterPanelLte: string;
156
+ filterPanelBetween: string;
157
+ filterPanelValuePlaceholder: string;
158
+ sortMultiHint: string;
159
+ columnVisibility: string;
160
+ showAllColumns: string;
161
+ menuSortAsc: string;
162
+ menuSortDesc: string;
163
+ menuClearSort: string;
164
+ menuHideColumn: string;
165
+ menuChooseColumns: string;
166
+ menuResetColumns: string;
167
+ menuFilter: string;
168
+ rowCount: (filtered: number, total: number) => string;
169
+ filterTagsPlaceholder: string;
170
+ groupCount: (count: number) => string;
171
+ collapseGroup: string;
172
+ expandGroup: string;
173
+ describeFilter: {
174
+ textContains: (col: string, val: string) => string;
175
+ textNotContains: (col: string, val: string) => string;
176
+ textEquals: (col: string, val: string) => string;
177
+ textNotEquals: (col: string, val: string) => string;
178
+ textStartsWith: (col: string, val: string) => string;
179
+ textEndsWith: (col: string, val: string) => string;
180
+ compareEq: (col: string, val: string) => string;
181
+ compareNeq: (col: string, val: string) => string;
182
+ compareGt: (col: string, val: string) => string;
183
+ compareGte: (col: string, val: string) => string;
184
+ compareLt: (col: string, val: string) => string;
185
+ compareLte: (col: string, val: string) => string;
186
+ rangeBetween: (col: string, min: string, max: string) => string;
187
+ rangeGte: (col: string, val: string) => string;
188
+ rangeLte: (col: string, val: string) => string;
189
+ setIn: (col: string, vals: string) => string;
190
+ setNotIn: (col: string, vals: string) => string;
191
+ booleanIs: (col: string, val: string) => string;
192
+ isNull: (col: string) => string;
193
+ isNotNull: (col: string) => string;
194
+ compositeAnd: (descriptions: string[]) => string;
195
+ compositeOr: (descriptions: string[]) => string;
196
+ };
197
+ };
127
198
  prosemirror: {
128
199
  bold: string;
129
200
  italic: string;
@@ -148,6 +148,77 @@ export declare const BeatUII18n: import("@tempots/dom").Provider<import("@tempot
148
148
  deleteColumn: string;
149
149
  deleteTable: string;
150
150
  };
151
+ dataTable: {
152
+ sortAscending: string;
153
+ sortDescending: string;
154
+ clearSort: string;
155
+ filterPlaceholder: string;
156
+ clearFilter: string;
157
+ selectAll: string;
158
+ deselectAll: string;
159
+ selectedCount: (count: number) => string;
160
+ resetAll: string;
161
+ noResults: string;
162
+ loading: string;
163
+ filterPanelAddCondition: string;
164
+ filterPanelApply: string;
165
+ filterPanelClear: string;
166
+ filterPanelAnd: string;
167
+ filterPanelOr: string;
168
+ filterPanelContains: string;
169
+ filterPanelNotContains: string;
170
+ filterPanelEquals: string;
171
+ filterPanelNotEquals: string;
172
+ filterPanelStartsWith: string;
173
+ filterPanelEndsWith: string;
174
+ filterPanelIsNull: string;
175
+ filterPanelIsNotNull: string;
176
+ filterPanelGt: string;
177
+ filterPanelGte: string;
178
+ filterPanelLt: string;
179
+ filterPanelLte: string;
180
+ filterPanelBetween: string;
181
+ filterPanelValuePlaceholder: string;
182
+ sortMultiHint: string;
183
+ columnVisibility: string;
184
+ showAllColumns: string;
185
+ menuSortAsc: string;
186
+ menuSortDesc: string;
187
+ menuClearSort: string;
188
+ menuHideColumn: string;
189
+ menuChooseColumns: string;
190
+ menuResetColumns: string;
191
+ menuFilter: string;
192
+ rowCount: (filtered: number, total: number) => string;
193
+ filterTagsPlaceholder: string;
194
+ groupCount: (count: number) => string;
195
+ collapseGroup: string;
196
+ expandGroup: string;
197
+ describeFilter: {
198
+ textContains: (col: string, val: string) => string;
199
+ textNotContains: (col: string, val: string) => string;
200
+ textEquals: (col: string, val: string) => string;
201
+ textNotEquals: (col: string, val: string) => string;
202
+ textStartsWith: (col: string, val: string) => string;
203
+ textEndsWith: (col: string, val: string) => string;
204
+ compareEq: (col: string, val: string) => string;
205
+ compareNeq: (col: string, val: string) => string;
206
+ compareGt: (col: string, val: string) => string;
207
+ compareGte: (col: string, val: string) => string;
208
+ compareLt: (col: string, val: string) => string;
209
+ compareLte: (col: string, val: string) => string;
210
+ rangeBetween: (col: string, min: string, max: string) => string;
211
+ rangeGte: (col: string, val: string) => string;
212
+ rangeLte: (col: string, val: string) => string;
213
+ setIn: (col: string, vals: string) => string;
214
+ setNotIn: (col: string, vals: string) => string;
215
+ booleanIs: (col: string, val: string) => string;
216
+ isNull: (col: string) => string;
217
+ isNotNull: (col: string) => string;
218
+ compositeAnd: (descriptions: string[]) => string;
219
+ compositeOr: (descriptions: string[]) => string;
220
+ };
221
+ };
151
222
  prosemirror: {
152
223
  bold: string;
153
224
  italic: string;
@@ -0,0 +1,21 @@
1
+ import { TNode, Value, Renderable } from '@tempots/dom';
2
+ import type { BundledTheme } from 'shiki';
3
+ export type CodeHighlightOptions = {
4
+ /** The source code to highlight. */
5
+ code: Value<string>;
6
+ /** The language identifier (e.g., 'typescript', 'css', 'json'). */
7
+ language?: Value<string>;
8
+ /** Light-mode Shiki theme. @default 'github-light' */
9
+ lightTheme?: BundledTheme;
10
+ /** Dark-mode Shiki theme. @default 'github-dark' */
11
+ darkTheme?: BundledTheme;
12
+ };
13
+ /**
14
+ * Renders a syntax-highlighted code block using Shiki.
15
+ *
16
+ * Themes are applied using CSS variables so that light/dark mode
17
+ * switching works automatically via the `.dark` class on `<html>`.
18
+ *
19
+ * Styles are injected into `<head>` on first use — no external CSS import needed.
20
+ */
21
+ export declare function CodeHighlight(options: CodeHighlightOptions, ...children: TNode[]): Renderable;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Syntax-highlighted code block component powered by Shiki.
3
+ *
4
+ * Ships as a separate entry point (`@tempots/beatui/codehighlight`) to keep the
5
+ * core bundle small — Shiki grammars and themes are only loaded when this
6
+ * module is imported.
7
+ *
8
+ * ```ts
9
+ * import { CodeHighlight } from '@tempots/beatui/codehighlight'
10
+ * ```
11
+ *
12
+ * @module
13
+ */
14
+ export { CodeHighlight, type CodeHighlightOptions } from './code-highlight';
@@ -9,7 +9,7 @@ export interface ToggleButtonOptions {
9
9
  /** Whether the button is currently pressed/active. */
10
10
  pressed: Value<boolean>;
11
11
  /** Callback invoked when the button is toggled. */
12
- onToggle?: (pressed: boolean) => void;
12
+ onChange?: (pressed: boolean) => void;
13
13
  /** Whether the button is disabled. @default false */
14
14
  disabled?: Value<boolean>;
15
15
  /** Visual style variant. @default 'outline' */
@@ -42,7 +42,7 @@ export interface ToggleButtonOptions {
42
42
  *
43
43
  * const bold = prop(false)
44
44
  * ToggleButton(
45
- * { pressed: bold, onToggle: bold.set, variant: 'outline' },
45
+ * { pressed: bold, onChange: bold.set, variant: 'outline' },
46
46
  * 'B'
47
47
  * )
48
48
  * ```
@@ -52,9 +52,9 @@ export interface ToggleButtonOptions {
52
52
  * // Icon toggle
53
53
  * const starred = prop(false)
54
54
  * ToggleButton(
55
- * { pressed: starred, onToggle: starred.set, color: 'yellow' },
55
+ * { pressed: starred, onChange: starred.set, color: 'yellow' },
56
56
  * Icon({ icon: starred.map(s => s ? 'lucide:star' : 'lucide:star-off') })
57
57
  * )
58
58
  * ```
59
59
  */
60
- export declare function ToggleButton({ pressed, onToggle, disabled, variant, size, color, roundedness, fullWidth, }: ToggleButtonOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
60
+ export declare function ToggleButton({ pressed, onChange, disabled, variant, size, color, roundedness, fullWidth, }: ToggleButtonOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -23,6 +23,8 @@ export interface AvatarOptions {
23
23
  color?: Value<ThemeColorName>;
24
24
  /** Whether to add a border around the avatar. @default false */
25
25
  bordered?: Value<boolean>;
26
+ /** Theme color for the avatar border. Implies bordered when set. */
27
+ borderColor?: Value<ThemeColorName>;
26
28
  }
27
29
  /**
28
30
  * Renders a user avatar with image, initials, or icon fallback.
@@ -59,4 +61,4 @@ export interface AvatarOptions {
59
61
  * Avatar({ icon: 'mdi:account', size: 'xl', bordered: true })
60
62
  * ```
61
63
  */
62
- export declare function Avatar({ src, name, icon, size, variant, color, bordered, }: AvatarOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
64
+ export declare function Avatar({ src, name, icon, size, variant, color, bordered, borderColor, }: AvatarOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -17,35 +17,27 @@ export interface BadgeOptions {
17
17
  circle?: Value<boolean>;
18
18
  /** Whether the badge takes the full width of its container. @default false */
19
19
  fullWidth?: Value<boolean>;
20
- /** Whether to render as a small colored dot indicator (8px by default). @default false */
21
- dot?: Value<boolean>;
20
+ /** Callback when the close button is clicked. Renders a close button when set. */
21
+ onClose?: () => void;
22
+ /** Whether the badge is disabled. @default false */
23
+ disabled?: Value<boolean>;
22
24
  }
23
25
  /**
24
26
  * Generates CSS class names for the badge based on size, roundedness, and shape.
25
- *
26
- * @param size - Control size for padding and text
27
- * @param roundedness - Border radius preset
28
- * @param circle - Whether to force a circular shape
29
- * @param fullWidth - Whether to stretch to full container width
30
- * @param dot - Whether to render as a small dot indicator
31
- * @returns Space-separated CSS class string
32
27
  */
33
- export declare function generateBadgeClasses(size: ControlSize, roundedness: RadiusName, circle: boolean, fullWidth: boolean, dot: boolean): string;
28
+ export declare function generateBadgeClasses(size: ControlSize, roundedness: RadiusName, circle: boolean, fullWidth: boolean, disabled: boolean): string;
34
29
  /**
35
30
  * Generates inline CSS custom properties for badge theming based on variant and color.
36
31
  * Sets background, text, border, and hover colors for both light and dark modes.
37
- *
38
- * @param variant - The visual style variant
39
- * @param color - The theme color
40
- * @returns Semicolon-separated CSS custom property declarations
41
32
  */
42
33
  export declare function generateBadgeStyles(variant: ButtonVariant, color: ExtendedColor): string;
43
34
  /**
44
35
  * A small status indicator or label component with theme-aware colors.
45
36
  * Supports all button variants (filled, light, outline, default, text) and
46
37
  * can be rendered as a pill, circle, or full-width element.
38
+ * Optionally renders a close button for removable badges.
47
39
  *
48
- * @param options - Configuration for variant, size, color, and shape
40
+ * @param options - Configuration for variant, size, color, shape, and close behavior
49
41
  * @param children - Content to display inside the badge (text, number, icon)
50
42
  * @returns A styled span element
51
43
  *
@@ -56,8 +48,8 @@ export declare function generateBadgeStyles(variant: ButtonVariant, color: Exten
56
48
  *
57
49
  * @example
58
50
  * ```typescript
59
- * // Circle badge for notification counts
60
- * Badge({ circle: true, color: 'danger', size: 'xs' }, '9+')
51
+ * // Removable badge
52
+ * Badge({ variant: 'light', color: 'info', onClose: () => remove(item) }, 'TypeScript')
61
53
  * ```
62
54
  */
63
- export declare function Badge({ variant, size, color, roundedness, circle, fullWidth, dot, }: BadgeOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
55
+ export declare function Badge({ variant, size, color, roundedness, circle, fullWidth, onClose, disabled, }: BadgeOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -0,0 +1,31 @@
1
+ import { TNode, Value } from '@tempots/dom';
2
+ import { DataSource } from './data-source';
3
+ import { ColumnValueType } from './data-table-types';
4
+ import { ControlSize } from '../theme';
5
+ /**
6
+ * Options for the {@link ColumnFilterPanel} component.
7
+ *
8
+ * @typeParam T - The type of data rows in the data source
9
+ * @typeParam C - Column identifier type (defaults to `string`)
10
+ */
11
+ export interface ColumnFilterPanelOptions<T, C extends string = string> {
12
+ /** The data source to wire filtering into */
13
+ dataSource: DataSource<T, C>;
14
+ /** Column identifier */
15
+ column: C;
16
+ /** The column value type, determining which operators are available. @default 'text' */
17
+ columnType?: ColumnValueType;
18
+ /** Size variant. @default 'sm' */
19
+ size?: Value<ControlSize>;
20
+ /** When true, render only the panel content without trigger button and flyout wrapper. @default false */
21
+ embedded?: boolean;
22
+ }
23
+ /**
24
+ * A flyout-based per-column filter builder that lets users compose
25
+ * multiple conditions with AND/OR logic.
26
+ *
27
+ * @typeParam T - The type of data rows
28
+ * @param opts - Configuration for the filter panel
29
+ * @returns A trigger button with a flyout filter panel
30
+ */
31
+ export declare function ColumnFilterPanel<T, C extends string = string>(opts: ColumnFilterPanelOptions<T, C>): TNode;
@@ -0,0 +1,110 @@
1
+ import { Value } from '@tempots/dom';
2
+ import { DataSource } from './data-source';
3
+ import { TextOperator } from './filter';
4
+ import { ControlSize } from '../theme';
5
+ /**
6
+ * Base options shared by all {@link ColumnFilter} variants.
7
+ *
8
+ * @typeParam T - The type of data rows in the data source
9
+ * @typeParam C - Column identifier type (defaults to `string`)
10
+ */
11
+ export interface ColumnFilterBase<T, C extends string = string> {
12
+ /** The data source to wire filtering into */
13
+ dataSource: DataSource<T, C>;
14
+ /** Column identifier */
15
+ column: C;
16
+ /** Size variant. @default 'sm' */
17
+ size?: Value<ControlSize>;
18
+ }
19
+ /**
20
+ * Options for a text-input column filter.
21
+ *
22
+ * @typeParam T - The type of data rows in the data source
23
+ */
24
+ export interface TextColumnFilter<T, C extends string = string> extends ColumnFilterBase<T, C> {
25
+ /** Discriminator — omit or set to `'text'` for a debounced text input. */
26
+ type?: 'text';
27
+ /** Placeholder text for the text input. @default 'Filter...' */
28
+ placeholder?: Value<string>;
29
+ /** Filter operator applied when text is non-empty. @default 'contains' */
30
+ operator?: TextOperator;
31
+ /** Debounce delay in milliseconds. @default 300 */
32
+ debounce?: number;
33
+ }
34
+ /**
35
+ * Options for a select-dropdown column filter.
36
+ *
37
+ * @typeParam T - The type of data rows in the data source
38
+ */
39
+ export interface SelectColumnFilter<T, C extends string = string> extends ColumnFilterBase<T, C> {
40
+ /** Discriminator — must be `'select'` for a dropdown filter. */
41
+ type: 'select';
42
+ /** The list of value/label pairs to present in the dropdown. */
43
+ options: {
44
+ value: string;
45
+ label: string;
46
+ }[];
47
+ /**
48
+ * Label for the "show all rows" option at the top of the dropdown.
49
+ * @default 'All'
50
+ */
51
+ allLabel?: string;
52
+ }
53
+ /**
54
+ * Options for a multi-select tags column filter.
55
+ *
56
+ * @typeParam T - The type of data rows in the data source
57
+ */
58
+ export interface TagsColumnFilter<T, C extends string = string> extends ColumnFilterBase<T, C> {
59
+ /** Discriminator — must be `'tags'` for a multi-select tag input filter. */
60
+ type: 'tags';
61
+ /** The list of value/label pairs. */
62
+ options: {
63
+ value: string;
64
+ label: string;
65
+ }[];
66
+ /** Placeholder text. @default 'Select values...' */
67
+ placeholder?: Value<string>;
68
+ }
69
+ /**
70
+ * Options for the {@link ColumnFilter} component.
71
+ *
72
+ * Use the `type` discriminator to select between `'text'` (default),
73
+ * `'select'`, and `'tags'` variants.
74
+ *
75
+ * @typeParam T - The type of data rows in the data source
76
+ * @typeParam C - Column identifier type (defaults to `string`)
77
+ */
78
+ export type ColumnFilterOptions<T, C extends string = string> = TextColumnFilter<T, C> | SelectColumnFilter<T, C> | TagsColumnFilter<T, C>;
79
+ /**
80
+ * A per-column filter input that wires into a {@link DataSource}.
81
+ *
82
+ * Supports two modes:
83
+ * - `'text'` (default): A debounced {@link TextInput} that filters rows by the
84
+ * specified operator. The debounce timer is automatically cleared on disposal.
85
+ * - `'select'`: A {@link NativeSelect} dropdown that filters rows by exact
86
+ * match. An "All" option (customisable via `allLabel`) removes the filter.
87
+ *
88
+ * @typeParam T - The type of data rows
89
+ * @param options - Filter configuration (discriminated by `type`)
90
+ * @returns A reactive filter control wired to the given data source
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * // Text filter (default)
95
+ * ColumnFilter({ dataSource: ds, column: 'name', placeholder: 'Search name...' })
96
+ *
97
+ * // Select filter
98
+ * ColumnFilter({
99
+ * dataSource: ds,
100
+ * column: 'role',
101
+ * type: 'select',
102
+ * options: [
103
+ * { value: 'admin', label: 'Admin' },
104
+ * { value: 'user', label: 'User' },
105
+ * ],
106
+ * allLabel: 'All roles',
107
+ * })
108
+ * ```
109
+ */
110
+ export declare function ColumnFilter<T, C extends string = string>(opts: ColumnFilterOptions<T, C>): import("@tempots/core").Renderable<import("@tempots/dom").DOMContext, typeof import("@tempots/dom").DOM_RENDERABLE_TYPE>;
@@ -0,0 +1,42 @@
1
+ import { Signal, TNode, Value } from '@tempots/dom';
2
+ import { DataSource } from './data-source';
3
+ import { ControlSize } from '../theme';
4
+ /**
5
+ * Options for the {@link ColumnHeaderMenu} component.
6
+ */
7
+ export interface ColumnHeaderMenuOptions<T, C extends string = string> {
8
+ /** The data source for sort state */
9
+ dataSource: DataSource<T, C>;
10
+ /** Column identifier */
11
+ column: C;
12
+ /** Whether this column supports sorting */
13
+ sortable?: boolean;
14
+ /** Whether this column can be hidden */
15
+ hideable?: boolean;
16
+ /** Size variant. @default 'md' */
17
+ size?: Value<ControlSize>;
18
+ /** Callback to hide this column */
19
+ onHideColumn?: () => void;
20
+ /** Columns that can be shown/hidden */
21
+ hideableColumns?: {
22
+ id: string;
23
+ label: string;
24
+ }[];
25
+ /** Currently hidden column IDs (reactive) */
26
+ hiddenColumns?: Signal<Set<string>>;
27
+ /** Toggle a column's visibility */
28
+ onToggleColumn?: (colId: string) => void;
29
+ /** Show all hidden columns */
30
+ onResetColumns?: () => void;
31
+ /** Filter content to embed as a submenu (ColumnFilterPanel, ColumnFilter, etc.) */
32
+ filterContent?: TNode;
33
+ /** Whether this column has an active filter (reactive) */
34
+ hasActiveFilter?: Signal<boolean>;
35
+ /** Callback to clear all filters on this column */
36
+ onClearFilter?: () => void;
37
+ }
38
+ /**
39
+ * A kebab menu (⋮) for a column header providing sort, filter, hide, and column
40
+ * management actions. Uses the existing {@link Menu} component.
41
+ */
42
+ export declare function ColumnHeaderMenu<T, C extends string = string>(opts: ColumnHeaderMenuOptions<T, C>): TNode;