@economic/taco 2.46.10-alpha.0 → 2.47.0-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/dist/components/Report/Report.d.ts +1 -1
  2. package/dist/components/Select2/components/Option.d.ts +4 -4
  3. package/dist/components/Table3/components/Row/Editing/CreateNewRow.d.ts +1 -2
  4. package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +1 -0
  5. package/dist/components/Table3/util/editing.d.ts +3 -0
  6. package/dist/esm/index.css +13 -4
  7. package/dist/esm/packages/taco/src/components/Badge/Badge.js +9 -6
  8. package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +7 -5
  10. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  11. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +56 -19
  12. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  13. package/dist/esm/packages/taco/src/components/Table3/Table3.js +15 -7
  14. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  15. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +2 -4
  16. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
  17. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +3 -3
  18. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
  19. package/dist/esm/packages/taco/src/components/Table3/util/editing.js +9 -1
  20. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
  21. package/dist/esm/packages/taco/src/components/Tag/Tag.js +6 -4
  22. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  23. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +2 -1
  24. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
  25. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +4 -0
  26. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
  27. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +7 -2
  28. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
  29. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js +6 -0
  30. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js.map +1 -0
  31. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +5 -3
  32. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  33. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +0 -2
  34. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
  35. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +2 -1
  36. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
  37. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +3 -1
  38. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
  39. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
  40. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +2 -1
  41. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -1
  42. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +1 -1
  43. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  44. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +7 -1
  45. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
  46. package/dist/index.css +13 -4
  47. package/dist/primitives/Table/Core/Table.d.ts +1 -0
  48. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.d.ts +3 -0
  49. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.d.ts +0 -1
  50. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +0 -3
  51. package/dist/primitives/Table/types.d.ts +2 -1
  52. package/dist/primitives/Table/useTableManager/features/useTableRowExpansion.d.ts +2 -1
  53. package/dist/taco.cjs.development.js +137 -61
  54. package/dist/taco.cjs.development.js.map +1 -1
  55. package/dist/taco.cjs.production.min.js +1 -1
  56. package/dist/taco.cjs.production.min.js.map +1 -1
  57. package/package.json +2 -3
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { ReportRef, ReportProps, ReportColumnProps, ReportGroupProps } from './types';
3
3
  declare function Column<TType = unknown>(_: ReportColumnProps<TType>): null;
4
4
  declare function Group(_: ReportGroupProps): null;
5
- export declare const Report: (<TType = unknown>(props: Pick<import("../..").TableProps<TType>, "length" | "loadAll" | "loadPage" | "pageSize" | "enableFiltering" | "enableSearch" | "enableSorting" | "enableColumnFreezing" | "enableColumnHiding" | "enableColumnResizing" | "enableRowExpansion" | "enableRowSelection" | "enableColumnOrdering" | "enableFontSize" | "enableFooter" | "enablePrinting" | "enableRowActions" | "enableRowActive" | "enableRowClick" | "enableRowDrag" | "enableRowDrop" | "enableRowGoto" | "enableRowHeight" | "enableSaveSettings" | "children" | "data" | "id" | "customSettings" | "defaultColumnFreezingIndex" | "defaultRowActiveIndex" | "defaultRowGroupColumnId" | "defaultSettings" | "emptyState" | "rowActions" | "rowActionsForGroup" | "rowActionsLength" | "rowExpansionRenderer" | "rowIdentityAccessor" | "shortcuts" | "toolbarLeft" | "toolbarRight" | "toolbarPanel" | "onRowClick" | "onRowDrag" | "onRowDrop" | "onRowGoto" | "onRowSelect" | "onChangeFilter" | "onChangeSearch" | "onChangeSettings" | "onChangeSort"> & React.RefAttributes<import("../..").TableRef>) => JSX.Element) & {
5
+ export declare const Report: (<TType = unknown>(props: Pick<import("../..").TableProps<TType>, "length" | "loadAll" | "loadPage" | "pageSize" | "enableFiltering" | "enableSearch" | "enableSorting" | "enableColumnFreezing" | "enableColumnHiding" | "enableColumnResizing" | "enableRowExpansion" | "enableRowExpansionAll" | "enableRowSelection" | "enableColumnOrdering" | "enableFontSize" | "enableFooter" | "enablePrinting" | "enableRowActions" | "enableRowActive" | "enableRowClick" | "enableRowDrag" | "enableRowDrop" | "enableRowGoto" | "enableRowHeight" | "enableSaveSettings" | "children" | "data" | "id" | "customSettings" | "defaultColumnFreezingIndex" | "defaultRowActiveIndex" | "defaultRowGroupColumnId" | "defaultSettings" | "emptyState" | "rowActions" | "rowActionsForGroup" | "rowActionsLength" | "rowExpansionRenderer" | "rowIdentityAccessor" | "shortcuts" | "toolbarLeft" | "toolbarRight" | "toolbarPanel" | "onRowClick" | "onRowDrag" | "onRowDrop" | "onRowGoto" | "onRowSelect" | "onChangeFilter" | "onChangeSearch" | "onChangeSettings" | "onChangeSort"> & React.RefAttributes<import("../..").TableRef>) => JSX.Element) & {
6
6
  Column: typeof Column;
7
7
  Group: typeof Group;
8
8
  };
@@ -4,7 +4,7 @@ import * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';
4
4
  import { Color } from '../../../types';
5
5
  import { FontSize } from '../../../types';
6
6
  export declare type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children' | 'prefix'> & {
7
- children: string;
7
+ children: string | JSX.Element;
8
8
  color?: Color;
9
9
  description?: string;
10
10
  fontSize?: FontSize;
@@ -13,11 +13,11 @@ export declare type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionPro
13
13
  textValue?: string;
14
14
  };
15
15
  export declare const Option: React.ForwardRefExoticComponent<Pick<ListboxPrimitive.Listbox2OptionProps, "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "nonce" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "disabled" | "value"> & {
16
- children: string;
16
+ children: string | JSX.Element;
17
17
  color?: "green" | "yellow" | "red" | "blue" | "purple" | "brown" | "pink" | "orange" | "grey" | "transparent" | undefined;
18
18
  description?: string | undefined;
19
19
  fontSize?: "small" | "medium" | "large" | undefined;
20
- prefix?: "id" | "account-preview" | "accounting-year-cancel" | "accounting-year" | "accounting" | "ai-chat-solid" | "ai-stars" | "arrow-bottom" | "arrow-down" | "arrow-end" | "arrow-left" | "arrow-right" | "arrow-start" | "arrow-top" | "arrow-up" | "attach-auto" | "attach-cancel" | "attach-warning" | "attach" | "autotext-insert" | "autotext" | "basic-tabs" | "basic" | "bell-solid" | "book" | "booking" | "budget" | "calendar" | "cash-account" | "cash-reports" | "chart-area" | "chart-bar" | "chart-line" | "chart-pie" | "chart-table" | "chat-solid" | "chat" | "chevron-down-double" | "chevron-down-solid" | "chevron-down" | "chevron-left-double" | "chevron-left-solid" | "chevron-left" | "chevron-right-double" | "chevron-right-solid" | "chevron-right" | "chevron-up-double" | "chevron-up-solid" | "chevron-up" | "circle-close" | "circle-information" | "circle-minus" | "circle-plus" | "circle-questionmark" | "circle-tick" | "circle-warning" | "clamp-open" | "clamp" | "close" | "column-freeze" | "column-unfreeze" | "columns" | "connection-enable" | "connection-revoke" | "contacts" | "copy" | "courses" | "credit" | "delete-permanently" | "delete" | "depecriate" | "developer" | "distribution-template" | "document-approve" | "document-create-entry" | "document-cut" | "document-error" | "document-isolate-page" | "document-merge" | "document-move" | "document-preview" | "document-received" | "document-rejected-request" | "document-signed-solid" | "document-signed" | "document-split" | "document-time" | "document" | "download" | "drag" | "e-copedia" | "edit-simple" | "edit" | "ellipsis-horizontal" | "ellipsis-vertical" | "entries-on-account" | "entries-open" | "entries-warning" | "entry-type-customer-invoice" | "entry-type-customer-payment" | "entry-type-journal-entry" | "entry-type-manual-customer-invoice" | "entry-type-supplier-invoice" | "entry-type-supplier-payment" | "envelope-approved" | "envelope-solid" | "envelope" | "expand-view" | "expenses" | "export-to-excel" | "export-to-pdf" | "export" | "eye-off" | "eye-on" | "filter-solid" | "filter" | "font-size" | "graph-solid" | "hash" | "height-extra-tall" | "height-medium" | "height-short" | "height-tall" | "house-solid" | "house" | "images" | "import" | "inbox-einvoicing" | "inbox-scanning" | "inbox-smart" | "inbox" | "info" | "inventory-matrix" | "inventory" | "journal-pro" | "layout-both" | "layout-first" | "layout-last" | "layout-none" | "layout" | "ledger-card-customer-reminder" | "ledger-card-manual-customer-invoice" | "ledger-card-obsolete-stock" | "ledger-card-opening-entry" | "ledger-card-reserved-entry" | "ledger-card-shrinkage-pilferage" | "ledger-card-stock-adjustment" | "ledger-card-transferred-opening-entry" | "ledger-card" | "lightbulb" | "line" | "link-external" | "list-bulleted" | "list-search" | "list" | "location" | "lock-open" | "lock" | "log-out" | "log" | "market" | "mastercard-os" | "match-amount" | "match-entries" | "menu" | "mileage" | "modal-resize" | "modal-shrink" | "more-solid" | "more" | "move" | "navigation-list" | "note-follow-up" | "note-read" | "note" | "november-first" | "numbers" | "partner-api" | "payment-paid" | "payment-unpaid" | "period" | "person-change" | "person-minus" | "person-plus" | "person-tick" | "phone-solid" | "phone" | "play" | "plus-minus" | "print" | "process-payment" | "product-ledger-card" | "profile" | "project-cards" | "projects" | "question-mark-bold" | "question-mark" | "quicklinks" | "rating-bankruptcy" | "rating-payment-problems" | "reconciled" | "refresh" | "report-solid" | "report" | "restore" | "rotate-left" | "rotate-right" | "sales" | "search-bold" | "search" | "secure-tick" | "secure" | "settings-solid" | "settings" | "shortcuts" | "show-all" | "show-less" | "show-more" | "show-template" | "sliders" | "smartpay" | "sort-by" | "star-solid" | "star" | "subscriptions" | "system-entries" | "tag" | "template-override" | "templates" | "thumb-both" | "thumb-down-solid" | "thumb-down" | "thumb-up-solid" | "thumb-up" | "tick-bold" | "tick" | "time" | "transfer-cancel" | "transfer-locked" | "transfer" | "undo" | "undock" | "unreconciled" | "warning" | "webshop" | "website" | "workflow-template-basic" | "workflow" | "zoom" | JSX.Element | undefined;
21
- postfix?: "id" | "account-preview" | "accounting-year-cancel" | "accounting-year" | "accounting" | "ai-chat-solid" | "ai-stars" | "arrow-bottom" | "arrow-down" | "arrow-end" | "arrow-left" | "arrow-right" | "arrow-start" | "arrow-top" | "arrow-up" | "attach-auto" | "attach-cancel" | "attach-warning" | "attach" | "autotext-insert" | "autotext" | "basic-tabs" | "basic" | "bell-solid" | "book" | "booking" | "budget" | "calendar" | "cash-account" | "cash-reports" | "chart-area" | "chart-bar" | "chart-line" | "chart-pie" | "chart-table" | "chat-solid" | "chat" | "chevron-down-double" | "chevron-down-solid" | "chevron-down" | "chevron-left-double" | "chevron-left-solid" | "chevron-left" | "chevron-right-double" | "chevron-right-solid" | "chevron-right" | "chevron-up-double" | "chevron-up-solid" | "chevron-up" | "circle-close" | "circle-information" | "circle-minus" | "circle-plus" | "circle-questionmark" | "circle-tick" | "circle-warning" | "clamp-open" | "clamp" | "close" | "column-freeze" | "column-unfreeze" | "columns" | "connection-enable" | "connection-revoke" | "contacts" | "copy" | "courses" | "credit" | "delete-permanently" | "delete" | "depecriate" | "developer" | "distribution-template" | "document-approve" | "document-create-entry" | "document-cut" | "document-error" | "document-isolate-page" | "document-merge" | "document-move" | "document-preview" | "document-received" | "document-rejected-request" | "document-signed-solid" | "document-signed" | "document-split" | "document-time" | "document" | "download" | "drag" | "e-copedia" | "edit-simple" | "edit" | "ellipsis-horizontal" | "ellipsis-vertical" | "entries-on-account" | "entries-open" | "entries-warning" | "entry-type-customer-invoice" | "entry-type-customer-payment" | "entry-type-journal-entry" | "entry-type-manual-customer-invoice" | "entry-type-supplier-invoice" | "entry-type-supplier-payment" | "envelope-approved" | "envelope-solid" | "envelope" | "expand-view" | "expenses" | "export-to-excel" | "export-to-pdf" | "export" | "eye-off" | "eye-on" | "filter-solid" | "filter" | "font-size" | "graph-solid" | "hash" | "height-extra-tall" | "height-medium" | "height-short" | "height-tall" | "house-solid" | "house" | "images" | "import" | "inbox-einvoicing" | "inbox-scanning" | "inbox-smart" | "inbox" | "info" | "inventory-matrix" | "inventory" | "journal-pro" | "layout-both" | "layout-first" | "layout-last" | "layout-none" | "layout" | "ledger-card-customer-reminder" | "ledger-card-manual-customer-invoice" | "ledger-card-obsolete-stock" | "ledger-card-opening-entry" | "ledger-card-reserved-entry" | "ledger-card-shrinkage-pilferage" | "ledger-card-stock-adjustment" | "ledger-card-transferred-opening-entry" | "ledger-card" | "lightbulb" | "line" | "link-external" | "list-bulleted" | "list-search" | "list" | "location" | "lock-open" | "lock" | "log-out" | "log" | "market" | "mastercard-os" | "match-amount" | "match-entries" | "menu" | "mileage" | "modal-resize" | "modal-shrink" | "more-solid" | "more" | "move" | "navigation-list" | "note-follow-up" | "note-read" | "note" | "november-first" | "numbers" | "partner-api" | "payment-paid" | "payment-unpaid" | "period" | "person-change" | "person-minus" | "person-plus" | "person-tick" | "phone-solid" | "phone" | "play" | "plus-minus" | "print" | "process-payment" | "product-ledger-card" | "profile" | "project-cards" | "projects" | "question-mark-bold" | "question-mark" | "quicklinks" | "rating-bankruptcy" | "rating-payment-problems" | "reconciled" | "refresh" | "report-solid" | "report" | "restore" | "rotate-left" | "rotate-right" | "sales" | "search-bold" | "search" | "secure-tick" | "secure" | "settings-solid" | "settings" | "shortcuts" | "show-all" | "show-less" | "show-more" | "show-template" | "sliders" | "smartpay" | "sort-by" | "star-solid" | "star" | "subscriptions" | "system-entries" | "tag" | "template-override" | "templates" | "thumb-both" | "thumb-down-solid" | "thumb-down" | "thumb-up-solid" | "thumb-up" | "tick-bold" | "tick" | "time" | "transfer-cancel" | "transfer-locked" | "transfer" | "undo" | "undock" | "unreconciled" | "warning" | "webshop" | "website" | "workflow-template-basic" | "workflow" | "zoom" | JSX.Element | undefined;
20
+ prefix?: "id" | JSX.Element | "account-preview" | "accounting-year-cancel" | "accounting-year" | "accounting" | "ai-chat-solid" | "ai-stars" | "arrow-bottom" | "arrow-down" | "arrow-end" | "arrow-left" | "arrow-right" | "arrow-start" | "arrow-top" | "arrow-up" | "attach-auto" | "attach-cancel" | "attach-warning" | "attach" | "autotext-insert" | "autotext" | "basic-tabs" | "basic" | "bell-solid" | "book" | "booking" | "budget" | "calendar" | "cash-account" | "cash-reports" | "chart-area" | "chart-bar" | "chart-line" | "chart-pie" | "chart-table" | "chat-solid" | "chat" | "chevron-down-double" | "chevron-down-solid" | "chevron-down" | "chevron-left-double" | "chevron-left-solid" | "chevron-left" | "chevron-right-double" | "chevron-right-solid" | "chevron-right" | "chevron-up-double" | "chevron-up-solid" | "chevron-up" | "circle-close" | "circle-information" | "circle-minus" | "circle-plus" | "circle-questionmark" | "circle-tick" | "circle-warning" | "clamp-open" | "clamp" | "close" | "column-freeze" | "column-unfreeze" | "columns" | "connection-enable" | "connection-revoke" | "contacts" | "copy" | "courses" | "credit" | "delete-permanently" | "delete" | "depecriate" | "developer" | "distribution-template" | "document-approve" | "document-create-entry" | "document-cut" | "document-error" | "document-isolate-page" | "document-merge" | "document-move" | "document-preview" | "document-received" | "document-rejected-request" | "document-signed-solid" | "document-signed" | "document-split" | "document-time" | "document" | "download" | "drag" | "e-copedia" | "edit-simple" | "edit" | "ellipsis-horizontal" | "ellipsis-vertical" | "entries-on-account" | "entries-open" | "entries-warning" | "entry-type-customer-invoice" | "entry-type-customer-payment" | "entry-type-journal-entry" | "entry-type-manual-customer-invoice" | "entry-type-supplier-invoice" | "entry-type-supplier-payment" | "envelope-approved" | "envelope-solid" | "envelope" | "expand-view" | "expenses" | "export-to-excel" | "export-to-pdf" | "export" | "eye-off" | "eye-on" | "filter-solid" | "filter" | "font-size" | "graph-solid" | "hash" | "height-extra-tall" | "height-medium" | "height-short" | "height-tall" | "house-solid" | "house" | "images" | "import" | "inbox-einvoicing" | "inbox-scanning" | "inbox-smart" | "inbox" | "info" | "inventory-matrix" | "inventory" | "journal-pro" | "layout-both" | "layout-first" | "layout-last" | "layout-none" | "layout" | "ledger-card-customer-reminder" | "ledger-card-manual-customer-invoice" | "ledger-card-obsolete-stock" | "ledger-card-opening-entry" | "ledger-card-reserved-entry" | "ledger-card-shrinkage-pilferage" | "ledger-card-stock-adjustment" | "ledger-card-transferred-opening-entry" | "ledger-card" | "lightbulb" | "line" | "link-external" | "list-bulleted" | "list-search" | "list" | "location" | "lock-open" | "lock" | "log-out" | "log" | "market" | "mastercard-os" | "match-amount" | "match-entries" | "menu" | "mileage" | "modal-resize" | "modal-shrink" | "more-solid" | "more" | "move" | "navigation-list" | "note-follow-up" | "note-read" | "note" | "november-first" | "numbers" | "partner-api" | "payment-paid" | "payment-unpaid" | "period" | "person-change" | "person-minus" | "person-plus" | "person-tick" | "phone-solid" | "phone" | "play" | "plus-minus" | "print" | "process-payment" | "product-ledger-card" | "profile" | "project-cards" | "projects" | "question-mark-bold" | "question-mark" | "quicklinks" | "rating-bankruptcy" | "rating-payment-problems" | "reconciled" | "refresh" | "report-solid" | "report" | "restore" | "rotate-left" | "rotate-right" | "sales" | "search-bold" | "search" | "secure-tick" | "secure" | "settings-solid" | "settings" | "shortcuts" | "show-all" | "show-less" | "show-more" | "show-template" | "sliders" | "smartpay" | "sort-by" | "star-solid" | "star" | "subscriptions" | "system-entries" | "tag" | "template-override" | "templates" | "thumb-both" | "thumb-down-solid" | "thumb-down" | "thumb-up-solid" | "thumb-up" | "tick-bold" | "tick" | "time" | "transfer-cancel" | "transfer-locked" | "transfer" | "undo" | "undock" | "unreconciled" | "warning" | "webshop" | "website" | "workflow-template-basic" | "workflow" | "zoom" | undefined;
21
+ postfix?: "id" | JSX.Element | "account-preview" | "accounting-year-cancel" | "accounting-year" | "accounting" | "ai-chat-solid" | "ai-stars" | "arrow-bottom" | "arrow-down" | "arrow-end" | "arrow-left" | "arrow-right" | "arrow-start" | "arrow-top" | "arrow-up" | "attach-auto" | "attach-cancel" | "attach-warning" | "attach" | "autotext-insert" | "autotext" | "basic-tabs" | "basic" | "bell-solid" | "book" | "booking" | "budget" | "calendar" | "cash-account" | "cash-reports" | "chart-area" | "chart-bar" | "chart-line" | "chart-pie" | "chart-table" | "chat-solid" | "chat" | "chevron-down-double" | "chevron-down-solid" | "chevron-down" | "chevron-left-double" | "chevron-left-solid" | "chevron-left" | "chevron-right-double" | "chevron-right-solid" | "chevron-right" | "chevron-up-double" | "chevron-up-solid" | "chevron-up" | "circle-close" | "circle-information" | "circle-minus" | "circle-plus" | "circle-questionmark" | "circle-tick" | "circle-warning" | "clamp-open" | "clamp" | "close" | "column-freeze" | "column-unfreeze" | "columns" | "connection-enable" | "connection-revoke" | "contacts" | "copy" | "courses" | "credit" | "delete-permanently" | "delete" | "depecriate" | "developer" | "distribution-template" | "document-approve" | "document-create-entry" | "document-cut" | "document-error" | "document-isolate-page" | "document-merge" | "document-move" | "document-preview" | "document-received" | "document-rejected-request" | "document-signed-solid" | "document-signed" | "document-split" | "document-time" | "document" | "download" | "drag" | "e-copedia" | "edit-simple" | "edit" | "ellipsis-horizontal" | "ellipsis-vertical" | "entries-on-account" | "entries-open" | "entries-warning" | "entry-type-customer-invoice" | "entry-type-customer-payment" | "entry-type-journal-entry" | "entry-type-manual-customer-invoice" | "entry-type-supplier-invoice" | "entry-type-supplier-payment" | "envelope-approved" | "envelope-solid" | "envelope" | "expand-view" | "expenses" | "export-to-excel" | "export-to-pdf" | "export" | "eye-off" | "eye-on" | "filter-solid" | "filter" | "font-size" | "graph-solid" | "hash" | "height-extra-tall" | "height-medium" | "height-short" | "height-tall" | "house-solid" | "house" | "images" | "import" | "inbox-einvoicing" | "inbox-scanning" | "inbox-smart" | "inbox" | "info" | "inventory-matrix" | "inventory" | "journal-pro" | "layout-both" | "layout-first" | "layout-last" | "layout-none" | "layout" | "ledger-card-customer-reminder" | "ledger-card-manual-customer-invoice" | "ledger-card-obsolete-stock" | "ledger-card-opening-entry" | "ledger-card-reserved-entry" | "ledger-card-shrinkage-pilferage" | "ledger-card-stock-adjustment" | "ledger-card-transferred-opening-entry" | "ledger-card" | "lightbulb" | "line" | "link-external" | "list-bulleted" | "list-search" | "list" | "location" | "lock-open" | "lock" | "log-out" | "log" | "market" | "mastercard-os" | "match-amount" | "match-entries" | "menu" | "mileage" | "modal-resize" | "modal-shrink" | "more-solid" | "more" | "move" | "navigation-list" | "note-follow-up" | "note-read" | "note" | "november-first" | "numbers" | "partner-api" | "payment-paid" | "payment-unpaid" | "period" | "person-change" | "person-minus" | "person-plus" | "person-tick" | "phone-solid" | "phone" | "play" | "plus-minus" | "print" | "process-payment" | "product-ledger-card" | "profile" | "project-cards" | "projects" | "question-mark-bold" | "question-mark" | "quicklinks" | "rating-bankruptcy" | "rating-payment-problems" | "reconciled" | "refresh" | "report-solid" | "report" | "restore" | "rotate-left" | "rotate-right" | "sales" | "search-bold" | "search" | "secure-tick" | "secure" | "settings-solid" | "settings" | "shortcuts" | "show-all" | "show-less" | "show-more" | "show-template" | "sliders" | "smartpay" | "sort-by" | "star-solid" | "star" | "subscriptions" | "system-entries" | "tag" | "template-override" | "templates" | "thumb-both" | "thumb-down-solid" | "thumb-down" | "thumb-up-solid" | "thumb-up" | "tick-bold" | "tick" | "time" | "transfer-cancel" | "transfer-locked" | "transfer" | "undo" | "undock" | "unreconciled" | "warning" | "webshop" | "website" | "workflow-template-basic" | "workflow" | "zoom" | undefined;
22
22
  textValue?: string | undefined;
23
23
  } & React.RefAttributes<HTMLDivElement>>;
@@ -1,14 +1,13 @@
1
1
  import React from 'react';
2
2
  import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';
3
3
  import { Table3EditingCreateHandler } from '../../../types';
4
- import { TableRef } from '../../../../../primitives/Table/types';
5
4
  declare type CreateNewRowProps<TType = unknown> = {
6
5
  buttonRef: React.Ref<HTMLButtonElement>;
6
+ isScrolled: boolean;
7
7
  onEditingCreate?: Table3EditingCreateHandler<TType>;
8
8
  scrollToIndex: (index: number) => void;
9
9
  table: ReactTable<TType>;
10
10
  tableMeta: ReactTableMeta<TType>;
11
- tableRef: React.RefObject<TableRef>;
12
11
  };
13
12
  export declare function CreateNewRow<TType = unknown>(props: CreateNewRowProps<TType>): JSX.Element;
14
13
  export {};
@@ -3,6 +3,7 @@ import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/reac
3
3
  import { TableRef } from '../../../../../primitives/Table/types';
4
4
  declare type TemporaryRowProps<TType = unknown> = {
5
5
  createRowButtonRef: React.RefObject<HTMLButtonElement>;
6
+ isScrolled: boolean;
6
7
  table: ReactTable<TType>;
7
8
  tableMeta: ReactTableMeta<TType>;
8
9
  tableRef: React.RefObject<TableRef>;
@@ -1,4 +1,6 @@
1
+ import React from 'react';
1
2
  import { Cell as ReactTableCell } from '@tanstack/react-table';
3
+ import { TableRef } from '../../../primitives/Table/types';
2
4
  import { Localization } from '../../Provider/Localization';
3
5
  export declare function willRowMove<TType = unknown>(cell: ReactTableCell<TType, unknown>, change: unknown, rowIndex: number, localization: Localization): "search" | "filter" | "sorting" | undefined;
4
6
  export declare const TEMPORARY_ROW_ID_PREFIX = "temp-";
@@ -8,3 +10,4 @@ export declare const shortcut: {
8
10
  meta: boolean;
9
11
  shift: boolean;
10
12
  };
13
+ export declare function isTableScrolled(ref: React.RefObject<TableRef>): boolean;
@@ -650,13 +650,22 @@ table[data-taco^='table'] tr[data-row-group]:first-child {
650
650
  @apply pt-0;
651
651
  }
652
652
 
653
+ /* Only apply -mt-px when the row group header is sticked to the top of the table.
654
+ margin-top -1px is needed to hide a little gap between the group header and table and the edge of the table.
655
+ If we'll not do this, then it will be slightly visible how rows are moving behind it when scrolled.
656
+ */
657
+
658
+ table[data-taco^='table'] tr[data-row-group]:first-child td {
659
+ @apply -mt-px;
660
+ }
661
+
653
662
  table[data-taco^='table'] tr[data-row-group]:not(:first-child):before {
654
663
  content: '';
655
- @apply bg-grey-100 border-grey-300 absolute left-0 right-0 top-0 h-10 border-t print:top-0 print:h-[2px] print:border-t-2;
664
+ @apply bg-grey-100 border-grey-300 absolute -top-1 left-0 right-0 h-10 border-t print:top-0 print:h-[2px] print:border-t-2;
656
665
  }
657
666
 
658
667
  table[data-taco^='table'] tr[data-row-group] td {
659
- @apply -mt-px border-b-2 border-t-0 font-bold;
668
+ @apply border-b-2 border-t-0 font-bold;
660
669
  }
661
670
 
662
671
  table[data-taco^='table'] tr:first-child td {
@@ -752,14 +761,14 @@ table[data-taco^='table'] td:not([data-cell-truncate='true']) {
752
761
  }
753
762
 
754
763
  /* FOOTER */
755
- table[data-taco^='table'] tfoot td {
764
+ table[data-taco^='table'] tfoot tr:not([data-row-index]) td {
756
765
  /*
757
766
  * Since footer has sticky position, the top and bottom padding ensures that the inner content doesn't come over
758
767
  * the border of the footer row.
759
768
  */
760
769
  @apply border-b-0 !py-1 font-bold;
761
770
  }
762
- table[data-taco^='table'] tfoot td:first-child {
771
+ table[data-taco^='table'] tfoot tr:not([data-row-index]) td:first-child {
763
772
  @apply z-30 !pb-0 !pt-[2px];
764
773
  }
765
774
 
@@ -15,10 +15,10 @@ const Badge = /*#__PURE__*/forwardRef(function Badge(props, ref) {
15
15
  ...otherProps
16
16
  } = props;
17
17
  const isTransparent = color === 'transparent';
18
- const className = cn('rounded-full border overflow-hidden whitespace-nowrap inline-flex items-center justify-center', {
18
+ const className = cn('rounded-full border box-border overflow-hidden whitespace-nowrap inline-flex items-center justify-center', {
19
19
  [`border ${getOutlineColorShadeClasses(color)}`]: outline,
20
- [`border-transparent font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,
21
- [`border-transparent ${getColorShadeClasses(color)}`]: !outline && !subtle,
20
+ [`border-none font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,
21
+ [`border-none ${getColorShadeClasses(color)}`]: !outline && !subtle,
22
22
  'h-4 min-w-0 py-0 px-1 text-xs': small,
23
23
  'h-2 w-2 min-w-0': compact,
24
24
  'font-bold': outline || !subtle,
@@ -30,12 +30,15 @@ const Badge = /*#__PURE__*/forwardRef(function Badge(props, ref) {
30
30
  if (compact) {
31
31
  return /*#__PURE__*/createElement(VisuallyHidden, null, children);
32
32
  }
33
+ const contentToRender = typeof children === 'string' ? /*#__PURE__*/createElement("span", {
34
+ className: "items-center truncate"
35
+ }, children) : children;
33
36
  if (status) {
34
37
  return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement("div", {
35
- className: cn('mr-1 h-2 w-2 rounded-full', getColorShadeClasses(color))
36
- }), children);
38
+ className: cn('mr-1 h-2 w-2 shrink-0 rounded-full', getColorShadeClasses(color))
39
+ }), contentToRender);
37
40
  }
38
- return children;
41
+ return contentToRender;
39
42
  };
40
43
  return /*#__PURE__*/createElement("span", Object.assign({}, otherProps, {
41
44
  "aria-atomic": "true",
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sources":["../../../../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'clsx';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { Color } from '../../types';\nimport { getSubtleColorShadeClasses, getColorShadeClasses, getOutlineColorShadeClasses } from '../../utils/tailwind';\nimport './Badge.css';\n\nexport type BadgeBaseProps = React.HTMLAttributes<HTMLSpanElement> & {\n /** Content should be a numerical value or tag/status like text **/\n children: React.ReactNode;\n /** Show small version of badge **/\n small?: boolean;\n /** Background color **/\n color?: Color;\n};\n\ninterface CompactBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: boolean;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: never;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface OutlineBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: boolean;\n /** Show subtle version **/\n subtle?: never;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface SubtleBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface StatusBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show status dot - can be used only in subtle badge **/\n status?: boolean;\n}\n\nexport type BadgeProps = CompactBadgeProps | OutlineBadgeProps | SubtleBadgeProps | StatusBadgeProps;\n\nexport const Badge = React.forwardRef(function Badge(props: BadgeProps, ref: React.Ref<HTMLSpanElement>) {\n const {\n children,\n compact = false,\n outline = false,\n status = false,\n subtle = false,\n small = false,\n color,\n ...otherProps\n } = props;\n const isTransparent = color === 'transparent';\n const className = cn(\n 'rounded-full border overflow-hidden whitespace-nowrap inline-flex items-center justify-center',\n {\n [`border ${getOutlineColorShadeClasses(color)}`]: outline,\n [`border-transparent font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,\n [`border-transparent ${getColorShadeClasses(color)}`]: !outline && !subtle,\n 'h-4 min-w-0 py-0 px-1 text-xs': small,\n 'h-2 w-2 min-w-0': compact,\n 'font-bold': outline || !subtle,\n 'text-sm': !small,\n 'h-5 py-0 px-1.5': !compact && !small, // custom padding keeps single digits in a perfect circle\n '!bg-grey-700': compact && isTransparent,\n },\n props.className\n );\n\n const content = () => {\n if (compact) {\n return <VisuallyHidden>{children}</VisuallyHidden>;\n }\n if (status) {\n return (\n <>\n <div className={cn('mr-1 h-2 w-2 rounded-full', getColorShadeClasses(color))} />\n {children}\n </>\n );\n }\n return children;\n };\n\n return (\n <span\n {...otherProps}\n aria-atomic=\"true\"\n aria-live=\"polite\"\n className={className}\n data-taco=\"badge\"\n ref={ref}\n role=\"status\"\n title={props['aria-label']}>\n {content()}\n </span>\n );\n});\n"],"names":["Badge","React","props","ref","children","compact","outline","status","subtle","small","color","otherProps","isTransparent","className","cn","getOutlineColorShadeClasses","getSubtleColorShadeClasses","getColorShadeClasses","content","VisuallyHidden","role","title"],"mappings":";;;;;MA8DaA,KAAK,gBAAGC,UAAgB,CAAC,SAASD,KAAKA,CAACE,KAAiB,EAAEC,GAA+B;EACnG,MAAM;IACFC,QAAQ;IACRC,OAAO,GAAG,KAAK;IACfC,OAAO,GAAG,KAAK;IACfC,MAAM,GAAG,KAAK;IACdC,MAAM,GAAG,KAAK;IACdC,KAAK,GAAG,KAAK;IACbC,KAAK;IACL,GAAGC;GACN,GAAGT,KAAK;EACT,MAAMU,aAAa,GAAGF,KAAK,KAAK,aAAa;EAC7C,MAAMG,SAAS,GAAGC,EAAE,CAChB,+FAA+F,EAC/F;IACI,CAAC,UAAUC,2BAA2B,CAACL,KAAK,CAAC,EAAE,GAAGJ,OAAO;IACzD,CAAC,kCAAkCU,0BAA0B,CAACN,KAAK,CAAC,EAAE,GAAGF,MAAM;IAC/E,CAAC,sBAAsBS,oBAAoB,CAACP,KAAK,CAAC,EAAE,GAAG,CAACJ,OAAO,IAAI,CAACE,MAAM;IAC1E,+BAA+B,EAAEC,KAAK;IACtC,iBAAiB,EAAEJ,OAAO;IAC1B,WAAW,EAAEC,OAAO,IAAI,CAACE,MAAM;IAC/B,SAAS,EAAE,CAACC,KAAK;IACjB,iBAAiB,EAAE,CAACJ,OAAO,IAAI,CAACI,KAAK;IACrC,cAAc,EAAEJ,OAAO,IAAIO;GAC9B,EACDV,KAAK,CAACW,SAAS,CAClB;EAED,MAAMK,OAAO,GAAGA;IACZ,IAAIb,OAAO,EAAE;MACT,oBAAOJ,cAACkB,cAAc,QAAEf,QAAQ,CAAkB;;IAEtD,IAAIG,MAAM,EAAE;MACR,oBACIN,2CACIA;QAAKY,SAAS,EAAEC,EAAE,CAAC,2BAA2B,EAAEG,oBAAoB,CAACP,KAAK,CAAC;QAAK,EAC/EN,QAAQ,CACV;;IAGX,OAAOA,QAAQ;GAClB;EAED,oBACIH,wCACQU,UAAU;mBACF,MAAM;iBACR,QAAQ;IAClBE,SAAS,EAAEA,SAAS;iBACV,OAAO;IACjBV,GAAG,EAAEA,GAAG;IACRiB,IAAI,EAAC,QAAQ;IACbC,KAAK,EAAEnB,KAAK,CAAC,YAAY;MACxBgB,OAAO,EAAE,CACP;AAEf,CAAC;;;;"}
1
+ {"version":3,"file":"Badge.js","sources":["../../../../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'clsx';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { Color } from '../../types';\nimport { getSubtleColorShadeClasses, getColorShadeClasses, getOutlineColorShadeClasses } from '../../utils/tailwind';\nimport './Badge.css';\n\nexport type BadgeBaseProps = React.HTMLAttributes<HTMLSpanElement> & {\n /** Content should be a numerical value or tag/status like text **/\n children: React.ReactNode;\n /** Show small version of badge **/\n small?: boolean;\n /** Background color **/\n color?: Color;\n};\n\ninterface CompactBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: boolean;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: never;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface OutlineBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: boolean;\n /** Show subtle version **/\n subtle?: never;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface SubtleBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show status dot - can be used only in subtle badge **/\n status?: never;\n}\n\ninterface StatusBadgeProps extends BadgeBaseProps {\n /** Show compact version **/\n compact?: never;\n /** Show outlined version **/\n outline?: never;\n /** Show subtle version **/\n subtle?: boolean;\n /** Show status dot - can be used only in subtle badge **/\n status?: boolean;\n}\n\nexport type BadgeProps = CompactBadgeProps | OutlineBadgeProps | SubtleBadgeProps | StatusBadgeProps;\n\nexport const Badge = React.forwardRef(function Badge(props: BadgeProps, ref: React.Ref<HTMLSpanElement>) {\n const {\n children,\n compact = false,\n outline = false,\n status = false,\n subtle = false,\n small = false,\n color,\n ...otherProps\n } = props;\n const isTransparent = color === 'transparent';\n const className = cn(\n 'rounded-full border box-border overflow-hidden whitespace-nowrap inline-flex items-center justify-center',\n {\n [`border ${getOutlineColorShadeClasses(color)}`]: outline,\n [`border-none font-normal ${getSubtleColorShadeClasses(color)}`]: subtle,\n [`border-none ${getColorShadeClasses(color)}`]: !outline && !subtle,\n 'h-4 min-w-0 py-0 px-1 text-xs': small,\n 'h-2 w-2 min-w-0': compact,\n 'font-bold': outline || !subtle,\n 'text-sm': !small,\n 'h-5 py-0 px-1.5': !compact && !small, // custom padding keeps single digits in a perfect circle\n '!bg-grey-700': compact && isTransparent,\n },\n props.className\n );\n\n const content = () => {\n if (compact) {\n return <VisuallyHidden>{children}</VisuallyHidden>;\n }\n\n const contentToRender =\n typeof children === 'string' ? <span className=\"items-center truncate\">{children}</span> : children;\n\n if (status) {\n return (\n <>\n <div className={cn('mr-1 h-2 w-2 shrink-0 rounded-full', getColorShadeClasses(color))} />\n {contentToRender}\n </>\n );\n }\n return contentToRender;\n };\n\n return (\n <span\n {...otherProps}\n aria-atomic=\"true\"\n aria-live=\"polite\"\n className={className}\n data-taco=\"badge\"\n ref={ref}\n role=\"status\"\n title={props['aria-label']}>\n {content()}\n </span>\n );\n});\n"],"names":["Badge","React","props","ref","children","compact","outline","status","subtle","small","color","otherProps","isTransparent","className","cn","getOutlineColorShadeClasses","getSubtleColorShadeClasses","getColorShadeClasses","content","VisuallyHidden","contentToRender","role","title"],"mappings":";;;;;MA8DaA,KAAK,gBAAGC,UAAgB,CAAC,SAASD,KAAKA,CAACE,KAAiB,EAAEC,GAA+B;EACnG,MAAM;IACFC,QAAQ;IACRC,OAAO,GAAG,KAAK;IACfC,OAAO,GAAG,KAAK;IACfC,MAAM,GAAG,KAAK;IACdC,MAAM,GAAG,KAAK;IACdC,KAAK,GAAG,KAAK;IACbC,KAAK;IACL,GAAGC;GACN,GAAGT,KAAK;EACT,MAAMU,aAAa,GAAGF,KAAK,KAAK,aAAa;EAC7C,MAAMG,SAAS,GAAGC,EAAE,CAChB,0GAA0G,EAC1G;IACI,CAAC,UAAUC,2BAA2B,CAACL,KAAK,CAAC,EAAE,GAAGJ,OAAO;IACzD,CAAC,2BAA2BU,0BAA0B,CAACN,KAAK,CAAC,EAAE,GAAGF,MAAM;IACxE,CAAC,eAAeS,oBAAoB,CAACP,KAAK,CAAC,EAAE,GAAG,CAACJ,OAAO,IAAI,CAACE,MAAM;IACnE,+BAA+B,EAAEC,KAAK;IACtC,iBAAiB,EAAEJ,OAAO;IAC1B,WAAW,EAAEC,OAAO,IAAI,CAACE,MAAM;IAC/B,SAAS,EAAE,CAACC,KAAK;IACjB,iBAAiB,EAAE,CAACJ,OAAO,IAAI,CAACI,KAAK;IACrC,cAAc,EAAEJ,OAAO,IAAIO;GAC9B,EACDV,KAAK,CAACW,SAAS,CAClB;EAED,MAAMK,OAAO,GAAGA;IACZ,IAAIb,OAAO,EAAE;MACT,oBAAOJ,cAACkB,cAAc,QAAEf,QAAQ,CAAkB;;IAGtD,MAAMgB,eAAe,GACjB,OAAOhB,QAAQ,KAAK,QAAQ,gBAAGH;MAAMY,SAAS,EAAC;OAAyBT,QAAQ,CAAQ,GAAGA,QAAQ;IAEvG,IAAIG,MAAM,EAAE;MACR,oBACIN,2CACIA;QAAKY,SAAS,EAAEC,EAAE,CAAC,oCAAoC,EAAEG,oBAAoB,CAACP,KAAK,CAAC;QAAK,EACxFU,eAAe,CACjB;;IAGX,OAAOA,eAAe;GACzB;EAED,oBACInB,wCACQU,UAAU;mBACF,MAAM;iBACR,QAAQ;IAClBE,SAAS,EAAEA,SAAS;iBACV,OAAO;IACjBV,GAAG,EAAEA,GAAG;IACRkB,IAAI,EAAC,QAAQ;IACbC,KAAK,EAAEpB,KAAK,CAAC,YAAY;MACxBgB,OAAO,EAAE,CACP;AAEf,CAAC;;;;"}
@@ -72,12 +72,13 @@ const Option = /*#__PURE__*/React__default.forwardRef(function Select2Option(pro
72
72
  }), hasValue ? (/*#__PURE__*/React__default.createElement(Icon, {
73
73
  name: "tick",
74
74
  className: "pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible"
75
- })) : null, isTag ? (/*#__PURE__*/React__default.createElement(Tag, {
75
+ })) : null, typeof children !== 'string' ? (/*#__PURE__*/React__default.createElement("span", null, children)) : isTag ? (/*#__PURE__*/React__default.createElement(Tag, {
76
76
  className: "pointer-events-none my-1",
77
77
  color: color,
78
78
  icon: prefix
79
79
  }, children)) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix ? typeof prefix === 'string' ? /*#__PURE__*/React__default.createElement(Icon, {
80
- name: prefix
80
+ name: prefix,
81
+ className: "!h-5 !w-5"
81
82
  }) : prefix : null, /*#__PURE__*/React__default.createElement("span", {
82
83
  className: "flex w-full justify-between"
83
84
  }, /*#__PURE__*/React__default.createElement("span", {
@@ -86,9 +87,10 @@ const Option = /*#__PURE__*/React__default.forwardRef(function Select2Option(pro
86
87
  className: "text-grey-700 -mt-1.5 mb-1.5 text-xs"
87
88
  }, description) : null), /*#__PURE__*/React__default.createElement("span", {
88
89
  className: "flex flex-col self-center"
89
- }, postfix ? typeof postfix === 'string' ? /*#__PURE__*/React__default.createElement(Icon, {
90
- name: postfix
91
- }) : postfix : null)))), popover ? (/*#__PURE__*/React__default.createElement(IconButton, {
90
+ }, postfix ? typeof postfix === 'string' ? (/*#__PURE__*/React__default.createElement(Icon, {
91
+ name: postfix,
92
+ className: "!h-5 !w-5"
93
+ })) : postfix : null)))), popover ? (/*#__PURE__*/React__default.createElement(IconButton, {
92
94
  icon: "ellipsis-vertical",
93
95
  appearance: "discrete",
94
96
  className: cn('group-aria-current:visible invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black/[.08] focus:!shadow-none group-hover:visible', {
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sources":["../../../../../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tag } from '../../Tag/Tag';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createOptionClassName, getFontSize } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { EditPopover } from './Edit';\nimport { isMobileDevice } from '../../../utils/device';\nimport { Color } from '../../../types';\nimport { FontSize } from '../../../types';\n\nexport type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children' | 'prefix'> & {\n children: string;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | JSX.Element;\n postfix?: IconName | JSX.Element;\n textValue?: string;\n};\n\nexport const Option = React.forwardRef<HTMLDivElement, Select2OptionProps>(function Select2Option(props, ref) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize,\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), getFontSize(fontSize), cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (!multiple) {\n setOpen(false);\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event)) {\n if (!multiple || event.key === 'Tab') {\n setOpen(false);\n }\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? popoverProps => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : null}\n\n {isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? <span className=\"text-grey-700 -mt-1.5 mb-1.5 text-xs\">{description}</span> : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? typeof postfix === 'string' ? <Icon name={postfix} /> : postfix : null}\n </span>\n </span>\n </>\n )}\n {popover ? (\n <IconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'group-aria-current:visible invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black/[.08] focus:!shadow-none group-hover:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndexByElement(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["Option","React","forwardRef","Select2Option","props","ref","children","color","description","prefix","postfix","className","cName","otherProps","fontSize","listboxRef","multiple","onDelete","onEdit","selectRef","setOpen","shouldPauseHoverState","tags","value","useSelect2Context","cn","createOptionClassName","getFontSize","hasValue","Array","isArray","length","undefined","isTag","handleClick","_selectRef$current","current","focus","handleKeyDown","event","isAriaSelectionKey","key","isEmptyOption","popover","popoverProps","_props$textValue","_props$textValue2","EditPopover","textValue","String","text","ListboxPrimitive","onClick","onKeyDown","Icon","name","Tag","icon","IconButton","appearance","isMobileDevice","_window","window","navigator","stopPropagation","_listboxRef$current","setActiveIndexByElement","currentTarget","parentElement","tabIndex"],"mappings":";;;;;;;;;;;;;;;MAwBaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAqC,SAASC,aAAaA,CAACC,KAAK,EAAEC,GAAG;;EACxG,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,WAAW;IAAEC,MAAM;IAAEC,OAAO;IAAEC,SAAS,EAAEC,KAAK;IAAE,GAAGC;GAAY,GAAGT,KAAK;EAChG,MAAM;IACFU,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC,MAAM;IACNb,GAAG,EAAEc,SAAS;IACdC,OAAO;IACPC,qBAAqB;IACrBC,IAAI;IACJC;GACH,GAAGC,iBAAiB,EAAE;EACvB,MAAMb,SAAS,GAAGc,EAAE,CAACC,qBAAqB,CAACL,qBAAqB,CAAC,EAAEM,WAAW,CAACb,QAAQ,CAAC,EAAEF,KAAK,CAAC;EAEhG,MAAMgB,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAACP,KAAK,CAAC,GAAG,CAAC,CAACA,KAAK,CAACQ,MAAM,GAAGR,KAAK,KAAKS,SAAS;EAC5E,MAAMC,KAAK,GAAGX,IAAI,IAAI,CAAC,CAACf,KAAK;EAE7B,MAAM2B,WAAW,GAAGA;IAChB,IAAI,CAAClB,QAAQ,EAAE;MACXI,OAAO,CAAC,KAAK,CAAC;KACjB,MAAM;MAAA,IAAAe,kBAAA;MACH,CAAAA,kBAAA,GAAAhB,SAAS,CAACiB,OAAO,cAAAD,kBAAA,uBAAjBA,kBAAA,CAAmBE,KAAK,EAAE;;GAEjC;EAED,MAAMC,aAAa,GAAIC,KAA0B;IAC7C,IAAIC,kBAAkB,CAACD,KAAK,CAAC,EAAE;MAC3B,IAAI,CAACvB,QAAQ,IAAIuB,KAAK,CAACE,GAAG,KAAK,KAAK,EAAE;QAClCrB,OAAO,CAAC,KAAK,CAAC;;;GAGzB;EAED,MAAMsB,aAAa,GAAGpC,QAAQ,KAAK,EAAE;EAErC,MAAMqC,OAAO,GACTD,aAAa,KAAKxB,MAAM,IAAID,QAAQ,CAAC,GAC/B2B,YAAY;IAAA,IAAAC,gBAAA,EAAAC,iBAAA;IAAA,oBACR7C,6BAAC8C,WAAW,oBACJH,YAAY;MAChBrC,KAAK,EAAEH,KAAK,CAACG,KAAK;MAClBkC,GAAG,GAAAI,gBAAA,GAAEzC,KAAK,CAAC4C,SAAS,cAAAH,gBAAA,cAAAA,gBAAA,GAAII,MAAM,CAAC7C,KAAK,CAACE,QAAQ,CAAC;MAC9C4C,IAAI,GAAAJ,iBAAA,GAAE1C,KAAK,CAAC4C,SAAS,cAAAF,iBAAA,cAAAA,iBAAA,GAAIG,MAAM,CAAC7C,KAAK,CAACE,QAAQ,CAAC;MAC/CiB,KAAK,EAAEnB,KAAK,CAACmB;OACf;GACL,GACDS,SAAS;EAEnB,oBACI/B,6BAACkD,QAAuB,oBAAKtC,UAAU;IAAEF,SAAS,EAAEA,SAAS;IAAEyC,OAAO,EAAElB,WAAW;IAAEmB,SAAS,EAAEf,aAAa;IAAEjC,GAAG,EAAEA;MAC/GuB,QAAQ,iBACL3B,6BAACqD,IAAI;IAACC,IAAI,EAAC,MAAM;IAAC5C,SAAS,EAAC;IAAgF,IAC5G,IAAI,EAEPsB,KAAK,iBACFhC,6BAACuD,GAAG;IAAC7C,SAAS,EAAC,0BAA0B;IAACJ,KAAK,EAAEA,KAAK;IAAEkD,IAAI,EAAEhD;KACzDH,QAAQ,CACP,kBAENL,4DACKQ,MAAM,GAAG,OAAOA,MAAM,KAAK,QAAQ,gBAAGR,6BAACqD,IAAI;IAACC,IAAI,EAAE9C;IAAU,GAAGA,MAAM,GAAG,IAAI,eAC7ER;IAAMU,SAAS,EAAC;kBACZV;IAAMU,SAAS,EAAC;kBACZV,2CAAOK,QAAQ,CAAQ,EACtBE,WAAW,gBAAGP;IAAMU,SAAS,EAAC;KAAwCH,WAAW,CAAQ,GAAG,IAAI,CAC9F,eACPP;IAAMU,SAAS,EAAC;KACXD,OAAO,GAAG,OAAOA,OAAO,KAAK,QAAQ,gBAAGT,6BAACqD,IAAI;IAACC,IAAI,EAAE7C;IAAW,GAAGA,OAAO,GAAG,IAAI,CAC9E,CACJ,CACR,CACN,EACAiC,OAAO,iBACJ1C,6BAACyD,UAAU;IACPD,IAAI,EAAC,mBAAmB;IACxBE,UAAU,EAAC,UAAU;IACrBhD,SAAS,EAAEc,EAAE,CACT,6KAA6K,EAC7K;MACI,UAAU,EAAEmC,cAAc,EAAAC,OAAA,GAACC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS;KAC/C,CACJ;IACDX,OAAO,EAAEb,KAAK;;MACVA,KAAK,CAACyB,eAAe,EAAE;MACvBjD,UAAU,aAAVA,UAAU,wBAAAkD,mBAAA,GAAVlD,UAAU,CAAEqB,OAAO,cAAA6B,mBAAA,uBAAnBA,mBAAA,CAAqBC,uBAAuB,CAAC3B,KAAK,CAAC4B,aAAa,CAACC,aAA+B,CAAC;KACpG;IACDzB,OAAO,EAAEA,OAAO;IAChB0B,QAAQ,EAAE,CAAC;IACb,IACF,IAAI,CACc;AAElC,CAAC;;;;"}
1
+ {"version":3,"file":"Option.js","sources":["../../../../../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tag } from '../../Tag/Tag';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createOptionClassName, getFontSize } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { EditPopover } from './Edit';\nimport { isMobileDevice } from '../../../utils/device';\nimport { Color } from '../../../types';\nimport { FontSize } from '../../../types';\n\nexport type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children' | 'prefix'> & {\n children: string | JSX.Element;\n color?: Color;\n description?: string;\n fontSize?: FontSize;\n prefix?: IconName | JSX.Element;\n postfix?: IconName | JSX.Element;\n textValue?: string;\n};\n\nexport const Option = React.forwardRef<HTMLDivElement, Select2OptionProps>(function Select2Option(props, ref) {\n const { children, color, description, prefix, postfix, className: cName, ...otherProps } = props;\n const {\n fontSize,\n listboxRef,\n multiple,\n onDelete,\n onEdit,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = cn(createOptionClassName(shouldPauseHoverState), getFontSize(fontSize), cName);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (!multiple) {\n setOpen(false);\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event)) {\n if (!multiple || event.key === 'Tab') {\n setOpen(false);\n }\n }\n };\n\n const isEmptyOption = children !== '';\n\n const popover =\n isEmptyOption && (onEdit || onDelete)\n ? popoverProps => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : null}\n\n {typeof children !== 'string' ? (\n <span>{children}</span>\n ) : isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={prefix}>\n {children}\n </Tag>\n ) : (\n <>\n {prefix ? typeof prefix === 'string' ? <Icon name={prefix} className=\"!h-5 !w-5\" /> : prefix : null}\n <span className=\"flex w-full justify-between\">\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? <span className=\"text-grey-700 -mt-1.5 mb-1.5 text-xs\">{description}</span> : null}\n </span>\n <span className=\"flex flex-col self-center\">\n {postfix ? (\n typeof postfix === 'string' ? (\n <Icon name={postfix} className=\"!h-5 !w-5\" />\n ) : (\n postfix\n )\n ) : null}\n </span>\n </span>\n </>\n )}\n {popover ? (\n <IconButton\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn(\n 'group-aria-current:visible invisible -mr-1 ml-auto !h-5 min-h-[theme(spacing.6)] !w-5 min-w-[theme(spacing.6)] hover:!bg-black/[.08] focus:!shadow-none group-hover:visible',\n {\n '!visible': isMobileDevice(window?.navigator),\n }\n )}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndexByElement(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["Option","React","forwardRef","Select2Option","props","ref","children","color","description","prefix","postfix","className","cName","otherProps","fontSize","listboxRef","multiple","onDelete","onEdit","selectRef","setOpen","shouldPauseHoverState","tags","value","useSelect2Context","cn","createOptionClassName","getFontSize","hasValue","Array","isArray","length","undefined","isTag","handleClick","_selectRef$current","current","focus","handleKeyDown","event","isAriaSelectionKey","key","isEmptyOption","popover","popoverProps","_props$textValue","_props$textValue2","EditPopover","textValue","String","text","ListboxPrimitive","onClick","onKeyDown","Icon","name","Tag","icon","IconButton","appearance","isMobileDevice","_window","window","navigator","stopPropagation","_listboxRef$current","setActiveIndexByElement","currentTarget","parentElement","tabIndex"],"mappings":"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"}
@@ -135,7 +135,7 @@ const Single = /*#__PURE__*/React__default.forwardRef(function Select2TriggerSin
135
135
  readOnly,
136
136
  tags
137
137
  } = useSelect2Context();
138
- const contentClassName = cn('truncate items-center gap-1');
138
+ const contentClassName = cn('truncate flex items-center gap-1');
139
139
  const currentValue = children.find(matchesValue(value));
140
140
  let output;
141
141
  if (placeholder && currentValue === undefined) {
@@ -145,13 +145,13 @@ const Single = /*#__PURE__*/React__default.forwardRef(function Select2TriggerSin
145
145
  }, placeholder);
146
146
  } else if (currentValue) {
147
147
  if (tags && emptyValue !== value) {
148
- output = /*#__PURE__*/React__default.createElement(Tag, {
148
+ if (typeof currentValue.props.children === 'string') output = /*#__PURE__*/React__default.createElement(Tag, {
149
149
  className: "truncate",
150
150
  color: currentValue.props.color,
151
151
  disabled: disabled,
152
152
  icon: currentValue.props.prefix,
153
153
  readOnly: readOnly
154
- }, currentValue.props.children);
154
+ }, currentValue.props.children);else output = currentValue.props.children;
155
155
  } else {
156
156
  output = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, currentValue.props.prefix ? typeof currentValue.props.prefix === 'string' ? (/*#__PURE__*/React__default.createElement(Icon, {
157
157
  name: currentValue.props.prefix,
@@ -202,7 +202,7 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
202
202
  }, valuesAsChildren.length === 0 ? (/*#__PURE__*/React__default.createElement(Placeholder, {
203
203
  disabled: disabled,
204
204
  readOnly: readOnly
205
- }, placeholder)) : valuesAsChildren.map(child => (/*#__PURE__*/React__default.createElement(Tag, {
205
+ }, placeholder)) : valuesAsChildren.map(child => typeof child.props.children === 'string' ? (/*#__PURE__*/React__default.createElement(Tag, {
206
206
  key: String(child.props.value),
207
207
  className: "truncate",
208
208
  color: tags ? child.props.color : undefined,
@@ -216,7 +216,23 @@ const Multiple = /*#__PURE__*/React__default.forwardRef(function Select2TriggerM
216
216
  }
217
217
  },
218
218
  readOnly: readOnly
219
- }, child.props.children)))));
219
+ }, child.props.children)) : (/*#__PURE__*/React__default.cloneElement(child.props.children, {
220
+ key: String(child.props.value),
221
+ className: '!pr-0 !pl-1.5',
222
+ children: (/*#__PURE__*/React__default.createElement("span", {
223
+ className: "flex items-center"
224
+ }, child.props.children.props.children, /*#__PURE__*/React__default.createElement(Icon, {
225
+ name: "close",
226
+ onClick: event => {
227
+ event === null || event === void 0 ? void 0 : event.stopPropagation();
228
+ event === null || event === void 0 ? void 0 : event.preventDefault();
229
+ if (!disabled && !readOnly) {
230
+ setValue(child.props.value);
231
+ }
232
+ },
233
+ className: "ml-0.5 !h-5 !w-5 shrink-0 cursor-pointer rounded-r p-0.5 hover:bg-black/5"
234
+ })))
235
+ })))));
220
236
  } else {
221
237
  content = /*#__PURE__*/React__default.createElement(MultipleValue, {
222
238
  onClick: forwardClick,
@@ -247,6 +263,18 @@ const MultipleValue = ({
247
263
  } = useSelect2Context();
248
264
  const [contentRef, setContentRef] = React__default.useState(null);
249
265
  const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;
266
+ // Retrieves the relevant text content from any JSX.Element passed as a select option, handling nested elements, arrays, and direct text
267
+ const getTooltipTitle = child => {
268
+ const children = child.props.children;
269
+ if (typeof children === 'string') return children;
270
+ if (typeof children.props.children === 'string') {
271
+ return children.props.children;
272
+ }
273
+ if (Array.isArray(children.props.children)) {
274
+ return children.props.children.filter(item => typeof item === 'string');
275
+ }
276
+ return '';
277
+ };
250
278
  return /*#__PURE__*/React__default.createElement("div", {
251
279
  className: "relative flex w-full items-center gap-1 overflow-hidden",
252
280
  onClick: onClick
@@ -257,26 +285,35 @@ const MultipleValue = ({
257
285
  disabled: disabled,
258
286
  readOnly: readOnly
259
287
  }, placeholder)) : valuesAsChildren.map((child, index) => {
260
- const tag = /*#__PURE__*/React__default.createElement(Tag, {
261
- key: String(child.props.value),
288
+ const classNames = {
289
+ truncate: index === boundaryIndex,
290
+ hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false
291
+ };
292
+ let output;
293
+ if (typeof child.props.children === 'string') {
294
+ output = /*#__PURE__*/React__default.createElement(Tag, {
295
+ key: String(child.props.value),
296
+ className: cn('cursor-pointer', classNames),
297
+ color: tags ? child.props.color : undefined,
298
+ disabled: disabled,
299
+ icon: child.props.prefix,
300
+ readOnly: readOnly
301
+ }, child.props.children);
302
+ } else output = /*#__PURE__*/React__default.cloneElement(child.props.children, {
262
303
  className: cn('cursor-pointer', {
263
- truncate: index === boundaryIndex,
264
- hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false
265
- }),
266
- color: tags ? child.props.color : undefined,
267
- disabled: disabled,
268
- icon: child.props.prefix,
269
- readOnly: readOnly
270
- }, child.props.children);
304
+ 'shrink-0': index !== boundaryIndex
305
+ }, classNames),
306
+ key: String(child.props.value)
307
+ });
271
308
  if (index === boundaryIndex) {
272
309
  return /*#__PURE__*/React__default.createElement(Tooltip, {
273
310
  key: String(child.props.value),
274
- title: String(child.props.children)
275
- }, tag);
311
+ title: String(getTooltipTitle(child))
312
+ }, output);
276
313
  }
277
- return tag;
314
+ return output;
278
315
  })), boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (/*#__PURE__*/React__default.createElement(Tooltip, {
279
- title: valuesAsChildren.slice(boundaryIndex + 1).map(child => child ? String(child.props.children) : '').join(', ')
316
+ title: valuesAsChildren.slice(boundaryIndex + 1).map(child => child ? String(getTooltipTitle(child)) : '').join(', ')
280
317
  }, /*#__PURE__*/React__default.createElement(Badge, {
281
318
  className: "flex-shrink-0"
282
319
  }, "+", valuesAsChildren.length - (boundaryIndex + 1)))) : null);
@@ -1 +1 @@
1
- {"version":3,"file":"Trigger.js","sources":["../../../../../../../../src/components/Select2/components/Trigger.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Tag } from '../../Tag/Tag';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Icon } from '../../Icon/Icon';\nimport { Badge } from '../../Badge/Badge';\nimport { getInputClasses } from '../../Input/util';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { getIndexOfFirstChildOverflowingParent, isElementInsideOrTriggeredFromContainer } from '../../../utils/dom';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { getFontSize } from '../utilities';\n\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n emptyValue?: Select2OptionValue;\n placeholder?: string;\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nconst Placeholder = ({ disabled, readOnly, ...props }) => {\n if (readOnly) {\n return null;\n }\n return <div {...props} className={cn({ 'text-grey-700': disabled, 'text-grey-500': !disabled })} />;\n};\n\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\n const { multiple, value } = useSelect2Context();\n\n if (Array.isArray(value) || multiple) {\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\n return <Multiple {...props} ref={ref} values={values} />;\n }\n\n return <Single {...props} ref={ref} value={value} />;\n});\n\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\n const { children, onBlur, onClick, onFocus, tabIndex = 0, ...otherProps } = props;\n const { disabled, fontSize, highlighted, invalid, open, readOnly } = useSelect2Context();\n\n const className = cn(\n 'px-1.5 h-fit',\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly })\n .replace('w-full', '')\n .replace('px-2', ''),\n getFontSize(fontSize),\n {\n 'select-text': readOnly,\n 'w-full': !props.className?.includes('w-'),\n },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n let handleBlur;\n\n if (typeof onBlur === 'function') {\n // we might be focusing on an input or something inside the dropdown that was triggered by the select\n // so see if the element gaining focus is inside a portal and look up its controller\n // if we don't do this, things like validate on blur occur while simply opening the select\n handleBlur = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {\n return;\n }\n\n onBlur(event);\n };\n }\n\n // select the value text if the select is readonly\n const handleFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (readOnly) {\n const value = event.currentTarget.querySelector(':first-child');\n\n if (value) {\n window.getSelection()?.selectAllChildren?.(value);\n }\n }\n\n if (typeof onFocus === 'function') {\n onFocus(event);\n }\n };\n\n return (\n <button\n {...otherProps}\n aria-invalid={invalid ? true : undefined}\n aria-readonly={readOnly ? true : undefined}\n className={className}\n disabled={disabled}\n onClick={handleClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n ref={ref}\n role=\"combobox\"\n tabIndex={disabled ? -1 : tabIndex}\n type=\"button\">\n {children}\n {readOnly ? null : <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"pointer-events-none -mr-1 ml-auto\" />}\n </button>\n );\n});\n\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue; placeholder?: string };\n\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\n const { children, emptyValue, value, placeholder, ...buttonProps } = props;\n const { disabled, readOnly, tags } = useSelect2Context();\n const contentClassName = cn('truncate items-center gap-1');\n\n const currentValue = children.find(matchesValue(value));\n\n let output;\n\n if (placeholder && currentValue === undefined) {\n output = (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n );\n } else if (currentValue) {\n if (tags && emptyValue !== value) {\n output = (\n <Tag\n className=\"truncate\"\n color={currentValue.props.color}\n disabled={disabled}\n icon={currentValue.props.prefix}\n readOnly={readOnly}>\n {currentValue.props.children}\n </Tag>\n );\n } else {\n output = (\n <>\n {currentValue.props.prefix ? (\n typeof currentValue.props.prefix === 'string' ? (\n <Icon name={currentValue.props.prefix} className=\"mr-1 !h-5 !w-5\" />\n ) : (\n currentValue.props.prefix\n )\n ) : null}\n {currentValue.props.children}\n </>\n );\n }\n }\n\n return (\n <Button {...buttonProps} ref={ref}>\n <div className={contentClassName}>{output}</div>\n </Button>\n );\n});\n\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\n values?: Select2OptionValue[];\n};\n\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\n const { children, emptyValue: _, values = [], placeholder, ...buttonProps } = props;\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const buttonRef = useMergedRef<HTMLButtonElement>(ref);\n\n const valuesAsChildren = values\n .map(value => children.find(c => c.props.value === value))\n .filter(c => !!c) as React.ReactElement<Select2OptionProps>[];\n\n const forwardClick = event => {\n event.preventDefault();\n buttonRef.current?.click();\n };\n\n let content;\n let { className } = buttonProps;\n\n if (open) {\n className = cn('!absolute z-20 !h-fit', buttonProps.className);\n content = (\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\" onClick={forwardClick}>\n <div className=\"flex flex-wrap gap-1\">\n {valuesAsChildren.length === 0 ? (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n ) : (\n valuesAsChildren.map(child => (\n <Tag\n key={String(child.props.value)}\n className=\"truncate\"\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.prefix}\n onDelete={event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(child.props.value);\n }\n }}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n ))\n )}\n </div>\n </ScrollArea>\n );\n } else {\n content = <MultipleValue onClick={forwardClick} valuesAsChildren={valuesAsChildren} placeholder={placeholder} />;\n }\n\n return (\n <div\n className=\"relative inline-flex h-fit flex-grow\"\n data-taco=\"select2-container\"\n style={{ width: open ? buttonRef.current?.offsetWidth : undefined }}>\n <Button {...buttonProps} className={className} ref={buttonRef}>\n {content}\n </Button>\n </div>\n );\n});\n\ntype MultipleValueProps = Omit<Select2TriggerProps, 'value' | 'children'> & {\n valuesAsChildren: React.ReactElement<Select2OptionProps>[];\n placeholder?: string;\n onClick?: (event: any) => void;\n};\n\nconst MultipleValue = ({ onClick, valuesAsChildren, placeholder }: MultipleValueProps) => {\n const { disabled, readOnly, tags } = useSelect2Context();\n const [contentRef, setContentRef] = React.useState<HTMLDivElement | null>(null);\n const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;\n\n return (\n <div className=\"relative flex w-full items-center gap-1 overflow-hidden\" onClick={onClick}>\n <div className=\"flex flex-1 gap-1 truncate\" ref={ref => setContentRef(ref)}>\n {valuesAsChildren.length === 0 ? (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n ) : (\n valuesAsChildren.map((child, index) => {\n const tag = (\n <Tag\n key={String(child.props.value)}\n className={cn('cursor-pointer', {\n truncate: index === boundaryIndex,\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\n })}\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.prefix}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n );\n\n if (index === boundaryIndex) {\n return (\n <Tooltip key={String(child.props.value)} title={String(child.props.children)}>\n {tag}\n </Tooltip>\n );\n }\n\n return tag;\n })\n )}\n </div>\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\n <Tooltip\n title={valuesAsChildren\n .slice(boundaryIndex + 1)\n .map(child => (child ? String(child.props.children) : ''))\n .join(', ')}>\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\n </Tooltip>\n ) : null}\n </div>\n );\n};\n\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\n if (Array.isArray(value)) {\n return value.includes(child.props.value);\n }\n\n return child.props.value === value;\n};\n"],"names":["Placeholder","disabled","readOnly","props","React","className","cn","Trigger","forwardRef","Select2Trigger","ref","multiple","value","useSelect2Context","Array","isArray","values","undefined","Multiple","Single","Button","Select2TriggerButton","children","onBlur","onClick","onFocus","tabIndex","otherProps","fontSize","highlighted","invalid","open","getInputClasses","replace","getFontSize","_props$className","includes","handleClick","event","preventDefault","handleBlur","isElementInsideOrTriggeredFromContainer","relatedTarget","currentTarget","handleFocus","querySelector","_window$getSelection","_window$getSelection$","window","getSelection","selectAllChildren","call","role","type","Icon","name","Select2TriggerSingle","emptyValue","placeholder","buttonProps","tags","contentClassName","currentValue","find","matchesValue","output","Tag","color","icon","prefix","Select2TriggerMultiple","_","setValue","buttonRef","useMergedRef","valuesAsChildren","map","c","filter","forwardClick","_buttonRef$current","current","click","content","ScrollArea","length","child","key","String","onDelete","stopPropagation","MultipleValue","style","width","_buttonRef$current2","offsetWidth","contentRef","setContentRef","useState","boundaryIndex","getIndexOfFirstChildOverflowingParent","index","tag","truncate","hidden","Tooltip","title","slice","join","Badge"],"mappings":"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"}
1
+ {"version":3,"file":"Trigger.js","sources":["../../../../../../../../src/components/Select2/components/Trigger.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Tag } from '../../Tag/Tag';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Icon } from '../../Icon/Icon';\nimport { Badge, BadgeProps } from '../../Badge/Badge';\nimport { getInputClasses } from '../../Input/util';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { getIndexOfFirstChildOverflowingParent, isElementInsideOrTriggeredFromContainer } from '../../../utils/dom';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { getFontSize } from '../utilities';\n\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n emptyValue?: Select2OptionValue;\n placeholder?: string;\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nconst Placeholder = ({ disabled, readOnly, ...props }) => {\n if (readOnly) {\n return null;\n }\n return <div {...props} className={cn({ 'text-grey-700': disabled, 'text-grey-500': !disabled })} />;\n};\n\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\n const { multiple, value } = useSelect2Context();\n\n if (Array.isArray(value) || multiple) {\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\n return <Multiple {...props} ref={ref} values={values} />;\n }\n\n return <Single {...props} ref={ref} value={value} />;\n});\n\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\n const { children, onBlur, onClick, onFocus, tabIndex = 0, ...otherProps } = props;\n const { disabled, fontSize, highlighted, invalid, open, readOnly } = useSelect2Context();\n\n const className = cn(\n 'px-1.5 h-fit',\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly })\n .replace('w-full', '')\n .replace('px-2', ''),\n getFontSize(fontSize),\n {\n 'select-text': readOnly,\n 'w-full': !props.className?.includes('w-'),\n },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n let handleBlur;\n\n if (typeof onBlur === 'function') {\n // we might be focusing on an input or something inside the dropdown that was triggered by the select\n // so see if the element gaining focus is inside a portal and look up its controller\n // if we don't do this, things like validate on blur occur while simply opening the select\n handleBlur = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {\n return;\n }\n\n onBlur(event);\n };\n }\n\n // select the value text if the select is readonly\n const handleFocus = (event: React.FocusEvent<HTMLButtonElement>) => {\n if (readOnly) {\n const value = event.currentTarget.querySelector(':first-child');\n\n if (value) {\n window.getSelection()?.selectAllChildren?.(value);\n }\n }\n\n if (typeof onFocus === 'function') {\n onFocus(event);\n }\n };\n\n return (\n <button\n {...otherProps}\n aria-invalid={invalid ? true : undefined}\n aria-readonly={readOnly ? true : undefined}\n className={className}\n disabled={disabled}\n onClick={handleClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n ref={ref}\n role=\"combobox\"\n tabIndex={disabled ? -1 : tabIndex}\n type=\"button\">\n {children}\n {readOnly ? null : <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"pointer-events-none -mr-1 ml-auto\" />}\n </button>\n );\n});\n\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue; placeholder?: string };\n\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\n const { children, emptyValue, value, placeholder, ...buttonProps } = props;\n const { disabled, readOnly, tags } = useSelect2Context();\n const contentClassName = cn('truncate flex items-center gap-1');\n\n const currentValue = children.find(matchesValue(value));\n\n let output;\n\n if (placeholder && currentValue === undefined) {\n output = (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n );\n } else if (currentValue) {\n if (tags && emptyValue !== value) {\n if (typeof currentValue.props.children === 'string')\n output = (\n <Tag\n className=\"truncate\"\n color={currentValue.props.color}\n disabled={disabled}\n icon={currentValue.props.prefix}\n readOnly={readOnly}>\n {currentValue.props.children}\n </Tag>\n );\n else output = currentValue.props.children;\n } else {\n output = (\n <>\n {currentValue.props.prefix ? (\n typeof currentValue.props.prefix === 'string' ? (\n <Icon name={currentValue.props.prefix} className=\"mr-1 !h-5 !w-5\" />\n ) : (\n currentValue.props.prefix\n )\n ) : null}\n {currentValue.props.children}\n </>\n );\n }\n }\n\n return (\n <Button {...buttonProps} ref={ref}>\n <div className={contentClassName}>{output}</div>\n </Button>\n );\n});\n\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\n values?: Select2OptionValue[];\n};\n\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\n const { children, emptyValue: _, values = [], placeholder, ...buttonProps } = props;\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const buttonRef = useMergedRef<HTMLButtonElement>(ref);\n\n const valuesAsChildren = values\n .map(value => children.find(c => c.props.value === value))\n .filter(c => !!c) as React.ReactElement<Select2OptionProps>[];\n\n const forwardClick = event => {\n event.preventDefault();\n buttonRef.current?.click();\n };\n\n let content;\n let { className } = buttonProps;\n\n if (open) {\n className = cn('!absolute z-20 !h-fit', buttonProps.className);\n content = (\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\" onClick={forwardClick}>\n <div className=\"flex flex-wrap gap-1\">\n {valuesAsChildren.length === 0 ? (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n ) : (\n valuesAsChildren.map(child =>\n typeof child.props.children === 'string' ? (\n <Tag\n key={String(child.props.value)}\n className=\"truncate\"\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.prefix}\n onDelete={event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(child.props.value);\n }\n }}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n ) : (\n React.cloneElement(\n child.props.children as React.ReactElement<\n typeof Badge & {\n children: BadgeProps['children'];\n className: BadgeProps['className'];\n }\n >,\n {\n key: String(child.props.value),\n className: '!pr-0 !pl-1.5',\n children: (\n <span className=\"flex items-center\">\n {(child.props.children as React.ReactElement).props.children}\n <Icon\n name=\"close\"\n onClick={event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(child.props.value);\n }\n }}\n className=\"ml-0.5 !h-5 !w-5 shrink-0 cursor-pointer rounded-r p-0.5 hover:bg-black/5\"\n />\n </span>\n ),\n }\n )\n )\n )\n )}\n </div>\n </ScrollArea>\n );\n } else {\n content = <MultipleValue onClick={forwardClick} valuesAsChildren={valuesAsChildren} placeholder={placeholder} />;\n }\n\n return (\n <div\n className=\"relative inline-flex h-fit flex-grow\"\n data-taco=\"select2-container\"\n style={{ width: open ? buttonRef.current?.offsetWidth : undefined }}>\n <Button {...buttonProps} className={className} ref={buttonRef}>\n {content}\n </Button>\n </div>\n );\n});\n\ntype MultipleValueProps = Omit<Select2TriggerProps, 'value' | 'children'> & {\n valuesAsChildren: React.ReactElement<Select2OptionProps>[];\n placeholder?: string;\n onClick?: (event: any) => void;\n};\n\nconst MultipleValue = ({ onClick, valuesAsChildren, placeholder }: MultipleValueProps) => {\n const { disabled, readOnly, tags } = useSelect2Context();\n const [contentRef, setContentRef] = React.useState<HTMLDivElement | null>(null);\n const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;\n\n // Retrieves the relevant text content from any JSX.Element passed as a select option, handling nested elements, arrays, and direct text\n const getTooltipTitle = (child: React.ReactElement): string | string[] => {\n const children = child.props.children;\n\n if (typeof children === 'string') return children;\n if (typeof children.props.children === 'string') {\n return children.props.children;\n }\n\n if (Array.isArray(children.props.children)) {\n return children.props.children.filter(item => typeof item === 'string');\n }\n\n return '';\n };\n\n return (\n <div className=\"relative flex w-full items-center gap-1 overflow-hidden\" onClick={onClick}>\n <div className=\"flex flex-1 gap-1 truncate\" ref={ref => setContentRef(ref)}>\n {valuesAsChildren.length === 0 ? (\n <Placeholder disabled={disabled} readOnly={readOnly}>\n {placeholder}\n </Placeholder>\n ) : (\n valuesAsChildren.map((child, index) => {\n const classNames = {\n truncate: index === boundaryIndex,\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\n };\n let output;\n if (typeof child.props.children === 'string') {\n output = (\n <Tag\n key={String(child.props.value)}\n className={cn('cursor-pointer', classNames)}\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.prefix}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n );\n } else\n output = React.cloneElement(\n child.props.children as React.ReactElement<\n typeof Badge & {\n className: BadgeProps['className'];\n }\n >,\n {\n className: cn('cursor-pointer', { 'shrink-0': index !== boundaryIndex }, classNames),\n key: String(child.props.value),\n }\n );\n\n if (index === boundaryIndex) {\n return (\n <Tooltip key={String(child.props.value)} title={String(getTooltipTitle(child))}>\n {output}\n </Tooltip>\n );\n }\n\n return output;\n })\n )}\n </div>\n\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\n <Tooltip\n title={valuesAsChildren\n .slice(boundaryIndex + 1)\n .map(child => (child ? String(getTooltipTitle(child)) : ''))\n .join(', ')}>\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\n </Tooltip>\n ) : null}\n </div>\n );\n};\n\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\n if (Array.isArray(value)) {\n return value.includes(child.props.value);\n }\n\n return child.props.value === value;\n};\n"],"names":["Placeholder","disabled","readOnly","props","React","className","cn","Trigger","forwardRef","Select2Trigger","ref","multiple","value","useSelect2Context","Array","isArray","values","undefined","Multiple","Single","Button","Select2TriggerButton","children","onBlur","onClick","onFocus","tabIndex","otherProps","fontSize","highlighted","invalid","open","getInputClasses","replace","getFontSize","_props$className","includes","handleClick","event","preventDefault","handleBlur","isElementInsideOrTriggeredFromContainer","relatedTarget","currentTarget","handleFocus","querySelector","_window$getSelection","_window$getSelection$","window","getSelection","selectAllChildren","call","role","type","Icon","name","Select2TriggerSingle","emptyValue","placeholder","buttonProps","tags","contentClassName","currentValue","find","matchesValue","output","Tag","color","icon","prefix","Select2TriggerMultiple","_","setValue","buttonRef","useMergedRef","valuesAsChildren","map","c","filter","forwardClick","_buttonRef$current","current","click","content","ScrollArea","length","child","key","String","onDelete","stopPropagation","cloneElement","MultipleValue","style","width","_buttonRef$current2","offsetWidth","contentRef","setContentRef","useState","boundaryIndex","getIndexOfFirstChildOverflowingParent","getTooltipTitle","item","index","classNames","truncate","hidden","Tooltip","title","slice","join","Badge"],"mappings":"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"}