@kjun-ui/native 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -7052,12 +7052,36 @@ function KjunSparkline({
7052
7052
  // shared/package-runtime/table.ts
7053
7053
  var import_tokens43 = require("@kjun-ui/tokens");
7054
7054
  var import_react56 = require("react");
7055
+
7056
+ // shared/package-runtime/table-model.ts
7055
7057
  function getValue(row, key) {
7056
7058
  return key.split(".").reduce(
7057
7059
  (value, part) => value != null && typeof value === "object" ? value[part] : void 0,
7058
7060
  row
7059
7061
  );
7060
7062
  }
7063
+ function sortTableRows(data, sort, { sortable = true, sortMode = "client" }) {
7064
+ if (!sortable || sortMode === "server" || !sort.key) return data;
7065
+ return [...data].sort((a, b) => {
7066
+ const x = getValue(a, sort.key), y = getValue(b, sort.key);
7067
+ const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7068
+ return sort.order === "asc" ? order : -order;
7069
+ });
7070
+ }
7071
+ var tableRowKey = (row, rowKey, index = 0) => {
7072
+ var _a;
7073
+ return (_a = getValue(row, rowKey)) != null ? _a : index;
7074
+ };
7075
+ function tableSelection(rows, selected, rowKey) {
7076
+ const isSelected = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7077
+ const all = rows.length > 0 && rows.every(isSelected);
7078
+ return { isSelected, all, some: rows.some(isSelected) && !all };
7079
+ }
7080
+ var toggleSelectedRow = (selected, row, rowKey) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey)) ? selected.filter((r) => getValue(r, rowKey) !== getValue(row, rowKey)) : [...selected, row];
7081
+ var toggleAllRows = (rows, all) => all ? [] : [...rows];
7082
+ var toggleExpandedRow = (expanded, id, single) => expanded.includes(id) ? expanded.filter((v) => v !== id) : [...single ? [] : expanded, id];
7083
+
7084
+ // shared/package-runtime/table.ts
7061
7085
  function useTableModel(props) {
7062
7086
  var _a;
7063
7087
  const {
@@ -7077,17 +7101,9 @@ function useTableModel(props) {
7077
7101
  }), [internalExpanded, setExpanded] = (0, import_react56.useState)([]), [search, setSearch] = (0, import_react56.useState)(""), timer = (0, import_react56.useRef)(void 0);
7078
7102
  (0, import_react56.useEffect)(() => () => clearTimeout(timer.current), []);
7079
7103
  const sort = props.sort === void 0 ? internalSort : (_a = props.sort) != null ? _a : { key: "", order: "asc" };
7080
- const rows = sortable && sortMode !== "server" && sort.key ? [...data].sort((a, b) => {
7081
- const x = getValue(a, sort.key), y = getValue(b, sort.key);
7082
- const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7083
- return sort.order === "asc" ? order : -order;
7084
- }) : data;
7085
- const key = (row, index = 0) => {
7086
- var _a2;
7087
- return (_a2 = getValue(row, rowKey)) != null ? _a2 : index;
7088
- };
7089
- const selectedRow = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7090
- const all = rows.length > 0 && rows.every(selectedRow), some = rows.some(selectedRow) && !all, expanded = expandedRows != null ? expandedRows : internalExpanded;
7104
+ const rows = sortTableRows(data, sort, { sortable, sortMode });
7105
+ const key = (row, index = 0) => tableRowKey(row, rowKey, index);
7106
+ const { isSelected: selectedRow, all, some } = tableSelection(rows, selected, rowKey), expanded = expandedRows != null ? expandedRows : internalExpanded;
7091
7107
  return {
7092
7108
  rows,
7093
7109
  key,
@@ -7112,14 +7128,10 @@ function useTableModel(props) {
7112
7128
  if (props.sort === void 0) setSort(next);
7113
7129
  (_a2 = props.onSortChange) == null ? void 0 : _a2.call(props, next);
7114
7130
  },
7115
- toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(
7116
- selectedRow(row) ? selected.filter(
7117
- (r) => getValue(r, rowKey) !== getValue(row, rowKey)
7118
- ) : [...selected, row]
7119
- ),
7120
- toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(all ? [] : [...rows]),
7131
+ toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(toggleSelectedRow(selected, row, rowKey)),
7132
+ toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(toggleAllRows(rows, all)),
7121
7133
  toggleExpand: (row, index) => {
7122
- const id = key(row, index), next = expanded.includes(id) ? expanded.filter((v) => v !== id) : [...expandSingle ? [] : expanded, id];
7134
+ const next = toggleExpandedRow(expanded, key(row, index), expandSingle);
7123
7135
  setExpanded(next);
7124
7136
  onExpandedRowsChange == null ? void 0 : onExpandedRowsChange(next);
7125
7137
  }
package/dist/index.js CHANGED
@@ -7091,12 +7091,36 @@ function KjunSparkline({
7091
7091
  // shared/package-runtime/table.ts
7092
7092
  import { nextTableSort } from "@kjun-ui/tokens";
7093
7093
  import { useEffect as useEffect23, useRef as useRef31, useState as useState33 } from "react";
7094
+
7095
+ // shared/package-runtime/table-model.ts
7094
7096
  function getValue(row, key) {
7095
7097
  return key.split(".").reduce(
7096
7098
  (value, part) => value != null && typeof value === "object" ? value[part] : void 0,
7097
7099
  row
7098
7100
  );
7099
7101
  }
7102
+ function sortTableRows(data, sort, { sortable = true, sortMode = "client" }) {
7103
+ if (!sortable || sortMode === "server" || !sort.key) return data;
7104
+ return [...data].sort((a, b) => {
7105
+ const x = getValue(a, sort.key), y = getValue(b, sort.key);
7106
+ const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7107
+ return sort.order === "asc" ? order : -order;
7108
+ });
7109
+ }
7110
+ var tableRowKey = (row, rowKey, index = 0) => {
7111
+ var _a;
7112
+ return (_a = getValue(row, rowKey)) != null ? _a : index;
7113
+ };
7114
+ function tableSelection(rows, selected, rowKey) {
7115
+ const isSelected = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7116
+ const all = rows.length > 0 && rows.every(isSelected);
7117
+ return { isSelected, all, some: rows.some(isSelected) && !all };
7118
+ }
7119
+ var toggleSelectedRow = (selected, row, rowKey) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey)) ? selected.filter((r) => getValue(r, rowKey) !== getValue(row, rowKey)) : [...selected, row];
7120
+ var toggleAllRows = (rows, all) => all ? [] : [...rows];
7121
+ var toggleExpandedRow = (expanded, id, single) => expanded.includes(id) ? expanded.filter((v) => v !== id) : [...single ? [] : expanded, id];
7122
+
7123
+ // shared/package-runtime/table.ts
7100
7124
  function useTableModel(props) {
7101
7125
  var _a;
7102
7126
  const {
@@ -7116,17 +7140,9 @@ function useTableModel(props) {
7116
7140
  }), [internalExpanded, setExpanded] = useState33([]), [search, setSearch] = useState33(""), timer = useRef31(void 0);
7117
7141
  useEffect23(() => () => clearTimeout(timer.current), []);
7118
7142
  const sort = props.sort === void 0 ? internalSort : (_a = props.sort) != null ? _a : { key: "", order: "asc" };
7119
- const rows = sortable && sortMode !== "server" && sort.key ? [...data].sort((a, b) => {
7120
- const x = getValue(a, sort.key), y = getValue(b, sort.key);
7121
- const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7122
- return sort.order === "asc" ? order : -order;
7123
- }) : data;
7124
- const key = (row, index = 0) => {
7125
- var _a2;
7126
- return (_a2 = getValue(row, rowKey)) != null ? _a2 : index;
7127
- };
7128
- const selectedRow = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7129
- const all = rows.length > 0 && rows.every(selectedRow), some = rows.some(selectedRow) && !all, expanded = expandedRows != null ? expandedRows : internalExpanded;
7143
+ const rows = sortTableRows(data, sort, { sortable, sortMode });
7144
+ const key = (row, index = 0) => tableRowKey(row, rowKey, index);
7145
+ const { isSelected: selectedRow, all, some } = tableSelection(rows, selected, rowKey), expanded = expandedRows != null ? expandedRows : internalExpanded;
7130
7146
  return {
7131
7147
  rows,
7132
7148
  key,
@@ -7151,14 +7167,10 @@ function useTableModel(props) {
7151
7167
  if (props.sort === void 0) setSort(next);
7152
7168
  (_a2 = props.onSortChange) == null ? void 0 : _a2.call(props, next);
7153
7169
  },
7154
- toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(
7155
- selectedRow(row) ? selected.filter(
7156
- (r) => getValue(r, rowKey) !== getValue(row, rowKey)
7157
- ) : [...selected, row]
7158
- ),
7159
- toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(all ? [] : [...rows]),
7170
+ toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(toggleSelectedRow(selected, row, rowKey)),
7171
+ toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(toggleAllRows(rows, all)),
7160
7172
  toggleExpand: (row, index) => {
7161
- const id = key(row, index), next = expanded.includes(id) ? expanded.filter((v) => v !== id) : [...expandSingle ? [] : expanded, id];
7173
+ const next = toggleExpandedRow(expanded, key(row, index), expandSingle);
7162
7174
  setExpanded(next);
7163
7175
  onExpandedRowsChange == null ? void 0 : onExpandedRowsChange(next);
7164
7176
  }
@@ -7307,12 +7307,36 @@ function KjunSparkline({
7307
7307
  // shared/package-runtime/table.ts
7308
7308
  var import_tokens44 = require("@kjun-ui/tokens");
7309
7309
  var import_react60 = require("react");
7310
+
7311
+ // shared/package-runtime/table-model.ts
7310
7312
  function getValue(row, key) {
7311
7313
  return key.split(".").reduce(
7312
7314
  (value, part) => value != null && typeof value === "object" ? value[part] : void 0,
7313
7315
  row
7314
7316
  );
7315
7317
  }
7318
+ function sortTableRows(data, sort, { sortable = true, sortMode = "client" }) {
7319
+ if (!sortable || sortMode === "server" || !sort.key) return data;
7320
+ return [...data].sort((a, b) => {
7321
+ const x = getValue(a, sort.key), y = getValue(b, sort.key);
7322
+ const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7323
+ return sort.order === "asc" ? order : -order;
7324
+ });
7325
+ }
7326
+ var tableRowKey = (row, rowKey, index = 0) => {
7327
+ var _a;
7328
+ return (_a = getValue(row, rowKey)) != null ? _a : index;
7329
+ };
7330
+ function tableSelection(rows, selected, rowKey) {
7331
+ const isSelected = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7332
+ const all = rows.length > 0 && rows.every(isSelected);
7333
+ return { isSelected, all, some: rows.some(isSelected) && !all };
7334
+ }
7335
+ var toggleSelectedRow = (selected, row, rowKey) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey)) ? selected.filter((r) => getValue(r, rowKey) !== getValue(row, rowKey)) : [...selected, row];
7336
+ var toggleAllRows = (rows, all) => all ? [] : [...rows];
7337
+ var toggleExpandedRow = (expanded, id, single) => expanded.includes(id) ? expanded.filter((v) => v !== id) : [...single ? [] : expanded, id];
7338
+
7339
+ // shared/package-runtime/table.ts
7316
7340
  function useTableModel(props) {
7317
7341
  var _a;
7318
7342
  const {
@@ -7332,17 +7356,9 @@ function useTableModel(props) {
7332
7356
  }), [internalExpanded, setExpanded] = (0, import_react60.useState)([]), [search, setSearch] = (0, import_react60.useState)(""), timer = (0, import_react60.useRef)(void 0);
7333
7357
  (0, import_react60.useEffect)(() => () => clearTimeout(timer.current), []);
7334
7358
  const sort = props.sort === void 0 ? internalSort : (_a = props.sort) != null ? _a : { key: "", order: "asc" };
7335
- const rows = sortable && sortMode !== "server" && sort.key ? [...data].sort((a, b) => {
7336
- const x = getValue(a, sort.key), y = getValue(b, sort.key);
7337
- const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7338
- return sort.order === "asc" ? order : -order;
7339
- }) : data;
7340
- const key = (row, index = 0) => {
7341
- var _a2;
7342
- return (_a2 = getValue(row, rowKey)) != null ? _a2 : index;
7343
- };
7344
- const selectedRow = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7345
- const all = rows.length > 0 && rows.every(selectedRow), some = rows.some(selectedRow) && !all, expanded = expandedRows != null ? expandedRows : internalExpanded;
7359
+ const rows = sortTableRows(data, sort, { sortable, sortMode });
7360
+ const key = (row, index = 0) => tableRowKey(row, rowKey, index);
7361
+ const { isSelected: selectedRow, all, some } = tableSelection(rows, selected, rowKey), expanded = expandedRows != null ? expandedRows : internalExpanded;
7346
7362
  return {
7347
7363
  rows,
7348
7364
  key,
@@ -7367,14 +7383,10 @@ function useTableModel(props) {
7367
7383
  if (props.sort === void 0) setSort(next);
7368
7384
  (_a2 = props.onSortChange) == null ? void 0 : _a2.call(props, next);
7369
7385
  },
7370
- toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(
7371
- selectedRow(row) ? selected.filter(
7372
- (r) => getValue(r, rowKey) !== getValue(row, rowKey)
7373
- ) : [...selected, row]
7374
- ),
7375
- toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(all ? [] : [...rows]),
7386
+ toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(toggleSelectedRow(selected, row, rowKey)),
7387
+ toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(toggleAllRows(rows, all)),
7376
7388
  toggleExpand: (row, index) => {
7377
- const id = key(row, index), next = expanded.includes(id) ? expanded.filter((v) => v !== id) : [...expandSingle ? [] : expanded, id];
7389
+ const next = toggleExpandedRow(expanded, key(row, index), expandSingle);
7378
7390
  setExpanded(next);
7379
7391
  onExpandedRowsChange == null ? void 0 : onExpandedRowsChange(next);
7380
7392
  }
package/dist/index.web.js CHANGED
@@ -7346,12 +7346,36 @@ function KjunSparkline({
7346
7346
  // shared/package-runtime/table.ts
7347
7347
  import { nextTableSort } from "@kjun-ui/tokens";
7348
7348
  import { useEffect as useEffect23, useRef as useRef33, useState as useState34 } from "react";
7349
+
7350
+ // shared/package-runtime/table-model.ts
7349
7351
  function getValue(row, key) {
7350
7352
  return key.split(".").reduce(
7351
7353
  (value, part) => value != null && typeof value === "object" ? value[part] : void 0,
7352
7354
  row
7353
7355
  );
7354
7356
  }
7357
+ function sortTableRows(data, sort, { sortable = true, sortMode = "client" }) {
7358
+ if (!sortable || sortMode === "server" || !sort.key) return data;
7359
+ return [...data].sort((a, b) => {
7360
+ const x = getValue(a, sort.key), y = getValue(b, sort.key);
7361
+ const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7362
+ return sort.order === "asc" ? order : -order;
7363
+ });
7364
+ }
7365
+ var tableRowKey = (row, rowKey, index = 0) => {
7366
+ var _a;
7367
+ return (_a = getValue(row, rowKey)) != null ? _a : index;
7368
+ };
7369
+ function tableSelection(rows, selected, rowKey) {
7370
+ const isSelected = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7371
+ const all = rows.length > 0 && rows.every(isSelected);
7372
+ return { isSelected, all, some: rows.some(isSelected) && !all };
7373
+ }
7374
+ var toggleSelectedRow = (selected, row, rowKey) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey)) ? selected.filter((r) => getValue(r, rowKey) !== getValue(row, rowKey)) : [...selected, row];
7375
+ var toggleAllRows = (rows, all) => all ? [] : [...rows];
7376
+ var toggleExpandedRow = (expanded, id, single) => expanded.includes(id) ? expanded.filter((v) => v !== id) : [...single ? [] : expanded, id];
7377
+
7378
+ // shared/package-runtime/table.ts
7355
7379
  function useTableModel(props) {
7356
7380
  var _a;
7357
7381
  const {
@@ -7371,17 +7395,9 @@ function useTableModel(props) {
7371
7395
  }), [internalExpanded, setExpanded] = useState34([]), [search, setSearch] = useState34(""), timer = useRef33(void 0);
7372
7396
  useEffect23(() => () => clearTimeout(timer.current), []);
7373
7397
  const sort = props.sort === void 0 ? internalSort : (_a = props.sort) != null ? _a : { key: "", order: "asc" };
7374
- const rows = sortable && sortMode !== "server" && sort.key ? [...data].sort((a, b) => {
7375
- const x = getValue(a, sort.key), y = getValue(b, sort.key);
7376
- const order = x === y ? 0 : typeof x === "number" && typeof y === "number" ? x > y ? 1 : -1 : String(x) > String(y) ? 1 : -1;
7377
- return sort.order === "asc" ? order : -order;
7378
- }) : data;
7379
- const key = (row, index = 0) => {
7380
- var _a2;
7381
- return (_a2 = getValue(row, rowKey)) != null ? _a2 : index;
7382
- };
7383
- const selectedRow = (row) => selected.some((r) => getValue(r, rowKey) === getValue(row, rowKey));
7384
- const all = rows.length > 0 && rows.every(selectedRow), some = rows.some(selectedRow) && !all, expanded = expandedRows != null ? expandedRows : internalExpanded;
7398
+ const rows = sortTableRows(data, sort, { sortable, sortMode });
7399
+ const key = (row, index = 0) => tableRowKey(row, rowKey, index);
7400
+ const { isSelected: selectedRow, all, some } = tableSelection(rows, selected, rowKey), expanded = expandedRows != null ? expandedRows : internalExpanded;
7385
7401
  return {
7386
7402
  rows,
7387
7403
  key,
@@ -7406,14 +7422,10 @@ function useTableModel(props) {
7406
7422
  if (props.sort === void 0) setSort(next);
7407
7423
  (_a2 = props.onSortChange) == null ? void 0 : _a2.call(props, next);
7408
7424
  },
7409
- toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(
7410
- selectedRow(row) ? selected.filter(
7411
- (r) => getValue(r, rowKey) !== getValue(row, rowKey)
7412
- ) : [...selected, row]
7413
- ),
7414
- toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(all ? [] : [...rows]),
7425
+ toggleRow: (row) => onSelectionChange == null ? void 0 : onSelectionChange(toggleSelectedRow(selected, row, rowKey)),
7426
+ toggleAll: () => onSelectionChange == null ? void 0 : onSelectionChange(toggleAllRows(rows, all)),
7415
7427
  toggleExpand: (row, index) => {
7416
- const id = key(row, index), next = expanded.includes(id) ? expanded.filter((v) => v !== id) : [...expandSingle ? [] : expanded, id];
7428
+ const next = toggleExpandedRow(expanded, key(row, index), expandSingle);
7417
7429
  setExpanded(next);
7418
7430
  onExpandedRowsChange == null ? void 0 : onExpandedRowsChange(next);
7419
7431
  }
package/dist/styles.css CHANGED
@@ -1939,7 +1939,7 @@
1939
1939
  .kjun-scope .kjun-form-group { margin-bottom: var(--_kjun-extension-form-item-gap); min-width: 0; }
1940
1940
  .kjun-scope .kjun-form-group:last-child { margin-bottom: 0; }
1941
1941
  /* 그리드·툴바는 부모 gap을 사용하고, 일반 문서 흐름의 기존 폼만 기본 간격을 유지한다. */
1942
- .kjun-scope :where(.kj-flex, .kj-inline-flex, .kj-grid, .kj-inline-grid, .kjun-form-layout) > .kjun-form-group { margin-bottom: 0; }
1942
+ .kjun-scope :where(.kj-flex, .kj-inline-flex, .kj-grid, .kj-inline-grid, [data-kjun-layout="form"]) > .kjun-form-group { margin-bottom: 0; }
1943
1943
  .kjun-scope .kjun-field-menu {
1944
1944
  padding: var(--_kjun-extension-menu-padding);
1945
1945
  border: var(--_kjun-border-default-width) solid var(--_kjun-border-primary);
@@ -4164,7 +4164,7 @@
4164
4164
  min-width: 0;
4165
4165
  margin-bottom: var(--_kjun-extension-form-item-gap);
4166
4166
  }
4167
- :where(.kjun-form-layout) > .kjun-form-group {
4167
+ :where([data-kjun-layout="form"]) > .kjun-form-group {
4168
4168
  margin-bottom: 0;
4169
4169
  }
4170
4170
  .kjun-form-group:last-child {
@@ -0,0 +1,15 @@
1
+ import type { TableSort } from "@kjun-ui/tokens";
2
+ export declare function getValue(row: object, key: string): unknown;
3
+ export declare function sortTableRows<Row extends object>(data: readonly Row[], sort: TableSort, { sortable, sortMode }: {
4
+ sortable?: boolean;
5
+ sortMode?: "client" | "server";
6
+ }): readonly Row[];
7
+ export declare const tableRowKey: (row: object, rowKey: string, index?: number) => string | number;
8
+ export declare function tableSelection<Row extends object>(rows: readonly Row[], selected: readonly Row[], rowKey: string): {
9
+ isSelected: (row: Row) => boolean;
10
+ all: boolean;
11
+ some: boolean;
12
+ };
13
+ export declare const toggleSelectedRow: <Row extends object>(selected: readonly Row[], row: Row, rowKey: string) => Row[];
14
+ export declare const toggleAllRows: <Row extends object>(rows: readonly Row[], all: boolean) => Row[];
15
+ export declare const toggleExpandedRow: (expanded: readonly (string | number)[], id: string | number, single: boolean) => (string | number)[];
@@ -0,0 +1,15 @@
1
+ import type { TableSort } from "@kjun-ui/tokens";
2
+ export declare function getValue(row: object, key: string): unknown;
3
+ export declare function sortTableRows<Row extends object>(data: readonly Row[], sort: TableSort, { sortable, sortMode }: {
4
+ sortable?: boolean;
5
+ sortMode?: "client" | "server";
6
+ }): readonly Row[];
7
+ export declare const tableRowKey: (row: object, rowKey: string, index?: number) => string | number;
8
+ export declare function tableSelection<Row extends object>(rows: readonly Row[], selected: readonly Row[], rowKey: string): {
9
+ isSelected: (row: Row) => boolean;
10
+ all: boolean;
11
+ some: boolean;
12
+ };
13
+ export declare const toggleSelectedRow: <Row extends object>(selected: readonly Row[], row: Row, rowKey: string) => Row[];
14
+ export declare const toggleAllRows: <Row extends object>(rows: readonly Row[], all: boolean) => Row[];
15
+ export declare const toggleExpandedRow: (expanded: readonly (string | number)[], id: string | number, single: boolean) => (string | number)[];
@@ -1,6 +1,7 @@
1
1
  import { type TableSort, type QueryDisplayProps } from "@kjun-ui/tokens";
2
2
  export type { TableSort } from "@kjun-ui/tokens";
3
3
  import { type ReactNode } from "react";
4
+ export { getValue } from "./table-model.cjs";
4
5
  export interface TableColumn<Row extends object = Record<string, unknown>> {
5
6
  key: string;
6
7
  label: string;
@@ -78,7 +79,6 @@ export interface TableProps<Row extends object = Record<string, unknown>, MaxHei
78
79
  onSearch?: (query: string) => void;
79
80
  onRetry?: () => void;
80
81
  }
81
- export declare function getValue(row: object, key: string): unknown;
82
82
  export declare function useTableModel<Row extends object>(props: TableProps<Row, unknown>): {
83
83
  rows: Row[];
84
84
  key: (row: Row, index?: number) => string | number;
@@ -1,6 +1,7 @@
1
1
  import { type TableSort, type QueryDisplayProps } from "@kjun-ui/tokens";
2
2
  export type { TableSort } from "@kjun-ui/tokens";
3
3
  import { type ReactNode } from "react";
4
+ export { getValue } from "./table-model.js";
4
5
  export interface TableColumn<Row extends object = Record<string, unknown>> {
5
6
  key: string;
6
7
  label: string;
@@ -78,7 +79,6 @@ export interface TableProps<Row extends object = Record<string, unknown>, MaxHei
78
79
  onSearch?: (query: string) => void;
79
80
  onRetry?: () => void;
80
81
  }
81
- export declare function getValue(row: object, key: string): unknown;
82
82
  export declare function useTableModel<Row extends object>(props: TableProps<Row, unknown>): {
83
83
  rows: Row[];
84
84
  key: (row: Row, index?: number) => string | number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kjun-ui/native",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "license": "MIT",
5
5
  "homepage": "https://ui.kjun.dev",
6
6
  "repository": {
@@ -47,8 +47,8 @@
47
47
  "./package.json": "./package.json"
48
48
  },
49
49
  "dependencies": {
50
- "@kjun-ui/tokens": "0.5.0",
51
- "@kjun-ui/icons": "0.5.0"
50
+ "@kjun-ui/tokens": "0.5.1",
51
+ "@kjun-ui/icons": "0.5.1"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "react": "^19.2.3",