@economic/taco 0.0.29-alpha.0 → 0.0.31-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -84
- package/dist/components/Datepicker/Datepicker.d.ts +1 -1
- package/dist/components/SearchInput/SearchInput.d.ts +1 -1
- package/dist/esm/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
- package/dist/esm/components/Badge/Badge.js.map +1 -1
- package/dist/esm/components/Banner/Banner.js.map +1 -1
- package/dist/esm/components/Banner/util.js +1 -1
- package/dist/esm/components/Banner/util.js.map +1 -1
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Button/util.js +19 -24
- package/dist/esm/components/Button/util.js.map +1 -1
- package/dist/esm/components/Calendar/Calendar.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/Combobox/useCombobox.js +67 -87
- package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
- package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/esm/components/Datepicker/useDatepicker.js +27 -34
- package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/components/Dialog/Context.js +4 -4
- package/dist/esm/components/Dialog/Context.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/Dialog/components/Content.js +39 -44
- package/dist/esm/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/components/Dialog/components/Drawer.js +3 -3
- package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
- package/dist/esm/components/Dialog/components/Extra.js +2 -2
- package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
- package/dist/esm/components/Dialog/components/Trigger.js +2 -2
- package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
- package/dist/esm/components/Field/Field.js.map +1 -1
- package/dist/esm/components/Form/Form.js.map +1 -1
- package/dist/esm/components/Group/Group.js.map +1 -1
- package/dist/esm/components/Hanger/Hanger.js.map +1 -1
- package/dist/esm/components/Icon/Icon.js.map +1 -1
- package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -1
- package/dist/esm/components/Icon/components/Accounting.js.map +1 -1
- package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -1
- package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -1
- package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -1
- package/dist/esm/components/Icon/components/Attach.js.map +1 -1
- package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -1
- package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -1
- package/dist/esm/components/Icon/components/Autotext.js.map +1 -1
- package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -1
- package/dist/esm/components/Icon/components/Basic.js.map +1 -1
- package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -1
- package/dist/esm/components/Icon/components/BellSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Book.js.map +1 -1
- package/dist/esm/components/Icon/components/Booking.js.map +1 -1
- package/dist/esm/components/Icon/components/Budget.js.map +1 -1
- package/dist/esm/components/Icon/components/Calendar.js.map +1 -1
- package/dist/esm/components/Icon/components/CashAccount.js.map +1 -1
- package/dist/esm/components/Icon/components/CashReports.js.map +1 -1
- package/dist/esm/components/Icon/components/Chat.js.map +1 -1
- package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -1
- package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Clamp.js.map +1 -1
- package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -1
- package/dist/esm/components/Icon/components/Close.js.map +1 -1
- package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -1
- package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -1
- package/dist/esm/components/Icon/components/Contacts.js.map +1 -1
- package/dist/esm/components/Icon/components/Copy.js.map +1 -1
- package/dist/esm/components/Icon/components/Courses.js.map +1 -1
- package/dist/esm/components/Icon/components/Credit.js.map +1 -1
- package/dist/esm/components/Icon/components/Delete.js.map +1 -1
- package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -1
- package/dist/esm/components/Icon/components/Depecriate.js.map +1 -1
- package/dist/esm/components/Icon/components/Developer.js.map +1 -1
- package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -1
- package/dist/esm/components/Icon/components/Document.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentError.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -1
- package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -1
- package/dist/esm/components/Icon/components/Download.js.map +1 -1
- package/dist/esm/components/Icon/components/Drag.js.map +1 -1
- package/dist/esm/components/Icon/components/ECopedia.js.map +1 -1
- package/dist/esm/components/Icon/components/ESignature.js.map +1 -1
- package/dist/esm/components/Icon/components/Edit.js.map +1 -1
- package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -1
- package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -1
- package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -1
- package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -1
- package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
- package/dist/esm/components/Icon/components/Envelope.js.map +1 -1
- package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -1
- package/dist/esm/components/Icon/components/ExpandView.js.map +1 -1
- package/dist/esm/components/Icon/components/Expenses.js.map +1 -1
- package/dist/esm/components/Icon/components/Export.js.map +1 -1
- package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -1
- package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -1
- package/dist/esm/components/Icon/components/Filter.js.map +1 -1
- package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Hash.js.map +1 -1
- package/dist/esm/components/Icon/components/Home.js.map +1 -1
- package/dist/esm/components/Icon/components/Images.js.map +1 -1
- package/dist/esm/components/Icon/components/Import.js.map +1 -1
- package/dist/esm/components/Icon/components/Inbox.js.map +1 -1
- package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -1
- package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -1
- package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -1
- package/dist/esm/components/Icon/components/Info.js.map +1 -1
- package/dist/esm/components/Icon/components/Inventory.js.map +1 -1
- package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -1
- package/dist/esm/components/Icon/components/JournalPro.js.map +1 -1
- package/dist/esm/components/Icon/components/Layout.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -1
- package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
- package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
- package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -1
- package/dist/esm/components/Icon/components/Line.js.map +1 -1
- package/dist/esm/components/Icon/components/List.js.map +1 -1
- package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -1
- package/dist/esm/components/Icon/components/ListSearch.js.map +1 -1
- package/dist/esm/components/Icon/components/LockOpen.js.map +1 -1
- package/dist/esm/components/Icon/components/Log.js.map +1 -1
- package/dist/esm/components/Icon/components/Market.js.map +1 -1
- package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -1
- package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -1
- package/dist/esm/components/Icon/components/Mileage.js.map +1 -1
- package/dist/esm/components/Icon/components/Minus.js.map +1 -1
- package/dist/esm/components/Icon/components/ModalResize.js.map +1 -1
- package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -1
- package/dist/esm/components/Icon/components/More.js.map +1 -1
- package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Move.js.map +1 -1
- package/dist/esm/components/Icon/components/NavigationList.js.map +1 -1
- package/dist/esm/components/Icon/components/Note.js.map +1 -1
- package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -1
- package/dist/esm/components/Icon/components/NoteRead.js.map +1 -1
- package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -1
- package/dist/esm/components/Icon/components/Period.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonChange.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -1
- package/dist/esm/components/Icon/components/PersonTick.js.map +1 -1
- package/dist/esm/components/Icon/components/Play.js.map +1 -1
- package/dist/esm/components/Icon/components/PlusCircle.js.map +1 -1
- package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -1
- package/dist/esm/components/Icon/components/Print.js.map +1 -1
- package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -1
- package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -1
- package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -1
- package/dist/esm/components/Icon/components/Projects.js.map +1 -1
- package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -1
- package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -1
- package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -1
- package/dist/esm/components/Icon/components/Reconciled.js.map +1 -1
- package/dist/esm/components/Icon/components/Refresh.js.map +1 -1
- package/dist/esm/components/Icon/components/Report.js.map +1 -1
- package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Restore.js.map +1 -1
- package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -1
- package/dist/esm/components/Icon/components/RotateRight.js.map +1 -1
- package/dist/esm/components/Icon/components/Sales.js.map +1 -1
- package/dist/esm/components/Icon/components/Search.js.map +1 -1
- package/dist/esm/components/Icon/components/SearchBold.js.map +1 -1
- package/dist/esm/components/Icon/components/Secure.js.map +1 -1
- package/dist/esm/components/Icon/components/SecureTick.js.map +1 -1
- package/dist/esm/components/Icon/components/Settings.js.map +1 -1
- package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowAll.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowLess.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowMore.js.map +1 -1
- package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -1
- package/dist/esm/components/Icon/components/Sliders.js.map +1 -1
- package/dist/esm/components/Icon/components/Smartpay.js.map +1 -1
- package/dist/esm/components/Icon/components/SortBy.js.map +1 -1
- package/dist/esm/components/Icon/components/Spinner.js.map +1 -1
- package/dist/esm/components/Icon/components/Star.js.map +1 -1
- package/dist/esm/components/Icon/components/StarSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -1
- package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -1
- package/dist/esm/components/Icon/components/Tag.js.map +1 -1
- package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -1
- package/dist/esm/components/Icon/components/Templates.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -1
- package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -1
- package/dist/esm/components/Icon/components/Tick.js.map +1 -1
- package/dist/esm/components/Icon/components/TickCircle.js.map +1 -1
- package/dist/esm/components/Icon/components/Time.js.map +1 -1
- package/dist/esm/components/Icon/components/Transfer.js.map +1 -1
- package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -1
- package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -1
- package/dist/esm/components/Icon/components/Undock.js.map +1 -1
- package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -1
- package/dist/esm/components/Icon/components/Warning.js.map +1 -1
- package/dist/esm/components/Icon/components/Webshop.js.map +1 -1
- package/dist/esm/components/Icon/components/Website.js.map +1 -1
- package/dist/esm/components/Icon/components/Workflow.js.map +1 -1
- package/dist/esm/components/Icon/components/Zoom.js.map +1 -1
- package/dist/esm/components/Icon/components/index.js +4 -4
- package/dist/esm/components/Icon/components/index.js.map +1 -1
- package/dist/esm/components/IconButton/IconButton.js.map +1 -1
- package/dist/esm/components/Input/Input.js.map +1 -1
- package/dist/esm/components/Input/util.js +2 -2
- package/dist/esm/components/Input/util.js.map +1 -1
- package/dist/esm/components/Listbox/Listbox.js.map +1 -1
- package/dist/esm/components/Listbox/ScrollableList.js +64 -83
- package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
- package/dist/esm/components/Listbox/useListbox.js +51 -60
- package/dist/esm/components/Listbox/useListbox.js.map +1 -1
- package/dist/esm/components/Listbox/useMultiListbox.js +63 -91
- package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
- package/dist/esm/components/Listbox/useTypeahead.js +10 -9
- package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
- package/dist/esm/components/Listbox/util.js +48 -84
- package/dist/esm/components/Listbox/util.js.map +1 -1
- package/dist/esm/components/Menu/Context.js +2 -2
- package/dist/esm/components/Menu/Context.js.map +1 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/components/Checkbox.js +8 -9
- package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
- package/dist/esm/components/Menu/components/Content.js +10 -13
- package/dist/esm/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/components/Menu/components/Header.js +4 -4
- package/dist/esm/components/Menu/components/Header.js.map +1 -1
- package/dist/esm/components/Menu/components/Item.js +39 -40
- package/dist/esm/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/components/Menu/components/Link.js +10 -11
- package/dist/esm/components/Menu/components/Link.js.map +1 -1
- package/dist/esm/components/Menu/components/RadioGroup.js +16 -18
- package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
- package/dist/esm/components/Menu/components/Separator.js +4 -4
- package/dist/esm/components/Menu/components/Separator.js.map +1 -1
- package/dist/esm/components/Menu/components/Trigger.js +5 -5
- package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
- package/dist/esm/components/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/Pagination/PageNumbers.js +23 -28
- package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/usePagination.js +7 -21
- package/dist/esm/components/Pagination/usePagination.js.map +1 -1
- package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
- package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Popover/Primitives.js +7 -8
- package/dist/esm/components/Popover/Primitives.js.map +1 -1
- package/dist/esm/components/Progress/Progress.js.map +1 -1
- package/dist/esm/components/Provider/Provider.js.map +1 -1
- package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Select/useSelect.js +64 -85
- package/dist/esm/components/Select/useSelect.js.map +1 -1
- package/dist/esm/components/Spinner/Spinner.js.map +1 -1
- package/dist/esm/components/Switch/Switch.js.map +1 -1
- package/dist/esm/components/Table/components/BaseTable.js +23 -30
- package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
- package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
- package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
- package/dist/esm/components/Table/components/Table.js +18 -25
- package/dist/esm/components/Table/components/Table.js.map +1 -1
- package/dist/esm/components/Table/components/WindowedTable.js +88 -104
- package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +80 -90
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
- package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
- package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
- package/dist/esm/components/Table/hooks/useTable.js +119 -141
- package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +12 -15
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
- package/dist/esm/components/Table/util/renderColumn.js +10 -10
- package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
- package/dist/esm/components/Table/util/renderRow.js +37 -46
- package/dist/esm/components/Table/util/renderRow.js.map +1 -1
- package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
- package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
- package/dist/esm/components/Table/util/sortTypes.js +23 -31
- package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
- package/dist/esm/components/Table/util.js +29 -41
- package/dist/esm/components/Table/util.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Textarea/Textarea.js.map +1 -1
- package/dist/esm/components/Toast/Toast.js +20 -21
- package/dist/esm/components/Toast/Toast.js.map +1 -1
- package/dist/esm/components/Toast/Toaster.js.map +1 -1
- package/dist/esm/components/Toast/util.js +2 -2
- package/dist/esm/components/Toast/util.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Tour/Tour.js.map +1 -1
- package/dist/esm/components/Treeview/Treeview.js.map +1 -1
- package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/esm/index.css +665 -662
- package/dist/esm/index.js +1 -1
- package/dist/esm/primitives/Button.js +9 -13
- package/dist/esm/primitives/Button.js.map +1 -1
- package/dist/esm/utils/date.js.map +1 -1
- package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/esm/utils/hooks/useDraggable.js +16 -18
- package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
- package/dist/esm/utils/hooks/useDropTarget.js +7 -10
- package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
- package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
- package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
- package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
- package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
- package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
- package/dist/esm/utils/hooks/useTimer.js +9 -17
- package/dist/esm/utils/hooks/useTimer.js.map +1 -1
- package/dist/esm/utils/input.js +7 -11
- package/dist/esm/utils/input.js.map +1 -1
- package/dist/esm/utils/mergeRefs.js +2 -2
- package/dist/esm/utils/mergeRefs.js.map +1 -1
- package/dist/esm/utils/taillwind.js +2 -2
- package/dist/esm/utils/taillwind.js.map +1 -1
- package/dist/index.css +665 -662
- package/dist/taco.cjs.development.js +1497 -1828
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +3 -3
- package/plugins/tailwindcss-aria-attributes.js +73 -73
- package/tailwind.config.js +297 -297
@@ -1,47 +1,25 @@
|
|
1
|
-
import { extends as _extends, objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import React__default from 'react';
|
3
2
|
import { getId } from './ScrollableList.js';
|
4
3
|
import { setInputValueByRef as setInputValueByRef$1 } from '../../utils/input.js';
|
5
4
|
|
6
|
-
|
7
|
-
var setInputValueByRef = function setInputValueByRef(input, value, event) {
|
8
|
-
if (event === void 0) {
|
9
|
-
event = 'change';
|
10
|
-
}
|
11
|
-
|
5
|
+
const setInputValueByRef = (input, value, event = 'change') => {
|
12
6
|
setInputValueByRef$1(input, value !== undefined && value !== null ? String(value) : '', event);
|
13
7
|
};
|
14
8
|
|
15
|
-
|
16
|
-
return value === undefined || value === null ? '' : String(value);
|
17
|
-
};
|
9
|
+
const getValue = value => value === undefined || value === null ? '' : String(value);
|
18
10
|
|
19
|
-
|
20
|
-
|
21
|
-
return getValue(option.value) === getValue(value);
|
22
|
-
});
|
11
|
+
const getIndexFromValue = (data, value) => {
|
12
|
+
const index = data.findIndex(option => getValue(option.value) === getValue(value));
|
23
13
|
return index > -1 ? index : undefined;
|
24
14
|
};
|
25
|
-
|
15
|
+
const getSelectedIndexesFromValue = (data, value) => {
|
26
16
|
if (typeof value !== 'string') return [];
|
27
|
-
return value.split(',').map(
|
28
|
-
return data.findIndex(function (o) {
|
29
|
-
return String(o.value) === v;
|
30
|
-
});
|
31
|
-
}).filter(function (v) {
|
32
|
-
return v !== -1;
|
33
|
-
});
|
17
|
+
return value.split(',').map(v => data.findIndex(o => String(o.value) === v)).filter(v => v !== -1);
|
34
18
|
};
|
35
|
-
|
36
|
-
return data.find(
|
37
|
-
return getValue(option.value) === getValue(value);
|
38
|
-
});
|
19
|
+
const findByValue = (data, value) => {
|
20
|
+
return data.find(option => getValue(option.value) === getValue(value));
|
39
21
|
};
|
40
|
-
|
41
|
-
if (strategy === void 0) {
|
42
|
-
strategy = 'includes';
|
43
|
-
}
|
44
|
-
|
22
|
+
const searchForString = (child, value, strategy = 'includes') => {
|
45
23
|
try {
|
46
24
|
var _child$props;
|
47
25
|
|
@@ -49,9 +27,7 @@ var searchForString = function searchForString(child, value, strategy) {
|
|
49
27
|
var _child$props2, _child$props3;
|
50
28
|
|
51
29
|
if (Array.isArray((_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.children)) {
|
52
|
-
return !!child.props.children.find(
|
53
|
-
return searchForString(subChild, value, strategy);
|
54
|
-
});
|
30
|
+
return !!child.props.children.find(subChild => searchForString(subChild, value, strategy));
|
55
31
|
}
|
56
32
|
|
57
33
|
return searchForString((_child$props3 = child.props) === null || _child$props3 === void 0 ? void 0 : _child$props3.children, value, strategy);
|
@@ -60,17 +36,13 @@ var searchForString = function searchForString(child, value, strategy) {
|
|
60
36
|
|
61
37
|
return child.toString().toLowerCase()[strategy]((_String = String(value)) === null || _String === void 0 ? void 0 : _String.toLowerCase());
|
62
38
|
}
|
63
|
-
} catch
|
39
|
+
} catch {
|
64
40
|
return false;
|
65
41
|
}
|
66
42
|
};
|
67
43
|
|
68
|
-
|
69
|
-
|
70
|
-
lastIndex = data.length;
|
71
|
-
}
|
72
|
-
|
73
|
-
var index = data.slice(firstIndex, lastIndex).findIndex(function (option) {
|
44
|
+
const getIndexInRangeByValue = (data, query, firstIndex, lastIndex = data.length) => {
|
45
|
+
const index = data.slice(firstIndex, lastIndex).findIndex(option => {
|
74
46
|
if (option.disabled) {
|
75
47
|
return false;
|
76
48
|
}
|
@@ -80,9 +52,9 @@ var getIndexInRangeByValue = function getIndexInRangeByValue(data, query, firstI
|
|
80
52
|
return index > -1 ? index + firstIndex : -1;
|
81
53
|
};
|
82
54
|
|
83
|
-
|
84
|
-
|
85
|
-
|
55
|
+
const findNextIndexByValue = (data, query, activeIndex) => {
|
56
|
+
const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;
|
57
|
+
let index = getIndexInRangeByValue(data, query, firstIndex);
|
86
58
|
|
87
59
|
if (index === -1) {
|
88
60
|
index = getIndexInRangeByValue(data, query, 0, activeIndex);
|
@@ -90,76 +62,71 @@ var findNextIndexByValue = function findNextIndexByValue(data, query, activeInde
|
|
90
62
|
|
91
63
|
return index;
|
92
64
|
};
|
93
|
-
|
65
|
+
const getActiveDescendant = (data, currentIndex, id) => {
|
94
66
|
return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;
|
95
67
|
};
|
96
|
-
|
97
|
-
return React__default.useMemo(
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
items.push(
|
68
|
+
const useFlattenedData = data => {
|
69
|
+
return React__default.useMemo(() => {
|
70
|
+
const items = [];
|
71
|
+
|
72
|
+
const flatten = (item, path, parentPath, parentDisabled) => {
|
73
|
+
const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;
|
74
|
+
const isItemDisabled = parentDisabled || item.disabled;
|
75
|
+
items.push({ ...item,
|
104
76
|
disabled: isItemDisabled,
|
105
77
|
path: currentPath,
|
106
78
|
hasChildren: !!item.children
|
107
|
-
})
|
79
|
+
});
|
108
80
|
|
109
81
|
if (item.children) {
|
110
|
-
item.children.forEach(
|
111
|
-
return flatten(childItem, childPath, currentPath, isItemDisabled);
|
112
|
-
});
|
82
|
+
item.children.forEach((childItem, childPath) => flatten(childItem, childPath, currentPath, isItemDisabled));
|
113
83
|
}
|
114
84
|
};
|
115
85
|
|
116
|
-
data.forEach(
|
86
|
+
data.forEach((item, index) => {
|
117
87
|
flatten(item, index);
|
118
88
|
});
|
119
89
|
return items;
|
120
90
|
}, [data]);
|
121
91
|
};
|
122
|
-
|
92
|
+
const sanitizeItem = item => {
|
123
93
|
if (item) {
|
124
|
-
|
125
|
-
|
94
|
+
const {
|
95
|
+
hasChildren: _1,
|
96
|
+
path: _2,
|
97
|
+
...rest
|
98
|
+
} = item;
|
126
99
|
return rest;
|
127
100
|
}
|
128
101
|
|
129
102
|
return undefined;
|
130
103
|
};
|
131
|
-
|
104
|
+
const getOptionParents = (data, path) => {
|
132
105
|
var _path$split;
|
133
106
|
|
134
|
-
|
107
|
+
const indexes = (_path$split = path === null || path === void 0 ? void 0 : path.split('.')) !== null && _path$split !== void 0 ? _path$split : [];
|
135
108
|
|
136
109
|
if (indexes.length > 1) {
|
137
110
|
// we don't want to map the current item
|
138
111
|
indexes.pop(); // we need to rebuild the path as we map
|
139
112
|
|
140
|
-
|
141
|
-
return indexes.map(
|
113
|
+
let lastPath;
|
114
|
+
return indexes.map(i => {
|
142
115
|
lastPath = lastPath ? [lastPath, i].join('.') : i;
|
143
|
-
return sanitizeItem(data.find(
|
144
|
-
return i.path === lastPath;
|
145
|
-
}));
|
116
|
+
return sanitizeItem(data.find(i => i.path === lastPath));
|
146
117
|
});
|
147
118
|
}
|
148
119
|
|
149
120
|
return null;
|
150
121
|
};
|
151
|
-
|
152
|
-
if (value === void 0) {
|
153
|
-
value = '';
|
154
|
-
}
|
155
|
-
|
122
|
+
const filterData = (data, value = '') => {
|
156
123
|
if (value === '' || value === null) {
|
157
124
|
return data;
|
158
125
|
}
|
159
126
|
|
160
|
-
|
127
|
+
const filteredOptionValues = new Set();
|
161
128
|
|
162
|
-
|
129
|
+
const shouldFilterOption = option => {
|
163
130
|
if (option.disabled) {
|
164
131
|
return false;
|
165
132
|
}
|
@@ -167,22 +134,19 @@ var filterData = function filterData(data, value) {
|
|
167
134
|
return searchForString(option.text, String(value));
|
168
135
|
};
|
169
136
|
|
170
|
-
data.forEach(
|
137
|
+
data.forEach(option => {
|
171
138
|
if (shouldFilterOption(option)) {
|
172
|
-
|
139
|
+
const parents = getOptionParents(data, option.path);
|
173
140
|
filteredOptionValues.add(option.value);
|
174
141
|
|
175
142
|
if (parents !== null) {
|
176
|
-
parents.forEach(
|
177
|
-
return filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value);
|
178
|
-
});
|
143
|
+
parents.forEach(option => filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value));
|
179
144
|
}
|
180
145
|
}
|
181
146
|
});
|
182
|
-
return data.filter(
|
183
|
-
|
184
|
-
|
185
|
-
});
|
147
|
+
return data.filter(({
|
148
|
+
value
|
149
|
+
}) => filteredOptionValues.has(value));
|
186
150
|
};
|
187
151
|
|
188
152
|
export { filterData, findByValue, findNextIndexByValue, getActiveDescendant, getIndexFromValue, getOptionParents, getSelectedIndexesFromValue, sanitizeItem, searchForString, setInputValueByRef, useFlattenedData };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\nimport { ScrollableListItem, ScrollableListItemValue, getId } from './ScrollableList';\nimport { setInputValueByRef as setInputValueByRefBase } from '../../utils/input';\n\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: ScrollableListItemValue, event = 'change'): void => {\n setInputValueByRefBase(input, value !== undefined && value !== null ? String(value) : '', event);\n};\n\nconst getValue = (value: ScrollableListItemValue | undefined): string =>\n value === undefined || value === null ? '' : String(value);\n\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\n return index > -1 ? index : undefined;\n};\n\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\n if (typeof value !== 'string') return [];\n\n return value\n .split(',')\n .map(v => data.findIndex(o => String(o.value) === v))\n .filter(v => v !== -1);\n};\n\nexport const findByValue = (data: ScrollableListItem[], value: ScrollableListItemValue): ScrollableListItem | undefined => {\n return data.find(option => getValue(option.value) === getValue(value));\n};\n\nexport const searchForString = (child: JSX.Element | string, value: string, strategy = 'includes'): boolean => {\n try {\n if (typeof child !== 'string' && child.props?.children) {\n if (Array.isArray(child.props?.children)) {\n return !!child.props.children.find((subChild: JSX.Element | string) =>\n searchForString(subChild, value, strategy)\n );\n }\n\n return searchForString(child.props?.children, value, strategy);\n } else {\n return child.toString().toLowerCase()[strategy](String(value)?.toLowerCase());\n }\n } catch {\n return false;\n }\n};\n\nconst getIndexInRangeByValue = (\n data: ScrollableListItem[],\n query: string,\n firstIndex: number,\n lastIndex: number = data.length\n): number => {\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, query, 'startsWith');\n });\n\n return index > -1 ? index + firstIndex : -1;\n};\n\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\n let index = getIndexInRangeByValue(data, query, firstIndex);\n\n if (index === -1) {\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\n }\n\n return index;\n};\n\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\n};\n\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\n return React.useMemo(() => {\n const items: ScrollableListItem[] = [];\n\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\n const isItemDisabled = parentDisabled || item.disabled;\n\n items.push({\n ...item,\n disabled: isItemDisabled,\n path: currentPath,\n hasChildren: !!item.children,\n });\n\n if (item.children) {\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\n flatten(childItem, childPath, currentPath, isItemDisabled)\n );\n }\n };\n\n data.forEach((item, index) => {\n flatten(item, index);\n });\n\n return items;\n }, [data]);\n};\n\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\n if (item) {\n const { hasChildren: _1, path: _2, ...rest } = item;\n return rest;\n }\n\n return undefined;\n};\n\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\n const indexes = path?.split('.') ?? [];\n\n if (indexes.length > 1) {\n // we don't want to map the current item\n indexes.pop();\n // we need to rebuild the path as we map\n let lastPath: string;\n\n return indexes.map(i => {\n lastPath = lastPath ? [lastPath, i].join('.') : i;\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\n });\n }\n\n return null;\n};\n\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\n if (value === '' || value === null) {\n return data;\n }\n\n const filteredOptionValues = new Set();\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\n if (option.disabled) {\n return false;\n }\n\n return searchForString(option.text, String(value));\n };\n\n data.forEach(option => {\n if (shouldFilterOption(option)) {\n const parents = getOptionParents(data, option.path);\n\n filteredOptionValues.add(option.value);\n\n if (parents !== null) {\n parents.forEach(option => filteredOptionValues.add(option?.value));\n }\n }\n });\n\n return data.filter(({ value }) => filteredOptionValues.has(value));\n};\n"],"names":["setInputValueByRef","input","value","event","setInputValueByRefBase","undefined","String","getValue","getIndexFromValue","data","index","findIndex","option","getSelectedIndexesFromValue","split","map","v","o","filter","findByValue","find","searchForString","child","strategy","props","children","Array","isArray","subChild","toString","toLowerCase","getIndexInRangeByValue","query","firstIndex","lastIndex","length","slice","disabled","text","findNextIndexByValue","activeIndex","getActiveDescendant","currentIndex","id","getId","useFlattenedData","React","useMemo","items","flatten","item","path","parentPath","parentDisabled","currentPath","isItemDisabled","push","hasChildren","forEach","childItem","childPath","sanitizeItem","rest","getOptionParents","indexes","pop","lastPath","i","join","filterData","filteredOptionValues","Set","shouldFilterOption","parents","add","has"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\r\nimport { ScrollableListItem, ScrollableListItemValue, getId } from './ScrollableList';\r\nimport { setInputValueByRef as setInputValueByRefBase } from '../../utils/input';\r\n\r\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: ScrollableListItemValue, event = 'change'): void => {\r\n setInputValueByRefBase(input, value !== undefined && value !== null ? String(value) : '', event);\r\n};\r\n\r\nconst getValue = (value: ScrollableListItemValue | undefined): string =>\r\n value === undefined || value === null ? '' : String(value);\r\n\r\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\r\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\r\n return index > -1 ? index : undefined;\r\n};\r\n\r\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\r\n if (typeof value !== 'string') return [];\r\n\r\n return value\r\n .split(',')\r\n .map(v => data.findIndex(o => String(o.value) === v))\r\n .filter(v => v !== -1);\r\n};\r\n\r\nexport const findByValue = (data: ScrollableListItem[], value: ScrollableListItemValue): ScrollableListItem | undefined => {\r\n return data.find(option => getValue(option.value) === getValue(value));\r\n};\r\n\r\nexport const searchForString = (child: JSX.Element | string, value: string, strategy = 'includes'): boolean => {\r\n try {\r\n if (typeof child !== 'string' && child.props?.children) {\r\n if (Array.isArray(child.props?.children)) {\r\n return !!child.props.children.find((subChild: JSX.Element | string) =>\r\n searchForString(subChild, value, strategy)\r\n );\r\n }\r\n\r\n return searchForString(child.props?.children, value, strategy);\r\n } else {\r\n return child.toString().toLowerCase()[strategy](String(value)?.toLowerCase());\r\n }\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst getIndexInRangeByValue = (\r\n data: ScrollableListItem[],\r\n query: string,\r\n firstIndex: number,\r\n lastIndex: number = data.length\r\n): number => {\r\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\r\n if (option.disabled) {\r\n return false;\r\n }\r\n\r\n return searchForString(option.text, query, 'startsWith');\r\n });\r\n\r\n return index > -1 ? index + firstIndex : -1;\r\n};\r\n\r\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\r\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\r\n let index = getIndexInRangeByValue(data, query, firstIndex);\r\n\r\n if (index === -1) {\r\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\r\n }\r\n\r\n return index;\r\n};\r\n\r\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\r\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\r\n};\r\n\r\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\r\n return React.useMemo(() => {\r\n const items: ScrollableListItem[] = [];\r\n\r\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\r\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\r\n const isItemDisabled = parentDisabled || item.disabled;\r\n\r\n items.push({\r\n ...item,\r\n disabled: isItemDisabled,\r\n path: currentPath,\r\n hasChildren: !!item.children,\r\n });\r\n\r\n if (item.children) {\r\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\r\n flatten(childItem, childPath, currentPath, isItemDisabled)\r\n );\r\n }\r\n };\r\n\r\n data.forEach((item, index) => {\r\n flatten(item, index);\r\n });\r\n\r\n return items;\r\n }, [data]);\r\n};\r\n\r\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\r\n if (item) {\r\n const { hasChildren: _1, path: _2, ...rest } = item;\r\n return rest;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\r\n const indexes = path?.split('.') ?? [];\r\n\r\n if (indexes.length > 1) {\r\n // we don't want to map the current item\r\n indexes.pop();\r\n // we need to rebuild the path as we map\r\n let lastPath: string;\r\n\r\n return indexes.map(i => {\r\n lastPath = lastPath ? [lastPath, i].join('.') : i;\r\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\r\n });\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\r\n if (value === '' || value === null) {\r\n return data;\r\n }\r\n\r\n const filteredOptionValues = new Set();\r\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\r\n if (option.disabled) {\r\n return false;\r\n }\r\n\r\n return searchForString(option.text, String(value));\r\n };\r\n\r\n data.forEach(option => {\r\n if (shouldFilterOption(option)) {\r\n const parents = getOptionParents(data, option.path);\r\n\r\n filteredOptionValues.add(option.value);\r\n\r\n if (parents !== null) {\r\n parents.forEach(option => filteredOptionValues.add(option?.value));\r\n }\r\n }\r\n });\r\n\r\n return data.filter(({ value }) => filteredOptionValues.has(value));\r\n};\r\n"],"names":["setInputValueByRef","input","value","event","setInputValueByRefBase","undefined","String","getValue","getIndexFromValue","data","index","findIndex","option","getSelectedIndexesFromValue","split","map","v","o","filter","findByValue","find","searchForString","child","strategy","props","children","Array","isArray","subChild","toString","toLowerCase","getIndexInRangeByValue","query","firstIndex","lastIndex","length","slice","disabled","text","findNextIndexByValue","activeIndex","getActiveDescendant","currentIndex","id","getId","useFlattenedData","React","useMemo","items","flatten","item","path","parentPath","parentDisabled","currentPath","isItemDisabled","push","hasChildren","forEach","childItem","childPath","sanitizeItem","_1","_2","rest","getOptionParents","indexes","pop","lastPath","i","join","filterData","filteredOptionValues","Set","shouldFilterOption","parents","add","has"],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createContext, useContext } from 'react';
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
const MenuContext = /*#__PURE__*/createContext(undefined);
|
4
|
+
const useCurrentMenu = () => {
|
5
5
|
return useContext(MenuContext);
|
6
6
|
};
|
7
7
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Context.js","sources":["../../../../src/components/Menu/Context.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Appearance } from '../..';\n\nexport const MenuContext = React.createContext<\n | {\n appearance?: Appearance;\n setAppearance: (appearance: Appearance) => void;\n indented: boolean;\n registerIndentation: () => void;\n minWidth?: number;\n setMinWidth: (width: number) => void;\n close: () => void;\n }\n | undefined\n>(undefined);\n\nexport const useCurrentMenu = () => {\n return React.useContext(MenuContext);\n};\n"],"names":["MenuContext","React","undefined","useCurrentMenu"],"mappings":";;
|
1
|
+
{"version":3,"file":"Context.js","sources":["../../../../src/components/Menu/Context.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Appearance } from '../..';\r\n\r\nexport const MenuContext = React.createContext<\r\n | {\r\n appearance?: Appearance;\r\n setAppearance: (appearance: Appearance) => void;\r\n indented: boolean;\r\n registerIndentation: () => void;\r\n minWidth?: number;\r\n setMinWidth: (width: number) => void;\r\n close: () => void;\r\n }\r\n | undefined\r\n>(undefined);\r\n\r\nexport const useCurrentMenu = () => {\r\n return React.useContext(MenuContext);\r\n};\r\n"],"names":["MenuContext","React","undefined","useCurrentMenu"],"mappings":";;MAGaA,WAAW,gBAAGC,aAAA,CAWzBC,SAXyB;MAadC,cAAc,GAAG;AAC1B,SAAOF,UAAA,CAAiBD,WAAjB,CAAP;AACH;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { MenuContext } from './Context';\nimport { Content } from './components/Content';\nimport { Item } from './components/Item';\nimport { Link } from './components/Link';\nimport { Trigger } from './components/Trigger';\nimport { Checkbox } from './components/Checkbox';\nimport { RadioGroup } from './components/RadioGroup';\nimport { Separator } from './components/Separator';\nimport { Header } from './components/Header';\nimport { Appearance } from '../..';\n\nexport type MenuProps = {\n /** Appearance will change the style of the button */\n appearance?: Appearance;\n children: React.ReactNode;\n id?: string;\n /** A trigger to be used for the menu, should not be set if `children` already contains a trigger */\n trigger?: JSX.Element;\n};\n\nexport const Menu = (externalProps: MenuProps): JSX.Element => {\n const { appearance: externalAppearance, children, trigger, ...props } = externalProps;\n const [open, setOpen] = React.useState(false);\n const [appearance, setAppearance] = React.useState<Appearance>(externalAppearance ?? 'default');\n const [indented, setIndented] = React.useState(false);\n const [minWidth, setMinWidth] = React.useState<number | undefined>(undefined);\n\n const context = React.useMemo(\n () => ({\n appearance,\n setAppearance: (appearance: Appearance) => setAppearance(appearance),\n indented,\n registerIndentation: () => setIndented(true),\n minWidth,\n setMinWidth: (width: number) => setMinWidth(width),\n close: () => setOpen(false),\n }),\n [indented, minWidth, appearance]\n );\n\n return (\n <MenuContext.Provider value={context}>\n <DropdownMenuPrimitive.Root {...props} modal={false} open={open} onOpenChange={setOpen}>\n {trigger && <Trigger>{trigger}</Trigger>}\n {children}\n </DropdownMenuPrimitive.Root>\n </MenuContext.Provider>\n );\n};\nMenu.Trigger = Trigger;\nMenu.Content = Content;\nMenu.Item = Item;\nMenu.Link = Link;\nMenu.Checkbox = Checkbox;\nMenu.Separator = Separator;\nMenu.Header = Header;\nMenu.RadioGroup = RadioGroup;\n"],"names":["Menu","externalProps","externalAppearance","appearance","children","trigger","props","React","open","setOpen","setAppearance","indented","setIndented","undefined","minWidth","setMinWidth","context","registerIndentation","width","close","MenuContext","Provider","value","DropdownMenuPrimitive","modal","onOpenChange","Trigger","Content","Item","Link","Checkbox","Separator","Header","RadioGroup"],"mappings":";;;;;;;;;;;;;;IAsBaA,IAAI,GAAG,SAAPA,IAAO,CAACC,aAAD;AAChB,MAAoBC,kBAApB,GAAwED,aAAxE,CAAQE,UAAR;AAAA,MAAwCC,QAAxC,GAAwEH,aAAxE,CAAwCG,QAAxC;AAAA,MAAkDC,OAAlD,GAAwEJ,aAAxE,CAAkDI,OAAlD;AAAA,MAA8DC,KAA9D,iCAAwEL,aAAxE;;AACA,wBAAwBM,QAAA,CAAe,KAAf,CAAxB;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AACA,yBAAoCF,QAAA,CAA2BL,kBAA3B,aAA2BA,kBAA3B,cAA2BA,kBAA3B,GAAiD,SAAjD,CAApC;AAAA,MAAOC,UAAP;AAAA,MAAmBO,cAAnB;;AACA,yBAAgCH,QAAA,CAAe,KAAf,CAAhC;AAAA,MAAOI,QAAP;AAAA,MAAiBC,WAAjB;;AACA,yBAAgCL,QAAA,CAAmCM,SAAnC,CAAhC;AAAA,MAAOC,QAAP;AAAA,MAAiBC,YAAjB;;AAEA,MAAMC,OAAO,GAAGT,OAAA,CACZ;AAAA,WAAO;AACHJ,MAAAA,UAAU,EAAVA,UADG;AAEHO,MAAAA,aAAa,EAAE,uBAACP,UAAD;AAAA,eAA4BO,cAAa,CAACP,UAAD,CAAzC;AAAA,OAFZ;AAGHQ,MAAAA,QAAQ,EAARA,QAHG;AAIHM,MAAAA,mBAAmB,EAAE;AAAA,eAAML,WAAW,CAAC,IAAD,CAAjB;AAAA,OAJlB;AAKHE,MAAAA,QAAQ,EAARA,QALG;AAMHC,MAAAA,WAAW,EAAE,qBAACG,KAAD;AAAA,eAAmBH,YAAW,CAACG,KAAD,CAA9B;AAAA,OANV;AAOHC,MAAAA,KAAK,EAAE;AAAA,eAAMV,OAAO,CAAC,KAAD,CAAb;AAAA;AAPJ,KAAP;AAAA,GADY,EAUZ,CAACE,QAAD,EAAWG,QAAX,EAAqBX,UAArB,CAVY,CAAhB;AAaA,SACII,aAAA,CAACa,WAAW,CAACC,QAAb;AAAsBC,IAAAA,KAAK,EAAEN;GAA7B,EACIT,aAAA,CAACgB,IAAD,oBAAgCjB;AAAOkB,IAAAA,KAAK,EAAE;AAAOhB,IAAAA,IAAI,EAAEA;AAAMiB,IAAAA,YAAY,EAAEhB;IAA/E,EACKJ,OAAO,IAAIE,aAAA,CAACmB,OAAD,MAAA,EAAUrB,OAAV,CADhB,EAEKD,QAFL,CADJ,CADJ;AAQH;AACDJ,IAAI,CAAC0B,OAAL,GAAeA,OAAf;AACA1B,IAAI,CAAC2B,OAAL,GAAeA,OAAf;AACA3B,IAAI,CAAC4B,IAAL,GAAYA,IAAZ;AACA5B,IAAI,CAAC6B,IAAL,GAAYA,IAAZ;AACA7B,IAAI,CAAC8B,QAAL,GAAgBA,QAAhB;AACA9B,IAAI,CAAC+B,SAAL,GAAiBA,SAAjB;AACA/B,IAAI,CAACgC,MAAL,GAAcA,MAAd;AACAhC,IAAI,CAACiC,UAAL,GAAkBA,UAAlB;;;;"}
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { MenuContext } from './Context';\r\nimport { Content } from './components/Content';\r\nimport { Item } from './components/Item';\r\nimport { Link } from './components/Link';\r\nimport { Trigger } from './components/Trigger';\r\nimport { Checkbox } from './components/Checkbox';\r\nimport { RadioGroup } from './components/RadioGroup';\r\nimport { Separator } from './components/Separator';\r\nimport { Header } from './components/Header';\r\nimport { Appearance } from '../..';\r\n\r\nexport type MenuProps = {\r\n /** Appearance will change the style of the button */\r\n appearance?: Appearance;\r\n children: React.ReactNode;\r\n id?: string;\r\n /** A trigger to be used for the menu, should not be set if `children` already contains a trigger */\r\n trigger?: JSX.Element;\r\n};\r\n\r\nexport const Menu = (externalProps: MenuProps): JSX.Element => {\r\n const { appearance: externalAppearance, children, trigger, ...props } = externalProps;\r\n const [open, setOpen] = React.useState(false);\r\n const [appearance, setAppearance] = React.useState<Appearance>(externalAppearance ?? 'default');\r\n const [indented, setIndented] = React.useState(false);\r\n const [minWidth, setMinWidth] = React.useState<number | undefined>(undefined);\r\n\r\n const context = React.useMemo(\r\n () => ({\r\n appearance,\r\n setAppearance: (appearance: Appearance) => setAppearance(appearance),\r\n indented,\r\n registerIndentation: () => setIndented(true),\r\n minWidth,\r\n setMinWidth: (width: number) => setMinWidth(width),\r\n close: () => setOpen(false),\r\n }),\r\n [indented, minWidth, appearance]\r\n );\r\n\r\n return (\r\n <MenuContext.Provider value={context}>\r\n <DropdownMenuPrimitive.Root {...props} modal={false} open={open} onOpenChange={setOpen}>\r\n {trigger && <Trigger>{trigger}</Trigger>}\r\n {children}\r\n </DropdownMenuPrimitive.Root>\r\n </MenuContext.Provider>\r\n );\r\n};\r\nMenu.Trigger = Trigger;\r\nMenu.Content = Content;\r\nMenu.Item = Item;\r\nMenu.Link = Link;\r\nMenu.Checkbox = Checkbox;\r\nMenu.Separator = Separator;\r\nMenu.Header = Header;\r\nMenu.RadioGroup = RadioGroup;\r\n"],"names":["Menu","externalProps","externalAppearance","appearance","children","trigger","props","React","open","setOpen","setAppearance","indented","setIndented","undefined","minWidth","setMinWidth","context","registerIndentation","width","close","MenuContext","Provider","value","DropdownMenuPrimitive","modal","onOpenChange","Trigger","Content","Item","Link","Checkbox","Separator","Header","RadioGroup"],"mappings":";;;;;;;;;;;;;;IAsBaA,IAAI,GAAG,SAAPA,IAAO,CAACC,aAAD;AAChB,MAAoBC,kBAApB,GAAwED,aAAxE,CAAQE,UAAR;AAAA,MAAwCC,QAAxC,GAAwEH,aAAxE,CAAwCG,QAAxC;AAAA,MAAkDC,OAAlD,GAAwEJ,aAAxE,CAAkDI,OAAlD;AAAA,MAA8DC,KAA9D,iCAAwEL,aAAxE;;AACA,wBAAwBM,QAAA,CAAe,KAAf,CAAxB;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AACA,yBAAoCF,QAAA,CAA2BL,kBAA3B,aAA2BA,kBAA3B,cAA2BA,kBAA3B,GAAiD,SAAjD,CAApC;AAAA,MAAOC,UAAP;AAAA,MAAmBO,cAAnB;;AACA,yBAAgCH,QAAA,CAAe,KAAf,CAAhC;AAAA,MAAOI,QAAP;AAAA,MAAiBC,WAAjB;;AACA,yBAAgCL,QAAA,CAAmCM,SAAnC,CAAhC;AAAA,MAAOC,QAAP;AAAA,MAAiBC,YAAjB;;AAEA,MAAMC,OAAO,GAAGT,OAAA,CACZ;AAAA,WAAO;AACHJ,MAAAA,UAAU,EAAVA,UADG;AAEHO,MAAAA,aAAa,EAAE,uBAACP,UAAD;AAAA,eAA4BO,cAAa,CAACP,UAAD,CAAzC;AAAA,OAFZ;AAGHQ,MAAAA,QAAQ,EAARA,QAHG;AAIHM,MAAAA,mBAAmB,EAAE;AAAA,eAAML,WAAW,CAAC,IAAD,CAAjB;AAAA,OAJlB;AAKHE,MAAAA,QAAQ,EAARA,QALG;AAMHC,MAAAA,WAAW,EAAE,qBAACG,KAAD;AAAA,eAAmBH,YAAW,CAACG,KAAD,CAA9B;AAAA,OANV;AAOHC,MAAAA,KAAK,EAAE;AAAA,eAAMV,OAAO,CAAC,KAAD,CAAb;AAAA;AAPJ,KAAP;AAAA,GADY,EAUZ,CAACE,QAAD,EAAWG,QAAX,EAAqBX,UAArB,CAVY,CAAhB;AAaA,SACII,aAAA,CAACa,WAAW,CAACC,QAAb;AAAsBC,IAAAA,KAAK,EAAEN;GAA7B,EACIT,aAAA,CAACgB,IAAD,oBAAgCjB;AAAOkB,IAAAA,KAAK,EAAE;AAAOhB,IAAAA,IAAI,EAAEA;AAAMiB,IAAAA,YAAY,EAAEhB;IAA/E,EACKJ,OAAO,IAAIE,aAAA,CAACmB,OAAD,MAAA,EAAUrB,OAAV,CADhB,EAEKD,QAFL,CADJ,CADJ;AAQH;AACDJ,IAAI,CAAC0B,OAAL,GAAeA,OAAf;AACA1B,IAAI,CAAC2B,OAAL,GAAeA,OAAf;AACA3B,IAAI,CAAC4B,IAAL,GAAYA,IAAZ;AACA5B,IAAI,CAAC6B,IAAL,GAAYA,IAAZ;AACA7B,IAAI,CAAC8B,QAAL,GAAgBA,QAAhB;AACA9B,IAAI,CAAC+B,SAAL,GAAiBA,SAAjB;AACA/B,IAAI,CAACgC,MAAL,GAAcA,MAAd;AACAhC,IAAI,CAACiC,UAAL,GAAkBA,UAAlB;;;;"}
|
@@ -1,17 +1,16 @@
|
|
1
|
-
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import { createElement } from 'react';
|
3
2
|
import { Icon } from '../../Icon/Icon.js';
|
4
3
|
import { CheckboxItem, ItemIndicator } from '@radix-ui/react-dropdown-menu';
|
5
4
|
import { useItemStyling } from './Item.js';
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
const Checkbox = props => {
|
7
|
+
const {
|
8
|
+
checked,
|
9
|
+
children,
|
10
|
+
onChange,
|
11
|
+
...otherProps
|
12
|
+
} = props;
|
13
|
+
const className = useItemStyling({
|
15
14
|
disabled: props.disabled,
|
16
15
|
indented: true,
|
17
16
|
className: props.className
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../../../src/components/Menu/components/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { Icon } from '../../Icon/Icon';\nimport { useItemStyling } from './Item';\n\nexport type MenuCheckboxItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\n /* Whether the checkbox item is disabled */\n disabled?: boolean;\n /* The current checked state (controlled) */\n checked: boolean;\n /* Handler called when the checked state changes */\n onChange: (checked: boolean | 'indeterminate') => void;\n};\n\nexport const Checkbox = (props: MenuCheckboxItemProps) => {\n const { checked, children, onChange, ...otherProps } = props;\n const className = useItemStyling({\n disabled: props.disabled,\n indented: true,\n className: props.className,\n });\n\n return (\n <DropdownMenuPrimitive.CheckboxItem {...otherProps} className={className} checked={checked} onCheckedChange={onChange}>\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\n <Icon name=\"tick\" className=\"!h-4 !w-4 -ml-px\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n};\n"],"names":["Checkbox","props","checked","children","onChange","otherProps","className","useItemStyling","disabled","indented","React","DropdownMenuPrimitive","onCheckedChange","Icon","name"],"mappings":"
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../../src/components/Menu/components/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { useItemStyling } from './Item';\r\n\r\nexport type MenuCheckboxItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\r\n /* Whether the checkbox item is disabled */\r\n disabled?: boolean;\r\n /* The current checked state (controlled) */\r\n checked: boolean;\r\n /* Handler called when the checked state changes */\r\n onChange: (checked: boolean | 'indeterminate') => void;\r\n};\r\n\r\nexport const Checkbox = (props: MenuCheckboxItemProps) => {\r\n const { checked, children, onChange, ...otherProps } = props;\r\n const className = useItemStyling({\r\n disabled: props.disabled,\r\n indented: true,\r\n className: props.className,\r\n });\r\n\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem {...otherProps} className={className} checked={checked} onCheckedChange={onChange}>\r\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\r\n <Icon name=\"tick\" className=\"!h-4 !w-4 -ml-px\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n};\r\n"],"names":["Checkbox","props","checked","children","onChange","otherProps","className","useItemStyling","disabled","indented","React","DropdownMenuPrimitive","onCheckedChange","Icon","name"],"mappings":";;;;;MAcaA,QAAQ,GAAIC,KAAD;AACpB,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA,QAArB;AAA+B,OAAGC;AAAlC,MAAiDJ,KAAvD;AACA,QAAMK,SAAS,GAAGC,cAAc,CAAC;AAC7BC,IAAAA,QAAQ,EAAEP,KAAK,CAACO,QADa;AAE7BC,IAAAA,QAAQ,EAAE,IAFmB;AAG7BH,IAAAA,SAAS,EAAEL,KAAK,CAACK;AAHY,GAAD,CAAhC;AAMA,SACII,aAAA,CAACC,YAAD,oBAAwCN;AAAYC,IAAAA,SAAS,EAAEA;AAAWJ,IAAAA,OAAO,EAAEA;AAASU,IAAAA,eAAe,EAAER;IAA7G,EACIM,aAAA,CAACC,aAAD;AAAqCL,IAAAA,SAAS,EAAC;GAA/C,EACII,aAAA,CAACG,IAAD;AAAMC,IAAAA,IAAI,EAAC;AAAOR,IAAAA,SAAS,EAAC;GAA5B,CADJ,CADJ,EAIKH,QAJL,CADJ;AAQH;;;;"}
|
@@ -1,13 +1,10 @@
|
|
1
|
-
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import { forwardRef, createElement } from 'react';
|
3
2
|
import cn from 'classnames';
|
4
3
|
import { useProxiedRef } from '../../../utils/hooks/useProxiedRef.js';
|
5
4
|
import { useCurrentMenu } from '../Context.js';
|
6
5
|
import { Content as Content$1 } from '@radix-ui/react-dropdown-menu';
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
var getAppearanceClasses = function getAppearanceClasses(appearance) {
|
7
|
+
const getAppearanceClasses = appearance => {
|
11
8
|
switch (appearance) {
|
12
9
|
case 'primary':
|
13
10
|
return 'wcag-blue border-blue';
|
@@ -27,15 +24,15 @@ var getAppearanceClasses = function getAppearanceClasses(appearance) {
|
|
27
24
|
}
|
28
25
|
};
|
29
26
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
27
|
+
const Content = /*#__PURE__*/forwardRef(function MenuContent(props, ref) {
|
28
|
+
const internalRef = useProxiedRef(ref);
|
29
|
+
const menu = useCurrentMenu();
|
30
|
+
const {
|
31
|
+
children,
|
32
|
+
placement: side,
|
33
|
+
...otherProps
|
34
|
+
} = props;
|
35
|
+
const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), props.className);
|
39
36
|
return createElement(Content$1, Object.assign({}, otherProps, {
|
40
37
|
align: "start",
|
41
38
|
className: className,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Content.js","sources":["../../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'classnames';\nimport { Appearance, Placement } from '../../../types';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { useCurrentMenu } from '../Context';\n\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\n switch (appearance) {\n case 'primary':\n return 'wcag-blue border-blue';\n\n case 'danger':\n return 'wcag-red border-red';\n\n case 'ghost':\n return 'bg-white text-blue border-blue yt-shadow-blue';\n\n case 'discrete':\n return 'wcag-white border-grey yt-shadow';\n\n case 'default':\n default:\n return 'wcag-grey-light border-grey';\n }\n};\n\nexport type MenuContentProps = Omit<DropdownMenuPrimitive.DropdownMenuContentProps, 'children' | 'side'> & {\n children: React.ReactNode;\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\n placement?: Placement;\n};\n\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\n const internalRef = useProxiedRef<any>(ref);\n const menu = useCurrentMenu();\n const { children, placement: side, ...otherProps } = props;\n const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu?.appearance), props.className);\n\n return (\n <DropdownMenuPrimitive.Content\n {...otherProps}\n align=\"start\"\n className={className}\n data-taco=\"menu\"\n side={side}\n sideOffset={2}\n style={{ minWidth: menu?.minWidth }}\n ref={internalRef}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n );\n});\n"],"names":["getAppearanceClasses","appearance","Content","React","MenuContent","props","ref","internalRef","useProxiedRef","menu","useCurrentMenu","children","
|
1
|
+
{"version":3,"file":"Content.js","sources":["../../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport cn from 'classnames';\r\nimport { Appearance, Placement } from '../../../types';\r\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\r\nimport { useCurrentMenu } from '../Context';\r\n\r\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\r\n switch (appearance) {\r\n case 'primary':\r\n return 'wcag-blue border-blue';\r\n\r\n case 'danger':\r\n return 'wcag-red border-red';\r\n\r\n case 'ghost':\r\n return 'bg-white text-blue border-blue yt-shadow-blue';\r\n\r\n case 'discrete':\r\n return 'wcag-white border-grey yt-shadow';\r\n\r\n case 'default':\r\n default:\r\n return 'wcag-grey-light border-grey';\r\n }\r\n};\r\n\r\nexport type MenuContentProps = Omit<DropdownMenuPrimitive.DropdownMenuContentProps, 'children' | 'side'> & {\r\n children: React.ReactNode;\r\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\r\n placement?: Placement;\r\n};\r\n\r\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\r\n const internalRef = useProxiedRef<any>(ref);\r\n const menu = useCurrentMenu();\r\n const { children, placement: side, ...otherProps } = props;\r\n const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu?.appearance), props.className);\r\n\r\n return (\r\n <DropdownMenuPrimitive.Content\r\n {...otherProps}\r\n align=\"start\"\r\n className={className}\r\n data-taco=\"menu\"\r\n side={side}\r\n sideOffset={2}\r\n style={{ minWidth: menu?.minWidth }}\r\n ref={internalRef}\r\n >\r\n {children}\r\n </DropdownMenuPrimitive.Content>\r\n );\r\n});\r\n"],"names":["getAppearanceClasses","appearance","Content","React","MenuContent","props","ref","internalRef","useProxiedRef","menu","useCurrentMenu","children","placement","side","otherProps","className","cn","DropdownMenuPrimitive","align","sideOffset","style","minWidth"],"mappings":";;;;;;AAOA,MAAMA,oBAAoB,GAAIC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,uBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,qBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,+CAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,kCAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,6BAAP;AAfR;AAiBH,CAlBD;;MA0BaC,OAAO,gBAAGC,UAAA,CAAiB,SAASC,WAAT,CAAqBC,KAArB,EAA8CC,GAA9C;AACpC,QAAMC,WAAW,GAAGC,aAAa,CAAMF,GAAN,CAAjC;AACA,QAAMG,IAAI,GAAGC,cAAc,EAA3B;AACA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,SAAS,EAAEC,IAAvB;AAA6B,OAAGC;AAAhC,MAA+CT,KAArD;AACA,QAAMU,SAAS,GAAGC,EAAE,CAAC,uCAAD,EAA0ChB,oBAAoB,CAACS,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAER,UAAP,CAA9D,EAAkFI,KAAK,CAACU,SAAxF,CAApB;AAEA,SACIZ,aAAA,CAACc,SAAD,oBACQH;AACJI,IAAAA,KAAK,EAAC;AACNH,IAAAA,SAAS,EAAEA;iBACD;AACVF,IAAAA,IAAI,EAAEA;AACNM,IAAAA,UAAU,EAAE;AACZC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,QAAQ,EAAEZ,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEY;AAAlB;AACPf,IAAAA,GAAG,EAAEC;IART,EAUKI,QAVL,CADJ;AAcH,CApBsB;;;;"}
|
@@ -3,7 +3,7 @@ import cn from 'classnames';
|
|
3
3
|
import { useCurrentMenu } from '../Context.js';
|
4
4
|
import { Label } from '@radix-ui/react-dropdown-menu';
|
5
5
|
|
6
|
-
|
6
|
+
const getAppearanceClasses = appearance => {
|
7
7
|
switch (appearance) {
|
8
8
|
case 'primary':
|
9
9
|
return 'text-blue-lighest';
|
@@ -23,9 +23,9 @@ var getAppearanceClasses = function getAppearanceClasses(appearance) {
|
|
23
23
|
}
|
24
24
|
};
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
const Header = props => {
|
27
|
+
const menu = useCurrentMenu();
|
28
|
+
const className = cn('flex items-center justify-start h-6 pr-1.5 text-xs', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), {
|
29
29
|
'pl-7': menu === null || menu === void 0 ? void 0 : menu.indented,
|
30
30
|
'pl-1.5': !(menu !== null && menu !== void 0 && menu.indented)
|
31
31
|
}, props.className);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../src/components/Menu/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport cn from 'classnames';\nimport { useCurrentMenu } from '../Context';\nimport { Appearance } from '../../../types';\n\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\n switch (appearance) {\n case 'primary':\n return 'text-blue-lighest';\n\n case 'danger':\n return 'text-red-lightest';\n\n case 'ghost':\n return 'text-blue-light';\n\n case 'discrete':\n return 'text-grey-darkest';\n\n case 'default':\n default:\n return 'text-grey-darkest';\n }\n};\n\nexport type MenuHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Header = (props: MenuHeaderProps) => {\n const menu = useCurrentMenu();\n const className = cn(\n 'flex items-center justify-start h-6 pr-1.5 text-xs',\n getAppearanceClasses(menu?.appearance),\n {\n 'pl-7': menu?.indented,\n 'pl-1.5': !menu?.indented,\n },\n props.className\n );\n\n return <DropdownMenuPrimitive.Label {...props} className={className} />;\n};\n"],"names":["getAppearanceClasses","appearance","Header","props","menu","useCurrentMenu","className","cn","indented","React","DropdownMenuPrimitive"],"mappings":";;;;;AAMA,
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../src/components/Menu/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport cn from 'classnames';\r\nimport { useCurrentMenu } from '../Context';\r\nimport { Appearance } from '../../../types';\r\n\r\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\r\n switch (appearance) {\r\n case 'primary':\r\n return 'text-blue-lighest';\r\n\r\n case 'danger':\r\n return 'text-red-lightest';\r\n\r\n case 'ghost':\r\n return 'text-blue-light';\r\n\r\n case 'discrete':\r\n return 'text-grey-darkest';\r\n\r\n case 'default':\r\n default:\r\n return 'text-grey-darkest';\r\n }\r\n};\r\n\r\nexport type MenuHeaderProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const Header = (props: MenuHeaderProps) => {\r\n const menu = useCurrentMenu();\r\n const className = cn(\r\n 'flex items-center justify-start h-6 pr-1.5 text-xs',\r\n getAppearanceClasses(menu?.appearance),\r\n {\r\n 'pl-7': menu?.indented,\r\n 'pl-1.5': !menu?.indented,\r\n },\r\n props.className\r\n );\r\n\r\n return <DropdownMenuPrimitive.Label {...props} className={className} />;\r\n};\r\n"],"names":["getAppearanceClasses","appearance","Header","props","menu","useCurrentMenu","className","cn","indented","React","DropdownMenuPrimitive"],"mappings":";;;;;AAMA,MAAMA,oBAAoB,GAAIC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,iBAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,mBAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,mBAAP;AAfR;AAiBH,CAlBD;;MAsBaC,MAAM,GAAIC,KAAD;AAClB,QAAMC,IAAI,GAAGC,cAAc,EAA3B;AACA,QAAMC,SAAS,GAAGC,EAAE,CAChB,oDADgB,EAEhBP,oBAAoB,CAACI,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAEH,UAAP,CAFJ,EAGhB;AACI,YAAQG,IAAR,aAAQA,IAAR,uBAAQA,IAAI,CAAEI,QADlB;AAEI,cAAU,EAACJ,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEI,QAAP;AAFd,GAHgB,EAOhBL,KAAK,CAACG,SAPU,CAApB;AAUA,SAAOG,aAAA,CAACC,KAAD,oBAAiCP;AAAOG,IAAAA,SAAS,EAAEA;IAAnD,CAAP;AACH;;;;"}
|
@@ -1,47 +1,45 @@
|
|
1
|
-
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import { forwardRef, createElement, useEffect } from 'react';
|
3
2
|
import cn from 'classnames';
|
4
3
|
import { Icon as Icon$1 } from '../../Icon/Icon.js';
|
5
4
|
import { useCurrentMenu } from '../Context.js';
|
6
5
|
import { Item as Item$1 } from '@radix-ui/react-dropdown-menu';
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
}));
|
17
|
-
};
|
7
|
+
const Icon = ({
|
8
|
+
name
|
9
|
+
}) => createElement("span", {
|
10
|
+
className: "absolute left-0 ml-1"
|
11
|
+
}, createElement(Icon$1, {
|
12
|
+
className: "-ml-px -mt-px !h-5 !w-5",
|
13
|
+
name: name
|
14
|
+
}));
|
18
15
|
|
19
|
-
|
16
|
+
const getAppearanceClasses = appearance => {
|
20
17
|
switch (appearance) {
|
21
18
|
case 'primary':
|
22
|
-
return 'wcag-blue aria-disabled:text-blue-dark focus:wcag-blue-light';
|
19
|
+
return 'wcag-blue aria-disabled:text-blue-dark hover:wcag-blue-light focus:wcag-blue-light';
|
23
20
|
|
24
21
|
case 'danger':
|
25
|
-
return 'wcag-red aria-disabled:text-red-dark focus:wcag-red-light';
|
22
|
+
return 'wcag-red aria-disabled:text-red-dark hover:wcag-red-light focus:wcag-red-light';
|
26
23
|
|
27
24
|
case 'ghost':
|
28
|
-
return 'text-blue aria-disabled:text-grey focus:wcag-blue';
|
25
|
+
return 'text-blue aria-disabled:text-grey hover:wcag-blue focus:wcag-blue';
|
29
26
|
|
30
27
|
case 'discrete':
|
31
|
-
return 'text-black aria-disabled:text-grey focus:wcag-blue-lightest';
|
28
|
+
return 'text-black aria-disabled:text-grey hover:wcag-blue-lightest focus:wcag-blue-lightest';
|
32
29
|
|
33
30
|
case 'default':
|
34
31
|
default:
|
35
|
-
return 'wcag-grey-light aria-disabled:text-grey-darker focus:wcag-grey-dark';
|
32
|
+
return 'wcag-grey-light aria-disabled:text-grey-darker hover:wcag-grey-dark focus:wcag-grey-dark';
|
36
33
|
}
|
37
34
|
};
|
38
35
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
36
|
+
const useItemStyling = ({
|
37
|
+
disabled,
|
38
|
+
indented,
|
39
|
+
className
|
40
|
+
}) => {
|
41
|
+
const menu = useCurrentMenu();
|
42
|
+
useEffect(() => {
|
45
43
|
if (indented && !(menu !== null && menu !== void 0 && menu.indented)) {
|
46
44
|
menu === null || menu === void 0 ? void 0 : menu.registerIndentation();
|
47
45
|
}
|
@@ -53,9 +51,9 @@ var useItemStyling = function useItemStyling(_ref2) {
|
|
53
51
|
'cursor-not-allowed': disabled
|
54
52
|
}, className);
|
55
53
|
};
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
const Shortcut = props => {
|
55
|
+
const menu = useCurrentMenu();
|
56
|
+
let appearance;
|
59
57
|
|
60
58
|
switch (menu === null || menu === void 0 ? void 0 : menu.appearance) {
|
61
59
|
case 'primary':
|
@@ -80,36 +78,37 @@ var Shortcut = function Shortcut(props) {
|
|
80
78
|
break;
|
81
79
|
}
|
82
80
|
|
83
|
-
|
81
|
+
const className = cn('ml-auto pl-3', appearance);
|
84
82
|
return createElement("span", Object.assign({}, props, {
|
85
83
|
className: className
|
86
84
|
}));
|
87
85
|
};
|
88
|
-
|
86
|
+
const Item = /*#__PURE__*/forwardRef(function MenuItem(props, ref) {
|
89
87
|
var _props$disabled;
|
90
88
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
89
|
+
const {
|
90
|
+
dialog,
|
91
|
+
icon,
|
92
|
+
onClick,
|
93
|
+
shortcut,
|
94
|
+
...otherProps
|
95
|
+
} = props;
|
96
|
+
const className = useItemStyling({
|
98
97
|
disabled: props.disabled,
|
99
98
|
indented: !!icon,
|
100
99
|
className: props.className
|
101
100
|
});
|
102
|
-
|
103
|
-
|
101
|
+
const disabled = (_props$disabled = props.disabled) !== null && _props$disabled !== void 0 ? _props$disabled : props['aria-disabled'];
|
102
|
+
let handleClick; // radix has a bug that does not disable clicks when disabled is set on items
|
104
103
|
|
105
104
|
if (disabled) {
|
106
|
-
handleClick =
|
105
|
+
handleClick = event => {
|
107
106
|
event.preventDefault();
|
108
107
|
event.stopPropagation();
|
109
108
|
};
|
110
109
|
}
|
111
110
|
|
112
|
-
|
111
|
+
const handleSelect = event => {
|
113
112
|
if (onClick) {
|
114
113
|
onClick(event);
|
115
114
|
}
|
@@ -119,7 +118,7 @@ var Item = /*#__PURE__*/forwardRef(function MenuItem(props, ref) {
|
|
119
118
|
}
|
120
119
|
};
|
121
120
|
|
122
|
-
|
121
|
+
let button = createElement(Item$1, Object.assign({}, otherProps, {
|
123
122
|
className: className,
|
124
123
|
onClick: handleClick,
|
125
124
|
onSelect: handleSelect,
|