@fluentui/react-tag-picker 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +165 -0
- package/LICENSE +15 -0
- package/README.md +68 -0
- package/Spec.md +208 -0
- package/dist/index.d.ts +453 -0
- package/lib/TagPicker.js +1 -0
- package/lib/TagPicker.js.map +1 -0
- package/lib/TagPickerButton.js +1 -0
- package/lib/TagPickerButton.js.map +1 -0
- package/lib/TagPickerControl.js +1 -0
- package/lib/TagPickerControl.js.map +1 -0
- package/lib/TagPickerGroup.js +1 -0
- package/lib/TagPickerGroup.js.map +1 -0
- package/lib/TagPickerInput.js +1 -0
- package/lib/TagPickerInput.js.map +1 -0
- package/lib/TagPickerList.js +1 -0
- package/lib/TagPickerList.js.map +1 -0
- package/lib/TagPickerOption.js +1 -0
- package/lib/TagPickerOption.js.map +1 -0
- package/lib/TagPickerOptionGroup.js +1 -0
- package/lib/TagPickerOptionGroup.js.map +1 -0
- package/lib/components/TagPicker/TagPicker.js +13 -0
- package/lib/components/TagPicker/TagPicker.js.map +1 -0
- package/lib/components/TagPicker/TagPicker.types.js +1 -0
- package/lib/components/TagPicker/TagPicker.types.js.map +1 -0
- package/lib/components/TagPicker/index.js +4 -0
- package/lib/components/TagPicker/index.js.map +1 -0
- package/lib/components/TagPicker/renderTagPicker.js +20 -0
- package/lib/components/TagPicker/renderTagPicker.js.map +1 -0
- package/lib/components/TagPicker/useTagPicker.js +123 -0
- package/lib/components/TagPicker/useTagPicker.js.map +1 -0
- package/lib/components/TagPicker/useTagPickerContextValues.js +41 -0
- package/lib/components/TagPicker/useTagPickerContextValues.js.map +1 -0
- package/lib/components/TagPickerButton/TagPickerButton.js +15 -0
- package/lib/components/TagPickerButton/TagPickerButton.js.map +1 -0
- package/lib/components/TagPickerButton/TagPickerButton.types.js +1 -0
- package/lib/components/TagPickerButton/TagPickerButton.types.js.map +1 -0
- package/lib/components/TagPickerButton/index.js +5 -0
- package/lib/components/TagPickerButton/index.js.map +1 -0
- package/lib/components/TagPickerButton/renderTagPickerButton.js +8 -0
- package/lib/components/TagPickerButton/renderTagPickerButton.js.map +1 -0
- package/lib/components/TagPickerButton/useTagPickerButton.js +54 -0
- package/lib/components/TagPickerButton/useTagPickerButton.js.map +1 -0
- package/lib/components/TagPickerButton/useTagPickerButtonStyles.styles.js +191 -0
- package/lib/components/TagPickerButton/useTagPickerButtonStyles.styles.js.map +1 -0
- package/lib/components/TagPickerControl/TagPickerControl.js +15 -0
- package/lib/components/TagPickerControl/TagPickerControl.js.map +1 -0
- package/lib/components/TagPickerControl/TagPickerControl.types.js +1 -0
- package/lib/components/TagPickerControl/TagPickerControl.types.js.map +1 -0
- package/lib/components/TagPickerControl/index.js +5 -0
- package/lib/components/TagPickerControl/index.js.map +1 -0
- package/lib/components/TagPickerControl/renderTagPickerControl.js +18 -0
- package/lib/components/TagPickerControl/renderTagPickerControl.js.map +1 -0
- package/lib/components/TagPickerControl/useTagPickerControl.js +101 -0
- package/lib/components/TagPickerControl/useTagPickerControl.js.map +1 -0
- package/lib/components/TagPickerControl/useTagPickerControlStyles.styles.js +262 -0
- package/lib/components/TagPickerControl/useTagPickerControlStyles.styles.js.map +1 -0
- package/lib/components/TagPickerGroup/TagPickerGroup.js +16 -0
- package/lib/components/TagPickerGroup/TagPickerGroup.js.map +1 -0
- package/lib/components/TagPickerGroup/TagPickerGroup.types.js +1 -0
- package/lib/components/TagPickerGroup/TagPickerGroup.types.js.map +1 -0
- package/lib/components/TagPickerGroup/index.js +5 -0
- package/lib/components/TagPickerGroup/index.js.map +1 -0
- package/lib/components/TagPickerGroup/renderTagPickerGroup.js +7 -0
- package/lib/components/TagPickerGroup/renderTagPickerGroup.js.map +1 -0
- package/lib/components/TagPickerGroup/useTagPickerGroup.js +62 -0
- package/lib/components/TagPickerGroup/useTagPickerGroup.js.map +1 -0
- package/lib/components/TagPickerGroup/useTagPickerGroupStyles.styles.js +53 -0
- package/lib/components/TagPickerGroup/useTagPickerGroupStyles.styles.js.map +1 -0
- package/lib/components/TagPickerInput/TagPickerInput.js +15 -0
- package/lib/components/TagPickerInput/TagPickerInput.js.map +1 -0
- package/lib/components/TagPickerInput/TagPickerInput.types.js +1 -0
- package/lib/components/TagPickerInput/TagPickerInput.types.js.map +1 -0
- package/lib/components/TagPickerInput/index.js +5 -0
- package/lib/components/TagPickerInput/index.js.map +1 -0
- package/lib/components/TagPickerInput/renderTagPickerInput.js +8 -0
- package/lib/components/TagPickerInput/renderTagPickerInput.js.map +1 -0
- package/lib/components/TagPickerInput/useTagPickerInput.js +137 -0
- package/lib/components/TagPickerInput/useTagPickerInput.js.map +1 -0
- package/lib/components/TagPickerInput/useTagPickerInputStyles.styles.js +60 -0
- package/lib/components/TagPickerInput/useTagPickerInputStyles.styles.js.map +1 -0
- package/lib/components/TagPickerList/TagPickerList.js +15 -0
- package/lib/components/TagPickerList/TagPickerList.js.map +1 -0
- package/lib/components/TagPickerList/TagPickerList.types.js +1 -0
- package/lib/components/TagPickerList/TagPickerList.types.js.map +1 -0
- package/lib/components/TagPickerList/index.js +5 -0
- package/lib/components/TagPickerList/index.js.map +1 -0
- package/lib/components/TagPickerList/renderTagPickerList.js +8 -0
- package/lib/components/TagPickerList/renderTagPickerList.js.map +1 -0
- package/lib/components/TagPickerList/useTagPickerList.js +39 -0
- package/lib/components/TagPickerList/useTagPickerList.js.map +1 -0
- package/lib/components/TagPickerList/useTagPickerListStyles.styles.js +33 -0
- package/lib/components/TagPickerList/useTagPickerListStyles.styles.js.map +1 -0
- package/lib/components/TagPickerOption/TagPickerOption.js +15 -0
- package/lib/components/TagPickerOption/TagPickerOption.js.map +1 -0
- package/lib/components/TagPickerOption/TagPickerOption.types.js +1 -0
- package/lib/components/TagPickerOption/TagPickerOption.types.js.map +1 -0
- package/lib/components/TagPickerOption/index.js +5 -0
- package/lib/components/TagPickerOption/index.js.map +1 -0
- package/lib/components/TagPickerOption/renderTagPickerOption.js +14 -0
- package/lib/components/TagPickerOption/renderTagPickerOption.js.map +1 -0
- package/lib/components/TagPickerOption/useTagPickerOption.js +35 -0
- package/lib/components/TagPickerOption/useTagPickerOption.js.map +1 -0
- package/lib/components/TagPickerOption/useTagPickerOptionStyles.styles.js +49 -0
- package/lib/components/TagPickerOption/useTagPickerOptionStyles.styles.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/TagPickerOptionGroup.js +15 -0
- package/lib/components/TagPickerOptionGroup/TagPickerOptionGroup.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/TagPickerOptionGroup.types.js +1 -0
- package/lib/components/TagPickerOptionGroup/TagPickerOptionGroup.types.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/index.js +5 -0
- package/lib/components/TagPickerOptionGroup/index.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/renderTagPickerOptionGroup.js +4 -0
- package/lib/components/TagPickerOptionGroup/renderTagPickerOptionGroup.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/useTagPickerOptionGroup.js +11 -0
- package/lib/components/TagPickerOptionGroup/useTagPickerOptionGroup.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.js +18 -0
- package/lib/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.js.map +1 -0
- package/lib/contexts/TagPickerContext.js +27 -0
- package/lib/contexts/TagPickerContext.js.map +1 -0
- package/lib/index.js +9 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/tagPicker2Tag.js +32 -0
- package/lib/utils/tagPicker2Tag.js.map +1 -0
- package/lib/utils/tokens.js +6 -0
- package/lib/utils/tokens.js.map +1 -0
- package/lib/utils/useResizeObserverRef.js +22 -0
- package/lib/utils/useResizeObserverRef.js.map +1 -0
- package/lib/utils/useTagPickerFilter.js +35 -0
- package/lib/utils/useTagPickerFilter.js.map +1 -0
- package/lib-commonjs/TagPicker.js +6 -0
- package/lib-commonjs/TagPicker.js.map +1 -0
- package/lib-commonjs/TagPickerButton.js +6 -0
- package/lib-commonjs/TagPickerButton.js.map +1 -0
- package/lib-commonjs/TagPickerControl.js +6 -0
- package/lib-commonjs/TagPickerControl.js.map +1 -0
- package/lib-commonjs/TagPickerGroup.js +6 -0
- package/lib-commonjs/TagPickerGroup.js.map +1 -0
- package/lib-commonjs/TagPickerInput.js +6 -0
- package/lib-commonjs/TagPickerInput.js.map +1 -0
- package/lib-commonjs/TagPickerList.js +6 -0
- package/lib-commonjs/TagPickerList.js.map +1 -0
- package/lib-commonjs/TagPickerOption.js +6 -0
- package/lib-commonjs/TagPickerOption.js.map +1 -0
- package/lib-commonjs/TagPickerOptionGroup.js +6 -0
- package/lib-commonjs/TagPickerOptionGroup.js.map +1 -0
- package/lib-commonjs/components/TagPicker/TagPicker.js +21 -0
- package/lib-commonjs/components/TagPicker/TagPicker.js.map +1 -0
- package/lib-commonjs/components/TagPicker/TagPicker.types.js +4 -0
- package/lib-commonjs/components/TagPicker/TagPicker.types.js.map +1 -0
- package/lib-commonjs/components/TagPicker/index.js +9 -0
- package/lib-commonjs/components/TagPicker/index.js.map +1 -0
- package/lib-commonjs/components/TagPicker/renderTagPicker.js +29 -0
- package/lib-commonjs/components/TagPicker/renderTagPicker.js.map +1 -0
- package/lib-commonjs/components/TagPicker/useTagPicker.js +126 -0
- package/lib-commonjs/components/TagPicker/useTagPicker.js.map +1 -0
- package/lib-commonjs/components/TagPicker/useTagPickerContextValues.js +52 -0
- package/lib-commonjs/components/TagPicker/useTagPickerContextValues.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/TagPickerButton.js +23 -0
- package/lib-commonjs/components/TagPickerButton/TagPickerButton.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/TagPickerButton.types.js +4 -0
- package/lib-commonjs/components/TagPickerButton/TagPickerButton.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/index.js +10 -0
- package/lib-commonjs/components/TagPickerButton/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/renderTagPickerButton.js +16 -0
- package/lib-commonjs/components/TagPickerButton/renderTagPickerButton.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/useTagPickerButton.js +57 -0
- package/lib-commonjs/components/TagPickerButton/useTagPickerButton.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/useTagPickerButtonStyles.styles.js +453 -0
- package/lib-commonjs/components/TagPickerButton/useTagPickerButtonStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/TagPickerControl.js +23 -0
- package/lib-commonjs/components/TagPickerControl/TagPickerControl.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/TagPickerControl.types.js +6 -0
- package/lib-commonjs/components/TagPickerControl/TagPickerControl.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/index.js +10 -0
- package/lib-commonjs/components/TagPickerControl/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/renderTagPickerControl.js +26 -0
- package/lib-commonjs/components/TagPickerControl/renderTagPickerControl.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/useTagPickerControl.js +104 -0
- package/lib-commonjs/components/TagPickerControl/useTagPickerControl.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/useTagPickerControlStyles.styles.js +579 -0
- package/lib-commonjs/components/TagPickerControl/useTagPickerControlStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/TagPickerGroup.js +24 -0
- package/lib-commonjs/components/TagPickerGroup/TagPickerGroup.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/TagPickerGroup.types.js +4 -0
- package/lib-commonjs/components/TagPickerGroup/TagPickerGroup.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/index.js +10 -0
- package/lib-commonjs/components/TagPickerGroup/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/renderTagPickerGroup.js +17 -0
- package/lib-commonjs/components/TagPickerGroup/renderTagPickerGroup.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/useTagPickerGroup.js +65 -0
- package/lib-commonjs/components/TagPickerGroup/useTagPickerGroup.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/useTagPickerGroupStyles.styles.js +97 -0
- package/lib-commonjs/components/TagPickerGroup/useTagPickerGroupStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/TagPickerInput.js +23 -0
- package/lib-commonjs/components/TagPickerInput/TagPickerInput.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/TagPickerInput.types.js +4 -0
- package/lib-commonjs/components/TagPickerInput/TagPickerInput.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/index.js +10 -0
- package/lib-commonjs/components/TagPickerInput/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/renderTagPickerInput.js +16 -0
- package/lib-commonjs/components/TagPickerInput/renderTagPickerInput.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/useTagPickerInput.js +140 -0
- package/lib-commonjs/components/TagPickerInput/useTagPickerInput.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/useTagPickerInputStyles.styles.js +122 -0
- package/lib-commonjs/components/TagPickerInput/useTagPickerInputStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/TagPickerList.js +23 -0
- package/lib-commonjs/components/TagPickerList/TagPickerList.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/TagPickerList.types.js +4 -0
- package/lib-commonjs/components/TagPickerList/TagPickerList.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/index.js +10 -0
- package/lib-commonjs/components/TagPickerList/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/renderTagPickerList.js +16 -0
- package/lib-commonjs/components/TagPickerList/renderTagPickerList.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/useTagPickerList.js +41 -0
- package/lib-commonjs/components/TagPickerList/useTagPickerList.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/useTagPickerListStyles.styles.js +66 -0
- package/lib-commonjs/components/TagPickerList/useTagPickerListStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/TagPickerOption.js +23 -0
- package/lib-commonjs/components/TagPickerOption/TagPickerOption.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/TagPickerOption.types.js +6 -0
- package/lib-commonjs/components/TagPickerOption/TagPickerOption.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/index.js +10 -0
- package/lib-commonjs/components/TagPickerOption/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/renderTagPickerOption.js +22 -0
- package/lib-commonjs/components/TagPickerOption/renderTagPickerOption.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/useTagPickerOption.js +38 -0
- package/lib-commonjs/components/TagPickerOption/useTagPickerOption.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/useTagPickerOptionStyles.styles.js +69 -0
- package/lib-commonjs/components/TagPickerOption/useTagPickerOptionStyles.styles.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/TagPickerOptionGroup.js +23 -0
- package/lib-commonjs/components/TagPickerOptionGroup/TagPickerOptionGroup.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/TagPickerOptionGroup.types.js +4 -0
- package/lib-commonjs/components/TagPickerOptionGroup/TagPickerOptionGroup.types.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/index.js +10 -0
- package/lib-commonjs/components/TagPickerOptionGroup/index.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/renderTagPickerOptionGroup.js +12 -0
- package/lib-commonjs/components/TagPickerOptionGroup/renderTagPickerOptionGroup.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/useTagPickerOptionGroup.js +14 -0
- package/lib-commonjs/components/TagPickerOptionGroup/useTagPickerOptionGroup.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.js +32 -0
- package/lib-commonjs/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.js.map +1 -0
- package/lib-commonjs/contexts/TagPickerContext.js +47 -0
- package/lib-commonjs/contexts/TagPickerContext.js.map +1 -0
- package/lib-commonjs/index.js +138 -0
- package/lib-commonjs/index.js.map +1 -0
- package/lib-commonjs/utils/tagPicker2Tag.js +53 -0
- package/lib-commonjs/utils/tagPicker2Tag.js.map +1 -0
- package/lib-commonjs/utils/tokens.js +24 -0
- package/lib-commonjs/utils/tokens.js.map +1 -0
- package/lib-commonjs/utils/useResizeObserverRef.js +33 -0
- package/lib-commonjs/utils/useResizeObserverRef.js.map +1 -0
- package/lib-commonjs/utils/useTagPickerFilter.js +46 -0
- package/lib-commonjs/utils/useTagPickerFilter.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useTagPickerInput_unstable } from './useTagPickerInput';
|
|
3
|
+
import { renderTagPickerInput_unstable } from './renderTagPickerInput';
|
|
4
|
+
import { useTagPickerInputStyles_unstable } from './useTagPickerInputStyles.styles';
|
|
5
|
+
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
|
|
6
|
+
/**
|
|
7
|
+
* TagPickerInput component -
|
|
8
|
+
* A TagPickerInput is a composite component that allows users to query tags.
|
|
9
|
+
*/ export const TagPickerInput = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
10
|
+
const state = useTagPickerInput_unstable(props, ref);
|
|
11
|
+
useTagPickerInputStyles_unstable(state);
|
|
12
|
+
useCustomStyleHook_unstable('useTagPickerInputStyles_unstable')(state);
|
|
13
|
+
return renderTagPickerInput_unstable(state);
|
|
14
|
+
});
|
|
15
|
+
TagPickerInput.displayName = 'TagPickerInput';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TagPickerInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTagPickerInput_unstable } from './useTagPickerInput';\nimport { renderTagPickerInput_unstable } from './renderTagPickerInput';\nimport { useTagPickerInputStyles_unstable } from './useTagPickerInputStyles.styles';\nimport type { TagPickerInputProps } from './TagPickerInput.types';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * TagPickerInput component -\n * A TagPickerInput is a composite component that allows users to query tags.\n */\nexport const TagPickerInput: ForwardRefComponent<TagPickerInputProps> = React.forwardRef((props, ref) => {\n const state = useTagPickerInput_unstable(props, ref);\n\n useTagPickerInputStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerInputStyles_unstable')(state);\n\n return renderTagPickerInput_unstable(state);\n});\n\nTagPickerInput.displayName = 'TagPickerInput';\n"],"names":["React","useTagPickerInput_unstable","renderTagPickerInput_unstable","useTagPickerInputStyles_unstable","useCustomStyleHook_unstable","TagPickerInput","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,0BAA0B,QAAQ,sBAAsB;AACjE,SAASC,6BAA6B,QAAQ,yBAAyB;AACvE,SAASC,gCAAgC,QAAQ,mCAAmC;AAEpF,SAASC,2BAA2B,QAAQ,kCAAkC;AAE9E;;;CAGC,GACD,OAAO,MAAMC,+BAA2DL,MAAMM,UAAU,CAAC,CAACC,OAAOC;IAC/F,MAAMC,QAAQR,2BAA2BM,OAAOC;IAEhDL,iCAAiCM;IACjCL,4BAA4B,oCAAoCK;IAEhE,OAAOP,8BAA8BO;AACvC,GAAG;AAEHJ,eAAeK,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TagPickerInput.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { ComboboxProps } from '@fluentui/react-combobox';\nimport { TagPickerContextValue } from '../../contexts/TagPickerContext';\n\nexport type TagPickerInputSlots = {\n root: NonNullable<Slot<'input'>>;\n};\n\n/**\n * TagPickerInput Props\n */\nexport type TagPickerInputProps = Omit<\n ComponentProps<Partial<TagPickerInputSlots>>,\n 'children' | 'size' | 'defaultValue'\n> &\n Pick<ComboboxProps, 'clearable' | 'appearance'> & {\n disabled?: boolean;\n value?: string;\n };\n\n/**\n * State used in rendering TagPickerInput\n */\nexport type TagPickerInputState = ComponentState<TagPickerInputSlots> &\n Pick<TagPickerContextValue, 'size' | 'disabled'>;\n"],"names":[],"mappings":"AAAA,WAwBmD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './TagPickerInput';\nexport * from './TagPickerInput.types';\nexport * from './renderTagPickerInput';\nexport * from './useTagPickerInput';\nexport * from './useTagPickerInputStyles.styles';\n"],"names":[],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,yBAAyB;AACvC,cAAc,yBAAyB;AACvC,cAAc,sBAAsB;AACpC,cAAc,mCAAmC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Render the final JSX of TagPickerInput
|
|
5
|
+
*/ export const renderTagPickerInput_unstable = (state)=>{
|
|
6
|
+
assertSlots(state);
|
|
7
|
+
return /*#__PURE__*/ _jsx(state.root, {});
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderTagPickerInput.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { TagPickerInputState, TagPickerInputSlots } from './TagPickerInput.types';\n\n/**\n * Render the final JSX of TagPickerInput\n */\nexport const renderTagPickerInput_unstable = (state: TagPickerInputState) => {\n assertSlots<TagPickerInputSlots>(state);\n\n return <state.root />;\n};\n"],"names":["assertSlots","renderTagPickerInput_unstable","state","root"],"mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,4BAA4B;AAGxD;;CAEC,GACD,OAAO,MAAMC,gCAAgC,CAACC;IAC5CF,YAAiCE;IAEjC,qBAAO,KAACA,MAAMC,IAAI;AACpB,EAAE"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as ReactDOM from 'react-dom';
|
|
3
|
+
import { useActiveDescendantContext } from '@fluentui/react-aria';
|
|
4
|
+
import { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';
|
|
5
|
+
import { useMergedRefs, getIntrinsicElementProps, useEventCallback, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';
|
|
6
|
+
import { ArrowLeft, Backspace, Enter, Space } from '@fluentui/keyboard-keys';
|
|
7
|
+
import { useInputTriggerSlot } from '@fluentui/react-combobox';
|
|
8
|
+
import { useFieldControlProps_unstable } from '@fluentui/react-field';
|
|
9
|
+
import { tagPickerInputCSSRules } from '../../utils/tokens';
|
|
10
|
+
import { useFocusFinders } from '@fluentui/react-tabster';
|
|
11
|
+
/**
|
|
12
|
+
* Create the state required to render TagPickerInput.
|
|
13
|
+
*
|
|
14
|
+
* The returned state can be modified with hooks such as useTagPickerInputStyles_unstable,
|
|
15
|
+
* before being passed to renderTagPickerInput_unstable.
|
|
16
|
+
*
|
|
17
|
+
* @param props - props from this instance of TagPickerInput
|
|
18
|
+
* @param ref - reference to root HTMLDivElement of TagPickerInput
|
|
19
|
+
*/ export const useTagPickerInput_unstable = (props, ref)=>{
|
|
20
|
+
props = useFieldControlProps_unstable(props, {
|
|
21
|
+
supportsLabelFor: true,
|
|
22
|
+
supportsRequired: true,
|
|
23
|
+
supportsSize: true
|
|
24
|
+
});
|
|
25
|
+
const { controller: activeDescendantController } = useActiveDescendantContext();
|
|
26
|
+
const size = useTagPickerContext_unstable((ctx)=>ctx.size);
|
|
27
|
+
const contextDisabled = useTagPickerContext_unstable((ctx)=>ctx.disabled);
|
|
28
|
+
const tagPickerGroupRef = useTagPickerContext_unstable((ctx)=>ctx.tagPickerGroupRef);
|
|
29
|
+
const triggerRef = useTagPickerContext_unstable((ctx)=>ctx.triggerRef);
|
|
30
|
+
const selectedOptions = useTagPickerContext_unstable((ctx)=>ctx.selectedOptions);
|
|
31
|
+
const setValue = useTagPickerContext_unstable((ctx)=>ctx.setValue);
|
|
32
|
+
const setOpen = useTagPickerContext_unstable((ctx)=>ctx.setOpen);
|
|
33
|
+
const setHasFocus = useTagPickerContext_unstable((ctx)=>ctx.setHasFocus);
|
|
34
|
+
const clearSelection = useTagPickerContext_unstable((ctx)=>ctx.clearSelection);
|
|
35
|
+
const open = useTagPickerContext_unstable((ctx)=>ctx.open);
|
|
36
|
+
const popoverId = useTagPickerContext_unstable((ctx)=>ctx.popoverId);
|
|
37
|
+
const selectOption = useTagPickerContext_unstable((ctx)=>ctx.selectOption);
|
|
38
|
+
const getOptionById = useTagPickerContext_unstable((ctx)=>ctx.getOptionById);
|
|
39
|
+
const contextValue = useTagPickerContext_unstable((ctx)=>ctx.value);
|
|
40
|
+
useIsomorphicLayoutEffect(()=>{
|
|
41
|
+
if (!triggerRef.current) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
setTagPickerInputStretchStyle(triggerRef.current);
|
|
45
|
+
}, [
|
|
46
|
+
selectedOptions,
|
|
47
|
+
triggerRef
|
|
48
|
+
]);
|
|
49
|
+
useIsomorphicLayoutEffect(()=>{
|
|
50
|
+
if (triggerRef.current) {
|
|
51
|
+
const input = triggerRef.current;
|
|
52
|
+
const cb = ()=>setTagPickerInputStretchStyle(input);
|
|
53
|
+
input.addEventListener('input', cb);
|
|
54
|
+
return ()=>{
|
|
55
|
+
input.removeEventListener('input', cb);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}, [
|
|
59
|
+
triggerRef
|
|
60
|
+
]);
|
|
61
|
+
const { value = contextValue, disabled = contextDisabled } = props;
|
|
62
|
+
const { findLastFocusable } = useFocusFinders();
|
|
63
|
+
const isTypingRef = React.useRef(false);
|
|
64
|
+
const root = useInputTriggerSlot({
|
|
65
|
+
type: 'text',
|
|
66
|
+
value: value !== null && value !== void 0 ? value : '',
|
|
67
|
+
'aria-controls': open ? popoverId : undefined,
|
|
68
|
+
disabled,
|
|
69
|
+
...getIntrinsicElementProps('input', props),
|
|
70
|
+
onKeyDown: useEventCallback((event)=>{
|
|
71
|
+
var _props_onKeyDown;
|
|
72
|
+
(_props_onKeyDown = props.onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(props, event);
|
|
73
|
+
if ((event.key === ArrowLeft || event.key === Backspace) && event.currentTarget.selectionStart === 0 && tagPickerGroupRef.current) {
|
|
74
|
+
var _findLastFocusable;
|
|
75
|
+
(_findLastFocusable = findLastFocusable(tagPickerGroupRef.current)) === null || _findLastFocusable === void 0 ? void 0 : _findLastFocusable.focus();
|
|
76
|
+
} else if (event.key === Space) {
|
|
77
|
+
if (open && !isTypingRef.current) {
|
|
78
|
+
setOpen(event, false);
|
|
79
|
+
}
|
|
80
|
+
} else if (event.key === Enter) {
|
|
81
|
+
if (open) {
|
|
82
|
+
ReactDOM.unstable_batchedUpdates(()=>{
|
|
83
|
+
setValue(undefined);
|
|
84
|
+
setOpen(event, false);
|
|
85
|
+
});
|
|
86
|
+
} else {
|
|
87
|
+
setOpen(event, true);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
isTypingRef.current = event.key.length === 1 && event.code !== Space && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
91
|
+
})
|
|
92
|
+
}, useMergedRefs(triggerRef, ref), {
|
|
93
|
+
activeDescendantController,
|
|
94
|
+
freeform: false,
|
|
95
|
+
state: {
|
|
96
|
+
clearSelection,
|
|
97
|
+
getOptionById,
|
|
98
|
+
open,
|
|
99
|
+
selectedOptions,
|
|
100
|
+
selectOption,
|
|
101
|
+
setHasFocus,
|
|
102
|
+
setOpen,
|
|
103
|
+
setValue,
|
|
104
|
+
multiselect: true,
|
|
105
|
+
value: props.value
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
const state = {
|
|
109
|
+
components: {
|
|
110
|
+
root: 'input'
|
|
111
|
+
},
|
|
112
|
+
root,
|
|
113
|
+
disabled,
|
|
114
|
+
size
|
|
115
|
+
};
|
|
116
|
+
return state;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* while typing the user might need a bit more of space to see the text,
|
|
120
|
+
* which means the input should stretch to 100% width
|
|
121
|
+
* occupying a whole new line.
|
|
122
|
+
*
|
|
123
|
+
* This function will set the CSS variable `--width` to `100%` if the scrollWidth is greater than the offsetWidth,
|
|
124
|
+
* meaning the text is overflowing the input.
|
|
125
|
+
*
|
|
126
|
+
* @param input - input element to apply the style
|
|
127
|
+
* @returns void
|
|
128
|
+
*/ const setTagPickerInputStretchStyle = (input)=>{
|
|
129
|
+
// first we need to remove the CSS variable
|
|
130
|
+
// to properly calculate the difference between scrollWidth and offsetWidth
|
|
131
|
+
input.style.removeProperty(tagPickerInputCSSRules.width);
|
|
132
|
+
if (input.scrollWidth > input.offsetWidth + 1) {
|
|
133
|
+
input.style.setProperty(tagPickerInputCSSRules.width, '100%');
|
|
134
|
+
} else {
|
|
135
|
+
input.style.removeProperty(tagPickerInputCSSRules.width);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useTagPickerInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport type { TagPickerInputProps, TagPickerInputState } from './TagPickerInput.types';\nimport { useActiveDescendantContext } from '@fluentui/react-aria';\nimport { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';\nimport {\n useMergedRefs,\n getIntrinsicElementProps,\n useEventCallback,\n useIsomorphicLayoutEffect,\n} from '@fluentui/react-utilities';\nimport { ArrowLeft, Backspace, Enter, Space } from '@fluentui/keyboard-keys';\nimport { useInputTriggerSlot } from '@fluentui/react-combobox';\nimport { useFieldControlProps_unstable } from '@fluentui/react-field';\nimport { tagPickerInputCSSRules } from '../../utils/tokens';\nimport { useFocusFinders } from '@fluentui/react-tabster';\n\n/**\n * Create the state required to render TagPickerInput.\n *\n * The returned state can be modified with hooks such as useTagPickerInputStyles_unstable,\n * before being passed to renderTagPickerInput_unstable.\n *\n * @param props - props from this instance of TagPickerInput\n * @param ref - reference to root HTMLDivElement of TagPickerInput\n */\nexport const useTagPickerInput_unstable = (\n props: TagPickerInputProps,\n ref: React.Ref<HTMLInputElement>,\n): TagPickerInputState => {\n props = useFieldControlProps_unstable(props, { supportsLabelFor: true, supportsRequired: true, supportsSize: true });\n const { controller: activeDescendantController } = useActiveDescendantContext();\n const size = useTagPickerContext_unstable(ctx => ctx.size);\n const contextDisabled = useTagPickerContext_unstable(ctx => ctx.disabled);\n const tagPickerGroupRef = useTagPickerContext_unstable(ctx => ctx.tagPickerGroupRef);\n\n const triggerRef = useTagPickerContext_unstable(ctx => ctx.triggerRef as React.RefObject<HTMLInputElement>);\n const selectedOptions = useTagPickerContext_unstable(ctx => ctx.selectedOptions);\n const setValue = useTagPickerContext_unstable(ctx => ctx.setValue);\n const setOpen = useTagPickerContext_unstable(ctx => ctx.setOpen);\n const setHasFocus = useTagPickerContext_unstable(ctx => ctx.setHasFocus);\n const clearSelection = useTagPickerContext_unstable(ctx => ctx.clearSelection);\n const open = useTagPickerContext_unstable(ctx => ctx.open);\n const popoverId = useTagPickerContext_unstable(ctx => ctx.popoverId);\n const selectOption = useTagPickerContext_unstable(ctx => ctx.selectOption);\n const getOptionById = useTagPickerContext_unstable(ctx => ctx.getOptionById);\n const contextValue = useTagPickerContext_unstable(ctx => ctx.value);\n\n useIsomorphicLayoutEffect(() => {\n if (!triggerRef.current) {\n return;\n }\n setTagPickerInputStretchStyle(triggerRef.current);\n }, [selectedOptions, triggerRef]);\n\n useIsomorphicLayoutEffect(() => {\n if (triggerRef.current) {\n const input = triggerRef.current;\n const cb = () => setTagPickerInputStretchStyle(input);\n input.addEventListener('input', cb);\n return () => {\n input.removeEventListener('input', cb);\n };\n }\n }, [triggerRef]);\n\n const { value = contextValue, disabled = contextDisabled } = props;\n const { findLastFocusable } = useFocusFinders();\n\n const isTypingRef = React.useRef(false);\n\n const root = useInputTriggerSlot(\n {\n type: 'text',\n value: value ?? '',\n 'aria-controls': open ? popoverId : undefined,\n disabled,\n ...getIntrinsicElementProps('input', props),\n onKeyDown: useEventCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n props.onKeyDown?.(event);\n if (\n (event.key === ArrowLeft || event.key === Backspace) &&\n event.currentTarget.selectionStart === 0 &&\n tagPickerGroupRef.current\n ) {\n findLastFocusable(tagPickerGroupRef.current)?.focus();\n } else if (event.key === Space) {\n if (open && !isTypingRef.current) {\n setOpen(event, false);\n }\n } else if (event.key === Enter) {\n if (open) {\n ReactDOM.unstable_batchedUpdates(() => {\n setValue(undefined);\n setOpen(event, false);\n });\n } else {\n setOpen(event, true);\n }\n }\n isTypingRef.current =\n event.key.length === 1 && event.code !== Space && !event.altKey && !event.ctrlKey && !event.metaKey;\n }),\n },\n useMergedRefs(triggerRef, ref),\n {\n activeDescendantController,\n freeform: false,\n state: {\n clearSelection,\n getOptionById,\n open,\n selectedOptions,\n selectOption,\n setHasFocus,\n setOpen,\n setValue,\n multiselect: true,\n value: props.value,\n },\n },\n );\n\n const state: TagPickerInputState = {\n components: {\n root: 'input',\n },\n root,\n disabled,\n size,\n };\n\n return state;\n};\n\n/**\n * while typing the user might need a bit more of space to see the text,\n * which means the input should stretch to 100% width\n * occupying a whole new line.\n *\n * This function will set the CSS variable `--width` to `100%` if the scrollWidth is greater than the offsetWidth,\n * meaning the text is overflowing the input.\n *\n * @param input - input element to apply the style\n * @returns void\n */\nconst setTagPickerInputStretchStyle = (input: HTMLInputElement) => {\n // first we need to remove the CSS variable\n // to properly calculate the difference between scrollWidth and offsetWidth\n input.style.removeProperty(tagPickerInputCSSRules.width);\n if (input.scrollWidth > input.offsetWidth + 1) {\n input.style.setProperty(tagPickerInputCSSRules.width, '100%');\n } else {\n input.style.removeProperty(tagPickerInputCSSRules.width);\n }\n};\n"],"names":["React","ReactDOM","useActiveDescendantContext","useTagPickerContext_unstable","useMergedRefs","getIntrinsicElementProps","useEventCallback","useIsomorphicLayoutEffect","ArrowLeft","Backspace","Enter","Space","useInputTriggerSlot","useFieldControlProps_unstable","tagPickerInputCSSRules","useFocusFinders","useTagPickerInput_unstable","props","ref","supportsLabelFor","supportsRequired","supportsSize","controller","activeDescendantController","size","ctx","contextDisabled","disabled","tagPickerGroupRef","triggerRef","selectedOptions","setValue","setOpen","setHasFocus","clearSelection","open","popoverId","selectOption","getOptionById","contextValue","value","current","setTagPickerInputStretchStyle","input","cb","addEventListener","removeEventListener","findLastFocusable","isTypingRef","useRef","root","type","undefined","onKeyDown","event","key","currentTarget","selectionStart","focus","unstable_batchedUpdates","length","code","altKey","ctrlKey","metaKey","freeform","state","multiselect","components","style","removeProperty","width","scrollWidth","offsetWidth","setProperty"],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { __resetStyles, __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { typographyStyles, tokens } from '@fluentui/react-theme';
|
|
3
|
+
import { tagPickerInputTokens } from '../../utils/tokens';
|
|
4
|
+
export const tagPickerInputClassNames = {
|
|
5
|
+
root: 'fui-TagPickerInput'
|
|
6
|
+
};
|
|
7
|
+
const useBaseStyle = /*#__PURE__*/__resetStyles("rk7r7zd", "r123qfvl", [".rk7r7zd{background-color:var(--colorTransparentBackground);color:var(--colorNeutralForeground1);font-family:var(--fontFamilyBase);box-sizing:border-box;border-top-width:0;border-right-width:0;border-bottom-width:0;border-left-width:0;min-width:24px;max-width:100%;width:var(--fluent-TagPickerInput__width, 0);flex-grow:1;}", ".rk7r7zd:focus{outline-style:none;}", ".rk7r7zd::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".rk7r7zd::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".rk7r7zd:-ms-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".rk7r7zd::placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".rk7r7zd::after{visibility:hidden;white-space:pre-wrap;}", ".r123qfvl{background-color:var(--colorTransparentBackground);color:var(--colorNeutralForeground1);font-family:var(--fontFamilyBase);box-sizing:border-box;border-top-width:0;border-left-width:0;border-bottom-width:0;border-right-width:0;min-width:24px;max-width:100%;width:var(--fluent-TagPickerInput__width, 0);flex-grow:1;}", ".r123qfvl:focus{outline-style:none;}", ".r123qfvl::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".r123qfvl::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".r123qfvl:-ms-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".r123qfvl::placeholder{color:var(--colorNeutralForeground4);opacity:1;}", ".r123qfvl::after{visibility:hidden;white-space:pre-wrap;}"]);
|
|
8
|
+
/**
|
|
9
|
+
* Styles for the root slot
|
|
10
|
+
*/
|
|
11
|
+
const useStyles = /*#__PURE__*/__styles({
|
|
12
|
+
medium: {
|
|
13
|
+
Bahqtrf: "fk6fouc",
|
|
14
|
+
Be2twd7: "fkhj508",
|
|
15
|
+
Bhrd7zp: "figsok6",
|
|
16
|
+
Bg96gwp: "f1i3iumi",
|
|
17
|
+
z8tnut: "fp2oml8",
|
|
18
|
+
z189sj: ["fhxju0i", "f1cnd47f"],
|
|
19
|
+
Byoj8tv: "f1tdddsa",
|
|
20
|
+
uwmqm3: ["f1cnd47f", "fhxju0i"]
|
|
21
|
+
},
|
|
22
|
+
large: {
|
|
23
|
+
Bahqtrf: "fk6fouc",
|
|
24
|
+
Be2twd7: "fkhj508",
|
|
25
|
+
Bhrd7zp: "figsok6",
|
|
26
|
+
Bg96gwp: "f1i3iumi",
|
|
27
|
+
z8tnut: "f1ngh7ph",
|
|
28
|
+
z189sj: ["fhxju0i", "f1cnd47f"],
|
|
29
|
+
Byoj8tv: "f5o476b",
|
|
30
|
+
uwmqm3: ["f1cnd47f", "fhxju0i"]
|
|
31
|
+
},
|
|
32
|
+
"extra-large": {
|
|
33
|
+
Bahqtrf: "fk6fouc",
|
|
34
|
+
Be2twd7: "fkhj508",
|
|
35
|
+
Bhrd7zp: "figsok6",
|
|
36
|
+
Bg96gwp: "f1i3iumi",
|
|
37
|
+
z8tnut: "f5yzyt",
|
|
38
|
+
z189sj: ["fhxju0i", "f1cnd47f"],
|
|
39
|
+
Byoj8tv: "fx3omr",
|
|
40
|
+
uwmqm3: ["f1cnd47f", "fhxju0i"]
|
|
41
|
+
},
|
|
42
|
+
disabled: {
|
|
43
|
+
sj55zd: "f1s2aq7o",
|
|
44
|
+
De3pzq: "f1c21dwh",
|
|
45
|
+
Bceei9c: "fdrzuqr",
|
|
46
|
+
yvdlaj: "fahhnxm"
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".fp2oml8{padding-top:var(--spacingVerticalSNudge);}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}", ".f1ngh7ph{padding-top:var(--spacingVerticalMNudge);}", ".f5o476b{padding-bottom:var(--spacingVerticalMNudge);}", ".f5yzyt{padding-top:var(--spacingVerticalM);}", ".fx3omr{padding-bottom:var(--spacingVerticalM);}", ".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}", ".f1c21dwh{background-color:var(--colorTransparentBackground);}", ".fdrzuqr{cursor:not-allowed;}", ".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}", ".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"]
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Apply styling to the TagPickerInput slots based on the state
|
|
53
|
+
*/
|
|
54
|
+
export const useTagPickerInputStyles_unstable = state => {
|
|
55
|
+
const baseStyle = useBaseStyle();
|
|
56
|
+
const styles = useStyles();
|
|
57
|
+
state.root.className = mergeClasses(tagPickerInputClassNames.root, baseStyle, styles[state.size], state.disabled && styles.disabled, state.root.className);
|
|
58
|
+
return state;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=useTagPickerInputStyles.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__resetStyles","__styles","mergeClasses","shorthands","typographyStyles","tokens","tagPickerInputTokens","tagPickerInputClassNames","root","useBaseStyle","useStyles","medium","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","z8tnut","z189sj","Byoj8tv","uwmqm3","large","disabled","sj55zd","De3pzq","Bceei9c","yvdlaj","d","useTagPickerInputStyles_unstable","state","baseStyle","styles","className","size"],"sources":["useTagPickerInputStyles.styles.js"],"sourcesContent":["import { makeResetStyles, makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { typographyStyles, tokens } from '@fluentui/react-theme';\nimport { tagPickerInputTokens } from '../../utils/tokens';\nexport const tagPickerInputClassNames = {\n root: 'fui-TagPickerInput'\n};\nconst useBaseStyle = makeResetStyles({\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorNeutralForeground1,\n fontFamily: tokens.fontFamilyBase,\n boxSizing: 'border-box',\n '&:focus': {\n outlineStyle: 'none'\n },\n '&::placeholder': {\n color: tokens.colorNeutralForeground4,\n opacity: 1\n },\n '&::after': {\n visibility: 'hidden',\n whiteSpace: 'pre-wrap'\n },\n ...shorthands.border('0'),\n minWidth: '24px',\n maxWidth: '100%',\n // by default width is 0,\n // it will be calculated based on the requirement of stretching the component to 100% width\n // see setTagPickerInputStretchStyle method for more details\n width: tagPickerInputTokens.width,\n flexGrow: 1\n});\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n // size variants\n medium: {\n ...typographyStyles.body1,\n ...shorthands.padding(tokens.spacingVerticalSNudge, 0, tokens.spacingVerticalSNudge, 0)\n },\n large: {\n ...typographyStyles.body1,\n ...shorthands.padding(tokens.spacingVerticalMNudge, 0, tokens.spacingVerticalMNudge, 0)\n },\n 'extra-large': {\n ...typographyStyles.body1,\n ...shorthands.padding(tokens.spacingVerticalM, 0, tokens.spacingVerticalM, 0)\n },\n disabled: {\n color: tokens.colorNeutralForegroundDisabled,\n backgroundColor: tokens.colorTransparentBackground,\n cursor: 'not-allowed',\n '::placeholder': {\n color: tokens.colorNeutralForegroundDisabled\n }\n }\n});\n/**\n * Apply styling to the TagPickerInput slots based on the state\n */ export const useTagPickerInputStyles_unstable = (state)=>{\n const baseStyle = useBaseStyle();\n const styles = useStyles();\n state.root.className = mergeClasses(tagPickerInputClassNames.root, baseStyle, styles[state.size], state.disabled && styles.disabled, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAAAA,aAAA,EAAAC,QAAA,EAAsCC,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AACtF,SAASC,gBAAgB,EAAEC,MAAM,QAAQ,uBAAuB;AAChE,SAASC,oBAAoB,QAAQ,oBAAoB;AACzD,OAAO,MAAMC,wBAAwB,GAAG;EACpCC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,YAAY,gBAAGT,aAAA,2/CAwBpB,CAAC;AACF;AACA;AACA;AAAI,MAAMU,SAAS,gBAAGT,QAAA;EAAAU,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;EAAAC,KAAA;IAAAR,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;EAAA;IAAAP,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;EAAAE,QAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CAsBrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,gCAAgC,GAAIC,KAAK,IAAG;EACzD,MAAMC,SAAS,GAAGpB,YAAY,CAAC,CAAC;EAChC,MAAMqB,MAAM,GAAGpB,SAAS,CAAC,CAAC;EAC1BkB,KAAK,CAACpB,IAAI,CAACuB,SAAS,GAAG7B,YAAY,CAACK,wBAAwB,CAACC,IAAI,EAAEqB,SAAS,EAAEC,MAAM,CAACF,KAAK,CAACI,IAAI,CAAC,EAAEJ,KAAK,CAACP,QAAQ,IAAIS,MAAM,CAACT,QAAQ,EAAEO,KAAK,CAACpB,IAAI,CAACuB,SAAS,CAAC;EAC1J,OAAOH,KAAK;AAChB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useTagPickerList_unstable } from './useTagPickerList';
|
|
3
|
+
import { renderTagPickerList_unstable } from './renderTagPickerList';
|
|
4
|
+
import { useTagPickerListStyles_unstable } from './useTagPickerListStyles.styles';
|
|
5
|
+
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
|
|
6
|
+
/**
|
|
7
|
+
* TagPickerList component -
|
|
8
|
+
* A TagPickerList is a composite component that allows users to display a list of tag options to be selected.
|
|
9
|
+
*/ export const TagPickerList = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
10
|
+
const state = useTagPickerList_unstable(props, ref);
|
|
11
|
+
useTagPickerListStyles_unstable(state);
|
|
12
|
+
useCustomStyleHook_unstable('useTagPickerListStyles_unstable')(state);
|
|
13
|
+
return renderTagPickerList_unstable(state);
|
|
14
|
+
});
|
|
15
|
+
TagPickerList.displayName = 'TagPickerList';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TagPickerList.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTagPickerList_unstable } from './useTagPickerList';\nimport { renderTagPickerList_unstable } from './renderTagPickerList';\nimport { useTagPickerListStyles_unstable } from './useTagPickerListStyles.styles';\nimport type { TagPickerListProps } from './TagPickerList.types';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * TagPickerList component -\n * A TagPickerList is a composite component that allows users to display a list of tag options to be selected.\n */\nexport const TagPickerList: ForwardRefComponent<TagPickerListProps> = React.forwardRef((props, ref) => {\n const state = useTagPickerList_unstable(props, ref);\n\n useTagPickerListStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerListStyles_unstable')(state);\n return renderTagPickerList_unstable(state);\n});\n\nTagPickerList.displayName = 'TagPickerList';\n"],"names":["React","useTagPickerList_unstable","renderTagPickerList_unstable","useTagPickerListStyles_unstable","useCustomStyleHook_unstable","TagPickerList","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,+BAA+B,QAAQ,kCAAkC;AAElF,SAASC,2BAA2B,QAAQ,kCAAkC;AAE9E;;;CAGC,GACD,OAAO,MAAMC,8BAAyDL,MAAMM,UAAU,CAAC,CAACC,OAAOC;IAC7F,MAAMC,QAAQR,0BAA0BM,OAAOC;IAE/CL,gCAAgCM;IAChCL,4BAA4B,mCAAmCK;IAC/D,OAAOP,6BAA6BO;AACtC,GAAG;AAEHJ,cAAcK,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TagPickerList.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { Listbox } from '@fluentui/react-combobox';\nimport { TagPickerContextValue } from '../../contexts/TagPickerContext';\n\nexport type TagPickerListSlots = {\n root: Slot<typeof Listbox>;\n};\n\n/**\n * TagPickerList Props\n */\nexport type TagPickerListProps = ComponentProps<TagPickerListSlots>;\n\n/**\n * State used in rendering TagPickerList\n */\nexport type TagPickerListState = ComponentState<TagPickerListSlots> & Pick<TagPickerContextValue, 'open'>;\n"],"names":[],"mappings":"AAAA,WAgB0G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './TagPickerList';\nexport * from './TagPickerList.types';\nexport * from './renderTagPickerList';\nexport * from './useTagPickerList';\nexport * from './useTagPickerListStyles.styles';\n"],"names":[],"mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,wBAAwB;AACtC,cAAc,wBAAwB;AACtC,cAAc,qBAAqB;AACnC,cAAc,kCAAkC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Render the final JSX of TagPickerList
|
|
5
|
+
*/ export const renderTagPickerList_unstable = (state)=>{
|
|
6
|
+
assertSlots(state);
|
|
7
|
+
return /*#__PURE__*/ _jsx(state.root, {});
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderTagPickerList.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { TagPickerListState, TagPickerListSlots } from './TagPickerList.types';\n\n/**\n * Render the final JSX of TagPickerList\n */\nexport const renderTagPickerList_unstable = (state: TagPickerListState) => {\n assertSlots<TagPickerListSlots>(state);\n return <state.root />;\n};\n"],"names":["assertSlots","renderTagPickerList_unstable","state","root"],"mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,4BAA4B;AAGxD;;CAEC,GACD,OAAO,MAAMC,+BAA+B,CAACC;IAC3CF,YAAgCE;IAChC,qBAAO,KAACA,MAAMC,IAAI;AACpB,EAAE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Listbox } from '@fluentui/react-combobox';
|
|
3
|
+
import { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';
|
|
4
|
+
import { slot, useMergedRefs } from '@fluentui/react-utilities';
|
|
5
|
+
import { useListboxSlot } from '@fluentui/react-combobox';
|
|
6
|
+
/**
|
|
7
|
+
* Create the state required to render TagPickerList.
|
|
8
|
+
*
|
|
9
|
+
* The returned state can be modified with hooks such as useTagPickerListStyles_unstable,
|
|
10
|
+
* before being passed to renderTagPickerList_unstable.
|
|
11
|
+
*
|
|
12
|
+
* @param props - props from this instance of TagPickerList
|
|
13
|
+
* @param ref - reference to root HTMLDivElement of TagPickerList
|
|
14
|
+
*/ export const useTagPickerList_unstable = (props, ref)=>{
|
|
15
|
+
const triggerRef = useTagPickerContext_unstable((ctx)=>ctx.triggerRef);
|
|
16
|
+
const popoverRef = useTagPickerContext_unstable((ctx)=>ctx.popoverRef);
|
|
17
|
+
const popoverId = useTagPickerContext_unstable((ctx)=>ctx.popoverId);
|
|
18
|
+
const open = useTagPickerContext_unstable((ctx)=>ctx.open);
|
|
19
|
+
return {
|
|
20
|
+
open,
|
|
21
|
+
components: {
|
|
22
|
+
root: Listbox
|
|
23
|
+
},
|
|
24
|
+
root: slot.always({
|
|
25
|
+
...useListboxSlot(props, useMergedRefs(popoverRef, ref), {
|
|
26
|
+
state: {
|
|
27
|
+
multiselect: true
|
|
28
|
+
},
|
|
29
|
+
triggerRef,
|
|
30
|
+
defaultProps: {
|
|
31
|
+
id: popoverId
|
|
32
|
+
}
|
|
33
|
+
}),
|
|
34
|
+
role: 'listbox'
|
|
35
|
+
}, {
|
|
36
|
+
elementType: Listbox
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useTagPickerList.ts"],"sourcesContent":["import * as React from 'react';\nimport type { TagPickerListProps, TagPickerListState } from './TagPickerList.types';\nimport { Listbox } from '@fluentui/react-combobox';\nimport { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';\nimport { slot, useMergedRefs } from '@fluentui/react-utilities';\nimport { useListboxSlot } from '@fluentui/react-combobox';\n\n/**\n * Create the state required to render TagPickerList.\n *\n * The returned state can be modified with hooks such as useTagPickerListStyles_unstable,\n * before being passed to renderTagPickerList_unstable.\n *\n * @param props - props from this instance of TagPickerList\n * @param ref - reference to root HTMLDivElement of TagPickerList\n */\nexport const useTagPickerList_unstable = (\n props: TagPickerListProps,\n ref: React.Ref<HTMLDivElement>,\n): TagPickerListState => {\n const triggerRef = useTagPickerContext_unstable(ctx => ctx.triggerRef) as\n | React.RefObject<HTMLInputElement>\n | React.RefObject<HTMLButtonElement>;\n const popoverRef = useTagPickerContext_unstable(ctx => ctx.popoverRef);\n const popoverId = useTagPickerContext_unstable(ctx => ctx.popoverId);\n const open = useTagPickerContext_unstable(ctx => ctx.open);\n\n return {\n open,\n components: {\n root: Listbox,\n },\n root: slot.always(\n {\n ...useListboxSlot(props, useMergedRefs(popoverRef, ref), {\n state: { multiselect: true },\n triggerRef,\n defaultProps: { id: popoverId },\n }),\n role: 'listbox',\n },\n { elementType: Listbox },\n ),\n };\n};\n"],"names":["React","Listbox","useTagPickerContext_unstable","slot","useMergedRefs","useListboxSlot","useTagPickerList_unstable","props","ref","triggerRef","ctx","popoverRef","popoverId","open","components","root","always","state","multiselect","defaultProps","id","role","elementType"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,OAAO,QAAQ,2BAA2B;AACnD,SAASC,4BAA4B,QAAQ,kCAAkC;AAC/E,SAASC,IAAI,EAAEC,aAAa,QAAQ,4BAA4B;AAChE,SAASC,cAAc,QAAQ,2BAA2B;AAE1D;;;;;;;;CAQC,GACD,OAAO,MAAMC,4BAA4B,CACvCC,OACAC;IAEA,MAAMC,aAAaP,6BAA6BQ,CAAAA,MAAOA,IAAID,UAAU;IAGrE,MAAME,aAAaT,6BAA6BQ,CAAAA,MAAOA,IAAIC,UAAU;IACrE,MAAMC,YAAYV,6BAA6BQ,CAAAA,MAAOA,IAAIE,SAAS;IACnE,MAAMC,OAAOX,6BAA6BQ,CAAAA,MAAOA,IAAIG,IAAI;IAEzD,OAAO;QACLA;QACAC,YAAY;YACVC,MAAMd;QACR;QACAc,MAAMZ,KAAKa,MAAM,CACf;YACE,GAAGX,eAAeE,OAAOH,cAAcO,YAAYH,MAAM;gBACvDS,OAAO;oBAAEC,aAAa;gBAAK;gBAC3BT;gBACAU,cAAc;oBAAEC,IAAIR;gBAAU;YAChC,EAAE;YACFS,MAAM;QACR,GACA;YAAEC,aAAarB;QAAQ;IAE3B;AACF,EAAE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
export const tagPickerListClassNames = {
|
|
4
|
+
root: 'fui-TagPickerList'
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Styles for the root slot
|
|
8
|
+
*/
|
|
9
|
+
const useStyles = /*#__PURE__*/__styles({
|
|
10
|
+
root: {
|
|
11
|
+
E5pizo: "f1hg901r",
|
|
12
|
+
Bbmb7ep: ["f1aa9q02", "f16jpd5f"],
|
|
13
|
+
Beyfa6y: ["f16jpd5f", "f1aa9q02"],
|
|
14
|
+
B7oj6ja: ["f1jar5jt", "fyu767a"],
|
|
15
|
+
Btl43ni: ["fyu767a", "f1jar5jt"],
|
|
16
|
+
Bxyxcbc: "fmmk62d",
|
|
17
|
+
B7ck84d: "f1ewtqcl"
|
|
18
|
+
},
|
|
19
|
+
collapsed: {
|
|
20
|
+
mc9l5x: "fjseox"
|
|
21
|
+
}
|
|
22
|
+
}, {
|
|
23
|
+
d: [".f1hg901r{box-shadow:var(--shadow16);}", ".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}", ".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}", ".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}", ".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}", ".fmmk62d{max-height:80vh;}", ".f1ewtqcl{box-sizing:border-box;}", ".fjseox{display:none;}"]
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Apply styling to the TagPickerList slots based on the state
|
|
27
|
+
*/
|
|
28
|
+
export const useTagPickerListStyles_unstable = state => {
|
|
29
|
+
const styles = useStyles();
|
|
30
|
+
state.root.className = mergeClasses(tagPickerListClassNames.root, styles.root, !state.open && styles.collapsed, state.root.className);
|
|
31
|
+
return state;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=useTagPickerListStyles.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","shorthands","tokens","tagPickerListClassNames","root","useStyles","E5pizo","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","Bxyxcbc","B7ck84d","collapsed","mc9l5x","d","useTagPickerListStyles_unstable","state","styles","className","open"],"sources":["useTagPickerListStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const tagPickerListClassNames = {\n root: 'fui-TagPickerList'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n boxShadow: `${tokens.shadow16}`,\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n maxHeight: '80vh',\n boxSizing: 'border-box'\n },\n collapsed: {\n display: 'none'\n }\n});\n/**\n * Apply styling to the TagPickerList slots based on the state\n */ export const useTagPickerListStyles_unstable = (state)=>{\n const styles = useStyles();\n state.root.className = mergeClasses(tagPickerListClassNames.root, styles.root, !state.open && styles.collapsed, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AACrE,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,OAAO,MAAMC,uBAAuB,GAAG;EACnCC,IAAI,EAAE;AACV,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGN,QAAA;EAAAK,IAAA;IAAAE,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;EAAAC,SAAA;IAAAC,MAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CAUrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,+BAA+B,GAAIC,KAAK,IAAG;EACxD,MAAMC,MAAM,GAAGb,SAAS,CAAC,CAAC;EAC1BY,KAAK,CAACb,IAAI,CAACe,SAAS,GAAGnB,YAAY,CAACG,uBAAuB,CAACC,IAAI,EAAEc,MAAM,CAACd,IAAI,EAAE,CAACa,KAAK,CAACG,IAAI,IAAIF,MAAM,CAACL,SAAS,EAAEI,KAAK,CAACb,IAAI,CAACe,SAAS,CAAC;EACrI,OAAOF,KAAK;AAChB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useTagPickerOption_unstable } from './useTagPickerOption';
|
|
3
|
+
import { renderTagPickerOption_unstable } from './renderTagPickerOption';
|
|
4
|
+
import { useTagPickerOptionStyles_unstable } from './useTagPickerOptionStyles.styles';
|
|
5
|
+
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
|
|
6
|
+
/**
|
|
7
|
+
* TagPickerOption component -
|
|
8
|
+
* A TagPickerOption is a composite component that allows users to select tags.
|
|
9
|
+
*/ export const TagPickerOption = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
10
|
+
const state = useTagPickerOption_unstable(props, ref);
|
|
11
|
+
useTagPickerOptionStyles_unstable(state);
|
|
12
|
+
useCustomStyleHook_unstable('useTagPickerOptionStyles_unstable')(state);
|
|
13
|
+
return renderTagPickerOption_unstable(state);
|
|
14
|
+
});
|
|
15
|
+
TagPickerOption.displayName = 'TagPickerOption';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TagPickerOption.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTagPickerOption_unstable } from './useTagPickerOption';\nimport { renderTagPickerOption_unstable } from './renderTagPickerOption';\nimport { useTagPickerOptionStyles_unstable } from './useTagPickerOptionStyles.styles';\nimport type { TagPickerOptionProps } from './TagPickerOption.types';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * TagPickerOption component -\n * A TagPickerOption is a composite component that allows users to select tags.\n */\nexport const TagPickerOption: ForwardRefComponent<TagPickerOptionProps> = React.forwardRef((props, ref) => {\n const state = useTagPickerOption_unstable(props, ref);\n\n useTagPickerOptionStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerOptionStyles_unstable')(state);\n return renderTagPickerOption_unstable(state);\n});\n\nTagPickerOption.displayName = 'TagPickerOption';\n"],"names":["React","useTagPickerOption_unstable","renderTagPickerOption_unstable","useTagPickerOptionStyles_unstable","useCustomStyleHook_unstable","TagPickerOption","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,2BAA2B,QAAQ,uBAAuB;AACnE,SAASC,8BAA8B,QAAQ,0BAA0B;AACzE,SAASC,iCAAiC,QAAQ,oCAAoC;AAEtF,SAASC,2BAA2B,QAAQ,kCAAkC;AAE9E;;;CAGC,GACD,OAAO,MAAMC,gCAA6DL,MAAMM,UAAU,CAAC,CAACC,OAAOC;IACjG,MAAMC,QAAQR,4BAA4BM,OAAOC;IAEjDL,kCAAkCM;IAClCL,4BAA4B,qCAAqCK;IACjE,OAAOP,+BAA+BO;AACxC,GAAG;AAEHJ,gBAAgBK,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["TagPickerOption.types.ts"],"sourcesContent":["import { OptionSlots, OptionState } from '@fluentui/react-combobox';\nimport { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport type TagPickerOptionSlots = Pick<OptionSlots, 'root'> & {\n media?: Slot<'div'>;\n secondaryContent?: Slot<'span'>;\n};\n\n/**\n * TagPickerOption Props\n */\nexport type TagPickerOptionProps = ComponentProps<TagPickerOptionSlots> & {\n children: React.ReactNode;\n value: string;\n};\n\n/**\n * State used in rendering TagPickerOption\n */\nexport type TagPickerOptionState = ComponentState<TagPickerOptionSlots> & Pick<OptionState, 'components' | 'root'>;\n"],"names":["React"],"mappings":"AAEA,YAAYA,WAAW,QAAQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './TagPickerOption';\nexport * from './TagPickerOption.types';\nexport * from './renderTagPickerOption';\nexport * from './useTagPickerOption';\nexport * from './useTagPickerOptionStyles.styles';\n"],"names":[],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,0BAA0B;AACxC,cAAc,0BAA0B;AACxC,cAAc,uBAAuB;AACrC,cAAc,oCAAoC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@fluentui/react-jsx-runtime/jsx-runtime";
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Render the final JSX of TagPickerOption
|
|
5
|
+
*/ export const renderTagPickerOption_unstable = (state)=>{
|
|
6
|
+
assertSlots(state);
|
|
7
|
+
return /*#__PURE__*/ _jsxs(state.root, {
|
|
8
|
+
children: [
|
|
9
|
+
state.media && /*#__PURE__*/ _jsx(state.media, {}),
|
|
10
|
+
state.root.children,
|
|
11
|
+
state.secondaryContent && /*#__PURE__*/ _jsx(state.secondaryContent, {})
|
|
12
|
+
]
|
|
13
|
+
});
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderTagPickerOption.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { TagPickerOptionState, TagPickerOptionSlots } from './TagPickerOption.types';\n\n/**\n * Render the final JSX of TagPickerOption\n */\nexport const renderTagPickerOption_unstable = (state: TagPickerOptionState) => {\n assertSlots<TagPickerOptionSlots>(state);\n\n return (\n <state.root>\n {state.media && <state.media />}\n {state.root.children}\n {state.secondaryContent && <state.secondaryContent />}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderTagPickerOption_unstable","state","root","media","children","secondaryContent"],"mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,4BAA4B;AAGxD;;CAEC,GACD,OAAO,MAAMC,iCAAiC,CAACC;IAC7CF,YAAkCE;IAElC,qBACE,MAACA,MAAMC,IAAI;;YACRD,MAAME,KAAK,kBAAI,KAACF,MAAME,KAAK;YAC3BF,MAAMC,IAAI,CAACE,QAAQ;YACnBH,MAAMI,gBAAgB,kBAAI,KAACJ,MAAMI,gBAAgB;;;AAGxD,EAAE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { slot } from '@fluentui/react-utilities';
|
|
3
|
+
import { useOption_unstable } from '@fluentui/react-combobox';
|
|
4
|
+
/**
|
|
5
|
+
* Create the state required to render TagPickerOption.
|
|
6
|
+
*
|
|
7
|
+
* The returned state can be modified with hooks such as useTagPickerOptionStyles_unstable,
|
|
8
|
+
* before being passed to renderTagPickerOption_unstable.
|
|
9
|
+
*
|
|
10
|
+
* @param props - props from this instance of TagPickerOption
|
|
11
|
+
* @param ref - reference to root HTMLDivElement of TagPickerOption
|
|
12
|
+
*/ export const useTagPickerOption_unstable = (props, ref)=>{
|
|
13
|
+
const optionState = useOption_unstable(props, ref);
|
|
14
|
+
const state = {
|
|
15
|
+
components: {
|
|
16
|
+
...optionState.components,
|
|
17
|
+
media: 'div',
|
|
18
|
+
secondaryContent: 'span'
|
|
19
|
+
},
|
|
20
|
+
media: slot.optional(props.media, {
|
|
21
|
+
elementType: 'div'
|
|
22
|
+
}),
|
|
23
|
+
secondaryContent: slot.optional(props.secondaryContent, {
|
|
24
|
+
elementType: 'span'
|
|
25
|
+
}),
|
|
26
|
+
root: slot.always({
|
|
27
|
+
...optionState.root,
|
|
28
|
+
role: 'option',
|
|
29
|
+
'aria-checked': props['aria-checked']
|
|
30
|
+
}, {
|
|
31
|
+
elementType: 'div'
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
return state;
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useTagPickerOption.ts"],"sourcesContent":["import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { OptionProps, useOption_unstable } from '@fluentui/react-combobox';\nimport type { TagPickerOptionProps, TagPickerOptionState } from './TagPickerOption.types';\n\n/**\n * Create the state required to render TagPickerOption.\n *\n * The returned state can be modified with hooks such as useTagPickerOptionStyles_unstable,\n * before being passed to renderTagPickerOption_unstable.\n *\n * @param props - props from this instance of TagPickerOption\n * @param ref - reference to root HTMLDivElement of TagPickerOption\n */\nexport const useTagPickerOption_unstable = (\n props: TagPickerOptionProps,\n ref: React.Ref<HTMLDivElement>,\n): TagPickerOptionState => {\n const optionState = useOption_unstable(props as OptionProps, ref);\n const state: TagPickerOptionState = {\n components: {\n ...optionState.components,\n media: 'div',\n secondaryContent: 'span',\n },\n media: slot.optional(props.media, {\n elementType: 'div',\n }),\n secondaryContent: slot.optional(props.secondaryContent, {\n elementType: 'span',\n }),\n root: slot.always(\n { ...optionState.root, role: 'option', 'aria-checked': props['aria-checked'] },\n {\n elementType: 'div',\n },\n ),\n };\n\n return state;\n};\n"],"names":["React","slot","useOption_unstable","useTagPickerOption_unstable","props","ref","optionState","state","components","media","secondaryContent","optional","elementType","root","always","role"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,IAAI,QAAQ,4BAA4B;AACjD,SAAsBC,kBAAkB,QAAQ,2BAA2B;AAG3E;;;;;;;;CAQC,GACD,OAAO,MAAMC,8BAA8B,CACzCC,OACAC;IAEA,MAAMC,cAAcJ,mBAAmBE,OAAsBC;IAC7D,MAAME,QAA8B;QAClCC,YAAY;YACV,GAAGF,YAAYE,UAAU;YACzBC,OAAO;YACPC,kBAAkB;QACpB;QACAD,OAAOR,KAAKU,QAAQ,CAACP,MAAMK,KAAK,EAAE;YAChCG,aAAa;QACf;QACAF,kBAAkBT,KAAKU,QAAQ,CAACP,MAAMM,gBAAgB,EAAE;YACtDE,aAAa;QACf;QACAC,MAAMZ,KAAKa,MAAM,CACf;YAAE,GAAGR,YAAYO,IAAI;YAAEE,MAAM;YAAU,gBAAgBX,KAAK,CAAC,eAAe;QAAC,GAC7E;YACEQ,aAAa;QACf;IAEJ;IAEA,OAAOL;AACT,EAAE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { __styles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { useOptionStyles_unstable } from '@fluentui/react-combobox';
|
|
3
|
+
export const tagPickerOptionClassNames = {
|
|
4
|
+
root: 'fui-TagPickerOption',
|
|
5
|
+
media: 'fui-TagPickerOption__media',
|
|
6
|
+
secondaryContent: 'fui-TagPickerOption__secondaryContent'
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Styles for the root slot
|
|
10
|
+
*/
|
|
11
|
+
const useStyles = /*#__PURE__*/__styles({
|
|
12
|
+
root: {
|
|
13
|
+
mc9l5x: "f13qh94s",
|
|
14
|
+
Budl1dq: "fjxzuw",
|
|
15
|
+
Bt984gj: "f122n59"
|
|
16
|
+
},
|
|
17
|
+
secondaryContent: {
|
|
18
|
+
Br312pm: "fd46tj4",
|
|
19
|
+
Ijaq50: "faunodf"
|
|
20
|
+
},
|
|
21
|
+
media: {
|
|
22
|
+
Ijaq50: "fldnz9j"
|
|
23
|
+
}
|
|
24
|
+
}, {
|
|
25
|
+
d: [".f13qh94s{display:grid;}", ".fjxzuw{grid-template-columns:auto 1fr;}", ".f122n59{align-items:center;}", ".fd46tj4{grid-column-start:2;}", ".faunodf{grid-row-start:2;}", ".fldnz9j{grid-row-start:span 2;}"]
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Apply styling to the TagPickerOption slots based on the state
|
|
29
|
+
*/
|
|
30
|
+
export const useTagPickerOptionStyles_unstable = state => {
|
|
31
|
+
useOptionStyles_unstable({
|
|
32
|
+
...state,
|
|
33
|
+
active: false,
|
|
34
|
+
disabled: false,
|
|
35
|
+
focusVisible: false,
|
|
36
|
+
checkIcon: undefined,
|
|
37
|
+
selected: false
|
|
38
|
+
});
|
|
39
|
+
const styles = useStyles();
|
|
40
|
+
state.root.className = mergeClasses(tagPickerOptionClassNames.root, styles.root, state.root.className);
|
|
41
|
+
if (state.media) {
|
|
42
|
+
state.media.className = mergeClasses(tagPickerOptionClassNames.media, styles.media, state.media.className);
|
|
43
|
+
}
|
|
44
|
+
if (state.secondaryContent) {
|
|
45
|
+
state.secondaryContent.className = mergeClasses(tagPickerOptionClassNames.secondaryContent, styles.secondaryContent, state.secondaryContent.className);
|
|
46
|
+
}
|
|
47
|
+
return state;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=useTagPickerOptionStyles.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","useOptionStyles_unstable","tagPickerOptionClassNames","root","media","secondaryContent","useStyles","mc9l5x","Budl1dq","Bt984gj","Br312pm","Ijaq50","d","useTagPickerOptionStyles_unstable","state","active","disabled","focusVisible","checkIcon","undefined","selected","styles","className"],"sources":["useTagPickerOptionStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { useOptionStyles_unstable } from '@fluentui/react-combobox';\nexport const tagPickerOptionClassNames = {\n root: 'fui-TagPickerOption',\n media: 'fui-TagPickerOption__media',\n secondaryContent: 'fui-TagPickerOption__secondaryContent'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n alignItems: 'center'\n },\n secondaryContent: {\n gridColumnStart: 2,\n gridRowStart: 2\n },\n media: {\n gridRowStart: 'span 2'\n }\n});\n/**\n * Apply styling to the TagPickerOption slots based on the state\n */ export const useTagPickerOptionStyles_unstable = (state)=>{\n useOptionStyles_unstable({\n ...state,\n active: false,\n disabled: false,\n focusVisible: false,\n checkIcon: undefined,\n selected: false\n });\n const styles = useStyles();\n state.root.className = mergeClasses(tagPickerOptionClassNames.root, styles.root, state.root.className);\n if (state.media) {\n state.media.className = mergeClasses(tagPickerOptionClassNames.media, styles.media, state.media.className);\n }\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(tagPickerOptionClassNames.secondaryContent, styles.secondaryContent, state.secondaryContent.className);\n }\n return state;\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,wBAAwB,QAAQ,0BAA0B;AACnE,OAAO,MAAMC,yBAAyB,GAAG;EACrCC,IAAI,EAAE,qBAAqB;EAC3BC,KAAK,EAAE,4BAA4B;EACnCC,gBAAgB,EAAE;AACtB,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGP,QAAA;EAAAI,IAAA;IAAAI,MAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;EAAAJ,gBAAA;IAAAK,OAAA;IAAAC,MAAA;EAAA;EAAAP,KAAA;IAAAO,MAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CAarB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,iCAAiC,GAAIC,KAAK,IAAG;EAC1Db,wBAAwB,CAAC;IACrB,GAAGa,KAAK;IACRC,MAAM,EAAE,KAAK;IACbC,QAAQ,EAAE,KAAK;IACfC,YAAY,EAAE,KAAK;IACnBC,SAAS,EAAEC,SAAS;IACpBC,QAAQ,EAAE;EACd,CAAC,CAAC;EACF,MAAMC,MAAM,GAAGf,SAAS,CAAC,CAAC;EAC1BQ,KAAK,CAACX,IAAI,CAACmB,SAAS,GAAGtB,YAAY,CAACE,yBAAyB,CAACC,IAAI,EAAEkB,MAAM,CAAClB,IAAI,EAAEW,KAAK,CAACX,IAAI,CAACmB,SAAS,CAAC;EACtG,IAAIR,KAAK,CAACV,KAAK,EAAE;IACbU,KAAK,CAACV,KAAK,CAACkB,SAAS,GAAGtB,YAAY,CAACE,yBAAyB,CAACE,KAAK,EAAEiB,MAAM,CAACjB,KAAK,EAAEU,KAAK,CAACV,KAAK,CAACkB,SAAS,CAAC;EAC9G;EACA,IAAIR,KAAK,CAACT,gBAAgB,EAAE;IACxBS,KAAK,CAACT,gBAAgB,CAACiB,SAAS,GAAGtB,YAAY,CAACE,yBAAyB,CAACG,gBAAgB,EAAEgB,MAAM,CAAChB,gBAAgB,EAAES,KAAK,CAACT,gBAAgB,CAACiB,SAAS,CAAC;EAC1J;EACA,OAAOR,KAAK;AAChB,CAAC"}
|