@langchain/macaw-components 1.0.0-beta.1 → 1.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{LoadingIndicator-DgtU9aqD.js → LoadingIndicator-CDcArsiM.js} +13 -12
- package/dist/_chunks/LoadingIndicator-CDcArsiM.js.map +1 -0
- package/dist/_chunks/render-attachment-icon-BWBEMxXZ.js +270 -0
- package/dist/_chunks/render-attachment-icon-BWBEMxXZ.js.map +1 -0
- package/dist/catalog.json +527 -408
- package/dist/components/Attachment/Attachment.d.ts +21 -0
- package/dist/components/Attachment/Attachment.js +165 -0
- package/dist/components/Attachment/Attachment.js.map +1 -0
- package/dist/components/Attachment/AttachmentList.d.ts +5 -0
- package/dist/components/Attachment/AttachmentList.js +32 -0
- package/dist/components/Attachment/AttachmentList.js.map +1 -0
- package/dist/components/Attachment/index.d.ts +4 -0
- package/dist/components/Attachment/index.js +3 -0
- package/dist/components/Attachment/render-attachment-icon.d.ts +3 -0
- package/dist/components/Attachment/render-attachment-icon.js +2 -0
- package/dist/components/Avatar/Avatar.js +2 -2
- package/dist/components/Badge/Badge.d.ts +2 -0
- package/dist/components/Badge/Badge.js +12 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Banner/Banner.js +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/constants.js +2 -2
- package/dist/components/Button/constants.js.map +1 -1
- package/dist/components/ChartCard/ChartCard.d.ts +1 -4
- package/dist/components/ChartCard/ChartCard.js +2 -2
- package/dist/components/ChartCard/ChartCard.js.map +1 -1
- package/dist/components/ChartCard/ChartCardSkeleton.d.ts +1 -1
- package/dist/components/ChartCard/ChartCardSkeleton.js +37 -0
- package/dist/components/ChartCard/ChartCardSkeleton.js.map +1 -1
- package/dist/components/ChartLegend/ChartLegend.js +2 -2
- package/dist/components/ChartLegend/ChartLegendItemRenderer.js +2 -2
- package/dist/components/ChartLegend/ChartLegendItemRenderer.js.map +1 -1
- package/dist/components/Code/Code.utils.d.ts +3 -2
- package/dist/components/Code/Code.utils.js +7 -3
- package/dist/components/Code/Code.utils.js.map +1 -1
- package/dist/components/Code/CodeLanguageSelect.d.ts +7 -0
- package/dist/components/Code/CodeLanguageSelect.js +29 -0
- package/dist/components/Code/CodeLanguageSelect.js.map +1 -0
- package/dist/components/Code/CodeLite.js +3 -0
- package/dist/components/Code/CodeLite.js.map +1 -1
- package/dist/components/Code/CodeToolbar.d.ts +7 -0
- package/dist/components/Code/CodeToolbar.js +19 -0
- package/dist/components/Code/CodeToolbar.js.map +1 -0
- package/dist/components/Code/codeLanguages.d.ts +7 -0
- package/dist/components/Code/codeLanguages.js +59 -0
- package/dist/components/Code/codeLanguages.js.map +1 -0
- package/dist/components/Code/index.d.ts +15 -2
- package/dist/components/Code/index.js +70 -50
- package/dist/components/Code/index.js.map +1 -1
- package/dist/components/Code/types.d.ts +1 -1
- package/dist/components/Command/Command.d.ts +10 -13
- package/dist/components/Command/Command.js +7 -2
- package/dist/components/Command/Command.js.map +1 -1
- package/dist/components/Command/CommandMenu.d.ts +7 -1
- package/dist/components/Command/CommandMenu.js +17 -9
- package/dist/components/Command/CommandMenu.js.map +1 -1
- package/dist/components/ContextMenu/ContextMenu.d.ts +6 -0
- package/dist/components/ContextMenu/ContextMenu.js +3 -2
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/components/CopyButton/CopyButton.js +2 -2
- package/dist/components/Dialog/index.js +2 -2
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +11 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +5 -4
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/components/ErrorMessage/ErrorMessage.js +1 -1
- package/dist/components/GroupedTabs/GroupedTabs.d.ts +5 -2
- package/dist/components/GroupedTabs/GroupedTabs.js +33 -26
- package/dist/components/GroupedTabs/GroupedTabs.js.map +1 -1
- package/dist/components/IconButton/IconButton.js +2 -2
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/LineChart/LineChart.d.ts +2 -2
- package/dist/components/LineChart/LineChart.js +3 -1
- package/dist/components/LineChart/LineChart.js.map +1 -1
- package/dist/components/LineChart/LineChart.types.d.ts +16 -0
- package/dist/components/LineChart/LineChartPlot.d.ts +3 -2
- package/dist/components/LineChart/LineChartPlot.js +8 -1
- package/dist/components/LineChart/LineChartPlot.js.map +1 -1
- package/dist/components/LineChart/LineChartVerticalMarkers.d.ts +8 -0
- package/dist/components/LineChart/LineChartVerticalMarkers.js +47 -0
- package/dist/components/LineChart/LineChartVerticalMarkers.js.map +1 -0
- package/dist/components/LineChart/index.d.ts +1 -1
- package/dist/components/Logo/index.js +11 -6
- package/dist/components/Logo/index.js.map +1 -1
- package/dist/components/MetricChart/MetricChart.d.ts +2 -0
- package/dist/components/MetricChart/MetricChart.js +15 -4
- package/dist/components/MetricChart/MetricChart.js.map +1 -1
- package/dist/components/MetricChart/index.d.ts +1 -1
- package/dist/components/Pane/Pane.js +2 -2
- package/dist/components/SankeyChart/AnimatedSankeyLink.d.ts +17 -0
- package/dist/components/SankeyChart/AnimatedSankeyLink.js +44 -0
- package/dist/components/SankeyChart/AnimatedSankeyLink.js.map +1 -0
- package/dist/components/SankeyChart/AnimatedSankeyNode.d.ts +16 -0
- package/dist/components/SankeyChart/AnimatedSankeyNode.js +42 -0
- package/dist/components/SankeyChart/AnimatedSankeyNode.js.map +1 -0
- package/dist/components/SankeyChart/SankeyChart.d.ts +42 -0
- package/dist/components/SankeyChart/SankeyChart.js +185 -0
- package/dist/components/SankeyChart/SankeyChart.js.map +1 -0
- package/dist/components/SankeyChart/SankeyChart.types.d.ts +90 -0
- package/dist/components/SankeyChart/SankeyChart.types.js +0 -0
- package/dist/components/SankeyChart/SankeyChart.utils.d.ts +21 -0
- package/dist/components/SankeyChart/SankeyChart.utils.js +299 -0
- package/dist/components/SankeyChart/SankeyChart.utils.js.map +1 -0
- package/dist/components/SankeyChart/SankeyNodeLabel.d.ts +10 -0
- package/dist/components/SankeyChart/SankeyNodeLabel.js +30 -0
- package/dist/components/SankeyChart/SankeyNodeLabel.js.map +1 -0
- package/dist/components/SankeyChart/SankeyNodeLabel.utils.d.ts +9 -0
- package/dist/components/SankeyChart/SankeyNodeLabel.utils.js +29 -0
- package/dist/components/SankeyChart/SankeyNodeLabel.utils.js.map +1 -0
- package/dist/components/SankeyChart/constants.d.ts +22 -0
- package/dist/components/SankeyChart/constants.js +27 -0
- package/dist/components/SankeyChart/constants.js.map +1 -0
- package/dist/components/SankeyChart/index.d.ts +5 -0
- package/dist/components/SankeyChart/index.js +4 -0
- package/dist/components/Select/Select.js +5 -5
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/SelectPrimitive.d.ts +6 -0
- package/dist/components/Select/SelectPrimitive.js +3 -2
- package/dist/components/Select/SelectPrimitive.js.map +1 -1
- package/dist/components/Slider/Slider.js +10 -3
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/SplitViewPane/SplitViewPane.d.ts +2 -1
- package/dist/components/SplitViewPane/SplitViewPane.js +113 -219
- package/dist/components/SplitViewPane/SplitViewPane.js.map +1 -1
- package/dist/components/SplitViewPane/SplitViewPaneHeader.js +2 -2
- package/dist/components/SplitViewPane/useShowChildren.d.ts +5 -0
- package/dist/components/SplitViewPane/useShowChildren.js +14 -0
- package/dist/components/SplitViewPane/useShowChildren.js.map +1 -0
- package/dist/components/SplitViewPane/useSplitViewPaneResize.d.ts +21 -0
- package/dist/components/SplitViewPane/useSplitViewPaneResize.js +145 -0
- package/dist/components/SplitViewPane/useSplitViewPaneResize.js.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +4 -3
- package/dist/components/Textarea/Textarea.js +7 -21
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/ThinkingState/LoadingIndicator.d.ts +1 -0
- package/dist/components/ThinkingState/LoadingIndicator.js +1 -1
- package/dist/components/ThinkingState/ThinkingState.d.ts +1 -0
- package/dist/components/ThinkingState/ThinkingState.js +5 -4
- package/dist/components/ThinkingState/ThinkingState.js.map +1 -1
- package/dist/components/ThinkingState/index.js +1 -1
- package/dist/components/Toast/index.js +33 -28
- package/dist/components/Toast/index.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +2 -2
- package/dist/components/Typeahead/Typeahead.js +18 -8
- package/dist/components/Typeahead/Typeahead.js.map +1 -1
- package/dist/components/Typeahead/Typeahead.types.d.ts +2 -0
- package/dist/components/Typeahead/TypeaheadParts.d.ts +3 -1
- package/dist/components/Typeahead/TypeaheadParts.js +7 -6
- package/dist/components/Typeahead/TypeaheadParts.js.map +1 -1
- package/dist/components/Typeahead/TypeaheadView.js +19 -13
- package/dist/components/Typeahead/TypeaheadView.js.map +1 -1
- package/dist/components/Typeahead/useTypeaheadDomSync.d.ts +1 -1
- package/dist/components/Typeahead/useTypeaheadDomSync.js +14 -8
- package/dist/components/Typeahead/useTypeaheadDomSync.js.map +1 -1
- package/dist/components/Typeahead/useTypeaheadUncontrolledInput.d.ts +2 -1
- package/dist/components/Typeahead/useTypeaheadUncontrolledInput.js +10 -9
- package/dist/components/Typeahead/useTypeaheadUncontrolledInput.js.map +1 -1
- package/dist/components/UnsavedChangesDialog.js +2 -2
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.js +7 -5
- package/dist/components.css +22 -18
- package/dist/hooks/useDebouncedCommit.d.ts +14 -0
- package/dist/hooks/useDebouncedCommit.js +35 -0
- package/dist/hooks/useDebouncedCommit.js.map +1 -0
- package/dist/icons/LongTailPhosphorIcons.js +1 -1
- package/dist/icons/PaddedPhosphorIcons.d.ts +1 -0
- package/dist/icons/PaddedPhosphorIcons.js +4 -2
- package/dist/icons/PaddedPhosphorIcons.js.map +1 -1
- package/dist/icons/WeightedPhosphorIcons.d.ts +1 -0
- package/dist/icons/WeightedPhosphorIcons.js +3 -1
- package/dist/icons/WeightedPhosphorIcons.js.map +1 -1
- package/dist/icons/index.js +3 -3
- package/dist/index.js +7 -5
- package/dist/utilities.css +1 -1
- package/dist/utils/chartColors.d.ts +2 -1
- package/dist/utils/chartColors.js +2 -1
- package/dist/utils/chartColors.js.map +1 -1
- package/dist/utils/componentSizes.d.ts +0 -1
- package/dist/utils/componentSizes.js.map +1 -1
- package/dist/utils/lazy-codemirror-loader.d.ts +0 -2
- package/dist/utils/lazy-codemirror-loader.js +1 -3
- package/dist/utils/lazy-codemirror-loader.js.map +1 -1
- package/dist/utils/spacing.d.ts +1 -1
- package/dist/utils/spacing.js +1 -1
- package/dist/utils/spacing.js.map +1 -1
- package/docs/DESIGN.md +17 -0
- package/docs/STYLES.md +4 -1
- package/package.json +21 -8
- package/dist/_chunks/LoadingIndicator-DgtU9aqD.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeaheadView.js","names":[],"sources":["../../../src/components/Typeahead/TypeaheadView.tsx"],"sourcesContent":["/* eslint-disable max-lines -- Keep the control, tag layout, and popover rendering together in this view. */\nimport type {\n FocusEvent,\n HTMLAttributes,\n KeyboardEvent,\n ReactNode,\n Ref,\n} from 'react';\nimport { useRef } from 'react';\n\nimport { Command as CommandPrimitive } from 'cmdk';\n\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react/dist/ssr/MagnifyingGlass';\n\nimport { CaretDownIcon } from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport { CONTROL_SIZES } from '../../utils/componentSizes';\nimport { CONTROL_ICON_SIZES } from '../../utils/controlIconSizes';\nimport { Command, CommandEmpty, CommandItem, CommandList } from '../Command';\nimport { Icon } from '../Icon';\nimport { Popover, PopoverAnchor, PopoverContent } from '../Popover';\nimport { Text } from '../Text';\nimport type {\n TypeaheadListItem,\n TypeaheadMultipleValue,\n TypeaheadRenderOptionState,\n TypeaheadSelectedValue,\n TypeaheadSize,\n TypeaheadTagProps,\n} from './Typeahead.types';\nimport { isTypeaheadOption } from './Typeahead.utils';\nimport {\n TypeaheadClearButton,\n TypeaheadCreateOption,\n TypeaheadDefaultOption,\n TypeaheadDefaultTag,\n} from './TypeaheadParts';\n\ninterface TypeaheadViewRootProps {\n ref: Ref<HTMLDivElement>;\n props: HTMLAttributes<HTMLDivElement>;\n handleBlur: (event: FocusEvent<HTMLDivElement>) => void;\n dataTestId?: string;\n className?: string;\n}\n\ninterface TypeaheadViewState {\n size: TypeaheadSize;\n disabled: boolean;\n isError: boolean;\n multiple?: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\ninterface TypeaheadViewIds {\n commandLabel: string;\n resolvedInputId: string;\n listId: string;\n selectedSummaryId: string;\n inputAriaLabel?: string;\n}\n\ninterface TypeaheadViewInputProps {\n value: string;\n onValueChange: (value: string) => void;\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;\n placeholder: string;\n leftDecorator?: ReactNode;\n showPlaceholderWithValues: boolean;\n autoFocus?: boolean;\n autoComplete?: string;\n setNode: (node: HTMLInputElement | null) => void;\n focus: () => void;\n}\n\ninterface TypeaheadViewSelectionProps<TOption> {\n selectedValues: TypeaheadMultipleValue<TOption>;\n selectedKeys: Set<string>;\n getTagProps: (params: { index: number }) => TypeaheadTagProps;\n renderTags?: (\n value: TypeaheadMultipleValue<TOption>,\n getTagProps: (params: { index: number }) => TypeaheadTagProps\n ) => ReactNode;\n getLabel: (option: TypeaheadSelectedValue<TOption>) => string;\n getValue: (option: TypeaheadSelectedValue<TOption>) => string;\n showClearButton: boolean;\n clearValue: () => void;\n forcePopupIcon: boolean;\n selectedSummary?: string;\n}\n\ninterface TypeaheadViewListProps<TOption> {\n ref: Ref<HTMLDivElement>;\n items: TypeaheadListItem<TOption>[];\n emptyText: string;\n emptyState?: ReactNode;\n listFooter?: ReactNode;\n hideEmptyList: boolean;\n optionIsDisabled: (item: TypeaheadListItem<TOption>) => boolean;\n selectValue: (selected: TypeaheadSelectedValue<TOption>) => void;\n renderOption?: (\n option: TOption,\n state: TypeaheadRenderOptionState\n ) => ReactNode;\n}\n\ninterface TypeaheadViewCreateOptionProps {\n show: boolean;\n inputValue: string;\n label?: ReactNode;\n onCreate: () => void;\n}\n\ninterface TypeaheadViewProps<TOption> {\n root: TypeaheadViewRootProps;\n state: TypeaheadViewState;\n ids: TypeaheadViewIds;\n input: TypeaheadViewInputProps;\n selection: TypeaheadViewSelectionProps<TOption>;\n list: TypeaheadViewListProps<TOption>;\n createOption: TypeaheadViewCreateOptionProps;\n popoverContentRef: Ref<HTMLDivElement>;\n}\n\nconst CONTROL_RADIUS_CLASSES = {\n xs: 'rounded-xs',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-md',\n} as const satisfies Record<TypeaheadSize, string>;\n\nconst MULTIPLE_INPUT_HEIGHT_CLASSES = {\n xs: 'h-4',\n sm: 'h-5',\n md: 'h-6',\n lg: 'h-6',\n} as const satisfies Record<TypeaheadSize, string>;\n\nconst INPUT_TEXT_CLASSES = {\n xs: 'text-xxs leading-[1.15]',\n sm: 'text-xs leading-normal',\n md: 'text-sm leading-normal',\n lg: 'text-sm leading-normal',\n} as const satisfies Record<TypeaheadSize, string>;\n\nexport function TypeaheadView<TOption>({\n root,\n state,\n ids,\n input,\n selection,\n list,\n createOption,\n popoverContentRef,\n}: TypeaheadViewProps<TOption>) {\n const controlRef = useRef<HTMLDivElement | null>(null);\n const preventInputDismiss = (event: Event) => {\n if (\n open &&\n event.target instanceof HTMLInputElement &&\n event.target.getAttribute('role') === 'combobox' &&\n controlRef.current?.contains(event.target)\n ) {\n event.preventDefault();\n }\n };\n const { ref: rootRef, handleBlur, dataTestId, className } = root;\n const { size, disabled, isError, multiple, open, setOpen } = state;\n const {\n commandLabel,\n resolvedInputId,\n listId,\n selectedSummaryId,\n inputAriaLabel,\n } = ids;\n const {\n value: inputValue,\n onValueChange: handleInputValueChange,\n onKeyDown: handleKeyDown,\n placeholder,\n leftDecorator,\n showPlaceholderWithValues,\n autoFocus,\n autoComplete,\n setNode: setInputNode,\n focus: focusInput,\n } = input;\n const {\n selectedValues,\n selectedKeys,\n getTagProps,\n renderTags,\n getLabel,\n getValue,\n showClearButton,\n clearValue,\n forcePopupIcon,\n selectedSummary,\n } = selection;\n const {\n ref: listRef,\n items,\n emptyText,\n emptyState,\n listFooter,\n hideEmptyList,\n optionIsDisabled,\n selectValue,\n renderOption,\n } = list;\n const hasValue = selectedValues.length > 0;\n const visibleItems = open ? items : [];\n const visibleShowCreateOption = open && createOption.show;\n const showEmptyState =\n open &&\n visibleItems.length === 0 &&\n !visibleShowCreateOption &&\n (emptyState != null || !hideEmptyList);\n const controlHeightClass = multiple\n ? CONTROL_SIZES[size].minHeightClassName\n : CONTROL_SIZES[size].heightClassName;\n const controlPaddingClass =\n size === 'xs' || size === 'sm' ? 'px-space-2' : 'px-space-3';\n const renderedTags =\n multiple &&\n (renderTags\n ? renderTags(selectedValues, getTagProps)\n : selectedValues.map((selected, index) => {\n const tagProps = getTagProps({ index });\n return (\n <TypeaheadDefaultTag\n key={`${getValue(selected)}-${index}`}\n selected={selected}\n index={index}\n disabled={disabled}\n size={size}\n getLabel={getLabel}\n getValue={getValue}\n onRemove={tagProps.onDelete}\n />\n );\n }));\n const inputField = (\n <div\n className={cn(\n 'flex items-center gap-space-2',\n multiple ? 'min-w-0 flex-1' : 'flex-1',\n !multiple && (size === 'xs' ? 'min-w-12' : 'min-w-16')\n )}\n >\n {leftDecorator != null ? (\n <div className=\"flex min-w-0 shrink items-center text-icon-tertiary\">\n {leftDecorator}\n </div>\n ) : !multiple && !hasValue ? (\n <Icon\n aria-hidden\n icon={MagnifyingGlassIcon}\n iconClassName={CONTROL_ICON_SIZES[size].iconClassName}\n className=\"text-icon-tertiary\"\n weight=\"regular\"\n />\n ) : null}\n {/*\n cmdk rewrites some of these combobox attributes as the query changes, so\n useTypeaheadDomSync re-asserts them imperatively. Keep the two attribute\n sets in sync when editing either here or in that hook.\n */}\n <CommandPrimitive.Input\n ref={setInputNode}\n id={resolvedInputId}\n value={inputValue}\n onValueChange={handleInputValueChange}\n onFocus={() => {\n if (!disabled) {\n setOpen(true);\n }\n }}\n onKeyDown={handleKeyDown}\n placeholder={\n hasValue && multiple && !showPlaceholderWithValues\n ? undefined\n : placeholder\n }\n disabled={disabled}\n autoFocus={autoFocus}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-expanded={open}\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-invalid={isError || undefined}\n aria-describedby={multiple ? selectedSummaryId : undefined}\n aria-label={inputAriaLabel}\n className={cn(\n 'min-w-0 max-w-full border-none bg-transparent p-0 outline-none placeholder:text-placeholder',\n INPUT_TEXT_CLASSES[size],\n disabled && 'cursor-not-allowed',\n multiple\n ? cn(MULTIPLE_INPUT_HEIGHT_CLASSES[size], 'w-full')\n : 'h-full w-full flex-1'\n )}\n />\n </div>\n );\n const actionControls = (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-space-1 text-icon-tertiary',\n multiple ? 'self-center' : 'ml-auto'\n )}\n style={{\n marginInlineEnd:\n showClearButton && !forcePopupIcon\n ? CONTROL_ICON_SIZES[size].actionOffset\n : undefined,\n }}\n >\n {showClearButton && (\n <TypeaheadClearButton\n size={size}\n label={multiple ? 'Clear selections' : 'Clear selection'}\n onClick={(event) => {\n event.stopPropagation();\n clearValue();\n }}\n />\n )}\n {forcePopupIcon && (\n <Icon\n aria-hidden\n icon={CaretDownIcon}\n iconClassName={CONTROL_ICON_SIZES[size].iconClassName}\n className={cn(\n 'text-icon-tertiary transition-transform',\n open && 'rotate-180'\n )}\n weight=\"regular\"\n />\n )}\n </div>\n );\n\n return (\n <Command\n ref={rootRef}\n shouldFilter={false}\n label={commandLabel}\n className=\"overflow-visible bg-transparent\"\n >\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverAnchor asChild>\n <div\n ref={controlRef}\n {...root.props}\n data-testid={dataTestId}\n onBlur={handleBlur}\n className={cn(\n 'w-full cursor-text border border-default bg-elevated text-primary transition-colors',\n multiple\n ? 'flex flex-wrap items-center gap-space-1'\n : 'flex items-center gap-space-1 overflow-hidden',\n 'focus-within:border-focus focus-within:bg-elevated hover:bg-elevated-hover',\n controlHeightClass,\n multiple && {\n 'px-space-1 py-0': size === 'xs',\n 'px-space-1 py-px': size === 'sm',\n 'px-space-2 py-0.5': size === 'md',\n 'px-space-3 py-space-1': size === 'lg',\n },\n !multiple && controlPaddingClass,\n CONTROL_RADIUS_CLASSES[size],\n isError && 'border-error focus-within:border-error',\n disabled &&\n 'cursor-not-allowed border-disabled bg-disabled text-disabled opacity-70',\n className\n )}\n onClick={(event) => {\n root.props.onClick?.(event);\n if (!disabled) {\n focusInput();\n setOpen(true);\n }\n }}\n >\n {multiple ? (\n <>\n {renderedTags}\n <div className=\"flex min-w-16 flex-1 items-center gap-space-1\">\n {inputField}\n {actionControls}\n </div>\n </>\n ) : (\n <>\n {inputField}\n {actionControls}\n </>\n )}\n </div>\n </PopoverAnchor>\n\n {multiple && (\n <span\n id={selectedSummaryId}\n className=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {selectedSummary}\n </span>\n )}\n\n <PopoverContent\n ref={popoverContentRef}\n hidden={!open}\n className={cn(\n 'w-[var(--radix-popover-trigger-width)] min-w-48 max-w-[calc(100vw-1rem)] bg-elevated p-space-1 text-primary',\n !open && 'hidden'\n )}\n align=\"start\"\n sideOffset={4}\n forceMount\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onFocusOutside={preventInputDismiss}\n onInteractOutside={preventInputDismiss}\n >\n <CommandList\n ref={listRef}\n id={listId}\n aria-label={`${commandLabel} options`}\n aria-multiselectable={multiple ? true : undefined}\n className=\"max-h-[18.75rem]\"\n >\n {showEmptyState && (\n <CommandEmpty>\n {emptyState ?? (\n <Text variant=\"sm\" color=\"secondary\">\n {emptyText}\n </Text>\n )}\n </CommandEmpty>\n )}\n\n {visibleItems.map((item) => {\n const { option } = item;\n const optionKey = getValue(option);\n const optionLabel = getLabel(option);\n const selected = selectedKeys.has(optionKey);\n const optionDisabled = optionIsDisabled(item);\n const optionState = {\n selected,\n disabled: optionDisabled,\n inputValue,\n };\n\n return (\n <CommandItem\n key={optionKey}\n value={optionKey}\n disabled={optionDisabled}\n keywords={\n isTypeaheadOption(option)\n ? [optionLabel, ...(option.keywords ?? [])]\n : [optionLabel]\n }\n onSelect={() => selectValue(option)}\n aria-checked={multiple ? selected : undefined}\n className={cn(\n 'flex items-center gap-space-2 rounded-sm px-space-2 py-space-2 text-sm text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2',\n optionDisabled && 'text-disabled'\n )}\n >\n {renderOption && item.source === 'option' ? (\n renderOption(option as TOption, optionState)\n ) : (\n <TypeaheadDefaultOption\n option={option}\n state={optionState}\n getLabel={getLabel}\n />\n )}\n </CommandItem>\n );\n })}\n\n {visibleShowCreateOption && (\n <CommandItem\n value={`__typeahead_create__${createOption.inputValue}`}\n keywords={[createOption.inputValue]}\n onSelect={createOption.onCreate}\n aria-label={\n createOption.inputValue\n ? `Add ${createOption.inputValue}`\n : 'Add new'\n }\n className=\"flex items-center gap-space-2 rounded-sm p-space-2 text-sm text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2\"\n >\n <TypeaheadCreateOption\n inputValue={createOption.inputValue}\n label={createOption.label}\n />\n </CommandItem>\n )}\n\n {listFooter}\n </CommandList>\n </PopoverContent>\n </Popover>\n </Command>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TypeaheadView.js","names":[],"sources":["../../../src/components/Typeahead/TypeaheadView.tsx"],"sourcesContent":["/* eslint-disable max-lines -- Keep the control, tag layout, and popover rendering together in this view. */\nimport type {\n FocusEvent,\n HTMLAttributes,\n KeyboardEvent,\n ReactNode,\n Ref,\n} from 'react';\nimport { useRef } from 'react';\n\nimport { Command as CommandPrimitive } from 'cmdk';\n\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react/dist/ssr/MagnifyingGlass';\n\nimport { CaretDownIcon } from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport { CONTROL_SIZES, type OptionRowSize } from '../../utils/componentSizes';\nimport { CONTROL_ICON_SIZES } from '../../utils/controlIconSizes';\nimport { Command, CommandEmpty, CommandItem, CommandList } from '../Command';\nimport { Icon } from '../Icon';\nimport { Popover, PopoverAnchor, PopoverContent } from '../Popover';\nimport { Text } from '../Text';\nimport type {\n TypeaheadListItem,\n TypeaheadMultipleValue,\n TypeaheadRenderOptionState,\n TypeaheadSelectedValue,\n TypeaheadSize,\n TypeaheadTagProps,\n} from './Typeahead.types';\nimport { isTypeaheadOption } from './Typeahead.utils';\nimport {\n TypeaheadClearButton,\n TypeaheadCreateOption,\n TypeaheadDefaultOption,\n TypeaheadDefaultTag,\n} from './TypeaheadParts';\n\ninterface TypeaheadViewRootProps {\n ref: Ref<HTMLDivElement>;\n props: HTMLAttributes<HTMLDivElement>;\n handleBlur: (event: FocusEvent<HTMLDivElement>) => void;\n dataTestId?: string;\n className?: string;\n}\n\ninterface TypeaheadViewState {\n size: TypeaheadSize;\n disabled: boolean;\n isError: boolean;\n multiple?: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\ninterface TypeaheadViewIds {\n commandLabel: string;\n resolvedInputId: string;\n listId: string;\n selectedSummaryId: string;\n inputAriaLabel?: string;\n}\n\ninterface TypeaheadViewInputProps {\n value: string;\n onValueChange: (value: string) => void;\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;\n placeholder: string;\n leftDecorator?: ReactNode;\n showPlaceholderWithValues: boolean;\n autoFocus?: boolean;\n autoComplete?: string;\n setNode: (node: HTMLInputElement | null) => void;\n focus: () => void;\n}\n\ninterface TypeaheadViewSelectionProps<TOption> {\n selectedValues: TypeaheadMultipleValue<TOption>;\n selectedKeys: Set<string>;\n getTagProps: (params: { index: number }) => TypeaheadTagProps;\n renderTags?: (\n value: TypeaheadMultipleValue<TOption>,\n getTagProps: (params: { index: number }) => TypeaheadTagProps\n ) => ReactNode;\n getLabel: (option: TypeaheadSelectedValue<TOption>) => string;\n getValue: (option: TypeaheadSelectedValue<TOption>) => string;\n showClearButton: boolean;\n clearValue: () => void;\n forcePopupIcon: boolean;\n selectedSummary?: string;\n}\n\ninterface TypeaheadViewListProps<TOption> {\n ref: Ref<HTMLDivElement>;\n items: TypeaheadListItem<TOption>[];\n emptyText: string;\n emptyState?: ReactNode;\n listFooter?: ReactNode;\n hideEmptyList: boolean;\n optionIsDisabled: (item: TypeaheadListItem<TOption>) => boolean;\n selectValue: (selected: TypeaheadSelectedValue<TOption>) => void;\n renderOption?: (\n option: TOption,\n state: TypeaheadRenderOptionState\n ) => ReactNode;\n}\n\ninterface TypeaheadViewCreateOptionProps {\n show: boolean;\n inputValue: string;\n label?: ReactNode;\n onCreate: () => void;\n}\n\ninterface TypeaheadViewProps<TOption> {\n root: TypeaheadViewRootProps;\n state: TypeaheadViewState;\n ids: TypeaheadViewIds;\n input: TypeaheadViewInputProps;\n selection: TypeaheadViewSelectionProps<TOption>;\n list: TypeaheadViewListProps<TOption>;\n createOption: TypeaheadViewCreateOptionProps;\n popoverContentRef: Ref<HTMLDivElement>;\n}\n\nconst CONTROL_RADIUS_CLASSES = {\n xs: 'rounded-xs',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-md',\n} as const satisfies Record<TypeaheadSize, string>;\n\nconst MULTIPLE_INPUT_HEIGHT_CLASSES = {\n xs: 'h-4',\n sm: 'h-5',\n md: 'h-6',\n lg: 'h-6',\n} as const satisfies Record<TypeaheadSize, string>;\n\nconst INPUT_TEXT_CLASSES = {\n xs: 'text-xxs leading-[1.15]',\n sm: 'text-xs leading-normal',\n md: 'text-sm leading-normal',\n lg: 'text-sm leading-normal',\n} as const satisfies Record<TypeaheadSize, string>;\n\nexport function TypeaheadView<TOption>({\n root,\n state,\n ids,\n input,\n selection,\n list,\n createOption,\n popoverContentRef,\n}: TypeaheadViewProps<TOption>) {\n const controlRef = useRef<HTMLDivElement | null>(null);\n const preventInputDismiss = (event: Event) => {\n if (\n open &&\n event.target instanceof HTMLInputElement &&\n event.target.getAttribute('role') === 'combobox' &&\n controlRef.current?.contains(event.target)\n ) {\n event.preventDefault();\n }\n };\n // Escape inside the input must close this typeahead before ancestor layers\n // react to it; document-level capture listeners would otherwise dismiss the\n // enclosing dialog first.\n const handleEscapeKeyDown = (event: globalThis.KeyboardEvent) => {\n if (!open) return;\n event.preventDefault();\n setOpen(false);\n };\n const { ref: rootRef, handleBlur, dataTestId, className } = root;\n const { size, disabled, isError, multiple, open, setOpen } = state;\n const {\n commandLabel,\n resolvedInputId,\n listId,\n selectedSummaryId,\n inputAriaLabel,\n } = ids;\n const {\n value: inputValue,\n onValueChange: handleInputValueChange,\n onKeyDown: handleKeyDown,\n placeholder,\n leftDecorator,\n showPlaceholderWithValues,\n autoFocus,\n autoComplete,\n setNode: setInputNode,\n focus: focusInput,\n } = input;\n const {\n selectedValues,\n selectedKeys,\n getTagProps,\n renderTags,\n getLabel,\n getValue,\n showClearButton,\n clearValue,\n forcePopupIcon,\n selectedSummary,\n } = selection;\n const {\n ref: listRef,\n items,\n emptyText,\n emptyState,\n listFooter,\n hideEmptyList,\n optionIsDisabled,\n selectValue,\n renderOption,\n } = list;\n const hasValue = selectedValues.length > 0;\n const showEmptyState =\n items.length === 0 &&\n !createOption.show &&\n (emptyState != null || !hideEmptyList);\n const controlHeightClass = multiple\n ? CONTROL_SIZES[size].minHeightClassName\n : CONTROL_SIZES[size].heightClassName;\n const controlPaddingClass =\n size === 'xs' || size === 'sm' ? 'px-space-2' : 'px-space-3';\n const itemRowSize: OptionRowSize =\n size === 'xs' || size === 'sm' ? 'sm' : 'md';\n const renderedTags =\n multiple &&\n (renderTags\n ? renderTags(selectedValues, getTagProps)\n : selectedValues.map((selected, index) => {\n const tagProps = getTagProps({ index });\n return (\n <TypeaheadDefaultTag\n key={`${getValue(selected)}-${index}`}\n selected={selected}\n index={index}\n disabled={disabled}\n size={size}\n getLabel={getLabel}\n getValue={getValue}\n onRemove={tagProps.onDelete}\n />\n );\n }));\n const inputField = (\n <div\n className={cn(\n 'flex items-center gap-space-2',\n multiple ? 'min-w-0 flex-1' : 'flex-1',\n !multiple && (size === 'xs' ? 'min-w-12' : 'min-w-16')\n )}\n >\n {leftDecorator != null ? (\n <div className=\"flex min-w-0 shrink items-center text-icon-tertiary\">\n {leftDecorator}\n </div>\n ) : !multiple && !hasValue ? (\n <Icon\n aria-hidden\n icon={MagnifyingGlassIcon}\n iconClassName={CONTROL_ICON_SIZES[size].iconClassName}\n className=\"text-icon-tertiary\"\n weight=\"regular\"\n />\n ) : null}\n {/*\n cmdk rewrites some of these combobox attributes as the query changes, so\n useTypeaheadDomSync re-asserts them imperatively. Keep the two attribute\n sets in sync when editing either here or in that hook.\n */}\n <CommandPrimitive.Input\n ref={setInputNode}\n id={resolvedInputId}\n value={inputValue}\n onValueChange={handleInputValueChange}\n onFocus={() => {\n if (!disabled) {\n setOpen(true);\n }\n }}\n onKeyDown={handleKeyDown}\n placeholder={\n hasValue && multiple && !showPlaceholderWithValues\n ? undefined\n : placeholder\n }\n disabled={disabled}\n autoFocus={autoFocus}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-expanded={open}\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-invalid={isError || undefined}\n aria-describedby={multiple ? selectedSummaryId : undefined}\n aria-label={inputAriaLabel}\n className={cn(\n 'min-w-0 max-w-full border-none bg-transparent p-0 outline-none placeholder:text-placeholder',\n INPUT_TEXT_CLASSES[size],\n disabled && 'cursor-not-allowed',\n multiple\n ? cn(MULTIPLE_INPUT_HEIGHT_CLASSES[size], 'w-full')\n : 'h-full w-full flex-1'\n )}\n />\n </div>\n );\n const actionControls = (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-space-1 text-icon-tertiary',\n multiple ? 'self-center' : 'ml-auto'\n )}\n style={{\n marginInlineEnd:\n showClearButton && !forcePopupIcon\n ? CONTROL_ICON_SIZES[size].actionOffset\n : undefined,\n }}\n >\n {showClearButton && (\n <TypeaheadClearButton\n size={size}\n label={multiple ? 'Clear selections' : 'Clear selection'}\n onClick={(event) => {\n event.stopPropagation();\n clearValue();\n }}\n />\n )}\n {forcePopupIcon && (\n <Icon\n aria-hidden\n icon={CaretDownIcon}\n iconClassName={CONTROL_ICON_SIZES[size].iconClassName}\n className={cn(\n 'text-icon-tertiary transition-transform',\n open && 'rotate-180'\n )}\n weight=\"regular\"\n />\n )}\n </div>\n );\n\n return (\n <Command\n ref={rootRef}\n shouldFilter={false}\n label={commandLabel}\n className=\"overflow-visible bg-transparent\"\n >\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverAnchor asChild>\n <div\n ref={controlRef}\n {...root.props}\n data-testid={dataTestId}\n onBlur={handleBlur}\n className={cn(\n 'w-full cursor-text border border-default bg-elevated text-primary transition-colors',\n multiple\n ? 'flex flex-wrap items-center gap-space-1'\n : 'flex items-center gap-space-1 overflow-hidden',\n 'focus-within:border-focus focus-within:bg-elevated hover:bg-elevated-hover',\n controlHeightClass,\n multiple && {\n 'px-space-1 py-0': size === 'xs',\n 'px-space-1 py-px': size === 'sm',\n 'px-space-2 py-0.5': size === 'md',\n 'px-space-3 py-space-1': size === 'lg',\n },\n !multiple && controlPaddingClass,\n CONTROL_RADIUS_CLASSES[size],\n isError && 'border-error focus-within:border-error',\n disabled &&\n 'cursor-not-allowed border-disabled bg-disabled text-disabled opacity-70',\n className\n )}\n onClick={(event) => {\n root.props.onClick?.(event);\n if (!disabled) {\n focusInput();\n setOpen(true);\n }\n }}\n >\n {multiple ? (\n <>\n {renderedTags}\n <div className=\"flex min-w-16 flex-1 items-center gap-space-1\">\n {inputField}\n {actionControls}\n </div>\n </>\n ) : (\n <>\n {inputField}\n {actionControls}\n </>\n )}\n </div>\n </PopoverAnchor>\n\n {multiple && (\n <span\n id={selectedSummaryId}\n className=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {selectedSummary}\n </span>\n )}\n\n <PopoverContent\n ref={popoverContentRef}\n className=\"w-[var(--radix-popover-trigger-width)] min-w-48 max-w-[calc(100vw-1rem)] bg-elevated p-space-1 text-primary\"\n align=\"start\"\n sideOffset={4}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onFocusOutside={preventInputDismiss}\n onInteractOutside={preventInputDismiss}\n >\n <CommandList\n ref={listRef}\n id={listId}\n aria-label={`${commandLabel} options`}\n aria-multiselectable={multiple ? true : undefined}\n className=\"max-h-[18.75rem]\"\n >\n {showEmptyState && (\n <CommandEmpty>\n {emptyState ?? (\n <Text variant=\"sm\" color=\"secondary\">\n {emptyText}\n </Text>\n )}\n </CommandEmpty>\n )}\n\n {items.map((item) => {\n const { option } = item;\n const optionKey = getValue(option);\n const optionLabel = getLabel(option);\n const selected = selectedKeys.has(optionKey);\n const optionDisabled = optionIsDisabled(item);\n const optionState = {\n selected,\n disabled: optionDisabled,\n inputValue,\n };\n\n return (\n <CommandItem\n key={optionKey}\n value={optionKey}\n disabled={optionDisabled}\n keywords={\n isTypeaheadOption(option)\n ? [optionLabel, ...(option.keywords ?? [])]\n : [optionLabel]\n }\n onSelect={() => selectValue(option)}\n aria-checked={multiple ? selected : undefined}\n size={itemRowSize}\n className={cn(\n 'flex items-center gap-space-2 text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2',\n optionDisabled && 'text-disabled'\n )}\n >\n {renderOption && item.source === 'option' ? (\n renderOption(option as TOption, optionState)\n ) : (\n <TypeaheadDefaultOption\n option={option}\n state={optionState}\n getLabel={getLabel}\n size={itemRowSize}\n />\n )}\n </CommandItem>\n );\n })}\n\n {createOption.show && (\n <CommandItem\n value={`__typeahead_create__${createOption.inputValue}`}\n keywords={[createOption.inputValue]}\n onSelect={createOption.onCreate}\n size={itemRowSize}\n aria-label={\n createOption.inputValue\n ? `Add ${createOption.inputValue}`\n : 'Add new'\n }\n className=\"flex items-center gap-space-2 text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2\"\n >\n <TypeaheadCreateOption\n inputValue={createOption.inputValue}\n label={createOption.label}\n />\n </CommandItem>\n )}\n\n {listFooter}\n </CommandList>\n </PopoverContent>\n </Popover>\n </Command>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
1
|
+
import { useCallback, useEffect } from "react";
|
|
2
2
|
//#region packages/components/src/components/Typeahead/useTypeaheadDomSync.ts
|
|
3
3
|
function useTypeaheadDomSync({ autoComplete, commandLabel, inputAriaLabel, inputRef, inputValue, isError, listId, listRef, multiple, open, resolvedInputId, selectedSummaryId }) {
|
|
4
|
+
const setListNode = useCallback((list) => {
|
|
5
|
+
listRef.current = list;
|
|
6
|
+
list?.setAttribute("id", listId);
|
|
7
|
+
list?.setAttribute("aria-label", `${commandLabel} options`);
|
|
8
|
+
if (multiple) list?.setAttribute("aria-multiselectable", "true");
|
|
9
|
+
else list?.removeAttribute("aria-multiselectable");
|
|
10
|
+
}, [
|
|
11
|
+
commandLabel,
|
|
12
|
+
listId,
|
|
13
|
+
listRef,
|
|
14
|
+
multiple
|
|
15
|
+
]);
|
|
4
16
|
useEffect(() => {
|
|
5
17
|
const input = inputRef.current;
|
|
6
|
-
const list = listRef.current;
|
|
7
18
|
input?.setAttribute("id", resolvedInputId);
|
|
8
19
|
input?.setAttribute("aria-controls", listId);
|
|
9
20
|
input?.setAttribute("aria-expanded", String(open));
|
|
@@ -18,24 +29,19 @@ function useTypeaheadDomSync({ autoComplete, commandLabel, inputAriaLabel, input
|
|
|
18
29
|
else input?.removeAttribute("aria-invalid");
|
|
19
30
|
if (multiple) input?.setAttribute("aria-describedby", selectedSummaryId);
|
|
20
31
|
else input?.removeAttribute("aria-describedby");
|
|
21
|
-
list?.setAttribute("id", listId);
|
|
22
|
-
list?.setAttribute("aria-label", `${commandLabel} options`);
|
|
23
|
-
if (multiple) list?.setAttribute("aria-multiselectable", "true");
|
|
24
|
-
else list?.removeAttribute("aria-multiselectable");
|
|
25
32
|
}, [
|
|
26
33
|
autoComplete,
|
|
27
|
-
commandLabel,
|
|
28
34
|
inputAriaLabel,
|
|
29
35
|
inputRef,
|
|
30
36
|
inputValue,
|
|
31
37
|
isError,
|
|
32
38
|
listId,
|
|
33
|
-
listRef,
|
|
34
39
|
multiple,
|
|
35
40
|
open,
|
|
36
41
|
resolvedInputId,
|
|
37
42
|
selectedSummaryId
|
|
38
43
|
]);
|
|
44
|
+
return setListNode;
|
|
39
45
|
}
|
|
40
46
|
//#endregion
|
|
41
47
|
export { useTypeaheadDomSync };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypeaheadDomSync.js","names":[],"sources":["../../../src/components/Typeahead/useTypeaheadDomSync.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nexport function useTypeaheadDomSync({\n autoComplete,\n commandLabel,\n inputAriaLabel,\n inputRef,\n inputValue,\n isError,\n listId,\n listRef,\n multiple,\n open,\n resolvedInputId,\n selectedSummaryId,\n}: {\n autoComplete?: string;\n commandLabel: string;\n inputAriaLabel?: string;\n inputRef: RefObject<HTMLInputElement | null>;\n inputValue: string;\n isError: boolean;\n listId: string;\n listRef: RefObject<HTMLDivElement | null>;\n multiple?: boolean;\n open: boolean;\n resolvedInputId: string;\n selectedSummaryId: string;\n}) {\n useEffect(() => {\n // cmdk owns these DOM nodes and may rewrite combobox attributes as input changes.\n const input = inputRef.current;\n
|
|
1
|
+
{"version":3,"file":"useTypeaheadDomSync.js","names":[],"sources":["../../../src/components/Typeahead/useTypeaheadDomSync.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useCallback, useEffect } from 'react';\n\nexport function useTypeaheadDomSync({\n autoComplete,\n commandLabel,\n inputAriaLabel,\n inputRef,\n inputValue,\n isError,\n listId,\n listRef,\n multiple,\n open,\n resolvedInputId,\n selectedSummaryId,\n}: {\n autoComplete?: string;\n commandLabel: string;\n inputAriaLabel?: string;\n inputRef: RefObject<HTMLInputElement | null>;\n inputValue: string;\n isError: boolean;\n listId: string;\n listRef: RefObject<HTMLDivElement | null>;\n multiple?: boolean;\n open: boolean;\n resolvedInputId: string;\n selectedSummaryId: string;\n}) {\n // The portaled list mounts after the input's effects have run.\n const setListNode = useCallback(\n (list: HTMLDivElement | null) => {\n listRef.current = list;\n list?.setAttribute('id', listId);\n list?.setAttribute('aria-label', `${commandLabel} options`);\n if (multiple) {\n list?.setAttribute('aria-multiselectable', 'true');\n } else {\n list?.removeAttribute('aria-multiselectable');\n }\n },\n [commandLabel, listId, listRef, multiple]\n );\n\n useEffect(() => {\n // cmdk owns these DOM nodes and may rewrite combobox attributes as input changes.\n const input = inputRef.current;\n\n input?.setAttribute('id', resolvedInputId);\n input?.setAttribute('aria-controls', listId);\n input?.setAttribute('aria-expanded', String(open));\n input?.setAttribute('aria-haspopup', 'listbox');\n input?.setAttribute('autocomplete', autoComplete ?? 'off');\n if (inputAriaLabel) {\n input?.setAttribute('aria-label', inputAriaLabel);\n } else {\n input?.removeAttribute('aria-label');\n input?.removeAttribute('aria-labelledby');\n }\n if (isError) {\n input?.setAttribute('aria-invalid', 'true');\n } else {\n input?.removeAttribute('aria-invalid');\n }\n if (multiple) {\n input?.setAttribute('aria-describedby', selectedSummaryId);\n } else {\n input?.removeAttribute('aria-describedby');\n }\n }, [\n autoComplete,\n inputAriaLabel,\n inputRef,\n inputValue,\n isError,\n listId,\n multiple,\n open,\n resolvedInputId,\n selectedSummaryId,\n ]);\n\n return setListNode;\n}\n"],"mappings":";;AAGA,SAAgB,oBAAoB,EAClC,cACA,cACA,gBACA,UACA,YACA,SACA,QACA,SACA,UACA,MACA,iBACA,qBAcC;CAED,MAAM,cAAc,aACjB,SAAgC;EAC/B,QAAQ,UAAU;EAClB,MAAM,aAAa,MAAM,MAAM;EAC/B,MAAM,aAAa,cAAc,GAAG,aAAa,SAAS;EAC1D,IAAI,UACF,MAAM,aAAa,wBAAwB,MAAM;OAEjD,MAAM,gBAAgB,sBAAsB;CAEhD,GACA;EAAC;EAAc;EAAQ;EAAS;CAAQ,CAC1C;CAEA,gBAAgB;EAEd,MAAM,QAAQ,SAAS;EAEvB,OAAO,aAAa,MAAM,eAAe;EACzC,OAAO,aAAa,iBAAiB,MAAM;EAC3C,OAAO,aAAa,iBAAiB,OAAO,IAAI,CAAC;EACjD,OAAO,aAAa,iBAAiB,SAAS;EAC9C,OAAO,aAAa,gBAAgB,gBAAgB,KAAK;EACzD,IAAI,gBACF,OAAO,aAAa,cAAc,cAAc;OAC3C;GACL,OAAO,gBAAgB,YAAY;GACnC,OAAO,gBAAgB,iBAAiB;EAC1C;EACA,IAAI,SACF,OAAO,aAAa,gBAAgB,MAAM;OAE1C,OAAO,gBAAgB,cAAc;EAEvC,IAAI,UACF,OAAO,aAAa,oBAAoB,iBAAiB;OAEzD,OAAO,gBAAgB,kBAAkB;CAE7C,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OAAO;AACT"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { TypeaheadMultipleValue, TypeaheadSelectedValue, TypeaheadSingleValue } from './Typeahead.types.js';
|
|
2
|
-
export declare function useTypeaheadUncontrolledInput<TOption>({ clearOnBlur, controlledInputValue, freeSolo, getLabel, multiple, open, setUncontrolledInputValue, value, }: {
|
|
2
|
+
export declare function useTypeaheadUncontrolledInput<TOption>({ clearOnBlur, controlledInputValue, freeSolo, getLabel, getValue, multiple, open, setUncontrolledInputValue, value, }: {
|
|
3
3
|
clearOnBlur?: boolean;
|
|
4
4
|
controlledInputValue?: string;
|
|
5
5
|
freeSolo: boolean;
|
|
6
6
|
getLabel: (option: TypeaheadSelectedValue<TOption>) => string;
|
|
7
|
+
getValue: (option: TypeaheadSelectedValue<TOption>) => string;
|
|
7
8
|
multiple?: boolean;
|
|
8
9
|
open: boolean;
|
|
9
10
|
setUncontrolledInputValue: (value: string) => void;
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
//#region packages/components/src/components/Typeahead/useTypeaheadUncontrolledInput.ts
|
|
3
|
-
function useTypeaheadUncontrolledInput({ clearOnBlur, controlledInputValue, freeSolo, getLabel, multiple, open, setUncontrolledInputValue, value }) {
|
|
3
|
+
function useTypeaheadUncontrolledInput({ clearOnBlur, controlledInputValue, freeSolo, getLabel, getValue, multiple, open, setUncontrolledInputValue, value }) {
|
|
4
4
|
const singleValue = Array.isArray(value) ? null : value;
|
|
5
|
+
const selectedLabel = singleValue == null ? "" : getLabel(singleValue);
|
|
6
|
+
const selectedKey = singleValue == null ? null : getValue(singleValue);
|
|
5
7
|
useEffect(() => {
|
|
6
8
|
if (controlledInputValue !== void 0 || multiple) return;
|
|
7
|
-
setUncontrolledInputValue(
|
|
9
|
+
setUncontrolledInputValue(selectedLabel);
|
|
8
10
|
}, [
|
|
9
11
|
controlledInputValue,
|
|
10
|
-
getLabel,
|
|
11
12
|
multiple,
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
selectedKey,
|
|
14
|
+
selectedLabel,
|
|
15
|
+
setUncontrolledInputValue
|
|
14
16
|
]);
|
|
15
17
|
useEffect(() => {
|
|
16
18
|
if (open || controlledInputValue !== void 0) return;
|
|
17
|
-
if (clearOnBlur ?? !freeSolo) setUncontrolledInputValue(multiple
|
|
19
|
+
if (clearOnBlur ?? !freeSolo) setUncontrolledInputValue(multiple ? "" : selectedLabel);
|
|
18
20
|
}, [
|
|
19
21
|
clearOnBlur,
|
|
20
22
|
controlledInputValue,
|
|
21
23
|
freeSolo,
|
|
22
|
-
getLabel,
|
|
23
24
|
multiple,
|
|
24
25
|
open,
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
selectedLabel,
|
|
27
|
+
setUncontrolledInputValue
|
|
27
28
|
]);
|
|
28
29
|
}
|
|
29
30
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypeaheadUncontrolledInput.js","names":[],"sources":["../../../src/components/Typeahead/useTypeaheadUncontrolledInput.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type {\n TypeaheadMultipleValue,\n TypeaheadSelectedValue,\n TypeaheadSingleValue,\n} from './Typeahead.types';\n\nexport function useTypeaheadUncontrolledInput<TOption>({\n clearOnBlur,\n controlledInputValue,\n freeSolo,\n getLabel,\n multiple,\n open,\n setUncontrolledInputValue,\n value,\n}: {\n clearOnBlur?: boolean;\n controlledInputValue?: string;\n freeSolo: boolean;\n getLabel: (option: TypeaheadSelectedValue<TOption>) => string;\n multiple?: boolean;\n open: boolean;\n setUncontrolledInputValue: (value: string) => void;\n value: TypeaheadSingleValue<TOption> | TypeaheadMultipleValue<TOption>;\n}) {\n const singleValue: TypeaheadSingleValue<TOption> = Array.isArray(value)\n ? null\n : value;\n\n useEffect(() => {\n if (controlledInputValue !== undefined || multiple) return;\n setUncontrolledInputValue(
|
|
1
|
+
{"version":3,"file":"useTypeaheadUncontrolledInput.js","names":[],"sources":["../../../src/components/Typeahead/useTypeaheadUncontrolledInput.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type {\n TypeaheadMultipleValue,\n TypeaheadSelectedValue,\n TypeaheadSingleValue,\n} from './Typeahead.types';\n\nexport function useTypeaheadUncontrolledInput<TOption>({\n clearOnBlur,\n controlledInputValue,\n freeSolo,\n getLabel,\n getValue,\n multiple,\n open,\n setUncontrolledInputValue,\n value,\n}: {\n clearOnBlur?: boolean;\n controlledInputValue?: string;\n freeSolo: boolean;\n getLabel: (option: TypeaheadSelectedValue<TOption>) => string;\n getValue: (option: TypeaheadSelectedValue<TOption>) => string;\n multiple?: boolean;\n open: boolean;\n setUncontrolledInputValue: (value: string) => void;\n value: TypeaheadSingleValue<TOption> | TypeaheadMultipleValue<TOption>;\n}) {\n const singleValue: TypeaheadSingleValue<TOption> = Array.isArray(value)\n ? null\n : value;\n const selectedLabel = singleValue == null ? '' : getLabel(singleValue);\n const selectedKey = singleValue == null ? null : getValue(singleValue);\n\n // Equivalent options and recreated callbacks must not replace an active query.\n useEffect(() => {\n if (controlledInputValue !== undefined || multiple) return;\n setUncontrolledInputValue(selectedLabel);\n }, [\n controlledInputValue,\n multiple,\n selectedKey,\n selectedLabel,\n setUncontrolledInputValue,\n ]);\n\n useEffect(() => {\n if (open || controlledInputValue !== undefined) return;\n if (clearOnBlur ?? !freeSolo) {\n setUncontrolledInputValue(multiple ? '' : selectedLabel);\n }\n }, [\n clearOnBlur,\n controlledInputValue,\n freeSolo,\n multiple,\n open,\n selectedLabel,\n setUncontrolledInputValue,\n ]);\n}\n"],"mappings":";;AAQA,SAAgB,8BAAuC,EACrD,aACA,sBACA,UACA,UACA,UACA,UACA,MACA,2BACA,SAWC;CACD,MAAM,cAA6C,MAAM,QAAQ,KAAK,IAClE,OACA;CACJ,MAAM,gBAAgB,eAAe,OAAO,KAAK,SAAS,WAAW;CACrE,MAAM,cAAc,eAAe,OAAO,OAAO,SAAS,WAAW;CAGrE,gBAAgB;EACd,IAAI,yBAAyB,KAAA,KAAa,UAAU;EACpD,0BAA0B,aAAa;CACzC,GAAG;EACD;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,gBAAgB;EACd,IAAI,QAAQ,yBAAyB,KAAA,GAAW;EAChD,IAAI,eAAe,CAAC,UAClB,0BAA0B,WAAW,KAAK,aAAa;CAE3D,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Text } from "./Text/Text.js";
|
|
2
|
-
import { Tooltip } from "./Tooltip/Tooltip.js";
|
|
3
2
|
import { Button } from "./Button/Button.js";
|
|
3
|
+
import { Tooltip } from "./Tooltip/Tooltip.js";
|
|
4
4
|
import { Dialog, DialogContent } from "./Dialog/index.js";
|
|
5
|
+
import { WarningCircleIcon } from "@phosphor-icons/react/dist/ssr/WarningCircle";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
import { FloppyDiskIcon } from "@phosphor-icons/react/dist/ssr/FloppyDisk";
|
|
7
|
-
import { WarningCircleIcon } from "@phosphor-icons/react/dist/ssr/WarningCircle";
|
|
8
8
|
//#region packages/components/src/components/UnsavedChangesDialog.tsx
|
|
9
9
|
var UnsavedChangesDialog = ({ isOpen, onClose, onConfirm, onDiscard, title, description, saveCopy = "Save", discardCopy = "Discard", disabledSaveTooltip }) => {
|
|
10
10
|
return /* @__PURE__ */ jsx(Dialog, {
|
|
@@ -10,6 +10,8 @@ export { EmptyState } from './EmptyState/index.js';
|
|
|
10
10
|
export type { EmptyStateProps, EmptyStateSize, EmptyStateVariant, } from './EmptyState/index.js';
|
|
11
11
|
export { Avatar } from './Avatar/index.js';
|
|
12
12
|
export type { AvatarProps } from './Avatar/index.js';
|
|
13
|
+
export { Attachment, AttachmentList } from './Attachment/index.js';
|
|
14
|
+
export type { AttachmentProps, AttachmentListProps } from './Attachment/index.js';
|
|
13
15
|
export { ErrorState } from './ErrorState/index.js';
|
|
14
16
|
export type { ErrorStateProps } from './ErrorState/index.js';
|
|
15
17
|
export { Badge } from './Badge/index.js';
|
|
@@ -49,7 +51,7 @@ export { Skeleton, SkeletonRows, CircleSkeleton } from './Skeleton/index.js';
|
|
|
49
51
|
export { LinearProgress } from './LinearProgress/index.js';
|
|
50
52
|
export type { LinearProgressProps } from './LinearProgress/index.js';
|
|
51
53
|
export { formatMetricCurrency, formatMetricDate, formatMetricDuration, formatMetricNumber, formatMetricTime, MetricChart, } from './MetricChart/index.js';
|
|
52
|
-
export type { MetricChartProps, MetricChartSize, MetricCurrencyFormatOptions, MetricDateTimeFormatOptions, MetricDurationFormatOptions, MetricDurationUnit, MetricNumberFormatOptions, } from './MetricChart/index.js';
|
|
54
|
+
export type { MetricChartProps, MetricChartSize, MetricChartUnit, MetricCurrencyFormatOptions, MetricDateTimeFormatOptions, MetricDurationFormatOptions, MetricDurationUnit, MetricNumberFormatOptions, } from './MetricChart/index.js';
|
|
53
55
|
export { ProgressBar } from './ProgressBar/index.js';
|
|
54
56
|
export type { ProgressBarColor, ProgressBarLabelPosition, ProgressBarProps, ProgressBarSize, } from './ProgressBar/index.js';
|
|
55
57
|
export { Slider } from './Slider/index.js';
|
package/dist/components/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Text } from "./Text/Text.js";
|
|
2
|
+
import { Badge } from "./Badge/Badge.js";
|
|
3
|
+
import { Spinner, SpinnerIcon } from "./Spinner/Spinner.js";
|
|
4
|
+
import { Button } from "./Button/Button.js";
|
|
2
5
|
import { Tooltip } from "./Tooltip/Tooltip.js";
|
|
3
6
|
import { TooltipProvider } from "./Tooltip/index.js";
|
|
4
|
-
import { Avatar } from "./Avatar/Avatar.js";
|
|
5
|
-
import { Badge } from "./Badge/Badge.js";
|
|
6
7
|
import { Icon } from "./Icon/Icon.js";
|
|
7
|
-
import { Spinner, SpinnerIcon } from "./Spinner/Spinner.js";
|
|
8
8
|
import { IconButton } from "./IconButton/IconButton.js";
|
|
9
|
+
import { Attachment } from "./Attachment/Attachment.js";
|
|
10
|
+
import { AttachmentList } from "./Attachment/AttachmentList.js";
|
|
11
|
+
import { Avatar } from "./Avatar/Avatar.js";
|
|
9
12
|
import { Banner } from "./Banner/Banner.js";
|
|
10
|
-
import { Button } from "./Button/Button.js";
|
|
11
13
|
import { ButtonGroup } from "./ButtonGroup/ButtonGroup.js";
|
|
12
14
|
import { Card } from "./Card/Card.js";
|
|
13
15
|
import { Link } from "./Link/Link.js";
|
|
@@ -32,4 +34,4 @@ import { RadioGroupItem } from "./RadioGroup/RadioGroupItem.js";
|
|
|
32
34
|
import { Slider } from "./Slider/Slider.js";
|
|
33
35
|
import { Switch } from "./Switch/Switch.js";
|
|
34
36
|
import { Textarea } from "./Textarea/Textarea.js";
|
|
35
|
-
export { Avatar, Badge, Banner, Button, ButtonGroup, Card, ChartTooltip, ChartTooltipBody, ChartTooltipHeader, ChartTooltipRow, Checkbox, CircleSkeleton, Divider, EmptyState, ErrorState, GroupedTabs, Icon, IconButton, Input, Kbd, KbdGroup, LinearProgress, Link, MetricChart, ProgressBar, RadioButton, RadioCard, RadioGroup, RadioGroupItem, Skeleton, SkeletonRows, Slider, Spinner, SpinnerIcon, Switch, Text, Textarea, Tooltip, TooltipProvider, formatMetricCurrency, formatMetricDate, formatMetricDuration, formatMetricNumber, formatMetricTime, getCheckedState };
|
|
37
|
+
export { Attachment, AttachmentList, Avatar, Badge, Banner, Button, ButtonGroup, Card, ChartTooltip, ChartTooltipBody, ChartTooltipHeader, ChartTooltipRow, Checkbox, CircleSkeleton, Divider, EmptyState, ErrorState, GroupedTabs, Icon, IconButton, Input, Kbd, KbdGroup, LinearProgress, Link, MetricChart, ProgressBar, RadioButton, RadioCard, RadioGroup, RadioGroupItem, Skeleton, SkeletonRows, Slider, Spinner, SpinnerIcon, Switch, Text, Textarea, Tooltip, TooltipProvider, formatMetricCurrency, formatMetricDate, formatMetricDuration, formatMetricNumber, formatMetricTime, getCheckedState };
|
package/dist/components.css
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
/* Adapted from TurboKach/ai-native-react-components (MIT). See NOTICE. */
|
|
2
|
-
.
|
|
2
|
+
._grid_167sb_2 {
|
|
3
3
|
display: inline-grid;
|
|
4
4
|
grid-template: repeat(3, minmax(0, 1fr)) / repeat(3, minmax(0, 1fr));
|
|
5
5
|
gap: 10%;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
.
|
|
8
|
+
._pixel_167sb_8 {
|
|
9
9
|
border-radius: 1px;
|
|
10
10
|
opacity: 0.15;
|
|
11
|
-
animation: _pixel-
|
|
11
|
+
animation: _pixel-on_167sb_1 var(--loading-cycle) ease-in-out infinite;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.
|
|
14
|
+
._dot_167sb_14 {
|
|
15
15
|
border-radius: var(--radius-full);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.
|
|
18
|
+
._inactive_167sb_18 {
|
|
19
19
|
opacity: 0.07;
|
|
20
20
|
animation: none;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
.
|
|
23
|
+
._grid_167sb_2[data-animated='false'] ._pixel_167sb_8 {
|
|
24
24
|
animation: none;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
.
|
|
27
|
+
._grid_167sb_2[data-animated='false'] ._pixel_167sb_8:not(._inactive_167sb_18) {
|
|
28
28
|
opacity: 0.5;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.
|
|
31
|
+
._shimmer_167sb_31 {
|
|
32
32
|
background-image: linear-gradient(to right, var(--tw-gradient-stops));
|
|
33
33
|
--tw-gradient-from: var(--text-tertiary) var(--tw-gradient-from-position);
|
|
34
34
|
--tw-gradient-to: color-mix(in srgb, var(--text-tertiary) calc(0 * 100%), transparent) var(--tw-gradient-to-position);
|
|
@@ -42,16 +42,20 @@
|
|
|
42
42
|
background-clip: text;
|
|
43
43
|
color: transparent;
|
|
44
44
|
background-size: 200% 100%;
|
|
45
|
-
animation: _shimmer-
|
|
45
|
+
animation: _shimmer-text_167sb_1 1.4s linear infinite;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
.
|
|
48
|
+
._slow_167sb_37 {
|
|
49
|
+
animation-duration: 2.8s;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
._brandShimmer_167sb_41 {
|
|
49
53
|
--tw-gradient-to: color-mix(in srgb, var(--text-brand-primary) calc(0 * 100%), transparent) var(--tw-gradient-to-position);
|
|
50
54
|
--tw-gradient-stops: var(--tw-gradient-from), var(--text-brand-primary) var(--tw-gradient-via-position), var(--tw-gradient-to);
|
|
51
55
|
--tw-gradient-to: var(--text-tertiary) var(--tw-gradient-to-position);
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
@keyframes _pixel-
|
|
58
|
+
@keyframes _pixel-on_167sb_1 {
|
|
55
59
|
0%,
|
|
56
60
|
100% {
|
|
57
61
|
opacity: 0.15;
|
|
@@ -65,7 +69,7 @@
|
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
@keyframes _shimmer-
|
|
72
|
+
@keyframes _shimmer-text_167sb_1 {
|
|
69
73
|
from {
|
|
70
74
|
background-position: 150% 50%;
|
|
71
75
|
}
|
|
@@ -75,15 +79,15 @@
|
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
@media (prefers-reduced-motion: reduce) {
|
|
78
|
-
.
|
|
79
|
-
.
|
|
82
|
+
._pixel_167sb_8,
|
|
83
|
+
._shimmer_167sb_31 {
|
|
80
84
|
animation: none;
|
|
81
85
|
}
|
|
82
86
|
|
|
83
|
-
.
|
|
87
|
+
._pixel_167sb_8:not(._inactive_167sb_18) {
|
|
84
88
|
opacity: 0.5;
|
|
85
89
|
}
|
|
86
|
-
.
|
|
90
|
+
._shimmer_167sb_31 {
|
|
87
91
|
--tw-text-opacity: 1;
|
|
88
92
|
color: color-mix(in srgb, var(--text-secondary) calc(var(--tw-text-opacity, 1) * 100%), transparent);
|
|
89
93
|
background: none;
|
|
@@ -91,11 +95,11 @@
|
|
|
91
95
|
}
|
|
92
96
|
|
|
93
97
|
@media (forced-colors: active) {
|
|
94
|
-
.
|
|
98
|
+
._shimmer_167sb_31 {
|
|
95
99
|
background: none;
|
|
96
100
|
color: CanvasText;
|
|
97
101
|
}
|
|
98
|
-
.
|
|
102
|
+
._pixel_167sb_8 {
|
|
99
103
|
background: CanvasText;
|
|
100
104
|
}
|
|
101
105
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep this hook in the owner of a resource's draft, above conditionally mounted
|
|
3
|
+
* editors. Update the draft synchronously, then schedule its accepted value.
|
|
4
|
+
* Commits run in order and survive unmount. Each callback must return a promise
|
|
5
|
+
* covering the full write; it must settle before the next write starts.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useDebouncedCommit<T>({ onCommit, onError, delay, }: {
|
|
8
|
+
onCommit: (value: T) => void | Promise<unknown>;
|
|
9
|
+
onError: (error: unknown) => void;
|
|
10
|
+
delay: number;
|
|
11
|
+
}): {
|
|
12
|
+
schedule: (value: T) => void;
|
|
13
|
+
flush: () => void;
|
|
14
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useEffect, useRef } from "react";
|
|
2
|
+
import { useDebouncedCallback } from "use-debounce";
|
|
3
|
+
//#region packages/components/src/hooks/useDebouncedCommit.ts
|
|
4
|
+
/**
|
|
5
|
+
* Keep this hook in the owner of a resource's draft, above conditionally mounted
|
|
6
|
+
* editors. Update the draft synchronously, then schedule its accepted value.
|
|
7
|
+
* Commits run in order and survive unmount. Each callback must return a promise
|
|
8
|
+
* covering the full write; it must settle before the next write starts.
|
|
9
|
+
*/
|
|
10
|
+
function useDebouncedCommit({ onCommit, onError, delay }) {
|
|
11
|
+
const pending = useRef(null);
|
|
12
|
+
const commit = useDebouncedCallback((value, commitValue, reportError) => {
|
|
13
|
+
const run = async () => {
|
|
14
|
+
try {
|
|
15
|
+
await commitValue(value);
|
|
16
|
+
} catch (error) {
|
|
17
|
+
reportError(error);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const completion = (pending.current ?? Promise.resolve()).then(run, run);
|
|
21
|
+
pending.current = completion;
|
|
22
|
+
return completion;
|
|
23
|
+
}, delay);
|
|
24
|
+
useEffect(() => () => void commit.flush(), [commit]);
|
|
25
|
+
return {
|
|
26
|
+
schedule: (value) => {
|
|
27
|
+
commit(value, onCommit, onError);
|
|
28
|
+
},
|
|
29
|
+
flush: commit.flush
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { useDebouncedCommit };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=useDebouncedCommit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDebouncedCommit.js","names":[],"sources":["../../src/hooks/useDebouncedCommit.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useDebouncedCallback } from 'use-debounce';\n\n/**\n * Keep this hook in the owner of a resource's draft, above conditionally mounted\n * editors. Update the draft synchronously, then schedule its accepted value.\n * Commits run in order and survive unmount. Each callback must return a promise\n * covering the full write; it must settle before the next write starts.\n */\nexport function useDebouncedCommit<T>({\n onCommit,\n onError,\n delay,\n}: {\n onCommit: (value: T) => void | Promise<unknown>;\n onError: (error: unknown) => void;\n delay: number;\n}) {\n const pending = useRef<Promise<void> | null>(null);\n const commit = useDebouncedCallback(\n (value: T, commitValue: typeof onCommit, reportError: typeof onError) => {\n const run = async () => {\n try {\n await commitValue(value);\n } catch (error) {\n reportError(error);\n }\n };\n // Capture this value and callback before waiting for earlier writes.\n const completion = (pending.current ?? Promise.resolve()).then(run, run);\n pending.current = completion;\n return completion;\n },\n delay\n );\n\n useEffect(() => () => void commit.flush(), [commit]);\n\n return {\n schedule: (value: T) => {\n commit(value, onCommit, onError);\n },\n flush: commit.flush,\n };\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,mBAAsB,EACpC,UACA,SACA,SAKC;CACD,MAAM,UAAU,OAA6B,IAAI;CACjD,MAAM,SAAS,sBACZ,OAAU,aAA8B,gBAAgC;EACvE,MAAM,MAAM,YAAY;GACtB,IAAI;IACF,MAAM,YAAY,KAAK;GACzB,SAAS,OAAO;IACd,YAAY,KAAK;GACnB;EACF;EAEA,MAAM,cAAc,QAAQ,WAAW,QAAQ,QAAQ,EAAA,CAAG,KAAK,KAAK,GAAG;EACvE,QAAQ,UAAU;EAClB,OAAO;CACT,GACA,KACF;CAEA,sBAAsB,KAAK,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC;CAEnD,OAAO;EACL,WAAW,UAAa;GACtB,OAAO,OAAO,UAAU,OAAO;EACjC;EACA,OAAO,OAAO;CAChB;AACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CaretDownIcon, CaretRightIcon, MinusIcon } from "./PaddedPhosphorIcons.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { InfoIcon } from "@phosphor-icons/react/dist/ssr/Info";
|
|
4
|
+
import { CaretUpDownIcon } from "@phosphor-icons/react/dist/ssr/CaretUpDown";
|
|
4
5
|
import { BinaryIcon } from "@phosphor-icons/react/dist/ssr/Binary";
|
|
5
6
|
import { BriefcaseIcon } from "@phosphor-icons/react/dist/ssr/Briefcase";
|
|
6
7
|
import { BuildingsIcon } from "@phosphor-icons/react/dist/ssr/Buildings";
|
|
7
8
|
import { CarIcon } from "@phosphor-icons/react/dist/ssr/Car";
|
|
8
|
-
import { CaretUpDownIcon } from "@phosphor-icons/react/dist/ssr/CaretUpDown";
|
|
9
9
|
import { ChatCenteredDotsIcon } from "@phosphor-icons/react/dist/ssr/ChatCenteredDots";
|
|
10
10
|
import { ClockCounterClockwiseIcon } from "@phosphor-icons/react/dist/ssr/ClockCounterClockwise";
|
|
11
11
|
import { CodepenLogoIcon } from "@phosphor-icons/react/dist/ssr/CodepenLogo";
|
|
@@ -6,6 +6,7 @@ export declare const ArrowUpIcon: IconComponent;
|
|
|
6
6
|
export declare const CaretDoubleRightIcon: IconComponent;
|
|
7
7
|
export declare const CaretDoubleLeftIcon: IconComponent;
|
|
8
8
|
export declare const CaretDownIcon: IconComponent;
|
|
9
|
+
export declare const CaretUpDownIcon: IconComponent;
|
|
9
10
|
export declare const CaretLeftIcon: IconComponent;
|
|
10
11
|
export declare const CaretRightIcon: IconComponent;
|
|
11
12
|
export declare const CaretUpIcon: IconComponent;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { XIcon as XIcon$1 } from "@phosphor-icons/react/dist/ssr/X";
|
|
1
2
|
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import { ArrowDownIcon as ArrowDownIcon$1 } from "@phosphor-icons/react/dist/ssr/ArrowDown";
|
|
3
4
|
import { ArrowLeftIcon as ArrowLeftIcon$1 } from "@phosphor-icons/react/dist/ssr/ArrowLeft";
|
|
@@ -9,11 +10,11 @@ import { CaretDownIcon as CaretDownIcon$1 } from "@phosphor-icons/react/dist/ssr
|
|
|
9
10
|
import { CaretLeftIcon as CaretLeftIcon$1 } from "@phosphor-icons/react/dist/ssr/CaretLeft";
|
|
10
11
|
import { CaretRightIcon as CaretRightIcon$1 } from "@phosphor-icons/react/dist/ssr/CaretRight";
|
|
11
12
|
import { CaretUpIcon as CaretUpIcon$1 } from "@phosphor-icons/react/dist/ssr/CaretUp";
|
|
13
|
+
import { CaretUpDownIcon as CaretUpDownIcon$1 } from "@phosphor-icons/react/dist/ssr/CaretUpDown";
|
|
12
14
|
import { CheckIcon as CheckIcon$1 } from "@phosphor-icons/react/dist/ssr/Check";
|
|
13
15
|
import { DotsSixVerticalIcon as DotsSixVerticalIcon$1 } from "@phosphor-icons/react/dist/ssr/DotsSixVertical";
|
|
14
16
|
import { MinusIcon as MinusIcon$1 } from "@phosphor-icons/react/dist/ssr/Minus";
|
|
15
17
|
import { PlusIcon as PlusIcon$1 } from "@phosphor-icons/react/dist/ssr/Plus";
|
|
16
|
-
import { XIcon as XIcon$1 } from "@phosphor-icons/react/dist/ssr/X";
|
|
17
18
|
//#region packages/components/src/icons/PaddedPhosphorIcons.tsx
|
|
18
19
|
var createPaddedIcon = (IconComponent, inset, displayName, extraBold = false) => {
|
|
19
20
|
const viewBox = `${-inset} ${-inset} ${256 + inset * 2} ${256 + inset * 2}`;
|
|
@@ -40,6 +41,7 @@ var ArrowUpIcon = /* @__PURE__ */ createPaddedIcon(ArrowUpIcon$1, 32, "ArrowUpIc
|
|
|
40
41
|
var CaretDoubleRightIcon = /* @__PURE__ */ createPaddedIcon(CaretDoubleRightIcon$1, 64, "CaretDoubleRightIcon", true);
|
|
41
42
|
var CaretDoubleLeftIcon = /* @__PURE__ */ createPaddedIcon(CaretDoubleLeftIcon$1, 64, "CaretDoubleLeftIcon", true);
|
|
42
43
|
var CaretDownIcon = /* @__PURE__ */ createPaddedIcon(CaretDownIcon$1, 64, "CaretDownIcon", true);
|
|
44
|
+
var CaretUpDownIcon = /* @__PURE__ */ createPaddedIcon(CaretUpDownIcon$1, 64, "CaretUpDownIcon", true);
|
|
43
45
|
var CaretLeftIcon = /* @__PURE__ */ createPaddedIcon(CaretLeftIcon$1, 64, "CaretLeftIcon", true);
|
|
44
46
|
var CaretRightIcon = /* @__PURE__ */ createPaddedIcon(CaretRightIcon$1, 64, "CaretRightIcon", true);
|
|
45
47
|
var CaretUpIcon = /* @__PURE__ */ createPaddedIcon(CaretUpIcon$1, 64, "CaretUpIcon", true);
|
|
@@ -50,6 +52,6 @@ var PlusIcon = /* @__PURE__ */ createPaddedIcon(PlusIcon$1, 40, "PlusIcon");
|
|
|
50
52
|
var XCloseIcon = /* @__PURE__ */ createPaddedIcon(XIcon$1, 40, "XCloseIcon", true);
|
|
51
53
|
var XIcon = /* @__PURE__ */ createPaddedIcon(XIcon$1, 64, "XIcon", true);
|
|
52
54
|
//#endregion
|
|
53
|
-
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CaretDoubleLeftIcon, CaretDoubleRightIcon, CaretDownIcon, CaretLeftIcon, CaretRightIcon, CaretUpIcon, CheckIcon, DotsSixVerticalIcon, MinusIcon, PlusIcon, XCloseIcon, XIcon };
|
|
55
|
+
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CaretDoubleLeftIcon, CaretDoubleRightIcon, CaretDownIcon, CaretLeftIcon, CaretRightIcon, CaretUpDownIcon, CaretUpIcon, CheckIcon, DotsSixVerticalIcon, MinusIcon, PlusIcon, XCloseIcon, XIcon };
|
|
54
56
|
|
|
55
57
|
//# sourceMappingURL=PaddedPhosphorIcons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaddedPhosphorIcons.js","names":[],"sources":["../../src/icons/PaddedPhosphorIcons.tsx"],"sourcesContent":["import { ArrowDownIcon as PhosphorArrowDownIcon } from '@phosphor-icons/react/dist/ssr/ArrowDown';\nimport { ArrowLeftIcon as PhosphorArrowLeftIcon } from '@phosphor-icons/react/dist/ssr/ArrowLeft';\nimport { ArrowRightIcon as PhosphorArrowRightIcon } from '@phosphor-icons/react/dist/ssr/ArrowRight';\nimport { ArrowUpIcon as PhosphorArrowUpIcon } from '@phosphor-icons/react/dist/ssr/ArrowUp';\nimport { CaretDoubleLeftIcon as PhosphorCaretDoubleLeftIcon } from '@phosphor-icons/react/dist/ssr/CaretDoubleLeft';\nimport { CaretDoubleRightIcon as PhosphorCaretDoubleRightIcon } from '@phosphor-icons/react/dist/ssr/CaretDoubleRight';\nimport { CaretDownIcon as PhosphorCaretDownIcon } from '@phosphor-icons/react/dist/ssr/CaretDown';\nimport { CaretLeftIcon as PhosphorCaretLeftIcon } from '@phosphor-icons/react/dist/ssr/CaretLeft';\nimport { CaretRightIcon as PhosphorCaretRightIcon } from '@phosphor-icons/react/dist/ssr/CaretRight';\nimport { CaretUpIcon as PhosphorCaretUpIcon } from '@phosphor-icons/react/dist/ssr/CaretUp';\nimport { CheckIcon as PhosphorCheckIcon } from '@phosphor-icons/react/dist/ssr/Check';\nimport { DotsSixVerticalIcon as PhosphorDotsSixVerticalIcon } from '@phosphor-icons/react/dist/ssr/DotsSixVertical';\nimport { MinusIcon as PhosphorMinusIcon } from '@phosphor-icons/react/dist/ssr/Minus';\nimport { PlusIcon as PhosphorPlusIcon } from '@phosphor-icons/react/dist/ssr/Plus';\nimport { XIcon as PhosphorXIcon } from '@phosphor-icons/react/dist/ssr/X';\n\nimport type { IconComponent } from '../utils/icon-types';\n\nconst createPaddedIcon = (\n IconComponent: IconComponent,\n inset: number,\n displayName: string,\n extraBold = false\n): IconComponent => {\n const viewBox = `${-inset} ${-inset} ${256 + inset * 2} ${256 + inset * 2}`;\n const PaddedIcon: IconComponent = ({\n color,\n stroke,\n strokeWidth,\n strokeLinecap,\n strokeLinejoin,\n weight,\n ...props\n }) => {\n const applyExtraBold = extraBold && weight === 'bold';\n return (\n <IconComponent\n {...props}\n color={color}\n stroke={\n stroke ?? (applyExtraBold ? color || 'currentColor' : undefined)\n }\n strokeWidth={strokeWidth ?? (applyExtraBold ? 8 : undefined)}\n strokeLinecap={strokeLinecap ?? (applyExtraBold ? 'round' : undefined)}\n strokeLinejoin={\n strokeLinejoin ?? (applyExtraBold ? 'round' : undefined)\n }\n weight={weight}\n viewBox={viewBox}\n />\n );\n };\n\n PaddedIcon.displayName = displayName;\n return PaddedIcon;\n};\n\n// These compact glyphs fill more of Phosphor's canvas than their Untitled UI\n// counterparts. Expanded viewBoxes preserve the outer size while restoring the\n// previous optical footprint.\nexport const ArrowDownIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowDownIcon,\n 32,\n 'ArrowDownIcon'\n);\nexport const ArrowLeftIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowLeftIcon,\n 32,\n 'ArrowLeftIcon'\n);\nexport const ArrowRightIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowRightIcon,\n 32,\n 'ArrowRightIcon'\n);\nexport const ArrowUpIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowUpIcon,\n 32,\n 'ArrowUpIcon'\n);\nexport const CaretDoubleRightIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretDoubleRightIcon,\n 64,\n 'CaretDoubleRightIcon',\n true\n);\nexport const CaretDoubleLeftIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretDoubleLeftIcon,\n 64,\n 'CaretDoubleLeftIcon',\n true\n);\nexport const CaretDownIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretDownIcon,\n 64,\n 'CaretDownIcon',\n true\n);\nexport const CaretLeftIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretLeftIcon,\n 64,\n 'CaretLeftIcon',\n true\n);\nexport const CaretRightIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretRightIcon,\n 64,\n 'CaretRightIcon',\n true\n);\nexport const CaretUpIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretUpIcon,\n 64,\n 'CaretUpIcon',\n true\n);\nexport const CheckIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCheckIcon,\n 32,\n 'CheckIcon'\n);\nexport const DotsSixVerticalIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorDotsSixVerticalIcon,\n 48,\n 'DotsSixVerticalIcon'\n);\nexport const MinusIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorMinusIcon,\n 40,\n 'MinusIcon'\n);\nexport const PlusIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorPlusIcon,\n 40,\n 'PlusIcon'\n);\nexport const XCloseIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorXIcon,\n 40,\n 'XCloseIcon',\n true\n);\nexport const XIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorXIcon,\n 64,\n 'XIcon',\n true\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PaddedPhosphorIcons.js","names":[],"sources":["../../src/icons/PaddedPhosphorIcons.tsx"],"sourcesContent":["import { ArrowDownIcon as PhosphorArrowDownIcon } from '@phosphor-icons/react/dist/ssr/ArrowDown';\nimport { ArrowLeftIcon as PhosphorArrowLeftIcon } from '@phosphor-icons/react/dist/ssr/ArrowLeft';\nimport { ArrowRightIcon as PhosphorArrowRightIcon } from '@phosphor-icons/react/dist/ssr/ArrowRight';\nimport { ArrowUpIcon as PhosphorArrowUpIcon } from '@phosphor-icons/react/dist/ssr/ArrowUp';\nimport { CaretDoubleLeftIcon as PhosphorCaretDoubleLeftIcon } from '@phosphor-icons/react/dist/ssr/CaretDoubleLeft';\nimport { CaretDoubleRightIcon as PhosphorCaretDoubleRightIcon } from '@phosphor-icons/react/dist/ssr/CaretDoubleRight';\nimport { CaretDownIcon as PhosphorCaretDownIcon } from '@phosphor-icons/react/dist/ssr/CaretDown';\nimport { CaretLeftIcon as PhosphorCaretLeftIcon } from '@phosphor-icons/react/dist/ssr/CaretLeft';\nimport { CaretRightIcon as PhosphorCaretRightIcon } from '@phosphor-icons/react/dist/ssr/CaretRight';\nimport { CaretUpIcon as PhosphorCaretUpIcon } from '@phosphor-icons/react/dist/ssr/CaretUp';\nimport { CaretUpDownIcon as PhosphorCaretUpDownIcon } from '@phosphor-icons/react/dist/ssr/CaretUpDown';\nimport { CheckIcon as PhosphorCheckIcon } from '@phosphor-icons/react/dist/ssr/Check';\nimport { DotsSixVerticalIcon as PhosphorDotsSixVerticalIcon } from '@phosphor-icons/react/dist/ssr/DotsSixVertical';\nimport { MinusIcon as PhosphorMinusIcon } from '@phosphor-icons/react/dist/ssr/Minus';\nimport { PlusIcon as PhosphorPlusIcon } from '@phosphor-icons/react/dist/ssr/Plus';\nimport { XIcon as PhosphorXIcon } from '@phosphor-icons/react/dist/ssr/X';\n\nimport type { IconComponent } from '../utils/icon-types';\n\nconst createPaddedIcon = (\n IconComponent: IconComponent,\n inset: number,\n displayName: string,\n extraBold = false\n): IconComponent => {\n const viewBox = `${-inset} ${-inset} ${256 + inset * 2} ${256 + inset * 2}`;\n const PaddedIcon: IconComponent = ({\n color,\n stroke,\n strokeWidth,\n strokeLinecap,\n strokeLinejoin,\n weight,\n ...props\n }) => {\n const applyExtraBold = extraBold && weight === 'bold';\n return (\n <IconComponent\n {...props}\n color={color}\n stroke={\n stroke ?? (applyExtraBold ? color || 'currentColor' : undefined)\n }\n strokeWidth={strokeWidth ?? (applyExtraBold ? 8 : undefined)}\n strokeLinecap={strokeLinecap ?? (applyExtraBold ? 'round' : undefined)}\n strokeLinejoin={\n strokeLinejoin ?? (applyExtraBold ? 'round' : undefined)\n }\n weight={weight}\n viewBox={viewBox}\n />\n );\n };\n\n PaddedIcon.displayName = displayName;\n return PaddedIcon;\n};\n\n// These compact glyphs fill more of Phosphor's canvas than their Untitled UI\n// counterparts. Expanded viewBoxes preserve the outer size while restoring the\n// previous optical footprint.\nexport const ArrowDownIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowDownIcon,\n 32,\n 'ArrowDownIcon'\n);\nexport const ArrowLeftIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowLeftIcon,\n 32,\n 'ArrowLeftIcon'\n);\nexport const ArrowRightIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowRightIcon,\n 32,\n 'ArrowRightIcon'\n);\nexport const ArrowUpIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorArrowUpIcon,\n 32,\n 'ArrowUpIcon'\n);\nexport const CaretDoubleRightIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretDoubleRightIcon,\n 64,\n 'CaretDoubleRightIcon',\n true\n);\nexport const CaretDoubleLeftIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretDoubleLeftIcon,\n 64,\n 'CaretDoubleLeftIcon',\n true\n);\nexport const CaretDownIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretDownIcon,\n 64,\n 'CaretDownIcon',\n true\n);\nexport const CaretUpDownIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretUpDownIcon,\n 64,\n 'CaretUpDownIcon',\n true\n);\nexport const CaretLeftIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretLeftIcon,\n 64,\n 'CaretLeftIcon',\n true\n);\nexport const CaretRightIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretRightIcon,\n 64,\n 'CaretRightIcon',\n true\n);\nexport const CaretUpIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCaretUpIcon,\n 64,\n 'CaretUpIcon',\n true\n);\nexport const CheckIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorCheckIcon,\n 32,\n 'CheckIcon'\n);\nexport const DotsSixVerticalIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorDotsSixVerticalIcon,\n 48,\n 'DotsSixVerticalIcon'\n);\nexport const MinusIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorMinusIcon,\n 40,\n 'MinusIcon'\n);\nexport const PlusIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorPlusIcon,\n 40,\n 'PlusIcon'\n);\nexport const XCloseIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorXIcon,\n 40,\n 'XCloseIcon',\n true\n);\nexport const XIcon = /* @__PURE__ */ createPaddedIcon(\n PhosphorXIcon,\n 64,\n 'XIcon',\n true\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,IAAM,oBACJ,eACA,OACA,aACA,YAAY,UACM;CAClB,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,EAAE,GAAG,MAAM,QAAQ;CACxE,MAAM,cAA6B,EACjC,OACA,QACA,aACA,eACA,gBACA,QACA,GAAG,YACC;EACJ,MAAM,iBAAiB,aAAa,WAAW;EAC/C,OACE,oBAAC,eAAD;GACE,GAAI;GACG;GACP,QACE,WAAW,iBAAiB,SAAS,iBAAiB,KAAA;GAExD,aAAa,gBAAgB,iBAAiB,IAAI,KAAA;GAClD,eAAe,kBAAkB,iBAAiB,UAAU,KAAA;GAC5D,gBACE,mBAAmB,iBAAiB,UAAU,KAAA;GAExC;GACC;EACV,CAAA;CAEL;CAEA,WAAW,cAAc;CACzB,OAAO;AACT;AAKA,IAAa,gBAAgC,iCAC3C,iBACA,IACA,eACF;AACA,IAAa,gBAAgC,iCAC3C,iBACA,IACA,eACF;AACA,IAAa,iBAAiC,iCAC5C,kBACA,IACA,gBACF;AACA,IAAa,cAA8B,iCACzC,eACA,IACA,aACF;AACA,IAAa,uBAAuC,iCAClD,wBACA,IACA,wBACA,IACF;AACA,IAAa,sBAAsC,iCACjD,uBACA,IACA,uBACA,IACF;AACA,IAAa,gBAAgC,iCAC3C,iBACA,IACA,iBACA,IACF;AACA,IAAa,kBAAkC,iCAC7C,mBACA,IACA,mBACA,IACF;AACA,IAAa,gBAAgC,iCAC3C,iBACA,IACA,iBACA,IACF;AACA,IAAa,iBAAiC,iCAC5C,kBACA,IACA,kBACA,IACF;AACA,IAAa,cAA8B,iCACzC,eACA,IACA,eACA,IACF;AACA,IAAa,YAA4B,iCACvC,aACA,IACA,WACF;AACA,IAAa,sBAAsC,iCACjD,uBACA,IACA,qBACF;AACA,IAAa,YAA4B,iCACvC,aACA,IACA,WACF;AACA,IAAa,WAA2B,iCACtC,YACA,IACA,UACF;AACA,IAAa,aAA6B,iCACxC,SACA,IACA,cACA,IACF;AACA,IAAa,QAAwB,iCACnC,SACA,IACA,SACA,IACF"}
|
|
@@ -13,6 +13,7 @@ export declare const LinkBreakRegularIcon: IconComponent;
|
|
|
13
13
|
export declare const PencilLineFillIcon: IconComponent;
|
|
14
14
|
export declare const PencilSimpleLineFillIcon: IconComponent;
|
|
15
15
|
export declare const AlarmFillIcon: IconComponent;
|
|
16
|
+
export declare const WrenchFillIcon: IconComponent;
|
|
16
17
|
export declare const ChartBarFillIcon: IconComponent;
|
|
17
18
|
export declare const ChartLineUpRegularIcon: IconComponent;
|
|
18
19
|
export declare const ChatsFillIcon: IconComponent;
|
|
@@ -6,6 +6,7 @@ import { WarningIcon } from "@phosphor-icons/react/dist/ssr/Warning";
|
|
|
6
6
|
import { MagnifyingGlassIcon } from "@phosphor-icons/react/dist/ssr/MagnifyingGlass";
|
|
7
7
|
import { SquaresFourIcon } from "@phosphor-icons/react/dist/ssr/SquaresFour";
|
|
8
8
|
import { StarIcon } from "@phosphor-icons/react/dist/ssr/Star";
|
|
9
|
+
import { WrenchIcon } from "@phosphor-icons/react/dist/ssr/Wrench";
|
|
9
10
|
import { AlarmIcon } from "@phosphor-icons/react/dist/ssr/Alarm";
|
|
10
11
|
import { ArticleIcon } from "@phosphor-icons/react/dist/ssr/Article";
|
|
11
12
|
import { ChartBarIcon } from "@phosphor-icons/react/dist/ssr/ChartBar";
|
|
@@ -61,6 +62,7 @@ var LinkBreakRegularIcon = /* @__PURE__ */ createWeightedIcon(LinkBreakIcon, "re
|
|
|
61
62
|
var PencilLineFillIcon = /* @__PURE__ */ createWeightedIcon(PencilLineIcon, "fill", "PencilLineFillIcon");
|
|
62
63
|
var PencilSimpleLineFillIcon = /* @__PURE__ */ createWeightedIcon(PencilSimpleLineIcon, "fill", "PencilSimpleLineFillIcon");
|
|
63
64
|
var AlarmFillIcon = /* @__PURE__ */ createWeightedIcon(AlarmIcon, "fill", "AlarmFillIcon");
|
|
65
|
+
var WrenchFillIcon = /* @__PURE__ */ createWeightedIcon(WrenchIcon, "fill", "WrenchFillIcon");
|
|
64
66
|
var ChartBarFillIcon = /* @__PURE__ */ createWeightedIcon(ChartBarIcon, "fill", "ChartBarFillIcon");
|
|
65
67
|
var ChartLineUpRegularIcon = /* @__PURE__ */ createWeightedIcon(ChartLineUpIcon, "regular", "ChartLineUpRegularIcon");
|
|
66
68
|
var ChatsFillIcon = /* @__PURE__ */ createWeightedIcon(ChatsIcon, "fill", "ChatsFillIcon");
|
|
@@ -91,6 +93,6 @@ var SidebarSimpleRightRegularIcon = /* @__PURE__ */ createMirroredWeightedIcon(S
|
|
|
91
93
|
/** @deprecated Prefer MagnifyingGlassRegularIcon for new UI. */
|
|
92
94
|
var MagnifyingGlassBoldIcon = /* @__PURE__ */ createWeightedIcon(MagnifyingGlassIcon, "bold", "MagnifyingGlassBoldIcon");
|
|
93
95
|
//#endregion
|
|
94
|
-
export { AlarmFillIcon, ArrowDownBoldIcon, ArrowDownRegularIcon, ArrowLeftRegularIcon, ArrowRightRegularIcon, ArrowUpBoldIcon, ArrowUpRegularIcon, ArticleRegularIcon, BinaryRegularIcon, BriefcaseRegularIcon, BuildingsRegularIcon, CarRegularIcon, CaretDoubleRightRegularIcon, CaretDownBoldIcon, CaretDownRegularIcon, CaretLeftRegularIcon, CaretRightRegularIcon, CaretUpDownRegularIcon, CaretUpRegularIcon, ChartBarFillIcon, ChartLineUpRegularIcon, ChatCenteredDotsRegularIcon, ChatsFillIcon, CheckCircleFillIcon, ClockCounterClockwiseRegularIcon, CodepenLogoFillIcon, CodepenLogoRegularIcon, CpuRegularIcon, CubeRegularIcon, CursorFillIcon, DatabaseFillIcon, DivideRegularIcon, EnvelopeFillIcon, EqualsRegularIcon, FileCodeFillIcon, FileMagnifyingGlassRegularIcon, FlagRegularIcon, GearRegularIcon, GearSixFillIcon, GearSixRegularIcon, GlobeRegularIcon, GridFourFillIcon, HourglassFillIcon, ImageRegularIcon, InfinityRegularIcon, InfoFillIcon, InfoRegularIcon, KeyFillIcon, LaptopRegularIcon, LinkBreakRegularIcon, ListBulletsRegularIcon, LockFillIcon, MagnifyingGlassBoldIcon, MagnifyingGlassRegularIcon, MinusRegularIcon, MoonRegularIcon, PackageFillIcon, PackageRegularIcon, PauseFillIcon, PencilLineFillIcon, PencilSimpleLineFillIcon, PlayCircleFillIcon, PlayFillIcon, PushPinRegularIcon, RepeatRegularIcon, ShieldRegularIcon, ShieldStarFillIcon, SidebarSimpleRightRegularIcon, SignOutRegularIcon, SlidersHorizontalRegularIcon, SparkleFillIcon, SquaresFourFillIcon, SquaresFourRegularIcon, StackRegularIcon, StarFillIcon, StarRegularIcon, SunRegularIcon, TagRegularIcon, ToggleLeftRegularIcon, UserFillIcon, WarningFillIcon, WarningOctagonFillIcon, WarningRegularIcon, WrenchRegularIcon };
|
|
96
|
+
export { AlarmFillIcon, ArrowDownBoldIcon, ArrowDownRegularIcon, ArrowLeftRegularIcon, ArrowRightRegularIcon, ArrowUpBoldIcon, ArrowUpRegularIcon, ArticleRegularIcon, BinaryRegularIcon, BriefcaseRegularIcon, BuildingsRegularIcon, CarRegularIcon, CaretDoubleRightRegularIcon, CaretDownBoldIcon, CaretDownRegularIcon, CaretLeftRegularIcon, CaretRightRegularIcon, CaretUpDownRegularIcon, CaretUpRegularIcon, ChartBarFillIcon, ChartLineUpRegularIcon, ChatCenteredDotsRegularIcon, ChatsFillIcon, CheckCircleFillIcon, ClockCounterClockwiseRegularIcon, CodepenLogoFillIcon, CodepenLogoRegularIcon, CpuRegularIcon, CubeRegularIcon, CursorFillIcon, DatabaseFillIcon, DivideRegularIcon, EnvelopeFillIcon, EqualsRegularIcon, FileCodeFillIcon, FileMagnifyingGlassRegularIcon, FlagRegularIcon, GearRegularIcon, GearSixFillIcon, GearSixRegularIcon, GlobeRegularIcon, GridFourFillIcon, HourglassFillIcon, ImageRegularIcon, InfinityRegularIcon, InfoFillIcon, InfoRegularIcon, KeyFillIcon, LaptopRegularIcon, LinkBreakRegularIcon, ListBulletsRegularIcon, LockFillIcon, MagnifyingGlassBoldIcon, MagnifyingGlassRegularIcon, MinusRegularIcon, MoonRegularIcon, PackageFillIcon, PackageRegularIcon, PauseFillIcon, PencilLineFillIcon, PencilSimpleLineFillIcon, PlayCircleFillIcon, PlayFillIcon, PushPinRegularIcon, RepeatRegularIcon, ShieldRegularIcon, ShieldStarFillIcon, SidebarSimpleRightRegularIcon, SignOutRegularIcon, SlidersHorizontalRegularIcon, SparkleFillIcon, SquaresFourFillIcon, SquaresFourRegularIcon, StackRegularIcon, StarFillIcon, StarRegularIcon, SunRegularIcon, TagRegularIcon, ToggleLeftRegularIcon, UserFillIcon, WarningFillIcon, WarningOctagonFillIcon, WarningRegularIcon, WrenchFillIcon, WrenchRegularIcon };
|
|
95
97
|
|
|
96
98
|
//# sourceMappingURL=WeightedPhosphorIcons.js.map
|