@12-apps/ui 6.3.1 → 6.5.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/dist/{chunk-WFPXRSIZ.js → chunk-5TCPZ6GR.js} +7 -5
- package/dist/chunk-5TCPZ6GR.js.map +1 -0
- package/dist/{chunk-TPQRIPCN.js → chunk-AR5LUIBC.js} +12 -9
- package/dist/chunk-AR5LUIBC.js.map +1 -0
- package/dist/{chunk-R5ZQZSEQ.js → chunk-NUCLEOHF.js} +12 -6
- package/dist/chunk-NUCLEOHF.js.map +1 -0
- package/dist/data-display/CardKit.js +1 -1
- package/dist/data-display/DataViews.js +30 -23
- package/dist/data-display/DataViews.js.map +1 -1
- package/dist/feedback/ConfirmAction.js +1 -1
- package/dist/form/CategorySelect.js +1 -1
- package/dist/form/CreatableSelect.js +1 -1
- package/dist/form/CreatableSelect.js.map +1 -1
- package/dist/form/SearchPalette.js +3 -4
- package/dist/form/SearchPalette.js.map +1 -1
- package/dist/form/total-form.js +1 -1
- package/dist/layout/ContentToolbar.js +1 -1
- package/dist/pt-BR.js +28 -5
- package/dist/pt-BR.js.map +1 -1
- package/dist/types/components/data-display/DataViews/DataViewsBoard.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/base-list-card-gutters.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-category-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +44 -1
- package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-empty.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-toolbar.d.ts.map +1 -1
- package/dist/types/components/feedback/ConfirmAction/ConfirmAction.parts.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryPanelList.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryQuickActions.d.ts +4 -1
- package/dist/types/components/form/CategorySelect/CategoryQuickActions.d.ts.map +1 -1
- package/dist/types/components/form/CategorySelect/CategoryRows.d.ts +3 -1
- package/dist/types/components/form/CategorySelect/CategoryRows.d.ts.map +1 -1
- package/dist/types/components/form/CreatableSelect/CreatableSelect.d.ts.map +1 -1
- package/dist/types/components/form/CreatableSelect/CreatableSelect.types.d.ts +2 -1
- package/dist/types/components/form/CreatableSelect/CreatableSelect.types.d.ts.map +1 -1
- package/dist/types/components/form/SearchPalette/SearchPalette.d.ts.map +1 -1
- package/dist/types/components/form/SearchPalette/SearchPalette.types.d.ts +3 -3
- package/dist/types/components/form/SearchPalette/SearchPalette.types.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +12 -0
- package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
- package/dist/types/components/layout/ContentToolbar/MultiSelectTriggers.d.ts +10 -2
- package/dist/types/components/layout/ContentToolbar/MultiSelectTriggers.d.ts.map +1 -1
- package/dist/types/copy.d.ts +29 -0
- package/dist/types/copy.d.ts.map +1 -1
- package/dist/types/pt-BR.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/data-display/DataViews/DataViewsBoard.tsx +2 -1
- package/src/components/data-display/DataViews/DeleteViewDialog.tsx +2 -2
- package/src/components/data-display/DataViews/ManageViewsDialog.tsx +1 -1
- package/src/components/data-display/DataViews/base-list-card-gutters.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-category-pill.tsx +1 -0
- package/src/components/data-display/DataViews/data-views-columns-tab.tsx +4 -3
- package/src/components/data-display/DataViews/data-views-copy.ts +44 -1
- package/src/components/data-display/DataViews/data-views-empty.tsx +6 -3
- package/src/components/data-display/DataViews/data-views-more-fields.tsx +3 -1
- package/src/components/data-display/DataViews/data-views-more-filters.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-range-pill.tsx +2 -1
- package/src/components/data-display/DataViews/data-views-toolbar.tsx +3 -0
- package/src/components/data-display/DataViews/data-views-view-nav.tsx +2 -2
- package/src/components/feedback/ConfirmAction/ConfirmAction.parts.tsx +6 -2
- package/src/components/form/CategorySelect/CategoryPanel.tsx +1 -1
- package/src/components/form/CategorySelect/CategoryPanelList.tsx +1 -0
- package/src/components/form/CategorySelect/CategoryQuickActions.tsx +7 -2
- package/src/components/form/CategorySelect/CategoryRows.tsx +6 -1
- package/src/components/form/CategorySelect/CategorySelect.tsx +1 -1
- package/src/components/form/CreatableSelect/CreatableSelect.md +2 -2
- package/src/components/form/CreatableSelect/CreatableSelect.tsx +1 -1
- package/src/components/form/CreatableSelect/CreatableSelect.types.ts +2 -1
- package/src/components/form/SearchPalette/SearchPalette.tsx +3 -4
- package/src/components/form/SearchPalette/SearchPalette.types.ts +3 -3
- package/src/components/layout/ContentToolbar/ContentToolbar.tsx +13 -2
- package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +12 -0
- package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +2 -0
- package/src/components/layout/ContentToolbar/MultiSelectTriggers.tsx +15 -2
- package/src/copy.ts +29 -0
- package/src/pt-BR.ts +23 -0
- package/dist/chunk-R5ZQZSEQ.js.map +0 -1
- package/dist/chunk-TPQRIPCN.js.map +0 -1
- package/dist/chunk-WFPXRSIZ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/form/CreatableSelect/CreatableSelect.tsx"],"sourcesContent":["'use client';\n\nimport { alpha } from '@mui/material';\nimport { Autocomplete, createFilterOptions } from '@mui/material';\nimport type { AutocompleteRenderInputParams } from '@mui/material';\nimport { CircularProgress } from '@mui/material';\nimport { TextField } from '@mui/material';\nimport { useId, useMemo } from 'react';\n\nimport { stackedOverlayZIndex } from '../../../tokens/layers';\nimport { FormControl, FormLabel, FormMessage } from '../Form';\nimport type { CreatableSelectOption, CreatableSelectProps } from './CreatableSelect.types';\nimport type { SizeValue } from '../../../tokens/scales';\n\n/** Internal option shape: a real option, or the synthetic \"create new\" row. */\ninterface InternalOption extends CreatableSelectOption {\n /** True for the synthetic row that triggers {@link CreatableSelectProps.onCreate}. */\n isCreate?: boolean;\n}\n\n/** Prefix that marks a synthetic create-row value so it can never collide with a real one. */\nconst CREATE_PREFIX = ' create:';\n\nconst filterOptions = createFilterOptions<InternalOption>();\n\n/** How far one nesting level indents a dropdown row, in px. */\nconst INDENT_STEP = 16;\n\n/** `sm`/`md` → MUI's own scale, the same mapping {@link Input} uses. */\n// All five house stops onto MUI's two. `xs`/`sm` draw small; `md` and up draw\n// medium, because an autocomplete field has no third or fourth height to give.\nconst MUI_SIZE = { xs: 'small', sm: 'small', md: 'medium', lg: 'medium', xl: 'medium' } as const;\n\n/** Match the outlined border treatment of `Input` so siblings look identical. */\nconst fieldSx = {\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: (theme: { palette: { divider: string } }) => alpha(theme.palette.divider, 0.23),\n },\n '&:hover fieldset': { borderColor: 'primary.main' },\n '&.Mui-focused fieldset': { borderColor: 'primary.main', borderWidth: 2 },\n '&.Mui-error fieldset': { borderColor: 'error.main' },\n },\n} as const;\n\n/**\n * The filter that appends the synthetic \"create\" row when the typed text matches\n * no existing option. Built per render from the two props it closes over.\n */\nfunction buildFilter(\n onCreate: CreatableSelectProps['onCreate'],\n createOptionLabel: (input: string) => string,\n) {\n return (available: InternalOption[], params: { inputValue: string }): InternalOption[] => {\n const filtered = filterOptions(available, params as Parameters<typeof filterOptions>[1]);\n const input = params.inputValue.trim();\n const alreadyExists = available.some(\n (option) => option.label.toLowerCase() === input.toLowerCase(),\n );\n if (input && !alreadyExists && onCreate) {\n filtered.push({\n value: `${CREATE_PREFIX}${input}`,\n label: createOptionLabel(input),\n isCreate: true,\n });\n }\n return filtered;\n };\n}\n\n/**\n * A nested option is indented on its ROW; the label itself stays the bare name,\n * so the closed field never shows the tree drawing (see `depth`).\n */\nfunction renderIndentedOption(\n props: React.HTMLAttributes<HTMLLIElement>,\n option: InternalOption,\n): React.JSX.Element {\n const { key, ...rest } = props as typeof props & { key?: string };\n return (\n <li\n key={key ?? option.value}\n {...rest}\n style={{ paddingLeft: INDENT_STEP * (1 + (option.depth ?? 0)) }}\n >\n {option.label}\n </li>\n );\n}\n\n/** The text field Autocomplete renders, with the library's border + a loading adornment. */\nfunction renderField(\n params: AutocompleteRenderInputParams,\n field: {\n inputId: string;\n placeholder?: string;\n error?: string;\n loading: boolean;\n size: SizeValue;\n dataTestId: string;\n },\n): React.JSX.Element {\n return (\n <TextField\n {...params}\n id={field.inputId}\n placeholder={field.placeholder}\n error={Boolean(field.error)}\n size={MUI_SIZE[field.size]}\n sx={fieldSx}\n inputProps={{ ...params.inputProps, 'data-testid': `${field.dataTestId}-input` }}\n slotProps={{\n input: {\n ...params.InputProps,\n endAdornment: (\n <>\n {field.loading ? <CircularProgress color=\"inherit\" size={18} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n />\n );\n}\n\n/**\n * The option list, plus the selected OBJECT MUI wants, from the controlled value.\n * `depth` is carried through: it is what {@link renderIndentedOption} draws.\n */\nfunction useInternalOptions(\n options: CreatableSelectOption[],\n value: string | null,\n): { items: InternalOption[]; selected: InternalOption | null } {\n const items = useMemo<InternalOption[]>(\n () => options.map(({ value: optionValue, label, depth }) => ({\n value: optionValue,\n label,\n depth,\n })),\n [options],\n );\n const selected = useMemo<InternalOption | null>(\n () => items.find((option) => option.value === value) ?? null,\n [items, value],\n );\n return { items, selected };\n}\n\n/** Route a picked row: cleared, the synthetic create row, or a real option. */\nfunction handlePick(\n next: InternalOption | null,\n onChange: CreatableSelectProps['onChange'],\n onCreate: CreatableSelectProps['onCreate'],\n): void {\n if (!next) {\n onChange(null);\n return;\n }\n if (next.isCreate) {\n void onCreate?.(next.value.slice(CREATE_PREFIX.length));\n return;\n }\n onChange(next.value);\n}\n\n/**\n * A single-select, searchable combobox that can create a new option on the fly.\n *\n * Type to filter {@link CreatableSelectProps.options}; when the typed text matches\n * no option and {@link CreatableSelectProps.onCreate} is provided, a \"create\" row\n * appears and selecting it (Enter or click) calls `onCreate` with the raw text —\n * the parent persists it, then feeds the new option back via `options`/`value`.\n *\n * Chrome matches the library's other form fields: an external {@link FormLabel}\n * above the control (not a floating label), the same outlined border treatment as\n * {@link Input} and the same `sm`/`md` scale, so it lines up with sibling fields\n * in a grid row.\n */\nexport function CreatableSelect({\n options,\n value,\n onChange,\n onCreate,\n label,\n error,\n placeholder,\n createOptionLabel = (input) => `Criar \"${input}\"`,\n noOptionsText,\n disabled = false,\n loading = false,\n fullWidth = true,\n size = 'md',\n dataTestId = 'creatable-select',\n}: CreatableSelectProps): React.JSX.Element {\n const inputId = useId();\n const { items, selected } = useInternalOptions(options, value);\n\n return (\n <FormControl fullWidth={fullWidth} error={Boolean(error)}>\n {label && (\n <FormLabel htmlFor={inputId} error={Boolean(error)}>\n {label}\n </FormLabel>\n )}\n <Autocomplete<InternalOption, false, false, false>\n value={selected}\n options={items}\n disabled={disabled}\n loading={loading}\n fullWidth={fullWidth}\n size={MUI_SIZE[size]}\n handleHomeEndKeys\n selectOnFocus\n clearOnBlur\n data-testid={dataTestId}\n noOptionsText={noOptionsText}\n // Lift the dropdown above stacked modals: the default popup z-index is\n // `modal` (1300), but a stacked sheet at depth ≥2 sits at 1300 + depth*10,\n // which would otherwise cover the options. The height is the token's\n // now — this component used to be the only place the rule was written\n // down, which is how `CategorySelect` came to be missing it (12-57).\n slotProps={{ popper: { sx: { zIndex: stackedOverlayZIndex } } }}\n getOptionLabel={(option) => (typeof option === 'string' ? option : option.label)}\n isOptionEqualToValue={(option, current) => option.value === current.value}\n renderOption={renderIndentedOption}\n filterOptions={buildFilter(onCreate, createOptionLabel)}\n onChange={(_event, next) => handlePick(next, onChange, onCreate)}\n renderInput={(params) =>\n renderField(params, { inputId, placeholder, error, loading, size, dataTestId })\n }\n />\n {error && <FormMessage error dataTestId={`${dataTestId}-message`}>{error}</FormMessage>}\n </FormControl>\n );\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/form/CreatableSelect/CreatableSelect.tsx"],"sourcesContent":["'use client';\n\nimport { alpha } from '@mui/material';\nimport { Autocomplete, createFilterOptions } from '@mui/material';\nimport type { AutocompleteRenderInputParams } from '@mui/material';\nimport { CircularProgress } from '@mui/material';\nimport { TextField } from '@mui/material';\nimport { useId, useMemo } from 'react';\n\nimport { stackedOverlayZIndex } from '../../../tokens/layers';\nimport { FormControl, FormLabel, FormMessage } from '../Form';\nimport type { CreatableSelectOption, CreatableSelectProps } from './CreatableSelect.types';\nimport type { SizeValue } from '../../../tokens/scales';\n\n/** Internal option shape: a real option, or the synthetic \"create new\" row. */\ninterface InternalOption extends CreatableSelectOption {\n /** True for the synthetic row that triggers {@link CreatableSelectProps.onCreate}. */\n isCreate?: boolean;\n}\n\n/** Prefix that marks a synthetic create-row value so it can never collide with a real one. */\nconst CREATE_PREFIX = ' create:';\n\nconst filterOptions = createFilterOptions<InternalOption>();\n\n/** How far one nesting level indents a dropdown row, in px. */\nconst INDENT_STEP = 16;\n\n/** `sm`/`md` → MUI's own scale, the same mapping {@link Input} uses. */\n// All five house stops onto MUI's two. `xs`/`sm` draw small; `md` and up draw\n// medium, because an autocomplete field has no third or fourth height to give.\nconst MUI_SIZE = { xs: 'small', sm: 'small', md: 'medium', lg: 'medium', xl: 'medium' } as const;\n\n/** Match the outlined border treatment of `Input` so siblings look identical. */\nconst fieldSx = {\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: (theme: { palette: { divider: string } }) => alpha(theme.palette.divider, 0.23),\n },\n '&:hover fieldset': { borderColor: 'primary.main' },\n '&.Mui-focused fieldset': { borderColor: 'primary.main', borderWidth: 2 },\n '&.Mui-error fieldset': { borderColor: 'error.main' },\n },\n} as const;\n\n/**\n * The filter that appends the synthetic \"create\" row when the typed text matches\n * no existing option. Built per render from the two props it closes over.\n */\nfunction buildFilter(\n onCreate: CreatableSelectProps['onCreate'],\n createOptionLabel: (input: string) => string,\n) {\n return (available: InternalOption[], params: { inputValue: string }): InternalOption[] => {\n const filtered = filterOptions(available, params as Parameters<typeof filterOptions>[1]);\n const input = params.inputValue.trim();\n const alreadyExists = available.some(\n (option) => option.label.toLowerCase() === input.toLowerCase(),\n );\n if (input && !alreadyExists && onCreate) {\n filtered.push({\n value: `${CREATE_PREFIX}${input}`,\n label: createOptionLabel(input),\n isCreate: true,\n });\n }\n return filtered;\n };\n}\n\n/**\n * A nested option is indented on its ROW; the label itself stays the bare name,\n * so the closed field never shows the tree drawing (see `depth`).\n */\nfunction renderIndentedOption(\n props: React.HTMLAttributes<HTMLLIElement>,\n option: InternalOption,\n): React.JSX.Element {\n const { key, ...rest } = props as typeof props & { key?: string };\n return (\n <li\n key={key ?? option.value}\n {...rest}\n style={{ paddingLeft: INDENT_STEP * (1 + (option.depth ?? 0)) }}\n >\n {option.label}\n </li>\n );\n}\n\n/** The text field Autocomplete renders, with the library's border + a loading adornment. */\nfunction renderField(\n params: AutocompleteRenderInputParams,\n field: {\n inputId: string;\n placeholder?: string;\n error?: string;\n loading: boolean;\n size: SizeValue;\n dataTestId: string;\n },\n): React.JSX.Element {\n return (\n <TextField\n {...params}\n id={field.inputId}\n placeholder={field.placeholder}\n error={Boolean(field.error)}\n size={MUI_SIZE[field.size]}\n sx={fieldSx}\n inputProps={{ ...params.inputProps, 'data-testid': `${field.dataTestId}-input` }}\n slotProps={{\n input: {\n ...params.InputProps,\n endAdornment: (\n <>\n {field.loading ? <CircularProgress color=\"inherit\" size={18} /> : null}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n }}\n />\n );\n}\n\n/**\n * The option list, plus the selected OBJECT MUI wants, from the controlled value.\n * `depth` is carried through: it is what {@link renderIndentedOption} draws.\n */\nfunction useInternalOptions(\n options: CreatableSelectOption[],\n value: string | null,\n): { items: InternalOption[]; selected: InternalOption | null } {\n const items = useMemo<InternalOption[]>(\n () => options.map(({ value: optionValue, label, depth }) => ({\n value: optionValue,\n label,\n depth,\n })),\n [options],\n );\n const selected = useMemo<InternalOption | null>(\n () => items.find((option) => option.value === value) ?? null,\n [items, value],\n );\n return { items, selected };\n}\n\n/** Route a picked row: cleared, the synthetic create row, or a real option. */\nfunction handlePick(\n next: InternalOption | null,\n onChange: CreatableSelectProps['onChange'],\n onCreate: CreatableSelectProps['onCreate'],\n): void {\n if (!next) {\n onChange(null);\n return;\n }\n if (next.isCreate) {\n void onCreate?.(next.value.slice(CREATE_PREFIX.length));\n return;\n }\n onChange(next.value);\n}\n\n/**\n * A single-select, searchable combobox that can create a new option on the fly.\n *\n * Type to filter {@link CreatableSelectProps.options}; when the typed text matches\n * no option and {@link CreatableSelectProps.onCreate} is provided, a \"create\" row\n * appears and selecting it (Enter or click) calls `onCreate` with the raw text —\n * the parent persists it, then feeds the new option back via `options`/`value`.\n *\n * Chrome matches the library's other form fields: an external {@link FormLabel}\n * above the control (not a floating label), the same outlined border treatment as\n * {@link Input} and the same `sm`/`md` scale, so it lines up with sibling fields\n * in a grid row.\n */\nexport function CreatableSelect({\n options,\n value,\n onChange,\n onCreate,\n label,\n error,\n placeholder,\n createOptionLabel,\n noOptionsText,\n disabled = false,\n loading = false,\n fullWidth = true,\n size = 'md',\n dataTestId = 'creatable-select',\n}: CreatableSelectProps): React.JSX.Element {\n const inputId = useId();\n const { items, selected } = useInternalOptions(options, value);\n\n return (\n <FormControl fullWidth={fullWidth} error={Boolean(error)}>\n {label && (\n <FormLabel htmlFor={inputId} error={Boolean(error)}>\n {label}\n </FormLabel>\n )}\n <Autocomplete<InternalOption, false, false, false>\n value={selected}\n options={items}\n disabled={disabled}\n loading={loading}\n fullWidth={fullWidth}\n size={MUI_SIZE[size]}\n handleHomeEndKeys\n selectOnFocus\n clearOnBlur\n data-testid={dataTestId}\n noOptionsText={noOptionsText}\n // Lift the dropdown above stacked modals: the default popup z-index is\n // `modal` (1300), but a stacked sheet at depth ≥2 sits at 1300 + depth*10,\n // which would otherwise cover the options. The height is the token's\n // now — this component used to be the only place the rule was written\n // down, which is how `CategorySelect` came to be missing it (12-57).\n slotProps={{ popper: { sx: { zIndex: stackedOverlayZIndex } } }}\n getOptionLabel={(option) => (typeof option === 'string' ? option : option.label)}\n isOptionEqualToValue={(option, current) => option.value === current.value}\n renderOption={renderIndentedOption}\n filterOptions={buildFilter(onCreate, createOptionLabel)}\n onChange={(_event, next) => handlePick(next, onChange, onCreate)}\n renderInput={(params) =>\n renderField(params, { inputId, placeholder, error, loading, size, dataTestId })\n }\n />\n {error && <FormMessage error dataTestId={`${dataTestId}-message`}>{error}</FormMessage>}\n </FormControl>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -252,7 +252,6 @@ function createKeyDownHandler(ctx) {
|
|
|
252
252
|
// src/components/form/SearchPalette/SearchPalette.tsx
|
|
253
253
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
254
254
|
var DEFAULT_MAX_ITEMS = 5;
|
|
255
|
-
var defaultSubmitLabel = (q) => `Todos os resultados para "${q}"`;
|
|
256
255
|
function resolveOpts(props) {
|
|
257
256
|
return {
|
|
258
257
|
maxItems: props.maxItems ?? DEFAULT_MAX_ITEMS,
|
|
@@ -265,9 +264,9 @@ function resolveOpts(props) {
|
|
|
265
264
|
}
|
|
266
265
|
function resolveText(props) {
|
|
267
266
|
return {
|
|
268
|
-
submitAllLabel: props.submitAllLabel
|
|
269
|
-
noResultsLabel: props.noResultsLabel
|
|
270
|
-
placeholder: props.placeholder
|
|
267
|
+
submitAllLabel: props.submitAllLabel,
|
|
268
|
+
noResultsLabel: props.noResultsLabel,
|
|
269
|
+
placeholder: props.placeholder,
|
|
271
270
|
dataTestId: props.dataTestId ?? "search-palette"
|
|
272
271
|
};
|
|
273
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/form/SearchPalette/SearchPalette.tsx","../../src/components/form/SearchPalette/SearchPalette.parts.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n createKeyDownHandler,\n FilterChips,\n ghostRemainder,\n PALETTE_CARD_SX,\n PaletteBody,\n PaletteInput,\n PaletteScrollArea,\n Paper,\n} from './SearchPalette.parts';\nimport type { SearchPaletteProps } from './SearchPalette.types';\n\n/**\n * A Gmail-style search palette (FUT-168): a single card with a search input,\n * a toggleable filter-chip row, a compact list of rich result rows (leading\n * image/avatar/icon + primary/secondary + trailing), and a \"see all results\"\n * footer. Fully app-agnostic — every label, filter, and row field is supplied\n * by the host through accessors, so it drops into any surface.\n *\n * Keyboard: ↑/↓ move the active row across the results and the footer, Enter\n * selects it (row → `onSelect`, footer → `onSubmitAll`), Esc calls `onClose`,\n * and Tab/→ accepts the inline ghost completion of the top result.\n *\n * Presentational pieces + the keydown builder live in `SearchPalette.parts`.\n */\n\nconst DEFAULT_MAX_ITEMS = 5;\nconst defaultSubmitLabel = (q: string): string => `Todos os resultados para \"${q}\"`;\n\n/** Non-string option defaults (numbers / flags / arrays). */\nfunction resolveOpts<T>(props: SearchPaletteProps<T>): {\n maxItems: number;\n filters: NonNullable<SearchPaletteProps<T>['filters']>;\n activeFilterIds: string[];\n isLoading: boolean;\n showGhostText: boolean;\n autoFocus: boolean;\n} {\n return {\n maxItems: props.maxItems ?? DEFAULT_MAX_ITEMS,\n filters: props.filters ?? [],\n activeFilterIds: props.activeFilterIds ?? [],\n isLoading: Boolean(props.isLoading),\n showGhostText: props.showGhostText ?? true,\n autoFocus: props.autoFocus ?? true,\n };\n}\n\n/** String / label defaults. */\nfunction resolveText<T>(props: SearchPaletteProps<T>): {\n submitAllLabel: (q: string) => string;\n noResultsLabel: string;\n placeholder: string;\n dataTestId: string;\n} {\n return {\n submitAllLabel: props.submitAllLabel ?? defaultSubmitLabel,\n noResultsLabel: props.noResultsLabel ?? 'Nenhum resultado encontrado',\n placeholder: props.placeholder ?? 'Buscar…',\n dataTestId: props.dataTestId ?? 'search-palette',\n };\n}\n\nexport function SearchPalette<T>(props: SearchPaletteProps<T>): React.JSX.Element {\n const opts = resolveOpts(props);\n const text = resolveText(props);\n\n const trimmed = props.value.trim();\n const hasQuery = trimmed.length > 0;\n const visible = props.items.slice(0, opts.maxItems);\n const showFooter = Boolean(props.onSubmitAll) && hasQuery;\n const rowCount = visible.length + (showFooter ? 1 : 0);\n const footerIndex = showFooter ? visible.length : -1;\n\n const [activeIndex, setActiveIndex] = React.useState(0);\n // Keep the active row in range as results change (typing, filtering).\n React.useEffect(() => {\n setActiveIndex((i) => (rowCount === 0 ? 0 : Math.min(i, rowCount - 1)));\n }, [rowCount]);\n\n const top = visible[0];\n const ghost =\n opts.showGhostText && hasQuery && top ? ghostRemainder(props.getPrimary(top), props.value) : '';\n\n const onKeyDown = createKeyDownHandler<T>({\n rowCount,\n activeIndex,\n footerIndex,\n visible,\n hasQuery,\n ghost,\n top,\n trimmed,\n getPrimary: props.getPrimary,\n onChange: props.onChange,\n onSelect: props.onSelect,\n onSubmitAll: props.onSubmitAll,\n onClose: props.onClose,\n setActiveIndex,\n });\n\n return (\n <Paper\n elevation={8}\n className={props.className}\n data-testid={text.dataTestId}\n sx={PALETTE_CARD_SX}\n >\n <PaletteInput\n value={props.value}\n ghost={ghost}\n isLoading={opts.isLoading}\n autoFocus={opts.autoFocus}\n placeholder={text.placeholder}\n inputAriaLabel={props.inputAriaLabel}\n hasQuery={hasQuery}\n onChange={props.onChange}\n onKeyDown={onKeyDown}\n />\n {opts.filters.length > 0 && (\n <FilterChips\n filters={opts.filters}\n activeFilterIds={opts.activeFilterIds}\n onToggleFilter={props.onToggleFilter}\n />\n )}\n <PaletteScrollArea>\n <PaletteBody<T>\n hasQuery={hasQuery} emptyQueryContent={props.emptyQueryContent} visible={visible}\n isLoading={opts.isLoading} noResultsLabel={text.noResultsLabel} showFooter={showFooter}\n footerIndex={footerIndex} activeIndex={activeIndex} trimmed={trimmed}\n submitAllLabel={text.submitAllLabel} getKey={props.getKey} getPrimary={props.getPrimary}\n getSecondary={props.getSecondary} getLead={props.getLead} getTrailing={props.getTrailing}\n onSelect={props.onSelect} onSubmitAll={props.onSubmitAll} setActiveIndex={setActiveIndex}\n />\n </PaletteScrollArea>\n </Paper>\n );\n}\n\nSearchPalette.displayName = 'SearchPalette';\n\nexport default SearchPalette;\n","import KeyboardReturnIcon from '@mui/icons-material/KeyboardReturn';\nimport SearchIcon from '@mui/icons-material/Search';\nimport {\n Avatar,\n Box,\n Chip,\n CircularProgress,\n InputBase,\n List,\n ListItemButton,\n Paper,\n Typography,\n} from '@mui/material';\nimport React from 'react';\n\nimport type { SearchFilterChip, SearchResultLead } from './SearchPalette.types';\n\n/** Bold the first case-insensitive occurrence of `query` within `text`. */\nexport function highlight(text: string, query: string): React.ReactNode {\n const q = query.trim();\n const at = q ? text.toLowerCase().indexOf(q.toLowerCase()) : -1;\n if (at < 0) return text;\n return (\n <>\n {text.slice(0, at)}\n <Box component=\"span\" sx={{ fontWeight: 700 }}>\n {text.slice(at, at + q.length)}\n </Box>\n {text.slice(at + q.length)}\n </>\n );\n}\n\n/** The leading visual of a result row (image / avatar / icon). */\nexport function Lead({ lead }: { lead: SearchResultLead | undefined }): React.JSX.Element | null {\n if (!lead) return null;\n if (lead.kind === 'image') {\n return (\n <Box\n component=\"img\"\n src={lead.src}\n alt={lead.alt ?? ''}\n sx={{ width: 32, height: 32, borderRadius: 1, objectFit: 'cover', flexShrink: 0 }}\n />\n );\n }\n if (lead.kind === 'avatar') {\n return (\n <Avatar src={lead.src} alt={lead.alt ?? ''} sx={{ width: 32, height: 32, fontSize: '0.85rem' }}>\n {lead.fallback}\n </Avatar>\n );\n }\n return (\n <Box sx={{ display: 'flex', width: 32, justifyContent: 'center', flexShrink: 0, color: 'text.secondary' }}>\n {lead.node}\n </Box>\n );\n}\n\n/** Compute the ghost-completion remainder of the top result for `query`. */\nexport function ghostRemainder(topPrimary: string | undefined, query: string): string {\n if (!query || !topPrimary) return '';\n return topPrimary.toLowerCase().startsWith(query.toLowerCase()) && topPrimary.length > query.length\n ? topPrimary.slice(query.length)\n : '';\n}\n\n/** The search input row: leading icon, ghost overlay, the field, and a spinner. */\nexport function PaletteInput(props: {\n value: string;\n ghost: string;\n isLoading: boolean;\n autoFocus: boolean;\n placeholder: string;\n inputAriaLabel?: string;\n hasQuery: boolean;\n onChange: (v: string) => void;\n onKeyDown: (e: React.KeyboardEvent) => void;\n}): React.JSX.Element {\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.25, px: 2, py: 1.5 }}>\n <SearchIcon fontSize=\"small\" sx={{ color: 'text.secondary', flexShrink: 0 }} />\n <Box sx={{ position: 'relative', flex: 1, minWidth: 0 }}>\n {props.ghost && (\n <Box\n aria-hidden\n sx={{\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n pointerEvents: 'none',\n whiteSpace: 'pre',\n overflow: 'hidden',\n fontSize: '1rem',\n }}\n >\n <Box component=\"span\" sx={{ visibility: 'hidden' }}>\n {props.value}\n </Box>\n <Box component=\"span\" sx={{ color: 'text.secondary', opacity: 0.6 }}>\n {props.ghost}\n </Box>\n </Box>\n )}\n <InputBase\n fullWidth\n autoFocus={props.autoFocus}\n value={props.value}\n onChange={(e) => props.onChange(e.target.value)}\n onKeyDown={props.onKeyDown}\n placeholder={props.placeholder}\n inputProps={{\n role: 'combobox',\n 'aria-expanded': props.hasQuery,\n 'aria-label': props.inputAriaLabel,\n 'aria-autocomplete': 'list',\n }}\n sx={{ fontSize: '1rem' }}\n />\n </Box>\n {props.isLoading && <CircularProgress size={18} sx={{ flexShrink: 0 }} />}\n </Box>\n );\n}\n\n/** The toggleable filter-chip row. */\nexport function FilterChips(props: {\n filters: SearchFilterChip[];\n activeFilterIds: string[];\n onToggleFilter?: (id: string) => void;\n}): React.JSX.Element {\n return (\n <Box\n data-testid=\"search-palette-filters\"\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 1,\n px: 2,\n pb: 1.5,\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n {props.filters.map((chip) => {\n const active = props.activeFilterIds.includes(chip.id);\n return (\n <Chip\n key={chip.id}\n label={chip.label}\n icon={chip.icon as React.ReactElement | undefined}\n onClick={() => props.onToggleFilter?.(chip.id)}\n variant={active ? 'filled' : 'outlined'}\n color={active ? 'primary' : 'default'}\n size=\"small\"\n aria-pressed={active}\n data-testid={`search-palette-filter-${chip.id}`}\n sx={{ borderRadius: 2 }}\n />\n );\n })}\n </Box>\n );\n}\n\n/** One rich result row. */\nexport function ResultRow(props: {\n index: number;\n active: boolean;\n query: string;\n lead: SearchResultLead | undefined;\n primary: string;\n secondary: string | undefined;\n trailing: React.ReactNode | undefined;\n onSelect: () => void;\n onHover: () => void;\n}): React.JSX.Element {\n return (\n <ListItemButton\n role=\"option\"\n aria-selected={props.active}\n selected={props.active}\n onMouseEnter={props.onHover}\n onMouseDown={(e) => e.preventDefault()}\n onClick={props.onSelect}\n data-testid={`search-palette-result-${props.index}`}\n sx={{ gap: 1.25, px: 2, py: 1 }}\n >\n <Lead lead={props.lead} />\n <Box sx={{ minWidth: 0, flex: 1 }}>\n <Typography variant=\"body2\" noWrap sx={{ color: 'text.primary' }}>\n {highlight(props.primary, props.query)}\n </Typography>\n {props.secondary && (\n <Typography variant=\"caption\" noWrap sx={{ display: 'block', color: 'text.secondary' }}>\n {props.secondary}\n </Typography>\n )}\n </Box>\n {props.trailing != null && (\n <Box sx={{ flexShrink: 0, color: 'text.secondary', fontSize: '0.75rem' }}>{props.trailing}</Box>\n )}\n </ListItemButton>\n );\n}\n\n/** The \"see all results — Press ENTER\" footer row. */\nexport function SubmitAllFooter(props: {\n label: string;\n selected: boolean;\n onSelect: () => void;\n onHover: () => void;\n}): React.JSX.Element {\n return (\n <ListItemButton\n selected={props.selected}\n onMouseEnter={props.onHover}\n onMouseDown={(e) => e.preventDefault()}\n onClick={props.onSelect}\n data-testid=\"search-palette-submit-all\"\n sx={{ gap: 1.25, px: 2, py: 1, borderTop: (theme) => `1px solid ${theme.palette.divider}` }}\n >\n <SearchIcon fontSize=\"small\" sx={{ color: 'text.secondary', flexShrink: 0 }} />\n <Typography variant=\"body2\" sx={{ flex: 1, minWidth: 0 }} noWrap>\n {props.label}\n </Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, color: 'text.secondary' }}>\n <Typography variant=\"caption\">Enter</Typography>\n <KeyboardReturnIcon sx={{ fontSize: 14 }} />\n </Box>\n </ListItemButton>\n );\n}\n\n/** Resolved view state shared by the body renderer. */\nexport interface BodyView<T> {\n hasQuery: boolean;\n emptyQueryContent: React.ReactNode;\n visible: T[];\n isLoading: boolean;\n noResultsLabel: string;\n showFooter: boolean;\n footerIndex: number;\n activeIndex: number;\n trimmed: string;\n submitAllLabel: (q: string) => string;\n getKey: (item: T) => string;\n getPrimary: (item: T) => string;\n getSecondary?: (item: T) => string | undefined;\n getLead?: (item: T) => SearchResultLead | undefined;\n getTrailing?: (item: T) => React.ReactNode | undefined;\n onSelect: (item: T) => void;\n onSubmitAll?: (query: string) => void;\n setActiveIndex: (i: number) => void;\n}\n\n/** The results list (or the empty-query slot / no-results message) + footer. */\nexport function PaletteBody<T>(view: BodyView<T>): React.JSX.Element | null {\n if (!view.hasQuery) {\n return view.emptyQueryContent ? (\n <Box data-testid=\"search-palette-empty-query\">{view.emptyQueryContent}</Box>\n ) : null;\n }\n const empty = view.visible.length === 0;\n return (\n <>\n {!empty && (\n <List dense disablePadding role=\"listbox\" data-testid=\"search-palette-results\">\n {view.visible.map((item, index) => (\n <ResultRow\n key={view.getKey(item)}\n index={index}\n active={index === view.activeIndex}\n query={view.trimmed}\n lead={view.getLead?.(item)}\n primary={view.getPrimary(item)}\n secondary={view.getSecondary?.(item)}\n trailing={view.getTrailing?.(item)}\n onSelect={() => view.onSelect(item)}\n onHover={() => view.setActiveIndex(index)}\n />\n ))}\n </List>\n )}\n {empty && !view.isLoading && (\n <Box sx={{ px: 2, py: 1.5 }} data-testid=\"search-palette-no-results\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {view.noResultsLabel}\n </Typography>\n </Box>\n )}\n {view.showFooter && (\n <SubmitAllFooter\n label={view.submitAllLabel(view.trimmed)}\n selected={view.activeIndex === view.footerIndex}\n onSelect={() => view.onSubmitAll?.(view.trimmed)}\n onHover={() => view.setActiveIndex(view.footerIndex)}\n />\n )}\n </>\n );\n}\n\n/**\n * The palette card: a flex column capped at the height its container allows, so\n * the input and the filter chips stay pinned while only the results scroll and a\n * long result set can never push the palette past the bottom of the viewport.\n */\nexport const PALETTE_CARD_SX = {\n width: '100%',\n maxWidth: 640,\n maxHeight: '100%',\n borderRadius: 2,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n} as const;\n\n/** The scrolling region of the card — the results, and nothing above them. */\nexport function PaletteScrollArea({ children }: { children: React.ReactNode }): React.JSX.Element {\n return (\n <Box sx={{ minHeight: 0, overflowY: 'auto', overscrollBehavior: 'contain' }}>{children}</Box>\n );\n}\n\nexport { Paper };\n\n/** Context for the keydown handler builder. */\nexport interface KeyCtx<T> {\n rowCount: number;\n activeIndex: number;\n footerIndex: number;\n visible: T[];\n hasQuery: boolean;\n ghost: string;\n top: T | undefined;\n trimmed: string;\n getPrimary: (item: T) => string;\n onChange: (v: string) => void;\n onSelect: (item: T) => void;\n onSubmitAll?: (query: string) => void;\n onClose?: () => void;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n}\n\n/** Build the input's keydown handler (nav / select / ghost-accept / close). */\nexport function createKeyDownHandler<T>(ctx: KeyCtx<T>): (e: React.KeyboardEvent) => void {\n const move = (delta: number): void =>\n ctx.setActiveIndex((i) => Math.min(Math.max(i + delta, 0), Math.max(ctx.rowCount - 1, 0)));\n const commit = (): void => {\n if (!ctx.hasQuery) return;\n if (ctx.activeIndex === ctx.footerIndex) {\n ctx.onSubmitAll?.(ctx.trimmed);\n return;\n }\n const item = ctx.visible[ctx.activeIndex];\n if (item) ctx.onSelect(item);\n };\n // A lookup keeps the handler itself flat (low complexity). Tab/→ is special —\n // it must only swallow the event when there is a ghost to accept, otherwise\n // Tab keeps its native focus behavior.\n const actions: Record<string, (() => void) | undefined> = {\n ArrowDown: () => move(1),\n ArrowUp: () => move(-1),\n Enter: commit,\n Escape: () => ctx.onClose?.(),\n };\n return (e) => {\n if ((e.key === 'Tab' || e.key === 'ArrowRight') && ctx.ghost && ctx.top) {\n e.preventDefault();\n ctx.onChange(ctx.getPrimary(ctx.top));\n return;\n }\n const action = actions[e.key];\n if (!action) return;\n e.preventDefault();\n action();\n };\n}\n"],"mappings":"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","names":["jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/form/SearchPalette/SearchPalette.tsx","../../src/components/form/SearchPalette/SearchPalette.parts.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n createKeyDownHandler,\n FilterChips,\n ghostRemainder,\n PALETTE_CARD_SX,\n PaletteBody,\n PaletteInput,\n PaletteScrollArea,\n Paper,\n} from './SearchPalette.parts';\nimport type { SearchPaletteProps } from './SearchPalette.types';\n\n/**\n * A Gmail-style search palette (FUT-168): a single card with a search input,\n * a toggleable filter-chip row, a compact list of rich result rows (leading\n * image/avatar/icon + primary/secondary + trailing), and a \"see all results\"\n * footer. Fully app-agnostic — every label, filter, and row field is supplied\n * by the host through accessors, so it drops into any surface.\n *\n * Keyboard: ↑/↓ move the active row across the results and the footer, Enter\n * selects it (row → `onSelect`, footer → `onSubmitAll`), Esc calls `onClose`,\n * and Tab/→ accepts the inline ghost completion of the top result.\n *\n * Presentational pieces + the keydown builder live in `SearchPalette.parts`.\n */\n\nconst DEFAULT_MAX_ITEMS = 5;\n\n/** Non-string option defaults (numbers / flags / arrays). */\nfunction resolveOpts<T>(props: SearchPaletteProps<T>): {\n maxItems: number;\n filters: NonNullable<SearchPaletteProps<T>['filters']>;\n activeFilterIds: string[];\n isLoading: boolean;\n showGhostText: boolean;\n autoFocus: boolean;\n} {\n return {\n maxItems: props.maxItems ?? DEFAULT_MAX_ITEMS,\n filters: props.filters ?? [],\n activeFilterIds: props.activeFilterIds ?? [],\n isLoading: Boolean(props.isLoading),\n showGhostText: props.showGhostText ?? true,\n autoFocus: props.autoFocus ?? true,\n };\n}\n\n/** String / label defaults. */\nfunction resolveText<T>(props: SearchPaletteProps<T>): {\n submitAllLabel: (q: string) => string;\n noResultsLabel: string;\n placeholder: string;\n dataTestId: string;\n} {\n return {\n submitAllLabel: props.submitAllLabel,\n noResultsLabel: props.noResultsLabel,\n placeholder: props.placeholder,\n dataTestId: props.dataTestId ?? 'search-palette',\n };\n}\n\nexport function SearchPalette<T>(props: SearchPaletteProps<T>): React.JSX.Element {\n const opts = resolveOpts(props);\n const text = resolveText(props);\n\n const trimmed = props.value.trim();\n const hasQuery = trimmed.length > 0;\n const visible = props.items.slice(0, opts.maxItems);\n const showFooter = Boolean(props.onSubmitAll) && hasQuery;\n const rowCount = visible.length + (showFooter ? 1 : 0);\n const footerIndex = showFooter ? visible.length : -1;\n\n const [activeIndex, setActiveIndex] = React.useState(0);\n // Keep the active row in range as results change (typing, filtering).\n React.useEffect(() => {\n setActiveIndex((i) => (rowCount === 0 ? 0 : Math.min(i, rowCount - 1)));\n }, [rowCount]);\n\n const top = visible[0];\n const ghost =\n opts.showGhostText && hasQuery && top ? ghostRemainder(props.getPrimary(top), props.value) : '';\n\n const onKeyDown = createKeyDownHandler<T>({\n rowCount,\n activeIndex,\n footerIndex,\n visible,\n hasQuery,\n ghost,\n top,\n trimmed,\n getPrimary: props.getPrimary,\n onChange: props.onChange,\n onSelect: props.onSelect,\n onSubmitAll: props.onSubmitAll,\n onClose: props.onClose,\n setActiveIndex,\n });\n\n return (\n <Paper\n elevation={8}\n className={props.className}\n data-testid={text.dataTestId}\n sx={PALETTE_CARD_SX}\n >\n <PaletteInput\n value={props.value}\n ghost={ghost}\n isLoading={opts.isLoading}\n autoFocus={opts.autoFocus}\n placeholder={text.placeholder}\n inputAriaLabel={props.inputAriaLabel}\n hasQuery={hasQuery}\n onChange={props.onChange}\n onKeyDown={onKeyDown}\n />\n {opts.filters.length > 0 && (\n <FilterChips\n filters={opts.filters}\n activeFilterIds={opts.activeFilterIds}\n onToggleFilter={props.onToggleFilter}\n />\n )}\n <PaletteScrollArea>\n <PaletteBody<T>\n hasQuery={hasQuery} emptyQueryContent={props.emptyQueryContent} visible={visible}\n isLoading={opts.isLoading} noResultsLabel={text.noResultsLabel} showFooter={showFooter}\n footerIndex={footerIndex} activeIndex={activeIndex} trimmed={trimmed}\n submitAllLabel={text.submitAllLabel} getKey={props.getKey} getPrimary={props.getPrimary}\n getSecondary={props.getSecondary} getLead={props.getLead} getTrailing={props.getTrailing}\n onSelect={props.onSelect} onSubmitAll={props.onSubmitAll} setActiveIndex={setActiveIndex}\n />\n </PaletteScrollArea>\n </Paper>\n );\n}\n\nSearchPalette.displayName = 'SearchPalette';\n\nexport default SearchPalette;\n","import KeyboardReturnIcon from '@mui/icons-material/KeyboardReturn';\nimport SearchIcon from '@mui/icons-material/Search';\nimport {\n Avatar,\n Box,\n Chip,\n CircularProgress,\n InputBase,\n List,\n ListItemButton,\n Paper,\n Typography,\n} from '@mui/material';\nimport React from 'react';\n\nimport type { SearchFilterChip, SearchResultLead } from './SearchPalette.types';\n\n/** Bold the first case-insensitive occurrence of `query` within `text`. */\nexport function highlight(text: string, query: string): React.ReactNode {\n const q = query.trim();\n const at = q ? text.toLowerCase().indexOf(q.toLowerCase()) : -1;\n if (at < 0) return text;\n return (\n <>\n {text.slice(0, at)}\n <Box component=\"span\" sx={{ fontWeight: 700 }}>\n {text.slice(at, at + q.length)}\n </Box>\n {text.slice(at + q.length)}\n </>\n );\n}\n\n/** The leading visual of a result row (image / avatar / icon). */\nexport function Lead({ lead }: { lead: SearchResultLead | undefined }): React.JSX.Element | null {\n if (!lead) return null;\n if (lead.kind === 'image') {\n return (\n <Box\n component=\"img\"\n src={lead.src}\n alt={lead.alt ?? ''}\n sx={{ width: 32, height: 32, borderRadius: 1, objectFit: 'cover', flexShrink: 0 }}\n />\n );\n }\n if (lead.kind === 'avatar') {\n return (\n <Avatar src={lead.src} alt={lead.alt ?? ''} sx={{ width: 32, height: 32, fontSize: '0.85rem' }}>\n {lead.fallback}\n </Avatar>\n );\n }\n return (\n <Box sx={{ display: 'flex', width: 32, justifyContent: 'center', flexShrink: 0, color: 'text.secondary' }}>\n {lead.node}\n </Box>\n );\n}\n\n/** Compute the ghost-completion remainder of the top result for `query`. */\nexport function ghostRemainder(topPrimary: string | undefined, query: string): string {\n if (!query || !topPrimary) return '';\n return topPrimary.toLowerCase().startsWith(query.toLowerCase()) && topPrimary.length > query.length\n ? topPrimary.slice(query.length)\n : '';\n}\n\n/** The search input row: leading icon, ghost overlay, the field, and a spinner. */\nexport function PaletteInput(props: {\n value: string;\n ghost: string;\n isLoading: boolean;\n autoFocus: boolean;\n placeholder: string;\n inputAriaLabel?: string;\n hasQuery: boolean;\n onChange: (v: string) => void;\n onKeyDown: (e: React.KeyboardEvent) => void;\n}): React.JSX.Element {\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1.25, px: 2, py: 1.5 }}>\n <SearchIcon fontSize=\"small\" sx={{ color: 'text.secondary', flexShrink: 0 }} />\n <Box sx={{ position: 'relative', flex: 1, minWidth: 0 }}>\n {props.ghost && (\n <Box\n aria-hidden\n sx={{\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n pointerEvents: 'none',\n whiteSpace: 'pre',\n overflow: 'hidden',\n fontSize: '1rem',\n }}\n >\n <Box component=\"span\" sx={{ visibility: 'hidden' }}>\n {props.value}\n </Box>\n <Box component=\"span\" sx={{ color: 'text.secondary', opacity: 0.6 }}>\n {props.ghost}\n </Box>\n </Box>\n )}\n <InputBase\n fullWidth\n autoFocus={props.autoFocus}\n value={props.value}\n onChange={(e) => props.onChange(e.target.value)}\n onKeyDown={props.onKeyDown}\n placeholder={props.placeholder}\n inputProps={{\n role: 'combobox',\n 'aria-expanded': props.hasQuery,\n 'aria-label': props.inputAriaLabel,\n 'aria-autocomplete': 'list',\n }}\n sx={{ fontSize: '1rem' }}\n />\n </Box>\n {props.isLoading && <CircularProgress size={18} sx={{ flexShrink: 0 }} />}\n </Box>\n );\n}\n\n/** The toggleable filter-chip row. */\nexport function FilterChips(props: {\n filters: SearchFilterChip[];\n activeFilterIds: string[];\n onToggleFilter?: (id: string) => void;\n}): React.JSX.Element {\n return (\n <Box\n data-testid=\"search-palette-filters\"\n sx={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 1,\n px: 2,\n pb: 1.5,\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n {props.filters.map((chip) => {\n const active = props.activeFilterIds.includes(chip.id);\n return (\n <Chip\n key={chip.id}\n label={chip.label}\n icon={chip.icon as React.ReactElement | undefined}\n onClick={() => props.onToggleFilter?.(chip.id)}\n variant={active ? 'filled' : 'outlined'}\n color={active ? 'primary' : 'default'}\n size=\"small\"\n aria-pressed={active}\n data-testid={`search-palette-filter-${chip.id}`}\n sx={{ borderRadius: 2 }}\n />\n );\n })}\n </Box>\n );\n}\n\n/** One rich result row. */\nexport function ResultRow(props: {\n index: number;\n active: boolean;\n query: string;\n lead: SearchResultLead | undefined;\n primary: string;\n secondary: string | undefined;\n trailing: React.ReactNode | undefined;\n onSelect: () => void;\n onHover: () => void;\n}): React.JSX.Element {\n return (\n <ListItemButton\n role=\"option\"\n aria-selected={props.active}\n selected={props.active}\n onMouseEnter={props.onHover}\n onMouseDown={(e) => e.preventDefault()}\n onClick={props.onSelect}\n data-testid={`search-palette-result-${props.index}`}\n sx={{ gap: 1.25, px: 2, py: 1 }}\n >\n <Lead lead={props.lead} />\n <Box sx={{ minWidth: 0, flex: 1 }}>\n <Typography variant=\"body2\" noWrap sx={{ color: 'text.primary' }}>\n {highlight(props.primary, props.query)}\n </Typography>\n {props.secondary && (\n <Typography variant=\"caption\" noWrap sx={{ display: 'block', color: 'text.secondary' }}>\n {props.secondary}\n </Typography>\n )}\n </Box>\n {props.trailing != null && (\n <Box sx={{ flexShrink: 0, color: 'text.secondary', fontSize: '0.75rem' }}>{props.trailing}</Box>\n )}\n </ListItemButton>\n );\n}\n\n/** The \"see all results — Press ENTER\" footer row. */\nexport function SubmitAllFooter(props: {\n label: string;\n selected: boolean;\n onSelect: () => void;\n onHover: () => void;\n}): React.JSX.Element {\n return (\n <ListItemButton\n selected={props.selected}\n onMouseEnter={props.onHover}\n onMouseDown={(e) => e.preventDefault()}\n onClick={props.onSelect}\n data-testid=\"search-palette-submit-all\"\n sx={{ gap: 1.25, px: 2, py: 1, borderTop: (theme) => `1px solid ${theme.palette.divider}` }}\n >\n <SearchIcon fontSize=\"small\" sx={{ color: 'text.secondary', flexShrink: 0 }} />\n <Typography variant=\"body2\" sx={{ flex: 1, minWidth: 0 }} noWrap>\n {props.label}\n </Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5, color: 'text.secondary' }}>\n <Typography variant=\"caption\">Enter</Typography>\n <KeyboardReturnIcon sx={{ fontSize: 14 }} />\n </Box>\n </ListItemButton>\n );\n}\n\n/** Resolved view state shared by the body renderer. */\nexport interface BodyView<T> {\n hasQuery: boolean;\n emptyQueryContent: React.ReactNode;\n visible: T[];\n isLoading: boolean;\n noResultsLabel: string;\n showFooter: boolean;\n footerIndex: number;\n activeIndex: number;\n trimmed: string;\n submitAllLabel: (q: string) => string;\n getKey: (item: T) => string;\n getPrimary: (item: T) => string;\n getSecondary?: (item: T) => string | undefined;\n getLead?: (item: T) => SearchResultLead | undefined;\n getTrailing?: (item: T) => React.ReactNode | undefined;\n onSelect: (item: T) => void;\n onSubmitAll?: (query: string) => void;\n setActiveIndex: (i: number) => void;\n}\n\n/** The results list (or the empty-query slot / no-results message) + footer. */\nexport function PaletteBody<T>(view: BodyView<T>): React.JSX.Element | null {\n if (!view.hasQuery) {\n return view.emptyQueryContent ? (\n <Box data-testid=\"search-palette-empty-query\">{view.emptyQueryContent}</Box>\n ) : null;\n }\n const empty = view.visible.length === 0;\n return (\n <>\n {!empty && (\n <List dense disablePadding role=\"listbox\" data-testid=\"search-palette-results\">\n {view.visible.map((item, index) => (\n <ResultRow\n key={view.getKey(item)}\n index={index}\n active={index === view.activeIndex}\n query={view.trimmed}\n lead={view.getLead?.(item)}\n primary={view.getPrimary(item)}\n secondary={view.getSecondary?.(item)}\n trailing={view.getTrailing?.(item)}\n onSelect={() => view.onSelect(item)}\n onHover={() => view.setActiveIndex(index)}\n />\n ))}\n </List>\n )}\n {empty && !view.isLoading && (\n <Box sx={{ px: 2, py: 1.5 }} data-testid=\"search-palette-no-results\">\n <Typography variant=\"body2\" color=\"text.secondary\">\n {view.noResultsLabel}\n </Typography>\n </Box>\n )}\n {view.showFooter && (\n <SubmitAllFooter\n label={view.submitAllLabel(view.trimmed)}\n selected={view.activeIndex === view.footerIndex}\n onSelect={() => view.onSubmitAll?.(view.trimmed)}\n onHover={() => view.setActiveIndex(view.footerIndex)}\n />\n )}\n </>\n );\n}\n\n/**\n * The palette card: a flex column capped at the height its container allows, so\n * the input and the filter chips stay pinned while only the results scroll and a\n * long result set can never push the palette past the bottom of the viewport.\n */\nexport const PALETTE_CARD_SX = {\n width: '100%',\n maxWidth: 640,\n maxHeight: '100%',\n borderRadius: 2,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n} as const;\n\n/** The scrolling region of the card — the results, and nothing above them. */\nexport function PaletteScrollArea({ children }: { children: React.ReactNode }): React.JSX.Element {\n return (\n <Box sx={{ minHeight: 0, overflowY: 'auto', overscrollBehavior: 'contain' }}>{children}</Box>\n );\n}\n\nexport { Paper };\n\n/** Context for the keydown handler builder. */\nexport interface KeyCtx<T> {\n rowCount: number;\n activeIndex: number;\n footerIndex: number;\n visible: T[];\n hasQuery: boolean;\n ghost: string;\n top: T | undefined;\n trimmed: string;\n getPrimary: (item: T) => string;\n onChange: (v: string) => void;\n onSelect: (item: T) => void;\n onSubmitAll?: (query: string) => void;\n onClose?: () => void;\n setActiveIndex: React.Dispatch<React.SetStateAction<number>>;\n}\n\n/** Build the input's keydown handler (nav / select / ghost-accept / close). */\nexport function createKeyDownHandler<T>(ctx: KeyCtx<T>): (e: React.KeyboardEvent) => void {\n const move = (delta: number): void =>\n ctx.setActiveIndex((i) => Math.min(Math.max(i + delta, 0), Math.max(ctx.rowCount - 1, 0)));\n const commit = (): void => {\n if (!ctx.hasQuery) return;\n if (ctx.activeIndex === ctx.footerIndex) {\n ctx.onSubmitAll?.(ctx.trimmed);\n return;\n }\n const item = ctx.visible[ctx.activeIndex];\n if (item) ctx.onSelect(item);\n };\n // A lookup keeps the handler itself flat (low complexity). Tab/→ is special —\n // it must only swallow the event when there is a ghost to accept, otherwise\n // Tab keeps its native focus behavior.\n const actions: Record<string, (() => void) | undefined> = {\n ArrowDown: () => move(1),\n ArrowUp: () => move(-1),\n Enter: commit,\n Escape: () => ctx.onClose?.(),\n };\n return (e) => {\n if ((e.key === 'Tab' || e.key === 'ArrowRight') && ctx.ghost && ctx.top) {\n e.preventDefault();\n ctx.onChange(ctx.getPrimary(ctx.top));\n return;\n }\n const action = actions[e.key];\n if (!action) return;\n e.preventDefault();\n action();\n };\n}\n"],"mappings":"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","names":["jsx","jsxs"]}
|
package/dist/form/total-form.js
CHANGED
package/dist/pt-BR.js
CHANGED
|
@@ -9,11 +9,20 @@ var PT_BR_SECTION_ONBOARDING_COPY = {
|
|
|
9
9
|
var PT_BR_CONFIRM_ACTION_COPY = {
|
|
10
10
|
cancel: "Cancelar",
|
|
11
11
|
defaultError: "N\xE3o foi poss\xEDvel concluir a a\xE7\xE3o. Tente novamente.",
|
|
12
|
-
irreversible: "Esta a\xE7\xE3o n\xE3o pode ser desfeita."
|
|
12
|
+
irreversible: "Esta a\xE7\xE3o n\xE3o pode ser desfeita.",
|
|
13
|
+
typeToConfirm: (expected) => `Digite "${expected}" para confirmar.`
|
|
13
14
|
};
|
|
14
15
|
var PT_BR_CATEGORY_SELECT_COPY = {
|
|
15
16
|
purpose: "Categorias organizam o card\xE1pio e os filtros da loja.",
|
|
16
17
|
clearSelection: "Limpar sele\xE7\xE3o",
|
|
18
|
+
selectAll: "Marcar tudo",
|
|
19
|
+
deselectAll: "Desmarcar tudo",
|
|
20
|
+
expandAll: "Expandir tudo",
|
|
21
|
+
collapseAll: "Recolher tudo",
|
|
22
|
+
expandCategory: (name) => `Expandir ${name}`,
|
|
23
|
+
collapseCategory: (name) => `Recolher ${name}`,
|
|
24
|
+
placeholderSingle: "Mover para\u2026",
|
|
25
|
+
placeholderMulti: "Categoria",
|
|
17
26
|
emptyTitle: "Nenhuma categoria ainda",
|
|
18
27
|
createCategory: "Criar categoria",
|
|
19
28
|
noResults: {
|
|
@@ -72,17 +81,21 @@ var PT_BR_DATA_VIEWS_COPY = {
|
|
|
72
81
|
countOnPage: (label, count) => `${label}: ${count} nesta p\xE1gina`,
|
|
73
82
|
onThisPage: (count) => `${count} nesta p\xE1gina`,
|
|
74
83
|
pageSum: (sum) => `Soma desta p\xE1gina: ${sum}`,
|
|
84
|
+
emptyColumn: "Nada nesta etapa",
|
|
75
85
|
pageScopeNote: "As contagens e somas abaixo referem-se apenas aos itens desta p\xE1gina."
|
|
76
86
|
},
|
|
77
87
|
deleteView: {
|
|
78
88
|
title: "Excluir vis\xE3o",
|
|
89
|
+
target: (viewName) => `Excluir "${viewName}"?`,
|
|
79
90
|
sharedWarning: "Esta vis\xE3o est\xE1 compartilhada \u2014 a equipe perder\xE1 o acesso a ela.",
|
|
80
91
|
rowsUnaffected: (entityLabel) => `${entityLabel} n\xE3o s\xE3o afetados; apenas o recorte salvo \xE9 removido.`,
|
|
81
|
-
confirm: "Excluir vis\xE3o"
|
|
92
|
+
confirm: "Excluir vis\xE3o",
|
|
93
|
+
cancel: "Cancelar"
|
|
82
94
|
},
|
|
83
95
|
manageViews: {
|
|
84
96
|
title: "Gerenciar vis\xF5es",
|
|
85
97
|
empty: "Nenhuma vis\xE3o salva.",
|
|
98
|
+
edit: "Editar",
|
|
86
99
|
defaultTag: "Padr\xE3o",
|
|
87
100
|
otherUserTag: "De outro usu\xE1rio",
|
|
88
101
|
deleteTitle: "Excluir a vis\xE3o salva?",
|
|
@@ -115,7 +128,10 @@ var PT_BR_DATA_VIEWS_COPY = {
|
|
|
115
128
|
columns: {
|
|
116
129
|
visibleCount: (visible, total) => `${visible} de ${total} vis\xEDveis`,
|
|
117
130
|
reset: "Padr\xE3o",
|
|
118
|
-
showAll: "Mostrar todas"
|
|
131
|
+
showAll: "Mostrar todas",
|
|
132
|
+
dragHint: "Arraste para reordenar as colunas.",
|
|
133
|
+
moveUp: (columnLabel) => `Mover ${columnLabel} para cima`,
|
|
134
|
+
moveDown: (columnLabel) => `Mover ${columnLabel} para baixo`
|
|
119
135
|
},
|
|
120
136
|
display: {
|
|
121
137
|
sortTab: "Ordenar",
|
|
@@ -153,7 +169,10 @@ var PT_BR_DATA_VIEWS_COPY = {
|
|
|
153
169
|
},
|
|
154
170
|
grid: {
|
|
155
171
|
rowActions: "A\xE7\xF5es",
|
|
156
|
-
bulkActions: (selectedCount) => `A\xE7\xF5es (${selectedCount}) \u25BE
|
|
172
|
+
bulkActions: (selectedCount) => `A\xE7\xF5es (${selectedCount}) \u25BE`,
|
|
173
|
+
emptyFilteredTitle: "Nenhum resultado para esses filtros",
|
|
174
|
+
emptyFilteredHint: "Ajuste ou remova os filtros.",
|
|
175
|
+
emptyFilteredAction: "Limpar filtros"
|
|
157
176
|
},
|
|
158
177
|
filters: {
|
|
159
178
|
moreFilters: (count) => `Mais filtros: ${count} sem espa\xE7o na barra`,
|
|
@@ -182,7 +201,9 @@ var PT_BR_DATA_VIEWS_COPY = {
|
|
|
182
201
|
clearSelection: "Limpar sele\xE7\xE3o",
|
|
183
202
|
selectAll: "Selecionar tudo",
|
|
184
203
|
onThisPage: (count) => `${count} nesta p\xE1gina`,
|
|
185
|
-
selectRow: "Selecionar"
|
|
204
|
+
selectRow: "Selecionar",
|
|
205
|
+
expandRow: "Expandir detalhes",
|
|
206
|
+
collapseRow: "Recolher detalhes"
|
|
186
207
|
},
|
|
187
208
|
nav: {
|
|
188
209
|
mainView: "Vis\xE3o principal",
|
|
@@ -195,6 +216,8 @@ var PT_BR_DATA_VIEWS_COPY = {
|
|
|
195
216
|
label: "Vis\xE3o",
|
|
196
217
|
update: "Atualizar vis\xE3o",
|
|
197
218
|
save: "Salvar vis\xE3o",
|
|
219
|
+
saveAs: "Salvar como nova",
|
|
220
|
+
reset: "Redefinir",
|
|
198
221
|
updateFailed: "N\xE3o foi poss\xEDvel atualizar a vis\xE3o",
|
|
199
222
|
saveFailed: "N\xE3o foi poss\xEDvel salvar a altera\xE7\xE3o da vis\xE3o.",
|
|
200
223
|
editView: "Renomear e editar",
|
package/dist/pt-BR.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/pt-BR.ts"],"sourcesContent":["import type { DataViewsCopy } from \"./components/data-display/DataViews/data-views-copy\";\nimport type { SavedViewsLabels } from \"./components/layout/ContentToolbar/ContentToolbar.types\";\nimport type {\n CategorySelectCopy,\n CepFieldCopy,\n ConfirmActionCopy,\n SectionOnboardingCopy,\n TableFilterCopy,\n} from \"./copy\";\n\n/**\n * The pt-BR packs — NAMED constants a host passes by hand, never defaults.\n *\n * The filename is what exempts this file from the copy-portability gate:\n * Portuguese may ship, it may not be silent. Every sentence is VERBATIM what\n * the components used to render, so a host adopting these sees no change on\n * screen — what changes is that the words are chosen in a diff.\n */\nexport const PT_BR_SECTION_ONBOARDING_COPY: SectionOnboardingCopy = {\n edit: \"Editar\",\n collapse: \"Ocultar\",\n start: \"Começar\",\n};\n\nexport const PT_BR_CONFIRM_ACTION_COPY: ConfirmActionCopy = {\n cancel: \"Cancelar\",\n defaultError: \"Não foi possível concluir a ação. Tente novamente.\",\n irreversible: \"Esta ação não pode ser desfeita.\",\n};\n\nexport const PT_BR_CATEGORY_SELECT_COPY: CategorySelectCopy = {\n purpose: \"Categorias organizam o cardápio e os filtros da loja.\",\n clearSelection: \"Limpar seleção\",\n emptyTitle: \"Nenhuma categoria ainda\",\n createCategory: \"Criar categoria\",\n noResults: {\n title: (query) => `Nada encontrado para “${query}”`,\n hint: \"Tente outro termo ou verifique a grafia.\",\n clearSearch: \"Limpar busca\",\n create: (query) => `Criar “${query}”`,\n },\n search: {\n placeholderSingle: \"Buscar categoria…\",\n placeholderMulti: \"Buscar categoria ou subcategoria\",\n clear: \"Limpar busca\",\n removeChip: (label) => `Remover ${label}`,\n pinnedLabel: (count) => `Selecionadas · ${count}`,\n },\n footer: {\n selectedCount: (count) => `${count} selecionada${count === 1 ? \"\" : \"s\"}`,\n clear: \"Limpar\",\n apply: \"Aplicar\",\n close: \"Fechar\",\n singleHint: \"Escolha uma categoria\",\n cancel: \"Cancelar\",\n },\n};\n\nexport const PT_BR_CEP_FIELD_COPY: CepFieldCopy = {\n loading: \"Buscando endereço…\",\n found: \"Endereço preenchido pelo CEP.\",\n notfound: \"CEP não encontrado — preencha o endereço manualmente.\",\n};\n\n/**\n * The saved-views dropdown's labels.\n *\n * Typed as the package's OWN `SavedViewsLabels` rather than a parallel shape:\n * that interface already named every string, including the seven with no\n * diacritics the copy gate could not see (`Aplicar`, `Fixar na barra lateral`,\n * `Editar`…). The prop was `Partial<SavedViewsLabels>` with a pt-BR default —\n * configurable in the type, inherited in practice.\n */\nexport const PT_BR_SAVED_VIEWS_LABELS: SavedViewsLabels = {\n trigger: \"Visões\",\n mainView: \"Visão principal\",\n pinned: \"Fixadas\",\n recent: \"Recentes\",\n empty: \"Nenhuma visão salva ainda.\",\n saveCurrent: \"+ Salvar visão atual\",\n manageAll: \"Gerenciar visões\",\n apply: \"Aplicar\",\n setDefault: \"Definir como padrão\",\n pin: \"Fixar na barra lateral\",\n unpin: \"Desafixar\",\n share: \"Compartilhar com a equipe\",\n unshare: \"Tornar privada\",\n edit: \"Editar\",\n remove: \"Excluir\",\n defaultTag: \"Padrão\",\n};\n\nexport const PT_BR_TABLE_FILTER_COPY: TableFilterCopy = {\n invalidRange: \"O máximo deve ser maior ou igual ao mínimo.\",\n};\n\nexport const PT_BR_DATA_VIEWS_COPY: DataViewsCopy = {\n savedViewsMenu: PT_BR_SAVED_VIEWS_LABELS,\n confirmAction: PT_BR_CONFIRM_ACTION_COPY,\n categorySelect: PT_BR_CATEGORY_SELECT_COPY,\n board: {\n countOnPage: (label, count) => `${label}: ${count} nesta página`,\n onThisPage: (count) => `${count} nesta página`,\n pageSum: (sum) => `Soma desta página: ${sum}`,\n pageScopeNote:\n \"As contagens e somas abaixo referem-se apenas aos itens desta página.\",\n },\n deleteView: {\n title: \"Excluir visão\",\n sharedWarning: \"Esta visão está compartilhada — a equipe perderá o acesso a ela.\",\n rowsUnaffected: (entityLabel) =>\n `${entityLabel} não são afetados; apenas o recorte salvo é removido.`,\n confirm: \"Excluir visão\",\n },\n manageViews: {\n title: \"Gerenciar visões\",\n empty: \"Nenhuma visão salva.\",\n defaultTag: \"Padrão\",\n otherUserTag: \"De outro usuário\",\n deleteTitle: \"Excluir a visão salva?\",\n deleteBody: \"Os filtros e colunas guardados nela são perdidos. Não é possível restaurar.\",\n deleteConfirm: \"Excluir\",\n },\n saveView: {\n sharedDescription: \"Qualquer pessoa da loja poderá abrir e usar esta visão.\",\n setDefaultTitle: \"Definir como padrão\",\n setDefaultDescription: \"Esta tela abre nesta visão em vez da Visão principal.\",\n previewHeading: \"O que esta visão guarda\",\n previewUnchanged: \"Nada foi alterado — esta visão ficará igual à Visão principal.\",\n sortRowLabel: \"Ordenação\",\n saveFailed: \"Não foi possível salvar a visão.\",\n titleEditing: \"Editar visão\",\n titleCreating: \"Salvar visão\",\n descriptionLabel: \"Descrição — opcional\",\n descriptionPlaceholder: \"Para que serve esta visão\",\n submitEditing: \"Salvar alterações\",\n submitCreating: \"Salvar visão\",\n nameLabel: \"Nome\",\n cancel: \"Cancelar\",\n pinnedTitle: \"Fixar na barra lateral\",\n pinnedDescription: \"Aparece como atalho no menu, abaixo desta tela.\",\n sharedTitle: \"Compartilhar com a equipe\",\n namePlaceholder: \"Ex.: Recusados no PIX desta semana\",\n previewFilters: \"Filtros\",\n previewHiddenColumns: \"Colunas ocultas\",\n },\n columns: {\n visibleCount: (visible, total) => `${visible} de ${total} visíveis`,\n reset: \"Padrão\",\n showAll: \"Mostrar todas\",\n },\n display: {\n sortTab: \"Ordenar\",\n columnsTab: \"Colunas\",\n panelTab: \"Exibição\",\n direction: \"Direção\",\n layoutHints: {\n table: \"Colunas comparáveis, boa para varrer números.\",\n list: \"Uma linha por item, com os dados principais.\",\n cards: \"Blocos maiores, bom para poucos itens.\",\n board: \"Colunas por etapa, para acompanhar o que está onde.\",\n },\n densityHeadings: {\n table: \"Altura das linhas\",\n list: \"Altura das linhas\",\n cards: \"Cards por linha\",\n board: \"Largura das colunas\",\n },\n densityLabels: {\n table: { compact: \"Baixa\", cozy: \"Média\", comfortable: \"Alta\" },\n list: { compact: \"Baixa\", cozy: \"Média\", comfortable: \"Alta\" },\n cards: { compact: \"Muitos\", cozy: \"Médio\", comfortable: \"Poucos\" },\n board: { compact: \"Estreita\", cozy: \"Média\", comfortable: \"Larga\" },\n },\n boardUnavailable: \"Esta tela não declara etapas, então não oferece quadro.\",\n densityUnavailableNarrow:\n \"Um card por linha nesta largura — a densidade volta em telas maiores.\",\n trigger: \"Exibir\",\n },\n export: {\n formats: {\n json: { label: \"JSON (.json)\", hint: \"Para integrações\" },\n },\n visibleColumns: (columnCount) => `${columnCount} colunas visíveis, na ordem atual`,\n trigger: \"Exportar\",\n },\n grid: {\n rowActions: \"Ações\",\n bulkActions: (selectedCount) => `Ações (${selectedCount}) ▾`,\n },\n filters: {\n moreFilters: (count) => `Mais filtros: ${count} sem espaço na barra`,\n moreFiltersApplied: (count, appliedCount) =>\n `Mais filtros: ${count} sem espaço na barra, ${appliedCount} aplicado(s)`,\n overflowNote: \"sem espaço na barra\",\n rangeEnd: \"Até\",\n rangeInvalid: \"O início precisa ser menor que o fim.\",\n rangePresets: {\n hoje: \"Hoje\",\n ontem: \"Ontem\",\n semana: \"Esta semana\",\n mes: \"Este mês\",\n ano: \"Este ano\",\n },\n scopesLabel: \"Situação\",\n panelTitle: \"Filtros\",\n clear: \"Limpar\",\n clearAll: \"Limpar filtros\",\n clearRange: (label) => `Limpar ${label}`,\n allOption: \"Todas\",\n optionSearchPlaceholder: \"Buscar…\",\n optionsEmpty: \"Nenhum resultado\",\n },\n selection: {\n selectAllOnPage: \"Selecionar todos nesta página\",\n clearSelection: \"Limpar seleção\",\n selectAll: \"Selecionar tudo\",\n onThisPage: (count) => `${count} nesta página`,\n selectRow: \"Selecionar\",\n },\n nav: {\n mainView: \"Visão principal\",\n defaultTag: \"Padrão\",\n viewOptions: (viewName) => `Opções de ${viewName}`,\n emptyHint: \"Nenhuma visão salva. Ajuste filtros, colunas ou ordenação e salve abaixo.\",\n setDefault: \"Definir como padrão\",\n deleteView: \"Excluir visão\",\n unsavedChanges: \"Alterações não salvas\",\n label: \"Visão\",\n update: \"Atualizar visão\",\n save: \"Salvar visão\",\n updateFailed: \"Não foi possível atualizar a visão\",\n saveFailed: \"Não foi possível salvar a alteração da visão.\",\n editView: \"Renomear e editar\",\n pinToSidebar: \"Fixar na barra lateral\",\n shareWithTeam: \"Compartilhar com a equipe\",\n },\n search: {\n placeholder: \"Buscar…\",\n allColumnsLabel: \"Buscar em todas as colunas\",\n keywordPlaceholder: \"Pressione Enter para filtrar\",\n open: \"Buscar\",\n close: \"Fechar busca\",\n clear: \"Limpar busca\",\n },\n};\n\n"],"mappings":";;;AAkBO,IAAM,gCAAuD;AAAA,EAClE,MAAM;AAAA,EACN,UAAU;AAAA,EACV,OAAO;AACT;AAEO,IAAM,4BAA+C;AAAA,EAC1D,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,cAAc;AAChB;AAEO,IAAM,6BAAiD;AAAA,EAC5D,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,WAAW;AAAA,IACT,OAAO,CAAC,UAAU,8BAAyB,KAAK;AAAA,IAChD,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ,CAAC,UAAU,eAAU,KAAK;AAAA,EACpC;AAAA,EACA,QAAQ;AAAA,IACN,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,YAAY,CAAC,UAAU,WAAW,KAAK;AAAA,IACvC,aAAa,CAAC,UAAU,qBAAkB,KAAK;AAAA,EACjD;AAAA,EACA,QAAQ;AAAA,IACN,eAAe,CAAC,UAAU,GAAG,KAAK,eAAe,UAAU,IAAI,KAAK,GAAG;AAAA,IACvE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEO,IAAM,uBAAqC;AAAA,EAChD,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ;AAWO,IAAM,2BAA6C;AAAA,EACxD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,WAAW;AAAA,EACX,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,YAAY;AACd;AAEO,IAAM,0BAA2C;AAAA,EACtD,cAAc;AAChB;AAEO,IAAM,wBAAuC;AAAA,EAClD,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,OAAO;AAAA,IACL,aAAa,CAAC,OAAO,UAAU,GAAG,KAAK,KAAK,KAAK;AAAA,IACjD,YAAY,CAAC,UAAU,GAAG,KAAK;AAAA,IAC/B,SAAS,CAAC,QAAQ,yBAAsB,GAAG;AAAA,IAC3C,eACE;AAAA,EACJ;AAAA,EACA,YAAY;AAAA,IACV,OAAO;AAAA,IACP,eAAe;AAAA,IACf,gBAAgB,CAAC,gBACf,GAAG,WAAW;AAAA,IAChB,SAAS;AAAA,EACX;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,eAAe;AAAA,EACjB;AAAA,EACA,UAAU;AAAA,IACR,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,uBAAuB;AAAA,IACvB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,EACxB;AAAA,EACA,SAAS;AAAA,IACP,cAAc,CAAC,SAAS,UAAU,GAAG,OAAO,OAAO,KAAK;AAAA,IACxD,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,aAAa;AAAA,MACX,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,eAAe;AAAA,MACb,OAAO,EAAE,SAAS,SAAS,MAAM,YAAS,aAAa,OAAO;AAAA,MAC9D,MAAM,EAAE,SAAS,SAAS,MAAM,YAAS,aAAa,OAAO;AAAA,MAC7D,OAAO,EAAE,SAAS,UAAU,MAAM,YAAS,aAAa,SAAS;AAAA,MACjE,OAAO,EAAE,SAAS,YAAY,MAAM,YAAS,aAAa,QAAQ;AAAA,IACpE;AAAA,IACA,kBAAkB;AAAA,IAClB,0BACE;AAAA,IACF,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,MACP,MAAM,EAAE,OAAO,gBAAgB,MAAM,yBAAmB;AAAA,IAC1D;AAAA,IACA,gBAAgB,CAAC,gBAAgB,GAAG,WAAW;AAAA,IAC/C,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa,CAAC,kBAAkB,gBAAU,aAAa;AAAA,EACzD;AAAA,EACA,SAAS;AAAA,IACP,aAAa,CAAC,UAAU,iBAAiB,KAAK;AAAA,IAC9C,oBAAoB,CAAC,OAAO,iBAC1B,iBAAiB,KAAK,4BAAyB,YAAY;AAAA,IAC7D,cAAc;AAAA,IACd,UAAU;AAAA,IACV,cAAc;AAAA,IACd,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY,CAAC,UAAU,UAAU,KAAK;AAAA,IACtC,WAAW;AAAA,IACX,yBAAyB;AAAA,IACzB,cAAc;AAAA,EAChB;AAAA,EACA,WAAW;AAAA,IACT,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,YAAY,CAAC,UAAU,GAAG,KAAK;AAAA,IAC/B,WAAW;AAAA,EACb;AAAA,EACA,KAAK;AAAA,IACH,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,aAAa,CAAC,aAAa,mBAAa,QAAQ;AAAA,IAChD,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/pt-BR.ts"],"sourcesContent":["import type { DataViewsCopy } from \"./components/data-display/DataViews/data-views-copy\";\nimport type { SavedViewsLabels } from \"./components/layout/ContentToolbar/ContentToolbar.types\";\nimport type {\n CategorySelectCopy,\n CepFieldCopy,\n ConfirmActionCopy,\n SectionOnboardingCopy,\n TableFilterCopy,\n} from \"./copy\";\n\n/**\n * The pt-BR packs — NAMED constants a host passes by hand, never defaults.\n *\n * The filename is what exempts this file from the copy-portability gate:\n * Portuguese may ship, it may not be silent. Every sentence is VERBATIM what\n * the components used to render, so a host adopting these sees no change on\n * screen — what changes is that the words are chosen in a diff.\n */\nexport const PT_BR_SECTION_ONBOARDING_COPY: SectionOnboardingCopy = {\n edit: \"Editar\",\n collapse: \"Ocultar\",\n start: \"Começar\",\n};\n\nexport const PT_BR_CONFIRM_ACTION_COPY: ConfirmActionCopy = {\n cancel: \"Cancelar\",\n defaultError: \"Não foi possível concluir a ação. Tente novamente.\",\n irreversible: \"Esta ação não pode ser desfeita.\",\n typeToConfirm: (expected) => `Digite \"${expected}\" para confirmar.`,\n};\n\nexport const PT_BR_CATEGORY_SELECT_COPY: CategorySelectCopy = {\n purpose: \"Categorias organizam o cardápio e os filtros da loja.\",\n clearSelection: \"Limpar seleção\",\n selectAll: \"Marcar tudo\",\n deselectAll: \"Desmarcar tudo\",\n expandAll: \"Expandir tudo\",\n collapseAll: \"Recolher tudo\",\n expandCategory: (name) => `Expandir ${name}`,\n collapseCategory: (name) => `Recolher ${name}`,\n placeholderSingle: \"Mover para…\",\n placeholderMulti: \"Categoria\",\n emptyTitle: \"Nenhuma categoria ainda\",\n createCategory: \"Criar categoria\",\n noResults: {\n title: (query) => `Nada encontrado para “${query}”`,\n hint: \"Tente outro termo ou verifique a grafia.\",\n clearSearch: \"Limpar busca\",\n create: (query) => `Criar “${query}”`,\n },\n search: {\n placeholderSingle: \"Buscar categoria…\",\n placeholderMulti: \"Buscar categoria ou subcategoria\",\n clear: \"Limpar busca\",\n removeChip: (label) => `Remover ${label}`,\n pinnedLabel: (count) => `Selecionadas · ${count}`,\n },\n footer: {\n selectedCount: (count) => `${count} selecionada${count === 1 ? \"\" : \"s\"}`,\n clear: \"Limpar\",\n apply: \"Aplicar\",\n close: \"Fechar\",\n singleHint: \"Escolha uma categoria\",\n cancel: \"Cancelar\",\n },\n};\n\nexport const PT_BR_CEP_FIELD_COPY: CepFieldCopy = {\n loading: \"Buscando endereço…\",\n found: \"Endereço preenchido pelo CEP.\",\n notfound: \"CEP não encontrado — preencha o endereço manualmente.\",\n};\n\n/**\n * The saved-views dropdown's labels.\n *\n * Typed as the package's OWN `SavedViewsLabels` rather than a parallel shape:\n * that interface already named every string, including the seven with no\n * diacritics the copy gate could not see (`Aplicar`, `Fixar na barra lateral`,\n * `Editar`…). The prop was `Partial<SavedViewsLabels>` with a pt-BR default —\n * configurable in the type, inherited in practice.\n */\nexport const PT_BR_SAVED_VIEWS_LABELS: SavedViewsLabels = {\n trigger: \"Visões\",\n mainView: \"Visão principal\",\n pinned: \"Fixadas\",\n recent: \"Recentes\",\n empty: \"Nenhuma visão salva ainda.\",\n saveCurrent: \"+ Salvar visão atual\",\n manageAll: \"Gerenciar visões\",\n apply: \"Aplicar\",\n setDefault: \"Definir como padrão\",\n pin: \"Fixar na barra lateral\",\n unpin: \"Desafixar\",\n share: \"Compartilhar com a equipe\",\n unshare: \"Tornar privada\",\n edit: \"Editar\",\n remove: \"Excluir\",\n defaultTag: \"Padrão\",\n};\n\nexport const PT_BR_TABLE_FILTER_COPY: TableFilterCopy = {\n invalidRange: \"O máximo deve ser maior ou igual ao mínimo.\",\n};\n\nexport const PT_BR_DATA_VIEWS_COPY: DataViewsCopy = {\n savedViewsMenu: PT_BR_SAVED_VIEWS_LABELS,\n confirmAction: PT_BR_CONFIRM_ACTION_COPY,\n categorySelect: PT_BR_CATEGORY_SELECT_COPY,\n board: {\n countOnPage: (label, count) => `${label}: ${count} nesta página`,\n onThisPage: (count) => `${count} nesta página`,\n pageSum: (sum) => `Soma desta página: ${sum}`,\n emptyColumn: \"Nada nesta etapa\",\n pageScopeNote:\n \"As contagens e somas abaixo referem-se apenas aos itens desta página.\",\n },\n deleteView: {\n title: \"Excluir visão\",\n target: (viewName) => `Excluir \"${viewName}\"?`,\n sharedWarning: \"Esta visão está compartilhada — a equipe perderá o acesso a ela.\",\n rowsUnaffected: (entityLabel) =>\n `${entityLabel} não são afetados; apenas o recorte salvo é removido.`,\n confirm: \"Excluir visão\",\n cancel: \"Cancelar\",\n },\n manageViews: {\n title: \"Gerenciar visões\",\n empty: \"Nenhuma visão salva.\",\n edit: \"Editar\",\n defaultTag: \"Padrão\",\n otherUserTag: \"De outro usuário\",\n deleteTitle: \"Excluir a visão salva?\",\n deleteBody: \"Os filtros e colunas guardados nela são perdidos. Não é possível restaurar.\",\n deleteConfirm: \"Excluir\",\n },\n saveView: {\n sharedDescription: \"Qualquer pessoa da loja poderá abrir e usar esta visão.\",\n setDefaultTitle: \"Definir como padrão\",\n setDefaultDescription: \"Esta tela abre nesta visão em vez da Visão principal.\",\n previewHeading: \"O que esta visão guarda\",\n previewUnchanged: \"Nada foi alterado — esta visão ficará igual à Visão principal.\",\n sortRowLabel: \"Ordenação\",\n saveFailed: \"Não foi possível salvar a visão.\",\n titleEditing: \"Editar visão\",\n titleCreating: \"Salvar visão\",\n descriptionLabel: \"Descrição — opcional\",\n descriptionPlaceholder: \"Para que serve esta visão\",\n submitEditing: \"Salvar alterações\",\n submitCreating: \"Salvar visão\",\n nameLabel: \"Nome\",\n cancel: \"Cancelar\",\n pinnedTitle: \"Fixar na barra lateral\",\n pinnedDescription: \"Aparece como atalho no menu, abaixo desta tela.\",\n sharedTitle: \"Compartilhar com a equipe\",\n namePlaceholder: \"Ex.: Recusados no PIX desta semana\",\n previewFilters: \"Filtros\",\n previewHiddenColumns: \"Colunas ocultas\",\n },\n columns: {\n visibleCount: (visible, total) => `${visible} de ${total} visíveis`,\n reset: \"Padrão\",\n showAll: \"Mostrar todas\",\n dragHint: \"Arraste para reordenar as colunas.\",\n moveUp: (columnLabel) => `Mover ${columnLabel} para cima`,\n moveDown: (columnLabel) => `Mover ${columnLabel} para baixo`,\n },\n display: {\n sortTab: \"Ordenar\",\n columnsTab: \"Colunas\",\n panelTab: \"Exibição\",\n direction: \"Direção\",\n layoutHints: {\n table: \"Colunas comparáveis, boa para varrer números.\",\n list: \"Uma linha por item, com os dados principais.\",\n cards: \"Blocos maiores, bom para poucos itens.\",\n board: \"Colunas por etapa, para acompanhar o que está onde.\",\n },\n densityHeadings: {\n table: \"Altura das linhas\",\n list: \"Altura das linhas\",\n cards: \"Cards por linha\",\n board: \"Largura das colunas\",\n },\n densityLabels: {\n table: { compact: \"Baixa\", cozy: \"Média\", comfortable: \"Alta\" },\n list: { compact: \"Baixa\", cozy: \"Média\", comfortable: \"Alta\" },\n cards: { compact: \"Muitos\", cozy: \"Médio\", comfortable: \"Poucos\" },\n board: { compact: \"Estreita\", cozy: \"Média\", comfortable: \"Larga\" },\n },\n boardUnavailable: \"Esta tela não declara etapas, então não oferece quadro.\",\n densityUnavailableNarrow:\n \"Um card por linha nesta largura — a densidade volta em telas maiores.\",\n trigger: \"Exibir\",\n },\n export: {\n formats: {\n json: { label: \"JSON (.json)\", hint: \"Para integrações\" },\n },\n visibleColumns: (columnCount) => `${columnCount} colunas visíveis, na ordem atual`,\n trigger: \"Exportar\",\n },\n grid: {\n rowActions: \"Ações\",\n bulkActions: (selectedCount) => `Ações (${selectedCount}) ▾`,\n emptyFilteredTitle: \"Nenhum resultado para esses filtros\",\n emptyFilteredHint: \"Ajuste ou remova os filtros.\",\n emptyFilteredAction: \"Limpar filtros\",\n },\n filters: {\n moreFilters: (count) => `Mais filtros: ${count} sem espaço na barra`,\n moreFiltersApplied: (count, appliedCount) =>\n `Mais filtros: ${count} sem espaço na barra, ${appliedCount} aplicado(s)`,\n overflowNote: \"sem espaço na barra\",\n rangeEnd: \"Até\",\n rangeInvalid: \"O início precisa ser menor que o fim.\",\n rangePresets: {\n hoje: \"Hoje\",\n ontem: \"Ontem\",\n semana: \"Esta semana\",\n mes: \"Este mês\",\n ano: \"Este ano\",\n },\n scopesLabel: \"Situação\",\n panelTitle: \"Filtros\",\n clear: \"Limpar\",\n clearAll: \"Limpar filtros\",\n clearRange: (label) => `Limpar ${label}`,\n allOption: \"Todas\",\n optionSearchPlaceholder: \"Buscar…\",\n optionsEmpty: \"Nenhum resultado\",\n },\n selection: {\n selectAllOnPage: \"Selecionar todos nesta página\",\n clearSelection: \"Limpar seleção\",\n selectAll: \"Selecionar tudo\",\n onThisPage: (count) => `${count} nesta página`,\n selectRow: \"Selecionar\",\n expandRow: \"Expandir detalhes\",\n collapseRow: \"Recolher detalhes\",\n },\n nav: {\n mainView: \"Visão principal\",\n defaultTag: \"Padrão\",\n viewOptions: (viewName) => `Opções de ${viewName}`,\n emptyHint: \"Nenhuma visão salva. Ajuste filtros, colunas ou ordenação e salve abaixo.\",\n setDefault: \"Definir como padrão\",\n deleteView: \"Excluir visão\",\n unsavedChanges: \"Alterações não salvas\",\n label: \"Visão\",\n update: \"Atualizar visão\",\n save: \"Salvar visão\",\n saveAs: \"Salvar como nova\",\n reset: \"Redefinir\",\n updateFailed: \"Não foi possível atualizar a visão\",\n saveFailed: \"Não foi possível salvar a alteração da visão.\",\n editView: \"Renomear e editar\",\n pinToSidebar: \"Fixar na barra lateral\",\n shareWithTeam: \"Compartilhar com a equipe\",\n },\n search: {\n placeholder: \"Buscar…\",\n allColumnsLabel: \"Buscar em todas as colunas\",\n keywordPlaceholder: \"Pressione Enter para filtrar\",\n open: \"Buscar\",\n close: \"Fechar busca\",\n clear: \"Limpar busca\",\n },\n};\n\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataViewsBoard.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsBoard.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,qFAAqF;AACrF,UAAU,cAAc,CAAC,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;CACX;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,IAAI,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,cAAc,CAAC,CAAC,CAAC,EAAE,CAkBrB;
|
|
1
|
+
{"version":3,"file":"DataViewsBoard.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsBoard.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,qFAAqF;AACrF,UAAU,cAAc,CAAC,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;CACX;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,IAAI,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,cAAc,CAAC,CAAC,CAAC,EAAE,CAkBrB;AAkJD,UAAU,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,8EAA8E;IAC9E,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1E,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChE,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,GACX,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2C5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-list-card-gutters.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/base-list-card-gutters.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwB5D,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;IACD,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAkB3B;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,GACP,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAsB3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"base-list-card-gutters.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/base-list-card-gutters.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwB5D,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;IACD,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAkB3B;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,GACP,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAsB3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAsC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-category-pill.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-category-pill.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,oBAAoB,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACvE,IAAI,CASN;AASD,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC7D,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAe,GAChB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"data-views-category-pill.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-category-pill.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,oBAAoB,CAAC;AAE1E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACvE,IAAI,CASN;AASD,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC7D,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,MAAe,GAChB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkCzC"}
|
|
@@ -18,6 +18,8 @@ import type { SavedViewsLabels } from "../../layout/ContentToolbar/ContentToolba
|
|
|
18
18
|
/** What the board's per-page footnote says about counts and sums. */
|
|
19
19
|
export interface DataViewsBoardCopy {
|
|
20
20
|
countOnPage(label: string, count: number): string;
|
|
21
|
+
/** A board column with no cards in it. */
|
|
22
|
+
emptyColumn: string;
|
|
21
23
|
onThisPage(count: number): string;
|
|
22
24
|
pageSum(sum: string): string;
|
|
23
25
|
/** Why the figures below are not the whole set. */
|
|
@@ -25,15 +27,25 @@ export interface DataViewsBoardCopy {
|
|
|
25
27
|
}
|
|
26
28
|
export interface DeleteViewCopy {
|
|
27
29
|
title: string;
|
|
30
|
+
/**
|
|
31
|
+
* WHICH view is about to go, named. The name is quoted rather than
|
|
32
|
+
* emphasised with markup: a quote delimits it unambiguously in any language
|
|
33
|
+
* and needs no markup grammar in a design-system package.
|
|
34
|
+
*/
|
|
35
|
+
target(viewName: string): string;
|
|
28
36
|
/** Shown only when the view is shared with the team. */
|
|
29
37
|
sharedWarning: string;
|
|
30
38
|
/** `entityLabel` is the host's own noun for the rows — never this package's. */
|
|
31
39
|
rowsUnaffected(entityLabel: string): string;
|
|
32
40
|
confirm: string;
|
|
41
|
+
/** The way out, beside the destructive button. */
|
|
42
|
+
cancel: string;
|
|
33
43
|
}
|
|
34
44
|
export interface ManageViewsCopy {
|
|
35
45
|
title: string;
|
|
36
46
|
empty: string;
|
|
47
|
+
/** The per-row action that reopens a saved view for editing. */
|
|
48
|
+
edit: string;
|
|
37
49
|
defaultTag: string;
|
|
38
50
|
otherUserTag: string;
|
|
39
51
|
deleteTitle: string;
|
|
@@ -72,6 +84,11 @@ export interface DataViewsColumnsCopy {
|
|
|
72
84
|
visibleCount(visible: number, total: number): string;
|
|
73
85
|
reset: string;
|
|
74
86
|
showAll: string;
|
|
87
|
+
/** How the list is reordered, for anyone who cannot see the drag handles. */
|
|
88
|
+
dragHint: string;
|
|
89
|
+
/** The keyboard route to the same reordering, named per column. */
|
|
90
|
+
moveUp(columnLabel: string): string;
|
|
91
|
+
moveDown(columnLabel: string): string;
|
|
75
92
|
}
|
|
76
93
|
export interface DataViewsDisplayCopy {
|
|
77
94
|
/** The three tabs of the display panel. */
|
|
@@ -114,6 +131,16 @@ export interface DataViewsGridCopy {
|
|
|
114
131
|
/** The per-row kebab's accessible name. */
|
|
115
132
|
rowActions: string;
|
|
116
133
|
bulkActions(selectedCount: number): string;
|
|
134
|
+
/**
|
|
135
|
+
* The FILTERED empty state, which is a different claim from the host's own
|
|
136
|
+
* "nothing here yet" and must never be worded as one.
|
|
137
|
+
*
|
|
138
|
+
* The grid renders this itself because it is the only party that knows a
|
|
139
|
+
* filter is applied; the way out sits under it, which is the whole point.
|
|
140
|
+
*/
|
|
141
|
+
emptyFilteredTitle: string;
|
|
142
|
+
emptyFilteredHint: string;
|
|
143
|
+
emptyFilteredAction: string;
|
|
117
144
|
}
|
|
118
145
|
export interface DataViewsFiltersCopy {
|
|
119
146
|
moreFilters(count: number): string;
|
|
@@ -129,7 +156,13 @@ export interface DataViewsFiltersCopy {
|
|
|
129
156
|
/** Drop every applied filter. Two spellings: the bar has room for one word. */
|
|
130
157
|
clear: string;
|
|
131
158
|
clearAll: string;
|
|
132
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Drop ONE named filter — a range pill or a multi-select chip alike.
|
|
161
|
+
*
|
|
162
|
+
* Named for the range because that is where it started; it is the same
|
|
163
|
+
* sentence and the same job for every named filter control, and the
|
|
164
|
+
* multi-select pills use it rather than spelling a second copy of it.
|
|
165
|
+
*/
|
|
133
166
|
clearRange(label: string): string;
|
|
134
167
|
/** The multi-select dropdowns this surface mounts. */
|
|
135
168
|
allOption: string;
|
|
@@ -143,6 +176,12 @@ export interface DataViewsSelectionCopy {
|
|
|
143
176
|
onThisPage(count: number): string;
|
|
144
177
|
/** One row's checkbox, which carries no visible label of its own. */
|
|
145
178
|
selectRow: string;
|
|
179
|
+
/**
|
|
180
|
+
* The row's disclosure button, in its two states. It carries a glyph and no
|
|
181
|
+
* text, so this pair IS the only name a screen reader ever reads for it.
|
|
182
|
+
*/
|
|
183
|
+
expandRow: string;
|
|
184
|
+
collapseRow: string;
|
|
146
185
|
}
|
|
147
186
|
export interface DataViewsNavCopy {
|
|
148
187
|
mainView: string;
|
|
@@ -155,6 +194,10 @@ export interface DataViewsNavCopy {
|
|
|
155
194
|
label: string;
|
|
156
195
|
update: string;
|
|
157
196
|
save: string;
|
|
197
|
+
/** Store the current state as a NEW view rather than over the applied one. */
|
|
198
|
+
saveAs: string;
|
|
199
|
+
/** Drop the unsaved changes and return to the applied view. */
|
|
200
|
+
reset: string;
|
|
158
201
|
/** The inline error when a view could not be refreshed or saved. */
|
|
159
202
|
updateFailed: string;
|
|
160
203
|
saveFailed: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-copy.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACzF;;;;;;;;;;;;;;GAcG;AAEH,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAClD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"data-views-copy.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-copy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-empty.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-empty.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-views-empty.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-empty.tsx"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,GACb,EAAE;IACD,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,sDAAsD;IACtD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwDpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-more-fields.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-more-fields.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"data-views-more-fields.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-more-fields.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,MAAM,CAAC;CACtB;AAkID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/D,KAAK,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,aAAa,GACd,EAAE;IACD,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACzB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC,GAAG;IAChF,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAYA;AAGD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3D,KAAK,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,YAAY,GACb,EAAE;IACD,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACzB,GAAG,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwDrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-views-more-filters.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-more-filters.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;GAUG;AAEH,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,cAAc;IAClF,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"data-views-more-filters.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/data-views-more-filters.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;GAUG;AAEH,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,cAAc;IAClF,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5B;AAoJD,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC7D,MAAM,EACN,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAe,EACf,GAAG,IAAI,EACR,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IACvB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAsD3B"}
|