@worknice/whiteboard 0.52.1 → 0.53.0

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 (75) hide show
  1. package/dist/{presentation/TableColumnFilterModal.d.ts → controls/FilterModal.d.ts} +10 -3
  2. package/dist/{presentation/TableColumnFilterModal.js → controls/FilterModal.js} +32 -32
  3. package/dist/controls/FilterModal.module.js +13 -0
  4. package/dist/controls/FilterModal_module.css +60 -0
  5. package/dist/controls/MenuButton.js +1 -1
  6. package/dist/icons/MessagesIcon.d.ts +3 -0
  7. package/dist/icons/MessagesIcon.js +11 -0
  8. package/dist/icons/SlidersIcon.d.ts +3 -0
  9. package/dist/icons/SlidersIcon.js +12 -0
  10. package/dist/icons/WarningIcon.js +3 -3
  11. package/dist/icons/index.d.ts +2 -0
  12. package/dist/icons/index.js +3 -1
  13. package/dist/presentation/CustomizableTable/CustomizableTable.d.ts +1 -1
  14. package/dist/presentation/CustomizableTable/CustomizableTable.js +3 -3
  15. package/dist/presentation/RichList/RichList.d.ts +150 -0
  16. package/dist/presentation/RichList/RichList.js +507 -0
  17. package/dist/presentation/RichList/RichList.module.js +12 -0
  18. package/dist/presentation/RichList/RichList.stories.d.ts +24 -0
  19. package/dist/presentation/RichList/RichList.stories.js +334 -0
  20. package/dist/presentation/RichList/RichListBulkActionBar.d.ts +21 -0
  21. package/dist/presentation/RichList/RichListBulkActionBar.js +112 -0
  22. package/dist/presentation/RichList/RichListBulkActionBar.module.js +7 -0
  23. package/dist/presentation/RichList/RichListBulkActionBar_module.css +18 -0
  24. package/dist/presentation/RichList/RichListDisplayModal.d.ts +33 -0
  25. package/dist/presentation/RichList/RichListDisplayModal.js +198 -0
  26. package/dist/presentation/RichList/RichListRow.d.ts +39 -0
  27. package/dist/presentation/RichList/RichListRow.js +278 -0
  28. package/dist/presentation/RichList/RichListRow.module.js +34 -0
  29. package/dist/presentation/RichList/RichListRow_module.css +313 -0
  30. package/dist/presentation/RichList/RichListToolbar.d.ts +21 -0
  31. package/dist/presentation/RichList/RichListToolbar.js +104 -0
  32. package/dist/presentation/RichList/RichListToolbar.module.js +12 -0
  33. package/dist/presentation/RichList/RichListToolbar_module.css +100 -0
  34. package/dist/presentation/RichList/RichList_module.css +77 -0
  35. package/dist/presentation/RichList/helpers.d.ts +77 -0
  36. package/dist/presentation/RichList/helpers.js +121 -0
  37. package/dist/presentation/RichList/stories/ComplianceGroups.d.ts +9 -0
  38. package/dist/presentation/RichList/stories/ComplianceGroups.js +141 -0
  39. package/dist/presentation/RichList/stories/CustomFields.d.ts +13 -0
  40. package/dist/presentation/RichList/stories/CustomFields.js +80 -0
  41. package/dist/presentation/RichList/stories/EmployeeCompliance.d.ts +15 -0
  42. package/dist/presentation/RichList/stories/EmployeeCompliance.js +300 -0
  43. package/dist/presentation/RichList/stories/EmployeePaperwork.d.ts +21 -0
  44. package/dist/presentation/RichList/stories/EmployeePaperwork.js +225 -0
  45. package/dist/presentation/RichList/stories/EmployeePeople.d.ts +10 -0
  46. package/dist/presentation/RichList/stories/EmployeePeople.js +170 -0
  47. package/dist/presentation/RichList/stories/Leave.d.ts +21 -0
  48. package/dist/presentation/RichList/stories/Leave.js +332 -0
  49. package/dist/presentation/RichList/stories/Paperwork.d.ts +22 -0
  50. package/dist/presentation/RichList/stories/Paperwork.js +446 -0
  51. package/dist/presentation/RichList/stories/PaperworkApprovals.d.ts +23 -0
  52. package/dist/presentation/RichList/stories/PaperworkApprovals.js +342 -0
  53. package/dist/presentation/RichList/stories/PeopleList.d.ts +19 -0
  54. package/dist/presentation/RichList/stories/PeopleList.js +391 -0
  55. package/dist/presentation/RichList/stories/PeopleTags.d.ts +14 -0
  56. package/dist/presentation/RichList/stories/PeopleTags.js +106 -0
  57. package/dist/presentation/RichList/stories/Positions.d.ts +22 -0
  58. package/dist/presentation/RichList/stories/Positions.js +519 -0
  59. package/dist/presentation/RichList/stories/SavedQuestions.d.ts +13 -0
  60. package/dist/presentation/RichList/stories/SavedQuestions.js +152 -0
  61. package/dist/presentation/RichList/stories/Tables.d.ts +9 -0
  62. package/dist/presentation/RichList/stories/Tables.js +85 -0
  63. package/dist/presentation/RichList/stories/Tasks.d.ts +16 -0
  64. package/dist/presentation/RichList/stories/Tasks.js +340 -0
  65. package/dist/presentation/RichList/stories/shared/bulkActionStubs.d.ts +9 -0
  66. package/dist/presentation/RichList/stories/shared/bulkActionStubs.js +122 -0
  67. package/dist/presentation/RichList/stories/shared.d.ts +8 -0
  68. package/dist/presentation/RichList/stories/shared.js +2 -0
  69. package/dist/presentation/RichList/types.d.ts +342 -0
  70. package/dist/presentation/RichList/types.js +0 -0
  71. package/dist/presentation/Table.d.ts +1 -1
  72. package/dist/presentation/Table.js +2 -2
  73. package/dist/presentation/Table.module.js +0 -10
  74. package/dist/presentation/Table_module.css +1 -61
  75. package/package.json +2 -2
@@ -0,0 +1,342 @@
1
+ import { type ReactNode } from "react";
2
+ import { type Filter } from "../../controls/FilterModal";
3
+ import { type PrimitiveValue } from "../../utils/tables";
4
+ /**
5
+ * Column width. Use a number (pixels) or a percentage string such as `"30%"` if the
6
+ * track should grow or shrink with the list width.
7
+ */
8
+ export type RichListSlotSize = number | `${number}%`;
9
+ /**
10
+ * When a slot or text field is rendered, gated by `RichList`’s `compactBreakpoint`
11
+ * (measured on the list scope only via the same `ResizeObserver` as `compactSize`).
12
+ *
13
+ * - `always` — render at any list width (default for most positions).
14
+ * - `whenWide` — render only when list width is **above** `compactBreakpoint`.
15
+ * - `whenCompact` — render only when list width is **at or below** `compactBreakpoint`.
16
+ *
17
+ * Useful for moving the same logical content between positions across breakpoints
18
+ * (e.g. status line in a content slot when wide, in `mainSlot.secondary` when compact).
19
+ * `compactBreakpoint` is the **only** width guardrail in `RichList`.
20
+ */
21
+ export type RichListLayoutVisibility = "always" | "whenWide" | "whenCompact";
22
+ /**
23
+ * Width policy for a content slot column.
24
+ *
25
+ * - `"shrinkable"` (default) — column flex-shrinks with the row at its `size` /
26
+ * `compactSize` cap.
27
+ * - `"fixed"` — column is locked to its `size` / `compactSize`; the trailing /
28
+ * main columns shrink first.
29
+ *
30
+ */
31
+ export type RichListColumnWidthMode = "shrinkable" | "fixed";
32
+ /**
33
+ * One line of text (or rich content) inside `mainSlot`. Use the object form for search,
34
+ * filters, CSV, wide-only prefix/suffix adornments, etc.
35
+ *
36
+ * - **Function:** render only; no search, filter, or CSV unless you use the object form.
37
+ * - **Object:** add `value`, `label`, and other fields to hook into search, filters, and
38
+ * export like a table column.
39
+ *
40
+ * Default handling for the object form is in `normalizeTextField` in `helpers.ts`
41
+ * (function form forces `globalFiltering: false` and `csvExport: false`).
42
+ */
43
+ export type RichListTextField<Type> = ((row: Type) => ReactNode) | {
44
+ /**
45
+ * Long text is truncated with an ellipsis when space is tight.
46
+ * Use `prefixOnWide` / `suffixOnWide` for small extras beside the main line at
47
+ * wide widths only.
48
+ */
49
+ render: (row: Type) => ReactNode;
50
+ /**
51
+ * Optional content **before** the main line (e.g. icon). Hidden at compact widths
52
+ * (the same `ResizeObserver` signal as `compactSize` and `rowMainCompact`); use
53
+ * the `render` itself for content that should always render.
54
+ */
55
+ prefixOnWide?: (row: Type) => ReactNode;
56
+ /**
57
+ * Optional content **after** the main line (e.g. badge). Hidden at compact widths
58
+ * (same rule as `prefixOnWide`); use the `render` itself for content that should
59
+ * always render, or pair with a `whenCompact` content/trailing slot for swap.
60
+ */
61
+ suffixOnWide?: (row: Type) => ReactNode;
62
+ /**
63
+ * Value used for search, filters, and export. If you omit it, this line is
64
+ * for display only in those features. When set, search usually includes this
65
+ * field by default.
66
+ */
67
+ value?: (row: Type) => PrimitiveValue;
68
+ /**
69
+ * Label in filter and export UIs. Needed for some filter setups when you add
70
+ * `filter` options.
71
+ */
72
+ label?: string;
73
+ /**
74
+ * If set, this line can appear in the Filters dialog like a table column.
75
+ */
76
+ filter?: Filter<Type>;
77
+ /**
78
+ * Whether the toolbar search can match this field.
79
+ * @default `true` when `value` is set, otherwise `false` (see `normalizeTextField`)
80
+ */
81
+ globalFiltering?: boolean;
82
+ /**
83
+ * Include this field in CSV export when the list has `csvFilename` set.
84
+ * @default `false`
85
+ */
86
+ csvExport?: boolean;
87
+ /**
88
+ * Hide / show this line based on `RichList`’s `compactBreakpoint`. Use
89
+ * `"whenCompact"` on `mainSlot.secondary` to surface a line only at compact
90
+ * widths (and pair with a `whenWide` content slot for the wide layout).
91
+ * @default `"always"`
92
+ */
93
+ layoutVisibility?: RichListLayoutVisibility;
94
+ };
95
+ /**
96
+ * Primary and optional secondary lines stacked in the row’s main column (same horizontal
97
+ * slot as the content columns to their right).
98
+ */
99
+ export type RichListMainSlot<Type> = {
100
+ primary: RichListTextField<Type>;
101
+ secondary?: RichListTextField<Type>;
102
+ /**
103
+ * Max width of the **main slot** column (pixels), including primary and secondary lines.
104
+ * Omit to let the layout choose a width (see `RichListRow` / grid track fallback).
105
+ */
106
+ size?: number;
107
+ };
108
+ /**
109
+ * Common fields shared by leading, content (`contentSlots`), and trailing slots in
110
+ * their object form. Used directly by `RichListSlot` (leading/trailing) and extended
111
+ * by `RichListContentSlot` with the content-only display options.
112
+ */
113
+ type RichListBaseSlotObject<Type> = {
114
+ /**
115
+ * Unique id for this column across leading, all content slots, and trailing.
116
+ */
117
+ id: string;
118
+ /**
119
+ * Cell content for a row.
120
+ */
121
+ render: (row: Type) => ReactNode;
122
+ /**
123
+ * Label in filters and export headers. Content slots additionally use this in the
124
+ * Display / column UI when toggleable.
125
+ */
126
+ label?: string;
127
+ /**
128
+ * Value for search, filters, and CSV. If omitted, this column is only visual in
129
+ * those features.
130
+ */
131
+ value?: (row: Type) => PrimitiveValue;
132
+ /**
133
+ * Alignment inside the column. Trailing often uses `end` (right in LTR);
134
+ * content columns sometimes use `center`.
135
+ * @default `"end"` for trailing, `"start"` for leading and content
136
+ */
137
+ align?: "start" | "center" | "end";
138
+ /**
139
+ * Default max width for this column when the list is **wider** than
140
+ * `RichList`’s `compactBreakpoint` (default 1024px). Leading, content, and
141
+ * trailing can all set this.
142
+ */
143
+ size?: RichListSlotSize;
144
+ /**
145
+ * Tighter max width at/under `RichList`’s `compactBreakpoint` (default 1024px),
146
+ * if you set this. If omitted, `size` is used at compact too.
147
+ */
148
+ compactSize?: RichListSlotSize;
149
+ /**
150
+ * Column filter for the Filters dialog; needs a clear `label` in the UI.
151
+ */
152
+ filter?: Filter<Type>;
153
+ /**
154
+ * When `true`, the toolbar search can match this column’s `value`.
155
+ * @default `true` when `value` is set, otherwise `false` (see `normalizeSlot`)
156
+ */
157
+ globalFiltering?: boolean;
158
+ /**
159
+ * Include in CSV when the list sets `csvFilename`.
160
+ * @default `false`
161
+ */
162
+ csvExport?: boolean;
163
+ /**
164
+ * Show / hide this whole column based on `RichList`’s `compactBreakpoint`. Combined
165
+ * with column visibility from the Display dialog (which always wins). Useful for
166
+ * surfacing the same logical content via different positions across breakpoints
167
+ * (e.g. content slot when wide; `mainSlot.secondary` when compact).
168
+ * @default `"always"`
169
+ */
170
+ layoutVisibility?: RichListLayoutVisibility;
171
+ };
172
+ /**
173
+ * A **leading** or **trailing** column. The row order is: leading, main slot (primary /
174
+ * optional secondary), content columns, trailing, then row actions.
175
+ *
176
+ * - **Function:** quick cell: `row => content`.
177
+ * - **Object:** full control with a stable `id` for filters and CSV.
178
+ *
179
+ * Content columns (`contentSlots`) use the wider `RichListContentSlot` shape, which
180
+ * adds `columnWidthMode`, `canToggleVisibility`, and `hiddenByDefault` — those
181
+ * options only have an effect on content columns and are deliberately excluded here.
182
+ *
183
+ * Default handling for the object form is in `normalizeSlot` in `helpers.ts` (function
184
+ * form sets: `align` `"end"` for trailing, `"start"` for leading; `globalFiltering: false`;
185
+ * `csvExport: false`; `layoutVisibility: "always"`).
186
+ */
187
+ export type RichListSlot<Type> = ((row: Type) => ReactNode) | RichListBaseSlotObject<Type>;
188
+ /**
189
+ * A **content** column (in `contentSlots`). Same shape as `RichListSlot` plus the
190
+ * content-only display options:
191
+ *
192
+ * - `columnWidthMode` — width-shrink policy (`"shrinkable"` or `"fixed"`). To drop
193
+ * the column at/under `compactBreakpoint`, use `layoutVisibility: "whenWide"`.
194
+ * - `canToggleVisibility` / `hiddenByDefault` for the Display dialog.
195
+ *
196
+ * Default handling for the object form is in `normalizeSlot` in `helpers.ts` (function
197
+ * form sets: `layoutVisibility: "always"`; `columnWidthMode: "shrinkable"`;
198
+ * `align: "start"`; `globalFiltering: false`; `canToggleVisibility: false`;
199
+ * `hiddenByDefault: false`; `csvExport: false`).
200
+ */
201
+ export type RichListContentSlot<Type> = ((row: Type) => ReactNode) | (RichListBaseSlotObject<Type> & {
202
+ /**
203
+ * Width-shrink policy for this column when sized.
204
+ *
205
+ * - `"shrinkable"` (default) — column shrinks with the row at its `size` /
206
+ * `compactSize`.
207
+ * - `"fixed"` — column is locked to its `size` / `compactSize`; trailing and
208
+ * main shrink first.
209
+ *
210
+ * @default `"shrinkable"`
211
+ */
212
+ columnWidthMode?: RichListColumnWidthMode;
213
+ /**
214
+ * If `true`, users can show or hide this column in Display settings. Requires a
215
+ * non-empty `label`.
216
+ * @default `false`
217
+ */
218
+ canToggleVisibility?: boolean;
219
+ /**
220
+ * If `true`, the column starts hidden. With `canToggleVisibility`, users can turn
221
+ * it on; without it, the column stays out of the visible-columns UI.
222
+ * @default `false`
223
+ */
224
+ hiddenByDefault?: boolean;
225
+ });
226
+ /**
227
+ * Internal shape after `normalizeTextField` in `helpers.ts`. Booleans are always set
228
+ * (no longer optional on the public object form).
229
+ */
230
+ export type NormalizedTextField<Type> = {
231
+ id: string;
232
+ position: "primary" | "secondary";
233
+ label?: string;
234
+ value?: (row: Type) => PrimitiveValue;
235
+ render: (row: Type) => ReactNode;
236
+ prefixOnWide?: (row: Type) => ReactNode;
237
+ suffixOnWide?: (row: Type) => ReactNode;
238
+ filter?: Filter<Type>;
239
+ /**
240
+ * @default `false` for function `RichListTextField`; for object, `true` if `value` is
241
+ * set and `globalFiltering` is omitted, else the explicit `globalFiltering` value.
242
+ */
243
+ globalFiltering: boolean;
244
+ /** @default `false` (or `false` for function form). */
245
+ csvExport: boolean;
246
+ /** @default `"always"` */
247
+ layoutVisibility: RichListLayoutVisibility;
248
+ };
249
+ /**
250
+ * Internal shape after `normalizeSlot` in `helpers.ts`. See `RichListSlot` and
251
+ * `RichListContentSlot` for defaults on the public object; function slots always set
252
+ * `false` for the filtering/toggle/CSV flags.
253
+ */
254
+ export type NormalizedSlot<Type> = {
255
+ id: string;
256
+ position: "leading" | "content" | "trailing";
257
+ /** Index within its position group (e.g. the i-th leading slot in the array). */
258
+ positionIndex?: number;
259
+ label?: string;
260
+ value?: (row: Type) => PrimitiveValue;
261
+ render: (row: Type) => ReactNode;
262
+ /** @default `"always"` */
263
+ layoutVisibility: RichListLayoutVisibility;
264
+ /** @default `"shrinkable"` (content-only knob; defaults to `"shrinkable"` for leading/trailing too). */
265
+ columnWidthMode: RichListColumnWidthMode;
266
+ /** @default from object or `"end"` (trailing) / `"start"` (leading, content). */
267
+ align: "start" | "center" | "end";
268
+ size?: RichListSlotSize;
269
+ compactSize?: RichListSlotSize;
270
+ filter?: Filter<Type>;
271
+ /**
272
+ * @default `false` for function `RichListSlot`; for object, `true` if `value` is set
273
+ * and `globalFiltering` is omitted, else the explicit `globalFiltering` value.
274
+ */
275
+ globalFiltering: boolean;
276
+ /**
277
+ * @default `true` only for content + explicit `true` on the object; otherwise `false`
278
+ * (including leading/trailing).
279
+ */
280
+ canToggleVisibility: boolean;
281
+ /** @default `false` if omitted on the object. */
282
+ hiddenByDefault: boolean;
283
+ /** @default `false` if omitted on the object. */
284
+ csvExport: boolean;
285
+ };
286
+ /**
287
+ * One action for a row: an icon in the action strip and/or an item in the “more” menu.
288
+ * Up to a fixed number of actions show as icons; the rest go in the menu so columns
289
+ * stay aligned.
290
+ */
291
+ export type RichListRowAction<Type> = {
292
+ /** Stable id for the control. */
293
+ id: string;
294
+ /** Tooltip, menu text, and accessibility name. */
295
+ label: string;
296
+ /** @default (omitted) no icon (menu text / tooltip still from `label`). */
297
+ icon?: ReactNode;
298
+ /**
299
+ * If `true`, prefer showing this as an icon in the main strip (until the max number
300
+ * of icon slots is used). If `false`, it only appears in the overflow menu.
301
+ * @default `false` (falsy/omitted: overflow menu only)
302
+ */
303
+ alwaysVisible?: boolean;
304
+ onClick: (row: Type) => void;
305
+ /**
306
+ * If set, the action is not offered when this returns `false` for that row.
307
+ * @default (omitted) the action is always considered for the row.
308
+ */
309
+ predicate?: (row: Type) => boolean;
310
+ };
311
+ /**
312
+ * An action on the **selected** rows. Used with `bulkActions` on the list. The `render`
313
+ * function usually returns a panel (confirm, form, etc.) and receives the matching
314
+ * selected rows, a way to clear selection, and `onClose` when the panel is done.
315
+ */
316
+ export type RichListBulkAction<Type> = {
317
+ /** Id for this bulk action. */
318
+ key: string;
319
+ /** Short label; the bar can show per-action row counts. */
320
+ label: string;
321
+ /** @default (omitted) no icon. */
322
+ icon?: ReactNode;
323
+ /**
324
+ * Panel to run the action: receives selected rows, `resetRowSelection`, and
325
+ * `onClose`.
326
+ */
327
+ render: (props: {
328
+ /** Selected rows this action runs on. */
329
+ rows: Array<Type>;
330
+ /** Clear selection (e.g. after success). */
331
+ resetRowSelection: () => void;
332
+ /** Close the action panel. */
333
+ onClose: () => void;
334
+ }) => ReactNode;
335
+ /**
336
+ * If set, this action only applies to selected rows that pass this test. It can be
337
+ * omitted from the bar if no selection matches.
338
+ * @default (omitted) all selected rows are eligible; no predicate filter.
339
+ */
340
+ predicate?: (row: Type) => boolean;
341
+ };
342
+ export {};
File without changes
@@ -1,9 +1,9 @@
1
1
  import type { SortingColumnDef } from "@tanstack/react-table";
2
2
  import { type ReactNode } from "react";
3
3
  import { type ZodTypeAny } from "zod";
4
+ import { type Filter } from "../controls/FilterModal";
4
5
  import { type MenuButtonOption } from "../controls/MenuButton";
5
6
  import { type PrimitiveValue } from "../utils/tables";
6
- import { type Filter } from "./TableColumnFilterModal";
7
7
  type Grouping<Type> = {
8
8
  fn: (row: Type) => string;
9
9
  header: (row: Type) => ReactNode;
@@ -7,6 +7,7 @@ import * as __WEBPACK_EXTERNAL_MODULE_clsx__ from "clsx";
7
7
  import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
8
8
  import * as __WEBPACK_EXTERNAL_MODULE__controls_Button_js_f591ba2e__ from "../controls/Button.js";
9
9
  import * as __WEBPACK_EXTERNAL_MODULE__controls_Disclosure_js_6e4cc59c__ from "../controls/Disclosure.js";
10
+ import * as __WEBPACK_EXTERNAL_MODULE__controls_FilterModal_js_d56bff3f__ from "../controls/FilterModal.js";
10
11
  import * as __WEBPACK_EXTERNAL_MODULE__controls_MenuButton_js_b23cdd05__ from "../controls/MenuButton.js";
11
12
  import * as __WEBPACK_EXTERNAL_MODULE__inputs_CheckboxInput_js_3a83f64b__ from "../inputs/CheckboxInput.js";
12
13
  import * as __WEBPACK_EXTERNAL_MODULE__inputs_SelectInput_js_d1a6f32e__ from "../inputs/SelectInput.js";
@@ -19,7 +20,6 @@ import * as __WEBPACK_EXTERNAL_MODULE__HStack_js_cc26058d__ from "./HStack.js";
19
20
  import * as __WEBPACK_EXTERNAL_MODULE__Icon_js_0d271bb6__ from "./Icon.js";
20
21
  import * as __WEBPACK_EXTERNAL_MODULE__PlainText_js_cd0b6798__ from "./PlainText.js";
21
22
  import * as __WEBPACK_EXTERNAL_MODULE__Table_module_js_1c0e33be__ from "./Table.module.js";
22
- import * as __WEBPACK_EXTERNAL_MODULE__TableColumnFilterModal_js_dd7b508a__ from "./TableColumnFilterModal.js";
23
23
  import * as __WEBPACK_EXTERNAL_MODULE__VStack_js_02eb6792__ from "./VStack.js";
24
24
  const selectColumnId = "_selectColumn";
25
25
  const actionsColumnId = "_actionsColumn";
@@ -582,7 +582,7 @@ const Table = ({ data, columns, bulkActions = [], secondaryBulkActions = [], csv
582
582
  })
583
583
  ]
584
584
  }),
585
- isFilterModalOpen && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__TableColumnFilterModal_js_dd7b508a__["default"], {
585
+ isFilterModalOpen && /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__controls_FilterModal_js_d56bff3f__["default"], {
586
586
  onClose: ()=>setIsFilterModalOpen(false),
587
587
  filterableColumns: filterableColumns,
588
588
  currentFilters: tableState.columnFilters,
@@ -22,16 +22,6 @@ const Table_module_rslib_entry_ = {
22
22
  filterSelectMenus: "filterSelectMenus-rQe_dQ",
23
23
  filterBarSearchReset: "filterBarSearchReset-zMZpkF",
24
24
  filterBarSearchResetContent: "filterBarSearchResetContent-h8b3qb",
25
- filterExpandersContainer: "filterExpandersContainer-yRLNvU",
26
- filterExpanderRow: "filterExpanderRow-_O4wQh",
27
- filterExpanderHighlight: "filterExpanderHighlight-HU8LI2",
28
- filterExpanderLabel: "filterExpanderLabel-z0kGvW",
29
- filterExpanderIcon: "filterExpanderIcon-XmmWLH",
30
- filterExpander: "filterExpander-AzrkVe",
31
- filterExpanderWrapper: "filterExpanderWrapper-wfxkbS",
32
- filterBooleanFieldWrapper: "filterBooleanFieldWrapper-UkqZhF",
33
- filterOptions: "filterOptions-c2gDM9",
34
- filterButton: "filterButton-K5yTnY",
35
25
  downloadLink: "downloadLink-DxebfL"
36
26
  };
37
27
  export { Table_module_rslib_entry_ as default };
@@ -142,67 +142,7 @@
142
142
  }
143
143
  }
144
144
 
145
- .filterExpandersContainer-yRLNvU {
146
- flex-direction: column;
147
- width: 100%;
148
- display: flex;
149
- }
150
-
151
- .filterExpandersContainer-yRLNvU > :not(:first-child) {
152
- border-top: solid var(--size-n5) var(--color-grey-t08);
153
- }
154
-
155
- .filterExpanderRow-_O4wQh {
156
- width: 100%;
157
- padding: var(--size-00);
158
- align-items: center;
159
- gap: var(--size-n2);
160
- cursor: pointer;
161
- text-align: left;
162
- background: none;
163
- border: none;
164
- outline: none;
165
- display: flex;
166
- }
167
-
168
- .filterExpanderHighlight-HU8LI2 .filterExpanderLabel-z0kGvW {
169
- font: var(--font-regular-bold);
170
- }
171
-
172
- .filterExpanderLabel-z0kGvW {
173
- min-width: 0;
174
- font: var(--font-label);
175
- flex: 1;
176
- }
177
-
178
- .filterExpanderIcon-XmmWLH {
179
- transition: transform .15s;
180
- }
181
-
182
- .filterExpander-AzrkVe[open] .filterExpanderRow-_O4wQh {
183
- padding-bottom: var(--size-n2);
184
- }
185
-
186
- .filterExpander-AzrkVe[open] .filterExpanderIcon-XmmWLH {
187
- transform: rotate(90deg);
188
- }
189
-
190
- .filterExpanderWrapper-wfxkbS {
191
- padding: 0 var(--size-00) var(--size-p1);
192
- padding-inline-start: calc(var(--size-p1) + 15px + var(--size-n2));
193
- }
194
-
195
- .filterBooleanFieldWrapper-UkqZhF {
196
- padding: var(--size-00) var(--size-00) var(--size-p1);
197
- }
198
-
199
- .filterOptions-c2gDM9 {
200
- gap: var(--size-n2);
201
- flex-direction: column;
202
- display: flex;
203
- }
204
-
205
- .filterButton-K5yTnY, .downloadLink-DxebfL {
145
+ .downloadLink-DxebfL {
206
146
  justify-content: flex-end;
207
147
  gap: var(--size-00);
208
148
  align-items: center;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@worknice/whiteboard",
3
3
  "description": "",
4
- "version": "0.52.1",
4
+ "version": "0.53.0",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "files": [
@@ -39,7 +39,7 @@
39
39
  "react-markdown": "^10.1.0",
40
40
  "utf8": "^3.0.0",
41
41
  "zod": "^4.1.13",
42
- "@worknice/utils": "^0.35.1"
42
+ "@worknice/utils": "^0.36.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@anolilab/semantic-release-pnpm": "^3.2.2",