@simplysm/solid 13.0.0-beta.6

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 (745) hide show
  1. package/.cache/typecheck-browser.tsbuildinfo +1 -0
  2. package/.cache/typecheck-tests-browser.tsbuildinfo +1 -0
  3. package/README.md +1652 -0
  4. package/dist/components/data/Pagination.js +110 -0
  5. package/dist/components/data/Pagination.js.map +7 -0
  6. package/dist/components/data/Table.js +34 -0
  7. package/dist/components/data/Table.js.map +7 -0
  8. package/dist/components/data/calendar/Calendar.js +90 -0
  9. package/dist/components/data/calendar/Calendar.js.map +7 -0
  10. package/dist/components/data/kanban/Kanban.js +367 -0
  11. package/dist/components/data/kanban/Kanban.js.map +7 -0
  12. package/dist/components/data/kanban/KanbanContext.js +24 -0
  13. package/dist/components/data/kanban/KanbanContext.js.map +7 -0
  14. package/dist/components/data/list/List.js +133 -0
  15. package/dist/components/data/list/List.js.map +7 -0
  16. package/dist/components/data/list/ListContext.js +8 -0
  17. package/dist/components/data/list/ListContext.js.map +7 -0
  18. package/dist/components/data/list/ListItem.js +101 -0
  19. package/dist/components/data/list/ListItem.js.map +7 -0
  20. package/dist/components/data/list/ListItem.styles.js +43 -0
  21. package/dist/components/data/list/ListItem.styles.js.map +7 -0
  22. package/dist/components/data/permission-table/PermissionTable.js +189 -0
  23. package/dist/components/data/permission-table/PermissionTable.js.map +7 -0
  24. package/dist/components/data/sheet/DataSheet.js +907 -0
  25. package/dist/components/data/sheet/DataSheet.js.map +7 -0
  26. package/dist/components/data/sheet/DataSheet.styles.js +142 -0
  27. package/dist/components/data/sheet/DataSheet.styles.js.map +7 -0
  28. package/dist/components/data/sheet/DataSheetColumn.js +28 -0
  29. package/dist/components/data/sheet/DataSheetColumn.js.map +7 -0
  30. package/dist/components/data/sheet/DataSheetConfigDialog.js +83 -0
  31. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +7 -0
  32. package/dist/components/data/sheet/sheetUtils.js +125 -0
  33. package/dist/components/data/sheet/sheetUtils.js.map +7 -0
  34. package/dist/components/data/sheet/types.js +1 -0
  35. package/dist/components/data/sheet/types.js.map +7 -0
  36. package/dist/components/disclosure/Collapse.js +45 -0
  37. package/dist/components/disclosure/Collapse.js.map +7 -0
  38. package/dist/components/disclosure/Dialog.js +367 -0
  39. package/dist/components/disclosure/Dialog.js.map +7 -0
  40. package/dist/components/disclosure/DialogContext.js +14 -0
  41. package/dist/components/disclosure/DialogContext.js.map +7 -0
  42. package/dist/components/disclosure/DialogInstanceContext.js +10 -0
  43. package/dist/components/disclosure/DialogInstanceContext.js.map +7 -0
  44. package/dist/components/disclosure/DialogProvider.js +88 -0
  45. package/dist/components/disclosure/DialogProvider.js.map +7 -0
  46. package/dist/components/disclosure/Dropdown.js +244 -0
  47. package/dist/components/disclosure/Dropdown.js.map +7 -0
  48. package/dist/components/disclosure/Tabs.js +75 -0
  49. package/dist/components/disclosure/Tabs.js.map +7 -0
  50. package/dist/components/disclosure/dialogZIndex.js +32 -0
  51. package/dist/components/disclosure/dialogZIndex.js.map +7 -0
  52. package/dist/components/display/Alert.js +18 -0
  53. package/dist/components/display/Alert.js.map +7 -0
  54. package/dist/components/display/Barcode.js +39 -0
  55. package/dist/components/display/Barcode.js.map +7 -0
  56. package/dist/components/display/Card.js +21 -0
  57. package/dist/components/display/Card.js.map +7 -0
  58. package/dist/components/display/Echarts.js +33 -0
  59. package/dist/components/display/Echarts.js.map +7 -0
  60. package/dist/components/display/Icon.js +10 -0
  61. package/dist/components/display/Icon.js.map +7 -0
  62. package/dist/components/display/Tag.js +20 -0
  63. package/dist/components/display/Tag.js.map +7 -0
  64. package/dist/components/feedback/Progress.js +37 -0
  65. package/dist/components/feedback/Progress.js.map +7 -0
  66. package/dist/components/feedback/loading/LoadingContainer.js +83 -0
  67. package/dist/components/feedback/loading/LoadingContainer.js.map +7 -0
  68. package/dist/components/feedback/loading/LoadingContext.js +14 -0
  69. package/dist/components/feedback/loading/LoadingContext.js.map +7 -0
  70. package/dist/components/feedback/loading/LoadingProvider.js +47 -0
  71. package/dist/components/feedback/loading/LoadingProvider.js.map +7 -0
  72. package/dist/components/feedback/notification/NotificationBanner.js +61 -0
  73. package/dist/components/feedback/notification/NotificationBanner.js.map +7 -0
  74. package/dist/components/feedback/notification/NotificationBell.js +85 -0
  75. package/dist/components/feedback/notification/NotificationBell.js.map +7 -0
  76. package/dist/components/feedback/notification/NotificationContext.js +14 -0
  77. package/dist/components/feedback/notification/NotificationContext.js.map +7 -0
  78. package/dist/components/feedback/notification/NotificationProvider.js +101 -0
  79. package/dist/components/feedback/notification/NotificationProvider.js.map +7 -0
  80. package/dist/components/feedback/notification/index.js +5 -0
  81. package/dist/components/feedback/notification/index.js.map +7 -0
  82. package/dist/components/feedback/print/Print.js +12 -0
  83. package/dist/components/feedback/print/Print.js.map +7 -0
  84. package/dist/components/feedback/print/PrintInstanceContext.js +10 -0
  85. package/dist/components/feedback/print/PrintInstanceContext.js.map +7 -0
  86. package/dist/components/form-control/Button.js +74 -0
  87. package/dist/components/form-control/Button.js.map +7 -0
  88. package/dist/components/form-control/DropdownTrigger.styles.js +44 -0
  89. package/dist/components/form-control/DropdownTrigger.styles.js.map +7 -0
  90. package/dist/components/form-control/ThemeToggle.js +57 -0
  91. package/dist/components/form-control/ThemeToggle.js.map +7 -0
  92. package/dist/components/form-control/checkbox/Checkbox.js +78 -0
  93. package/dist/components/form-control/checkbox/Checkbox.js.map +7 -0
  94. package/dist/components/form-control/checkbox/Checkbox.styles.js +57 -0
  95. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +7 -0
  96. package/dist/components/form-control/checkbox/CheckboxGroup.js +65 -0
  97. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +7 -0
  98. package/dist/components/form-control/checkbox/Radio.js +78 -0
  99. package/dist/components/form-control/checkbox/Radio.js.map +7 -0
  100. package/dist/components/form-control/checkbox/RadioGroup.js +60 -0
  101. package/dist/components/form-control/checkbox/RadioGroup.js.map +7 -0
  102. package/dist/components/form-control/color-picker/ColorPicker.js +55 -0
  103. package/dist/components/form-control/color-picker/ColorPicker.js.map +7 -0
  104. package/dist/components/form-control/combobox/Combobox.js +214 -0
  105. package/dist/components/form-control/combobox/Combobox.js.map +7 -0
  106. package/dist/components/form-control/combobox/ComboboxContext.js +14 -0
  107. package/dist/components/form-control/combobox/ComboboxContext.js.map +7 -0
  108. package/dist/components/form-control/combobox/ComboboxItem.js +49 -0
  109. package/dist/components/form-control/combobox/ComboboxItem.js.map +7 -0
  110. package/dist/components/form-control/date-range-picker/DateRangePicker.js +136 -0
  111. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +7 -0
  112. package/dist/components/form-control/editor/EditorToolbar.js +290 -0
  113. package/dist/components/form-control/editor/EditorToolbar.js.map +7 -0
  114. package/dist/components/form-control/editor/RichTextEditor.js +114 -0
  115. package/dist/components/form-control/editor/RichTextEditor.js.map +7 -0
  116. package/dist/components/form-control/field/DatePicker.js +167 -0
  117. package/dist/components/form-control/field/DatePicker.js.map +7 -0
  118. package/dist/components/form-control/field/DateTimePicker.js +168 -0
  119. package/dist/components/form-control/field/DateTimePicker.js.map +7 -0
  120. package/dist/components/form-control/field/Field.styles.js +35 -0
  121. package/dist/components/form-control/field/Field.styles.js.map +7 -0
  122. package/dist/components/form-control/field/NumberInput.js +193 -0
  123. package/dist/components/form-control/field/NumberInput.js.map +7 -0
  124. package/dist/components/form-control/field/TextInput.js +178 -0
  125. package/dist/components/form-control/field/TextInput.js.map +7 -0
  126. package/dist/components/form-control/field/Textarea.js +186 -0
  127. package/dist/components/form-control/field/Textarea.js.map +7 -0
  128. package/dist/components/form-control/field/TimePicker.js +138 -0
  129. package/dist/components/form-control/field/TimePicker.js.map +7 -0
  130. package/dist/components/form-control/numpad/Numpad.js +107 -0
  131. package/dist/components/form-control/numpad/Numpad.js.map +7 -0
  132. package/dist/components/form-control/select/Select.js +196 -0
  133. package/dist/components/form-control/select/Select.js.map +7 -0
  134. package/dist/components/form-control/select/SelectContext.js +14 -0
  135. package/dist/components/form-control/select/SelectContext.js.map +7 -0
  136. package/dist/components/form-control/select/SelectItem.js +65 -0
  137. package/dist/components/form-control/select/SelectItem.js.map +7 -0
  138. package/dist/components/form-control/state-preset/StatePreset.js +195 -0
  139. package/dist/components/form-control/state-preset/StatePreset.js.map +7 -0
  140. package/dist/components/layout/FormGroup.js +34 -0
  141. package/dist/components/layout/FormGroup.js.map +7 -0
  142. package/dist/components/layout/FormTable.js +24 -0
  143. package/dist/components/layout/FormTable.js.map +7 -0
  144. package/dist/components/layout/sidebar/Sidebar.js +63 -0
  145. package/dist/components/layout/sidebar/Sidebar.js.map +7 -0
  146. package/dist/components/layout/sidebar/SidebarContainer.js +70 -0
  147. package/dist/components/layout/sidebar/SidebarContainer.js.map +7 -0
  148. package/dist/components/layout/sidebar/SidebarContext.js +20 -0
  149. package/dist/components/layout/sidebar/SidebarContext.js.map +7 -0
  150. package/dist/components/layout/sidebar/SidebarMenu.js +84 -0
  151. package/dist/components/layout/sidebar/SidebarMenu.js.map +7 -0
  152. package/dist/components/layout/sidebar/SidebarUser.js +51 -0
  153. package/dist/components/layout/sidebar/SidebarUser.js.map +7 -0
  154. package/dist/components/layout/topbar/Topbar.js +48 -0
  155. package/dist/components/layout/topbar/Topbar.js.map +7 -0
  156. package/dist/components/layout/topbar/TopbarContainer.js +13 -0
  157. package/dist/components/layout/topbar/TopbarContainer.js.map +7 -0
  158. package/dist/components/layout/topbar/TopbarMenu.js +106 -0
  159. package/dist/components/layout/topbar/TopbarMenu.js.map +7 -0
  160. package/dist/components/layout/topbar/TopbarUser.js +44 -0
  161. package/dist/components/layout/topbar/TopbarUser.js.map +7 -0
  162. package/dist/core-browser/src/extensions/element-ext.d.ts +98 -0
  163. package/dist/core-browser/src/extensions/element-ext.d.ts.map +1 -0
  164. package/dist/core-browser/src/extensions/html-element-ext.d.ts +54 -0
  165. package/dist/core-browser/src/extensions/html-element-ext.d.ts.map +1 -0
  166. package/dist/core-browser/src/index.d.ts +7 -0
  167. package/dist/core-browser/src/index.d.ts.map +1 -0
  168. package/dist/core-browser/src/utils/blob.d.ts +10 -0
  169. package/dist/core-browser/src/utils/blob.d.ts.map +1 -0
  170. package/dist/core-browser/src/utils/download.d.ts +11 -0
  171. package/dist/core-browser/src/utils/download.d.ts.map +1 -0
  172. package/dist/core-common/src/common.types.d.ts +74 -0
  173. package/dist/core-common/src/common.types.d.ts.map +1 -0
  174. package/dist/core-common/src/env.d.ts +6 -0
  175. package/dist/core-common/src/env.d.ts.map +1 -0
  176. package/dist/core-common/src/errors/argument-error.d.ts +25 -0
  177. package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
  178. package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
  179. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
  180. package/dist/core-common/src/errors/sd-error.d.ts +27 -0
  181. package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
  182. package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
  183. package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
  184. package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
  185. package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
  186. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
  187. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
  188. package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
  189. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
  190. package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
  191. package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
  192. package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
  193. package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
  194. package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
  195. package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
  196. package/dist/core-common/src/features/event-emitter.d.ts +66 -0
  197. package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
  198. package/dist/core-common/src/features/serial-queue.d.ts +47 -0
  199. package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
  200. package/dist/core-common/src/index.d.ts +32 -0
  201. package/dist/core-common/src/index.d.ts.map +1 -0
  202. package/dist/core-common/src/types/date-only.d.ts +152 -0
  203. package/dist/core-common/src/types/date-only.d.ts.map +1 -0
  204. package/dist/core-common/src/types/date-time.d.ts +96 -0
  205. package/dist/core-common/src/types/date-time.d.ts.map +1 -0
  206. package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
  207. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
  208. package/dist/core-common/src/types/time.d.ts +68 -0
  209. package/dist/core-common/src/types/time.d.ts.map +1 -0
  210. package/dist/core-common/src/types/uuid.d.ts +35 -0
  211. package/dist/core-common/src/types/uuid.d.ts.map +1 -0
  212. package/dist/core-common/src/utils/bytes.d.ts +51 -0
  213. package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
  214. package/dist/core-common/src/utils/date-format.d.ts +90 -0
  215. package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
  216. package/dist/core-common/src/utils/json.d.ts +34 -0
  217. package/dist/core-common/src/utils/json.d.ts.map +1 -0
  218. package/dist/core-common/src/utils/num.d.ts +60 -0
  219. package/dist/core-common/src/utils/num.d.ts.map +1 -0
  220. package/dist/core-common/src/utils/obj.d.ts +258 -0
  221. package/dist/core-common/src/utils/obj.d.ts.map +1 -0
  222. package/dist/core-common/src/utils/path.d.ts +23 -0
  223. package/dist/core-common/src/utils/path.d.ts.map +1 -0
  224. package/dist/core-common/src/utils/primitive.d.ts +18 -0
  225. package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
  226. package/dist/core-common/src/utils/str.d.ts +103 -0
  227. package/dist/core-common/src/utils/str.d.ts.map +1 -0
  228. package/dist/core-common/src/utils/template-strings.d.ts +84 -0
  229. package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
  230. package/dist/core-common/src/utils/transferable.d.ts +47 -0
  231. package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
  232. package/dist/core-common/src/utils/wait.d.ts +19 -0
  233. package/dist/core-common/src/utils/wait.d.ts.map +1 -0
  234. package/dist/core-common/src/utils/xml.d.ts +36 -0
  235. package/dist/core-common/src/utils/xml.d.ts.map +1 -0
  236. package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
  237. package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
  238. package/dist/directives/ripple.js +106 -0
  239. package/dist/directives/ripple.js.map +7 -0
  240. package/dist/helpers/createAppStructure.js +96 -0
  241. package/dist/helpers/createAppStructure.js.map +7 -0
  242. package/dist/helpers/mergeStyles.js +27 -0
  243. package/dist/helpers/mergeStyles.js.map +7 -0
  244. package/dist/helpers/splitSlots.js +25 -0
  245. package/dist/helpers/splitSlots.js.map +7 -0
  246. package/dist/hooks/createControllableSignal.js +24 -0
  247. package/dist/hooks/createControllableSignal.js.map +7 -0
  248. package/dist/hooks/createIMEHandler.js +50 -0
  249. package/dist/hooks/createIMEHandler.js.map +7 -0
  250. package/dist/hooks/createMountTransition.js +33 -0
  251. package/dist/hooks/createMountTransition.js.map +7 -0
  252. package/dist/hooks/useClipboardValueCopy.js +121 -0
  253. package/dist/hooks/useClipboardValueCopy.js.map +7 -0
  254. package/dist/hooks/usePersisted.js +25 -0
  255. package/dist/hooks/usePersisted.js.map +7 -0
  256. package/dist/hooks/usePrint.js +208 -0
  257. package/dist/hooks/usePrint.js.map +7 -0
  258. package/dist/hooks/useRouterLink.js +24 -0
  259. package/dist/hooks/useRouterLink.js.map +7 -0
  260. package/dist/index.js +94 -0
  261. package/dist/index.js.map +7 -0
  262. package/dist/orm-common/src/db-context.d.ts +669 -0
  263. package/dist/orm-common/src/db-context.d.ts.map +1 -0
  264. package/dist/orm-common/src/errors/db-transaction-error.d.ts +51 -0
  265. package/dist/orm-common/src/errors/db-transaction-error.d.ts.map +1 -0
  266. package/dist/orm-common/src/exec/executable.d.ts +79 -0
  267. package/dist/orm-common/src/exec/executable.d.ts.map +1 -0
  268. package/dist/orm-common/src/exec/queryable.d.ts +708 -0
  269. package/dist/orm-common/src/exec/queryable.d.ts.map +1 -0
  270. package/dist/orm-common/src/exec/search-parser.d.ts +72 -0
  271. package/dist/orm-common/src/exec/search-parser.d.ts.map +1 -0
  272. package/dist/orm-common/src/expr/expr-unit.d.ts +25 -0
  273. package/dist/orm-common/src/expr/expr-unit.d.ts.map +1 -0
  274. package/dist/orm-common/src/expr/expr.d.ts +1369 -0
  275. package/dist/orm-common/src/expr/expr.d.ts.map +1 -0
  276. package/dist/orm-common/src/index.d.ts +32 -0
  277. package/dist/orm-common/src/index.d.ts.map +1 -0
  278. package/dist/orm-common/src/models/system-migration.d.ts +10 -0
  279. package/dist/orm-common/src/models/system-migration.d.ts.map +1 -0
  280. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts +95 -0
  281. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts.map +1 -0
  282. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts +66 -0
  283. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts.map +1 -0
  284. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts +84 -0
  285. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -0
  286. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts +45 -0
  287. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts.map +1 -0
  288. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts +84 -0
  289. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -0
  290. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts +54 -0
  291. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts.map +1 -0
  292. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts +84 -0
  293. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -0
  294. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts +52 -0
  295. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -0
  296. package/dist/orm-common/src/query-builder/query-builder.d.ts +7 -0
  297. package/dist/orm-common/src/query-builder/query-builder.d.ts.map +1 -0
  298. package/dist/orm-common/src/schema/factory/column-builder.d.ts +394 -0
  299. package/dist/orm-common/src/schema/factory/column-builder.d.ts.map +1 -0
  300. package/dist/orm-common/src/schema/factory/index-builder.d.ts +151 -0
  301. package/dist/orm-common/src/schema/factory/index-builder.d.ts.map +1 -0
  302. package/dist/orm-common/src/schema/factory/relation-builder.d.ts +337 -0
  303. package/dist/orm-common/src/schema/factory/relation-builder.d.ts.map +1 -0
  304. package/dist/orm-common/src/schema/procedure-builder.d.ts +202 -0
  305. package/dist/orm-common/src/schema/procedure-builder.d.ts.map +1 -0
  306. package/dist/orm-common/src/schema/table-builder.d.ts +259 -0
  307. package/dist/orm-common/src/schema/table-builder.d.ts.map +1 -0
  308. package/dist/orm-common/src/schema/view-builder.d.ts +183 -0
  309. package/dist/orm-common/src/schema/view-builder.d.ts.map +1 -0
  310. package/dist/orm-common/src/types/column.d.ts +172 -0
  311. package/dist/orm-common/src/types/column.d.ts.map +1 -0
  312. package/dist/orm-common/src/types/db.d.ts +175 -0
  313. package/dist/orm-common/src/types/db.d.ts.map +1 -0
  314. package/dist/orm-common/src/types/expr.d.ts +474 -0
  315. package/dist/orm-common/src/types/expr.d.ts.map +1 -0
  316. package/dist/orm-common/src/types/query-def.d.ts +351 -0
  317. package/dist/orm-common/src/types/query-def.d.ts.map +1 -0
  318. package/dist/orm-common/src/utils/result-parser.d.ts +38 -0
  319. package/dist/orm-common/src/utils/result-parser.d.ts.map +1 -0
  320. package/dist/providers/ConfigContext.js +14 -0
  321. package/dist/providers/ConfigContext.js.map +7 -0
  322. package/dist/providers/InitializeProvider.js +10 -0
  323. package/dist/providers/InitializeProvider.js.map +7 -0
  324. package/dist/providers/ServiceClientContext.js +16 -0
  325. package/dist/providers/ServiceClientContext.js.map +7 -0
  326. package/dist/providers/ServiceClientProvider.js +116 -0
  327. package/dist/providers/ServiceClientProvider.js.map +7 -0
  328. package/dist/providers/ThemeContext.js +48 -0
  329. package/dist/providers/ThemeContext.js.map +7 -0
  330. package/dist/providers/shared-data/SharedDataChangeEvent.js +8 -0
  331. package/dist/providers/shared-data/SharedDataChangeEvent.js.map +7 -0
  332. package/dist/providers/shared-data/SharedDataContext.js +16 -0
  333. package/dist/providers/shared-data/SharedDataContext.js.map +7 -0
  334. package/dist/providers/shared-data/SharedDataProvider.js +115 -0
  335. package/dist/providers/shared-data/SharedDataProvider.js.map +7 -0
  336. package/dist/service-client/src/features/event-client.d.ts +14 -0
  337. package/dist/service-client/src/features/event-client.d.ts.map +1 -0
  338. package/dist/service-client/src/features/file-client.d.ts +13 -0
  339. package/dist/service-client/src/features/file-client.d.ts.map +1 -0
  340. package/dist/service-client/src/features/orm/orm-client-connector.d.ts +10 -0
  341. package/dist/service-client/src/features/orm/orm-client-connector.d.ts.map +1 -0
  342. package/dist/service-client/src/features/orm/orm-client-db-context-executor.d.ts +26 -0
  343. package/dist/service-client/src/features/orm/orm-client-db-context-executor.d.ts.map +1 -0
  344. package/dist/service-client/src/features/orm/orm-connect-config.d.ts +13 -0
  345. package/dist/service-client/src/features/orm/orm-connect-config.d.ts.map +1 -0
  346. package/dist/service-client/src/index.d.ts +12 -0
  347. package/dist/service-client/src/index.d.ts.map +1 -0
  348. package/dist/service-client/src/protocol/client-protocol-wrapper.d.ts +23 -0
  349. package/dist/service-client/src/protocol/client-protocol-wrapper.d.ts.map +1 -0
  350. package/dist/service-client/src/service-client.d.ts +41 -0
  351. package/dist/service-client/src/service-client.d.ts.map +1 -0
  352. package/dist/service-client/src/transport/service-transport.d.ts +24 -0
  353. package/dist/service-client/src/transport/service-transport.d.ts.map +1 -0
  354. package/dist/service-client/src/transport/socket-provider.d.ts +31 -0
  355. package/dist/service-client/src/transport/socket-provider.d.ts.map +1 -0
  356. package/dist/service-client/src/types/connection-config.d.ts +8 -0
  357. package/dist/service-client/src/types/connection-config.d.ts.map +1 -0
  358. package/dist/service-client/src/types/progress.types.d.ts +10 -0
  359. package/dist/service-client/src/types/progress.types.d.ts.map +1 -0
  360. package/dist/service-common/src/index.d.ts +8 -0
  361. package/dist/service-common/src/index.d.ts.map +1 -0
  362. package/dist/service-common/src/protocol/protocol.types.d.ts +100 -0
  363. package/dist/service-common/src/protocol/protocol.types.d.ts.map +1 -0
  364. package/dist/service-common/src/protocol/service-protocol.d.ts +63 -0
  365. package/dist/service-common/src/protocol/service-protocol.d.ts.map +1 -0
  366. package/dist/service-common/src/service-types/auto-update-service.types.d.ts +17 -0
  367. package/dist/service-common/src/service-types/auto-update-service.types.d.ts.map +1 -0
  368. package/dist/service-common/src/service-types/crypto-service.types.d.ts +22 -0
  369. package/dist/service-common/src/service-types/crypto-service.types.d.ts.map +1 -0
  370. package/dist/service-common/src/service-types/orm-service.types.d.ts +30 -0
  371. package/dist/service-common/src/service-types/orm-service.types.d.ts.map +1 -0
  372. package/dist/service-common/src/service-types/smtp-service.types.d.ts +55 -0
  373. package/dist/service-common/src/service-types/smtp-service.types.d.ts.map +1 -0
  374. package/dist/service-common/src/types.d.ts +43 -0
  375. package/dist/service-common/src/types.d.ts.map +1 -0
  376. package/dist/solid/src/components/data/Pagination.d.ts +12 -0
  377. package/dist/solid/src/components/data/Pagination.d.ts.map +1 -0
  378. package/dist/solid/src/components/data/Table.d.ts +6 -0
  379. package/dist/solid/src/components/data/Table.d.ts.map +1 -0
  380. package/dist/solid/src/components/data/calendar/Calendar.d.ts +15 -0
  381. package/dist/solid/src/components/data/calendar/Calendar.d.ts.map +1 -0
  382. package/dist/solid/src/components/data/kanban/Kanban.d.ts +38 -0
  383. package/dist/solid/src/components/data/kanban/Kanban.d.ts.map +1 -0
  384. package/dist/solid/src/components/data/kanban/KanbanContext.d.ts +40 -0
  385. package/dist/solid/src/components/data/kanban/KanbanContext.d.ts.map +1 -0
  386. package/dist/solid/src/components/data/list/List.d.ts +36 -0
  387. package/dist/solid/src/components/data/list/List.d.ts.map +1 -0
  388. package/dist/solid/src/components/data/list/ListContext.d.ts +9 -0
  389. package/dist/solid/src/components/data/list/ListContext.d.ts.map +1 -0
  390. package/dist/solid/src/components/data/list/ListItem.d.ts +88 -0
  391. package/dist/solid/src/components/data/list/ListItem.d.ts.map +1 -0
  392. package/dist/solid/src/components/data/list/ListItem.styles.d.ts +10 -0
  393. package/dist/solid/src/components/data/list/ListItem.styles.d.ts.map +1 -0
  394. package/dist/solid/src/components/data/permission-table/PermissionTable.d.ts +26 -0
  395. package/dist/solid/src/components/data/permission-table/PermissionTable.d.ts.map +1 -0
  396. package/dist/solid/src/components/data/sheet/DataSheet.d.ts +12 -0
  397. package/dist/solid/src/components/data/sheet/DataSheet.d.ts.map +1 -0
  398. package/dist/solid/src/components/data/sheet/DataSheet.styles.d.ts +33 -0
  399. package/dist/solid/src/components/data/sheet/DataSheet.styles.d.ts.map +1 -0
  400. package/dist/solid/src/components/data/sheet/DataSheetColumn.d.ts +5 -0
  401. package/dist/solid/src/components/data/sheet/DataSheetColumn.d.ts.map +1 -0
  402. package/dist/solid/src/components/data/sheet/DataSheetConfigDialog.d.ts +8 -0
  403. package/dist/solid/src/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -0
  404. package/dist/solid/src/components/data/sheet/sheetUtils.d.ts +7 -0
  405. package/dist/solid/src/components/data/sheet/sheetUtils.d.ts.map +1 -0
  406. package/dist/solid/src/components/data/sheet/types.d.ts +113 -0
  407. package/dist/solid/src/components/data/sheet/types.d.ts.map +1 -0
  408. package/dist/solid/src/components/disclosure/Collapse.d.ts +21 -0
  409. package/dist/solid/src/components/disclosure/Collapse.d.ts.map +1 -0
  410. package/dist/solid/src/components/disclosure/Dialog.d.ts +65 -0
  411. package/dist/solid/src/components/disclosure/Dialog.d.ts.map +1 -0
  412. package/dist/solid/src/components/disclosure/DialogContext.d.ts +30 -0
  413. package/dist/solid/src/components/disclosure/DialogContext.d.ts.map +1 -0
  414. package/dist/solid/src/components/disclosure/DialogInstanceContext.d.ts +6 -0
  415. package/dist/solid/src/components/disclosure/DialogInstanceContext.d.ts.map +1 -0
  416. package/dist/solid/src/components/disclosure/DialogProvider.d.ts +19 -0
  417. package/dist/solid/src/components/disclosure/DialogProvider.d.ts.map +1 -0
  418. package/dist/solid/src/components/disclosure/Dropdown.d.ts +65 -0
  419. package/dist/solid/src/components/disclosure/Dropdown.d.ts.map +1 -0
  420. package/dist/solid/src/components/disclosure/Tabs.d.ts +24 -0
  421. package/dist/solid/src/components/disclosure/Tabs.d.ts.map +1 -0
  422. package/dist/solid/src/components/disclosure/dialogZIndex.d.ts +13 -0
  423. package/dist/solid/src/components/disclosure/dialogZIndex.d.ts.map +1 -0
  424. package/dist/solid/src/components/display/Alert.d.ts +8 -0
  425. package/dist/solid/src/components/display/Alert.d.ts.map +1 -0
  426. package/dist/solid/src/components/display/Barcode.d.ts +8 -0
  427. package/dist/solid/src/components/display/Barcode.d.ts.map +1 -0
  428. package/dist/solid/src/components/display/Card.d.ts +6 -0
  429. package/dist/solid/src/components/display/Card.d.ts.map +1 -0
  430. package/dist/solid/src/components/display/Echarts.d.ts +8 -0
  431. package/dist/solid/src/components/display/Echarts.d.ts.map +1 -0
  432. package/dist/solid/src/components/display/Icon.d.ts +8 -0
  433. package/dist/solid/src/components/display/Icon.d.ts.map +1 -0
  434. package/dist/solid/src/components/display/Tag.d.ts +8 -0
  435. package/dist/solid/src/components/display/Tag.d.ts.map +1 -0
  436. package/dist/solid/src/components/feedback/Progress.d.ts +12 -0
  437. package/dist/solid/src/components/feedback/Progress.d.ts.map +1 -0
  438. package/dist/solid/src/components/feedback/loading/LoadingContainer.d.ts +12 -0
  439. package/dist/solid/src/components/feedback/loading/LoadingContainer.d.ts.map +1 -0
  440. package/dist/solid/src/components/feedback/loading/LoadingContext.d.ts +11 -0
  441. package/dist/solid/src/components/feedback/loading/LoadingContext.d.ts.map +1 -0
  442. package/dist/solid/src/components/feedback/loading/LoadingProvider.d.ts +7 -0
  443. package/dist/solid/src/components/feedback/loading/LoadingProvider.d.ts.map +1 -0
  444. package/dist/solid/src/components/feedback/notification/NotificationBanner.d.ts +3 -0
  445. package/dist/solid/src/components/feedback/notification/NotificationBanner.d.ts.map +1 -0
  446. package/dist/solid/src/components/feedback/notification/NotificationBell.d.ts +6 -0
  447. package/dist/solid/src/components/feedback/notification/NotificationBell.d.ts.map +1 -0
  448. package/dist/solid/src/components/feedback/notification/NotificationContext.d.ts +39 -0
  449. package/dist/solid/src/components/feedback/notification/NotificationContext.d.ts.map +1 -0
  450. package/dist/solid/src/components/feedback/notification/NotificationProvider.d.ts +3 -0
  451. package/dist/solid/src/components/feedback/notification/NotificationProvider.d.ts.map +1 -0
  452. package/dist/solid/src/components/feedback/notification/index.d.ts +5 -0
  453. package/dist/solid/src/components/feedback/notification/index.d.ts.map +1 -0
  454. package/dist/solid/src/components/feedback/print/Print.d.ts +9 -0
  455. package/dist/solid/src/components/feedback/print/Print.d.ts.map +1 -0
  456. package/dist/solid/src/components/feedback/print/PrintInstanceContext.d.ts +6 -0
  457. package/dist/solid/src/components/feedback/print/PrintInstanceContext.d.ts.map +1 -0
  458. package/dist/solid/src/components/form-control/Button.d.ts +14 -0
  459. package/dist/solid/src/components/form-control/Button.d.ts.map +1 -0
  460. package/dist/solid/src/components/form-control/DropdownTrigger.styles.d.ts +14 -0
  461. package/dist/solid/src/components/form-control/DropdownTrigger.styles.d.ts.map +1 -0
  462. package/dist/solid/src/components/form-control/ThemeToggle.d.ts +25 -0
  463. package/dist/solid/src/components/form-control/ThemeToggle.d.ts.map +1 -0
  464. package/dist/solid/src/components/form-control/checkbox/Checkbox.d.ts +16 -0
  465. package/dist/solid/src/components/form-control/checkbox/Checkbox.d.ts.map +1 -0
  466. package/dist/solid/src/components/form-control/checkbox/Checkbox.styles.d.ts +12 -0
  467. package/dist/solid/src/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -0
  468. package/dist/solid/src/components/form-control/checkbox/CheckboxGroup.d.ts +27 -0
  469. package/dist/solid/src/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -0
  470. package/dist/solid/src/components/form-control/checkbox/Radio.d.ts +16 -0
  471. package/dist/solid/src/components/form-control/checkbox/Radio.d.ts.map +1 -0
  472. package/dist/solid/src/components/form-control/checkbox/RadioGroup.d.ts +27 -0
  473. package/dist/solid/src/components/form-control/checkbox/RadioGroup.d.ts.map +1 -0
  474. package/dist/solid/src/components/form-control/color-picker/ColorPicker.d.ts +29 -0
  475. package/dist/solid/src/components/form-control/color-picker/ColorPicker.d.ts.map +1 -0
  476. package/dist/solid/src/components/form-control/combobox/Combobox.d.ts +80 -0
  477. package/dist/solid/src/components/form-control/combobox/Combobox.d.ts.map +1 -0
  478. package/dist/solid/src/components/form-control/combobox/ComboboxContext.d.ts +11 -0
  479. package/dist/solid/src/components/form-control/combobox/ComboboxContext.d.ts.map +1 -0
  480. package/dist/solid/src/components/form-control/combobox/ComboboxItem.d.ts +12 -0
  481. package/dist/solid/src/components/form-control/combobox/ComboboxItem.d.ts.map +1 -0
  482. package/dist/solid/src/components/form-control/date-range-picker/DateRangePicker.d.ts +55 -0
  483. package/dist/solid/src/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -0
  484. package/dist/solid/src/components/form-control/editor/EditorToolbar.d.ts +8 -0
  485. package/dist/solid/src/components/form-control/editor/EditorToolbar.d.ts.map +1 -0
  486. package/dist/solid/src/components/form-control/editor/RichTextEditor.d.ts +21 -0
  487. package/dist/solid/src/components/form-control/editor/RichTextEditor.d.ts.map +1 -0
  488. package/dist/solid/src/components/form-control/field/DatePicker.d.ts +61 -0
  489. package/dist/solid/src/components/form-control/field/DatePicker.d.ts.map +1 -0
  490. package/dist/solid/src/components/form-control/field/DateTimePicker.d.ts +58 -0
  491. package/dist/solid/src/components/form-control/field/DateTimePicker.d.ts.map +1 -0
  492. package/dist/solid/src/components/form-control/field/Field.styles.d.ts +13 -0
  493. package/dist/solid/src/components/form-control/field/Field.styles.d.ts.map +1 -0
  494. package/dist/solid/src/components/form-control/field/NumberInput.d.ts +47 -0
  495. package/dist/solid/src/components/form-control/field/NumberInput.d.ts.map +1 -0
  496. package/dist/solid/src/components/form-control/field/TextInput.d.ts +51 -0
  497. package/dist/solid/src/components/form-control/field/TextInput.d.ts.map +1 -0
  498. package/dist/solid/src/components/form-control/field/Textarea.d.ts +42 -0
  499. package/dist/solid/src/components/form-control/field/Textarea.d.ts.map +1 -0
  500. package/dist/solid/src/components/form-control/field/TimePicker.d.ts +46 -0
  501. package/dist/solid/src/components/form-control/field/TimePicker.d.ts.map +1 -0
  502. package/dist/solid/src/components/form-control/numpad/Numpad.d.ts +28 -0
  503. package/dist/solid/src/components/form-control/numpad/Numpad.d.ts.map +1 -0
  504. package/dist/solid/src/components/form-control/select/Select.d.ts +104 -0
  505. package/dist/solid/src/components/form-control/select/Select.d.ts.map +1 -0
  506. package/dist/solid/src/components/form-control/select/SelectContext.d.ts +14 -0
  507. package/dist/solid/src/components/form-control/select/SelectContext.d.ts.map +1 -0
  508. package/dist/solid/src/components/form-control/select/SelectItem.d.ts +33 -0
  509. package/dist/solid/src/components/form-control/select/SelectItem.d.ts.map +1 -0
  510. package/dist/solid/src/components/form-control/state-preset/StatePreset.d.ts +14 -0
  511. package/dist/solid/src/components/form-control/state-preset/StatePreset.d.ts.map +1 -0
  512. package/dist/solid/src/components/layout/FormGroup.d.ts +14 -0
  513. package/dist/solid/src/components/layout/FormGroup.d.ts.map +1 -0
  514. package/dist/solid/src/components/layout/FormTable.d.ts +5 -0
  515. package/dist/solid/src/components/layout/FormTable.d.ts.map +1 -0
  516. package/dist/solid/src/components/layout/sidebar/Sidebar.d.ts +35 -0
  517. package/dist/solid/src/components/layout/sidebar/Sidebar.d.ts.map +1 -0
  518. package/dist/solid/src/components/layout/sidebar/SidebarContainer.d.ts +34 -0
  519. package/dist/solid/src/components/layout/sidebar/SidebarContainer.d.ts.map +1 -0
  520. package/dist/solid/src/components/layout/sidebar/SidebarContext.d.ts +28 -0
  521. package/dist/solid/src/components/layout/sidebar/SidebarContext.d.ts.map +1 -0
  522. package/dist/solid/src/components/layout/sidebar/SidebarMenu.d.ts +41 -0
  523. package/dist/solid/src/components/layout/sidebar/SidebarMenu.d.ts.map +1 -0
  524. package/dist/solid/src/components/layout/sidebar/SidebarUser.d.ts +36 -0
  525. package/dist/solid/src/components/layout/sidebar/SidebarUser.d.ts.map +1 -0
  526. package/dist/solid/src/components/layout/topbar/Topbar.d.ts +35 -0
  527. package/dist/solid/src/components/layout/topbar/Topbar.d.ts.map +1 -0
  528. package/dist/solid/src/components/layout/topbar/TopbarContainer.d.ts +25 -0
  529. package/dist/solid/src/components/layout/topbar/TopbarContainer.d.ts.map +1 -0
  530. package/dist/solid/src/components/layout/topbar/TopbarMenu.d.ts +41 -0
  531. package/dist/solid/src/components/layout/topbar/TopbarMenu.d.ts.map +1 -0
  532. package/dist/solid/src/components/layout/topbar/TopbarUser.d.ts +35 -0
  533. package/dist/solid/src/components/layout/topbar/TopbarUser.d.ts.map +1 -0
  534. package/dist/solid/src/directives/ripple.d.ts +24 -0
  535. package/dist/solid/src/directives/ripple.d.ts.map +1 -0
  536. package/dist/solid/src/helpers/createAppStructure.d.ts +52 -0
  537. package/dist/solid/src/helpers/createAppStructure.d.ts.map +1 -0
  538. package/dist/solid/src/helpers/mergeStyles.d.ts +27 -0
  539. package/dist/solid/src/helpers/mergeStyles.d.ts.map +1 -0
  540. package/dist/solid/src/helpers/splitSlots.d.ts +25 -0
  541. package/dist/solid/src/helpers/splitSlots.d.ts.map +1 -0
  542. package/dist/solid/src/hooks/createControllableSignal.d.ts +40 -0
  543. package/dist/solid/src/hooks/createControllableSignal.d.ts.map +1 -0
  544. package/dist/solid/src/hooks/createIMEHandler.d.ts +20 -0
  545. package/dist/solid/src/hooks/createIMEHandler.d.ts.map +1 -0
  546. package/dist/solid/src/hooks/createMountTransition.d.ts +14 -0
  547. package/dist/solid/src/hooks/createMountTransition.d.ts.map +1 -0
  548. package/dist/solid/src/hooks/useClipboardValueCopy.d.ts +15 -0
  549. package/dist/solid/src/hooks/useClipboardValueCopy.d.ts.map +1 -0
  550. package/dist/solid/src/hooks/usePersisted.d.ts +26 -0
  551. package/dist/solid/src/hooks/usePersisted.d.ts.map +1 -0
  552. package/dist/solid/src/hooks/usePrint.d.ts +11 -0
  553. package/dist/solid/src/hooks/usePrint.d.ts.map +1 -0
  554. package/dist/solid/src/hooks/useRouterLink.d.ts +38 -0
  555. package/dist/solid/src/hooks/useRouterLink.d.ts.map +1 -0
  556. package/dist/solid/src/index.d.ts +85 -0
  557. package/dist/solid/src/index.d.ts.map +1 -0
  558. package/dist/solid/src/providers/ConfigContext.d.ts +48 -0
  559. package/dist/solid/src/providers/ConfigContext.d.ts.map +1 -0
  560. package/dist/solid/src/providers/InitializeProvider.d.ts +23 -0
  561. package/dist/solid/src/providers/InitializeProvider.d.ts.map +1 -0
  562. package/dist/solid/src/providers/ServiceClientContext.d.ts +10 -0
  563. package/dist/solid/src/providers/ServiceClientContext.d.ts.map +1 -0
  564. package/dist/solid/src/providers/ServiceClientProvider.d.ts +3 -0
  565. package/dist/solid/src/providers/ServiceClientProvider.d.ts.map +1 -0
  566. package/dist/solid/src/providers/ThemeContext.d.ts +65 -0
  567. package/dist/solid/src/providers/ThemeContext.d.ts.map +1 -0
  568. package/dist/solid/src/providers/shared-data/SharedDataChangeEvent.d.ts +8 -0
  569. package/dist/solid/src/providers/shared-data/SharedDataChangeEvent.d.ts.map +1 -0
  570. package/dist/solid/src/providers/shared-data/SharedDataContext.d.ts +22 -0
  571. package/dist/solid/src/providers/shared-data/SharedDataContext.d.ts.map +1 -0
  572. package/dist/solid/src/providers/shared-data/SharedDataProvider.d.ts +9 -0
  573. package/dist/solid/src/providers/shared-data/SharedDataProvider.d.ts.map +1 -0
  574. package/dist/solid/src/styles/patterns.styles.d.ts +6 -0
  575. package/dist/solid/src/styles/patterns.styles.d.ts.map +1 -0
  576. package/dist/solid/src/styles/tokens.styles.d.ts +20 -0
  577. package/dist/solid/src/styles/tokens.styles.d.ts.map +1 -0
  578. package/dist/styles/patterns.styles.js +30 -0
  579. package/dist/styles/patterns.styles.js.map +7 -0
  580. package/dist/styles/tokens.styles.js +72 -0
  581. package/dist/styles/tokens.styles.js.map +7 -0
  582. package/package.json +56 -0
  583. package/src/base.css +78 -0
  584. package/src/components/data/Pagination.tsx +112 -0
  585. package/src/components/data/Table.tsx +43 -0
  586. package/src/components/data/calendar/Calendar.tsx +139 -0
  587. package/src/components/data/kanban/Kanban.css +10 -0
  588. package/src/components/data/kanban/Kanban.tsx +547 -0
  589. package/src/components/data/kanban/KanbanContext.ts +71 -0
  590. package/src/components/data/list/List.tsx +184 -0
  591. package/src/components/data/list/ListContext.ts +12 -0
  592. package/src/components/data/list/ListItem.styles.ts +49 -0
  593. package/src/components/data/list/ListItem.tsx +222 -0
  594. package/src/components/data/permission-table/PermissionTable.tsx +291 -0
  595. package/src/components/data/sheet/DataSheet.css +26 -0
  596. package/src/components/data/sheet/DataSheet.styles.ts +161 -0
  597. package/src/components/data/sheet/DataSheet.tsx +1198 -0
  598. package/src/components/data/sheet/DataSheetColumn.tsx +29 -0
  599. package/src/components/data/sheet/DataSheetConfigDialog.tsx +146 -0
  600. package/src/components/data/sheet/sheetUtils.ts +156 -0
  601. package/src/components/data/sheet/types.ts +143 -0
  602. package/src/components/disclosure/Collapse.tsx +72 -0
  603. package/src/components/disclosure/Dialog.tsx +520 -0
  604. package/src/components/disclosure/DialogContext.ts +39 -0
  605. package/src/components/disclosure/DialogInstanceContext.ts +11 -0
  606. package/src/components/disclosure/DialogProvider.tsx +133 -0
  607. package/src/components/disclosure/Dropdown.tsx +406 -0
  608. package/src/components/disclosure/Tabs.tsx +127 -0
  609. package/src/components/disclosure/dialogZIndex.ts +43 -0
  610. package/src/components/display/Alert.tsx +32 -0
  611. package/src/components/display/Barcode.tsx +158 -0
  612. package/src/components/display/Card.css +14 -0
  613. package/src/components/display/Card.tsx +26 -0
  614. package/src/components/display/Echarts.tsx +45 -0
  615. package/src/components/display/Icon.tsx +13 -0
  616. package/src/components/display/Tag.tsx +31 -0
  617. package/src/components/feedback/Progress.tsx +61 -0
  618. package/src/components/feedback/loading/LoadingContainer.css +19 -0
  619. package/src/components/feedback/loading/LoadingContainer.tsx +132 -0
  620. package/src/components/feedback/loading/LoadingContext.ts +20 -0
  621. package/src/components/feedback/loading/LoadingProvider.tsx +58 -0
  622. package/src/components/feedback/notification/NotificationBanner.tsx +83 -0
  623. package/src/components/feedback/notification/NotificationBell.tsx +132 -0
  624. package/src/components/feedback/notification/NotificationContext.ts +65 -0
  625. package/src/components/feedback/notification/NotificationProvider.tsx +143 -0
  626. package/src/components/feedback/notification/index.ts +4 -0
  627. package/src/components/feedback/print/Print.tsx +21 -0
  628. package/src/components/feedback/print/PrintInstanceContext.ts +11 -0
  629. package/src/components/form-control/Button.tsx +90 -0
  630. package/src/components/form-control/DropdownTrigger.styles.ts +47 -0
  631. package/src/components/form-control/ThemeToggle.tsx +96 -0
  632. package/src/components/form-control/checkbox/Checkbox.styles.ts +66 -0
  633. package/src/components/form-control/checkbox/Checkbox.tsx +106 -0
  634. package/src/components/form-control/checkbox/CheckboxGroup.tsx +116 -0
  635. package/src/components/form-control/checkbox/Radio.tsx +107 -0
  636. package/src/components/form-control/checkbox/RadioGroup.tsx +111 -0
  637. package/src/components/form-control/color-picker/ColorPicker.tsx +96 -0
  638. package/src/components/form-control/combobox/Combobox.tsx +390 -0
  639. package/src/components/form-control/combobox/ComboboxContext.ts +22 -0
  640. package/src/components/form-control/combobox/ComboboxItem.tsx +69 -0
  641. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +215 -0
  642. package/src/components/form-control/editor/EditorToolbar.tsx +348 -0
  643. package/src/components/form-control/editor/RichTextEditor.tsx +173 -0
  644. package/src/components/form-control/editor/editor.css +81 -0
  645. package/src/components/form-control/field/DatePicker.tsx +268 -0
  646. package/src/components/form-control/field/DateTimePicker.tsx +260 -0
  647. package/src/components/form-control/field/Field.styles.ts +42 -0
  648. package/src/components/form-control/field/NumberInput.tsx +328 -0
  649. package/src/components/form-control/field/TextInput.tsx +287 -0
  650. package/src/components/form-control/field/Textarea.tsx +262 -0
  651. package/src/components/form-control/field/TimePicker.tsx +215 -0
  652. package/src/components/form-control/numpad/Numpad.tsx +218 -0
  653. package/src/components/form-control/select/Select.tsx +404 -0
  654. package/src/components/form-control/select/SelectContext.ts +25 -0
  655. package/src/components/form-control/select/SelectItem.tsx +124 -0
  656. package/src/components/form-control/state-preset/StatePreset.tsx +277 -0
  657. package/src/components/layout/FormGroup.tsx +63 -0
  658. package/src/components/layout/FormTable.tsx +29 -0
  659. package/src/components/layout/sidebar/Sidebar.tsx +104 -0
  660. package/src/components/layout/sidebar/SidebarContainer.tsx +115 -0
  661. package/src/components/layout/sidebar/SidebarContext.ts +40 -0
  662. package/src/components/layout/sidebar/SidebarMenu.tsx +181 -0
  663. package/src/components/layout/sidebar/SidebarUser.tsx +107 -0
  664. package/src/components/layout/topbar/Topbar.tsx +93 -0
  665. package/src/components/layout/topbar/TopbarContainer.tsx +40 -0
  666. package/src/components/layout/topbar/TopbarMenu.tsx +206 -0
  667. package/src/components/layout/topbar/TopbarUser.tsx +96 -0
  668. package/src/directives/ripple.ts +151 -0
  669. package/src/helpers/createAppStructure.ts +183 -0
  670. package/src/helpers/mergeStyles.ts +55 -0
  671. package/src/helpers/splitSlots.ts +48 -0
  672. package/src/hooks/createControllableSignal.ts +63 -0
  673. package/src/hooks/createIMEHandler.ts +65 -0
  674. package/src/hooks/createMountTransition.ts +45 -0
  675. package/src/hooks/useClipboardValueCopy.ts +177 -0
  676. package/src/hooks/usePersisted.ts +51 -0
  677. package/src/hooks/usePrint.ts +277 -0
  678. package/src/hooks/useRouterLink.ts +64 -0
  679. package/src/index.ts +117 -0
  680. package/src/providers/ConfigContext.ts +59 -0
  681. package/src/providers/InitializeProvider.tsx +28 -0
  682. package/src/providers/ServiceClientContext.ts +21 -0
  683. package/src/providers/ServiceClientProvider.tsx +132 -0
  684. package/src/providers/ThemeContext.tsx +121 -0
  685. package/src/providers/shared-data/SharedDataChangeEvent.ts +8 -0
  686. package/src/providers/shared-data/SharedDataContext.ts +34 -0
  687. package/src/providers/shared-data/SharedDataProvider.tsx +149 -0
  688. package/src/styles/patterns.styles.ts +32 -0
  689. package/src/styles/tokens.styles.ts +83 -0
  690. package/tailwind.config.ts +50 -0
  691. package/tests/components/data/List.spec.tsx +683 -0
  692. package/tests/components/data/Pagination.spec.tsx +317 -0
  693. package/tests/components/data/Table.spec.tsx +55 -0
  694. package/tests/components/data/kanban/Kanban.selection.spec.tsx +209 -0
  695. package/tests/components/data/permission-table/PermissionTable.spec.tsx +280 -0
  696. package/tests/components/data/sheet/DataSheet.spec.tsx +564 -0
  697. package/tests/components/disclosure/Collapse.spec.tsx +162 -0
  698. package/tests/components/disclosure/Dialog.spec.tsx +319 -0
  699. package/tests/components/disclosure/DialogProvider.spec.tsx +110 -0
  700. package/tests/components/disclosure/Dropdown.spec.tsx +410 -0
  701. package/tests/components/disclosure/Tabs.spec.tsx +220 -0
  702. package/tests/components/display/Alert.spec.tsx +47 -0
  703. package/tests/components/display/Barcode.spec.tsx +61 -0
  704. package/tests/components/display/Card.spec.tsx +41 -0
  705. package/tests/components/display/Tag.spec.tsx +47 -0
  706. package/tests/components/feedback/notification/LiveRegion.spec.tsx +41 -0
  707. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +164 -0
  708. package/tests/components/feedback/notification/NotificationBell.spec.tsx +207 -0
  709. package/tests/components/feedback/notification/NotificationContext.spec.tsx +331 -0
  710. package/tests/components/feedback/print/Print.spec.tsx +45 -0
  711. package/tests/components/form-control/Button.spec.tsx +119 -0
  712. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +120 -0
  713. package/tests/components/form-control/checkbox/Radio.spec.tsx +112 -0
  714. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +67 -0
  715. package/tests/components/form-control/combobox/Combobox.spec.tsx +174 -0
  716. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +85 -0
  717. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +172 -0
  718. package/tests/components/form-control/field/DatePicker.spec.tsx +305 -0
  719. package/tests/components/form-control/field/DateTimePicker.spec.tsx +287 -0
  720. package/tests/components/form-control/field/NumberInput.spec.tsx +276 -0
  721. package/tests/components/form-control/field/TextInput.spec.tsx +258 -0
  722. package/tests/components/form-control/field/Textarea.spec.tsx +181 -0
  723. package/tests/components/form-control/field/TimePicker.spec.tsx +243 -0
  724. package/tests/components/form-control/numpad/Numpad.spec.tsx +238 -0
  725. package/tests/components/form-control/select/Select.spec.tsx +239 -0
  726. package/tests/components/form-control/select/SelectItem.spec.tsx +149 -0
  727. package/tests/components/layout/FormGroup.spec.tsx +104 -0
  728. package/tests/components/layout/FormTable.spec.tsx +43 -0
  729. package/tests/components/layout/sidebar/Sidebar.spec.tsx +190 -0
  730. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +203 -0
  731. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +213 -0
  732. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +171 -0
  733. package/tests/directives/ripple.spec.tsx +130 -0
  734. package/tests/helpers/createAppStructure.spec.tsx +338 -0
  735. package/tests/helpers/mergeStyles.spec.ts +163 -0
  736. package/tests/helpers/splitSlots.spec.tsx +188 -0
  737. package/tests/hooks/createControllableSignal.spec.ts +194 -0
  738. package/tests/hooks/createIMEHandler.spec.ts +80 -0
  739. package/tests/hooks/createMountTransition.spec.ts +86 -0
  740. package/tests/hooks/usePersisted.spec.tsx +191 -0
  741. package/tests/hooks/usePrint.spec.tsx +123 -0
  742. package/tests/hooks/useRouterLink.spec.tsx +183 -0
  743. package/tests/providers/ConfigContext.spec.ts +40 -0
  744. package/tests/providers/ServiceClientContext.spec.tsx +83 -0
  745. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +233 -0
@@ -0,0 +1,1369 @@
1
+ import { type DateOnly, type DateTime, type Time } from "@simplysm/core-common";
2
+ import { type ColumnPrimitive, type ColumnPrimitiveMap, type ColumnPrimitiveStr, type DataType, type InferColumnPrimitiveFromDataType } from "../types/column";
3
+ import type { ExprInput } from "./expr-unit";
4
+ import { ExprUnit, WhereExprUnit } from "./expr-unit";
5
+ import type { Expr, DateSeparator } from "../types/expr";
6
+ import type { SelectQueryDef } from "../types/query-def";
7
+ import type { Queryable } from "../exec/queryable";
8
+ interface WinSpecInput {
9
+ partitionBy?: ExprInput<ColumnPrimitive>[];
10
+ orderBy?: [ExprInput<ColumnPrimitive>, ("ASC" | "DESC")?][];
11
+ }
12
+ /**
13
+ * Switch 표현식 빌더 인터페이스
14
+ */
15
+ export interface SwitchExprBuilder<T extends ColumnPrimitive> {
16
+ case(condition: WhereExprUnit, then: ExprInput<T>): SwitchExprBuilder<T>;
17
+ default(value: ExprInput<T>): ExprUnit<T>;
18
+ }
19
+ /**
20
+ * Dialect 독립적인 SQL 표현식 빌더
21
+ *
22
+ * SQL 문자열이 아닌 JSON AST(Expr)를 생성하여, QueryBuilder가
23
+ * 각 DBMS(MySQL, MSSQL, PostgreSQL)에 맞게 변환
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // WHERE 조건
28
+ * db.user().where((u) => [
29
+ * expr.eq(u.status, "active"),
30
+ * expr.gt(u.age, 18),
31
+ * ])
32
+ *
33
+ * // SELECT 표현식
34
+ * db.user().select((u) => ({
35
+ * name: expr.concat(u.firstName, " ", u.lastName),
36
+ * age: expr.dateDiff("year", u.birthDate, expr.val("DateOnly", DateOnly.today())),
37
+ * }))
38
+ *
39
+ * // 집계 함수
40
+ * db.order().groupBy((o) => o.userId).select((o) => ({
41
+ * userId: o.userId,
42
+ * total: expr.sum(o.amount),
43
+ * }))
44
+ * ```
45
+ *
46
+ * @see {@link Queryable} 쿼리 빌더 클래스
47
+ * @see {@link ExprUnit} 표현식 래퍼 클래스
48
+ */
49
+ export declare const expr: {
50
+ /**
51
+ * 리터럴 값을 ExprUnit으로 래핑
52
+ *
53
+ * dataType에 맞는 base 타입으로 widening하여 리터럴 타입 제거
54
+ *
55
+ * @param dataType - 값의 데이터 타입 ("string", "number", "boolean", "DateTime", "DateOnly", "Time", "Uuid", "Buffer")
56
+ * @param value - 래핑할 값 (undefined 허용)
57
+ * @returns 래핑된 ExprUnit 인스턴스
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * // 문자열 값
62
+ * expr.val("string", "active")
63
+ *
64
+ * // 숫자 값
65
+ * expr.val("number", 100)
66
+ *
67
+ * // 날짜 값
68
+ * expr.val("DateOnly", DateOnly.today())
69
+ *
70
+ * // undefined 값
71
+ * expr.val("string", undefined)
72
+ * ```
73
+ */
74
+ val<TStr extends ColumnPrimitiveStr, T extends ColumnPrimitiveMap[TStr] | undefined>(dataType: TStr, value: T): ExprUnit<T extends undefined ? ColumnPrimitiveMap[TStr] | undefined : ColumnPrimitiveMap[TStr]>;
75
+ /**
76
+ * 컬럼 참조를 생성
77
+ *
78
+ * 일반적으로 Queryable 콜백 내 프록시 객체를 사용하므로 직접 호출할 일이 적음
79
+ *
80
+ * @param dataType - 컬럼의 데이터 타입
81
+ * @param path - 컬럼 경로 (테이블 alias, 컬럼명 등)
82
+ * @returns 컬럼 참조 ExprUnit 인스턴스
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * // 직접 컬럼 참조 (내부용)
87
+ * expr.col("string", "T1", "name")
88
+ * ```
89
+ */
90
+ col<TStr extends ColumnPrimitiveStr>(dataType: ColumnPrimitiveStr, ...path: string[]): ExprUnit<ColumnPrimitiveMap[TStr] | undefined>;
91
+ /**
92
+ * Raw SQL 표현식 생성 (escape hatch)
93
+ *
94
+ * ORM에서 지원하지 않는 DB별 함수나 문법을 직접 사용할 때 사용.
95
+ * 태그 템플릿 리터럴 형식으로 사용하며, 보간된 값은 자동으로 파라미터화됨
96
+ *
97
+ * @param dataType - 반환될 값의 데이터 타입
98
+ * @returns 태그 템플릿 함수
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * // MySQL JSON 함수 사용
103
+ * db.user().select((u) => ({
104
+ * name: u.name,
105
+ * data: expr.raw("string")`JSON_EXTRACT(${u.metadata}, '$.email')`,
106
+ * }))
107
+ *
108
+ * // PostgreSQL 배열 함수
109
+ * expr.raw("number")`ARRAY_LENGTH(${u.tags}, 1)`
110
+ * ```
111
+ */
112
+ raw<T extends ColumnPrimitiveStr>(dataType: T): (strings: TemplateStringsArray, ...values: ExprInput<ColumnPrimitive>[]) => ExprUnit<ColumnPrimitiveMap[T] | undefined>;
113
+ /**
114
+ * 동등 비교 (NULL-safe)
115
+ *
116
+ * NULL 값도 안전하게 비교 (MySQL: `<=>`, MSSQL/PostgreSQL: `IS NULL OR =`)
117
+ *
118
+ * @param source - 비교할 컬럼 또는 표현식
119
+ * @param target - 비교 대상 값 또는 표현식
120
+ * @returns WHERE 조건 표현식
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * db.user().where((u) => [expr.eq(u.status, "active")])
125
+ * // WHERE status <=> 'active' (MySQL)
126
+ * ```
127
+ */
128
+ eq<T extends ColumnPrimitive>(source: ExprUnit<T>, target: ExprInput<T>): WhereExprUnit;
129
+ /**
130
+ * 초과 비교 (>)
131
+ *
132
+ * @param source - 비교할 컬럼 또는 표현식
133
+ * @param target - 비교 대상 값 또는 표현식
134
+ * @returns WHERE 조건 표현식
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * db.user().where((u) => [expr.gt(u.age, 18)])
139
+ * // WHERE age > 18
140
+ * ```
141
+ */
142
+ gt<T extends ColumnPrimitive>(source: ExprUnit<T>, target: ExprInput<T>): WhereExprUnit;
143
+ /**
144
+ * 미만 비교 (<)
145
+ *
146
+ * @param source - 비교할 컬럼 또는 표현식
147
+ * @param target - 비교 대상 값 또는 표현식
148
+ * @returns WHERE 조건 표현식
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * db.user().where((u) => [expr.lt(u.score, 60)])
153
+ * // WHERE score < 60
154
+ * ```
155
+ */
156
+ lt<T extends ColumnPrimitive>(source: ExprUnit<T>, target: ExprInput<T>): WhereExprUnit;
157
+ /**
158
+ * 이상 비교 (>=)
159
+ *
160
+ * @param source - 비교할 컬럼 또는 표현식
161
+ * @param target - 비교 대상 값 또는 표현식
162
+ * @returns WHERE 조건 표현식
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * db.user().where((u) => [expr.gte(u.age, 18)])
167
+ * // WHERE age >= 18
168
+ * ```
169
+ */
170
+ gte<T extends ColumnPrimitive>(source: ExprUnit<T>, target: ExprInput<T>): WhereExprUnit;
171
+ /**
172
+ * 이하 비교 (<=)
173
+ *
174
+ * @param source - 비교할 컬럼 또는 표현식
175
+ * @param target - 비교 대상 값 또는 표현식
176
+ * @returns WHERE 조건 표현식
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * db.user().where((u) => [expr.lte(u.score, 100)])
181
+ * // WHERE score <= 100
182
+ * ```
183
+ */
184
+ lte<T extends ColumnPrimitive>(source: ExprUnit<T>, target: ExprInput<T>): WhereExprUnit;
185
+ /**
186
+ * 범위 비교 (BETWEEN)
187
+ *
188
+ * from/to가 undefined이면 해당 방향은 무제한
189
+ *
190
+ * @param source - 비교할 컬럼 또는 표현식
191
+ * @param from - 시작 값 (undefined이면 하한 없음)
192
+ * @param to - 끝 값 (undefined이면 상한 없음)
193
+ * @returns WHERE 조건 표현식
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * // 범위 지정
198
+ * db.user().where((u) => [expr.between(u.age, 18, 65)])
199
+ * // WHERE age BETWEEN 18 AND 65
200
+ *
201
+ * // 하한만 지정
202
+ * db.user().where((u) => [expr.between(u.age, 18, undefined)])
203
+ * // WHERE age >= 18
204
+ * ```
205
+ */
206
+ between<T extends ColumnPrimitive>(source: ExprUnit<T>, from?: ExprInput<T>, to?: ExprInput<T>): WhereExprUnit;
207
+ /**
208
+ * NULL 체크 (IS NULL)
209
+ *
210
+ * @param source - 체크할 컬럼 또는 표현식
211
+ * @returns WHERE 조건 표현식
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * db.user().where((u) => [expr.null(u.deletedAt)])
216
+ * // WHERE deletedAt IS NULL
217
+ * ```
218
+ */
219
+ null<T extends ColumnPrimitive>(source: ExprUnit<T>): WhereExprUnit;
220
+ /**
221
+ * LIKE 패턴 매칭
222
+ *
223
+ * `%`는 0개 이상의 문자, `_`는 단일 문자와 매칭.
224
+ * 특수문자는 `\`로 이스케이프됨
225
+ *
226
+ * @param source - 검색할 컬럼 또는 표현식
227
+ * @param pattern - 검색 패턴 (%, _ 와일드카드 사용 가능)
228
+ * @returns WHERE 조건 표현식
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * // 접두사 검색
233
+ * db.user().where((u) => [expr.like(u.name, "John%")])
234
+ * // WHERE name LIKE 'John%' ESCAPE '\'
235
+ *
236
+ * // 포함 검색
237
+ * db.user().where((u) => [expr.like(u.email, "%@gmail.com")])
238
+ * ```
239
+ */
240
+ like(source: ExprUnit<string | undefined>, pattern: ExprInput<string | undefined>): WhereExprUnit;
241
+ /**
242
+ * 정규식 패턴 매칭
243
+ *
244
+ * DBMS별 정규식 문법 차이 주의 필요
245
+ *
246
+ * @param source - 검색할 컬럼 또는 표현식
247
+ * @param pattern - 정규식 패턴
248
+ * @returns WHERE 조건 표현식
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * db.user().where((u) => [expr.regexp(u.email, "^[a-z]+@")])
253
+ * // MySQL: WHERE email REGEXP '^[a-z]+@'
254
+ * ```
255
+ */
256
+ regexp(source: ExprUnit<string | undefined>, pattern: ExprInput<string | undefined>): WhereExprUnit;
257
+ /**
258
+ * IN 연산자 - 값 목록과 비교
259
+ *
260
+ * @param source - 비교할 컬럼 또는 표현식
261
+ * @param values - 비교할 값 목록
262
+ * @returns WHERE 조건 표현식
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * db.user().where((u) => [expr.in(u.status, ["active", "pending"])])
267
+ * // WHERE status IN ('active', 'pending')
268
+ * ```
269
+ */
270
+ in<T extends ColumnPrimitive>(source: ExprUnit<T>, values: ExprInput<T>[]): WhereExprUnit;
271
+ /**
272
+ * IN (SELECT ...) - 서브쿼리 결과와 비교
273
+ *
274
+ * 서브쿼리는 반드시 단일 컬럼만 SELECT해야 함
275
+ *
276
+ * @param source - 비교할 컬럼 또는 표현식
277
+ * @param query - 단일 컬럼을 반환하는 Queryable
278
+ * @returns WHERE 조건 표현식
279
+ * @throws {Error} 서브쿼리가 단일 컬럼이 아닌 경우
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * db.user().where((u) => [
284
+ * expr.inQuery(
285
+ * u.id,
286
+ * db.order()
287
+ * .where((o) => [expr.gt(o.amount, 1000)])
288
+ * .select((o) => ({ userId: o.userId }))
289
+ * ),
290
+ * ])
291
+ * // WHERE id IN (SELECT userId FROM Order WHERE amount > 1000)
292
+ * ```
293
+ */
294
+ inQuery<T extends ColumnPrimitive, TData extends Record<string, T>>(source: ExprUnit<T>, query: Queryable<TData, any>): WhereExprUnit;
295
+ /**
296
+ * EXISTS (SELECT ...) - 서브쿼리 결과 존재 여부 확인
297
+ *
298
+ * 서브쿼리가 하나 이상의 행을 반환하면 true
299
+ *
300
+ * @param query - 존재 여부를 확인할 Queryable
301
+ * @returns WHERE 조건 표현식
302
+ *
303
+ * @example
304
+ * ```typescript
305
+ * // 주문이 있는 사용자 조회
306
+ * db.user().where((u) => [
307
+ * expr.exists(
308
+ * db.order().where((o) => [expr.eq(o.userId, u.id)])
309
+ * ),
310
+ * ])
311
+ * // WHERE EXISTS (SELECT 1 FROM Order WHERE userId = User.id)
312
+ * ```
313
+ */
314
+ exists(query: Queryable<any, any>): WhereExprUnit;
315
+ /**
316
+ * NOT 연산자 - 조건 부정
317
+ *
318
+ * @param arg - 부정할 조건
319
+ * @returns 부정된 WHERE 조건 표현식
320
+ *
321
+ * @example
322
+ * ```typescript
323
+ * db.user().where((u) => [expr.not(expr.eq(u.status, "deleted"))])
324
+ * // WHERE NOT (status <=> 'deleted')
325
+ * ```
326
+ */
327
+ not(arg: WhereExprUnit): WhereExprUnit;
328
+ /**
329
+ * AND 연산자 - 모든 조건 충족
330
+ *
331
+ * 여러 조건을 AND로 결합. where() 메서드에 배열로 전달하면 자동으로 AND 적용됨
332
+ *
333
+ * @param conditions - AND로 결합할 조건 목록
334
+ * @returns 결합된 WHERE 조건 표현식
335
+ *
336
+ * @example
337
+ * ```typescript
338
+ * db.user().where((u) => [
339
+ * expr.and([
340
+ * expr.eq(u.status, "active"),
341
+ * expr.gte(u.age, 18),
342
+ * ]),
343
+ * ])
344
+ * // WHERE (status <=> 'active' AND age >= 18)
345
+ * ```
346
+ */
347
+ and(conditions: WhereExprUnit[]): WhereExprUnit;
348
+ /**
349
+ * OR 연산자 - 하나 이상의 조건 충족
350
+ *
351
+ * @param conditions - OR로 결합할 조건 목록
352
+ * @returns 결합된 WHERE 조건 표현식
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * db.user().where((u) => [
357
+ * expr.or([
358
+ * expr.eq(u.status, "active"),
359
+ * expr.eq(u.status, "pending"),
360
+ * ]),
361
+ * ])
362
+ * // WHERE (status <=> 'active' OR status <=> 'pending')
363
+ * ```
364
+ */
365
+ or(conditions: WhereExprUnit[]): WhereExprUnit;
366
+ /**
367
+ * 문자열 연결 (CONCAT)
368
+ *
369
+ * NULL 값은 빈 문자열로 처리됨 (DBMS별 자동 변환)
370
+ *
371
+ * @param args - 연결할 문자열들
372
+ * @returns 연결된 문자열 표현식
373
+ *
374
+ * @example
375
+ * ```typescript
376
+ * db.user().select((u) => ({
377
+ * fullName: expr.concat(u.firstName, " ", u.lastName),
378
+ * }))
379
+ * // SELECT CONCAT(firstName, ' ', lastName) AS fullName
380
+ * ```
381
+ */
382
+ concat(...args: ExprInput<string | undefined>[]): ExprUnit<string>;
383
+ /**
384
+ * 문자열 왼쪽에서 지정 길이만큼 추출 (LEFT)
385
+ *
386
+ * @param source - 원본 문자열
387
+ * @param length - 추출할 문자 수
388
+ * @returns 추출된 문자열 표현식
389
+ *
390
+ * @example
391
+ * ```typescript
392
+ * db.user().select((u) => ({
393
+ * initial: expr.left(u.name, 1),
394
+ * }))
395
+ * // SELECT LEFT(name, 1) AS initial
396
+ * ```
397
+ */
398
+ left<T extends string | undefined>(source: ExprUnit<T>, length: ExprInput<number>): ExprUnit<T>;
399
+ /**
400
+ * 문자열 오른쪽에서 지정 길이만큼 추출 (RIGHT)
401
+ *
402
+ * @param source - 원본 문자열
403
+ * @param length - 추출할 문자 수
404
+ * @returns 추출된 문자열 표현식
405
+ *
406
+ * @example
407
+ * ```typescript
408
+ * db.phone().select((p) => ({
409
+ * lastFour: expr.right(p.number, 4),
410
+ * }))
411
+ * // SELECT RIGHT(number, 4) AS lastFour
412
+ * ```
413
+ */
414
+ right<T extends string | undefined>(source: ExprUnit<T>, length: ExprInput<number>): ExprUnit<T>;
415
+ /**
416
+ * 문자열 양쪽 공백 제거 (TRIM)
417
+ *
418
+ * @param source - 원본 문자열
419
+ * @returns 공백이 제거된 문자열 표현식
420
+ *
421
+ * @example
422
+ * ```typescript
423
+ * db.user().select((u) => ({
424
+ * name: expr.trim(u.name),
425
+ * }))
426
+ * // SELECT TRIM(name) AS name
427
+ * ```
428
+ */
429
+ trim<T extends string | undefined>(source: ExprUnit<T>): ExprUnit<T>;
430
+ /**
431
+ * 문자열 왼쪽 패딩 (LPAD)
432
+ *
433
+ * 지정 길이가 될 때까지 왼쪽에 fillString 반복 추가
434
+ *
435
+ * @param source - 원본 문자열
436
+ * @param length - 목표 길이
437
+ * @param fillString - 패딩에 사용할 문자열
438
+ * @returns 패딩된 문자열 표현식
439
+ *
440
+ * @example
441
+ * ```typescript
442
+ * db.order().select((o) => ({
443
+ * orderNo: expr.padStart(expr.cast(o.id, { type: "varchar", length: 10 }), 8, "0"),
444
+ * }))
445
+ * // SELECT LPAD(CAST(id AS VARCHAR(10)), 8, '0') AS orderNo
446
+ * // 결과: "00000123"
447
+ * ```
448
+ */
449
+ padStart<T extends string | undefined>(source: ExprUnit<T>, length: ExprInput<number>, fillString: ExprInput<string>): ExprUnit<T>;
450
+ /**
451
+ * 문자열 치환 (REPLACE)
452
+ *
453
+ * @param source - 원본 문자열
454
+ * @param from - 찾을 문자열
455
+ * @param to - 대체할 문자열
456
+ * @returns 치환된 문자열 표현식
457
+ *
458
+ * @example
459
+ * ```typescript
460
+ * db.user().select((u) => ({
461
+ * phone: expr.replace(u.phone, "-", ""),
462
+ * }))
463
+ * // SELECT REPLACE(phone, '-', '') AS phone
464
+ * ```
465
+ */
466
+ replace<T extends string | undefined>(source: ExprUnit<T>, from: ExprInput<string>, to: ExprInput<string>): ExprUnit<T>;
467
+ /**
468
+ * 문자열 대문자 변환 (UPPER)
469
+ *
470
+ * @param source - 원본 문자열
471
+ * @returns 대문자로 변환된 문자열 표현식
472
+ *
473
+ * @example
474
+ * ```typescript
475
+ * db.user().select((u) => ({
476
+ * code: expr.upper(u.code),
477
+ * }))
478
+ * // SELECT UPPER(code) AS code
479
+ * ```
480
+ */
481
+ upper<T extends string | undefined>(source: ExprUnit<T>): ExprUnit<T>;
482
+ /**
483
+ * 문자열 소문자 변환 (LOWER)
484
+ *
485
+ * @param source - 원본 문자열
486
+ * @returns 소문자로 변환된 문자열 표현식
487
+ *
488
+ * @example
489
+ * ```typescript
490
+ * db.user().select((u) => ({
491
+ * email: expr.lower(u.email),
492
+ * }))
493
+ * // SELECT LOWER(email) AS email
494
+ * ```
495
+ */
496
+ lower<T extends string | undefined>(source: ExprUnit<T>): ExprUnit<T>;
497
+ /**
498
+ * 문자열 길이 (문자 수)
499
+ *
500
+ * @param source - 원본 문자열
501
+ * @returns 문자 수
502
+ *
503
+ * @example
504
+ * ```typescript
505
+ * db.user().select((u) => ({
506
+ * nameLength: expr.length(u.name),
507
+ * }))
508
+ * // SELECT CHAR_LENGTH(name) AS nameLength
509
+ * ```
510
+ */
511
+ length(source: ExprUnit<string | undefined>): ExprUnit<number>;
512
+ /**
513
+ * 문자열 바이트 길이
514
+ *
515
+ * UTF-8 환경에서 한글은 3바이트
516
+ *
517
+ * @param source - 원본 문자열
518
+ * @returns 바이트 수
519
+ *
520
+ * @example
521
+ * ```typescript
522
+ * db.user().select((u) => ({
523
+ * byteLen: expr.byteLength(u.name),
524
+ * }))
525
+ * // SELECT OCTET_LENGTH(name) AS byteLen
526
+ * ```
527
+ */
528
+ byteLength(source: ExprUnit<string | undefined>): ExprUnit<number>;
529
+ /**
530
+ * 문자열 일부 추출 (SUBSTRING)
531
+ *
532
+ * SQL 표준에 따라 1-based index 사용
533
+ *
534
+ * @param source - 원본 문자열
535
+ * @param start - 시작 위치 (1부터 시작)
536
+ * @param length - 추출할 길이 (생략 시 끝까지)
537
+ * @returns 추출된 문자열 표현식
538
+ *
539
+ * @example
540
+ * ```typescript
541
+ * db.user().select((u) => ({
542
+ * // "Hello World"에서 인덱스 1부터 5글자: "Hello"
543
+ * prefix: expr.substring(u.name, 1, 5),
544
+ * }))
545
+ * // SELECT SUBSTRING(name, 1, 5) AS prefix
546
+ * ```
547
+ */
548
+ substring<T extends string | undefined>(source: ExprUnit<T>, start: ExprInput<number>, length?: ExprInput<number>): ExprUnit<T>;
549
+ /**
550
+ * 문자열 내 위치 찾기 (LOCATE/CHARINDEX)
551
+ *
552
+ * 1-based index 반환, 없으면 0 반환
553
+ *
554
+ * @param source - 검색할 문자열
555
+ * @param search - 찾을 문자열
556
+ * @returns 위치 (1부터 시작, 없으면 0)
557
+ *
558
+ * @example
559
+ * ```typescript
560
+ * db.user().select((u) => ({
561
+ * atPos: expr.indexOf(u.email, "@"),
562
+ * }))
563
+ * // SELECT LOCATE('@', email) AS atPos (MySQL)
564
+ * // "john@example.com" → 5
565
+ * ```
566
+ */
567
+ indexOf(source: ExprUnit<string | undefined>, search: ExprInput<string>): ExprUnit<number>;
568
+ /**
569
+ * 절대값 (ABS)
570
+ *
571
+ * @param source - 원본 숫자
572
+ * @returns 절대값 표현식
573
+ *
574
+ * @example
575
+ * ```typescript
576
+ * db.account().select((a) => ({
577
+ * balance: expr.abs(a.balance),
578
+ * }))
579
+ * // SELECT ABS(balance) AS balance
580
+ * ```
581
+ */
582
+ abs<T extends number | undefined>(source: ExprUnit<T>): ExprUnit<T>;
583
+ /**
584
+ * 반올림 (ROUND)
585
+ *
586
+ * @param source - 원본 숫자
587
+ * @param digits - 소수점 이하 자릿수
588
+ * @returns 반올림된 숫자 표현식
589
+ *
590
+ * @example
591
+ * ```typescript
592
+ * db.product().select((p) => ({
593
+ * price: expr.round(p.price, 2),
594
+ * }))
595
+ * // SELECT ROUND(price, 2) AS price
596
+ * // 123.456 → 123.46
597
+ * ```
598
+ */
599
+ round<T extends number | undefined>(source: ExprUnit<T>, digits: number): ExprUnit<T>;
600
+ /**
601
+ * 올림 (CEILING)
602
+ *
603
+ * @param source - 원본 숫자
604
+ * @returns 올림된 숫자 표현식
605
+ *
606
+ * @example
607
+ * ```typescript
608
+ * db.order().select((o) => ({
609
+ * pages: expr.ceil(expr.divide(o.itemCount, 10)),
610
+ * }))
611
+ * // SELECT CEILING(itemCount / 10) AS pages
612
+ * // 25 / 10 = 2.5 → 3
613
+ * ```
614
+ */
615
+ ceil<T extends number | undefined>(source: ExprUnit<T>): ExprUnit<T>;
616
+ /**
617
+ * 버림 (FLOOR)
618
+ *
619
+ * @param source - 원본 숫자
620
+ * @returns 버림된 숫자 표현식
621
+ *
622
+ * @example
623
+ * ```typescript
624
+ * db.user().select((u) => ({
625
+ * ageGroup: expr.floor(expr.divide(u.age, 10)),
626
+ * }))
627
+ * // SELECT FLOOR(age / 10) AS ageGroup
628
+ * // 25 / 10 = 2.5 → 2
629
+ * ```
630
+ */
631
+ floor<T extends number | undefined>(source: ExprUnit<T>): ExprUnit<T>;
632
+ /**
633
+ * 연도 추출 (YEAR)
634
+ *
635
+ * @param source - DateTime 또는 DateOnly 표현식
636
+ * @returns 연도 (4자리 숫자)
637
+ *
638
+ * @example
639
+ * ```typescript
640
+ * db.user().select((u) => ({
641
+ * birthYear: expr.year(u.birthDate),
642
+ * }))
643
+ * // SELECT YEAR(birthDate) AS birthYear
644
+ * ```
645
+ */
646
+ year<T extends DateTime | DateOnly | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
647
+ /**
648
+ * 월 추출 (MONTH)
649
+ *
650
+ * @param source - DateTime 또는 DateOnly 표현식
651
+ * @returns 월 (1~12)
652
+ *
653
+ * @example
654
+ * ```typescript
655
+ * db.order().select((o) => ({
656
+ * orderMonth: expr.month(o.createdAt),
657
+ * }))
658
+ * // SELECT MONTH(createdAt) AS orderMonth
659
+ * ```
660
+ */
661
+ month<T extends DateTime | DateOnly | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
662
+ /**
663
+ * 일 추출 (DAY)
664
+ *
665
+ * @param source - DateTime 또는 DateOnly 표현식
666
+ * @returns 일 (1~31)
667
+ *
668
+ * @example
669
+ * ```typescript
670
+ * db.user().select((u) => ({
671
+ * birthDay: expr.day(u.birthDate),
672
+ * }))
673
+ * // SELECT DAY(birthDate) AS birthDay
674
+ * ```
675
+ */
676
+ day<T extends DateTime | DateOnly | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
677
+ /**
678
+ * 시 추출 (HOUR)
679
+ *
680
+ * @param source - DateTime 또는 Time 표현식
681
+ * @returns 시 (0~23)
682
+ *
683
+ * @example
684
+ * ```typescript
685
+ * db.log().select((l) => ({
686
+ * logHour: expr.hour(l.createdAt),
687
+ * }))
688
+ * // SELECT HOUR(createdAt) AS logHour
689
+ * ```
690
+ */
691
+ hour<T extends DateTime | Time | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
692
+ /**
693
+ * 분 추출 (MINUTE)
694
+ *
695
+ * @param source - DateTime 또는 Time 표현식
696
+ * @returns 분 (0~59)
697
+ *
698
+ * @example
699
+ * ```typescript
700
+ * db.log().select((l) => ({
701
+ * logMinute: expr.minute(l.createdAt),
702
+ * }))
703
+ * // SELECT MINUTE(createdAt) AS logMinute
704
+ * ```
705
+ */
706
+ minute<T extends DateTime | Time | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
707
+ /**
708
+ * 초 추출 (SECOND)
709
+ *
710
+ * @param source - DateTime 또는 Time 표현식
711
+ * @returns 초 (0~59)
712
+ *
713
+ * @example
714
+ * ```typescript
715
+ * db.log().select((l) => ({
716
+ * logSecond: expr.second(l.createdAt),
717
+ * }))
718
+ * // SELECT SECOND(createdAt) AS logSecond
719
+ * ```
720
+ */
721
+ second<T extends DateTime | Time | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
722
+ /**
723
+ * ISO 주차 추출
724
+ *
725
+ * ISO 8601 기준 주차 (월요일 시작, 1~53)
726
+ *
727
+ * @param source - DateOnly 표현식
728
+ * @returns ISO 주차 번호
729
+ *
730
+ * @example
731
+ * ```typescript
732
+ * db.order().select((o) => ({
733
+ * weekNum: expr.isoWeek(o.orderDate),
734
+ * }))
735
+ * // SELECT WEEK(orderDate, 3) AS weekNum (MySQL)
736
+ * ```
737
+ */
738
+ isoWeek<T extends DateOnly | undefined>(source: ExprUnit<T>): ExprUnit<T extends undefined ? undefined : number>;
739
+ /**
740
+ * ISO 주 시작일 (월요일)
741
+ *
742
+ * 해당 날짜가 속한 주의 월요일 반환
743
+ *
744
+ * @param source - DateOnly 표현식
745
+ * @returns 주의 시작 날짜 (월요일)
746
+ *
747
+ * @example
748
+ * ```typescript
749
+ * db.order().select((o) => ({
750
+ * weekStart: expr.isoWeekStartDate(o.orderDate),
751
+ * }))
752
+ * // 2024-01-10 (수) → 2024-01-08 (월)
753
+ * ```
754
+ */
755
+ isoWeekStartDate<T extends DateOnly | undefined>(source: ExprUnit<T>): ExprUnit<T>;
756
+ /**
757
+ * ISO 연월 (해당 월의 1일)
758
+ *
759
+ * 해당 날짜의 월 첫째 날 반환
760
+ *
761
+ * @param source - DateOnly 표현식
762
+ * @returns 월의 첫째 날
763
+ *
764
+ * @example
765
+ * ```typescript
766
+ * db.order().select((o) => ({
767
+ * yearMonth: expr.isoYearMonth(o.orderDate),
768
+ * }))
769
+ * // 2024-01-15 → 2024-01-01
770
+ * ```
771
+ */
772
+ isoYearMonth<T extends DateOnly | undefined>(source: ExprUnit<T>): ExprUnit<T>;
773
+ /**
774
+ * 날짜 차이 계산 (DATEDIFF)
775
+ *
776
+ * @param separator - 단위 ("year", "month", "day", "hour", "minute", "second")
777
+ * @param from - 시작 날짜
778
+ * @param to - 끝 날짜
779
+ * @returns 차이 값 (to - from)
780
+ *
781
+ * @example
782
+ * ```typescript
783
+ * db.user().select((u) => ({
784
+ * age: expr.dateDiff("year", u.birthDate, expr.val("DateOnly", DateOnly.today())),
785
+ * }))
786
+ * // SELECT DATEDIFF(year, birthDate, '2024-01-15') AS age
787
+ * ```
788
+ */
789
+ dateDiff<T extends DateTime | DateOnly | Time | undefined>(separator: DateSeparator, from: ExprInput<T>, to: ExprInput<T>): ExprUnit<T extends undefined ? undefined : number>;
790
+ /**
791
+ * 날짜 더하기 (DATEADD)
792
+ *
793
+ * @param separator - 단위 ("year", "month", "day", "hour", "minute", "second")
794
+ * @param source - 원본 날짜
795
+ * @param value - 더할 값 (음수 가능)
796
+ * @returns 계산된 날짜
797
+ *
798
+ * @example
799
+ * ```typescript
800
+ * db.subscription().select((s) => ({
801
+ * expiresAt: expr.dateAdd("month", s.startDate, 12),
802
+ * }))
803
+ * // SELECT DATEADD(month, 12, startDate) AS expiresAt
804
+ * ```
805
+ */
806
+ dateAdd<T extends DateTime | DateOnly | Time | undefined>(separator: DateSeparator, source: ExprUnit<T>, value: ExprInput<number>): ExprUnit<T>;
807
+ /**
808
+ * 날짜 포맷 (DATE_FORMAT)
809
+ *
810
+ * DBMS별로 포맷 문자열 규칙이 다를 수 있음
811
+ *
812
+ * @param source - 날짜 표현식
813
+ * @param format - 포맷 문자열 (예: "%Y-%m-%d")
814
+ * @returns 포맷된 문자열 표현식
815
+ *
816
+ * @example
817
+ * ```typescript
818
+ * db.order().select((o) => ({
819
+ * orderDate: expr.formatDate(o.createdAt, "%Y-%m-%d"),
820
+ * }))
821
+ * // SELECT DATE_FORMAT(createdAt, '%Y-%m-%d') AS orderDate (MySQL)
822
+ * // 2024-01-15 10:30:00 → "2024-01-15"
823
+ * ```
824
+ */
825
+ formatDate<T extends DateTime | DateOnly | Time | undefined>(source: ExprUnit<T>, format: string): ExprUnit<T extends undefined ? undefined : string>;
826
+ /**
827
+ * NULL 대체 (COALESCE/IFNULL)
828
+ *
829
+ * 첫 번째 non-null 값을 반환. 마지막 인자가 non-nullable이면 결과도 non-nullable
830
+ *
831
+ * @param args - 검사할 값들 (마지막은 기본값)
832
+ * @returns 첫 번째 non-null 값
833
+ *
834
+ * @example
835
+ * ```typescript
836
+ * db.user().select((u) => ({
837
+ * displayName: expr.ifNull(u.nickname, u.name, "Guest"),
838
+ * }))
839
+ * // SELECT COALESCE(nickname, name, 'Guest') AS displayName
840
+ * ```
841
+ */
842
+ ifNull: typeof ifNull;
843
+ /**
844
+ * 특정 값이면 NULL 반환 (NULLIF)
845
+ *
846
+ * source === value 이면 NULL 반환, 아니면 source 반환
847
+ *
848
+ * @param source - 원본 값
849
+ * @param value - 비교할 값
850
+ * @returns NULL 또는 원본 값
851
+ *
852
+ * @example
853
+ * ```typescript
854
+ * db.user().select((u) => ({
855
+ * // 빈 문자열을 NULL로 변환
856
+ * bio: expr.nullIf(u.bio, ""),
857
+ * }))
858
+ * // SELECT NULLIF(bio, '') AS bio
859
+ * ```
860
+ */
861
+ nullIf<T extends ColumnPrimitive>(source: ExprUnit<T>, value: ExprInput<T>): ExprUnit<T | undefined>;
862
+ /**
863
+ * WHERE 표현식을 boolean으로 변환
864
+ *
865
+ * SELECT 절에서 조건 결과를 boolean 컬럼으로 사용할 때 사용
866
+ *
867
+ * @param condition - 변환할 조건
868
+ * @returns boolean 표현식
869
+ *
870
+ * @example
871
+ * ```typescript
872
+ * db.user().select((u) => ({
873
+ * isActive: expr.is(expr.eq(u.status, "active")),
874
+ * }))
875
+ * // SELECT (status <=> 'active') AS isActive
876
+ * ```
877
+ */
878
+ is(condition: WhereExprUnit): ExprUnit<boolean>;
879
+ /**
880
+ * CASE WHEN 표현식 빌더
881
+ *
882
+ * 체이닝 방식으로 조건 분기를 구성
883
+ *
884
+ * @returns SwitchExprBuilder 인스턴스
885
+ *
886
+ * @example
887
+ * ```typescript
888
+ * db.user().select((u) => ({
889
+ * grade: expr.switch<string>()
890
+ * .case(expr.gte(u.score, 90), "A")
891
+ * .case(expr.gte(u.score, 80), "B")
892
+ * .case(expr.gte(u.score, 70), "C")
893
+ * .default("F"),
894
+ * }))
895
+ * // SELECT CASE WHEN score >= 90 THEN 'A' ... ELSE 'F' END AS grade
896
+ * ```
897
+ */
898
+ switch<T extends ColumnPrimitive>(): SwitchExprBuilder<T>;
899
+ /**
900
+ * 단순 IF 조건 (삼항 연산자)
901
+ *
902
+ * @param condition - 조건
903
+ * @param then - 조건이 참일 때 값
904
+ * @param else_ - 조건이 거짓일 때 값
905
+ * @returns 조건부 값 표현식
906
+ *
907
+ * @example
908
+ * ```typescript
909
+ * db.user().select((u) => ({
910
+ * type: expr.if(expr.gte(u.age, 18), "adult", "minor"),
911
+ * }))
912
+ * // SELECT IF(age >= 18, 'adult', 'minor') AS type
913
+ * ```
914
+ */
915
+ if<T extends ColumnPrimitive>(condition: WhereExprUnit, then: ExprInput<T>, else_: ExprInput<T>): ExprUnit<T>;
916
+ /**
917
+ * 행 수 카운트 (COUNT)
918
+ *
919
+ * @param arg - 카운트할 컬럼 (생략 시 전체 행 수)
920
+ * @param distinct - true면 중복 제거
921
+ * @returns 행 수
922
+ *
923
+ * @example
924
+ * ```typescript
925
+ * // 전체 행 수
926
+ * db.user().select(() => ({ total: expr.count() }))
927
+ *
928
+ * // 중복 제거 카운트
929
+ * db.order().select((o) => ({
930
+ * uniqueCustomers: expr.count(o.customerId, true),
931
+ * }))
932
+ * ```
933
+ */
934
+ count(arg?: ExprUnit<ColumnPrimitive>, distinct?: boolean): ExprUnit<number>;
935
+ /**
936
+ * 합계 (SUM)
937
+ *
938
+ * NULL 값은 무시됨. 모든 값이 NULL이면 NULL 반환
939
+ *
940
+ * @param arg - 합계를 구할 숫자 컬럼
941
+ * @returns 합계 (또는 NULL)
942
+ *
943
+ * @example
944
+ * ```typescript
945
+ * db.order().groupBy((o) => o.userId).select((o) => ({
946
+ * userId: o.userId,
947
+ * totalAmount: expr.sum(o.amount),
948
+ * }))
949
+ * ```
950
+ */
951
+ sum(arg: ExprUnit<number | undefined>): ExprUnit<number | undefined>;
952
+ /**
953
+ * 평균 (AVG)
954
+ *
955
+ * NULL 값은 무시됨. 모든 값이 NULL이면 NULL 반환
956
+ *
957
+ * @param arg - 평균을 구할 숫자 컬럼
958
+ * @returns 평균 (또는 NULL)
959
+ *
960
+ * @example
961
+ * ```typescript
962
+ * db.product().groupBy((p) => p.categoryId).select((p) => ({
963
+ * categoryId: p.categoryId,
964
+ * avgPrice: expr.avg(p.price),
965
+ * }))
966
+ * ```
967
+ */
968
+ avg(arg: ExprUnit<number | undefined>): ExprUnit<number | undefined>;
969
+ /**
970
+ * 최대값 (MAX)
971
+ *
972
+ * NULL 값은 무시됨. 모든 값이 NULL이면 NULL 반환
973
+ *
974
+ * @param arg - 최대값을 구할 컬럼
975
+ * @returns 최대값 (또는 NULL)
976
+ *
977
+ * @example
978
+ * ```typescript
979
+ * db.order().groupBy((o) => o.userId).select((o) => ({
980
+ * userId: o.userId,
981
+ * lastOrderDate: expr.max(o.createdAt),
982
+ * }))
983
+ * ```
984
+ */
985
+ max<T extends ColumnPrimitive>(arg: ExprUnit<T>): ExprUnit<T | undefined>;
986
+ /**
987
+ * 최소값 (MIN)
988
+ *
989
+ * NULL 값은 무시됨. 모든 값이 NULL이면 NULL 반환
990
+ *
991
+ * @param arg - 최소값을 구할 컬럼
992
+ * @returns 최소값 (또는 NULL)
993
+ *
994
+ * @example
995
+ * ```typescript
996
+ * db.product().groupBy((p) => p.categoryId).select((p) => ({
997
+ * categoryId: p.categoryId,
998
+ * minPrice: expr.min(p.price),
999
+ * }))
1000
+ * ```
1001
+ */
1002
+ min<T extends ColumnPrimitive>(arg: ExprUnit<T>): ExprUnit<T | undefined>;
1003
+ /**
1004
+ * 여러 값 중 최대값 (GREATEST)
1005
+ *
1006
+ * @param args - 비교할 값들
1007
+ * @returns 최대값
1008
+ *
1009
+ * @example
1010
+ * ```typescript
1011
+ * db.product().select((p) => ({
1012
+ * effectivePrice: expr.greatest(p.price, p.minPrice),
1013
+ * }))
1014
+ * // SELECT GREATEST(price, minPrice) AS effectivePrice
1015
+ * ```
1016
+ */
1017
+ greatest<T extends ColumnPrimitive>(...args: ExprInput<T>[]): ExprUnit<T>;
1018
+ /**
1019
+ * 여러 값 중 최소값 (LEAST)
1020
+ *
1021
+ * @param args - 비교할 값들
1022
+ * @returns 최소값
1023
+ *
1024
+ * @example
1025
+ * ```typescript
1026
+ * db.product().select((p) => ({
1027
+ * effectivePrice: expr.least(p.price, p.maxDiscount),
1028
+ * }))
1029
+ * // SELECT LEAST(price, maxDiscount) AS effectivePrice
1030
+ * ```
1031
+ */
1032
+ least<T extends ColumnPrimitive>(...args: ExprInput<T>[]): ExprUnit<T>;
1033
+ /**
1034
+ * 행 번호 (ROW_NUMBER 없이 전체 행에 대한 순번)
1035
+ *
1036
+ * @returns 행 번호 (1부터 시작)
1037
+ *
1038
+ * @example
1039
+ * ```typescript
1040
+ * db.user().select((u) => ({
1041
+ * rowNum: expr.rowNum(),
1042
+ * name: u.name,
1043
+ * }))
1044
+ * ```
1045
+ */
1046
+ rowNum(): ExprUnit<number>;
1047
+ /**
1048
+ * 난수 생성 (RAND/RANDOM)
1049
+ *
1050
+ * 0~1 사이의 난수 반환. ORDER BY에서 랜덤 정렬용으로 주로 사용
1051
+ *
1052
+ * @returns 0~1 사이의 난수
1053
+ *
1054
+ * @example
1055
+ * ```typescript
1056
+ * // 랜덤 정렬
1057
+ * db.user().orderBy(() => expr.random()).limit(10)
1058
+ * ```
1059
+ */
1060
+ random(): ExprUnit<number>;
1061
+ /**
1062
+ * 타입 변환 (CAST)
1063
+ *
1064
+ * @param source - 변환할 표현식
1065
+ * @param targetType - 대상 데이터 타입
1066
+ * @returns 변환된 표현식
1067
+ *
1068
+ * @example
1069
+ * ```typescript
1070
+ * db.order().select((o) => ({
1071
+ * idStr: expr.cast(o.id, { type: "varchar", length: 20 }),
1072
+ * }))
1073
+ * // SELECT CAST(id AS VARCHAR(20)) AS idStr
1074
+ * ```
1075
+ */
1076
+ cast<T extends ColumnPrimitive, TDataType extends DataType>(source: ExprUnit<T>, targetType: TDataType): ExprUnit<T extends undefined ? undefined : InferColumnPrimitiveFromDataType<TDataType>>;
1077
+ /**
1078
+ * 스칼라 서브쿼리 - SELECT 절에서 단일 값 반환 서브쿼리
1079
+ *
1080
+ * 서브쿼리는 반드시 단일 행, 단일 컬럼을 반환해야 함
1081
+ *
1082
+ * @param dataType - 반환될 값의 데이터 타입
1083
+ * @param queryable - 스칼라 값을 반환하는 Queryable
1084
+ * @returns 서브쿼리 결과 표현식
1085
+ *
1086
+ * @example
1087
+ * ```typescript
1088
+ * db.user().select((u) => ({
1089
+ * id: u.id,
1090
+ * postCount: expr.subquery(
1091
+ * "number",
1092
+ * db.post()
1093
+ * .where((p) => [expr.eq(p.userId, u.id)])
1094
+ * .select(() => ({ cnt: expr.count() }))
1095
+ * ),
1096
+ * }))
1097
+ * // SELECT id, (SELECT COUNT(*) FROM Post WHERE userId = User.id) AS postCount
1098
+ * ```
1099
+ */
1100
+ subquery<TStr extends ColumnPrimitiveStr>(dataType: TStr, queryable: {
1101
+ getSelectQueryDef(): SelectQueryDef;
1102
+ }): ExprUnit<ColumnPrimitiveMap[TStr] | undefined>;
1103
+ /**
1104
+ * ROW_NUMBER() - 파티션 내 행 번호
1105
+ *
1106
+ * 각 파티션 내에서 1부터 시작하는 순차 번호 부여
1107
+ *
1108
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1109
+ * @returns 행 번호 (1부터 시작)
1110
+ *
1111
+ * @example
1112
+ * ```typescript
1113
+ * db.order().select((o) => ({
1114
+ * ...o,
1115
+ * rowNum: expr.rowNumber({
1116
+ * partitionBy: [o.userId],
1117
+ * orderBy: [[o.createdAt, "DESC"]],
1118
+ * }),
1119
+ * }))
1120
+ * // SELECT *, ROW_NUMBER() OVER (PARTITION BY userId ORDER BY createdAt DESC)
1121
+ * ```
1122
+ */
1123
+ rowNumber(spec: WinSpecInput): ExprUnit<number>;
1124
+ /**
1125
+ * RANK() - 파티션 내 순위 (동점 시 같은 순위, 다음 순위 건너뜀)
1126
+ *
1127
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1128
+ * @returns 순위 (동점 후 건너뜀: 1, 1, 3)
1129
+ *
1130
+ * @example
1131
+ * ```typescript
1132
+ * db.student().select((s) => ({
1133
+ * name: s.name,
1134
+ * rank: expr.rank({
1135
+ * orderBy: [[s.score, "DESC"]],
1136
+ * }),
1137
+ * }))
1138
+ * ```
1139
+ */
1140
+ rank(spec: WinSpecInput): ExprUnit<number>;
1141
+ /**
1142
+ * DENSE_RANK() - 파티션 내 밀집 순위 (동점 시 같은 순위, 다음 순위 유지)
1143
+ *
1144
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1145
+ * @returns 밀집 순위 (동점 후 연속: 1, 1, 2)
1146
+ *
1147
+ * @example
1148
+ * ```typescript
1149
+ * db.student().select((s) => ({
1150
+ * name: s.name,
1151
+ * denseRank: expr.denseRank({
1152
+ * orderBy: [[s.score, "DESC"]],
1153
+ * }),
1154
+ * }))
1155
+ * ```
1156
+ */
1157
+ denseRank(spec: WinSpecInput): ExprUnit<number>;
1158
+ /**
1159
+ * NTILE(n) - 파티션을 n개 그룹으로 분할
1160
+ *
1161
+ * @param n - 분할할 그룹 수
1162
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1163
+ * @returns 그룹 번호 (1 ~ n)
1164
+ *
1165
+ * @example
1166
+ * ```typescript
1167
+ * // 상위 25%를 찾기 위한 사분위 분할
1168
+ * db.user().select((u) => ({
1169
+ * name: u.name,
1170
+ * quartile: expr.ntile(4, {
1171
+ * orderBy: [[u.score, "DESC"]],
1172
+ * }),
1173
+ * }))
1174
+ * ```
1175
+ */
1176
+ ntile(n: number, spec: WinSpecInput): ExprUnit<number>;
1177
+ /**
1178
+ * LAG() - 이전 행의 값 참조
1179
+ *
1180
+ * @param column - 참조할 컬럼
1181
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1182
+ * @param options - offset (기본 1), default (이전 행이 없을 때 기본값)
1183
+ * @returns 이전 행의 값 (또는 기본값/NULL)
1184
+ *
1185
+ * @example
1186
+ * ```typescript
1187
+ * db.stock().select((s) => ({
1188
+ * date: s.date,
1189
+ * price: s.price,
1190
+ * prevPrice: expr.lag(s.price, {
1191
+ * partitionBy: [s.symbol],
1192
+ * orderBy: [[s.date, "ASC"]],
1193
+ * }),
1194
+ * }))
1195
+ * ```
1196
+ */
1197
+ lag<T extends ColumnPrimitive>(column: ExprUnit<T>, spec: WinSpecInput, options?: {
1198
+ offset?: number;
1199
+ default?: ExprInput<T>;
1200
+ }): ExprUnit<T | undefined>;
1201
+ /**
1202
+ * LEAD() - 다음 행의 값 참조
1203
+ *
1204
+ * @param column - 참조할 컬럼
1205
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1206
+ * @param options - offset (기본 1), default (다음 행이 없을 때 기본값)
1207
+ * @returns 다음 행의 값 (또는 기본값/NULL)
1208
+ *
1209
+ * @example
1210
+ * ```typescript
1211
+ * db.stock().select((s) => ({
1212
+ * date: s.date,
1213
+ * price: s.price,
1214
+ * nextPrice: expr.lead(s.price, {
1215
+ * partitionBy: [s.symbol],
1216
+ * orderBy: [[s.date, "ASC"]],
1217
+ * }),
1218
+ * }))
1219
+ * ```
1220
+ */
1221
+ lead<T extends ColumnPrimitive>(column: ExprUnit<T>, spec: WinSpecInput, options?: {
1222
+ offset?: number;
1223
+ default?: ExprInput<T>;
1224
+ }): ExprUnit<T | undefined>;
1225
+ /**
1226
+ * FIRST_VALUE() - 파티션/프레임의 첫 번째 값
1227
+ *
1228
+ * @param column - 참조할 컬럼
1229
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1230
+ * @returns 첫 번째 값
1231
+ *
1232
+ * @example
1233
+ * ```typescript
1234
+ * db.order().select((o) => ({
1235
+ * ...o,
1236
+ * firstOrderAmount: expr.firstValue(o.amount, {
1237
+ * partitionBy: [o.userId],
1238
+ * orderBy: [[o.createdAt, "ASC"]],
1239
+ * }),
1240
+ * }))
1241
+ * ```
1242
+ */
1243
+ firstValue<T extends ColumnPrimitive>(column: ExprUnit<T>, spec: WinSpecInput): ExprUnit<T | undefined>;
1244
+ /**
1245
+ * LAST_VALUE() - 파티션/프레임의 마지막 값
1246
+ *
1247
+ * @param column - 참조할 컬럼
1248
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1249
+ * @returns 마지막 값
1250
+ *
1251
+ * @example
1252
+ * ```typescript
1253
+ * db.order().select((o) => ({
1254
+ * ...o,
1255
+ * lastOrderAmount: expr.lastValue(o.amount, {
1256
+ * partitionBy: [o.userId],
1257
+ * orderBy: [[o.createdAt, "ASC"]],
1258
+ * }),
1259
+ * }))
1260
+ * ```
1261
+ */
1262
+ lastValue<T extends ColumnPrimitive>(column: ExprUnit<T>, spec: WinSpecInput): ExprUnit<T | undefined>;
1263
+ /**
1264
+ * SUM() OVER - 윈도우 합계
1265
+ *
1266
+ * @param column - 합계를 구할 컬럼
1267
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1268
+ * @returns 윈도우 내 합계
1269
+ *
1270
+ * @example
1271
+ * ```typescript
1272
+ * // 누적 합계
1273
+ * db.order().select((o) => ({
1274
+ * ...o,
1275
+ * runningTotal: expr.sumOver(o.amount, {
1276
+ * partitionBy: [o.userId],
1277
+ * orderBy: [[o.createdAt, "ASC"]],
1278
+ * }),
1279
+ * }))
1280
+ * ```
1281
+ */
1282
+ sumOver(column: ExprUnit<number | undefined>, spec: WinSpecInput): ExprUnit<number | undefined>;
1283
+ /**
1284
+ * AVG() OVER - 윈도우 평균
1285
+ *
1286
+ * @param column - 평균을 구할 컬럼
1287
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1288
+ * @returns 윈도우 내 평균
1289
+ *
1290
+ * @example
1291
+ * ```typescript
1292
+ * // 이동 평균
1293
+ * db.stock().select((s) => ({
1294
+ * ...s,
1295
+ * movingAvg: expr.avgOver(s.price, {
1296
+ * partitionBy: [s.symbol],
1297
+ * orderBy: [[s.date, "ASC"]],
1298
+ * }),
1299
+ * }))
1300
+ * ```
1301
+ */
1302
+ avgOver(column: ExprUnit<number | undefined>, spec: WinSpecInput): ExprUnit<number | undefined>;
1303
+ /**
1304
+ * COUNT() OVER - 윈도우 카운트
1305
+ *
1306
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1307
+ * @param column - 카운트할 컬럼 (생략 시 전체 행 수)
1308
+ * @returns 윈도우 내 행 수
1309
+ *
1310
+ * @example
1311
+ * ```typescript
1312
+ * db.order().select((o) => ({
1313
+ * ...o,
1314
+ * totalOrdersPerUser: expr.countOver({
1315
+ * partitionBy: [o.userId],
1316
+ * }),
1317
+ * }))
1318
+ * ```
1319
+ */
1320
+ countOver(spec: WinSpecInput, column?: ExprUnit<ColumnPrimitive>): ExprUnit<number>;
1321
+ /**
1322
+ * MIN() OVER - 윈도우 최소값
1323
+ *
1324
+ * @param column - 최소값을 구할 컬럼
1325
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1326
+ * @returns 윈도우 내 최소값
1327
+ *
1328
+ * @example
1329
+ * ```typescript
1330
+ * db.stock().select((s) => ({
1331
+ * ...s,
1332
+ * minPriceInPeriod: expr.minOver(s.price, {
1333
+ * partitionBy: [s.symbol],
1334
+ * }),
1335
+ * }))
1336
+ * ```
1337
+ */
1338
+ minOver<T extends ColumnPrimitive>(column: ExprUnit<T>, spec: WinSpecInput): ExprUnit<T | undefined>;
1339
+ /**
1340
+ * MAX() OVER - 윈도우 최대값
1341
+ *
1342
+ * @param column - 최대값을 구할 컬럼
1343
+ * @param spec - 윈도우 스펙 (partitionBy, orderBy)
1344
+ * @returns 윈도우 내 최대값
1345
+ *
1346
+ * @example
1347
+ * ```typescript
1348
+ * db.stock().select((s) => ({
1349
+ * ...s,
1350
+ * maxPriceInPeriod: expr.maxOver(s.price, {
1351
+ * partitionBy: [s.symbol],
1352
+ * }),
1353
+ * }))
1354
+ * ```
1355
+ */
1356
+ maxOver<T extends ColumnPrimitive>(column: ExprUnit<T>, spec: WinSpecInput): ExprUnit<T | undefined>;
1357
+ /**
1358
+ * ExprInput을 Expr로 변환 (내부용)
1359
+ *
1360
+ * @param value - 변환할 값
1361
+ * @returns Expr JSON AST
1362
+ */
1363
+ toExpr(value: ExprInput<ColumnPrimitive>): Expr;
1364
+ };
1365
+ declare function ifNull<T extends ColumnPrimitive>(...args: [ExprInput<T | undefined>, ...ExprInput<T | undefined>[], ExprInput<NonNullable<T>>]): ExprUnit<NonNullable<T>>;
1366
+ declare function ifNull<T extends ColumnPrimitive>(...args: ExprInput<T>[]): ExprUnit<T>;
1367
+ export declare function toExpr(value: ExprInput<ColumnPrimitive>): Expr;
1368
+ export {};
1369
+ //# sourceMappingURL=expr.d.ts.map