@adminiumjs/widgets 0.1.0-rc.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/LICENSE +661 -0
- package/dist/binding/StreamTransportContext.d.ts +18 -0
- package/dist/binding/StreamTransportContext.d.ts.map +1 -0
- package/dist/binding/StreamTransportContext.js +19 -0
- package/dist/binding/StreamTransportContext.js.map +1 -0
- package/dist/binding/demo-stream.d.ts +59 -0
- package/dist/binding/demo-stream.d.ts.map +1 -0
- package/dist/binding/demo-stream.js +90 -0
- package/dist/binding/demo-stream.js.map +1 -0
- package/dist/binding/index.d.ts +14 -0
- package/dist/binding/index.d.ts.map +1 -0
- package/dist/binding/index.js +13 -0
- package/dist/binding/index.js.map +1 -0
- package/dist/binding/stream-buffer.d.ts +44 -0
- package/dist/binding/stream-buffer.d.ts.map +1 -0
- package/dist/binding/stream-buffer.js +65 -0
- package/dist/binding/stream-buffer.js.map +1 -0
- package/dist/binding/stream-channel.d.ts +24 -0
- package/dist/binding/stream-channel.d.ts.map +1 -0
- package/dist/binding/stream-channel.js +27 -0
- package/dist/binding/stream-channel.js.map +1 -0
- package/dist/binding/stream-types.d.ts +67 -0
- package/dist/binding/stream-types.d.ts.map +1 -0
- package/dist/binding/stream-types.js +19 -0
- package/dist/binding/stream-types.js.map +1 -0
- package/dist/binding/useWidgetStream.d.ts +56 -0
- package/dist/binding/useWidgetStream.d.ts.map +1 -0
- package/dist/binding/useWidgetStream.js +144 -0
- package/dist/binding/useWidgetStream.js.map +1 -0
- package/dist/families/boards/BoardCard.d.ts +48 -0
- package/dist/families/boards/BoardCard.d.ts.map +1 -0
- package/dist/families/boards/BoardCard.js +58 -0
- package/dist/families/boards/BoardCard.js.map +1 -0
- package/dist/families/boards/InlineComposeCard.d.ts +35 -0
- package/dist/families/boards/InlineComposeCard.d.ts.map +1 -0
- package/dist/families/boards/InlineComposeCard.js +65 -0
- package/dist/families/boards/InlineComposeCard.js.map +1 -0
- package/dist/families/boards/KanbanBoard.d.ts +30 -0
- package/dist/families/boards/KanbanBoard.d.ts.map +1 -0
- package/dist/families/boards/KanbanBoard.js +141 -0
- package/dist/families/boards/KanbanBoard.js.map +1 -0
- package/dist/families/boards/KanbanSwimlaneGrid.d.ts +40 -0
- package/dist/families/boards/KanbanSwimlaneGrid.d.ts.map +1 -0
- package/dist/families/boards/KanbanSwimlaneGrid.js +162 -0
- package/dist/families/boards/KanbanSwimlaneGrid.js.map +1 -0
- package/dist/families/boards/board-dnd.d.ts +131 -0
- package/dist/families/boards/board-dnd.d.ts.map +1 -0
- package/dist/families/boards/board-dnd.js +186 -0
- package/dist/families/boards/board-dnd.js.map +1 -0
- package/dist/families/boards/board-lib.d.ts +124 -0
- package/dist/families/boards/board-lib.d.ts.map +1 -0
- package/dist/families/boards/board-lib.js +170 -0
- package/dist/families/boards/board-lib.js.map +1 -0
- package/dist/families/boards/boards-config.d.ts +712 -0
- package/dist/families/boards/boards-config.d.ts.map +1 -0
- package/dist/families/boards/boards-config.js +220 -0
- package/dist/families/boards/boards-config.js.map +1 -0
- package/dist/families/boards/boards-track-components.d.ts +13 -0
- package/dist/families/boards/boards-track-components.d.ts.map +1 -0
- package/dist/families/boards/boards-track-components.js +14 -0
- package/dist/families/boards/boards-track-components.js.map +1 -0
- package/dist/families/boards/boards-track.definitions.d.ts +20 -0
- package/dist/families/boards/boards-track.definitions.d.ts.map +1 -0
- package/dist/families/boards/boards-track.definitions.js +80 -0
- package/dist/families/boards/boards-track.definitions.js.map +1 -0
- package/dist/families/boards/index.d.ts +15 -0
- package/dist/families/boards/index.d.ts.map +1 -0
- package/dist/families/boards/index.js +15 -0
- package/dist/families/boards/index.js.map +1 -0
- package/dist/families/calendar/CalendarLegendFilter.d.ts +41 -0
- package/dist/families/calendar/CalendarLegendFilter.d.ts.map +1 -0
- package/dist/families/calendar/CalendarLegendFilter.js +54 -0
- package/dist/families/calendar/CalendarLegendFilter.js.map +1 -0
- package/dist/families/calendar/CalendarMonth.d.ts +35 -0
- package/dist/families/calendar/CalendarMonth.d.ts.map +1 -0
- package/dist/families/calendar/CalendarMonth.js +123 -0
- package/dist/families/calendar/CalendarMonth.js.map +1 -0
- package/dist/families/calendar/CapacityBoard.d.ts +29 -0
- package/dist/families/calendar/CapacityBoard.d.ts.map +1 -0
- package/dist/families/calendar/CapacityBoard.js +61 -0
- package/dist/families/calendar/CapacityBoard.js.map +1 -0
- package/dist/families/calendar/DateRangePicker.d.ts +50 -0
- package/dist/families/calendar/DateRangePicker.d.ts.map +1 -0
- package/dist/families/calendar/DateRangePicker.js +119 -0
- package/dist/families/calendar/DateRangePicker.js.map +1 -0
- package/dist/families/calendar/DayAgenda.d.ts +26 -0
- package/dist/families/calendar/DayAgenda.d.ts.map +1 -0
- package/dist/families/calendar/DayAgenda.js +65 -0
- package/dist/families/calendar/DayAgenda.js.map +1 -0
- package/dist/families/calendar/ScheduleMatrix.d.ts +37 -0
- package/dist/families/calendar/ScheduleMatrix.d.ts.map +1 -0
- package/dist/families/calendar/ScheduleMatrix.js +114 -0
- package/dist/families/calendar/ScheduleMatrix.js.map +1 -0
- package/dist/families/calendar/ScheduledJobsList.d.ts +40 -0
- package/dist/families/calendar/ScheduledJobsList.d.ts.map +1 -0
- package/dist/families/calendar/ScheduledJobsList.js +72 -0
- package/dist/families/calendar/ScheduledJobsList.js.map +1 -0
- package/dist/families/calendar/UpcomingEventsList.d.ts +54 -0
- package/dist/families/calendar/UpcomingEventsList.d.ts.map +1 -0
- package/dist/families/calendar/UpcomingEventsList.js +80 -0
- package/dist/families/calendar/UpcomingEventsList.js.map +1 -0
- package/dist/families/calendar/calendar-config.d.ts +1267 -0
- package/dist/families/calendar/calendar-config.d.ts.map +1 -0
- package/dist/families/calendar/calendar-config.js +386 -0
- package/dist/families/calendar/calendar-config.js.map +1 -0
- package/dist/families/calendar/calendar-lib.d.ts +200 -0
- package/dist/families/calendar/calendar-lib.d.ts.map +1 -0
- package/dist/families/calendar/calendar-lib.js +365 -0
- package/dist/families/calendar/calendar-lib.js.map +1 -0
- package/dist/families/calendar/calendar-track-components.d.ts +16 -0
- package/dist/families/calendar/calendar-track-components.d.ts.map +1 -0
- package/dist/families/calendar/calendar-track-components.js +17 -0
- package/dist/families/calendar/calendar-track-components.js.map +1 -0
- package/dist/families/calendar/calendar-track.definitions.d.ts +24 -0
- package/dist/families/calendar/calendar-track.definitions.d.ts.map +1 -0
- package/dist/families/calendar/calendar-track.definitions.js +133 -0
- package/dist/families/calendar/calendar-track.definitions.js.map +1 -0
- package/dist/families/calendar/calendar-types.d.ts +135 -0
- package/dist/families/calendar/calendar-types.d.ts.map +1 -0
- package/dist/families/calendar/calendar-types.js +9 -0
- package/dist/families/calendar/calendar-types.js.map +1 -0
- package/dist/families/calendar/index.d.ts +20 -0
- package/dist/families/calendar/index.d.ts.map +1 -0
- package/dist/families/calendar/index.js +20 -0
- package/dist/families/calendar/index.js.map +1 -0
- package/dist/families/charts/BarsRankingWidgets.d.ts +10 -0
- package/dist/families/charts/BarsRankingWidgets.d.ts.map +1 -0
- package/dist/families/charts/BarsRankingWidgets.js +74 -0
- package/dist/families/charts/BarsRankingWidgets.js.map +1 -0
- package/dist/families/charts/ChartWidgets.d.ts +23 -0
- package/dist/families/charts/ChartWidgets.d.ts.map +1 -0
- package/dist/families/charts/ChartWidgets.js +82 -0
- package/dist/families/charts/ChartWidgets.js.map +1 -0
- package/dist/families/charts/DistributionCorrelationWidgets.d.ts +18 -0
- package/dist/families/charts/DistributionCorrelationWidgets.d.ts.map +1 -0
- package/dist/families/charts/DistributionCorrelationWidgets.js +132 -0
- package/dist/families/charts/DistributionCorrelationWidgets.js.map +1 -0
- package/dist/families/charts/MatrixGeoWidgets.d.ts +794 -0
- package/dist/families/charts/MatrixGeoWidgets.d.ts.map +1 -0
- package/dist/families/charts/MatrixGeoWidgets.js +213 -0
- package/dist/families/charts/MatrixGeoWidgets.js.map +1 -0
- package/dist/families/charts/PartWholeWidgets.d.ts +10 -0
- package/dist/families/charts/PartWholeWidgets.d.ts.map +1 -0
- package/dist/families/charts/PartWholeWidgets.js +67 -0
- package/dist/families/charts/PartWholeWidgets.js.map +1 -0
- package/dist/families/charts/TimeFlowWidgets.d.ts +10 -0
- package/dist/families/charts/TimeFlowWidgets.d.ts.map +1 -0
- package/dist/families/charts/TimeFlowWidgets.js +73 -0
- package/dist/families/charts/TimeFlowWidgets.js.map +1 -0
- package/dist/families/charts/bars-ranking-components.d.ts +8 -0
- package/dist/families/charts/bars-ranking-components.d.ts.map +1 -0
- package/dist/families/charts/bars-ranking-components.js +8 -0
- package/dist/families/charts/bars-ranking-components.js.map +1 -0
- package/dist/families/charts/bars-ranking-config.d.ts +1035 -0
- package/dist/families/charts/bars-ranking-config.d.ts.map +1 -0
- package/dist/families/charts/bars-ranking-config.js +72 -0
- package/dist/families/charts/bars-ranking-config.js.map +1 -0
- package/dist/families/charts/bars-ranking-definitions.d.ts +3 -0
- package/dist/families/charts/bars-ranking-definitions.d.ts.map +1 -0
- package/dist/families/charts/bars-ranking-definitions.js +107 -0
- package/dist/families/charts/bars-ranking-definitions.js.map +1 -0
- package/dist/families/charts/bars-ranking-demo.d.ts +41 -0
- package/dist/families/charts/bars-ranking-demo.d.ts.map +1 -0
- package/dist/families/charts/bars-ranking-demo.js +91 -0
- package/dist/families/charts/bars-ranking-demo.js.map +1 -0
- package/dist/families/charts/bars-ranking-shapes.d.ts +39 -0
- package/dist/families/charts/bars-ranking-shapes.d.ts.map +1 -0
- package/dist/families/charts/bars-ranking-shapes.js +115 -0
- package/dist/families/charts/bars-ranking-shapes.js.map +1 -0
- package/dist/families/charts/charts-config.d.ts +607 -0
- package/dist/families/charts/charts-config.d.ts.map +1 -0
- package/dist/families/charts/charts-config.js +56 -0
- package/dist/families/charts/charts-config.js.map +1 -0
- package/dist/families/charts/components.d.ts +6 -0
- package/dist/families/charts/components.d.ts.map +1 -0
- package/dist/families/charts/components.js +6 -0
- package/dist/families/charts/components.js.map +1 -0
- package/dist/families/charts/def.part-whole.d.ts +63 -0
- package/dist/families/charts/def.part-whole.d.ts.map +1 -0
- package/dist/families/charts/def.part-whole.js +203 -0
- package/dist/families/charts/def.part-whole.js.map +1 -0
- package/dist/families/charts/definitions.d.ts +37 -0
- package/dist/families/charts/definitions.d.ts.map +1 -0
- package/dist/families/charts/definitions.distribution-correlation.d.ts +3 -0
- package/dist/families/charts/definitions.distribution-correlation.d.ts.map +1 -0
- package/dist/families/charts/definitions.distribution-correlation.js +124 -0
- package/dist/families/charts/definitions.distribution-correlation.js.map +1 -0
- package/dist/families/charts/definitions.js +89 -0
- package/dist/families/charts/definitions.js.map +1 -0
- package/dist/families/charts/defs.matrix-geo.d.ts +63 -0
- package/dist/families/charts/defs.matrix-geo.d.ts.map +1 -0
- package/dist/families/charts/defs.matrix-geo.js +201 -0
- package/dist/families/charts/defs.matrix-geo.js.map +1 -0
- package/dist/families/charts/distributionShapes.d.ts +1049 -0
- package/dist/families/charts/distributionShapes.d.ts.map +1 -0
- package/dist/families/charts/distributionShapes.js +321 -0
- package/dist/families/charts/distributionShapes.js.map +1 -0
- package/dist/families/charts/index.d.ts +18 -0
- package/dist/families/charts/index.d.ts.map +1 -0
- package/dist/families/charts/index.js +15 -0
- package/dist/families/charts/index.js.map +1 -0
- package/dist/families/charts/part-whole-config.d.ts +1058 -0
- package/dist/families/charts/part-whole-config.d.ts.map +1 -0
- package/dist/families/charts/part-whole-config.js +127 -0
- package/dist/families/charts/part-whole-config.js.map +1 -0
- package/dist/families/charts/part-whole-shapes.d.ts +40 -0
- package/dist/families/charts/part-whole-shapes.d.ts.map +1 -0
- package/dist/families/charts/part-whole-shapes.js +89 -0
- package/dist/families/charts/part-whole-shapes.js.map +1 -0
- package/dist/families/charts/time-flow-adapters.d.ts +73 -0
- package/dist/families/charts/time-flow-adapters.d.ts.map +1 -0
- package/dist/families/charts/time-flow-adapters.js +196 -0
- package/dist/families/charts/time-flow-adapters.js.map +1 -0
- package/dist/families/charts/time-flow-components.d.ts +8 -0
- package/dist/families/charts/time-flow-components.d.ts.map +1 -0
- package/dist/families/charts/time-flow-components.js +8 -0
- package/dist/families/charts/time-flow-components.js.map +1 -0
- package/dist/families/charts/time-flow-config.d.ts +1014 -0
- package/dist/families/charts/time-flow-config.d.ts.map +1 -0
- package/dist/families/charts/time-flow-config.js +98 -0
- package/dist/families/charts/time-flow-config.js.map +1 -0
- package/dist/families/charts/time-flow-definitions.d.ts +3 -0
- package/dist/families/charts/time-flow-definitions.d.ts.map +1 -0
- package/dist/families/charts/time-flow-definitions.js +107 -0
- package/dist/families/charts/time-flow-definitions.js.map +1 -0
- package/dist/families/charts/time-flow-demo.d.ts +48 -0
- package/dist/families/charts/time-flow-demo.d.ts.map +1 -0
- package/dist/families/charts/time-flow-demo.js +179 -0
- package/dist/families/charts/time-flow-demo.js.map +1 -0
- package/dist/families/chrome/AvatarStackWidget.d.ts +32 -0
- package/dist/families/chrome/AvatarStackWidget.d.ts.map +1 -0
- package/dist/families/chrome/AvatarStackWidget.js +42 -0
- package/dist/families/chrome/AvatarStackWidget.js.map +1 -0
- package/dist/families/chrome/Breadcrumb.d.ts +22 -0
- package/dist/families/chrome/Breadcrumb.d.ts.map +1 -0
- package/dist/families/chrome/Breadcrumb.js +47 -0
- package/dist/families/chrome/Breadcrumb.js.map +1 -0
- package/dist/families/chrome/CommandPaletteWidget.d.ts +46 -0
- package/dist/families/chrome/CommandPaletteWidget.d.ts.map +1 -0
- package/dist/families/chrome/CommandPaletteWidget.js +121 -0
- package/dist/families/chrome/CommandPaletteWidget.js.map +1 -0
- package/dist/families/chrome/GlobalSearch.d.ts +63 -0
- package/dist/families/chrome/GlobalSearch.d.ts.map +1 -0
- package/dist/families/chrome/GlobalSearch.js +106 -0
- package/dist/families/chrome/GlobalSearch.js.map +1 -0
- package/dist/families/chrome/NavCard.d.ts +37 -0
- package/dist/families/chrome/NavCard.d.ts.map +1 -0
- package/dist/families/chrome/NavCard.js +67 -0
- package/dist/families/chrome/NavCard.js.map +1 -0
- package/dist/families/chrome/ShortcutsPanel.d.ts +42 -0
- package/dist/families/chrome/ShortcutsPanel.d.ts.map +1 -0
- package/dist/families/chrome/ShortcutsPanel.js +37 -0
- package/dist/families/chrome/ShortcutsPanel.js.map +1 -0
- package/dist/families/chrome/SidebarNav.d.ts +55 -0
- package/dist/families/chrome/SidebarNav.d.ts.map +1 -0
- package/dist/families/chrome/SidebarNav.js +90 -0
- package/dist/families/chrome/SidebarNav.js.map +1 -0
- package/dist/families/chrome/TabBar.d.ts +29 -0
- package/dist/families/chrome/TabBar.d.ts.map +1 -0
- package/dist/families/chrome/TabBar.js +61 -0
- package/dist/families/chrome/TabBar.js.map +1 -0
- package/dist/families/chrome/chrome-config.d.ts +1372 -0
- package/dist/families/chrome/chrome-config.d.ts.map +1 -0
- package/dist/families/chrome/chrome-config.js +356 -0
- package/dist/families/chrome/chrome-config.js.map +1 -0
- package/dist/families/chrome/chrome-icons.d.ts +6 -0
- package/dist/families/chrome/chrome-icons.d.ts.map +1 -0
- package/dist/families/chrome/chrome-icons.js +37 -0
- package/dist/families/chrome/chrome-icons.js.map +1 -0
- package/dist/families/chrome/chrome-lib.d.ts +82 -0
- package/dist/families/chrome/chrome-lib.d.ts.map +1 -0
- package/dist/families/chrome/chrome-lib.js +202 -0
- package/dist/families/chrome/chrome-lib.js.map +1 -0
- package/dist/families/chrome/chrome-track-components.d.ts +16 -0
- package/dist/families/chrome/chrome-track-components.d.ts.map +1 -0
- package/dist/families/chrome/chrome-track-components.js +16 -0
- package/dist/families/chrome/chrome-track-components.js.map +1 -0
- package/dist/families/chrome/chrome-track.definitions.d.ts +36 -0
- package/dist/families/chrome/chrome-track.definitions.d.ts.map +1 -0
- package/dist/families/chrome/chrome-track.definitions.js +138 -0
- package/dist/families/chrome/chrome-track.definitions.js.map +1 -0
- package/dist/families/chrome/index.d.ts +22 -0
- package/dist/families/chrome/index.d.ts.map +1 -0
- package/dist/families/chrome/index.js +22 -0
- package/dist/families/chrome/index.js.map +1 -0
- package/dist/families/communication/AiChatPanel.d.ts +51 -0
- package/dist/families/communication/AiChatPanel.d.ts.map +1 -0
- package/dist/families/communication/AiChatPanel.js +72 -0
- package/dist/families/communication/AiChatPanel.js.map +1 -0
- package/dist/families/communication/CallWidget.d.ts +45 -0
- package/dist/families/communication/CallWidget.d.ts.map +1 -0
- package/dist/families/communication/CallWidget.js +64 -0
- package/dist/families/communication/CallWidget.js.map +1 -0
- package/dist/families/communication/ChatThread.d.ts +49 -0
- package/dist/families/communication/ChatThread.d.ts.map +1 -0
- package/dist/families/communication/ChatThread.js +71 -0
- package/dist/families/communication/ChatThread.js.map +1 -0
- package/dist/families/communication/ConversationInbox.d.ts +47 -0
- package/dist/families/communication/ConversationInbox.d.ts.map +1 -0
- package/dist/families/communication/ConversationInbox.js +74 -0
- package/dist/families/communication/ConversationInbox.js.map +1 -0
- package/dist/families/communication/TypingIndicator.d.ts +40 -0
- package/dist/families/communication/TypingIndicator.d.ts.map +1 -0
- package/dist/families/communication/TypingIndicator.js +30 -0
- package/dist/families/communication/TypingIndicator.js.map +1 -0
- package/dist/families/communication/chat-lib.d.ts +159 -0
- package/dist/families/communication/chat-lib.d.ts.map +1 -0
- package/dist/families/communication/chat-lib.js +307 -0
- package/dist/families/communication/chat-lib.js.map +1 -0
- package/dist/families/communication/communication-config.d.ts +849 -0
- package/dist/families/communication/communication-config.d.ts.map +1 -0
- package/dist/families/communication/communication-config.js +331 -0
- package/dist/families/communication/communication-config.js.map +1 -0
- package/dist/families/communication/communication-track-components.d.ts +13 -0
- package/dist/families/communication/communication-track-components.d.ts.map +1 -0
- package/dist/families/communication/communication-track-components.js +13 -0
- package/dist/families/communication/communication-track-components.js.map +1 -0
- package/dist/families/communication/communication-track.definitions.d.ts +23 -0
- package/dist/families/communication/communication-track.definitions.d.ts.map +1 -0
- package/dist/families/communication/communication-track.definitions.js +99 -0
- package/dist/families/communication/communication-track.definitions.js.map +1 -0
- package/dist/families/communication/index.d.ts +16 -0
- package/dist/families/communication/index.d.ts.map +1 -0
- package/dist/families/communication/index.js +16 -0
- package/dist/families/communication/index.js.map +1 -0
- package/dist/families/domain/ApiKeysPanel.d.ts +57 -0
- package/dist/families/domain/ApiKeysPanel.d.ts.map +1 -0
- package/dist/families/domain/ApiKeysPanel.js +121 -0
- package/dist/families/domain/ApiKeysPanel.js.map +1 -0
- package/dist/families/domain/ApiPlayground.d.ts +51 -0
- package/dist/families/domain/ApiPlayground.d.ts.map +1 -0
- package/dist/families/domain/ApiPlayground.js +110 -0
- package/dist/families/domain/ApiPlayground.js.map +1 -0
- package/dist/families/domain/BlockContent.d.ts +11 -0
- package/dist/families/domain/BlockContent.d.ts.map +1 -0
- package/dist/families/domain/BlockContent.js +42 -0
- package/dist/families/domain/BlockContent.js.map +1 -0
- package/dist/families/domain/BlockFinancial.d.ts +32 -0
- package/dist/families/domain/BlockFinancial.d.ts.map +1 -0
- package/dist/families/domain/BlockFinancial.js +205 -0
- package/dist/families/domain/BlockFinancial.js.map +1 -0
- package/dist/families/domain/BlockReport.d.ts +11 -0
- package/dist/families/domain/BlockReport.d.ts.map +1 -0
- package/dist/families/domain/BlockReport.js +129 -0
- package/dist/families/domain/BlockReport.js.map +1 -0
- package/dist/families/domain/BlockShell.d.ts +60 -0
- package/dist/families/domain/BlockShell.d.ts.map +1 -0
- package/dist/families/domain/BlockShell.js +76 -0
- package/dist/families/domain/BlockShell.js.map +1 -0
- package/dist/families/domain/BlockStatus.d.ts +30 -0
- package/dist/families/domain/BlockStatus.d.ts.map +1 -0
- package/dist/families/domain/BlockStatus.js +143 -0
- package/dist/families/domain/BlockStatus.js.map +1 -0
- package/dist/families/domain/CreditCardTile.d.ts +44 -0
- package/dist/families/domain/CreditCardTile.d.ts.map +1 -0
- package/dist/families/domain/CreditCardTile.js +105 -0
- package/dist/families/domain/CreditCardTile.js.map +1 -0
- package/dist/families/domain/DocumentCanvas.d.ts +7 -0
- package/dist/families/domain/DocumentCanvas.d.ts.map +1 -0
- package/dist/families/domain/DocumentCanvas.js +144 -0
- package/dist/families/domain/DocumentCanvas.js.map +1 -0
- package/dist/families/domain/ExperimentVariantCompare.d.ts +41 -0
- package/dist/families/domain/ExperimentVariantCompare.d.ts.map +1 -0
- package/dist/families/domain/ExperimentVariantCompare.js +90 -0
- package/dist/families/domain/ExperimentVariantCompare.js.map +1 -0
- package/dist/families/domain/GanttChart.d.ts +60 -0
- package/dist/families/domain/GanttChart.d.ts.map +1 -0
- package/dist/families/domain/GanttChart.js +112 -0
- package/dist/families/domain/GanttChart.js.map +1 -0
- package/dist/families/domain/OpsApi.d.ts +45 -0
- package/dist/families/domain/OpsApi.d.ts.map +1 -0
- package/dist/families/domain/OpsApi.js +167 -0
- package/dist/families/domain/OpsApi.js.map +1 -0
- package/dist/families/domain/OpsEmpty.d.ts +21 -0
- package/dist/families/domain/OpsEmpty.d.ts.map +1 -0
- package/dist/families/domain/OpsEmpty.js +6 -0
- package/dist/families/domain/OpsEmpty.js.map +1 -0
- package/dist/families/domain/OpsMonitoring.d.ts +71 -0
- package/dist/families/domain/OpsMonitoring.d.ts.map +1 -0
- package/dist/families/domain/OpsMonitoring.js +179 -0
- package/dist/families/domain/OpsMonitoring.js.map +1 -0
- package/dist/families/domain/OpsOnboarding.d.ts +29 -0
- package/dist/families/domain/OpsOnboarding.d.ts.map +1 -0
- package/dist/families/domain/OpsOnboarding.js +191 -0
- package/dist/families/domain/OpsOnboarding.js.map +1 -0
- package/dist/families/domain/OpsTrust.d.ts +43 -0
- package/dist/families/domain/OpsTrust.d.ts.map +1 -0
- package/dist/families/domain/OpsTrust.js +153 -0
- package/dist/families/domain/OpsTrust.js.map +1 -0
- package/dist/families/domain/OrgChart.d.ts +45 -0
- package/dist/families/domain/OrgChart.d.ts.map +1 -0
- package/dist/families/domain/OrgChart.js +110 -0
- package/dist/families/domain/OrgChart.js.map +1 -0
- package/dist/families/domain/PlanPricingCards.d.ts +43 -0
- package/dist/families/domain/PlanPricingCards.d.ts.map +1 -0
- package/dist/families/domain/PlanPricingCards.js +85 -0
- package/dist/families/domain/PlanPricingCards.js.map +1 -0
- package/dist/families/domain/SloMonitorCard.d.ts +43 -0
- package/dist/families/domain/SloMonitorCard.d.ts.map +1 -0
- package/dist/families/domain/SloMonitorCard.js +76 -0
- package/dist/families/domain/SloMonitorCard.js.map +1 -0
- package/dist/families/domain/UptimeSegmentBar.d.ts +42 -0
- package/dist/families/domain/UptimeSegmentBar.d.ts.map +1 -0
- package/dist/families/domain/UptimeSegmentBar.js +81 -0
- package/dist/families/domain/UptimeSegmentBar.js.map +1 -0
- package/dist/families/domain/block-lib.d.ts +159 -0
- package/dist/families/domain/block-lib.d.ts.map +1 -0
- package/dist/families/domain/block-lib.js +390 -0
- package/dist/families/domain/block-lib.js.map +1 -0
- package/dist/families/domain/block-types.d.ts +227 -0
- package/dist/families/domain/block-types.d.ts.map +1 -0
- package/dist/families/domain/block-types.js +23 -0
- package/dist/families/domain/block-types.js.map +1 -0
- package/dist/families/domain/blocks-config.d.ts +3510 -0
- package/dist/families/domain/blocks-config.d.ts.map +1 -0
- package/dist/families/domain/blocks-config.js +645 -0
- package/dist/families/domain/blocks-config.js.map +1 -0
- package/dist/families/domain/blocks-track-components.d.ts +16 -0
- package/dist/families/domain/blocks-track-components.d.ts.map +1 -0
- package/dist/families/domain/blocks-track-components.js +16 -0
- package/dist/families/domain/blocks-track-components.js.map +1 -0
- package/dist/families/domain/blocks-track.definitions.d.ts +66 -0
- package/dist/families/domain/blocks-track.definitions.d.ts.map +1 -0
- package/dist/families/domain/blocks-track.definitions.js +379 -0
- package/dist/families/domain/blocks-track.definitions.js.map +1 -0
- package/dist/families/domain/domain-config.d.ts +352 -0
- package/dist/families/domain/domain-config.d.ts.map +1 -0
- package/dist/families/domain/domain-config.js +187 -0
- package/dist/families/domain/domain-config.js.map +1 -0
- package/dist/families/domain/domain-lib.d.ts +227 -0
- package/dist/families/domain/domain-lib.d.ts.map +1 -0
- package/dist/families/domain/domain-lib.js +494 -0
- package/dist/families/domain/domain-lib.js.map +1 -0
- package/dist/families/domain/domain-ops-config.d.ts +2939 -0
- package/dist/families/domain/domain-ops-config.d.ts.map +1 -0
- package/dist/families/domain/domain-ops-config.js +976 -0
- package/dist/families/domain/domain-ops-config.js.map +1 -0
- package/dist/families/domain/domain-ops-lib.d.ts +214 -0
- package/dist/families/domain/domain-ops-lib.d.ts.map +1 -0
- package/dist/families/domain/domain-ops-lib.js +489 -0
- package/dist/families/domain/domain-ops-lib.js.map +1 -0
- package/dist/families/domain/domain-ops-track-components.d.ts +28 -0
- package/dist/families/domain/domain-ops-track-components.d.ts.map +1 -0
- package/dist/families/domain/domain-ops-track-components.js +28 -0
- package/dist/families/domain/domain-ops-track-components.js.map +1 -0
- package/dist/families/domain/domain-ops-track.definitions.d.ts +56 -0
- package/dist/families/domain/domain-ops-track.definitions.d.ts.map +1 -0
- package/dist/families/domain/domain-ops-track.definitions.js +364 -0
- package/dist/families/domain/domain-ops-track.definitions.js.map +1 -0
- package/dist/families/domain/domain-ops-types.d.ts +226 -0
- package/dist/families/domain/domain-ops-types.d.ts.map +1 -0
- package/dist/families/domain/domain-ops-types.js +29 -0
- package/dist/families/domain/domain-ops-types.js.map +1 -0
- package/dist/families/domain/domain-track-components.d.ts +10 -0
- package/dist/families/domain/domain-track-components.d.ts.map +1 -0
- package/dist/families/domain/domain-track-components.js +10 -0
- package/dist/families/domain/domain-track-components.js.map +1 -0
- package/dist/families/domain/domain-track.definitions.d.ts +22 -0
- package/dist/families/domain/domain-track.definitions.d.ts.map +1 -0
- package/dist/families/domain/domain-track.definitions.js +66 -0
- package/dist/families/domain/domain-track.definitions.js.map +1 -0
- package/dist/families/domain/domain-types.d.ts +86 -0
- package/dist/families/domain/domain-types.d.ts.map +1 -0
- package/dist/families/domain/domain-types.js +18 -0
- package/dist/families/domain/domain-types.js.map +1 -0
- package/dist/families/domain/index.d.ts +44 -0
- package/dist/families/domain/index.d.ts.map +1 -0
- package/dist/families/domain/index.js +45 -0
- package/dist/families/domain/index.js.map +1 -0
- package/dist/families/feeds/ActivityFeed.d.ts +28 -0
- package/dist/families/feeds/ActivityFeed.d.ts.map +1 -0
- package/dist/families/feeds/ActivityFeed.js +41 -0
- package/dist/families/feeds/ActivityFeed.js.map +1 -0
- package/dist/families/feeds/LoadOlderPaginator.d.ts +45 -0
- package/dist/families/feeds/LoadOlderPaginator.d.ts.map +1 -0
- package/dist/families/feeds/LoadOlderPaginator.js +59 -0
- package/dist/families/feeds/LoadOlderPaginator.js.map +1 -0
- package/dist/families/feeds/NotificationFeed.d.ts +33 -0
- package/dist/families/feeds/NotificationFeed.d.ts.map +1 -0
- package/dist/families/feeds/NotificationFeed.js +122 -0
- package/dist/families/feeds/NotificationFeed.js.map +1 -0
- package/dist/families/feeds/RealtimeFeed.d.ts +29 -0
- package/dist/families/feeds/RealtimeFeed.d.ts.map +1 -0
- package/dist/families/feeds/RealtimeFeed.js +110 -0
- package/dist/families/feeds/RealtimeFeed.js.map +1 -0
- package/dist/families/feeds/TimelineVertical.d.ts +28 -0
- package/dist/families/feeds/TimelineVertical.d.ts.map +1 -0
- package/dist/families/feeds/TimelineVertical.js +64 -0
- package/dist/families/feeds/TimelineVertical.js.map +1 -0
- package/dist/families/feeds/ToastStack.d.ts +42 -0
- package/dist/families/feeds/ToastStack.d.ts.map +1 -0
- package/dist/families/feeds/ToastStack.js +120 -0
- package/dist/families/feeds/ToastStack.js.map +1 -0
- package/dist/families/feeds/UnreadBadge.d.ts +23 -0
- package/dist/families/feeds/UnreadBadge.d.ts.map +1 -0
- package/dist/families/feeds/UnreadBadge.js +42 -0
- package/dist/families/feeds/UnreadBadge.js.map +1 -0
- package/dist/families/feeds/feed-demo-lib.d.ts +22 -0
- package/dist/families/feeds/feed-demo-lib.d.ts.map +1 -0
- package/dist/families/feeds/feed-demo-lib.js +33 -0
- package/dist/families/feeds/feed-demo-lib.js.map +1 -0
- package/dist/families/feeds/feed-icons.d.ts +4 -0
- package/dist/families/feeds/feed-icons.d.ts.map +1 -0
- package/dist/families/feeds/feed-icons.js +39 -0
- package/dist/families/feeds/feed-icons.js.map +1 -0
- package/dist/families/feeds/feed-lib.d.ts +42 -0
- package/dist/families/feeds/feed-lib.d.ts.map +1 -0
- package/dist/families/feeds/feed-lib.js +61 -0
- package/dist/families/feeds/feed-lib.js.map +1 -0
- package/dist/families/feeds/feeds-config.d.ts +1114 -0
- package/dist/families/feeds/feeds-config.d.ts.map +1 -0
- package/dist/families/feeds/feeds-config.js +278 -0
- package/dist/families/feeds/feeds-config.js.map +1 -0
- package/dist/families/feeds/feeds-track-f-components.d.ts +15 -0
- package/dist/families/feeds/feeds-track-f-components.d.ts.map +1 -0
- package/dist/families/feeds/feeds-track-f-components.js +16 -0
- package/dist/families/feeds/feeds-track-f-components.js.map +1 -0
- package/dist/families/feeds/feeds-track-f.definitions.d.ts +39 -0
- package/dist/families/feeds/feeds-track-f.definitions.d.ts.map +1 -0
- package/dist/families/feeds/feeds-track-f.definitions.js +129 -0
- package/dist/families/feeds/feeds-track-f.definitions.js.map +1 -0
- package/dist/families/feeds/feeds-types.d.ts +85 -0
- package/dist/families/feeds/feeds-types.d.ts.map +1 -0
- package/dist/families/feeds/feeds-types.js +12 -0
- package/dist/families/feeds/feeds-types.js.map +1 -0
- package/dist/families/feeds/index.d.ts +16 -0
- package/dist/families/feeds/index.d.ts.map +1 -0
- package/dist/families/feeds/index.js +16 -0
- package/dist/families/feeds/index.js.map +1 -0
- package/dist/families/forms/ColumnMappingTable.d.ts +37 -0
- package/dist/families/forms/ColumnMappingTable.d.ts.map +1 -0
- package/dist/families/forms/ColumnMappingTable.js +76 -0
- package/dist/families/forms/ColumnMappingTable.js.map +1 -0
- package/dist/families/forms/ConnectionStringField.d.ts +74 -0
- package/dist/families/forms/ConnectionStringField.d.ts.map +1 -0
- package/dist/families/forms/ConnectionStringField.js +103 -0
- package/dist/families/forms/ConnectionStringField.js.map +1 -0
- package/dist/families/forms/DrawerForm.d.ts +20 -0
- package/dist/families/forms/DrawerForm.d.ts.map +1 -0
- package/dist/families/forms/DrawerForm.js +60 -0
- package/dist/families/forms/DrawerForm.js.map +1 -0
- package/dist/families/forms/ExportBuilder.d.ts +31 -0
- package/dist/families/forms/ExportBuilder.d.ts.map +1 -0
- package/dist/families/forms/ExportBuilder.js +76 -0
- package/dist/families/forms/ExportBuilder.js.map +1 -0
- package/dist/families/forms/FilterChipBar.d.ts +49 -0
- package/dist/families/forms/FilterChipBar.d.ts.map +1 -0
- package/dist/families/forms/FilterChipBar.js +82 -0
- package/dist/families/forms/FilterChipBar.js.map +1 -0
- package/dist/families/forms/FlowBuilder.d.ts +40 -0
- package/dist/families/forms/FlowBuilder.d.ts.map +1 -0
- package/dist/families/forms/FlowBuilder.js +128 -0
- package/dist/families/forms/FlowBuilder.js.map +1 -0
- package/dist/families/forms/FormFields.d.ts +28 -0
- package/dist/families/forms/FormFields.d.ts.map +1 -0
- package/dist/families/forms/FormFields.js +60 -0
- package/dist/families/forms/FormFields.js.map +1 -0
- package/dist/families/forms/InlineEditableField.d.ts +28 -0
- package/dist/families/forms/InlineEditableField.d.ts.map +1 -0
- package/dist/families/forms/InlineEditableField.js +130 -0
- package/dist/families/forms/InlineEditableField.js.map +1 -0
- package/dist/families/forms/InputWidgets.d.ts +35 -0
- package/dist/families/forms/InputWidgets.d.ts.map +1 -0
- package/dist/families/forms/InputWidgets.js +116 -0
- package/dist/families/forms/InputWidgets.js.map +1 -0
- package/dist/families/forms/ModalWizard.d.ts +28 -0
- package/dist/families/forms/ModalWizard.d.ts.map +1 -0
- package/dist/families/forms/ModalWizard.js +77 -0
- package/dist/families/forms/ModalWizard.js.map +1 -0
- package/dist/families/forms/OptionCards.d.ts +26 -0
- package/dist/families/forms/OptionCards.d.ts.map +1 -0
- package/dist/families/forms/OptionCards.js +73 -0
- package/dist/families/forms/OptionCards.js.map +1 -0
- package/dist/families/forms/ProgressBarWidget.d.ts +17 -0
- package/dist/families/forms/ProgressBarWidget.d.ts.map +1 -0
- package/dist/families/forms/ProgressBarWidget.js +28 -0
- package/dist/families/forms/ProgressBarWidget.js.map +1 -0
- package/dist/families/forms/QuestionBuilder.d.ts +35 -0
- package/dist/families/forms/QuestionBuilder.d.ts.map +1 -0
- package/dist/families/forms/QuestionBuilder.js +133 -0
- package/dist/families/forms/QuestionBuilder.js.map +1 -0
- package/dist/families/forms/RuleBuilder.d.ts +42 -0
- package/dist/families/forms/RuleBuilder.d.ts.map +1 -0
- package/dist/families/forms/RuleBuilder.js +150 -0
- package/dist/families/forms/RuleBuilder.js.map +1 -0
- package/dist/families/forms/StepperWidget.d.ts +33 -0
- package/dist/families/forms/StepperWidget.d.ts.map +1 -0
- package/dist/families/forms/StepperWidget.js +70 -0
- package/dist/families/forms/StepperWidget.js.map +1 -0
- package/dist/families/forms/TableInclusionChecklist.d.ts +71 -0
- package/dist/families/forms/TableInclusionChecklist.d.ts.map +1 -0
- package/dist/families/forms/TableInclusionChecklist.js +119 -0
- package/dist/families/forms/TableInclusionChecklist.js.map +1 -0
- package/dist/families/forms/ToggleSwitchList.d.ts +21 -0
- package/dist/families/forms/ToggleSwitchList.d.ts.map +1 -0
- package/dist/families/forms/ToggleSwitchList.js +78 -0
- package/dist/families/forms/ToggleSwitchList.js.map +1 -0
- package/dist/families/forms/ValidationIssuesList.d.ts +35 -0
- package/dist/families/forms/ValidationIssuesList.d.ts.map +1 -0
- package/dist/families/forms/ValidationIssuesList.js +64 -0
- package/dist/families/forms/ValidationIssuesList.js.map +1 -0
- package/dist/families/forms/forms-builders.d.ts +106 -0
- package/dist/families/forms/forms-builders.d.ts.map +1 -0
- package/dist/families/forms/forms-builders.js +211 -0
- package/dist/families/forms/forms-builders.js.map +1 -0
- package/dist/families/forms/forms-config.d.ts +3399 -0
- package/dist/families/forms/forms-config.d.ts.map +1 -0
- package/dist/families/forms/forms-config.js +695 -0
- package/dist/families/forms/forms-config.js.map +1 -0
- package/dist/families/forms/forms-dsn.d.ts +88 -0
- package/dist/families/forms/forms-dsn.d.ts.map +1 -0
- package/dist/families/forms/forms-dsn.js +173 -0
- package/dist/families/forms/forms-dsn.js.map +1 -0
- package/dist/families/forms/forms-icons.d.ts +13 -0
- package/dist/families/forms/forms-icons.d.ts.map +1 -0
- package/dist/families/forms/forms-icons.js +65 -0
- package/dist/families/forms/forms-icons.js.map +1 -0
- package/dist/families/forms/forms-lib.d.ts +74 -0
- package/dist/families/forms/forms-lib.d.ts.map +1 -0
- package/dist/families/forms/forms-lib.js +176 -0
- package/dist/families/forms/forms-lib.js.map +1 -0
- package/dist/families/forms/forms-state.d.ts +62 -0
- package/dist/families/forms/forms-state.d.ts.map +1 -0
- package/dist/families/forms/forms-state.js +103 -0
- package/dist/families/forms/forms-state.js.map +1 -0
- package/dist/families/forms/forms-tables.d.ts +49 -0
- package/dist/families/forms/forms-tables.d.ts.map +1 -0
- package/dist/families/forms/forms-tables.js +42 -0
- package/dist/families/forms/forms-tables.js.map +1 -0
- package/dist/families/forms/forms-track-components.d.ts +25 -0
- package/dist/families/forms/forms-track-components.d.ts.map +1 -0
- package/dist/families/forms/forms-track-components.js +25 -0
- package/dist/families/forms/forms-track-components.js.map +1 -0
- package/dist/families/forms/forms-track.definitions.d.ts +64 -0
- package/dist/families/forms/forms-track.definitions.d.ts.map +1 -0
- package/dist/families/forms/forms-track.definitions.js +333 -0
- package/dist/families/forms/forms-track.definitions.js.map +1 -0
- package/dist/families/forms/index.d.ts +37 -0
- package/dist/families/forms/index.d.ts.map +1 -0
- package/dist/families/forms/index.js +39 -0
- package/dist/families/forms/index.js.map +1 -0
- package/dist/families/geo/MapBubble.d.ts +27 -0
- package/dist/families/geo/MapBubble.d.ts.map +1 -0
- package/dist/families/geo/MapBubble.js +209 -0
- package/dist/families/geo/MapBubble.js.map +1 -0
- package/dist/families/geo/MapChoroplethGrid.d.ts +53 -0
- package/dist/families/geo/MapChoroplethGrid.d.ts.map +1 -0
- package/dist/families/geo/MapChoroplethGrid.js +42 -0
- package/dist/families/geo/MapChoroplethGrid.js.map +1 -0
- package/dist/families/geo/geo-config.d.ts +375 -0
- package/dist/families/geo/geo-config.d.ts.map +1 -0
- package/dist/families/geo/geo-config.js +177 -0
- package/dist/families/geo/geo-config.js.map +1 -0
- package/dist/families/geo/geo-lib.d.ts +108 -0
- package/dist/families/geo/geo-lib.d.ts.map +1 -0
- package/dist/families/geo/geo-lib.js +228 -0
- package/dist/families/geo/geo-lib.js.map +1 -0
- package/dist/families/geo/geo-track-components.d.ts +16 -0
- package/dist/families/geo/geo-track-components.d.ts.map +1 -0
- package/dist/families/geo/geo-track-components.js +16 -0
- package/dist/families/geo/geo-track-components.js.map +1 -0
- package/dist/families/geo/geo-track.definitions.d.ts +21 -0
- package/dist/families/geo/geo-track.definitions.d.ts.map +1 -0
- package/dist/families/geo/geo-track.definitions.js +54 -0
- package/dist/families/geo/geo-track.definitions.js.map +1 -0
- package/dist/families/geo/index.d.ts +17 -0
- package/dist/families/geo/index.d.ts.map +1 -0
- package/dist/families/geo/index.js +17 -0
- package/dist/families/geo/index.js.map +1 -0
- package/dist/families/kpi/AutoInsights.d.ts +47 -0
- package/dist/families/kpi/AutoInsights.d.ts.map +1 -0
- package/dist/families/kpi/AutoInsights.js +126 -0
- package/dist/families/kpi/AutoInsights.js.map +1 -0
- package/dist/families/kpi/GaugeArc.d.ts +31 -0
- package/dist/families/kpi/GaugeArc.d.ts.map +1 -0
- package/dist/families/kpi/GaugeArc.js +121 -0
- package/dist/families/kpi/GaugeArc.js.map +1 -0
- package/dist/families/kpi/GaugeRing.d.ts +28 -0
- package/dist/families/kpi/GaugeRing.d.ts.map +1 -0
- package/dist/families/kpi/GaugeRing.js +96 -0
- package/dist/families/kpi/GaugeRing.js.map +1 -0
- package/dist/families/kpi/KpiStatCard.d.ts +13 -0
- package/dist/families/kpi/KpiStatCard.d.ts.map +1 -0
- package/dist/families/kpi/KpiStatCard.js +43 -0
- package/dist/families/kpi/KpiStatCard.js.map +1 -0
- package/dist/families/kpi/KpiStatTileCompact.d.ts +13 -0
- package/dist/families/kpi/KpiStatTileCompact.d.ts.map +1 -0
- package/dist/families/kpi/KpiStatTileCompact.js +29 -0
- package/dist/families/kpi/KpiStatTileCompact.js.map +1 -0
- package/dist/families/kpi/MetricHero.d.ts +25 -0
- package/dist/families/kpi/MetricHero.d.ts.map +1 -0
- package/dist/families/kpi/MetricHero.js +85 -0
- package/dist/families/kpi/MetricHero.js.map +1 -0
- package/dist/families/kpi/MicroKpiSubtitle.d.ts +24 -0
- package/dist/families/kpi/MicroKpiSubtitle.d.ts.map +1 -0
- package/dist/families/kpi/MicroKpiSubtitle.js +46 -0
- package/dist/families/kpi/MicroKpiSubtitle.js.map +1 -0
- package/dist/families/kpi/PeriodComparison.d.ts +20 -0
- package/dist/families/kpi/PeriodComparison.d.ts.map +1 -0
- package/dist/families/kpi/PeriodComparison.js +49 -0
- package/dist/families/kpi/PeriodComparison.js.map +1 -0
- package/dist/families/kpi/StatPairCard.d.ts +26 -0
- package/dist/families/kpi/StatPairCard.d.ts.map +1 -0
- package/dist/families/kpi/StatPairCard.js +54 -0
- package/dist/families/kpi/StatPairCard.js.map +1 -0
- package/dist/families/kpi/UsageMeter.d.ts +12 -0
- package/dist/families/kpi/UsageMeter.d.ts.map +1 -0
- package/dist/families/kpi/UsageMeter.js +31 -0
- package/dist/families/kpi/UsageMeter.js.map +1 -0
- package/dist/families/kpi/components.d.ts +19 -0
- package/dist/families/kpi/components.d.ts.map +1 -0
- package/dist/families/kpi/components.js +19 -0
- package/dist/families/kpi/components.js.map +1 -0
- package/dist/families/kpi/definitions.d.ts +22 -0
- package/dist/families/kpi/definitions.d.ts.map +1 -0
- package/dist/families/kpi/definitions.js +159 -0
- package/dist/families/kpi/definitions.js.map +1 -0
- package/dist/families/kpi/kpi-config.d.ts +1700 -0
- package/dist/families/kpi/kpi-config.d.ts.map +1 -0
- package/dist/families/kpi/kpi-config.js +418 -0
- package/dist/families/kpi/kpi-config.js.map +1 -0
- package/dist/families/kpi/kpi-icons.d.ts +7 -0
- package/dist/families/kpi/kpi-icons.d.ts.map +1 -0
- package/dist/families/kpi/kpi-icons.js +28 -0
- package/dist/families/kpi/kpi-icons.js.map +1 -0
- package/dist/families/kpi/kpi-lib.d.ts +173 -0
- package/dist/families/kpi/kpi-lib.d.ts.map +1 -0
- package/dist/families/kpi/kpi-lib.js +243 -0
- package/dist/families/kpi/kpi-lib.js.map +1 -0
- package/dist/families/media/AttachmentList.d.ts +43 -0
- package/dist/families/media/AttachmentList.d.ts.map +1 -0
- package/dist/families/media/AttachmentList.js +52 -0
- package/dist/families/media/AttachmentList.js.map +1 -0
- package/dist/families/media/FileBrowser.d.ts +57 -0
- package/dist/families/media/FileBrowser.d.ts.map +1 -0
- package/dist/families/media/FileBrowser.js +158 -0
- package/dist/families/media/FileBrowser.js.map +1 -0
- package/dist/families/media/ImageBoard.d.ts +41 -0
- package/dist/families/media/ImageBoard.d.ts.map +1 -0
- package/dist/families/media/ImageBoard.js +67 -0
- package/dist/families/media/ImageBoard.js.map +1 -0
- package/dist/families/media/LinkList.d.ts +48 -0
- package/dist/families/media/LinkList.d.ts.map +1 -0
- package/dist/families/media/LinkList.js +89 -0
- package/dist/families/media/LinkList.js.map +1 -0
- package/dist/families/media/UploadDropzone.d.ts +41 -0
- package/dist/families/media/UploadDropzone.d.ts.map +1 -0
- package/dist/families/media/UploadDropzone.js +54 -0
- package/dist/families/media/UploadDropzone.js.map +1 -0
- package/dist/families/media/UploadProgressList.d.ts +58 -0
- package/dist/families/media/UploadProgressList.d.ts.map +1 -0
- package/dist/families/media/UploadProgressList.js +81 -0
- package/dist/families/media/UploadProgressList.js.map +1 -0
- package/dist/families/media/index.d.ts +20 -0
- package/dist/families/media/index.d.ts.map +1 -0
- package/dist/families/media/index.js +20 -0
- package/dist/families/media/index.js.map +1 -0
- package/dist/families/media/media-config.d.ts +1035 -0
- package/dist/families/media/media-config.d.ts.map +1 -0
- package/dist/families/media/media-config.js +362 -0
- package/dist/families/media/media-config.js.map +1 -0
- package/dist/families/media/media-icons.d.ts +14 -0
- package/dist/families/media/media-icons.d.ts.map +1 -0
- package/dist/families/media/media-icons.js +44 -0
- package/dist/families/media/media-icons.js.map +1 -0
- package/dist/families/media/media-lib.d.ts +149 -0
- package/dist/families/media/media-lib.d.ts.map +1 -0
- package/dist/families/media/media-lib.js +333 -0
- package/dist/families/media/media-lib.js.map +1 -0
- package/dist/families/media/media-track-components.d.ts +14 -0
- package/dist/families/media/media-track-components.d.ts.map +1 -0
- package/dist/families/media/media-track-components.js +14 -0
- package/dist/families/media/media-track-components.js.map +1 -0
- package/dist/families/media/media-track.definitions.d.ts +26 -0
- package/dist/families/media/media-track.definitions.d.ts.map +1 -0
- package/dist/families/media/media-track.definitions.js +107 -0
- package/dist/families/media/media-track.definitions.js.map +1 -0
- package/dist/families/system/AlertBanner.d.ts +31 -0
- package/dist/families/system/AlertBanner.d.ts.map +1 -0
- package/dist/families/system/AlertBanner.js +69 -0
- package/dist/families/system/AlertBanner.js.map +1 -0
- package/dist/families/system/AutosaveIndicatorWidget.d.ts +43 -0
- package/dist/families/system/AutosaveIndicatorWidget.d.ts.map +1 -0
- package/dist/families/system/AutosaveIndicatorWidget.js +51 -0
- package/dist/families/system/AutosaveIndicatorWidget.js.map +1 -0
- package/dist/families/system/ConnectionStatus.d.ts +28 -0
- package/dist/families/system/ConnectionStatus.d.ts.map +1 -0
- package/dist/families/system/ConnectionStatus.js +53 -0
- package/dist/families/system/ConnectionStatus.js.map +1 -0
- package/dist/families/system/DiagnosticsReadout.d.ts +31 -0
- package/dist/families/system/DiagnosticsReadout.d.ts.map +1 -0
- package/dist/families/system/DiagnosticsReadout.js +49 -0
- package/dist/families/system/DiagnosticsReadout.js.map +1 -0
- package/dist/families/system/EmptyStateWidget.d.ts +25 -0
- package/dist/families/system/EmptyStateWidget.d.ts.map +1 -0
- package/dist/families/system/EmptyStateWidget.js +44 -0
- package/dist/families/system/EmptyStateWidget.js.map +1 -0
- package/dist/families/system/ProgressLogConsole.d.ts +58 -0
- package/dist/families/system/ProgressLogConsole.d.ts.map +1 -0
- package/dist/families/system/ProgressLogConsole.js +111 -0
- package/dist/families/system/ProgressLogConsole.js.map +1 -0
- package/dist/families/system/StateHero.d.ts +34 -0
- package/dist/families/system/StateHero.d.ts.map +1 -0
- package/dist/families/system/StateHero.js +102 -0
- package/dist/families/system/StateHero.js.map +1 -0
- package/dist/families/system/StatusBannerHero.d.ts +35 -0
- package/dist/families/system/StatusBannerHero.d.ts.map +1 -0
- package/dist/families/system/StatusBannerHero.js +65 -0
- package/dist/families/system/StatusBannerHero.js.map +1 -0
- package/dist/families/system/StatusPill.d.ts +38 -0
- package/dist/families/system/StatusPill.d.ts.map +1 -0
- package/dist/families/system/StatusPill.js +42 -0
- package/dist/families/system/StatusPill.js.map +1 -0
- package/dist/families/system/index.d.ts +24 -0
- package/dist/families/system/index.d.ts.map +1 -0
- package/dist/families/system/index.js +24 -0
- package/dist/families/system/index.js.map +1 -0
- package/dist/families/system/system-config.d.ts +1505 -0
- package/dist/families/system/system-config.d.ts.map +1 -0
- package/dist/families/system/system-config.js +339 -0
- package/dist/families/system/system-config.js.map +1 -0
- package/dist/families/system/system-icons.d.ts +10 -0
- package/dist/families/system/system-icons.d.ts.map +1 -0
- package/dist/families/system/system-icons.js +58 -0
- package/dist/families/system/system-icons.js.map +1 -0
- package/dist/families/system/system-lib.d.ts +108 -0
- package/dist/families/system/system-lib.d.ts.map +1 -0
- package/dist/families/system/system-lib.js +181 -0
- package/dist/families/system/system-lib.js.map +1 -0
- package/dist/families/system/system-track-components.d.ts +17 -0
- package/dist/families/system/system-track-components.d.ts.map +1 -0
- package/dist/families/system/system-track-components.js +17 -0
- package/dist/families/system/system-track-components.js.map +1 -0
- package/dist/families/system/system-track.definitions.d.ts +36 -0
- package/dist/families/system/system-track.definitions.d.ts.map +1 -0
- package/dist/families/system/system-track.definitions.js +155 -0
- package/dist/families/system/system-track.definitions.js.map +1 -0
- package/dist/families/tables/AccordionList.d.ts +36 -0
- package/dist/families/tables/AccordionList.d.ts.map +1 -0
- package/dist/families/tables/AccordionList.js +56 -0
- package/dist/families/tables/AccordionList.js.map +1 -0
- package/dist/families/tables/BulkActionToolbar.d.ts +35 -0
- package/dist/families/tables/BulkActionToolbar.d.ts.map +1 -0
- package/dist/families/tables/BulkActionToolbar.js +8 -0
- package/dist/families/tables/BulkActionToolbar.js.map +1 -0
- package/dist/families/tables/CardGallery.d.ts +30 -0
- package/dist/families/tables/CardGallery.d.ts.map +1 -0
- package/dist/families/tables/CardGallery.js +80 -0
- package/dist/families/tables/CardGallery.js.map +1 -0
- package/dist/families/tables/ChipCloud.d.ts +46 -0
- package/dist/families/tables/ChipCloud.d.ts.map +1 -0
- package/dist/families/tables/ChipCloud.js +72 -0
- package/dist/families/tables/ChipCloud.js.map +1 -0
- package/dist/families/tables/ComparisonMatrix.d.ts +41 -0
- package/dist/families/tables/ComparisonMatrix.d.ts.map +1 -0
- package/dist/families/tables/ComparisonMatrix.js +76 -0
- package/dist/families/tables/ComparisonMatrix.js.map +1 -0
- package/dist/families/tables/DataGrid.d.ts +50 -0
- package/dist/families/tables/DataGrid.d.ts.map +1 -0
- package/dist/families/tables/DataGrid.js +89 -0
- package/dist/families/tables/DataGrid.js.map +1 -0
- package/dist/families/tables/DetailKeyValue.d.ts +18 -0
- package/dist/families/tables/DetailKeyValue.d.ts.map +1 -0
- package/dist/families/tables/DetailKeyValue.js +14 -0
- package/dist/families/tables/DetailKeyValue.js.map +1 -0
- package/dist/families/tables/GroupedSummaryTable.d.ts +25 -0
- package/dist/families/tables/GroupedSummaryTable.d.ts.map +1 -0
- package/dist/families/tables/GroupedSummaryTable.js +87 -0
- package/dist/families/tables/GroupedSummaryTable.js.map +1 -0
- package/dist/families/tables/LogTable.d.ts +36 -0
- package/dist/families/tables/LogTable.d.ts.map +1 -0
- package/dist/families/tables/LogTable.js +115 -0
- package/dist/families/tables/LogTable.js.map +1 -0
- package/dist/families/tables/MasterList.d.ts +29 -0
- package/dist/families/tables/MasterList.d.ts.map +1 -0
- package/dist/families/tables/MasterList.js +77 -0
- package/dist/families/tables/MasterList.js.map +1 -0
- package/dist/families/tables/MiniTable.d.ts +25 -0
- package/dist/families/tables/MiniTable.d.ts.map +1 -0
- package/dist/families/tables/MiniTable.js +14 -0
- package/dist/families/tables/MiniTable.js.map +1 -0
- package/dist/families/tables/PaginationFooter.d.ts +36 -0
- package/dist/families/tables/PaginationFooter.d.ts.map +1 -0
- package/dist/families/tables/PaginationFooter.js +21 -0
- package/dist/families/tables/PaginationFooter.js.map +1 -0
- package/dist/families/tables/RankedEntityList.d.ts +41 -0
- package/dist/families/tables/RankedEntityList.d.ts.map +1 -0
- package/dist/families/tables/RankedEntityList.js +74 -0
- package/dist/families/tables/RankedEntityList.js.map +1 -0
- package/dist/families/tables/SchemaTree.d.ts +23 -0
- package/dist/families/tables/SchemaTree.d.ts.map +1 -0
- package/dist/families/tables/SchemaTree.js +89 -0
- package/dist/families/tables/SchemaTree.js.map +1 -0
- package/dist/families/tables/SparklineTable.d.ts +35 -0
- package/dist/families/tables/SparklineTable.d.ts.map +1 -0
- package/dist/families/tables/SparklineTable.js +54 -0
- package/dist/families/tables/SparklineTable.js.map +1 -0
- package/dist/families/tables/ToggleMatrixWidget.d.ts +26 -0
- package/dist/families/tables/ToggleMatrixWidget.d.ts.map +1 -0
- package/dist/families/tables/ToggleMatrixWidget.js +95 -0
- package/dist/families/tables/ToggleMatrixWidget.js.map +1 -0
- package/dist/families/tables/TopMoversList.d.ts +37 -0
- package/dist/families/tables/TopMoversList.d.ts.map +1 -0
- package/dist/families/tables/TopMoversList.js +51 -0
- package/dist/families/tables/TopMoversList.js.map +1 -0
- package/dist/families/tables/cells.d.ts +38 -0
- package/dist/families/tables/cells.d.ts.map +1 -0
- package/dist/families/tables/cells.js +107 -0
- package/dist/families/tables/cells.js.map +1 -0
- package/dist/families/tables/column-spec.d.ts +53 -0
- package/dist/families/tables/column-spec.d.ts.map +1 -0
- package/dist/families/tables/column-spec.js +158 -0
- package/dist/families/tables/column-spec.js.map +1 -0
- package/dist/families/tables/definitions.d.ts +12 -0
- package/dist/families/tables/definitions.d.ts.map +1 -0
- package/dist/families/tables/definitions.js +81 -0
- package/dist/families/tables/definitions.js.map +1 -0
- package/dist/families/tables/demo-data.d.ts +15 -0
- package/dist/families/tables/demo-data.d.ts.map +1 -0
- package/dist/families/tables/demo-data.js +97 -0
- package/dist/families/tables/demo-data.js.map +1 -0
- package/dist/families/tables/index.d.ts +31 -0
- package/dist/families/tables/index.d.ts.map +1 -0
- package/dist/families/tables/index.js +33 -0
- package/dist/families/tables/index.js.map +1 -0
- package/dist/families/tables/tables-config.d.ts +908 -0
- package/dist/families/tables/tables-config.d.ts.map +1 -0
- package/dist/families/tables/tables-config.js +51 -0
- package/dist/families/tables/tables-config.js.map +1 -0
- package/dist/families/tables/tables-tail-components.d.ts +14 -0
- package/dist/families/tables/tables-tail-components.d.ts.map +1 -0
- package/dist/families/tables/tables-tail-components.js +14 -0
- package/dist/families/tables/tables-tail-components.js.map +1 -0
- package/dist/families/tables/tables-tail-config.d.ts +947 -0
- package/dist/families/tables/tables-tail-config.d.ts.map +1 -0
- package/dist/families/tables/tables-tail-config.js +328 -0
- package/dist/families/tables/tables-tail-config.js.map +1 -0
- package/dist/families/tables/tables-tail-icons.d.ts +6 -0
- package/dist/families/tables/tables-tail-icons.d.ts.map +1 -0
- package/dist/families/tables/tables-tail-icons.js +33 -0
- package/dist/families/tables/tables-tail-icons.js.map +1 -0
- package/dist/families/tables/tables-tail-lib.d.ts +77 -0
- package/dist/families/tables/tables-tail-lib.d.ts.map +1 -0
- package/dist/families/tables/tables-tail-lib.js +176 -0
- package/dist/families/tables/tables-tail-lib.js.map +1 -0
- package/dist/families/tables/tables-tail-types.d.ts +129 -0
- package/dist/families/tables/tables-tail-types.d.ts.map +1 -0
- package/dist/families/tables/tables-tail-types.js +16 -0
- package/dist/families/tables/tables-tail-types.js.map +1 -0
- package/dist/families/tables/tables-tail.definitions.d.ts +26 -0
- package/dist/families/tables/tables-tail.definitions.d.ts.map +1 -0
- package/dist/families/tables/tables-tail.definitions.js +108 -0
- package/dist/families/tables/tables-tail.definitions.js.map +1 -0
- package/dist/families/tables/tables-track-f-components.d.ts +14 -0
- package/dist/families/tables/tables-track-f-components.d.ts.map +1 -0
- package/dist/families/tables/tables-track-f-components.js +14 -0
- package/dist/families/tables/tables-track-f-components.js.map +1 -0
- package/dist/families/tables/tables-track-f-config.d.ts +956 -0
- package/dist/families/tables/tables-track-f-config.d.ts.map +1 -0
- package/dist/families/tables/tables-track-f-config.js +329 -0
- package/dist/families/tables/tables-track-f-config.js.map +1 -0
- package/dist/families/tables/tables-track-f-types.d.ts +95 -0
- package/dist/families/tables/tables-track-f-types.d.ts.map +1 -0
- package/dist/families/tables/tables-track-f-types.js +13 -0
- package/dist/families/tables/tables-track-f-types.js.map +1 -0
- package/dist/families/tables/tables-track-f.definitions.d.ts +19 -0
- package/dist/families/tables/tables-track-f.definitions.d.ts.map +1 -0
- package/dist/families/tables/tables-track-f.definitions.js +98 -0
- package/dist/families/tables/tables-track-f.definitions.js.map +1 -0
- package/dist/families/tables/widgets.d.ts +17 -0
- package/dist/families/tables/widgets.d.ts.map +1 -0
- package/dist/families/tables/widgets.js +132 -0
- package/dist/families/tables/widgets.js.map +1 -0
- package/dist/frame/ChartDirectionBridge.d.ts +6 -0
- package/dist/frame/ChartDirectionBridge.d.ts.map +1 -0
- package/dist/frame/ChartDirectionBridge.js +21 -0
- package/dist/frame/ChartDirectionBridge.js.map +1 -0
- package/dist/frame/SkeletonSilhouette.d.ts +12 -0
- package/dist/frame/SkeletonSilhouette.d.ts.map +1 -0
- package/dist/frame/SkeletonSilhouette.js +6 -0
- package/dist/frame/SkeletonSilhouette.js.map +1 -0
- package/dist/frame/WidgetErrorBoundary.d.ts +26 -0
- package/dist/frame/WidgetErrorBoundary.d.ts.map +1 -0
- package/dist/frame/WidgetErrorBoundary.js +24 -0
- package/dist/frame/WidgetErrorBoundary.js.map +1 -0
- package/dist/frame/WidgetFrame.d.ts +51 -0
- package/dist/frame/WidgetFrame.d.ts.map +1 -0
- package/dist/frame/WidgetFrame.js +33 -0
- package/dist/frame/WidgetFrame.js.map +1 -0
- package/dist/frame/WidgetHost.d.ts +54 -0
- package/dist/frame/WidgetHost.d.ts.map +1 -0
- package/dist/frame/WidgetHost.js +84 -0
- package/dist/frame/WidgetHost.js.map +1 -0
- package/dist/frame/WidgetRuntimeContext.d.ts +58 -0
- package/dist/frame/WidgetRuntimeContext.d.ts.map +1 -0
- package/dist/frame/WidgetRuntimeContext.js +62 -0
- package/dist/frame/WidgetRuntimeContext.js.map +1 -0
- package/dist/generate/crud-body.d.ts +93 -0
- package/dist/generate/crud-body.d.ts.map +1 -0
- package/dist/generate/crud-body.js +323 -0
- package/dist/generate/crud-body.js.map +1 -0
- package/dist/generate/dashboard-domain.d.ts +65 -0
- package/dist/generate/dashboard-domain.d.ts.map +1 -0
- package/dist/generate/dashboard-domain.js +269 -0
- package/dist/generate/dashboard-domain.js.map +1 -0
- package/dist/generate/index.d.ts +51 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +55 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/grid/DashboardGrid.d.ts +53 -0
- package/dist/grid/DashboardGrid.d.ts.map +1 -0
- package/dist/grid/DashboardGrid.js +278 -0
- package/dist/grid/DashboardGrid.js.map +1 -0
- package/dist/grid/grid-edit.d.ts +95 -0
- package/dist/grid/grid-edit.d.ts.map +1 -0
- package/dist/grid/grid-edit.js +82 -0
- package/dist/grid/grid-edit.js.map +1 -0
- package/dist/grid/index.d.ts +12 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/index.js +12 -0
- package/dist/grid/index.js.map +1 -0
- package/dist/grid/layout-edit.d.ts +114 -0
- package/dist/grid/layout-edit.d.ts.map +1 -0
- package/dist/grid/layout-edit.js +167 -0
- package/dist/grid/layout-edit.js.map +1 -0
- package/dist/grid/layout-math.d.ts +28 -0
- package/dist/grid/layout-math.d.ts.map +1 -0
- package/dist/grid/layout-math.js +45 -0
- package/dist/grid/layout-math.js.map +1 -0
- package/dist/grid/layout-schema.d.ts +31 -0
- package/dist/grid/layout-schema.d.ts.map +1 -0
- package/dist/grid/layout-schema.js +19 -0
- package/dist/grid/layout-schema.js.map +1 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/format.d.ts +47 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +95 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/shapes.d.ts +44 -0
- package/dist/lib/shapes.d.ts.map +1 -0
- package/dist/lib/shapes.js +91 -0
- package/dist/lib/shapes.js.map +1 -0
- package/dist/page-config/data-shapes.d.ts +28 -0
- package/dist/page-config/data-shapes.d.ts.map +1 -0
- package/dist/page-config/data-shapes.js +27 -0
- package/dist/page-config/data-shapes.js.map +1 -0
- package/dist/page-config/grid-column-spec.d.ts +135 -0
- package/dist/page-config/grid-column-spec.d.ts.map +1 -0
- package/dist/page-config/grid-column-spec.js +142 -0
- package/dist/page-config/grid-column-spec.js.map +1 -0
- package/dist/page-config/index.d.ts +16 -0
- package/dist/page-config/index.d.ts.map +1 -0
- package/dist/page-config/index.js +16 -0
- package/dist/page-config/index.js.map +1 -0
- package/dist/page-config/layout.d.ts +31 -0
- package/dist/page-config/layout.d.ts.map +1 -0
- package/dist/page-config/layout.js +23 -0
- package/dist/page-config/layout.js.map +1 -0
- package/dist/page-config/query-descriptor.d.ts +154 -0
- package/dist/page-config/query-descriptor.d.ts.map +1 -0
- package/dist/page-config/query-descriptor.js +72 -0
- package/dist/page-config/query-descriptor.js.map +1 -0
- package/dist/registry/WidgetMissingCard.d.ts +18 -0
- package/dist/registry/WidgetMissingCard.d.ts.map +1 -0
- package/dist/registry/WidgetMissingCard.js +14 -0
- package/dist/registry/WidgetMissingCard.js.map +1 -0
- package/dist/registry/archetypes.d.ts +81 -0
- package/dist/registry/archetypes.d.ts.map +1 -0
- package/dist/registry/archetypes.js +374 -0
- package/dist/registry/archetypes.js.map +1 -0
- package/dist/registry/candidates.d.ts +294 -0
- package/dist/registry/candidates.d.ts.map +1 -0
- package/dist/registry/candidates.js +1408 -0
- package/dist/registry/candidates.js.map +1 -0
- package/dist/registry/data-empty.d.ts +10 -0
- package/dist/registry/data-empty.d.ts.map +1 -0
- package/dist/registry/data-empty.js +52 -0
- package/dist/registry/data-empty.js.map +1 -0
- package/dist/registry/index.d.ts +50 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +198 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/llm-allowlist.d.ts +56 -0
- package/dist/registry/llm-allowlist.d.ts.map +1 -0
- package/dist/registry/llm-allowlist.js +100 -0
- package/dist/registry/llm-allowlist.js.map +1 -0
- package/dist/registry/offline.d.ts +74 -0
- package/dist/registry/offline.d.ts.map +1 -0
- package/dist/registry/offline.js +68 -0
- package/dist/registry/offline.js.map +1 -0
- package/dist/registry/page-templates.d.ts +79 -0
- package/dist/registry/page-templates.d.ts.map +1 -0
- package/dist/registry/page-templates.js +103 -0
- package/dist/registry/page-templates.js.map +1 -0
- package/dist/registry/registered-ids.d.ts +27 -0
- package/dist/registry/registered-ids.d.ts.map +1 -0
- package/dist/registry/registered-ids.js +208 -0
- package/dist/registry/registered-ids.js.map +1 -0
- package/dist/registry/shared-config.d.ts +146 -0
- package/dist/registry/shared-config.d.ts.map +1 -0
- package/dist/registry/shared-config.js +41 -0
- package/dist/registry/shared-config.js.map +1 -0
- package/dist/registry/types.d.ts +94 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +27 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/registry/widget-missing.d.ts +150 -0
- package/dist/registry/widget-missing.d.ts.map +1 -0
- package/dist/registry/widget-missing.js +28 -0
- package/dist/registry/widget-missing.js.map +1 -0
- package/dist/templates/compose.d.ts +127 -0
- package/dist/templates/compose.d.ts.map +1 -0
- package/dist/templates/compose.js +216 -0
- package/dist/templates/compose.js.map +1 -0
- package/dist/templates/crosscheck.d.ts +68 -0
- package/dist/templates/crosscheck.d.ts.map +1 -0
- package/dist/templates/crosscheck.js +155 -0
- package/dist/templates/crosscheck.js.map +1 -0
- package/dist/templates/index.d.ts +17 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +17 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/manifests.d.ts +13 -0
- package/dist/templates/manifests.d.ts.map +1 -0
- package/dist/templates/manifests.js +110 -0
- package/dist/templates/manifests.js.map +1 -0
- package/dist/templates/page-board/PageBoard.d.ts +46 -0
- package/dist/templates/page-board/PageBoard.d.ts.map +1 -0
- package/dist/templates/page-board/PageBoard.js +220 -0
- package/dist/templates/page-board/PageBoard.js.map +1 -0
- package/dist/templates/page-board/index.d.ts +6 -0
- package/dist/templates/page-board/index.d.ts.map +1 -0
- package/dist/templates/page-board/index.js +6 -0
- package/dist/templates/page-board/index.js.map +1 -0
- package/dist/templates/page-board.json +12 -0
- package/dist/templates/page-builder/PageBuilder.d.ts +71 -0
- package/dist/templates/page-builder/PageBuilder.d.ts.map +1 -0
- package/dist/templates/page-builder/PageBuilder.js +209 -0
- package/dist/templates/page-builder/PageBuilder.js.map +1 -0
- package/dist/templates/page-builder/builder-config.d.ts +187 -0
- package/dist/templates/page-builder/builder-config.d.ts.map +1 -0
- package/dist/templates/page-builder/builder-config.js +441 -0
- package/dist/templates/page-builder/builder-config.js.map +1 -0
- package/dist/templates/page-builder/index.d.ts +8 -0
- package/dist/templates/page-builder/index.d.ts.map +1 -0
- package/dist/templates/page-builder/index.js +8 -0
- package/dist/templates/page-builder/index.js.map +1 -0
- package/dist/templates/page-builder.json +17 -0
- package/dist/templates/page-calendar/PageCalendar.d.ts +46 -0
- package/dist/templates/page-calendar/PageCalendar.d.ts.map +1 -0
- package/dist/templates/page-calendar/PageCalendar.js +201 -0
- package/dist/templates/page-calendar/PageCalendar.js.map +1 -0
- package/dist/templates/page-calendar/index.d.ts +6 -0
- package/dist/templates/page-calendar/index.d.ts.map +1 -0
- package/dist/templates/page-calendar/index.js +6 -0
- package/dist/templates/page-calendar/index.js.map +1 -0
- package/dist/templates/page-calendar.json +21 -0
- package/dist/templates/page-chat/PageChat.d.ts +69 -0
- package/dist/templates/page-chat/PageChat.d.ts.map +1 -0
- package/dist/templates/page-chat/PageChat.js +128 -0
- package/dist/templates/page-chat/PageChat.js.map +1 -0
- package/dist/templates/page-chat/chat-mapping.d.ts +45 -0
- package/dist/templates/page-chat/chat-mapping.d.ts.map +1 -0
- package/dist/templates/page-chat/chat-mapping.js +120 -0
- package/dist/templates/page-chat/chat-mapping.js.map +1 -0
- package/dist/templates/page-chat/demo-layout.d.ts +11 -0
- package/dist/templates/page-chat/demo-layout.d.ts.map +1 -0
- package/dist/templates/page-chat/demo-layout.js +41 -0
- package/dist/templates/page-chat/demo-layout.js.map +1 -0
- package/dist/templates/page-chat/index.d.ts +9 -0
- package/dist/templates/page-chat/index.d.ts.map +1 -0
- package/dist/templates/page-chat/index.js +9 -0
- package/dist/templates/page-chat/index.js.map +1 -0
- package/dist/templates/page-chat.json +16 -0
- package/dist/templates/page-crud/PageCrud.d.ts +83 -0
- package/dist/templates/page-crud/PageCrud.d.ts.map +1 -0
- package/dist/templates/page-crud/PageCrud.js +327 -0
- package/dist/templates/page-crud/PageCrud.js.map +1 -0
- package/dist/templates/page-crud/RecordDetail.d.ts +24 -0
- package/dist/templates/page-crud/RecordDetail.d.ts.map +1 -0
- package/dist/templates/page-crud/RecordDetail.js +85 -0
- package/dist/templates/page-crud/RecordDetail.js.map +1 -0
- package/dist/templates/page-crud/RecordForm.d.ts +30 -0
- package/dist/templates/page-crud/RecordForm.d.ts.map +1 -0
- package/dist/templates/page-crud/RecordForm.js +131 -0
- package/dist/templates/page-crud/RecordForm.js.map +1 -0
- package/dist/templates/page-crud/crud-api.d.ts +154 -0
- package/dist/templates/page-crud/crud-api.d.ts.map +1 -0
- package/dist/templates/page-crud/crud-api.js +39 -0
- package/dist/templates/page-crud/crud-api.js.map +1 -0
- package/dist/templates/page-crud/field-mapping.d.ts +20 -0
- package/dist/templates/page-crud/field-mapping.d.ts.map +1 -0
- package/dist/templates/page-crud/field-mapping.js +93 -0
- package/dist/templates/page-crud/field-mapping.js.map +1 -0
- package/dist/templates/page-crud/index.d.ts +12 -0
- package/dist/templates/page-crud/index.d.ts.map +1 -0
- package/dist/templates/page-crud/index.js +12 -0
- package/dist/templates/page-crud/index.js.map +1 -0
- package/dist/templates/page-crud.json +23 -0
- package/dist/templates/page-dashboard/PageDashboard.d.ts +30 -0
- package/dist/templates/page-dashboard/PageDashboard.d.ts.map +1 -0
- package/dist/templates/page-dashboard/PageDashboard.js +34 -0
- package/dist/templates/page-dashboard/PageDashboard.js.map +1 -0
- package/dist/templates/page-dashboard/data-adapter.d.ts +38 -0
- package/dist/templates/page-dashboard/data-adapter.d.ts.map +1 -0
- package/dist/templates/page-dashboard/data-adapter.js +119 -0
- package/dist/templates/page-dashboard/data-adapter.js.map +1 -0
- package/dist/templates/page-dashboard/demo-layout.d.ts +15 -0
- package/dist/templates/page-dashboard/demo-layout.d.ts.map +1 -0
- package/dist/templates/page-dashboard/demo-layout.js +121 -0
- package/dist/templates/page-dashboard/demo-layout.js.map +1 -0
- package/dist/templates/page-dashboard.json +20 -0
- package/dist/templates/page-directory/PageDirectory.d.ts +49 -0
- package/dist/templates/page-directory/PageDirectory.d.ts.map +1 -0
- package/dist/templates/page-directory/PageDirectory.js +141 -0
- package/dist/templates/page-directory/PageDirectory.js.map +1 -0
- package/dist/templates/page-directory/index.d.ts +8 -0
- package/dist/templates/page-directory/index.d.ts.map +1 -0
- package/dist/templates/page-directory/index.js +8 -0
- package/dist/templates/page-directory/index.js.map +1 -0
- package/dist/templates/page-directory.json +15 -0
- package/dist/templates/page-files/PageFiles.d.ts +77 -0
- package/dist/templates/page-files/PageFiles.d.ts.map +1 -0
- package/dist/templates/page-files/PageFiles.js +114 -0
- package/dist/templates/page-files/PageFiles.js.map +1 -0
- package/dist/templates/page-files/demo-layout.d.ts +11 -0
- package/dist/templates/page-files/demo-layout.d.ts.map +1 -0
- package/dist/templates/page-files/demo-layout.js +32 -0
- package/dist/templates/page-files/demo-layout.js.map +1 -0
- package/dist/templates/page-files/file-mapping.d.ts +10 -0
- package/dist/templates/page-files/file-mapping.d.ts.map +1 -0
- package/dist/templates/page-files/file-mapping.js +68 -0
- package/dist/templates/page-files/file-mapping.js.map +1 -0
- package/dist/templates/page-files/index.d.ts +9 -0
- package/dist/templates/page-files/index.d.ts.map +1 -0
- package/dist/templates/page-files/index.js +9 -0
- package/dist/templates/page-files/index.js.map +1 -0
- package/dist/templates/page-files.json +16 -0
- package/dist/templates/page-log-viewer/PageLogViewer.d.ts +70 -0
- package/dist/templates/page-log-viewer/PageLogViewer.d.ts.map +1 -0
- package/dist/templates/page-log-viewer/PageLogViewer.js +109 -0
- package/dist/templates/page-log-viewer/PageLogViewer.js.map +1 -0
- package/dist/templates/page-log-viewer/demo-layout.d.ts +11 -0
- package/dist/templates/page-log-viewer/demo-layout.d.ts.map +1 -0
- package/dist/templates/page-log-viewer/demo-layout.js +50 -0
- package/dist/templates/page-log-viewer/demo-layout.js.map +1 -0
- package/dist/templates/page-log-viewer/index.d.ts +10 -0
- package/dist/templates/page-log-viewer/index.d.ts.map +1 -0
- package/dist/templates/page-log-viewer/index.js +10 -0
- package/dist/templates/page-log-viewer/index.js.map +1 -0
- package/dist/templates/page-log-viewer/log-mapping.d.ts +77 -0
- package/dist/templates/page-log-viewer/log-mapping.d.ts.map +1 -0
- package/dist/templates/page-log-viewer/log-mapping.js +159 -0
- package/dist/templates/page-log-viewer/log-mapping.js.map +1 -0
- package/dist/templates/page-log-viewer.json +17 -0
- package/dist/templates/page-master-detail/PageMasterDetail.d.ts +55 -0
- package/dist/templates/page-master-detail/PageMasterDetail.d.ts.map +1 -0
- package/dist/templates/page-master-detail/PageMasterDetail.js +192 -0
- package/dist/templates/page-master-detail/PageMasterDetail.js.map +1 -0
- package/dist/templates/page-master-detail/index.d.ts +8 -0
- package/dist/templates/page-master-detail/index.d.ts.map +1 -0
- package/dist/templates/page-master-detail/index.js +8 -0
- package/dist/templates/page-master-detail/index.js.map +1 -0
- package/dist/templates/page-master-detail.json +14 -0
- package/dist/templates/page-queue-inbox/PageQueueInbox.d.ts +77 -0
- package/dist/templates/page-queue-inbox/PageQueueInbox.d.ts.map +1 -0
- package/dist/templates/page-queue-inbox/PageQueueInbox.js +292 -0
- package/dist/templates/page-queue-inbox/PageQueueInbox.js.map +1 -0
- package/dist/templates/page-queue-inbox/index.d.ts +11 -0
- package/dist/templates/page-queue-inbox/index.d.ts.map +1 -0
- package/dist/templates/page-queue-inbox/index.js +10 -0
- package/dist/templates/page-queue-inbox/index.js.map +1 -0
- package/dist/templates/page-queue-inbox/queue-api.d.ts +22 -0
- package/dist/templates/page-queue-inbox/queue-api.d.ts.map +1 -0
- package/dist/templates/page-queue-inbox/queue-api.js +13 -0
- package/dist/templates/page-queue-inbox/queue-api.js.map +1 -0
- package/dist/templates/page-queue-inbox.json +17 -0
- package/dist/templates/page-scheduler/PageScheduler.d.ts +68 -0
- package/dist/templates/page-scheduler/PageScheduler.d.ts.map +1 -0
- package/dist/templates/page-scheduler/PageScheduler.js +289 -0
- package/dist/templates/page-scheduler/PageScheduler.js.map +1 -0
- package/dist/templates/page-scheduler/ShiftMatrix.d.ts +49 -0
- package/dist/templates/page-scheduler/ShiftMatrix.d.ts.map +1 -0
- package/dist/templates/page-scheduler/ShiftMatrix.js +144 -0
- package/dist/templates/page-scheduler/ShiftMatrix.js.map +1 -0
- package/dist/templates/page-scheduler/index.d.ts +8 -0
- package/dist/templates/page-scheduler/index.d.ts.map +1 -0
- package/dist/templates/page-scheduler/index.js +8 -0
- package/dist/templates/page-scheduler/index.js.map +1 -0
- package/dist/templates/page-scheduler.json +17 -0
- package/dist/templates/page-settings/PageSettings.d.ts +62 -0
- package/dist/templates/page-settings/PageSettings.d.ts.map +1 -0
- package/dist/templates/page-settings/PageSettings.js +0 -0
- package/dist/templates/page-settings/PageSettings.js.map +1 -0
- package/dist/templates/page-settings/index.d.ts +6 -0
- package/dist/templates/page-settings/index.d.ts.map +1 -0
- package/dist/templates/page-settings/index.js +6 -0
- package/dist/templates/page-settings/index.js.map +1 -0
- package/dist/templates/page-settings.json +14 -0
- package/dist/templates/page-wizard/PageWizard.d.ts +28 -0
- package/dist/templates/page-wizard/PageWizard.d.ts.map +1 -0
- package/dist/templates/page-wizard/PageWizard.js +55 -0
- package/dist/templates/page-wizard/PageWizard.js.map +1 -0
- package/dist/templates/page-wizard/index.d.ts +9 -0
- package/dist/templates/page-wizard/index.d.ts.map +1 -0
- package/dist/templates/page-wizard/index.js +9 -0
- package/dist/templates/page-wizard/index.js.map +1 -0
- package/dist/templates/page-wizard.json +19 -0
- package/dist/templates/planning/planning-lib.d.ts +54 -0
- package/dist/templates/planning/planning-lib.d.ts.map +1 -0
- package/dist/templates/planning/planning-lib.js +154 -0
- package/dist/templates/planning/planning-lib.js.map +1 -0
- package/dist/templates/stored-config.d.ts +107 -0
- package/dist/templates/stored-config.d.ts.map +1 -0
- package/dist/templates/stored-config.js +212 -0
- package/dist/templates/stored-config.js.map +1 -0
- package/dist/templates/template-schema.d.ts +215 -0
- package/dist/templates/template-schema.d.ts.map +1 -0
- package/dist/templates/template-schema.js +111 -0
- package/dist/templates/template-schema.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Breadcrumbs, Checkbox, EmptyState, IconButton, IconTile, MonoText, SegmentedControl } from '@adminium/ui';
|
|
3
|
+
import { LayoutGrid, List, Star } from 'lucide-react';
|
|
4
|
+
import { useMemo, useState } from 'react';
|
|
5
|
+
import { fileIconFor } from './media-icons.js';
|
|
6
|
+
import { FILE_KIND_TONE, ROOT_ID, bindingSourceOf, booleanField, breadcrumbTrail, childrenOf, descendantCount, fileRowsOf, formatCount, formatModified, formatModifiedFull, formatSize, kindOf, numberField, resolveLocale, stringField, } from './media-lib.js';
|
|
7
|
+
import { fileBrowserConfigSchema, fileBrowserDemoData } from './media-config.js';
|
|
8
|
+
export { fileBrowserConfigSchema, fileBrowserDemoData };
|
|
9
|
+
/** Placeholder for a folder's size cell — folders have no byte size. */
|
|
10
|
+
const EM_DASH = '—';
|
|
11
|
+
export function FileBrowser({ nodes, views = 'both', defaultView = 'grid', starrable = true, selectable = false, smartFolders, typeIconMap, locale, rootLabel, breadcrumbLabel, gridViewLabel, listViewLabel, nameHeader, sizeHeader, modifiedHeader, starLabel, itemsLabel, emptyTitle, emptyBody, folderId, onFolderChange, onOpenFile, onToggleStar, onSelectionChange, testId, }) {
|
|
12
|
+
const tag = resolveLocale(locale);
|
|
13
|
+
const [localFolder, setLocalFolder] = useState(ROOT_ID);
|
|
14
|
+
const [view, setView] = useState(views === 'both' ? defaultView : views);
|
|
15
|
+
const [smartKey, setSmartKey] = useState(null);
|
|
16
|
+
const [selected, setSelected] = useState([]);
|
|
17
|
+
const current = folderId ?? localFolder;
|
|
18
|
+
const effectiveView = views === 'both' ? view : views;
|
|
19
|
+
const collator = useMemo(() => new Intl.Collator(tag, { numeric: true }), [tag]);
|
|
20
|
+
const smart = smartFolders?.find((entry) => entry.key === smartKey);
|
|
21
|
+
const trail = useMemo(() => breadcrumbTrail(nodes, current), [nodes, current]);
|
|
22
|
+
/**
|
|
23
|
+
* The rows on screen. A smart folder REPLACES the hierarchy view with a flat
|
|
24
|
+
* filtered list (the File Manager rail's semantics: "Starred" spans folders);
|
|
25
|
+
* otherwise it is the current folder's direct children, folders first.
|
|
26
|
+
*/
|
|
27
|
+
const visible = useMemo(() => {
|
|
28
|
+
if (smart !== undefined && smart.filter !== 'folder') {
|
|
29
|
+
return flatFilter(nodes, smart.filter, collator);
|
|
30
|
+
}
|
|
31
|
+
const target = smart?.filter === 'folder' && smart.folderId !== undefined ? smart.folderId : current;
|
|
32
|
+
return childrenOf(nodes, target, collator);
|
|
33
|
+
}, [nodes, smart, current, collator]);
|
|
34
|
+
const navigate = (next) => {
|
|
35
|
+
setSmartKey(null);
|
|
36
|
+
if (folderId === undefined)
|
|
37
|
+
setLocalFolder(next);
|
|
38
|
+
onFolderChange?.(next);
|
|
39
|
+
};
|
|
40
|
+
const openNode = (node) => {
|
|
41
|
+
if (node.kind === 'folder')
|
|
42
|
+
navigate(node.id);
|
|
43
|
+
else
|
|
44
|
+
onOpenFile?.(node);
|
|
45
|
+
};
|
|
46
|
+
const toggleSelected = (id) => {
|
|
47
|
+
const next = selected.includes(id) ? selected.filter((value) => value !== id) : [...selected, id];
|
|
48
|
+
setSelected(next);
|
|
49
|
+
onSelectionChange?.(next);
|
|
50
|
+
};
|
|
51
|
+
const crumbs = [
|
|
52
|
+
{ label: rootLabel ?? 'Files', onClick: () => navigate(ROOT_ID) },
|
|
53
|
+
...trail.map((node) => ({ label: node.name, onClick: () => navigate(node.id) })),
|
|
54
|
+
];
|
|
55
|
+
return (_jsxs("div", { "data-widget": "file-browser", "data-testid": testId, className: "flex h-full min-h-0 flex-col", children: [_jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4 py-2.5", children: [_jsx(Breadcrumbs, { items: crumbs, label: breadcrumbLabel ?? 'Breadcrumb', className: "flex-1" }), views === 'both' && (_jsx(SegmentedControl, { value: effectiveView, onValueChange: (next) => setView(next === 'list' ? 'list' : 'grid'), options: [
|
|
56
|
+
{ value: 'grid', ariaLabel: gridViewLabel ?? 'Grid view', icon: _jsx(LayoutGrid, { className: "size-4" }) },
|
|
57
|
+
{ value: 'list', ariaLabel: listViewLabel ?? 'List view', icon: _jsx(List, { className: "size-4" }) },
|
|
58
|
+
] }))] }), _jsxs("div", { className: "flex min-h-0 flex-1", children: [smartFolders !== undefined && smartFolders.length > 0 && (_jsx("nav", { className: "w-48 shrink-0 space-y-0.5 overflow-auto border-e border-border p-2", "aria-label": rootLabel ?? 'Files', children: smartFolders.map((entry) => {
|
|
59
|
+
const active = entry.key === smartKey;
|
|
60
|
+
const count = flatFilter(nodes, entry.filter, collator, entry.folderId).length;
|
|
61
|
+
return (_jsxs("button", { type: "button", "data-part": "smart-folder", "data-active": active ? '' : undefined, "aria-current": active ? 'true' : undefined, onClick: () => setSmartKey(active ? null : entry.key), className: 'flex w-full items-center gap-2.5 rounded-md px-2.5 py-2 text-body-sm font-semibold ' +
|
|
62
|
+
'focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent ' +
|
|
63
|
+
(active ? 'bg-accent-soft text-accent' : 'text-fg-muted hover:bg-surface-2 hover:text-fg'), children: [_jsx("span", { className: "flex-1 text-start", children: entry.label ?? entry.key }), _jsx(MonoText, { className: "text-caption text-fg-subtle", children: formatCount(count, tag) })] }, entry.key));
|
|
64
|
+
}) })), _jsx("div", { className: "min-w-0 flex-1 overflow-auto", children: visible.length === 0 ? (_jsx(EmptyState, { compact: true, preset: "no-data", title: emptyTitle ?? 'This folder is empty', body: emptyBody ?? 'Upload files or create a folder to get started.' })) : effectiveView === 'grid' ? (_jsx("ul", { className: "grid grid-cols-[repeat(auto-fill,minmax(10.5rem,1fr))] gap-3.5 p-4", children: visible.map((node) => (_jsxs("li", { className: "relative", children: [_jsxs("button", { type: "button", "data-part": "file-tile", "data-kind": node.kind, onClick: () => openNode(node), className: 'group flex w-full flex-col rounded-lg border border-border bg-surface p-4 text-start ' +
|
|
65
|
+
'transition-shadow duration-150 hover:border-border-strong hover:shadow-md ' +
|
|
66
|
+
'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', children: [_jsx(IconTile, { size: "lg", tone: FILE_KIND_TONE[node.kind], icon: fileIconFor(node.kind, undefined, node.name, typeIconMap) }), _jsx("span", { className: "mt-3 truncate text-body-sm font-bold text-fg", children: node.name }), _jsx("span", { className: "mt-0.5 truncate text-caption text-fg-subtle", children: metaLine(node, nodes, tag, itemsLabel) })] }), starrable && _jsx(StarToggle, { node: node, label: starLabel, onToggle: onToggleStar, className: "absolute end-3 top-3" }), selectable && (_jsx("span", { className: "absolute start-3 top-3", children: _jsx(Checkbox, { checked: selected.includes(node.id), onCheckedChange: () => toggleSelected(node.id), "aria-label": node.name }) }))] }, node.id))) })) : (_jsxs("table", { "data-part": "file-table", className: "w-full border-collapse", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-border text-caption font-bold uppercase tracking-wide text-fg-subtle", children: [selectable && _jsx("th", { scope: "col", className: "w-10 px-4 py-2.5" }), _jsx("th", { scope: "col", className: "px-4 py-2.5 text-start", children: nameHeader ?? 'Name' }), _jsx("th", { scope: "col", className: "w-28 px-4 py-2.5 text-start", children: sizeHeader ?? 'Size' }), _jsx("th", { scope: "col", className: "w-32 px-4 py-2.5 text-start", children: modifiedHeader ?? 'Modified' }), starrable && _jsx("th", { scope: "col", className: "w-12 px-4 py-2.5" })] }) }), _jsx("tbody", { children: visible.map((node) => (_jsxs("tr", { "data-part": "file-row", "data-kind": node.kind, className: "border-b border-border hover:bg-surface-2", children: [selectable && (_jsx("td", { className: "px-4 py-2.5", children: _jsx(Checkbox, { checked: selected.includes(node.id), onCheckedChange: () => toggleSelected(node.id), "aria-label": node.name }) })), _jsx("td", { className: "px-4 py-2.5", children: _jsxs("button", { type: "button", onClick: () => openNode(node), className: 'flex w-full min-w-0 items-center gap-3 text-start ' +
|
|
67
|
+
'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', children: [_jsx(IconTile, { size: "sm", tone: FILE_KIND_TONE[node.kind], icon: fileIconFor(node.kind, undefined, node.name, typeIconMap) }), _jsx("span", { className: "truncate text-body-sm font-semibold text-fg", children: node.name })] }) }), _jsx("td", { className: "px-4 py-2.5", children: _jsx(MonoText, { className: "text-body-sm text-fg-muted", children: node.kind === 'folder' ? EM_DASH : (formatSize(node.size, tag) ?? EM_DASH) }) }), _jsx("td", { className: "px-4 py-2.5 text-body-sm text-fg-muted", children: node.modified === undefined ? (EM_DASH) : (_jsx("time", { dateTime: node.modified, title: formatModifiedFull(node.modified, tag), children: formatModified(node.modified, tag) ?? EM_DASH })) }), starrable && (_jsx("td", { className: "px-4 py-2.5", children: _jsx(StarToggle, { node: node, label: starLabel, onToggle: onToggleStar }) }))] }, node.id))) })] })) })] })] }));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The hover star toggle. Optimistic-free: the widget renders `node.starred` and
|
|
71
|
+
* reports the intent — the host owns the write (04 §2, `capabilities.editsData`).
|
|
72
|
+
*/
|
|
73
|
+
function StarToggle({ node, label, onToggle, className, }) {
|
|
74
|
+
return (_jsx(IconButton, { size: "sm", "data-part": "star-toggle", "data-starred": node.starred ? '' : undefined, "aria-pressed": node.starred, label: label ?? 'Star', onClick: () => onToggle?.(node, !node.starred), className: `${node.starred ? 'text-warn' : 'text-fg-subtle'} ${className ?? ''}`, children: _jsx(Star, { className: "size-3.5", ...(node.starred ? { fill: 'currentColor' } : {}) }) }));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Tile sub-label: "12 items" for a folder, "2.4 MB · Sep 12" for a file.
|
|
78
|
+
*
|
|
79
|
+
* `count` is OPTIONAL in the annex §8 contract — a real file table (name + size
|
|
80
|
+
* + parent self-FK) has no materialized count column — so a folder with no
|
|
81
|
+
* `countField` binding falls back to counting its children in the payload's own
|
|
82
|
+
* self-FK hierarchy rather than asserting a false "0 items".
|
|
83
|
+
*/
|
|
84
|
+
function metaLine(node, nodes, locale, itemsLabel) {
|
|
85
|
+
if (node.kind === 'folder') {
|
|
86
|
+
return `${formatCount(node.count ?? descendantCount(nodes, node.id), locale)} ${itemsLabel ?? 'items'}`;
|
|
87
|
+
}
|
|
88
|
+
return [formatSize(node.size, locale), formatModified(node.modified, locale)].filter((part) => part !== undefined).join(' · ');
|
|
89
|
+
}
|
|
90
|
+
/** Rows for a smart-folder rail entry (also drives its live count). */
|
|
91
|
+
function flatFilter(nodes, filter, collator, folderId) {
|
|
92
|
+
if (filter === 'folder')
|
|
93
|
+
return childrenOf(nodes, folderId ?? ROOT_ID, collator);
|
|
94
|
+
if (filter === 'starred')
|
|
95
|
+
return nodes.filter((node) => node.starred);
|
|
96
|
+
if (filter === 'recent') {
|
|
97
|
+
return [...nodes]
|
|
98
|
+
.filter((node) => node.kind !== 'folder' && node.modified !== undefined)
|
|
99
|
+
.sort((a, b) => (b.modified ?? '').localeCompare(a.modified ?? ''))
|
|
100
|
+
.slice(0, 8);
|
|
101
|
+
}
|
|
102
|
+
// 'all' spans the WHOLE hierarchy, like its `starred`/`recent` siblings — the
|
|
103
|
+
// rail's "All files · N" must not stop at the root folder's direct children.
|
|
104
|
+
return nodes
|
|
105
|
+
.filter((node) => node.kind !== 'folder')
|
|
106
|
+
.sort((a, b) => collator.compare(a.name, b.name));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Project an untrusted `record-list` onto `FileNode`s using the config's field
|
|
110
|
+
* naming. Rows without a usable id are dropped (a React key must be stable);
|
|
111
|
+
* everything else degrades to a sensible default rather than throwing.
|
|
112
|
+
*/
|
|
113
|
+
export function fileNodesOf(data, config) {
|
|
114
|
+
return fileRowsOf(data)
|
|
115
|
+
.map((row, index) => {
|
|
116
|
+
const id = stringField(row, config.idField) ?? `row-${index}`;
|
|
117
|
+
const name = stringField(row, config.nameField) ?? id;
|
|
118
|
+
const rawParent = row[config.parentField];
|
|
119
|
+
return {
|
|
120
|
+
id,
|
|
121
|
+
name,
|
|
122
|
+
kind: kindOf(row[config.typeField], row[config.mimeField], name),
|
|
123
|
+
parentId: typeof rawParent === 'string' && rawParent !== '' ? rawParent : null,
|
|
124
|
+
size: numberField(row, config.sizeField),
|
|
125
|
+
count: numberField(row, config.countField),
|
|
126
|
+
modified: stringField(row, config.modifiedField),
|
|
127
|
+
starred: booleanField(row, config.starredField),
|
|
128
|
+
url: stringField(row, config.urlField),
|
|
129
|
+
};
|
|
130
|
+
})
|
|
131
|
+
.filter((node) => node !== null);
|
|
132
|
+
}
|
|
133
|
+
export function FileBrowserWidget({ config, data, onEvent }) {
|
|
134
|
+
const nodes = fileNodesOf(data, config);
|
|
135
|
+
const source = bindingSourceOf(config.binding);
|
|
136
|
+
return (_jsx(FileBrowser, { nodes: nodes, views: config.views, defaultView: config.defaultView, starrable: config.starrable, selectable: config.selectable, ...(config.smartFolders === undefined ? {} : { smartFolders: config.smartFolders }), ...(config.typeIconMap === undefined ? {} : { typeIconMap: config.typeIconMap }), ...(config.format?.locale === undefined ? {} : { locale: config.format.locale }), ...(config.rootLabel === undefined ? {} : { rootLabel: config.rootLabel }), ...(config.breadcrumbLabel === undefined ? {} : { breadcrumbLabel: config.breadcrumbLabel }), ...(config.gridViewLabel === undefined ? {} : { gridViewLabel: config.gridViewLabel }), ...(config.listViewLabel === undefined ? {} : { listViewLabel: config.listViewLabel }), ...(config.nameHeader === undefined ? {} : { nameHeader: config.nameHeader }), ...(config.sizeHeader === undefined ? {} : { sizeHeader: config.sizeHeader }), ...(config.modifiedHeader === undefined ? {} : { modifiedHeader: config.modifiedHeader }), ...(config.starLabel === undefined ? {} : { starLabel: config.starLabel }), ...(config.itemsLabel === undefined ? {} : { itemsLabel: config.itemsLabel }), ...(config.emptyTitle === undefined ? {} : { emptyTitle: config.emptyTitle }), ...(config.emptyBody === undefined ? {} : { emptyBody: config.emptyBody }), onOpenFile: (node) => {
|
|
137
|
+
// Bound → let the host open the record (preview/download/route is its
|
|
138
|
+
// call); unbound demo data → the row's own url is the only target.
|
|
139
|
+
if (source !== null) {
|
|
140
|
+
onEvent({ type: 'record-open', connectionId: source.connectionId, table: source.table, recordId: node.id });
|
|
141
|
+
}
|
|
142
|
+
else if (node.url !== undefined) {
|
|
143
|
+
onEvent({ type: 'drill-through', href: node.url });
|
|
144
|
+
}
|
|
145
|
+
}, onToggleStar: (node, next) => {
|
|
146
|
+
if (source === null)
|
|
147
|
+
return; // unbound: nothing to write to
|
|
148
|
+
onEvent({
|
|
149
|
+
type: 'mutate',
|
|
150
|
+
intent: 'update',
|
|
151
|
+
connectionId: source.connectionId,
|
|
152
|
+
table: source.table,
|
|
153
|
+
recordId: node.id,
|
|
154
|
+
values: { [config.starredField]: next },
|
|
155
|
+
});
|
|
156
|
+
} }));
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=FileBrowser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileBrowser.js","sourceRoot":"","sources":["../../../src/families/media/FileBrowser.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,OAAO,EACP,eAAe,EACf,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,CAAC;AA+CxD,wEAAwE;AACxE,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,GAAG,MAAM,EACd,WAAW,GAAG,MAAM,EACpB,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,KAAK,EAClB,YAAY,EACZ,WAAW,EACX,MAAM,EACN,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,MAAM,GACW;IACjB,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,OAAO,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAkB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,QAAQ,IAAI,WAAW,CAAC;IACxC,MAAM,aAAa,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEtD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjF,MAAM,KAAK,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/E;;;;OAIG;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QACrG,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,QAAQ,KAAK,SAAS;YAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QACjD,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAQ,EAAE;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;YACzC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,EAAU,EAAQ,EAAE;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,EAAE,KAAK,EAAE,SAAS,IAAI,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACjF,CAAC;IAEF,OAAO,CACL,8BAAiB,cAAc,iBAAc,MAAM,EAAE,SAAS,EAAC,8BAA8B,aAE3F,eAAK,SAAS,EAAC,4DAA4D,aACzE,KAAC,WAAW,IAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,IAAI,YAAY,EAAE,SAAS,EAAC,QAAQ,GAAG,EACxF,KAAK,KAAK,MAAM,IAAI,CACnB,KAAC,gBAAgB,IACf,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EACnE,OAAO,EAAE;4BACP,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,IAAI,WAAW,EAAE,IAAI,EAAE,KAAC,UAAU,IAAC,SAAS,EAAC,QAAQ,GAAG,EAAE;4BACnG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,IAAI,WAAW,EAAE,IAAI,EAAE,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,GAAG,EAAE;yBAC9F,GACD,CACH,IACG,EAEN,eAAK,SAAS,EAAC,qBAAqB,aACjC,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CACxD,cAAK,SAAS,EAAC,oEAAoE,gBAAa,SAAS,IAAI,OAAO,YACjH,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4BAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC;4BACtC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;4BAC/E,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,eACH,cAAc,iBACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,kBACtB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EACrD,SAAS,EACP,qFAAqF;oCACrF,uFAAuF;oCACvF,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,gDAAgD,CAAC,aAG5F,eAAM,SAAS,EAAC,mBAAmB,YAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,GAAQ,EACrE,KAAC,QAAQ,IAAC,SAAS,EAAC,6BAA6B,YAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,GAAY,KAbjF,KAAK,CAAC,GAAG,CAcP,CACV,CAAC;wBACJ,CAAC,CAAC,GACE,CACP,EAED,cAAK,SAAS,EAAC,8BAA8B,YAC1C,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,KAAC,UAAU,IACT,OAAO,QACP,MAAM,EAAC,SAAS,EAChB,KAAK,EAAE,UAAU,IAAI,sBAAsB,EAC3C,IAAI,EAAE,SAAS,IAAI,iDAAiD,GACpE,CACH,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAC7B,aAAI,SAAS,EAAC,oEAAoE,YAC/E,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,cAAkB,SAAS,EAAC,UAAU,aACpC,kBACE,IAAI,EAAC,QAAQ,eACH,WAAW,eACV,IAAI,CAAC,IAAI,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,SAAS,EACP,uFAAuF;4CACvF,4EAA4E;4CAC5E,qFAAqF,aAGvF,KAAC,QAAQ,IACP,IAAI,EAAC,IAAI,EACT,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,GAC/D,EACF,eAAM,SAAS,EAAC,8CAA8C,YAAE,IAAI,CAAC,IAAI,GAAQ,EACjF,eAAM,SAAS,EAAC,6CAA6C,YAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,GAAQ,IACtG,EACR,SAAS,IAAI,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,sBAAsB,GAAG,EAClH,UAAU,IAAI,CACb,eAAM,SAAS,EAAC,wBAAwB,YACtC,KAAC,QAAQ,IACP,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EACnC,eAAe,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,gBAClC,IAAI,CAAC,IAAI,GACrB,GACG,CACR,KA7BM,IAAI,CAAC,EAAE,CA8BX,CACN,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CACF,8BAAiB,YAAY,EAAC,SAAS,EAAC,wBAAwB,aAC9D,0BACE,cAAI,SAAS,EAAC,sFAAsF,aACjG,UAAU,IAAI,aAAI,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,kBAAkB,GAAG,EAC9D,aAAI,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,wBAAwB,YAAE,UAAU,IAAI,MAAM,GAAM,EAC9E,aAAI,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,6BAA6B,YAAE,UAAU,IAAI,MAAM,GAAM,EACnF,aAAI,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,6BAA6B,YAAE,cAAc,IAAI,UAAU,GAAM,EAC1F,SAAS,IAAI,aAAI,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,kBAAkB,GAAG,IAC1D,GACC,EACR,0BACG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,2BAA4B,UAAU,eAAY,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,2CAA2C,aAC/G,UAAU,IAAI,CACb,aAAI,SAAS,EAAC,aAAa,YACzB,KAAC,QAAQ,IACP,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EACnC,eAAe,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,gBAClC,IAAI,CAAC,IAAI,GACrB,GACC,CACN,EACD,aAAI,SAAS,EAAC,aAAa,YACzB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,SAAS,EACP,oDAAoD;wDACpD,qFAAqF,aAGvF,KAAC,QAAQ,IACP,IAAI,EAAC,IAAI,EACT,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,GAC/D,EACF,eAAM,SAAS,EAAC,6CAA6C,YAAE,IAAI,CAAC,IAAI,GAAQ,IACzE,GACN,EACL,aAAI,SAAS,EAAC,aAAa,YACzB,KAAC,QAAQ,IAAC,SAAS,EAAC,4BAA4B,YAC7C,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,GAClE,GACR,EACL,aAAI,SAAS,EAAC,wCAAwC,YACnD,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAC7B,OAAO,CACR,CAAC,CAAC,CAAC,CACF,eAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,YACzE,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,OAAO,GACzC,CACR,GACE,EACJ,SAAS,IAAI,CACZ,aAAI,SAAS,EAAC,aAAa,YACzB,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAI,GACjE,CACN,KA7CM,IAAI,CAAC,EAAE,CA8CX,CACN,CAAC,GACI,IACF,CACT,GACG,IACF,IACF,CACP,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,EAClB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,GAMV;IACC,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAC,IAAI,eACC,aAAa,kBACT,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,kBAC7B,IAAI,CAAC,OAAO,EAC1B,KAAK,EAAE,KAAK,IAAI,MAAM,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAC9C,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,IAAI,SAAS,IAAI,EAAE,EAAE,YAEhF,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,GACtE,CACd,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,QAAQ,CACf,IAAc,EACd,KAA0B,EAC1B,MAAc,EACd,UAA+B;IAE/B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;IAC1G,CAAC;IACD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjI,CAAC;AAED,uEAAuE;AACvE,SAAS,UAAU,CACjB,KAA0B,EAC1B,MAAyB,EACzB,QAAuB,EACvB,QAA6B;IAE7B,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,KAAK,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;aACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;aAClE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,8EAA8E;IAC9E,6EAA6E;IAC7E,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,MAAyB;IAClE,OAAO,UAAU,CAAC,IAAI,CAAC;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAmB,EAAE;QACnC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO;YACL,EAAE;YACF,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;YAChE,QAAQ,EAAE,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC9E,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;YAC1C,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,CAAC;YAChD,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;YAC/C,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAkC;IACzF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,KACzB,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,KAChF,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,KAC7E,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAC7E,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,KACvE,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,KACzF,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,KACnF,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,KACnF,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAC1E,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAC1E,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,KACtF,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,KACvE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAC1E,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAC1E,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAC3E,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnB,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9G,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,EACD,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC3B,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,CAAC,+BAA+B;YAC5D,OAAO,CAAC;gBACN,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE;aACxC,CAAC,CAAC;QACL,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { imageBoardConfigSchema, imageBoardDemoData } from './media-config.js';
|
|
2
|
+
import type { ImageBoardConfig } from './media-config.js';
|
|
3
|
+
import type { WidgetProps } from '../../registry/types.js';
|
|
4
|
+
export { imageBoardConfigSchema, imageBoardDemoData };
|
|
5
|
+
export type { ImageBoardConfig };
|
|
6
|
+
/**
|
|
7
|
+
* `image-board` (annex §8) — the moodboard grid of droppable image slots with
|
|
8
|
+
* captions and an Add-image slot. Niche but broadly useful: any table with an
|
|
9
|
+
* image-URL column (product photos, property listings, design refs) auto-
|
|
10
|
+
* instantiates onto it (annex §8).
|
|
11
|
+
*
|
|
12
|
+
* An EMPTY slot is a first-class state, not a loading artefact: the annex's
|
|
13
|
+
* droppable placeholder ("Drop reference") is what an unfilled row renders. A
|
|
14
|
+
* broken/blocked image URL degrades to the same placeholder via `onError` rather
|
|
15
|
+
* than showing the browser's torn-image glyph.
|
|
16
|
+
*/
|
|
17
|
+
export interface BoardImage {
|
|
18
|
+
id: string;
|
|
19
|
+
imageUrl?: string | undefined;
|
|
20
|
+
caption?: string | undefined;
|
|
21
|
+
placeholder?: string | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface ImageBoardProps {
|
|
24
|
+
images: readonly BoardImage[];
|
|
25
|
+
columns?: number | undefined;
|
|
26
|
+
editableCaptions?: boolean | undefined;
|
|
27
|
+
allowAdd?: boolean | undefined;
|
|
28
|
+
addLabel?: string | undefined;
|
|
29
|
+
captionLabel?: string | undefined;
|
|
30
|
+
emptyTitle?: string | undefined;
|
|
31
|
+
emptyBody?: string | undefined;
|
|
32
|
+
onCaptionChange?: ((image: BoardImage, caption: string) => void) | undefined;
|
|
33
|
+
onAdd?: (() => void) | undefined;
|
|
34
|
+
onOpen?: ((image: BoardImage) => void) | undefined;
|
|
35
|
+
testId?: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
export declare function ImageBoard({ images, columns, editableCaptions, allowAdd, addLabel, captionLabel, emptyTitle, emptyBody, onCaptionChange, onAdd, onOpen, testId, }: ImageBoardProps): import("react").JSX.Element;
|
|
38
|
+
/** Project an untrusted `record-list` onto `BoardImage`s via the field naming. */
|
|
39
|
+
export declare function boardImagesOf(data: unknown, config: ImageBoardConfig): BoardImage[];
|
|
40
|
+
export declare function ImageBoardWidget({ config, data, onEvent }: WidgetProps<ImageBoardConfig>): import("react").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=ImageBoard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageBoard.d.ts","sourceRoot":"","sources":["../../../src/families/media/ImageBoard.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAgBD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,OAAW,EACX,gBAAwB,EACxB,QAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE,eAAe,+BAsFjB;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAOnF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC,+BA+BxF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EmptyState, IconTile } from '@adminium/ui';
|
|
3
|
+
import { ImageIcon, Plus } from 'lucide-react';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import { bindingSourceOf, fileRowsOf, stringField } from './media-lib.js';
|
|
6
|
+
import { imageBoardConfigSchema, imageBoardDemoData } from './media-config.js';
|
|
7
|
+
export { imageBoardConfigSchema, imageBoardDemoData };
|
|
8
|
+
/**
|
|
9
|
+
* Column count → a static Tailwind grid class. A template literal
|
|
10
|
+
* (`grid-cols-${n}`) would not survive Tailwind's static extraction — the class
|
|
11
|
+
* must appear verbatim in the source to be emitted.
|
|
12
|
+
*/
|
|
13
|
+
const COLUMN_CLASS = {
|
|
14
|
+
1: 'grid-cols-1',
|
|
15
|
+
2: 'grid-cols-2',
|
|
16
|
+
3: 'grid-cols-3',
|
|
17
|
+
4: 'grid-cols-4',
|
|
18
|
+
5: 'grid-cols-5',
|
|
19
|
+
6: 'grid-cols-6',
|
|
20
|
+
};
|
|
21
|
+
export function ImageBoard({ images, columns = 2, editableCaptions = false, allowAdd = false, addLabel, captionLabel, emptyTitle, emptyBody, onCaptionChange, onAdd, onOpen, testId, }) {
|
|
22
|
+
// Slots whose image failed to load fall back to the placeholder.
|
|
23
|
+
const [broken, setBroken] = useState([]);
|
|
24
|
+
if (images.length === 0 && !allowAdd) {
|
|
25
|
+
return (_jsx(EmptyState, { compact: true, preset: "no-data", title: emptyTitle ?? 'No images yet', body: emptyBody ?? 'Reference images will appear on this board.' }));
|
|
26
|
+
}
|
|
27
|
+
return (_jsx("div", { "data-widget": "image-board", "data-testid": testId, className: "h-full overflow-auto p-4", children: _jsxs("ul", { className: `grid gap-3.5 ${COLUMN_CLASS[columns] ?? COLUMN_CLASS[2]}`, children: [images.map((image) => {
|
|
28
|
+
const failed = broken.includes(image.id);
|
|
29
|
+
const src = failed ? undefined : image.imageUrl;
|
|
30
|
+
return (_jsxs("li", { "data-part": "image-slot", "data-filled": src === undefined ? undefined : '', children: [_jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden rounded-lg border border-border bg-surface-2", children: src === undefined ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-2 text-fg-subtle", children: [_jsx(ImageIcon, { "aria-hidden": "true", className: "size-6" }), _jsx("span", { className: "text-caption font-semibold", children: image.placeholder ?? 'Drop reference' })] })) : (_jsx("button", { type: "button", onClick: () => onOpen?.(image), className: "block size-full focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent", children: _jsx("img", { src: src, alt: image.caption ?? '', loading: "lazy", onError: () => setBroken((prev) => (prev.includes(image.id) ? prev : [...prev, image.id])), className: "size-full object-cover" }) })) }), editableCaptions ? (_jsx("input", { "data-part": "image-caption", "aria-label": captionLabel ?? 'Caption', defaultValue: image.caption ?? '', onBlur: (event) => onCaptionChange?.(image, event.currentTarget.value), className: 'mt-2 w-full rounded-md border border-transparent bg-transparent px-1.5 py-1 text-caption ' +
|
|
31
|
+
'font-semibold text-fg-muted hover:border-border focus:border-accent focus:outline-none' })) : (image.caption !== undefined && (_jsx("p", { "data-part": "image-caption", className: "mt-2 text-caption font-semibold text-fg-muted", children: image.caption })))] }, image.id));
|
|
32
|
+
}), allowAdd && (_jsx("li", { children: _jsxs("button", { type: "button", "data-part": "image-add", onClick: onAdd, className: 'flex aspect-[4/3] w-full flex-col items-center justify-center gap-2 rounded-lg border-2 ' +
|
|
33
|
+
'border-dashed border-border-strong text-fg-subtle transition-colors duration-150 ' +
|
|
34
|
+
'hover:border-accent hover:text-accent focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', children: [_jsx(IconTile, { size: "md", tone: "accent", icon: _jsx(Plus, {}) }), _jsx("span", { className: "text-caption font-bold", children: addLabel ?? 'Add image' })] }) }))] }) }));
|
|
35
|
+
}
|
|
36
|
+
/** Project an untrusted `record-list` onto `BoardImage`s via the field naming. */
|
|
37
|
+
export function boardImagesOf(data, config) {
|
|
38
|
+
return fileRowsOf(data).map((row, index) => ({
|
|
39
|
+
id: stringField(row, config.idField) ?? `image-${index}`,
|
|
40
|
+
imageUrl: stringField(row, config.imageField),
|
|
41
|
+
caption: stringField(row, config.captionField),
|
|
42
|
+
placeholder: stringField(row, config.placeholderField),
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
export function ImageBoardWidget({ config, data, onEvent }) {
|
|
46
|
+
const source = bindingSourceOf(config.binding);
|
|
47
|
+
return (_jsx(ImageBoard, { images: boardImagesOf(data, config), columns: config.columns,
|
|
48
|
+
// An editable caption is a write: only offer it when a binding exists to
|
|
49
|
+
// write to, else the field would silently swallow every edit.
|
|
50
|
+
editableCaptions: config.editableCaptions && source !== null, allowAdd: config.allowAdd, ...(config.addLabel === undefined ? {} : { addLabel: config.addLabel }), ...(config.captionLabel === undefined ? {} : { captionLabel: config.captionLabel }), ...(config.emptyTitle === undefined ? {} : { emptyTitle: config.emptyTitle }), ...(config.emptyBody === undefined ? {} : { emptyBody: config.emptyBody }), onOpen: (image) => {
|
|
51
|
+
const href = image.imageUrl ?? config.href;
|
|
52
|
+
if (href !== undefined)
|
|
53
|
+
onEvent({ type: 'drill-through', href });
|
|
54
|
+
}, onCaptionChange: (image, caption) => {
|
|
55
|
+
if (source === null || caption === (image.caption ?? ''))
|
|
56
|
+
return; // no-op blur
|
|
57
|
+
onEvent({
|
|
58
|
+
type: 'mutate',
|
|
59
|
+
intent: 'update',
|
|
60
|
+
connectionId: source.connectionId,
|
|
61
|
+
table: source.table,
|
|
62
|
+
recordId: image.id,
|
|
63
|
+
values: { [config.captionField]: caption },
|
|
64
|
+
});
|
|
65
|
+
} }));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=ImageBoard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageBoard.js","sourceRoot":"","sources":["../../../src/families/media/ImageBoard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { linkListConfigSchema, linkListDemoData } from './media-config.js';
|
|
2
|
+
import type { LinkListConfig } from './media-config.js';
|
|
3
|
+
import type { WidgetProps } from '../../registry/types.js';
|
|
4
|
+
export { linkListConfigSchema, linkListDemoData };
|
|
5
|
+
export type { LinkListConfig };
|
|
6
|
+
/**
|
|
7
|
+
* `link-list` (annex §8) — reference-link rows: an icon chip, the title, the mono
|
|
8
|
+
* URL, an external-link arrow, a hover delete, and an inline add-composer. The
|
|
9
|
+
* read-only "resources" variant (`editable: false`) is what Workspace Onboarding
|
|
10
|
+
* and the 404 quick-links render; the auto-instantiation target for URL columns
|
|
11
|
+
* (annex §8).
|
|
12
|
+
*
|
|
13
|
+
* SAFETY: rows carry URLs from a database column — untrusted input. Only
|
|
14
|
+
* `http(s)` links become anchors (a `javascript:`/`data:` URL would otherwise be
|
|
15
|
+
* a stored-XSS sink via `href`); anything else renders as inert text. External
|
|
16
|
+
* links always get `rel="noreferrer noopener"` so the target can never reach back
|
|
17
|
+
* through `window.opener`.
|
|
18
|
+
*/
|
|
19
|
+
export interface ReferenceLink {
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
url: string;
|
|
23
|
+
}
|
|
24
|
+
export interface LinkListProps {
|
|
25
|
+
links: readonly ReferenceLink[];
|
|
26
|
+
editable?: boolean | undefined;
|
|
27
|
+
newTab?: boolean | undefined;
|
|
28
|
+
addLabel?: string | undefined;
|
|
29
|
+
titlePlaceholder?: string | undefined;
|
|
30
|
+
urlPlaceholder?: string | undefined;
|
|
31
|
+
submitLabel?: string | undefined;
|
|
32
|
+
deleteLabel?: string | undefined;
|
|
33
|
+
emptyTitle?: string | undefined;
|
|
34
|
+
emptyBody?: string | undefined;
|
|
35
|
+
onAdd?: ((link: {
|
|
36
|
+
title: string;
|
|
37
|
+
url: string;
|
|
38
|
+
}) => void) | undefined;
|
|
39
|
+
onDelete?: ((link: ReferenceLink) => void) | undefined;
|
|
40
|
+
testId?: string | undefined;
|
|
41
|
+
}
|
|
42
|
+
/** Only `http(s)` URLs may become an `href` — everything else renders inert. */
|
|
43
|
+
export declare function isSafeHref(url: string): boolean;
|
|
44
|
+
export declare function LinkList({ links, editable, newTab, addLabel, titlePlaceholder, urlPlaceholder, submitLabel, deleteLabel, emptyTitle, emptyBody, onAdd, onDelete, testId, }: LinkListProps): import("react").JSX.Element;
|
|
45
|
+
/** Project an untrusted `record-list` onto `ReferenceLink`s via the field naming. */
|
|
46
|
+
export declare function referenceLinksOf(data: unknown, config: LinkListConfig): ReferenceLink[];
|
|
47
|
+
export declare function LinkListWidget({ config, data, onEvent }: WidgetProps<LinkListConfig>): import("react").JSX.Element;
|
|
48
|
+
//# sourceMappingURL=LinkList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkList.d.ts","sourceRoot":"","sources":["../../../src/families/media/LinkList.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAgB,EAChB,MAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,GACP,EAAE,aAAa,+BAiIf;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,aAAa,EAAE,CAMvF;AAED,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,cAAc,CAAC,+BAqCpF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Button, EmptyState, IconButton, IconTile, Input, MonoText } from '@adminium/ui';
|
|
3
|
+
import { ArrowUpRight, Plus, X } from 'lucide-react';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import { linkIcon } from './media-icons.js';
|
|
6
|
+
import { bindingSourceOf, displayUrl, fileRowsOf, stringField } from './media-lib.js';
|
|
7
|
+
import { linkListConfigSchema, linkListDemoData } from './media-config.js';
|
|
8
|
+
export { linkListConfigSchema, linkListDemoData };
|
|
9
|
+
/** Only `http(s)` URLs may become an `href` — everything else renders inert. */
|
|
10
|
+
export function isSafeHref(url) {
|
|
11
|
+
try {
|
|
12
|
+
const protocol = new URL(url, 'https://placeholder.invalid').protocol;
|
|
13
|
+
return protocol === 'http:' || protocol === 'https:';
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function LinkList({ links, editable = false, newTab = true, addLabel, titlePlaceholder, urlPlaceholder, submitLabel, deleteLabel, emptyTitle, emptyBody, onAdd, onDelete, testId, }) {
|
|
20
|
+
const [composing, setComposing] = useState(false);
|
|
21
|
+
const [title, setTitle] = useState('');
|
|
22
|
+
const [url, setUrl] = useState('');
|
|
23
|
+
const submit = () => {
|
|
24
|
+
const nextTitle = title.trim();
|
|
25
|
+
const nextUrl = url.trim();
|
|
26
|
+
if (nextUrl === '')
|
|
27
|
+
return;
|
|
28
|
+
onAdd?.({ title: nextTitle === '' ? nextUrl : nextTitle, url: nextUrl });
|
|
29
|
+
setTitle('');
|
|
30
|
+
setUrl('');
|
|
31
|
+
setComposing(false);
|
|
32
|
+
};
|
|
33
|
+
if (links.length === 0 && !editable) {
|
|
34
|
+
return (_jsx(EmptyState, { compact: true, preset: "no-data", title: emptyTitle ?? 'No links yet', body: emptyBody ?? 'Reference links will appear here.' }));
|
|
35
|
+
}
|
|
36
|
+
return (_jsxs("div", { "data-widget": "link-list", "data-testid": testId, className: "flex h-full flex-col", children: [editable && (_jsx("div", { className: "border-b border-border p-2", children: composing ? (_jsxs("div", { className: "flex items-center gap-2", "data-part": "link-composer", children: [_jsx(Input, { autoFocus: true, value: title, "aria-label": titlePlaceholder ?? 'Title', placeholder: titlePlaceholder ?? 'Title', onChange: (event) => setTitle(event.currentTarget.value), onKeyDown: (event) => {
|
|
37
|
+
if (event.key === 'Enter')
|
|
38
|
+
submit();
|
|
39
|
+
if (event.key === 'Escape')
|
|
40
|
+
setComposing(false);
|
|
41
|
+
}, className: "flex-1" }), _jsx(Input, { value: url, "aria-label": urlPlaceholder ?? 'https://…', placeholder: urlPlaceholder ?? 'https://…', onChange: (event) => setUrl(event.currentTarget.value), onKeyDown: (event) => {
|
|
42
|
+
if (event.key === 'Enter')
|
|
43
|
+
submit();
|
|
44
|
+
if (event.key === 'Escape')
|
|
45
|
+
setComposing(false);
|
|
46
|
+
}, className: "flex-[1.3] font-mono" }), _jsx(Button, { size: "sm", onClick: submit, "data-part": "link-submit", children: submitLabel ?? 'Add' })] })) : (_jsx(Button, { size: "sm", variant: "ghost", iconLeft: _jsx(Plus, {}), onClick: () => setComposing(true), "data-part": "link-add", children: addLabel ?? 'Add link' })) })), links.length === 0 ? (_jsx(EmptyState, { compact: true, preset: "no-data", title: emptyTitle ?? 'No links yet', body: emptyBody ?? 'Reference links will appear here.' })) : (_jsx("ul", { className: "flex-1 space-y-0.5 overflow-auto p-2", children: links.map((link) => {
|
|
47
|
+
const safe = isSafeHref(link.url);
|
|
48
|
+
const body = (_jsxs(_Fragment, { children: [_jsx(IconTile, { size: "md", tone: "neutral", icon: linkIcon() }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate text-body-sm font-bold text-fg", children: link.title }), _jsx(MonoText, { className: "block truncate text-caption text-accent", children: displayUrl(link.url) })] })] }));
|
|
49
|
+
return (_jsxs("li", { "data-part": "link-row", "data-unsafe": safe ? undefined : '', className: "group flex items-center gap-3 rounded-lg px-2.5 py-2.5 hover:bg-surface-2", children: [safe ? (_jsx("a", { href: link.url, ...(newTab ? { target: '_blank' } : {}), rel: "noreferrer noopener", className: 'flex min-w-0 flex-1 items-center gap-3 rounded-md ' +
|
|
50
|
+
'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', children: body })) : (
|
|
51
|
+
// Non-http(s) URL from an untrusted column: show it, never link it.
|
|
52
|
+
_jsx("span", { className: "flex min-w-0 flex-1 items-center gap-3", children: body })), editable && (_jsx(IconButton, { size: "sm", "data-part": "link-delete", label: deleteLabel ?? 'Remove', onClick: () => onDelete?.(link), className: "opacity-0 transition-opacity duration-100 hover:text-danger group-hover:opacity-100 focus-visible:opacity-100", children: _jsx(X, { className: "size-3.5" }) })), safe && _jsx(ArrowUpRight, { "aria-hidden": "true", className: "size-4 shrink-0 text-fg-subtle rtl:-scale-x-100" })] }, link.id));
|
|
53
|
+
}) }))] }));
|
|
54
|
+
}
|
|
55
|
+
/** Project an untrusted `record-list` onto `ReferenceLink`s via the field naming. */
|
|
56
|
+
export function referenceLinksOf(data, config) {
|
|
57
|
+
return fileRowsOf(data).map((row, index) => {
|
|
58
|
+
const id = stringField(row, config.idField) ?? `link-${index}`;
|
|
59
|
+
const url = stringField(row, config.urlField) ?? '';
|
|
60
|
+
return { id, title: stringField(row, config.titleField) ?? url, url };
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export function LinkListWidget({ config, data, onEvent }) {
|
|
64
|
+
const source = bindingSourceOf(config.binding);
|
|
65
|
+
return (_jsx(LinkList, { links: referenceLinksOf(data, config),
|
|
66
|
+
// Editing is a write: only offer it when there is a table to write to.
|
|
67
|
+
editable: config.editable && source !== null, newTab: config.newTab, ...(config.addLabel === undefined ? {} : { addLabel: config.addLabel }), ...(config.titlePlaceholder === undefined ? {} : { titlePlaceholder: config.titlePlaceholder }), ...(config.urlPlaceholder === undefined ? {} : { urlPlaceholder: config.urlPlaceholder }), ...(config.submitLabel === undefined ? {} : { submitLabel: config.submitLabel }), ...(config.deleteLabel === undefined ? {} : { deleteLabel: config.deleteLabel }), ...(config.emptyTitle === undefined ? {} : { emptyTitle: config.emptyTitle }), ...(config.emptyBody === undefined ? {} : { emptyBody: config.emptyBody }), onAdd: (link) => {
|
|
68
|
+
if (source === null)
|
|
69
|
+
return;
|
|
70
|
+
onEvent({
|
|
71
|
+
type: 'mutate',
|
|
72
|
+
intent: 'insert',
|
|
73
|
+
connectionId: source.connectionId,
|
|
74
|
+
table: source.table,
|
|
75
|
+
values: { [config.titleField]: link.title, [config.urlField]: link.url },
|
|
76
|
+
});
|
|
77
|
+
}, onDelete: (link) => {
|
|
78
|
+
if (source === null)
|
|
79
|
+
return;
|
|
80
|
+
onEvent({
|
|
81
|
+
type: 'mutate',
|
|
82
|
+
intent: 'delete',
|
|
83
|
+
connectionId: source.connectionId,
|
|
84
|
+
table: source.table,
|
|
85
|
+
recordId: link.id,
|
|
86
|
+
});
|
|
87
|
+
} }));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=LinkList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkList.js","sourceRoot":"","sources":["../../../src/families/media/LinkList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { uploadDropzoneConfigSchema, uploadDropzoneDemoData } from './media-config.js';
|
|
2
|
+
import type { UploadDropzoneConfig } from './media-config.js';
|
|
3
|
+
import type { WidgetProps } from '../../registry/types.js';
|
|
4
|
+
export { uploadDropzoneConfigSchema, uploadDropzoneDemoData };
|
|
5
|
+
export type { UploadDropzoneConfig };
|
|
6
|
+
/**
|
|
7
|
+
* `upload-dropzone` (annex §8) — the dashed-border drag-and-drop target: icon
|
|
8
|
+
* tile, "Drop files to upload", a format/size hint, an "or browse" micro-CTA, and
|
|
9
|
+
* an accent hover/drag-over state. Generalises the Studio-local
|
|
10
|
+
* `apps/dashboard/src/studio/connect/Dropzone.tsx` (09 §8.2 mode c) into the
|
|
11
|
+
* reusable registry widget.
|
|
12
|
+
*
|
|
13
|
+
* NO TRANSPORT: this widget renders state and EMITS files through `onFiles` — it
|
|
14
|
+
* never uploads. There are no files routes yet (08 §2.11), so the host owns the
|
|
15
|
+
* transport; when they land, the dashboard wires `onFiles` to them and pipes the
|
|
16
|
+
* resulting job rows into `upload-progress-list`. Data contract is `static`
|
|
17
|
+
* (annex §8: "none (emits files); constraints from config").
|
|
18
|
+
*
|
|
19
|
+
* The `maxSize` constraint is enforced here (oversize files are reported through
|
|
20
|
+
* `onReject`, never silently dropped) because it is the one check that needs no
|
|
21
|
+
* backend — everything else is the server's job.
|
|
22
|
+
*/
|
|
23
|
+
export interface UploadDropzoneProps {
|
|
24
|
+
accept?: string | undefined;
|
|
25
|
+
/** Max bytes per file; oversize picks are routed to `onReject`. */
|
|
26
|
+
maxSize?: number | undefined;
|
|
27
|
+
multiple?: boolean | undefined;
|
|
28
|
+
disabled?: boolean | undefined;
|
|
29
|
+
locale?: string | undefined;
|
|
30
|
+
dropTitle?: string | undefined;
|
|
31
|
+
browsePrefix?: string | undefined;
|
|
32
|
+
browseLabel?: string | undefined;
|
|
33
|
+
hint?: string | undefined;
|
|
34
|
+
onFiles?: ((files: readonly File[]) => void) | undefined;
|
|
35
|
+
/** Files rejected by the `maxSize` constraint, with the limit that failed. */
|
|
36
|
+
onReject?: ((files: readonly File[], reason: 'max-size') => void) | undefined;
|
|
37
|
+
testId?: string | undefined;
|
|
38
|
+
}
|
|
39
|
+
export declare function UploadDropzone({ accept, maxSize, multiple, disabled, locale, dropTitle, browsePrefix, browseLabel, hint, onFiles, onReject, testId, }: UploadDropzoneProps): import("react").JSX.Element;
|
|
40
|
+
export declare function UploadDropzoneWidget({ config }: WidgetProps<UploadDropzoneConfig>): import("react").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=UploadDropzone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadDropzone.d.ts","sourceRoot":"","sources":["../../../src/families/media/UploadDropzone.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,QAAe,EACf,QAAgB,EAChB,MAAM,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,MAAM,GACP,EAAE,mBAAmB,+BA0ErB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,oBAAoB,CAAC,+BAoBjF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { IconTile } from '@adminium/ui';
|
|
3
|
+
import { CloudUpload } from 'lucide-react';
|
|
4
|
+
import { useRef, useState } from 'react';
|
|
5
|
+
import { formatSize, resolveLocale } from './media-lib.js';
|
|
6
|
+
import { uploadDropzoneConfigSchema, uploadDropzoneDemoData } from './media-config.js';
|
|
7
|
+
export { uploadDropzoneConfigSchema, uploadDropzoneDemoData };
|
|
8
|
+
export function UploadDropzone({ accept, maxSize, multiple = true, disabled = false, locale, dropTitle, browsePrefix, browseLabel, hint, onFiles, onReject, testId, }) {
|
|
9
|
+
const inputRef = useRef(null);
|
|
10
|
+
const [dragging, setDragging] = useState(false);
|
|
11
|
+
const tag = resolveLocale(locale);
|
|
12
|
+
const pick = (list) => {
|
|
13
|
+
if (list === null || list.length === 0)
|
|
14
|
+
return;
|
|
15
|
+
const files = multiple ? [...list] : [...list].slice(0, 1);
|
|
16
|
+
if (maxSize === undefined) {
|
|
17
|
+
onFiles?.(files);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const accepted = files.filter((file) => file.size <= maxSize);
|
|
21
|
+
const rejected = files.filter((file) => file.size > maxSize);
|
|
22
|
+
if (rejected.length > 0)
|
|
23
|
+
onReject?.(rejected, 'max-size');
|
|
24
|
+
if (accepted.length > 0)
|
|
25
|
+
onFiles?.(accepted);
|
|
26
|
+
};
|
|
27
|
+
const onDrop = (event) => {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
setDragging(false);
|
|
30
|
+
if (!disabled)
|
|
31
|
+
pick(event.dataTransfer.files);
|
|
32
|
+
};
|
|
33
|
+
const sizeHint = maxSize === undefined ? undefined : formatSize(maxSize, tag);
|
|
34
|
+
return (_jsxs("div", { "data-widget": "upload-dropzone", "data-testid": testId, className: "flex h-full flex-col p-3", children: [_jsxs("button", { type: "button", "data-part": "dropzone", disabled: disabled, "data-dragging": dragging ? '' : undefined, onClick: () => inputRef.current?.click(), onDragOver: (event) => {
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
setDragging(true);
|
|
37
|
+
}, onDragLeave: () => setDragging(false), onDrop: onDrop, className: 'flex h-full w-full flex-col items-center justify-center gap-1 rounded-lg border-2 border-dashed ' +
|
|
38
|
+
'border-border-strong bg-surface-2 px-6 py-8 text-center transition-colors duration-150 ' +
|
|
39
|
+
'hover:border-fg-subtle focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent ' +
|
|
40
|
+
'disabled:pointer-events-none disabled:opacity-40 data-[dragging]:border-accent data-[dragging]:bg-accent-soft', children: [_jsx(IconTile, { size: "xl", tone: "accent", icon: _jsx(CloudUpload, {}), className: "mb-2" }), _jsx("span", { className: "text-body-sm font-bold text-fg", children: dropTitle ?? 'Drop files to upload' }), _jsxs("span", { className: "text-caption text-fg-muted", children: [browsePrefix ?? 'or', " ", _jsx("span", { className: "font-bold text-accent", children: browseLabel ?? 'browse' })] }), (hint !== undefined || sizeHint !== undefined) && (_jsx("span", { className: "mt-2 text-caption text-fg-subtle", "data-part": "dropzone-hint", children: [hint, sizeHint].filter((part) => part !== undefined).join(' · ') }))] }), _jsx("input", { ref: inputRef, type: "file", tabIndex: -1, "aria-hidden": "true", "data-part": "dropzone-input", multiple: multiple, ...(accept === undefined ? {} : { accept }), className: "hidden", onChange: (event) => {
|
|
41
|
+
pick(event.currentTarget.files);
|
|
42
|
+
event.currentTarget.value = '';
|
|
43
|
+
} })] }));
|
|
44
|
+
}
|
|
45
|
+
export function UploadDropzoneWidget({ config }) {
|
|
46
|
+
// No `onFiles` sink: `WidgetEvent` (04 §2.1) models drill-through/record-open/
|
|
47
|
+
// mutate — it has no "here are some File handles" case, and inventing one is a
|
|
48
|
+
// registry-contract change, not a widget decision. The dashboard composes the
|
|
49
|
+
// exported <UploadDropzone> directly (import pages: dropzone +
|
|
50
|
+
// column-mapping-table + validation-issues-list, annex §10) where it can hold
|
|
51
|
+
// the File objects. Registry-placed, this instance is the visual affordance.
|
|
52
|
+
return (_jsx(UploadDropzone, { ...(config.accept === undefined ? {} : { accept: config.accept }), ...(config.maxSize === undefined ? {} : { maxSize: config.maxSize }), multiple: config.multiple, disabled: config.disabled, ...(config.format?.locale === undefined ? {} : { locale: config.format.locale }), ...(config.dropTitle === undefined ? {} : { dropTitle: config.dropTitle }), ...(config.browsePrefix === undefined ? {} : { browsePrefix: config.browsePrefix }), ...(config.browseLabel === undefined ? {} : { browseLabel: config.browseLabel }), ...(config.hint === undefined ? {} : { hint: config.hint }) }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=UploadDropzone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadDropzone.js","sourceRoot":"","sources":["../../../src/families/media/UploadDropzone.tsx"],"names":[],"mappings":"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"}
|