@yamada-ui/react 2.1.2-dev-20260306204545 → 2.1.2-dev-20260307012857

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 (220) hide show
  1. package/dist/cjs/components/table/table.cjs +2 -1
  2. package/dist/cjs/components/table/table.cjs.map +1 -1
  3. package/dist/cjs/core/css/at-rule.cjs +5 -2
  4. package/dist/cjs/core/css/at-rule.cjs.map +1 -1
  5. package/dist/cjs/core/css/config.cjs +1 -1
  6. package/dist/cjs/core/css/config.cjs.map +1 -1
  7. package/dist/cjs/core/system/create-system.cjs.map +1 -1
  8. package/dist/cjs/core/system/storage-manager.cjs.map +1 -1
  9. package/dist/esm/components/table/table.js +2 -1
  10. package/dist/esm/components/table/table.js.map +1 -1
  11. package/dist/esm/core/css/at-rule.js +5 -2
  12. package/dist/esm/core/css/at-rule.js.map +1 -1
  13. package/dist/esm/core/css/config.js +1 -1
  14. package/dist/esm/core/css/config.js.map +1 -1
  15. package/dist/esm/core/system/create-system.js.map +1 -1
  16. package/dist/esm/core/system/storage-manager.js.map +1 -1
  17. package/dist/types/components/accordion/accordion.d.ts +2 -2
  18. package/dist/types/components/accordion/accordion.style.d.ts +1 -1
  19. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  20. package/dist/types/components/airy/airy.d.ts +2 -2
  21. package/dist/types/components/alert/alert.d.ts +2 -2
  22. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
  23. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  24. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
  25. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
  26. package/dist/types/components/avatar/avatar.d.ts +3 -3
  27. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  28. package/dist/types/components/badge/badge.d.ts +2 -2
  29. package/dist/types/components/bleed/bleed.d.ts +2 -2
  30. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  31. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  32. package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
  33. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  34. package/dist/types/components/button/button.d.ts +2 -2
  35. package/dist/types/components/button/icon-button.d.ts +2 -2
  36. package/dist/types/components/calendar/calendar.d.ts +2 -2
  37. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  38. package/dist/types/components/calendar/use-calendar.d.ts +8 -8
  39. package/dist/types/components/card/card.d.ts +2 -2
  40. package/dist/types/components/carousel/carousel.d.ts +2 -2
  41. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  42. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  43. package/dist/types/components/center/center.d.ts +2 -2
  44. package/dist/types/components/chart/area-chart.d.ts +2 -2
  45. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  46. package/dist/types/components/chart/cartesian-chart.style.d.ts +1 -1
  47. package/dist/types/components/chart/chart.d.ts +5 -5
  48. package/dist/types/components/chart/chart.style.d.ts +2 -2
  49. package/dist/types/components/chart/composed-chart.d.ts +2 -2
  50. package/dist/types/components/chart/donut-chart.d.ts +2 -2
  51. package/dist/types/components/chart/pie-chart.d.ts +2 -2
  52. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  53. package/dist/types/components/chart/radar-chart.d.ts +2 -2
  54. package/dist/types/components/chart/use-chart.d.ts +2 -2
  55. package/dist/types/components/checkbox/checkbox.d.ts +3 -3
  56. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
  57. package/dist/types/components/checkbox-card/checkbox-card.d.ts +4 -4
  58. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
  59. package/dist/types/components/close-button/close-button.d.ts +2 -2
  60. package/dist/types/components/code/code.d.ts +2 -2
  61. package/dist/types/components/collapse/collapse.d.ts +2 -2
  62. package/dist/types/components/color-picker/color-picker.d.ts +2 -2
  63. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  64. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
  65. package/dist/types/components/color-selector/color-selector.d.ts +2 -2
  66. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
  67. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  68. package/dist/types/components/container/container.d.ts +2 -2
  69. package/dist/types/components/data-list/data-list.d.ts +2 -2
  70. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  71. package/dist/types/components/date-picker/date-picker.d.ts +2 -2
  72. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
  73. package/dist/types/components/drawer/drawer.d.ts +2 -2
  74. package/dist/types/components/dropzone/dropzone.d.ts +4 -4
  75. package/dist/types/components/editable/editable.d.ts +4 -4
  76. package/dist/types/components/editable/use-editable.d.ts +2 -2
  77. package/dist/types/components/em/em.d.ts +2 -2
  78. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  79. package/dist/types/components/fade/fade.d.ts +2 -2
  80. package/dist/types/components/field/field.d.ts +3 -3
  81. package/dist/types/components/field/field.style.d.ts +2 -2
  82. package/dist/types/components/field/use-field-props.d.ts +4 -4
  83. package/dist/types/components/fieldset/fieldset.d.ts +3 -3
  84. package/dist/types/components/fieldset/fieldset.style.d.ts +1 -1
  85. package/dist/types/components/file-button/file-button.d.ts +2 -2
  86. package/dist/types/components/file-button/use-file-button.d.ts +18 -18
  87. package/dist/types/components/file-input/file-input.d.ts +2 -2
  88. package/dist/types/components/file-input/use-file-input.d.ts +15 -15
  89. package/dist/types/components/flex/flex.d.ts +2 -2
  90. package/dist/types/components/flip/flip.d.ts +4 -4
  91. package/dist/types/components/flip/flip.style.d.ts +1 -1
  92. package/dist/types/components/float/float.d.ts +2 -2
  93. package/dist/types/components/form/form.d.ts +3 -3
  94. package/dist/types/components/format/format-byte.d.ts +4 -4
  95. package/dist/types/components/format/format-date-time.d.ts +2 -2
  96. package/dist/types/components/format/format-number.d.ts +2 -2
  97. package/dist/types/components/grid/grid-item.d.ts +2 -2
  98. package/dist/types/components/grid/grid.d.ts +2 -2
  99. package/dist/types/components/group/group.d.ts +2 -2
  100. package/dist/types/components/group/use-group.d.ts +2 -2
  101. package/dist/types/components/heading/heading.d.ts +2 -2
  102. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
  103. package/dist/types/components/icon/icon.d.ts +5 -5
  104. package/dist/types/components/image/image.d.ts +2 -2
  105. package/dist/types/components/indicator/indicator.d.ts +4 -4
  106. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  107. package/dist/types/components/input/input-addon.d.ts +2 -2
  108. package/dist/types/components/input/input-element.d.ts +2 -2
  109. package/dist/types/components/input/input.d.ts +2 -2
  110. package/dist/types/components/kbd/kbd.d.ts +2 -2
  111. package/dist/types/components/link/link.d.ts +2 -2
  112. package/dist/types/components/link-box/link-box.d.ts +2 -2
  113. package/dist/types/components/list/list.d.ts +2 -2
  114. package/dist/types/components/list/list.style.d.ts +2 -2
  115. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  116. package/dist/types/components/loading/loading.d.ts +3 -3
  117. package/dist/types/components/mark/mark.d.ts +2 -2
  118. package/dist/types/components/menu/menu.d.ts +2 -2
  119. package/dist/types/components/menu/menu.style.d.ts +2 -2
  120. package/dist/types/components/menu/use-menu.d.ts +11 -11
  121. package/dist/types/components/modal/modal.d.ts +2 -2
  122. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  123. package/dist/types/components/native-accordion/native-accordion.style.d.ts +2 -2
  124. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  125. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  126. package/dist/types/components/native-select/native-select.d.ts +2 -2
  127. package/dist/types/components/native-table/native-table.d.ts +4 -4
  128. package/dist/types/components/notice/notice.style.d.ts +1 -1
  129. package/dist/types/components/number-input/number-input.d.ts +2 -2
  130. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  131. package/dist/types/components/pagination/pagination.d.ts +2 -2
  132. package/dist/types/components/pagination/pagination.style.d.ts +1 -1
  133. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  134. package/dist/types/components/password-input/password-input.d.ts +2 -2
  135. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  136. package/dist/types/components/password-input/use-password-input.d.ts +2 -2
  137. package/dist/types/components/pin-input/pin-input.d.ts +2 -2
  138. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
  139. package/dist/types/components/popover/popover.d.ts +2 -2
  140. package/dist/types/components/progress/progress.d.ts +4 -4
  141. package/dist/types/components/progress/use-progress.d.ts +706 -706
  142. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  143. package/dist/types/components/radio/radio.d.ts +4 -4
  144. package/dist/types/components/radio/use-radio-group.d.ts +2 -2
  145. package/dist/types/components/radio-card/radio-card.d.ts +4 -4
  146. package/dist/types/components/rating/rating.style.d.ts +2 -2
  147. package/dist/types/components/rating/use-rating.d.ts +7 -7
  148. package/dist/types/components/reorder/reorder.d.ts +2 -2
  149. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  150. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  151. package/dist/types/components/resizable/resizable.d.ts +2 -2
  152. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  153. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  154. package/dist/types/components/ripple/ripple.d.ts +2 -2
  155. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  156. package/dist/types/components/rotate/rotate.d.ts +2 -2
  157. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  158. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
  159. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  160. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
  161. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  162. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
  163. package/dist/types/components/select/select.d.ts +2 -2
  164. package/dist/types/components/select/use-select.d.ts +4 -4
  165. package/dist/types/components/separator/separator.d.ts +2 -2
  166. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
  167. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  168. package/dist/types/components/slide/slide.d.ts +2 -2
  169. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
  170. package/dist/types/components/slider/slider.d.ts +2 -2
  171. package/dist/types/components/slider/use-slider.d.ts +2 -2
  172. package/dist/types/components/stack/h-stack.d.ts +2 -2
  173. package/dist/types/components/stack/stack.d.ts +2 -2
  174. package/dist/types/components/stack/v-stack.d.ts +2 -2
  175. package/dist/types/components/stack/z-stack.d.ts +2 -2
  176. package/dist/types/components/stat/stat.d.ts +2 -2
  177. package/dist/types/components/stat/stat.style.d.ts +2 -2
  178. package/dist/types/components/status/status.d.ts +2 -2
  179. package/dist/types/components/steps/steps.d.ts +2 -2
  180. package/dist/types/components/steps/steps.style.d.ts +1 -1
  181. package/dist/types/components/steps/use-steps.d.ts +10 -10
  182. package/dist/types/components/switch/switch.d.ts +2 -2
  183. package/dist/types/components/table/table.d.ts +3 -3
  184. package/dist/types/components/tabs/tabs.d.ts +2 -2
  185. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  186. package/dist/types/components/tag/tag.d.ts +2 -2
  187. package/dist/types/components/text/text.d.ts +2 -2
  188. package/dist/types/components/textarea/textarea.d.ts +2 -2
  189. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  190. package/dist/types/components/timeline/timeline.d.ts +5 -5
  191. package/dist/types/components/timeline/timeline.style.d.ts +2 -2
  192. package/dist/types/components/toggle/toggle.d.ts +5 -5
  193. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  194. package/dist/types/components/toggle/use-toggle.d.ts +2 -2
  195. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  196. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  197. package/dist/types/components/wrap/wrap.d.ts +2 -2
  198. package/dist/types/core/components/create-component.d.ts +7 -7
  199. package/dist/types/core/index.d.ts +2 -2
  200. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  201. package/dist/types/core/system/create-system.d.ts +5 -2
  202. package/dist/types/core/system/index.d.ts +2 -2
  203. package/dist/types/core/system/storage-manager.d.ts +2 -2
  204. package/dist/types/core/system/storage-script.d.ts +3 -3
  205. package/dist/types/core/system/styled.d.ts +2 -2
  206. package/dist/types/core/system/system-provider.d.ts +2 -2
  207. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  208. package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
  209. package/dist/types/hooks/use-combobox/index.d.ts +12 -12
  210. package/dist/types/hooks/use-counter/index.d.ts +2 -2
  211. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  212. package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
  213. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  214. package/dist/types/hooks/use-popper/index.d.ts +2 -2
  215. package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
  216. package/dist/types/index.d.ts +3 -3
  217. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
  218. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  219. package/dist/types/utils/children.d.ts +2 -2
  220. package/package.json +1 -1
@@ -69,7 +69,7 @@ const { ComponentContext, PropsContext: TablePropsContext, useComponentContext,
69
69
  *
70
70
  * @see https://yamada-ui.com/docs/components/table
71
71
  */
72
- const Table = withContext(({ colorScheme, size, variant, columnFilters: columnFiltersProp, columnResizeMode = "onChange", columns: columnsProp, data, defaultColumnFilters, defaultPagination = {
72
+ const Table = withContext(({ className, colorScheme, size, variant, columnFilters: columnFiltersProp, columnResizeMode = "onChange", columns: columnsProp, data, defaultColumnFilters, defaultPagination = {
73
73
  pageIndex: 0,
74
74
  pageSize: 20
75
75
  }, defaultRowSelection = {}, defaultSorting, enableAutoResizeTableWidth = false, enableColumnResizing = false, enableKeyboardNavigation = true, enablePagination = false, enableRowSelection = false, footer, header, highlightOnHover = !!enableRowSelection, highlightOnSelected = !!enableRowSelection, initialFocusableCell = {
@@ -327,6 +327,7 @@ const Table = withContext(({ colorScheme, size, variant, columnFilters: columnFi
327
327
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_native_table.NativeTableRoot, {
328
328
  ...require_props.mergeProps({
329
329
  ref,
330
+ className,
330
331
  style: enableColumnResizing && enableAutoResizeTableWidth ? { width: table.getCenterTotalSize() } : {},
331
332
  colorScheme,
332
333
  size,
@@ -1 +1 @@
1
- {"version":3,"file":"table.cjs","names":["createComponent","useI18n","useControllableState","header","Checkbox","mergeProps","table","cellMap","el","focusRingStyle","SortingIcon: FC<SortingIconProps>","ChevronUpIcon","ChevronsUpDownIcon","styled","ResizableTrigger: FC<ResizableTriggerProps>","TruncatedText: FC<TruncatedTextProps>"],"sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n AccessorFn,\n Cell,\n CellContext,\n ColumnDef,\n ColumnDefTemplate,\n ColumnFiltersColumnDef,\n ColumnFiltersState,\n ColumnMeta,\n ColumnPinningColumnDef,\n ColumnSizingColumnDef,\n GlobalFilterColumnDef,\n GroupingColumnDef,\n Header,\n HeaderContext,\n HeaderGroup,\n OnChangeFn,\n SortingState as OriginalSortingState,\n PaginationState,\n Table as ReactTable,\n Row,\n RowData,\n RowSelectionState,\n SortDirection,\n SortingColumnDef,\n TableOptions,\n VisibilityColumnDef,\n} from \"@tanstack/react-table\"\nimport type { FC, FocusEvent, KeyboardEvent, ReactElement } from \"react\"\nimport type { CSSProps, GenericsComponent, HTMLStyledProps } from \"../../core\"\nimport type { ReactNodeOrFunction, TransformProps } from \"../../utils\"\nimport type { CheckboxProps } from \"../checkbox\"\nimport {\n createColumnHelper,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { useMemo, useRef } from \"react\"\nimport { createComponent, focusRingStyle, mergeProps, styled } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n dataAttr,\n isFunction,\n runIfFn,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { Checkbox } from \"../checkbox\"\nimport { ChevronsUpDownIcon, ChevronUpIcon } from \"../icon\"\nimport { NativeTable } from \"../native-table\"\n\ndeclare module \"@tanstack/react-table\" {\n interface ColumnDefExtensions<TData extends RowData, TValue = unknown>\n extends\n VisibilityColumnDef,\n ColumnPinningColumnDef,\n ColumnFiltersColumnDef<TData>,\n GlobalFilterColumnDef,\n SortingColumnDef<TData>,\n GroupingColumnDef<TData, TValue>,\n ColumnSizingColumnDef {}\n\n interface ColumnDefBase<TData extends RowData, TValue = unknown>\n extends\n ColumnDefExtensions<TData, TValue>,\n Pick<CSSProps, \"lineClamp\" | \"truncated\">,\n Pick<NativeTable.TdProps, \"numeric\"> {\n cell?: ColumnDefTemplate<CellContext<TData, TValue>>\n footer?: ColumnDefTemplate<HeaderContext<TData, TValue>>\n getUniqueValues?: AccessorFn<TData, unknown[]>\n meta?: ColumnMeta<TData, TValue>\n cellProps?: NativeTable.TdProps\n footerProps?: NativeTable.ThProps\n headerProps?: NativeTable.ThProps\n }\n}\n\nexport { createColumnHelper }\nexport type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n RowSelectionState,\n SortDirection,\n}\n\nfunction getMergeHeaderGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n const columnsIds = new Set()\n\n return headerGroups.map((headerGroup, depth, { length: fullDepth }) => {\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !columnsIds.has(header.column.id))\n .map((header) => {\n columnsIds.add(header.column.id)\n\n return header.isPlaceholder\n ? { ...header, isPlaceholder: false, rowSpan: fullDepth - depth }\n : { ...header, rowSpan: 1 }\n }),\n }\n })\n}\n\nfunction getMergeFooterGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n return headerGroups.map((headerGroup, depth) => {\n const nextHeaderGroups = headerGroups.slice(depth + 1)\n\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !header.isPlaceholder)\n .map((header) => {\n if (nextHeaderGroups.length === 0) return header\n\n const rowSpan = nextHeaderGroups.reduce((acc, nextHeaderGroup) => {\n const hasNextHeader = nextHeaderGroup.headers.some(\n (nextHeader) => nextHeader.column.id === header.column.id,\n )\n\n return acc + (hasNextHeader ? 1 : 0)\n }, 1)\n\n return { ...header, rowSpan }\n }),\n }\n })\n}\n\nexport interface ColumnSort<Y extends RowData> {\n desc: boolean\n id: keyof Y\n}\nexport type SortingState<Y extends RowData> = ColumnSort<Y>[]\n\ninterface ComponentContext extends Pick<\n TableProps<any>,\n | \"columnResizeMode\"\n | \"resizableTriggerProps\"\n | \"sortingIcon\"\n | \"sortingIconProps\"\n> {\n table: ReactTable<any>\n}\n\ninterface OmittedTableOptions<Y extends RowData> extends Omit<\n TableOptions<Y>,\n | \"getCoreRowModel\"\n | \"onColumnFiltersChange\"\n | \"onPaginationChange\"\n | \"onSortingChange\"\n> {}\n\ninterface PickedNativeTableProps extends Pick<\n NativeTable.RootProps,\n | \"highlightOnHover\"\n | \"highlightOnSelected\"\n | \"layout\"\n | \"scrollAreaProps\"\n | \"size\"\n | \"stickyFooter\"\n | \"stickyHeader\"\n | \"striped\"\n | \"variant\"\n | \"withBorder\"\n | \"withColumnBorders\"\n | \"withScrollArea\"\n> {}\n\nexport interface TableProps<Y extends RowData>\n extends\n OmittedTableOptions<Y>,\n PickedNativeTableProps,\n Pick<CSSProps, \"colorScheme\" | \"lineClamp\" | \"truncated\"> {\n /**\n * The column filters state of the table.\n */\n columnFilters?: ColumnFiltersState\n /**\n * The default column filters state of the table.\n */\n defaultColumnFilters?: ColumnFiltersState\n /**\n * The default pagination state of the table.\n */\n defaultPagination?: PaginationState\n /**\n * The default row selection state of the table.\n */\n defaultRowSelection?: RowSelectionState\n /**\n * The default sorting state of the table.\n */\n defaultSorting?: SortingState<Y>\n /**\n * If `true`, the table width will be automatically resized to the content.\n *\n * @default false\n */\n enableAutoResizeTableWidth?: boolean\n /**\n * If `true`, the keyboard navigation will be enabled.\n *\n * @default true\n */\n enableKeyboardNavigation?: boolean\n /**\n * If `true`, the pagination will be enabled.\n *\n * @default false\n */\n enablePagination?: boolean\n /**\n * The footer of the table.\n */\n footer?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The header of the table.\n */\n header?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The initial focusable cell of the table.\n *\n * @default {rowIndex: 0, colIndex: 0}\n */\n initialFocusableCell?: { colIndex: number; rowIndex: number }\n /**\n * The pagination state of the table.\n */\n pagination?: PaginationState\n /**\n * The row selection state of the table.\n */\n rowSelection?: RowSelectionState\n /**\n * If `true`, the row will be selected when the row is clicked.\n *\n * @default false\n */\n selectOnClickRow?: boolean\n /**\n * The sorting state of the table.\n */\n sorting?: SortingState<Y>\n /**\n * The sorting icon of the table.\n */\n sortingIcon?: ReactNodeOrFunction<false | SortDirection>\n /**\n * If `true`, the table will have a checkbox column.\n *\n * @default true\n */\n withCheckbox?: boolean\n /**\n * If `true`, the table will have a checkbox in the footer.\n *\n * @default false\n */\n withFooterCheckbox?: boolean\n /**\n * If `true`, the table will have footer groups.\n *\n * @default false\n */\n withFooterGroups?: boolean\n /**\n * The props for the table cell.\n */\n cellProps?: TransformProps<NativeTable.TdProps, Cell<Y, unknown>>\n /**\n * The props for the checkbox.\n */\n checkboxProps?: CheckboxProps\n /**\n * The props for the table footer group.\n */\n footerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table footer.\n */\n footerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the table header checkbox.\n */\n headerCheckboxProps?: TransformProps<CheckboxProps, Header<Y, unknown>>\n /**\n * The props for the table header group.\n */\n headerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table header.\n */\n headerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the resizable trigger.\n */\n resizableTriggerProps?: TransformProps<\n Omit<ResizableTriggerProps, \"resizing\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table row checkbox.\n */\n rowCheckboxProps?: TransformProps<CheckboxProps, Row<Y>>\n /**\n * The props for the table row.\n */\n rowProps?: TransformProps<NativeTable.TrProps, Row<Y>>\n /**\n * The props for the sorting icon.\n */\n sortingIconProps?: TransformProps<\n Omit<SortingIconProps, \"sorted\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table.\n */\n tableProps?: NativeTable.RootProps\n /**\n * The props for the table tbody.\n */\n tbodyProps?: NativeTable.TbodyProps\n /**\n * The props for the table tfoot.\n */\n tfootProps?: NativeTable.TfootProps\n /**\n * The props for the table thead.\n */\n theadProps?: NativeTable.TheadProps\n /**\n * The callback invoked when the column filters state changes.\n */\n onColumnFiltersChange?: (columnFilters: ColumnFiltersState) => void\n /**\n * The callback invoked when the pagination state changes.\n */\n onPaginationChange?: (pagination: PaginationState) => void\n /**\n * The callback invoked when the row is clicked.\n */\n onRowClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the row is double clicked.\n */\n onRowDoubleClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the sorting state changes.\n */\n onSortingChange?: (sorting: SortingState<Y>) => void\n}\n\nconst {\n ComponentContext,\n PropsContext: TablePropsContext,\n useComponentContext,\n usePropsContext: useTablePropsContext,\n withContext,\n} = createComponent<TableProps<any>, any, ComponentContext>(\"table\")\n\nexport { TablePropsContext, useTablePropsContext }\n\n/**\n * `Table` is a table component equipped with column sorting, row selection, and click event features.\n *\n * @see https://yamada-ui.com/docs/components/table\n */\nexport const Table = withContext(\n <Y extends RowData>({\n colorScheme,\n size,\n variant,\n columnFilters: columnFiltersProp,\n columnResizeMode = \"onChange\",\n columns: columnsProp,\n data,\n defaultColumnFilters,\n defaultPagination = { pageIndex: 0, pageSize: 20 },\n defaultRowSelection = {},\n defaultSorting,\n enableAutoResizeTableWidth = false,\n enableColumnResizing = false,\n enableKeyboardNavigation = true,\n enablePagination = false,\n enableRowSelection = false,\n footer,\n header,\n highlightOnHover = !!enableRowSelection,\n highlightOnSelected = !!enableRowSelection,\n initialFocusableCell = { colIndex: 0, rowIndex: 0 },\n layout,\n lineClamp,\n manualPagination,\n pagination: paginationProp,\n rowCount: totalRowCount,\n rowSelection: rowSelectionProp,\n selectOnClickRow = false,\n sortDescFirst = false,\n sorting: sortingProp,\n sortingIcon,\n state,\n stickyFooter,\n stickyHeader,\n striped,\n truncated,\n withBorder,\n withCheckbox = true,\n withColumnBorders,\n withFooterCheckbox = false,\n withFooterGroups = false,\n withScrollArea,\n cellProps,\n checkboxProps,\n footerGroupProps,\n footerProps,\n headerCheckboxProps,\n headerGroupProps,\n headerProps,\n resizableTriggerProps,\n rowCheckboxProps,\n rowProps,\n scrollAreaProps,\n sortingIconProps,\n tableProps,\n tbodyProps,\n tfootProps,\n theadProps,\n onColumnFiltersChange: onColumnFiltersChangeProp,\n onPaginationChange: onPaginationChangeProp,\n onRowClick,\n onRowDoubleClick,\n onRowSelectionChange: onRowSelectionChangeProp,\n onSortingChange: onSortingChangeProp,\n ...rest\n }: TableProps<Y>) => {\n const { t } = useI18n(\"table\")\n const initialFocus = useRef<boolean>(false)\n const ref = useRef<HTMLTableElement>(null)\n const focusedCell = useRef<null | { colIndex: number; rowIndex: number }>(\n null,\n )\n const [rowSelection, onRowSelectionChange] = useControllableState({\n defaultValue: defaultRowSelection,\n value: rowSelectionProp,\n onChange: onRowSelectionChangeProp,\n })\n const [sorting, onSortingChange] = useControllableState({\n defaultValue: defaultSorting,\n value: sortingProp,\n onChange: onSortingChangeProp,\n })\n const [pagination, onPaginationChange] = useControllableState({\n defaultValue: defaultPagination,\n value: paginationProp,\n onChange: onPaginationChangeProp,\n })\n const [columnFilters, onColumnFiltersChange] = useControllableState({\n defaultValue: defaultColumnFilters,\n value: columnFiltersProp,\n onChange: onColumnFiltersChangeProp,\n })\n const columns = useMemo(() => {\n if (!enableRowSelection || !withCheckbox) return columnsProp\n\n const clonedColumns = [...columnsProp]\n\n const header = ({ header, table }: HeaderContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: table.getIsAllRowsSelected(),\n indeterminate: table.getIsSomeRowsSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select all rows\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: table.getToggleAllRowsSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(headerCheckboxProps, header) ?? {},\n )()}\n />\n )\n }\n\n const cell = ({ row }: CellContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: row.getIsSelected(),\n disabled: !row.getCanSelect(),\n indeterminate: row.getIsSomeSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select row\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: row.getToggleSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(rowCheckboxProps, row) ?? {},\n )()}\n />\n )\n }\n\n clonedColumns.unshift({\n id: \"select\",\n cell,\n header,\n ...(withFooterCheckbox\n ? { footer: header }\n : { footerProps: { \"aria-hidden\": \"true\" } }),\n cellProps: { verticalAlign: \"middle\" },\n headerProps: { w: \"calc({spaces.4} + {space-x} * 2)\" },\n })\n\n return clonedColumns\n }, [\n checkboxProps,\n columnsProp,\n enableRowSelection,\n headerCheckboxProps,\n rowCheckboxProps,\n t,\n withCheckbox,\n withFooterCheckbox,\n ])\n const table = useReactTable<Y>({\n columnResizeMode,\n columns,\n data,\n enableColumnResizing,\n enableRowSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualPagination,\n rowCount: totalRowCount,\n sortDescFirst,\n state: {\n columnFilters,\n pagination: enablePagination ? pagination : undefined,\n rowSelection,\n sorting: sorting as OriginalSortingState,\n ...state,\n },\n onColumnFiltersChange,\n onPaginationChange,\n onRowSelectionChange,\n onSortingChange: onSortingChange as OnChangeFn<OriginalSortingState>,\n ...(enablePagination\n ? { getPaginationRowModel: getPaginationRowModel() }\n : {}),\n ...rest,\n })\n const headerGroups = table.getHeaderGroups()\n const mergedHeaderGroups = getMergeHeaderGroups(headerGroups)\n const rows = table.getRowModel().rows\n const footerGroups = table.getFooterGroups()\n const mergedFooterGroups = getMergeFooterGroups(\n withFooterGroups ? footerGroups : [],\n )\n const headerGroupCount = headerGroups.length\n const rowCount = rows.length\n const colCount = table.getAllLeafColumns().length\n const maxColIndex = colCount - 1\n const pageIndex = enablePagination\n ? table.getState().pagination.pageIndex\n : 0\n const cellMap = useMemo(() => {\n const cellMap = new Map<string, string>()\n\n if (!enableKeyboardNavigation) return cellMap\n\n const insertCellMap = (\n id: string,\n colSpan: number,\n rowSpan: number,\n colIndex: number,\n rowIndex: number,\n ) => {\n for (let i = 0; i < colSpan; i++) {\n cellMap.set(`${colIndex + i}-${rowIndex}`, `${colIndex}-${rowIndex}`)\n }\n\n for (let i = 1; i < rowSpan; i++) {\n cellMap.set(`${colIndex}-${rowIndex + i}`, `${colIndex}-${rowIndex}`)\n }\n }\n\n const insertCellMapByHeaderGroup = (\n headerGroup: HeaderGroup<Y>,\n rowIndex: number,\n ) => {\n let placeholderCount = 0\n\n headerGroup.headers.forEach((header) => {\n const colSpan = header.colSpan || 1\n const rowSpan = header.rowSpan || 1\n const colIndex = header.index + placeholderCount\n\n placeholderCount += colSpan - 1\n\n insertCellMap(header.id, colSpan, rowSpan, colIndex, rowIndex)\n })\n }\n\n mergedHeaderGroups.forEach((headerGroup, rowIndex) => {\n insertCellMapByHeaderGroup(headerGroup, rowIndex)\n })\n\n rows.forEach((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n row.getVisibleCells().forEach((cell) => {\n const colIndex = cell.column.getIndex()\n\n insertCellMap(cell.id, 1, 1, colIndex, rowIndex)\n })\n })\n\n mergedFooterGroups.forEach((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n insertCellMapByHeaderGroup(footerGroup, rowIndex)\n })\n\n return cellMap\n }, [\n enableKeyboardNavigation,\n headerGroupCount,\n mergedFooterGroups,\n mergedHeaderGroups,\n rows,\n rowCount,\n ])\n const context = useMemo(\n () => ({\n columnResizeMode,\n sortingIcon,\n table,\n resizableTriggerProps,\n sortingIconProps,\n }),\n [\n columnResizeMode,\n sortingIcon,\n sortingIconProps,\n resizableTriggerProps,\n table,\n ],\n )\n const getCell = (\n evOrEl:\n | Element\n | FocusEvent<HTMLTableElement>\n | KeyboardEvent<HTMLTableElement>\n | null\n | undefined,\n ) => {\n if (!evOrEl) return\n\n const el =\n evOrEl instanceof HTMLElement\n ? evOrEl.closest(\"th, td\")\n : \"target\" in evOrEl && evOrEl.target instanceof HTMLElement\n ? evOrEl.target.closest(\"th, td\")\n : null\n\n if (!(el instanceof HTMLTableCellElement)) return\n\n const { colindex, rowindex } = el.dataset\n const { colSpan, rowSpan } = el\n\n if (!colindex || !rowindex) return\n\n const colIndex = parseInt(colindex)\n const rowIndex = parseInt(rowindex)\n\n return { colIndex, colSpan, el, rowIndex, rowSpan }\n }\n const getShouldFocusCell = (colIndex: number, rowIndex: number) => {\n const [trulyColIndex, trulyRowIndex] =\n cellMap.get(`${colIndex}-${rowIndex}`)?.split(\"-\") ?? []\n\n if (!trulyColIndex || !trulyRowIndex) return\n\n const targetEl = ref.current?.querySelector(\n `[data-colindex=\"${trulyColIndex}\"][data-rowindex=\"${trulyRowIndex}\"]`,\n )\n\n if (!targetEl || !(targetEl instanceof HTMLTableCellElement)) return\n\n return targetEl\n }\n const removeTabIndex = (el: Element | null | undefined) => {\n if (!el || !(el instanceof HTMLElement)) return\n\n el.tabIndex = -1\n el.querySelectorAll(\"[data-focusable]\").forEach((el) => {\n if (el instanceof HTMLElement) el.tabIndex = -1\n })\n }\n const onCellFocus = (\n el: HTMLTableCellElement | null | undefined,\n colIndex: number,\n rowIndex: number,\n ) => {\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (!targetEl) return\n\n focusedCell.current = { colIndex, rowIndex }\n\n removeTabIndex(el)\n\n const shouldFocusEl =\n targetEl.querySelector(\"[data-focusable]\") ?? targetEl\n\n if (shouldFocusEl instanceof HTMLElement) {\n shouldFocusEl.tabIndex = 0\n shouldFocusEl.focus()\n }\n }\n const onFocus = (ev: FocusEvent<HTMLTableElement>) => {\n if (initialFocus.current) return\n\n initialFocus.current = true\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex)\n }\n const onKeyDown = (ev: KeyboardEvent<HTMLTableElement>) => {\n if (!enableKeyboardNavigation) return\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n runKeyAction(ev, {\n ArrowDown: () =>\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex + cell.rowSpan),\n ArrowLeft: () => onCellFocus(cell.el, cell.colIndex - 1, cell.rowIndex),\n ArrowRight: () =>\n onCellFocus(cell.el, cell.colIndex + cell.colSpan, cell.rowIndex),\n ArrowUp: () => onCellFocus(cell.el, cell.colIndex, cell.rowIndex - 1),\n End: () => onCellFocus(cell.el, maxColIndex, cell.rowIndex),\n Home: () => onCellFocus(cell.el, 0, cell.rowIndex),\n ...(enablePagination\n ? {\n PageDown: () => {\n if (!table.getCanNextPage()) return\n\n table.setPageIndex(pageIndex + 1)\n },\n PageUp: () => {\n if (!table.getCanPreviousPage()) return\n\n table.setPageIndex(pageIndex - 1)\n },\n }\n : {}),\n })\n }\n const getTabIndex = (colIndex: number, rowIndex: number) => {\n if (!enableKeyboardNavigation) return undefined\n\n return colIndex === initialFocusableCell.colIndex &&\n rowIndex === initialFocusableCell.rowIndex\n ? 0\n : undefined\n }\n\n useUpdateEffect(() => {\n if (!enableKeyboardNavigation) return\n\n const { colIndex, rowIndex } = focusedCell.current ?? initialFocusableCell\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (targetEl) targetEl.tabIndex = 0\n }, [pageIndex, enableKeyboardNavigation])\n\n return (\n <ComponentContext value={context}>\n {header ? runIfFn(header, table) : null}\n\n <NativeTable.Root\n {...mergeProps(\n {\n ref,\n style:\n enableColumnResizing && enableAutoResizeTableWidth\n ? { width: table.getCenterTotalSize() }\n : {},\n colorScheme,\n size,\n variant,\n \"aria-colcount\": colCount,\n \"aria-multiselectable\": enableRowSelection ? \"true\" : undefined,\n \"aria-rowcount\": totalRowCount || data.length,\n highlightOnHover,\n highlightOnSelected,\n layout,\n role: \"grid\",\n stickyFooter,\n stickyHeader,\n striped,\n withBorder,\n withColumnBorders,\n withScrollArea,\n scrollAreaProps,\n onFocus,\n onKeyDown,\n },\n tableProps ?? {},\n )()}\n >\n <NativeTable.Thead role=\"rowgroup\" {...theadProps}>\n {mergedHeaderGroups.map((headerGroup, rowIndex) => {\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={headerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(headerGroupProps, headerGroup)}\n >\n {headerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const canSort = header.column.getCanSort()\n const sorted = header.column.getIsSorted()\n const canResize = header.column.getCanResize()\n const resizing = header.column.getIsResizing()\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Th\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n aria-sort={\n sorted\n ? sorted === \"asc\"\n ? \"ascending\"\n : \"descending\"\n : \"none\"\n }\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n pe={\n canSort\n ? \"calc((1rem * {lineHeights.moderate}) + {space-x})\"\n : undefined\n }\n position=\"relative\"\n role=\"columnheader\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n style: enableColumnResizing\n ? { width: header.getSize() }\n : {},\n },\n runIfFn(headerProps, header) ?? {},\n columnDef.headerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n\n {canSort ? (\n <SortingIcon\n sorted={sorted}\n onClick={header.column.getToggleSortingHandler()}\n />\n ) : null}\n\n {canResize ? (\n <ResizableTrigger\n resizing={resizing}\n onDoubleClick={header.column.resetSize}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n ) : null}\n </NativeTable.Th>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Thead>\n\n <NativeTable.Tbody role=\"rowgroup\" {...tbodyProps}>\n {rows.map((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n const selected = !!rowSelection[row.id]\n const disabled =\n isFunction(enableRowSelection) && !enableRowSelection(row)\n\n return (\n <NativeTable.Tr\n id={row.id}\n key={row.id}\n aria-disabled={ariaAttr(disabled)}\n aria-rowindex={rowIndex + 1}\n aria-selected={ariaAttr(selected)}\n data-disabled={dataAttr(disabled)}\n data-selected={dataAttr(selected)}\n role=\"row\"\n {...mergeProps(\n {\n onClick:\n !disabled && selectOnClickRow\n ? () => row.toggleSelected(!selected)\n : undefined,\n },\n {\n onClick: !disabled ? () => onRowClick?.(row) : undefined,\n onDoubleClick: !disabled\n ? () => onRowDoubleClick?.(row)\n : undefined,\n },\n runIfFn(rowProps, row) ?? {},\n )()}\n >\n {row.getVisibleCells().map((cell) => {\n const { columnDef } = cell.column\n const colIndex = cell.column.getIndex()\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n\n return (\n <NativeTable.Td\n key={cell.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(cellProps, cell) ?? {},\n columnDef.cellProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tbody>\n\n {withFooterGroups ? (\n <NativeTable.Tfoot role=\"rowgroup\" {...tfootProps}>\n {mergedFooterGroups.map((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={footerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(footerGroupProps, footerGroup)}\n >\n {footerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Td\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(footerProps, header) ?? {},\n columnDef.footerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tfoot>\n ) : null}\n </NativeTable.Root>\n\n {footer ? runIfFn(footer, table) : null}\n </ComponentContext>\n )\n },\n)() as GenericsComponent<{\n <Y extends RowData>(props: TableProps<Y>): ReactElement\n}>\n\ninterface SortingIconProps extends HTMLStyledProps<\"button\"> {\n sorted: false | SortDirection\n}\n\nconst SortingIcon: FC<SortingIconProps> = ({ sorted, ...rest }) => {\n const { t } = useI18n(\"table\")\n const { sortingIcon, sortingIconProps = {} } = useComponentContext()\n const Icon = sorted ? ChevronUpIcon : ChevronsUpDownIcon\n\n return (\n <styled.button\n type=\"button\"\n layerStyle=\"ghost\"\n colorScheme=\"mono\"\n aria-label={t(\n sorted\n ? sorted === \"desc\"\n ? \"Sort descending\"\n : \"Sort ascending\"\n : \"Clear sorting\",\n )}\n data-focusable\n aspectRatio=\"1\"\n cursor=\"pointer\"\n display=\"center\"\n focusVisibleRing=\"none\"\n h=\"calc(1em * {lineHeights.moderate})\"\n position=\"absolute\"\n right=\"{space-x}\"\n rounded=\"l1\"\n tabIndex={-1}\n top=\"50%\"\n transform=\"translateY(-50%)\"\n transitionDuration=\"moderate\"\n transitionProperty=\"common\"\n _hover={{ layerStyle: \"ghost.hover\" }}\n {...mergeProps(rest, sortingIconProps)()}\n >\n {runIfFn(sortingIcon, sorted) ?? (\n <Icon transform={`rotate(${sorted === \"desc\" ? 180 : 0}deg)`} />\n )}\n </styled.button>\n )\n}\n\ninterface ResizableTriggerProps extends HTMLStyledProps {\n resizing: boolean\n}\n\nconst ResizableTrigger: FC<ResizableTriggerProps> = ({ resizing, ...rest }) => {\n const {\n columnResizeMode,\n table,\n resizableTriggerProps = {},\n } = useComponentContext()\n const offset = table.getState().columnSizingInfo.deltaOffset\n\n return (\n <styled.div\n data-active={dataAttr(resizing)}\n bg=\"colorScheme.solid\"\n cursor=\"col-resize\"\n insetY=\"0\"\n opacity={{ base: \"0\", _hover: \"1\", _active: \"1\" }}\n position=\"absolute\"\n right=\"0\"\n touchAction=\"none\"\n transform={`translateX(${columnResizeMode === \"onEnd\" && resizing && offset ? `${offset}px` : \"50%\"})`}\n userSelect=\"none\"\n w=\"1\"\n {...mergeProps(rest, resizableTriggerProps)()}\n />\n )\n}\n\ninterface TruncatedTextProps extends HTMLStyledProps<\"span\"> {}\n\nconst TruncatedText: FC<TruncatedTextProps> = ({\n children,\n lineClamp,\n truncated,\n ...rest\n}) => {\n if (lineClamp || truncated) {\n return (\n <styled.span\n lineClamp={lineClamp}\n truncated={truncated}\n wordBreak=\"break-all\"\n {...rest}\n >\n {children}\n </styled.span>\n )\n } else {\n return children\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"table.cjs","names":["createComponent","useI18n","useControllableState","header","Checkbox","mergeProps","table","cellMap","el","focusRingStyle","SortingIcon: FC<SortingIconProps>","ChevronUpIcon","ChevronsUpDownIcon","styled","ResizableTrigger: FC<ResizableTriggerProps>","TruncatedText: FC<TruncatedTextProps>"],"sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n AccessorFn,\n Cell,\n CellContext,\n ColumnDef,\n ColumnDefTemplate,\n ColumnFiltersColumnDef,\n ColumnFiltersState,\n ColumnMeta,\n ColumnPinningColumnDef,\n ColumnSizingColumnDef,\n GlobalFilterColumnDef,\n GroupingColumnDef,\n Header,\n HeaderContext,\n HeaderGroup,\n OnChangeFn,\n SortingState as OriginalSortingState,\n PaginationState,\n Table as ReactTable,\n Row,\n RowData,\n RowSelectionState,\n SortDirection,\n SortingColumnDef,\n TableOptions,\n VisibilityColumnDef,\n} from \"@tanstack/react-table\"\nimport type { FC, FocusEvent, KeyboardEvent, ReactElement } from \"react\"\nimport type { CSSProps, GenericsComponent, HTMLStyledProps } from \"../../core\"\nimport type { ReactNodeOrFunction, TransformProps } from \"../../utils\"\nimport type { CheckboxProps } from \"../checkbox\"\nimport {\n createColumnHelper,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { useMemo, useRef } from \"react\"\nimport { createComponent, focusRingStyle, mergeProps, styled } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n dataAttr,\n isFunction,\n runIfFn,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { Checkbox } from \"../checkbox\"\nimport { ChevronsUpDownIcon, ChevronUpIcon } from \"../icon\"\nimport { NativeTable } from \"../native-table\"\n\ndeclare module \"@tanstack/react-table\" {\n interface ColumnDefExtensions<TData extends RowData, TValue = unknown>\n extends\n VisibilityColumnDef,\n ColumnPinningColumnDef,\n ColumnFiltersColumnDef<TData>,\n GlobalFilterColumnDef,\n SortingColumnDef<TData>,\n GroupingColumnDef<TData, TValue>,\n ColumnSizingColumnDef {}\n\n interface ColumnDefBase<TData extends RowData, TValue = unknown>\n extends\n ColumnDefExtensions<TData, TValue>,\n Pick<CSSProps, \"lineClamp\" | \"truncated\">,\n Pick<NativeTable.TdProps, \"numeric\"> {\n cell?: ColumnDefTemplate<CellContext<TData, TValue>>\n footer?: ColumnDefTemplate<HeaderContext<TData, TValue>>\n getUniqueValues?: AccessorFn<TData, unknown[]>\n meta?: ColumnMeta<TData, TValue>\n cellProps?: NativeTable.TdProps\n footerProps?: NativeTable.ThProps\n headerProps?: NativeTable.ThProps\n }\n}\n\nexport { createColumnHelper }\nexport type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n RowSelectionState,\n SortDirection,\n}\n\nfunction getMergeHeaderGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n const columnsIds = new Set()\n\n return headerGroups.map((headerGroup, depth, { length: fullDepth }) => {\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !columnsIds.has(header.column.id))\n .map((header) => {\n columnsIds.add(header.column.id)\n\n return header.isPlaceholder\n ? { ...header, isPlaceholder: false, rowSpan: fullDepth - depth }\n : { ...header, rowSpan: 1 }\n }),\n }\n })\n}\n\nfunction getMergeFooterGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n return headerGroups.map((headerGroup, depth) => {\n const nextHeaderGroups = headerGroups.slice(depth + 1)\n\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !header.isPlaceholder)\n .map((header) => {\n if (nextHeaderGroups.length === 0) return header\n\n const rowSpan = nextHeaderGroups.reduce((acc, nextHeaderGroup) => {\n const hasNextHeader = nextHeaderGroup.headers.some(\n (nextHeader) => nextHeader.column.id === header.column.id,\n )\n\n return acc + (hasNextHeader ? 1 : 0)\n }, 1)\n\n return { ...header, rowSpan }\n }),\n }\n })\n}\n\nexport interface ColumnSort<Y extends RowData> {\n desc: boolean\n id: keyof Y\n}\nexport type SortingState<Y extends RowData> = ColumnSort<Y>[]\n\ninterface ComponentContext extends Pick<\n TableProps<any>,\n | \"columnResizeMode\"\n | \"resizableTriggerProps\"\n | \"sortingIcon\"\n | \"sortingIconProps\"\n> {\n table: ReactTable<any>\n}\n\ninterface OmittedTableOptions<Y extends RowData> extends Omit<\n TableOptions<Y>,\n | \"getCoreRowModel\"\n | \"onColumnFiltersChange\"\n | \"onPaginationChange\"\n | \"onSortingChange\"\n> {}\n\ninterface PickedNativeTableProps extends Pick<\n NativeTable.RootProps,\n | \"className\"\n | \"highlightOnHover\"\n | \"highlightOnSelected\"\n | \"layout\"\n | \"scrollAreaProps\"\n | \"size\"\n | \"stickyFooter\"\n | \"stickyHeader\"\n | \"striped\"\n | \"variant\"\n | \"withBorder\"\n | \"withColumnBorders\"\n | \"withScrollArea\"\n> {}\n\nexport interface TableProps<Y extends RowData>\n extends\n OmittedTableOptions<Y>,\n PickedNativeTableProps,\n Pick<CSSProps, \"colorScheme\" | \"lineClamp\" | \"truncated\"> {\n /**\n * The column filters state of the table.\n */\n columnFilters?: ColumnFiltersState\n /**\n * The default column filters state of the table.\n */\n defaultColumnFilters?: ColumnFiltersState\n /**\n * The default pagination state of the table.\n */\n defaultPagination?: PaginationState\n /**\n * The default row selection state of the table.\n */\n defaultRowSelection?: RowSelectionState\n /**\n * The default sorting state of the table.\n */\n defaultSorting?: SortingState<Y>\n /**\n * If `true`, the table width will be automatically resized to the content.\n *\n * @default false\n */\n enableAutoResizeTableWidth?: boolean\n /**\n * If `true`, the keyboard navigation will be enabled.\n *\n * @default true\n */\n enableKeyboardNavigation?: boolean\n /**\n * If `true`, the pagination will be enabled.\n *\n * @default false\n */\n enablePagination?: boolean\n /**\n * The footer of the table.\n */\n footer?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The header of the table.\n */\n header?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The initial focusable cell of the table.\n *\n * @default {rowIndex: 0, colIndex: 0}\n */\n initialFocusableCell?: { colIndex: number; rowIndex: number }\n /**\n * The pagination state of the table.\n */\n pagination?: PaginationState\n /**\n * The row selection state of the table.\n */\n rowSelection?: RowSelectionState\n /**\n * If `true`, the row will be selected when the row is clicked.\n *\n * @default false\n */\n selectOnClickRow?: boolean\n /**\n * The sorting state of the table.\n */\n sorting?: SortingState<Y>\n /**\n * The sorting icon of the table.\n */\n sortingIcon?: ReactNodeOrFunction<false | SortDirection>\n /**\n * If `true`, the table will have a checkbox column.\n *\n * @default true\n */\n withCheckbox?: boolean\n /**\n * If `true`, the table will have a checkbox in the footer.\n *\n * @default false\n */\n withFooterCheckbox?: boolean\n /**\n * If `true`, the table will have footer groups.\n *\n * @default false\n */\n withFooterGroups?: boolean\n /**\n * The props for the table cell.\n */\n cellProps?: TransformProps<NativeTable.TdProps, Cell<Y, unknown>>\n /**\n * The props for the checkbox.\n */\n checkboxProps?: CheckboxProps\n /**\n * The props for the table footer group.\n */\n footerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table footer.\n */\n footerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the table header checkbox.\n */\n headerCheckboxProps?: TransformProps<CheckboxProps, Header<Y, unknown>>\n /**\n * The props for the table header group.\n */\n headerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table header.\n */\n headerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the resizable trigger.\n */\n resizableTriggerProps?: TransformProps<\n Omit<ResizableTriggerProps, \"resizing\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table row checkbox.\n */\n rowCheckboxProps?: TransformProps<CheckboxProps, Row<Y>>\n /**\n * The props for the table row.\n */\n rowProps?: TransformProps<NativeTable.TrProps, Row<Y>>\n /**\n * The props for the sorting icon.\n */\n sortingIconProps?: TransformProps<\n Omit<SortingIconProps, \"sorted\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table.\n */\n tableProps?: NativeTable.RootProps\n /**\n * The props for the table tbody.\n */\n tbodyProps?: NativeTable.TbodyProps\n /**\n * The props for the table tfoot.\n */\n tfootProps?: NativeTable.TfootProps\n /**\n * The props for the table thead.\n */\n theadProps?: NativeTable.TheadProps\n /**\n * The callback invoked when the column filters state changes.\n */\n onColumnFiltersChange?: (columnFilters: ColumnFiltersState) => void\n /**\n * The callback invoked when the pagination state changes.\n */\n onPaginationChange?: (pagination: PaginationState) => void\n /**\n * The callback invoked when the row is clicked.\n */\n onRowClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the row is double clicked.\n */\n onRowDoubleClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the sorting state changes.\n */\n onSortingChange?: (sorting: SortingState<Y>) => void\n}\n\nconst {\n ComponentContext,\n PropsContext: TablePropsContext,\n useComponentContext,\n usePropsContext: useTablePropsContext,\n withContext,\n} = createComponent<TableProps<any>, any, ComponentContext>(\"table\")\n\nexport { TablePropsContext, useTablePropsContext }\n\n/**\n * `Table` is a table component equipped with column sorting, row selection, and click event features.\n *\n * @see https://yamada-ui.com/docs/components/table\n */\nexport const Table = withContext(\n <Y extends RowData>({\n className,\n colorScheme,\n size,\n variant,\n columnFilters: columnFiltersProp,\n columnResizeMode = \"onChange\",\n columns: columnsProp,\n data,\n defaultColumnFilters,\n defaultPagination = { pageIndex: 0, pageSize: 20 },\n defaultRowSelection = {},\n defaultSorting,\n enableAutoResizeTableWidth = false,\n enableColumnResizing = false,\n enableKeyboardNavigation = true,\n enablePagination = false,\n enableRowSelection = false,\n footer,\n header,\n highlightOnHover = !!enableRowSelection,\n highlightOnSelected = !!enableRowSelection,\n initialFocusableCell = { colIndex: 0, rowIndex: 0 },\n layout,\n lineClamp,\n manualPagination,\n pagination: paginationProp,\n rowCount: totalRowCount,\n rowSelection: rowSelectionProp,\n selectOnClickRow = false,\n sortDescFirst = false,\n sorting: sortingProp,\n sortingIcon,\n state,\n stickyFooter,\n stickyHeader,\n striped,\n truncated,\n withBorder,\n withCheckbox = true,\n withColumnBorders,\n withFooterCheckbox = false,\n withFooterGroups = false,\n withScrollArea,\n cellProps,\n checkboxProps,\n footerGroupProps,\n footerProps,\n headerCheckboxProps,\n headerGroupProps,\n headerProps,\n resizableTriggerProps,\n rowCheckboxProps,\n rowProps,\n scrollAreaProps,\n sortingIconProps,\n tableProps,\n tbodyProps,\n tfootProps,\n theadProps,\n onColumnFiltersChange: onColumnFiltersChangeProp,\n onPaginationChange: onPaginationChangeProp,\n onRowClick,\n onRowDoubleClick,\n onRowSelectionChange: onRowSelectionChangeProp,\n onSortingChange: onSortingChangeProp,\n ...rest\n }: TableProps<Y>) => {\n const { t } = useI18n(\"table\")\n const initialFocus = useRef<boolean>(false)\n const ref = useRef<HTMLTableElement>(null)\n const focusedCell = useRef<null | { colIndex: number; rowIndex: number }>(\n null,\n )\n const [rowSelection, onRowSelectionChange] = useControllableState({\n defaultValue: defaultRowSelection,\n value: rowSelectionProp,\n onChange: onRowSelectionChangeProp,\n })\n const [sorting, onSortingChange] = useControllableState({\n defaultValue: defaultSorting,\n value: sortingProp,\n onChange: onSortingChangeProp,\n })\n const [pagination, onPaginationChange] = useControllableState({\n defaultValue: defaultPagination,\n value: paginationProp,\n onChange: onPaginationChangeProp,\n })\n const [columnFilters, onColumnFiltersChange] = useControllableState({\n defaultValue: defaultColumnFilters,\n value: columnFiltersProp,\n onChange: onColumnFiltersChangeProp,\n })\n const columns = useMemo(() => {\n if (!enableRowSelection || !withCheckbox) return columnsProp\n\n const clonedColumns = [...columnsProp]\n\n const header = ({ header, table }: HeaderContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: table.getIsAllRowsSelected(),\n indeterminate: table.getIsSomeRowsSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select all rows\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: table.getToggleAllRowsSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(headerCheckboxProps, header) ?? {},\n )()}\n />\n )\n }\n\n const cell = ({ row }: CellContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: row.getIsSelected(),\n disabled: !row.getCanSelect(),\n indeterminate: row.getIsSomeSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select row\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: row.getToggleSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(rowCheckboxProps, row) ?? {},\n )()}\n />\n )\n }\n\n clonedColumns.unshift({\n id: \"select\",\n cell,\n header,\n ...(withFooterCheckbox\n ? { footer: header }\n : { footerProps: { \"aria-hidden\": \"true\" } }),\n cellProps: { verticalAlign: \"middle\" },\n headerProps: { w: \"calc({spaces.4} + {space-x} * 2)\" },\n })\n\n return clonedColumns\n }, [\n checkboxProps,\n columnsProp,\n enableRowSelection,\n headerCheckboxProps,\n rowCheckboxProps,\n t,\n withCheckbox,\n withFooterCheckbox,\n ])\n const table = useReactTable<Y>({\n columnResizeMode,\n columns,\n data,\n enableColumnResizing,\n enableRowSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualPagination,\n rowCount: totalRowCount,\n sortDescFirst,\n state: {\n columnFilters,\n pagination: enablePagination ? pagination : undefined,\n rowSelection,\n sorting: sorting as OriginalSortingState,\n ...state,\n },\n onColumnFiltersChange,\n onPaginationChange,\n onRowSelectionChange,\n onSortingChange: onSortingChange as OnChangeFn<OriginalSortingState>,\n ...(enablePagination\n ? { getPaginationRowModel: getPaginationRowModel() }\n : {}),\n ...rest,\n })\n const headerGroups = table.getHeaderGroups()\n const mergedHeaderGroups = getMergeHeaderGroups(headerGroups)\n const rows = table.getRowModel().rows\n const footerGroups = table.getFooterGroups()\n const mergedFooterGroups = getMergeFooterGroups(\n withFooterGroups ? footerGroups : [],\n )\n const headerGroupCount = headerGroups.length\n const rowCount = rows.length\n const colCount = table.getAllLeafColumns().length\n const maxColIndex = colCount - 1\n const pageIndex = enablePagination\n ? table.getState().pagination.pageIndex\n : 0\n const cellMap = useMemo(() => {\n const cellMap = new Map<string, string>()\n\n if (!enableKeyboardNavigation) return cellMap\n\n const insertCellMap = (\n id: string,\n colSpan: number,\n rowSpan: number,\n colIndex: number,\n rowIndex: number,\n ) => {\n for (let i = 0; i < colSpan; i++) {\n cellMap.set(`${colIndex + i}-${rowIndex}`, `${colIndex}-${rowIndex}`)\n }\n\n for (let i = 1; i < rowSpan; i++) {\n cellMap.set(`${colIndex}-${rowIndex + i}`, `${colIndex}-${rowIndex}`)\n }\n }\n\n const insertCellMapByHeaderGroup = (\n headerGroup: HeaderGroup<Y>,\n rowIndex: number,\n ) => {\n let placeholderCount = 0\n\n headerGroup.headers.forEach((header) => {\n const colSpan = header.colSpan || 1\n const rowSpan = header.rowSpan || 1\n const colIndex = header.index + placeholderCount\n\n placeholderCount += colSpan - 1\n\n insertCellMap(header.id, colSpan, rowSpan, colIndex, rowIndex)\n })\n }\n\n mergedHeaderGroups.forEach((headerGroup, rowIndex) => {\n insertCellMapByHeaderGroup(headerGroup, rowIndex)\n })\n\n rows.forEach((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n row.getVisibleCells().forEach((cell) => {\n const colIndex = cell.column.getIndex()\n\n insertCellMap(cell.id, 1, 1, colIndex, rowIndex)\n })\n })\n\n mergedFooterGroups.forEach((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n insertCellMapByHeaderGroup(footerGroup, rowIndex)\n })\n\n return cellMap\n }, [\n enableKeyboardNavigation,\n headerGroupCount,\n mergedFooterGroups,\n mergedHeaderGroups,\n rows,\n rowCount,\n ])\n const context = useMemo(\n () => ({\n columnResizeMode,\n sortingIcon,\n table,\n resizableTriggerProps,\n sortingIconProps,\n }),\n [\n columnResizeMode,\n sortingIcon,\n sortingIconProps,\n resizableTriggerProps,\n table,\n ],\n )\n const getCell = (\n evOrEl:\n | Element\n | FocusEvent<HTMLTableElement>\n | KeyboardEvent<HTMLTableElement>\n | null\n | undefined,\n ) => {\n if (!evOrEl) return\n\n const el =\n evOrEl instanceof HTMLElement\n ? evOrEl.closest(\"th, td\")\n : \"target\" in evOrEl && evOrEl.target instanceof HTMLElement\n ? evOrEl.target.closest(\"th, td\")\n : null\n\n if (!(el instanceof HTMLTableCellElement)) return\n\n const { colindex, rowindex } = el.dataset\n const { colSpan, rowSpan } = el\n\n if (!colindex || !rowindex) return\n\n const colIndex = parseInt(colindex)\n const rowIndex = parseInt(rowindex)\n\n return { colIndex, colSpan, el, rowIndex, rowSpan }\n }\n const getShouldFocusCell = (colIndex: number, rowIndex: number) => {\n const [trulyColIndex, trulyRowIndex] =\n cellMap.get(`${colIndex}-${rowIndex}`)?.split(\"-\") ?? []\n\n if (!trulyColIndex || !trulyRowIndex) return\n\n const targetEl = ref.current?.querySelector(\n `[data-colindex=\"${trulyColIndex}\"][data-rowindex=\"${trulyRowIndex}\"]`,\n )\n\n if (!targetEl || !(targetEl instanceof HTMLTableCellElement)) return\n\n return targetEl\n }\n const removeTabIndex = (el: Element | null | undefined) => {\n if (!el || !(el instanceof HTMLElement)) return\n\n el.tabIndex = -1\n el.querySelectorAll(\"[data-focusable]\").forEach((el) => {\n if (el instanceof HTMLElement) el.tabIndex = -1\n })\n }\n const onCellFocus = (\n el: HTMLTableCellElement | null | undefined,\n colIndex: number,\n rowIndex: number,\n ) => {\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (!targetEl) return\n\n focusedCell.current = { colIndex, rowIndex }\n\n removeTabIndex(el)\n\n const shouldFocusEl =\n targetEl.querySelector(\"[data-focusable]\") ?? targetEl\n\n if (shouldFocusEl instanceof HTMLElement) {\n shouldFocusEl.tabIndex = 0\n shouldFocusEl.focus()\n }\n }\n const onFocus = (ev: FocusEvent<HTMLTableElement>) => {\n if (initialFocus.current) return\n\n initialFocus.current = true\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex)\n }\n const onKeyDown = (ev: KeyboardEvent<HTMLTableElement>) => {\n if (!enableKeyboardNavigation) return\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n runKeyAction(ev, {\n ArrowDown: () =>\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex + cell.rowSpan),\n ArrowLeft: () => onCellFocus(cell.el, cell.colIndex - 1, cell.rowIndex),\n ArrowRight: () =>\n onCellFocus(cell.el, cell.colIndex + cell.colSpan, cell.rowIndex),\n ArrowUp: () => onCellFocus(cell.el, cell.colIndex, cell.rowIndex - 1),\n End: () => onCellFocus(cell.el, maxColIndex, cell.rowIndex),\n Home: () => onCellFocus(cell.el, 0, cell.rowIndex),\n ...(enablePagination\n ? {\n PageDown: () => {\n if (!table.getCanNextPage()) return\n\n table.setPageIndex(pageIndex + 1)\n },\n PageUp: () => {\n if (!table.getCanPreviousPage()) return\n\n table.setPageIndex(pageIndex - 1)\n },\n }\n : {}),\n })\n }\n const getTabIndex = (colIndex: number, rowIndex: number) => {\n if (!enableKeyboardNavigation) return undefined\n\n return colIndex === initialFocusableCell.colIndex &&\n rowIndex === initialFocusableCell.rowIndex\n ? 0\n : undefined\n }\n\n useUpdateEffect(() => {\n if (!enableKeyboardNavigation) return\n\n const { colIndex, rowIndex } = focusedCell.current ?? initialFocusableCell\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (targetEl) targetEl.tabIndex = 0\n }, [pageIndex, enableKeyboardNavigation])\n\n return (\n <ComponentContext value={context}>\n {header ? runIfFn(header, table) : null}\n\n <NativeTable.Root\n {...mergeProps(\n {\n ref,\n className,\n style:\n enableColumnResizing && enableAutoResizeTableWidth\n ? { width: table.getCenterTotalSize() }\n : {},\n colorScheme,\n size,\n variant,\n \"aria-colcount\": colCount,\n \"aria-multiselectable\": enableRowSelection ? \"true\" : undefined,\n \"aria-rowcount\": totalRowCount || data.length,\n highlightOnHover,\n highlightOnSelected,\n layout,\n role: \"grid\",\n stickyFooter,\n stickyHeader,\n striped,\n withBorder,\n withColumnBorders,\n withScrollArea,\n scrollAreaProps,\n onFocus,\n onKeyDown,\n },\n tableProps ?? {},\n )()}\n >\n <NativeTable.Thead role=\"rowgroup\" {...theadProps}>\n {mergedHeaderGroups.map((headerGroup, rowIndex) => {\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={headerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(headerGroupProps, headerGroup)}\n >\n {headerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const canSort = header.column.getCanSort()\n const sorted = header.column.getIsSorted()\n const canResize = header.column.getCanResize()\n const resizing = header.column.getIsResizing()\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Th\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n aria-sort={\n sorted\n ? sorted === \"asc\"\n ? \"ascending\"\n : \"descending\"\n : \"none\"\n }\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n pe={\n canSort\n ? \"calc((1rem * {lineHeights.moderate}) + {space-x})\"\n : undefined\n }\n position=\"relative\"\n role=\"columnheader\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n style: enableColumnResizing\n ? { width: header.getSize() }\n : {},\n },\n runIfFn(headerProps, header) ?? {},\n columnDef.headerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n\n {canSort ? (\n <SortingIcon\n sorted={sorted}\n onClick={header.column.getToggleSortingHandler()}\n />\n ) : null}\n\n {canResize ? (\n <ResizableTrigger\n resizing={resizing}\n onDoubleClick={header.column.resetSize}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n ) : null}\n </NativeTable.Th>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Thead>\n\n <NativeTable.Tbody role=\"rowgroup\" {...tbodyProps}>\n {rows.map((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n const selected = !!rowSelection[row.id]\n const disabled =\n isFunction(enableRowSelection) && !enableRowSelection(row)\n\n return (\n <NativeTable.Tr\n id={row.id}\n key={row.id}\n aria-disabled={ariaAttr(disabled)}\n aria-rowindex={rowIndex + 1}\n aria-selected={ariaAttr(selected)}\n data-disabled={dataAttr(disabled)}\n data-selected={dataAttr(selected)}\n role=\"row\"\n {...mergeProps(\n {\n onClick:\n !disabled && selectOnClickRow\n ? () => row.toggleSelected(!selected)\n : undefined,\n },\n {\n onClick: !disabled ? () => onRowClick?.(row) : undefined,\n onDoubleClick: !disabled\n ? () => onRowDoubleClick?.(row)\n : undefined,\n },\n runIfFn(rowProps, row) ?? {},\n )()}\n >\n {row.getVisibleCells().map((cell) => {\n const { columnDef } = cell.column\n const colIndex = cell.column.getIndex()\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n\n return (\n <NativeTable.Td\n key={cell.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(cellProps, cell) ?? {},\n columnDef.cellProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tbody>\n\n {withFooterGroups ? (\n <NativeTable.Tfoot role=\"rowgroup\" {...tfootProps}>\n {mergedFooterGroups.map((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={footerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(footerGroupProps, footerGroup)}\n >\n {footerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Td\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(footerProps, header) ?? {},\n columnDef.footerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tfoot>\n ) : null}\n </NativeTable.Root>\n\n {footer ? runIfFn(footer, table) : null}\n </ComponentContext>\n )\n },\n)() as GenericsComponent<{\n <Y extends RowData>(props: TableProps<Y>): ReactElement\n}>\n\ninterface SortingIconProps extends HTMLStyledProps<\"button\"> {\n sorted: false | SortDirection\n}\n\nconst SortingIcon: FC<SortingIconProps> = ({ sorted, ...rest }) => {\n const { t } = useI18n(\"table\")\n const { sortingIcon, sortingIconProps = {} } = useComponentContext()\n const Icon = sorted ? ChevronUpIcon : ChevronsUpDownIcon\n\n return (\n <styled.button\n type=\"button\"\n layerStyle=\"ghost\"\n colorScheme=\"mono\"\n aria-label={t(\n sorted\n ? sorted === \"desc\"\n ? \"Sort descending\"\n : \"Sort ascending\"\n : \"Clear sorting\",\n )}\n data-focusable\n aspectRatio=\"1\"\n cursor=\"pointer\"\n display=\"center\"\n focusVisibleRing=\"none\"\n h=\"calc(1em * {lineHeights.moderate})\"\n position=\"absolute\"\n right=\"{space-x}\"\n rounded=\"l1\"\n tabIndex={-1}\n top=\"50%\"\n transform=\"translateY(-50%)\"\n transitionDuration=\"moderate\"\n transitionProperty=\"common\"\n _hover={{ layerStyle: \"ghost.hover\" }}\n {...mergeProps(rest, sortingIconProps)()}\n >\n {runIfFn(sortingIcon, sorted) ?? (\n <Icon transform={`rotate(${sorted === \"desc\" ? 180 : 0}deg)`} />\n )}\n </styled.button>\n )\n}\n\ninterface ResizableTriggerProps extends HTMLStyledProps {\n resizing: boolean\n}\n\nconst ResizableTrigger: FC<ResizableTriggerProps> = ({ resizing, ...rest }) => {\n const {\n columnResizeMode,\n table,\n resizableTriggerProps = {},\n } = useComponentContext()\n const offset = table.getState().columnSizingInfo.deltaOffset\n\n return (\n <styled.div\n data-active={dataAttr(resizing)}\n bg=\"colorScheme.solid\"\n cursor=\"col-resize\"\n insetY=\"0\"\n opacity={{ base: \"0\", _hover: \"1\", _active: \"1\" }}\n position=\"absolute\"\n right=\"0\"\n touchAction=\"none\"\n transform={`translateX(${columnResizeMode === \"onEnd\" && resizing && offset ? `${offset}px` : \"50%\"})`}\n userSelect=\"none\"\n w=\"1\"\n {...mergeProps(rest, resizableTriggerProps)()}\n />\n )\n}\n\ninterface TruncatedTextProps extends HTMLStyledProps<\"span\"> {}\n\nconst TruncatedText: FC<TruncatedTextProps> = ({\n children,\n lineClamp,\n truncated,\n ...rest\n}) => {\n if (lineClamp || truncated) {\n return (\n <styled.span\n lineClamp={lineClamp}\n truncated={truncated}\n wordBreak=\"break-all\"\n {...rest}\n >\n {children}\n </styled.span>\n )\n } else {\n return children\n }\n}\n"],"mappings":"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"}
@@ -28,8 +28,11 @@ const generateAtRule = (identifier) => (values, { system }) => {
28
28
  return `(${(0, require_utils_index.utils_exports.toKebabCase)(key)}: ${value})`;
29
29
  }).join(" and ");
30
30
  }
31
- const condition = `@${identifier} ${type ?? name ?? ""} ${query}`;
32
- prev[condition] = css;
31
+ const conditions = [`@${identifier}`];
32
+ if (type) conditions.push(type);
33
+ if (name) conditions.push(name);
34
+ if (query) conditions.push(query);
35
+ prev[conditions.join(" ")] = css;
33
36
  return prev;
34
37
  }, {});
35
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"at-rule.cjs","names":["style","tokenToVar"],"sources":["../../../../src/core/css/at-rule.ts"],"sourcesContent":["import type { Dict } from \"../../utils\"\nimport type { Transform } from \"./utils\"\nimport { filterUndefined, isArray, toArray, toKebabCase } from \"../../utils\"\nimport { tokenToVar } from \"./utils\"\n\nexport const generateAtRule =\n (identifier: string): Transform =>\n (values, { system }) => {\n if (!isArray(values)) return values\n\n return values.reduce<Dict>(\n (\n prev,\n {\n type,\n name,\n css,\n style,\n h,\n height,\n maxH,\n maxHeight,\n maxW,\n maxWidth,\n minH,\n minHeight,\n minW,\n minWidth,\n prefersColorMode,\n query,\n w,\n width,\n ...rest\n },\n ) => {\n width ??= w\n minWidth ??= minW\n maxWidth ??= maxW\n height ??= h\n minHeight ??= minH\n maxHeight ??= maxH\n\n if (!query) {\n if (style) {\n query = toArray(style)\n .map((style) => `style(${style})`)\n .join(\" and \")\n } else {\n const resolvedRest = filterUndefined({\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n prefersColorScheme: prefersColorMode,\n width,\n ...rest,\n })\n\n query = Object.entries(resolvedRest)\n .map(([key, value]) => {\n value = tokenToVar(system)(\"sizes\", value)\n\n return `(${toKebabCase(key)}: ${value})`\n })\n .join(\" and \")\n }\n }\n\n const condition = `@${identifier} ${type ?? name ?? \"\"} ${query}`\n\n prev[condition] = css\n\n return prev\n },\n {},\n )\n }\n"],"mappings":";;;;AAKA,MAAa,kBACV,gBACA,QAAQ,EAAE,aAAa;AACtB,KAAI,gDAAS,OAAO,CAAE,QAAO;AAE7B,QAAO,OAAO,QAEV,MACA,EACE,MACA,MACA,KACA,OACA,GACA,QACA,MACA,WACA,MACA,UACA,MACA,WACA,MACA,UACA,kBACA,OACA,GACA,OACA,GAAG,WAEF;AACH,YAAU;AACV,eAAa;AACb,eAAa;AACb,aAAW;AACX,gBAAc;AACd,gBAAc;AAEd,MAAI,CAAC,MACH,KAAI,MACF,wDAAgB,MAAM,CACnB,KAAK,YAAU,SAASA,QAAM,GAAG,CACjC,KAAK,QAAQ;OACX;GACL,MAAM,sEAA+B;IACnC;IACA;IACA;IACA;IACA;IACA,oBAAoB;IACpB;IACA,GAAG;IACJ,CAAC;AAEF,WAAQ,OAAO,QAAQ,aAAa,CACjC,KAAK,CAAC,KAAK,WAAW;AACrB,YAAQC,yBAAW,OAAO,CAAC,SAAS,MAAM;AAE1C,WAAO,uDAAgB,IAAI,CAAC,IAAI,MAAM;KACtC,CACD,KAAK,QAAQ;;EAIpB,MAAM,YAAY,IAAI,WAAW,GAAG,QAAQ,QAAQ,GAAG,GAAG;AAE1D,OAAK,aAAa;AAElB,SAAO;IAET,EAAE,CACH"}
1
+ {"version":3,"file":"at-rule.cjs","names":["style","tokenToVar"],"sources":["../../../../src/core/css/at-rule.ts"],"sourcesContent":["import type { Dict } from \"../../utils\"\nimport type { Transform } from \"./utils\"\nimport { filterUndefined, isArray, toArray, toKebabCase } from \"../../utils\"\nimport { tokenToVar } from \"./utils\"\n\nexport const generateAtRule =\n (identifier: string): Transform =>\n (values, { system }) => {\n if (!isArray(values)) return values\n\n return values.reduce<Dict>(\n (\n prev,\n {\n type,\n name,\n css,\n style,\n h,\n height,\n maxH,\n maxHeight,\n maxW,\n maxWidth,\n minH,\n minHeight,\n minW,\n minWidth,\n prefersColorMode,\n query,\n w,\n width,\n ...rest\n },\n ) => {\n width ??= w\n minWidth ??= minW\n maxWidth ??= maxW\n height ??= h\n minHeight ??= minH\n maxHeight ??= maxH\n\n if (!query) {\n if (style) {\n query = toArray(style)\n .map((style) => `style(${style})`)\n .join(\" and \")\n } else {\n const resolvedRest = filterUndefined({\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n prefersColorScheme: prefersColorMode,\n width,\n ...rest,\n })\n\n query = Object.entries(resolvedRest)\n .map(([key, value]) => {\n value = tokenToVar(system)(\"sizes\", value)\n\n return `(${toKebabCase(key)}: ${value})`\n })\n .join(\" and \")\n }\n }\n\n const conditions = [`@${identifier}`]\n\n if (type) conditions.push(type)\n if (name) conditions.push(name)\n if (query) conditions.push(query)\n\n prev[conditions.join(\" \")] = css\n\n return prev\n },\n {},\n )\n }\n"],"mappings":";;;;AAKA,MAAa,kBACV,gBACA,QAAQ,EAAE,aAAa;AACtB,KAAI,gDAAS,OAAO,CAAE,QAAO;AAE7B,QAAO,OAAO,QAEV,MACA,EACE,MACA,MACA,KACA,OACA,GACA,QACA,MACA,WACA,MACA,UACA,MACA,WACA,MACA,UACA,kBACA,OACA,GACA,OACA,GAAG,WAEF;AACH,YAAU;AACV,eAAa;AACb,eAAa;AACb,aAAW;AACX,gBAAc;AACd,gBAAc;AAEd,MAAI,CAAC,MACH,KAAI,MACF,wDAAgB,MAAM,CACnB,KAAK,YAAU,SAASA,QAAM,GAAG,CACjC,KAAK,QAAQ;OACX;GACL,MAAM,sEAA+B;IACnC;IACA;IACA;IACA;IACA;IACA,oBAAoB;IACpB;IACA,GAAG;IACJ,CAAC;AAEF,WAAQ,OAAO,QAAQ,aAAa,CACjC,KAAK,CAAC,KAAK,WAAW;AACrB,YAAQC,yBAAW,OAAO,CAAC,SAAS,MAAM;AAE1C,WAAO,uDAAgB,IAAI,CAAC,IAAI,MAAM;KACtC,CACD,KAAK,QAAQ;;EAIpB,MAAM,aAAa,CAAC,IAAI,aAAa;AAErC,MAAI,KAAM,YAAW,KAAK,KAAK;AAC/B,MAAI,KAAM,YAAW,KAAK,KAAK;AAC/B,MAAI,MAAO,YAAW,KAAK,MAAM;AAEjC,OAAK,WAAW,KAAK,IAAI,IAAI;AAE7B,SAAO;IAET,EAAE,CACH"}
@@ -40,7 +40,7 @@ const transforms = {
40
40
  },
41
41
  deg: (value) => {
42
42
  if (require_utils.isCSSVar(value) || value == null) return value;
43
- return typeof value === "string" && !value.endsWith("deg") || (0, require_utils_index.utils_exports.isNumber)(value) ? `${value}deg` : value;
43
+ return typeof value === "string" && !value.endsWith("deg") && !value.endsWith("grad") && !value.endsWith("turn") && !value.endsWith("rad") || (0, require_utils_index.utils_exports.isNumber)(value) ? `${value}deg` : value;
44
44
  },
45
45
  display: require_display.display,
46
46
  filter: require_filter.generateFilter,
@@ -1 +1 @@
1
- {"version":3,"file":"config.cjs","names":["generateStyle","generateCalc","generateAtRule","isCSSVar","generateFilter","generateFocusRing","generateFunction","analyzeCSSValue","generateToken","generateTransition"],"sources":["../../../../src/core/css/config.ts"],"sourcesContent":["import type { CSSObject } from \"@emotion/styled\"\nimport type { ThemeToken } from \"../system\"\nimport type { CSSProperties } from \"./index.types\"\nimport type { Transform } from \"./utils\"\nimport { isNumber, isObject } from \"../../utils\"\nimport { animation, keyframes } from \"./animation\"\nimport { generateAtRule } from \"./at-rule\"\nimport { generateCalc } from \"./calc\"\nimport { colorMix } from \"./color-mix\"\nimport { colorScheme } from \"./color-scheme\"\nimport { display } from \"./display\"\nimport { generateFilter } from \"./filter\"\nimport { generateFocusRing } from \"./focus-ring\"\nimport { generateFunction } from \"./function\"\nimport { gradient } from \"./gradient\"\nimport { grid } from \"./grid\"\nimport { generateStyle } from \"./style\"\nimport { generateToken } from \"./token\"\nimport { transform } from \"./transform\"\nimport { generateTransition } from \"./transition\"\nimport { analyzeCSSValue, isCSSVar } from \"./utils\"\n\nexport interface StyleConfig {\n important?: boolean\n properties?: CSSProperties[]\n static?: CSSObject\n token?: ThemeToken\n transform?: Transform\n}\n\nexport interface StyleConfigs {\n [key: string]: StyleConfig | true\n}\n\nexport const transforms = {\n style: generateStyle,\n colorScheme,\n animation,\n bgClip: (value, { prev }) => {\n if (value === \"text\") {\n prev ??= {}\n prev.color ??= \"transparent\"\n\n return value\n } else {\n return value\n }\n },\n calc: generateCalc,\n colorMix,\n container: generateAtRule(\"container\"),\n content: (value) => {\n if (isObject(value)) {\n return { content: \"''\", ...value }\n } else {\n return value\n }\n },\n deg: (value) => {\n if (isCSSVar(value) || value == null) return value\n\n const isUnitless = typeof value === \"string\" && !value.endsWith(\"deg\")\n\n return isUnitless || isNumber(value) ? `${value}deg` : value\n },\n display,\n filter: generateFilter,\n focusRing: generateFocusRing,\n fraction: (value) => {\n if (isNumber(value) && value <= 1) value = `${value * 100}%`\n\n return value\n },\n function: generateFunction,\n gradient,\n grid,\n keyframes,\n media: generateAtRule(\"media\"),\n px: (value) => {\n if (value == null) return value\n\n const { unitless } = analyzeCSSValue(value)\n\n return unitless || isNumber(value) ? `${value}px` : value\n },\n supports: generateAtRule(\"supports\"),\n token: generateToken,\n transform,\n transition: generateTransition,\n truncated: (value: boolean) => {\n if (value) {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n }\n },\n} satisfies { [key: string]: Transform }\n\nexport type Transforms = keyof typeof transforms\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCA,MAAa,aAAa;CACxB,OAAOA;CACP;CACA;CACA,SAAS,OAAO,EAAE,WAAW;AAC3B,MAAI,UAAU,QAAQ;AACpB,YAAS,EAAE;AACX,QAAK,UAAU;AAEf,UAAO;QAEP,QAAO;;CAGX,MAAMC;CACN;CACA,WAAWC,+BAAe,YAAY;CACtC,UAAU,UAAU;AAClB,sDAAa,MAAM,CACjB,QAAO;GAAE,SAAS;GAAM,GAAG;GAAO;MAElC,QAAO;;CAGX,MAAM,UAAU;AACd,MAAIC,uBAAS,MAAM,IAAI,SAAS,KAAM,QAAO;AAI7C,SAFmB,OAAO,UAAU,YAAY,CAAC,MAAM,SAAS,MAAM,oDAExC,MAAM,GAAG,GAAG,MAAM,OAAO;;CAEzD;CACA,QAAQC;CACR,WAAWC;CACX,WAAW,UAAU;AACnB,sDAAa,MAAM,IAAI,SAAS,EAAG,SAAQ,GAAG,QAAQ,IAAI;AAE1D,SAAO;;CAET,UAAUC;CACV;CACA;CACA;CACA,OAAOJ,+BAAe,QAAQ;CAC9B,KAAK,UAAU;AACb,MAAI,SAAS,KAAM,QAAO;EAE1B,MAAM,EAAE,aAAaK,8BAAgB,MAAM;AAE3C,SAAO,4DAAqB,MAAM,GAAG,GAAG,MAAM,MAAM;;CAEtD,UAAUL,+BAAe,WAAW;CACpC,OAAOM;CACP;CACA,YAAYC;CACZ,YAAY,UAAmB;AAC7B,MAAI,MACF,QAAO;GACL,UAAU;GACV,cAAc;GACd,YAAY;GACb;;CAGN"}
1
+ {"version":3,"file":"config.cjs","names":["generateStyle","generateCalc","generateAtRule","isCSSVar","generateFilter","generateFocusRing","generateFunction","analyzeCSSValue","generateToken","generateTransition"],"sources":["../../../../src/core/css/config.ts"],"sourcesContent":["import type { CSSObject } from \"@emotion/styled\"\nimport type { ThemeToken } from \"../system\"\nimport type { CSSProperties } from \"./index.types\"\nimport type { Transform } from \"./utils\"\nimport { isNumber, isObject } from \"../../utils\"\nimport { animation, keyframes } from \"./animation\"\nimport { generateAtRule } from \"./at-rule\"\nimport { generateCalc } from \"./calc\"\nimport { colorMix } from \"./color-mix\"\nimport { colorScheme } from \"./color-scheme\"\nimport { display } from \"./display\"\nimport { generateFilter } from \"./filter\"\nimport { generateFocusRing } from \"./focus-ring\"\nimport { generateFunction } from \"./function\"\nimport { gradient } from \"./gradient\"\nimport { grid } from \"./grid\"\nimport { generateStyle } from \"./style\"\nimport { generateToken } from \"./token\"\nimport { transform } from \"./transform\"\nimport { generateTransition } from \"./transition\"\nimport { analyzeCSSValue, isCSSVar } from \"./utils\"\n\nexport interface StyleConfig {\n important?: boolean\n properties?: CSSProperties[]\n static?: CSSObject\n token?: ThemeToken\n transform?: Transform\n}\n\nexport interface StyleConfigs {\n [key: string]: StyleConfig | true\n}\n\nexport const transforms = {\n style: generateStyle,\n colorScheme,\n animation,\n bgClip: (value, { prev }) => {\n if (value === \"text\") {\n prev ??= {}\n prev.color ??= \"transparent\"\n\n return value\n } else {\n return value\n }\n },\n calc: generateCalc,\n colorMix,\n container: generateAtRule(\"container\"),\n content: (value) => {\n if (isObject(value)) {\n return { content: \"''\", ...value }\n } else {\n return value\n }\n },\n deg: (value) => {\n if (isCSSVar(value) || value == null) return value\n\n const isUnitless =\n typeof value === \"string\" &&\n !value.endsWith(\"deg\") &&\n !value.endsWith(\"grad\") &&\n !value.endsWith(\"turn\") &&\n !value.endsWith(\"rad\")\n\n return isUnitless || isNumber(value) ? `${value}deg` : value\n },\n display,\n filter: generateFilter,\n focusRing: generateFocusRing,\n fraction: (value) => {\n if (isNumber(value) && value <= 1) value = `${value * 100}%`\n\n return value\n },\n function: generateFunction,\n gradient,\n grid,\n keyframes,\n media: generateAtRule(\"media\"),\n px: (value) => {\n if (value == null) return value\n\n const { unitless } = analyzeCSSValue(value)\n\n return unitless || isNumber(value) ? `${value}px` : value\n },\n supports: generateAtRule(\"supports\"),\n token: generateToken,\n transform,\n transition: generateTransition,\n truncated: (value: boolean) => {\n if (value) {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n }\n },\n} satisfies { [key: string]: Transform }\n\nexport type Transforms = keyof typeof transforms\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCA,MAAa,aAAa;CACxB,OAAOA;CACP;CACA;CACA,SAAS,OAAO,EAAE,WAAW;AAC3B,MAAI,UAAU,QAAQ;AACpB,YAAS,EAAE;AACX,QAAK,UAAU;AAEf,UAAO;QAEP,QAAO;;CAGX,MAAMC;CACN;CACA,WAAWC,+BAAe,YAAY;CACtC,UAAU,UAAU;AAClB,sDAAa,MAAM,CACjB,QAAO;GAAE,SAAS;GAAM,GAAG;GAAO;MAElC,QAAO;;CAGX,MAAM,UAAU;AACd,MAAIC,uBAAS,MAAM,IAAI,SAAS,KAAM,QAAO;AAS7C,SANE,OAAO,UAAU,YACjB,CAAC,MAAM,SAAS,MAAM,IACtB,CAAC,MAAM,SAAS,OAAO,IACvB,CAAC,MAAM,SAAS,OAAO,IACvB,CAAC,MAAM,SAAS,MAAM,oDAEM,MAAM,GAAG,GAAG,MAAM,OAAO;;CAEzD;CACA,QAAQC;CACR,WAAWC;CACX,WAAW,UAAU;AACnB,sDAAa,MAAM,IAAI,SAAS,EAAG,SAAQ,GAAG,QAAQ,IAAI;AAE1D,SAAO;;CAET,UAAUC;CACV;CACA;CACA;CACA,OAAOJ,+BAAe,QAAQ;CAC9B,KAAK,UAAU;AACb,MAAI,SAAS,KAAM,QAAO;EAE1B,MAAM,EAAE,aAAaK,8BAAgB,MAAM;AAE3C,SAAO,4DAAqB,MAAM,GAAG,GAAG,MAAM,MAAM;;CAEtD,UAAUL,+BAAe,WAAW;CACpC,OAAOM;CACP;CACA,YAAYC;CACZ,YAAY,UAAmB;AAC7B,MAAI,MACF,QAAO;GACL,UAAU;GACV,cAAc;GACd,YAAY;GACb;;CAGN"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-system.cjs","names":["tokenMap: {\n [key in \"primary\" | \"secondary\" | \"tertiary\"]: TokenOptions\n}","defaultSystem: System","createBreakpoints","createLayers","DEFAULT_VAR_PREFIX","mergeVars","createVars","results: VariableTokens","colors","options: FlattenObjectOptions"],"sources":["../../../../src/core/system/create-system.ts"],"sourcesContent":["import type { Dict, FlattenObjectOptions } from \"../../utils\"\nimport type {\n DefineThemeValue,\n System,\n ThemeConfig,\n UsageTheme,\n} from \"./index.types\"\nimport { bem, flattenObject, isArray, isObject, isUndefined } from \"../../utils\"\nimport { DEFAULT_VAR_PREFIX } from \"../constant\"\nimport { createBreakpoints } from \"./breakpoint\"\nimport { createLayers } from \"./layer\"\nimport { createVars, mergeVars } from \"./var\"\n\nexport type VariableResponsiveValue = Dict<\n [DefineThemeValue, DefineThemeValue] | DefineThemeValue\n>\n\nexport type VariableColorModeValue = [\n DefineThemeValue | Dict<DefineThemeValue>,\n DefineThemeValue | Dict<DefineThemeValue>,\n]\n\nexport type VariableValue =\n | DefineThemeValue\n | VariableColorModeValue\n | VariableResponsiveValue\n\ninterface VariableToken {\n semantic: boolean\n value: VariableValue\n}\n\nexport interface VariableTokens {\n [key: string]: VariableToken\n}\n\ninterface TokenOptions {\n [key: string]: FlattenObjectOptions\n}\n\nconst primaryTokens = {\n aspectRatios: {},\n blurs: {},\n borders: {},\n colors: {},\n durations: {},\n easings: {},\n fonts: {},\n fontSizes: {},\n fontWeights: {},\n letterSpacings: {},\n lineHeights: {},\n radii: {},\n sizes: {},\n spaces: {},\n zIndices: {},\n} satisfies TokenOptions\n\ntype PrimaryToken = keyof typeof primaryTokens\n\nconst secondaryTokens = {\n gradients: {},\n keyframes: { maxDepth: 1 },\n shadows: {},\n} satisfies TokenOptions\n\ntype SecondaryToken = keyof typeof secondaryTokens\n\nconst tertiaryTokens = {\n animations: { shouldProcess: (obj) => !obj.keyframes },\n} satisfies TokenOptions\n\ntype TertiaryToken = keyof typeof tertiaryTokens\n\nconst tokenMap: {\n [key in \"primary\" | \"secondary\" | \"tertiary\"]: TokenOptions\n} = {\n primary: primaryTokens,\n secondary: secondaryTokens,\n tertiary: tertiaryTokens,\n}\n\nexport type ThemeToken =\n | \"breakpoints\"\n | PrimaryToken\n | SecondaryToken\n | TertiaryToken\n\nexport const defaultSystem: System = {\n breakpoints: createBreakpoints(),\n config: {},\n cssMap: {},\n cssVars: {},\n layers: createLayers(),\n utils: { getClassName: bem },\n}\n\nexport function createSystem(\n theme: UsageTheme,\n config: ThemeConfig = {},\n): System {\n const prefix = config.css?.varPrefix ?? DEFAULT_VAR_PREFIX\n const breakpoints = createBreakpoints(theme.breakpoints, config.breakpoint)\n const layers = createLayers(config.css?.layers)\n const shouldProcess = config.theme?.responsive\n ? (obj: any) => !breakpoints.isResponsive(obj, true)\n : () => true\n\n const primaryTokens = {\n ...createTokens(theme, \"primary\", shouldProcess),\n ...createColorSchemeTokens(theme, undefined, shouldProcess),\n }\n const secondaryTokens = createTokens(theme, \"secondary\", shouldProcess)\n const tertiaryTokens = createTokens(theme, \"tertiary\", shouldProcess)\n\n const { cssMap, cssVars } = mergeVars(\n createVars(prefix, theme, breakpoints)(primaryTokens),\n createVars(prefix, theme, breakpoints)(secondaryTokens),\n createVars(prefix, theme, breakpoints)(tertiaryTokens),\n )()\n\n const getClassName = (\n block?: string,\n element?: string,\n modifier?: string,\n ) => {\n if (!block) return \"\"\n\n const className = bem(block, element, modifier)\n\n return `${prefix}-${className}`\n }\n\n if (theme.themeSchemes) {\n const themeSchemeEntries = Object.entries<Dict>(theme.themeSchemes)\n\n for (const [themeScheme, nestedTheme] of themeSchemeEntries) {\n const themeCondition = `[data-theme=${themeScheme}] &:not([data-theme]), &[data-theme=${themeScheme}]`\n\n const nestedPrimaryTokens = {\n ...createTokens(nestedTheme, \"primary\", shouldProcess),\n ...createColorSchemeTokens(theme, nestedTheme, shouldProcess),\n }\n const nestedSecondaryTokens = createTokens(\n nestedTheme,\n \"secondary\",\n shouldProcess,\n )\n const nestedTertiaryTokens = createTokens(\n nestedTheme,\n \"tertiary\",\n shouldProcess,\n )\n\n const { cssVars: nestedCSSVars } = mergeVars(\n createVars(prefix, theme, breakpoints)(nestedPrimaryTokens),\n createVars(prefix, theme, breakpoints)(nestedSecondaryTokens),\n createVars(prefix, theme, breakpoints)(nestedTertiaryTokens),\n )({ ...primaryTokens, ...secondaryTokens, ...tertiaryTokens })\n\n cssVars[themeCondition] = nestedCSSVars\n }\n }\n\n return {\n breakpoints,\n config,\n cssMap,\n cssVars,\n layers,\n utils: { getClassName },\n }\n}\n\nfunction createColorSchemeTokens(\n theme: Dict,\n nestedTheme: Dict | undefined,\n shouldProcess: FlattenObjectOptions[\"shouldProcess\"],\n) {\n const colors = { base: theme.colors ?? {}, nested: nestedTheme?.colors ?? {} }\n const semanticColors = {\n base: theme.semanticTokens?.colors ?? {},\n nested: nestedTheme?.semanticTokens?.colors ?? {},\n }\n const colorSchemeTokens = flattenObject(\n (nestedTheme ?? theme).semanticTokens?.colorSchemes ?? {},\n { shouldProcess },\n )\n\n const results: VariableTokens = {}\n\n function insertToken(\n primaryKey: string,\n secondaryKey: string | undefined,\n value: any,\n ) {\n if (isUndefined(value)) return\n\n if (!secondaryKey || secondaryKey === \"base\") {\n results[`colors.${primaryKey}`] = { semantic: true, value }\n } else {\n results[`colors.${primaryKey}.${secondaryKey}`] = {\n semantic: true,\n value,\n }\n }\n }\n\n function processValue(primaryKey: string, colors: any, keyOrValue: any) {\n const value = colors.nested[keyOrValue] ?? colors.base[keyOrValue]\n\n if (isObject(value)) {\n const tokens = flattenObject(value, { shouldProcess })\n\n Object.keys(tokens).forEach((secondaryKey) => {\n const value =\n secondaryKey === \"base\" ? keyOrValue : `${keyOrValue}.${secondaryKey}`\n\n insertToken(primaryKey, secondaryKey, value)\n })\n } else {\n insertToken(primaryKey, undefined, keyOrValue)\n }\n }\n\n function processColorModeValue(\n primaryKey: string,\n colors: any,\n keyOrValue: any[],\n ) {\n const [lightValue, darkValue] = keyOrValue\n const lightColors = colors.nested[lightValue] ?? colors.base[lightValue]\n const darkColors = colors.nested[darkValue] ?? colors.base[darkValue]\n\n if (isObject(lightColors) && isObject(darkColors)) {\n const tokens = flattenObject(lightColors, { shouldProcess })\n\n Object.keys(tokens).forEach((secondaryKey) => {\n const value = [\n secondaryKey === \"base\"\n ? lightValue\n : `${lightValue}.${secondaryKey}`,\n secondaryKey === \"base\" ? darkValue : `${darkValue}.${secondaryKey}`,\n ]\n\n insertToken(primaryKey, secondaryKey, value)\n })\n } else if (!isObject(lightValue) && !isObject(darkValue)) {\n insertToken(primaryKey, undefined, [lightValue, darkValue])\n }\n }\n\n Object.entries(colorSchemeTokens).forEach(([primaryKey, value]) => {\n if (isArray(value)) {\n processColorModeValue(primaryKey, colors, value)\n processColorModeValue(primaryKey, semanticColors, value)\n } else {\n processValue(primaryKey, colors, value)\n processValue(primaryKey, semanticColors, value)\n }\n })\n\n return results\n}\n\nfunction createTokens(\n theme: Dict,\n target: \"primary\" | \"secondary\" | \"tertiary\",\n shouldProcess: FlattenObjectOptions[\"shouldProcess\"] = () => true,\n) {\n const results: VariableTokens = {}\n\n Object.entries(tokenMap[target]).forEach(\n ([primaryKey, { shouldProcess: shouldProcessProp, ...rest }]) => {\n const options: FlattenObjectOptions = {\n ...rest,\n shouldProcess: (obj) =>\n shouldProcess(obj) && (!shouldProcessProp || shouldProcessProp(obj)),\n }\n\n const tokens = flattenObject(theme[primaryKey] ?? {}, options)\n const semanticTokens = flattenObject(\n theme.semanticTokens?.[primaryKey] ?? {},\n options,\n )\n\n Object.entries(tokens).forEach(([secondaryKey, value]) => {\n const token = `${primaryKey}.${secondaryKey}`\n\n results[token] = { semantic: false, value }\n })\n\n Object.entries(semanticTokens).forEach(([secondaryKey, value]) => {\n let token = `${primaryKey}.${secondaryKey}`\n\n if (token.endsWith(\".base\")) token = token.replace(\".base\", \"\")\n\n results[token] = { semantic: true, value }\n })\n },\n )\n\n return results\n}\n"],"mappings":";;;;;;;AA0EA,MAAMA,WAEF;CACF,SArCoB;EACpB,cAAc,EAAE;EAChB,OAAO,EAAE;EACT,SAAS,EAAE;EACX,QAAQ,EAAE;EACV,WAAW,EAAE;EACb,SAAS,EAAE;EACX,OAAO,EAAE;EACT,WAAW,EAAE;EACb,aAAa,EAAE;EACf,gBAAgB,EAAE;EAClB,aAAa,EAAE;EACf,OAAO,EAAE;EACT,OAAO,EAAE;EACT,QAAQ,EAAE;EACV,UAAU,EAAE;EACb;CAsBC,WAlBsB;EACtB,WAAW,EAAE;EACb,WAAW,EAAE,UAAU,GAAG;EAC1B,SAAS,EAAE;EACZ;CAeC,UAXqB,EACrB,YAAY,EAAE,gBAAgB,QAAQ,CAAC,IAAI,WAAW,EACvD;CAUA;AAQD,MAAaC,gBAAwB;CACnC,aAAaC,sCAAmB;CAChC,QAAQ,EAAE;CACV,QAAQ,EAAE;CACV,SAAS,EAAE;CACX,QAAQC,4BAAc;CACtB,OAAO,EAAE,gDAAc,KAAK;CAC7B;AAED,SAAgB,aACd,OACA,SAAsB,EAAE,EAChB;CACR,MAAM,SAAS,OAAO,KAAK,aAAaC;CACxC,MAAM,cAAcF,qCAAkB,MAAM,aAAa,OAAO,WAAW;CAC3E,MAAM,SAASC,2BAAa,OAAO,KAAK,OAAO;CAC/C,MAAM,gBAAgB,OAAO,OAAO,cAC/B,QAAa,CAAC,YAAY,aAAa,KAAK,KAAK,SAC5C;CAEV,MAAM,gBAAgB;EACpB,GAAG,aAAa,OAAO,WAAW,cAAc;EAChD,GAAG,wBAAwB,OAAO,QAAW,cAAc;EAC5D;CACD,MAAM,kBAAkB,aAAa,OAAO,aAAa,cAAc;CACvE,MAAM,iBAAiB,aAAa,OAAO,YAAY,cAAc;CAErE,MAAM,EAAE,QAAQ,YAAYE,sBAC1BC,uBAAW,QAAQ,OAAO,YAAY,CAAC,cAAc,EACrDA,uBAAW,QAAQ,OAAO,YAAY,CAAC,gBAAgB,EACvDA,uBAAW,QAAQ,OAAO,YAAY,CAAC,eAAe,CACvD,EAAE;CAEH,MAAM,gBACJ,OACA,SACA,aACG;AACH,MAAI,CAAC,MAAO,QAAO;AAInB,SAAO,GAAG,OAAO,8CAFK,OAAO,SAAS,SAAS;;AAKjD,KAAI,MAAM,cAAc;EACtB,MAAM,qBAAqB,OAAO,QAAc,MAAM,aAAa;AAEnE,OAAK,MAAM,CAAC,aAAa,gBAAgB,oBAAoB;GAC3D,MAAM,iBAAiB,eAAe,YAAY,sCAAsC,YAAY;GAEpG,MAAM,sBAAsB;IAC1B,GAAG,aAAa,aAAa,WAAW,cAAc;IACtD,GAAG,wBAAwB,OAAO,aAAa,cAAc;IAC9D;GACD,MAAM,wBAAwB,aAC5B,aACA,aACA,cACD;GACD,MAAM,uBAAuB,aAC3B,aACA,YACA,cACD;GAED,MAAM,EAAE,SAAS,kBAAkBD,sBACjCC,uBAAW,QAAQ,OAAO,YAAY,CAAC,oBAAoB,EAC3DA,uBAAW,QAAQ,OAAO,YAAY,CAAC,sBAAsB,EAC7DA,uBAAW,QAAQ,OAAO,YAAY,CAAC,qBAAqB,CAC7D,CAAC;IAAE,GAAG;IAAe,GAAG;IAAiB,GAAG;IAAgB,CAAC;AAE9D,WAAQ,kBAAkB;;;AAI9B,QAAO;EACL;EACA;EACA;EACA;EACA;EACA,OAAO,EAAE,cAAc;EACxB;;AAGH,SAAS,wBACP,OACA,aACA,eACA;CACA,MAAM,SAAS;EAAE,MAAM,MAAM,UAAU,EAAE;EAAE,QAAQ,aAAa,UAAU,EAAE;EAAE;CAC9E,MAAM,iBAAiB;EACrB,MAAM,MAAM,gBAAgB,UAAU,EAAE;EACxC,QAAQ,aAAa,gBAAgB,UAAU,EAAE;EAClD;CACD,MAAM,0EACH,eAAe,OAAO,gBAAgB,gBAAgB,EAAE,EACzD,EAAE,eAAe,CAClB;CAED,MAAMC,UAA0B,EAAE;CAElC,SAAS,YACP,YACA,cACA,OACA;AACA,yDAAgB,MAAM,CAAE;AAExB,MAAI,CAAC,gBAAgB,iBAAiB,OACpC,SAAQ,UAAU,gBAAgB;GAAE,UAAU;GAAM;GAAO;MAE3D,SAAQ,UAAU,WAAW,GAAG,kBAAkB;GAChD,UAAU;GACV;GACD;;CAIL,SAAS,aAAa,YAAoB,UAAa,YAAiB;EACtE,MAAM,QAAQC,SAAO,OAAO,eAAeA,SAAO,KAAK;AAEvD,sDAAa,MAAM,EAAE;GACnB,MAAM,8DAAuB,OAAO,EAAE,eAAe,CAAC;AAEtD,UAAO,KAAK,OAAO,CAAC,SAAS,iBAAiB;AAI5C,gBAAY,YAAY,cAFtB,iBAAiB,SAAS,aAAa,GAAG,WAAW,GAAG,eAEd;KAC5C;QAEF,aAAY,YAAY,QAAW,WAAW;;CAIlD,SAAS,sBACP,YACA,UACA,YACA;EACA,MAAM,CAAC,YAAY,aAAa;EAChC,MAAM,cAAcA,SAAO,OAAO,eAAeA,SAAO,KAAK;EAC7D,MAAM,aAAaA,SAAO,OAAO,cAAcA,SAAO,KAAK;AAE3D,sDAAa,YAAY,oDAAa,WAAW,EAAE;GACjD,MAAM,8DAAuB,aAAa,EAAE,eAAe,CAAC;AAE5D,UAAO,KAAK,OAAO,CAAC,SAAS,iBAAiB;AAQ5C,gBAAY,YAAY,cAPV,CACZ,iBAAiB,SACb,aACA,GAAG,WAAW,GAAG,gBACrB,iBAAiB,SAAS,YAAY,GAAG,UAAU,GAAG,eACvD,CAE2C;KAC5C;aACO,iDAAU,WAAW,IAAI,iDAAU,UAAU,CACtD,aAAY,YAAY,QAAW,CAAC,YAAY,UAAU,CAAC;;AAI/D,QAAO,QAAQ,kBAAkB,CAAC,SAAS,CAAC,YAAY,WAAW;AACjE,qDAAY,MAAM,EAAE;AAClB,yBAAsB,YAAY,QAAQ,MAAM;AAChD,yBAAsB,YAAY,gBAAgB,MAAM;SACnD;AACL,gBAAa,YAAY,QAAQ,MAAM;AACvC,gBAAa,YAAY,gBAAgB,MAAM;;GAEjD;AAEF,QAAO;;AAGT,SAAS,aACP,OACA,QACA,sBAA6D,MAC7D;CACA,MAAMD,UAA0B,EAAE;AAElC,QAAO,QAAQ,SAAS,QAAQ,CAAC,SAC9B,CAAC,YAAY,EAAE,eAAe,mBAAmB,GAAG,YAAY;EAC/D,MAAME,UAAgC;GACpC,GAAG;GACH,gBAAgB,QACd,cAAc,IAAI,KAAK,CAAC,qBAAqB,kBAAkB,IAAI;GACtE;EAED,MAAM,8DAAuB,MAAM,eAAe,EAAE,EAAE,QAAQ;EAC9D,MAAM,sEACJ,MAAM,iBAAiB,eAAe,EAAE,EACxC,QACD;AAED,SAAO,QAAQ,OAAO,CAAC,SAAS,CAAC,cAAc,WAAW;GACxD,MAAM,QAAQ,GAAG,WAAW,GAAG;AAE/B,WAAQ,SAAS;IAAE,UAAU;IAAO;IAAO;IAC3C;AAEF,SAAO,QAAQ,eAAe,CAAC,SAAS,CAAC,cAAc,WAAW;GAChE,IAAI,QAAQ,GAAG,WAAW,GAAG;AAE7B,OAAI,MAAM,SAAS,QAAQ,CAAE,SAAQ,MAAM,QAAQ,SAAS,GAAG;AAE/D,WAAQ,SAAS;IAAE,UAAU;IAAM;IAAO;IAC1C;GAEL;AAED,QAAO"}
1
+ {"version":3,"file":"create-system.cjs","names":["tokenMap: {\n [key in \"primary\" | \"secondary\" | \"tertiary\"]: TokenOptions\n}","defaultSystem: System","createBreakpoints","createLayers","DEFAULT_VAR_PREFIX","mergeVars","createVars","results: VariableTokens","colors","options: FlattenObjectOptions"],"sources":["../../../../src/core/system/create-system.ts"],"sourcesContent":["import type { Dict, FlattenObjectOptions } from \"../../utils\"\nimport type { CSSAnimationObject, CSSModifierObject } from \"../css\"\nimport type {\n DefineThemeValue,\n System,\n ThemeConfig,\n UsageTheme,\n} from \"./index.types\"\nimport { bem, flattenObject, isArray, isObject, isUndefined } from \"../../utils\"\nimport { DEFAULT_VAR_PREFIX } from \"../constant\"\nimport { createBreakpoints } from \"./breakpoint\"\nimport { createLayers } from \"./layer\"\nimport { createVars, mergeVars } from \"./var\"\n\nexport type VariableResponsiveValue = Dict<\n [DefineThemeValue, DefineThemeValue] | DefineThemeValue\n>\n\nexport type VariableColorModeValue = [\n DefineThemeValue | Dict<DefineThemeValue>,\n DefineThemeValue | Dict<DefineThemeValue>,\n]\n\nexport type VariableKeyframeValue =\n | [\n CSSModifierObject | Dict<CSSModifierObject>,\n CSSModifierObject | Dict<CSSModifierObject>,\n ]\n | CSSModifierObject\n | Dict<CSSModifierObject>\n\nexport type VariableAnimationValue =\n | CSSAnimationObject\n | CSSAnimationObject[]\n | Dict<CSSAnimationObject>\n\nexport type VariableValue =\n | DefineThemeValue\n | VariableAnimationValue\n | VariableColorModeValue\n | VariableKeyframeValue\n | VariableResponsiveValue\n\ninterface VariableToken {\n semantic: boolean\n value: VariableValue\n}\n\nexport interface VariableTokens {\n [key: string]: VariableToken\n}\n\ninterface TokenOptions {\n [key: string]: FlattenObjectOptions\n}\n\nconst primaryTokens = {\n aspectRatios: {},\n blurs: {},\n borders: {},\n colors: {},\n durations: {},\n easings: {},\n fonts: {},\n fontSizes: {},\n fontWeights: {},\n letterSpacings: {},\n lineHeights: {},\n radii: {},\n sizes: {},\n spaces: {},\n zIndices: {},\n} satisfies TokenOptions\n\ntype PrimaryToken = keyof typeof primaryTokens\n\nconst secondaryTokens = {\n gradients: {},\n keyframes: { maxDepth: 1 },\n shadows: {},\n} satisfies TokenOptions\n\ntype SecondaryToken = keyof typeof secondaryTokens\n\nconst tertiaryTokens = {\n animations: { shouldProcess: (obj) => !obj.keyframes },\n} satisfies TokenOptions\n\ntype TertiaryToken = keyof typeof tertiaryTokens\n\nconst tokenMap: {\n [key in \"primary\" | \"secondary\" | \"tertiary\"]: TokenOptions\n} = {\n primary: primaryTokens,\n secondary: secondaryTokens,\n tertiary: tertiaryTokens,\n}\n\nexport type ThemeToken =\n | \"breakpoints\"\n | PrimaryToken\n | SecondaryToken\n | TertiaryToken\n\nexport const defaultSystem: System = {\n breakpoints: createBreakpoints(),\n config: {},\n cssMap: {},\n cssVars: {},\n layers: createLayers(),\n utils: { getClassName: bem },\n}\n\nexport function createSystem(\n theme: UsageTheme,\n config: ThemeConfig = {},\n): System {\n const prefix = config.css?.varPrefix ?? DEFAULT_VAR_PREFIX\n const breakpoints = createBreakpoints(theme.breakpoints, config.breakpoint)\n const layers = createLayers(config.css?.layers)\n const shouldProcess = config.theme?.responsive\n ? (obj: any) => !breakpoints.isResponsive(obj, true)\n : () => true\n\n const primaryTokens = {\n ...createTokens(theme, \"primary\", shouldProcess),\n ...createColorSchemeTokens(theme, undefined, shouldProcess),\n }\n const secondaryTokens = createTokens(theme, \"secondary\", shouldProcess)\n const tertiaryTokens = createTokens(theme, \"tertiary\", shouldProcess)\n\n const { cssMap, cssVars } = mergeVars(\n createVars(prefix, theme, breakpoints)(primaryTokens),\n createVars(prefix, theme, breakpoints)(secondaryTokens),\n createVars(prefix, theme, breakpoints)(tertiaryTokens),\n )()\n\n const getClassName = (\n block?: string,\n element?: string,\n modifier?: string,\n ) => {\n if (!block) return \"\"\n\n const className = bem(block, element, modifier)\n\n return `${prefix}-${className}`\n }\n\n if (theme.themeSchemes) {\n const themeSchemeEntries = Object.entries<Dict>(theme.themeSchemes)\n\n for (const [themeScheme, nestedTheme] of themeSchemeEntries) {\n const themeCondition = `[data-theme=${themeScheme}] &:not([data-theme]), &[data-theme=${themeScheme}]`\n\n const nestedPrimaryTokens = {\n ...createTokens(nestedTheme, \"primary\", shouldProcess),\n ...createColorSchemeTokens(theme, nestedTheme, shouldProcess),\n }\n const nestedSecondaryTokens = createTokens(\n nestedTheme,\n \"secondary\",\n shouldProcess,\n )\n const nestedTertiaryTokens = createTokens(\n nestedTheme,\n \"tertiary\",\n shouldProcess,\n )\n\n const { cssVars: nestedCSSVars } = mergeVars(\n createVars(prefix, theme, breakpoints)(nestedPrimaryTokens),\n createVars(prefix, theme, breakpoints)(nestedSecondaryTokens),\n createVars(prefix, theme, breakpoints)(nestedTertiaryTokens),\n )({ ...primaryTokens, ...secondaryTokens, ...tertiaryTokens })\n\n cssVars[themeCondition] = nestedCSSVars\n }\n }\n\n return {\n breakpoints,\n config,\n cssMap,\n cssVars,\n layers,\n utils: { getClassName },\n }\n}\n\nfunction createColorSchemeTokens(\n theme: Dict,\n nestedTheme: Dict | undefined,\n shouldProcess: FlattenObjectOptions[\"shouldProcess\"],\n) {\n const colors = { base: theme.colors ?? {}, nested: nestedTheme?.colors ?? {} }\n const semanticColors = {\n base: theme.semanticTokens?.colors ?? {},\n nested: nestedTheme?.semanticTokens?.colors ?? {},\n }\n const colorSchemeTokens = flattenObject(\n (nestedTheme ?? theme).semanticTokens?.colorSchemes ?? {},\n { shouldProcess },\n )\n\n const results: VariableTokens = {}\n\n function insertToken(\n primaryKey: string,\n secondaryKey: string | undefined,\n value: any,\n ) {\n if (isUndefined(value)) return\n\n if (!secondaryKey || secondaryKey === \"base\") {\n results[`colors.${primaryKey}`] = { semantic: true, value }\n } else {\n results[`colors.${primaryKey}.${secondaryKey}`] = {\n semantic: true,\n value,\n }\n }\n }\n\n function processValue(primaryKey: string, colors: any, keyOrValue: any) {\n const value = colors.nested[keyOrValue] ?? colors.base[keyOrValue]\n\n if (isObject(value)) {\n const tokens = flattenObject(value, { shouldProcess })\n\n Object.keys(tokens).forEach((secondaryKey) => {\n const value =\n secondaryKey === \"base\" ? keyOrValue : `${keyOrValue}.${secondaryKey}`\n\n insertToken(primaryKey, secondaryKey, value)\n })\n } else {\n insertToken(primaryKey, undefined, keyOrValue)\n }\n }\n\n function processColorModeValue(\n primaryKey: string,\n colors: any,\n keyOrValue: any[],\n ) {\n const [lightValue, darkValue] = keyOrValue\n const lightColors = colors.nested[lightValue] ?? colors.base[lightValue]\n const darkColors = colors.nested[darkValue] ?? colors.base[darkValue]\n\n if (isObject(lightColors) && isObject(darkColors)) {\n const tokens = flattenObject(lightColors, { shouldProcess })\n\n Object.keys(tokens).forEach((secondaryKey) => {\n const value = [\n secondaryKey === \"base\"\n ? lightValue\n : `${lightValue}.${secondaryKey}`,\n secondaryKey === \"base\" ? darkValue : `${darkValue}.${secondaryKey}`,\n ]\n\n insertToken(primaryKey, secondaryKey, value)\n })\n } else if (!isObject(lightValue) && !isObject(darkValue)) {\n insertToken(primaryKey, undefined, [lightValue, darkValue])\n }\n }\n\n Object.entries(colorSchemeTokens).forEach(([primaryKey, value]) => {\n if (isArray(value)) {\n processColorModeValue(primaryKey, colors, value)\n processColorModeValue(primaryKey, semanticColors, value)\n } else {\n processValue(primaryKey, colors, value)\n processValue(primaryKey, semanticColors, value)\n }\n })\n\n return results\n}\n\nfunction createTokens(\n theme: Dict,\n target: \"primary\" | \"secondary\" | \"tertiary\",\n shouldProcess: FlattenObjectOptions[\"shouldProcess\"] = () => true,\n) {\n const results: VariableTokens = {}\n\n Object.entries(tokenMap[target]).forEach(\n ([primaryKey, { shouldProcess: shouldProcessProp, ...rest }]) => {\n const options: FlattenObjectOptions = {\n ...rest,\n shouldProcess: (obj) =>\n shouldProcess(obj) && (!shouldProcessProp || shouldProcessProp(obj)),\n }\n\n const tokens = flattenObject(theme[primaryKey] ?? {}, options)\n const semanticTokens = flattenObject(\n theme.semanticTokens?.[primaryKey] ?? {},\n options,\n )\n\n Object.entries(tokens).forEach(([secondaryKey, value]) => {\n const token = `${primaryKey}.${secondaryKey}`\n\n results[token] = { semantic: false, value }\n })\n\n Object.entries(semanticTokens).forEach(([secondaryKey, value]) => {\n let token = `${primaryKey}.${secondaryKey}`\n\n if (token.endsWith(\".base\")) token = token.replace(\".base\", \"\")\n\n results[token] = { semantic: true, value }\n })\n },\n )\n\n return results\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-manager.cjs","names":[],"sources":["../../../../src/core/system/storage-manager.ts"],"sourcesContent":["\"use client\"\n\nexport type Storage = \"cookie\" | \"localStorage\"\n\nconst hasSupport = !!(globalThis.document as Document | undefined)\n\nfunction parseCookie<Y extends string>(\n cookie: string,\n key: string,\n): undefined | Y {\n const match = cookie.match(new RegExp(`(^| )${key}=([^;]+)`))\n\n return match?.[2] as undefined | Y\n}\n\nexport interface StorageManager<Y extends string, M extends Y> {\n default(value: M): M\n get(value?: Y): Y\n set(value: Y): void\n}\n\nexport function createStorageManager<Y extends string, M extends Y>(\n storage: Storage,\n storageKey: string,\n defaultValue: Y,\n cookie?: string,\n): StorageManager<Y, M> {\n return {\n default(value) {\n const defaultStorageKey = `default-${storageKey}`\n\n if (cookie) return parseCookie(cookie, defaultStorageKey) || value\n\n if (storage === \"localStorage\") {\n try {\n return (localStorage.getItem(defaultStorageKey) as M | null) || value\n } catch {\n return value\n }\n } else {\n if (!hasSupport) return value\n\n return parseCookie(document.cookie, defaultStorageKey) || value\n }\n },\n get(value = defaultValue) {\n if (cookie) return parseCookie(cookie, storageKey) || value\n\n if (storage === \"localStorage\") {\n try {\n return (localStorage.getItem(storageKey) as null | Y) || value\n } catch {\n return value\n }\n } else {\n if (!hasSupport) return value\n\n return parseCookie(document.cookie, storageKey) || value\n }\n },\n set(value: Y) {\n if (storage === \"localStorage\") {\n localStorage.setItem(storageKey, value)\n } else {\n document.cookie = `${storageKey}=${value}; max-age=31536000; path=/`\n }\n },\n }\n}\n"],"mappings":";;;;AAIA,MAAM,aAAa,CAAC,CAAE,WAAW;AAEjC,SAAS,YACP,QACA,KACe;AAGf,QAFc,OAAO,sBAAM,IAAI,OAAO,QAAQ,IAAI,UAAU,CAAC,GAE9C;;AASjB,SAAgB,qBACd,SACA,YACA,cACA,QACsB;AACtB,QAAO;EACL,QAAQ,OAAO;GACb,MAAM,oBAAoB,WAAW;AAErC,OAAI,OAAQ,QAAO,YAAY,QAAQ,kBAAkB,IAAI;AAE7D,OAAI,YAAY,eACd,KAAI;AACF,WAAQ,aAAa,QAAQ,kBAAkB,IAAiB;WAC1D;AACN,WAAO;;QAEJ;AACL,QAAI,CAAC,WAAY,QAAO;AAExB,WAAO,YAAY,SAAS,QAAQ,kBAAkB,IAAI;;;EAG9D,IAAI,QAAQ,cAAc;AACxB,OAAI,OAAQ,QAAO,YAAY,QAAQ,WAAW,IAAI;AAEtD,OAAI,YAAY,eACd,KAAI;AACF,WAAQ,aAAa,QAAQ,WAAW,IAAiB;WACnD;AACN,WAAO;;QAEJ;AACL,QAAI,CAAC,WAAY,QAAO;AAExB,WAAO,YAAY,SAAS,QAAQ,WAAW,IAAI;;;EAGvD,IAAI,OAAU;AACZ,OAAI,YAAY,eACd,cAAa,QAAQ,YAAY,MAAM;OAEvC,UAAS,SAAS,GAAG,WAAW,GAAG,MAAM;;EAG9C"}
1
+ {"version":3,"file":"storage-manager.cjs","names":[],"sources":["../../../../src/core/system/storage-manager.ts"],"sourcesContent":["\"use client\"\n\nexport type Storage = \"cookie\" | \"localStorage\"\n\nconst hasSupport = !!(globalThis.document as Document | undefined)\n\nfunction parseCookie<Y extends string>(\n cookie: string,\n key: string,\n): undefined | Y {\n const match = cookie.match(new RegExp(`(^| )${key}=([^;]+)`))\n\n return match?.[2] as undefined | Y\n}\n\nexport interface StorageManager<Y extends string, M extends Y = Y> {\n default(value: M): M\n get(value?: Y): Y\n set(value: Y): void\n}\n\nexport function createStorageManager<Y extends string, M extends Y = Y>(\n storage: Storage,\n storageKey: string,\n defaultValue: Y,\n cookie?: string,\n): StorageManager<Y, M> {\n return {\n default(value) {\n const defaultStorageKey = `default-${storageKey}`\n\n if (cookie) return parseCookie(cookie, defaultStorageKey) || value\n\n if (storage === \"localStorage\") {\n try {\n return (localStorage.getItem(defaultStorageKey) as M | null) || value\n } catch {\n return value\n }\n } else {\n if (!hasSupport) return value\n\n return parseCookie(document.cookie, defaultStorageKey) || value\n }\n },\n get(value = defaultValue) {\n if (cookie) return parseCookie(cookie, storageKey) || value\n\n if (storage === \"localStorage\") {\n try {\n return (localStorage.getItem(storageKey) as null | Y) || value\n } catch {\n return value\n }\n } else {\n if (!hasSupport) return value\n\n return parseCookie(document.cookie, storageKey) || value\n }\n },\n set(value: Y) {\n if (storage === \"localStorage\") {\n localStorage.setItem(storageKey, value)\n } else {\n document.cookie = `${storageKey}=${value}; max-age=31536000; path=/`\n }\n },\n }\n}\n"],"mappings":";;;;AAIA,MAAM,aAAa,CAAC,CAAE,WAAW;AAEjC,SAAS,YACP,QACA,KACe;AAGf,QAFc,OAAO,sBAAM,IAAI,OAAO,QAAQ,IAAI,UAAU,CAAC,GAE9C;;AASjB,SAAgB,qBACd,SACA,YACA,cACA,QACsB;AACtB,QAAO;EACL,QAAQ,OAAO;GACb,MAAM,oBAAoB,WAAW;AAErC,OAAI,OAAQ,QAAO,YAAY,QAAQ,kBAAkB,IAAI;AAE7D,OAAI,YAAY,eACd,KAAI;AACF,WAAQ,aAAa,QAAQ,kBAAkB,IAAiB;WAC1D;AACN,WAAO;;QAEJ;AACL,QAAI,CAAC,WAAY,QAAO;AAExB,WAAO,YAAY,SAAS,QAAQ,kBAAkB,IAAI;;;EAG9D,IAAI,QAAQ,cAAc;AACxB,OAAI,OAAQ,QAAO,YAAY,QAAQ,WAAW,IAAI;AAEtD,OAAI,YAAY,eACd,KAAI;AACF,WAAQ,aAAa,QAAQ,WAAW,IAAiB;WACnD;AACN,WAAO;;QAEJ;AACL,QAAI,CAAC,WAAY,QAAO;AAExB,WAAO,YAAY,SAAS,QAAQ,WAAW,IAAI;;;EAGvD,IAAI,OAAU;AACZ,OAAI,YAAY,eACd,cAAa,QAAQ,YAAY,MAAM;OAEvC,UAAS,SAAS,GAAG,WAAW,GAAG,MAAM;;EAG9C"}
@@ -68,7 +68,7 @@ const { ComponentContext, PropsContext: TablePropsContext, useComponentContext,
68
68
  *
69
69
  * @see https://yamada-ui.com/docs/components/table
70
70
  */
71
- const Table = withContext(({ colorScheme, size, variant, columnFilters: columnFiltersProp, columnResizeMode = "onChange", columns: columnsProp, data, defaultColumnFilters, defaultPagination = {
71
+ const Table = withContext(({ className, colorScheme, size, variant, columnFilters: columnFiltersProp, columnResizeMode = "onChange", columns: columnsProp, data, defaultColumnFilters, defaultPagination = {
72
72
  pageIndex: 0,
73
73
  pageSize: 20
74
74
  }, defaultRowSelection = {}, defaultSorting, enableAutoResizeTableWidth = false, enableColumnResizing = false, enableKeyboardNavigation = true, enablePagination = false, enableRowSelection = false, footer, header, highlightOnHover = !!enableRowSelection, highlightOnSelected = !!enableRowSelection, initialFocusableCell = {
@@ -326,6 +326,7 @@ const Table = withContext(({ colorScheme, size, variant, columnFilters: columnFi
326
326
  /* @__PURE__ */ jsxs(NativeTableRoot, {
327
327
  ...mergeProps({
328
328
  ref,
329
+ className,
329
330
  style: enableColumnResizing && enableAutoResizeTableWidth ? { width: table.getCenterTotalSize() } : {},
330
331
  colorScheme,
331
332
  size,