@economic/taco 1.15.0 → 1.16.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.
Files changed (112) hide show
  1. package/dist/components/AlertDialog/components/Content.d.ts +1 -1
  2. package/dist/components/Banner/Banner.d.ts +4 -0
  3. package/dist/components/Calendar/Calendar.d.ts +1 -1
  4. package/dist/components/Calendar/Calendar.stories.d.ts +1 -1
  5. package/dist/components/Card/Card.d.ts +1 -1
  6. package/dist/components/Datepicker/Datepicker.d.ts +1 -1
  7. package/dist/components/Datepicker/Datepicker.stories.d.ts +1 -1
  8. package/dist/components/Dialog/components/Content.d.ts +1 -1
  9. package/dist/components/Dialog/components/Drawer.d.ts +1 -1
  10. package/dist/components/IconButton/IconButton.d.ts +2 -2
  11. package/dist/components/IconButton/IconButton.stories.d.ts +1 -1
  12. package/dist/components/Listbox/Listbox.d.ts +2 -2
  13. package/dist/components/Listbox/Listbox.stories.d.ts +1 -1
  14. package/dist/components/Listbox/ScrollableList.d.ts +1 -1
  15. package/dist/components/Menu/Menu.d.ts +6 -1
  16. package/dist/components/Menu/Menu.stories.d.ts +2 -0
  17. package/dist/components/Menu/components/Checkbox.d.ts +1 -1
  18. package/dist/components/Menu/components/Content.d.ts +4 -2
  19. package/dist/components/Menu/components/Item.d.ts +1 -1
  20. package/dist/components/Menu/components/Link.d.ts +1 -1
  21. package/dist/components/Menu/components/Trigger.d.ts +1 -1
  22. package/dist/components/Provider/Localization.d.ts +157 -0
  23. package/dist/components/Provider/Provider.d.ts +1 -148
  24. package/dist/components/SearchInput/SearchInput.d.ts +6 -2
  25. package/dist/components/SearchInput/SearchInput.stories.d.ts +1 -1
  26. package/dist/components/Select/Select.d.ts +1 -1
  27. package/dist/components/Select/Select.stories.d.ts +1 -1
  28. package/dist/components/Select2/Select2.d.ts +6 -4
  29. package/dist/components/Select2/Select2.stories.d.ts +1 -0
  30. package/dist/components/Select2/components/Option.d.ts +1 -1
  31. package/dist/components/Select2/components/Trigger.d.ts +1 -1
  32. package/dist/components/Table/hooks/plugins/useRowActions.d.ts +1 -1
  33. package/dist/components/Tag/Tag.d.ts +1 -1
  34. package/dist/esm/index.css +71 -71
  35. package/dist/esm/packages/taco/src/components/Banner/Banner.js +5 -0
  36. package/dist/esm/packages/taco/src/components/Banner/Banner.js.map +1 -1
  37. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js +1 -1
  38. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -1
  39. package/dist/esm/packages/taco/src/components/Card/Card.js +0 -54
  40. package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
  41. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +17 -5
  42. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
  43. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js +6 -2
  44. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -1
  45. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +1 -1
  46. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
  47. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -1
  48. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  49. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +5 -1
  50. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  51. package/dist/esm/packages/taco/src/components/Dialog/components/Drawer.js +1 -1
  52. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +1 -1
  53. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -1
  54. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +24 -19
  55. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js.map +1 -1
  56. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +1 -1
  57. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js.map +1 -1
  58. package/dist/esm/packages/taco/src/components/Listbox/useTypeahead.js +1 -1
  59. package/dist/esm/packages/taco/src/components/Menu/Menu.js +12 -2
  60. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  61. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +4 -3
  62. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  63. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js +1 -1
  64. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js.map +1 -1
  65. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js +1 -1
  66. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js.map +1 -1
  67. package/dist/esm/packages/taco/src/components/Provider/Localization.js +112 -0
  68. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -0
  69. package/dist/esm/packages/taco/src/components/Provider/Provider.js +6 -106
  70. package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
  71. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +2 -53
  72. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  73. package/dist/esm/packages/taco/src/components/Select/useSelect.js +1 -1
  74. package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
  75. package/dist/esm/packages/taco/src/components/Select2/Select2.js +7 -5
  76. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  77. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js +0 -6
  78. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js.map +1 -1
  79. package/dist/esm/packages/taco/src/components/Select2/components/Create.js +1 -1
  80. package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
  81. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +1 -1
  82. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
  83. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +49 -23
  84. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  85. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +3 -2
  86. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
  87. package/dist/esm/packages/taco/src/components/Switch/Switch.js +18 -6
  88. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
  89. package/dist/esm/packages/taco/src/components/Table/components/Table.js +5 -1
  90. package/dist/esm/packages/taco/src/components/Table/components/Table.js.map +1 -1
  91. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +1 -1
  92. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
  93. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  94. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js +1 -1
  95. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js.map +1 -1
  96. package/dist/esm/packages/taco/src/components/Toast/Toast.js +1 -1
  97. package/dist/esm/packages/taco/src/components/Toast/Toast.js.map +1 -1
  98. package/dist/esm/packages/taco/src/components/Tour/Tour.js +1 -1
  99. package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -1
  100. package/dist/esm/packages/taco/src/index.js +4 -3
  101. package/dist/esm/packages/taco/src/index.js.map +1 -1
  102. package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js +8 -0
  103. package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js.map +1 -1
  104. package/dist/index.css +71 -71
  105. package/dist/index.d.ts +1 -0
  106. package/dist/taco.cjs.development.js +719 -626
  107. package/dist/taco.cjs.development.js.map +1 -1
  108. package/dist/taco.cjs.production.min.js +1 -1
  109. package/dist/taco.cjs.production.min.js.map +1 -1
  110. package/dist/types.d.ts +1 -0
  111. package/package.json +3 -3
  112. package/types.json +59 -39
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Provider';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n //index\n activeIndex: _1,\n defaultActiveIndex: _2,\n onChangeActiveIndex: _3,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts, locale } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // @ts-expect-error: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes(locale), []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","dangerouslyHijackGlobalKeyboardNavigation","_","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","_1","defaultActiveIndex","_2","onChangeActiveIndex","_3","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","texts","locale","useLocalization","columns","defaultSortRules","getColumnsFromChildren","manualPagination","headerGroups","prepareRow","prepareBaseRow","page","gotoPage","setPageSize","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","visibleRows","setActiveIndex","handleKeyDown","handleFocus","useTableKeyboardNavigation","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Localization';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n //index\n activeIndex: _1,\n defaultActiveIndex: _2,\n onChangeActiveIndex: _3,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts, locale } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // @ts-expect-error: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes(locale), []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","dangerouslyHijackGlobalKeyboardNavigation","_","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","_1","defaultActiveIndex","_2","onChangeActiveIndex","_3","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","texts","locale","useLocalization","columns","defaultSortRules","getColumnsFromChildren","manualPagination","headerGroups","prepareRow","prepareBaseRow","page","gotoPage","setPageSize","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","visibleRows","setActiveIndex","handleKeyDown","handleFocus","useTableKeyboardNavigation","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import React__default from 'react';
2
2
  import cn from 'classnames';
3
3
  import { IconButton } from '../IconButton/IconButton.js';
4
+ import { useLocalization } from '../Provider/Localization.js';
4
5
  import { useAnimation, motion } from 'framer-motion';
5
6
  import useTimer from '../../utils/hooks/useTimer.js';
6
7
  import { getBadgeIcon } from './util.js';
7
- import { useLocalization } from '../Provider/Provider.js';
8
8
 
9
9
  const Toast = ({
10
10
  content,
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { motion, useAnimation } from 'framer-motion';\nimport useTimer from '../../utils/hooks/useTimer';\nimport { getBadgeIcon } from './util';\nimport { State } from '../../types';\nimport { useLocalization } from '../Provider/Provider';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType = Omit<State, 'default'> | 'loading';\nexport type ToastOptions = {\n /** Provide time in milliseconds after which the toast should autoclose */\n autoClose?: number;\n /**\n * State will change the icon displayed in toast and other characteristics,\n * for e.g. `loading` state will display a progress animation.\n * Default value is `default`\n */\n type?: ToastType;\n};\nexport type ToastContent = Omit<React.ReactNode, 'null' | 'undefined'>;\nexport type ToastProps = {\n /** Provide a unique id for toast */\n id: string;\n /**\n * Content can be any valid react node, for e.g. a `div`, or a simple text.\n */\n content: ToastContent;\n /** Additional options to define your toast */\n options: ToastOptions;\n /**\n * Handler called when toast closes.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n onClose: () => void;\n lastUpdated?: number;\n lastDuplicateId?: string;\n};\n\nexport const Toast = ({ content, lastUpdated, onClose: handleClose, options, ...props }: ToastProps): JSX.Element => {\n const { texts } = useLocalization();\n const { autoClose, type = 'default' } = options;\n const className = cn('bg-white relative flex items-center py-1 px-2 mt-3 w-full rounded yt-shadow', {\n 'border border-grey': type === 'default' || type === 'loading' || !type,\n 'border border-grey-darker': type === 'success',\n 'border border-blue': type === 'information',\n 'border border-yellow-dark': type === 'warning',\n 'border border-red': type === 'error',\n });\n const timer = useTimer(autoClose, handleClose);\n const controls = useAnimation();\n\n if (!content) {\n console.warn(\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`\n );\n }\n\n React.useEffect(() => {\n if (autoClose) {\n timer.start();\n }\n }, [autoClose]);\n\n const triggerUpdateAnimation = async () => {\n await controls.start({ scale: 1.05 });\n await controls.start({ scale: 1 });\n };\n\n React.useEffect(() => {\n if (lastUpdated) {\n triggerUpdateAnimation();\n\n if (timer.running) {\n timer.start();\n }\n }\n }, [lastUpdated]);\n\n return (\n <motion.div\n {...props}\n animate={controls}\n className={className}\n data-taco=\"toast\"\n onMouseEnter={timer.pause}\n onMouseLeave={timer.resume}>\n {getBadgeIcon(type)}\n <div className=\"flex-grow\">{content}</div>\n <IconButton\n appearance=\"discrete\"\n className=\"text-grey-darkest -mr-2 cursor-pointer self-start !px-0\"\n icon=\"close\"\n aria-label={texts.toasts.dismiss}\n onClick={handleClose}\n />\n </motion.div>\n );\n};\n"],"names":["Toast","content","lastUpdated","onClose","handleClose","options","props","texts","useLocalization","autoClose","type","className","cn","timer","useTimer","controls","useAnimation","console","warn","React","useEffect","start","triggerUpdateAnimation","scale","running","motion","div","animate","onMouseEnter","pause","onMouseLeave","resume","getBadgeIcon","IconButton","appearance","icon","toasts","dismiss","onClick"],"mappings":";;;;;;;;MA4CaA,KAAK,GAAG,CAAC;EAAEC,OAAO;EAAEC,WAAW;EAAEC,OAAO,EAAEC,WAAW;EAAEC,OAAO;EAAE,GAAGC;CAAmB;EAC/F,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM;IAAEC,SAAS;IAAEC,IAAI,GAAG;GAAW,GAAGL,OAAO;EAC/C,MAAMM,SAAS,GAAGC,EAAE,CAAC,6EAA6E,EAAE;IAChG,oBAAoB,EAAEF,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,SAAS,IAAI,CAACA,IAAI;IACvE,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,oBAAoB,EAAEA,IAAI,KAAK,aAAa;IAC5C,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,mBAAmB,EAAEA,IAAI,KAAK;GACjC,CAAC;EACF,MAAMG,KAAK,GAAGC,QAAQ,CAACL,SAAS,EAAEL,WAAW,CAAC;EAC9C,MAAMW,QAAQ,GAAGC,YAAY,EAAE;EAE/B,IAAI,CAACf,OAAO,EAAE;IACVgB,OAAO,CAACC,IAAI,uHAEJjB,OAAO,KAAK,EAAE,GAAG,cAAc,GAAGA,UACnC,CACN;;EAGLkB,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIX,SAAS,EAAE;MACXI,KAAK,CAACQ,KAAK,EAAE;;GAEpB,EAAE,CAACZ,SAAS,CAAC,CAAC;EAEf,MAAMa,sBAAsB;IAAA;6BAClBP,QAAQ,CAACM,KAAK,CAAC;QAAEE,KAAK,EAAE;OAAM,CAAC;QAAA,uBAC/BR,QAAQ,CAACM,KAAK,CAAC;UAAEE,KAAK,EAAE;SAAG,CAAC;;KACrC;MAAA;;;EAEDJ,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIlB,WAAW,EAAE;MACboB,sBAAsB,EAAE;MAExB,IAAIT,KAAK,CAACW,OAAO,EAAE;QACfX,KAAK,CAACQ,KAAK,EAAE;;;GAGxB,EAAE,CAACnB,WAAW,CAAC,CAAC;EAEjB,oBACIiB,6BAACM,MAAM,CAACC,GAAG,oBACHpB,KAAK;IACTqB,OAAO,EAAEZ,QAAQ;IACjBJ,SAAS,EAAEA,SAAS;iBACV,OAAO;IACjBiB,YAAY,EAAEf,KAAK,CAACgB,KAAK;IACzBC,YAAY,EAAEjB,KAAK,CAACkB;MACnBC,YAAY,CAACtB,IAAI,CAAC,eACnBS;IAAKR,SAAS,EAAC;KAAaV,OAAO,CAAO,eAC1CkB,6BAACc,UAAU;IACPC,UAAU,EAAC,UAAU;IACrBvB,SAAS,EAAC,yDAAyD;IACnEwB,IAAI,EAAC,OAAO;kBACA5B,KAAK,CAAC6B,MAAM,CAACC,OAAO;IAChCC,OAAO,EAAElC;IACX,CACO;AAErB;;;;"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { motion, useAnimation } from 'framer-motion';\nimport useTimer from '../../utils/hooks/useTimer';\nimport { getBadgeIcon } from './util';\nimport { State } from '../../types';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType = Omit<State, 'default'> | 'loading';\nexport type ToastOptions = {\n /** Provide time in milliseconds after which the toast should autoclose */\n autoClose?: number;\n /**\n * State will change the icon displayed in toast and other characteristics,\n * for e.g. `loading` state will display a progress animation.\n * Default value is `default`\n */\n type?: ToastType;\n};\nexport type ToastContent = Omit<React.ReactNode, 'null' | 'undefined'>;\nexport type ToastProps = {\n /** Provide a unique id for toast */\n id: string;\n /**\n * Content can be any valid react node, for e.g. a `div`, or a simple text.\n */\n content: ToastContent;\n /** Additional options to define your toast */\n options: ToastOptions;\n /**\n * Handler called when toast closes.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n onClose: () => void;\n lastUpdated?: number;\n lastDuplicateId?: string;\n};\n\nexport const Toast = ({ content, lastUpdated, onClose: handleClose, options, ...props }: ToastProps): JSX.Element => {\n const { texts } = useLocalization();\n const { autoClose, type = 'default' } = options;\n const className = cn('bg-white relative flex items-center py-1 px-2 mt-3 w-full rounded yt-shadow', {\n 'border border-grey': type === 'default' || type === 'loading' || !type,\n 'border border-grey-darker': type === 'success',\n 'border border-blue': type === 'information',\n 'border border-yellow-dark': type === 'warning',\n 'border border-red': type === 'error',\n });\n const timer = useTimer(autoClose, handleClose);\n const controls = useAnimation();\n\n if (!content) {\n console.warn(\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`\n );\n }\n\n React.useEffect(() => {\n if (autoClose) {\n timer.start();\n }\n }, [autoClose]);\n\n const triggerUpdateAnimation = async () => {\n await controls.start({ scale: 1.05 });\n await controls.start({ scale: 1 });\n };\n\n React.useEffect(() => {\n if (lastUpdated) {\n triggerUpdateAnimation();\n\n if (timer.running) {\n timer.start();\n }\n }\n }, [lastUpdated]);\n\n return (\n <motion.div\n {...props}\n animate={controls}\n className={className}\n data-taco=\"toast\"\n onMouseEnter={timer.pause}\n onMouseLeave={timer.resume}>\n {getBadgeIcon(type)}\n <div className=\"flex-grow\">{content}</div>\n <IconButton\n appearance=\"discrete\"\n className=\"text-grey-darkest -mr-2 cursor-pointer self-start !px-0\"\n icon=\"close\"\n aria-label={texts.toasts.dismiss}\n onClick={handleClose}\n />\n </motion.div>\n );\n};\n"],"names":["Toast","content","lastUpdated","onClose","handleClose","options","props","texts","useLocalization","autoClose","type","className","cn","timer","useTimer","controls","useAnimation","console","warn","React","useEffect","start","triggerUpdateAnimation","scale","running","motion","div","animate","onMouseEnter","pause","onMouseLeave","resume","getBadgeIcon","IconButton","appearance","icon","toasts","dismiss","onClick"],"mappings":";;;;;;;;MA4CaA,KAAK,GAAG,CAAC;EAAEC,OAAO;EAAEC,WAAW;EAAEC,OAAO,EAAEC,WAAW;EAAEC,OAAO;EAAE,GAAGC;CAAmB;EAC/F,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM;IAAEC,SAAS;IAAEC,IAAI,GAAG;GAAW,GAAGL,OAAO;EAC/C,MAAMM,SAAS,GAAGC,EAAE,CAAC,6EAA6E,EAAE;IAChG,oBAAoB,EAAEF,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,SAAS,IAAI,CAACA,IAAI;IACvE,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,oBAAoB,EAAEA,IAAI,KAAK,aAAa;IAC5C,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,mBAAmB,EAAEA,IAAI,KAAK;GACjC,CAAC;EACF,MAAMG,KAAK,GAAGC,QAAQ,CAACL,SAAS,EAAEL,WAAW,CAAC;EAC9C,MAAMW,QAAQ,GAAGC,YAAY,EAAE;EAE/B,IAAI,CAACf,OAAO,EAAE;IACVgB,OAAO,CAACC,IAAI,uHAEJjB,OAAO,KAAK,EAAE,GAAG,cAAc,GAAGA,UACnC,CACN;;EAGLkB,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIX,SAAS,EAAE;MACXI,KAAK,CAACQ,KAAK,EAAE;;GAEpB,EAAE,CAACZ,SAAS,CAAC,CAAC;EAEf,MAAMa,sBAAsB;IAAA;6BAClBP,QAAQ,CAACM,KAAK,CAAC;QAAEE,KAAK,EAAE;OAAM,CAAC;QAAA,uBAC/BR,QAAQ,CAACM,KAAK,CAAC;UAAEE,KAAK,EAAE;SAAG,CAAC;;KACrC;MAAA;;;EAEDJ,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIlB,WAAW,EAAE;MACboB,sBAAsB,EAAE;MAExB,IAAIT,KAAK,CAACW,OAAO,EAAE;QACfX,KAAK,CAACQ,KAAK,EAAE;;;GAGxB,EAAE,CAACnB,WAAW,CAAC,CAAC;EAEjB,oBACIiB,6BAACM,MAAM,CAACC,GAAG,oBACHpB,KAAK;IACTqB,OAAO,EAAEZ,QAAQ;IACjBJ,SAAS,EAAEA,SAAS;iBACV,OAAO;IACjBiB,YAAY,EAAEf,KAAK,CAACgB,KAAK;IACzBC,YAAY,EAAEjB,KAAK,CAACkB;MACnBC,YAAY,CAACtB,IAAI,CAAC,eACnBS;IAAKR,SAAS,EAAC;KAAaV,OAAO,CAAO,eAC1CkB,6BAACc,UAAU;IACPC,UAAU,EAAC,UAAU;IACrBvB,SAAS,EAAC,yDAAyD;IACnEwB,IAAI,EAAC,OAAO;kBACA5B,KAAK,CAAC6B,MAAM,CAACC,OAAO;IAChCC,OAAO,EAAElC;IACX,CACO;AAErB;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { useMemo, Children, useCallback, createElement, useRef, useEffect } from 'react';
2
2
  import { IconButton } from '../IconButton/IconButton.js';
3
+ import { useLocalization } from '../Provider/Localization.js';
3
4
  import { Button } from '../Button/Button.js';
4
- import { useLocalization } from '../Provider/Provider.js';
5
5
  import { Group } from '../Group/Group.js';
6
6
  import Joyride, { ACTIONS, LIFECYCLE, EVENTS } from 'react-joyride';
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"Tour.js","sources":["../../../../../../../src/components/Tour/Tour.tsx"],"sourcesContent":["import * as React from 'react';\nimport Joyride, { Step, CallBackProps, ACTIONS, LIFECYCLE, Placement, EVENTS, TooltipRenderProps } from 'react-joyride';\n\nimport { Button } from '../Button/Button';\nimport { Group } from '../Group/Group';\nimport { IconButton } from '../IconButton/IconButton';\nimport { useLocalization } from '../Provider/Provider';\n\nexport type TourTexts = {\n /** Text for back action button */\n back: string;\n /**\n * Text for close button.\n * This button is displayed if tour is not continuous - replacing the `Next` button.\n * It will pause the flow of the tour and close the tooltip\n */\n close: string;\n /**\n * Aria-label and title for close icon button in each step.\n * This button skips and completes the flow entirely\n */\n skip: string;\n /**\n * Text for last action button.\n * This button is displayed when user is on the last step of the tour\n */\n last: string;\n /**\n * Text for next action button.\n * This button is displayed if tour has more than one steps and is continuous\n */\n next: string;\n /** Aria label and title for beacon that will open the tour step */\n open: string;\n};\n\nexport type TourStepProps = {\n /** Content can be any valid react node, for e.g. a `div` */\n children: React.ReactNode;\n /** Define the position of the tour's popup relative to the element is presenting */\n position?: Placement;\n /** The css selector of the html element you want to include in a tour */\n selector: string;\n /**\n * Show beacon for step.\n * A beacon is a styled component which indicates the current element to be presented.\n * For more informations about how to create a beacon, read [Joyride](https://docs.react-joyride.com) docs\n */\n showBeacon?: boolean;\n /** Text displayed above the children/content of the popup */\n title: string;\n};\n\nconst Tooltip = ({\n continuous,\n index,\n isLastStep,\n step,\n backProps,\n primaryProps,\n skipProps,\n tooltipProps,\n size,\n locale,\n disableTourSkipOnEsc,\n}: TooltipRenderProps & { locale: TourTexts; disableTourSkipOnEsc?: boolean }) => {\n const skipButtonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useEffect(() => {\n const onWindowKeyDown = (event: KeyboardEvent): void => {\n if (!disableTourSkipOnEsc) {\n if (event.key === 'Escape' && skipButtonRef.current !== null) {\n event.preventDefault();\n skipButtonRef.current.click();\n return;\n }\n }\n };\n\n window.addEventListener('keydown', onWindowKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onWindowKeyDown);\n };\n }, []);\n\n return (\n <div {...tooltipProps} className=\"yt-tour__step w-88 relative rounded bg-white p-4\">\n <IconButton\n {...skipProps}\n ref={skipButtonRef}\n appearance=\"discrete\"\n icon=\"close\"\n title={locale.skip}\n aria-label={locale.skip}\n className=\"absolute top-0 right-0 mt-1 mr-1\"\n />\n {step.title && <h5>{step.title}</h5>}\n {step.content}\n <Group className=\"mt-4 justify-end\">\n {index > 0 && (\n <Button {...backProps} appearance=\"discrete\">\n {locale.back}\n </Button>\n )}\n <Button {...primaryProps} appearance=\"primary\">\n {continuous\n ? isLastStep\n ? `${locale.last} (${index + 1}/${size})`\n : `${locale.next} (${index + 1}/${size})`\n : locale.close}\n </Button>\n </Group>\n </div>\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const TourStep = (_props: TourStepProps): null => null;\n\nexport type TourProps = {\n /** Controls if [Joyride](https://docs.react-joyride.com) is active */\n autoStart?: boolean;\n /** Children should be one or more `Tour.Step` components */\n children: any;\n /** Are there more than one steps and should you be able to navigate between them using `Next` and `Previous` buttons */\n continuous?: boolean;\n /** Disable closing of tour when click on `Escape` */\n disableCloseOnEsc?: boolean;\n /** Don't close the presenting popup of the tour step when clicking outside it */\n disableOverlayClose?: boolean;\n /** Allows user to interact with the presented components (mouse and touch events) when the popup is visible */\n disableScrolling?: boolean;\n /* When user clicks on the close icon button, which will close the tour and complete the flow */\n onClose?: (step: TourStepProps) => void;\n /* When user completes the entire flow */\n onComplete?: Function;\n /** When step is ready */\n onReady?: (step: TourStepProps) => void;\n /* Allow mouse and touch events through the spotlight */\n spotlightClicks?: boolean;\n /* Stops the injection of custom overflow styles on parent container. Can be used to prevent remaining overflow styles after tour is done. */\n disableScrollParentFix?: boolean;\n /** The scroll distance from the element scrollTop value. */\n scrollOffset?: number;\n};\n\nexport const Tour = (props: TourProps) => {\n const {\n texts: { tour },\n } = useLocalization();\n\n const {\n autoStart: run,\n onComplete,\n onClose,\n onReady,\n spotlightClicks,\n disableCloseOnEsc: disableTourSkipOnEsc,\n disableScrollParentFix = false,\n scrollOffset,\n ...rest\n } = props;\n\n const steps = React.useMemo(() => {\n return React.Children.map(props.children, child => {\n const step: Step = {\n disableBeacon: !child.props.showBeacon,\n target: child.props.selector,\n placement: child.props.position,\n title: child.props.title,\n content: child.props.children,\n };\n return step;\n });\n }, [props.children]);\n\n const getStep = React.useCallback(\n (selector: string | HTMLElement) => props.children.find((child: any) => child.props.selector === selector)?.props,\n [props.children]\n );\n\n function callback(state: CallBackProps) {\n if (state.action === ACTIONS.SKIP && state.lifecycle === LIFECYCLE.COMPLETE) {\n if (onClose) {\n onClose(getStep(state.step.target));\n }\n }\n\n if (state.type === EVENTS.TOUR_END) {\n if (onComplete) {\n onComplete();\n }\n }\n\n if (state.lifecycle === LIFECYCLE.READY) {\n if (onReady) {\n onReady(getStep(state.step.target));\n }\n }\n }\n\n return (\n <Joyride\n {...rest}\n run={run}\n steps={steps}\n showProgress\n floaterProps={{\n disableAnimation: true,\n }}\n tooltipComponent={tooltipProps => (\n <Tooltip {...tooltipProps} locale={tour} disableTourSkipOnEsc={disableTourSkipOnEsc} />\n )}\n locale={tour}\n spotlightPadding={8}\n spotlightClicks={spotlightClicks}\n disableScrollParentFix={disableScrollParentFix}\n callback={callback}\n scrollOffset={scrollOffset}\n styles={{\n /** style beacon */\n options: {\n // tailwind.theme.colors.blue.light\n primaryColor: '#6ba4ff',\n },\n }}\n disableCloseOnEsc\n />\n );\n};\n\nTour.Step = TourStep;\n"],"names":["Tooltip","continuous","index","isLastStep","step","backProps","primaryProps","skipProps","tooltipProps","size","locale","disableTourSkipOnEsc","skipButtonRef","React","onWindowKeyDown","event","key","current","preventDefault","click","window","addEventListener","removeEventListener","className","IconButton","ref","appearance","icon","title","skip","content","Group","Button","back","last","next","close","TourStep","_props","Tour","props","texts","tour","useLocalization","autoStart","run","onComplete","onClose","onReady","spotlightClicks","disableCloseOnEsc","disableScrollParentFix","scrollOffset","rest","steps","map","children","child","disableBeacon","showBeacon","target","selector","placement","position","getStep","find","callback","state","action","ACTIONS","SKIP","lifecycle","LIFECYCLE","COMPLETE","type","EVENTS","TOUR_END","READY","Joyride","showProgress","floaterProps","disableAnimation","tooltipComponent","spotlightPadding","styles","options","primaryColor","Step"],"mappings":"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"}
1
+ {"version":3,"file":"Tour.js","sources":["../../../../../../../src/components/Tour/Tour.tsx"],"sourcesContent":["import * as React from 'react';\nimport Joyride, { Step, CallBackProps, ACTIONS, LIFECYCLE, Placement, EVENTS, TooltipRenderProps } from 'react-joyride';\n\nimport { Button } from '../Button/Button';\nimport { Group } from '../Group/Group';\nimport { IconButton } from '../IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\n\nexport type TourTexts = {\n /** Text for back action button */\n back: string;\n /**\n * Text for close button.\n * This button is displayed if tour is not continuous - replacing the `Next` button.\n * It will pause the flow of the tour and close the tooltip\n */\n close: string;\n /**\n * Aria-label and title for close icon button in each step.\n * This button skips and completes the flow entirely\n */\n skip: string;\n /**\n * Text for last action button.\n * This button is displayed when user is on the last step of the tour\n */\n last: string;\n /**\n * Text for next action button.\n * This button is displayed if tour has more than one steps and is continuous\n */\n next: string;\n /** Aria label and title for beacon that will open the tour step */\n open: string;\n};\n\nexport type TourStepProps = {\n /** Content can be any valid react node, for e.g. a `div` */\n children: React.ReactNode;\n /** Define the position of the tour's popup relative to the element is presenting */\n position?: Placement;\n /** The css selector of the html element you want to include in a tour */\n selector: string;\n /**\n * Show beacon for step.\n * A beacon is a styled component which indicates the current element to be presented.\n * For more informations about how to create a beacon, read [Joyride](https://docs.react-joyride.com) docs\n */\n showBeacon?: boolean;\n /** Text displayed above the children/content of the popup */\n title: string;\n};\n\nconst Tooltip = ({\n continuous,\n index,\n isLastStep,\n step,\n backProps,\n primaryProps,\n skipProps,\n tooltipProps,\n size,\n locale,\n disableTourSkipOnEsc,\n}: TooltipRenderProps & { locale: TourTexts; disableTourSkipOnEsc?: boolean }) => {\n const skipButtonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useEffect(() => {\n const onWindowKeyDown = (event: KeyboardEvent): void => {\n if (!disableTourSkipOnEsc) {\n if (event.key === 'Escape' && skipButtonRef.current !== null) {\n event.preventDefault();\n skipButtonRef.current.click();\n return;\n }\n }\n };\n\n window.addEventListener('keydown', onWindowKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onWindowKeyDown);\n };\n }, []);\n\n return (\n <div {...tooltipProps} className=\"yt-tour__step w-88 relative rounded bg-white p-4\">\n <IconButton\n {...skipProps}\n ref={skipButtonRef}\n appearance=\"discrete\"\n icon=\"close\"\n title={locale.skip}\n aria-label={locale.skip}\n className=\"absolute top-0 right-0 mt-1 mr-1\"\n />\n {step.title && <h5>{step.title}</h5>}\n {step.content}\n <Group className=\"mt-4 justify-end\">\n {index > 0 && (\n <Button {...backProps} appearance=\"discrete\">\n {locale.back}\n </Button>\n )}\n <Button {...primaryProps} appearance=\"primary\">\n {continuous\n ? isLastStep\n ? `${locale.last} (${index + 1}/${size})`\n : `${locale.next} (${index + 1}/${size})`\n : locale.close}\n </Button>\n </Group>\n </div>\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const TourStep = (_props: TourStepProps): null => null;\n\nexport type TourProps = {\n /** Controls if [Joyride](https://docs.react-joyride.com) is active */\n autoStart?: boolean;\n /** Children should be one or more `Tour.Step` components */\n children: any;\n /** Are there more than one steps and should you be able to navigate between them using `Next` and `Previous` buttons */\n continuous?: boolean;\n /** Disable closing of tour when click on `Escape` */\n disableCloseOnEsc?: boolean;\n /** Don't close the presenting popup of the tour step when clicking outside it */\n disableOverlayClose?: boolean;\n /** Allows user to interact with the presented components (mouse and touch events) when the popup is visible */\n disableScrolling?: boolean;\n /* When user clicks on the close icon button, which will close the tour and complete the flow */\n onClose?: (step: TourStepProps) => void;\n /* When user completes the entire flow */\n onComplete?: Function;\n /** When step is ready */\n onReady?: (step: TourStepProps) => void;\n /* Allow mouse and touch events through the spotlight */\n spotlightClicks?: boolean;\n /* Stops the injection of custom overflow styles on parent container. Can be used to prevent remaining overflow styles after tour is done. */\n disableScrollParentFix?: boolean;\n /** The scroll distance from the element scrollTop value. */\n scrollOffset?: number;\n};\n\nexport const Tour = (props: TourProps) => {\n const {\n texts: { tour },\n } = useLocalization();\n\n const {\n autoStart: run,\n onComplete,\n onClose,\n onReady,\n spotlightClicks,\n disableCloseOnEsc: disableTourSkipOnEsc,\n disableScrollParentFix = false,\n scrollOffset,\n ...rest\n } = props;\n\n const steps = React.useMemo(() => {\n return React.Children.map(props.children, child => {\n const step: Step = {\n disableBeacon: !child.props.showBeacon,\n target: child.props.selector,\n placement: child.props.position,\n title: child.props.title,\n content: child.props.children,\n };\n return step;\n });\n }, [props.children]);\n\n const getStep = React.useCallback(\n (selector: string | HTMLElement) => props.children.find((child: any) => child.props.selector === selector)?.props,\n [props.children]\n );\n\n function callback(state: CallBackProps) {\n if (state.action === ACTIONS.SKIP && state.lifecycle === LIFECYCLE.COMPLETE) {\n if (onClose) {\n onClose(getStep(state.step.target));\n }\n }\n\n if (state.type === EVENTS.TOUR_END) {\n if (onComplete) {\n onComplete();\n }\n }\n\n if (state.lifecycle === LIFECYCLE.READY) {\n if (onReady) {\n onReady(getStep(state.step.target));\n }\n }\n }\n\n return (\n <Joyride\n {...rest}\n run={run}\n steps={steps}\n showProgress\n floaterProps={{\n disableAnimation: true,\n }}\n tooltipComponent={tooltipProps => (\n <Tooltip {...tooltipProps} locale={tour} disableTourSkipOnEsc={disableTourSkipOnEsc} />\n )}\n locale={tour}\n spotlightPadding={8}\n spotlightClicks={spotlightClicks}\n disableScrollParentFix={disableScrollParentFix}\n callback={callback}\n scrollOffset={scrollOffset}\n styles={{\n /** style beacon */\n options: {\n // tailwind.theme.colors.blue.light\n primaryColor: '#6ba4ff',\n },\n }}\n disableCloseOnEsc\n />\n );\n};\n\nTour.Step = TourStep;\n"],"names":["Tooltip","continuous","index","isLastStep","step","backProps","primaryProps","skipProps","tooltipProps","size","locale","disableTourSkipOnEsc","skipButtonRef","React","onWindowKeyDown","event","key","current","preventDefault","click","window","addEventListener","removeEventListener","className","IconButton","ref","appearance","icon","title","skip","content","Group","Button","back","last","next","close","TourStep","_props","Tour","props","texts","tour","useLocalization","autoStart","run","onComplete","onClose","onReady","spotlightClicks","disableCloseOnEsc","disableScrollParentFix","scrollOffset","rest","steps","map","children","child","disableBeacon","showBeacon","target","selector","placement","position","getStep","find","callback","state","action","ACTIONS","SKIP","lifecycle","LIFECYCLE","COMPLETE","type","EVENTS","TOUR_END","READY","Joyride","showProgress","floaterProps","disableAnimation","tooltipComponent","spotlightPadding","styles","options","primaryColor","Step"],"mappings":"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"}
@@ -8,11 +8,9 @@ export { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden.js';
8
8
  export { Badge } from './components/Badge/Badge.js';
9
9
  export { Tooltip } from './components/Tooltip/Tooltip.js';
10
10
  export { Base, IconButton } from './components/IconButton/IconButton.js';
11
+ export { LocalizationContext, LocalizationProvider, defaultLocalisationTexts, useLocalization } from './components/Provider/Localization.js';
11
12
  export { Banner } from './components/Banner/Banner.js';
12
13
  export { Button } from './components/Button/Button.js';
13
- export { Spinner } from './components/Spinner/Spinner.js';
14
- export { ToastProvider, useToast } from './components/Toast/Toaster.js';
15
- export { Provider, defaultLocalisationTexts, useLocalization, useTaco } from './components/Provider/Provider.js';
16
14
  export { Calendar } from './components/Calendar/Calendar.js';
17
15
  export { Card } from './components/Card/Card.js';
18
16
  export { Checkbox } from './components/Checkbox/Checkbox.js';
@@ -20,6 +18,7 @@ export { useMergedRef } from './hooks/useMergedRef.js';
20
18
  export { Input } from './components/Input/Input.js';
21
19
  export { getNextIndexFromKey, useListKeyboardNavigation } from './utils/hooks/useListKeyboardNavigation.js';
22
20
  export { useListScrollTo } from './utils/hooks/useListScrollTo.js';
21
+ export { Spinner } from './components/Spinner/Spinner.js';
23
22
  export { useBoundingClientRectListener } from './hooks/useBoundingClientRectListener.js';
24
23
  export { Combobox } from './components/Combobox/Combobox.js';
25
24
  export { format, parseFromCustomString, parseFromISOString } from './utils/date.js';
@@ -42,6 +41,8 @@ export { Select } from './components/Select/Select.js';
42
41
  export { usePagination } from './components/Pagination/usePagination.js';
43
42
  export { Pagination } from './components/Pagination/Pagination.js';
44
43
  export { Progress } from './components/Progress/Progress.js';
44
+ export { ToastProvider, useToast } from './components/Toast/Toaster.js';
45
+ export { Provider } from './components/Provider/Provider.js';
45
46
  export { Tag } from './components/Tag/Tag.js';
46
47
  export { Select2 } from './components/Select2/Select2.js';
47
48
  export { Table } from './components/Table/components/Table.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,9 +6,13 @@ const useDraggable = ref => {
6
6
  x: 0,
7
7
  y: 0
8
8
  });
9
+ const [dragging, setDragging] = React__default.useState(false);
9
10
  const {
10
11
  moveProps
11
12
  } = useMove({
13
+ onMoveStart() {
14
+ setDragging(true);
15
+ },
12
16
  onMove(event) {
13
17
  var _ref$current;
14
18
  const rect = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getBoundingClientRect();
@@ -27,10 +31,14 @@ const useDraggable = ref => {
27
31
  y
28
32
  };
29
33
  });
34
+ },
35
+ onMoveEnd() {
36
+ setDragging(false);
30
37
  }
31
38
  });
32
39
  return {
33
40
  position,
41
+ dragging,
34
42
  handleProps: moveProps
35
43
  };
36
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDraggable.js","sources":["../../../../../../../src/utils/hooks/useDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { useMove } from '@react-aria/interactions';\n\nexport const useDraggable = (ref: React.MutableRefObject<HTMLDivElement | null>): any => {\n const [position, setPosition] = React.useState({\n x: 0,\n y: 0,\n });\n\n const { moveProps } = useMove({\n onMove(event) {\n const rect = ref.current?.getBoundingClientRect();\n\n // Prevent dragging out of bounds\n if (\n rect &&\n (rect.left + event.deltaX < 0 ||\n rect.right + event.deltaX > window.innerWidth ||\n rect.top + event.deltaY < 0 ||\n rect.bottom + event.deltaY > window.innerHeight)\n ) {\n return;\n }\n\n setPosition(({ x, y }) => {\n x += event.deltaX;\n y += event.deltaY;\n return { x, y };\n });\n },\n });\n\n return {\n position,\n handleProps: moveProps,\n };\n};\n"],"names":["useDraggable","ref","position","setPosition","React","useState","x","y","moveProps","useMove","onMove","event","rect","current","getBoundingClientRect","left","deltaX","right","window","innerWidth","top","deltaY","bottom","innerHeight","handleProps"],"mappings":";;;MAGaA,YAAY,GAAIC,GAAkD;EAC3E,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC;IAC3CC,CAAC,EAAE,CAAC;IACJC,CAAC,EAAE;GACN,CAAC;EAEF,MAAM;IAAEC;GAAW,GAAGC,OAAO,CAAC;IAC1BC,MAAM,CAACC,KAAK;;MACR,MAAMC,IAAI,mBAAGX,GAAG,CAACY,OAAO,iDAAX,aAAaC,qBAAqB,EAAE;;MAGjD,IACIF,IAAI,KACHA,IAAI,CAACG,IAAI,GAAGJ,KAAK,CAACK,MAAM,GAAG,CAAC,IACzBJ,IAAI,CAACK,KAAK,GAAGN,KAAK,CAACK,MAAM,GAAGE,MAAM,CAACC,UAAU,IAC7CP,IAAI,CAACQ,GAAG,GAAGT,KAAK,CAACU,MAAM,GAAG,CAAC,IAC3BT,IAAI,CAACU,MAAM,GAAGX,KAAK,CAACU,MAAM,GAAGH,MAAM,CAACK,WAAW,CAAC,EACtD;QACE;;MAGJpB,WAAW,CAAC,CAAC;QAAEG,CAAC;QAAEC;OAAG;QACjBD,CAAC,IAAIK,KAAK,CAACK,MAAM;QACjBT,CAAC,IAAII,KAAK,CAACU,MAAM;QACjB,OAAO;UAAEf,CAAC;UAAEC;SAAG;OAClB,CAAC;;GAET,CAAC;EAEF,OAAO;IACHL,QAAQ;IACRsB,WAAW,EAAEhB;GAChB;AACL;;;;"}
1
+ {"version":3,"file":"useDraggable.js","sources":["../../../../../../../src/utils/hooks/useDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { useMove } from '@react-aria/interactions';\n\nexport const useDraggable = (ref: React.MutableRefObject<HTMLDivElement | null>): any => {\n const [position, setPosition] = React.useState({\n x: 0,\n y: 0,\n });\n\n const [dragging, setDragging] = React.useState(false);\n\n const { moveProps } = useMove({\n onMoveStart() {\n setDragging(true);\n },\n onMove(event) {\n const rect = ref.current?.getBoundingClientRect();\n\n // Prevent dragging out of bounds\n if (\n rect &&\n (rect.left + event.deltaX < 0 ||\n rect.right + event.deltaX > window.innerWidth ||\n rect.top + event.deltaY < 0 ||\n rect.bottom + event.deltaY > window.innerHeight)\n ) {\n return;\n }\n\n setPosition(({ x, y }) => {\n x += event.deltaX;\n y += event.deltaY;\n return { x, y };\n });\n },\n onMoveEnd() {\n setDragging(false);\n },\n });\n\n return {\n position,\n dragging,\n handleProps: moveProps,\n };\n};\n"],"names":["useDraggable","ref","position","setPosition","React","useState","x","y","dragging","setDragging","moveProps","useMove","onMoveStart","onMove","event","rect","current","getBoundingClientRect","left","deltaX","right","window","innerWidth","top","deltaY","bottom","innerHeight","onMoveEnd","handleProps"],"mappings":";;;MAGaA,YAAY,GAAIC,GAAkD;EAC3E,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC;IAC3CC,CAAC,EAAE,CAAC;IACJC,CAAC,EAAE;GACN,CAAC;EAEF,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGL,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EAErD,MAAM;IAAEK;GAAW,GAAGC,OAAO,CAAC;IAC1BC,WAAW;MACPH,WAAW,CAAC,IAAI,CAAC;KACpB;IACDI,MAAM,CAACC,KAAK;;MACR,MAAMC,IAAI,mBAAGd,GAAG,CAACe,OAAO,iDAAX,aAAaC,qBAAqB,EAAE;;MAGjD,IACIF,IAAI,KACHA,IAAI,CAACG,IAAI,GAAGJ,KAAK,CAACK,MAAM,GAAG,CAAC,IACzBJ,IAAI,CAACK,KAAK,GAAGN,KAAK,CAACK,MAAM,GAAGE,MAAM,CAACC,UAAU,IAC7CP,IAAI,CAACQ,GAAG,GAAGT,KAAK,CAACU,MAAM,GAAG,CAAC,IAC3BT,IAAI,CAACU,MAAM,GAAGX,KAAK,CAACU,MAAM,GAAGH,MAAM,CAACK,WAAW,CAAC,EACtD;QACE;;MAGJvB,WAAW,CAAC,CAAC;QAAEG,CAAC;QAAEC;OAAG;QACjBD,CAAC,IAAIQ,KAAK,CAACK,MAAM;QACjBZ,CAAC,IAAIO,KAAK,CAACU,MAAM;QACjB,OAAO;UAAElB,CAAC;UAAEC;SAAG;OAClB,CAAC;KACL;IACDoB,SAAS;MACLlB,WAAW,CAAC,KAAK,CAAC;;GAEzB,CAAC;EAEF,OAAO;IACHP,QAAQ;IACRM,QAAQ;IACRoB,WAAW,EAAElB;GAChB;AACL;;;;"}
package/dist/index.css CHANGED
@@ -193,77 +193,6 @@
193
193
  @apply -mr-2 ml-0;
194
194
  }
195
195
 
196
- [data-taco='spinner'] svg circle {
197
- @apply flex;
198
- fill: transparent;
199
- stroke-width: 10px;
200
- animation: spinnerAnimation 1.5s cubic-bezier(0.46, 0.03, 0.52, 0.96) infinite both;
201
- transform-origin: 50% 50%;
202
- stroke-linecap: round;
203
- stroke-dasharray: 282.743343;
204
- stroke-dashoffset: 67.85840232;
205
- stroke: theme('colors.blue.DEFAULT');
206
- }
207
-
208
- @keyframes spinnerAnimation {
209
- 0% {
210
- stroke-dashoffset: 237.50440812;
211
- transform: rotate(0);
212
- }
213
- 50% {
214
- stroke-dashoffset: 67.85840232;
215
- transform: rotate(45deg);
216
- }
217
- 100% {
218
- stroke-dashoffset: 237.50440812;
219
- transform: rotate(1turn);
220
- }
221
- }
222
-
223
- @keyframes spinnerRotation {
224
- 0% {
225
- transform: rotate(0deg);
226
- }
227
- 100% {
228
- transform: rotate(1turn);
229
- }
230
- }
231
-
232
- .yt-grey-solid [data-taco='spinner'] svg circle,
233
- .yt-yellow-solid [data-taco='spinner'] svg circle {
234
- stroke: theme('colors.grey.darkest');
235
- }
236
-
237
- .yt-blue-solid [data-taco='spinner'] svg circle,
238
- .yt-green-solid [data-taco='spinner'] svg circle,
239
- .yt-red-solid [data-taco='spinner'] svg circle {
240
- stroke: theme('colors.white');
241
- }
242
-
243
- .yt-blue-inverted svg circle {
244
- stroke: theme('colors.blue.DEFAULT');
245
- }
246
-
247
- .yt-yellow-inverted svg circle {
248
- stroke: theme('colors.yellow.DEFAULT');
249
- }
250
-
251
- .yt-red-inverted svg circle {
252
- stroke: theme('colors.red.DEFAULT');
253
- }
254
-
255
- .yt-green-inverted svg circle {
256
- stroke: theme('colors.green.DEFAULT');
257
- }
258
-
259
- .yt-grey-inverted svg circle {
260
- stroke: theme('colors.grey.darkest');
261
- }
262
-
263
- [data-taco='toast'] > div [data-taco='button'] {
264
- @apply -mt-px py-0 px-2;
265
- }
266
-
267
196
  [data-taco='calendar'] .DayPicker-wrapper {
268
197
  @apply relative select-none flex-row;
269
198
  }
@@ -393,6 +322,73 @@
393
322
  @apply mr-2 mt-2 h-5 w-5 opacity-75;
394
323
  }
395
324
 
325
+ [data-taco='spinner'] svg circle {
326
+ @apply flex;
327
+ fill: transparent;
328
+ stroke-width: 10px;
329
+ animation: spinnerAnimation 1.5s cubic-bezier(0.46, 0.03, 0.52, 0.96) infinite both;
330
+ transform-origin: 50% 50%;
331
+ stroke-linecap: round;
332
+ stroke-dasharray: 282.743343;
333
+ stroke-dashoffset: 67.85840232;
334
+ stroke: theme('colors.blue.DEFAULT');
335
+ }
336
+
337
+ @keyframes spinnerAnimation {
338
+ 0% {
339
+ stroke-dashoffset: 237.50440812;
340
+ transform: rotate(0);
341
+ }
342
+ 50% {
343
+ stroke-dashoffset: 67.85840232;
344
+ transform: rotate(45deg);
345
+ }
346
+ 100% {
347
+ stroke-dashoffset: 237.50440812;
348
+ transform: rotate(1turn);
349
+ }
350
+ }
351
+
352
+ @keyframes spinnerRotation {
353
+ 0% {
354
+ transform: rotate(0deg);
355
+ }
356
+ 100% {
357
+ transform: rotate(1turn);
358
+ }
359
+ }
360
+
361
+ .yt-grey-solid [data-taco='spinner'] svg circle,
362
+ .yt-yellow-solid [data-taco='spinner'] svg circle {
363
+ stroke: theme('colors.grey.darkest');
364
+ }
365
+
366
+ .yt-blue-solid [data-taco='spinner'] svg circle,
367
+ .yt-green-solid [data-taco='spinner'] svg circle,
368
+ .yt-red-solid [data-taco='spinner'] svg circle {
369
+ stroke: theme('colors.white');
370
+ }
371
+
372
+ .yt-blue-inverted svg circle {
373
+ stroke: theme('colors.blue.DEFAULT');
374
+ }
375
+
376
+ .yt-yellow-inverted svg circle {
377
+ stroke: theme('colors.yellow.DEFAULT');
378
+ }
379
+
380
+ .yt-red-inverted svg circle {
381
+ stroke: theme('colors.red.DEFAULT');
382
+ }
383
+
384
+ .yt-green-inverted svg circle {
385
+ stroke: theme('colors.green.DEFAULT');
386
+ }
387
+
388
+ .yt-grey-inverted svg circle {
389
+ stroke: theme('colors.grey.darkest');
390
+ }
391
+
396
392
  [data-taco='combobox'] > [aria-expanded='true'] + [role='dialog'] > ul,
397
393
  [data-taco='combobox'] > [aria-expanded='true'] + [role='dialog'] > ul:hover {
398
394
  @apply border-blue;
@@ -507,6 +503,10 @@
507
503
  }
508
504
  }
509
505
 
506
+ [data-taco='toast'] > div [data-taco='button'] {
507
+ @apply -mt-px py-0 px-2;
508
+ }
509
+
510
510
  /* rows */
511
511
  .yt-table__row {
512
512
  @apply border-grey-light flex border-b;
package/dist/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export * from './components/Pagination/Pagination';
27
27
  export * from './components/Popover/Popover';
28
28
  export * from './components/Progress/Progress';
29
29
  export * from './components/Provider/Provider';
30
+ export * from './components/Provider/Localization';
30
31
  export * from './components/RadioGroup/RadioGroup';
31
32
  export * from './components/Select/Select';
32
33
  export * from './components/Select2/Select2';