@peasant-labs/fairtrade 0.0.51 → 0.0.53

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 (118) hide show
  1. package/dist/lib/base.css +1 -1
  2. package/dist/lib/commons.js +544 -522
  3. package/dist/lib/components.css +1 -1
  4. package/dist/lib/share.js +2 -2
  5. package/dist/lib/tokens.css +2 -2
  6. package/dist/lib/tokens.json +2 -2
  7. package/dist/lib/types/AppSidebar.d.ts +9 -11
  8. package/dist/lib/types/Avatar.d.ts +2 -2
  9. package/dist/lib/types/Breadcrumb.d.ts +12 -5
  10. package/dist/lib/types/Dialog.d.ts +1 -1
  11. package/dist/lib/types/Input.d.ts +3 -3
  12. package/dist/lib/types/OverflowList.d.ts +1 -1
  13. package/dist/lib/types/RepoPicker.d.ts +3 -1
  14. package/dist/lib/types/Switch.d.ts +3 -3
  15. package/dist/lib/types/commons/Explore.d.ts +1 -1
  16. package/dist/lib/types/commons/types.d.ts +12 -0
  17. package/dist/lib/{ui-Do7A_I-0.js → ui-suNzomre.js} +1682 -1623
  18. package/dist/lib/ui.js +1 -1
  19. package/package.json +1 -1
  20. package/dist/lib/abnfDiagram-WEYOIA3C-D4LMNFIJ.js +0 -89
  21. package/dist/lib/arc-1xTxsoRi.js +0 -80
  22. package/dist/lib/architecture-WOLXFQ4H-c6RsZuzu.js +0 -3
  23. package/dist/lib/architectureDiagram-ZHVYKT53-DTINqD5R.js +0 -4145
  24. package/dist/lib/array-CApNbSU9.js +0 -6
  25. package/dist/lib/blockDiagram-RJAE7QA3-CUYHoR3g.js +0 -1946
  26. package/dist/lib/c4Diagram-XDPPPE54-Cdx6_DsI.js +0 -2990
  27. package/dist/lib/channel-DagAO2vE.js +0 -5
  28. package/dist/lib/chunk-2E7WHVMD-BzhgXW3b.js +0 -490
  29. package/dist/lib/chunk-2Q5K7J3B-DWNwIK5Y.js +0 -15
  30. package/dist/lib/chunk-4EMNKR2T-DhFrQz9k.js +0 -236
  31. package/dist/lib/chunk-55XCU76K-CI0GXDkJ.js +0 -61
  32. package/dist/lib/chunk-5VM5RSS4-BAQ-46g4.js +0 -5
  33. package/dist/lib/chunk-7S6XSTFO-CMt_p-O6.js +0 -1373
  34. package/dist/lib/chunk-AQDTSKZB-DrZccIQa.js +0 -1847
  35. package/dist/lib/chunk-DSNLSHJZ-CpA9d2CJ.js +0 -4044
  36. package/dist/lib/chunk-DUW6YSOI-C-tN4Kiv.js +0 -10
  37. package/dist/lib/chunk-EJLWFMJV-B30MNYvY.js +0 -75
  38. package/dist/lib/chunk-HAGFOTED-DMU2JNZM.js +0 -4487
  39. package/dist/lib/chunk-HNE4Q36P-BIA0n2gA.js +0 -363
  40. package/dist/lib/chunk-J5ZVWO5B-CA_-jk8G.js +0 -12
  41. package/dist/lib/chunk-JWPE2WC7-KRpHbrIX.js +0 -8
  42. package/dist/lib/chunk-LNGE3PJU-CMGaAEAh.js +0 -1513
  43. package/dist/lib/chunk-NGNAAXSQ-D7Dvct7J.js +0 -19774
  44. package/dist/lib/chunk-NQOKRVIF-MK9F46y3.js +0 -4258
  45. package/dist/lib/chunk-OYAV6JZA-B1yICcbU.js +0 -10
  46. package/dist/lib/chunk-UHW7PFBP-CLrOaA0y.js +0 -67
  47. package/dist/lib/chunk-VQ5W62QI-_ZR3gKe4.js +0 -26
  48. package/dist/lib/chunk-WQQL4CDK-DFtyhYZq.js +0 -693
  49. package/dist/lib/chunk-XXDRQBXY-uzyNBbgx.js +0 -9
  50. package/dist/lib/chunk-Y2CYZVJY-BYzrzvCI.js +0 -12
  51. package/dist/lib/chunk-YZO67HFG-D1jKt78p.js +0 -275
  52. package/dist/lib/chunk-ZAUX2LTX-7XO0Yj1z.js +0 -37
  53. package/dist/lib/chunk-ZCHMQSOR-CxoKltfF.js +0 -349
  54. package/dist/lib/classDiagram-v2-4MYWR3UA-BPvwhZqw.js +0 -3397
  55. package/dist/lib/cose-bilkent-JH36ORCC-Oj79uOIQ.js +0 -2250
  56. package/dist/lib/cynefin-EF2NZ3EQ-COX3NRum.js +0 -3
  57. package/dist/lib/cynefinDiagram-WF24UDRP-UzTptNAX.js +0 -349
  58. package/dist/lib/cytoscape.esm-0ojxgO9x.js +0 -18161
  59. package/dist/lib/dagre-NK4GIZVX-DWZr-NGm.js +0 -2356
  60. package/dist/lib/defaultLocale-BbgDuMnp.js +0 -201
  61. package/dist/lib/diagram-CBK3MWTC-CsyKuv-w.js +0 -525
  62. package/dist/lib/diagram-I5XIIV2D-DWY2JSPC.js +0 -134
  63. package/dist/lib/diagram-ODIL2UCW-DUptj0JZ.js +0 -301
  64. package/dist/lib/diagram-PFBEJUXE-N5XnIBqM.js +0 -447
  65. package/dist/lib/diagram-RJA3I4VV-B9XgohYo.js +0 -214
  66. package/dist/lib/diagram-TYUNFSNR-XnsJIeAd.js +0 -5084
  67. package/dist/lib/dist-AMlsjiDX.js +0 -59
  68. package/dist/lib/ebnfDiagram-V4P3TTPT-BssHqFox.js +0 -100
  69. package/dist/lib/elk-QONTBCTQ-DwmwqYgP.js +0 -47944
  70. package/dist/lib/erDiagram-KYQIGQAA-BQiXw1Tw.js +0 -1970
  71. package/dist/lib/eventmodeling-K75KTNOO-DDb--yMc.js +0 -3
  72. package/dist/lib/flowDiagram-IUGLLWBU-BEqqF1y2.js +0 -17
  73. package/dist/lib/ganttDiagram-R7GPNTJY-BWtGXxEF.js +0 -3094
  74. package/dist/lib/gitGraph-VSP46ZUC-BSwOaak_.js +0 -3
  75. package/dist/lib/gitGraphDiagram-PDYL7XHY-CHGNuGbk.js +0 -729
  76. package/dist/lib/graphlib-Dndp26xU.js +0 -1267
  77. package/dist/lib/info-OHQRW6UA-Dk06sZRe.js +0 -3
  78. package/dist/lib/infoDiagram-MVDRKAX5-Cdhxnjmi.js +0 -20
  79. package/dist/lib/init-Bwwdo3M6.js +0 -15
  80. package/dist/lib/ishikawaDiagram-HPEHV2GE-Dzhti-GJ.js +0 -719
  81. package/dist/lib/journeyDiagram-BOSHW7O7-C3_vsSjw.js +0 -884
  82. package/dist/lib/kanban-definition-FNSA4HC5-XsfCEsjn.js +0 -976
  83. package/dist/lib/katex-Dw0PnoPU.js +0 -21850
  84. package/dist/lib/line-C9krU3Sv.js +0 -34
  85. package/dist/lib/linear-Cvilv3OA.js +0 -289
  86. package/dist/lib/mermaid-parser.core-I7qQ_fxz.js +0 -638
  87. package/dist/lib/mermaid.core-UNHMAbBP.js +0 -1126
  88. package/dist/lib/mindmap-definition-6OY57UG3-CAua-JvB.js +0 -1011
  89. package/dist/lib/ordinal-C55HfHHp.js +0 -65
  90. package/dist/lib/packet-JDAUHWVQ-DZ-MKx4I.js +0 -3
  91. package/dist/lib/path-DNvJyUE8.js +0 -85
  92. package/dist/lib/pegDiagram-ECIUJNBX-BCxa_IO0.js +0 -94
  93. package/dist/lib/pie-XZMESJXO-DpCa-Nnq.js +0 -3
  94. package/dist/lib/pieDiagram-GNMPY74T-CE_C3dCB.js +0 -205
  95. package/dist/lib/quadrantDiagram-D57K4MC3-CDgzdMoL.js +0 -2001
  96. package/dist/lib/radar-ABXABTNO-BOVK7L9p.js +0 -3
  97. package/dist/lib/railroad-I3PHUGI6-B6spKM0Z.js +0 -3
  98. package/dist/lib/railroad-abnf-LNEFI6M7-DEWqfByZ.js +0 -3
  99. package/dist/lib/railroad-ebnf-DWYD2UWJ-CWRLtxHB.js +0 -3
  100. package/dist/lib/railroad-peg-JR7BVNR7-C-3NHSsk.js +0 -3
  101. package/dist/lib/railroadDiagram-Y72NRBL7-a8YVk8LT.js +0 -76
  102. package/dist/lib/requirementDiagram-EQYSW5RA-B9HolqxU.js +0 -2228
  103. package/dist/lib/rough.esm-a8mysczE.js +0 -1352
  104. package/dist/lib/sankeyDiagram-SY24JHO5-CLFMtMJG.js +0 -970
  105. package/dist/lib/sequenceDiagram-BLEHNHQU-B5wfSV85.js +0 -4253
  106. package/dist/lib/sizeCapture-INFHLROL-BWGCc9aa.js +0 -46
  107. package/dist/lib/src-Dcy0zUZH.js +0 -2153
  108. package/dist/lib/stateDiagram-v2-A6IESKWZ-C92vye4N.js +0 -2143
  109. package/dist/lib/swimlanes-B3ENRKFQ-B6-i-tPc.js +0 -4764
  110. package/dist/lib/swimlanesDiagram-AYQRV4AK-CbkBeql-.js +0 -28
  111. package/dist/lib/timeline-definition-JXYKGLGB-D2Ip4r72.js +0 -1073
  112. package/dist/lib/treeView-D4JQ5SDB-CFaKQ_2T.js +0 -3
  113. package/dist/lib/treemap-SAJKECNS-BQ6z7Z3g.js +0 -3
  114. package/dist/lib/usecaseDiagram-WPOLBNNX-BK1Anch1.js +0 -7190
  115. package/dist/lib/vennDiagram-Q3Y3IDCW-B6YTBqTS.js +0 -1880
  116. package/dist/lib/wardley-7MLQ67FV-DChYwu4i.js +0 -3
  117. package/dist/lib/wardleyDiagram-IVAIDKWA-D5I1qLUK.js +0 -645
  118. package/dist/lib/xychartDiagram-4URNHDU4-B6RXyhTO.js +0 -2218
package/dist/lib/share.js CHANGED
@@ -61,12 +61,12 @@ var p = {
61
61
  },
62
62
  rule: {
63
63
  $type: "color",
64
- $value: "#4f4a40",
64
+ $value: "#403d35",
65
65
  $extensions: { "fairtrade.theme": { light: "#b3ab96" } }
66
66
  },
67
67
  "rule-strong": {
68
68
  $type: "color",
69
- $value: "#857f72",
69
+ $value: "#767165",
70
70
  $extensions: { "fairtrade.theme": { light: "#7f7762" } }
71
71
  },
72
72
  "focus-ring": {
@@ -77,8 +77,8 @@
77
77
  --ink-3: #b3ad9f;
78
78
  --ink-4: #a19b8e;
79
79
  --ink-5: #615b50;
80
- --rule: #4f4a40;
81
- --rule-strong: #857f72;
80
+ --rule: #403d35;
81
+ --rule-strong: #767165;
82
82
  --focus-ring: #d6ae66;
83
83
  --amber: #d6ae66;
84
84
  --amber-bright: #ebc98c;
@@ -103,7 +103,7 @@
103
103
  },
104
104
  "rule": {
105
105
  "$type": "color",
106
- "$value": "#4f4a40",
106
+ "$value": "#403d35",
107
107
  "$extensions": {
108
108
  "fairtrade.theme": {
109
109
  "light": "#b3ab96"
@@ -112,7 +112,7 @@
112
112
  },
113
113
  "rule-strong": {
114
114
  "$type": "color",
115
- "$value": "#857f72",
115
+ "$value": "#767165",
116
116
  "$extensions": {
117
117
  "fairtrade.theme": {
118
118
  "light": "#7f7762"
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The shared app sidebar, in one order for every app: the brand mark with a collapse handle on the
3
- * column's edge, the shortcuts (search, the docs and community, the app's links that leave it), the
4
- * app's own pages, then the footer row (the account on the left, the settings gear and the theme
3
+ * column's edge, the app's own pages, then shortcuts (search, the docs and outside links)
4
+ * above the footer row (the account on the left, the settings gear and the theme
5
5
  * toggle on the right). A sticky resizable column on desktop
6
6
  * that collapses to an icon rail; a top bar plus an opaque drawer below 768px.
7
7
  * @param {AppSidebarProps} props
@@ -27,8 +27,7 @@ export function AppPage({ children, as: Tag, className, ...rest }: AppPageProps)
27
27
  * @property {string} [href] where the app lives. An app without an href is omitted, unless it has a tag.
28
28
  * @property {string} [tag] a short note after the label. With no href the entry is shown as text, not a link.
29
29
  * @property {boolean} [soon] a place that does not exist yet: shown as text, aria-disabled, with a 'soon' note
30
- * and no hover or press. The switcher always ends with community as soon unless
31
- * `apps` names a community entry of its own.
30
+ * and no hover or press. Community entries are hidden until that surface is available.
32
31
  * @property {string} [target] default '_blank': another app opens in a new tab.
33
32
  * @property {string} [rel] default 'noopener noreferrer' when the target is '_blank'.
34
33
  */
@@ -79,9 +78,9 @@ export function AppPage({ children, as: Tag, className, ...rest }: AppPageProps)
79
78
  * @property {string} [currentId] the id of the current item (aria-current="page").
80
79
  * @property {string} [homeHref] the brand links here.
81
80
  * @property {string} [brand] the brand's accessible name and tooltip, default 'peasant'.
82
- * @property {AppSidebarSearch} [search] the app's search, the first shortcut under the brand.
81
+ * @property {AppSidebarSearch} [search] the app's search, the first shortcut above the footer.
83
82
  * @property {AppSidebarItem[]} [elsewhere] the app's links that leave it (collectives online, from the local app),
84
- * listed in the shortcuts after the docs and community. An `external`
83
+ * listed in the shortcuts after the docs. An `external`
85
84
  * item in `groups` moves there too.
86
85
  * @property {string} [settingsHref] the app's settings: a gear in the footer, current when currentId is
87
86
  * 'settings'. A `settings` item in `groups` becomes the gear instead.
@@ -117,7 +116,7 @@ export function AppPage({ children, as: Tag, className, ...rest }: AppPageProps)
117
116
  * @property {import('react').ElementType} [as] the element, default 'div'.
118
117
  * @property {string} [className]
119
118
  */
120
- /** The app switcher's default entries, in order: the docs (community as soon follows by itself).
119
+ /** The app switcher's default entries, in order: the docs.
121
120
  * Online and local are never in a switcher, in any app. Consumers map their hrefs in.
122
121
  * @type {ReadonlyArray<Readonly<AppSidebarApp>>} */
123
122
  export const APP_SIDEBAR_APPS: ReadonlyArray<Readonly<AppSidebarApp>>;
@@ -140,8 +139,7 @@ export type AppSidebarApp = {
140
139
  tag?: string;
141
140
  /**
142
141
  * a place that does not exist yet: shown as text, aria-disabled, with a 'soon' note
143
- * and no hover or press. The switcher always ends with community as soon unless
144
- * `apps` names a community entry of its own.
142
+ * and no hover or press. Community entries are hidden until that surface is available.
145
143
  */
146
144
  soon?: boolean;
147
145
  /**
@@ -265,12 +263,12 @@ export type AppSidebarProps = {
265
263
  */
266
264
  brand?: string;
267
265
  /**
268
- * the app's search, the first shortcut under the brand.
266
+ * the app's search, the first shortcut above the footer.
269
267
  */
270
268
  search?: AppSidebarSearch;
271
269
  /**
272
270
  * the app's links that leave it (collectives online, from the local app),
273
- * listed in the shortcuts after the docs and community. An `external`
271
+ * listed in the shortcuts after the docs. An `external`
274
272
  * item in `groups` moves there too.
275
273
  */
276
274
  elsewhere?: AppSidebarItem[];
@@ -3,12 +3,12 @@
3
3
  */
4
4
  /**
5
5
  * a single avatar tile: initials, or a photo with the initials as the fallback beneath it.
6
- * the base .avatar is 18px (inline meta); size scales it up for standalone use.
6
+ * the base .avatar is 24px (inline identity); size scales it up for standalone use.
7
7
  *
8
8
  * @param {object} props
9
9
  * @param {string} props.name - the person's name; used as the accessible label and to derive initials when none are given.
10
10
  * @param {string} [props.initials] - explicit initials to render; defaults to the first letters of `name`.
11
- * @param {AvatarSize} [props.size] - one of 'sm' | 'md' | 'lg' (24 / 32 / 44px). omit for the bare 18px base.
11
+ * @param {AvatarSize} [props.size] - one of 'sm' | 'md' | 'lg' (24 / 32 / 44px). omit for the 24px base.
12
12
  * @param {string} [props.src] - optional photo url; when set the tile becomes an .av-img with the photo over the initials.
13
13
  * @param {boolean} [props.more] - render the amber "+N overflow" tile (.av-more); `initials` carries the "+5" text.
14
14
  * @param {string} [props.className] - extra class names appended after the avatar classes.
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @typedef {Object} CrumbItem
3
- * @property {string} label - the crumb text
4
- * @property {string} [href] - optional link target; when present the crumb renders as an <a>
3
+ * @property {string} label - the crumb text, preserving source capitalization
4
+ * @property {string} [href] - optional link target for an intermediate crumb
5
+ * @property {boolean} [chrome=false] - explicitly render this static chrome label lowercase
5
6
  * @property {React.ComponentType<{className?: string}>} [icon] - optional leading lucide icon component (e.g. icon={Folder})
6
7
  */
7
8
  /**
@@ -13,11 +14,13 @@
13
14
  * @param {Object} props
14
15
  * @param {CrumbItem[]} props.items - ordered crumbs from root to current; the last is the current page.
15
16
  * @param {string} [props.label='breadcrumb'] - aria-label for the nav landmark.
17
+ * @param {import('react').ElementType} [props.LinkComponent='a'] - router link for intermediate href items.
16
18
  * @returns {JSX.Element}
17
19
  */
18
- export default function Breadcrumb({ items, label }: {
20
+ export default function Breadcrumb({ items, label, LinkComponent }: {
19
21
  items: CrumbItem[];
20
22
  label?: string;
23
+ LinkComponent?: import("react").ElementType;
21
24
  }): JSX.Element;
22
25
  /**
23
26
  * @typedef {Object} StepItem
@@ -40,13 +43,17 @@ export function Steps({ steps }: {
40
43
  }): JSX.Element;
41
44
  export type CrumbItem = {
42
45
  /**
43
- * - the crumb text
46
+ * - the crumb text, preserving source capitalization
44
47
  */
45
48
  label: string;
46
49
  /**
47
- * - optional link target; when present the crumb renders as an <a>
50
+ * - optional link target for an intermediate crumb
48
51
  */
49
52
  href?: string;
53
+ /**
54
+ * - explicitly render this static chrome label lowercase
55
+ */
56
+ chrome?: boolean;
50
57
  /**
51
58
  * - optional leading lucide icon component (e.g. icon={Folder})
52
59
  */
@@ -9,4 +9,4 @@ export default function Dialog({ open, onClose, title, labelId, children, footer
9
9
  size?: string;
10
10
  className?: string;
11
11
  dismissible?: boolean;
12
- }): import("react").JSX.Element;
12
+ }): any;
@@ -59,7 +59,7 @@ export function Field({ label, lock: LockIcon, hint, error, id, children }: {
59
59
  * @param {string} [props.id] - input id; auto-generated + associated with the label when omitted.
60
60
  * @returns {JSX.Element}
61
61
  */
62
- export default function Input({ label, lock, hint, error, invalid, iconLeft: IconLeft, type, readOnly, disabled, value, defaultValue, onChange, id, ...rest }: {
62
+ export default function Input({ label, lock, hint, error, invalid, iconLeft: IconLeft, type, readOnly, disabled, value, defaultValue, onChange, id, className, ...rest }: {
63
63
  label?: React.ReactNode;
64
64
  lock?: React.ComponentType<{
65
65
  size?: number;
@@ -98,7 +98,7 @@ export default function Input({ label, lock, hint, error, invalid, iconLeft: Ico
98
98
  * @param {string} [props.id] - id; auto-generated + associated with the label when omitted.
99
99
  * @returns {JSX.Element}
100
100
  */
101
- export function Textarea({ label, lock, hint, error, invalid, rows, readOnly, disabled, value, defaultValue, onChange, id, ...rest }: {
101
+ export function Textarea({ label, lock, hint, error, invalid, rows, readOnly, disabled, value, defaultValue, onChange, id, className, ...rest }: {
102
102
  label?: React.ReactNode;
103
103
  lock?: React.ComponentType<{
104
104
  size?: number;
@@ -137,7 +137,7 @@ export function Textarea({ label, lock, hint, error, invalid, rows, readOnly, di
137
137
  * @param {string} [props.id] - id; auto-generated + associated with the label when omitted.
138
138
  * @returns {JSX.Element}
139
139
  */
140
- export function Select({ label, lock, hint, error, invalid, options, children, disabled, value, defaultValue, onChange, id, ...rest }: {
140
+ export function Select({ label, lock, hint, error, invalid, options, children, disabled, value, defaultValue, onChange, id, className, ...rest }: {
141
141
  label?: React.ReactNode;
142
142
  lock?: React.ComponentType<{
143
143
  size?: number;
@@ -14,4 +14,4 @@ export default function OverflowList({ items, limit, label, noun, empty, classNa
14
14
  noun?: [string, string];
15
15
  empty?: import("react").ReactNode;
16
16
  className?: string;
17
- }): string | number | bigint | boolean | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode>>;
17
+ }): string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode>> | import("react").JSX.Element;
@@ -7,10 +7,11 @@
7
7
  * @param {(diff: { add: string[], remove: string[] }) => void} props.onSave
8
8
  * @param {string} [props.title='link repositories']
9
9
  * @param {import('react').ReactNode} [props.description] - one line under the title.
10
+ * @param {boolean} [props.inline=false] - show the repository controls directly in the containing page.
10
11
  * @param {boolean} [props.saving=false] - the host's write is in flight.
11
12
  * @param {string} [props.error] - the host's write failed; shown in a role="alert" line.
12
13
  */
13
- export default function RepoPicker({ open, onClose, owners, initialSelected, onSave, title, description, saving, error }: {
14
+ export default function RepoPicker({ open, onClose, owners, initialSelected, onSave, title, description, saving, error, inline }: {
14
15
  open: boolean;
15
16
  onClose: () => void;
16
17
  owners: RepoPickerOwner[];
@@ -21,6 +22,7 @@ export default function RepoPicker({ open, onClose, owners, initialSelected, onS
21
22
  }) => void;
22
23
  title?: string;
23
24
  description?: import("react").ReactNode;
25
+ inline?: boolean;
24
26
  saving?: boolean;
25
27
  error?: string;
26
28
  }): import("react").JSX.Element;
@@ -4,14 +4,14 @@
4
4
  * @property {boolean} [defaultChecked=false] initial state when uncontrolled.
5
5
  * @property {(next: boolean) => void} [onChange] called with the next state on toggle.
6
6
  * @property {boolean} [disabled=false] real `disabled` attribute (dim, not focusable).
7
- * @property {boolean} [busy=false] sets aria-busy; pairs with an aria-live marker.
7
+ * @property {boolean} [busy=false] sets aria-busy and shows progress without moving the label.
8
8
  * @property {React.ReactNode} [label] text rendered in the associated .sw-label.
9
9
  * @property {string} [onText='on'] state-marker text shown when checked.
10
10
  * @property {string} [offText='off'] state-marker text shown when unchecked.
11
11
  * @property {React.ComponentType<{size?: number}>} [stateIcon] override icon for the
12
12
  * .sw-state marker; defaults to CircleCheck (on) / Circle (off).
13
13
  * @property {string} [id] id for the control; links the label's `for`.
14
- * @property {boolean} [stateMarker=true] show the on/off word beside the switch; off where the
14
+ * @property {boolean} [stateMarker=false] show the on/off word beside the switch; off where the
15
15
  * host already says the state (a settings row).
16
16
  */
17
17
  /**
@@ -36,7 +36,7 @@ export type SwitchProps = {
36
36
  */
37
37
  disabled?: boolean;
38
38
  /**
39
- * sets aria-busy; pairs with an aria-live marker.
39
+ * sets aria-busy and shows progress without moving the label.
40
40
  */
41
41
  busy?: boolean;
42
42
  /**
@@ -2,5 +2,5 @@
2
2
  * @typedef {import('./types.js').ExploreSurfaceProps} ExploreSurfaceProps
3
3
  */
4
4
  /** @param {ExploreSurfaceProps} props */
5
- export default function Explore({ data, className, onFiltersChange, onOpenTranscript, onOpenProfile, onOpenCollective, transcriptHref, profileHref, collectiveHref, headingLevel, }: ExploreSurfaceProps): import("react").JSX.Element;
5
+ export default function Explore({ data, className, title, resultsFooter, defaultLayout, onFiltersChange, onOpenTranscript, onOpenProfile, onOpenCollective, transcriptHref, profileHref, collectiveHref, headingLevel, }: ExploreSurfaceProps): import("react").JSX.Element;
6
6
  export type ExploreSurfaceProps = import("./types.js").ExploreSurfaceProps;
@@ -88,6 +88,18 @@ export type ExploreFilters = {
88
88
  export type ExploreSurfaceProps = {
89
89
  data: ExplorePayload;
90
90
  className?: string;
91
+ /**
92
+ * Browse title; null when the host already supplies its heading.
93
+ */
94
+ title?: import("react").ReactNode;
95
+ /**
96
+ * Additional session groups after the results and pagination, inside the result column.
97
+ */
98
+ resultsFooter?: import("react").ReactNode;
99
+ /**
100
+ * Initial result layout; grid by default. Users can still switch views.
101
+ */
102
+ defaultLayout?: "grid" | "list";
91
103
  onFiltersChange?: (filters: ExploreFilters) => void;
92
104
  onOpenTranscript?: (transcript: ExploreTranscriptPayload) => void;
93
105
  onOpenProfile?: (owner: ExploreOwnerPayload) => void;