@fangxinyan/lumina 0.5.0 → 0.5.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 (184) hide show
  1. package/dist/Accordion.cjs +3 -3
  2. package/dist/Accordion.js +2 -2
  3. package/dist/Alert.cjs +3 -3
  4. package/dist/Alert.js +2 -2
  5. package/dist/AutoComplete.cjs +5 -5
  6. package/dist/AutoComplete.js +4 -4
  7. package/dist/Button.cjs +4 -4
  8. package/dist/Button.js +2 -2
  9. package/dist/Calendar.cjs +3 -3
  10. package/dist/Calendar.js +2 -2
  11. package/dist/Cascader.cjs +4 -4
  12. package/dist/Cascader.js +3 -3
  13. package/dist/Checkbox.cjs +4 -4
  14. package/dist/Checkbox.js +2 -2
  15. package/dist/ColorPicker.cjs +3 -3
  16. package/dist/ColorPicker.js +2 -2
  17. package/dist/CommandPalette.cjs +4 -4
  18. package/dist/CommandPalette.js +3 -3
  19. package/dist/Drawer.cjs +3 -3
  20. package/dist/Drawer.js +2 -2
  21. package/dist/Icon.cjs +3 -3
  22. package/dist/Icon.d.cts +1 -1
  23. package/dist/Icon.d.ts +1 -1
  24. package/dist/Icon.js +1 -1
  25. package/dist/Image.cjs +4 -4
  26. package/dist/Image.js +2 -2
  27. package/dist/Input.cjs +4 -4
  28. package/dist/Input.js +2 -2
  29. package/dist/InputNumber.cjs +4 -4
  30. package/dist/InputNumber.js +3 -3
  31. package/dist/Modal.cjs +4 -4
  32. package/dist/Modal.js +3 -3
  33. package/dist/Pagination.cjs +6 -6
  34. package/dist/Pagination.js +5 -5
  35. package/dist/Popover-DVGQGWX6.css +103 -0
  36. package/dist/Popover.cjs +3 -3
  37. package/dist/Popover.d.cts +23 -1
  38. package/dist/Popover.d.ts +23 -1
  39. package/dist/Popover.js +2 -2
  40. package/dist/Select.cjs +5 -5
  41. package/dist/Select.js +4 -4
  42. package/dist/Table.cjs +9 -9
  43. package/dist/Table.js +7 -7
  44. package/dist/Tag.cjs +4 -4
  45. package/dist/Tag.js +2 -2
  46. package/dist/Timeline-RHZAZKZ7.css +136 -0
  47. package/dist/Timeline.cjs +13 -0
  48. package/dist/Timeline.cjs.map +1 -0
  49. package/dist/Timeline.d.cts +38 -0
  50. package/dist/Timeline.d.ts +38 -0
  51. package/dist/Timeline.js +4 -0
  52. package/dist/Timeline.js.map +1 -0
  53. package/dist/{Toast-6PVSAXQ5.css → Toast-YSACW3EM.css} +2 -2
  54. package/dist/Toast.cjs +4 -4
  55. package/dist/Toast.js +2 -2
  56. package/dist/{Tooltip-ST24GY4S.css → Tooltip-DMKUPC24.css} +1 -0
  57. package/dist/Tooltip.cjs +3 -3
  58. package/dist/Tooltip.js +2 -2
  59. package/dist/Typography.cjs +7 -7
  60. package/dist/Typography.js +2 -2
  61. package/dist/{chunk-BCPAY65C.cjs → chunk-2D5VCIJZ.cjs} +7 -7
  62. package/dist/{chunk-BCPAY65C.cjs.map → chunk-2D5VCIJZ.cjs.map} +1 -1
  63. package/dist/{chunk-LLNEDEST.cjs → chunk-2OBQOEFD.cjs} +4 -4
  64. package/dist/{chunk-LLNEDEST.cjs.map → chunk-2OBQOEFD.cjs.map} +1 -1
  65. package/dist/{chunk-N73JGXYZ.cjs → chunk-3ES5QPAF.cjs} +4 -4
  66. package/dist/{chunk-N73JGXYZ.cjs.map → chunk-3ES5QPAF.cjs.map} +1 -1
  67. package/dist/{chunk-YCHUHMNP.cjs → chunk-3KQKEE5O.cjs} +5 -4
  68. package/dist/chunk-3KQKEE5O.cjs.map +1 -0
  69. package/dist/{chunk-RZ2E3XEU.cjs → chunk-3XIDJEYR.cjs} +21 -6
  70. package/dist/chunk-3XIDJEYR.cjs.map +1 -0
  71. package/dist/{chunk-IOWREUEP.js → chunk-3YYOYDKI.js} +4 -4
  72. package/dist/{chunk-IOWREUEP.js.map → chunk-3YYOYDKI.js.map} +1 -1
  73. package/dist/{chunk-PKXXR76Q.js → chunk-4ADDAZK3.js} +3 -3
  74. package/dist/{chunk-PKXXR76Q.js.map → chunk-4ADDAZK3.js.map} +1 -1
  75. package/dist/{chunk-TZLM5GF4.js → chunk-5SJJI3HL.js} +4 -4
  76. package/dist/{chunk-TZLM5GF4.js.map → chunk-5SJJI3HL.js.map} +1 -1
  77. package/dist/{chunk-2ENTRT7R.cjs → chunk-AJEF2ZB7.cjs} +16 -6
  78. package/dist/chunk-AJEF2ZB7.cjs.map +1 -0
  79. package/dist/{chunk-V2DIQ3RH.js → chunk-ANAQER3T.js} +21 -6
  80. package/dist/chunk-ANAQER3T.js.map +1 -0
  81. package/dist/{chunk-FXQGPHK2.js → chunk-AZRJZM7W.js} +3 -3
  82. package/dist/{chunk-FXQGPHK2.js.map → chunk-AZRJZM7W.js.map} +1 -1
  83. package/dist/{chunk-3BZ47QNV.cjs → chunk-BIXW4ZYW.cjs} +7 -7
  84. package/dist/{chunk-3BZ47QNV.cjs.map → chunk-BIXW4ZYW.cjs.map} +1 -1
  85. package/dist/{chunk-IJA26LRY.cjs → chunk-BPDWBY6Y.cjs} +4 -4
  86. package/dist/{chunk-IJA26LRY.cjs.map → chunk-BPDWBY6Y.cjs.map} +1 -1
  87. package/dist/{chunk-77TZHI76.cjs → chunk-D26YHP2Y.cjs} +7 -7
  88. package/dist/{chunk-77TZHI76.cjs.map → chunk-D26YHP2Y.cjs.map} +1 -1
  89. package/dist/{chunk-T4PI2ZX7.cjs → chunk-D3GZSL2B.cjs} +16 -17
  90. package/dist/chunk-D3GZSL2B.cjs.map +1 -0
  91. package/dist/{chunk-VQBZKRIB.cjs → chunk-DF5K2BZ2.cjs} +6 -6
  92. package/dist/{chunk-VQBZKRIB.cjs.map → chunk-DF5K2BZ2.cjs.map} +1 -1
  93. package/dist/{chunk-7M7NAMR5.js → chunk-DLGFIRVW.js} +14 -4
  94. package/dist/chunk-DLGFIRVW.js.map +1 -0
  95. package/dist/{chunk-6Z24VO3K.js → chunk-E7UQSFKF.js} +3 -3
  96. package/dist/{chunk-6Z24VO3K.js.map → chunk-E7UQSFKF.js.map} +1 -1
  97. package/dist/{chunk-KW7Z4IQC.js → chunk-FLPHVK45.js} +3 -3
  98. package/dist/{chunk-KW7Z4IQC.js.map → chunk-FLPHVK45.js.map} +1 -1
  99. package/dist/{chunk-WUOFJPZ4.js → chunk-GB5NAXBP.js} +3 -3
  100. package/dist/{chunk-WUOFJPZ4.js.map → chunk-GB5NAXBP.js.map} +1 -1
  101. package/dist/{chunk-SMHXSEBD.cjs → chunk-GT45MQAK.cjs} +7 -7
  102. package/dist/{chunk-SMHXSEBD.cjs.map → chunk-GT45MQAK.cjs.map} +1 -1
  103. package/dist/{chunk-TZXEZFCI.cjs → chunk-H2QTLV5T.cjs} +5 -5
  104. package/dist/{chunk-TZXEZFCI.cjs.map → chunk-H2QTLV5T.cjs.map} +1 -1
  105. package/dist/{chunk-FFZLSY2N.js → chunk-HHPYY4LH.js} +4 -4
  106. package/dist/{chunk-FFZLSY2N.js.map → chunk-HHPYY4LH.js.map} +1 -1
  107. package/dist/{chunk-XYVJ3FBQ.cjs → chunk-I7UJA6RM.cjs} +5 -5
  108. package/dist/{chunk-XYVJ3FBQ.cjs.map → chunk-I7UJA6RM.cjs.map} +1 -1
  109. package/dist/{chunk-YFBHVTKN.cjs → chunk-IJIQ4H6C.cjs} +7 -7
  110. package/dist/{chunk-YFBHVTKN.cjs.map → chunk-IJIQ4H6C.cjs.map} +1 -1
  111. package/dist/{chunk-LXNR6TQK.js → chunk-ILVNMES2.js} +3 -3
  112. package/dist/{chunk-LXNR6TQK.js.map → chunk-ILVNMES2.js.map} +1 -1
  113. package/dist/{chunk-JXHMJUVI.js → chunk-JELHUUM5.js} +3 -3
  114. package/dist/{chunk-JXHMJUVI.js.map → chunk-JELHUUM5.js.map} +1 -1
  115. package/dist/{chunk-CTYW42GG.js → chunk-JQZFOIX6.js} +6 -6
  116. package/dist/{chunk-CTYW42GG.js.map → chunk-JQZFOIX6.js.map} +1 -1
  117. package/dist/{chunk-I7WLFADD.js → chunk-LWN2PXW7.js} +3 -3
  118. package/dist/{chunk-I7WLFADD.js.map → chunk-LWN2PXW7.js.map} +1 -1
  119. package/dist/{chunk-I2HHC6QW.js → chunk-N5W6XJI2.js} +3 -3
  120. package/dist/{chunk-I2HHC6QW.js.map → chunk-N5W6XJI2.js.map} +1 -1
  121. package/dist/chunk-P2AV5BD7.cjs +137 -0
  122. package/dist/chunk-P2AV5BD7.cjs.map +1 -0
  123. package/dist/{chunk-ZFJHUOFU.js → chunk-P4XPESR2.js} +4 -4
  124. package/dist/{chunk-ZFJHUOFU.js.map → chunk-P4XPESR2.js.map} +1 -1
  125. package/dist/{chunk-AESLEYST.js → chunk-RJNGXR5Y.js} +4 -4
  126. package/dist/{chunk-AESLEYST.js.map → chunk-RJNGXR5Y.js.map} +1 -1
  127. package/dist/chunk-S3NIRNWM.js +86 -0
  128. package/dist/chunk-S3NIRNWM.js.map +1 -0
  129. package/dist/{chunk-HJIKU6MF.cjs → chunk-S7RFIMA3.cjs} +4 -4
  130. package/dist/{chunk-HJIKU6MF.cjs.map → chunk-S7RFIMA3.cjs.map} +1 -1
  131. package/dist/chunk-TAYFI4RG.cjs +108 -0
  132. package/dist/chunk-TAYFI4RG.cjs.map +1 -0
  133. package/dist/{chunk-OZVPJWXO.cjs → chunk-TCPTBLDV.cjs} +5 -5
  134. package/dist/{chunk-OZVPJWXO.cjs.map → chunk-TCPTBLDV.cjs.map} +1 -1
  135. package/dist/{chunk-E62JFAHW.js → chunk-TGUDT3GK.js} +4 -4
  136. package/dist/{chunk-E62JFAHW.js.map → chunk-TGUDT3GK.js.map} +1 -1
  137. package/dist/{chunk-XCYE4OQV.js → chunk-TMRSI543.js} +3 -3
  138. package/dist/{chunk-XCYE4OQV.js.map → chunk-TMRSI543.js.map} +1 -1
  139. package/dist/{chunk-RWHWEQQX.cjs → chunk-U7TAQLPN.cjs} +6 -6
  140. package/dist/{chunk-RWHWEQQX.cjs.map → chunk-U7TAQLPN.cjs.map} +1 -1
  141. package/dist/chunk-UEHONGPZ.js +115 -0
  142. package/dist/chunk-UEHONGPZ.js.map +1 -0
  143. package/dist/{chunk-NN7WMXY4.cjs → chunk-UUY7EDVJ.cjs} +4 -4
  144. package/dist/{chunk-NN7WMXY4.cjs.map → chunk-UUY7EDVJ.cjs.map} +1 -1
  145. package/dist/{chunk-OM76QWUN.js → chunk-UXABXEWT.js} +3 -3
  146. package/dist/{chunk-OM76QWUN.js.map → chunk-UXABXEWT.js.map} +1 -1
  147. package/dist/{chunk-MDQNUKCP.cjs → chunk-V6466VMN.cjs} +14 -14
  148. package/dist/{chunk-MDQNUKCP.cjs.map → chunk-V6466VMN.cjs.map} +1 -1
  149. package/dist/{chunk-O7C6S644.js → chunk-WBL7LOIH.js} +3 -3
  150. package/dist/{chunk-O7C6S644.js.map → chunk-WBL7LOIH.js.map} +1 -1
  151. package/dist/{chunk-RQV7SMIZ.cjs → chunk-WKNVNN2K.cjs} +5 -5
  152. package/dist/{chunk-RQV7SMIZ.cjs.map → chunk-WKNVNN2K.cjs.map} +1 -1
  153. package/dist/{chunk-HXSAH4Y6.cjs → chunk-WR3FML2W.cjs} +7 -7
  154. package/dist/{chunk-HXSAH4Y6.cjs.map → chunk-WR3FML2W.cjs.map} +1 -1
  155. package/dist/{chunk-QOGROEVD.js → chunk-X3JG3IR6.js} +6 -5
  156. package/dist/chunk-X3JG3IR6.js.map +1 -0
  157. package/dist/{chunk-6XZ362VL.js → chunk-XT7RXXOE.js} +6 -7
  158. package/dist/chunk-XT7RXXOE.js.map +1 -0
  159. package/dist/{chunk-WVBFQB26.cjs → chunk-ZSR5JSYZ.cjs} +8 -8
  160. package/dist/{chunk-WVBFQB26.cjs.map → chunk-ZSR5JSYZ.cjs.map} +1 -1
  161. package/dist/index.cjs +65 -60
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +2 -1
  164. package/dist/index.d.ts +2 -1
  165. package/dist/index.js +26 -25
  166. package/dist/index.js.map +1 -1
  167. package/dist/styles.css +86 -4
  168. package/docs/llms/popover.md +138 -6
  169. package/docs/llms/timeline.md +140 -0
  170. package/docs/llms.md +3 -2
  171. package/package.json +5 -1
  172. package/dist/Popover-NYEKT5CQ.css +0 -10
  173. package/dist/chunk-2ENTRT7R.cjs.map +0 -1
  174. package/dist/chunk-3UU2PUK4.js +0 -66
  175. package/dist/chunk-3UU2PUK4.js.map +0 -1
  176. package/dist/chunk-6XZ362VL.js.map +0 -1
  177. package/dist/chunk-7M7NAMR5.js.map +0 -1
  178. package/dist/chunk-O2HMH5BI.cjs +0 -88
  179. package/dist/chunk-O2HMH5BI.cjs.map +0 -1
  180. package/dist/chunk-QOGROEVD.js.map +0 -1
  181. package/dist/chunk-RZ2E3XEU.cjs.map +0 -1
  182. package/dist/chunk-T4PI2ZX7.cjs.map +0 -1
  183. package/dist/chunk-V2DIQ3RH.js.map +0 -1
  184. package/dist/chunk-YCHUHMNP.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Table/Table.tsx"],"names":["React","v","jsxs","Fragment","jsx","Checkbox","Icon","Pagination","useFloating","createPortal"],"mappings":"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","file":"chunk-MDQNUKCP.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Table.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon } from \"../Icon\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Pagination } from \"../Pagination\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport type RowKey = string | number;\n\nexport interface TableColumnFilterItem {\n text: React.ReactNode;\n value: string | number;\n}\n\nexport interface TableColumn<Row = any> {\n key: string;\n title: React.ReactNode;\n /** Data key to read from row, or custom render. */\n dataIndex?: keyof Row;\n render?: (value: any, row: Row, index: number) => React.ReactNode;\n width?: number | string;\n align?: \"left\" | \"center\" | \"right\";\n sortable?: boolean;\n /** Filter options shown in header dropdown. Requires `onFilter` (or data index match). */\n filters?: TableColumnFilterItem[];\n /**\n * Predicate to decide whether a row matches a given filter value.\n * If omitted, falls back to strict equality on `row[dataIndex]`.\n */\n onFilter?: (value: string | number, row: Row) => boolean;\n /**\n * Default active filter values. When `filteredValue` is controlled externally via\n * `Table.filteredValue`, prefer managing it at the table level.\n */\n defaultFilteredValue?: (string | number)[];\n /** Controlled filter selection — when provided, makes the column's filter controlled. */\n filteredValue?: (string | number)[];\n}\n\nexport type TableVariant = \"default\" | \"striped\" | \"embossed\" | \"cards\";\n\nexport interface PaginationConfig {\n /** Current page (1-indexed). Makes pagination controlled. */\n current?: number;\n /** Uncontrolled initial page. */\n defaultCurrent?: number;\n /** Items per page. */\n pageSize?: number;\n /** Default items per page (uncontrolled). */\n defaultPageSize?: number;\n /** Total item count. Defaults to `data.length` when omitted. */\n total?: number;\n /** Fired when user picks a page or changes page size. */\n onChange?: (page: number, pageSize: number) => void;\n /** Reserved for future: jump-to-page input. */\n showQuickJumper?: boolean;\n /** Reserved for future: page size dropdown. */\n showSizeChanger?: boolean;\n /** Reserved for future: selectable page sizes. */\n pageSizeOptions?: number[];\n}\n\nexport interface RowSelectionConfig<Row = any> {\n /** \"checkbox\" (default) allows multi-select; \"radio\" allows only one row at a time. */\n type?: \"checkbox\" | \"radio\";\n /** Controlled list of selected row keys. */\n selectedRowKeys?: RowKey[];\n /** Uncontrolled initial selection. */\n defaultSelectedRowKeys?: RowKey[];\n /** Fired on selection change; receives the new keys and matching rows. */\n onChange?: (selectedRowKeys: RowKey[], selectedRows: Row[]) => void;\n /** Per-row switch toggling checkbox disabled state. */\n getCheckboxProps?: (row: Row) => { disabled?: boolean };\n}\n\nexport interface ExpandableConfig<Row = any> {\n /** Controlled expanded row keys. */\n expandedRowKeys?: RowKey[];\n /** Uncontrolled initial expanded row keys. */\n defaultExpandedRowKeys?: RowKey[];\n /** Fired when a row expands / collapses. */\n onExpand?: (expanded: boolean, row: Row) => void;\n /** Render function for the expanded panel. When omitted, no expand UI renders. */\n expandedRowRender?: (row: Row, index: number) => React.ReactNode;\n /** Decide whether a given row can be expanded. */\n rowExpandable?: (row: Row) => boolean;\n}\n\nexport interface TableScrollConfig {\n /** Horizontal scroll: min-width of the inner table. */\n x?: number | string;\n /** Vertical scroll: max body height (with sticky header). */\n y?: number | string;\n}\n\nexport interface TableProps<Row = any> {\n columns: TableColumn<Row>[];\n data: Row[];\n rowKey?: keyof Row | ((row: Row) => RowKey);\n /** Visual variant. */\n variant?: TableVariant;\n /** Hoverable rows. */\n hoverable?: boolean;\n /** Striped rows (shortcut for variant=\"striped\"). */\n striped?: boolean;\n\n /** Sort state — controlled. */\n sortKey?: string;\n sortDir?: \"asc\" | \"desc\";\n onSort?: (key: string) => void;\n\n /**\n * Row selection config — preferred API (antd-style).\n * When provided, takes precedence over `selectable` / `selected` / `onSelect`.\n */\n rowSelection?: RowSelectionConfig<Row>;\n\n /**\n * @deprecated Use `rowSelection` instead. Kept for backwards compatibility.\n */\n selectable?: boolean;\n /**\n * @deprecated Use `rowSelection.selectedRowKeys` instead.\n */\n selected?: RowKey[];\n /**\n * @deprecated Use `rowSelection.onChange` instead.\n */\n onSelect?: (keys: RowKey[]) => void;\n\n /** Expandable row config. */\n expandable?: ExpandableConfig<Row>;\n\n /**\n * Pagination config — `false` disables pagination; otherwise renders a bottom\n * pagination bar and slices the data accordingly.\n */\n pagination?: false | PaginationConfig;\n\n /** Horizontal / vertical scroll config. */\n scroll?: TableScrollConfig;\n\n /** Called when user clicks a row. */\n onRowClick?: (row: Row, index: number) => void;\n /** Empty state. */\n empty?: React.ReactNode;\n className?: string;\n}\n\n/** `Table` — neumorphic data table with sorting, selection and visual variants. */\nexport function Table<Row extends Record<string, any> = any>({\n columns,\n data,\n rowKey,\n variant,\n hoverable = true,\n striped,\n sortKey,\n sortDir = \"asc\",\n onSort,\n rowSelection,\n selectable,\n selected = [],\n onSelect,\n expandable,\n pagination,\n scroll,\n onRowClick,\n empty = \"暂无数据\",\n className = \"\",\n}: TableProps<Row>) {\n const keyOf = React.useCallback(\n (row: Row, i: number): RowKey => {\n if (typeof rowKey === \"function\") return rowKey(row);\n if (rowKey) return row[rowKey] as any;\n return i;\n },\n [rowKey]\n );\n\n // ---------- Selection (rowSelection OR legacy selectable) ----------\n const selectionMode = rowSelection ? \"new\" : selectable ? \"legacy\" : \"off\";\n const selectionType = rowSelection?.type ?? \"checkbox\";\n\n const [innerSel, setInnerSel] = React.useState<RowKey[]>(\n rowSelection?.defaultSelectedRowKeys ?? []\n );\n const selControlledNew = rowSelection?.selectedRowKeys !== undefined;\n const selectedKeys: RowKey[] =\n selectionMode === \"new\"\n ? selControlledNew\n ? rowSelection!.selectedRowKeys!\n : innerSel\n : selectionMode === \"legacy\"\n ? selected\n : [];\n\n const commitSelected = (next: RowKey[], rows: Row[]) => {\n if (selectionMode === \"new\") {\n if (!selControlledNew) setInnerSel(next);\n rowSelection!.onChange?.(next, rows);\n } else if (selectionMode === \"legacy\") {\n onSelect?.(next);\n }\n };\n\n // ---------- Filters ----------\n // Per-column active filter values (internal state for uncontrolled columns).\n const [innerFilters, setInnerFilters] = React.useState<Record<string, (string | number)[]>>(\n () => {\n const out: Record<string, (string | number)[]> = {};\n for (const c of columns) {\n if (c.defaultFilteredValue && c.defaultFilteredValue.length) {\n out[c.key] = c.defaultFilteredValue;\n }\n }\n return out;\n }\n );\n const activeFilters: Record<string, (string | number)[]> = React.useMemo(() => {\n const out: Record<string, (string | number)[]> = {};\n for (const c of columns) {\n if (!c.filters?.length) continue;\n if (c.filteredValue !== undefined) {\n if (c.filteredValue.length) out[c.key] = c.filteredValue;\n } else if (innerFilters[c.key]?.length) {\n out[c.key] = innerFilters[c.key];\n }\n }\n return out;\n }, [columns, innerFilters]);\n\n const setColumnFilter = (col: TableColumn<Row>, values: (string | number)[]) => {\n if (col.filteredValue !== undefined) return; // controlled — parent must handle\n setInnerFilters((prev) => {\n const next = { ...prev };\n if (values.length === 0) delete next[col.key];\n else next[col.key] = values;\n return next;\n });\n };\n\n const filteredData = React.useMemo(() => {\n const entries = Object.entries(activeFilters);\n if (entries.length === 0) return data;\n return data.filter((row) => {\n for (const [colKey, vals] of entries) {\n const col = columns.find((c) => c.key === colKey);\n if (!col) continue;\n const match = vals.some((v) => {\n if (col.onFilter) return col.onFilter(v, row);\n if (col.dataIndex != null) {\n const cell = (row as any)[col.dataIndex];\n return cell === v || String(cell) === String(v);\n }\n return false;\n });\n if (!match) return false;\n }\n return true;\n });\n }, [data, columns, activeFilters]);\n\n // ---------- Pagination ----------\n const pagEnabled = pagination !== false && pagination !== undefined;\n const pagCfg: PaginationConfig = pagEnabled ? pagination! : {};\n const [innerPage, setInnerPage] = React.useState<number>(\n pagCfg.defaultCurrent ?? 1\n );\n const [innerPageSize, setInnerPageSize] = React.useState<number>(\n pagCfg.defaultPageSize ?? pagCfg.pageSize ?? 10\n );\n const pageControlled = pagCfg.current !== undefined;\n const curPage = pageControlled ? pagCfg.current! : innerPage;\n const curPageSize = pagCfg.pageSize ?? innerPageSize;\n const totalCount = pagCfg.total ?? filteredData.length;\n // Keep internal state in sync when caller changes pageSize uncontrolled->new.\n React.useEffect(() => {\n if (pagCfg.pageSize !== undefined && pagCfg.pageSize !== innerPageSize) {\n setInnerPageSize(pagCfg.pageSize);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagCfg.pageSize]);\n\n // Reset to page 1 if filters pushed us past the last page\n React.useEffect(() => {\n if (!pagEnabled) return;\n const pages = Math.max(1, Math.ceil(filteredData.length / curPageSize));\n if (!pageControlled && curPage > pages) setInnerPage(pages);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData.length, curPageSize, pagEnabled]);\n\n const pagedData = React.useMemo(() => {\n if (!pagEnabled) return filteredData;\n // If caller passes a pre-sliced page (total != data length and current is\n // controlled), trust them and don't re-slice.\n if (pagCfg.total !== undefined && pageControlled) {\n return filteredData;\n }\n const start = (curPage - 1) * curPageSize;\n return filteredData.slice(start, start + curPageSize);\n }, [pagEnabled, filteredData, curPage, curPageSize, pagCfg.total, pageControlled]);\n\n const onPageChange = (p: number) => {\n if (!pageControlled) setInnerPage(p);\n pagCfg.onChange?.(p, curPageSize);\n };\n\n // ---------- Expandable ----------\n const [innerExpanded, setInnerExpanded] = React.useState<RowKey[]>(\n expandable?.defaultExpandedRowKeys ?? []\n );\n const expandControlled = expandable?.expandedRowKeys !== undefined;\n const expandedKeys: RowKey[] = expandControlled\n ? expandable!.expandedRowKeys!\n : innerExpanded;\n const hasExpandable = !!expandable?.expandedRowRender;\n\n const toggleExpand = (row: Row, k: RowKey) => {\n const isOpen = expandedKeys.includes(k);\n const next = isOpen ? expandedKeys.filter((x) => x !== k) : [...expandedKeys, k];\n if (!expandControlled) setInnerExpanded(next);\n expandable?.onExpand?.(!isOpen, row);\n };\n\n // ---------- Derived bits ----------\n const v: TableVariant = variant ?? (striped ? \"striped\" : \"default\");\n const rowsToRender = pagedData;\n\n const selectableKeysOnPage = rowsToRender\n .map((r, i) => ({ row: r, k: keyOf(r, i) }))\n .filter(({ row }) => {\n if (selectionMode !== \"new\") return true;\n const props = rowSelection?.getCheckboxProps?.(row);\n return !props?.disabled;\n });\n\n const allSelectedOnPage =\n selectionMode !== \"off\" &&\n selectableKeysOnPage.length > 0 &&\n selectableKeysOnPage.every(({ k }) => selectedKeys.includes(k));\n const someSelectedOnPage =\n selectionMode !== \"off\" &&\n selectableKeysOnPage.some(({ k }) => selectedKeys.includes(k)) &&\n !allSelectedOnPage;\n\n const toggleRow = (row: Row, k: RowKey) => {\n if (selectionMode === \"new\") {\n const props = rowSelection?.getCheckboxProps?.(row);\n if (props?.disabled) return;\n let next: RowKey[];\n if (selectionType === \"radio\") {\n next = [k];\n } else {\n next = selectedKeys.includes(k)\n ? selectedKeys.filter((x) => x !== k)\n : [...selectedKeys, k];\n }\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n } else if (selectionMode === \"legacy\") {\n const next = selectedKeys.includes(k)\n ? selectedKeys.filter((x) => x !== k)\n : [...selectedKeys, k];\n commitSelected(next, []);\n }\n };\n const toggleAll = () => {\n if (selectionMode === \"off\") return;\n if (selectionType === \"radio\") return; // radio doesn't support bulk toggle\n if (allSelectedOnPage) {\n // Deselect keys that appear on the current page\n const pageKeys = new Set(selectableKeysOnPage.map(({ k }) => k));\n const next = selectedKeys.filter((k) => !pageKeys.has(k));\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n } else {\n // Select union of existing selection + page's selectable keys\n const set = new Set(selectedKeys);\n selectableKeysOnPage.forEach(({ k }) => set.add(k));\n const next = Array.from(set);\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n }\n };\n\n const showSelCol = selectionMode !== \"off\";\n const showExpandCol = hasExpandable;\n const extraColCount = (showSelCol ? 1 : 0) + (showExpandCol ? 1 : 0);\n const totalColCount = columns.length + extraColCount;\n\n // ---------- Wrapper styling for scroll ----------\n const wrapStyle: React.CSSProperties = {};\n const innerTableStyle: React.CSSProperties = {};\n let wrapClass = \"table-wrap\";\n if (scroll?.y != null) {\n wrapStyle.maxHeight = scroll.y;\n wrapStyle.overflowY = \"auto\";\n wrapClass += \" scroll-y\";\n }\n if (scroll?.x != null) {\n wrapStyle.overflowX = \"auto\";\n innerTableStyle.minWidth = scroll.x;\n wrapClass += \" scroll-x\";\n }\n\n // ---------- Render ----------\n return (\n <>\n <div className={`${wrapClass} ${className}`} style={wrapStyle}>\n <table\n className={`table ${v} ${hoverable ? \"hoverable\" : \"\"} ${scroll?.y != null ? \"sticky-head\" : \"\"}`}\n style={innerTableStyle}\n >\n <thead>\n <tr>\n {showExpandCol && <th className=\"row-expand\" style={{ width: 40 }} />}\n {showSelCol && (\n <th className=\"row-check\" style={{ width: 44 }}>\n {selectionType === \"checkbox\" && (\n <Checkbox\n checked={allSelectedOnPage}\n indeterminate={someSelectedOnPage}\n onChange={toggleAll}\n />\n )}\n </th>\n )}\n {columns.map((c) => {\n const sorted = sortKey === c.key;\n const hasFilters = !!c.filters?.length;\n const filterActive = !!activeFilters[c.key]?.length;\n return (\n <th\n key={c.key}\n className={`${c.sortable ? \"sortable\" : \"\"} ${sorted ? \"sorted\" : \"\"} ${hasFilters ? \"filterable\" : \"\"}`}\n style={{ width: c.width, textAlign: c.align ?? \"left\" }}\n onClick={() => c.sortable && onSort?.(c.key)}\n >\n <span className=\"th-label\">{c.title}</span>\n {c.sortable && (\n <span className=\"sort-ind\">\n <Icon\n name={sorted ? (sortDir === \"asc\" ? \"chevUp\" : \"chevDown\") : \"chevDown\"}\n size={10}\n />\n </span>\n )}\n {hasFilters && (\n <ColumnFilterButton\n column={c}\n activeValues={activeFilters[c.key] ?? []}\n onApply={(values) => setColumnFilter(c, values)}\n active={filterActive}\n />\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {rowsToRender.length === 0 ? (\n <tr>\n <td colSpan={totalColCount} className=\"table-empty\">\n {empty}\n </td>\n </tr>\n ) : (\n rowsToRender.map((row, i) => {\n const k = keyOf(row, i);\n const isSel = selectedKeys.includes(k);\n const selProps = rowSelection?.getCheckboxProps?.(row);\n const canExpand =\n hasExpandable && (expandable?.rowExpandable?.(row) ?? true);\n const isExpanded = canExpand && expandedKeys.includes(k);\n return (\n <React.Fragment key={k}>\n <tr\n className={`${onRowClick ? \"clickable\" : \"\"} ${isSel ? \"selected\" : \"\"}`}\n onClick={onRowClick ? () => onRowClick(row, i) : undefined}\n >\n {showExpandCol && (\n <td\n className=\"row-expand\"\n onClick={(e) => {\n e.stopPropagation();\n if (canExpand) toggleExpand(row, k);\n }}\n >\n {canExpand && (\n <button\n type=\"button\"\n className={`expand-btn ${isExpanded ? \"open\" : \"\"}`}\n aria-expanded={isExpanded}\n aria-label={isExpanded ? \"Collapse row\" : \"Expand row\"}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(row, k);\n }}\n >\n <Icon name=\"chevRight\" size={12} />\n </button>\n )}\n </td>\n )}\n {showSelCol && (\n <td\n className=\"row-check\"\n onClick={(e) => {\n e.stopPropagation();\n toggleRow(row, k);\n }}\n >\n {selectionType === \"radio\" ? (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={isSel}\n disabled={selProps?.disabled}\n className={`radio-dot ${isSel ? \"checked\" : \"\"}`}\n onClick={(e) => {\n e.stopPropagation();\n toggleRow(row, k);\n }}\n />\n ) : (\n <Checkbox\n checked={isSel}\n disabled={selProps?.disabled}\n onChange={() => toggleRow(row, k)}\n />\n )}\n </td>\n )}\n {columns.map((c) => {\n const val = c.dataIndex ? row[c.dataIndex] : undefined;\n return (\n <td key={c.key} style={{ textAlign: c.align ?? \"left\" }}>\n {c.render ? c.render(val, row, i) : (val as React.ReactNode)}\n </td>\n );\n })}\n </tr>\n {isExpanded && expandable?.expandedRowRender && (\n <tr className=\"expanded-row\">\n <td colSpan={totalColCount}>\n <div className=\"expanded-panel\">\n {expandable.expandedRowRender(row, i)}\n </div>\n </td>\n </tr>\n )}\n </React.Fragment>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n {pagEnabled && (\n <div className=\"table-pagination\">\n <Pagination\n total={totalCount}\n pageSize={curPageSize}\n page={curPage}\n onChange={onPageChange}\n />\n </div>\n )}\n </>\n );\n}\n\n/* ============ Column filter button (header popover) ============ */\n\ninterface ColumnFilterButtonProps<Row> {\n column: TableColumn<Row>;\n activeValues: (string | number)[];\n onApply: (values: (string | number)[]) => void;\n active: boolean;\n}\n\nfunction ColumnFilterButton<Row>({\n column,\n activeValues,\n onApply,\n active,\n}: ColumnFilterButtonProps<Row>) {\n const [open, setOpen] = React.useState(false);\n const [draft, setDraft] = React.useState<(string | number)[]>(activeValues);\n const panelRef = React.useRef<HTMLDivElement>(null);\n\n const { triggerRef, floatingStyle } = useFloating<HTMLButtonElement>({\n open,\n placement: \"bottom\",\n panelWidth: 200,\n panelHeight: Math.min(260, (column.filters?.length ?? 0) * 32 + 80),\n alignCross: \"end\",\n });\n\n React.useEffect(() => {\n if (open) setDraft(activeValues);\n }, [open, activeValues]);\n\n React.useEffect(() => {\n if (!open) return;\n const h = (e: MouseEvent) => {\n const t = e.target as Node;\n if (triggerRef.current?.contains(t)) return;\n if (panelRef.current?.contains(t)) return;\n setOpen(false);\n };\n document.addEventListener(\"mousedown\", h);\n return () => document.removeEventListener(\"mousedown\", h);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const toggle = (v: string | number) =>\n setDraft((d) => (d.includes(v) ? d.filter((x) => x !== v) : [...d, v]));\n\n return (\n <>\n <button\n ref={triggerRef}\n type=\"button\"\n className={`filter-ind ${active ? \"active\" : \"\"}`}\n aria-label=\"Filter column\"\n onClick={(e) => {\n e.stopPropagation();\n setOpen((o) => !o);\n }}\n >\n <Icon name=\"filter\" size={10} />\n </button>\n {open &&\n typeof document !== \"undefined\" &&\n createPortal(\n <div\n ref={panelRef}\n className=\"table-filter-panel\"\n style={floatingStyle}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"table-filter-options\">\n {(column.filters ?? []).map((f) => (\n <label key={String(f.value)} className=\"table-filter-item\">\n <Checkbox\n checked={draft.includes(f.value)}\n onChange={() => toggle(f.value)}\n />\n <span>{f.text}</span>\n </label>\n ))}\n </div>\n <div className=\"table-filter-actions\">\n <button\n type=\"button\"\n className=\"tf-btn ghost\"\n onClick={() => {\n setDraft([]);\n onApply([]);\n setOpen(false);\n }}\n >\n 重置\n </button>\n <button\n type=\"button\"\n className=\"tf-btn primary\"\n onClick={() => {\n onApply(draft);\n setOpen(false);\n }}\n >\n 确定\n </button>\n </div>\n </div>,\n document.body\n )}\n </>\n );\n}\n\n/* ============ TablePro ============ */\n\nexport interface TableProProps<Row = any> extends TableProps<Row> {\n /** Toolbar slot — search input, filter, etc. */\n toolbar?: React.ReactNode;\n /** Right-aligned actions slot in toolbar. */\n actions?: React.ReactNode;\n /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */\n footer?: React.ReactNode;\n /** Title shown above the toolbar. */\n title?: React.ReactNode;\n}\n\n/**\n * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,\n * variants, and a footer slot for pagination.\n *\n * Prefer the built-in `pagination` prop over rendering a `<Pagination />` in the\n * `footer` slot; `footer` still works for custom footers.\n */\nexport function TablePro<Row extends Record<string, any> = any>({\n toolbar,\n actions,\n footer,\n title,\n className = \"\",\n ...tableProps\n}: TableProProps<Row>) {\n return (\n <div className={`table-card ${className}`}>\n {(title || toolbar || actions) && (\n <div className=\"table-toolbar\">\n {title && <div className=\"table-title\">{title}</div>}\n <div className=\"table-toolbar-main\">{toolbar}</div>\n {actions && <div className=\"table-toolbar-actions\">{actions}</div>}\n </div>\n )}\n <Table {...tableProps} className=\"joined\" />\n {footer && <div className=\"table-footer\">{footer}</div>}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Table/Table.tsx"],"names":["React","v","jsxs","Fragment","jsx","Checkbox","Icon","Pagination","useFloating","createPortal"],"mappings":"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","file":"chunk-V6466VMN.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Table.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon } from \"../Icon\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Pagination } from \"../Pagination\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport type RowKey = string | number;\n\nexport interface TableColumnFilterItem {\n text: React.ReactNode;\n value: string | number;\n}\n\nexport interface TableColumn<Row = any> {\n key: string;\n title: React.ReactNode;\n /** Data key to read from row, or custom render. */\n dataIndex?: keyof Row;\n render?: (value: any, row: Row, index: number) => React.ReactNode;\n width?: number | string;\n align?: \"left\" | \"center\" | \"right\";\n sortable?: boolean;\n /** Filter options shown in header dropdown. Requires `onFilter` (or data index match). */\n filters?: TableColumnFilterItem[];\n /**\n * Predicate to decide whether a row matches a given filter value.\n * If omitted, falls back to strict equality on `row[dataIndex]`.\n */\n onFilter?: (value: string | number, row: Row) => boolean;\n /**\n * Default active filter values. When `filteredValue` is controlled externally via\n * `Table.filteredValue`, prefer managing it at the table level.\n */\n defaultFilteredValue?: (string | number)[];\n /** Controlled filter selection — when provided, makes the column's filter controlled. */\n filteredValue?: (string | number)[];\n}\n\nexport type TableVariant = \"default\" | \"striped\" | \"embossed\" | \"cards\";\n\nexport interface PaginationConfig {\n /** Current page (1-indexed). Makes pagination controlled. */\n current?: number;\n /** Uncontrolled initial page. */\n defaultCurrent?: number;\n /** Items per page. */\n pageSize?: number;\n /** Default items per page (uncontrolled). */\n defaultPageSize?: number;\n /** Total item count. Defaults to `data.length` when omitted. */\n total?: number;\n /** Fired when user picks a page or changes page size. */\n onChange?: (page: number, pageSize: number) => void;\n /** Reserved for future: jump-to-page input. */\n showQuickJumper?: boolean;\n /** Reserved for future: page size dropdown. */\n showSizeChanger?: boolean;\n /** Reserved for future: selectable page sizes. */\n pageSizeOptions?: number[];\n}\n\nexport interface RowSelectionConfig<Row = any> {\n /** \"checkbox\" (default) allows multi-select; \"radio\" allows only one row at a time. */\n type?: \"checkbox\" | \"radio\";\n /** Controlled list of selected row keys. */\n selectedRowKeys?: RowKey[];\n /** Uncontrolled initial selection. */\n defaultSelectedRowKeys?: RowKey[];\n /** Fired on selection change; receives the new keys and matching rows. */\n onChange?: (selectedRowKeys: RowKey[], selectedRows: Row[]) => void;\n /** Per-row switch toggling checkbox disabled state. */\n getCheckboxProps?: (row: Row) => { disabled?: boolean };\n}\n\nexport interface ExpandableConfig<Row = any> {\n /** Controlled expanded row keys. */\n expandedRowKeys?: RowKey[];\n /** Uncontrolled initial expanded row keys. */\n defaultExpandedRowKeys?: RowKey[];\n /** Fired when a row expands / collapses. */\n onExpand?: (expanded: boolean, row: Row) => void;\n /** Render function for the expanded panel. When omitted, no expand UI renders. */\n expandedRowRender?: (row: Row, index: number) => React.ReactNode;\n /** Decide whether a given row can be expanded. */\n rowExpandable?: (row: Row) => boolean;\n}\n\nexport interface TableScrollConfig {\n /** Horizontal scroll: min-width of the inner table. */\n x?: number | string;\n /** Vertical scroll: max body height (with sticky header). */\n y?: number | string;\n}\n\nexport interface TableProps<Row = any> {\n columns: TableColumn<Row>[];\n data: Row[];\n rowKey?: keyof Row | ((row: Row) => RowKey);\n /** Visual variant. */\n variant?: TableVariant;\n /** Hoverable rows. */\n hoverable?: boolean;\n /** Striped rows (shortcut for variant=\"striped\"). */\n striped?: boolean;\n\n /** Sort state — controlled. */\n sortKey?: string;\n sortDir?: \"asc\" | \"desc\";\n onSort?: (key: string) => void;\n\n /**\n * Row selection config — preferred API (antd-style).\n * When provided, takes precedence over `selectable` / `selected` / `onSelect`.\n */\n rowSelection?: RowSelectionConfig<Row>;\n\n /**\n * @deprecated Use `rowSelection` instead. Kept for backwards compatibility.\n */\n selectable?: boolean;\n /**\n * @deprecated Use `rowSelection.selectedRowKeys` instead.\n */\n selected?: RowKey[];\n /**\n * @deprecated Use `rowSelection.onChange` instead.\n */\n onSelect?: (keys: RowKey[]) => void;\n\n /** Expandable row config. */\n expandable?: ExpandableConfig<Row>;\n\n /**\n * Pagination config — `false` disables pagination; otherwise renders a bottom\n * pagination bar and slices the data accordingly.\n */\n pagination?: false | PaginationConfig;\n\n /** Horizontal / vertical scroll config. */\n scroll?: TableScrollConfig;\n\n /** Called when user clicks a row. */\n onRowClick?: (row: Row, index: number) => void;\n /** Empty state. */\n empty?: React.ReactNode;\n className?: string;\n}\n\n/** `Table` — neumorphic data table with sorting, selection and visual variants. */\nexport function Table<Row extends Record<string, any> = any>({\n columns,\n data,\n rowKey,\n variant,\n hoverable = true,\n striped,\n sortKey,\n sortDir = \"asc\",\n onSort,\n rowSelection,\n selectable,\n selected = [],\n onSelect,\n expandable,\n pagination,\n scroll,\n onRowClick,\n empty = \"暂无数据\",\n className = \"\",\n}: TableProps<Row>) {\n const keyOf = React.useCallback(\n (row: Row, i: number): RowKey => {\n if (typeof rowKey === \"function\") return rowKey(row);\n if (rowKey) return row[rowKey] as any;\n return i;\n },\n [rowKey]\n );\n\n // ---------- Selection (rowSelection OR legacy selectable) ----------\n const selectionMode = rowSelection ? \"new\" : selectable ? \"legacy\" : \"off\";\n const selectionType = rowSelection?.type ?? \"checkbox\";\n\n const [innerSel, setInnerSel] = React.useState<RowKey[]>(\n rowSelection?.defaultSelectedRowKeys ?? []\n );\n const selControlledNew = rowSelection?.selectedRowKeys !== undefined;\n const selectedKeys: RowKey[] =\n selectionMode === \"new\"\n ? selControlledNew\n ? rowSelection!.selectedRowKeys!\n : innerSel\n : selectionMode === \"legacy\"\n ? selected\n : [];\n\n const commitSelected = (next: RowKey[], rows: Row[]) => {\n if (selectionMode === \"new\") {\n if (!selControlledNew) setInnerSel(next);\n rowSelection!.onChange?.(next, rows);\n } else if (selectionMode === \"legacy\") {\n onSelect?.(next);\n }\n };\n\n // ---------- Filters ----------\n // Per-column active filter values (internal state for uncontrolled columns).\n const [innerFilters, setInnerFilters] = React.useState<Record<string, (string | number)[]>>(\n () => {\n const out: Record<string, (string | number)[]> = {};\n for (const c of columns) {\n if (c.defaultFilteredValue && c.defaultFilteredValue.length) {\n out[c.key] = c.defaultFilteredValue;\n }\n }\n return out;\n }\n );\n const activeFilters: Record<string, (string | number)[]> = React.useMemo(() => {\n const out: Record<string, (string | number)[]> = {};\n for (const c of columns) {\n if (!c.filters?.length) continue;\n if (c.filteredValue !== undefined) {\n if (c.filteredValue.length) out[c.key] = c.filteredValue;\n } else if (innerFilters[c.key]?.length) {\n out[c.key] = innerFilters[c.key];\n }\n }\n return out;\n }, [columns, innerFilters]);\n\n const setColumnFilter = (col: TableColumn<Row>, values: (string | number)[]) => {\n if (col.filteredValue !== undefined) return; // controlled — parent must handle\n setInnerFilters((prev) => {\n const next = { ...prev };\n if (values.length === 0) delete next[col.key];\n else next[col.key] = values;\n return next;\n });\n };\n\n const filteredData = React.useMemo(() => {\n const entries = Object.entries(activeFilters);\n if (entries.length === 0) return data;\n return data.filter((row) => {\n for (const [colKey, vals] of entries) {\n const col = columns.find((c) => c.key === colKey);\n if (!col) continue;\n const match = vals.some((v) => {\n if (col.onFilter) return col.onFilter(v, row);\n if (col.dataIndex != null) {\n const cell = (row as any)[col.dataIndex];\n return cell === v || String(cell) === String(v);\n }\n return false;\n });\n if (!match) return false;\n }\n return true;\n });\n }, [data, columns, activeFilters]);\n\n // ---------- Pagination ----------\n const pagEnabled = pagination !== false && pagination !== undefined;\n const pagCfg: PaginationConfig = pagEnabled ? pagination! : {};\n const [innerPage, setInnerPage] = React.useState<number>(\n pagCfg.defaultCurrent ?? 1\n );\n const [innerPageSize, setInnerPageSize] = React.useState<number>(\n pagCfg.defaultPageSize ?? pagCfg.pageSize ?? 10\n );\n const pageControlled = pagCfg.current !== undefined;\n const curPage = pageControlled ? pagCfg.current! : innerPage;\n const curPageSize = pagCfg.pageSize ?? innerPageSize;\n const totalCount = pagCfg.total ?? filteredData.length;\n // Keep internal state in sync when caller changes pageSize uncontrolled->new.\n React.useEffect(() => {\n if (pagCfg.pageSize !== undefined && pagCfg.pageSize !== innerPageSize) {\n setInnerPageSize(pagCfg.pageSize);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagCfg.pageSize]);\n\n // Reset to page 1 if filters pushed us past the last page\n React.useEffect(() => {\n if (!pagEnabled) return;\n const pages = Math.max(1, Math.ceil(filteredData.length / curPageSize));\n if (!pageControlled && curPage > pages) setInnerPage(pages);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filteredData.length, curPageSize, pagEnabled]);\n\n const pagedData = React.useMemo(() => {\n if (!pagEnabled) return filteredData;\n // If caller passes a pre-sliced page (total != data length and current is\n // controlled), trust them and don't re-slice.\n if (pagCfg.total !== undefined && pageControlled) {\n return filteredData;\n }\n const start = (curPage - 1) * curPageSize;\n return filteredData.slice(start, start + curPageSize);\n }, [pagEnabled, filteredData, curPage, curPageSize, pagCfg.total, pageControlled]);\n\n const onPageChange = (p: number) => {\n if (!pageControlled) setInnerPage(p);\n pagCfg.onChange?.(p, curPageSize);\n };\n\n // ---------- Expandable ----------\n const [innerExpanded, setInnerExpanded] = React.useState<RowKey[]>(\n expandable?.defaultExpandedRowKeys ?? []\n );\n const expandControlled = expandable?.expandedRowKeys !== undefined;\n const expandedKeys: RowKey[] = expandControlled\n ? expandable!.expandedRowKeys!\n : innerExpanded;\n const hasExpandable = !!expandable?.expandedRowRender;\n\n const toggleExpand = (row: Row, k: RowKey) => {\n const isOpen = expandedKeys.includes(k);\n const next = isOpen ? expandedKeys.filter((x) => x !== k) : [...expandedKeys, k];\n if (!expandControlled) setInnerExpanded(next);\n expandable?.onExpand?.(!isOpen, row);\n };\n\n // ---------- Derived bits ----------\n const v: TableVariant = variant ?? (striped ? \"striped\" : \"default\");\n const rowsToRender = pagedData;\n\n const selectableKeysOnPage = rowsToRender\n .map((r, i) => ({ row: r, k: keyOf(r, i) }))\n .filter(({ row }) => {\n if (selectionMode !== \"new\") return true;\n const props = rowSelection?.getCheckboxProps?.(row);\n return !props?.disabled;\n });\n\n const allSelectedOnPage =\n selectionMode !== \"off\" &&\n selectableKeysOnPage.length > 0 &&\n selectableKeysOnPage.every(({ k }) => selectedKeys.includes(k));\n const someSelectedOnPage =\n selectionMode !== \"off\" &&\n selectableKeysOnPage.some(({ k }) => selectedKeys.includes(k)) &&\n !allSelectedOnPage;\n\n const toggleRow = (row: Row, k: RowKey) => {\n if (selectionMode === \"new\") {\n const props = rowSelection?.getCheckboxProps?.(row);\n if (props?.disabled) return;\n let next: RowKey[];\n if (selectionType === \"radio\") {\n next = [k];\n } else {\n next = selectedKeys.includes(k)\n ? selectedKeys.filter((x) => x !== k)\n : [...selectedKeys, k];\n }\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n } else if (selectionMode === \"legacy\") {\n const next = selectedKeys.includes(k)\n ? selectedKeys.filter((x) => x !== k)\n : [...selectedKeys, k];\n commitSelected(next, []);\n }\n };\n const toggleAll = () => {\n if (selectionMode === \"off\") return;\n if (selectionType === \"radio\") return; // radio doesn't support bulk toggle\n if (allSelectedOnPage) {\n // Deselect keys that appear on the current page\n const pageKeys = new Set(selectableKeysOnPage.map(({ k }) => k));\n const next = selectedKeys.filter((k) => !pageKeys.has(k));\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n } else {\n // Select union of existing selection + page's selectable keys\n const set = new Set(selectedKeys);\n selectableKeysOnPage.forEach(({ k }) => set.add(k));\n const next = Array.from(set);\n const nextRows = data.filter((r, i) => next.includes(keyOf(r, i)));\n commitSelected(next, nextRows);\n }\n };\n\n const showSelCol = selectionMode !== \"off\";\n const showExpandCol = hasExpandable;\n const extraColCount = (showSelCol ? 1 : 0) + (showExpandCol ? 1 : 0);\n const totalColCount = columns.length + extraColCount;\n\n // ---------- Wrapper styling for scroll ----------\n const wrapStyle: React.CSSProperties = {};\n const innerTableStyle: React.CSSProperties = {};\n let wrapClass = \"table-wrap\";\n if (scroll?.y != null) {\n wrapStyle.maxHeight = scroll.y;\n wrapStyle.overflowY = \"auto\";\n wrapClass += \" scroll-y\";\n }\n if (scroll?.x != null) {\n wrapStyle.overflowX = \"auto\";\n innerTableStyle.minWidth = scroll.x;\n wrapClass += \" scroll-x\";\n }\n\n // ---------- Render ----------\n return (\n <>\n <div className={`${wrapClass} ${className}`} style={wrapStyle}>\n <table\n className={`table ${v} ${hoverable ? \"hoverable\" : \"\"} ${scroll?.y != null ? \"sticky-head\" : \"\"}`}\n style={innerTableStyle}\n >\n <thead>\n <tr>\n {showExpandCol && <th className=\"row-expand\" style={{ width: 40 }} />}\n {showSelCol && (\n <th className=\"row-check\" style={{ width: 44 }}>\n {selectionType === \"checkbox\" && (\n <Checkbox\n checked={allSelectedOnPage}\n indeterminate={someSelectedOnPage}\n onChange={toggleAll}\n />\n )}\n </th>\n )}\n {columns.map((c) => {\n const sorted = sortKey === c.key;\n const hasFilters = !!c.filters?.length;\n const filterActive = !!activeFilters[c.key]?.length;\n return (\n <th\n key={c.key}\n className={`${c.sortable ? \"sortable\" : \"\"} ${sorted ? \"sorted\" : \"\"} ${hasFilters ? \"filterable\" : \"\"}`}\n style={{ width: c.width, textAlign: c.align ?? \"left\" }}\n onClick={() => c.sortable && onSort?.(c.key)}\n >\n <span className=\"th-label\">{c.title}</span>\n {c.sortable && (\n <span className=\"sort-ind\">\n <Icon\n name={sorted ? (sortDir === \"asc\" ? \"chevUp\" : \"chevDown\") : \"chevDown\"}\n size={10}\n />\n </span>\n )}\n {hasFilters && (\n <ColumnFilterButton\n column={c}\n activeValues={activeFilters[c.key] ?? []}\n onApply={(values) => setColumnFilter(c, values)}\n active={filterActive}\n />\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {rowsToRender.length === 0 ? (\n <tr>\n <td colSpan={totalColCount} className=\"table-empty\">\n {empty}\n </td>\n </tr>\n ) : (\n rowsToRender.map((row, i) => {\n const k = keyOf(row, i);\n const isSel = selectedKeys.includes(k);\n const selProps = rowSelection?.getCheckboxProps?.(row);\n const canExpand =\n hasExpandable && (expandable?.rowExpandable?.(row) ?? true);\n const isExpanded = canExpand && expandedKeys.includes(k);\n return (\n <React.Fragment key={k}>\n <tr\n className={`${onRowClick ? \"clickable\" : \"\"} ${isSel ? \"selected\" : \"\"}`}\n onClick={onRowClick ? () => onRowClick(row, i) : undefined}\n >\n {showExpandCol && (\n <td\n className=\"row-expand\"\n onClick={(e) => {\n e.stopPropagation();\n if (canExpand) toggleExpand(row, k);\n }}\n >\n {canExpand && (\n <button\n type=\"button\"\n className={`expand-btn ${isExpanded ? \"open\" : \"\"}`}\n aria-expanded={isExpanded}\n aria-label={isExpanded ? \"Collapse row\" : \"Expand row\"}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(row, k);\n }}\n >\n <Icon name=\"chevRight\" size={12} />\n </button>\n )}\n </td>\n )}\n {showSelCol && (\n <td\n className=\"row-check\"\n onClick={(e) => {\n e.stopPropagation();\n toggleRow(row, k);\n }}\n >\n {selectionType === \"radio\" ? (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={isSel}\n disabled={selProps?.disabled}\n className={`radio-dot ${isSel ? \"checked\" : \"\"}`}\n onClick={(e) => {\n e.stopPropagation();\n toggleRow(row, k);\n }}\n />\n ) : (\n <Checkbox\n checked={isSel}\n disabled={selProps?.disabled}\n onChange={() => toggleRow(row, k)}\n />\n )}\n </td>\n )}\n {columns.map((c) => {\n const val = c.dataIndex ? row[c.dataIndex] : undefined;\n return (\n <td key={c.key} style={{ textAlign: c.align ?? \"left\" }}>\n {c.render ? c.render(val, row, i) : (val as React.ReactNode)}\n </td>\n );\n })}\n </tr>\n {isExpanded && expandable?.expandedRowRender && (\n <tr className=\"expanded-row\">\n <td colSpan={totalColCount}>\n <div className=\"expanded-panel\">\n {expandable.expandedRowRender(row, i)}\n </div>\n </td>\n </tr>\n )}\n </React.Fragment>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n {pagEnabled && (\n <div className=\"table-pagination\">\n <Pagination\n total={totalCount}\n pageSize={curPageSize}\n page={curPage}\n onChange={onPageChange}\n />\n </div>\n )}\n </>\n );\n}\n\n/* ============ Column filter button (header popover) ============ */\n\ninterface ColumnFilterButtonProps<Row> {\n column: TableColumn<Row>;\n activeValues: (string | number)[];\n onApply: (values: (string | number)[]) => void;\n active: boolean;\n}\n\nfunction ColumnFilterButton<Row>({\n column,\n activeValues,\n onApply,\n active,\n}: ColumnFilterButtonProps<Row>) {\n const [open, setOpen] = React.useState(false);\n const [draft, setDraft] = React.useState<(string | number)[]>(activeValues);\n const panelRef = React.useRef<HTMLDivElement>(null);\n\n const { triggerRef, floatingStyle } = useFloating<HTMLButtonElement>({\n open,\n placement: \"bottom\",\n panelWidth: 200,\n panelHeight: Math.min(260, (column.filters?.length ?? 0) * 32 + 80),\n alignCross: \"end\",\n });\n\n React.useEffect(() => {\n if (open) setDraft(activeValues);\n }, [open, activeValues]);\n\n React.useEffect(() => {\n if (!open) return;\n const h = (e: MouseEvent) => {\n const t = e.target as Node;\n if (triggerRef.current?.contains(t)) return;\n if (panelRef.current?.contains(t)) return;\n setOpen(false);\n };\n document.addEventListener(\"mousedown\", h);\n return () => document.removeEventListener(\"mousedown\", h);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const toggle = (v: string | number) =>\n setDraft((d) => (d.includes(v) ? d.filter((x) => x !== v) : [...d, v]));\n\n return (\n <>\n <button\n ref={triggerRef}\n type=\"button\"\n className={`filter-ind ${active ? \"active\" : \"\"}`}\n aria-label=\"Filter column\"\n onClick={(e) => {\n e.stopPropagation();\n setOpen((o) => !o);\n }}\n >\n <Icon name=\"filter\" size={10} />\n </button>\n {open &&\n typeof document !== \"undefined\" &&\n createPortal(\n <div\n ref={panelRef}\n className=\"table-filter-panel\"\n style={floatingStyle}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"table-filter-options\">\n {(column.filters ?? []).map((f) => (\n <label key={String(f.value)} className=\"table-filter-item\">\n <Checkbox\n checked={draft.includes(f.value)}\n onChange={() => toggle(f.value)}\n />\n <span>{f.text}</span>\n </label>\n ))}\n </div>\n <div className=\"table-filter-actions\">\n <button\n type=\"button\"\n className=\"tf-btn ghost\"\n onClick={() => {\n setDraft([]);\n onApply([]);\n setOpen(false);\n }}\n >\n 重置\n </button>\n <button\n type=\"button\"\n className=\"tf-btn primary\"\n onClick={() => {\n onApply(draft);\n setOpen(false);\n }}\n >\n 确定\n </button>\n </div>\n </div>,\n document.body\n )}\n </>\n );\n}\n\n/* ============ TablePro ============ */\n\nexport interface TableProProps<Row = any> extends TableProps<Row> {\n /** Toolbar slot — search input, filter, etc. */\n toolbar?: React.ReactNode;\n /** Right-aligned actions slot in toolbar. */\n actions?: React.ReactNode;\n /** Footer slot — usually <Pagination />. Optional now that `pagination` is built-in. */\n footer?: React.ReactNode;\n /** Title shown above the toolbar. */\n title?: React.ReactNode;\n}\n\n/**\n * `TablePro` — full-featured table card with toolbar, sortable/selectable rows,\n * variants, and a footer slot for pagination.\n *\n * Prefer the built-in `pagination` prop over rendering a `<Pagination />` in the\n * `footer` slot; `footer` still works for custom footers.\n */\nexport function TablePro<Row extends Record<string, any> = any>({\n toolbar,\n actions,\n footer,\n title,\n className = \"\",\n ...tableProps\n}: TableProProps<Row>) {\n return (\n <div className={`table-card ${className}`}>\n {(title || toolbar || actions) && (\n <div className=\"table-toolbar\">\n {title && <div className=\"table-title\">{title}</div>}\n <div className=\"table-toolbar-main\">{toolbar}</div>\n {actions && <div className=\"table-toolbar-actions\">{actions}</div>}\n </div>\n )}\n <Table {...tableProps} className=\"joined\" />\n {footer && <div className=\"table-footer\">{footer}</div>}\n </div>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Icon } from './chunk-QOGROEVD.js';
1
+ import { Icon } from './chunk-X3JG3IR6.js';
2
2
  import './tokens-BIIUTPKN.css';
3
3
  import './shared-NJHRNLRH.css';
4
4
  import './Accordion-REMDCQUD.css';
@@ -95,5 +95,5 @@ var Accordion = ({
95
95
  };
96
96
 
97
97
  export { Accordion };
98
- //# sourceMappingURL=chunk-O7C6S644.js.map
99
- //# sourceMappingURL=chunk-O7C6S644.js.map
98
+ //# sourceMappingURL=chunk-WBL7LOIH.js.map
99
+ //# sourceMappingURL=chunk-WBL7LOIH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":[],"mappings":"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","file":"chunk-O7C6S644.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Accordion.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\n\nexport interface AccordionItem {\n key: string;\n title: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n /** If true, multiple sections can be open at once. */\n multiple?: boolean;\n /**\n * Accordion mode — at most one item open at a time. Takes precedence over `multiple`\n * when both are set.\n */\n accordion?: boolean;\n /**\n * What triggers expansion.\n * - `\"header\"` (default): clicking anywhere on the header toggles.\n * - `\"icon\"`: only the chevron icon is clickable.\n * - `\"disabled\"`: the panel cannot be toggled.\n */\n collapsible?: \"header\" | \"icon\" | \"disabled\";\n activeKeys?: string[];\n defaultActiveKeys?: string[];\n onChange?: (keys: string[]) => void;\n className?: string;\n}\n\nconst AccordionPanel: React.FC<{ open: boolean; children: React.ReactNode }> = ({ open, children }) => {\n const innerRef = React.useRef<HTMLDivElement>(null);\n const [h, setH] = React.useState(0);\n const [animated, setAnimated] = React.useState(false);\n\n React.useLayoutEffect(() => {\n const el = innerRef.current;\n if (!el) return;\n setH(el.scrollHeight);\n const ro = new ResizeObserver(() => setH(el.scrollHeight));\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n React.useEffect(() => {\n const id = requestAnimationFrame(() => setAnimated(true));\n return () => cancelAnimationFrame(id);\n }, []);\n\n return (\n <div\n className=\"accordion-body\"\n style={{ maxHeight: open ? h : 0, transition: animated ? undefined : \"none\" }}\n aria-hidden={!open}\n >\n <div ref={innerRef} className=\"accordion-body-inner\">{children}</div>\n </div>\n );\n};\n\n/** `Accordion` — collapsible sections. */\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n multiple = false,\n accordion = false,\n collapsible = \"header\",\n activeKeys,\n defaultActiveKeys = [],\n onChange,\n className = \"\",\n}) => {\n const [inner, setInner] = React.useState<string[]>(defaultActiveKeys);\n const isControlled = activeKeys !== undefined;\n const keys = isControlled ? activeKeys! : inner;\n\n // accordion takes precedence over multiple\n const singleOpen = accordion || !multiple;\n\n const toggle = (k: string, itemDisabled?: boolean) => {\n if (collapsible === \"disabled\" || itemDisabled) return;\n const next = keys.includes(k)\n ? keys.filter((x) => x !== k)\n : singleOpen\n ? [k]\n : [...keys, k];\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n return (\n <div className={`accordion ${className}`}>\n {items.map((it) => {\n const open = keys.includes(it.key);\n const isDisabled = it.disabled || collapsible === \"disabled\";\n const headerClickable = collapsible === \"header\" && !isDisabled;\n return (\n <div\n key={it.key}\n className={`accordion-item ${open ? \"open\" : \"\"} ${isDisabled ? \"disabled\" : \"\"} ${collapsible === \"icon\" ? \"icon-only\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"accordion-head\"\n disabled={isDisabled}\n onClick={() => headerClickable && toggle(it.key, it.disabled)}\n aria-expanded={open}\n >\n <span>{it.title}</span>\n <span\n className={`accordion-chev${collapsible === \"icon\" ? \" clickable\" : \"\"}`}\n onClick={(e) => {\n if (collapsible === \"icon\" && !isDisabled) {\n e.stopPropagation();\n toggle(it.key, it.disabled);\n }\n }}\n >\n <Icon name=\"chevDown\" size={16} />\n </span>\n </button>\n <AccordionPanel open={open}>{it.content}</AccordionPanel>\n </div>\n );\n })}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":[],"mappings":"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","file":"chunk-WBL7LOIH.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Accordion.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\n\nexport interface AccordionItem {\n key: string;\n title: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n /** If true, multiple sections can be open at once. */\n multiple?: boolean;\n /**\n * Accordion mode — at most one item open at a time. Takes precedence over `multiple`\n * when both are set.\n */\n accordion?: boolean;\n /**\n * What triggers expansion.\n * - `\"header\"` (default): clicking anywhere on the header toggles.\n * - `\"icon\"`: only the chevron icon is clickable.\n * - `\"disabled\"`: the panel cannot be toggled.\n */\n collapsible?: \"header\" | \"icon\" | \"disabled\";\n activeKeys?: string[];\n defaultActiveKeys?: string[];\n onChange?: (keys: string[]) => void;\n className?: string;\n}\n\nconst AccordionPanel: React.FC<{ open: boolean; children: React.ReactNode }> = ({ open, children }) => {\n const innerRef = React.useRef<HTMLDivElement>(null);\n const [h, setH] = React.useState(0);\n const [animated, setAnimated] = React.useState(false);\n\n React.useLayoutEffect(() => {\n const el = innerRef.current;\n if (!el) return;\n setH(el.scrollHeight);\n const ro = new ResizeObserver(() => setH(el.scrollHeight));\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n React.useEffect(() => {\n const id = requestAnimationFrame(() => setAnimated(true));\n return () => cancelAnimationFrame(id);\n }, []);\n\n return (\n <div\n className=\"accordion-body\"\n style={{ maxHeight: open ? h : 0, transition: animated ? undefined : \"none\" }}\n aria-hidden={!open}\n >\n <div ref={innerRef} className=\"accordion-body-inner\">{children}</div>\n </div>\n );\n};\n\n/** `Accordion` — collapsible sections. */\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n multiple = false,\n accordion = false,\n collapsible = \"header\",\n activeKeys,\n defaultActiveKeys = [],\n onChange,\n className = \"\",\n}) => {\n const [inner, setInner] = React.useState<string[]>(defaultActiveKeys);\n const isControlled = activeKeys !== undefined;\n const keys = isControlled ? activeKeys! : inner;\n\n // accordion takes precedence over multiple\n const singleOpen = accordion || !multiple;\n\n const toggle = (k: string, itemDisabled?: boolean) => {\n if (collapsible === \"disabled\" || itemDisabled) return;\n const next = keys.includes(k)\n ? keys.filter((x) => x !== k)\n : singleOpen\n ? [k]\n : [...keys, k];\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n return (\n <div className={`accordion ${className}`}>\n {items.map((it) => {\n const open = keys.includes(it.key);\n const isDisabled = it.disabled || collapsible === \"disabled\";\n const headerClickable = collapsible === \"header\" && !isDisabled;\n return (\n <div\n key={it.key}\n className={`accordion-item ${open ? \"open\" : \"\"} ${isDisabled ? \"disabled\" : \"\"} ${collapsible === \"icon\" ? \"icon-only\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"accordion-head\"\n disabled={isDisabled}\n onClick={() => headerClickable && toggle(it.key, it.disabled)}\n aria-expanded={open}\n >\n <span>{it.title}</span>\n <span\n className={`accordion-chev${collapsible === \"icon\" ? \" clickable\" : \"\"}`}\n onClick={(e) => {\n if (collapsible === \"icon\" && !isDisabled) {\n e.stopPropagation();\n toggle(it.key, it.disabled);\n }\n }}\n >\n <Icon name=\"chevDown\" size={16} />\n </span>\n </button>\n <AccordionPanel open={open}>{it.content}</AccordionPanel>\n </div>\n );\n })}\n </div>\n );\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkYCHUHMNP_cjs = require('./chunk-YCHUHMNP.cjs');
3
+ var chunk3KQKEE5O_cjs = require('./chunk-3KQKEE5O.cjs');
4
4
  require('./tokens-BIIUTPKN.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./Tag-FGDY3W7E.css');
@@ -27,7 +27,7 @@ var Tag = ({
27
27
  ].filter(Boolean).join(" ");
28
28
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cls, ...rest, children: [
29
29
  dot && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dot" }),
30
- icon && /* @__PURE__ */ jsxRuntime.jsx(chunkYCHUHMNP_cjs.Icon, { name: icon, size: 11, className: "tag-ico" }),
30
+ icon && /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: icon, size: 11, className: "tag-ico" }),
31
31
  children,
32
32
  removable && /* @__PURE__ */ jsxRuntime.jsx(
33
33
  "span",
@@ -39,7 +39,7 @@ var Tag = ({
39
39
  e.stopPropagation();
40
40
  onRemove?.();
41
41
  },
42
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkYCHUHMNP_cjs.Icon, { name: "x", size: 11 })
42
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: "x", size: 11 })
43
43
  }
44
44
  )
45
45
  ] });
@@ -61,5 +61,5 @@ var Badge = ({
61
61
 
62
62
  exports.Badge = Badge;
63
63
  exports.Tag = Tag;
64
- //# sourceMappingURL=chunk-RQV7SMIZ.cjs.map
65
- //# sourceMappingURL=chunk-RQV7SMIZ.cjs.map
64
+ //# sourceMappingURL=chunk-WKNVNN2K.cjs.map
65
+ //# sourceMappingURL=chunk-WKNVNN2K.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Tag/Tag.tsx"],"names":["jsxs","jsx","Icon"],"mappings":";;;;;;;;AAwBO,IAAM,MAA0B,CAAC;AAAA,EACtC,IAAA,GAAO,SAAA;AAAA,EACP,KAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,GAAA,GAAM;AAAA,IACV,KAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA,IAAS,OAAA;AAAA,IACT,CAAC,QAAA,IAAY,CAAC,KAAA,IAAS,YAAA;AAAA,IACvB;AAAA,GACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AACX,EAAA,uBACEA,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAA,EAAM,GAAG,IAAA,EACvB,QAAA,EAAA;AAAA,IAAA,GAAA,oBAAOC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,KAAA,EAAM,CAAA;AAAA,IAC7B,IAAA,mCAASC,sBAAA,EAAA,EAAK,IAAA,EAAM,MAAM,IAAA,EAAM,EAAA,EAAI,WAAU,SAAA,EAAU,CAAA;AAAA,IACxD,QAAA;AAAA,IACA,SAAA,oBACCD,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,GAAA;AAAA,QACV,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,QAAA;AAAA,QACX,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,UAAA,QAAA,IAAW;AAAA,QACb,CAAA;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAK,GAAA,EAAI,MAAM,EAAA,EAAI;AAAA;AAAA;AAC3B,GAAA,EAEJ,CAAA;AAEJ;AAYO,IAAM,QAA8B,CAAC;AAAA,EAC1C,KAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,IAAA,GAAO,GAAA,IAAQ,OAAO,KAAA,KAAU,YAAY,KAAA,GAAQ,CAAA;AAC1D,EAAA,uCACG,MAAA,EAAA,EAAK,SAAA,EAAW,cAAc,SAAS,CAAA,CAAA,EAAK,GAAG,IAAA,EAC7C,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,wBACCD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,GAAA,GAAM,KAAA,GAAQ,EAAE,IAC/C,QAAA,EAAA,CAAC,GAAA,KAAQ,KAAA,GAAS,EAAA,GAAK,QAAQ,KAAA,CAAA,EAClC;AAAA,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-RQV7SMIZ.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Tag.css\";\nimport * as React from \"react\";\nimport { Icon, type IconName } from \"../Icon\";\n\nexport type TagTone = \"neutral\" | \"accent\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n\nexport interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {\n tone?: TagTone;\n solid?: boolean;\n /** Render a leading colored dot. */\n dot?: boolean;\n /** Leading icon (uses the built-in `Icon` component). */\n icon?: IconName;\n /** Show a close button. */\n removable?: boolean;\n onRemove?: () => void;\n /** Whether to render the tag outline/flat shadow. Defaults to `true`. */\n bordered?: boolean;\n children?: React.ReactNode;\n}\n\n/** `Tag` — small label/pill. */\nexport const Tag: React.FC<TagProps> = ({\n tone = \"neutral\",\n solid,\n dot,\n icon,\n removable,\n onRemove,\n bordered = true,\n className = \"\",\n children,\n ...rest\n}) => {\n const cls = [\n \"tag\",\n tone,\n solid && \"solid\",\n !bordered && !solid && \"borderless\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n return (\n <span className={cls} {...rest}>\n {dot && <span className=\"dot\" />}\n {icon && <Icon name={icon} size={11} className=\"tag-ico\" />}\n {children}\n {removable && (\n <span\n className=\"x\"\n role=\"button\"\n aria-label=\"Remove\"\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.();\n }}\n >\n <Icon name=\"x\" size={11} />\n </span>\n )}\n </span>\n );\n};\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Numeric count — renders as \"99+\" if > 99. */\n count?: number;\n /** Show a tiny dot instead of a number. */\n dot?: boolean;\n tone?: TagTone;\n children?: React.ReactNode;\n}\n\n/** `Badge` — notification dot / count. Wrap around another element. */\nexport const Badge: React.FC<BadgeProps> = ({\n count,\n dot,\n tone = \"danger\",\n children,\n className = \"\",\n ...rest\n}) => {\n const show = dot || (typeof count === \"number\" && count > 0);\n return (\n <span className={`badge-wrap ${className}`} {...rest}>\n {children}\n {show && (\n <span className={`badge ${tone} ${dot ? \"dot\" : \"\"}`}>\n {!dot && (count! > 99 ? \"99+\" : count)}\n </span>\n )}\n </span>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/Tag/Tag.tsx"],"names":["jsxs","jsx","Icon"],"mappings":";;;;;;;;AAwBO,IAAM,MAA0B,CAAC;AAAA,EACtC,IAAA,GAAO,SAAA;AAAA,EACP,KAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,GAAA,GAAM;AAAA,IACV,KAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA,IAAS,OAAA;AAAA,IACT,CAAC,QAAA,IAAY,CAAC,KAAA,IAAS,YAAA;AAAA,IACvB;AAAA,GACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AACX,EAAA,uBACEA,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAA,EAAM,GAAG,IAAA,EACvB,QAAA,EAAA;AAAA,IAAA,GAAA,oBAAOC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,KAAA,EAAM,CAAA;AAAA,IAC7B,IAAA,mCAASC,sBAAA,EAAA,EAAK,IAAA,EAAM,MAAM,IAAA,EAAM,EAAA,EAAI,WAAU,SAAA,EAAU,CAAA;AAAA,IACxD,QAAA;AAAA,IACA,SAAA,oBACCD,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,GAAA;AAAA,QACV,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAW,QAAA;AAAA,QACX,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,UAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,UAAA,QAAA,IAAW;AAAA,QACb,CAAA;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAK,GAAA,EAAI,MAAM,EAAA,EAAI;AAAA;AAAA;AAC3B,GAAA,EAEJ,CAAA;AAEJ;AAYO,IAAM,QAA8B,CAAC;AAAA,EAC1C,KAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,IAAA,GAAO,GAAA,IAAQ,OAAO,KAAA,KAAU,YAAY,KAAA,GAAQ,CAAA;AAC1D,EAAA,uCACG,MAAA,EAAA,EAAK,SAAA,EAAW,cAAc,SAAS,CAAA,CAAA,EAAK,GAAG,IAAA,EAC7C,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,wBACCD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,GAAA,GAAM,KAAA,GAAQ,EAAE,IAC/C,QAAA,EAAA,CAAC,GAAA,KAAQ,KAAA,GAAS,EAAA,GAAK,QAAQ,KAAA,CAAA,EAClC;AAAA,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-WKNVNN2K.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Tag.css\";\nimport * as React from \"react\";\nimport { Icon, type IconName } from \"../Icon\";\n\nexport type TagTone = \"neutral\" | \"accent\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n\nexport interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {\n tone?: TagTone;\n solid?: boolean;\n /** Render a leading colored dot. */\n dot?: boolean;\n /** Leading icon (uses the built-in `Icon` component). */\n icon?: IconName;\n /** Show a close button. */\n removable?: boolean;\n onRemove?: () => void;\n /** Whether to render the tag outline/flat shadow. Defaults to `true`. */\n bordered?: boolean;\n children?: React.ReactNode;\n}\n\n/** `Tag` — small label/pill. */\nexport const Tag: React.FC<TagProps> = ({\n tone = \"neutral\",\n solid,\n dot,\n icon,\n removable,\n onRemove,\n bordered = true,\n className = \"\",\n children,\n ...rest\n}) => {\n const cls = [\n \"tag\",\n tone,\n solid && \"solid\",\n !bordered && !solid && \"borderless\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n return (\n <span className={cls} {...rest}>\n {dot && <span className=\"dot\" />}\n {icon && <Icon name={icon} size={11} className=\"tag-ico\" />}\n {children}\n {removable && (\n <span\n className=\"x\"\n role=\"button\"\n aria-label=\"Remove\"\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.();\n }}\n >\n <Icon name=\"x\" size={11} />\n </span>\n )}\n </span>\n );\n};\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Numeric count — renders as \"99+\" if > 99. */\n count?: number;\n /** Show a tiny dot instead of a number. */\n dot?: boolean;\n tone?: TagTone;\n children?: React.ReactNode;\n}\n\n/** `Badge` — notification dot / count. Wrap around another element. */\nexport const Badge: React.FC<BadgeProps> = ({\n count,\n dot,\n tone = \"danger\",\n children,\n className = \"\",\n ...rest\n}) => {\n const show = dot || (typeof count === \"number\" && count > 0);\n return (\n <span className={`badge-wrap ${className}`} {...rest}>\n {children}\n {show && (\n <span className={`badge ${tone} ${dot ? \"dot\" : \"\"}`}>\n {!dot && (count! > 99 ? \"99+\" : count)}\n </span>\n )}\n </span>\n );\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkYCHUHMNP_cjs = require('./chunk-YCHUHMNP.cjs');
3
+ var chunk3KQKEE5O_cjs = require('./chunk-3KQKEE5O.cjs');
4
4
  require('./tokens-BIIUTPKN.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./Image-4MN34O6P.css');
@@ -54,10 +54,10 @@ var Image = ({
54
54
  onClick: () => canPreview && setOpen(true),
55
55
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "n-image-frame", style: { width: "100%", height }, children: [
56
56
  !err && src && /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt, onLoad: () => setLoaded(true), onError: () => setErr(true) }),
57
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `n-image-placeholder ${loaded && !err ? "loaded" : ""}`, children: placeholder ?? /* @__PURE__ */ jsxRuntime.jsx(chunkYCHUHMNP_cjs.Icon, { name: "image", size: 28 }) }),
57
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `n-image-placeholder ${loaded && !err ? "loaded" : ""}`, children: placeholder ?? /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: "image", size: 28 }) }),
58
58
  canPreview && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
59
59
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "image-hint", children: [
60
- /* @__PURE__ */ jsxRuntime.jsx(chunkYCHUHMNP_cjs.Icon, { name: "eye", size: 14 }),
60
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: "eye", size: 14 }),
61
61
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u70B9\u51FB\u67E5\u770B" })
62
62
  ] }),
63
63
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "image-actions", onClick: (e) => e.stopPropagation(), children: [
@@ -68,10 +68,10 @@ var Image = ({
68
68
  className: "ia-btn",
69
69
  onClick: () => setOpen(true),
70
70
  "aria-label": "\u9884\u89C8",
71
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkYCHUHMNP_cjs.Icon, { name: "eye", size: 13 })
71
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: "eye", size: 13 })
72
72
  }
73
73
  ),
74
- src && /* @__PURE__ */ jsxRuntime.jsx("a", { className: "ia-btn", href: src, download: true, "aria-label": "\u4E0B\u8F7D", children: /* @__PURE__ */ jsxRuntime.jsx(chunkYCHUHMNP_cjs.Icon, { name: "download", size: 13 }) })
74
+ src && /* @__PURE__ */ jsxRuntime.jsx("a", { className: "ia-btn", href: src, download: true, "aria-label": "\u4E0B\u8F7D", children: /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: "download", size: 13 }) })
75
75
  ] })
76
76
  ] })
77
77
  ] })
@@ -103,5 +103,5 @@ var ImageGrid = ({
103
103
 
104
104
  exports.Image = Image;
105
105
  exports.ImageGrid = ImageGrid;
106
- //# sourceMappingURL=chunk-HXSAH4Y6.cjs.map
107
- //# sourceMappingURL=chunk-HXSAH4Y6.cjs.map
106
+ //# sourceMappingURL=chunk-WR3FML2W.cjs.map
107
+ //# sourceMappingURL=chunk-WR3FML2W.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Image/Image.tsx"],"names":["React","jsxs","Fragment","jsx","Icon","ReactDOM"],"mappings":"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","file":"chunk-HXSAH4Y6.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Image.css\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Icon } from \"../Icon\";\n\nexport interface ImageProps {\n src?: string;\n alt?: string;\n width?: number | string;\n height?: number | string;\n /** Allow click-to-zoom preview overlay. */\n preview?: boolean;\n /** Hover scale-up. */\n hover?: boolean;\n /** Custom placeholder while loading or on error. */\n placeholder?: React.ReactNode;\n className?: string;\n}\n\n/** `Image` — neumorphic framed image with optional preview overlay. */\nexport const Image: React.FC<ImageProps> = ({\n src,\n alt,\n width = 200,\n height = 140,\n preview = true,\n hover = true,\n placeholder,\n className = \"\",\n}) => {\n const [loaded, setLoaded] = React.useState(false);\n const [err, setErr] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const canPreview = preview && loaded && !err;\n\n return (\n <>\n <div\n className={`n-image ${hover ? \"hover\" : \"\"} ${canPreview ? \"clickable\" : \"\"} ${className}`}\n style={{ width }}\n onClick={() => canPreview && setOpen(true)}\n >\n <div className=\"n-image-frame\" style={{ width: \"100%\", height }}>\n {!err && src && (\n <img src={src} alt={alt} onLoad={() => setLoaded(true)} onError={() => setErr(true)} />\n )}\n <div className={`n-image-placeholder ${loaded && !err ? \"loaded\" : \"\"}`}>\n {placeholder ?? <Icon name=\"image\" size={28} />}\n </div>\n {canPreview && (\n <>\n <div className=\"image-hint\">\n <Icon name=\"eye\" size={14} />\n <span>点击查看</span>\n </div>\n <div className=\"image-actions\" onClick={(e) => e.stopPropagation()}>\n <button\n type=\"button\"\n className=\"ia-btn\"\n onClick={() => setOpen(true)}\n aria-label=\"预览\"\n >\n <Icon name=\"eye\" size={13} />\n </button>\n {src && (\n <a className=\"ia-btn\" href={src} download aria-label=\"下载\">\n <Icon name=\"download\" size={13} />\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </div>\n {open &&\n typeof document !== \"undefined\" &&\n ReactDOM.createPortal(\n <div className=\"image-preview-overlay\" onClick={() => setOpen(false)}>\n <img src={src} alt={alt} onClick={(e) => e.stopPropagation()} />\n </div>,\n document.body\n )}\n </>\n );\n};\n\nexport interface ImageGridProps {\n images: { src: string; alt?: string }[];\n columns?: number;\n itemHeight?: number;\n className?: string;\n}\n\n/** `ImageGrid` — auto-fit grid of `Image` items. */\nexport const ImageGrid: React.FC<ImageGridProps> = ({\n images,\n columns,\n itemHeight = 130,\n className = \"\",\n}) => (\n <div\n className={className}\n style={{\n display: \"grid\",\n gap: 14,\n gridTemplateColumns: columns\n ? `repeat(${columns}, 1fr)`\n : \"repeat(auto-fill, minmax(160px, 1fr))\",\n }}\n >\n {images.map((img, i) => (\n <Image key={i} src={img.src} alt={img.alt} width=\"100%\" height={itemHeight} />\n ))}\n </div>\n);\n"]}
1
+ {"version":3,"sources":["../src/components/Image/Image.tsx"],"names":["React","jsxs","Fragment","jsx","Icon","ReactDOM"],"mappings":"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","file":"chunk-WR3FML2W.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Image.css\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Icon } from \"../Icon\";\n\nexport interface ImageProps {\n src?: string;\n alt?: string;\n width?: number | string;\n height?: number | string;\n /** Allow click-to-zoom preview overlay. */\n preview?: boolean;\n /** Hover scale-up. */\n hover?: boolean;\n /** Custom placeholder while loading or on error. */\n placeholder?: React.ReactNode;\n className?: string;\n}\n\n/** `Image` — neumorphic framed image with optional preview overlay. */\nexport const Image: React.FC<ImageProps> = ({\n src,\n alt,\n width = 200,\n height = 140,\n preview = true,\n hover = true,\n placeholder,\n className = \"\",\n}) => {\n const [loaded, setLoaded] = React.useState(false);\n const [err, setErr] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const canPreview = preview && loaded && !err;\n\n return (\n <>\n <div\n className={`n-image ${hover ? \"hover\" : \"\"} ${canPreview ? \"clickable\" : \"\"} ${className}`}\n style={{ width }}\n onClick={() => canPreview && setOpen(true)}\n >\n <div className=\"n-image-frame\" style={{ width: \"100%\", height }}>\n {!err && src && (\n <img src={src} alt={alt} onLoad={() => setLoaded(true)} onError={() => setErr(true)} />\n )}\n <div className={`n-image-placeholder ${loaded && !err ? \"loaded\" : \"\"}`}>\n {placeholder ?? <Icon name=\"image\" size={28} />}\n </div>\n {canPreview && (\n <>\n <div className=\"image-hint\">\n <Icon name=\"eye\" size={14} />\n <span>点击查看</span>\n </div>\n <div className=\"image-actions\" onClick={(e) => e.stopPropagation()}>\n <button\n type=\"button\"\n className=\"ia-btn\"\n onClick={() => setOpen(true)}\n aria-label=\"预览\"\n >\n <Icon name=\"eye\" size={13} />\n </button>\n {src && (\n <a className=\"ia-btn\" href={src} download aria-label=\"下载\">\n <Icon name=\"download\" size={13} />\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </div>\n {open &&\n typeof document !== \"undefined\" &&\n ReactDOM.createPortal(\n <div className=\"image-preview-overlay\" onClick={() => setOpen(false)}>\n <img src={src} alt={alt} onClick={(e) => e.stopPropagation()} />\n </div>,\n document.body\n )}\n </>\n );\n};\n\nexport interface ImageGridProps {\n images: { src: string; alt?: string }[];\n columns?: number;\n itemHeight?: number;\n className?: string;\n}\n\n/** `ImageGrid` — auto-fit grid of `Image` items. */\nexport const ImageGrid: React.FC<ImageGridProps> = ({\n images,\n columns,\n itemHeight = 130,\n className = \"\",\n}) => (\n <div\n className={className}\n style={{\n display: \"grid\",\n gap: 14,\n gridTemplateColumns: columns\n ? `repeat(${columns}, 1fr)`\n : \"repeat(auto-fill, minmax(160px, 1fr))\",\n }}\n >\n {images.map((img, i) => (\n <Image key={i} src={img.src} alt={img.alt} width=\"100%\" height={itemHeight} />\n ))}\n </div>\n);\n"]}
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
 
3
3
  // src/components/Icon/Icon.tsx
4
4
  var paths = {
@@ -138,7 +138,8 @@ var paths = {
138
138
  /* @__PURE__ */ jsx("path", { d: "M12 2c-3 0-5 2.1-5 5 0 1.3.4 2.6.9 3.6-1.8 1-3.4 3-3.4 5.9 0 .8.7 1.5 1.5 1.5 0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2 .8 0 1.5-.7 1.5-1.5 0-2.9-1.6-4.9-3.4-5.9.5-1 .9-2.3.9-3.6 0-2.9-2-5-5-5z" }),
139
139
  /* @__PURE__ */ jsx("circle", { cx: "10", cy: "9", r: "0.8", fill: "currentColor", stroke: "none" }),
140
140
  /* @__PURE__ */ jsx("circle", { cx: "14", cy: "9", r: "0.8", fill: "currentColor", stroke: "none" })
141
- ] })
141
+ ] }),
142
+ code: /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("path", { d: "m16 18 6-6-6-6M8 6l-6 6 6 6" }) })
142
143
  };
143
144
  var Icon = ({ name, size = 16, stroke = 2, style, ...rest }) => /* @__PURE__ */ jsx(
144
145
  "svg",
@@ -157,8 +158,8 @@ var Icon = ({ name, size = 16, stroke = 2, style, ...rest }) => /* @__PURE__ */
157
158
  children: paths[name]
158
159
  }
159
160
  );
160
- var ICON_NAMES = ["search", "plus", "minus", "check", "x", "chevDown", "chevRight", "chevLeft", "chevUp", "arrowRight", "settings", "user", "bell", "mail", "heart", "star", "home", "folder", "file", "image", "play", "pause", "volume", "trash", "edit", "copy", "download", "upload", "info", "alert", "check2", "eye", "eyeOff", "sparkle", "moon", "sun", "palette", "layers", "grid", "list", "zap", "filter", "mic", "send", "calendar", "clock", "menu", "more", "sliders", "aim", "swap", "camera", "qq"];
161
+ var ICON_NAMES = ["search", "plus", "minus", "check", "x", "chevDown", "chevRight", "chevLeft", "chevUp", "arrowRight", "settings", "user", "bell", "mail", "heart", "star", "home", "folder", "file", "image", "play", "pause", "volume", "trash", "edit", "copy", "download", "upload", "info", "alert", "check2", "eye", "eyeOff", "sparkle", "moon", "sun", "palette", "layers", "grid", "list", "zap", "filter", "mic", "send", "calendar", "clock", "menu", "more", "sliders", "aim", "swap", "camera", "qq", "code"];
161
162
 
162
163
  export { ICON_NAMES, Icon };
163
- //# sourceMappingURL=chunk-QOGROEVD.js.map
164
- //# sourceMappingURL=chunk-QOGROEVD.js.map
164
+ //# sourceMappingURL=chunk-X3JG3IR6.js.map
165
+ //# sourceMappingURL=chunk-X3JG3IR6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Icon/Icon.tsx"],"names":[],"mappings":"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","file":"chunk-X3JG3IR6.js","sourcesContent":["import * as React from \"react\";\n\n/**\n * Name of a built-in icon. To add your own, pass `children` (raw SVG paths) instead.\n */\nexport type IconName =\n | \"search\"\n | \"plus\"\n | \"minus\"\n | \"check\"\n | \"x\"\n | \"chevDown\"\n | \"chevRight\"\n | \"chevLeft\"\n | \"chevUp\"\n | \"arrowRight\"\n | \"settings\"\n | \"user\"\n | \"bell\"\n | \"mail\"\n | \"heart\"\n | \"star\"\n | \"home\"\n | \"folder\"\n | \"file\"\n | \"image\"\n | \"play\"\n | \"pause\"\n | \"volume\"\n | \"trash\"\n | \"edit\"\n | \"copy\"\n | \"download\"\n | \"upload\"\n | \"info\"\n | \"alert\"\n | \"check2\"\n | \"eye\"\n | \"eyeOff\"\n | \"sparkle\"\n | \"moon\"\n | \"sun\"\n | \"palette\"\n | \"layers\"\n | \"grid\"\n | \"list\"\n | \"zap\"\n | \"filter\"\n | \"mic\"\n | \"send\"\n | \"calendar\"\n | \"clock\"\n | \"menu\"\n | \"more\"\n | \"sliders\"\n | \"aim\"\n | \"swap\"\n | \"camera\"\n | \"qq\"\n | \"code\";\n\nexport interface IconProps extends Omit<React.SVGAttributes<SVGSVGElement>, \"stroke\"> {\n name: IconName;\n size?: number;\n stroke?: number;\n}\n\nconst paths: Record<IconName, React.ReactNode> = {\nsearch: <><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"m20 20-3.5-3.5\"/></>,\n plus: <><path d=\"M12 5v14M5 12h14\"/></>,\n minus: <><path d=\"M5 12h14\"/></>,\n check: <><path d=\"m4 12 5 5L20 6\"/></>,\n x: <><path d=\"M6 6l12 12M18 6 6 18\"/></>,\n chevDown: <><path d=\"m6 9 6 6 6-6\"/></>,\n chevRight: <><path d=\"m9 6 6 6-6 6\"/></>,\n chevLeft: <><path d=\"m15 6-6 6 6 6\"/></>,\n chevUp: <><path d=\"m6 15 6-6 6 6\"/></>,\n arrowRight:<><path d=\"M5 12h14M13 6l6 6-6 6\"/></>,\n settings: <><path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></>,\n user: <><circle cx=\"12\" cy=\"8\" r=\"4\"/><path d=\"M4 21a8 8 0 0 1 16 0\"/></>,\n bell: <><path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"/><path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"/></>,\n mail: <><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"m3 7 9 6 9-6\"/></>,\n heart: <><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></>,\n star: <><path d=\"m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"/></>,\n home: <><path d=\"m3 10 9-7 9 7v10a2 2 0 0 1-2 2h-4v-7h-6v7H5a2 2 0 0 1-2-2z\"/></>,\n folder: <><path d=\"M3 7a2 2 0 0 1 2-2h4l2 3h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/></>,\n file: <><path d=\"M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"/><path d=\"M14 3v6h6\"/></>,\n image: <><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/><circle cx=\"9\" cy=\"9\" r=\"2\"/><path d=\"m21 15-5-5L5 21\"/></>,\n play: <><path d=\"M7 5v14l11-7z\" fill=\"currentColor\" stroke=\"none\"/></>,\n pause: <><path d=\"M6 4h4v16H6zM14 4h4v16h-4z\" fill=\"currentColor\" stroke=\"none\"/></>,\n volume: <><path d=\"M11 5 6 9H3v6h3l5 4z\"/><path d=\"M17 8a5 5 0 0 1 0 8M20 5a9 9 0 0 1 0 14\"/></>,\n trash: <><path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M5 6l1 14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-14\"/></>,\n edit: <><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/><path d=\"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z\"/></>,\n copy: <><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></>,\n download: <><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3\"/></>,\n upload: <><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12\"/></>,\n info: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4M12 8h.01\"/></>,\n alert: <><path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM12 9v4M12 17h.01\"/></>,\n check2: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></>,\n eye: <><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></>,\n eyeOff: <><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-10-8-10-8a19 19 0 0 1 5.17-6M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 10 8 10 8a19 19 0 0 1-2.16 3.19M14.12 14.12a3 3 0 1 1-4.24-4.24M1 1l22 22\"/></>,\n sparkle: <><path d=\"M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8\"/></>,\n moon: <><path d=\"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z\"/></>,\n sun: <><circle cx=\"12\" cy=\"12\" r=\"4\"/><path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41\"/></>,\n palette: <><circle cx=\"13.5\" cy=\"6.5\" r=\"1\"/><circle cx=\"17.5\" cy=\"10.5\" r=\"1\"/><circle cx=\"8.5\" cy=\"7.5\" r=\"1\"/><circle cx=\"6.5\" cy=\"12.5\" r=\"1\"/><path d=\"M12 2a10 10 0 1 0 0 20 3 3 0 0 0 0-6h-1a2 2 0 0 1 0-4h4a5 5 0 0 0 5-5 10 10 0 0 0-8-5z\"/></>,\n layers: <><path d=\"m12 2 10 6-10 6L2 8z\"/><path d=\"m2 17 10 6 10-6M2 12l10 6 10-6\"/></>,\n grid: <><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"/></>,\n list: <><path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\"/></>,\n zap: <><path d=\"M13 2 3 14h9l-1 8 10-12h-9z\"/></>,\n filter: <><path d=\"M22 3H2l8 9.46V19l4 2v-8.54z\"/></>,\n mic: <><rect x=\"9\" y=\"2\" width=\"6\" height=\"12\" rx=\"3\"/><path d=\"M19 10v1a7 7 0 0 1-14 0v-1M12 18v4M8 22h8\"/></>,\n send: <><path d=\"m22 2-7 20-4-9-9-4zM22 2 11 13\"/></>,\n calendar: <><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><path d=\"M16 2v4M8 2v4M3 10h18\"/></>,\n clock: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 6v6l4 2\"/></>,\n menu: <><path d=\"M3 6h18M3 12h18M3 18h18\"/></>,\n more: <><circle cx=\"5\" cy=\"12\" r=\"1\"/><circle cx=\"12\" cy=\"12\" r=\"1\"/><circle cx=\"19\" cy=\"12\" r=\"1\"/></>,\n sliders: <><path d=\"M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6\"/></>,\n aim: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"6\"/><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"22\"/><line x1=\"2\" y1=\"12\" x2=\"6\" y2=\"12\"/><line x1=\"18\" y1=\"12\" x2=\"22\" y2=\"12\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/></>,\n swap: <><path d=\"M3 8h18M17 4l4 4-4 4M21 16H3M7 20l-4-4 4-4\"/></>,\n camera: <><path d=\"M3 7h4l2-3h6l2 3h4a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z\"/><circle cx=\"12\" cy=\"13\" r=\"4\"/></>,\n qq: <><path d=\"M12 2c-3 0-5 2.1-5 5 0 1.3.4 2.6.9 3.6-1.8 1-3.4 3-3.4 5.9 0 .8.7 1.5 1.5 1.5 0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2 .8 0 1.5-.7 1.5-1.5 0-2.9-1.6-4.9-3.4-5.9.5-1 .9-2.3.9-3.6 0-2.9-2-5-5-5z\"/><circle cx=\"10\" cy=\"9\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\"/><circle cx=\"14\" cy=\"9\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\"/></>,\n code: <><path d=\"m16 18 6-6-6-6M8 6l-6 6 6 6\"/></>,\n};\n\n/**\n * `Icon` — stroked line icon set, sized in pixels, inherits `currentColor`.\n *\n * @example\n * <Icon name=\"plus\" size={18} />\n */\nexport const Icon: React.FC<IconProps> = ({ name, size = 16, stroke = 2, style, ...rest }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n overflow=\"visible\"\n style={style}\n {...rest}\n >\n {paths[name]}\n </svg>\n);\n\nexport const ICON_NAMES: IconName[] = [\"search\", \"plus\", \"minus\", \"check\", \"x\", \"chevDown\", \"chevRight\", \"chevLeft\", \"chevUp\", \"arrowRight\", \"settings\", \"user\", \"bell\", \"mail\", \"heart\", \"star\", \"home\", \"folder\", \"file\", \"image\", \"play\", \"pause\", \"volume\", \"trash\", \"edit\", \"copy\", \"download\", \"upload\", \"info\", \"alert\", \"check2\", \"eye\", \"eyeOff\", \"sparkle\", \"moon\", \"sun\", \"palette\", \"layers\", \"grid\", \"list\", \"zap\", \"filter\", \"mic\", \"send\", \"calendar\", \"clock\", \"menu\", \"more\", \"sliders\", \"aim\", \"swap\", \"camera\", \"qq\", \"code\"];\n"]}
@@ -1,6 +1,6 @@
1
- import { Tag } from './chunk-LXNR6TQK.js';
2
- import { useFloating } from './chunk-V2DIQ3RH.js';
3
- import { Icon } from './chunk-QOGROEVD.js';
1
+ import { Tag } from './chunk-ILVNMES2.js';
2
+ import { useFloating } from './chunk-ANAQER3T.js';
3
+ import { Icon } from './chunk-X3JG3IR6.js';
4
4
  import './tokens-BIIUTPKN.css';
5
5
  import './shared-NJHRNLRH.css';
6
6
  import './Select-J3CCVFJ7.css';
@@ -44,7 +44,6 @@ function Select(props) {
44
44
  const [query, setQuery] = React.useState("");
45
45
  const [activeIdx, setActiveIdx] = React.useState(-1);
46
46
  const searchRef = React.useRef(null);
47
- const menuRef = React.useRef(null);
48
47
  const openControlled = openProp !== void 0;
49
48
  const open = openControlled ? openProp : innerOpen;
50
49
  const setOpen = (v) => {
@@ -52,7 +51,7 @@ function Select(props) {
52
51
  onOpenChange?.(v);
53
52
  if (!v) setQuery("");
54
53
  };
55
- const { triggerRef: ref, floatingStyle } = useFloating({
54
+ const { triggerRef: ref, floatingRef: menuRef, floatingStyle } = useFloating({
56
55
  open,
57
56
  placement: "bottom",
58
57
  matchTriggerWidth: true,
@@ -299,5 +298,5 @@ function Select(props) {
299
298
  }
300
299
 
301
300
  export { Select };
302
- //# sourceMappingURL=chunk-6XZ362VL.js.map
303
- //# sourceMappingURL=chunk-6XZ362VL.js.map
301
+ //# sourceMappingURL=chunk-XT7RXXOE.js.map
302
+ //# sourceMappingURL=chunk-XT7RXXOE.js.map