@fluentui-copilot/react-prompt-starter 0.0.0-nightly-20251010-0406-7df7c6d1.1 → 0.0.0-nightly-20251014-0405-d8d3e89c.1

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 (116) hide show
  1. package/CHANGELOG.json +48 -3
  2. package/CHANGELOG.md +18 -4
  3. package/dist/index.d.ts +164 -0
  4. package/lib/PromptStarter.js +1 -0
  5. package/lib/PromptStarter.js.map +1 -0
  6. package/lib/PromptStarterList.js +1 -0
  7. package/lib/PromptStarterList.js.map +1 -0
  8. package/lib/PromptStarterV2.js +1 -0
  9. package/lib/PromptStarterV2.js.map +1 -0
  10. package/lib/components/PromptStarter/PromptStarter.js +12 -0
  11. package/lib/components/PromptStarter/PromptStarter.js.map +1 -0
  12. package/lib/components/PromptStarter/PromptStarter.types.js +3 -0
  13. package/lib/components/PromptStarter/PromptStarter.types.js.map +1 -0
  14. package/lib/components/PromptStarter/index.js +4 -0
  15. package/lib/components/PromptStarter/index.js.map +1 -0
  16. package/lib/components/PromptStarter/renderPromptStarter.js +18 -0
  17. package/lib/components/PromptStarter/renderPromptStarter.js.map +1 -0
  18. package/lib/components/PromptStarter/usePromptStarter.js +53 -0
  19. package/lib/components/PromptStarter/usePromptStarter.js.map +1 -0
  20. package/lib/components/PromptStarter/usePromptStarterStyles.styles.js +138 -0
  21. package/lib/components/PromptStarter/usePromptStarterStyles.styles.js.map +1 -0
  22. package/lib/components/PromptStarter/usePromptStarterStyles.styles.raw.js +94 -0
  23. package/lib/components/PromptStarter/usePromptStarterStyles.styles.raw.js.map +1 -0
  24. package/lib/components/PromptStarterV2/PromptStarter/PromptStarter.js +12 -0
  25. package/lib/components/PromptStarterV2/PromptStarter/PromptStarter.js.map +1 -0
  26. package/lib/components/PromptStarterV2/PromptStarter/PromptStarter.types.js +3 -0
  27. package/lib/components/PromptStarterV2/PromptStarter/PromptStarter.types.js.map +1 -0
  28. package/lib/components/PromptStarterV2/PromptStarter/index.js +4 -0
  29. package/lib/components/PromptStarterV2/PromptStarter/index.js.map +1 -0
  30. package/lib/components/PromptStarterV2/PromptStarter/promptStarterMotion.js +63 -0
  31. package/lib/components/PromptStarterV2/PromptStarter/promptStarterMotion.js.map +1 -0
  32. package/lib/components/PromptStarterV2/PromptStarter/renderPromptStarter.js +18 -0
  33. package/lib/components/PromptStarterV2/PromptStarter/renderPromptStarter.js.map +1 -0
  34. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarter.js +73 -0
  35. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarter.js.map +1 -0
  36. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js +338 -0
  37. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js.map +1 -0
  38. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js +160 -0
  39. package/lib/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js.map +1 -0
  40. package/lib/components/PromptStarterV2/PromptStarterList/PromptStarterList.js +12 -0
  41. package/lib/components/PromptStarterV2/PromptStarterList/PromptStarterList.js.map +1 -0
  42. package/lib/components/PromptStarterV2/PromptStarterList/PromptStarterList.types.js +1 -0
  43. package/lib/components/PromptStarterV2/PromptStarterList/PromptStarterList.types.js.map +1 -0
  44. package/lib/components/PromptStarterV2/PromptStarterList/index.js +4 -0
  45. package/lib/components/PromptStarterV2/PromptStarterList/index.js.map +1 -0
  46. package/lib/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js +22 -0
  47. package/lib/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js.map +1 -0
  48. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js +117 -0
  49. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js.map +1 -0
  50. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListContextValues.js +6 -0
  51. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListContextValues.js.map +1 -0
  52. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js +83 -0
  53. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js.map +1 -0
  54. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js +73 -0
  55. package/lib/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js.map +1 -0
  56. package/lib/contexts/PromptStarterListContext.js +7 -0
  57. package/lib/contexts/PromptStarterListContext.js.map +1 -0
  58. package/lib/index.js +3 -0
  59. package/lib/index.js.map +1 -0
  60. package/lib-commonjs/PromptStarter.js +28 -0
  61. package/lib-commonjs/PromptStarter.js.map +1 -0
  62. package/lib-commonjs/PromptStarterList.js +28 -0
  63. package/lib-commonjs/PromptStarterList.js.map +1 -0
  64. package/lib-commonjs/PromptStarterV2.js +28 -0
  65. package/lib-commonjs/PromptStarterV2.js.map +1 -0
  66. package/lib-commonjs/components/PromptStarter/PromptStarter.js +23 -0
  67. package/lib-commonjs/components/PromptStarter/PromptStarter.js.map +1 -0
  68. package/lib-commonjs/components/PromptStarter/PromptStarter.types.js +6 -0
  69. package/lib-commonjs/components/PromptStarter/PromptStarter.types.js.map +1 -0
  70. package/lib-commonjs/components/PromptStarter/index.js +31 -0
  71. package/lib-commonjs/components/PromptStarter/index.js.map +1 -0
  72. package/lib-commonjs/components/PromptStarter/renderPromptStarter.js +28 -0
  73. package/lib-commonjs/components/PromptStarter/renderPromptStarter.js.map +1 -0
  74. package/lib-commonjs/components/PromptStarter/usePromptStarter.js +55 -0
  75. package/lib-commonjs/components/PromptStarter/usePromptStarter.js.map +1 -0
  76. package/lib-commonjs/components/PromptStarter/usePromptStarterStyles.styles.js +292 -0
  77. package/lib-commonjs/components/PromptStarter/usePromptStarterStyles.styles.js.map +1 -0
  78. package/lib-commonjs/components/PromptStarter/usePromptStarterStyles.styles.raw.js +112 -0
  79. package/lib-commonjs/components/PromptStarter/usePromptStarterStyles.styles.raw.js.map +1 -0
  80. package/lib-commonjs/components/PromptStarterV2/PromptStarter/PromptStarter.js +23 -0
  81. package/lib-commonjs/components/PromptStarterV2/PromptStarter/PromptStarter.js.map +1 -0
  82. package/lib-commonjs/components/PromptStarterV2/PromptStarter/PromptStarter.types.js +6 -0
  83. package/lib-commonjs/components/PromptStarterV2/PromptStarter/PromptStarter.types.js.map +1 -0
  84. package/lib-commonjs/components/PromptStarterV2/PromptStarter/index.js +31 -0
  85. package/lib-commonjs/components/PromptStarterV2/PromptStarter/index.js.map +1 -0
  86. package/lib-commonjs/components/PromptStarterV2/PromptStarter/promptStarterMotion.js +73 -0
  87. package/lib-commonjs/components/PromptStarterV2/PromptStarter/promptStarterMotion.js.map +1 -0
  88. package/lib-commonjs/components/PromptStarterV2/PromptStarter/renderPromptStarter.js +28 -0
  89. package/lib-commonjs/components/PromptStarterV2/PromptStarter/renderPromptStarter.js.map +1 -0
  90. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarter.js +75 -0
  91. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarter.js.map +1 -0
  92. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js +620 -0
  93. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.js.map +1 -0
  94. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js +178 -0
  95. package/lib-commonjs/components/PromptStarterV2/PromptStarter/usePromptStarterStyles.styles.raw.js.map +1 -0
  96. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/PromptStarterList.js +23 -0
  97. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/PromptStarterList.js.map +1 -0
  98. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/PromptStarterList.types.js +4 -0
  99. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/PromptStarterList.types.js.map +1 -0
  100. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/index.js +31 -0
  101. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/index.js.map +1 -0
  102. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js +30 -0
  103. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/renderPromptStarterList.js.map +1 -0
  104. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js +120 -0
  105. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterList.js.map +1 -0
  106. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListContextValues.js +16 -0
  107. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListContextValues.js.map +1 -0
  108. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js +126 -0
  109. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.js.map +1 -0
  110. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js +89 -0
  111. package/lib-commonjs/components/PromptStarterV2/PromptStarterList/usePromptStarterListStyles.styles.raw.js.map +1 -0
  112. package/lib-commonjs/contexts/PromptStarterListContext.js +28 -0
  113. package/lib-commonjs/contexts/PromptStarterListContext.js.map +1 -0
  114. package/lib-commonjs/index.js +60 -0
  115. package/lib-commonjs/index.js.map +1 -0
  116. package/package.json +3 -3
@@ -0,0 +1,94 @@
1
+ import { makeStyles, makeResetStyles, mergeClasses, shorthands, typographyStyles, createFocusOutlineStyle } from '@fluentui/react-components';
2
+ import { tokens } from '@fluentui-copilot/tokens';
3
+ export const promptStarterClassNames = {
4
+ root: 'fai-PromptStarter',
5
+ category: 'fai-PromptStarter__category',
6
+ icon: 'fai-PromptStarter__icon',
7
+ prompt: 'fai-PromptStarter__prompt',
8
+ badge: 'fai-PromptStarter__badge'
9
+ };
10
+ const useRootResetStyles = makeResetStyles({
11
+ position: 'relative',
12
+ display: 'grid',
13
+ gridTemplateColumns: 'auto 1fr',
14
+ gridTemplateRows: 'auto auto',
15
+ gridTemplateAreas: `
16
+ "icon category"
17
+ ". prompt"
18
+ `,
19
+ backgroundColor: tokens.colorNeutralBackground1,
20
+ color: tokens.colorNeutralForeground1,
21
+ fontFamily: tokens.fontFamilyBase,
22
+ cursor: 'pointer',
23
+ outlineStyle: 'none',
24
+ textAlign: 'left',
25
+ gap: '0px 8px',
26
+ padding: '6px 8px 8px 8px',
27
+ ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1),
28
+ borderRadius: tokens.borderRadiusMedium,
29
+ '&:hover': {
30
+ backgroundColor: tokens.colorNeutralBackground1Hover,
31
+ ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1Hover)
32
+ },
33
+ '&:active': {
34
+ backgroundColor: tokens.colorNeutralBackground1Pressed,
35
+ ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1Pressed)
36
+ },
37
+ ...createFocusOutlineStyle()
38
+ });
39
+ const useStyles = makeStyles({
40
+ disabled: {
41
+ cursor: 'not-allowed',
42
+ backgroundColor: tokens.colorNeutralBackgroundDisabled,
43
+ ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStrokeDisabled),
44
+ '&:hover': {
45
+ backgroundColor: tokens.colorNeutralBackgroundDisabled,
46
+ ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStrokeDisabled)
47
+ },
48
+ '&:active': {
49
+ backgroundColor: tokens.colorNeutralBackgroundDisabled,
50
+ ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStrokeDisabled)
51
+ }
52
+ },
53
+ icon: {
54
+ gridArea: 'icon',
55
+ display: 'flex',
56
+ alignSelf: 'center'
57
+ },
58
+ category: {
59
+ ...typographyStyles.body1Strong,
60
+ gridArea: 'category'
61
+ },
62
+ prompt: {
63
+ ...typographyStyles.body1,
64
+ gridArea: 'prompt'
65
+ },
66
+ disabledText: {
67
+ color: tokens.colorNeutralForegroundDisabled
68
+ },
69
+ disabledBadge: {
70
+ opacity: '40%'
71
+ }
72
+ });
73
+ const useNextStyles = makeStyles({
74
+ root: {
75
+ borderRadius: tokens.borderRadiusXLarge
76
+ }
77
+ });
78
+ export const usePromptStarterStyles_unstable = (state)=>{
79
+ 'use no memo';
80
+ const { designVersion } = state;
81
+ const styles = useStyles();
82
+ const nextStyles = useNextStyles();
83
+ const rootResetStyles = useRootResetStyles();
84
+ state.root.className = mergeClasses(promptStarterClassNames.root, rootResetStyles, designVersion === 'next' && nextStyles.root, state.root.disabled && styles.disabled, state.root.className);
85
+ state.icon.className = mergeClasses(promptStarterClassNames.icon, styles.icon, state.root.disabled && styles.disabledText, state.icon.className);
86
+ state.category.className = mergeClasses(promptStarterClassNames.category, styles.category, state.category.className, state.root.disabled && styles.disabledText);
87
+ if (state.prompt) {
88
+ state.prompt.className = mergeClasses(promptStarterClassNames.prompt, styles.prompt, state.root.disabled && styles.disabledText, state.prompt.className);
89
+ }
90
+ if (state.badge) {
91
+ state.badge.className = mergeClasses(promptStarterClassNames.badge, state.root.disabled && styles.disabledBadge, state.badge.className);
92
+ }
93
+ return state;
94
+ };
@@ -0,0 +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 category: 'fai-PromptStarter__category',\n icon: 'fai-PromptStarter__icon',\n prompt: 'fai-PromptStarter__prompt',\n badge: 'fai-PromptStarter__badge',\n};\n\nconst useRootResetStyles = makeResetStyles({\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto auto',\n gridTemplateAreas: `\n \"icon category\"\n \". prompt\"\n `,\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n fontFamily: tokens.fontFamilyBase,\n cursor: 'pointer',\n outlineStyle: 'none',\n textAlign: 'left',\n gap: '0px 8px',\n padding: '6px 8px 8px 8px',\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1),\n borderRadius: tokens.borderRadiusMedium,\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1Hover),\n },\n '&:active': {\n backgroundColor: tokens.colorNeutralBackground1Pressed,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStroke1Pressed),\n },\n ...createFocusOutlineStyle(),\n});\n\nconst useStyles = makeStyles({\n disabled: {\n cursor: 'not-allowed',\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStrokeDisabled),\n '&:hover': {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStrokeDisabled),\n },\n '&:active': {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n ...shorthands.border(tokens.strokeWidthThin, 'solid', tokens.colorNeutralStrokeDisabled),\n },\n },\n icon: { gridArea: 'icon', display: 'flex', alignSelf: 'center' },\n\n category: {\n ...typographyStyles.body1Strong,\n gridArea: 'category',\n },\n prompt: { ...typographyStyles.body1, gridArea: 'prompt' },\n disabledText: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n disabledBadge: {\n opacity: '40%',\n },\n});\n\nconst useNextStyles = makeStyles({ root: { borderRadius: tokens.borderRadiusXLarge } });\n\nexport const usePromptStarterStyles_unstable = (state: PromptStarterState): PromptStarterState => {\n 'use no memo';\n\n const { designVersion } = state;\n\n const styles = useStyles();\n const nextStyles = useNextStyles();\n const rootResetStyles = useRootResetStyles();\n state.root.className = mergeClasses(\n promptStarterClassNames.root,\n rootResetStyles,\n designVersion === 'next' && nextStyles.root,\n state.root.disabled && styles.disabled,\n state.root.className,\n );\n state.icon.className = mergeClasses(\n promptStarterClassNames.icon,\n styles.icon,\n state.root.disabled && styles.disabledText,\n state.icon.className,\n );\n state.category.className = mergeClasses(\n promptStarterClassNames.category,\n styles.category,\n state.category.className,\n state.root.disabled && styles.disabledText,\n );\n if (state.prompt) {\n state.prompt.className = mergeClasses(\n promptStarterClassNames.prompt,\n styles.prompt,\n state.root.disabled && styles.disabledText,\n state.prompt.className,\n );\n }\n if (state.badge) {\n state.badge.className = mergeClasses(\n promptStarterClassNames.badge,\n state.root.disabled && styles.disabledBadge,\n state.badge.className,\n );\n }\n\n return state;\n};\n"],"names":["makeStyles","makeResetStyles","mergeClasses","shorthands","typographyStyles","createFocusOutlineStyle","tokens","promptStarterClassNames","root","category","icon","prompt","badge","useRootResetStyles","position","display","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","backgroundColor","colorNeutralBackground1","color","colorNeutralForeground1","fontFamily","fontFamilyBase","cursor","outlineStyle","textAlign","gap","padding","border","strokeWidthThin","colorNeutralStroke1","borderRadius","borderRadiusMedium","colorNeutralBackground1Hover","colorNeutralStroke1Hover","colorNeutralBackground1Pressed","colorNeutralStroke1Pressed","useStyles","disabled","colorNeutralBackgroundDisabled","colorNeutralStrokeDisabled","gridArea","alignSelf","body1Strong","body1","disabledText","colorNeutralForegroundDisabled","disabledBadge","opacity","useNextStyles","borderRadiusXLarge","usePromptStarterStyles_unstable","state","designVersion","styles","nextStyles","rootResetStyles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import { usePromptStarter_unstable } from './usePromptStarter';
3
+ import { renderPromptStarter_unstable } from './renderPromptStarter';
4
+ import { usePromptStarterStyles_unstable } from './usePromptStarterStyles.styles';
5
+ import { useCustomStyleHook } from '@fluentui-copilot/react-provider';
6
+ export const PromptStarter = /*#__PURE__*/ React.forwardRef((props, ref)=>{
7
+ const state = usePromptStarter_unstable(props, ref);
8
+ usePromptStarterStyles_unstable(state);
9
+ useCustomStyleHook('usePromptStarterStyles')(state);
10
+ return renderPromptStarter_unstable(state);
11
+ });
12
+ PromptStarter.displayName = 'PromptStarter';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PromptStarter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { usePromptStarter_unstable } from './usePromptStarter';\nimport { renderPromptStarter_unstable } from './renderPromptStarter';\nimport { usePromptStarterStyles_unstable } from './usePromptStarterStyles.styles';\nimport { useCustomStyleHook } from '@fluentui-copilot/react-provider';\nimport type { PromptStarterProps } from './PromptStarter.types';\nimport type { ForwardRefComponent } from '@fluentui/react-components';\n\nexport const PromptStarter: ForwardRefComponent<PromptStarterProps> = React.forwardRef((props, ref) => {\n const state = usePromptStarter_unstable(props, ref);\n\n usePromptStarterStyles_unstable(state);\n useCustomStyleHook('usePromptStarterStyles')(state);\n\n return renderPromptStarter_unstable(state);\n});\n\nPromptStarter.displayName = 'PromptStarter';\n"],"names":["React","usePromptStarter_unstable","renderPromptStarter_unstable","usePromptStarterStyles_unstable","useCustomStyleHook","PromptStarter","forwardRef","props","ref","state","displayName"],"rangeMappings":";;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,+BAA+B,QAAQ,kCAAkC;AAClF,SAASC,kBAAkB,QAAQ,mCAAmC;AAItE,OAAO,MAAMC,8BAAyDL,MAAMM,UAAU,CAAC,CAACC,OAAOC;IAC7F,MAAMC,QAAQR,0BAA0BM,OAAOC;IAE/CL,gCAAgCM;IAChCL,mBAAmB,0BAA0BK;IAE7C,OAAOP,6BAA6BO;AACtC,GAAG;AAEHJ,cAAcK,WAAW,GAAG"}
@@ -0,0 +1,3 @@
1
+ /**
2
+ * State used in rendering PromptStarter
3
+ */ export { };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PromptStarter.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-components';\n\nexport type PromptStarterSlots = {\n root: NonNullable<Slot<'div'>>;\n primaryAction: NonNullable<Slot<'button'>>;\n icon?: Slot<'span'>;\n category?: Slot<'span'>;\n prompt: NonNullable<Slot<'span'>>;\n reasonMarker?: Slot<'span'>;\n actions?: Slot<'span'>;\n};\n\n/**\n * PromptStarter Props\n */\nexport type PromptStarterProps = Omit<ComponentProps<PromptStarterSlots>, 'disabled'>;\n\n/**\n * State used in rendering PromptStarter\n */\nexport type PromptStarterState = ComponentState<PromptStarterSlots> & {\n isSingleColumn?: boolean;\n};\n"],"names":[],"rangeMappings":";;","mappings":"AAiBA;;CAEC,GACD,WAEE"}
@@ -0,0 +1,4 @@
1
+ export { PromptStarter } from './PromptStarter';
2
+ export { renderPromptStarter_unstable } from './renderPromptStarter';
3
+ export { usePromptStarter_unstable } from './usePromptStarter';
4
+ export { promptStarterClassNames, usePromptStarterStyles_unstable } from './usePromptStarterStyles.styles';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export { PromptStarter } from './PromptStarter';\nexport type { PromptStarterProps, PromptStarterSlots, PromptStarterState } from './PromptStarter.types';\nexport { renderPromptStarter_unstable } from './renderPromptStarter';\nexport { usePromptStarter_unstable } from './usePromptStarter';\nexport { promptStarterClassNames, usePromptStarterStyles_unstable } from './usePromptStarterStyles.styles';\n"],"names":["PromptStarter","renderPromptStarter_unstable","usePromptStarter_unstable","promptStarterClassNames","usePromptStarterStyles_unstable"],"rangeMappings":";;;","mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,uBAAuB,EAAEC,+BAA+B,QAAQ,kCAAkC"}
@@ -0,0 +1,63 @@
1
+ import { createPresenceComponent } from '@fluentui/react-components';
2
+ export const PromptStarterMotion = createPresenceComponent(({ index, numberOfColumns })=>{
3
+ const isFirstRow = index < numberOfColumns;
4
+ const delay = isFirstRow ? index * 50 : (index - numberOfColumns) * 50;
5
+ const opacityDuration = 100;
6
+ const opacityOffset = delay / (delay + opacityDuration);
7
+ const opacityEasing = 'linear';
8
+ const scaleDuration = 500;
9
+ const scaleOffset = delay / (delay + scaleDuration);
10
+ const scaleEasing = `cubic-bezier(0.22, 1.59, 0.46, 1)`;
11
+ const opacityExitDuration = 200;
12
+ return {
13
+ enter: [
14
+ {
15
+ keyframes: [
16
+ {
17
+ opacity: 0
18
+ },
19
+ {
20
+ opacity: 0,
21
+ offset: opacityOffset
22
+ },
23
+ {
24
+ opacity: 1
25
+ }
26
+ ],
27
+ easing: opacityEasing,
28
+ duration: opacityDuration + delay
29
+ },
30
+ {
31
+ keyframes: [
32
+ {
33
+ transform: 'scale(0.9)'
34
+ },
35
+ {
36
+ transform: 'scale(0.9)',
37
+ offset: scaleOffset
38
+ },
39
+ {
40
+ transform: 'scale(1)'
41
+ }
42
+ ],
43
+ easing: scaleEasing,
44
+ duration: scaleDuration + delay
45
+ }
46
+ ],
47
+ exit: {
48
+ keyframes: [
49
+ {
50
+ opacity: 1
51
+ },
52
+ {
53
+ opacity: 1
54
+ },
55
+ {
56
+ opacity: 0
57
+ }
58
+ ],
59
+ easing: opacityEasing,
60
+ duration: opacityExitDuration
61
+ }
62
+ };
63
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["promptStarterMotion.ts"],"sourcesContent":["import { createPresenceComponent } from '@fluentui/react-components';\n\nexport type PromptStarterMotionParams = { index: number; numberOfColumns: number };\n\nexport const PromptStarterMotion: ReturnType<typeof createPresenceComponent<PromptStarterMotionParams>> =\n createPresenceComponent<PromptStarterMotionParams>(({ index, numberOfColumns }) => {\n const isFirstRow = index < numberOfColumns;\n const delay = isFirstRow ? index * 50 : (index - numberOfColumns) * 50;\n\n const opacityDuration = 100;\n const opacityOffset = delay / (delay + opacityDuration);\n const opacityEasing = 'linear';\n\n const scaleDuration = 500;\n const scaleOffset = delay / (delay + scaleDuration);\n const scaleEasing = `cubic-bezier(0.22, 1.59, 0.46, 1)`;\n\n const opacityExitDuration = 200;\n\n return {\n enter: [\n {\n keyframes: [{ opacity: 0 }, { opacity: 0, offset: opacityOffset }, { opacity: 1 }],\n easing: opacityEasing,\n duration: opacityDuration + delay,\n },\n {\n keyframes: [\n { transform: 'scale(0.9)' },\n { transform: 'scale(0.9)', offset: scaleOffset },\n { transform: 'scale(1)' },\n ],\n easing: scaleEasing,\n duration: scaleDuration + delay,\n },\n ],\n exit: {\n keyframes: [{ opacity: 1 }, { opacity: 1 }, { opacity: 0 }],\n easing: opacityEasing,\n duration: opacityExitDuration,\n },\n };\n });\n"],"names":["createPresenceComponent","PromptStarterMotion","index","numberOfColumns","isFirstRow","delay","opacityDuration","opacityOffset","opacityEasing","scaleDuration","scaleOffset","scaleEasing","opacityExitDuration","enter","keyframes","opacity","offset","easing","duration","transform","exit"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,uBAAuB,QAAQ,6BAA6B;AAIrE,OAAO,MAAMC,sBACXD,wBAAmD,CAAC,EAAEE,KAAK,EAAEC,eAAe,EAAE;IAC5E,MAAMC,aAAaF,QAAQC;IAC3B,MAAME,QAAQD,aAAaF,QAAQ,KAAK,AAACA,CAAAA,QAAQC,eAAc,IAAK;IAEpE,MAAMG,kBAAkB;IACxB,MAAMC,gBAAgBF,QAASA,CAAAA,QAAQC,eAAc;IACrD,MAAME,gBAAgB;IAEtB,MAAMC,gBAAgB;IACtB,MAAMC,cAAcL,QAASA,CAAAA,QAAQI,aAAY;IACjD,MAAME,cAAc,CAAC,iCAAiC,CAAC;IAEvD,MAAMC,sBAAsB;IAE5B,OAAO;QACLC,OAAO;YACL;gBACEC,WAAW;oBAAC;wBAAEC,SAAS;oBAAE;oBAAG;wBAAEA,SAAS;wBAAGC,QAAQT;oBAAc;oBAAG;wBAAEQ,SAAS;oBAAE;iBAAE;gBAClFE,QAAQT;gBACRU,UAAUZ,kBAAkBD;YAC9B;YACA;gBACES,WAAW;oBACT;wBAAEK,WAAW;oBAAa;oBAC1B;wBAAEA,WAAW;wBAAcH,QAAQN;oBAAY;oBAC/C;wBAAES,WAAW;oBAAW;iBACzB;gBACDF,QAAQN;gBACRO,UAAUT,gBAAgBJ;YAC5B;SACD;QACDe,MAAM;YACJN,WAAW;gBAAC;oBAAEC,SAAS;gBAAE;gBAAG;oBAAEA,SAAS;gBAAE;gBAAG;oBAAEA,SAAS;gBAAE;aAAE;YAC3DE,QAAQT;YACRU,UAAUN;QACZ;IACF;AACF,GAAG"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@fluentui/react-jsx-runtime/jsx-runtime";
2
+ import { assertSlots } from '@fluentui/react-components';
3
+ export const renderPromptStarter_unstable = (state)=>{
4
+ assertSlots(state);
5
+ return /*#__PURE__*/ _jsxs(state.root, {
6
+ children: [
7
+ /*#__PURE__*/ _jsxs(state.primaryAction, {
8
+ children: [
9
+ state.icon && /*#__PURE__*/ _jsx(state.icon, {}),
10
+ state.category && /*#__PURE__*/ _jsx(state.category, {}),
11
+ /*#__PURE__*/ _jsx(state.prompt, {}),
12
+ state.reasonMarker && /*#__PURE__*/ _jsx(state.reasonMarker, {})
13
+ ]
14
+ }),
15
+ state.actions && /*#__PURE__*/ _jsx(state.actions, {})
16
+ ]
17
+ });
18
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["renderPromptStarter.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PromptStarterState, PromptStarterSlots } from './PromptStarter.types';\n\nexport const renderPromptStarter_unstable = (state: PromptStarterState): JSXElement => {\n assertSlots<PromptStarterSlots>(state);\n\n return (\n <state.root>\n <state.primaryAction>\n {state.icon && <state.icon />}\n {state.category && <state.category />}\n <state.prompt />\n {state.reasonMarker && <state.reasonMarker />}\n </state.primaryAction>\n {state.actions && <state.actions />}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderPromptStarter_unstable","state","root","primaryAction","icon","category","prompt","reasonMarker","actions"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;AAIzD,OAAO,MAAMC,+BAA+B,CAACC;IAC3CF,YAAgCE;IAEhC,qBACE,MAACA,MAAMC,IAAI;;0BACT,MAACD,MAAME,aAAa;;oBACjBF,MAAMG,IAAI,kBAAI,KAACH,MAAMG,IAAI;oBACzBH,MAAMI,QAAQ,kBAAI,KAACJ,MAAMI,QAAQ;kCAClC,KAACJ,MAAMK,MAAM;oBACZL,MAAMM,YAAY,kBAAI,KAACN,MAAMM,YAAY;;;YAE3CN,MAAMO,OAAO,kBAAI,KAACP,MAAMO,OAAO;;;AAGtC,EAAE"}
@@ -0,0 +1,73 @@
1
+ import { getIntrinsicElementProps, slot, useFocusableGroup, useId } from '@fluentui/react-components';
2
+ import { usePromptStarterListContext } from '../../../contexts/PromptStarterListContext';
3
+ /**
4
+ * Create the state required to render PromptStarter.
5
+ *
6
+ * The returned state can be modified with hooks such as usePromptStarterStyles_unstable,
7
+ * before being passed to renderPromptStarter_unstable.
8
+ *
9
+ * @param props - props from this instance of PromptStarter
10
+ * @param ref - reference to root HTMLElement of PromptStarter
11
+ */ export const usePromptStarter_unstable = (props, ref)=>{
12
+ const id = useId('prompt-starter');
13
+ const focusAttrs = useFocusableGroup();
14
+ const numberOfColumns = usePromptStarterListContext((ctx)=>ctx.numberOfColumns);
15
+ // if this is defined, the context exists and the Prompt is within PromptStarterList
16
+ const isWithinList = typeof numberOfColumns === 'number';
17
+ const isSingleColumn = numberOfColumns === 1;
18
+ const state = {
19
+ isSingleColumn,
20
+ components: {
21
+ root: 'div',
22
+ primaryAction: 'button',
23
+ icon: 'span',
24
+ category: 'span',
25
+ prompt: 'span',
26
+ reasonMarker: 'span',
27
+ actions: 'span'
28
+ },
29
+ root: slot.always(getIntrinsicElementProps('div', {
30
+ ref,
31
+ role: isWithinList ? 'listitem' : undefined,
32
+ ...focusAttrs,
33
+ ...props
34
+ }), {
35
+ elementType: 'div'
36
+ }),
37
+ primaryAction: slot.always(props.primaryAction, {
38
+ defaultProps: {
39
+ 'aria-labelledby': `${id}-category ${id}-prompt`,
40
+ 'aria-describedby': `${id}-icon ${id}-reasonMarker`
41
+ },
42
+ elementType: 'button'
43
+ }),
44
+ icon: !isSingleColumn ? slot.optional(props.icon, {
45
+ defaultProps: {
46
+ id: `${id}-icon`
47
+ },
48
+ elementType: 'span'
49
+ }) : undefined,
50
+ category: !isSingleColumn ? slot.optional(props.category, {
51
+ defaultProps: {
52
+ id: `${id}-category`
53
+ },
54
+ elementType: 'span'
55
+ }) : undefined,
56
+ prompt: slot.always(props.prompt, {
57
+ defaultProps: {
58
+ id: `${id}-prompt`
59
+ },
60
+ elementType: 'span'
61
+ }),
62
+ reasonMarker: !isSingleColumn ? slot.optional(props.reasonMarker, {
63
+ defaultProps: {
64
+ id: `${id}-reasonMarker`
65
+ },
66
+ elementType: 'span'
67
+ }) : undefined,
68
+ actions: !isSingleColumn ? slot.optional(props.actions, {
69
+ elementType: 'span'
70
+ }) : undefined
71
+ };
72
+ return state;
73
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["usePromptStarter.ts"],"sourcesContent":["import { getIntrinsicElementProps, slot, useFocusableGroup, useId } from '@fluentui/react-components';\nimport { usePromptStarterListContext } from '../../../contexts/PromptStarterListContext';\nimport type { PromptStarterProps, PromptStarterState } from './PromptStarter.types';\n\n/**\n * Create the state required to render PromptStarter.\n *\n * The returned state can be modified with hooks such as usePromptStarterStyles_unstable,\n * before being passed to renderPromptStarter_unstable.\n *\n * @param props - props from this instance of PromptStarter\n * @param ref - reference to root HTMLElement of PromptStarter\n */\nexport const usePromptStarter_unstable = (\n props: PromptStarterProps,\n ref: React.Ref<HTMLDivElement>,\n): PromptStarterState => {\n const id = useId('prompt-starter');\n const focusAttrs = useFocusableGroup();\n\n const numberOfColumns = usePromptStarterListContext(ctx => ctx.numberOfColumns);\n // if this is defined, the context exists and the Prompt is within PromptStarterList\n const isWithinList = typeof numberOfColumns === 'number';\n\n const isSingleColumn = numberOfColumns === 1;\n\n const state: PromptStarterState = {\n isSingleColumn,\n components: {\n root: 'div',\n primaryAction: 'button',\n icon: 'span',\n category: 'span',\n prompt: 'span',\n reasonMarker: 'span',\n actions: 'span',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n role: isWithinList ? 'listitem' : undefined,\n ...focusAttrs,\n ...props,\n }),\n { elementType: 'div' },\n ),\n primaryAction: slot.always(props.primaryAction, {\n defaultProps: {\n 'aria-labelledby': `${id}-category ${id}-prompt`,\n 'aria-describedby': `${id}-icon ${id}-reasonMarker`,\n },\n elementType: 'button',\n }),\n icon: !isSingleColumn\n ? slot.optional(props.icon, {\n defaultProps: { id: `${id}-icon` },\n elementType: 'span',\n })\n : undefined,\n category: !isSingleColumn\n ? slot.optional(props.category, {\n defaultProps: { id: `${id}-category` },\n elementType: 'span',\n })\n : undefined,\n prompt: slot.always(props.prompt, {\n defaultProps: { id: `${id}-prompt` },\n elementType: 'span',\n }),\n reasonMarker: !isSingleColumn\n ? slot.optional(props.reasonMarker, {\n defaultProps: { id: `${id}-reasonMarker` },\n elementType: 'span',\n })\n : undefined,\n actions: !isSingleColumn ? slot.optional(props.actions, { elementType: 'span' }) : undefined,\n };\n\n return state;\n};\n"],"names":["getIntrinsicElementProps","slot","useFocusableGroup","useId","usePromptStarterListContext","usePromptStarter_unstable","props","ref","id","focusAttrs","numberOfColumns","ctx","isWithinList","isSingleColumn","state","components","root","primaryAction","icon","category","prompt","reasonMarker","actions","always","role","undefined","elementType","defaultProps","optional"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,wBAAwB,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,KAAK,QAAQ,6BAA6B;AACtG,SAASC,2BAA2B,QAAQ,6CAA6C;AAGzF;;;;;;;;CAQC,GACD,OAAO,MAAMC,4BAA4B,CACvCC,OACAC;IAEA,MAAMC,KAAKL,MAAM;IACjB,MAAMM,aAAaP;IAEnB,MAAMQ,kBAAkBN,4BAA4BO,CAAAA,MAAOA,IAAID,eAAe;IAC9E,oFAAoF;IACpF,MAAME,eAAe,OAAOF,oBAAoB;IAEhD,MAAMG,iBAAiBH,oBAAoB;IAE3C,MAAMI,QAA4B;QAChCD;QACAE,YAAY;YACVC,MAAM;YACNC,eAAe;YACfC,MAAM;YACNC,UAAU;YACVC,QAAQ;YACRC,cAAc;YACdC,SAAS;QACX;QACAN,MAAMf,KAAKsB,MAAM,CACfvB,yBAAyB,OAAO;YAC9BO;YACAiB,MAAMZ,eAAe,aAAaa;YAClC,GAAGhB,UAAU;YACb,GAAGH,KAAK;QACV,IACA;YAAEoB,aAAa;QAAM;QAEvBT,eAAehB,KAAKsB,MAAM,CAACjB,MAAMW,aAAa,EAAE;YAC9CU,cAAc;gBACZ,mBAAmB,CAAC,EAAEnB,GAAG,UAAU,EAAEA,GAAG,OAAO,CAAC;gBAChD,oBAAoB,CAAC,EAAEA,GAAG,MAAM,EAAEA,GAAG,aAAa,CAAC;YACrD;YACAkB,aAAa;QACf;QACAR,MAAM,CAACL,iBACHZ,KAAK2B,QAAQ,CAACtB,MAAMY,IAAI,EAAE;YACxBS,cAAc;gBAAEnB,IAAI,CAAC,EAAEA,GAAG,KAAK,CAAC;YAAC;YACjCkB,aAAa;QACf,KACAD;QACJN,UAAU,CAACN,iBACPZ,KAAK2B,QAAQ,CAACtB,MAAMa,QAAQ,EAAE;YAC5BQ,cAAc;gBAAEnB,IAAI,CAAC,EAAEA,GAAG,SAAS,CAAC;YAAC;YACrCkB,aAAa;QACf,KACAD;QACJL,QAAQnB,KAAKsB,MAAM,CAACjB,MAAMc,MAAM,EAAE;YAChCO,cAAc;gBAAEnB,IAAI,CAAC,EAAEA,GAAG,OAAO,CAAC;YAAC;YACnCkB,aAAa;QACf;QACAL,cAAc,CAACR,iBACXZ,KAAK2B,QAAQ,CAACtB,MAAMe,YAAY,EAAE;YAChCM,cAAc;gBAAEnB,IAAI,CAAC,EAAEA,GAAG,aAAa,CAAC;YAAC;YACzCkB,aAAa;QACf,KACAD;QACJH,SAAS,CAACT,iBAAiBZ,KAAK2B,QAAQ,CAACtB,MAAMgB,OAAO,EAAE;YAAEI,aAAa;QAAO,KAAKD;IACrF;IAEA,OAAOX;AACT,EAAE"}