@overmap-ai/blocks 1.0.15 → 1.0.17-linkify.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.
@@ -43,6 +43,7 @@ export interface TableProps {
43
43
  description?: string | ReactNode;
44
44
  defaultRowsPerPage?: number;
45
45
  rowsPerPage?: number[];
46
+ fixHeader?: boolean;
46
47
  showSearchBar?: boolean;
47
48
  searchBarPlaceholder?: string;
48
49
  showSelect?: boolean;
package/dist/blocks.js CHANGED
@@ -9,6 +9,7 @@ import * as RadixDialogPrimitive from "@radix-ui/react-dialog";
9
9
  import { Resizable } from "re-resizable";
10
10
  import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
11
11
  import { CSSTransition, Transition } from "react-transition-group";
12
+ import Linkify from "linkify-react";
12
13
  import { Root as Root$1, Item as Item$1 } from "@radix-ui/react-toggle-group";
13
14
  import { Root as Root$2 } from "@radix-ui/react-toolbar";
14
15
  import * as RadixToast from "@radix-ui/react-toast";
@@ -187,6 +188,12 @@ function useTextFilter(values, filterFunction) {
187
188
  }, [filterFunction, filterValue, values]);
188
189
  return [filteredOptions, filterValue, setFilterValue];
189
190
  }
191
+ const splitTextForEllipsisAndExpansion = (text, numChars) => {
192
+ const indexOfSpace = text.indexOf(" ", numChars);
193
+ const firstLine = indexOfSpace === -1 ? text : text.substring(0, indexOfSpace);
194
+ const secondLine = indexOfSpace === -1 ? "" : text.substring(indexOfSpace);
195
+ return [firstLine, secondLine];
196
+ };
190
197
  const _Badge = forwardRef(function Badge2({ className, severity = "primary", color, children, ...rest }, ref) {
191
198
  const severityColor = useSeverityColor(severity);
192
199
  return /* @__PURE__ */ jsx(
@@ -1840,11 +1847,11 @@ const LeftAndRightPanels = memo(function Panels({
1840
1847
  }
1841
1848
  );
1842
1849
  });
1843
- const multiPagePopover = "_multiPagePopover_spfw7_1";
1844
- const pageTitle = "_pageTitle_spfw7_12";
1845
- const buttonContainer = "_buttonContainer_spfw7_17";
1846
- const optionsButtonContainer = "_optionsButtonContainer_spfw7_22";
1847
- const optionsButton = "_optionsButton_spfw7_22";
1850
+ const multiPagePopover = "_multiPagePopover_16xvh_1";
1851
+ const pageTitle = "_pageTitle_16xvh_12";
1852
+ const buttonContainer = "_buttonContainer_16xvh_16";
1853
+ const optionsButtonContainer = "_optionsButtonContainer_16xvh_21";
1854
+ const optionsButton = "_optionsButton_16xvh_21";
1848
1855
  const styles$9 = {
1849
1856
  multiPagePopover,
1850
1857
  pageTitle,
@@ -1875,7 +1882,7 @@ function getMultiPagePopoverContent(popoverOption, setMultiPagePopoverContent, d
1875
1882
  `${option.value}-page-${page}-button-${i}`
1876
1883
  ));
1877
1884
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1878
- popoverOption.title && /* @__PURE__ */ jsx("div", { className: styles$9.pageTitle, children: popoverOption.title }),
1885
+ popoverOption.title && /* @__PURE__ */ jsx(Text$2, { className: styles$9.pageTitle, size: "3", children: popoverOption.title }),
1879
1886
  popoverOption.content,
1880
1887
  /* @__PURE__ */ jsx(
1881
1888
  "div",
@@ -1956,6 +1963,17 @@ const _TextArea = forwardRef(function TextArea2({
1956
1963
  ...rest
1957
1964
  }
1958
1965
  ),
1966
+ /* @__PURE__ */ jsx("div", { className: "rt-TextAreaInput", children: /* @__PURE__ */ jsx(
1967
+ Linkify,
1968
+ {
1969
+ options: {
1970
+ target: "_blank",
1971
+ rel: "noopener"
1972
+ },
1973
+ children: value
1974
+ }
1975
+ ) }),
1976
+ /* @__PURE__ */ jsx("div", { className: "rt-TextAreaChrome" }),
1959
1977
  displayInputLength && /* @__PURE__ */ jsx(Text$2, { as: "p", className: styles$8.charCount, color: infoColor, align: "right", children: displayInputLengthValue })
1960
1978
  ] });
1961
1979
  });
@@ -2967,25 +2985,28 @@ const SelectAllCheckbox = memo(function SelectAllCheckbox2({
2967
2985
  childrenWithProps
2968
2986
  ] });
2969
2987
  });
2970
- const tableContainer = "_tableContainer_boacd_1";
2971
- const headerContainer = "_headerContainer_boacd_14";
2972
- const tableTopContainer = "_tableTopContainer_boacd_18";
2973
- const searchContainer = "_searchContainer_boacd_22";
2974
- const columnFilterSelect = "_columnFilterSelect_boacd_32";
2975
- const table = "_table_boacd_1";
2976
- const tableHeaderCell = "_tableHeaderCell_boacd_50";
2977
- const showSortIcon = "_showSortIcon_boacd_59";
2978
- const tableRow = "_tableRow_boacd_63";
2979
- const tableCell = "_tableCell_boacd_78";
2980
- const noDataTextContainer = "_noDataTextContainer_boacd_88";
2981
- const tableBottomContainer = "_tableBottomContainer_boacd_94";
2982
- const rowsPerPageContainer = "_rowsPerPageContainer_boacd_98";
2983
- const rowsPerPageText = "_rowsPerPageText_boacd_108";
2984
- const pageText = "_pageText_boacd_113";
2988
+ const outerTableContainer = "_outerTableContainer_1wqc9_1";
2989
+ const headerContainer = "_headerContainer_1wqc9_13";
2990
+ const tableTopContainer = "_tableTopContainer_1wqc9_17";
2991
+ const tableContainer = "_tableContainer_1wqc9_21";
2992
+ const searchContainer = "_searchContainer_1wqc9_26";
2993
+ const columnFilterSelect = "_columnFilterSelect_1wqc9_36";
2994
+ const table = "_table_1wqc9_17";
2995
+ const tableHeaderCell = "_tableHeaderCell_1wqc9_54";
2996
+ const showSortIcon = "_showSortIcon_1wqc9_70";
2997
+ const tableRow = "_tableRow_1wqc9_74";
2998
+ const tableCell = "_tableCell_1wqc9_89";
2999
+ const noDataTextContainer = "_noDataTextContainer_1wqc9_99";
3000
+ const tableBottomContainer = "_tableBottomContainer_1wqc9_105";
3001
+ const rowsPerPageContainer = "_rowsPerPageContainer_1wqc9_109";
3002
+ const rowsPerPageText = "_rowsPerPageText_1wqc9_119";
3003
+ const pageText = "_pageText_1wqc9_124";
3004
+ const descriptionSecondLine = "_descriptionSecondLine_1wqc9_128";
2985
3005
  const styles$1 = {
2986
- tableContainer,
3006
+ outerTableContainer,
2987
3007
  headerContainer,
2988
3008
  tableTopContainer,
3009
+ tableContainer,
2989
3010
  searchContainer,
2990
3011
  columnFilterSelect,
2991
3012
  table,
@@ -2997,7 +3018,8 @@ const styles$1 = {
2997
3018
  tableBottomContainer,
2998
3019
  rowsPerPageContainer,
2999
3020
  rowsPerPageText,
3000
- pageText
3021
+ pageText,
3022
+ descriptionSecondLine
3001
3023
  };
3002
3024
  const _Table = forwardRef(function Table2(props, ref) {
3003
3025
  var _a;
@@ -3008,6 +3030,7 @@ const _Table = forwardRef(function Table2(props, ref) {
3008
3030
  title = "",
3009
3031
  description = "",
3010
3032
  rowsPerPage = [10, 20, 30, 40, 50],
3033
+ fixHeader = false,
3011
3034
  showSearchBar,
3012
3035
  searchBarPlaceholder,
3013
3036
  showSelect,
@@ -3197,6 +3220,7 @@ const _Table = forwardRef(function Table2(props, ref) {
3197
3220
  );
3198
3221
  const columnFilterPopoverContent = useMemo(
3199
3222
  () => ({
3223
+ title: "Filter by:",
3200
3224
  options: columns.filter((column) => column.filter).map((column) => ({
3201
3225
  label: column.label,
3202
3226
  value: column.id.toString(),
@@ -3257,7 +3281,15 @@ const _Table = forwardRef(function Table2(props, ref) {
3257
3281
  );
3258
3282
  const columnCells = columnsData.map((column) => {
3259
3283
  const Component = column.sort ? HeaderCellSort : HeaderCell;
3260
- return /* @__PURE__ */ jsx(HoverUtility, { children: ({ isHovered, ...props2 }) => /* @__PURE__ */ jsx(
3284
+ let firstLine = column.label;
3285
+ let secondLine = void 0;
3286
+ if (column.label && typeof column.label === "string") {
3287
+ const numChars = 31;
3288
+ const [first, second] = splitTextForEllipsisAndExpansion(column.label, numChars);
3289
+ firstLine = first;
3290
+ secondLine = second;
3291
+ }
3292
+ return /* @__PURE__ */ jsx(HoverUtility, { children: ({ isHovered, ...props2 }) => /* @__PURE__ */ jsxs(
3261
3293
  Component,
3262
3294
  {
3263
3295
  className: classNames(
@@ -3268,12 +3300,18 @@ const _Table = forwardRef(function Table2(props, ref) {
3268
3300
  ),
3269
3301
  sortKey: column.sort ? column.id.toString().toUpperCase() : "",
3270
3302
  ...props2,
3271
- children: column.label
3303
+ children: [
3304
+ firstLine && /* @__PURE__ */ jsx("div", { children: firstLine }),
3305
+ secondLine && /* @__PURE__ */ jsxs("div", { className: styles$1.descriptionSecondLine, children: [
3306
+ " ",
3307
+ secondLine
3308
+ ] })
3309
+ ]
3272
3310
  }
3273
3311
  ) }, column.id);
3274
3312
  });
3275
3313
  const SelectedModeButton = isMobile ? IconButton : Button2;
3276
- const layout = useMemo(() => ({ custom: true }), []);
3314
+ const layout = useMemo(() => ({ custom: true, ...fixHeader && { fixedHeader: true } }), [fixHeader]);
3277
3315
  const theme = useTheme({
3278
3316
  Table: `
3279
3317
  --data-table-library_grid-template-columns: ${gridTemplateColumns} !important;
@@ -3305,7 +3343,7 @@ const _Table = forwardRef(function Table2(props, ref) {
3305
3343
  }
3306
3344
  }
3307
3345
  }, [rowsPerPage, rows.length, numRowsPerPage, pagination, showPageNavigation]);
3308
- return /* @__PURE__ */ jsxs("div", { className: classNames({ [styles$1.tableContainer]: showContainer }), children: [
3346
+ return /* @__PURE__ */ jsxs(Flex$1, { className: classNames({ [styles$1.outerTableContainer]: showContainer }), direction: "column", height: "100%", children: [
3309
3347
  (!!title || !!description) && /* @__PURE__ */ jsxs("div", { className: styles$1.headerContainer, children: [
3310
3348
  !!title && /* @__PURE__ */ jsx(Text$1, { weight: "bold", size: "5", children: title }),
3311
3349
  !!description && /* @__PURE__ */ jsx(Text$1, { as: "div", children: description })
@@ -3330,8 +3368,8 @@ const _Table = forwardRef(function Table2(props, ref) {
3330
3368
  children: (_Close) => ""
3331
3369
  }
3332
3370
  ),
3333
- showFilterButton && isColumnFilterValueSelected && /* @__PURE__ */ jsxs(
3334
- Button2,
3371
+ showFilterButton && isColumnFilterValueSelected && /* @__PURE__ */ jsx(
3372
+ IconButton,
3335
3373
  {
3336
3374
  variant: "surface",
3337
3375
  color: "crimson",
@@ -3339,10 +3377,8 @@ const _Table = forwardRef(function Table2(props, ref) {
3339
3377
  setColumnFilterValues(defaultColumnFilterValues);
3340
3378
  pagination.fns.onSetPage(0);
3341
3379
  },
3342
- children: [
3343
- /* @__PURE__ */ jsx(Cross2Icon, {}),
3344
- "Clear filters"
3345
- ]
3380
+ "aria-label": "Clear filters",
3381
+ children: /* @__PURE__ */ jsx(Cross2Icon, {})
3346
3382
  }
3347
3383
  )
3348
3384
  ] }),
@@ -3359,7 +3395,7 @@ const _Table = forwardRef(function Table2(props, ref) {
3359
3395
  ] })
3360
3396
  ] }),
3361
3397
  children,
3362
- /* @__PURE__ */ jsx(
3398
+ /* @__PURE__ */ jsx("div", { className: styles$1.tableContainer, children: /* @__PURE__ */ jsx(
3363
3399
  Table$1,
3364
3400
  {
3365
3401
  className: classNames(styles$1.table, className),
@@ -3405,7 +3441,7 @@ const _Table = forwardRef(function Table2(props, ref) {
3405
3441
  ] })
3406
3442
  ] })
3407
3443
  }
3408
- ),
3444
+ ) }),
3409
3445
  showBottomBar && /* @__PURE__ */ jsxs(Flex$1, { className: styles$1.tableBottomContainer, wrap: "wrap", direction: isMobile ? "column" : "row", children: [
3410
3446
  showRowsPerPage && /* @__PURE__ */ jsxs(Flex$1, { className: styles$1.rowsPerPageContainer, children: [
3411
3447
  /* @__PURE__ */ jsx(Text$1, { className: styles$1.rowsPerPageText, size: "2", children: "Rows per page:" }),
@@ -3668,6 +3704,7 @@ export {
3668
3704
  Toolbar,
3669
3705
  Tooltip,
3670
3706
  divButtonProps,
3707
+ splitTextForEllipsisAndExpansion,
3671
3708
  unsafeShowToast,
3672
3709
  updateThemeAppearanceClass,
3673
3710
  useAlertDialog,