@bioturing/components 0.32.2 → 0.33.1

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 (111) hide show
  1. package/dist/components/code-block/component.d.ts.map +1 -1
  2. package/dist/components/code-block/component.js +41 -42
  3. package/dist/components/code-block/component.js.map +1 -1
  4. package/dist/components/command-palette/component.d.ts.map +1 -1
  5. package/dist/components/command-palette/component.js +18 -18
  6. package/dist/components/command-palette/component.js.map +1 -1
  7. package/dist/components/data-table/component.d.ts +8 -0
  8. package/dist/components/data-table/component.d.ts.map +1 -0
  9. package/dist/components/data-table/component.js +112 -0
  10. package/dist/components/data-table/component.js.map +1 -0
  11. package/dist/components/data-table/components/TableBody.d.ts +15 -0
  12. package/dist/components/data-table/components/TableBody.d.ts.map +1 -0
  13. package/dist/components/data-table/components/TableBody.js +114 -0
  14. package/dist/components/data-table/components/TableBody.js.map +1 -0
  15. package/dist/components/data-table/components/TableHeader.d.ts +11 -0
  16. package/dist/components/data-table/components/TableHeader.d.ts.map +1 -0
  17. package/dist/components/data-table/components/TableHeader.js +103 -0
  18. package/dist/components/data-table/components/TableHeader.js.map +1 -0
  19. package/dist/components/data-table/components/TablePagination.d.ts +10 -0
  20. package/dist/components/data-table/components/TablePagination.d.ts.map +1 -0
  21. package/dist/components/data-table/components/TablePagination.js +38 -0
  22. package/dist/components/data-table/components/TablePagination.js.map +1 -0
  23. package/dist/components/data-table/components/index.d.ts +4 -0
  24. package/dist/components/data-table/components/index.d.ts.map +1 -0
  25. package/dist/components/data-table/hooks.d.ts +14 -0
  26. package/dist/components/data-table/hooks.d.ts.map +1 -0
  27. package/dist/components/data-table/hooks.js +120 -0
  28. package/dist/components/data-table/hooks.js.map +1 -0
  29. package/dist/components/data-table/index.d.ts +4 -0
  30. package/dist/components/data-table/index.d.ts.map +1 -0
  31. package/dist/components/data-table/style.css +1 -0
  32. package/dist/components/data-table/types.d.ts +108 -0
  33. package/dist/components/data-table/types.d.ts.map +1 -0
  34. package/dist/components/data-table/utils.d.ts +39 -0
  35. package/dist/components/data-table/utils.d.ts.map +1 -0
  36. package/dist/components/data-table/utils.js +71 -0
  37. package/dist/components/data-table/utils.js.map +1 -0
  38. package/dist/components/dropdown-menu/component.d.ts.map +1 -1
  39. package/dist/components/dropdown-menu/component.js +60 -56
  40. package/dist/components/dropdown-menu/component.js.map +1 -1
  41. package/dist/components/ds-root/component.d.ts.map +1 -1
  42. package/dist/components/ds-root/component.js +15 -16
  43. package/dist/components/ds-root/component.js.map +1 -1
  44. package/dist/components/ds-root/hook.d.ts +5 -0
  45. package/dist/components/ds-root/hook.d.ts.map +1 -0
  46. package/dist/components/ds-root/hook.js +7 -0
  47. package/dist/components/ds-root/hook.js.map +1 -0
  48. package/dist/components/ds-root/index.d.ts +1 -1
  49. package/dist/components/ds-root/index.d.ts.map +1 -1
  50. package/dist/components/field/component.d.ts.map +1 -1
  51. package/dist/components/field/component.js +22 -21
  52. package/dist/components/field/component.js.map +1 -1
  53. package/dist/components/hooks/useBreakpoint.d.ts.map +1 -1
  54. package/dist/components/hooks/useBreakpoint.js +30 -8
  55. package/dist/components/hooks/useBreakpoint.js.map +1 -1
  56. package/dist/components/hooks/useCharts.js +1 -1
  57. package/dist/components/hooks/useCharts.js.map +1 -1
  58. package/dist/components/index.d.ts +3 -1
  59. package/dist/components/index.d.ts.map +1 -1
  60. package/dist/components/modal/Modal.d.ts +1 -1
  61. package/dist/components/modal/Modal.d.ts.map +1 -1
  62. package/dist/components/modal/Modal.js +59 -55
  63. package/dist/components/modal/Modal.js.map +1 -1
  64. package/dist/components/modal/index.d.ts +1 -1
  65. package/dist/components/popover/component.d.ts.map +1 -1
  66. package/dist/components/popover/component.js +22 -9
  67. package/dist/components/popover/component.js.map +1 -1
  68. package/dist/components/popup-panel/component.d.ts.map +1 -1
  69. package/dist/components/popup-panel/component.js +61 -56
  70. package/dist/components/popup-panel/component.js.map +1 -1
  71. package/dist/components/scroll-area/component.d.ts.map +1 -1
  72. package/dist/components/scroll-area/component.js +28 -28
  73. package/dist/components/scroll-area/component.js.map +1 -1
  74. package/dist/components/table/component.d.ts.map +1 -1
  75. package/dist/components/table/component.js.map +1 -1
  76. package/dist/components/theme-provider/component.d.ts +6 -2
  77. package/dist/components/theme-provider/component.d.ts.map +1 -1
  78. package/dist/components/theme-provider/component.js +32 -28
  79. package/dist/components/theme-provider/component.js.map +1 -1
  80. package/dist/components/theme-provider/context/index.d.ts +3 -0
  81. package/dist/components/theme-provider/context/index.d.ts.map +1 -0
  82. package/dist/components/theme-provider/context/provider.d.ts +7 -0
  83. package/dist/components/theme-provider/context/provider.d.ts.map +1 -0
  84. package/dist/components/theme-provider/context/provider.js +11 -0
  85. package/dist/components/theme-provider/context/provider.js.map +1 -0
  86. package/dist/components/theme-provider/context/themeStore.d.ts +11 -0
  87. package/dist/components/theme-provider/context/themeStore.d.ts.map +1 -0
  88. package/dist/components/theme-provider/context/themeStore.js +15 -0
  89. package/dist/components/theme-provider/context/themeStore.js.map +1 -0
  90. package/dist/components/theme-provider/index.d.ts +1 -0
  91. package/dist/components/theme-provider/index.d.ts.map +1 -1
  92. package/dist/components/tree/useTreeCommon.d.ts +10 -10
  93. package/dist/components/tree/useTreeCommon.d.ts.map +1 -1
  94. package/dist/components/utils/client.d.ts +0 -1
  95. package/dist/components/utils/client.d.ts.map +1 -1
  96. package/dist/index.js +223 -219
  97. package/dist/index.js.map +1 -1
  98. package/dist/metadata.d.ts +9 -0
  99. package/dist/metadata.d.ts.map +1 -1
  100. package/dist/metadata.js +18 -0
  101. package/dist/metadata.js.map +1 -1
  102. package/dist/stats.html +1 -1
  103. package/package.json +3 -2
  104. package/dist/components/ds-root/context.d.ts +0 -8
  105. package/dist/components/ds-root/context.d.ts.map +0 -1
  106. package/dist/components/ds-root/context.js +0 -10
  107. package/dist/components/ds-root/context.js.map +0 -1
  108. package/dist/components/utils/WithAntdTokens.d.ts +0 -8
  109. package/dist/components/utils/WithAntdTokens.d.ts.map +0 -1
  110. package/dist/components/utils/WithAntdTokens.js +0 -25
  111. package/dist/components/utils/WithAntdTokens.js.map +0 -1
@@ -0,0 +1,71 @@
1
+ function o(e) {
2
+ return "accessorKey" in e && typeof e.accessorKey == "string";
3
+ }
4
+ function g(e) {
5
+ return "accessorFn" in e && typeof e.accessorFn == "function";
6
+ }
7
+ function S(e) {
8
+ return "header" in e && e.header !== void 0;
9
+ }
10
+ function c(e) {
11
+ return "cell" in e && e.cell !== void 0;
12
+ }
13
+ function l(e) {
14
+ const i = e, t = {
15
+ id: e.key?.toString() || e.dataIndex?.toString() || (o(i) ? i.accessorKey : void 0)
16
+ };
17
+ if (o(i))
18
+ t.accessorKey = i.accessorKey;
19
+ else if (g(i))
20
+ t.accessorFn = i.accessorFn;
21
+ else if (e.dataIndex) {
22
+ const r = Array.isArray(e.dataIndex) ? e.dataIndex.join(".") : e.dataIndex.toString();
23
+ t.accessorKey = r;
24
+ }
25
+ return S(i) ? t.header = i.header : e.title && (typeof e.title == "function" ? t.header = ({ column: r }) => {
26
+ const n = r.getIsSorted(), s = n === "asc" ? "ascend" : n === "desc" ? "descend" : void 0;
27
+ return e.title({ sortOrder: s });
28
+ } : t.header = () => e.title), c(i) ? t.cell = i.cell : e.render && (t.cell = ({ getValue: r, row: n }) => {
29
+ const s = r(), f = n.original, a = n.index;
30
+ return e.render(s, f, a);
31
+ }), e.enableSorting !== void 0 ? t.enableSorting = e.enableSorting : e.sorter !== void 0 && (t.enableSorting = !!e.sorter, typeof e.sorter == "function" && (t.sortingFn = (r, n) => e.sorter(r.original, n.original))), e.enableFiltering !== void 0 && (t.enableColumnFilter = e.enableFiltering), e.filterFn && (typeof e.filterFn == "string" ? t.filterFn = e.filterFn : t.filterFn = (r, n, s) => e.filterFn(r.original, n, s)), e.enableResizing !== void 0 && (t.enableResizing = e.enableResizing), e.size !== void 0 && (t.size = e.size), e.minSize !== void 0 && (t.minSize = e.minSize), e.maxSize !== void 0 && (t.maxSize = e.maxSize), t.meta = {
32
+ ...e.meta,
33
+ align: e.align || e.meta?.align,
34
+ width: e.width,
35
+ fixed: e.fixed,
36
+ ellipsis: e.ellipsis
37
+ }, e.width && (t.size = typeof e.width == "number" ? e.width : void 0), t;
38
+ }
39
+ function h(e) {
40
+ return e.map(l);
41
+ }
42
+ function y(e, i, t) {
43
+ if (typeof t == "function")
44
+ return t(e, i);
45
+ if (typeof t == "string")
46
+ return e[t]?.toString() || i.toString();
47
+ const r = e.key || e.id;
48
+ return r ? r.toString() : i.toString();
49
+ }
50
+ function F(e, i, t) {
51
+ const r = [], n = [];
52
+ return i.forEach((s, f) => {
53
+ const a = y(s, f, t), d = String(a);
54
+ e[d] && (r.push(a), n.push(s));
55
+ }), { selectedRowKeys: r, selectedRows: n };
56
+ }
57
+ function v(e) {
58
+ return !e || e === "left" ? "" : `text-${e}`;
59
+ }
60
+ function p(e) {
61
+ return e.getCanSort?.() || e.getCanFilter?.() || !1;
62
+ }
63
+ export {
64
+ l as convertColumnToTanStack,
65
+ h as convertColumnsToTanStack,
66
+ F as convertSelectionToAntFormat,
67
+ v as getAlignmentClass,
68
+ y as getRowKey,
69
+ p as shouldShowIcons
70
+ };
71
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/data-table/utils.ts"],"sourcesContent":["import { type DataTableColumnType, type RowKey } from \"./types\";\nimport { type ColumnDef, type Row, type AccessorKeyColumnDef, type AccessorFnColumnDef } from \"@tanstack/react-table\";\n\n// Type for columns that might have TanStack properties\ntype ExtendedColumnType<RecordType extends Record<string, any>> = DataTableColumnType<RecordType> & {\n accessorKey?: string;\n accessorFn?: (row: RecordType) => RecordType[keyof RecordType];\n header?: ColumnDef<RecordType>['header'];\n cell?: ColumnDef<RecordType>['cell'];\n};\n\n// Type guards\nfunction hasAccessorKey<T extends Record<string, unknown>>(column: ExtendedColumnType<T>): column is ExtendedColumnType<T> & { accessorKey: string } {\n return 'accessorKey' in column && typeof column.accessorKey === 'string';\n}\n\nfunction hasAccessorFn<T extends Record<string, unknown>>(column: ExtendedColumnType<T>): column is ExtendedColumnType<T> & { accessorFn: (row: T) => T[keyof T] } {\n return 'accessorFn' in column && typeof column.accessorFn === 'function';\n}\n\nfunction hasTanStackHeader<T extends Record<string, unknown>>(column: ExtendedColumnType<T>): column is ExtendedColumnType<T> & { header: ColumnDef<T>['header'] } {\n return 'header' in column && column.header !== undefined;\n}\n\nfunction hasTanStackCell<T extends Record<string, unknown>>(column: ExtendedColumnType<T>): column is ExtendedColumnType<T> & { cell: ColumnDef<T>['cell'] } {\n return 'cell' in column && column.cell !== undefined;\n}\n\n/**\n * Converts Ant Design column definition to TanStack Table column definition\n * Handles both Ant Design props and TanStack props for maximum compatibility\n */\nexport function convertColumnToTanStack<RecordType extends Record<string, any> = Record<string, unknown>>(\n column: DataTableColumnType<RecordType>\n): ColumnDef<RecordType> {\n const extColumn = column as ExtendedColumnType<RecordType>;\n const tanStackColumn: ColumnDef<RecordType> = {\n id: column.key?.toString() || column.dataIndex?.toString() || (hasAccessorKey(extColumn) ? extColumn.accessorKey : undefined),\n };\n\n // Handle data access - priority: accessorKey > accessorFn > dataIndex\n if (hasAccessorKey(extColumn)) {\n (tanStackColumn as AccessorKeyColumnDef<RecordType>).accessorKey = extColumn.accessorKey;\n } else if (hasAccessorFn(extColumn)) {\n (tanStackColumn as AccessorFnColumnDef<RecordType>).accessorFn = extColumn.accessorFn;\n } else if (column.dataIndex) {\n // Convert Ant Design dataIndex to TanStack accessorKey\n const dataIndex = Array.isArray(column.dataIndex) \n ? column.dataIndex.join('.') \n : column.dataIndex.toString();\n (tanStackColumn as AccessorKeyColumnDef<RecordType>).accessorKey = dataIndex;\n }\n\n // Handle header - priority: header > title\n if (hasTanStackHeader(extColumn)) {\n tanStackColumn.header = extColumn.header;\n } else if (column.title) {\n if (typeof column.title === 'function') {\n tanStackColumn.header = ({ column: tanStackCol }) => {\n const sortOrder = tanStackCol.getIsSorted();\n const antSortOrder = sortOrder === 'asc' ? 'ascend' : sortOrder === 'desc' ? 'descend' : undefined;\n return (column.title as (options: { sortOrder?: 'ascend' | 'descend' }) => React.ReactNode)({ sortOrder: antSortOrder });\n };\n } else {\n tanStackColumn.header = () => column.title;\n }\n }\n\n // Handle cell rendering - priority: cell > render\n if (hasTanStackCell(extColumn)) {\n tanStackColumn.cell = extColumn.cell;\n } else if (column.render) {\n tanStackColumn.cell = ({ getValue, row }) => {\n const value = getValue() as RecordType[keyof RecordType];\n const record = row.original;\n const index = row.index;\n return column.render!(value, record, index);\n };\n }\n\n // Handle sorting\n if (column.enableSorting !== undefined) {\n tanStackColumn.enableSorting = column.enableSorting;\n } else if (column.sorter !== undefined) {\n tanStackColumn.enableSorting = !!column.sorter;\n if (typeof column.sorter === 'function') {\n tanStackColumn.sortingFn = (rowA, rowB) => {\n return (column.sorter as (a: RecordType, b: RecordType) => number)(rowA.original, rowB.original);\n };\n }\n }\n\n // Handle filtering\n if (column.enableFiltering !== undefined) {\n tanStackColumn.enableColumnFilter = column.enableFiltering;\n }\n if (column.filterFn) {\n if (typeof column.filterFn === 'string') {\n // TanStack Table supports built-in filter function names as strings\n // Using type assertion here as this is a compatibility layer\n tanStackColumn.filterFn = column.filterFn as 'includesString';\n } else {\n tanStackColumn.filterFn = (row: Row<RecordType>, columnId: string, filterValue: unknown) => {\n return (column.filterFn as (row: RecordType, columnId: string, filterValue: unknown) => boolean)(row.original, columnId, filterValue);\n };\n }\n }\n\n // Handle column resizing\n if (column.enableResizing !== undefined) {\n tanStackColumn.enableResizing = column.enableResizing;\n }\n if (column.size !== undefined) {\n tanStackColumn.size = column.size;\n }\n if (column.minSize !== undefined) {\n tanStackColumn.minSize = column.minSize;\n }\n if (column.maxSize !== undefined) {\n tanStackColumn.maxSize = column.maxSize;\n }\n\n // Handle column metadata for alignment and other features\n tanStackColumn.meta = {\n ...column.meta,\n align: column.align || column.meta?.align,\n width: column.width,\n fixed: column.fixed,\n ellipsis: column.ellipsis,\n };\n\n // Set size/width\n if (column.width) {\n tanStackColumn.size = typeof column.width === 'number' ? column.width : undefined;\n }\n\n return tanStackColumn;\n}\n\n/**\n * Converts array of Ant Design columns to TanStack columns\n */\nexport function convertColumnsToTanStack<RecordType extends Record<string, any> = Record<string, unknown>>(\n columns: DataTableColumnType<RecordType>[]\n): ColumnDef<RecordType>[] {\n return columns.map(convertColumnToTanStack);\n}\n\n/**\n * Generates a unique row key for a record\n * Follows Ant Design's rowKey logic\n */\nexport function getRowKey<RecordType extends Record<string, any> = Record<string, unknown>>(\n record: RecordType, \n index: number,\n rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey)\n): RowKey {\n if (typeof rowKey === 'function') {\n return rowKey(record, index);\n }\n \n if (typeof rowKey === 'string') {\n return record[rowKey]?.toString() || index.toString();\n }\n \n // Default behavior - try 'key', then 'id', then index\n const defaultKey = record.key || record.id;\n return defaultKey ? defaultKey.toString() : index.toString();\n}\n\n/**\n * Converts TanStack selection state to Ant Design format\n */\nexport function convertSelectionToAntFormat<RecordType extends Record<string, any> = Record<string, unknown>>(\n rowSelectionState: Record<string, boolean>,\n data: RecordType[],\n rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey)\n): {\n selectedRowKeys: React.Key[];\n selectedRows: RecordType[];\n} {\n const selectedRowKeys: React.Key[] = [];\n const selectedRows: RecordType[] = [];\n\n data.forEach((record, index) => {\n const key = getRowKey(record, index, rowKey);\n const keyStr = String(key);\n if (rowSelectionState[keyStr]) {\n selectedRowKeys.push(key);\n selectedRows.push(record);\n }\n });\n\n return { selectedRowKeys, selectedRows };\n}\n\n/**\n * Converts Ant Design selection format to TanStack format\n */\nexport function convertSelectionToTanStackFormat<RecordType extends Record<string, any> = Record<string, unknown>>(\n selectedRowKeys: React.Key[],\n _data: RecordType[],\n _rowKey?: RowKey | ((record: RecordType, index?: number) => RowKey)\n): Record<string, boolean> {\n const selectionState: Record<string, boolean> = {};\n \n selectedRowKeys.forEach(key => {\n selectionState[key.toString()] = true;\n });\n\n return selectionState;\n}\n\n/**\n * Gets the appropriate CSS class for text alignment\n */\nexport function getAlignmentClass(align?: 'left' | 'center' | 'right'): string {\n if (!align || align === 'left') return '';\n return `text-${align}`;\n}\n\n/**\n * Determines if a column should show sort/filter icons\n */\nexport function shouldShowIcons(column: { getCanSort?: () => boolean; getCanFilter?: () => boolean }): boolean {\n return column.getCanSort?.() || column.getCanFilter?.() || false;\n}"],"names":["hasAccessorKey","column","hasAccessorFn","hasTanStackHeader","hasTanStackCell","convertColumnToTanStack","extColumn","tanStackColumn","dataIndex","tanStackCol","sortOrder","antSortOrder","getValue","row","value","record","index","rowA","rowB","columnId","filterValue","convertColumnsToTanStack","columns","getRowKey","rowKey","defaultKey","convertSelectionToAntFormat","rowSelectionState","data","selectedRowKeys","selectedRows","key","keyStr","getAlignmentClass","align","shouldShowIcons"],"mappings":"AAYA,SAASA,EAAkDC,GAA0F;AACnJ,SAAO,iBAAiBA,KAAU,OAAOA,EAAO,eAAgB;AAClE;AAEA,SAASC,EAAiDD,GAAyG;AACjK,SAAO,gBAAgBA,KAAU,OAAOA,EAAO,cAAe;AAChE;AAEA,SAASE,EAAqDF,GAAqG;AACjK,SAAO,YAAYA,KAAUA,EAAO,WAAW;AACjD;AAEA,SAASG,EAAmDH,GAAiG;AAC3J,SAAO,UAAUA,KAAUA,EAAO,SAAS;AAC7C;AAMO,SAASI,EACdJ,GACuB;AACvB,QAAMK,IAAYL,GACZM,IAAwC;AAAA,IAC5C,IAAIN,EAAO,KAAK,SAAA,KAAcA,EAAO,WAAW,SAAA,MAAeD,EAAeM,CAAS,IAAIA,EAAU,cAAc;AAAA,EAAA;AAIrH,MAAIN,EAAeM,CAAS;AACzB,IAAAC,EAAoD,cAAcD,EAAU;AAAA,WACpEJ,EAAcI,CAAS;AAC/B,IAAAC,EAAmD,aAAaD,EAAU;AAAA,WAClEL,EAAO,WAAW;AAE3B,UAAMO,IAAY,MAAM,QAAQP,EAAO,SAAS,IAC5CA,EAAO,UAAU,KAAK,GAAG,IACzBA,EAAO,UAAU,SAAA;AACpB,IAAAM,EAAoD,cAAcC;AAAA,EACrE;AAGA,SAAIL,EAAkBG,CAAS,IAC7BC,EAAe,SAASD,EAAU,SACzBL,EAAO,UACZ,OAAOA,EAAO,SAAU,aAC1BM,EAAe,SAAS,CAAC,EAAE,QAAQE,QAAkB;AACnD,UAAMC,IAAYD,EAAY,YAAA,GACxBE,IAAeD,MAAc,QAAQ,WAAWA,MAAc,SAAS,YAAY;AACzF,WAAQT,EAAO,MAA6E,EAAE,WAAWU,GAAc;AAAA,EACzH,IAEAJ,EAAe,SAAS,MAAMN,EAAO,QAKrCG,EAAgBE,CAAS,IAC3BC,EAAe,OAAOD,EAAU,OACvBL,EAAO,WAChBM,EAAe,OAAO,CAAC,EAAE,UAAAK,GAAU,KAAAC,QAAU;AAC3C,UAAMC,IAAQF,EAAA,GACRG,IAASF,EAAI,UACbG,IAAQH,EAAI;AAClB,WAAOZ,EAAO,OAAQa,GAAOC,GAAQC,CAAK;AAAA,EAC5C,IAIEf,EAAO,kBAAkB,SAC3BM,EAAe,gBAAgBN,EAAO,gBAC7BA,EAAO,WAAW,WAC3BM,EAAe,gBAAgB,CAAC,CAACN,EAAO,QACpC,OAAOA,EAAO,UAAW,eAC3BM,EAAe,YAAY,CAACU,GAAMC,MACxBjB,EAAO,OAAoDgB,EAAK,UAAUC,EAAK,QAAQ,KAMjGjB,EAAO,oBAAoB,WAC7BM,EAAe,qBAAqBN,EAAO,kBAEzCA,EAAO,aACL,OAAOA,EAAO,YAAa,WAG7BM,EAAe,WAAWN,EAAO,WAEjCM,EAAe,WAAW,CAACM,GAAsBM,GAAkBC,MACzDnB,EAAO,SAAkFY,EAAI,UAAUM,GAAUC,CAAW,IAMtInB,EAAO,mBAAmB,WAC5BM,EAAe,iBAAiBN,EAAO,iBAErCA,EAAO,SAAS,WAClBM,EAAe,OAAON,EAAO,OAE3BA,EAAO,YAAY,WACrBM,EAAe,UAAUN,EAAO,UAE9BA,EAAO,YAAY,WACrBM,EAAe,UAAUN,EAAO,UAIlCM,EAAe,OAAO;AAAA,IACpB,GAAGN,EAAO;AAAA,IACV,OAAOA,EAAO,SAASA,EAAO,MAAM;AAAA,IACpC,OAAOA,EAAO;AAAA,IACd,OAAOA,EAAO;AAAA,IACd,UAAUA,EAAO;AAAA,EAAA,GAIfA,EAAO,UACTM,EAAe,OAAO,OAAON,EAAO,SAAU,WAAWA,EAAO,QAAQ,SAGnEM;AACT;AAKO,SAASc,EACdC,GACyB;AACzB,SAAOA,EAAQ,IAAIjB,CAAuB;AAC5C;AAMO,SAASkB,EACdR,GACAC,GACAQ,GACQ;AACR,MAAI,OAAOA,KAAW;AACpB,WAAOA,EAAOT,GAAQC,CAAK;AAG7B,MAAI,OAAOQ,KAAW;AACpB,WAAOT,EAAOS,CAAM,GAAG,SAAA,KAAcR,EAAM,SAAA;AAI7C,QAAMS,IAAaV,EAAO,OAAOA,EAAO;AACxC,SAAOU,IAAaA,EAAW,SAAA,IAAaT,EAAM,SAAA;AACpD;AAKO,SAASU,EACdC,GACAC,GACAJ,GAIA;AACA,QAAMK,IAA+B,CAAA,GAC/BC,IAA6B,CAAA;AAEnC,SAAAF,EAAK,QAAQ,CAACb,GAAQC,MAAU;AAC9B,UAAMe,IAAMR,EAAUR,GAAQC,GAAOQ,CAAM,GACrCQ,IAAS,OAAOD,CAAG;AACzB,IAAIJ,EAAkBK,CAAM,MAC1BH,EAAgB,KAAKE,CAAG,GACxBD,EAAa,KAAKf,CAAM;AAAA,EAE5B,CAAC,GAEM,EAAE,iBAAAc,GAAiB,cAAAC,EAAA;AAC5B;AAsBO,SAASG,EAAkBC,GAA6C;AAC7E,SAAI,CAACA,KAASA,MAAU,SAAe,KAChC,QAAQA,CAAK;AACtB;AAKO,SAASC,EAAgBlC,GAA+E;AAC7G,SAAOA,EAAO,aAAA,KAAkBA,EAAO,oBAAoB;AAC7D;"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AASpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAChD,0DAA0D;IAC1D,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/D;;;OAGG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,OAAO,cAAc,CAAC;IAC5C;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,CAChB,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,EAC1C,MAAM,GAAG,KAAK,CACf,CAAC;IACF;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,sWA0B1B,iBAAiB,4CA4InB,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AASpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,OAAO,aAAa,CAAC;AAGrB,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAChD,0DAA0D;IAC1D,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/D;;;OAGG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,OAAO,cAAc,CAAC;IAC5C;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,CAChB,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,EAC1C,MAAM,GAAG,KAAK,CACf,CAAC;IACF;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,GAAI,sWA0B1B,iBAAiB,4CA+InB,CAAC"}
@@ -1,29 +1,30 @@
1
1
  "use client";
2
- import { jsxs as i, jsx as r } from "react/jsx-runtime";
3
- import { useRef as F, useCallback as L, createElement as T } from "react";
2
+ import { jsxs as m, jsx as r } from "react/jsx-runtime";
3
+ import { useRef as B, useCallback as F, createElement as L } from "react";
4
4
  import { Menu as U } from "@base-ui-components/react/menu";
5
5
  import { Popover as W } from "@base-ui-components/react/popover";
6
- import { Command as d } from "../cmdk/index.js";
6
+ import { Command as i } from "../cmdk/index.js";
7
7
  import { FormItemInputContext as q } from "antd/es/form/context";
8
- import { PopupPanelSize as P } from "../popup-panel/constants.js";
8
+ import { PopupPanelSize as I } from "../popup-panel/constants.js";
9
9
  import { useDropdownMenu as H } from "./useDropdownMenu.js";
10
10
  import './style.css';/* empty css */
11
11
  import { parseAntdPlacement as J } from "../utils/placement.js";
12
12
  import { Input as Q } from "../input/component.js";
13
- import { ScrollArea as x } from "../scroll-area/component.js";
13
+ import { ScrollArea as P } from "../scroll-area/component.js";
14
14
  import { DROPDOWN_COLLISION_AVOIDANCE as X } from "../utils/constants.js";
15
15
  import { useControlledState as Y } from "../hooks/useControlledState.js";
16
- import { useCls as Z, useAntdCssVarClassname as $ } from "../utils/antdUtils.js";
16
+ import { useCls as Z } from "../utils/antdUtils.js";
17
+ import { useTheme as $ } from "../theme-provider/context/themeStore.js";
17
18
  import { clsx as c } from "../utils/cn.js";
18
- const Co = ({
19
- children: O,
20
- items: b,
21
- placement: h,
22
- openOnHover: A,
19
+ const wo = ({
20
+ children: x,
21
+ items: O,
22
+ placement: b,
23
+ openOnHover: N,
23
24
  open: S,
24
- onOpenChange: D,
25
- defaultOpen: E,
26
- className: N,
25
+ onOpenChange: A,
26
+ defaultOpen: D,
27
+ className: E,
27
28
  itemRender: M,
28
29
  classNames: o,
29
30
  size: s = "auto",
@@ -33,28 +34,28 @@ const Co = ({
33
34
  placeholder: "Search..."
34
35
  },
35
36
  popupMatchTriggerWidth: R,
36
- beforeList: m,
37
+ beforeList: d,
37
38
  afterList: p,
38
- keepOpenOnSelect: V,
39
+ keepOpenOnSelect: k,
39
40
  highlightedItemKey: l,
40
- selectedItemKeys: k,
41
- getItemKeywords: y,
41
+ selectedItemKeys: y,
42
+ getItemKeywords: j,
42
43
  showCheckbox: C,
43
- itemLabelRender: j
44
+ itemLabelRender: G
44
45
  }) => {
45
- const G = typeof f == "boolean" ? f : n, [_, w] = Y(
46
+ const T = typeof f == "boolean" ? f : n, [V, w] = Y(
46
47
  S,
47
- D,
48
- E
49
- ), e = Z(), v = $(), I = J(h), z = F(null), { itemGroups: u, renderGroup: a } = H({
50
- items: b,
51
- keepOpenOnSelect: V,
52
- selectedItemKeys: k,
48
+ A,
49
+ D
50
+ ), e = Z(), { className: h } = $(), v = J(b), _ = B(null), { itemGroups: u, renderGroup: a } = H({
51
+ items: O,
52
+ keepOpenOnSelect: k,
53
+ selectedItemKeys: y,
53
54
  showCheckbox: C,
54
- getItemKeywords: y,
55
- itemLabelRender: j,
55
+ getItemKeywords: j,
56
+ itemLabelRender: G,
56
57
  itemRender: M,
57
- inCombobox: G,
58
+ inCombobox: T,
58
59
  onOpenChange: w,
59
60
  classNames: {
60
61
  item: o?.item,
@@ -64,16 +65,16 @@ const Co = ({
64
65
  groupLabel: o?.groupLabel,
65
66
  divider: o?.divider
66
67
  }
67
- }), B = L(
68
- () => n ? /* @__PURE__ */ i(
69
- d,
68
+ }), z = F(
69
+ () => n ? /* @__PURE__ */ m(
70
+ i,
70
71
  {
71
72
  className: e("dropdown-menu-container"),
72
73
  disablePointerSelection: n,
73
74
  defaultValue: l ? String(l) : void 0,
74
75
  children: [
75
- /* @__PURE__ */ r(q.Provider, { value: {}, children: /* @__PURE__ */ T(
76
- d.Input,
76
+ /* @__PURE__ */ r(q.Provider, { value: {}, children: /* @__PURE__ */ L(
77
+ i.Input,
77
78
  {
78
79
  ...g,
79
80
  key: "search",
@@ -87,17 +88,17 @@ const Co = ({
87
88
  )
88
89
  }
89
90
  ) }),
90
- m,
91
- /* @__PURE__ */ r(x, { fadeEdges: !0, children: /* @__PURE__ */ i(d.List, { className: e("dropdown-menu-list"), children: [
92
- /* @__PURE__ */ r(d.Empty, { className: e("dropdown-menu-empty"), children: "No results found." }),
91
+ d,
92
+ /* @__PURE__ */ r(P, { fadeEdges: !0, children: /* @__PURE__ */ m(i.List, { className: e("dropdown-menu-list"), children: [
93
+ /* @__PURE__ */ r(i.Empty, { className: e("dropdown-menu-empty"), children: "No results found." }),
93
94
  u.map(a)
94
95
  ] }) }),
95
96
  p
96
97
  ]
97
98
  }
98
- ) : /* @__PURE__ */ i("div", { className: e("dropdown-menu-container"), children: [
99
- m,
100
- /* @__PURE__ */ r(x, { fadeEdges: !0, children: u.map(a) }),
99
+ ) : /* @__PURE__ */ m("div", { className: e("dropdown-menu-container"), children: [
100
+ d,
101
+ /* @__PURE__ */ r(P, { fadeEdges: !0, children: u.map(a) }),
101
102
  p
102
103
  ] }),
103
104
  [
@@ -105,38 +106,42 @@ const Co = ({
105
106
  e,
106
107
  l,
107
108
  g,
108
- m,
109
+ d,
109
110
  u,
110
111
  p,
111
112
  a
112
113
  ]
113
114
  ), t = n ? W : U;
114
- return /* @__PURE__ */ i(
115
+ return /* @__PURE__ */ m(
115
116
  t.Root,
116
117
  {
117
- openOnHover: A,
118
- open: _,
118
+ openOnHover: N,
119
+ open: V,
119
120
  onOpenChange: w,
120
121
  children: [
121
122
  /* @__PURE__ */ r(
122
123
  t.Trigger,
123
124
  {
124
- render: O,
125
- ref: z,
125
+ render: x,
126
+ ref: _,
126
127
  className: c(
127
128
  e("dropdown-menu-trigger"),
128
129
  o?.trigger,
129
- v
130
+ h
130
131
  )
131
132
  }
132
133
  ),
133
134
  /* @__PURE__ */ r(t.Portal, { children: /* @__PURE__ */ r(
134
135
  t.Positioner,
135
136
  {
136
- side: I.side,
137
- align: I.align,
137
+ side: v.side,
138
+ align: v.align,
138
139
  sideOffset: 4,
139
- className: c(e("dropdown-menu-root"), o?.root),
140
+ className: c(
141
+ e("dropdown-menu-root"),
142
+ h,
143
+ o?.root
144
+ ),
140
145
  collisionAvoidance: X,
141
146
  children: /* @__PURE__ */ r(
142
147
  t.Popup,
@@ -147,14 +152,13 @@ const Co = ({
147
152
  C && "dropdown-menu-show-checkbox",
148
153
  R && "dropdown-menu-match-trigger-width"
149
154
  ),
150
- N,
151
- o?.popup,
152
- v
155
+ E,
156
+ o?.popup
153
157
  ),
154
158
  style: {
155
- "--size-width": s in P ? P[s] : void 0
159
+ "--size-width": s in I ? I[s] : void 0
156
160
  },
157
- children: B()
161
+ children: z()
158
162
  }
159
163
  )
160
164
  }
@@ -164,6 +168,6 @@ const Co = ({
164
168
  );
165
169
  };
166
170
  export {
167
- Co as DropdownMenu
171
+ wo as DropdownMenu
168
172
  };
169
173
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/dropdown-menu/component.tsx"],"sourcesContent":["\"use client\";\nimport { Menu } from \"@base-ui-components/react/menu\";\nimport { Popover } from \"@base-ui-components/react/popover\";\nimport { type PopoverProps } from \"antd/es/popover\";\nimport { useCallback, useRef } from \"react\";\nimport {\n clsx,\n DROPDOWN_COLLISION_AVOIDANCE,\n parseAntdPlacement,\n useAntdCssVarClassname,\n useCls,\n} from \"../utils\";\nimport { Command } from \"../cmdk\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { FormItemInputContext } from \"antd/es/form/context\";\n\n// Import component-specific styles\nimport { Input } from \"../input\";\nimport { PopupPanelSize } from \"../popup-panel/constants\";\n\nimport { DropdownMenuItemType } from \"./types\";\nimport { useDropdownMenu, UseDropdownMenuProps } from \"./useDropdownMenu\";\nimport { useControlledState } from \"../hooks\";\n\nimport \"./style.css\";\n\nexport interface DropdownMenuProps\n extends Omit<UseDropdownMenuProps, \"classNames\"> {\n /** Array of menu items to be displayed in the dropdown */\n items: DropdownMenuItemType[];\n /** Custom render function for the trigger element */\n children?: React.ComponentProps<typeof Menu.Trigger>[\"render\"];\n /**\n * Placement of the dropdown relative to the trigger element\n * @default \"bottomLeft\"\n */\n placement?: PopoverProps[\"placement\"];\n /**\n * Whether to open the dropdown on hover instead of click\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Controlled open state of the dropdown\n */\n open?: boolean;\n /**\n * Callback fired when the dropdown open state changes\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Default open state of the dropdown\n */\n defaultOpen?: boolean;\n /**\n * Additional CSS class for the dropdown component\n */\n className?: string;\n /**\n * Custom class names for different parts of the dropdown\n * @default {}\n */\n classNames?: {\n root?: string;\n trigger?: string;\n popup?: string;\n itemIcon?: string;\n itemText?: string;\n positioner?: string;\n } & UseDropdownMenuProps[\"classNames\"];\n\n /**\n * Whether to show search input\n * @default false\n */\n showSearch?: boolean;\n /**\n * Size of the dropdown menu\n * @default \"auto\"\n */\n size?: \"auto\" | keyof typeof PopupPanelSize;\n /**\n * Search placeholder\n */\n searchProps?: Omit<\n React.ComponentProps<typeof Command.Input>,\n \"size\" | \"ref\"\n >;\n /**\n * Whether to match the width of the popup with the trigger\n * @default false\n */\n popupMatchTriggerWidth?: boolean;\n /**\n * Content to display before the list\n */\n beforeList?: React.ReactNode;\n /**\n * Content to display after the list\n */\n afterList?: React.ReactNode;\n}\n\nexport const DropdownMenu = ({\n children,\n items,\n placement,\n openOnHover,\n open: outsideOpen,\n onOpenChange: outsideOnOpenChange,\n defaultOpen,\n className,\n itemRender,\n classNames,\n size = \"auto\",\n showSearch,\n inCombobox: inComboboxProp,\n searchProps = {\n placeholder: \"Search...\",\n },\n popupMatchTriggerWidth,\n beforeList,\n afterList,\n keepOpenOnSelect,\n highlightedItemKey,\n selectedItemKeys,\n getItemKeywords,\n showCheckbox,\n itemLabelRender,\n}: DropdownMenuProps) => {\n const inCombobox =\n typeof inComboboxProp === \"boolean\" ? inComboboxProp : showSearch;\n const [open, onOpenChange] = useControlledState(\n outsideOpen,\n outsideOnOpenChange,\n defaultOpen\n );\n const cls = useCls();\n const antdCssVarClassname = useAntdCssVarClassname();\n const baseUIPlacement = parseAntdPlacement(placement);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const { itemGroups, renderGroup } = useDropdownMenu({\n items,\n keepOpenOnSelect,\n highlightedItemKey,\n selectedItemKeys,\n showCheckbox,\n getItemKeywords,\n itemLabelRender,\n itemRender,\n inCombobox,\n onOpenChange,\n classNames: {\n item: classNames?.item,\n itemIcon: classNames?.itemIcon,\n itemSuffix: classNames?.itemSuffix,\n group: classNames?.group,\n groupLabel: classNames?.groupLabel,\n divider: classNames?.divider,\n },\n });\n const renderMenuInner = useCallback(\n () =>\n showSearch ? (\n <Command\n className={cls(\"dropdown-menu-container\")}\n disablePointerSelection={showSearch}\n defaultValue={\n highlightedItemKey ? String(highlightedItemKey) : undefined\n }\n // filter={(value, search, keywords) => {\n // console.log({ value, search, keywords });\n // const extendValue = value + \" \" + keywords.join(\" \");\n // if (extendValue.toLowerCase().includes(search.toLowerCase()))\n // return 1;\n // return 0;\n // }}\n >\n <FormItemInputContext.Provider value={{}}>\n <Command.Input\n {...searchProps}\n key=\"search\"\n render={\n <Input\n allowClear\n className={cls(\"dropdown-menu-search\")}\n placeholder=\"Search\"\n />\n }\n />\n </FormItemInputContext.Provider>\n {beforeList}\n <ScrollArea fadeEdges>\n <Command.List className={cls(\"dropdown-menu-list\")}>\n <Command.Empty className={cls(\"dropdown-menu-empty\")}>\n No results found.\n </Command.Empty>\n {itemGroups.map(renderGroup)}\n </Command.List>\n </ScrollArea>\n {afterList}\n </Command>\n ) : (\n <div className={cls(\"dropdown-menu-container\")}>\n {beforeList}\n <ScrollArea fadeEdges>{itemGroups.map(renderGroup)}</ScrollArea>\n {afterList}\n </div>\n ),\n [\n showSearch,\n cls,\n highlightedItemKey,\n searchProps,\n beforeList,\n itemGroups,\n afterList,\n renderGroup,\n ]\n );\n const BaseComponent = showSearch ? Popover : Menu;\n\n return (\n <BaseComponent.Root\n openOnHover={openOnHover}\n open={open}\n onOpenChange={onOpenChange}\n >\n <BaseComponent.Trigger\n render={children}\n ref={buttonRef}\n className={clsx(\n cls(\"dropdown-menu-trigger\"),\n classNames?.trigger,\n antdCssVarClassname\n )}\n />\n <BaseComponent.Portal>\n <BaseComponent.Positioner\n side={baseUIPlacement.side}\n align={baseUIPlacement.align}\n sideOffset={4}\n className={clsx(cls(\"dropdown-menu-root\"), classNames?.root)}\n collisionAvoidance={DROPDOWN_COLLISION_AVOIDANCE}\n >\n <BaseComponent.Popup\n className={clsx(\n cls(\n \"dropdown-menu\",\n showCheckbox && \"dropdown-menu-show-checkbox\",\n popupMatchTriggerWidth && \"dropdown-menu-match-trigger-width\"\n ),\n className,\n classNames?.popup,\n antdCssVarClassname\n )}\n style={\n {\n \"--size-width\":\n size in PopupPanelSize ? PopupPanelSize[size] : undefined,\n } as React.CSSProperties\n }\n >\n {renderMenuInner()}\n </BaseComponent.Popup>\n </BaseComponent.Positioner>\n </BaseComponent.Portal>\n </BaseComponent.Root>\n );\n};\n"],"names":["DropdownMenu","children","items","placement","openOnHover","outsideOpen","outsideOnOpenChange","defaultOpen","className","itemRender","classNames","size","showSearch","inComboboxProp","searchProps","popupMatchTriggerWidth","beforeList","afterList","keepOpenOnSelect","highlightedItemKey","selectedItemKeys","getItemKeywords","showCheckbox","itemLabelRender","inCombobox","open","onOpenChange","useControlledState","cls","useCls","antdCssVarClassname","useAntdCssVarClassname","baseUIPlacement","parseAntdPlacement","buttonRef","useRef","itemGroups","renderGroup","useDropdownMenu","renderMenuInner","useCallback","jsxs","Command","jsx","FormItemInputContext","createElement","Input","ScrollArea","BaseComponent","Popover","Menu","clsx","DROPDOWN_COLLISION_AVOIDANCE","PopupPanelSize"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/dropdown-menu/component.tsx"],"sourcesContent":["\"use client\";\nimport { Menu } from \"@base-ui-components/react/menu\";\nimport { Popover } from \"@base-ui-components/react/popover\";\nimport { type PopoverProps } from \"antd/es/popover\";\nimport { useCallback, useRef } from \"react\";\nimport {\n clsx,\n DROPDOWN_COLLISION_AVOIDANCE,\n parseAntdPlacement,\n useAntdCssVarClassname,\n useCls,\n} from \"../utils\";\nimport { Command } from \"../cmdk\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { FormItemInputContext } from \"antd/es/form/context\";\n\n// Import component-specific styles\nimport { Input } from \"../input\";\nimport { PopupPanelSize } from \"../popup-panel/constants\";\n\nimport { DropdownMenuItemType } from \"./types\";\nimport { useDropdownMenu, UseDropdownMenuProps } from \"./useDropdownMenu\";\nimport { useControlledState } from \"../hooks\";\n\nimport \"./style.css\";\nimport { useTheme } from \"../theme-provider\";\n\nexport interface DropdownMenuProps\n extends Omit<UseDropdownMenuProps, \"classNames\"> {\n /** Array of menu items to be displayed in the dropdown */\n items: DropdownMenuItemType[];\n /** Custom render function for the trigger element */\n children?: React.ComponentProps<typeof Menu.Trigger>[\"render\"];\n /**\n * Placement of the dropdown relative to the trigger element\n * @default \"bottomLeft\"\n */\n placement?: PopoverProps[\"placement\"];\n /**\n * Whether to open the dropdown on hover instead of click\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Controlled open state of the dropdown\n */\n open?: boolean;\n /**\n * Callback fired when the dropdown open state changes\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Default open state of the dropdown\n */\n defaultOpen?: boolean;\n /**\n * Additional CSS class for the dropdown component\n */\n className?: string;\n /**\n * Custom class names for different parts of the dropdown\n * @default {}\n */\n classNames?: {\n root?: string;\n trigger?: string;\n popup?: string;\n itemIcon?: string;\n itemText?: string;\n positioner?: string;\n } & UseDropdownMenuProps[\"classNames\"];\n\n /**\n * Whether to show search input\n * @default false\n */\n showSearch?: boolean;\n /**\n * Size of the dropdown menu\n * @default \"auto\"\n */\n size?: \"auto\" | keyof typeof PopupPanelSize;\n /**\n * Search placeholder\n */\n searchProps?: Omit<\n React.ComponentProps<typeof Command.Input>,\n \"size\" | \"ref\"\n >;\n /**\n * Whether to match the width of the popup with the trigger\n * @default false\n */\n popupMatchTriggerWidth?: boolean;\n /**\n * Content to display before the list\n */\n beforeList?: React.ReactNode;\n /**\n * Content to display after the list\n */\n afterList?: React.ReactNode;\n}\n\nexport const DropdownMenu = ({\n children,\n items,\n placement,\n openOnHover,\n open: outsideOpen,\n onOpenChange: outsideOnOpenChange,\n defaultOpen,\n className,\n itemRender,\n classNames,\n size = \"auto\",\n showSearch,\n inCombobox: inComboboxProp,\n searchProps = {\n placeholder: \"Search...\",\n },\n popupMatchTriggerWidth,\n beforeList,\n afterList,\n keepOpenOnSelect,\n highlightedItemKey,\n selectedItemKeys,\n getItemKeywords,\n showCheckbox,\n itemLabelRender,\n}: DropdownMenuProps) => {\n const inCombobox =\n typeof inComboboxProp === \"boolean\" ? inComboboxProp : showSearch;\n const [open, onOpenChange] = useControlledState(\n outsideOpen,\n outsideOnOpenChange,\n defaultOpen\n );\n const cls = useCls();\n const { className: themeClassName } = useTheme();\n const baseUIPlacement = parseAntdPlacement(placement);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const { itemGroups, renderGroup } = useDropdownMenu({\n items,\n keepOpenOnSelect,\n highlightedItemKey,\n selectedItemKeys,\n showCheckbox,\n getItemKeywords,\n itemLabelRender,\n itemRender,\n inCombobox,\n onOpenChange,\n classNames: {\n item: classNames?.item,\n itemIcon: classNames?.itemIcon,\n itemSuffix: classNames?.itemSuffix,\n group: classNames?.group,\n groupLabel: classNames?.groupLabel,\n divider: classNames?.divider,\n },\n });\n const renderMenuInner = useCallback(\n () =>\n showSearch ? (\n <Command\n className={cls(\"dropdown-menu-container\")}\n disablePointerSelection={showSearch}\n defaultValue={\n highlightedItemKey ? String(highlightedItemKey) : undefined\n }\n // filter={(value, search, keywords) => {\n // console.log({ value, search, keywords });\n // const extendValue = value + \" \" + keywords.join(\" \");\n // if (extendValue.toLowerCase().includes(search.toLowerCase()))\n // return 1;\n // return 0;\n // }}\n >\n <FormItemInputContext.Provider value={{}}>\n <Command.Input\n {...searchProps}\n key=\"search\"\n render={\n <Input\n allowClear\n className={cls(\"dropdown-menu-search\")}\n placeholder=\"Search\"\n />\n }\n />\n </FormItemInputContext.Provider>\n {beforeList}\n <ScrollArea fadeEdges>\n <Command.List className={cls(\"dropdown-menu-list\")}>\n <Command.Empty className={cls(\"dropdown-menu-empty\")}>\n No results found.\n </Command.Empty>\n {itemGroups.map(renderGroup)}\n </Command.List>\n </ScrollArea>\n {afterList}\n </Command>\n ) : (\n <div className={cls(\"dropdown-menu-container\")}>\n {beforeList}\n <ScrollArea fadeEdges>{itemGroups.map(renderGroup)}</ScrollArea>\n {afterList}\n </div>\n ),\n [\n showSearch,\n cls,\n highlightedItemKey,\n searchProps,\n beforeList,\n itemGroups,\n afterList,\n renderGroup,\n ]\n );\n const BaseComponent = showSearch ? Popover : Menu;\n\n return (\n <BaseComponent.Root\n openOnHover={openOnHover}\n open={open}\n onOpenChange={onOpenChange}\n >\n <BaseComponent.Trigger\n render={children}\n ref={buttonRef}\n className={clsx(\n cls(\"dropdown-menu-trigger\"),\n classNames?.trigger,\n themeClassName\n )}\n />\n <BaseComponent.Portal>\n <BaseComponent.Positioner\n side={baseUIPlacement.side}\n align={baseUIPlacement.align}\n sideOffset={4}\n className={clsx(\n cls(\"dropdown-menu-root\"),\n themeClassName,\n classNames?.root\n )}\n collisionAvoidance={DROPDOWN_COLLISION_AVOIDANCE}\n >\n <BaseComponent.Popup\n className={clsx(\n cls(\n \"dropdown-menu\",\n showCheckbox && \"dropdown-menu-show-checkbox\",\n popupMatchTriggerWidth && \"dropdown-menu-match-trigger-width\"\n ),\n className,\n classNames?.popup\n )}\n style={\n {\n \"--size-width\":\n size in PopupPanelSize ? PopupPanelSize[size] : undefined,\n } as React.CSSProperties\n }\n >\n {renderMenuInner()}\n </BaseComponent.Popup>\n </BaseComponent.Positioner>\n </BaseComponent.Portal>\n </BaseComponent.Root>\n );\n};\n"],"names":["DropdownMenu","children","items","placement","openOnHover","outsideOpen","outsideOnOpenChange","defaultOpen","className","itemRender","classNames","size","showSearch","inComboboxProp","searchProps","popupMatchTriggerWidth","beforeList","afterList","keepOpenOnSelect","highlightedItemKey","selectedItemKeys","getItemKeywords","showCheckbox","itemLabelRender","inCombobox","open","onOpenChange","useControlledState","cls","useCls","themeClassName","useTheme","baseUIPlacement","parseAntdPlacement","buttonRef","useRef","itemGroups","renderGroup","useDropdownMenu","renderMenuInner","useCallback","jsxs","Command","jsx","FormItemInputContext","createElement","Input","ScrollArea","BaseComponent","Popover","Menu","clsx","DROPDOWN_COLLISION_AVOIDANCE","PopupPanelSize"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAQrC,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACxC;AAED,eAAO,MAAM,MAAM,GAAI,2DAMpB,WAAW,4CAcb,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/component.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACxC;AAED,eAAO,MAAM,MAAM,GAAI,2DAMpB,WAAW,4CAYb,CAAC"}
@@ -1,27 +1,26 @@
1
1
  "use client";
2
- import { jsx as o, jsxs as p } from "react/jsx-runtime";
2
+ import { jsx as r, jsxs as l } from "react/jsx-runtime";
3
3
  import { ThemeProvider as c } from "../theme-provider/component.js";
4
4
  import { Modal as d } from "../modal/index.js";
5
- import n from "antd/es/app/App";
6
- import { DSRootContextProvider as f } from "./context.js";
5
+ import f from "antd/es/app/App";
7
6
  import './style.css';/* empty css */
8
- import { Toast as t } from "../toast/component.js";
9
- import { useCls as a } from "../utils/antdUtils.js";
7
+ import { Toast as o } from "../toast/component.js";
8
+ import { useCls as n } from "../utils/antdUtils.js";
10
9
  import { clsx as h } from "../utils/cn.js";
11
- const T = ({
12
- className: i,
13
- appendClassesTo: m = "html",
14
- children: e,
15
- theme: r,
10
+ const C = ({
11
+ className: m,
12
+ appendClassesTo: t = "html",
13
+ children: i,
14
+ theme: e,
16
15
  ...s
17
16
  }) => {
18
- const l = a();
19
- return /* @__PURE__ */ o(f, { value: { theme: r }, children: /* @__PURE__ */ o(c, { theme: r, ...s, appendClassesTo: m, children: /* @__PURE__ */ o(t.Provider, { children: /* @__PURE__ */ p(d.Provider, { children: [
20
- /* @__PURE__ */ o(t.List, {}),
21
- /* @__PURE__ */ o(n, { className: h(l("root"), i), children: e })
22
- ] }) }) }) });
17
+ const p = n();
18
+ return /* @__PURE__ */ r(c, { theme: e, ...s, appendClassesTo: t, children: /* @__PURE__ */ r(o.Provider, { children: /* @__PURE__ */ l(d.Provider, { children: [
19
+ /* @__PURE__ */ r(o.List, {}),
20
+ /* @__PURE__ */ r(f, { className: h(p("root"), m), children: i })
21
+ ] }) }) });
23
22
  };
24
23
  export {
25
- T as DSRoot
24
+ C as DSRoot
26
25
  };
27
26
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/ds-root/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n ThemeProvider,\n type ThemeProviderProps,\n} from \"../theme-provider/component\";\nimport { Toast } from \"../toast\";\nimport { Modal } from \"../modal\";\nimport App from \"antd/es/app/App\";\nimport { DSRootContextProvider } from \"./context\";\nimport { useCls, clsx } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface DSRootProps extends ThemeProviderProps {\n /**\n * Classname passed to App component\n */\n className?: string;\n\n /**\n * Element to which the theme classes are appended\n * @default \"html\"\n */\n appendClassesTo?: string | HTMLElement;\n}\n\nexport const DSRoot = ({\n className,\n appendClassesTo = \"html\",\n children,\n theme,\n ...props\n}: DSRootProps) => {\n const cls = useCls();\n return (\n <DSRootContextProvider value={{ theme: theme }}>\n <ThemeProvider theme={theme} {...props} appendClassesTo={appendClassesTo}>\n <Toast.Provider>\n <Modal.Provider>\n <Toast.List />\n <App className={clsx(cls(\"root\"), className)}>{children}</App>\n </Modal.Provider>\n </Toast.Provider>\n </ThemeProvider>\n </DSRootContextProvider>\n );\n};\n"],"names":["DSRoot","className","appendClassesTo","children","theme","props","cls","useCls","DSRootContextProvider","ThemeProvider","Toast","jsxs","Modal","jsx","App","clsx"],"mappings":";;;;;;;;;;AA2BO,MAAMA,IAAS,CAAC;AAAA,EACrB,WAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAmB;AACjB,QAAMC,IAAMC,EAAA;AACZ,2BACGC,GAAA,EAAsB,OAAO,EAAE,OAAAJ,KAC9B,4BAACK,GAAA,EAAc,OAAAL,GAAe,GAAGC,GAAO,iBAAAH,GACtC,4BAACQ,EAAM,UAAN,EACC,UAAA,gBAAAC,EAACC,EAAM,UAAN,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACH,EAAM,MAAN,EAAW;AAAA,IACZ,gBAAAG,EAACC,KAAI,WAAWC,EAAKT,EAAI,MAAM,GAAGL,CAAS,GAAI,UAAAE,EAAA,CAAS;AAAA,EAAA,GAC1D,EAAA,CACF,GACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/ds-root/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n ThemeProvider,\n type ThemeProviderProps,\n} from \"../theme-provider/component\";\nimport { Toast } from \"../toast\";\nimport { Modal } from \"../modal\";\nimport App from \"antd/es/app/App\";\nimport { useCls, clsx } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface DSRootProps extends ThemeProviderProps {\n /**\n * Classname passed to App component\n */\n className?: string;\n\n /**\n * Element to which the theme classes are appended\n * @default \"html\"\n */\n appendClassesTo?: string | HTMLElement;\n}\n\nexport const DSRoot = ({\n className,\n appendClassesTo = \"html\",\n children,\n theme,\n ...props\n}: DSRootProps) => {\n const cls = useCls();\n return (\n <ThemeProvider theme={theme} {...props} appendClassesTo={appendClassesTo}>\n <Toast.Provider>\n <Modal.Provider>\n <Toast.List />\n <App className={clsx(cls(\"root\"), className)}>{children}</App>\n </Modal.Provider>\n </Toast.Provider>\n </ThemeProvider>\n );\n};\n"],"names":["DSRoot","className","appendClassesTo","children","theme","props","cls","useCls","jsx","ThemeProvider","Toast","jsxs","Modal","App","clsx"],"mappings":";;;;;;;;;AA0BO,MAAMA,IAAS,CAAC;AAAA,EACrB,WAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAmB;AACjB,QAAMC,IAAMC,EAAA;AACZ,SACE,gBAAAC,EAACC,GAAA,EAAc,OAAAL,GAAe,GAAGC,GAAO,iBAAAH,GACtC,UAAA,gBAAAM,EAACE,EAAM,UAAN,EACC,UAAA,gBAAAC,EAACC,EAAM,UAAN,EACC,UAAA;AAAA,IAAA,gBAAAJ,EAACE,EAAM,MAAN,EAAW;AAAA,IACZ,gBAAAF,EAACK,KAAI,WAAWC,EAAKR,EAAI,MAAM,GAAGL,CAAS,GAAI,UAAAE,EAAA,CAAS;AAAA,EAAA,EAAA,CAC1D,GACF,GACF;AAEJ;"}
@@ -0,0 +1,5 @@
1
+ export declare const useDS: () => {
2
+ theme: import('../..').Theme;
3
+ className: string;
4
+ };
5
+ //# sourceMappingURL=hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/hook.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;CAEjB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { useTheme as e } from "../theme-provider/context/themeStore.js";
3
+ const t = () => e();
4
+ export {
5
+ t as useDS
6
+ };
7
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sources":["../../../src/components/ds-root/hook.ts"],"sourcesContent":["\"use client\";\nimport { useTheme } from \"../theme-provider\";\n\nexport const useDS = () => {\n return useTheme();\n};\n"],"names":["useDS","useTheme"],"mappings":";;AAGO,MAAMA,IAAQ,MACZC,EAAA;"}
@@ -1,3 +1,3 @@
1
1
  export * from './component';
2
- export * from './context';
2
+ export * from './hook';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/field/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,OAAO,CAAC;AAIxD,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3C,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,OAAO,GACjD,QAAQ,GACR,CAAC,SAAS,QAAQ,GAClB,cAAc,GACd,KAAK,CAAC;AAEV,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,eAAe,GAAG,cAAc,GAAG;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,gBAAgB,GAAG,cAAc,GAAG;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,OAAO,GACrE,eAAe,GACf,gBAAgB,CAAC;AAErB;;GAEG;AACH,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,SAAS,EACrC,kDAOG,UAAU,CAAC,CAAC,CAAC,EAChB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4CA0B9B,CAAC;AAEF,eAAO,MAAM,KAAK,EAA6B,CAAC,CAAC,SAAS,SAAS,EACjE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,KACtD,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/field/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,OAAO,CAAC;AAKxD,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3C,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,OAAO,GACjD,QAAQ,GACR,CAAC,SAAS,QAAQ,GAClB,cAAc,GACd,KAAK,CAAC;AAEV,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,eAAe,GAAG,cAAc,GAAG;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,gBAAgB,GAAG,cAAc,GAAG;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,OAAO,GACrE,eAAe,GACf,gBAAgB,CAAC;AAErB;;GAEG;AACH,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,SAAS,EACrC,kDAOG,UAAU,CAAC,CAAC,CAAC,EAChB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4CA0B9B,CAAC;AAEF,eAAO,MAAM,KAAK,EAA6B,CAAC,CAAC,SAAS,SAAS,EACjE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,KACtD,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,31 +1,32 @@
1
1
  "use client";
2
- import { jsxs as o, jsx as c } from "react/jsx-runtime";
3
- import { Select as u, Input as f } from "antd";
4
- import { forwardRef as x, useId as C } from "react";
2
+ import { jsxs as m, jsx as n } from "react/jsx-runtime";
3
+ import { Select as d, Input as f } from "antd";
4
+ import { forwardRef as h, useId as x } from "react";
5
5
  import './style.css';/* empty css */
6
- import { useCls as I, useAntdCssVarClassname as h } from "../utils/antdUtils.js";
6
+ import { useCls as I } from "../utils/antdUtils.js";
7
+ import { useTheme as N } from "../theme-provider/context/themeStore.js";
7
8
  import { clsx as F } from "../utils/cn.js";
8
9
  const j = ({
9
- label: e,
10
- className: i,
11
- size: r = "small",
12
- colon: m = !0,
13
- type: a = "input",
14
- ...t
15
- }, l) => {
16
- const n = I(), s = C(), p = h(), d = () => a === "select" ? (
10
+ label: r,
11
+ className: c,
12
+ size: t = "small",
13
+ colon: i = !0,
14
+ type: p = "input",
15
+ ...s
16
+ }, o) => {
17
+ const l = I(), e = x(), { className: u } = N(), a = () => p === "select" ? (
17
18
  // @ts-expect-error: this is a workaround for the type error
18
- /* @__PURE__ */ c(u, { id: s, ref: l, size: r, ...t.selectProps || {} })
19
- ) : /* @__PURE__ */ c(f, { id: s, ref: l, size: r, ...t.inputProps || {} });
20
- return /* @__PURE__ */ o("div", { className: F(n("field"), p, i), children: [
21
- e && /* @__PURE__ */ o("label", { htmlFor: s, className: n("field-label"), children: [
22
- e,
23
- m ? ":" : ""
19
+ /* @__PURE__ */ n(d, { id: e, ref: o, size: t, ...s.selectProps || {} })
20
+ ) : /* @__PURE__ */ n(f, { id: e, ref: o, size: t, ...s.inputProps || {} });
21
+ return /* @__PURE__ */ m("div", { className: F(l("field"), u, c), children: [
22
+ r && /* @__PURE__ */ m("label", { htmlFor: e, className: l("field-label"), children: [
23
+ r,
24
+ i ? ":" : ""
24
25
  ] }),
25
- d()
26
+ a()
26
27
  ] });
27
- }, w = x(j);
28
+ }, R = h(j);
28
29
  export {
29
- w as Field
30
+ R as Field
30
31
  };
31
32
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/field/component.tsx"],"sourcesContent":["\"use client\";\nimport type { InputProps, InputRef, SelectProps } from \"antd\";\nimport { Input, Select } from \"antd\";\nimport { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport { RefSelectProps } from \"antd/es/select\";\nimport { ForwardedRef, forwardRef, useId } from \"react\";\nimport { clsx, useCls, useAntdCssVarClassname } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport type FieldType = \"input\" | \"select\";\n\ntype RefType<T extends FieldType> = T extends \"input\"\n ? InputRef\n : T extends \"select\"\n ? RefSelectProps\n : never;\n\ninterface BaseFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n label?: React.ReactNode;\n /**\n * Block or inline display\n * @default false\n */\n block?: boolean;\n /**\n * Size of the field\n * @default \"small\"\n */\n size?: SizeType;\n /**\n * Colon after label\n * @default true\n */\n colon?: boolean;\n}\n\ntype InputFieldProps = BaseFieldProps & {\n type?: \"input\";\n inputProps: InputProps;\n};\n\ntype SelectFieldProps = BaseFieldProps & {\n type: \"select\";\n selectProps: SelectProps;\n};\n\nexport type FieldProps<T extends FieldType = \"input\"> = T extends \"input\"\n ? InputFieldProps\n : SelectFieldProps;\n\n/**\n * Generic Field component that forwards ref to Input or Select\n */\nconst FieldInner = <T extends FieldType>(\n {\n label,\n className,\n size = \"small\",\n colon = true,\n type = \"input\",\n ...rest\n }: FieldProps<T>,\n ref: ForwardedRef<RefType<T>>\n) => {\n const cls = useCls();\n const id = useId();\n const cssVarClassname = useAntdCssVarClassname();\n const renderInputOrSelect = () => {\n if (type === \"select\") {\n return (\n // @ts-expect-error: this is a workaround for the type error\n <Select id={id} ref={ref} size={size} {...(rest.selectProps || {})} />\n );\n }\n // @ts-expect-error: this is a workaround for the type error\n return <Input id={id} ref={ref} size={size} {...(rest.inputProps || {})} />;\n };\n return (\n <div className={clsx(cls(\"field\"), cssVarClassname, className)}>\n {label && (\n <label htmlFor={id} className={cls(\"field-label\")}>\n {label}\n {colon ? \":\" : \"\"}\n </label>\n )}\n {renderInputOrSelect()}\n </div>\n );\n};\n\nexport const Field = forwardRef(FieldInner) as <T extends FieldType>(\n props: FieldProps<T> & { ref?: ForwardedRef<RefType<T>> }\n) => ReturnType<typeof FieldInner<T>>;\n"],"names":["FieldInner","label","className","size","colon","type","rest","ref","cls","useCls","id","useId","cssVarClassname","useAntdCssVarClassname","renderInputOrSelect","jsx","Select","Input","jsxs","clsx","Field","forwardRef"],"mappings":";;;;;;;AAuDA,MAAMA,IAAa,CACjB;AAAA,EACE,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,EAAA,GACNC,IAAKC,EAAA,GACLC,IAAkBC,EAAA,GAClBC,IAAsB,MACtBT,MAAS;AAAA;AAAA,IAGT,gBAAAU,EAACC,KAAO,IAAAN,GAAQ,KAAAH,GAAU,MAAAJ,GAAa,GAAIG,EAAK,eAAe,GAAC,CAAI;AAAA,MAIjE,gBAAAS,EAACE,KAAM,IAAAP,GAAQ,KAAAH,GAAU,MAAAJ,GAAa,GAAIG,EAAK,cAAc,CAAA,GAAK;AAE3E,SACE,gBAAAY,EAAC,SAAI,WAAWC,EAAKX,EAAI,OAAO,GAAGI,GAAiBV,CAAS,GAC1D,UAAA;AAAA,IAAAD,uBACE,SAAA,EAAM,SAASS,GAAI,WAAWF,EAAI,aAAa,GAC7C,UAAA;AAAA,MAAAP;AAAA,MACAG,IAAQ,MAAM;AAAA,IAAA,GACjB;AAAA,IAEDU,EAAA;AAAA,EAAoB,GACvB;AAEJ,GAEaM,IAAQC,EAAWrB,CAAU;"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/field/component.tsx"],"sourcesContent":["\"use client\";\nimport type { InputProps, InputRef, SelectProps } from \"antd\";\nimport { Input, Select } from \"antd\";\nimport { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport { RefSelectProps } from \"antd/es/select\";\nimport { ForwardedRef, forwardRef, useId } from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { useTheme } from \"../theme-provider\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport type FieldType = \"input\" | \"select\";\n\ntype RefType<T extends FieldType> = T extends \"input\"\n ? InputRef\n : T extends \"select\"\n ? RefSelectProps\n : never;\n\ninterface BaseFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n label?: React.ReactNode;\n /**\n * Block or inline display\n * @default false\n */\n block?: boolean;\n /**\n * Size of the field\n * @default \"small\"\n */\n size?: SizeType;\n /**\n * Colon after label\n * @default true\n */\n colon?: boolean;\n}\n\ntype InputFieldProps = BaseFieldProps & {\n type?: \"input\";\n inputProps: InputProps;\n};\n\ntype SelectFieldProps = BaseFieldProps & {\n type: \"select\";\n selectProps: SelectProps;\n};\n\nexport type FieldProps<T extends FieldType = \"input\"> = T extends \"input\"\n ? InputFieldProps\n : SelectFieldProps;\n\n/**\n * Generic Field component that forwards ref to Input or Select\n */\nconst FieldInner = <T extends FieldType>(\n {\n label,\n className,\n size = \"small\",\n colon = true,\n type = \"input\",\n ...rest\n }: FieldProps<T>,\n ref: ForwardedRef<RefType<T>>\n) => {\n const cls = useCls();\n const id = useId();\n const { className: themeClassName } = useTheme();\n const renderInputOrSelect = () => {\n if (type === \"select\") {\n return (\n // @ts-expect-error: this is a workaround for the type error\n <Select id={id} ref={ref} size={size} {...(rest.selectProps || {})} />\n );\n }\n // @ts-expect-error: this is a workaround for the type error\n return <Input id={id} ref={ref} size={size} {...(rest.inputProps || {})} />;\n };\n return (\n <div className={clsx(cls(\"field\"), themeClassName, className)}>\n {label && (\n <label htmlFor={id} className={cls(\"field-label\")}>\n {label}\n {colon ? \":\" : \"\"}\n </label>\n )}\n {renderInputOrSelect()}\n </div>\n );\n};\n\nexport const Field = forwardRef(FieldInner) as <T extends FieldType>(\n props: FieldProps<T> & { ref?: ForwardedRef<RefType<T>> }\n) => ReturnType<typeof FieldInner<T>>;\n"],"names":["FieldInner","label","className","size","colon","type","rest","ref","cls","useCls","id","useId","themeClassName","useTheme","renderInputOrSelect","jsx","Select","Input","jsxs","clsx","Field","forwardRef"],"mappings":";;;;;;;;AAwDA,MAAMA,IAAa,CACjB;AAAA,EACE,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,EAAA,GACNC,IAAKC,EAAA,GACL,EAAE,WAAWC,EAAA,IAAmBC,EAAA,GAChCC,IAAsB,MACtBT,MAAS;AAAA;AAAA,IAGT,gBAAAU,EAACC,KAAO,IAAAN,GAAQ,KAAAH,GAAU,MAAAJ,GAAa,GAAIG,EAAK,eAAe,GAAC,CAAI;AAAA,MAIjE,gBAAAS,EAACE,KAAM,IAAAP,GAAQ,KAAAH,GAAU,MAAAJ,GAAa,GAAIG,EAAK,cAAc,CAAA,GAAK;AAE3E,SACE,gBAAAY,EAAC,SAAI,WAAWC,EAAKX,EAAI,OAAO,GAAGI,GAAgBV,CAAS,GACzD,UAAA;AAAA,IAAAD,uBACE,SAAA,EAAM,SAASS,GAAI,WAAWF,EAAI,aAAa,GAC7C,UAAA;AAAA,MAAAP;AAAA,MACAG,IAAQ,MAAM;AAAA,IAAA,GACjB;AAAA,IAEDU,EAAA;AAAA,EAAoB,GACvB;AAEJ,GAEaM,IAAQC,EAAWrB,CAAU;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBreakpoint.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useBreakpoint.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,GAAI,gBAAe,UAAiB;;aAoDhC,UAAU;eAUR,UAAU;qBAUJ,UAAU,SAAS,UAAU;eAUnC,UAAU;CAiCzC,CAAC"}
1
+ {"version":3,"file":"useBreakpoint.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useBreakpoint.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,GAAI,gBAAe,UAAiB;;aAmErD,UAAU;eAaV,UAAU;qBAaP,UAAU,SAAS,UAAU;eAoBhC,UAAU;CAqClB,CAAC"}