@protobase/ui 0.19.5 → 0.19.7

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 (144) hide show
  1. package/dist/account/account-section.js +2 -2
  2. package/dist/account/account-security-page.js +2 -2
  3. package/dist/account/backup-codes.js +1 -1
  4. package/dist/account/passkeys-section.js +2 -2
  5. package/dist/account/password-dialog.js +1 -1
  6. package/dist/account/sign-in-policy-form.js +2 -2
  7. package/dist/account/sign-in-policy-page.js +2 -2
  8. package/dist/account/sign-in-providers-section.js +1 -1
  9. package/dist/account/staff-sign-in-log.js +3 -3
  10. package/dist/account/two-factor-setup.js +6 -6
  11. package/dist/action-card/action-card.js +1 -1
  12. package/dist/activity-chart/activity-chart.js +2 -2
  13. package/dist/app/delete/dialogs.js +3 -3
  14. package/dist/app/displays/display-controls.js +1 -1
  15. package/dist/app/displays/display-frame.js +1 -1
  16. package/dist/app/displays/list-cards.js +1 -1
  17. package/dist/app/displays/map-display.js +1 -1
  18. package/dist/app/displays/record-card.js +1 -1
  19. package/dist/app/embedded-list/embedded-list.js +2 -2
  20. package/dist/app/error-banner.js +1 -1
  21. package/dist/app/export/builder-port.js +54 -0
  22. package/dist/app/export/builder.js +61 -0
  23. package/dist/app/export/cells.js +93 -0
  24. package/dist/app/export/csv.js +17 -0
  25. package/dist/app/export/export-dialog.js +235 -0
  26. package/dist/app/export/export-options.js +49 -0
  27. package/dist/app/export/export-worker.d.ts +1 -0
  28. package/dist/app/export/export-worker.js +9 -0
  29. package/dist/app/export/run-export.js +62 -0
  30. package/dist/app/export/sink.js +91 -0
  31. package/dist/app/export/use-export-flow.js +139 -0
  32. package/dist/app/export/xlsx.js +91 -0
  33. package/dist/app/field-editor.js +6 -12
  34. package/dist/app/file-field.js +4 -4
  35. package/dist/app/gallery/lightbox.js +2 -2
  36. package/dist/app/gallery/photo-details.js +1 -1
  37. package/dist/app/import/import-check-step.js +2 -2
  38. package/dist/app/import/import-file-step.js +2 -2
  39. package/dist/app/import/import-mapping-step.js +1 -1
  40. package/dist/app/import/import-result-step.js +2 -2
  41. package/dist/app/import/import-select.js +2 -2
  42. package/dist/app/list-page.js +28 -3
  43. package/dist/app/meta-gate.js +3 -3
  44. package/dist/app/pages/blocks/card-frame.js +4 -4
  45. package/dist/app/pages/blocks/field.js +2 -5
  46. package/dist/app/pages/blocks/stat.js +2 -2
  47. package/dist/app/pages/problem.js +1 -1
  48. package/dist/app/pages/render-node.js +1 -1
  49. package/dist/app/record-page.js +2 -2
  50. package/dist/app/record-row/record-row-body.js +3 -3
  51. package/dist/app/record-row/saved-record-row.js +1 -1
  52. package/dist/app/related-section.js +1 -1
  53. package/dist/app/relation-picker.js +1 -1
  54. package/dist/app/runtime/runtime-update.js +3 -3
  55. package/dist/app/saved/saved-list.js +1 -1
  56. package/dist/app/searches/saved-search-rows.js +2 -2
  57. package/dist/app/searches/saved-search-section.js +1 -1
  58. package/dist/app/searches/saved-searches.js +1 -1
  59. package/dist/app/searches/search-controls.js +2 -2
  60. package/dist/app/searches/search-name-dialog.js +1 -1
  61. package/dist/app/searches/update-search-dialog.js +16 -19
  62. package/dist/app/sensitive-field.js +1 -1
  63. package/dist/app/source-notice.js +3 -3
  64. package/dist/app/staff-banner.js +1 -1
  65. package/dist/app-shell/breadcrumb.js +1 -1
  66. package/dist/app-shell/global-search.js +1 -1
  67. package/dist/app-shell/page-header.js +1 -1
  68. package/dist/app-shell/profile-menu.js +3 -3
  69. package/dist/app-shell/sidebar-group.js +1 -1
  70. package/dist/app-shell/sidebar-item.js +1 -1
  71. package/dist/app-shell/sidebar.js +2 -2
  72. package/dist/assistant-dock/part-view.js +1 -4
  73. package/dist/assistant-dock/widget-view.js +1 -4
  74. package/dist/auth/auth-gate.js +2 -2
  75. package/dist/auth/auth-layout.js +1 -1
  76. package/dist/auth/code-form.js +2 -2
  77. package/dist/auth/first-run-page.js +1 -1
  78. package/dist/auth/forgot-password-form.js +2 -2
  79. package/dist/auth/provider-sign-in-page.js +1 -1
  80. package/dist/auth/reset-password-form.js +3 -3
  81. package/dist/auth/setup-required-form.js +2 -2
  82. package/dist/auth/setup-required-page.js +1 -1
  83. package/dist/auth/sign-in-form.js +5 -5
  84. package/dist/auth/sign-in-prompt.js +2 -2
  85. package/dist/auth/sign-up-details-form.js +3 -3
  86. package/dist/auth/sign-up-email-form.js +4 -4
  87. package/dist/auth/staff-sign-in-form.js +3 -3
  88. package/dist/auth/two-factor-form.js +5 -5
  89. package/dist/chat/chat-message.js +1 -1
  90. package/dist/chat/chat-thread.js +1 -1
  91. package/dist/data/query-keys.js +7 -0
  92. package/dist/data-grid/grid-row.js +1 -1
  93. package/dist/data-grid/header-menu.js +1 -1
  94. package/dist/data-grid/row-menu.js +1 -1
  95. package/dist/filter-panel/facet-combobox.js +1 -1
  96. package/dist/filter-panel/filter-menu.js +1 -1
  97. package/dist/filter-panel/filter-panel.js +2 -2
  98. package/dist/inline-child-table/line-menu.js +1 -1
  99. package/dist/inline-child-table/line-row.js +4 -4
  100. package/dist/inline-child-table/number-cell.js +1 -1
  101. package/dist/inline-child-table/totals-footer.js +2 -2
  102. package/dist/organizations/app-roles-picker.js +1 -1
  103. package/dist/organizations/invitation-page.js +3 -3
  104. package/dist/organizations/invitations-page.js +2 -2
  105. package/dist/organizations/members-page.js +2 -2
  106. package/dist/organizations/organization-page.js +1 -1
  107. package/dist/organizations/organizations-page.js +2 -2
  108. package/dist/package.js +1 -1
  109. package/dist/plugins/before-sign-in.js +1 -1
  110. package/dist/plugins/plugin-gate.js +1 -1
  111. package/dist/plugins/plugin-notice.js +1 -1
  112. package/dist/primitives/button.js +1 -1
  113. package/dist/primitives/dialog.js +2 -2
  114. package/dist/primitives/input.js +1 -1
  115. package/dist/primitives/menu-select.js +2 -2
  116. package/dist/primitives/responsive-dialog.js +1 -1
  117. package/dist/primitives/segmented.js +1 -1
  118. package/dist/primitives/sheet.js +1 -1
  119. package/dist/primitives/textarea.js +1 -1
  120. package/dist/record-view/action-rail.js +1 -1
  121. package/dist/record-view/field.js +1 -1
  122. package/dist/record-view/key-facts.js +2 -2
  123. package/dist/record-view/record-sidebar.js +2 -2
  124. package/dist/record-view/section.js +2 -2
  125. package/dist/record-view/spec-table.js +1 -1
  126. package/dist/shell/assets/app-BRVJlz_E.js +68 -0
  127. package/dist/shell/assets/export-worker-CVd5saLq.js +2 -0
  128. package/dist/shell/assets/{index-BzCCIfII.js → index-CafsxSWx.js} +1 -1
  129. package/dist/shell/assets/index-Cuulz26c.css +2 -0
  130. package/dist/shell/assets/maplibre-Cb7ks8SG.js +814 -0
  131. package/dist/shell/assets/{record-map-BK_02Lmk.js → record-map-dXyPrmGg.js} +1 -1
  132. package/dist/shell/assets/{records-map-Dn72A_l-.js → records-map-bGH18FRn.js} +1 -1
  133. package/dist/shell/assets/{shared-protobase-ui-B6lrj7eA.js → shared-protobase-ui-e-G14mxb.js} +1 -1
  134. package/dist/shell/index.html +4 -4
  135. package/dist/shell/protobase.shell.json +1 -1
  136. package/dist/side-panel/side-panel.js +1 -1
  137. package/dist/step-list/step-list.js +1 -1
  138. package/dist/styles.css +1 -1
  139. package/dist/theme.css +2 -0
  140. package/dist/toasts/toast.js +2 -2
  141. package/package.json +5 -4
  142. package/dist/shell/assets/app-CZ4drn7G.js +0 -67
  143. package/dist/shell/assets/index-BoeKjvo8.css +0 -2
  144. package/dist/shell/assets/maplibre-BOsAtlAo.js +0 -814
@@ -33,7 +33,7 @@ const Gutter = ({ width, index, selectable, selected, onToggle, edge }) => /* @_
33
33
  const DataRow = ({ cells, selected, onToggle, onOpen, menu, ...frame }) => /* @__PURE__ */ jsxs("div", {
34
34
  role: "row",
35
35
  onClick: onOpen,
36
- className: cn("absolute inset-x-0 top-0 grid items-center border-b text-[13px]", selected ? "bg-primary-soft" : "bg-background hover:bg-surface", onOpen && "cursor-pointer"),
36
+ className: cn("absolute inset-x-0 top-0 grid items-center border-b", selected ? "bg-primary-soft" : "bg-background hover:bg-surface", onOpen && "cursor-pointer"),
37
37
  style: frameStyle(frame),
38
38
  children: [
39
39
  /* @__PURE__ */ jsx(Gutter, {
@@ -31,7 +31,7 @@ const HeaderMenu = ({ header, pinned, onTogglePin }) => {
31
31
  children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-3.5" })
32
32
  }), open && /* @__PURE__ */ jsx("ul", {
33
33
  role: "menu",
34
- className: "absolute right-0 top-full z-30 mt-1 min-w-32 rounded-md border bg-background py-1 text-[13px] font-normal text-foreground shadow-pop",
34
+ className: "absolute right-0 top-full z-30 mt-1 min-w-32 rounded-md border bg-background py-1 text-body font-normal text-foreground shadow-pop",
35
35
  children: /* @__PURE__ */ jsx("li", {
36
36
  role: "none",
37
37
  children: /* @__PURE__ */ jsx("button", {
@@ -67,7 +67,7 @@ const RowMenu = ({ row, actions }) => {
67
67
  role: "menu",
68
68
  onClick: (event) => event.stopPropagation(),
69
69
  style: place ?? { visibility: "hidden" },
70
- className: "fixed z-50 min-w-36 rounded-md border bg-background py-1 text-[13px] shadow-pop",
70
+ className: "fixed z-50 min-w-36 rounded-md border bg-background py-1 shadow-pop",
71
71
  children: actions.map((action) => /* @__PURE__ */ jsx("li", {
72
72
  role: "none",
73
73
  children: /* @__PURE__ */ jsx("button", {
@@ -74,7 +74,7 @@ const FacetCombobox = ({ config, selected, onToggle, inline = false }) => {
74
74
  "aria-autocomplete": "list",
75
75
  "aria-activedescendant": options[active] ? `${id}-${active}` : void 0,
76
76
  placeholder: selected.length > 0 ? "" : `Search ${config.label.toLowerCase()}`,
77
- className: "h-6 min-w-16 flex-1 bg-transparent text-[13px] text-foreground outline-none placeholder:text-faint-foreground",
77
+ className: "h-6 min-w-16 flex-1 bg-transparent text-foreground outline-none placeholder:text-faint-foreground",
78
78
  value: query,
79
79
  onChange: (event) => search(event.target.value),
80
80
  onKeyDown,
@@ -26,7 +26,7 @@ const FilterMenu = ({ label, activeCount, width = 240, defaultOpen = false, chil
26
26
  type: "button",
27
27
  "aria-expanded": open,
28
28
  onClick: () => setOpen(!open),
29
- className: cn("inline-flex h-8 items-center gap-1.5 rounded-md border bg-background px-2.5 text-[13px] font-medium shadow-sm transition-colors hover:bg-muted", activeCount > 0 ? "border-primary-border text-primary-text" : "border-border-strong text-foreground"),
29
+ className: cn("inline-flex h-8 items-center gap-1.5 rounded-md border bg-background px-2.5 font-medium shadow-sm transition-colors hover:bg-muted", activeCount > 0 ? "border-primary-border text-primary-text" : "border-border-strong text-foreground"),
30
30
  children: [
31
31
  label,
32
32
  activeCount > 0 && /* @__PURE__ */ jsx("span", {
@@ -60,7 +60,7 @@ const FilterPanel = ({ config, layout, value, defaultValue, onChange, lockedLabe
60
60
  /* @__PURE__ */ jsx("div", {
61
61
  className: "flex items-center justify-between pb-1",
62
62
  children: /* @__PURE__ */ jsx("h2", {
63
- className: "text-[13px] font-semibold",
63
+ className: "font-semibold",
64
64
  children: "Filters"
65
65
  })
66
66
  }),
@@ -105,7 +105,7 @@ const FilterPanel = ({ config, layout, value, defaultValue, onChange, lockedLabe
105
105
  ...dateView ? [/* @__PURE__ */ jsx(Fragment, { children: dateView }, "date")] : []
106
106
  ];
107
107
  const toggles = (config.toggles ?? []).map((toggle) => /* @__PURE__ */ jsx("div", {
108
- className: "flex items-center gap-2 text-[13px] text-muted-foreground",
108
+ className: "flex items-center gap-2 text-muted-foreground",
109
109
  children: /* @__PURE__ */ jsx(ToggleRow, {
110
110
  label: toggle.label,
111
111
  checked: state.toggles.includes(toggle.id),
@@ -32,7 +32,7 @@ const LineMenu = ({ items, label }) => {
32
32
  children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" })
33
33
  }), open && /* @__PURE__ */ jsx("ul", {
34
34
  role: "menu",
35
- className: "absolute right-0 top-full z-30 mt-1 min-w-36 rounded-md border bg-background py-1 text-[13px] shadow-pop",
35
+ className: "absolute right-0 top-full z-30 mt-1 min-w-36 rounded-md border bg-background py-1 shadow-pop",
36
36
  children: items.map((item) => /* @__PURE__ */ jsx("li", {
37
37
  role: "none",
38
38
  children: /* @__PURE__ */ jsx("button", {
@@ -49,7 +49,7 @@ const LineRow = ({ line, position, count, reorderable, editable, onChange, onRem
49
49
  /* @__PURE__ */ jsxs("div", {
50
50
  className: "min-w-0",
51
51
  children: [/* @__PURE__ */ jsx("p", {
52
- className: "truncate text-[13px] text-foreground",
52
+ className: "truncate text-foreground",
53
53
  children: line.description
54
54
  }), /* @__PURE__ */ jsx("p", {
55
55
  className: "font-mono text-[11px] text-faint-foreground",
@@ -63,7 +63,7 @@ const LineRow = ({ line, position, count, reorderable, editable, onChange, onRem
63
63
  parse: (text) => Math.round(Number(text)),
64
64
  onCommit: (quantity) => onChange({ quantity })
65
65
  }) : /* @__PURE__ */ jsx("span", {
66
- className: "px-2 text-right text-[13px] tabular-nums",
66
+ className: "px-2 text-right tabular-nums",
67
67
  children: line.quantity
68
68
  }),
69
69
  editable ? /* @__PURE__ */ jsx(NumberCell, {
@@ -73,11 +73,11 @@ const LineRow = ({ line, position, count, reorderable, editable, onChange, onRem
73
73
  parse: parseEuros,
74
74
  onCommit: (unitPriceCents) => onChange({ unitPriceCents })
75
75
  }) : /* @__PURE__ */ jsx("span", {
76
- className: "px-2 text-right text-[13px] tabular-nums",
76
+ className: "px-2 text-right tabular-nums",
77
77
  children: (line.unitPriceCents / 100).toFixed(2)
78
78
  }),
79
79
  /* @__PURE__ */ jsx("span", {
80
- className: "px-2 text-right text-[13px] font-medium tabular-nums text-foreground",
80
+ className: "px-2 text-right font-medium tabular-nums text-foreground",
81
81
  children: formatMoney(lineTotalCents(line))
82
82
  }),
83
83
  menu.length > 0 ? /* @__PURE__ */ jsx(LineMenu, {
@@ -18,7 +18,7 @@ const NumberCell = ({ value, onCommit, format, parse, label, width = "w-full" })
18
18
  onChange: (event) => setDraft(event.target.value),
19
19
  onBlur: commit,
20
20
  onKeyDown: (event) => event.key === "Enter" && event.currentTarget.blur(),
21
- className: cn("h-7 rounded-md border border-transparent bg-transparent px-2 text-right text-[13px] tabular-nums text-foreground outline-none hover:border-border-strong focus:border-primary focus:bg-background focus:ring-2 focus:ring-primary/20", width)
21
+ className: cn("h-7 rounded-md border border-transparent bg-transparent px-2 text-right tabular-nums text-foreground outline-none hover:border-border-strong focus:border-primary focus:bg-background focus:ring-2 focus:ring-primary/20", width)
22
22
  });
23
23
  };
24
24
  //#endregion
@@ -5,7 +5,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
5
5
  const TotalsFooter = ({ lines, vatRate }) => {
6
6
  const totals = invoiceTotals(lines, vatRate);
7
7
  return /* @__PURE__ */ jsxs("dl", {
8
- className: "ml-auto grid w-64 grid-cols-[1fr_auto] gap-x-6 gap-y-1 px-2 pt-3 text-[13px] tabular-nums",
8
+ className: "ml-auto grid w-64 grid-cols-[1fr_auto] gap-x-6 gap-y-1 px-2 pt-3 tabular-nums",
9
9
  children: [
10
10
  /* @__PURE__ */ jsx("dt", {
11
11
  className: "text-muted-foreground",
@@ -32,7 +32,7 @@ const TotalsFooter = ({ lines, vatRate }) => {
32
32
  children: "Total"
33
33
  }),
34
34
  /* @__PURE__ */ jsx("dd", {
35
- className: "mt-1 border-t border-border pt-2 text-right text-[15px] font-semibold text-foreground",
35
+ className: "mt-1 border-t border-border pt-2 text-right text-[16px] font-semibold text-foreground",
36
36
  children: formatMoney(totals.totalCents)
37
37
  })
38
38
  ]
@@ -10,7 +10,7 @@ const AppRolesPicker = ({ roles, selected, grantable, disabled, onChange }) => /
10
10
  const locked = disabled || !grantable.has(role.name);
11
11
  return /* @__PURE__ */ jsxs("label", {
12
12
  title: locked && !disabled ? "You cannot give or take away this role" : void 0,
13
- className: cn("inline-flex items-center gap-1.5 text-[13px]", locked && "text-muted-foreground"),
13
+ className: cn("inline-flex items-center gap-1.5", locked && "text-muted-foreground"),
14
14
  children: [/* @__PURE__ */ jsx(Checkbox, {
15
15
  checked: held,
16
16
  label: role.label,
@@ -35,7 +35,7 @@ const SignUp = ({ token, preview, onDone }) => {
35
35
  },
36
36
  children: [
37
37
  /* @__PURE__ */ jsxs("p", {
38
- className: "text-[13px] text-muted-foreground",
38
+ className: "text-muted-foreground",
39
39
  children: [
40
40
  "Make your account for ",
41
41
  preview.email,
@@ -96,7 +96,7 @@ const InvitationPage = ({ token, onDone, signIn }) => {
96
96
  if (!preview) return /* @__PURE__ */ jsx(AuthLayout, {
97
97
  title: "Invitation",
98
98
  children: /* @__PURE__ */ jsxs("div", {
99
- className: "flex items-center justify-center gap-2 text-[13px] text-muted-foreground",
99
+ className: "flex items-center justify-center gap-2 text-muted-foreground",
100
100
  children: [/* @__PURE__ */ jsx(Spinner, {}), " Loading"]
101
101
  })
102
102
  });
@@ -107,7 +107,7 @@ const InvitationPage = ({ token, onDone, signIn }) => {
107
107
  title: `Join ${preview.organization.name}`,
108
108
  description,
109
109
  children: [/* @__PURE__ */ jsxs("p", {
110
- className: "mb-3 text-[13px] text-muted-foreground",
110
+ className: "mb-3 text-muted-foreground",
111
111
  children: [
112
112
  "This invitation is for ",
113
113
  preview.email,
@@ -62,7 +62,7 @@ const InviteForm = ({ current, onSent }) => {
62
62
  "aria-label": "Organization role",
63
63
  value: role,
64
64
  onChange: (event) => setRole(event.target.value),
65
- className: "h-8 rounded-md border border-border-strong bg-background px-2 text-[13px]",
65
+ className: "h-8 rounded-md border border-border-strong bg-background px-2",
66
66
  children: assignableOrganizationRoles(current).map((option) => /* @__PURE__ */ jsx("option", {
67
67
  value: option,
68
68
  children: organizationRoleLabels[option]
@@ -101,7 +101,7 @@ const PendingRow = ({ invitation, organizationId, onChanged }) => {
101
101
  /* @__PURE__ */ jsxs("span", {
102
102
  className: "min-w-0 flex-1",
103
103
  children: [/* @__PURE__ */ jsx("span", {
104
- className: "block truncate text-[13px] font-medium",
104
+ className: "block truncate font-medium",
105
105
  children: invitation.email
106
106
  }), /* @__PURE__ */ jsxs("span", {
107
107
  className: "block text-xs text-muted-foreground",
@@ -34,7 +34,7 @@ const MemberRow = ({ member, current, onChanged }) => {
34
34
  /* @__PURE__ */ jsxs("span", {
35
35
  className: "min-w-0 flex-1",
36
36
  children: [/* @__PURE__ */ jsxs("span", {
37
- className: "block truncate text-[13px] font-medium",
37
+ className: "block truncate font-medium",
38
38
  children: [member.name, self && " (you)"]
39
39
  }), /* @__PURE__ */ jsx("span", {
40
40
  className: "block truncate text-xs text-muted-foreground",
@@ -112,7 +112,7 @@ const MembersPage = ({ current }) => {
112
112
  onChanged: load
113
113
  }, `${member.id}/${member.role}/${member.appRoles.join()}`))
114
114
  }) : !error && /* @__PURE__ */ jsxs("div", {
115
- className: "flex items-center gap-2 text-[13px] text-muted-foreground",
115
+ className: "flex items-center gap-2 text-muted-foreground",
116
116
  children: [/* @__PURE__ */ jsx(Spinner, {}), " Loading"]
117
117
  })]
118
118
  })]
@@ -78,7 +78,7 @@ const HandOver = ({ organization, memberId }) => {
78
78
  "aria-label": "New owner",
79
79
  value: target,
80
80
  onChange: (event) => setTarget(event.target.value),
81
- className: "h-8 flex-1 rounded-md border border-border-strong bg-background px-2 text-[13px]",
81
+ className: "h-8 flex-1 rounded-md border border-border-strong bg-background px-2",
82
82
  children: [/* @__PURE__ */ jsx("option", {
83
83
  value: "",
84
84
  children: "Choose a member"
@@ -19,7 +19,7 @@ const OrganizationRow = ({ organization, current, busy, onOpen }) => /* @__PURE_
19
19
  children: [/* @__PURE__ */ jsxs("span", {
20
20
  className: "min-w-0 flex-1",
21
21
  children: [/* @__PURE__ */ jsx("span", {
22
- className: "block truncate text-[13px] font-medium",
22
+ className: "block truncate font-medium",
23
23
  children: organization.name
24
24
  }), /* @__PURE__ */ jsx("span", {
25
25
  className: "block text-xs text-muted-foreground",
@@ -133,7 +133,7 @@ const YourInvitations = () => {
133
133
  children: /* @__PURE__ */ jsx("ul", {
134
134
  className: "divide-y rounded-md border",
135
135
  children: invitations.map((invitation) => /* @__PURE__ */ jsxs("li", {
136
- className: "px-3 py-2.5 text-[13px]",
136
+ className: "px-3 py-2.5",
137
137
  children: [
138
138
  /* @__PURE__ */ jsx("span", {
139
139
  className: "font-medium",
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "0.19.5";
2
+ var version = "0.19.7";
3
3
  var protobase = { "pluginApi": 1 };
4
4
  //#endregion
5
5
  export { protobase, version };
@@ -30,7 +30,7 @@ const BeforeSignIn = ({ children }) => {
30
30
  ]);
31
31
  if (state.kind !== "signed-out" && state.kind !== "visitor") return children;
32
32
  if (!settled) return /* @__PURE__ */ jsxs("div", {
33
- className: "flex h-full min-h-48 items-center justify-center gap-2 text-[13px] text-muted-foreground",
33
+ className: "flex h-full min-h-48 items-center justify-center gap-2 text-muted-foreground",
34
34
  children: [/* @__PURE__ */ jsx(Spinner, {}), " Loading"]
35
35
  });
36
36
  if (!Around) return children;
@@ -20,7 +20,7 @@ const PluginGate = ({ ui, children }) => {
20
20
  const { loads, settled } = usePluginLoads(plugins, usePluginSource());
21
21
  const merged = useMemo(() => mergePlugins(ui, loads), [ui, loads]);
22
22
  if (!settled) return /* @__PURE__ */ jsxs("div", {
23
- className: "flex h-full min-h-48 items-center justify-center gap-2 text-[13px] text-muted-foreground",
23
+ className: "flex h-full min-h-48 items-center justify-center gap-2 text-muted-foreground",
24
24
  children: [/* @__PURE__ */ jsx(Spinner, {}), " Loading"]
25
25
  });
26
26
  return /* @__PURE__ */ jsx(ProjectUiContext.Provider, {
@@ -9,7 +9,7 @@ const PluginNotice = ({ off }) => {
9
9
  return /* @__PURE__ */ jsxs("div", {
10
10
  role: "region",
11
11
  "aria-label": "Plugins off",
12
- className: "flex items-start gap-3 border-b border-warning/40 bg-warning-soft px-4 py-2 text-[13px] text-warning-text",
12
+ className: "flex items-start gap-3 border-b border-warning/40 bg-warning-soft px-4 py-2 text-warning-text",
13
13
  children: [
14
14
  /* @__PURE__ */ jsx(Puzzle, {
15
15
  "aria-hidden": true,
@@ -10,7 +10,7 @@ const variants = {
10
10
  };
11
11
  const sizes = {
12
12
  sm: "h-7 px-2.5 text-xs gap-1.5",
13
- md: "h-8 px-3 text-[13px] gap-2"
13
+ md: "h-8 px-3 text-body gap-2"
14
14
  };
15
15
  /** A button's classes, for a link that looks like one. */
16
16
  const buttonClass = ({ variant = "secondary", size = "md" } = {}) => cn("inline-flex shrink-0 items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:opacity-60 disabled:cursor-default", variants[variant], sizes[size]);
@@ -19,11 +19,11 @@ const Dialog = ({ title, description, onClose, actions, children, wide = false }
19
19
  className: cn("outline-none max-h-[90vh] w-full overflow-y-auto rounded-lg border bg-background p-4 shadow-pop sm:p-5", wide ? "max-w-3xl" : "max-w-md"),
20
20
  children: [
21
21
  /* @__PURE__ */ jsx("h2", {
22
- className: "text-[15px] font-semibold",
22
+ className: "text-[16px] font-semibold",
23
23
  children: title
24
24
  }),
25
25
  description && /* @__PURE__ */ jsx("p", {
26
- className: "mt-1.5 text-[13px] text-muted-foreground",
26
+ className: "mt-1.5 text-muted-foreground",
27
27
  children: description
28
28
  }),
29
29
  children && /* @__PURE__ */ jsx("div", {
@@ -6,7 +6,7 @@ const Input = ({ leading, trailing, invalid, className, wrapperClassName, ...res
6
6
  children: [
7
7
  leading,
8
8
  /* @__PURE__ */ jsx("input", {
9
- className: cn("min-w-0 flex-1 bg-transparent text-[13px] text-foreground outline-none placeholder:text-faint-foreground", className),
9
+ className: cn("min-w-0 flex-1 bg-transparent text-body text-foreground outline-none placeholder:text-faint-foreground", className),
10
10
  ...rest
11
11
  }),
12
12
  trailing
@@ -46,7 +46,7 @@ const MenuSelect = ({ value, options, onChange, label }) => {
46
46
  "aria-haspopup": "menu",
47
47
  "aria-expanded": open,
48
48
  onClick: () => setOpen(!open),
49
- className: "inline-flex h-8 items-center gap-1.5 rounded-md border border-border-strong bg-background px-2.5 text-[13px] font-medium shadow-sm transition-colors hover:bg-muted pointer-coarse:h-11",
49
+ className: "inline-flex h-8 items-center gap-1.5 rounded-md border border-border-strong bg-background px-2.5 text-body font-medium shadow-sm transition-colors hover:bg-muted pointer-coarse:h-11",
50
50
  children: [
51
51
  current?.icon && /* @__PURE__ */ jsx(current.icon, { className: "size-3.5" }),
52
52
  current?.label ?? label,
@@ -56,7 +56,7 @@ const MenuSelect = ({ value, options, onChange, label }) => {
56
56
  role: "menu",
57
57
  "aria-label": label,
58
58
  onKeyDown,
59
- className: "absolute right-0 top-full z-30 mt-1 min-w-40 rounded-md border bg-background py-1 text-[13px] shadow-pop",
59
+ className: "absolute right-0 top-full z-30 mt-1 min-w-40 rounded-md border bg-background py-1 text-body shadow-pop",
60
60
  children: options.map((option, index) => /* @__PURE__ */ jsx("li", {
61
61
  role: "none",
62
62
  children: /* @__PURE__ */ jsxs("button", {
@@ -23,7 +23,7 @@ const ResponsiveDialog = ({ title, description, open, onClose, actions, children
23
23
  open: true,
24
24
  onClose,
25
25
  children: /* @__PURE__ */ jsxs("div", {
26
- className: "pt-3 text-[13px]",
26
+ className: "pt-3",
27
27
  children: [
28
28
  description && /* @__PURE__ */ jsx("p", {
29
29
  className: "text-muted-foreground",
@@ -8,7 +8,7 @@ const sizes = {
8
8
  },
9
9
  md: {
10
10
  group: "h-8",
11
- option: "px-3 text-[13px]"
11
+ option: "px-3 text-body"
12
12
  }
13
13
  };
14
14
  const Segmented = ({ value, options, onChange, label, size = "sm", iconOnly = false }) => /* @__PURE__ */ jsx("span", {
@@ -50,7 +50,7 @@ const Sheet = ({ title, open, onClose, children }) => {
50
50
  "aria-hidden": true
51
51
  }),
52
52
  /* @__PURE__ */ jsx("h2", {
53
- className: "text-[15px] font-semibold",
53
+ className: "text-[16px] font-semibold",
54
54
  children: title
55
55
  }),
56
56
  /* @__PURE__ */ jsx("button", {
@@ -28,7 +28,7 @@ const Textarea = ({ invalid, className, rows = 3, value, ...rest }) => {
28
28
  ref,
29
29
  rows,
30
30
  value,
31
- className: cn("block w-full resize-none overflow-hidden rounded-md border bg-background px-2.5 py-1.5 text-[13px] text-foreground shadow-sm outline-none placeholder:text-faint-foreground focus:border-primary focus:ring-2 focus:ring-primary/20", invalid ? "border-danger" : "border-border-strong", className),
31
+ className: cn("block w-full resize-none overflow-hidden rounded-md border bg-background px-2.5 py-1.5 text-body text-foreground shadow-sm outline-none placeholder:text-faint-foreground focus:border-primary focus:ring-2 focus:ring-primary/20", invalid ? "border-danger" : "border-border-strong", className),
32
32
  ...rest
33
33
  });
34
34
  };
@@ -15,7 +15,7 @@ const ActionRail = ({ actions }) => /* @__PURE__ */ jsxs("div", {
15
15
  className: cn("size-4 shrink-0 md:mt-0.5", tone === "danger" ? "text-danger-text" : "text-muted-foreground"),
16
16
  "aria-hidden": true
17
17
  }), /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("span", {
18
- className: cn("block text-[13px] font-medium", tone === "danger" ? "text-danger-text" : "text-foreground"),
18
+ className: cn("block font-medium", tone === "danger" ? "text-danger-text" : "text-foreground"),
19
19
  children: name
20
20
  }), description && /* @__PURE__ */ jsx("span", {
21
21
  className: "mt-0.5 hidden text-xs leading-snug text-muted-foreground md:block",
@@ -9,7 +9,7 @@ const Field = ({ label, required, help, example, error, conflict, wide, children
9
9
  /* @__PURE__ */ jsxs("div", {
10
10
  className: "mb-1.5 flex items-center gap-2",
11
11
  children: [/* @__PURE__ */ jsxs("label", {
12
- className: "text-[13px] font-medium text-foreground",
12
+ className: "font-medium text-foreground",
13
13
  children: [label, required && /* @__PURE__ */ jsx("span", {
14
14
  className: "ml-0.5 text-danger-text",
15
15
  "aria-label": "required",
@@ -6,7 +6,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  * screen.
7
7
  */
8
8
  const KeyFacts = ({ facts }) => /* @__PURE__ */ jsx("dl", {
9
- className: "grid grid-cols-2 gap-x-4 gap-y-5 text-[13px] sm:flex sm:flex-wrap sm:gap-x-10",
9
+ className: "grid grid-cols-2 gap-x-4 gap-y-5 sm:flex sm:flex-wrap sm:gap-x-10",
10
10
  children: facts.map(({ label, value, icon: Icon }) => /* @__PURE__ */ jsxs("div", {
11
11
  title: label,
12
12
  className: "flex min-w-0 flex-col gap-1.5",
@@ -20,7 +20,7 @@ const KeyFacts = ({ facts }) => /* @__PURE__ */ jsx("dl", {
20
20
  children: label
21
21
  })] }) : label
22
22
  }), /* @__PURE__ */ jsx("dd", {
23
- className: "min-w-0 break-words text-[15px] font-semibold text-foreground",
23
+ className: "min-w-0 break-words text-[16px] font-semibold text-foreground",
24
24
  children: value
25
25
  })]
26
26
  }, label))
@@ -2,7 +2,7 @@ import { ChevronRight } from "lucide-react";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  //#region src/record-view/record-sidebar.tsx
4
4
  const MetadataList = ({ rows }) => /* @__PURE__ */ jsx("dl", {
5
- className: "grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 text-[13px]",
5
+ className: "grid grid-cols-[auto_1fr] gap-x-4 gap-y-2",
6
6
  children: rows.map((row) => /* @__PURE__ */ jsxs("div", {
7
7
  className: "contents",
8
8
  children: [/* @__PURE__ */ jsx("dt", {
@@ -31,7 +31,7 @@ const RelatedRecords = ({ records, onNavigate }) => /* @__PURE__ */ jsx("ul", {
31
31
  children: record.kind
32
32
  }),
33
33
  /* @__PURE__ */ jsx("span", {
34
- className: "block truncate text-[13px] font-medium text-primary-text",
34
+ className: "block truncate font-medium text-primary-text",
35
35
  children: record.label
36
36
  }),
37
37
  record.meta && /* @__PURE__ */ jsx("span", {
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  /** A titled part of the record page; `actions` sit at the end of the title's line. */
4
4
  const Section = ({ title, help, actions, children }) => {
5
5
  const heading = /* @__PURE__ */ jsx("h2", {
6
- className: "text-[15px] font-semibold text-foreground",
6
+ className: "text-[16px] font-semibold text-foreground",
7
7
  children: title
8
8
  });
9
9
  return /* @__PURE__ */ jsxs("section", {
@@ -14,7 +14,7 @@ const Section = ({ title, help, actions, children }) => {
14
14
  children: [heading, actions]
15
15
  }) : heading,
16
16
  help && /* @__PURE__ */ jsx("p", {
17
- className: "mt-1 max-w-xl text-[13px] leading-relaxed text-muted-foreground",
17
+ className: "mt-1 max-w-xl leading-6 text-muted-foreground",
18
18
  children: help
19
19
  }),
20
20
  /* @__PURE__ */ jsx("div", {
@@ -6,7 +6,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  * site: what a record page's section shows on its read view. A wide row puts its value under the label.
7
7
  */
8
8
  const SpecTable = ({ rows }) => /* @__PURE__ */ jsx("dl", {
9
- className: "border-t border-border text-[13px]",
9
+ className: "border-t border-border",
10
10
  children: rows.map((row) => /* @__PURE__ */ jsxs("div", {
11
11
  className: cn("grid gap-x-4 border-b border-border py-2.5", row.wide ? "grid-cols-1 gap-y-1.5" : "grid-cols-[minmax(0,2fr)_minmax(0,3fr)]"),
12
12
  children: [/* @__PURE__ */ jsxs("dt", {