@fluentui-copilot/react-prompt-starter 0.10.6 → 0.10.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 (44) hide show
  1. package/CHANGELOG.json +46 -1
  2. package/CHANGELOG.md +16 -2
  3. package/dist/index.d.ts +12 -5
  4. package/lib/components/PromptStarter/renderPromptStarter.js.map +1 -1
  5. package/lib/components/PromptStarterV2/PromptStarter/PromptStarter.types.js.map +1 -1
  6. package/lib/components/PromptStarterV2/PromptStarter/renderPromptStarter.js +1 -0
  7. package/lib/components/PromptStarterV2/PromptStarter/renderPromptStarter.js.map +1 -1
  8. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarter.js +8 -1
  9. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarter.js.map +1 -1
  10. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js +74 -12
  11. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js.map +1 -1
  12. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js +36 -7
  13. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js.map +1 -1
  14. package/lib/components/PromptStarterV2/PromptStarterList/PromptStarterList.types.js.map +1 -1
  15. package/lib/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js +1 -0
  16. package/lib/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js.map +1 -1
  17. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js +7 -3
  18. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js.map +1 -1
  19. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js +30 -4
  20. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js.map +1 -1
  21. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js +16 -4
  22. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js.map +1 -1
  23. package/lib/contexts/PromptStarterListContext.js.map +1 -1
  24. package/lib-commonjs/components/PromptStarter/renderPromptStarter.js.map +1 -1
  25. package/lib-commonjs/components/PromptStarterV2/PromptStarter/PromptStarter.types.js.map +1 -1
  26. package/lib-commonjs/components/PromptStarterV2/PromptStarter/renderPromptStarter.js +1 -0
  27. package/lib-commonjs/components/PromptStarterV2/PromptStarter/renderPromptStarter.js.map +1 -1
  28. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarter.js +8 -1
  29. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarter.js.map +1 -1
  30. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js +117 -13
  31. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js.map +1 -1
  32. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js +36 -7
  33. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js.map +1 -1
  34. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/PromptStarterList.types.js.map +1 -1
  35. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js +1 -0
  36. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js.map +1 -1
  37. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js +7 -3
  38. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js.map +1 -1
  39. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js +41 -4
  40. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js.map +1 -1
  41. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js +16 -4
  42. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js.map +1 -1
  43. package/lib-commonjs/contexts/PromptStarterListContext.js.map +1 -1
  44. package/package.json +12 -12
@@ -21,6 +21,7 @@ const promptStarterClassNames = {
21
21
  root: 'fai-PromptStarter',
22
22
  primaryAction: 'fai-PromptStarter__primaryAction',
23
23
  icon: 'fai-PromptStarter__icon',
24
+ category: 'fai-PromptStarter__category',
24
25
  prompt: 'fai-PromptStarter__prompt',
25
26
  reasonMarker: 'fai-PromptStarter__reasonMarker',
26
27
  actions: 'fai-PromptStarter__actions'
@@ -39,9 +40,10 @@ const useStyles = (0, _reactcomponents.__styles)({
39
40
  Bw0ie65: 0,
40
41
  Br312pm: 0,
41
42
  Beweih1: "f1eb8yyf",
42
- mc9l5x: "f22iagw",
43
- Beiy3e4: "f1vx9l62",
44
43
  qhf8xq: "f10pi13n",
44
+ mc9l5x: "f13qh94s",
45
+ Budl1dq: "fwggfk1",
46
+ v29qe6: "f1wv14k0",
45
47
  Beyfa6y: 0,
46
48
  Bbmb7ep: 0,
47
49
  Btl43ni: 0,
@@ -56,7 +58,8 @@ const useStyles = (0, _reactcomponents.__styles)({
56
58
  "f1o700av",
57
59
  "fes3tcz"
58
60
  ],
59
- Belr9w4: "fylz90v",
61
+ i8kkvl: "f6ave1s",
62
+ Belr9w4: "f1wn3y0l",
60
63
  Byoj8tv: 0,
61
64
  uwmqm3: 0,
62
65
  z189sj: 0,
@@ -164,7 +167,27 @@ const useStyles = (0, _reactcomponents.__styles)({
164
167
  icon: {
165
168
  mc9l5x: "f22iagw",
166
169
  Bt984gj: "f122n59",
167
- sshi5w: "fntfeoj"
170
+ sshi5w: "fntfeoj",
171
+ nk6f5a: 0,
172
+ Ijaq50: 0,
173
+ h3tjnc: "fm1owph",
174
+ Bw0ie65: 0,
175
+ Br312pm: 0,
176
+ Beweih1: "f12k0sjh"
177
+ },
178
+ category: {
179
+ mc9l5x: "f22iagw",
180
+ Bt984gj: "f122n59",
181
+ Bahqtrf: "fk6fouc",
182
+ Be2twd7: "fkhj508",
183
+ Bhrd7zp: "fl43uef",
184
+ Bg96gwp: "f1i3iumi",
185
+ nk6f5a: 0,
186
+ Ijaq50: 0,
187
+ h3tjnc: "fm1owph",
188
+ Bw0ie65: 0,
189
+ Br312pm: 0,
190
+ Beweih1: "f14q5zaz"
168
191
  },
169
192
  actions: {
170
193
  jrapky: 0,
@@ -190,6 +213,13 @@ const useStyles = (0, _reactcomponents.__styles)({
190
213
  Bkqvd7p: 0,
191
214
  Bi2q7bf: "f1964ud6"
192
215
  },
216
+ actionsWithCategory: {
217
+ De3pzq: "fxugw4r",
218
+ E5pizo: [
219
+ "f1u7pq1e",
220
+ "f1pdyzui"
221
+ ]
222
+ },
193
223
  prompt: {
194
224
  Bahqtrf: "fk6fouc",
195
225
  Be2twd7: "fkhj508",
@@ -198,9 +228,24 @@ const useStyles = (0, _reactcomponents.__styles)({
198
228
  mc9l5x: "f1rvi9lw",
199
229
  Fd1uvx: "fpfc2by",
200
230
  Bh9c35c: "f1lvsx7g",
201
- Bmxbyg5: "f1sil6mw"
231
+ Bmxbyg5: "f1sil6mw",
232
+ nk6f5a: 0,
233
+ Ijaq50: 0,
234
+ h3tjnc: "f1daok31",
235
+ Bw0ie65: 0,
236
+ Br312pm: 0,
237
+ Beweih1: "f1eb8yyf"
238
+ },
239
+ promptNoReasonMarker: {
240
+ Bh9c35c: "f197wrh9"
202
241
  },
203
242
  reasonMarker: {
243
+ nk6f5a: 0,
244
+ Ijaq50: 0,
245
+ h3tjnc: "f17e42vn",
246
+ Bw0ie65: 0,
247
+ Br312pm: 0,
248
+ Beweih1: "f1eb8yyf",
204
249
  Bahqtrf: "fk6fouc",
205
250
  Be2twd7: "f13mqy1h",
206
251
  Bhrd7zp: "figsok6",
@@ -220,9 +265,10 @@ const useStyles = (0, _reactcomponents.__styles)({
220
265
  p: -1
221
266
  }
222
267
  ],
223
- ".f22iagw{display:flex;}",
224
- ".f1vx9l62{flex-direction:column;}",
225
268
  ".f10pi13n{position:relative;}",
269
+ ".f13qh94s{display:grid;}",
270
+ ".fwggfk1{grid-template-columns:max-content 1fr;}",
271
+ ".f1wv14k0{grid-auto-rows:max-content 1fr max-content;}",
226
272
  [
227
273
  ".f14w4nd{border-radius:28px;}",
228
274
  {
@@ -236,7 +282,8 @@ const useStyles = (0, _reactcomponents.__styles)({
236
282
  ".f1s6fcnf{outline-style:none;}",
237
283
  ".f1o700av{text-align:left;}",
238
284
  ".fes3tcz{text-align:right;}",
239
- ".fylz90v{row-gap:var(--spacingHorizontalS);}",
285
+ ".f6ave1s{column-gap:var(--spacingHorizontalMNudge);}",
286
+ ".f1wn3y0l{row-gap:var(--spacingVerticalS);}",
240
287
  [
241
288
  ".fq88wcj{padding:var(--spacingVerticalL) var(--spacingHorizontalL);}",
242
289
  {
@@ -287,8 +334,36 @@ const useStyles = (0, _reactcomponents.__styles)({
287
334
  p: -1
288
335
  }
289
336
  ],
337
+ ".f22iagw{display:flex;}",
290
338
  ".f122n59{align-items:center;}",
291
339
  ".fntfeoj{min-height:var(--spacingVerticalXXL);}",
340
+ [
341
+ ".fm1owph{grid-row:1;}",
342
+ {
343
+ p: -1
344
+ }
345
+ ],
346
+ [
347
+ ".f12k0sjh{grid-column:1/2;}",
348
+ {
349
+ p: -1
350
+ }
351
+ ],
352
+ ".fkhj508{font-size:var(--fontSizeBase300);}",
353
+ ".fl43uef{font-weight:var(--fontWeightSemibold);}",
354
+ ".f1i3iumi{line-height:var(--lineHeightBase300);}",
355
+ [
356
+ ".fm1owph{grid-row:1;}",
357
+ {
358
+ p: -1
359
+ }
360
+ ],
361
+ [
362
+ ".f14q5zaz{grid-column:2/3;}",
363
+ {
364
+ p: -1
365
+ }
366
+ ],
292
367
  [
293
368
  ".foizga4{margin:var(--spacingVerticalL) var(--spacingHorizontalL) var(--spacingVerticalNone) var(--spacingHorizontalNone);}",
294
369
  {
@@ -320,13 +395,37 @@ const useStyles = (0, _reactcomponents.__styles)({
320
395
  p: -1
321
396
  }
322
397
  ],
323
- ".fkhj508{font-size:var(--fontSizeBase300);}",
324
- ".fl43uef{font-weight:var(--fontWeightSemibold);}",
325
- ".f1i3iumi{line-height:var(--lineHeightBase300);}",
398
+ ".f1u7pq1e{box-shadow:-12px 0 12px 0 var(--colorNeutralBackground1);}",
399
+ ".f1pdyzui{box-shadow:12px 0 12px 0 var(--colorNeutralBackground1);}",
326
400
  ".f1rvi9lw{display:-webkit-box;}",
327
401
  ".fpfc2by{-webkit-box-orient:vertical;}",
328
402
  ".f1lvsx7g{-webkit-line-clamp:2;}",
329
403
  ".f1sil6mw{overflow-y:hidden;}",
404
+ [
405
+ ".f1daok31{grid-row:2;}",
406
+ {
407
+ p: -1
408
+ }
409
+ ],
410
+ [
411
+ ".f1eb8yyf{grid-column:1/3;}",
412
+ {
413
+ p: -1
414
+ }
415
+ ],
416
+ ".f197wrh9{-webkit-line-clamp:3;}",
417
+ [
418
+ ".f17e42vn{grid-row:3;}",
419
+ {
420
+ p: -1
421
+ }
422
+ ],
423
+ [
424
+ ".f1eb8yyf{grid-column:1/3;}",
425
+ {
426
+ p: -1
427
+ }
428
+ ],
330
429
  ".f13mqy1h{font-size:var(--fontSizeBase100);}",
331
430
  ".figsok6{font-weight:var(--fontWeightRegular);}",
332
431
  ".fcpl73t{line-height:var(--lineHeightBase100);}"
@@ -360,6 +459,7 @@ const useStyles = (0, _reactcomponents.__styles)({
360
459
  });
361
460
  const useSingleColumnStyles = (0, _reactcomponents.__styles)({
362
461
  primaryAction: {
462
+ mc9l5x: "f22iagw",
363
463
  Beyfa6y: 0,
364
464
  Bbmb7ep: 0,
365
465
  Btl43ni: 0,
@@ -432,6 +532,7 @@ const useSingleColumnStyles = (0, _reactcomponents.__styles)({
432
532
  }
433
533
  }, {
434
534
  d: [
535
+ ".f22iagw{display:flex;}",
435
536
  [
436
537
  ".f1jxijnj{border-radius:var(--borderRadius2XL);}",
437
538
  {
@@ -505,12 +606,15 @@ const usePromptStarterStyles_unstable = (state)=>{
505
606
  if (state.icon) {
506
607
  state.icon.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.icon, styles.icon, state.icon.className);
507
608
  }
508
- state.prompt.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.prompt, styles.prompt, isSingleColumn && singleColumnStyles.prompt, state.prompt.className);
609
+ if (state.category) {
610
+ state.category.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.category, styles.category, state.category.className);
611
+ }
612
+ state.prompt.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.prompt, styles.prompt, !state.reasonMarker && styles.promptNoReasonMarker, isSingleColumn && singleColumnStyles.prompt, state.prompt.className);
509
613
  if (state.reasonMarker) {
510
614
  state.reasonMarker.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.reasonMarker, styles.reasonMarker, state.reasonMarker.className);
511
615
  }
512
616
  if (state.actions) {
513
- state.actions.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.actions, styles.actions, state.actions.className);
617
+ state.actions.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.actions, styles.actions, state.category && styles.actionsWithCategory, state.actions.className);
514
618
  }
515
619
  return state;
516
620
  }; //# sourceMappingURL=usePromptStarterStyles.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["usePromptStarterStyles.styles.ts"],"sourcesContent":["import {\n makeStyles,\n makeResetStyles,\n mergeClasses,\n shorthands,\n typographyStyles,\n createFocusOutlineStyle,\n} from '@fluentui/react-components';\nimport { tokens } from '@fluentui-copilot/tokens';\nimport type { PromptStarterSlots, PromptStarterState } from './PromptStarter.types';\nimport type { SlotClassNames } from '@fluentui/react-components';\n\nexport const promptStarterClassNames: SlotClassNames<PromptStarterSlots> = {\n root: 'fai-PromptStarter',\n primaryAction: 'fai-PromptStarter__primaryAction',\n icon: 'fai-PromptStarter__icon',\n prompt: 'fai-PromptStarter__prompt',\n reasonMarker: 'fai-PromptStarter__reasonMarker',\n actions: 'fai-PromptStarter__actions',\n};\n\nconst useRootResetStyles = makeResetStyles({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n gridTemplateRows: 'max-content auto',\n minWidth: '214px',\n\n // Apply styles to the primary action on hover / active states\n '&:hover': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n '&:active': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow8,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n\n // Hide actions when not focused or hovered\n ':not(:focus-within):not(:hover)': {\n [`& .${promptStarterClassNames.actions}`]: {\n clip: 'rect(0px, 0px, 0px, 0px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0px',\n width: '1px',\n position: 'absolute',\n opacity: 0,\n },\n },\n});\n\nconst useStyles = makeStyles({\n primaryAction: {\n gridRow: '1 / 3',\n gridColumn: '1 / 3',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n borderRadius: '28px',\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground2,\n fontFamily: tokens.fontFamilyBase,\n cursor: 'pointer',\n outlineStyle: 'none',\n textAlign: 'left',\n rowGap: tokens.spacingHorizontalS,\n padding: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}`,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke2),\n ...createFocusOutlineStyle({ style: { outlineRadius: '28px' } }),\n },\n\n primaryActionHovered: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n\n icon: {\n display: 'flex',\n alignItems: 'center',\n minHeight: tokens.spacingVerticalXXL,\n },\n actions: {\n margin: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}\n ${tokens.spacingVerticalNone} ${tokens.spacingHorizontalNone}`,\n position: 'relative',\n gridRow: '1 / 2',\n gridColumn: '2 / 3',\n\n opacity: 1,\n transition: `opacity ${tokens.durationFast} ${tokens.curveLinear}`,\n },\n prompt: {\n ...typographyStyles.body1Strong,\n\n // Truncate text after two lines.\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': '2',\n overflowY: 'hidden',\n },\n reasonMarker: {\n ...typographyStyles.caption2,\n },\n});\n\nconst useSingleColumnStyles = makeStyles({\n primaryAction: {\n borderRadius: tokens.borderRadius2XL,\n ...createFocusOutlineStyle({ style: { outlineRadius: tokens.borderRadius2XL } }),\n },\n prompt: {\n ...typographyStyles.caption1Strong,\n },\n});\n\nexport const usePromptStarterStyles_unstable = (state: PromptStarterState): PromptStarterState => {\n 'use no memo';\n\n const { isSingleColumn } = state;\n\n const styles = useStyles();\n const rootResetStyles = useRootResetStyles();\n const singleColumnStyles = useSingleColumnStyles();\n state.root.className = mergeClasses(promptStarterClassNames.root, rootResetStyles, state.root.className);\n state.primaryAction.className = mergeClasses(\n promptStarterClassNames.primaryAction,\n styles.primaryAction,\n isSingleColumn && singleColumnStyles.primaryAction,\n state.primaryAction.className,\n );\n if (state.icon) {\n state.icon.className = mergeClasses(promptStarterClassNames.icon, styles.icon, state.icon.className);\n }\n state.prompt.className = mergeClasses(\n promptStarterClassNames.prompt,\n styles.prompt,\n isSingleColumn && singleColumnStyles.prompt,\n state.prompt.className,\n );\n if (state.reasonMarker) {\n state.reasonMarker.className = mergeClasses(\n promptStarterClassNames.reasonMarker,\n styles.reasonMarker,\n state.reasonMarker.className,\n );\n }\n if (state.actions) {\n state.actions.className = mergeClasses(promptStarterClassNames.actions, styles.actions, state.actions.className);\n }\n\n return state;\n};\n"],"names":["promptStarterClassNames","root","primaryAction","icon","prompt","reasonMarker","actions","useRootResetStyles","makeResetStyles","display","__styles","gridTemplateColumns","gridTemplateRows","minWidth","h3tjnc","Bw0ie65","boxShadow","transform","transition","Beyfa6y","Bbmb7ep","Bahqtrf","Bceei9c","oeaueh","clip","height","margin","overflow","padding","width","position","opacity","ibv6hh","icvyot","vrafjx","useStyles","makeStyles","gridRow","gridColumn","flexDirection","borderRadius","backgroundColor","color","fontFamily","tokens","fontFamilyBase","cursor","outlineStyle","textAlign","rowGap","spacingHorizontalS","shorthands","border","strokeWidthThin","createFocusOutlineStyle","style","Boxcth7","primaryActionHovered","Blkhhs4","alignItems","minHeight","clg4pj","Bkh64rk","typographyStyles","E5pizo","Cwk7ip","B3o57yi","Bmy1vo4","useSingleColumnStyles","Frg6f3","t21cq0","B6of3ja","usePromptStarterStyles_unstable","B74szlk","qhf8xq","isSingleColumn","nk6f5a","styles","Ijaq50","rootResetStyles","singleColumnStyles","state","Beweih1","Bn62ygk","Bkqvd7p","Bi2q7bf","Be2twd7"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAYaA,uBAAAA;eAAAA;;;;;;iCANY;AAMlB,MAAMA,0BAA8D;UACzEC;mBACAC;UACAC;YACAC;kBACAC;aACAC;AACF;AAEA,MAAMC,qBAAqBC,IAAAA,8BAAAA,EAAAA,YAAgB,MAAA;IAAA;IAAA;IAAA;IAAA;CAAA;MACzCC,YAASC,IAAAA,yBAAA,EAAA;mBACTC;QACAC,QAAAA;QACAC,QAAAA;QAEAC,QAAA;QACAC,SAAA;iBACO;iBACHC;gBACAC;iBACAC;gBACF;QACFC,SAAA;QACAC,SAAA;iBACO;iBACHJ;gBACAC;gBACAC;gBACF;QACFG,SAAA;QAEAC,SAAA;QACAC,QAAA;gBACI;YAAG;YAAEvB;SAAAA;iBACLwB;iBACAC;gBACAC;gBACAC;gBACAC;iBACAC;iBACAC;iBACAC;YAAAA;YAAS;SAAA;iBACX;QACFC,QAAA;YAAA;YAAA;SAAA;QACFC,QAAA;QAEAC,QAAMC;YAAAA;YAAYC;SAAW;QAC3BlC,QAAAA;gBACEmC;YAAAA;YAAS;SAAA;gBACTC;gBACA7B;YAAAA;YAAS;SAAA;iBACT8B;gBACAT;YAAAA;YAAU;SAAA;iBACVU;iBACAC;iBACAC;iBACAC;YAAAA;YAAYC;SAAOC;gBACnBC;iBACAC;YAAAA;YAAc;SAAA;iBACdC;iBACAC;YAAAA;YAAeC;SAAAA;iBACftB;iBACGuB;YAAAA;YAAWC;SAAcC;iBACzBC;iBAA0BC;;iBAA+B;gBAAI;QAClEC,SAAA;QAEAC,SAAAA;gBACEzC;iBACAC;iBACAC;QACFwC,SAAA;QAEAvD,SAAM;gBACJM;gBACAkD;gBACAC;QACFC,QAAA;QACAvD,SAAS;iBACPoB;iBACS;iBACTI;gBACAO;gBACAC;iBAEAP;gBACAb;QACF4C,SAAA;QACA1D,QAAQ;gBACH2D;iBAEH;YAAA;YAAA;SAAA;iBACAtD;gBACA;YAAA;YAAA;SAAsB;;0BAEX;QACbuD,QAAA;QACA3D,SAAAA;iBACK0D;QACLE,QAAA;QACFC,SAAA;QAEAC,SAAMC;QACJlE,SAAAA;iBACEsC;;;;iBAC4E;gBAAI;;aAElFpC;gBACK2D;QACLM,QAAA;QACFC,QAAA;QAEAC,SAAaC;QACXC,SAAA;YAAA;YAAA;SAAA;QAEAC,QAAQC;QAERC,QAAMC;QACNC,QAAMC;QACNjE,QAAMkE;QACNC,SAAMhF;QACNgF,SAAM/E;QAMNgF,SAAID;gBACFA;QACFE,SAAA;QACAF,QAAM7E;QAMN8D,SAAIe;iBACFA;QAKFG,SAAA;QACAC,SAAIJ;;YAEJ;QAEA5D,SAAO4D;QACPK,SAAA"}
1
+ {"version":3,"sources":["usePromptStarterStyles.styles.ts"],"sourcesContent":["import {\n makeStyles,\n makeResetStyles,\n mergeClasses,\n shorthands,\n typographyStyles,\n createFocusOutlineStyle,\n} from '@fluentui/react-components';\nimport { tokens } from '@fluentui-copilot/tokens';\nimport type { PromptStarterSlots, PromptStarterState } from './PromptStarter.types';\nimport type { SlotClassNames } from '@fluentui/react-components';\n\nexport const promptStarterClassNames: SlotClassNames<PromptStarterSlots> = {\n root: 'fai-PromptStarter',\n primaryAction: 'fai-PromptStarter__primaryAction',\n icon: 'fai-PromptStarter__icon',\n category: 'fai-PromptStarter__category',\n prompt: 'fai-PromptStarter__prompt',\n reasonMarker: 'fai-PromptStarter__reasonMarker',\n actions: 'fai-PromptStarter__actions',\n};\n\nconst useRootResetStyles = makeResetStyles({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n gridTemplateRows: 'max-content auto',\n minWidth: '214px',\n\n // Apply styles to the primary action on hover / active states\n '&:hover': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n '&:active': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow8,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n\n // Hide actions when not focused or hovered\n ':not(:focus-within):not(:hover)': {\n [`& .${promptStarterClassNames.actions}`]: {\n clip: 'rect(0px, 0px, 0px, 0px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0px',\n width: '1px',\n position: 'absolute',\n opacity: 0,\n },\n },\n});\n\nconst useStyles = makeStyles({\n primaryAction: {\n gridRow: '1 / 3',\n gridColumn: '1 / 3',\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: 'max-content 1fr',\n gridAutoRows: 'max-content 1fr max-content',\n borderRadius: '28px',\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground2,\n fontFamily: tokens.fontFamilyBase,\n cursor: 'pointer',\n outlineStyle: 'none',\n textAlign: 'left',\n columnGap: tokens.spacingHorizontalMNudge,\n rowGap: tokens.spacingVerticalS,\n padding: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}`,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke2),\n ...createFocusOutlineStyle({ style: { outlineRadius: '28px' } }),\n },\n\n primaryActionHovered: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n\n icon: {\n display: 'flex',\n alignItems: 'center',\n minHeight: tokens.spacingVerticalXXL,\n gridRow: 1,\n gridColumn: '1 / 2',\n },\n category: {\n display: 'flex',\n alignItems: 'center',\n ...typographyStyles.body1Strong,\n\n gridRow: 1,\n gridColumn: '2 / 3',\n },\n actions: {\n margin: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}\n ${tokens.spacingVerticalNone} ${tokens.spacingHorizontalNone}`,\n position: 'relative',\n gridRow: '1 / 2',\n gridColumn: '2 / 3',\n\n opacity: 1,\n transition: `opacity ${tokens.durationFast} ${tokens.curveLinear}`,\n },\n actionsWithCategory: {\n // Add a background and gradient fade to truncate the title if applicable\n backgroundColor: tokens.colorNeutralBackground1,\n\n boxShadow: `-12px 0 12px 0 ${tokens.colorNeutralBackground1}`,\n },\n prompt: {\n ...typographyStyles.body1Strong,\n\n // Truncate text after two lines.\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': '2',\n overflowY: 'hidden',\n gridRow: '2',\n gridColumn: '1 / 3',\n },\n promptNoReasonMarker: {\n // Truncate text after three lines when no reason marker is present.\n '-webkit-line-clamp': '3',\n },\n reasonMarker: {\n gridRow: '3',\n gridColumn: '1 / 3',\n ...typographyStyles.caption2,\n },\n});\n\nconst useSingleColumnStyles = makeStyles({\n primaryAction: {\n display: 'flex',\n borderRadius: tokens.borderRadius2XL,\n ...createFocusOutlineStyle({ style: { outlineRadius: tokens.borderRadius2XL } }),\n },\n prompt: {\n ...typographyStyles.caption1Strong,\n },\n});\n\nexport const usePromptStarterStyles_unstable = (state: PromptStarterState): PromptStarterState => {\n 'use no memo';\n\n const { isSingleColumn } = state;\n\n const styles = useStyles();\n const rootResetStyles = useRootResetStyles();\n const singleColumnStyles = useSingleColumnStyles();\n state.root.className = mergeClasses(promptStarterClassNames.root, rootResetStyles, state.root.className);\n state.primaryAction.className = mergeClasses(\n promptStarterClassNames.primaryAction,\n styles.primaryAction,\n isSingleColumn && singleColumnStyles.primaryAction,\n state.primaryAction.className,\n );\n if (state.icon) {\n state.icon.className = mergeClasses(promptStarterClassNames.icon, styles.icon, state.icon.className);\n }\n if (state.category) {\n state.category.className = mergeClasses(\n promptStarterClassNames.category,\n styles.category,\n state.category.className,\n );\n }\n state.prompt.className = mergeClasses(\n promptStarterClassNames.prompt,\n styles.prompt,\n !state.reasonMarker && styles.promptNoReasonMarker,\n isSingleColumn && singleColumnStyles.prompt,\n state.prompt.className,\n );\n if (state.reasonMarker) {\n state.reasonMarker.className = mergeClasses(\n promptStarterClassNames.reasonMarker,\n styles.reasonMarker,\n state.reasonMarker.className,\n );\n }\n if (state.actions) {\n state.actions.className = mergeClasses(\n promptStarterClassNames.actions,\n styles.actions,\n state.category && styles.actionsWithCategory,\n state.actions.className,\n );\n }\n\n return state;\n};\n"],"names":["promptStarterClassNames","root","primaryAction","icon","category","prompt","reasonMarker","actions","useRootResetStyles","makeResetStyles","display","__styles","gridTemplateColumns","gridTemplateRows","minWidth","h3tjnc","Bw0ie65","boxShadow","transform","transition","v29qe6","Beyfa6y","sj55zd","Bahqtrf","Bceei9c","clip","height","margin","overflow","padding","width","position","opacity","Bekrc4i","Bn0qgzm","ibv6hh","useStyles","makeStyles","gridRow","gridColumn","gridAutoRows","borderRadius","backgroundColor","color","fontFamily","cursor","outlineStyle","textAlign","columnGap","rowGap","spacingVerticalS","shorthands","border","strokeWidthThin","createFocusOutlineStyle","style","Boxcth7","primaryActionHovered","Blkhhs4","alignItems","minHeight","B6dhp37","typographyStyles","Bkh64rk","spacingVerticalNone","Bz10aip","actionsWithCategory","Bkqvd7p","overflowY","promptNoReasonMarker","Bhrd7zp","Bg96gwp","nk6f5a","useSingleColumnStyles","Frg6f3","B74szlk","qhf8xq","Ijaq50","isSingleColumn","styles","Br312pm","rootResetStyles","Beweih1","singleColumnStyles","state","Cwk7ip","Bmy1vo4","className","De3pzq","Be2twd7"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAYaA,uBAAAA;eAAAA;;;;;;iCANY;AAMlB,MAAMA,0BAA8D;UACzEC;mBACAC;UACAC;cACAC;YACAC;kBACAC;aACAC;AACF;AAEA,MAAMC,qBAAqBC,IAAAA,8BAAAA,EAAAA,YAAgB,MAAA;IAAA;IAAA;IAAA;IAAA;CAAA;MACzCC,YAASC,IAAAA,yBAAA,EAAA;mBACTC;QACAC,QAAAA;QACAC,QAAAA;QAEAC,QAAA;QACAC,SAAA;iBACO;iBACHC;gBACAC;gBACAC;iBACF;QACFC,QAAA;QACAC,SAAA;iBACO;iBACHJ;iBACAC;gBACAC;gBACF;QACFG,QAAA;QAEAC,SAAA;QACAC,SAAA;gBACI;gBACAC;YAAAA;YAAM;SAAA;gBACNC;iBACAC;iBACAC;gBACAC;gBACAC;gBACAC;iBACAC;iBACF;QACFC,SAAA;YAAA;YAAA;SAAA;QACFC,SAAA;QAEAC,QAAMC;YAAAA;YAAYC;SAAW;QAC3BnC,QAAAA;gBACEoC;YAAAA;YAAS;SAAA;gBACTC;gBACAR;YAAAA;YAAU;SAAA;gBACVrB;gBACAE;YAAAA;YAAAA;SAAqB;iBACrB4B;gBACAC;YAAAA;YAAc;SAAA;iBACdC;iBACAC;iBACAC;iBACAC;YAAAA;YAAQ;SAAA;gBACRC;iBACAC;YAAAA;YAAW;SAAA;iBACXC;iBACAC;YAAAA;YAAeC;SAAAA;iBACfrB;iBACGsB;YAAAA;YAAWC;SAAcC;iBACzBC;iBAA0BC;;iBAA+B;gBAAI;QAClEC,SAAA;QAEAC,SAAAA;gBACExC;iBACAC;iBACAC;QACFuC,SAAA;QAEAvD,SAAM;gBACJO;gBACAiD;gBACAC;gBACAtB;iBACAC;QACFsB,SAAA;QACAzD,SAAAA;iBACEM;gBACAiD;gBACGG;iBAEHxB;gBACAC;QACFwB,SAAA;QACAxD,QAAAA;gBACEoB;iBACS;YAAA;YAASqC;SAAAA;iBAClBjC;gBACAO;YAAAA;YAAS;SAAA;;0BAGA;gBACTnB;QACF8C,SAAA;QACAC,SAAAA;gBACE;iBACAxB;iBAEAzB;QACFkD,SAAA;QACA9D,SAAQ;;UAGN;gBACAK;iBACA;gBACA;gBACA0D;gBACA9B;gBACAC;QACFvB,SAAA;QACAqD,SAAAA;iBACE;;cAEF;QACA/D,QAAAA;iBACEgC;iBACAC;iBACGuB;QACLQ,SAAA;QACFC,SAAA;QAEAC,QAAMC;QACJvE,QAAAA;gBACEQ;iBACA+B;iBACGa;iBAA0BC;;;gBAAmD;QAClFmB,QAAA;QACArE,QAAQ;iBACHyD;QACLa,SAAA;YAAA;YAAA;SAAA;QACFC,QAAA;QAEAJ,QAAO;QACLK,QAAA;QAEA9D,QAAQ+D;QAER9D,SAAM+D;QACNC,SAAMC;QACNC,SAAMC;QACNC,QAAMnF;QACNmF,SAAMlF;QAMNmF,QAAID;iBACFA;QACFE,SAAA;QACAnB,SAAIiB;iBACFA;;yBAMWG;QAObC,QAAIJ;gBACFA;YAAAA;YAAM9E;SAAsB;;YAM1B8E;iBACFA;QAMFK,SAAA;QAEAnB,SAAOc;QACPb,SAAA"}
@@ -22,6 +22,7 @@ const promptStarterClassNames = {
22
22
  root: 'fai-PromptStarter',
23
23
  primaryAction: 'fai-PromptStarter__primaryAction',
24
24
  icon: 'fai-PromptStarter__icon',
25
+ category: 'fai-PromptStarter__category',
25
26
  prompt: 'fai-PromptStarter__prompt',
26
27
  reasonMarker: 'fai-PromptStarter__reasonMarker',
27
28
  actions: 'fai-PromptStarter__actions'
@@ -64,9 +65,10 @@ const useStyles = (0, _reactcomponents.makeStyles)({
64
65
  primaryAction: {
65
66
  gridRow: '1 / 3',
66
67
  gridColumn: '1 / 3',
67
- display: 'flex',
68
- flexDirection: 'column',
69
68
  position: 'relative',
69
+ display: 'grid',
70
+ gridTemplateColumns: 'max-content 1fr',
71
+ gridAutoRows: 'max-content 1fr max-content',
70
72
  borderRadius: '28px',
71
73
  backgroundColor: _tokens.tokens.colorNeutralBackground1,
72
74
  color: _tokens.tokens.colorNeutralForeground2,
@@ -74,7 +76,8 @@ const useStyles = (0, _reactcomponents.makeStyles)({
74
76
  cursor: 'pointer',
75
77
  outlineStyle: 'none',
76
78
  textAlign: 'left',
77
- rowGap: _tokens.tokens.spacingHorizontalS,
79
+ columnGap: _tokens.tokens.spacingHorizontalMNudge,
80
+ rowGap: _tokens.tokens.spacingVerticalS,
78
81
  padding: `${_tokens.tokens.spacingVerticalL} ${_tokens.tokens.spacingHorizontalL}`,
79
82
  ..._reactcomponents.shorthands.border(_tokens.tokens.strokeWidthThin, 'solid', _tokens.tokens.colorNeutralStroke2),
80
83
  ...(0, _reactcomponents.createFocusOutlineStyle)({
@@ -91,7 +94,16 @@ const useStyles = (0, _reactcomponents.makeStyles)({
91
94
  icon: {
92
95
  display: 'flex',
93
96
  alignItems: 'center',
94
- minHeight: _tokens.tokens.spacingVerticalXXL
97
+ minHeight: _tokens.tokens.spacingVerticalXXL,
98
+ gridRow: 1,
99
+ gridColumn: '1 / 2'
100
+ },
101
+ category: {
102
+ display: 'flex',
103
+ alignItems: 'center',
104
+ ..._reactcomponents.typographyStyles.body1Strong,
105
+ gridRow: 1,
106
+ gridColumn: '2 / 3'
95
107
  },
96
108
  actions: {
97
109
  margin: `${_tokens.tokens.spacingVerticalL} ${_tokens.tokens.spacingHorizontalL}
@@ -102,20 +114,34 @@ const useStyles = (0, _reactcomponents.makeStyles)({
102
114
  opacity: 1,
103
115
  transition: `opacity ${_tokens.tokens.durationFast} ${_tokens.tokens.curveLinear}`
104
116
  },
117
+ actionsWithCategory: {
118
+ // Add a background and gradient fade to truncate the title if applicable
119
+ backgroundColor: _tokens.tokens.colorNeutralBackground1,
120
+ boxShadow: `-12px 0 12px 0 ${_tokens.tokens.colorNeutralBackground1}`
121
+ },
105
122
  prompt: {
106
123
  ..._reactcomponents.typographyStyles.body1Strong,
107
124
  // Truncate text after two lines.
108
125
  display: '-webkit-box',
109
126
  '-webkit-box-orient': 'vertical',
110
127
  '-webkit-line-clamp': '2',
111
- overflowY: 'hidden'
128
+ overflowY: 'hidden',
129
+ gridRow: '2',
130
+ gridColumn: '1 / 3'
131
+ },
132
+ promptNoReasonMarker: {
133
+ // Truncate text after three lines when no reason marker is present.
134
+ '-webkit-line-clamp': '3'
112
135
  },
113
136
  reasonMarker: {
137
+ gridRow: '3',
138
+ gridColumn: '1 / 3',
114
139
  ..._reactcomponents.typographyStyles.caption2
115
140
  }
116
141
  });
117
142
  const useSingleColumnStyles = (0, _reactcomponents.makeStyles)({
118
143
  primaryAction: {
144
+ display: 'flex',
119
145
  borderRadius: _tokens.tokens.borderRadius2XL,
120
146
  ...(0, _reactcomponents.createFocusOutlineStyle)({
121
147
  style: {
@@ -138,12 +164,15 @@ const usePromptStarterStyles_unstable = (state)=>{
138
164
  if (state.icon) {
139
165
  state.icon.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.icon, styles.icon, state.icon.className);
140
166
  }
141
- state.prompt.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.prompt, styles.prompt, isSingleColumn && singleColumnStyles.prompt, state.prompt.className);
167
+ if (state.category) {
168
+ state.category.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.category, styles.category, state.category.className);
169
+ }
170
+ state.prompt.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.prompt, styles.prompt, !state.reasonMarker && styles.promptNoReasonMarker, isSingleColumn && singleColumnStyles.prompt, state.prompt.className);
142
171
  if (state.reasonMarker) {
143
172
  state.reasonMarker.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.reasonMarker, styles.reasonMarker, state.reasonMarker.className);
144
173
  }
145
174
  if (state.actions) {
146
- state.actions.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.actions, styles.actions, state.actions.className);
175
+ state.actions.className = (0, _reactcomponents.mergeClasses)(promptStarterClassNames.actions, styles.actions, state.category && styles.actionsWithCategory, state.actions.className);
147
176
  }
148
177
  return state;
149
178
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["usePromptStarterStyles.styles.ts"],"sourcesContent":["import {\n makeStyles,\n makeResetStyles,\n mergeClasses,\n shorthands,\n typographyStyles,\n createFocusOutlineStyle,\n} from '@fluentui/react-components';\nimport { tokens } from '@fluentui-copilot/tokens';\nimport type { PromptStarterSlots, PromptStarterState } from './PromptStarter.types';\nimport type { SlotClassNames } from '@fluentui/react-components';\n\nexport const promptStarterClassNames: SlotClassNames<PromptStarterSlots> = {\n root: 'fai-PromptStarter',\n primaryAction: 'fai-PromptStarter__primaryAction',\n icon: 'fai-PromptStarter__icon',\n prompt: 'fai-PromptStarter__prompt',\n reasonMarker: 'fai-PromptStarter__reasonMarker',\n actions: 'fai-PromptStarter__actions',\n};\n\nconst useRootResetStyles = makeResetStyles({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n gridTemplateRows: 'max-content auto',\n minWidth: '214px',\n\n // Apply styles to the primary action on hover / active states\n '&:hover': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n '&:active': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow8,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n\n // Hide actions when not focused or hovered\n ':not(:focus-within):not(:hover)': {\n [`& .${promptStarterClassNames.actions}`]: {\n clip: 'rect(0px, 0px, 0px, 0px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0px',\n width: '1px',\n position: 'absolute',\n opacity: 0,\n },\n },\n});\n\nconst useStyles = makeStyles({\n primaryAction: {\n gridRow: '1 / 3',\n gridColumn: '1 / 3',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n borderRadius: '28px',\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground2,\n fontFamily: tokens.fontFamilyBase,\n cursor: 'pointer',\n outlineStyle: 'none',\n textAlign: 'left',\n rowGap: tokens.spacingHorizontalS,\n padding: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}`,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke2),\n ...createFocusOutlineStyle({ style: { outlineRadius: '28px' } }),\n },\n\n primaryActionHovered: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n\n icon: {\n display: 'flex',\n alignItems: 'center',\n minHeight: tokens.spacingVerticalXXL,\n },\n actions: {\n margin: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}\n ${tokens.spacingVerticalNone} ${tokens.spacingHorizontalNone}`,\n position: 'relative',\n gridRow: '1 / 2',\n gridColumn: '2 / 3',\n\n opacity: 1,\n transition: `opacity ${tokens.durationFast} ${tokens.curveLinear}`,\n },\n prompt: {\n ...typographyStyles.body1Strong,\n\n // Truncate text after two lines.\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': '2',\n overflowY: 'hidden',\n },\n reasonMarker: {\n ...typographyStyles.caption2,\n },\n});\n\nconst useSingleColumnStyles = makeStyles({\n primaryAction: {\n borderRadius: tokens.borderRadius2XL,\n ...createFocusOutlineStyle({ style: { outlineRadius: tokens.borderRadius2XL } }),\n },\n prompt: {\n ...typographyStyles.caption1Strong,\n },\n});\n\nexport const usePromptStarterStyles_unstable = (state: PromptStarterState): PromptStarterState => {\n 'use no memo';\n\n const { isSingleColumn } = state;\n\n const styles = useStyles();\n const rootResetStyles = useRootResetStyles();\n const singleColumnStyles = useSingleColumnStyles();\n state.root.className = mergeClasses(promptStarterClassNames.root, rootResetStyles, state.root.className);\n state.primaryAction.className = mergeClasses(\n promptStarterClassNames.primaryAction,\n styles.primaryAction,\n isSingleColumn && singleColumnStyles.primaryAction,\n state.primaryAction.className,\n );\n if (state.icon) {\n state.icon.className = mergeClasses(promptStarterClassNames.icon, styles.icon, state.icon.className);\n }\n state.prompt.className = mergeClasses(\n promptStarterClassNames.prompt,\n styles.prompt,\n isSingleColumn && singleColumnStyles.prompt,\n state.prompt.className,\n );\n if (state.reasonMarker) {\n state.reasonMarker.className = mergeClasses(\n promptStarterClassNames.reasonMarker,\n styles.reasonMarker,\n state.reasonMarker.className,\n );\n }\n if (state.actions) {\n state.actions.className = mergeClasses(promptStarterClassNames.actions, styles.actions, state.actions.className);\n }\n\n return state;\n};\n"],"names":["promptStarterClassNames","usePromptStarterStyles_unstable","root","primaryAction","icon","prompt","reasonMarker","actions","useRootResetStyles","makeResetStyles","display","gridTemplateColumns","gridTemplateRows","minWidth","boxShadow","tokens","shadow16","transform","transition","durationNormal","curveDecelerateMin","shadow8","clip","height","margin","overflow","padding","width","position","opacity","useStyles","makeStyles","gridRow","gridColumn","flexDirection","borderRadius","backgroundColor","colorNeutralBackground1","color","colorNeutralForeground2","fontFamily","fontFamilyBase","cursor","outlineStyle","textAlign","rowGap","spacingHorizontalS","spacingVerticalL","spacingHorizontalL","shorthands","border","strokeWidthThin","colorNeutralStroke2","createFocusOutlineStyle","style","outlineRadius","primaryActionHovered","alignItems","minHeight","spacingVerticalXXL","spacingVerticalNone","spacingHorizontalNone","durationFast","curveLinear","typographyStyles","body1Strong","overflowY","caption2","useSingleColumnStyles","borderRadius2XL","caption1Strong","state","isSingleColumn","styles","rootResetStyles","singleColumnStyles","className","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["usePromptStarterStyles.styles.ts"],"sourcesContent":["import {\n makeStyles,\n makeResetStyles,\n mergeClasses,\n shorthands,\n typographyStyles,\n createFocusOutlineStyle,\n} from '@fluentui/react-components';\nimport { tokens } from '@fluentui-copilot/tokens';\nimport type { PromptStarterSlots, PromptStarterState } from './PromptStarter.types';\nimport type { SlotClassNames } from '@fluentui/react-components';\n\nexport const promptStarterClassNames: SlotClassNames<PromptStarterSlots> = {\n root: 'fai-PromptStarter',\n primaryAction: 'fai-PromptStarter__primaryAction',\n icon: 'fai-PromptStarter__icon',\n category: 'fai-PromptStarter__category',\n prompt: 'fai-PromptStarter__prompt',\n reasonMarker: 'fai-PromptStarter__reasonMarker',\n actions: 'fai-PromptStarter__actions',\n};\n\nconst useRootResetStyles = makeResetStyles({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n gridTemplateRows: 'max-content auto',\n minWidth: '214px',\n\n // Apply styles to the primary action on hover / active states\n '&:hover': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n '&:active': {\n [`& .${promptStarterClassNames.primaryAction}`]: {\n boxShadow: tokens.shadow8,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n },\n\n // Hide actions when not focused or hovered\n ':not(:focus-within):not(:hover)': {\n [`& .${promptStarterClassNames.actions}`]: {\n clip: 'rect(0px, 0px, 0px, 0px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0px',\n width: '1px',\n position: 'absolute',\n opacity: 0,\n },\n },\n});\n\nconst useStyles = makeStyles({\n primaryAction: {\n gridRow: '1 / 3',\n gridColumn: '1 / 3',\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: 'max-content 1fr',\n gridAutoRows: 'max-content 1fr max-content',\n borderRadius: '28px',\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground2,\n fontFamily: tokens.fontFamilyBase,\n cursor: 'pointer',\n outlineStyle: 'none',\n textAlign: 'left',\n columnGap: tokens.spacingHorizontalMNudge,\n rowGap: tokens.spacingVerticalS,\n padding: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}`,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke2),\n ...createFocusOutlineStyle({ style: { outlineRadius: '28px' } }),\n },\n\n primaryActionHovered: {\n boxShadow: tokens.shadow16,\n transform: 'scale(1.03)',\n transition: `transform ${tokens.durationNormal} ${tokens.curveDecelerateMin}`,\n },\n\n icon: {\n display: 'flex',\n alignItems: 'center',\n minHeight: tokens.spacingVerticalXXL,\n gridRow: 1,\n gridColumn: '1 / 2',\n },\n category: {\n display: 'flex',\n alignItems: 'center',\n ...typographyStyles.body1Strong,\n\n gridRow: 1,\n gridColumn: '2 / 3',\n },\n actions: {\n margin: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalL}\n ${tokens.spacingVerticalNone} ${tokens.spacingHorizontalNone}`,\n position: 'relative',\n gridRow: '1 / 2',\n gridColumn: '2 / 3',\n\n opacity: 1,\n transition: `opacity ${tokens.durationFast} ${tokens.curveLinear}`,\n },\n actionsWithCategory: {\n // Add a background and gradient fade to truncate the title if applicable\n backgroundColor: tokens.colorNeutralBackground1,\n\n boxShadow: `-12px 0 12px 0 ${tokens.colorNeutralBackground1}`,\n },\n prompt: {\n ...typographyStyles.body1Strong,\n\n // Truncate text after two lines.\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': '2',\n overflowY: 'hidden',\n gridRow: '2',\n gridColumn: '1 / 3',\n },\n promptNoReasonMarker: {\n // Truncate text after three lines when no reason marker is present.\n '-webkit-line-clamp': '3',\n },\n reasonMarker: {\n gridRow: '3',\n gridColumn: '1 / 3',\n ...typographyStyles.caption2,\n },\n});\n\nconst useSingleColumnStyles = makeStyles({\n primaryAction: {\n display: 'flex',\n borderRadius: tokens.borderRadius2XL,\n ...createFocusOutlineStyle({ style: { outlineRadius: tokens.borderRadius2XL } }),\n },\n prompt: {\n ...typographyStyles.caption1Strong,\n },\n});\n\nexport const usePromptStarterStyles_unstable = (state: PromptStarterState): PromptStarterState => {\n 'use no memo';\n\n const { isSingleColumn } = state;\n\n const styles = useStyles();\n const rootResetStyles = useRootResetStyles();\n const singleColumnStyles = useSingleColumnStyles();\n state.root.className = mergeClasses(promptStarterClassNames.root, rootResetStyles, state.root.className);\n state.primaryAction.className = mergeClasses(\n promptStarterClassNames.primaryAction,\n styles.primaryAction,\n isSingleColumn && singleColumnStyles.primaryAction,\n state.primaryAction.className,\n );\n if (state.icon) {\n state.icon.className = mergeClasses(promptStarterClassNames.icon, styles.icon, state.icon.className);\n }\n if (state.category) {\n state.category.className = mergeClasses(\n promptStarterClassNames.category,\n styles.category,\n state.category.className,\n );\n }\n state.prompt.className = mergeClasses(\n promptStarterClassNames.prompt,\n styles.prompt,\n !state.reasonMarker && styles.promptNoReasonMarker,\n isSingleColumn && singleColumnStyles.prompt,\n state.prompt.className,\n );\n if (state.reasonMarker) {\n state.reasonMarker.className = mergeClasses(\n promptStarterClassNames.reasonMarker,\n styles.reasonMarker,\n state.reasonMarker.className,\n );\n }\n if (state.actions) {\n state.actions.className = mergeClasses(\n promptStarterClassNames.actions,\n styles.actions,\n state.category && styles.actionsWithCategory,\n state.actions.className,\n );\n }\n\n return state;\n};\n"],"names":["promptStarterClassNames","usePromptStarterStyles_unstable","root","primaryAction","icon","category","prompt","reasonMarker","actions","useRootResetStyles","makeResetStyles","display","gridTemplateColumns","gridTemplateRows","minWidth","boxShadow","tokens","shadow16","transform","transition","durationNormal","curveDecelerateMin","shadow8","clip","height","margin","overflow","padding","width","position","opacity","useStyles","makeStyles","gridRow","gridColumn","gridAutoRows","borderRadius","backgroundColor","colorNeutralBackground1","color","colorNeutralForeground2","fontFamily","fontFamilyBase","cursor","outlineStyle","textAlign","columnGap","spacingHorizontalMNudge","rowGap","spacingVerticalS","spacingVerticalL","spacingHorizontalL","shorthands","border","strokeWidthThin","colorNeutralStroke2","createFocusOutlineStyle","style","outlineRadius","primaryActionHovered","alignItems","minHeight","spacingVerticalXXL","typographyStyles","body1Strong","spacingVerticalNone","spacingHorizontalNone","durationFast","curveLinear","actionsWithCategory","overflowY","promptNoReasonMarker","caption2","useSingleColumnStyles","borderRadius2XL","caption1Strong","state","isSingleColumn","styles","rootResetStyles","singleColumnStyles","className","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["PromptStarterList.types.ts"],"sourcesContent":["import type { DesignVersion } from '@fluentui-copilot/react-provider';\nimport type {\n ComponentProps,\n ComponentState,\n Slot,\n Button,\n UseArrowNavigationGroupOptions,\n} from '@fluentui/react-components';\n\nexport type PromptStarterListSlots = {\n root: NonNullable<Slot<'div'>>;\n gridWrapper: NonNullable<Slot<'div'>>;\n expandButton?: Slot<typeof Button>;\n};\n\n/**\n * PromptStarterList Props\n */\nexport type PromptStarterListProps = ComponentProps<Partial<PromptStarterListSlots>, 'gridWrapper'> &\n DesignVersion & {\n /**\n * Text for the expand button when the list is collapsed.\n *\n * default: \"Show more\"\n */\n expandButtonLabel?: string;\n /**\n * Text for the expand button when the list is expanded.\n *\n * default: \"Show less\"\n */\n collapseButtonLabel?: string;\n /**\n * Arrow navigation options. This can be used to customize Tabster's direction,\n * tab behavior, and memoization options.\n *\n * default: { axis: 'horizontal', memorizeCurrent: true }\n */\n arrowNavigationOptions?: UseArrowNavigationGroupOptions;\n };\n\n/**\n * State used in rendering PromptStarterList\n */\nexport type PromptStarterListState = ComponentState<PromptStarterListSlots> &\n Required<Pick<PromptStarterListProps, 'designVersion'>> & {\n numberOfColumns: number;\n isExpanded?: boolean;\n };\n\nexport type PromptStarterListContextValue = Pick<PromptStarterListState, 'numberOfColumns' | 'isExpanded'>;\n"],"names":[],"rangeMappings":"","mappings":""}
1
+ {"version":3,"sources":["PromptStarterList.types.ts"],"sourcesContent":["import type { DesignVersion } from '@fluentui-copilot/react-provider';\nimport type {\n ComponentProps,\n ComponentState,\n Slot,\n Button,\n UseArrowNavigationGroupOptions,\n} from '@fluentui/react-components';\n\nexport type PromptStarterListSlots = {\n root: NonNullable<Slot<'div'>>;\n gridWrapper: NonNullable<Slot<'div'>>;\n actions?: Slot<'span'>;\n expandButton?: Slot<typeof Button>;\n};\n\n/**\n * PromptStarterList Props\n */\nexport type PromptStarterListProps = ComponentProps<Partial<PromptStarterListSlots>, 'gridWrapper'> &\n DesignVersion & {\n /**\n * Text for the expand button when the list is collapsed.\n *\n * default: \"Show more\"\n */\n expandButtonLabel?: string;\n /**\n * Text for the expand button when the list is expanded.\n *\n * default: \"Show less\"\n */\n collapseButtonLabel?: string;\n /**\n * Arrow navigation options. This can be used to customize Tabster's direction,\n * tab behavior, and memoization options.\n *\n * default: { axis: 'horizontal', memorizeCurrent: true }\n */\n arrowNavigationOptions?: UseArrowNavigationGroupOptions;\n\n /**\n * Whether to animate the entrance of its items when it first mounts.\n *\n * @default true\n */\n animateOnMount?: boolean;\n };\n\n/**\n * State used in rendering PromptStarterList\n */\nexport type PromptStarterListState = ComponentState<PromptStarterListSlots> &\n Required<Pick<PromptStarterListProps, 'designVersion'>> & {\n numberOfColumns: number;\n isExpanded?: boolean;\n };\n\nexport type PromptStarterListContextValue = Pick<PromptStarterListState, 'numberOfColumns' | 'isExpanded'>;\n"],"names":[],"rangeMappings":"","mappings":""}
@@ -22,6 +22,7 @@ const renderPromptStarterList_unstable = (state, contextValue)=>{
22
22
  children: state.root.children
23
23
  })
24
24
  }),
25
+ state.actions && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.actions, {}),
25
26
  state.expandButton && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.expandButton, {})
26
27
  ]
27
28
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["renderPromptStarterList.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots, PresenceGroup } from '@fluentui/react-components';\nimport { PromptStarterListProvider } from '../../../contexts/PromptStarterListContext';\nimport type {\n PromptStarterListState,\n PromptStarterListSlots,\n PromptStarterListContextValue,\n} from './PromptStarterList.types';\n\n/**\n * Render the final JSX of PromptStarterList\n */\nexport const renderPromptStarterList_unstable = (\n state: PromptStarterListState,\n contextValue: PromptStarterListContextValue,\n) => {\n assertSlots<PromptStarterListSlots>(state);\n\n return (\n <PromptStarterListProvider value={contextValue}>\n <state.root>\n <PresenceGroup>\n <state.gridWrapper>{state.root.children}</state.gridWrapper>\n </PresenceGroup>\n {state.expandButton && <state.expandButton />}\n </state.root>\n </PromptStarterListProvider>\n );\n};\n"],"names":["renderPromptStarterList_unstable","state","contextValue","assertSlots","_jsx","PromptStarterListProvider","value","_jsxs","root","PresenceGroup","gridWrapper","children","expandButton"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAcaA;;;eAAAA;;;4BAbb;iCAE2C;0CACD;AAUnC,MAAMA,mCAAmC,CAC9CC,OACAC;IAEAC,IAAAA,4BAAAA,EAAoCF;IAEpC,OAAA,WAAA,GACEG,IAAAA,eAAA,EAACC,mDAAAA,EAAAA;QAA0BC,OAAOJ;kBAChC,WAAA,GAAAK,IAAAA,gBAAA,EAACN,MAAMO,IAAI,EAAA;;8BACTJ,IAAAA,eAAA,EAACK,8BAAAA,EAAAA;8BACC,WAAA,GAAAL,IAAAA,eAAA,EAACH,MAAMS,WAAW,EAAA;kCAAET,MAAMO,IAAI,CAACG,QAAQ;;;gBAExCV,MAAMW,YAAY,IAAA,WAAA,GAAIR,IAAAA,eAAA,EAACH,MAAMW,YAAY,EAAA,CAAA;;;;AAIlD"}
1
+ {"version":3,"sources":["renderPromptStarterList.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots, PresenceGroup } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport { PromptStarterListProvider } from '../../../contexts/PromptStarterListContext';\nimport type {\n PromptStarterListState,\n PromptStarterListSlots,\n PromptStarterListContextValue,\n} from './PromptStarterList.types';\n\n/**\n * Render the final JSX of PromptStarterList\n */\nexport const renderPromptStarterList_unstable = (\n state: PromptStarterListState,\n contextValue: PromptStarterListContextValue,\n): JSXElement => {\n assertSlots<PromptStarterListSlots>(state);\n\n return (\n <PromptStarterListProvider value={contextValue}>\n <state.root>\n <PresenceGroup>\n <state.gridWrapper>{state.root.children}</state.gridWrapper>\n </PresenceGroup>\n {state.actions && <state.actions />}\n {state.expandButton && <state.expandButton />}\n </state.root>\n </PromptStarterListProvider>\n );\n};\n"],"names":["renderPromptStarterList_unstable","state","contextValue","assertSlots","_jsx","PromptStarterListProvider","value","_jsxs","root","PresenceGroup","gridWrapper","children","actions","expandButton"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAeaA;;;eAAAA;;;4BAdb;iCAE2C;0CAED;AAUnC,MAAMA,mCAAmC,CAC9CC,OACAC;IAEAC,IAAAA,4BAAAA,EAAoCF;IAEpC,OAAA,WAAA,GACEG,IAAAA,eAAA,EAACC,mDAAAA,EAAAA;QAA0BC,OAAOJ;kBAChC,WAAA,GAAAK,IAAAA,gBAAA,EAACN,MAAMO,IAAI,EAAA;;8BACTJ,IAAAA,eAAA,EAACK,8BAAAA,EAAAA;8BACC,WAAA,GAAAL,IAAAA,eAAA,EAACH,MAAMS,WAAW,EAAA;kCAAET,MAAMO,IAAI,CAACG,QAAQ;;;gBAExCV,MAAMW,OAAO,IAAA,WAAA,GAAIR,IAAAA,eAAA,EAACH,MAAMW,OAAO,EAAA,CAAA;gBAC/BX,MAAMY,YAAY,IAAA,WAAA,GAAIT,IAAAA,eAAA,EAACH,MAAMY,YAAY,EAAA,CAAA;;;;AAIlD"}
@@ -15,12 +15,12 @@ const _reactprovider = require("@fluentui-copilot/react-provider");
15
15
  const _reacticons = require("@fluentui/react-icons");
16
16
  const _promptStarterMotion = require("../PromptStarter/promptStarterMotion");
17
17
  const usePromptStarterList_unstable = (props, ref)=>{
18
- const { arrowNavigationOptions, expandButtonLabel = 'Show more', collapseButtonLabel = 'Show less' } = props;
18
+ const { arrowNavigationOptions, expandButtonLabel = 'Show more', collapseButtonLabel = 'Show less', animateOnMount = true } = props;
19
19
  const designVersion = (0, _reactprovider.useDesignVersion)(props.designVersion);
20
20
  var _arrowNavigationOptions_axis, _arrowNavigationOptions_memorizeCurrent;
21
21
  const focusAttrs = (0, _reactcomponents.useArrowNavigationGroup)({
22
22
  ...arrowNavigationOptions,
23
- axis: (_arrowNavigationOptions_axis = arrowNavigationOptions === null || arrowNavigationOptions === void 0 ? void 0 : arrowNavigationOptions.axis) !== null && _arrowNavigationOptions_axis !== void 0 ? _arrowNavigationOptions_axis : 'grid-linear',
23
+ axis: (_arrowNavigationOptions_axis = arrowNavigationOptions === null || arrowNavigationOptions === void 0 ? void 0 : arrowNavigationOptions.axis) !== null && _arrowNavigationOptions_axis !== void 0 ? _arrowNavigationOptions_axis : 'both',
24
24
  memorizeCurrent: (_arrowNavigationOptions_memorizeCurrent = arrowNavigationOptions === null || arrowNavigationOptions === void 0 ? void 0 : arrowNavigationOptions.memorizeCurrent) !== null && _arrowNavigationOptions_memorizeCurrent !== void 0 ? _arrowNavigationOptions_memorizeCurrent : true
25
25
  });
26
26
  const [isExpanded, setIsExpanded] = _react.useState(false);
@@ -50,6 +50,7 @@ const usePromptStarterList_unstable = (props, ref)=>{
50
50
  components: {
51
51
  root: 'div',
52
52
  gridWrapper: 'div',
53
+ actions: 'span',
53
54
  expandButton: _reactcomponents.Button
54
55
  },
55
56
  root: _reactcomponents.slot.always((0, _reactcomponents.getIntrinsicElementProps)('div', {
@@ -65,6 +66,9 @@ const usePromptStarterList_unstable = (props, ref)=>{
65
66
  },
66
67
  elementType: 'div'
67
68
  }),
69
+ actions: _reactcomponents.slot.optional(props.actions, {
70
+ elementType: 'span'
71
+ }),
68
72
  expandButton: _reactcomponents.slot.optional(props.expandButton, {
69
73
  defaultProps: {
70
74
  appearance: 'subtle',
@@ -97,7 +101,7 @@ const usePromptStarterList_unstable = (props, ref)=>{
97
101
  // are shown in the expanded state.
98
102
  const visibility = numberOfColumns === 1 && index < 3 || index < numberOfColumns || isExpanded;
99
103
  return /*#__PURE__*/ _react.createElement(_promptStarterMotion.PromptStarterMotion, {
100
- appear: true,
104
+ appear: animateOnMount,
101
105
  key: index,
102
106
  index: index,
103
107
  visible: visibility,
@@ -1 +1 @@
1
- {"version":3,"sources":["usePromptStarterList.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n getIntrinsicElementProps,\n slot,\n Button,\n useArrowNavigationGroup,\n mergeCallbacks,\n useFluent,\n useMergedRefs,\n} from '@fluentui/react-components';\nimport type { PromptStarterListProps, PromptStarterListState } from './PromptStarterList.types';\nimport { useDesignVersion } from '@fluentui-copilot/react-provider';\nimport { ChevronDown12Regular } from '@fluentui/react-icons';\nimport { PromptStarterMotion } from '../PromptStarter/promptStarterMotion';\n\n/**\n * Create the state required to render PromptStarterList.\n *\n * The returned state can be modified with hooks such as usePromptStarterListStyles_unstable,\n * before being passed to renderPromptStarterList_unstable.\n *\n * @param props - props from this instance of PromptStarterList\n * @param ref - reference to root HTMLElement of PromptStarterList\n */\nexport const usePromptStarterList_unstable = (\n props: PromptStarterListProps,\n ref: React.Ref<HTMLDivElement>,\n): PromptStarterListState => {\n const { arrowNavigationOptions, expandButtonLabel = 'Show more', collapseButtonLabel = 'Show less' } = props;\n const designVersion = useDesignVersion(props.designVersion);\n const focusAttrs = useArrowNavigationGroup({\n ...arrowNavigationOptions,\n axis: arrowNavigationOptions?.axis ?? 'grid-linear',\n memorizeCurrent: arrowNavigationOptions?.memorizeCurrent ?? true,\n });\n\n const [isExpanded, setIsExpanded] = React.useState(false);\n const [numberOfColumns, setNumberOfColumns] = React.useState<number>(3);\n\n const gridWrapperRef = React.useRef<HTMLDivElement>(null);\n const { targetDocument } = useFluent();\n const win = targetDocument?.defaultView;\n\n React.useEffect(() => {\n if (!win || !gridWrapperRef.current) return;\n\n const promptStarterGrid = gridWrapperRef.current;\n\n const updateNumberOfColumns = () => {\n const numColumns = win.getComputedStyle(promptStarterGrid).gridTemplateColumns.split(' ').length;\n setNumberOfColumns(numColumns);\n };\n\n const ro = new win.ResizeObserver(updateNumberOfColumns);\n ro.observe(promptStarterGrid);\n\n return () => {\n ro.unobserve(promptStarterGrid);\n };\n }, [win]);\n\n const state: PromptStarterListState = {\n numberOfColumns: numberOfColumns,\n isExpanded,\n designVersion,\n components: {\n root: 'div',\n gridWrapper: 'div',\n expandButton: Button,\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n gridWrapper: slot.always(props.gridWrapper, {\n defaultProps: {\n role: 'list',\n ...focusAttrs,\n },\n elementType: 'div',\n }),\n expandButton: slot.optional(props.expandButton, {\n defaultProps: {\n appearance: 'subtle',\n size: 'small',\n shape: 'rounded',\n icon: <ChevronDown12Regular />,\n iconPosition: 'after',\n 'aria-expanded': isExpanded,\n children: isExpanded ? collapseButtonLabel : expandButtonLabel,\n },\n renderByDefault: true,\n elementType: Button,\n }),\n };\n\n state.gridWrapper.ref = useMergedRefs(gridWrapperRef, state.gridWrapper.ref);\n\n // Get the array of children.\n const childrenArray = React.useMemo<(React.ReactChild | React.ReactFragment | React.ReactPortal)[]>(() => {\n return React.Children.toArray(state.root.children);\n }, [state.root.children]);\n\n // Add motion to the children.\n const childrenWithMotion = React.useMemo(\n () =>\n childrenArray.map((child, index) => {\n // Throw error if the child is not a valid React element or is a Fragment.\n if (!React.isValidElement(child) || child.type === React.Fragment) {\n throw new Error('You should only use PromptStarter components as the children of PromptStarterList.');\n }\n\n // In the collapsed state, if there is one column, we show three children.\n // If there are two or three columns, we show two or three. All children\n // are shown in the expanded state.\n const visibility = (numberOfColumns === 1 && index < 3) || index < numberOfColumns || isExpanded;\n\n return (\n <PromptStarterMotion appear key={index} index={index} visible={visibility} numberOfColumns={numberOfColumns}>\n {child}\n </PromptStarterMotion>\n );\n }),\n [childrenArray, numberOfColumns, isExpanded],\n );\n\n state.root.children = childrenWithMotion;\n\n if (state.expandButton) {\n state.expandButton.onClick = mergeCallbacks(\n state.expandButton.onClick as React.MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>,\n () => setIsExpanded(!isExpanded),\n );\n }\n\n return state;\n};\n"],"names":["usePromptStarterList_unstable","props","ref","arrowNavigationOptions","expandButtonLabel","collapseButtonLabel","designVersion","useDesignVersion","focusAttrs","useArrowNavigationGroup","axis","memorizeCurrent","isExpanded","setIsExpanded","React","useState","numberOfColumns","setNumberOfColumns","gridWrapperRef","useRef","targetDocument","useFluent","win","defaultView","useEffect","current","promptStarterGrid","updateNumberOfColumns","numColumns","getComputedStyle","gridTemplateColumns","split","length","ro","ResizeObserver","observe","unobserve","state","components","root","gridWrapper","expandButton","Button","slot","always","getIntrinsicElementProps","elementType","defaultProps","role","optional","appearance","size","shape","icon","createElement","ChevronDown12Regular","iconPosition","children","renderByDefault","useMergedRefs","childrenArray","useMemo","Children","toArray","childrenWithMotion","map","child","index","isValidElement","type","Fragment","Error","visibility","PromptStarterMotion","appear","key","visible","onClick","mergeCallbacks"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAwBaA;;;eAAAA;;;;iEAxBU;iCAShB;+BAE0B;4BACI;qCACD;AAW7B,MAAMA,gCAAgC,CAC3CC,OACAC;IAEA,MAAM,EAAEC,sBAAsB,EAAEC,oBAAoB,WAAW,EAAEC,sBAAsB,WAAW,EAAE,GAAGJ;IACvG,MAAMK,gBAAgBC,IAAAA,+BAAAA,EAAiBN,MAAMK,aAAa;QAGlDH,8BACWA;IAHnB,MAAMK,aAAaC,IAAAA,wCAAAA,EAAwB;QACzC,GAAGN,sBAAsB;QACzBO,MAAMP,CAAAA,+BAAAA,2BAAAA,QAAAA,2BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,uBAAwBO,IAAI,AAAJA,MAAI,QAA5BP,iCAAAA,KAAAA,IAAAA,+BAAgC;QACtCQ,iBAAiBR,CAAAA,0CAAAA,2BAAAA,QAAAA,2BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,uBAAwBQ,eAAe,AAAfA,MAAe,QAAvCR,4CAAAA,KAAAA,IAAAA,0CAA2C;IAC9D;IAEA,MAAM,CAACS,YAAYC,cAAc,GAAGC,OAAMC,QAAQ,CAAC;IACnD,MAAM,CAACC,iBAAiBC,mBAAmB,GAAGH,OAAMC,QAAQ,CAAS;IAErE,MAAMG,iBAAiBJ,OAAMK,MAAM,CAAiB;IACpD,MAAM,EAAEC,cAAc,EAAE,GAAGC,IAAAA,0BAAAA;IAC3B,MAAMC,MAAMF,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBG,WAAW;IAEvCT,OAAMU,SAAS,CAAC;QACd,IAAI,CAACF,OAAO,CAACJ,eAAeO,OAAO,EAAE;QAErC,MAAMC,oBAAoBR,eAAeO,OAAO;QAEhD,MAAME,wBAAwB;YAC5B,MAAMC,aAAaN,IAAIO,gBAAgB,CAACH,mBAAmBI,mBAAmB,CAACC,KAAK,CAAC,KAAKC,MAAM;YAChGf,mBAAmBW;QACrB;QAEA,MAAMK,KAAK,IAAIX,IAAIY,cAAc,CAACP;QAClCM,GAAGE,OAAO,CAACT;QAEX,OAAO;YACLO,GAAGG,SAAS,CAACV;QACf;IACF,GAAG;QAACJ;KAAI;IAER,MAAMe,QAAgC;QACpCrB,iBAAiBA;QACjBJ;QACAN;QACAgC,YAAY;YACVC,MAAM;YACNC,aAAa;YACbC,cAAcC,uBAAAA;QAChB;QACAH,MAAMI,qBAAAA,CAAKC,MAAM,CACfC,IAAAA,yCAAAA,EAAyB,OAAO;YAC9B3C;YACA,GAAGD,KAAK;QACV,IACA;YAAE6C,aAAa;QAAM;QAEvBN,aAAaG,qBAAAA,CAAKC,MAAM,CAAC3C,MAAMuC,WAAW,EAAE;YAC1CO,cAAc;gBACZC,MAAM;gBACN,GAAGxC,UAAU;YACf;YACAsC,aAAa;QACf;QACAL,cAAcE,qBAAAA,CAAKM,QAAQ,CAAChD,MAAMwC,YAAY,EAAE;YAC9CM,cAAc;gBACZG,YAAY;gBACZC,MAAM;gBACNC,OAAO;gBACPC,MAAAA,WAAAA,GAAMvC,OAAAwC,aAAA,CAACC,gCAAAA,EAAAA;gBACPC,cAAc;gBACd,iBAAiB5C;gBACjB6C,UAAU7C,aAAaP,sBAAsBD;YAC/C;YACAsD,iBAAiB;YACjBZ,aAAaJ,uBAAAA;QACf;IACF;IAEAL,MAAMG,WAAW,CAACtC,GAAG,GAAGyD,IAAAA,8BAAAA,EAAczC,gBAAgBmB,MAAMG,WAAW,CAACtC,GAAG;IAE3E,6BAA6B;IAC7B,MAAM0D,gBAAgB9C,OAAM+C,OAAO,CAAiE;QAClG,OAAO/C,OAAMgD,QAAQ,CAACC,OAAO,CAAC1B,MAAME,IAAI,CAACkB,QAAQ;IACnD,GAAG;QAACpB,MAAME,IAAI,CAACkB,QAAQ;KAAC;IAExB,8BAA8B;IAC9B,MAAMO,qBAAqBlD,OAAM+C,OAAO,CACtC,IACED,cAAcK,GAAG,CAAC,CAACC,OAAOC;YACxB,0EAA0E;YAC1E,IAAI,CAAA,WAAA,GAACrD,OAAMsD,cAAc,CAACF,UAAUA,MAAMG,IAAI,KAAKvD,OAAMwD,QAAQ,EAAE;gBACjE,MAAM,IAAIC,MAAM;YAClB;YAEA,0EAA0E;YAC1E,wEAAwE;YACxE,mCAAmC;YACnC,MAAMC,aAAaxD,oBAAqB,KAAKmD,QAAQ,KAAMA,QAAQnD,mBAAmBJ;YAEtF,OAAA,WAAA,GACEE,OAAAwC,aAAA,CAACmB,wCAAAA,EAAAA;gBAAoBC,QAAAA;gBAAOC,KAAKR;gBAAOA,OAAOA;gBAAOS,SAASJ;gBAAYxD,iBAAiBA;eACzFkD;QAGP,IACF;QAACN;QAAe5C;QAAiBJ;KAAW;IAG9CyB,MAAME,IAAI,CAACkB,QAAQ,GAAGO;IAEtB,IAAI3B,MAAMI,YAAY,EAAE;QACtBJ,MAAMI,YAAY,CAACoC,OAAO,GAAGC,IAAAA,+BAAAA,EAC3BzC,MAAMI,YAAY,CAACoC,OAAO,EAC1B,IAAMhE,cAAc,CAACD;IAEzB;IAEA,OAAOyB;AACT"}
1
+ {"version":3,"sources":["usePromptStarterList.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n getIntrinsicElementProps,\n slot,\n Button,\n useArrowNavigationGroup,\n mergeCallbacks,\n useFluent,\n useMergedRefs,\n} from '@fluentui/react-components';\nimport type { PromptStarterListProps, PromptStarterListState } from './PromptStarterList.types';\nimport { useDesignVersion } from '@fluentui-copilot/react-provider';\nimport { ChevronDown12Regular } from '@fluentui/react-icons';\nimport { PromptStarterMotion } from '../PromptStarter/promptStarterMotion';\n\n/**\n * Create the state required to render PromptStarterList.\n *\n * The returned state can be modified with hooks such as usePromptStarterListStyles_unstable,\n * before being passed to renderPromptStarterList_unstable.\n *\n * @param props - props from this instance of PromptStarterList\n * @param ref - reference to root HTMLElement of PromptStarterList\n */\nexport const usePromptStarterList_unstable = (\n props: PromptStarterListProps,\n ref: React.Ref<HTMLDivElement>,\n): PromptStarterListState => {\n const {\n arrowNavigationOptions,\n expandButtonLabel = 'Show more',\n collapseButtonLabel = 'Show less',\n animateOnMount = true,\n } = props;\n const designVersion = useDesignVersion(props.designVersion);\n const focusAttrs = useArrowNavigationGroup({\n ...arrowNavigationOptions,\n axis: arrowNavigationOptions?.axis ?? 'both',\n memorizeCurrent: arrowNavigationOptions?.memorizeCurrent ?? true,\n });\n\n const [isExpanded, setIsExpanded] = React.useState(false);\n const [numberOfColumns, setNumberOfColumns] = React.useState<number>(3);\n\n const gridWrapperRef = React.useRef<HTMLDivElement>(null);\n const { targetDocument } = useFluent();\n const win = targetDocument?.defaultView;\n\n React.useEffect(() => {\n if (!win || !gridWrapperRef.current) return;\n\n const promptStarterGrid = gridWrapperRef.current;\n\n const updateNumberOfColumns = () => {\n const numColumns = win.getComputedStyle(promptStarterGrid).gridTemplateColumns.split(' ').length;\n setNumberOfColumns(numColumns);\n };\n\n const ro = new win.ResizeObserver(updateNumberOfColumns);\n ro.observe(promptStarterGrid);\n\n return () => {\n ro.unobserve(promptStarterGrid);\n };\n }, [win]);\n\n const state: PromptStarterListState = {\n numberOfColumns: numberOfColumns,\n isExpanded,\n designVersion,\n components: {\n root: 'div',\n gridWrapper: 'div',\n actions: 'span',\n expandButton: Button,\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n gridWrapper: slot.always(props.gridWrapper, {\n defaultProps: {\n role: 'list',\n ...focusAttrs,\n },\n elementType: 'div',\n }),\n actions: slot.optional(props.actions, {\n elementType: 'span',\n }),\n expandButton: slot.optional(props.expandButton, {\n defaultProps: {\n appearance: 'subtle',\n size: 'small',\n shape: 'rounded',\n icon: <ChevronDown12Regular />,\n iconPosition: 'after',\n 'aria-expanded': isExpanded,\n children: isExpanded ? collapseButtonLabel : expandButtonLabel,\n },\n renderByDefault: true,\n elementType: Button,\n }),\n };\n\n state.gridWrapper.ref = useMergedRefs(gridWrapperRef, state.gridWrapper.ref);\n\n // Get the array of children.\n const childrenArray = React.useMemo<\n (React.ReactElement<any> | number | string | Iterable<React.ReactNode> | React.ReactPortal)[]\n >(() => {\n return React.Children.toArray(state.root.children);\n }, [state.root.children]);\n\n // Add motion to the children.\n const childrenWithMotion = React.useMemo(\n () =>\n childrenArray.map((child, index) => {\n // Throw error if the child is not a valid React element or is a Fragment.\n if (!React.isValidElement(child) || child.type === React.Fragment) {\n throw new Error('You should only use PromptStarter components as the children of PromptStarterList.');\n }\n\n // In the collapsed state, if there is one column, we show three children.\n // If there are two or three columns, we show two or three. All children\n // are shown in the expanded state.\n const visibility = (numberOfColumns === 1 && index < 3) || index < numberOfColumns || isExpanded;\n\n return (\n <PromptStarterMotion\n appear={animateOnMount}\n key={index}\n index={index}\n visible={visibility}\n numberOfColumns={numberOfColumns}\n >\n {child}\n </PromptStarterMotion>\n );\n }),\n [childrenArray, numberOfColumns, isExpanded],\n );\n\n state.root.children = childrenWithMotion;\n\n if (state.expandButton) {\n state.expandButton.onClick = mergeCallbacks(\n state.expandButton.onClick as React.MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>,\n () => setIsExpanded(!isExpanded),\n );\n }\n\n return state;\n};\n"],"names":["usePromptStarterList_unstable","props","ref","arrowNavigationOptions","expandButtonLabel","collapseButtonLabel","animateOnMount","designVersion","useDesignVersion","focusAttrs","useArrowNavigationGroup","axis","memorizeCurrent","isExpanded","setIsExpanded","React","useState","numberOfColumns","setNumberOfColumns","gridWrapperRef","useRef","targetDocument","useFluent","win","defaultView","useEffect","current","promptStarterGrid","updateNumberOfColumns","numColumns","getComputedStyle","gridTemplateColumns","split","length","ro","ResizeObserver","observe","unobserve","state","components","root","gridWrapper","actions","expandButton","Button","slot","always","getIntrinsicElementProps","elementType","defaultProps","role","optional","appearance","size","shape","icon","createElement","ChevronDown12Regular","iconPosition","children","renderByDefault","useMergedRefs","childrenArray","useMemo","Children","toArray","childrenWithMotion","map","child","index","isValidElement","type","Fragment","Error","visibility","PromptStarterMotion","appear","key","visible","onClick","mergeCallbacks"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}